1.7320508075688772935274463415058723669428052538103806280558069794519330169088000370811461867572485756756261414154067030299699450949989524788116555120943736485280932319023055820679748201010846749232650153123432669033228866506722546689218379712270471316603678615880190499865373798593894676503475065760507566183481296061009476021871903250831458295239598329977898245082887144638329173472241639845878553976679580638183536661108431737808943783161020883055249016700235207111442886959909563657970871684980728994932964842830207864086039887386975375823173178313959929830078387028770539133695633121037072640192491067682311992883756411414220167427521023729942708310598984594759876642888977961478379583902288548529035760338528080643819723446610596897228728652641538226646984200211954841552784411812865345070351916500166892944154808460712771439997629268346295774383618951101271486387469765459824517885509753790138806649619119622229571105552429237231921977382625616314688420328537166829386496119170497388363954959381457576718533736331259108996554246248347871976052359977691923235702203053028403859154149710724295592067062025095201759631858727663599752836634310801506658537106473285386259222605822205104036802702975047987280794616581004170526819400190957334621759438936702493204226910343698124637201111852610842689102997203112021000635071763745824052038475551972799337976149061078949855442233260040188513036315611448868472815892881632451872650666453848775991625766428721112408420680167635171001029431807155151909616424609070394081292169035174929613640041396704310412536323270309225773279602923765977455370954691157421404242307819923276174019064245124548775168626961053336942162136053946042456541401285330078136334498567364067039773422298119610429255345016014059404795471545345484072717376562623665491666402330060132657440701078368584684523131604677544805004022406399119703622186029202388671507110171694002968687596635000408953162142334252279568340670134701859020283607167621477434934495635958080821304425864694685226109082633530087566126034606721954040559841289129759948100007720574402300476732588000915143714894754448791571912946590835708739615155377976402620683708480460729693827195856897597596261041591526575777907823349805678400229015320521389353737755365664270468268742899634413957436660737444455830864778932129853021481973953414781705166149525517632919936995657445226391125190935413869893668174309382264247369262020729909678311541319464843779154599159239282877146951492740264092136456540416445814902019457494193052690026139726460810650714396032060775105941877982847939861952499641652131397152935994218974166470751872357886294661085601704288696057983940529064074308118333886778815626358671560083967602453492299439388670597543154429434309572584709882154631112607667740678645715780606474474997503545445593132865491898493365727476262974147382356869148378313633612836279038248401638066716071798487285558429313492260932405659575536511367546443878342833134666445541803908218989832946263450161711220169296194601693206210330397448662316560035667818134431008965687067429656581774455726850156315944125073611980634728864662413271936694267129514503975189283134861928413032551884311690146714237943747283343446524820437960597328706162749109415968626253025588897684704175020031402622846910480469840324379066067377496271025127106020608626628436660501928908938383200060912286918818368423616939035231269303686137968115269469978919266352843899270165198255022529235793662816345681089130741126783781994497727654482949204388013017835464992135740327915775077860022964235042759969976269187384148473947738515635520912209633158390345671894152943570406530760852901742497681855028852763449495774491104225024537231560636181035048717591580327917983675100671361000662175660495737667771129252873024799267201589964189377620161141182898996829559025116563914223649950628500306968129735072517279185983011152775422988518853117635947860031230637260983698503083108521455957483595557157393566336808648210787912470510316315695816043487488296148941545853555619749992968779550992855274235902518103237668616095925525443199549074206797391570726142453289504280973510379677366601359175226270612323125894506976348131777544560666035762204830069042253894948677295213257197692459276706607658165582986750565728946588609190296443812850578597594375064024460621214560856085452492513683287548434387337202016923116304327056480601375879368567215350878168440780232920646231638112917722977527255310751613836821346045777998546256220819606316360192063309685162162316606834688631166215013238542873913044951231552163656212951874755309765706399550298804256473405577851913495330398886430714317850520079862424684813829763408021762970564572131621983068293646286822222799238164163531725982732130797141926762869156811818399665151003070108267031286640159183127196040389235406825915045957649183685526148034651092898965599618297164084981357029227296221402637505955199475016181058544740197649715937663423885697019822140454102096429083882488609872188764948008359444919344789313310807777408380356018922285371100938980912048532329904555985240968891805044970438384150455861501309029070913061564696859589692282764737642610837917002846890366686704976791703999544363304258557977940772699352889508378271143571257806312827293498833850459271106095260628790597150549459072798416817516870415050729577233652010032638314784794107946076565063693326630382060217195514719520412084796272485391115893028666410796969915248112769791499951026605745311238813939349197089269407357384919442919630072809503386543021378123394561424724245868250054905097821684198951540776630466486602532118215170585464816990103510204060407790534823954570811036628024193078335395185975088471185447931503450015803847094478546020921619344027984589124720529417767625064979618582347765562808249405444376505977794390801979243001549599367104079839130331199968665350178723089958743459810504105468536187166690086026518727095063078922094498504286193436294954293109720994085955858967960004258229594269439095741101667847980907928907540843387989975855690094719632489043233660363728874204771798977873196747893346400992387959284132804790765822581811835405914553958100297291326797141943540573531614158479802944118620313225190540915890191222553196537373928563103907877579205034394436105607282048657439146472804807233659273201766562230057011146855912144509955053649856433655095254739749965028288249228569590931880337949922646598620688234011743944962931319859858802541993470962010389491719770622586572667076187283539023348069250834356495374456283107575871868775381593970854006988992201660544250263128328807897949070455443295484928701875961007620274613110586720246495399705604774396010706774205747235875707590247265185322889102236303744620047196424007585416367657268920371635392194774286906858888158097042483582151491356992810750723078264474067187348094845445372649310629225803372585171451448054620766460867364272504830158120434217518693167085600083352959344267458729987350716251703005711571381753013024070110296602509558624225602890646741319080006821289845940660914873475988613959100493960659145172165306776819355721876558600653077388931209250490628043760017778544522650152062185050204383149506137210270801392037707562978306536077757366325928647365858953011561800178170369022806607100764410062540003168840377529981249455547190042489541494822410559478357875720032559664471237684403335315543214042574174579800602983082917713082714255424692326664441483627985257179752582246812204719564846717398920410879193844507863357697868887939147231768168152167068102145555981333521260636726553921369522551228189167174267189035559741529104672580692438625060986038713588672293142892391620343327393103925796435866555813425301725104238496068102902193241247883304519746316017074652260342989164540709484562290741791740090112338623953845452949732242933973062002716882658800112089852261253378070284555814485777518119353345581235380184354322962152848369629989192615657164169774661682445203114487162780669497265548371919914676148107974684952144144971912661242582093340384084351536196989622187374719284744719240730263128297944615701596967476881484379225755735032789444896030126575921998002987720122905396542336317981503621696885991838704958970325070591396571344311334355007767294918902707686149548339946677241627655147311951675116817189988757879821783910897600657100083767694295343505528881086589117067587211951593614891128230823068433211960720502186353183992210997148266151083690657111006301415107040757110854813735703344847363861289738071706512644964788393402501211372584839423856995813954657565637476063663971548025635737363996498472554328588587094954469906316852551185998779710745441588287563903866856240456273771403576082251948946485327585096461353516108643806062047390528236040530147069123230326365570538517553758640102485671114083731089069377746847929956368861770711886640773881462294837128180191710321559241500607987057229143543912519573687682238088982448959746974767810227262035149129049368822889115077490463869723017882528887064324867983149967119935102615482093073843975322668005873843094075789480751981638168561045141783744286400415613577411126912993293889596922900960405310032318338218577787993482184022913347370689218898207143551298643155087785079937015352295709988437829588173708847207000446716187002843143753441744194989748281483866434927418179804510217952989529115295358662010382233771879174986955322831643061566459360934573676220209533838311337455435570693333523605410975808062515075690820184887747333526891242463787463298297207036848194279920122736653368224997431755841896015620405764802965737706411639283600656124274527930242718781907182856514484698958989307844166763219885733320866403491603258218771672650046563027922746573906794446548856888469952701960611199427601957150010699606131876917255938986907151318947664410229132623397962287470519452771373516835620250745275664982358719100125339240110313240293530727058453878955596620356560863445813722609269451698856155856727245918467232376723889024046301478272090569073274357508512633882153203818017967012304019729723576801301149001545761421717982505197104838134595924675755060567951649416187383995284330819433744891905629838955891842366997243941630336015977981770968099747083279664585361364212373269418064931700218353510636886985761409975808193233084726159560152526795634829933448130862936150310687944450838567919383524529125004597160435444282261550962322402373162900504373772781347828505597613576092283525709520818983166516401955703409999385985215759638371453039749218001165562891592108179874742177235818010247261951186761253690063515801526045025896979708259356348890598694105955063792026162707067718087390644306123423600395630088194249193272120050585414562909637699049617062559097050613170541611281637777643062377082565860915795786071471312996038307212196898855891394480005155107065710359761518498082267043802144533530877161517260965721980312582046661604058657756565427575470268165624580553015470879936950340823284475265898527890494254552157075955914945113156734523101951497264407052337250223810767272574074532371287104539307166910993083856695345292768997264646352120149994950915423333145340014022110124806824899314675171865408622687223114158024434081610546161034178549923386446399052050275512911978337294000194827329315149427531702798304741111674984530814769799435528133294415339448471915440910253099019906508522402430753192448792335637216884052823997728810616189629901286359782815383946111778475090316138159207697031577129225883671748610325896277327349774474865345654776375316120592046501085242167020834330622787937556879835661707948539805672405348813332863107983491253431573486176091981021427979229101874508025820263636232561930962435532315872853488298737658693445244536021838558628387693371633402106422218121648108158044148550984921452232781196216717695478891598057099820333683236400840543660560960213397731321134370041157779279416953733290555689847546860131792597138339147457628094854081997114823580773194364603138983390293157229579605995737996880892198750625139336749428243289715570277272568733015593562060936647420322995103302578000433139634271097336646661490863286786373981691639308336794251913207194270439778233336565492715428384054154828429512441860192136924864167982396885951056057082135907413753597009483249106782289570737149368582861767705691151789837945472481786809925833497564131050431929905071074735720210361904421769138254077225877098258665377123363114546728096226862857517903656171356262848368729933724838869641743003095146568858073106078606338136114106578380857916824332787866051017755602745219297787276714818643586326926397144107440076379893600927865076344498613322613185703493939652925810312589979756682113528746900699208692461044703079948739387836109589924287548305915916908189355927228541346610288285838279190331761854589620529793379972937540785366652909730692348052308968960238907694503884253007950153484936908505238544937145462343779231247871980418029509120406614915380943198231301287028138846468983066808363657353390798462173737636521530555810107953833590149109533688942698656282762958961307540977007112160560798993295078135867385664900357460808120670919935882232037759314200235575651111403852388794039396321789726441731028564686443325620493880317031515593096015481621546048918615035403233749543076452816087928819594429051611973748958001216251344462661015527675073851438848772603875013059124407377868755520879930170699402300494387519451356766084988656208142725930283969440254277155903118283055929466746159464420661477391285073828270312641298117000677610212224092504509581437044356956442795847267426925751364169096524745256515429170481346514932428047685141556173442461710022652053755799305094490904737874154595585711947650935840049333898017322495667421349594227762088042443689291676237878470678272504359258059600870021318903848323784744251992684191921700167946735390326156679718204155595223009560952765457007061531156573248938348404539075519429837616622316377478559477733240437643333022588796798900972897817625827182709465857106368465281386322352299967783910650919388133511815108406257927001417262194046438720653414948648106452246614177739084530160858904450992089619297311169329114091497769851850444066774516530292781478958075008838132128356821349425177511216469764855395440142471268399165112143727355201194782764445993740716535226461304158855774618583343321700422885508182803196367986345019830445745677236982978064465386921306419220187960397916451543730378339631156967789263109277235980770834371606727813820103909176876013687920071757462097439748508491330592612324897288161594122861752895045639588199319397018229860037706411637880533171349077321534483872647053492608976945743564584071922425263896428461789693834811922511483429307533115473746469182857775141252643845544976256842191379987356275063359164555359775965709609410175643489592224187479885791470475198317865079883410852441316847315873407664016418782948852496021692802413006922494872726885362237962402814505942688905368716755391946427703539639315975421206980288723469535162309646225023869382386460846148888612273489574577807749819216506979170456011665336626678142971273181506632959990610746201759135474158545265342480351770716165007195259035889050547510317857046811052327150417210214328888810284703730549581195361696109888397347960223358154582046511234599261916049461467433661195790382730654255696097656637975080005938163426578313970167693766317069758397138975903848043093114543355249475659788306946532567411865225008837152756171648861479781848603575891436440433248669210119592494369770744954634889971180510283090229268536644022508424456152566412300295176504877697486313112948260864187081101878371341532945294292389938375781744935321383258964188412694034608767596871938114266315314691939848160895420606685229035762221329843379206938311946961324495157028294245460258796347783593472484763230929442318882442038949823875847856040419543754123648113839198940081720444173727269054722039939559357773196032606652425740389903202496224670544437964811213974425420738482728139983589242738605086596528199734789794381391425861810655580713362808634157025726376360562756685092702737655131055211244480718662752782255875779034637289025412019019708664796419158437289944719047308735742096150814737761472675541371218112105688188409954587115503282745984165940343530641170476062513057018368179279209543908273201456413792998493062220590641807618856901419720321836693916136781813969556017117721855015686264234700067419917233984820802105551798814449283369439658456329113865788989423707615422589173592146718291098535593081272998076576037717379430349677054697920485769161749575044748055455140583939277795600757005323166385413033324059868839751280826011762565617090658606573612488732540304200706603638905977046943087849621496529279062843532820019138028902623304810006086494168199912729118732019949273177271728770116095356523074668511124330704268603812346320048970831203321710396591963440580168315858335355535413579770085828573125609681711447443287026413955824846485530270913257239799039728389943269781485248527174126376955942825858780169538147599189240158004330342925359608774981732106539349404021393856783866451144621075317413164507898667075228932034562815574855150334536992079716564897365649252931092425493429982103487585426162899539514112688728119671464264309626949582161836802753102974603887875775357567699478466821601672656995850488736403571446106070133253787835509166640118586177427904029259127346066378627472028685776423263094289854806187195269405976932610776565425721798232360802796776099306283350167252274607935174088317559803954737592585816771448205678758250651139005595665258955613405318511423398241880381578125861196881933010373091924613848426129290591769935407307757466538292170416375023820186353150962830416136816824091883663428130001007623235778450192790174345156327848623470767101172623375647603408933721603862829931184059838043604162565133539010228488078753616056569770805296676814317090235622559669116678734166436135031780234863598153525053535141746466395002080075751594747968341749533490739065837654238509068218541913321124524114996628699612586776530460989119740428191948336060178966278825204356891693268472960493119541027205487942974126756487774441049252337948688611491888666532400835193945416111561385806743757827395988135032952611461834872077757353156631114957840790465928936449779422509357053540431610083385241307711286388655584093155255016852796469216009772519915294064742952356930447446545536193845073942837387793886456632970696184776805883395305447051058083601369254584470257338159177852843414324928960163980824098071419916048855624910769499637896552328855908293808558597854685644965083705481702914991151927246895060502985821305215059353165101935079998088806568377464913051924170991100376476439981949642023946050035509538132232441971787407880951232960370221012715113564316523537617211540047389436623718648059919987210194117358934395183028239433924913791724915246158474789731427058008305697026567084027128029770281355741041867813772171656828972162221300338656587723594278336711198442154339671515247032300933517215089947443780075958948815700805999801403901632344264893771270862426225019264487046080433420124885138822703201289381854441440780194388505088050762848101304034580222119814952154146428354107588151591996714866686547266075826211198927186066495416919813588193670522818002121146439553451306258518941434453910241706216104574937426661272649382666405673148510076392769155204906673011934655195353668184224866507772523310196666588285751223343748188421705766375609131426279899748364474874367321655365209864848523538610080515157257113582042571933514003412522408307643236919865683947882447078047419618915647608216253541665593185139810758927895632293261351895320039707190712139848649210519128222683454142575710670404465259448362691439822182314017139572365512964135439813859210699115099046427735531187329487495549789393724776229924831429200696790756014993251510504057703503066429644397048257021173658115730080126604546765751988793093227379870459544312330603969304256694412741992101068471096204900685534047507704200986521101478772421205990782045000887877056384328152213890158158281411613407070888539675820983989895350627755278197566120283619058919887080086829288063322576644392343016647843633957594025366669388173499404380498076985037611341827280052963637639129916019376795185857316693698030055196373607410101627100398985431251478863242108219470462453669327146799136623805405389224611633493843474687124920941937557374444503076155678488433241463344381609835322655270769576849921892809548936133272251638496443219650413141580768574400295939328650104384953203551290372167238240512289248666814496675174705025903209123488115535033930743169092713114342061584489457924766619706051672775465594579075175313644555941565479707972999064119289901930904242498273533880224938751903298693326749599275933400758365343743266383840534407374278330443568088633075986366045540052414234100106821020673615497237778509811142134770232234239706729565103689189511224646993163443627524819157535954684737748546201697837026145287459885418851493597529627798426929022837448895581228280406659195636873891472169981698925378193275028027989482837318386214923072563119790102816363623529151646549331697579523787853173558273109114272429458964505943143078847480718844076037882538589194962626646414929501223821811550879052945431112077419354034133366305555796326480973040386525574142570810440707392618522193946738293065870792854759971625173977847513757218044934179306999450395424432108496351044912972376045625664854308417073436429687425243196964782698451992751670822292809541849167494108585600395200184740707676769935561501666857813332880868977803002818559634995213001125552485249286206052668749059282471009527591629754545555509824090811069689300312793176807323035158053919681591765519181684106398304107737071639944520771285122950747728098176238654239454980042789821899526584245010890927676313660243982017559795115141271060732727709838399513708789042794463411984859919004300943161352997044276680895145387240130658188485424637994131399943209802777030050768081076326308295789745748562027449891683345330564750947551973670198765733695046024293238401234201062304145759472821688786993662348423261988611656715642551099448639416964239439237830774185741108149318780191158114755317809845715892891110891245153601304846904199662661458578720569121975451151883468944094682923285875020252466216756721486739882962489922054375618572691750365887948192305269499245404228890737009358743056821710097708400070141887547521680764928330501086004217001143008105619281911462334307071013573728495974993585897793976646082922553026034359604749317062111410994320159231720386953926730564586681370742427229126260568767580779130928979792435396045509338057922342200042914291938258845553365787531817825203053839064949311789134325294942632150249085966858566556316274966582933998702963879043509461148983283826684012649031446845830272249361359936961786488828298299199557324680912566597416834424785746785091625134056970346584047681187098809308840988539396727544379517950510723914737693198353433212387330495339947889468549250594126011716049004793083881608352391563254297856048036547110614714851021779582584034557394943726198690860726226462496041887576090849191040233057669499342417896220578311121900400503717310617916231814072843942369150742696942338173922629315493759569417649288849570125885643928782125227168322261874200550908835610692754509378309244789857927874680330831547361514877985092767588653394419260629005534904930855475537106004455835596076252027613300315391662856951010013781553401329948207058869737158048309343371901137574200853232833751291597729475627311265456078580019505443047813254797108445180178439161364943467526326401262131667703515576148018418709650432765262938674986383830967116317301934877902164100362151887061311585809756739203857918285452010999838431524484201556585398584369321792249787764385497845044950427888201968182015064033617962947905232273609961083294957775061159866017607361003344436868962704608398874694732644068902026760713501322153472540090107461961791211386356737471406972997390425153176063070575581468899925611926806823812069051323089550986171781755133704085569050956972104950089319301213978455387421084377546658567833958973412706076347779053817782918377086474303068105939833503883660438190745105976251456066576719159538593184810667862947569403959400630747306789423113165854208213395667171366108138608865709837573220223832970993091984219384793435356278385157973378058754281960081828852224184925169703716447309769777048049947628199794195018199561313106499180449921931965065210505786765242538211924388010727092979122367284932507534503093286448724378272799390173389643775563796892519382208447785560935437432097862368355445261937501860798672051029351123336123778179181226541104673550797013253054114102559229151398523777084420883784022907072270148746646828362554588761254382848925792015525921590438552485471441431153276159944026982208681953731821845564645563648865676108614978314241011900177370819109278320032665544069351690108144590374535376755085165143545745509317358577240167692711709152258307033334001409769095762080059796475918392064135585158722627166750591563718370923448535018392979989810063733981286986940334405368072480265835125855776831796126471737223240774048164808689135398632933172909387294536368800592588267219152506564223910935149540533018803591664795042479806515007477199409270679912616206774274715391407148706101002419257498850703764323191293392445991747501607832172124729586003922751335732107357313427168479509744573860450463197599724510554107531226088256465853214451536042146713253229705201310196320166221495452854990995792191919352683589045025892435322612638923946530037808262739440001372409804509591721569472092152587667265819199745018343948524400676493801387135901897454058355490769525225322717720344063175072699251615506504083307105890786294936418599580243989307828668506940175732961122381676738169725033817309991628669657261065956381148295849067092310796745178395294256772873019132565565516835670839232020821856341779616896941893123961614502490593070194446320961280885259492753527749400275724377659945317475046003674696160969896335677138697875382240128052768504791260225043334765675351348676666999601865849292519537209997512880562152953117509260023084887425196687264086101638935708194000490121347918827711054937335323682047039988206166784376958582411904908292917877440627139978392305803954940340519055569778543021970386589706413093315581606433546844234209650632149813321051842228420280186651452882520161104244455934791356180876849910738685476505166330264328384888541622506385644164615256169333600935660848030974905205258638842253176374541705519569477548906998956614232338617879570324278695551493329545009543472283470411674889144783460928144816458493119412588806949271691361997919752199205175025975472143793949411994560017343244971150068540625004231012565444437456831946180737007356302016622161183666307034343417937865429163767449868940046798708637231394738986380753653877640292502576850885060689232967823563395161217713526815669386300347072933294551943612621628267296247883714548338182949033340174827443796280349980303528780251136515725801864449255934411784766968933857583519871946805775405208997195819796923504281596023407279287010453347527091683393319339241834376814910729358533116733989873553116288462354319435527271742474994981559546050870343951107203451598600081705378105057004556353303616212568608202052227510265778353911667160573105249086520575402037326233450706761804956703439712412119218099607828707031184011256164577004093008913535138284950228096304860919033455794859796427426102703276449628664119669145811472817742443300528999326618205126462265126500031990014630326451948502291843337442479918826488644356298458276223939203474633228756036192305862240819865324741795461114142448176753730440090909099656604762557519315809303997189984376618583771567610554978261138627200314652640424983016105183504876179581898359359061266192763313124885932745388676249817051130476141825279101878518175546579091935675755099756728819442170581507821639327690139935582421253887118294722415602698903235543823243348634162965800532573293541542439958431247685298688170792836066520842960374237744455123067042366885434356948713625631368074712794801981415824361628865446797252435171260608313018740817190603514741335154857632442822592530949680428803972239485652384681433664977060107116438240430376286243804727256312037482711194626388913636792593917840628981102911510802237162731228729580733920817893477044211427783540206132085523187100011079970383269928283285044746840444368102050627925982569211389121761695722163510075259898429479697398349094590798532933637542239140559377795738627051358844077296456722975949427468922989834883824879975371942189184071157845615716918693718555836787275764068316188825568507616134085682414183428844481352011849924899247595762753833456745763211876563078549511706778521017465902367039605177028551084792117258648189816189025060732555944241987713056295370560351658154870567173729361407926452844380646462931359278802329810351178583775913922502888467522844863170632254742250630909890047798635947380162269083883370263879101526449919392226105341848349596804319561493412977268161458635541476048012688296939554861906593269069306116683300557459612975199729765591327927566752302745478274226814227988548011737302075609710859689336375500900032659279294129193335418491815415242833678009225360241771503776380097402420715417637259800575225561831400098574600838104104992502658177906371905361574513862045266486473792836592989824801994296410096950546948717469116887457254114489094374071779345007629587875337451804782601432627296800551338225976553115402216361652559269302579129877852954595718194356438005870776574577576433960324194479259557966527368503049969780478541077652450698893655845423312741824320304045628521501959301918608522834200608603183097701528747165095647481872880496325666389671198234066205093805419943283685511883327140345334883298350502227285656217831283402863025353077698763499593242570073648845131603280195716993663780347664669280259823744716053635670584596427917071928676004999173503854957997577495930583194126425536529706495986372109024254686864061107368422851636136737632157256758853003029081440885963688258005135440016715780622987401771456695802208289479291551648896850793354155974532282629756625852866968529847800273981608884763872113647076191568820463816239776578438916328986827475553155478267262675989755611350700224750394877206012294846586919514019670744926654381800234423831138302393746460490374305376229863563611937764394170077758622644334809790995163549786303193078183677332088518880014965391936780405313867734951398584688994502595856391087734937416168460388712632581460997740877519506946167514687711900195335174500343540604766204092246062626356266027716548416508255604128776671791455690422345577933737273738227235700431786608809294942317642971218759029703967119929355723022059085037122005945881565745623065081930249039938550896811512711783695142945615136744414931807020384866341935217106684162660022542951001977980684151648708954610071163515073563447829833108443934192749007905396718818707450688841571230369098646599707042005163002219324431778189632894592476676456969533111960229227281514011708778768805743564829940266923258031276349474883902032916081545842736359611733721711318760754532456589080417435520242475798094074053195731490940414419625325105437868093092743857524429998570636407493341229569325884772061400985662431060289670535592466603798467393593485223495793561456407378293263929799931343681115293038469872202710068062346800475950839747429241502990549958859587297282134278392348059929082366694478507703663732814486661761400148195227275104149542331562832868584972919666603814695053771859678811031439257544326903585737589470699098089462221568018281964930944671343382934465242885849611984734155672968194727932188478536962349943535123944724899180570829874324798750511251164110750121201327014660381382763975560932170297138389427002841985530444376508086297421049077219577170598481206148801310944029648001684104783796699944617632890644582416236546331438658662192635037097884801875785473294549855547517265160708235595166443624803321986185548355487633133170919679297499952183548323876951400326201876286259032339880792214115981058522961195213354227081933943742281365363594560751085667048550701231445331596073591156014087901434692380018892749348159602002515171617619784531806451058604555635010022698073866652993404033975055498628417250953171177577332604652243272793499854418797483618593470943904776954294409448933742443610365489351064383350137411134239347477013289410931739194180890315601333454726960669391241390221909248298392110824953501376323086953204242786782702573781286505233385453759360743177069664763928820837903276027918401145301295236274191611872778091848619741419331599861496097011829694436961827512443965177490852295556345963343359088230785436471497811551813896221940354008341976819358176414328814742256653707750473735170810295542559199599792461676881304592436128081513845074096262753828250406922711859925822722345327100841382347577907525307653866521653183135317950558623256267548514847390757202110768854862762399458526796563189341821892207516740590512382841375468864931333110626107111347595434125386250840909886048681098812298670335267831312684125399789911331889114402042769415936398552188300681767701663315908014973963872105048065231422228351313096724537769041484899235338472887091356877612851541378218908409052397457077425477632220362976627875017765364981465231249538844069848983420034915640440829723934976933409893784637438776715505910774897370624554105565736284071189428843585204035559767062801148838063688335492313893520422970888187600163477900932462108201018289504534072311699619627269364196030368918778774529099792275433959725506078167556232187744860557913761859647384688605162981577536122101980518631289053780461687014878576266374233068566740000885110822245518407619232624771013901054629085853403257878975667713763461099065803747758278690490193345825043487218851300787836377054085964624941950585847958979856022444036295452916745336962250585986981459779079574406446332535406182627401473278023419757814615074949213760331031696608219225914904080892521808399475822171508607101604116571055165638019656764780525699835867548629483748961891626063918582405555999431881950552736832147635416138572941100731826329773352382019315467422484291718195817174559807210761074136661940285728144982405024959325808104833239739760036176653369718313930523979490772922301505199228605604041263124087942985704260453743876982034484461757214334762053277770485770207522615913299177307166289380341830102700681884344470440955058924710588314801106528750947994959584526731756374128715519784158084746292371694625860190799946261621908236916204829376990973915407640686733248246430748715634476638219811401465295409750283236254865368385090085147166882910610051848312558350633547794468706810104099483255077242674090466275690948863588426338901229144729822309502128893804902533179279829085676161999860526707773463015032928134060081342689145035565532404977186055964870781509223337896167173966993942334242846116535913673959175944733426527926182863707923640582456833668971396563690504877409704967407218365345164048599428290562602749249479573918211920864126984322322579952452785453041668887083378023036861575854174704362719623612599525011964085764069106410652884977855048214023429646491692237154977395606627458429691806751554729653587429984168299649643334258138388079376331600726766476655282078582280420623662876686507196246445799034297349336335701334721877700077433463720969286064168876553376482297231937981570224114182735281018269290434366738107939164091346942545484819129877998424780084546418037887344734105788477927492300823406438289942645624455509575730794460063474588254672216821927386708429559318082948649611188884881960349061643392579016222614450347222731198885808847959171381118870721320663598510078457048365344404591856596585578245192059189942347527242292372447473969044126440485518311156549911677310584648782865057623768328197155596181155806714098295648829037152713687309732246533662760324486137087542218537039358001432052373915635505844905928142862147406815667896614507464408393179355434566316349432655187926849900881798384899559200367451979359927833881800771814886618722947836756243754905019872755251598446019961917720491671094818186567344523210842645205788726704322040059122604142848540406785191880003027534671847951782625477771488118206145571130657701575324971834588854622519592930144638543014193868434362573412959256897474235915402826549447361918326962103515777445132424558760255453432342948469307558170038696551684256832037292580354357260074451985346148888844390315749996524676836121097044902559234902606554680161547418375530319805933301538951969171970623510494010933674631496078276011599773935656736970287430932944363119325672065180234678459611147828302048974264558444069503204141111119228332053871250155348797678914596899327665546197409939529370598754062544605702675933012927891187290264393088984496559984129063320033848639269807114790037856918978824506369926624771650373275505919390770431958591321369295742889789948678551147611655239141937264676623891521050612707207818505653375833043803487118021470679620377245622406005011263017195440803058099410256713228159520196732320303466982466192715868047454640553703800926678379327989377331378464075108841359551524419611857275284763914355024421715268019195978316197849633247489899879951219834688669934403688130757679271055443454673969540668097876030490560626276871815052707136531247810130460493624847764660469542577723386942861703916547969174777041794125921525256962897181227553420032560349016699614799748842157838605461205430118892219375383235680400783922621910526221972465849246940508106971771532638269752611105886323988678362735093015115871370666657994771858624417584177031507099164880027213731389105045949160544982047327996338936942650059358471002644760772280639561750151588473493838354820912796526545031141439424116990364871602734724127553572252267574363462111104601627194245346488663647899758331633871571591152791718183669562519286933605514884125681743373474766390089690308470136678421304012713658900110889642554996369305202604497036036553325026451374486777770226074171414972103218833583028007144487030048882417009768704768961488799882285530956040929001482366014995787674835007005263616385492049786547613401342757032426291927419179973844198599416197501200713083773900077107955999503312944306653626165393834785081195882358953838083008013567833477665838064779780715614693614700973939636467373989680812792018521696535179490894445287112279017364249672422630015706361771625664111429899414351161622993461036479602998969839510322668928100882331023486567418163168842476743806311732691461495730743395691133624264218190347122524320537060140710740579335157863444048419647786183201149490314233411323972254062404065065813388567987643212307516083232898313284356518103665675137992344446535208052438852283526338995426659225966581201608736586986022600098099641105623797421291173096354196957480082628002281695093892834220910635006520327706283098100568048731525559307510748142493929273009025442945593506282460676068818163624787411361823643842653298244734774520899813267547680721435421615385970929667760718722914086470540623491659865486885090517531641783145008051217090999842006570961171778004693254669514987060086481053905323720323949444395652704524206714659035305582360418872486513511969816452291717400133575664874604168006605837829779651311759397237198114361210940730436044910171578647485136312067941344358646140619200061273180246201203453163697231479205106460764213420879982962878068595871808657159732769042945328645440608391399952546931149421609008212524682103352775690959262108523642223071087251856158793988030841390315582616374318197517546398127989962075944473575305796011353076779052193517098685042343322639823069245367719738172372841342582007571226478493203589776009502201122966600066966784113588961161551718456392736540012132321617870929726835085385034332106678694540555650527364832467221562022364555536083353594465608084695330398127793957207211938558290860248397474472682273167251996936558042487940335166416273960704431271681795617845818100774828087865199055108874131133089303167021784573937685404049740267816335047996909809261515347946574875711141214822197067628236604914437354412761637598941759379417806885724478225216712473805916306264000364930301225151599278676863410645697909488906871573916028791135176006503113809558901175509839403594674093770127284346035890799055506559885276799316321987339655372132570504024103615825606057093475116124521791053107984909628720935083996583231428423973591043400478316352299839691481192402365826850826625778394624658846146561260824934466454991478211859069388560300008463975161755275865861382524977994367051909779625153454279083419447672495250291771031611749221683585625479998433235792710333120809210038269373292753293161046600432151861063136989300474037152791269633802793212776403020339853433971032750956777080553690084585695005606680178631841134861474483891309705501947072137927911778796594941021669661985511254617316908116236722978336250534135149750797623970391730596528499214672598307793604831124520559945364884034932421947812598883881394512446558216140152240342594791230978880351191700778856397946076387039656916459519915283717850202414488031310230411661820208685507401236271350220982849136293997033356644246279962986560505887167566794763666747071340748704678592481029808480068601287929318117931078975051344365080200596138895345193841082448059084989386401059278459376724468549545711711993394805851734928556137941451896099703988183369985825635177618296784234778885399775340388920500163061472667320676342505334282564387954826055778319347901504882837885449794874479475447317486719272193733536405884011149314219654109790358705595924259843322967409379376204831073240066965761709810422210482392693245811518366416183257481431585240286698739554699300872890638319919076872388225676896121234361525451405252730035137792299089527299633211466816304210854030989549837072419819237210613441627219046067471919262394300646735456748801493930362480418534448294363273737726785847647030069871212794477181147762994174039743768370420261884314119690968189283653752270609747089469246078917919288716031137897992434866726320265280071187287743197440637663764507628921338961522706693045401516462533019427128815346398320925730722660622010718356217567900886373306357252668724283568984592755199652657256058204864170574361420560263420317492214592396605738660562548014443582069980654029532451646269315029484472404305973015971171107635322259304716906056208325499675078118836674237128416413817749261162067504829762178038047766484306665803662714329296609898108754376188888134595322512556058626481385065850173740645743637243886906978005424107148119225559521812907340287505432062418120075923179846659559374580344508774775762615546864295705320564753256792664817060261472231675772429202396248287657726697093297510399702958175012802778429736387311272980957003343848841224713481473612412575753510663723745072860006668963656447997549742601053192752010409212758763501090359403967214123039651172594558546369160543686211947683153259457192312149224744571134047010001519104974579496036938158727650808769950594875894452795463246559951665406590081380517334965775511740869710113249096353778006633158448662401799675468741254345081569965976465173459676767831295048271480916594956552249363722659770934264801647244710262157590804657014879549223460231713469186817598564870068876899235680266096673562575519414830467017940198708497610488173826110738110755718928588800265638955896058355262499370040079982266026450033759358350353917288705058340075559546417890128277416768480400920672547714988254849402452868230946110924082700647954901698306544761372265257441509094554271927396823155359058640928165193519238395829704144974425143525606994709816564429380259502712610132542150150943142007238313388969836467475497436333701750268867968203714563469997608882385109056743593681808403113103611544259117034546886255972332636549943612470859822999856563220923645473316565126680013280479980096159262639293795942297154199788766561764686916019840568096856277956884260501078659171775974894976220604496407280473204042668592206888889693826494015648696958602209130426812141668480420508971075539064477034027336275553734249523568093779845298271029143947856421410487564538136500256221679490188389237880738374525822711141148511604526598106859319562552370088658714775433734664327966091713079667123071024410699641113574954585075177312653385231237915199844537564144531002144150801416798776609481510866919517215313407915604127806699262403766525568542771851122501187830257838107092347262312771177768614529958375453783546875201076319554941770508028660944753548870768402655773339596967917073891805360518945541123009278820712216574947792500290922443465141274261566454997425032643964557652744429969655446679683214708826342208195358932348920800174271271517668929703969058563939836692910200791235361840065486504852540032001676739908643436640348895001154071492160370472097954992359004567686837683905361412147377532782624037084746493654023622023375539060792097657337586517568278553731674784449639510133811146378942594792820764839694185734070706841420532715349124781291439343421661488564595427464588374802352196016172762734470252927999627326356354938867331386541922808025450495339588352536549421242792463784364726730963433542607512541226357997911752577035170421889452879507305624356164052013649298440268394227749819646976566109816272722452252474803680016877501931190253963385719153601552278541583866044418280006860535012511583087043430544860011671708673621330864716020084150370056850167647047031559770164745749159429649525909186139884260451102659886166228173262161652312844841944020798076698761283730526878293938826118243918709449216508436830028370918089829582436067442839550746862369723734524586685959540092508724334421633011410883846576841659519575324590699085455308042855690299473424905617934864066062903078319761071100516698529369378188699885161132782421411923734790949557338846047889668782495291628802424280314382016290031721092317613883341363001670080829563292218502829412451805879699964005034529588003585460240700042124983570994395173734275102374524290975386328994114064255441219811997364485605510096174796215765907120353570294952980507867891081926934369102876747451616808122124509119464373046033323342880867575706438867390534490256831771730646285167358372597284456095009309053138266002277704444314643088704750117829905376586263740637282353170981291388893174232976471311249136388839454195108876704097283217521510354441634690919284062366059078165498085015858327799278961202755144195850248838133372610206504998205896046684967957802513052796992937990443844395112423059908117870720809040907825217538608007908165662933073895624914338876701854341170318341041834042158613256343720130592579480534189152414140370174806318449186057043386738591584850407412628359270837340505370301288423080080549708784211211595661340932114070835789061703015408122763669000742961502932965334488563734582024200277528827582569875821185559837349546897122892323109351757222351045987983433436924372823353564416087430283723962066880507507629363405718449249920056610739478345263710125573232663673144384114771955980289316039299583300976718169334668769097116166303187018569694501015609445896973881390312181039512388606567003089619218460748558139138435302357854362313546318348569952747517679999028087989721419399422532115158297696841620833920779708972579791363025424128783974396878543784868973582802969486501389955588807222184216938285919144427388328441823696390892356143614580114868800116618682686002721406412374550612894114445353985000044247713783924434687507327970148940691028186101754351043929129341278260515167188381695594176414888387659216381597330271109978435632351033690657756562599863670586649496508031947244812429465251491408462622127367416110954246620344975837808133225844951634255167646592704376355346179903166831510831087633982091394660710905417321411544399849318173633920836552742331121817590452642146690529520319455405022571131951036237719434937291140576201262964501677214203736390271961549807392093006807402833150707707913352417020518099809430066297650205827834281426924679110423468503652566933156137041120103223707620561914264852876319627907392722619863913202697362057564866881908557978057687156688301477472626732469710922742580233989160539898996289524570251609908687249552626854678057743179710926756450404699165793963035782389649974352075735358416969360144714240306616938873762231194151118865543112202957348849961819343702209814206565483232601255520303831284083066631229592904206941106765311659555943950110772973659583430482330889640023105471933540857663828301631844444551290997170462077961068416757010758825134067666155057092591777828027134840899422428539121577835243066317137156684397680793681301789601254344134637540312734796711816890758406616688484314014816022615818522689449886673826139471118637095530325311105141839191400844350765126097993122515058669086881812159377288207253819358648668347859486648841684180475105555578624758041643152405967219177171448919777262583771915891025895281328311648086036573030386964976502091878526284558218057252897006229049376481323388697521369910686042904245277785538684466836638592766292759500172253982432008379447578963733071850993963552581756626654879102101422725539985278486099367127846244108097571416413030107502260648841770309676825770019813472889124769374300478628378403312454790769695975350112974718621843815628222530216842504872133523179517915135987862381863649839311407088143772092536265945554171767002441044929578622169990708374193144148354178773738959768284967690878479555026641379156458634564478209987729632388281287498259087243291744670705207305756308587969364559624428458637204914720162785305847137196505726777896822417908944309942658152176479122192471662838096959913644053347276171338546392964029001594707964019069207336858405294945243557191159539474761849224769914663121203932118772679580650359402812191572770831869578992047409329332814551921869149627138915347655385125255431302096343984022351835237833569246775017502788760674836313729769926026924025732960179071413246698228072852995037332200675241692677956514839692133636191130359990739895253684448008739459836981701795270092447101197592957576029589562253498438811808189594872765610193773156207075446582479358268551139594082173665476005303352901220383282427175395850401512534880205160560730418869288911743040525771131371742169466863319788102071156506257964942048802577896178479563207810180925444369767671319418172291233766841015061638489873638511399317486640723032907862517271456124533750680484983612735673495785285165306201494527104210726660658979120621672604166750570056065433206637831141713282332355158333798148272591562270849258614710958860781314026366801980726791265672558979981617575171481152077906646475316431706667812200464754573708006227086921100341544394383431290150863521818861941696894207754777632238046628328859824370749900838181651997496476308958804680268304874376204290171743583473407127071678483709162531935715297750596237977708478747682326936044143911672151142976714871349459831593521921189466656750170796463949448809875819567165480538677789443853706256014170159882517516660521296640253071165183307997153666218849504585723885704066769992385019735386615166461631531160464877934778928028135416376848613021813628173672389395483279898764847131657821115463542174276907770844040508215662134154657149977045019436259769165970796368507069708902265630328662485847214587462841232024299652998856354073336520658663337183989226199112912034081451383872089394414949151487602382255265706184661400099706005247442844180864944721855600917389849569735110288421898605227512072345852730364829687472855122894830157619550381988701324467685463077191628520590176759897845511568780675290697257472127159186363816483542776527202851614736174727470809205351744193482871215736894953322688591683800456890022623859300904037990673221577722415178098605702365643676407342480680307633919089554983464681428131293740784426293988312985504369308293784625113473685714260554656879182374577591860430455097591317294475018064868368418034646938482502151023620496195393640162681511167361604976984496353278185549286333541840970433110618327155540750097434457707914610555754123233595521469069877638166134808608927941505540057090520041854022518483167415439750170675296948460457413689417476496667699783567097108748346678151225541422164118562566393153635008589520212676613062255434730512345429006456601343212769926095069176794382687703570480788243100658988543743181138447733662324131319036356514248552749604250778647203940040813854780882938229243451710750977905817948922343510394758949460383707783412424123274848218488382043488436235174901369425628719131528024776146581285380246180966342320560232531130904609742598076047707107159707413230121113804996166323065289787664099818885425920581386739474144105456994209847097316134624982610803654401921786415706502975193365175645144026806861074131121495912148294824142869616010987621941010560865560798196973384950463804345495961452668164458228580480921588564899662404931301146789081789952152830381130527530445660577745504273472308985137571446576883105948905315191460311707151214682329200571583740122778819719033136577219527579860850878974386490504184825693776336709015678836325774105638827964670927080972441555366796038263423137027256092790752428758927211065327044384714197551999059676394034112318778445038312974965835074500829587681196331793065483885131474622092905943254374881996600932425864272996298021042176600680393079516050062183449066062069139024312661977250960391907669671922875367354003759456845841554506055085422086231603881565716788469339844153943594542472702794177230546864657029180562550006122071852292973679266630462460494171066767391942549869078143043965821334335674459346302048384561098383154051594069725346171521914607113632343958123925398294432899044161561698773385325923189650433874390445147921396034256043880880858195502333992581474877466468982847231565740300866210707431316083643417243456560006355022668922043650351914803212841008656959191835102234272888022719413801574961404288237878661795980668088074032537100217987988660615045660023258237482674504113403600603294365218313225893333107050679419675071543742584079356142998631077569193025871137907626225409842670405447754522014770540548392479368195880745182241347539792911434878367328634393354042507580336885909591024290301052368281130640454352558239171286128521620317095368462374665237974037730639467759423254467948445687930009944358600297190829168782041519791413851658069902685574455082825900175481541168081045035962483992680338769728323334842651415790751005680641607863591006218879688841489749396329048329756729247621854323864837333493967014530140424560630802806874244295161304052980114162976176586279035011689355733878659780180055328750596706616515403006811737350708902595901187359686705829342039764074652582014317702514335305656892409733426708221630444475714544734032685176853142764553164012584357112184263488650947042043511983072130189702163125145139341701347116731287883737501528388387666997751543098276957724057796994828150820332205629044064363360748209900750095791247293235111818608876502831470155043273880100836122048563051997350168944855892194315849594768000809423313922919277084643405363714574208538978070974286231516970172644582995087488958244349369680220803555599483146723275721688981878414952699691170418505090296861459329275449777494820991274621431035018081149379711898403020699103816329092575434050966514756985117504086090832690361917661869621792571525980843632498422945714765390046508868910526202260524479836434159993290470536803933827913349285620431371924905287938825021175387822132728707223125501404693757520752428473083170805537754119711018360146076270305627190831251386467595131975528005770449830821784391209085023380363993247489034993924629460828629257246096814333473216358925846568623516736671608490939256376447804093270370357322970758114693679618515406921512933994393928748003825676111702775046708934160675847133581308472769886133793388373441230425052681665721316657096361650797128031548855866049137891282669666777011793141947603636710100928580127695688308632689548827204568403634929316993598509334617398792270353578190846251673157848439857761989214751939361320915857997994796414163218799901262746487684448227058912590851949188302489440579889537482563101327431244085535874261287848153559568276888774182337111745739817097256606686876683059859278136541716453794663535823478927273314941124119053035409200104273970731486899511367238027728451124625062986412439341324861779716600821437406312945714615467605118554805397467499912713469609541496499290327596885496325066581241489654221281968168172723085697981237392438031169049762317052533681022100916381774924476637451563619392094566022375814393316147446191074487884086900745590891106112325164420240578075916935176584720673418883087809383524255331790901368143886805315555163379863439588507099693063601785086471496476418335731138878552547561616683744474664708233976351398120032638905501762885040549361103330941913520003459179984138058997912507246412868024925628123713576858939016756742063891008399918802546959477522130837835550774375091305767959281926705831565149903939425933690218396289114130489361486912291996882768565143681110204917520638581397308869533246890358590972886562797441021678043864684991987507683091205019243555070817642989890851227573925632495281210013861363088863166588615608133051046991681103057478808821954579942312990955842246353424010065998105091125494415027063851795796244958692769480215624963308589238975408613705531761040236096193628205860682895033142029833801988625952539451426911532582043033234321448384073040416782431288689830173689606093191928418975489552156433748542938123735340351352927608777793060584028766961373258740872778695544707269103110842771856787436815434900514942486886075475765841517236522081120828714300265430686498687634643972195302145873763002941324343341665802366060953933930939849825147305129659683967989587999870704983681544107095400331073551347737543891457940393314034685924310702896080418567000165527879683892738742680431005924641430887847352041844076672879671166802278429614423243136277024893992022507458781586670783041237695635716925977542055728136224434783035103830649738843293931447176744281151893516748720214434655249792732608353428417817906050592949827416292391385766243199662713896129241983996811424534031594730801221497975435238126111120986101776113691240922713333575234180490447134531863293711483594472224809246771854764295345984362604933482338020806247430504701141315858854934991675196496309951004407802381142885592795140897570088451470390271242549054253829786840371984646345154494572423799972766912151231290398284171740889935572554311465184014669035903394770429777901112841690217551076251977630841847567134090565569444747095780601597033746597446242562569807465389924968443213718895216438768637327281147312361166179366361263280052442676322581842285126919901478446488063839625027209556364054862203881547652982485061553871964551634943726421340906404606660253204044657225303618589585369026408943368695095417139296642796049057812141227189240026174204954566026415233530595287975972996125073707431878720679217330620586747709738256933205032464698912032662051648716247586120472572681235144171036880293164147162423797803395966940782848468562216337644591801970824442670968944661437623357677765094007628047372929060393451381042128826728240298518704075866548236265955471592490390794625947838881690307154173927486439714663836204935292529718091521087488207079880146379524784932428531959587842048120709991267949705531055619085190007090822562286802018114510165248641268034028822583258189225617914617333864321168629795186832913282692794110217010056828585894548110937115936163226835190376288517540270512413608740961964305177494365977861438779525652476651868449395122425591760156080126700002874239143196280476461467758948430474305783986155596374222627620037930276108589880829119157410704594774740263873023340315793551712373232120048743198242660828890215771197613410242017541865464974653999581549409683874116157033966124159421202389778347248738811174919216639681746086965836315262372566508721732595358147164610134586271259329894495941651406819490594259296233007612709542888776834210587313469528311844319713896594338557274206828774714123239789373847888902832041545666180839764756729723056057496294072078982039338061609176958037254325399745300295291128134722847870668682963923466319723208501680808799369001956885256707012818690836568037013869986680550471563167507760624851488226418025309570725035807585093221459034754329886961457449984117566527731508998245641649214730346845527974283830519703215037795975801356617446495857304135349965162560036133570564344839078870027565172819015215880146849660540961091986695772027914642656039603452348633942989573058497737060341241285479054092587638680785288589053388389076365234561822137526913240918007245209656351015746984130672882660179552246001473872660871162874341839617544173029427890706169939065655230110129543388626965958988249399983028802530921094694054333401253756897178661935605637046439647920455861886500351117735052809362585854578571010227699060052629732703112597524972565218359989697417612696671086215187602265898892999175730826090160446373377841742728652545491135306919961787397599221812755959496891972532112842911474250916805402561485476853801788523434134299781094653735556309120205423798694422434662397563204747395076438606294116455248356713857272935977270475617040043727002275476218694844734995572757919777288737228421737715210265889730725404470680274107903716713274312510032599252683973771643664633173857311593333913202209950949853807281011103462015855692936783104955026860828496679854378056667085849338580626846228758360649437820570683740968724460195078391552699038249489584168941866000415007966145601453032964119352052494857352367256368399233538741450998087571190606874074258301228015769501813991746286331713244701478882070551479471254101298094516298052577729331097056289521561627987756047664982356509129755498888433411019632110810306389714638840179160836955565804327487624173404520104873540147296630878388657103134341587391968462683008453747441486972682556564512783822440595392870823104918362821282905652088044728980110932777430054718530627520160218202860897384986972852369570670355392822176091097813783100769677333160092513555005872994695541449676837605060421792306355904582627096495818331633897714759053703235528829236479524162362915402568761946595617473730651305585132290922160348053872351060311287886911225337200938130274311110751884437976352266365102799864606161264571094075400906131945963415383998345226608154597608493110823687282320551741154636849048543380920346598559345694547937556065778496184500907836577164519757658627350819553867297731512487416247480782441444147321877917810335908992109317916961236489731290052649080438145394562240699645670417464212198851187488376477754737846818953447789285703086965861621273305727575313333108544805731871587707759202731970105315618275872019315688590584976133023070432355989303306278552170767761537202851871334774686110790186333700267496442977477463727813222516243636539460124943097150024220767736137542716923260390986372868900846568509000283786774525036257506212471659296151789712829146206024718736890938646509042982320430533992335113989188081237543531638043236357743403953704637546237790725659723413528955345528151052947524978375666349496691411207050869602712019631292964718325251760193601042468037832519522677054749622457666058419150862053639995996975461854115878533102799645337298446161621897920201760028779205748141834980700413985401205097183332863656481032917722052149880210295051848725956802429073927008172597020259998229804973605607854029683623163495268797554675866617905814063219997430287038092132327284968673690917041320980717928038405327290250777203043819378799735778661853649602310561585897303072157420218719058620148885625326102465010430053795557784167114355585841412833931791224637103350827601448492035700192554119556064055865509529576926528798859524315543790485343809113454649004766502746452086155306190387472285426875815703173544956901152496034568174143033456348990140726802018248522965177631848603550527099356031501630058682765184244307965957898413283143049405012888828438732016255065575447660539494806421075133131661989916502464331075555426237029364503195419513347565100070900967705954381005483228802651172428994695498608561390200456590367696521540330487546524948313175265417306855930690618175713033559440464030830338939566724249029068103579955469713599541164778557832913852044834940678488245064845947501399511098736474450930135760974079374615223368294193136117955549676508072090278044296043433246515633794114934860098996476362977906039225294510370857709972138752965035197971335493007580085966127095424933820023110478840625061342351622606952035330095794010070243737479831151207706339120244418410040201826062987662173945887975159307789621539864540397194877952634414797464483341639053909278509035043681616262803350110547181190290837968230171930239896431691841182329311500149792367083328603614508773200902624540372019064375086912850248285168466667482725289550025371510882966052713124717820797928540021548785270819428062212182078187808304996450075832961992088903498503056136326243456248652544805168691150845397915034144067722155851905956643967484054673995384533578516921608182097531875552103500249098075673756485674777457314948330827965184418057395560960389898558422354117802291805475680873055894602080519075528298594001385181854920795906142399482567348110800916434645071453868346732860720018877724637423491096994100478655222421202141494843865906818411643087460062010803259050114225790625164785418850236724780910113430676128161306133167683864862770877314369385134476676180888806058930484098983951884223723263780530429447628033637944526541831562365556812840839810682556264088642049187657957222544734088180291266213963294274355399042998269377997045828462388588752603167988571995150345381996115710506722340895184301220626224704063622425658855069863466273938746397722159635795916797765582060823764141655360598387284254444863547102331536586428813775175059470708904924960146095691641343798136746163880654998654629613739403977354183269532225582436749737694109827135437202532173940114363311732713288471442208339650187146456939498888406200154178531418299635157819982158165204868401191166648578827284911763839164053584136509509712203969772112480694861134734635010897795812150018629206840536617685004329731188942800178805776364501006190561493499334608925509537616885169726655734431602276432545286708115426441806951696890749284122538983177864272596100713240666080420633030460627403789280676897918386332664943862653771595254440864647278075344040600126376331173847256828620760237681496063689613705223877271402385579072275314685515994646597554092356096723319065181478132708404345597040105193947967704690331046805337935536072132809720686218075261762513356346179143618561321567854650681445235990680395270223746420570408409950185983032641988217826220052414131523832477184913508851569397809326559692709963512540059463290808217485404377645916094996994603624396994847166181912455284042095592096982777785504126273271475039449515412594002825333864176000170276735402468461012621475569191826877476868557591755916010829484059840733948118397763420760246463457594346986990647224607114151847620423246606660932938195344880929386948464837664660090789045620937632897354407421530773470773297584893924404809484762176406116281830499265021781546799690286231834348192303825482805755304469932241811499160666247253682648077762330670710620716799342804945784680418200655315984501786974244116176574508414555036578524848575672931359273927875638127808828206263026285484651077647960942095470039963852692479297179744326347242567663432777627387591511575147849806904304260573677727563042546847713335208737887164810300621114732745381610812176518318290023855810612753730712562457063468913078487625858942210757572071806569591958074780431801430349509042952703742257006581049312709990610177019869835576446556508320139345289118728164781926329056332613322724728951994258541961913647745668796715002745548712627960791430658745535680132773934797944460468359141745223159261205497551848782118153757393473468790339586124276007022105770115112526847734269422338962707531008924385221862083449197642423881653290869405699768506796659660763848058005341086068117218423716945099229033262028068699323004696943949501233455853339091224977186736223504012549123394235993043550197352149116010044511090228669553905175134931936294758836652967511142911352879313756584358795888939919883114537337110648371512296862683589310484773189699427379972945250897258608058749333579902792933802905150020770150440460667319692238184108970647178164956587932419089062595026576103916594911501076442208043189045996575517330795685690934054468933753178045692467831608807324560280573072280149748424443618745612118811545336040882158720626150510249443938393849518573601312693704515732882365634948532060088477721059778178322103693931522007539643529454160135765387725517197500525363794331288733447124535266584768239666803577009695242644673876179653693607715365755077618040074202317995984557310618171916352871900755168518310422847764455008176062794288752212241279087206602074038912674332476652153476463804133841248240236805027352600886505373351780039769179358706556136060566561757595602011610150592187504692187991169349270213327788870649852321110307955071005254309100523703678115249155717909535517491676235300789383517165667820401469441229641541372638056123795226857694905263124181874006088004838521988296959570247579553636958321045989818274502291097805434465211581654184169291267716304053882484509182316508377821471746659229822754296700195921169647358792049894834627952874021985585208000882194935589241228113030183915383188863026619054244845533847375869589887830514260777113464075736310352993723519794986168588355054894407439978326915219109663131113200399943775241970028021967139146144335945410133775898782163641499404286867100268116038172956544147750050063509218951052154141546347273925047348497411348180204021645252008021969034662676589916300550011166769536459231835520020719625670285447526134460968421114190675353826498894894398431037379986902394592718584401732709805251906610415497578466633401296394579084804145919432724538286306111148012498108254166291288196870726796917596329674713799650330553872154105699550832967936188640172895590249730323671943782505410911356170293131381798336972847359255282757091153181096230331404080150103944019355245347308204978124074610299669612192770011801294364205705333692762251887333521676867526756873559602594764725895336688905958909779567313312728698809603628702594017677400780998530928861371491349487077892450004946202344135958164916187199745258553730320982111790738554541781219882062645282236700328605494033656059744369241499336578779080243480783159223115872072068651239078660946293915930477341922027459051325070726747721375411461389070178827027899840685871505860930337885368397257496590204967676298790242831222916747186268655789047719209495435133870648356700897401531177710347801282601759648633882041336696511793204814544110071083375778592338001935292686976277223360662246248431349387372789142319553979078637233370892449845548717996431717441091086706023392134828519866261679606349894228351000823144286322966308552621244177474825448742086606211445763457241211048851440841037272940255938081428519442910748413214821957784951574506853359748042971278430113383750496962304606088454501698990359320821926688914796915955862180152262236367683900212728164744259198847491675650927418435339904640349242304535716122287263929530318354408546059021160780086815754862531652768728589655328080025774023694304940844797189468313800244605202704811010031214951635508825118137215677409849136955721210888946494638825640939688766370096184484598076098488456336464862907150312498556722894657619441267135798589636359603004368851561253535539849907448043540400050415606127958552150049259929988090833028523948680351687974734234734802238790058481441054230871559858866733037830660202567628900985347558625562502106538635029917560604335374580162834822144802828428245999026564407755241207566750512390075845858138911822023000661056226791516248275233037022015900450001242030053422958695556946263778431322839680149208892369278420190676304317765728932811440151578110322926533548764356139302842271877982950246452073951729872139005889702921780479988586976753691681282045515732852569344817721008912502229095226721028383639332693275494245032253735524260571856698409796302802854809570092910241898633845290813712523150362195172617902757426829155173846640997815146553505877166855951306507660746477400554121092986790594709036294980066634900576495928455645011088729665458259578322740101010793117350008065005478968233498371797273445404940939895335939261982273510465257094767676636857725430754396224620347082164610213026682950504857248527311104402470533169749876731451838881869541027548425485422115255824577074292175579820751884150218667836871174840822663247076256149674246114590902464556170832293781977958383308877889557617120544949840879045011764190435481935391229928833063967695755772844538084103847572191983656584215311402032775406940565793577025979538435858313240306773759783750667899112527134580596646842446788263714967313415604325857849765898160148609100809684765140924695290629721204884427586797583153071931294436017351751727367465329039516423865827086611345403813259340688138186953109139223934623992264256158914079944273460487925724686835594281418568438840291286675837356531109828229292408961794611223520376616806594967745752251953337933213085720174454690261525305424282328428927356652413781500826904624902140882358355026624854289834931329674874521767417150989761696300905763180120578192484640132752556276410925055896714620665054550137625209988889978719560126870660035444225003819060342861168591234615706876632930348909982280453437495705284818646858900845725815276957047662460703591455208475033672576486778251662466850698704804561473254101051758766582579005043726149950682880847524370561577769121529294477213765880913976640150261498844094066642245244618606474740937935145713813787907809453072128472356506567549236403808756679973510270195307380493057367504190204588569714727427219862413961862941544487212980404345603241783520572857679847356305472188990745646259211628366885318412291339349202201681523671211668322684116104304298912899318228363945088118926366464697345058445850015788798055987525357016381932059319629725100525115161446141041877161059624840148591928473335859299252009412098010134868705585297364441214017374114025070681290524115162880217414249900867861278642375787604331109471968359522660886176038181467524387888872153034899742391956653241583050580940798567561734438284902502490553619262708570820877094334406046564634593105791779636481470882329525902710283165299266686486874076524446114000537673983846165394003653273818127245514758596326615641431093546695022363024431205125398096299064012038547390708186040238167156937504725398929711389348391561902546216002990636034836952599438300946877182846892607619925802247415431786748319464675055182959256132144712547085161734820177236522303955296731671686363229326322333730987448326458908706224184050214515727663746386310710028997580853921168994156833293240802733687059722218500157504242497993240228343863082806749598275718777593117412171125684084509343318315974624130451769759028193091427916261523707224917149992758351901983603216844016142598604836266089412600630999302682569776938390741244074787677883037110207489488042059694565325136605289377018665332070428711517879282576853601889134333921161162662931028248579019822648060481288994712221848106326199125283830899694644847002201352432202644364617568946698010686524622667389577876982189188841776375215626716939278730184393396905000980411276667382019196639808058523570609538213409704955804308180642352099966981695048803033522250706737580715040453248068909099487200345534567525486859772452526397053368876078197231163667546201277704070412414264399682839974978350752738735192330475169009265452137751132269768295425327337775752499141236781484155273474214918551916848720883721141850195992504446067936665668682899253011379107714038959011703502396132303329664110076813507203955464761863772330916707298811138011749162179307819047706713445491186844506470929259180580172956449175184136524244448623711412924831053268104536197937523338925780015645616739970122877759066036361255372764575392377408194308912488216185418718632167754989713799946771033082112089171715530922228036430731027319401694226106075914509394470725993838925298347586161002738815804748622761317227570356964449149823740787064216540130347957746522780142022374533346476291845433210490458941367308927719224447106226661384151037995802357753526804719369022034459062108723268806317118496125439640515910136309169792593373739918117382372868290349224291022189357514560732326293507308185150620141936996494328723376531372033782046989521197656308883811342575864113297215369822765218467963522692140193323398120077288398849786530410127365134394035801406324822012569873919069893892713348623410520036669726249007448990276109632706450805889489073915438212923120673583148031684808279701019352773750891425480175078354982611011666507932170313535929232291982204210126418573876558962518471057903031044896433634421578245929738657402653238821303590266435963219757334487260181249762767494846203009112010205355665806694720300480913826327739869156675021464193487826071508687124028846873775599396070604511719212600756953121790324133327212958312111676621531499530271311278279129890949519487667024320731280964999315591960496031649554458032130073616177850886334590264478489540253317251656662239960661154690301137193378310792148423891229959799801554701799155539000608364765012556303933718341211777897059459187534673436619466519575621291269628846797626993958095275997161659121145682887285037043553320235054076651985633279992281480233803540167603423492601790392741685129071559611500128310944822648892879970569923756373237500156402001566733904387608247697964409497473388098889362329024195564396876953161616559914270455029613294240178332865260941089654739138679806111778281526362718568517198199759814933717374947730130939508549845845646372967918665641509914712580770549674510932299489971306197498004356858089807796548863316625752847877487160772428848300788913652499091527597131083457370445513908045964860608889504282945182535818367092767848211322830591781271913868401798169353315661867476863772184615914319259668620468051734977582422977702201835451907730431898981832150779169038242742295168201093007405825941210570913357993420766103609314968158635198174432481524164883306543663012556838627094693167103474129434763632283411016466524010268301817022601406873834267336163112368739824214561986713531086315744428682364432252845546438857288857772749158796663299862671281027388265695290603471817260508418197794908176439936886826407842486210909423742189457123184134174354926355819714098335121507180385100835591251916000876726160183870488646234416990238650585586899768882082467565368341014806379157478457225229180246960221158819679593816682925127793962445375790371041742122456281776879312262493438453353758010158688969156060893575410182267945353663073406927382968502491754902152008540449766409200706400388171577413754627490631923969486292813152606020651857798653496970264078794342235165430698149851488035461922119026618918008373869470005458761060624266302786835362781425938574844400248154622422189538047563684841748621876245774432886750446613868367344017331566686086067888784719811128375584532211757340511536856304354707145953178551553238805143557430988486075954688031270167576097646353462007142591904697016513363145221037599004176578064577196686977607473276497528219953799617225028850838014933441069215368292383926166581921358077999164505205180646783341434818615200398668823569532788226810674328366457152326608073555969250988603725275339808502547155693845486521452921620289571519545497363475389075435130034097768599985002052523092838893282198022778823733253550103820493769765803827966792071518562763421585321110584509069907792942731344820098543302567314015823633718765735220455092716126413698538113224753787960944877768023747676398331261058308436739998001565275032267026430749394947754803190615221322624787700870252993341329066323847381899449185900519148869605408889608360459839529147823391051711203687020595772301921358507828146039199672849241208231297740555636345426039887834196643183635377928495788863428399412322027620329105284030017090899035981363019017748805951836385107718781628042410513400260425357046562662766131947370705715275836011091966368024210649038394516635004470659021982068469670717995130753872614434739353927506672235120508048385430081451593883184465066395039202219649056166707244568239919600897599987210608625750042785861269507007603325979465233981508028318407004099940493503201324645582624470525385237038119280853644852512888493802654779321371412457684106026856216892688992215037991709117408184906534496066741958676453738814086628412870014542200382810379434545327252982419189766452671057242301737415785459448303457124551634743851223848050700093273694652754113056217221164939328810750520669063749630976886383023108256138006900218691531404606911619327497911456185766105327532150580407192079775030478166092046560311924317300566278440920947467651497024646836768229206254863078841576698617642763684296520753912568580777110510361191467816777697069269836331454119617864346901994776257566442924544533815323118802344388883456055489172278438275387430296961499621612249655081707096226964878573598855319988289170726035818460161928148986590497030534016071474281409152099774753040355562716183155316974736464284704931131623660540623494373428490824717927909081275574140784740854174682133712907196196266892085224750786712532709533481528056334296700550744514190641047342998447810468295608345955988729211239006019343807571138782161283691664464926308459953300915167976256219834794043345154444848097026591187440516804018418819446192644298594706931135612676983650160755165128757561307471349219418555065163665209182611882903621866000664025158196570514163443233589115313200679974832660051679675100976659357566511384729029907484101280195840009807422921949000642005265145080802431657649261101327150545498067048931748184192940293130650791009963101134450682600981955742639974643777754358124737151257297342417079767467008750844670502329426293023908190792752005267624715412059916424057465849411858970295708707630719142935656671815395673158441538678984990554455262512546428701144359637112485370278056343032232960326991567589008448235186736591048233086468521529496193273963485183062445826215598819657452042004054758859706525846424297889953536022359815523551467059568442385702182286972128539923479829464871372337633429641737692950376110382526311367736959255841773755543954366997858119693229947779269175872518664051414005177312547874195001348131387085146949440955581039792562663855075602672189221906882326548875808553470070767922924301019517390088560985885910644506506149977498252725705299693002732371241106631024978639068981686494440856221732680313430801974894729211304913309543371949659225144958539498345495877583455968444056054792911676295220521467166931134150760983760767167728858979023036177953448672903986182801548782833190288777651735025759150579892056720631934678646542011389280302607960662711899874102248108737058527090639636532414996686393315795471028033438975265526741555421196393727863995156296824378856452897720157934801206772353347021220542483523821742779388688932011874383388859669888315566946305123367193792430047522266518754693641960977472081041341723791428051326337564920797709457077345409080790186035025992665497941782064172885814377766917003613731432644735997836131248388854316123942706854275317797002151569138635218693066414414823775001126766327964879284041077467144171168282161379214704898515840343694350270890253167504509648698580062643633390524983328117214398595227919423726243420969584916421311799644169756396070273416510478261387125694760232382461341332044285022283172702789543982209921421924936716706850300784743807530792498668563582109851774776685242779974462145887955853727652683517507402602455768959473577636220070406214522495382130461095843451610240905233522496376791379857021273805361557202179731652614615927228242201796600101444808840961555096424006146628423171101138629828626672448816304890890882822390694529451142138113180039510681378019665192835390242009182348769385628388768125669012284372161893512383778747840881559874508859727461743533840847625986475786958239548021545410143695686692721227203169685032526063936909365025551041165190867555465266196432083868099379776922085379191986845076842312849450417593077313841896054306042422579329403768543142910699804692373041736459661933260081060552373086025405905334358877407822486657577519570049108895140155958711188022123313140771720269805132976259636053440727063663185797796192143791174379109897068477799747342292737852523879380552988899837136761741253384301054192960901884411268844461743353020258980704003495755583897496177408855312476321193110126283118405240771688901102006810521207400688158153827947058338615657085090304661283611646922014730527506790632065603726449185041974938747494033298505635673981161336011516079925654189548520896505239413613543667642341298289695605941403882643376376964946143545563919116062367379802853096765465645983913468610674146114212739099282445506782466389744390961902632691803603740360678842973740137253934762506357806101227176731987717916105981133978936785188289545746798041460498822352966027430591508154141396122827359996617905096141486758354630778230320675736241995649881178134476023086371384830723399192664177839708245283194751353663138046013925723222317465670287926256142980212552659291241197311503642173368448873390739724467433636238253842418940246487746680285801621172084108949845827982635827103532656121194611813286063601194569893981812818342648630042764571073896767553668631902072995372332700136154883774203882291655167649501132516220282534218886030828643550239954051031236665445785186249186396064702792058738987888079208943516500022049830662982008930478131087261958959599169241275238467890180648953280809093317090551098324942405156515938287274907271105095199876033704564892559095995995664008815785963844102903863507138354603729788000533550670103436057833814200916239153551828593803852049660856655905161389292773076147215273371528072285540920073673955192815579647406613265611943308563175172765933416906292883121782172989241053491956267167281008576241125850535276043229493037394652008225344609770439708391509176466089360106035102181991691320813615510226661406738211051038621097375294260435506825662523815292241177582323894907703811105198898436167880241558560620232962411492632260097782938940196846019574137379278578671264376051930798801995507142549832590604262008210704493340678944680103142749680658514472912703462761210625461613950654241876503574237330349046159820786745944646143502655395427492993211504475367679528022241167654762443462279726232622185144451129805739360285630530578922494616390888057222303058937980865172969889712536171157637588117898731044972913223108811953197487665903877907036114186730203728288013828619147589867761856523047808353230215575947097598172601493002319427319911404488926231222815612807795205995030728185719290620246115226136449320277338909409615301800296015567672411549241204572243713607841088273276481601301674768170834308851712586332062996586229448536614951908964456678099082492968196360978746080890249902631590444444796185446189631873868960122936908587171445853433384751182309296211616917157786083688971389648858133818192074530075422652284820389740113603524711552795204064966492166830005259806396362014462780661376401843383256200759913938814187938771954617297577508760220704977497823046839800765943683663916593805098411014135588558346545489330952726011459571715917125211064372646064174777901128319741851101499192149957115003519801860603441842552263143298274621444050731984050730770688775891411931319459533677015356069842969420285950476105786185636523019012990219383941254895604067847283917155066023351725917499313578346921110259145203962986707081946595328017979272181457120173650379072918817178924867801884438338325947311748216808047235971654721839278519647229037824871574408809151704355694965799040181339968245547682630108375917828008269459150439214402706364676172435610883806104075892024672955083649888627120746985008502790147422724822709188515270619236605805283261623278132023419233500996300407335158097240425099238164846782690724454414416579318024443247234944637604967615872453269636529162713539449951840368386222671142924490433452261424071624400559537090648299115488632442476994276934173449014489462369868755620035654485816485966784055607524458422840413693079575118207063429587843659952384053371727521674790851529322506698033513546990388707622025891355322298985457705692655410028122470293110518532088259517162304549880131591274397282429885439145288435517102234138455468823427045789576245117179376571802286027728497858370853529100678465746245589029260568672896506977999996661081546911240559165556839834664909479176994825648894671284592669732630932320719506552961094248498468692013196841676763890429283591911389027750787460536270100343763174099108229141552281776525772711644762200773211655015590043312133172076422960218808457155841648390134485613016835060937486757600298926904522759587622665501312710955329956551908228256107941016440856374113591796879447247291463937102944425902395788485316875639120608036601883998600940527553640107477164603982826058244635021666848266485023148652609305324816096362113179032800549531790171067678593834951458436828017039433706384994166084702119354692003680636663670738717840256033541888368869532186383005605754721833442745569538530466412662413342110817389953482404228432211874497767675133574297402933628409423243117953435269047922880475139037561004294806027805150040816813483555661827254472473613960349477836902688578528881335163667161842012299183157446429259646905296268946806214199137364861510038752405954562203277577514436441374202238043288570583446552356390630612245380721403301110861762127631106756624198368775658812209750405221515289768128587862910541377798009921690301297870581243328192208620765411126026304360300604347115905550132370485917977034879362753547447510888834917049414633270355520670704544598116143583221685864005429649178770343416796970003616201593877360479597676612763704047044766766877268989295930648769759248851553014009754489349253875813399093469664223031729025654827430342512985890950784498316280679459790066228845702640578114706491297270983069616768790218934170814053814861723651004613228798132733539213674473942036876301267183241083627000439537771787829040036120355429274874383355796614247495338460275193275776482378280462392355692224720969978228500400980808205416992987827033165723417569838849887686253360209661264581065600513665150961984202979577182755040091048655669254336024290534841064379292731368185994787164189797690368739593359412374735444553480710527059606740578074729336796223662659793901116060371546624566358795825862803883583359037939448588262642656891835412696178823941120046266773228392066761610472311192215400938693235486634819684400585424510544481135050058854857736747822070585936380152297131523732955849347643341706912133999708122122544063278394747955489909580624187598631904826831321938008814611844926981903941443585466638748953622679388434193458143581093872251172008389732006576023785194669505853255978605967043335639110722048831889789148195436370657417950997664224151988151667250851923085781045403429924388517006335032385431996452530855158376257392594715741055314340123312608204894521832269092826144222966652524097923785597954775068420552474137461608265456245173639897535011131879075677127956609334585709812650667336408734776006215981658765026245428463040663951263651075990374996500603204218025053452518241365626471673450640381981826402257837877981892154599434184065018171166959545618009351549509637775950474161230202002395025573078261670006625922417118862755399624377776450635816333425833779714627097713360950838946678704167688345295321206569642175055850838160019919999315178572715487914094869922220278695272057029179713521480572413399575080775381779595143906147473470660064733378390517941736619463686953990601644749153123221303148328765246221970967888542392749335986048266737302146392211797265492941036193217397871285261737334122336239063085222408144869863155704888257469438226077239911293064299697269506860944252940628813913311656014681218180813742316606108828043142639610581875575417246790553513309919163982653392429680842098828526933021126390652493360021979642969347070065688125523233596888347809440039458086642489982727911139998317408030161759772150233426051346142804388486083182950980843068843403144419136405574448318857689707283279122425626592213964534342758272884718819519018232796101367288115892527122769935921560694972368151850376346021177150818150166942579805525293236462909831770471205890951739856240621269713766084254670282313092273082473277577567054120936073869069645224380801104982751413091891514695598461747928567337455177388578970392448895057206465567278008781036160577873059917099620184197868066260055791672820008441426696606966896125468743252309975160329494380594011962476052704341818152047128545645414599730939604838706642127157278921530681892180987090714238078566398973516262757035181412258195779580705068296472828658988926958674813547267443397044567460241593302666292436393760012547973153372393131678117438490565591796318217556500705175621693599613597696621405340655750980916515257753488445567841677354158769033172207097791413008473155537851945268213792837800129508078710480417822212252489878930423293418770208066534408345338153511346282720320519492882224766506899861247173700339511841516878727649488705120679569236283791258835279921776385480106555475372992245732979033167867456163996131376982512734437356343347642405250953011653339482772108679354248282321030392099670868501403986571328039410461318822654984439151122074937113001951605477408468471503746098106088067069336505974147201512643752329732312882660717743870282000367329535364130792847124858001759604401367753275193513409237400129179785483326038762410845564952713249599444563090308289120727325855256483774500027109290861532098180677675843890574745059145360007452412596934788028338851037130460467642565094952762774604913583655894495822045633413957639355333244325744477828144793482070374260897813984813274010558338091016600030446039305371598290863468361972144091492451086662868986321204321471904556420720932347729564937571731806906533968994821390935283477619408024994649209294326491351916939641309219349356380907074861198882723405721510571106906857473949455438046122895634836664761881693619969875677694514544516184017523388491632503555325345824841321562931519588598752253288746780072700256480844318631091993705426866841367370109933225047767937100444108468598477768398062674273288519348295701364189760070663183270712517705232735263000455763531174365059101039468206543717563893716032134249708120273000390895165175869780330497263665654799990758869238633700453811555896798437469676080018099290759833805354857237419729942986869469449109359523117417404393428923154208792316357391167318307101349952979642814986701613537732101779652505264790886174144691580555502019538730590579209820129006934908804642272784624833656800816690818146168284025208557413077806593941040664416312161623145198549410017815832810934713923435016006081329762794020012135722629644695364713967913058932648118259338653294620901375210315732287400580668065724598662955798231678256584012690332365136766073470858359477195572474090443138279575938098015486962215878681395221428023602343777431934881390622343681944483278523528707232986491209720473607011423254957777374236323729107891806643705994849374912491805482939447179096863783245786181465932689587263731032112456762329255182963909797471308403512839285551877051287649800546097150163980792661945254644405091290443110501191616854775176091732685169847732659076836351711902045177022709939685274858504476539414752981876191897109539967465445711669069453568640875744383019869613036073103511730003348549905991475031100360475277502104193195829676429403031585691399993085682192026903697395977010647388998909519994758965811746220313245447232804651458127402867495763336367768602448479516582521990035117376123947739162112070768763092342649305742103835569456489304098399201934102618225632681713521130136432649449980487981261451413110594547773145993047485146984585547102847799807477526624642021685423512801099160822593413172990746960354570471413865625626348518164188806062549797634724345715329092673661092211374732996729954735640768442427603666855597946522101893269673539841432083527378465794147019322051650456682160288499094618695631807931116996747358647562399644253067804558592615191938849985560778311002791892055088686637966053373601222489523305473996065300794334147770110954458024440888672244777963250044382542983174532330877605705782193126640960878789282750982859757228844065795834892220909907467673703015260016260928023930452202526660724419188839664885212072596451660693882531769655116047157922379574358987994213556907448757674120708788206039350692868594019915790236526454188968850467956480953686122134639446243079912166938743549156687394970520490859239755545633539591903598843679885049371766282017391957605545017560097005432387118018688838416304685746598561420858710380022752681598631070788551875750379426936138110119467552405299903227182366168579239313668702383193779340691379034570357902092450205489532536438587642279121399460916088163658015957851865567335756606352138680670904201420812554718573015796519148591062381103331058213392584997630913595564830974002127229750013124250289680588174973653953373635067552587779678976016957759871766871291703570435452019117405749020615422663737578129082108161684975097531073662982853962484478439016459380560208147415866086569141224854246510334755482283868129942520316129976778478247693129692213660785108171619280707005473492598366389450834688542963885722897126605492591170620516909466023557476947942074519200357813900992946058371911186713574121924869774341896810941813359918603000792979920215264222525963208799668320589268030626379054359537224456541926330285926638849623459564518032820062479903041007154488553382170364670907537949998484924936887814637467802547375189359392762807086870580398195029442377518204138533728446680300962671703258877443468323220498372237340700428360983360635310942347967951770271022679639698241699330752444006045747757247711953213326118802437649043772939951041453432466241097932166630517007679621807849805691019109527985239603250844683035478802536681704089530399660414553277064886084202118001348283309370653993090578063755438852695598607568063042362938982321219253783557225152875030039587069713461613148797081941506012955407032893281149056240887356196366176066595632431296468671800467643667025289283480217433580886200133771440635416959176578932959976746127368559305433318694358496939498372130134682142395726289714834944122491130079661305663439370112637540313776574737943654814578854114334910396545338024064358227696812934157923646861361378147963465176491614682891103593773967070063720718912027651529050673332816622760142131143534300797353993276960542181554805873969016380994967885012079173655300274890472152978073825925998252144867369581836996532608083697052824174206483888015480366082647403573527038388367180437499173025855625648427766752973250471976399866657666501027295088973888650979908033035484398948603489631748837747180377787409194625213497804757797852901903512144600857786420644327711161373231393869289865477354402962968893653558137441964870793056094579406057540395603835143771649308926269301317839473619078007979010182372316951339490878509204639605341786719274471451379386954904384812173698376620912047554565027420084302524237290456238612337493488812423426754560437078476664367215471045700599061032290033348741448906880857057566879593501906575352365994285463607873351555884596998631370065151999919558948351721782443462491193613848880701233243708023626932463856705033844373112991326127664060889094970040344618945650566862347168597795215625005377391944134349231641378717598240396005726997575598321298069737969139283740342248445054942325276277795945808629775465748376094681053531710818044042229691657299736485683481459812118593641359557568481330157467444799433819939846563619753610491402018864988361003998245773692351764957647939284426313815950308937622346851532919733905383499736380481165269793635919673852241210318101929509846257174253343972416800972835429998770592359597549722372482174776725482537174067401804966943065683631250620686234777474812143629519954557393049587165327200301880927603457930996295680535683811168879277098432410845257127995771299983222929411798976561172614929274812309125609029851759236525582596278723818520432088589341535774156817486256851480698086273198818668536299388594368360453509466561626254360267758415364287759566328607842242163133526902287316823583065439397053654607274698904403820744642470474963407789048790048882516554582088992748340786092380493269513412136217176583453493739510145658447958327372684295902531400840334531040302095551534690376745486587487987944895078868625503022005728680885196708585936605432434469803599586418952217967602801632158107580173898026890747433511819610524822947580624740302762538526844625156204381578333294997460516707016191450658308979258871327666530701190603408499598114338275414260914673783772678504996277407151084865946142758583312902737822630038921422288186881510809325589298382271191593205916994732857388555647535197361234176522826749574433977977781819074774361275307752085456770459549812604422924848263359133671662561037163667273317194037730925807186888097651811547331020138034265616558375340772364490309718357531249453791200855125662768742650828115572253024492365385717631992446459475805278516342092920893462338835309527150274917196365291897159170891595283411759412889309946227602457691100626262196435715364336955029655986042181058814510991403675706340936565057143812602643027667161247535504060695719890614607142719787287690411153000172397659208330304559269392487655756650714388528331208423952972913240915769130286683909624555160161122617734584039525897081282644014051158948509277447545411427232952530715086067325985061434670453840133660583678694986203149106264046373945370757117329842165674356789376312828437159561901677237036880658381574515943431428566285875505183381132233330592794099172369058696186654075223736215025756014754196432796294390805305636665501717831127800344309596052079172753283432565122241130003055144230120339530316462909958631985739739215778013947919107596745090111442143578596567597888198556004354510401464789368127607556280255584805199337253141031750010168205145223075933826609755251518724669289099441773684976995815220581983641240684341496740426418077364232127291887561701626580877456338497950363597320925075515784845657397822432074459369418690339449967995739489833980296609365089781645269322761199777493329100424864106974018526947711417546335747119718374500622059395538486846158860561851195177866814583829526743821507186900430044198136169582483587310780761516223583649275359143193050644939939434758836015662916292825327027285527644669429310777993970387764131295100521500106303250021881638721676701760450721467274927301000086139801043238431124196045351182436896066415605582798771696985427626032858158968367967319223197673611674706213287317622387106981848078744327691427430302065777220062858044983015908348719817280481389275152608785204851070382000186403713992455685622387335028671317458033629906671194404739661758294747744322870359775508684527779347841155401061341400063917376237103541214516703923777376627377671423540279132567055269270219720447119022843037712507584130567667672801548697193629930189139557995096538145662582889857253058623117109676601014094683316024282379894279171183111317818465839008612811154421231199823197273534489914769480154827533946613186541731953978492263126606259429379645120449118717873011818412404268425781053590873094762912914865960671527972797462331892579834964252230604057974535870932005725748074289931063966762587958877797983979506647665500335607103977359953272326019357971011422032836298571150491054727632857708317782306955708156029066993479763402641185788492841276220727787914389015580505234731124913011485419945088206986222613855123642027703528820840989469344014642042661748489984195384486912458583330370731301179277000271168498880276638631821868209686518399243232022633265570719530899439363358554181364658283959913690486822028012186255416763856430176369934920091465915287217641553997835280457824486021713345801605412764808845456645207900966985387545733081744964564978453024355234636678382757195774102945727428978754337217624033804870170917308872685229950523386851830206994797432851137271277888435796467885243171174144292412291377284009160790670796358679576680077723984743900330882168688718793259984485551250652907224558562835798196169379318005630475294986051069551359709923588330042805898203163424408170541859506583184976139663085181100173720616697026863739496123848883669862827758501097755733279256600377671283327902735783130580156668427683159490466756589672393894782137761427019268617408048477070081785611327804826531156944923760622170539456146841554783006257199116606541581399570324373528363846791320107754686669649283884002312054104353542225466714226333472722063471151782499133117029648501905958720778493266127240304288584758615912007673077543101808229976331052383216194339565009666401717301729906801122873953040533255298042240354388912699255015161398942385153250536860269661166799241373667869236388433420383127960586665098898558076292674540012884729835715376765551760462657906350721182415901922525255396721353852533652930220313117018541519213282798123925898379305070830376988552844808275896971011892273766480049025797044818824635985542511712304104469554432380203230337358790635197476192414515123441048136584821310022280313877830455586011030774061781860329720224047785035971993831684695591269571166545861469894927115592045988697046881221251107472014087762764835279244397189364941157483993462690235546687096419802229602349962522530403866268672130805050989422500052857417353077896701602675211634151893563194328803126208168602303971693098589546512015209314052836727320216405177915431950075934757422988311175689065072740136535491051673885479654827536576846476858929681979173992830359785471189574277113697859544343761874053733325082312309281763454589316635579153301192970249177800268540224803926499558007528669915180963158938013162743358284923995913246242503122705157477452430054191629618601463959591650007047440201992937736479134680163200587684470692721757815609236416528255608170524360271919815742028446757622378420003995821040391119330660012884664125714225650317595379677562970333235728004461421357673013947888413244965802045162608717496595961739866682914779593078858875257350513145818185340257482146522646405251074795278880638265365365182332089741314422112513329937052969200979946565951248119850378720783423641063793394899670506381249251986067281076493624855775303857754745582195297231317090214746755296801710976658458211840951449606570278292508045937667274166495753596113878549757185159024503785746859633649148136664635707547224851241652773242091902453198436870558386319181189713718512170240521299091648773956778532764999833076275571827840222975007891906646707591872719320418124863952579677623950066157056289633901937431165870433023109172252147908800567840670073602650321130000543161633128943072450879826594155600444473463552387033505100776797055532503551315634254637447590113478041030856027421333458738714796305448834111094245819745492758349418022172980880203203276679272857423520890733056433693591564202468414139923671493697112110582344805638844295933835571327789215867374783773898733133338193864309730188805048630908021371293608340292513497092223268701548224274811188665452028826365168990957840725249645017459524736746783254863583645503264130535180367121505811398240100407436568930289982185930828126691315714817763295877426503675957155007496762040307590126290038512212511180862518888894293285410089537234165003099310368511822942171261983676481850404716321711936627294613653976735764654421456428583836256230876264000568539926132073572518729707069904328622116689959399506161851783604363736979524633150100939317464735520538575474905660992589016774193147029882921191889667438265688890257981276500779944465167005331758943672074126197111827396294770465552330291264695805088583108061061565815449293097088865272346692516840055272668320486913554232138069909363084745411588151250631036944084207434818038929737757192035028336584274896792047320016837213768319252241824704791114005493528350588907164191103508714543265404922732954803031731184941844435549722791068308564168298124426055162639309504244628235985848784299716423330102699677482450154702659499362027678050484638958796177514444557481816229725377750042818402600970990848821698588633409819918556953940563855351456739688797705211359299038958951770992499872680884810378876223595686980304691868243601884413521910505770667027327745675434510991665297680220241530164541314185653628383794742186458257378382863559947040070888800684400863706766472207819036562127416973861047873045365111173610176357055148724873830784766559240901314184198169390949676305147264702568495763196091575935499438613242520076696218723279757296902167883607660306093655247766759385088428184377174613189869394611916205074807506069529218183931273171345740986487942625348085492561833779708901671555072307230199689105561398029865004100691396745806330297164131485013618108403526387584237403981683961447169004835362534645242179231146975071730059278007690593256047341243007594631474389615949920199396809711272757505352312561733532350174856401463619665124089549684367785013053283293896035895630390104733736518305822806793349000876593121288301720899551258347220187814398814663955393251712294960353165793270190539299256423251090490461464425274938727958025785765826686953484413745581383838562848866016642548229949131231513936829763170603682076678319284772033438634955183683336376343856595552476721618919867939458726204331449857178033035296170513843563070143219217987511361835221874348897404047130329470587306790149532253155898920630248250612632644507208027667609851588056857141066029783383982537723115631593437371307428425932200539116009306888877434726555018744050393707616265472658640739617318287066014926336605322466749918927830729503757563693173280926321416480954927337445544236652939463213251415310092573814791222241986708721322210832173457303305887579548806371473520733857811173249079040571418322337027094059518060627459603379002489819531223477932018434437445605439232731549985221029902823282995646709096168964158131527178449572119887197612271582984830352164365076149020355236415842730069034396627131932226032111991183844971896135305796239778838497297890857534066851330033471583137299494011758371398970573120570066651760740801491890907041785036120197776137971956719853245660327301048517519560818621229803215466692855763784061178269745648349573781732479940329820359354440336110039157580544381687103881667989981427096711563480657467879979102024258067857852259158324986974428677366218305130205965737017632053603547969651223685593544129516322972383383883408727441008482577958098983654762959661775126606328826461821206502942819695469742240287368345790443175031021351280902443341028804526127825898627861451449148201668319907897866473124748377752758722402364650118572723244951130292503317494859224752817018798569572839707371608848478199383415733129845984283964305563930168611725125822258984889811856393487538418287286224565305831763963848401711885768176790976546349858998368192824544548556262055554193875819397719432762377975223722451066644184834984888456837495240704509160673905509475588586405729286369571540800045289534380037491848945919979976150319614689570770682846942555865758046838183095186941428939311568039708266249381779559516877981426829449774017561408476874227110306138938135237921662333255338771936256566046824884484605759010078131469184568444444494725037960740215185299673437549789586022764133883790149922609482635400689949440268969582936830965966122639655706207179262448032784308881867165951191544535106309388228324018876669064885351680488219261612829284654061889596683157122659601239499708006877799790446636340784157265713771951318996638102162093323509879693361677975128125452509089961377358377761838105203121113564841877420184673441665753644776803404792752186061407645901759459646380604089856380180189552680717401513673351705815740143485600911346057742376854564109692640744001001293388118036244601978416596294341440530743750770547276077239066903589426582483871328443069720876558013914396438832992861485733730218717079691205107823335084323572463137967273178648453897789043898390955874102576601526172060070785819177380079970364480966556143530581318478817499047092871000394630393172073882951860548642321230746370629283615919164518488791150866938737966513710164279196426410250841182092697392354963737097940247604828831176430895577677916904992457281890805326002511793598141307801731400336199324283325506196542732645734545016443349030242435659875349999961601571577659041735730236612025686246379998575586365042042845995552354449572059008275769087997482616544469946521922125462551829650881515373814400372175593445957409105688315456077149243596379052338623032499328013155367699745236897644259980038960242736250967921609007231882374238474071017383959746454214676904436896131314311324026691211535328551976704559582368082997171165624298193461039822046147789127265130514278955111975200959095417041976272659189149939707536570004354791344858548285033905367564508254857784300639796605039687479613509499372234262472357875971894671929711957316977969720994973470958547251836667032276279293573541824782757599209112958510553789900052405898412006178946247615793446682801969836985205479554356944831783196103878762204688578374969026736352694133516685191112686498193984883708973489279253315977115879399641265575103198817846807564926941302583877714318640884128356769720854076496158241710242779287892564700749989759176720576320468988547304694655449617865623151304058005239128544464190655435441905403876069314595006662301564472482731326768082312560869333096504720501850561168353317635569284450491248010456830620077328376971425141896774370231017512919761352810042419284744651648795778166066283571348995577252896562040350257246733268185627416829502619834062585444928878177674117825339884395913592222881848959243826575430389654481546784979040893448582383207627229835504681007656513702469784168261837163979938001867973821299402690245022436822695500001782975387667118007845878615131850640575497955935312297977509588789155682666946200175642539565267448513747604875162916010641062355244182478658337837454504947865034158796846912544146045161675887968240113389109906223663684549201129529122551973246187728120384932493668942049452801829871061741436732328123230479274655559008616441803903169041729328167720471266432211218428892216728119611160651243420370179981964355944730620546957870666712892114759815016995406011088111104117436783580522918963002869274130447183985481274541189547235471082934456539578585555675158895698944791600794753117831984359018249593489847906984891627997117313940337818986923670780032106136088738573318725536989186877185384628165235967109920187412346414889261456671339522259178333313601022262792786342822057222970355042312723121088129691423190041763145363670680263680473505258215022180795369655758555432963990544469951686278541442104717833038348558626515700396886537612255367464620646745655854029003392712469350331203718436998850483146248469924150209735436760852580177733788772751685439298757359164961437476293803697870544897336351810368005331763939279755066430711181065242011912978750463246144174979766910985071872397063741593615098848735405015748671943122729492236436814166492026820834960473107588092146337535667012167453048093506277074277052169649319267712110570286024471300633385414202384351020468923212742726002812100134105515342546035980858309639567406854658270855700832133468318985740007112343672181180034077560892436148743384097847165866921965292444538517303027467997769156565911018566197174381360980880499864561078012388767579140153391238841216570611198065604083113604885223925663980429578491635236998755262571396031223165690155538953155560864097461434009629736491829794329740934366214183628946957064076130349270037563662124172276683000729478772254146858724619169276046735273473719745128847766001338089757574495203354359115418407444073632682539380307900229049804897367559698969322448072940290162167951943001804578238262618745412845341552677374883101913196490230586166651256633535463386492662422077885252580766946976894455776612509983781124340093159858238361828353087388647778052373100779307503844849003043570771625037330225468621216024578329895674875247392434985893429185890169539095746021949896022914756984156294805087006083156340046588650190491453774318513252272620909653607412423852607687361479927324308306973157347380248607833571929206972366201606082666572940385897157501195611916241311015697978148080877885059085155433683668636663885328162451052788662921196426573320118099923003866928017893059563092015124345535880993225801210897517283532379169631723483495050405543570590883719772882731999599881636339580383041710176862580086593362936968757769656022299023257443865235212542408876016103672297109603159155819990025100352089896376023879554567824594656711015232428219077388727957337561580380305297844996222938368645417248792902858702065029980385346043828980352443433776270858904526220657038911143995179485885271977560761405628516607069485316532003981859629305158817556488733772846536864831371684363492574452239534537377734286661392605279847035374053739809706506173779511722982660167347486559666654064495763267103076703651018366780899540464548926374568336345783940235845117618661253703231765746665208546814004412649583429906459421870027640067127845740750187502271734925116773657766750101168474583407046682664386816365477135676511905888385608359496772195949145763068389541528551155305075471866757324380314247182084125374985808083299962127523117311692609780024191083574226072873231008921388766849083561855093374240149808368285008420019997326017382870274037230146081574837668394666896900480296782945382546528259825673798370435713383329377789858899600354312338307570117353023559512113925242629927735934757490826549400356313727514662316791838288518388272016709836270658686585077831380483098153894864066052869145531710619726168000711354304817447836918793405421221881509755342079192618484190630416518648132394408897321828545527625457684597010348267587844860748231610152557927909826364083345321219101436108912974511224822438156438897162271470238601124829036650402564662040492389452624068867149680324832554236746412114161089555957820875161831118541805100255989060831265873341695026391359493368516089270754255900811807921581050007069723207079549719221739614634815448809119668959982046756550687511239807071897585085813458826435881216551737423514325298074237094219898037560487517601797076748138362958147249373354912692867725244336960844601062334917348581917612565614019476445358722701364078475841623971889143623479122233124260493763029223998363090945710844636947977688473823120967052758701622166841262528563698902416014708050878278131729841046857784152150151555025748709631133252195290573295761531508838027314534353810215062523236306084159473030476031609950719049599808556184492571457907296718345908444226600310593102686046141785163825616129325316652542050769595166348979816966544490836701972348011223323532789033121900606578814188822644227773090883280650097127139825724269287970801909222104807674035468920133596827183531775180837659184501385859580254605527778316103508076485160693186460201334682245110611469003440057937185605175240604583419216854791126096305681473843169492761449369721947521453989518020927399692946580458573796918688346254199356986910997450191819630140754885508606125435797414066318983500824069949945070620475039407747318191146274333846131669426856425710431390300605733836845074535385854375877369735729155781652015681062198974226366604218107715307937280808627541355777452537941813665567182376400126440725260506431880987521035863841153647724032190111517504433868852460932925605682699310426407548877730551806677207213280304721789782962936851848260795299101230272165722732055135512295890025882410592820458247476616698794824972951725271874121487986313114658870383961251540040479829086270147635827527439682200994425499007691769943046304762689182477823741512808810425734874217640397169959447053708407577304557127535835177625097366146576272788602061282055056592957092758338515644484565169792549558849055114374764377383216039562102027735116619188739372221002578359283983877384150226528804375017525322777312109045714642833611318898816587529832721490249346509066467519004190868090320246825311873684909536178947263386775298384037909557808308052915747057804832287090758541584375564317006662121687175052721528925251961164477137166122831674017282305383453858767109108842645570793675350703839785968152597105423090368665162256727120267071137982851249864168068452462507079680617407293380695720972393744523206867763598691249813464602638858083538733765912812407078940454576037882808240311496082026852087201692416975900407543698702991532278605604251976471629462743916860294540585238998557141552193169851686025084483369984173566334082821145138874787996603115883318383042795304984748554556056902728051489563876125218178556368549803114093522827939074403116849270033710804866630467680795272932033299461435047501256681040028726858067177360176278483517805179040080976100163096358083398332941031080782974574944028116324141735095382810308765474660230547093294383463795230190177332702681915811326231045876625448755839975161445697069507473607034676198990985460490461272715760020330908621761057430943192926300533082579097001816406133490774739786440647997705088959287286762003817124554246909737065403892068335658024945887916733971869787860890228443190215055930483269918657552953157877418709612013875769954267980109399667519491111058007435601935778336760010228800739586267944233618840767687776948120537853188843804744677981503776606495509893206224207241135984148071266377420133958388706288524689357943745305654606972511536792356392239929428612788744570504281710847017863098117871096226768220749114912299606718349148373701985681159867814909532680768097353391896009516138161634532951123661039050813254487226435400816295645522588729980408704657651397626366676261321635900106233643993707272744601466826216313178864883275207968183708916104151288282484604564618157033316368800556548652095207181353486200123060786269996067317964739065655447706693020657965242129650611415652439763990278851905092466643229607911750024742808994136823041219627055191832626396929078468327817076473434594003836517458690578179298880684650621771859411217752498709386455879822639562289484924807998317689702691346690655588670156679452478534131753870408700950514259135072520245806699626620961767544903016632842307624219094019347955790420756711607864578628270910383047100089545548413262603589814673831000532621012834998292246485297634204169024866517921896390258212341304417170715310508199251450542080907291012294765540000374157904054597087193332844525090146003369520330808261658473372301709871364377339828760817954874245494930026452683867496055198598024519106037116257530840821207041505542982852392189368468075736473531722216903580136315054401007186352512333240657024699763701427171534313933333684631643429550762967935419858767223079868685632415663641810841190234030694400039178792464513937508132953322331187577226976972727098434525374694208170927515480438980457089105521501365240936354201273826726790067122080301232870722784979140455048440767572803689769385256733729991211355828766245977293542152856362874297039174936777749873946601974008908707604189382949203014060592395207194440022255184702758898459289761119101634065617924308731681436430235261202307325231755994979647583613723909204219673193592737811842349276389723403932937227778920866089184585913849359344123430220377817091487184540694535122977703211020623793630326516943484500349793217119700810825962401778005921998580865292886693445997990991370427566311248449033898297832969417947291635034773470332726981629900035317454819937116342378389067544515677305210229409250767024861733600662331059030809423482341815134447241491991169558516852813787225181984317161931966250943941971444259503615810630738058197851256359665829619839715299417024448558053315667608648138268360586831742500969600660753014168768667852631122098248664660971690971782581408136392610375102633844700170178725268206824887822800709492111318774818835960021899194805517400000580583801294165337772691641513706082231561200269087014960312439347882511011048723125943450377634985965188259922357398038789957112055749482964466874731932747517217807282145260712578135620185068843433579364071236338968054735743158117081899740132268637324623480695124239133502412130844112125843423611696878569712391127089675483691333955958983293057162382515548691365754701450061126866868470633690561087506960298334942075188008127648399290167855711475906514468250299894546857725094921473450846317629253916943869711343593825461248571687921064685681390234923906613834641851571882781830102635738681435035400205761641229765563053998034469219546016292892465779367158197421368574034670701182272469281976106118318672250271627762379520544376919813375984999593470252863781342624282167831436089380400092449576340107297675399621524195281198950621035800412508144205648608298692100008801520480347897364444094536242246982481509808697283225594329301033033636918277943967409653043137926486111861719798545414890709923425104184893941245940180157550818695055333217205063034514841816562473060356597638016032256977890793082989954135065305031920476602487116039366714701325339982156008023055207092528459739899429924557356773679829191076364088136978320352462649292016353882919249796267867303432115113447097011070238188023956581882505939627225843523017146883430223415394443144528358426186591843954324202446570048590845468336541914265862517550298225918363783128258935525808437979411080278576392119451076673323989409737676224627826198020781189486407563988713895519879149283728878301460877645060072852163588801042544807262468843857118772743511194654461315697828216241321482383718416718144465949134426851004219973096915749430387756371826532997532815599328637581963118643345935364602975803575013908938470378011967411791880349247108980308401711761874832066286506902306612845001260113348131550074347760133245084358311787252259433939050344753451218858997874380967487373840038913732589169772807530554507818489952345207843645091462333646689028327015968402911527823420785850221215694210263207891247716152110409638454252244665156054752291790849991050616673031541291570763273958006146988707877629809583424389297079292245213832296811307008013861391821684411238229564747079413786800937272150472314385518307179289103685789057235636880651071540932338732627352342317621987002638182288688495127587258838676601245147092008718840842679916799722267909414858369505408755316675218834818944549736824707716833739889732006684987969440111962650314193821073091714953055699630847501946639942396764005861195635656590352973707523833695867233243608372494693394074737281488005897152728190695753465566722639708575605052186935805734923240528151108419600029955020899315764473028584988942777685600189753730161205856403813968011906116355429215428512196299542863611719239933233870293903414473185761011866847641537927333460381383255989478978132878214323577054354586116780360754831312972469968656385158840104390462535761532773781750002140103066751201433547354402447579769563004335049531550183950861891562176651140873158167905275279862168257849409610694181022922144731788803121805437207433745153980355431145592329535493200449116869222015466268502893465197200473456381562013132141034395252130957316198669629415345464153418013568615114093839839125351791953758894347499418568136945658440228936890869789710632058520758001944833080199052379194235045167215479108658688104749534796120764557488995674751924223087332287483546457109358306795994961892824428359009883557208863688007441359067786024666686244306651967010099881598347382440172219714553653586879746009851886330550661259765486577523778429152675112296586379367107491476075611950047455349627594473248196888209330505788269486616712219114446025727579691434143393529690032082433025609051124265904400853378857218064560174223402916621426945205632041579916574471743620286311743619202814486501518426060850701744257596894636188417792953786222713949649524051362133054258301368948125680666864774052377729688455697330877635621463502934824951317235109760810852957398418626861145733712241289412354343444046294227514907179755902280164810242924246303936327728879544892238149628996232283019576372425176184474400056131662142171292890211039746680941264998093230822185989744759144821440326839569844261263137634049822112744155950874032830078566743295617173096287240463013568715025608155590511407471364601115935150883250860024035705031209821504665688828777738339811765910813075552983847104607370498108607140697783321229733886903464109985559371402353796477634944604681515286394518675448067696879972858399821921441474324852657134985480005882580831300129847621736163558206016883283411940450867633008343068850273679042994795266209510443592084536683923336314432617109072987866619244260774496290157152186734429973344294521303135017920783415730557288137921486688693323408110575036203561756121704736673101035530288709358097971047300425832652634343076029148389139752507321833921463008925583167363509267484165406040941959399421670630501644038212420447429926608281967529660281823994302021972683503028458039851135004209432679039509089103890000724159779459514084486237419943192380039285623716252784729421590524237615143676436716355138438421679067817022126751906445410066425296971057000954457843691353559077060055392250028986947440313661453193190762291621367856357867477832705848431599745586822628441692665439059575271693315683171505741290040311099853196321442480146873236658815468320740223651543112229980646546145716259283277040889164208909665762823447731102686338141658886468067767355425046480948337245032788655922456143184627873237902667466724462534851612497075919734895907033410941139390234456189050561226976842190047223816621955084262473506181963561815723259365518457689874619276035909331472887773409015426805774472747628806254874749272807947029544991840422249938950643596062317374892525043851611262418356225526425685086252663565009358461339764742240220114357245411921304560631622428826646998969695160708207159434246463894657801643140237285899626682120148585058963155315656946369317849949169302310685526990095600455763799538502890574957085191614310418413637529845586330596672647017940945460784798478739918965604435267200389511229697143337500226937673594184201885630265366082911365011323662969911446008386368292245853676114066907689005386922572737181452036212779607931067641834665300158827248155616990793137580795974949415383728685482223576350261612775026292034521847165489273064327490901365584799685124587929581455209871805307208734739309484008168290229979515869374038123669176722337494782250915328859152523729836635301141858366902322315982127608754957627781487547394580567283527711682377846892482844594106294572844542347354745946915895466989747813653673599255094971641163246453974964298575104368793669955722965569911418350634123047796068709882711417229622580217534429325415784531264584054617620581939246938440116627151591751094847885912434008631691222554954785797881722170520196658820765910861739673640071073551921718076423909843497975385595801363272983688945128492615576301654686146300987493027898516391924726403464099286520397202571158238887092351537917667784898090572851824309528866588689848064812124990090198943378291664343031209320444649810227408469870388636976343422174234326756449199204280637434267160375491164767635185404794720554744919301387434393900820816469704279065091449783117910144620213072909492601033012399548865364609586050352637148466273327606015645778696026912901062512094909761541789206950725680785296786411885114461771923578834713215254820308343309743598039696065075614444349378786082234489444145337961017150524669488405547133842262395932376913251273180547728161852625288331385129681801679727853450215731564204381887852558246208968809926828282415332961930706299697635337045338671304060708138092571976099782048936303124043829023547229128894699372486538446986030707682609376467734708982998052952257777768520648887857996458003930988859040168806435122034905372816938448122112624795692024140618269434610445105264575063646192423328799254126384643547276471655496048194212916294825654834540849925200495057729333315445280991407666583067364491269753235020501125169397033619477623624507151780246030869144507906737655133720336734358225987958459687525912978005754265809204617178175942216109941375274624233219815229481152013859848276149821348436831222418105860762911958584133691881324932272202866928885542148546918211371331773053368231180327364561588415532360841949032885864962263221354561569602367221297205620873452914741984465525968367474468779850372847992253812870084714477545966071925851321164830050001269431772030924756967770081166744115145891629774409406177157539097900336580002835087409354372026558379244791534463682670488763675609124926054986020308426108163547596195891298669381417424112799526563827173786322754847390134189065923620873054212827114750113023036403660525330591794428873213914461370945016223334179451857536993776250086752620576773001354159177934198982441200189117264241671190435758280751726021568144541284864432228928462972459424656563033544541800167383643673813368756989793559340169203320923597436964330327055470861073234731447311375989595598604265686579400599779113969939588651405618418350367370869244040065666436933490975962618319504351780258678040091045359842086048483418913076806542427047270012775484351087589334951299977842911125443447564791737236624263942653217446209923397029407882240411517245824385462503290255912823040256241984444833973493891227891814722271827283940826659009271732432373603360750795038392848252819853510826951476114848566725314120302837400703470443494883805105427997460516602390606919794867114205008125800165639830204148954882495044758348354729506351649950422580263522732839247247523980357099659623014528301329565835345668790267559663998972032778206863673887790336223107765058474484903707091327721789554668570925436143676833349573013683738780549343119469860239279021838603025294444889569125468566964920028158123151766948781575797808042114820521473100821639263743310561319997911866080879525843489019173675955870096596333438529253971629437948911472258858986847558759902040437602965315364595134752389390680621769484765107199947029198521645070920706425803459126750255027092528774026432236347804576000821992643614609558562413842844971138610684757527420539131436178847657014432625377674828190046596809838360120224311337270494049996959748049981407683936463937825307538189158450074797314399844868957191634051939487680211741667419002635456381451861382157802266937981054633169138419113311891339434904564020773729116775014921992579177759510684797352332787776663185605535686627530661378064096896640794769541813153728742238427275563302121958312506156750322327239745256884623998224871878131673130424259118493300415855650792789643002136338014940345263080913522013040630052043895360018522912877451623967052080413606555939129681568202117704399733646019044622117380085683310538934448822020546354956139401187492633800630806836936161503749057172373734939811114005738638670395454938154410871091265405252111073241690420147282754686091477052549212602274478999242712485599939270713740297985457909396791222192220226721369938734868011746179857703271065118140105332287023434413295090900221507923369464659356647141578131947303576008103323011294008214663921017376539531633261043532816670863855390050041630708879830019038097902940475095043754102299202561423572109627554316164701132601525745560016045617922993365080369663982798226029090923716129469730221054722188687242600996927289413566089523525292842243171349682657909058104121900308307914984730331674494631368158335407686741262308306578361156047628875197809802781359597701126437231917485417574031774184842011287822700298723586813712628741493765892580034637040807297082102235273206282811555592262244634078045047248414648707600795229826804201217386330791567356544096481502084708541739659859637377785761057829756525739980234133209949157156145441596065185492477660206945897407015349454591690257213368935746868823775740212214816415210297983571147968143017372435931799209099403560768566809885617118254402167030909284946923710082219630540090383708489944871268088872328500502526150414118193892659837297011942744049779846759589096530872808679601106033615445993153105928745210300484248450746943483199859174777990618854352233614618416531716359797668714989392633815283775087754627700082781553392392619764112543068780325571736509724649941189359592654998512686879760903264048956359921510397100000147399229999677734738600135966751385831379912224688632901403334606574507118196437457971164368918285962153639473484698193195792796375273184889061352336822585764889771982572021387945903636764893486702198752018681807657394615166588893831372288502866700747252832134194666926930993254321465812298681042790424312989574102726623973141489119346009882647363819455130249962409559896393727482764880138795550875982766646550048156415703027893185677254846942490296832709615318707647788075709460878784260077201127022191749249582583905353519605232606775547904710410574772036023151284745238967184496355707568479403520564531781548542532401845321046713374249661090725676259558091875487578323548742403196503288996917407915203329060359474142840366036109390948951201840759424153702478613576846839676150490719726946887136386703394901818927151378030428664007958074533272589748858809700470208759665277562333093896062167709051286839502424772093761627278275543186063624506013651374518828239086178989986939549131490184742086220821849075762946925196914384662267374863062652293789482333963636675060490273789391584274051591934554682524616247345228031120278061158876938679556945377952251708496549938501937075857542091335606756078881443844476272242857021183067467474049935807848461803762360577348797165330196729693949363784822669297976483572161747860301636193226800426521431288954516982879875587014911664903562451885987217174650807066237318190417575961982616419318987118902683208071974860916584456866254098017633350454055066870194320152959616883497787596947752125991105714838423934111605155167638014886739127133576919960958792779749427055747045991231273774319810989502664334364999583782814195681232244879367520467957077477120009702914029225949825961504754519408641193095065500860140314237884018118422645450127294516546359970327317805121208749393853685188066609757494522952895517650841448898275982946221583519777218766872576101385146431404276467543689134975561020934052198455690866377623256304712870260879252637552226781282852736742670977832472809688889843741925493760752274654506194107618941001468160819567463320288554772098935846211680560946755761253212658442805468330848410889184559859249278510524734904557310309875921709326331436699293988347376176764706090528641446096750425220576770203989611098674876176432797922326917454268751141244908195067208621143689805353656595622264174440417473214368238541407593402887664806836581583265905070107341468299695954269084103872663963801364696963106869850646254364316833150859311206260567925650953762020556432658705457442187095730409606547954800494432043200071098119065652562600337778077803087907276824818548211147549799303864704592397728739748435879480228472717178939396748384180314166834711047516896446958867939802115833271681023656573922361516595650591712880828984187322924294298722805092200819218301079210092467768757254314927620730527680632768319505983466472508672468183069215673324131375277962384024766132221759226921071499429045810156411193415273420149502253478667334756089125346402479350565953814359551042028371388378789670810875586711674542099235367453158045065781726749576937713583899732552775208239546931697010349807889129862877793724207541576957334512868198922199831804813401126806293042898099157138919111632874386283280608852933636149421152922440315408874722339243611501653726790452282166667042324579270535085354812185898268153185472123238281161159087585374405952384599471410261343927795319506479013857332253818800775256170951889127484699233751303713091751454068607659383364487131073921834650565475576543075453438968856173358245334877251857535815861469666023850303940461881577969634323244265859324425227445266034830236222494747800534427054544650569988212265319041985550632179024132126579755027766951962568143721765133840968178755560674007701914076809361403018482750196512770256220245659706330762337596242699994662763360582213114541868372421495392604336389957565279568046578612141152500065833981995548195882635891469892917500237126906487892391070616839722808464462580060102226550921787050386681994673228767360876840237904295393250907695101317295622998120106403596909737966818477407066856622423117690886481835469857903560979208924857132939845801064171762944927518399518121393872088975798183689957932093287677383857174323086518285425944446837780918554335054216857883735754204255195217665480993402975592509039104673310010090800101767646251830239781279773219894456001764475315880220414526280816625674850723443487741978960103482440597644333449161763880049845922635709276589272319408844252299893942123275255800376756483010010940025260573689610358882074105829660894686572008397038239549336352126968941365032031967043659419615934990801971204490694877810331786025193182646871289206102611361924855622110956348061337907161365751075208782573736176881551280102174379914669538655046547530491108338436223187526383253755177348558712911904053235566077974230751580515046706069247651990841215256261254746510080766593671269111539536870612997433756131622602141135698566935242788364428063763149677890481332832525472042496501439943034115173209580658667747774112216622203261408756872746973774247496863376035160153894338689453392721017455685285915519501038429904327127147774698475143214561712680726577258886153469725764739797459049071120159985391644292497009825979489778865768060267222847858773802715954023742108041438385999486102455991878504310557130705232395601790273600072267088198144967861031310062793530532750457811130019375736638240511891478689166013158802785270433760649821853045129521378662537592875581056331755689923836770821423161876208416800762464844213758551696863564251732639758190953775432429034692789060742805565445283726244701295236349597003466281589626085015965608165777951337752431619858375708711677634237629492568079896166867068658931153419020314284788915702038787087639303442916991561716768265511502212792728072209327555790725696920993212872376160033902075688334602435702275452365387597182381286865356009039395127094014404903060571056341960888640556135561405267210672993473778178438979045297536579224006959311149902425761756190917006022190157632846889210839904883625583002313693343336993956337370195228372919498071128775703373247911133575275079258290759434002314631680275685486588277756861080452632459880673409666167574119799230807804114424461984585510134876692103072196837683535542270396170281130598753747832577392488496287532855404385644171870377755625933148396440537552749865506581863648952072348285030858776734587555617699610376472042934092564358003669566587170518559471229677919890988517075243944054918899310706704480227811838033679724201363600167290346031973363397665285105578259239559403505732298074833718406609836726446158439211067991579417944896898488629356550786921913763729245223662213040586958989798100121619835316587127677941556865570652800972262273620487312633135020885810971638655340618757714813686102210418501703733508907278243615988316153211354425861500911628640531244845316666798394515220693439467727721323471582735773468085697303712059574632733113479139437893144717213755532713172158632744595465559250517112173646960891779122713567319818889590853773276830429620851435763256348323655224865175330772286574595441872417330916206749513179403849988300248287523504571364497515615063668291764114090077253081560591926780351607460153448164514807311961882677946232123296384936371649897614534153474479893483738295250995748698365950203256535221167389387332416926245130466933600567293918683431121017539351781236607372207406991024451908233658608811606033930783172952824125301498886460090531708161254843256731427712197665466518975758241569246137286961207754082956095139147788912884135989316997383603516859346598605776251087193878432330852567022447476942992387052029101992136202946302540478721617277809197379567332365341266152667430779742805303139737278374138491987445908263134900950453918809045081917019547147144402399234343415382358938862132720974699296529810629403493590101915602056015886558866684574005766093527504972412675832554404651420480055257982982566307315299008763860598904851636550365098345870163904531244415765161390859701621788544205375381217655662668670407608636876828785466431048916268389060822030297012199787976007175321476267267684198523890065877661404495548202522339263809206043842119068250397572710619588383091934466201094348964450533434710743200728262527482105679158224269648007076109060398520797242472214765049025021927880691472462194445879070957857824986621559497344791186489082737261982429715126019890552265024096221704801176858234029670291991408678472251455311278352350370288867769690870133678459235439925102481542460736682125424482424609486642538088001675627786287084215148294564888493133749412859054937889524642324585877257362785186606525798752647256443127502518248463298884117894627041183137357679260048542286111092984890242553547437958581919539900134908378532359560861026569668912094333851635423445858806403029821010119974221781966949930914324661378420651086520192238601102704265404920635575497074821272853918109015855756153936659582170037551801762182623454955464610847127578714824458937627183675019885639144864929836693853709548653270130456265696832763084976158661060331687344278521798964627679856001375507074867463606187822950412927395382298694916820957218680037959837566329200883895361140175062426861554432309424869059512813876252843569865350624979982427712771558908663371979648315310771090197149655342096178232578314968356640457870158799689830216652082646091420729082742509114528368722662986809764576062950976408985823758768139249142728105066144541216564010627640251220553260079046758727702637046543411764704562260148269283897927577743446626120632152374258914550424483779492752196137609658756992078688264405434150360827381952752868557435234380585584422837245212746946010944494715531134792244061290739773109399679718057720682071428913476453724342193253422267718898118764511425240024129689618719976087727233064570060373139428804132712885493911428735191901855025696573863275612333782183977725889941470613781864339956797041228969869781511357067756604587992555040629991523580012482730736800741917334983800751001337960377820756811125598468554785189148783717184893738657421867696698799533013645013845337444838229364548633001340236365060853515434526650982096448240884096412664431366956882437036870159832072853455327799350263816727425117158691310662578429285392907495853770325548901044554503292990313391711755385387417056428238499969607290275845513096870181351115763244413980784314920682425199263639461016360722479534916962167570239621539384631310022605118019203608080459953643501979512950562626133136921506434287819248196245602703484243589200230942365972562529225297761222603860874431495214717183633517832040040088884950795152964955921220015074113096220598763231944489244842107234016631946682944395380362548356265866076052764320782983570723570409967667029634193394089815814450620105982394369352447313152894215737681152286773688015802432322309229752439203966875206951741079203601479893264504604664760986291732734710043911602778993987051242797695103163330116359431319122790763142223962072042104424189772556093272869679362257624527447960947976415549238418855479816827698307463037367998177444297525786589006729488521389761609556120642514439429907927387176626826763918992496442511758081421424013328216025379544439503959239591352478561263474327103232235777801462919553993851474457661858271961050740961913780261188939584304431776616613204122004878002253937786311693481536251818614273024366461627524661052067804749570234330071090841825376979641584268800214933316297102858127832958395640554924547612071967261245031165171485646024303992655758475359941717047105409666624815327096048429443541150511171070977754946861245561418168905414678393236856692202952894493409527686515409548397816149728317132306792441204256254801218423329791210473800311449492274801196744596731194340636671005235155515501334459549857563955205669799057047267080119340086115510367236775079873640510870697878800964650593153288635779062956924884725804370177982205108992507966572010817728648824341709598395511263615420318381517561551319855621853145998846245090508610785304327177256022374453580839783220167646306852808168012770187645657102730880876696013657932699155268902930328320624252329918700621318806227744260176335629605978080480015329723700328668621557428232043030434229271609252335306469990337770320903244551945232637496880082898913341036239625479218448308803353736153632133126243859410327747526456537899347226661249337698209062938827419563602948700296670991638082714971065654074622010456798346089058382115021391775905342719063323994740369858435063505589847762625770633506993874423477728745604889778927812755085754591815719192051497922639484309199020038720053303598041416906238649773130867249045344433042793167061834423438518844911100299098315393061480310658975666258412497246744515814511286652031667984852044323507873948860689835574215477135250450382605373507955212308427063900972672993525659632589320889352169054620428385954165609244286177178305965663433738170876180278675656140544033177315916513075869809873100772813322223595220576362547168055212730488961295898596577756998512853433176951799773849856529710300822734900035382224030514449313287384337885071163583238111793463919317653361335885393601401157084651640587913686028746659616216911096702806278176249791091234998508253244024616948856321471769654425318108578885093836634038395733693064455275398895896861911548258963885897591488905674825732611959034058518525160602845868854129185524286800429040026204134033049573225422271435929796101273200027966598368912863785765208019136832270831461118489140649521371322373724724498751810675344790102846894166513259394800866865091962660979602111662368117028385373691992073613894612788000267583020915846389916673141417161545256019247449144052223315383549962537547911272473654933737640850370394088259240342049353587396509270288821641112491914974985165200704158726031180958369960993562667351214364286719810646447883585952571612426377815386092188795670600095382393738986861963049283113953286742838032714085317513932667483734007234638431289767936650684916488245338636646908517318230140422389842584235045578692514341687391183513075729849818255481389127110225152445992990295512332546776168527004687801686402182111189782479226557982928877853301021120455844182504158218632424293902604535834534874723672936684506873476949130575118620187921002108844575883171833208171012504763070674641211217300046018406953073543558267103298649160091408679760350795874238338720776653515359918415375788309985479294626814093577665415103111117685250301037148562271950502278460429830079991594600479926536898282489884592424713987310201065500914018876922836894155339578646227625969102298983656993057028256074309598778609977614194626318895252879142178955280916154522335186446265661035680693740576296306084134375307827880967240890201316438382551110449680185979393780534530134605566434448969882659674593774217883451472568369630149081826881252765314518428955220282951838546785371513791302774376226634913271953116160122438130435026821337650908556260989688642763980372479283597117170843483909194571863569788788281207294127075129964961098992907567925920056900629508413489952556066458349762988605275827688740008936700152079663756746838399582827301630237374098459583726165065296470709746016685296100217196203898596670412111047935522149709029752647129259048049072030130528138868245382614047639269560601126714371566336020958300852052593958045120077778863457926391718526227259028682383517889922625401026338398226041415611051164319773435932018897483549933537038749995824474809865873779576357475311199762286702274120597456022261444842786234845995210103912028496416377802366080873014602637897745638898874174054853194210819376081537716408898132786367335268309984916693947638826205279739908401773707958726938729982577298496013002291757727971379399357411671058929404596048823123227066866055151845291166530141571988939050803159539803219509966509080601051577028344780141863616272346799185115533946636980627802998468547165690283969615666918755957255452323558632644315156378038713466510606887341697367475249139879566757787399295411223411101320400155242630532854094987523599770725864064704476805910037575429948172234858910796847828552191545108468043906876791930282919062374592953532006594867565615164158328425239720750758676917423429906389262262740920180437840229054840836248364957358601917294100801942430317332607284328661264157870122344261807553816402546253011992480731750391784718967244507376565461611517801936573871064845722754533849186312886355880852258587388080305958684778161572065206633188095382370288383227374744356395392871379778577907986482367835665616146310633696823014945453716232210094702144541702537829116020689184572128787167379905764105139114083522817728193151837929013770196018960662273302711753682246479560413502838327007840129997425255420208524582629023265275291266144990990708014930283775844828215927356495941402690661991933029267864873186096299355805574862919580654966602260716174826589659142008952475331843537220788773662076331277982163077210249256291183082099253604765817019381362153400650996642116600272190155461777551782810187219625736646443144502303555168400266578629599533226844203452672661245098192581859852605258897744226974404442002852280421588778870143676826772680354235133140859166947440771340210284536108079350616345220216634663523239807083408962572216060377375628813460205347770391542475644112126546970572117076541053043215801699047218937253814276080084106321818325561278830907989305566663857839507382303633476350514178128855538861206127208406469322369727672456240956998409425268717943250872654023462996753158612951631908899518961866819347898219193467012807719820997955821353163967515270891847014813660468226796921877541459298916282862923710532538694928879556718347561981213282395134531630869662605127720900939464123655699614691945403344788648420629708900094762243959756968050594218716275252812000425079668758667040122366474821511710353968937837475508524300591437325509651356676901947083483735996563645957648666674983814750293968537302280436360586674818108336709684606032734250591763289649981778718336071935586425133440896278247707630040299001697631727949842893540347111391810765079300080634673020444233854515821135422306263552069693797010578226776183158025211588626632967417556680400747790618819174031095356284654218584492281425146390334966673616203764155950575414789042640922392506124597356656846108030757877807633408707082506645019045553938543291670929415852873085966570429896971049490373483693120508283312619566187548601898927226738760849375489232442655185384543027664795650324998613265977838352362689469881421532166075388205926100524148497332645733043297243852503425904294454834060175245789628490349154337204026554491789314555362178620221702589882114565650521056972588604254009475268402831880500349031034913998627691294763355212535585337674478302577776971708791234412578227948952612318814136172305423899956789814277340567310267428343016561098343291313774461607165132372207199713365040312415520760773674066165548787151054107252544011462776550496598759165066833763648712370092938373545207347068966977486279003863474664552328640017073994311566755514867870819722707353119527982644798870481690995957691971759632095863944485207408479842404540519200080253238871490031327976977489677067360276525291949909132631183896743838261781736016712055631483852730015999721419388862355457716047324299499241878922529533994847019988866644650491146994308318089778501645386495044335360867746001204607048888102566358846295868937839256149945301059767990186472045592758956867446735966199010389927112718718473384252497153691818738978677193311488711487135347841199653128216073564242830579199229733806609725965231548582074839022981197615083129070874233805690309674757832684007722623264633483082449779483237287620112626198256808885130084822515383313412379373601609881986131079093666573378752494047512866891739474487545998825632266491852102025862026219286780963801786210072308226920238315158423719139021206603747360276317141347080628945644616985986425209962291560424045571637292751140989379435246485159758560200534654700180153795381350237899324248928614592164441849656427457420032561630770317940511218473655613105130999861599395166466341224525471494688070291552759024310330301902694070279772447846033361266568866268520571083008525589682876597121272847954817628870189954754456056429201549770587252035393383407494239292803451745571494130379352083494616124941939924907856073931847932945876944614416856782527230932620809874740750239741387226304872062850324875507313839101095654156549765481804166547090823612608662637027663251984154265905313492473916783893496301052437494317298412142563096679233667830344159170725805158475949610927104963784155774314736431624362550616446112132134576763058525117921932378621272514315281268820487603241651228376146004214345440402684789488589493597920720586535375036242693350942508217138307093928007300858892474507329734524124820081628700932123926730055101807298427668688818336899451752922023359829935889886009877932879483970531894255722387849894975333511418452630776330521686274656824759775609846364342011768792798862073097347956100312913857013191259594040423803339062564906032812846131759569885367477178339607132502337976667798717177205079287521940573044462278165160905732999173862608841987710316408172675877310472971586539190618191379190660013217497264319912103208005836462006116014761911505880530924075907545985406127576212222692974717980153538369883941618257054636398617711538678393180589842773450515396999240297837864217378234243737231662309023825416004438580529620445277253577570348050516268291275331485759509325732423270895856481227639098449887894308764914703755037144096104876104969371258448485425797511261955172779863051359509548527008258516836080992393139032693479012334530013169165115044325177571724278146002681548701055573651913639153878919407657575703916150113200169669500355874103635268312750737322428452000306218103653923259434523888735430116601389849557939542657899049683393734843241524417199332371901505790801764234508407335713585566222942950788246396340684376218168872264275849853450550746229726096762211999463197280310036022910929379568887586530227216230008208282594926247416907514399392433224980691575460695205414008836442363337688678663786505576047840545390748591069699038223028259572770136014745001803160981778897886615830620852157915567858389184637306330543246839246043448945511181327560625032266943264158744246134241777129745401658076207826323453951478299579876754746402186523528007810155694885644195305690425007944919052922163461733880176579541091425880871751597052982982034875034310829945864454751123862839701564210522615639652095789308718213310446506660850821194972520379776461937219110271262655390502905942032525248597521967699031504816566614110258419660333861929801577373662932220657113185024483107992317693472551549493783351637286454506632439681925717663965290655395689134698264406139862997461101740535296981812526541407262167350974712941068539400629017673824885980573493877424312903881949699757241860062162219867793890842871668143632573080830535657183541116705239134314211358528165336305729070844094019210316939666901312519455461356008910272795598605160407341885667898817358681774005552378777517672861722887007316610710764183524863014275213531922868329416237080956699558268197099809410792810198900000183081616322619836488310799813391168948099103330457078450564427183865255981950357311276111609306279112515454163402705843639296236316264983644545078889867551671705816593306974029468471736932037957580229540487377862213258635478264131677563690671051326428452351296000677541914289769525156888774499723707440170130172202308465291802244532318506013891853266304816268087535731208064132466668515712468102776493832015816566555539560160242252229065688158289619693132929665246124359725724616928363892601735303166413597690855979232374811376398884556687740537489930264398335721051295168468022334580285822381293484601775666906810503105138091882164901725006067930975099777326830077589432649773416248939045762724348128365958436858378974822898095580858909215794571891746462739611287938523208864577564085517122541738502768127745509098839119016041375298190059401897276317305061507239162045961941767254283128910293698787546548709246100421059983451663514248517069620700308817461548760246881858195715861815990401142662594415268754817829130042943996369462491092359758506826426458879376647450127204526244997935633452079492864612537971392256035290387469061323737648732838815300266422810857877964890729709852263390316046452026918822274974561974641526026601793158405125767968536364552459844035841423922039106292862927344264243953629592669009610196657899475658796719224500412700855568221786393252939882213158803117388575593193042905299733286861122075000514648526587503236206924064496310486744534332255709694954396173436884078663147499659475046611259639748354010651903620681940319403113112086721860097895596793112947572778343280072266083003060450217950638289748729858461113460766689546304155641475763663807873001321327353344593655754153180936573307964979832074517079110809884257485601709074335309588518681960560887736785636331082647489484447469019739414398323260369677777084484987527524268308751326009096314052781888760101531125735583782319109362143604236242670597647963456520302122729516528536531782585894038015748999348334268683669963204922817791960409445111649286496545779537147012988691470670053909215810710211861323647759472863399887417920334959457222402907757486758247613822914193899699607485100594194612866544442291332298286717981195443015665047199241668351654569232555815834949667938933609239158737634361622548325826887255133489573820172624143480361524606251172480884745912976522480201963295808280219107608932770342417727277767776136418349435562785804073731855538211518109194844873606963284515456249565267686460878777764289764561358372324273679650603924232629149939539002540653674722452796764211154777339049446078303637051728967503968510371958091410997698129608069329002752574575965649212425444126627472054822863838780000597603095949011665928265698606812912500892154727300364902741805628064619558291294909262051414989561918757934172627806641067100565740742957001051185678243416892683810432695594322938742061932519202300278078694765718362774153534800930673700264546090453231772567520058865791629678989894318392834783360390679847218841178831150207478372583882815420841624765772716746855980265550559878445668125008474337071993983415016595542606714769841075716319776323543679277618208428584285409170790168191617900855999624819083111079723050015367894354516139341696431112704619510254021903583147320088164379935458308680877108525002364999474152335775328078017992361525561005587392541662473048071921036592830932329464468891044970756417336848745687822749881706064033913125154662451978976966127740205191284876471343022507185045739346682340741020823433371921869880070183590619124955508050460323847645629469839417905242823146922495143951578173704274097862630107410793083614573773858290714668757771624779997067113854247798381307108387194288979096226958822825695596704348274527406302551811659320651071631928595378065333363570980664917508433689373353822824542569514458927980990192016462109276056606614841441169018856129369331461835476792306013295252314269188327365880309292156899459162979890686165806371899365665728881404392360534536892074150099804950749312482046570982361766432343386893476888283313540200874614540284707765600062769848524956712075438587405219168407754623782677807501884454224446876480030647312207879752158276544841489280108118214182341454835479957050460386996981293527934847192338078593638187243989536570245642935895873497874627113232177841751839322195667330676775342061769119806014852847008668753972023790213479139681710815295684414381890619875563699187872264901310209696404008078567312414127390045138201648508670385211394122311442832218154904379496289947188676151302592369390460618751667950249434195934291388690029907375017763949301896807075005370601700551216078427884409598492398666889070500232531642534895131614531243931487960872217972899778198350707160419756675269694737970821692218984711023047915656203723496465469040009267423984387157783031937819099993113727942103400140545471768361388157369111127636244099511982901798262069044258926661720676226145847116454771826597033933331604505148824035234425408468531983898023943525838419556645962377915348009147341704210101661563388093120878697145866212835743990326457362954361469105430203949364305766003938060843393167718387435738323736623757943165103920693190906035970494549880893377920382071611515754021866879187849541198490462425069128983224144178132552776980895844494874266777023159741307186221131999000107374499571431059636125847265787052349360150557631041422362781910487096861614775682099574706112521564362802715250635581043847021244498969098211596719298079665817099999655830465914436494783789375697693373128459452629955872133668899989054935427256880841505059600852401723000083129972591017800625794508942412227451562196199352860596431213465321436522230372064738593121187342105967661515829778161011891810516728112416577303357785117164308013844222227323762602444096342518669334647016468714137636698511666614906905153177588479618042204115543196455299552236329566320669246546022914721839038858597874253299554010366418782573500913303145527318145987494440072682680585465344922289357029526755976413641940022278108162138915939647504154348770550537728883303275560419289564948106106103002354297560582633767194471643312607398150783701251223182374012198044634759836066816155266422003661461274176507340808452874204911914148931634902425990157691748982907136011495975515311336143141745113481383446655693673799815371379458739455244426576113149465435247112983244005086956739363036277683373914720826297165610943078275196600025319234390900255438172641064732845228640304505180130000093537788563955714813653360507659187229560916171757226287768057634060662637310242976158287418822973289345010252782916151943027289574444588688409401960815065992338329065513755465612853397024557426164909064654532745929038887258013556709010591682237963553507080949116048940162958661275368670526819484298432009200872259557010278035761121044248621830766763187996810659382004175753631870819886239495075553903745664539486286514089478097874603292214309532409589345771326583756176356771455823688733088627538313658076462091368547239777121646661467908788956530384730701835132987102054999080550835153793703332359042014687614721298625281642195016349967787280056056676049162745422022609004297906500570549980283864479992247472162007383025104650331163076303299628700597724326339000458537063266113423702086650096970381936573902694344897698936647787193471740414868795073471748155789984925654803559916471382328253514608089566245362989174098744347211344189084191703539163615250866820727952759371992217777170185665210790895885236719548056407320784056085347677111667566642990208071469911292369618409202491569084423527953917343655995733390913726540290244421074724235600304321570568356491413666243052524594873728087720949501269323773524311255974889798300707267866439290565117878283989822952696721552867570497606064337755465477894770956714263747065761801609848621484567542959961408722145269151516208936811196820032921339857093273711301027020028223987570400210210206242912746202978917884085346008145983220312849910207531886354852256314281110830019827962525356480274472068900580804929163380027070087196917937958614452840635027286014662126083979540874705374773904954888673549523862325129864189362421024240060046488161598834980644101619754476581406239946406926558565636054100912135753889770678028781268244831478245066308172640326572472988203783563896562527734090250737741723785634155353837686379687868317246625210767051649229150499079936448339585803232301885199173437138342729257529198744812463969607657393733667478101636830080607477292938097635824437604184699695194070944759607079439019363678121321114427971538278969157379743582557610698277422221758927520459603402135613963453704188288240882281884153278209357292934839455430025335467428877640951500299322838678781757836984607786466409339047153268873822769322195449883923174669978962582636893448794457903284215850402203584047394086885137334907348539189547018996168371912364602591898642055846063958106387823514858925770038417551731510975497010495728784923486009222939560654326935119539197982586770327253302484953578705727700436056190506972291189067545678624681862400646914116971724754077773937227352454960520025219201271353332231714085724331057014542461137235618033964316601164113972154546670115227490734000626541744171621211556247300660760146418376521325535547319753062179172105568272207033178943059379497542657254707301481649020557535824621332554775782758954505743377516555085052551329292214910310987810350094427907113635590717152795143248082884182214038265311073323143008907403851139534429771684020521363108688101694907151599838518851791696126959406717519881864686588562549208026755881456734517658280760181662672437950238804372209701193724089539720723378891463339692830029206110096868476902676382064749466143067093267361685732062470944813348881053467376560700532451158492022727129976419480388979908354760367934802062709604389947317109653499994161244492291608172642819344223391296489433532664973527969524603455213527487837213792800821090256362633137616053050715879455592134883978447819806735894299761978926320647163599361035016712437432453898923961792368842276339276165327315499956766079267087160008324120741391130171180159886684159254957631367305520105822580459065050671094734672407978505205931383377304623545201840483835129021958448040694586438694715284075036453210912207752845363121969654170110984645280062548411412958484898893152677497878881483318358575215729707267182570143999155045082750188621480434003127165049417982736549553094063890220123423744599026232096347456400495898075989805673062694471163856169686360111635839130055891477853957973895028797850236787155045504413651812249059671380293191392269773112040364255981750228673113143027116579772251809680961422373083172499234617752936430538358267442866679079330152991225718402072375406142671921121008722225336607254462361853991862509667632376798747760453411434679873618500950070680754904175855446767839886491915620857669775572269604066585414054199843204613274719161865284404319555436211199305517594816894216463098042864187442664213884123505138703771310538254560125305344245337626113943807630508520401204923656588683925040996957711895680156222812374043875367111895945174500137069192637514137082252988765686743508224262028702040105481296964913828257386834611696111404252725369405302799380998498990223035624253762018421273470537955380303087794649019912237033369601699193942969924752118458957545912604081795964037893905216378229178192285524318493688749765558422463229616732840729691871733259014180553390018868179161881610430435912924937740498060663094203620036388477878096953198144506327282761359663377930950635484555759459538088267155369910359893001999181179336534096007166688565198688917020273520309168909681373056800055585606648241222671539440441829568426545505814798493145811978046418951793140026472353493766785700426936423417799665078880059190149158985472669515559709896075394279471106851572496913848946631887875373239991892141071707182917566706768561924685106468921196716553956114238336667532707610718182029360474256337812542931272619947667662210746666073711194741150781046044960209982538206822431771679274103884047075884480576673693002895299520658260175492430863841421117540245416123715775919273154843940219764513947141088516496242119594588764855503502564838098840583547019015851534832596170416095375107306101561814849301582923501294883139352565054860255029550985878161979220015283550342029292922020265949825787386493533853419616056179816225080985032466107812421520431964758574595184889838211090223481144656511769928538957271657702494984243187572645591940842549325442212705552278024740229644045183005176581876417104267741032651258980140776765469378003625483587959526940023602275427435767731621441227950207546211641117500817922761635984025628541764116416629235544044800948272468560228225524863151829865766636743181911199071352723705541774708127639701880998875194199470360447985471136189462026491824130435334178671243607200662940271834366196003223470267339681533765108744781803317422837126957055680882647876821298509024138000592358355155199304875360449314585652403428409158171223307766933591414049928718311985651757215219370352567226371976661852151036282744322721631558445504669604719898829176910990715625484245033283006825503952622288805307010605330736779281191040996195200332798333801622168632213108423648324800405456431427003974626598045888663579818968738359719861992871366321099710187179158287403957115388689104897183867793496942278222057184237484915980423878055429848769249236004822195680353959486555202286515363888050507034236205528596583144815594145625430472289630409466691605233690507691301364285944336755756170942038507947200813333899537306323053727086924159463287279389178931946855390689094110985023408407718372485812433466814071284343597995265141055612334782698365888173056592443930860654784839596539685984285381059405249158690593325800525281527987470467836584872351009931243227036651966751929280910302801402197536234821790951128189067299944673026475388200182739165727220973049585158144343213210520688330848893833389556919301293534046768212816645834091323852509318626360461199561875393455584504704811857637801463062923113452350330271550013445689225935678901855222733421392911682044289043131851685939008625733615093248286382327348614117728129578377555169369223571526073834961563810011839392958619079781363189215570972742535339519528170422651740968456986582522126195133739754217725521059036821756991362070766535189162969304304652297884757594943650689377243705080538790831260207108159450019956285049133952522015101006148415722689462503385435920562156671598024700021165861104911540277692953722093281031622856104907345306258783235786704125497562905707924173878296652355591428163282473177692881591250649918521942910131331714084170187573536884473277393593953281661767968768601457570022325114774159232481564349736040897168825574123681087895936154279416027848994227483720791003263434695754304338557188237890307937777037955151305442286161206906800662469696767281791052919667523447450047416612171630383379327904018710950473270901535697925212647503557802333136289751029397044067177958248237935574902086421771193998487459144781852535076483241274010310591855523491199508646193776282541106591780692235838460245866280785634879088407609198842254657223564701705353537530177747532738757058530119574416312763656164946532741674041029839033757966271056465311734041993982612279320082728235395901807795521918914710153847491577637486889529113205626904863364481119557393190449873235761167309574662075281844956812459311445882188415943843839137562106687414915930265193651279187642923469155649020042156885927793285382743940177707761725689162944526747843036183765213148080299377141678078316026532241648463709971276268072715591066597117758013933567613398943509322578647210441440407578868279056239626745753327944770760301324353613098029178041125984422259293510690479183764705159870479436514105461037466165951444746901200786434581786011992227059225681385819262106600501004152867219826504072807916666662073441767997226240341342421169740531800758102947024785763832422785854214194244441669546318680305795366942117566413046148731599502028420261083621730474983886011842887018678467654147879485720909383604229181667974893552126356042081070788963643292996725147595062229558411610089689689713095727182300502424915937306680134358712845892132710314376222051270477316317499886030072237860226729670560996024216412897452579556761568239527035165013334205332235525919352151436000668134787776094056304441373052475899133405386977568160569482631264437417978169320448631245929704809342813573287555166196809790206418052525734675389251875287953798471109929259912343525538303682026557110116511129640190555158318894406303028180267511865426127583701152776064133118933999022753632320459279396629782542395563859928933705767571355978899241940665723848234938522113812988613621099609229431839016910093690403856633589564657119632201069183060974265249273505518452214511837297627706199490783021680664851290788783737771683659681659103721795986648591919562406946652049677213308506133807063121291859007258999072665602237503244795849592291093056664057659558410737096592787369490221870778206864833465922416761179964495983932141459435607507876338287747600323780723623346846910792395245162191412191731829455159754342020028056942138914039739795487419797004466053223035395860497094252777064532594096788012084511330476124853619054550295132668060281170372848076182584756485986015977896375403746800881088742175880366331387613630593820211965720797269040045610925250242241554141652826279794664455443186109495420336889187999854563542400847919906561602037411711747069613685834103569147697911084782504280726014527180976291011814239984455518110697845264308331625573364174472746670775159302742921588794344314608012586811299095743102808918016050034761119480889848826842193255952052028756445546928828134803073220339566397398466395985427835821789085172035379201605660710417492600410478850840055345080490211044895770522011441877461582938989600026138202885470524638634295914643108878912952167382917980553765526964123888661278885944695631655511346907695487231741037630551160342698019157082829400256881087845540899771992021014782093686851303380971419871569289157061631681275772415374554577924358197779510690243320912899579822127647229922528494207109372952578012763447894075894233918243409878746797007875859486381875639585777533295018366376066556128339764653870726109309554119147821187259015356548738884809833058382580404236263839934381642677145068423243634381573990396983583048988416362139354283373208600718697545212667995978566038812349237188034041389098895612996454354097968829337798118177900146683791871567942632847573826166017689163002327199814462820732338285338417975342868329867530489499811187320368663942316066221378018092621561748000597140116880820880505956579144512650822056186771842338324446104682517322506616828465774446634140965577767565402628664400105347021849558774489905081744252074231102887631728101795764216030411818029702926440253082016156352007031973621552265477861045080140919386989370736845888843200070869925232952962287616937967942959856755601792074265806870357846329378231374179094384908326733164646174869967533639958749269161560246584344119373708049275184561918121013851610695504525556117735138610025510506851169715223340259644557129180504397175806226938397669357349202299999053537257571584896016809060078397832616439920525306529351953381275629341440588475319572493150624943973036702432927261146343072872086850603766011084301785255628087496577838358266501616830316707974320469466862858661410634773077523973761557235255123279288959543720286868609342684113694545439390064975921379947465155507460090328997184853697071273520257528302412198359808315420099612732312903306360044695559190833157881006119999556832712215822415790270196373072156865326470845574617261340353025904717556841749174079024723641111653468606133081442124200834835564961919467799275822443631249537483572574535232077738564482440473464072622438088321150306625377154597152288573219370134171424863624382587008655167866255574750591483625561742045371246713577286959795185742739977158019163542864104728637831221032900746537775432306649253116904554093942372551784044641352190533921372248364891475424377455419071349811522099061338215956839870141408716403078991758725085767519216548568397022237706709731908620056358186065154707688713881886508547656002836507097216768054662136935958467973164624634101355914126553570084062432741305057277504798237087377643005319276590809804705138918195735999114586532674785645220447601235859415849738644672869082944474421269858038597330215270220593336423294994469718508042869746775653141861530911597020892307048625674275535505169484385881104005619172421737437718601394497489962591602124248015043182774310459330079252633676373411505277416584111200417928928302138227058237411280362221130388265511242126035659501726394086385837983380809252573323739647640502453516604464198474053771621113404186991187687422371630686632762550407745096336663358094721765737455519746767108662390755387493628531195202087842994476015975886228695337212023212124697774314954123528520832120954440244078646039153102820225068450862254513130692131062078005528044989805581218265945702225879725193962292980547424638630166269116588159111651141733205309353559437994153186065542939884054381394804089040513617049685810420565848600818377045629738333464778855028449700024743768221581317061900876594551501054684059659202349975622539574436114610413785547527241304087553636231832074487801253815146642312679964672768619105069348376141040872627251752364705235150774822216804013324888579342892305409875185155821387549129493336408452135152006256148339693521881246539054344718942560768842768730032406789458682052494246910453190859528540655010766281808613005540675268520055791700568741478331844303709002319032296535721566354443575796622550898852742465405243860514154941076731267087597789578651282110193959588955336026190789627056686847735804482767909458213357057139812231875723294372217206497109266913950370099540734420385880864788930392355821151804639657507525766821828089980555258359754079002209976003937515673172345275549008970227563588923925223396725589274336772258430082689044103186226535157502413346550876189364822496869599169707805460829913203741649248332202206959346461553652156335483930325832844885056925868903793295785652624637807795004002760152590769588151732233887247586630649920195080351118473609159901166135668812102490570520984915263274322496994772962910231348897223227330523910998763416889959932485277419347509857608547398953216455843490467994572967518778658750093375538386539184027735212425035272242323585116050689886116692049147542867420868444555219536258249587842160383447048915726662574096529879790068818301883275560445447816099695105963050104535190826454613136452364092986788255055877069996448681721961641301440781468719339093502017885865899879475285921183872067426124626930797060636797067915271686234984153641995205382103679484199521961738447563280721254969692778383199747295949879973074615671569587745102576736846643972616954092019006198774438092625730510119075573112726272937402495332626792238818807091400418656984433171186825823434117762393233135155141816607944707633796452594782533047418751795224337114833225465851116761540664324247685982498248646634628486152888081648335671059052870056817889852762813631833953972085982841130333445968400641059007389501791956538264450453309715267340969480692169791838105960552433718511248796599732313543662659626421574160433318944656533383437000867095958106096592059593848370425563006298733695581787342848654146094925277028481761265461678049884723808000657373449397256246865598923913285972836418969136807052124442225122324765696632898218092133542596227899837119341486399180824970605723167345471615821323830029456201041445213695882540917344231185491994003846453440705790298949224424723266975186225396476385638892773096947256886155441908528073535532549491376964998876839853123200500876996643024965047827082542064462212377814045075835621027091849489753098197389761271173406586714211806097022903354372814571054896733845722882141773678116694626907001722184486634296499345392086862636959984990130006822371885425360403147311898452567313614090924464086232182101007905262411433036583373124939678878534817711654634516191354667855701207639609630725121691844988475769694207244568500642432178145452038599967731418787689074142097661829440949788273340445183731302760049448190917104872668241343875933344160401109063457695107644133532719421733421307929053603513601860569695216101995232305230596872972974397535572723039206806798701031799475409632815298914336294665893834807849674355561116906121526293357042962786638743641505862295991711919384154066641096706817410112215799887349030978608283774418627917744433560163300401891832888299323544576507162733338745358985568461813887431756141189027536921107639491660692719869153917853924760765741657005482911130526042135778682296039872994917549793214922315496810728097014408521822738861617684352591774228980400366885927366552192071502287899428907983428438825643235020555999437005195192479625947025934037175570230495251548374270263165830028184578720544298772209367404102191041522135749212046552479070339451570659704158553963761765168021130090500160974501171700507706020743821743358591513535737698240319920336160320140775522551942094099378545551640368681062946533645160562639955985517733330402003050809936779147055881245267857879491940863068418426723111328862031981806888139230174721309062522311067502851898380955635458354304625111705079339000472650338981257894710818632190973697039821969858414145989747614319709899258621715147746149481309798495362220588062641163012462562200966948809182383832104753540601640191987045378248973869636891663068678095497082421116391384320019099701988688698817853972865997762740512586109677104422363262064805719295932650546549278491424294089491080182520410427241633234599365404808012666142884940448719607938026371357004379559271787451933611942850731921192483513740746599849336081725570033353651046904347327418737085082108612787592978171256635417758808137036394832870360572939499931173511335224846642192842094770174590003339199341409324010984464759163274461753832395183268786485851038962751680945177500696156006776001416251004943708752163894029450236017442195153324654862296621276716578722544358275669759911986761393652303493714462468854924758632304285722595260164534557857665755128558514949533307544071024660830761581381948035859580087468623406164674844451261070878310959348546083005553444375058502508246266452796088366022735126241669036822329671240914589833937657664523696077604030652434018375972900994202877240834234468847796875591145410011102756718795711537909473901196915684168657894871908056798842307647293172968359144747744383383227709617122933531814778093028557991253243569014077684497629548804893108091862200349739788620747720581823573194466682340462832706535779385889372322343729708437073480975150568672020175208944350836925240444308711550695254013487473442081856767150440338144137504819525280819556963706829382778229200045704203001815485604251765573841528336476249377226721389375124415358245022361171210055203467594872726238144222097201521761308128012424798432289753818343542523126695334255556125106697040363734539379696654148470968130742452459913078573938677342394497530575950658369171344021447450968694364277115028424155425745664932721375995782526998006356712407848017140108261977552751159786448175946436266079208098591194462128698652665131874756430444998758536925804058191180048984300873278952098702242246220488358306487179939132377208630524993168671271760958353585567662180557877823801715933388699152888591603314723766300578469969785220671747992772931685474283014019306171262810708036302877561691376419687995389483948311522780472626075339262146609159695665611641830992321113967582981985847826950903326375633162000613602075902736704718721803747230808644965276324488746169648064160131242026916243511031757113717115529594261530209149923529456115091068687882158901192670498509310512747012379464261420246120923571310020785000377827874752972618779395939969677229595375144152195555454092253152631154380538715625412446310815340197288059048582768685595330519171840276073079388522809015893603719306131501098292981639004876685603867212918646112613247363610197414132909099584602942714523885286262304232356521090541787115112383066708840607466466475802353838741188708530841857971121223649853247552938781683951760508529393958727275367399071621581972607507143701381064456119659027601514744836450726219041170634715539234775015042446826467229251120368047398548510428606542257118464669779602537238619842195980322420707569954889655904297472010224408322362129513110936927930163216231972756557464156475911696573078571090928694019733446103934490451264009521064205191004917439077518748418058265458860329700355508195510262055596367129632481275094453965537585301059023195274788394365825495316846199060274613856564338694147053396305146186652721706140952605924301533810347932270139252279198719394679976795750370652326698999930818560298375714266095288354875142236745220688473128265533759751647772618652449958697820664597900445169862299848133103510375536819431559400798294970260092933438261081921256377553113212307851095062168174174828127040428590797226829815454573569239395294630536776597792696141179129664378403496807477999237050887442722697636636438461554506661725196993363364955672901923128611754074636697062237140311668870340366821228511141369200242475654251446698724350039467263354022535725031232860542667065386962728281585433970096523038472010265587628164909942852850555969675747557939294340991096161055530090654046392557176095886988552931528366622459159892398148988973559787570206854964669876000897601429662360002795998381954893865506376187104496153692415153517168666423831904249229601069720595490260045425157480207906616677141644404336927960186808438659086657994627826500711180258456393754023403257333552430198709668372808510749496564703741652179722353509075775733552134773609103867581551808067667782916892066575007449715679793313719757746988241712925300019029890057997671888773680165302034053744650547642567560027202793091231093725037011083267740570448133063940537626827623028762076671098704340715324613138081694144115316635922971926589931228195466110573752123917779635817665390121694587835597795610795535602635904678953466023633024822946163652341262744016786867073826240504431257079877234452701821069461095815052496484163745131959600217791993037950592276060753424198753909952894678133521173873732450278813872408086009129285234613040017599899642337570060674070334764532254714078622705248716101664596802483157430342418562268253713933736373678259615387111774243678458277416350868506628249568095116572884333193779752230941160532358968715778748738218235918618136871159794487442051908166173788204578496302384356897287461032298671952597140880333350185231609909618348328045977317966603343482712095594451761944472313304925741299116241944939251415786129992975411938891582483016922182255005896120543950202780489717085922802325463011297257807187155620586973760416210423019869417641521102762403329358759054602281810454788600313205197295493016851728819822664828758663188740819462819539751635280645986155800029076923158197750813186565513034332205003021163058578056335242277001800419309892033842561449704918921605748276500029023440751687492405939538618048337291107158511057771272088371024826147073685398106158429472652156923761489788814808984246169845882546144611026621126367856958843058208448200133100359984644300838778108146708054533317489901291715294921815669911564739171560385205787852283747473659255775542331917802742508041486451975654781274673167336400821668871979508701563787378519406253279504836851664997805551256153090969532939572521869237579713870788718602353208731255510566805020689383589695777018477794135973414963121020707620503553826300228497602970113703724399964283257052484875113890007767921687858493174721836154209128180237281105153824222935703285000970773655896396122376880978079874101722594989306604751263341279589464283577229243848005266352021417089928469468068454048421276805194288402595684157786946191748766986756469149665123794234550849714766872044297724143448284667205528272887525351534745035435968489616912565646458270384388660551362480005938050106467148259913066089231429975292696938509744756475425189121714643435641046592202165928777303670572992674158752591260877850887573536330140071426046648895485947885769254921976914111310796685010430809443138970735091514730851261858858364733974306552423448508334106926996626730539087562020629186821616059933569943150456645228138180496646153919574811979560057740215084442899563942138688736309726947957623888098613128325453835536815281195058365022147790958888022823409158467779088403430515874440986889609879500894091906175011668203674810700267829332624192998501752062570865183800735435271943473902976240426678420294974846960879501122959869369645413030490799533720241709639498245477470231713283868116502671256946440764467378085589814506607865183868539546152773684724775145854461531346867506125066910022901215720969592242814913325777374280209425954699181827851041734444832571480460892074430731273116852498698024166428938882425381563200434301236328679022335527230922840192032187690009384060583074994877952595152398581336227482279670541580260142071828940725605217422176846448931870883270383793786561352962265577687858949503363147637239067351759834913278837366445502422787571772931035095938917702523821409401432204659853553792951526489536490100512118199234232105012820796569129378154246087438605571021150789061513030438120912710918379644515318207605408298648166871759277720574293176375470767061486672821322443776494666259364027950758761475624727959817394340118815736963930777385390846388323500572526235687174518473958844617994639524696094320729900585808343130148699835015382345994346793533980489072809461755741362643458846627915761748053490772081273213115310159569418409913593651983126556614669470382230482263857782897049502272189438146396717308903309530842284031752519145494078492854821721213603418048098427770557535384222567240667453975586989792538273564068668420599461373115679711153727495963874310660918600650845784926345699551347872736372294711846120172984899899265465020662928350572249038751878122974748387936462434112654710261186596339712155490067352336172791921837174234084617572937864892768167296901967930348666612036783927978933417349905552427914161642043248816537245417400861094950948780494390671080190895978159449569199324567022864169078915196635541144827883044629824185467877635147268025974351764038349868536617717455456837450402526701727165168568467817003138700800611884569289885389230584691970035516168208794599531747639693374553849984118467499291949490271061265042277205849988585963774711313416413821171190265903168560976380430226541748221183597030721647642753525269179342410384366738662234480012555733023550724152119398570654880307719273011064335268281250212166625253267359132882516329912906794781722611603853760563306754139373788590969428428315927154837201000627549819173594506926610919642777959596053026856850557830312646273239352167397387929783760714964058693491396544393830181708040014133112706265563565894256990833927246190627061607042151393802390746492278797027154457242515121346143052341650876867279437163906210068401312899962701672249156222411144484737819792407962763190892109797014914509456796441906869498716689619953946164924593197985838369197243077303904480508508326150562150234301986998678728219207473807655566496766377803508203806605726773768880674204391509283872701817290802225594791491480950121475709471922331893522231056242446558794876550339216160533060995141800412206496823707640109924829350710358105019938802241109235348692571642479471794371044731993317177773480355178898110282267683570745697775895129445629667731339443951412124220128894700043543690655365884841863323284237037270612747562023456449629481822523354293572288147490047310673598884249799026041232893938295489706413659666960060162588799668805835144225264297415229375750827825078434734990711512658209869896018914949012011855706924056586947557702307983055576984308636080444989381570330996918499392488001133826335501052819873911303553457124958511071602076025494121826968557110318012010694070624546956320646476848609901758520631390586749638087232110331620571381552328124281779169055069259815011960568195677315766570711636061668058450659368274261350590154635630593211402643292258583375567371760424247134007279970137590586963957310520811779507272276368829570995168257891848143304117175541977396213997677770639287026996704302923005830798418956667964254358735183213334287774317494214054962525448656560632730357342002795845386818115973185944635629873473002495349967315735661223564198454666562553019418257863238850145628115272403465369678000229842801612798986822563799872597659706885609142289951477684906078864940076215494513581605334466875298641721058298671630770175527219678408329147648001169686168427135444674864283082799211134461725095388358184130583517033053110771884414133340314947193670455778823806994860134496635867010827482432396217529196359281493035282736340006532030123037735863227317294130283632163084851752662824562083614900133696390243941275435636074855003082662297301378868131426772555090262977498391491422210988937721533459274835781235693733487768554772338123894810647683354792567199177499384479375373291271315221608292634321025218921737288842970375492286137838564561385604543460502098683638374494836342452249701117326839240324144869118461721805037115939482131676821788980350317702527839024660572069023735918291017566057989128472297986442873923069399659260886548727512816114997289882592031488387750653282120968546424077167328446668981675928355383314926430393599341704809822484928942436185036446324715287301803161944157025954186322617358485335026337970487486604796720989042555822556456560447531954821052212506566643648824532419525146030078810971406381592564691117753328537601770219320755758171127316162715632772807661937861192987695082577859596099219106262170666317151002512785352457908047028430602916766922021473264349469843847200514155564397783694948770115771957687679595118801089016526064465858367901889298127782908911280479166039654383613943170593389490126399806518206287096719014668397005598776297963557815153661287228332029908626376478187678213071871752627424307652934539545742713301115485888701999510119291613614324404184908961606343318483468129505840475627694676325241573150172357408332524577102329474500162628044292752173026645961591737236498553631247307693823417597538657043721822420568236205746940271644447264421513360595795357464386666329382263752286566764626752028282671470181113559229571404069586804988002429891854856509175838914820341171676096460458532418547288019137196369297657865307093227902810671554898923805263315769189429523083194039455583442578333708013038453241420201021056999091478746851700616968249284705576646325684278767760849138225634156024596291598534802560745789017224725469269952396667260420501851225483928659774505473648868166540055377933028280989724265819605823029856071646097018638947370924840805793518392977631609634794068157850517561474329224268479209539959310732813305436986194568173042457489239996187310602407002068744590067942173959995270136442313622747230404948747598344409237915691277365797929223823942196506046564861087391139472811847500024214991126410576886430588125122852939957421225660332557905983339025455019815980957998612488414358113017027922849771994293872875097164957238775924090146356998038808831538960750241596290082597064822692947668423575577115471684303996861825321466891851990149633128482208163061318607091030432564462322356949174507702907140811725082273531127587919863037816192701791008218398862099705719422283919906218481444073541688526449151689862456749512420265600499373955462099891517041330851335369123454524818860864913951383117458610507874515425549680206240810059383479954471780569769163126459749121421863201663163151514678623507761036605680173926347080573069628755360431054768599224113979594192841056678272711926435167291318927610377557097761223346755220812968431426072795013313205219817446631711619488095036928995194557710917876948838243727631839616051734045339680789948317208926684069114225133437790529807779716269959408598380312256051383083125035301763496813099112014019245816333337226927505437834540183109935120810268368273100724015535750102818118039740361874817357058869300572237537083172262389764984008653452747581147583919327883659514766835035704629018120562318218056268409308823191604135498243048865622169255616398687403233032275651231291556525258953538965229858890961859111204967748979551902277688638168771048680594862868702232391530294863905303597372075556471097332840010256286728439190421292625707036085285169622072391737766521750483573583151293457562552755143661258855793863130706360062666545143256133513746269006770688368534481136200219200031826849145170475798721071771868632806017919938990411783579830993695786818569160329540103689317292548615824197894668905599579088343358607925031070924001626857891728307161656933957244543920874996585302710067675550142129725665618649579121993702041409801069549699830356106487485280778289447733462523082946995840389973797545982671692176650751298959285610204049147978948471266272260972532958624483155322735401887511877808737853817156902786981011097112822480407323689509549185089548545202595400354594967735911880234753944657143494908986443518061631299095414589979088009219150915643436850817158199674906034593939833974254805996072545086343418465762670401219982653592409096680190416832163164958666044464274553585905420618341465436931334777740346983920026579906752570197096713870554788083685436791578945593915608621601076266541493293545105410336684300004324573375313031546859640696517818554910126853726170870698021869424920623547448509848237985409816347128660859305776669699351782415308029057410204613630220115607836802113634678890799973902422722596025224252284180578985706081083250883299145922883817735284628522054192159554115030400184084940306815501720337999289211291952395198674246953229566674678368836654395112753985738391636434526830109497849345721163301393331081195009804016731307873788910943167778515640600152466454663581204379911736047190813788602807155386019837322667349617151519824613318795018594432378974065554098868797590735557917329355029382245396766660930014618886309053747206786208417209834554505791053952549356451139944812149630466276914440321946355232549944491600594751711234966012729287682954743735219241898363998245341920249616383703457222730787791047744346991152419074021804686683065853858366740229812153841424741531926275636227989147665290638585659409609188738778355287957403458982995277576875008421321780844541620393339639555611212374339360249127674940276864264962125780790955004689718060203441121141036112464611090983616697396268312723482154391843060388463678367638511001887247119113623903430796648859589758283867242893436718524993724002812168931691162433745853409164501643803465422445712143487386041296470928880986432964933415758672474941858175742682829527991268343432636423636560703170034379934605716299421993032059505519540991555972786917528296882632922231395285848965594073824285785406268504052046688599239561860893263848160500467844339513025949859962971613007442490685525628248920195467641822742578452865634653280145033876628997241898750797052047149006623544449690616775816972255282620685488239304546111093686488864204511041881690465552985531193064240012598815961827854939737415762322678285558927839231015907591872729959918158477434316235880769524090137070237895754071262085528500979663363336991827913717047529483058629016384272939804829391205098673482723499097310735175207374251483932922265091650992863106277128061392314089436133414805055177669543392990797572010542064933213860313346310913827409841555095069318077165002825402279062490131708114257258895497986613494116334754938535580046960349338072356506776891806402899668239996988044305229279751279939047156367931421280094371769658425784118056803262828980391700199225754920283362536134046166284455879577927231623628901276307177029829178307660908325645555370010632946229543670994474384771290427480523446267114335256633369704384102177712443783463158423027722704379504727344534370288418904975433260522564268338166234769662884042247862665955153825091960553490339115479876813783856315747107070782376087562013603471892628234584253227862917936988363636933817023667759325108060411360655792297164546321020068245147439996989471985143414638321295296713734580817734696363731992827622205513901738270382472675032847139711027466703223326672825493403196407536130793261658115113873622404053343359293019778569114788351845838064704676466677408602618155381488985781544523783445851387292810992514810820917708695433804733036856772927362269456616835206395177195566159055452731121309444581244424745908897675085380950644658221239153083548301384700364939181146037688325842698352469130937859963746651908571846839083474523724687689792742165891227221500635541586714337713456077642902637639294540485725750652319498499253515753356222438909843690178496268173831367427211004058446450253422080449912097239005020891170434423202951746080303406203988366112803028356328803006582961551968478845028567706761888276974214182320679769343251506211328853580423287482372924126082836216545122857600324478545214063487781006294418733801266520943116208753721623925217480544114007042350217465255008285844557232509820952712500251091703250694697891409174657719965554173841670500864234666831686130015037152780255762513163051865221222539475506620064075520846993958228081369008837089713357096789042163279171858607354044584290254908227792763969170702336027876534085792260643465088518624438248752992384084382334237329689628803987780741766242449330049071441865027720498640866603220476792157458687287760448831196848942436027198076507343766086612543172479246138404530719661683230913699640910895842950343597333879764560971961943844755616592620276870411296730708844136574644704915030873019469204672675196850505240072361046534700331204114114247640201165713679473589111391962574384498934003434329124784019314346583553171642392052198332532770438192110285795168888572688937321379803633613270406916894817360939157532264878718457095422161788467516731263043702356759256002841557554702196715636247285573104439712776973453209421172257224108682034259709730858925138990772256742868264000527503800323044217173685070940067469556988063154287938454634136980917538765899360649105576996155201674673998033503969561472371775285640156315960407169005307544602289817062569605924156732372737772885583440706178841835274079427623993148526932983972211569783073104916082908742122039027427485817040915702587091960741947720640959097940982329951481891383784479417196059569331177269006321988386281064384301221951587949258766273242859800982286922870386305294610038214063243534870386842873983672677207793369061782743287716232277371669850792086270875057371110633227410170975677842641329023789810609631790000424289950325344528454000803146169518845003424821971279865707114953541991524919943811414852485258972140420929262433938559283033816434092601166113772575526320558436406466007143661676821479457069905797896588726587078187885092611082437855232472834079216040647311202250725497580237123944286681339964965772932934292619240479605972198110713857146191370156921255493005670453735834544117063539852957079728784544566185140444681563111164851940372512709278440031515333241626910906019798253818329557086477402648981615131565114427453109135018848237863112969022314053404865293602649627424274238643370644035127831607544535979915951081927713926682445682507489243048798342957573381698060757966722581066936676154170697056256085688201889558481445584904514287922920078856760180620220565613476836951247745773709200670000215256576558716956599166982159926722671474358185165143216516470464733185401505271640748081083227501742097501835374968019504859320670066225870197843713682913374398022035134970939028280298537785826474770091828966235184601705645977074481655843442018132909360244271028659928503282510461397301657169866976625762510858419519948577633808091391149124689754975615869857738437819624047938717123436805030864335978724490851542736171975026337372526985675468297105650473009730330660989696903166146437120943445049596343019517554025100922637373775455624933673328245246293848986622787664016788294048964819283881605899634991625704088165381987291672772230619767435650997904813553591479660849068749977475207265460722853614022563244870305983140602049170958759716137633695070948080617158902749208317699330595171095404791539283343345887257900878131319241790720254866255935985541907521733922647172645856702302102754225244602067179020214452677110887490315516012566831847320478917808533213883194354596112246295998262381830285126306723382573457643367878554853482415585892531107447327248360895019453759767098002100830397424913622182563539414666014193189087921785462736103682700001719843837753312593259312427054168104797800362633375954343446637545573488541456053118122429923009914626670791929544227291670442532419864000932985360029399838679385260293354252491173394622424065683179520060073488727041083196403574818815667902966273349666506728092166055712338748361851946772841505780748043753035307984210879858883128635327405418036625620351323130048297335565584088305041277040082974438870289914289916738786624767014997540606555913243136320828215945067125592775798456097705906233371567696614402318164203297058358214905583597253017869322637811886003971231552065771162711886424709926592469196006501106702556001841296656487209054774859144430795775767606113148817488855802385530298346611623118038214704521710071980957194321602949591964809423694723358594096708759388103307294696493706808214913425908171890592856359818837669804657261870252199632340204199565958616244067063004787717397558539412961723361228732683627433375971180320928611669953709800402173827223884053719753604947758039271898779423782494897340604831114018414037203365055466567884850018195600390948532652994751872756612019683813437642928473534933985969975599366202678830646886048781113424354636983847930992509412511659516181648203441052411701884921366365004532946511713530367801190124564828733464161116587475198466047048927481723031129266935367719174129616504793829830216653938585881448995538097132668243439006973876330154820350045509098193020262526603722615467066367868104273810026370424089961982801927892648171838728099803186938109515140312083934058740598812909854415364448718019860123709494457847319555537434758307804503764692993267191192544652766666420611493556042382200820622054966687211544336888243980017064086839593090814646230950835491036227362001095651129494704134910869126268758926202246746092703889118639975247516302317462275271054379828958613754493491929125966888840618859034321320438530264000716151282821876960356435166913100990305442378013092569075320587175790384104911059088946198266826006844620513073655648075359563144317580442599673634471869778553850950492187791920872915875922452111221890729539371466101875550174151060532933502834020776889367281326359617180453243361173252416702955103642048974223263157092758929353879561648103222082341282342925277793858169829357307447114009835854775267882177866262654040361306333018980540464715716477978726855570268351671219751916206205828756911409046335189656216350724737462839412737408198096428162558253540685536739742889709291942944814736681548547282296837432398911576584150759157160521842429860945581057744369049763569464490573471273319874658819372102818174167972647695891515527882458975115097353744526102160657402239929267005248116082278423369917176750784706652304344242411364326451962438010615083636234601295197177628097683462836062652316995783749797834355241761013808572629072644568530250961949942087801136152134886460240250878328641360269607035634009920077838763807081072522233461247290755948532875841205438650914513623383902867018795703781093167083331548145906213397543682389422067432115353162169550715110885974872277404805434623900735963870104856043113364374881588372516966342965930598143354312284112585862623518989908249802727384876068318741611903972190031267636990632973356360301119453754833146280038634591815365229064288384578032435908104056620049046015151735739661664588528735494383165789140465923366040256057074181734105691897555077072911848353956214382548190397970036824717635861781675096973068509129479508488388833781230170919446344341805995113814317246420424736263696542174568706624716537930138020191346952762854524730568785621012367973701103207851452955889047655999240280139726994911487947171554471115076054755269515092391570259213149792745055337538591926734415646013788000060814236312961585657710178149926887394260749183766255702146896391913765757341378125891828653849178835323558746024026559096634072690548937631844078692365883723432464326997607422264440272875946266184534525656455060604738557150432613357859514474572867445902937995687056650983932491707068996320990499316970115155501241378873409327054675336600541302899811020302534056708633915977503165516264957634053686971615750474718261121225235618830664041867949135968974996053388524104446390045941559426046007133055269908495177521830897177746729375475745607562722732404552507628757329427441550570271047658157529233241349102742237051394823774648217538882263322396020656078055073191246979339162545755336741990249214671067026174208217432299586647043197035507548098018129506886726147141359234045937644723755176702408746545040919784673065383235999480950544391460343719446891766459645585052928938306085009066591498541668936987969412288649757622684605298131993273849884914635244907154196024405926404045940479875543908722117483725056097919320212535631565019785824135756335082749730648090703005311387194829872713921440765853341586186483301634192887275830634086879923883091153638397597211875984438582893309313457647579886315047208854839992691307544623468168393042826241286210732539591995656227573098248172622081202161223502352675454436533898840298584548373830505800522409510411007447877212572090444563447885306560992245747656147812609394409198023214575683371885158146047388600404278654452316111328235464300048884923588031232623286163205930382733190154885005605325070817658904303135737746815446551850513590701282696249163963781158905085103636942742082669232522581115473458593482580697938962519969676045430894249059994465170009095861011783361630798891934053773223449974472038122322189315464856508130043998920533444449408142938118265763152426334388788757864457642672887162748328730167225889123418850084001255038203267968112901483906058700934128833523757222155673834198069737491631618481980759893330656956446111793406034845769857385529672663460535036305959571400169274930870954812758684914815422438454313076359185034436033122562226567430984308645725364461515033591637929738068984989487222620847477078061281025928386630985460139997092056068309370577201285206654316600033110960291749395869438716302774241452797479668482604122352028458940769293312980739153849505058370425752100770371762616143926960657223620288139405353395855036386773366244242710667658725711635553083199731785270672127388954404325885495497539622259967223106954362839801170227915172108087086188856263797574303425310366976663108315344898967087903705273568734967680905536513546101030662836752820302226340236099965003773930184264655293532795874749609752377953623302607515657066584749734987749540756040787084616028044738472548069394690864074266961284447637786772426780091654215650195614161618718473557203195481115088442552893251170937586508337692683709100729479353645948433031530309015982085603500305340083212003314734515425820970257020103678994248212253763158261256624629044390503594988342082504481983281512386653822630347884780953415494029908248668532612853583670190622649443508965637412931334632727883884105583913059750333901681844979791999718925835616220783148357619160389071967477151373333844328422304293583500864274929046031846000161663747983172464004356933422102067749629493450556801328634959111533237647806819480606615069985757676169577570063467123479875459730750832952829537860294450937499179041781024015769999286765950397099371384179017475586184663424800718202114434521812696690293710025816875460263505198684542812786278959911689302890247803872664171023473273222803938497831287290533477246766654719159589572771204172584597078050593331408638386787592505351282811391785225429720283533037970928676586289524340358856785756850953604633436295672217671496135895645994752346652718270529757133022203199090552251151785885458547434027439013493931802611895485585712719150590417019905206974025988680703787389298742673754523942336452893250614864067768486692738674233569075511401774473705764789428576720238442073445985208224784890200616381872977122270409388523269024130701207848864514502233887541375523360675791192745096392773560885451673547374910853735567399507682507769364618055848112917086556247170453964358425937291021701257197894861706046822808830383757803973509883890847338255160147151533317810765073345409314708596433567622034601542017140610424998778516647175354008275749456835487729156658208713254256524053605970410298573271398599025833459420878391631760228266201248177199397342413998366687854982734830584549443214018786250101508583473601391576612289102819551054937265490086733985418234241080373409813089008641852619580644869411961475563292660655631317811012014974624224473115609379356155458767917745213150028193856453694092478798607027563108456228424923243464982521822513071007200197173570570681054817766767785108306784601738833302472450895840237450840082713470831451856884224212375286152092175970647775738715350429416023729322565665471629199458706929751858168008797646274973475052733151119307909056143269206594992220032499014488281129827082011136433065025533357184243739543191403081805846095597519169196911388025520866836335726727713099525963681902746024010583923894828533454188446447352079677881501225843507164038368488060483938991908666428044751469550973258014513931184976060035857492504215005478845371592364426670250021434628880192497920783739449028219535900649201359187917815625054992841043553948002066673113541922575483781099157992681577701313248938526662582681082284193296896336879001176285314121687678736213947878363090141407854484781752473042936250002642838054839031247994016224127566035103907387536708807623216443663038551853838023188742900320035028216729267647206398555979625332032371711418588175963745230146106941036835188372337823618084310287375060307407040503292614423686478249737354559155673421552666823254616793953766948803179543220540645681046425332986497210571490347680997913324452104415142610184556021645387951137113550003011524481331639202714090815232243878630203483368161997737731910277642926666955114325681636916758028538115346341714087791975722886957115612249927946177088388059063668432841531657799055381847221216806386487253086012909004979354749864645047937901134446540794858039587508804971727679810414312371779529580890721899596014763232357377451313928856258761954135465676996499632204727510800108736254628191428291115427551983854512170850825376457656658744256749645625845304412366106638275487270738956518130320733630142684270383299702208711825994748785601438966129071895263858201321086905609210031222508021939125213908908529472603544809643820882330048225136542116089545705423117173620794331194262901276513114804813434839520485799675579441084076190453568405057800378278680457621294179686348693494179348062329204236294081194645909910996796833064948027274796809306818341991805796453735176391789161701738810296934999788202528890260800918619380577440212763985766549417780002107875051226397555802227765324579552728325779814946320783384860679937632387523468027099024766308120386040341140547232665796933417218718240567433485535424220553928200576028916357557831769480912495930298280068520333947682893374216538852476725604673034700922211562310615667278104835889345016252219662611374499900389797442792304457971547881179895224048739851343838950030087629213851436070868451074904680457333040457909476650951086325851810357203225954851678749310718166889110517806500069561244575108612099468431504643620319873653099758091153855578516879841064217457448500815121315764571582351089125049643414656980014611413672412173496408349627960711706819529379580463840446161223887672609158088763926786218311085216566884597226422829821077463207823214091854915610687002426019662395462871270839282091440777540920796891547189053030370834461465212165239798927504433655220698950506739719117429644249902015795437097810704854324922660890155151971785459006306151158065548257469393567370966866296508697630208682250244859832270994267316487497304944485693368491434374690896776260184556321254888067284861019776904379025728132236008244795887344684738216697482493227639325816601314105107119643292449109258762462862006898972884178148390522355571892918079851209079927925505360959750994906160883142991436563323675274742179728275100172099798222101498212947417259884615021961230393127541513336301375638698008483945264836074129181640113238149448754775785215456371523343069231005916861495108198381928707841840666800435536343650239831025065100195136515641402905578207804150227409005222937179902998878563655934946076330298048125508331937683023956990802314633999449204546884787768861609012107015446507014985748085905002655601159293557421495125133481643441022955810290407650589488587901090854998623255831440853616985929606851638587750121156599637048795592567581580756531598206265286904820443510231283117699899964061050693096406702306855817873602298301111224477064865743932944801956639789185609537884120804623608618468805223139282648955272577487783944535502378270648577973791524445063731606706173307095288963294494883070737328158665636024228853071502530135831239842004477842720197904600039388991901589208261136076015501574222107216622641254143722998078071550229632162162326085484312747310734578066186132377709540516484956629003088360307632918083152048012768301923849123730677065643393166831868718379858379890851574041773162909827427396318335668979588860815067005351091818206370363776580059817312867907714433360329101030687107426155744269146693997914042868937356746108953250716479395484698321020905904781966370308334027410800395100389305094915933604220573258063324667615920673983493025218620480334922466955532754994414077014223065211090229807117234727261918697380123299937442703999924570960021167983462473769090571105512755649797358603037327384212379724153266566477321684471552670515332287344847921605151746778321368092003399173284941322179738451518971336652811227436001532912960081530420590964424645217618963425037247555696072017542346368670409884181490083354573075039464577376496969589341415344679579434616410294107484189510283468098797898531467398725548990668081397691344220276491749767495470390886459932082958690338600067323341210599177629738988147575429330345599384362692435795587766756311363644211971294680619109442530024226962459376850833108155072499757350244786860864893715349541722493033275246042226009897151421829697234733763220118044745167483390571836023407324970318879658661630253535416843290283176051426393492346513329151680584142544831665191213691131031314064003945516408158362861363695709746544075244628623948577741108941864328288758494463368825165423137054060676774793899327741738202602213601455660067748487522708490453823486112156453530571000405772308757632011883586573102681412631444743534145167673949291132061913430375482276379296505489705325335213699265362342354113543132901995220807922735253825142948149445924085159333953457232720643290693891180906271649746126587421411356697700802304135599849323579414161981188842457668142876192222278940918773893848003157571032917144431553690249172558447534615209835270678112541537420055890312426663672591970973764237372334317386873915974239148132176687885723804965197602441493652057321651378085081881650443451070194120007029312252929306821866470911891813586705565813373667077731075450259411696553854928901611869708733652123366509114468329129524680357144845765551052794221196069777016778062770520232326990706022865151962747693761533168074956284694249053736250385597202788371057838500696928384781820382885277127388993419371666490983075920033176648665087013353033672596075757069584613963072303542159255500358108151817410890816410728350152534450288547985042266814342635672805354267494499734766192259069453366301573966179503118499962836049699998178410928182427788403899319245656870500695990833245427384620371347595578125311396364897676554087576097274255046672156496320614575109988606352367082244377320156320423386692113828510780906953533832287156854440908060499324779844616122266537057512188240009555950265834002035169365213447863137502563160490175747951682881983504170976031248252927430638639047099739371336090232637913691957664778079558682489119660771024495831432348736490606410592211286378097819669233726000266463567351134494048267279170278332648207610420807874135106810434608742970601967853193461971035841376071320155402849447868665182725487139766373688309149096792082663205203094124329572167078869388579748211113432138962640776230788288050149445328070039549287163923583854575421752807094427839594863425846061065207777881669563708312336102725553626567490898501105726858055876087668314000381751124811107074985835917695625629457101186723683490590418338722133193692686612179044226736593916903172192793328578610821591826507026875248500601790906424509232716165758484832721994985715803487212549956490477051293275902473759083669277406840525282081306173785754397743410805860009969356260652348395844183947907581697484588444945576552965167010660170282574768635606905476743907920572928136246423857455575221767910035985568996289912473046682548432542403766219264188451381729286681079784507584232140104312397596577545424684655228603687921101349016768027777068619316780454479962620745269510692006648882781626264871042832578115960835413627595001170013811932178310223065716822570865426190477213155149470382516012673490499014356369588016903401410303837992266918385337932589825087326071402714318796715572020010765875257088294414209821682832291716619639525689095780059373898098599877654739462586687984860137020180109208186442519503998145754260641022475956474327985823555956809311251148969941589784519502570587767903193720492380698617091033429441578305970763551824772081457488775774199232109417943692788501463820547987152868093456411022484377373649460692132910500776196057473161150458364875422792431318796988554750407282001728427978203508075750534530635623412798816420340109145956126893050267653823860717720665181573620494139470221916112459091624069928258886156790882578517667878686606422852403446339744992197880944977569750203952527143876903706485387678267250673209188933998812651442416219755271147898598867615206947989888594054672784831630187196924576513720257664404701177834566602741768883572584211096969797339719781557097520954556820719157692987395578181994197571933765767365775899329181679889648085705367224264108224213542587768851546010984502988066721364557678735421734176749054654354453210038414339254537869730783528750871191448351860989579988899822847051845977077385784782344075419032637942995556997542926794107489759304125028249451827768464935617617738271864864712484572857124654795942619113177857263364304491610145217981554957979984192248011248788849234377720924859072987535266001471941067714248131330584466919599258346139956926779839102364004598108977460809969872543324905470089285511184446755812252347456275464929663659115242026594608221521536129406652163854279810749781240973632521876000151415710964586377287886436314419540886790159177685763842523753709614844074381269979401082450311698733456191565046121571477362786677851024913652812423873118787460014431622199658295761926015305218396456457157880385674000077711296588340150391801408107593642217901422848873230695777693833474461790494706840205992252661667695376148856940257104990989230205425546397434521443513918552107740155035238203429355971120051839780543539193129078736646234290158603346004386699172468750024291919231826144842682530349192180171451306050712961384925159678014350417687564224718287541593114781178899175129477951943979719887876451886727810850260915331709659351728602197735470393774015748855792762430558034965828965471301017423163649077571686905123479456394429424029937940234650519036992279688716329365831150226388164083556364804691007021321831135178882038405537566700060137177120435200758690380560668545171808275601934909302697702761023401729557853351969184379377118243178997760124411298956362202739455705107673195016559856557036793634254108106770293019346558838153110701409375438652479999221996794762677548955031442984907752090730416865449719121591550413635185593859628002772067699947040919865474366698520244886043065138004635665316942643387432106775747066835189310780056939052603572966283165652931323895768867258592945067356207632243186308201875357797370821751104002791510603981278464652633034973314009009862504148202163079432178611841662403519764287745996709246969818625467979664708777424555790882281559063646088608252079820956862352333888413997642757211652818503708687629623345991120240914778676638412316634736216027357540967509307239967649559930085785970688798793616212101121218972842829901211612719570012452638843468709192207907042118831540258812048434770859687744873045050363090885109137485762511204194047989118867247448883225259150092951520554841995223390584834227707222272603488823587945177809962705891168699642286354978793445800672066503316553694230605471764373941681638419817201365309614291494808286696438602519296255920702314631362605933522801144482855451904632692476537008644252125505074456808281758616791537199848760436138020125462176456297437681874352231810962105282346445711514302557194695960708819144135120226755097861657374610166629146815038844291909600938589883397773095934262389010088312406051765218843483355419993321293764830788331013669926750892800195919288657702550912174000547085526564478735979150610388783833653816514705042176362121834249951943316683700675420454110706979684553544734075031778818162058234255150102186563834205213571608609908887714037955426815575107126562763688142116638039022526708683175933204223019542988311800562990792511078220178969948139529559247577901683664370544140995510205376269166929595779734891989119497437378803922966542835504568849782983217610750937765528529083282875045278013340393673422144966943371964593161499194329192130302372199002199587376232648682979855177877954161357993131407440089724903877928775817119143977755144744223733577585653616978736336165434074074546682496411553809469335195160035034149389823145250855356575469583580562835265266352611878881392304839836415013748581154085386212307012181606663668921348081287650676135087988559497659850217208024540840638770390519029714881986721654491440918942881830636574957921721589615526019986041075423342858667342614833618574353925218725245154357520853806800600356762771108842290140154012293215964125800741960091132794634658445272498596210844128007424924794571024458942251408842418119746019366015422679241389464378051670705808168177687319406838377689851488849135949373675635837408339800287780564637529585673167257261242432661472097655245322434821411240364782817726342787047660072184580538608149420183806687167823555834800426393843611535247491433266568670023492349628962372811390113253448464950530992951212666838466933649231574844971665271651137334727087763290744030418878857068176033820893723350127129850361704161266357197180216343552195749054099107471869955154967652014291332424974479147578648705666395004841780883255751405325483850534469319413522269994025237217814594322466295991208103225364453132086695949518592338545188552442004954920840953479450205864604570987620263524160346859635219782725559746427475918903106827719300462273372222983106791789983814093826989897766053239594973401494538638915620618921654326138339401206408553284457603309461069708686407878992637274246929098496455175685721233135233949886363417831602184752141531643638000309869802840753812698642996209077650799666082454536210888173531652347518369274717801832940193124328538937166188998571275223465989420722454344494196681256134218529318658877091046694217090023197857649879916660203152913231990847766621603868131051449878894261943419272725630372074750892614031304625632191241804745149054613526470185222771775208109004298307644433223485442884651129759337493725108708219002878721690392277856264343205819928751571063457586637647528081297341995210418104920754109838148174576121887834011552099977502610965647194334707911103167403313012068595253519160410496651793504131490735531815969027082459007549725763828954693697624259649067066342546762427461411959105669018383356458245407965445303996834810904483541085894633072742484651997994936439741247021649758156620397964273911344905104848930554553017514790375809980282481091613672799464688754349785255365017003103386639670014946904429309195444686368982518316880824140950110689436516563198714441335367746141913075927288551090891246347024279779220654466943977391528265599690535212529823671961497946422781990740121987980162620741179061662964785266223350448006737248094652104808748022253324316489550289557782985448547457146489607295200072796473810371757020580531817095364894914971658753233634667198854498419677481547667991638121270981329543973630779711928447269372609045745331185563330391619508878450177276901515104348344024405144081127923905562971516323316965089229043696382820648616233116361405587898906815050170739385155456953656838000730077313114700193819895882381317882227761841115559386857981605224504995552083610301657458526061525479124739431938333416823577562656458675860773049562449105382173213090844506133423033237117059156220726146737551856780104519588151665644215748819814751394978355177268701623730439016612497896324866548340065483556222071271193643154603077879344694491312968659527010910195167599408202651052574666735897664806716734231875731917660121705087692272204359481455640867317571652000372662561377892401010623054392781680144896593462559497748978898953170853757919185428713374226784013746955163351146026767599669359904302949505983334802918558467114009588922838531361528647746880016924116305423383228982384301720065254897152616614142612970654022082099177802688662111084675935231664579402540345021434095700374852142863535936404364771130185773391222025950161266803070157628727885491130477714412579903601017464599952151362508467464693467344249287715821802471676963283884298979430282293644265539083193331755743540350504197982315702523705564307249158712063471461391380508131985261104545587468238420395896403134293873006609966667968670288335727884660066593211547369246887026287013568747588624133746574520881346586214967522745592728698260849323330142661454276205887820841473691784980061076672566688357873716438254172742635928304159538494760785461055002108887940811984454781690271021049341954953739082269258394110668416353994473959189144244700187669944964933726349219303289491156534594416438114966339281490184961473912505425940182004144720940510879694421997764605252118922016129864526816156868376651459112500759571534814770704832027720097256993356118839589925511453855571729121026666616073966644444292141493403234987374007373854176417738045758412857045886691473111920246484194879753313371020293982859811970367708622544453586770547007027922763707377883942082580604469583919396015639939916723350124096705219068191956421450536750850940201898945375972621854778036769858986332408676909782361078724584808592631400629374056707380953352936959696024611608435528542329704469538025683011228944771599731174408975717527474157616278905802339533903642938951165433599683641947655385155583586325851179413110407008253616642743358372924835222162804225365581450644165885107738261023665262811829316596777776944788703232728382113848032013746935472624040178817032015958865265652084904070535078090194886960271244388673818407406663925315085697040396574657621417396472447120674641186651373317941828288904544733878220668511885281189228299735685297324065277333066185238972921405375380923548664008855432075743687052749553217277226426750988983593368908826752888515020832497922716615061033881856492574678022038123475445942777530379946853005616160043271200606756409075760754960469294917484463686285401855773486655071168027066053494141281736772533368820577931726473331843760333358848997000708717527991119147718035673211328136989907416117318718882132796827165079877939016244964889112388796171200576135004659366400665879561179422156766857198749539726032620062832286653823271339757394748638904550399448622546676643672181962100836483204849315545232213395520820719052240210715351301669549378619494965446128567931659000958128526861043426847098919731604221919098084019506693879220926251531617050691510806579890999891922278524850877972607258528777062259544087017949656550855859401865208438795356626091322691776608456140848750509405993147821109954551167697218319070418588616959647088624731714185454519963744634837191058523485603238000570108066256823867434268052692740378154625052438448935450134984160809007524172090212637572656065380670031308867267677827472087286571708580398337692887462150879308056051410365810201894266571309663637046156970946701855595158007930672380774127043249624405258679205176709677562822874412289860263586190919416331316650028534575924517337258331714269142620130944890671730276744637283410401894617879889777687322967206492817834579627966666638758262717360201774138026917557035765887892720489690450171560303860984989103117086385090934098218042366067481068155144837120554659430594081592271171956592781495080138042232410036534458682518510623963812981503513002094425470999983706318979085962499475838655074887623581351633593963680434632665670865413143169475561808033571095093224407803820045108851305803057022477081848039184077601145756747046727144022599628756939894679901075912804248639132317682269629088458222672610698772570626837339001720001759795144464410116387706644569279704514095243603124827966873585309906999727410431612985653800363453068399829635700098622381076193077271492572862986620720331515195563401965387935831927190391131864221780753342664167100973103884683901734293102642252239033298256954325439347253790638742063454882350613556875276289009813672739025732360554675947772982590303854859679015606870454878765443773653249818685684712694168049111322708315277811776975782031714631842620036654492413083814764719718283630097690668592728149151288109248277914749142242724455816828533080824302313069716800805147519475607773123481917817651802563725463783381709146847227564999293991882122360484867927356915348133645566674221043273950719885005507592388479325000706768326777687891719824734597149835149054905225656661758024017347821397712197480609422032937584616288553615203180395588034921248588577796686283978194771895024261102666503865820506049083320873652235615065597629076169805732244256909987067394318207427967987335364711001078415362384193662987103190093125341746008730109348388960766884082480711237243920105825398079369068461185728607072147924890193708209438672822326858309598034567426521813026676013713794879861534749203872290711928342010192024097788893473931655963358870132297868284673523855925490500481247286369705404407009198926821586289186071703313141576587172426342254871266152166261069825268524757213556643541306586600249376081346027932895859860959219435815921910850279388040656459382087467795137158043079137820888822052050664364754137918655164604850046629946568540285460210934149615307720487671094993189319544872540005139371976522823514176863805463747480124659574567095692514746409196263828614560948356060709533680095728183528336255744094466113524379859733211853775177860060344477049841157797513741841563234359883805407247502330494724913121281171382758825480884498338790901158917046628234469240483888069251100404493217472064854763640263863772284526738134289381431341270394789258274881672289930458980012514838346584560214916407286527917674085216866690641160902762444319564277371203197045113549078827235084342665985276944211780713774221190779084569422648044958869642113509842030299307832542988110329291741718492749180158707094302847939589955378391641850689069357295907084340126903467850522554986713961053256577059512726821864689860844167052432481979254310340362274543637400132043082254398752925093591588222848592495149337154023031383335007731219829898323317294171959047259663389629547877684324127701118940079462256318454250584282563484192938826498438611366862660944465485575537277943341292911962479547340792589457472409739475278822175276939975209181376158236091456934067479908721373275337645659460573073101108690561936836764539055935845839917369436375327321025582621374984687779611303296187175196697183610685689378094194713294467359292480616895947247522327620513538117295883093883083864393073356900306470443578873944064312946618863381855198286984553983803554410581051947569307718233082156663884371140122962345008263435735342736517407685114065397646915729639808938828865833498350985870709301353174080542211566542471713235901010120012319907239656221058176973310856352624455544897017316065535528290761555726604656395447034740757060815383706502156679720839676818492776591212918805805193178485367321050416179910984827076186769651291611476999382798984567718903371186877391401382950259554408281641355452475970836790209528104066696662121808963314006178731112643933301177356924746282043693938320029043426189200108488559952241330973181236959261557253626894878066649502532912418606445993926007463467110653379971113045412044928584121930990962526360394362163321136543005876349203377740268106656551705145671991283515419271541036580154835491189989429619181799710052087049455156176577046213360746365161051121665812691559564765599969829820366087429738672697987818627702641342045458569544594784384779319464793393206951252606378871053484062212154916768648068765413955951420893762273945917851893640107780481348124730503357931010493123640926835978489715048853265716695844900686578212020672766298890097663728129255267936108861636375253210273328573408883581393640453477458270945326562069842301349359312865514795597118074120642130741646780172869409490584872463850086834747260546306480461895429925505664107332302660986763743503936759239609162948926122077658775836157779098778780475749016774348481930716144808087524686867651187550945263673324843805258594212932862881063042692279918458047359255703722951190898773652017389455053672587306743088418028810830990440366092578205458978954115368892128414623528765365182903038660320110655314467649611589221410002216466606235235409096139639273873162420380123482312583311284826724409465091158168025656535461228855259241094004092268087984680064649711788385084256405467524403747618058808054654913759377034153611747303046046068096450983151193969461658926063019765190276092174593394382353482819545472238070713897436279868123562249701193615265421868524766719624523051187522317445168429433854963453807605637031083576557738946151269204909034256468170702212939007452561279511537184583800311269854928937040536028757351929188939119713380030564092383808194596361126135904406590290833540515555631937467102092970006150453783351768323048009078347450272164615966406645689301867515524068193698761362784155893698042525347056076768659996777751474952586193420419863255595557721541898251323743923036025684606930270584842443191712228571592226022438690661249128220046437644164774286161519363075819573594888976502915726516542297109129672670077899670812841028376887601772904337472441645863769649295647158948509565598776134769578442907851611443704941911472939846874062919372117019343853531913217606600825790669651838027303127100895432634370927733419016984236031064593275578391540768963637808076533209733260221571689086724300475601817278877638882893047130491895446174145533637532668616190193412857796859245366660737347275427771176455973512485880555895234183309198751061714051313760661553766350013170250311799899583032837557799817485318825703781662409135180512941917174944388045516085454294796699039979823110570133458447650890794387977270830112503689457841898812463429548787083189792828697484857344393962765155841753012859750570248447013310427049202328953564032520852573694297335713870235094528575796730182086465281558568254063695288096570783460960691421876655122066764614240919074902635906669615474294671209500815492884849247270756448680367334717925899094319629263404600802408410124337915215297447700238321426100901219385784206410601508454919849323193093472661930159741037241437482245370682801742720690004436521428284235606133221783416312622277401127382615852708689989374754696484110383255671242943949171082927272052421803933312516739308901980174967083063513588628159512600916436966918389501696325702428121403072089115472430406723868614432780284027197877960399146991295927279812063279277554553279509793967216798319040976151893937411747607387503671873747225380004100472847860608712089989430253385562198688015662809065084025122212854908639045180788650956880027602192333914484812941171653001361878200263224143636127256837733266327255535535276056935052338856408314571456125441895315659940222297482463404019394080345233876322984566101564529712174889857242520151353951439032473162336442371197877996146138011597900021394762944953970117205798369675853322463147040956633649867862075949628133367510888785484781182078364054034321470955035066323211468065608079666612895871803915871015044971853520914984488344554849600737897867939090911869706947577841323648541429130112161832913633136443444618895246157407379282219607291798585789938776623303021454127751921841772384704735167797466379634812445966894930807554197703172195073983057638420214776651398616477038827609638630041238755702244265206254544027203039979135034514497923402661590244398345948685109110451059845019940147753497933054056941366997018993137173175038824751581729681893561742234764834630394228536686282979293866963286381692620980026178358958343414729211435965433779338472536997076683154396495077419990130275686152746110695409738324246023221547695665970767545461810787068034415767436616805732650056528559963323454106972500421997890024909913905463931281079423351389663190516147400077422787104299415526164294744632266273494997850263560663297397117278533405454307342046264353127711961700176629499845312619780358064684230982266796530513156001658469181923111815978828033199046828751904233602635500751354161712585159631582045515087639292813827051989077341934357027670022032150049976245817751600056152155726395434038754119292061530616934585251341945314198510502968005903436196941567653646925164085446305013318443027307948531884405236244254693819276695600483409317995306407130684529393510567247562717670889393111778106336413847804614396054206417457115953416724856532843196185705984208038236782868252231676858446699922215580915297655725954397912867543159644693928232216378201588268480109455915736692330179749954825300502820498968888530157901551766822024017056434531692077017414822104506743297645036880711801029524410606813818967618247704508829564377144699441844263514011290825133736815753572979282141175210618929331717319514202017823328301509737196144020235884597585545069071920555879430366351030161740996196175329474242365542987071758976713699951036345371525808103680314433872211666814975137377384406539393177920537264394313874956968992804013602555469893711728943905162586118600739429380652658040593014911160601429166519325397775971548166712309951642040826041140107115454385828630403888603995023164067924667102687560299553285228141078104903464173491066822054313272995401172097433419554252657276289408398623838278753579127072273813245934425405390744829778578605842224153189227214368708693977230077114153379072060926169652102693674949915147728630188197702505860383373042688544116087914965829697280257801770533962308672929844245778516850566070187711485170584798776877255843305810258712476147839164070701071393419976878397866578900688842223031754604300467446514441276031757200444565456774020252033810903821796031511546663489614626443110362977336118333429338937464348004741092507197835319785896285643913614654226981801125460299133913247491135360781892752596339669051803886293838162043972794272528435044929558423710568957062681254797731291085928879254541324616188626329337076938535140330864779869052358477997319587226342176065100701807756099226521257927682741227061451901494502771338080261916006030159374640472433368103130199307428193900738100440884067149437905517126108649525964500364789963190108399256370385664672920231162651021126765877465160927363135022102297288647023353164086747640691265848063006850268984038665999913337221624655802746984407179625568944450595480252875263478460470141719964129164888136786837413230352126669568219089086797567982128219356804720233801312284403157979270680857855793338717998504272610228007982703834512851738445683764494983468323790411310228011372180896777661243249667091044782517469363262041561920419094673739555228938381799379280809277385053326775631128573190484872391668045178489564860828449161342880703465537262168176458260856512107456231393281256055841072365364515713431866104478001977658743792202549733859217608709183561422263567364013484967620848350553514561900799278749705691163341811740753114226555130399903867522048893758057924736465609877842268579882349841122671141936868949377688303690996693408821572107861069317428053076468372813220633841855913966193562597884629326885949196026614748610794679386735934634274810789430357615987788585438168194515225774158919341062108131757758919572614120177356894320404543604257034346345024546053286997389375729323797507434526431422719671976940447937390447956478690768386996109573905665447317706297894282352614227251861238186022955685921157583976496655481282092047969299734576422999886359993880157387844180051759535225732175917204264924643770447235476795814376160189478018054762945284828191556799679918278994436722459515163771312368948214635398835201946659781874142946855466940584961258649499789725422946132159543900614622012807777848280480633875812733923128035786679011847773225003779956551726217075874004170243991942543481086514838311482411251568608356006745146999639652559228723808890149813198856604531892868251592539701402455168221274220470343683739281451528133633955385368888105515961013956155118918920916362568509150572440297380546928220681853275665506608729226043907443780546806051464558844490416380833706967394752426903219308977285652962083713730413625454163661514427890422189227087412519817825105852375866411056538237471462671611543956670835260904369969754261108092608949570904967401222264195814718990596426145990327843779255853214450068855645725894059181490555260819062357525861313201083295507768277514946306623935714277329494724887766161020609888973811046655647392438483091025639410552211329077781948918385015335941758268617385170760715665772222057492003943045317824201866216681629485290913204010379336916005868964997753707766292170778493951202378094414848870555551341043756556498191314074160152331241425938753262532079289778440266377652093217041128514699918515105715780680763051617916875492556525015033602225455164742033715793197525118913453914030321092292534994938207464263938856732518883126610342607755643480664817432409281027063807300967913826159837788776588026511054406452989140258502562472417009667916344512136918805331113762560799506416734196817852414381156567380527931221621540909614902556292433962516650880757263943496290523135857025431862620469298787321122502272680933779235966705851477820219283224047373000884111407514616628331586118462646440469017225134714680397835256906139478650897501589197366649459209406880601845044927091396771451460338275982127290961268080079898505374699091889056671872853506966109098316483107333190152805732456460739406787674500561353246870487173366129277962626394131506218668776655799291442885426049164451606468824341454171087903703360468783465944191413380469030080367003602492933178163837910320778592335155078459110356706333992754544991179697441747210213178920358453352285545223492853605099040135771208648156279471222812665705958352536986952689130219710803839890762268209980054531873904108677924075367644443469075741731342869345754438468246030269735602093365815113899061967398250708122619906080747112872223371899375151639201181856491678317622180265946179714976175792437630163602216735557879628859109241418784575529417684745751023471611867393972098652522057296826678341691880899049250687554463056308718137601912426240052158538415659114887771115539956425490951077916182725960690994951292678350824810497376023000145273199577601918683671968901926395958252687235751560934355356272140648109730850365572990854908395608972626903449210561558697150332484876034161018721508515840563499040303736693051300537349970512446769221671320719186910274730187688374118036148473721514407348398165093515566421554017996563258372223050795117203902204142690432255321706565869362476538823416282130731105619061174241427294390064791221025874466081445406038160047353622546770285021571518863867673778339331335821620352157416808846481561315182841233551478415282218232265223163697044563133171832590911627942458864145419474638694189549923150239260803226515708070444373961562262808780435585188838213030355414708106053047035396384432731610178533719881102306597495844047080499050201561421404417991467269182882709574253510513678212592048821254024064916588407360050169611877419339389878556209966546809137161379962717456562907575946462290338768217965640211190025964597082655123175346639248581070048861862440086383167081350686579438364303055598893236558063984267731670671718957790436864243911672245785137024290394694215839837581941226558339411627741291669630589330132684646144879510385606956591347605508090351431842868857755425012020218467229879008390099117796235768907780579225129350406452397072618893320059787785640031318077514530857181537199913782117790053539953559052282024725220590171085676362107712972517995171137854161136958746321299172739086270408332783788960679125583656005666168962565229630053046961397292949828109360982538255834414020773062941716707435858678835609952218646117009073505579179267420309515278587298401861461948545818224001343309060713043077763983803540474676536302585612643962016561173033271826809998851398766730522313983814619492976690684513717953350040324531142588431570220393922351948899333403162873639498686078984416522593860624800337379902165505796072282146091676780331004254158899841968796122364363256337402776715417096065852623225921684702181019220058073574307680033936864136085171220237195973515406393525531152479982086049746117541764868077624380839771253206475274455103940900430535507732466037790225334035653264429682370433758288098483825690585418280665578600630750589938404628918867838036969931340993934101983368850941964089603418184935632718148390813570922844113253811210176085844135309595642026520072425591335767205024116462793181466767244170060831129805554118204673709278391520613987449806905572319500571098119679939289579918497410878956728767320375343378675679661006380512535194868525730148192577949497766938415392006194632376704670003528289052365443192094224605548780319695336361571544988294811804218017294252322339002566347540243264365636807796356939010509054233059430056210415747200924905498387325134888480576378264965523656566341997405523161848903293809280600897553362327822037006577468151810140010975280588415098164212230097565225202276122366227566696686167511738359604739169253547979785941286000873023285872008297920542259450366042757957879218908572652929806720212856369680713198521384265267553059053241398817525456108145299430603924174017345498027665481315725085932265980369581135622842466190311766730681997155151374874293724783840355823893370348296723033595878580365274564233088483949495847310146506846356030652773407973690876063985145748180730200755806792860169213432540862302632429194574582361734273847749041135161614515286892527767502072870714021205553306216360963086539939933165689002741234181795266300160180821463814158551337457096282276391054670472706370909562523712685382285303050719464315031499085598779844413330972387366394008760600237221232281257157373743951514646223992858975323035332695272595859913781511544401745481851547981518897378617439436189850711334868759266978406780724050972373005225442350210366269317733146755765060712145680942685394422355711298386521847510845332878412392719886081653854815426984400080837178635379015785072002053771163505877004428702791301060242410872022248928287844038660627078576538058890713927663913470625588093168483017443889085990400767646187713978627647383044853471676115026892542268647777964553661203207510508776642117102145194962768315962861040651160672136122523272716543835909166646632410325228737792563929620053454370064848541062421593400090223418772598732531184091228489199140549773611346116096095003281074730804463075435093997286532300866413537897408131335793532487867470181464376167065985511630805735194662613500995912473789344304831088386761824679954323253100587467352116217673090746842201750265493842827140759080428696725885743224906288794784556551997204546144078525532072837945539676365484551479800558214364490297065470836444281407444367527227472582214572458110335977061708451617763965767638596442635035345822368396651492389899277405797622615969642200847558800835992674662524983577478113907358815223267594567660662353766877174200909752291737145303121070460690852354741074923988455474652710954472646993826753354919063061932706341465197736061418257631730341786807872526800408335436496347703781474675602910505072122475782230040325339448658712742851635281550349884989504328793537926756675231794912177250310408883014734817248015002791901632878088952774177758230318203023747993117777100887503847432833150842119785240254421319315336037059804494245575550107346408643981544910579467008025334875623702958527467058921601172169324984326126208331764712216055895748978327760214312357416624846952512807112550317470111111425353409259395302171731687335932930105068174566796598533249253484117731317451320317050258660191004391881978114397197661246149208330982916119861063335965213197434545300628622427257441864235539146061827945410611089404287485623181949177348799174314152828550140656073004341952718741972045251164774652682378660515550128704743297723023898030422472011452727441404876517296424950402778036842081233468092685763268683995595224643340148276736558875708066969761408095075199577825563023024705057101430336794967246723248499796664399091669896566177581974321956768251313891887111298231241452051611415849978857122373053029481301784290337997563338689929771580654654330957277012382025040100342772803043470190001506394943359009376185357590900492980708088331622445035627569162961283302549665579129704408967329861898267231783898762657116625245337953567020113859542948966359365239153335063894805637394251077400928933226477604950565429181904663510708872637245539322472812949706339692340855494902515733177741049892239355072726745351674000434591633353785702261940060066941563132796301606575281659050031629755595180188511813859950375404551699860524556429812882074262207961712502756776156428009356288261030266968529727551933591274526885555724184822165484997775619639871154219708020441105175706242523075266369623036714031868646625343403363876239809587790854510557287128812455595786974283039868845722257014754463182303896614105756061410611618355440163403904350416564344294478048305891502018541279222920200293610466088693384231946565220020480991347181580264878980955545982407311315031789693563539521784465523844986690523580296406983615063119155035577421042377753861284173584853781544857812279861155255513151468732366507018015976954796286715022602071760043407993684659006186651220631315631638553207570807813438288947079579067270436752745870383387884444173789124411338431743855123833695470643108638257009605208815699446101999622470814490099314120322268897413466814863112843848246358998890263610161785837481625910456831438974737367460920993742468139859145056008467339498205747816856920992464860353206685007881322924500658821994373165943651770478579085079915149005132200008295755673807837694330094215324000851788445147791188271501248561963098411328969279948590776457647062892775618141344776754644639108977433734820274292067643709330999197830735725586116309728910411541608941030961582093998304466886757646224260809585143237542879929076594519062185932741694876405105688679395894898391214865060618564218128603853694887375822051170149654671480429776839449191458672139178958200788417855163446580428215248371854316846322183083424952304045085455255977614348783202318969349133228291469557794755592794237616653440640155473932835548334340866120598865313048705977974441558100316820425689063740752641311636572752647905683069635528709284439964005206193635296374386038759528631371092155139264782903951811327730584620951624474419728876185320459553306792408762171977601819588279537642829829206639384630398848945390763621699668201835103669439521066237470883757270577739746361676599646017424731552555278641230009335437869504817157063095586867104891672105869752092067093116813966965863631236578850325119326632368346685891014338986312817910994663783796917826204801013096571541347110137202020333498751853234614994014466819926227393637613038648601891228754362964204850285567854949919909203335349963456786797753077215586914136978859889534713890462623639602789971560230116181462803040254246169834652560148648560796489412422888697820409971839333807001211489673703690266356781534474343851072887496193560432565740946047663962921782646200251789285035269896290228793794403037172610902644681938030067699793867088646860108919341548063944793985389046741228416412532133384217497163379517998209199780751846642336554805492664432685773108593829839049369900896400324634562310338071326183969025783050357341023267737830570680409654213541239434378811525059676849901658659058997838772958068455891325340943048922177905841085245932841100057380416407624811417252828591463410225928281449897058171185970786599139410380103672160477286744432587838848498713377302125448162149425283681705074639581261692943138206943068584999357562207338739167644664984771267248130411083245885468746220258334701555584002378645675256265656269245432168719877960487915383669992063488957490531120932258408572609550746891004362205596897668133782265322686169321290520794882693833767942839999024082064395636019363423313267796898498133108625592916507262108340798500958082660030424878064896479030184169105530488826024756226564775941975296615385248040615549410579786264555686227965625496865490782828949973553200022925049430492482294448255788103292764156314077915656694936373068021583567651981063676148161425041108606725618069620119750978625347357901020844550713140094927032807639827020514681315132726319684091615868872978984334324790063864679278458969718168336668320429566270954193945843790011225903479028292624139547530906396629866197660160000164150090649006963462865049532968164452053930482917234183638128536652969464403895205993094518989576788630241263500040767819221087269898567867950752016805936401959195915840431960492213109983493796943849829104149747996765154402797590021045415943644690368494618616567844082563133651205135985682989872876807247326502655239574937124309306390538879474834706592697903578410678984933003680997773516522826025468981716562323312169989485217398311772722148983712035917168058130539952852070548420058991343663546802408925299376506228454524360736829080503325007852769337081924732904234281493012896941864811909043131197465574943310573567815652024440982809923865051159682726749574341905291334820304371489676609392162970953748719007420188562017986055616269190564226014660882164303845906713459197684238901471988595871463149208651058077470239117253310876208336773199171047844398716469621140253872414886874875260566456506354699501892616743630067902589528106843930321082222619861057882043846987147244018832610405047682213053978330223081142262531877455062517932997763382025715128256237361905335430137134343075578535573951452553034430497763533070278958625574567396308634533954616743626673408005340547701037536933911127017808453636522016194777702134532375000113840735462428322220220763628780928983790574500665649796239960245294114023587029777390634922181136626298693161769900244667228626771869346890899316137899070975751911604946073854854089761922427021295632387827265459557538154700184721494632064491556243236687123295007817124789459531466519180118676760916980704599958566446672876426522503443181389823457051857264634553344544079342537876811306601497906869082813212359001077536851012934503293689428275421821628485381477092030110619301665130324547925156782168196521968229434647324546308360141215031732052510817878419683573115655490752634337027374264736491677696849006577233620937254710252830635850518772087229037900466793681603401130801712501609934779977749117743443328941146829832538794495044615846674158040746915488235046942034702162586806818115789189995830760225892247507604615939282840903794886663105326169463879884992153912126861839651246854869652058352403411272766268374259621192602181299104267377263347949554017356476305165816491551886955653658580481521220635307206286955747776880411877761199188084211075334859543694164539167961674197268071613800777126100868252529409777365241409159349885623483890231750833460791294338353127483899831925725173306560621293013704630420487769883212543005008403300711941305658704573293572524324032267611597237818500399358756748296758134181758668992270693278441549347435090964644036532116215384948823567047208578662013239186560743334981335513038794891011722786509119134406469637737559252041627948623220622097769750246401933987254841417457630633720450226706789437919301828757092694656496113819388769480210636634477694265199696464983847632183401823075972219109139692716532390773781793928811493057817783338375237655049397607886124826415927752030897697850195688479556919528658176691856002470463230454232510740002097093021524897882835937056671681022801418954871081995042317667009014414533684777029384260155552946164226771175619635246572768509573971006930712677607356256844545328562719914094559954006286328067966025675226998433555477312218133853886459833236378354113101304476144810287273428993271177692934877457142997606725443962798678677046793489403895842191963283500123185788284624159814037970085599819446638009630023759698210251624416091063162026391449195660940708262607485054036983116574868587170461748656317268916463032001112633695429919360312156013710026046657538192826864741359441271627635161844481957277021885161586181854043604108037444457295139585360158400856596884614495783438603571902398874739558270155692301309164529028211894219060185515006174543096976109870283294385464672495560950924269254755354116724035039672506977083324150987666205250814349333198273857024072848628356744219786426037075411639590207345663008093332669734218188815605482200125851343653017012852560317169652612872982407336870807500636714215746044674849548020517686360742643343015656161089146924682322431369444990896956063538114410962087569213498302049250398127192686698770143832122884039940098955143091396203746173877874912689064927490339041081381658085218146746070525731181720594893860576676260825027636121363143217095383542274608369211916143114753279869079615572165578967852755001673850892962161768939018713081647342657305726503758798355290587290975090640939962981685283594243496071444085495534637634060621274312941596654866336714906856140053651615684537571558578491004622922449504922914829081998051942611523895334190042793856155057212447134077871189645889922930380785373513451410904307914700702615185471861453932226943487928950456914335127855803291426551870968009771919503865963968316428155633923479989688088003392854624898709986155032668491708802526727838506399788534568520916786258173106817124577556407181271347586241721478634785537456620055526677243442801242759290265649381367202640276416390621877791636198510291797134627374420090619933505316941697261242559764529758966612469967979884209467202657434903847892017990155211662658877276116533050092014193196201749591694911592028835022945910971412024620540666382599325094587402696022108296626124970891108940919832885874305767569506841921076269423908647750697765052875030179471305065200829801901434352226451147293777968478999140476717987810752743284874626155875375478264804544079646496978680636895969494801597096665419603379504750794718630856537079720402347667003476225385320933568288381631475633533776704290059538605714981496794919579256654827427051037108303402679221115720392753049214019156338610985055619831632315886297497357474263977941747954710693804078466035802967407546800167105776753822014641453941231414431053092890420987480186297808205415696728504102780541034430220585814480180472999976114823595327239319026030671312743077474673421594595442529187005684369991513336128281163154750873959045355903992165399940524228778813740229277084081306881559554757039002154725194720630846066254766491002829673859181265459195554534392055494730629311643103525376095964793316222241297472593297257083169217390968238819013063126276568262955730736346234738561595878283147685806064603926584371198748585618014467848096916290608786653329210374740676754784972178185264583304880273465044643836379503122425072860294448027638855791169775875698744677104073921066385094983507544459542461786391283210844347374594779223227716427559174299138418687191455812074510040643197180333409097698078492797208271265597410853658595601055214676797399921228821718673971958332086100729930037620207605394521242110507992528144191558369501002722312038759087538811671600751545250705067370064246474917540051047798484516466404157135774679906903120320398636886857575412106013294324911753060695181180511572449547682068817534157595745858753342816891884801722469182164746760823662548407280525431411051086060447753147157856761749638511039239223516075889920680583452934976742745542208739268908939418365762585683716485362326537198456057586526542933829677015559689954220124437991162019931143882148824492649042771200097397870856424578649673562959969862633551168350442286798942917671108524265145391495373599096100668442832687861642345174922574062261540933162532536256708783267358446615569983307782825443700738768637368134811031301702967395394422726382590687391109464607863867251654154504959565941839373923461978117178588190226058201614573030008329771432719034923492160555127508051483074000520060788323942609575805286613651836650050643941769705891960677454526090266608323001274003833997946932073814758732846708899032582614884183049071453939918617821521520883024575384568479502235863391923982334234009060133989805655700198871275460031999988400885941290670616979408911910531310316431850073987573202337579694375335652706769642648683684812959108007731497851709057171856043323246981194023140814693595083301705097017263102496805027703316908977241160904334742577506676751120632478851170712171061210636275174487808933316348796371702638431872468842464344292252296480992137620590552142032721983638830528289464632893373550063310382338785403681400991973285137209871568793977068223026102862841985312350210464533893407677634797811578619900215141934814630907942404502594577864672686081169826478572765211058540926695283737514592277581574073433778903749950509187790704336281848650339659580189927874010200061597525437553161759534386001934394765178133582225453477126221847536008901734356237934714541101596391789118669570099967961412304756383716329615409722954576095343215671088739829024033315552638368194915075365794248229858481890764106912258243686061643478808378504105822828789960211222404608477987924343259810104389282157118778975018877848299544809888361279768283217252669193669928002401109117942793727810505532882428322282189048638636661704205508933425030925071454149840503010924890119398920861069563158371076227172677986687508717716183090526224307478409209387095521358159944257318249663236265997281616561819165716557202072166577082136187453916654862891489530012098661640682636592260620091984684403852611536062156619273652606691920236743152416043183005604039639422173698443832687258393204574952137837980684109170571442275150896745150695663859034258425150893311339289788790405697987447342266251330437406041040662441467709538158963484553456589752654405356238658793821071142398416790326407003792880167170672864754206331276570782539710188786449575595101554902539002116567897365475938901753995812338992667460764480016510118575139518981000392821742876060821069864804689449521464021041813762225108350872301504439308115553216024414348904599964126731007006699767083075287020867000085785646385981289139635876028384898866949349376863810541197164771565511276691021699483195527852736552052406932711513901882883784933586509326947537751165971447089739828844536645321781138673569147829402487286447908328828997360261361625178296468916447268975714283072431033315842867454396265033170197587534777569496905804078322279317286828634988461459833916983798656476755444417501637285887354509127174974052124841881726622496753941902446535664036178534412230561050732218929890675551327330009933394296191138291683804715670291032006912468190604621283072613959116688353638583174549759582419360772726725508889428247036990110138671197599509660967024935341411850382647602982011845353344044983287664789612689344345699448034900757313424374367884469631148382141337489240468911334086569803151302350615016887963664058442156214418164127336201051401868162502213093484759521978251597479139335373673806950857461277287879689423009713054390570168321216555801076125179755243227692224258226684938684613768361430268477612857036683624206166830781747193968695176848300514961154924823504457425248884891302219344008613800198760276906966359947321773834088415477445217841976974677055672874502395749052031229872886365924037553066246427147222623818967919647024876867899000642831855579495786778463909210388837021512238049909113667197179072700416543985342279349354334926638309632491782803599834950683004684546873024167444628775763109296452475977456621701466746636870728988884830635054008057474476073990365188101533973370123016926924871223179861649686298366296445308084655708116974213158229348293774270931177931946314303229655427015877026480602905882878351307233956751436574270021713824815634888279879533949894219362281950789572947961243880712860074967232780757247393416830728138621422779671091868679130372128236347323895082720277007002564837111579458914406553776661998600125038671753641332995826482918767519968897063606376523015190111637042658861650545761051430070742751438015354228068017149952729834233312961410833682516500754197125424521182891193407942507530580079616519524442132714973361427382304120028061955417619826819090141887363489467317762775524879706456468239648036551446554527665136658488096680345477968002693427651655069964403501679651756188188298777812896820633424371578772669731926710689509307879478698477764411634718577154845160013597734406020572395945372593439382947041635485342776986052064837094022074335464279784081527169433163961301149000747591200135325056355048259005547688250735098424949446184315297252588703305264798411120433652383724248091854701931907134675770288271181839887391094491804533223111685833467031895230102372774074590758077690559566100038303271331885374325909095063858594974774364026411915922983772473133857661527343805607648686569110404749126211790978123247810902939808468329028700979009847319511097787845637747857338825331783148158520176020709801963527513299356232111414359371125395519554616340148377928686147364909803112196951600459650758940218806044388072995988623269984481938665892254471069811569645410725254149764725258765503489640348305940454538919542829446850608127558092907308588525678770450502020247686609094420056952599731108839081851558636530559702272733359937839719823467269595076788345746455940914995686797665202484747791876373761130978826848625058159729562013605144229791880600876089834940733295289842772999916599058957860198174892513213193283093400109118285955588125500419913876610743910824831095259211244738187317048202561937520731880968497977568755927314850189711349042208882329841994931635387906846829146364878919253455942008273434485486559697874964160490078893360538740805981066454910165908873225576187530300038093159602503269178402397780536280884221736019735065526853059944539978972803064382094442324207708565462694436212550043459644835910999291192218153892366117815090243519898474682723296475398126738633003516886423398935649516566896896780993421601439821422669935136135538807669451837091897707570230734820590223421882847541207258362353269745825741398780447674609724342144242046565408102032782764959390231752965186357867074949792396876227792946393118570322528158851049302902643492719324038011474485390731860500518818534454294905467998730241151943483495607814754441633176190510004864071318895259955001919933809150068384605225298538883050223516438361342914352660243562739590220660184374774949932159755365825035067486634511182270463700391625128750931253035080944131133818542046236512659655286931683908521490728479851337525169712518273657901567781471057272470094681442492933712487358652628553006273347036692284268802168459919486221063412279835855650348247034106300708411497184582606594426958017699388982737773553600482902451834136225010212774202440248487736494947352860179361564028202677070819346760793490334264308548889193296080237130394790380174421543599502844978375283875895392248575362107904962847288069115057829701704863826895451905617775467579379665103359916424697245229223872402369685743648317708638922357812640812098692079662608332217722574231059152506257013882142029489361618215349007863437128530499737818668623019280559033713113048785205380679000695731030619409171168327469752591999092613421181309195306160051386969907276672803121459048528571193117379540227869961598350030319569755743263718447605201546246356799169501572580174927835259740865236509562939459300522216728379594388220746577049076736444087397783475117893777032948315653699597437152693353899276895276197768363570137561897896271263435739708502567474608112715550169995254286524978332589599815876624906760539908505656050911382299095223121968965712282115961966208495909198745457312867583219283489878332695720628192720857418460697364712667821557534605597552445904598871001336741036328416361571882585000813823547022401851722261881500022175016015488941043173519429272810904621316865890324856269292237804957626484569777801831420027577339063081756083264477125304874454126863610573780027890380306100406537737318582517701111931243084237375273169173375299475993072076121130165917123717301229607136121872847643014922114175827796969338008328361221979993984877867247759774796555204004733544787671448181858258295475910692611785583325698568396888219049708314445144227797325803337540261115865338023885108104742486029082359029926270149909037292927252168873338646123106942567132169679450111296862387883041997451503152234800042714574077641921518056380577082812159816712012599021701057878156695236563916830117377688513065628239723182414163567948001621640074687697109640799335398266898126242011592333245360148684094537174873933903713797365947699172310818887798147040965609217776188173975534494086951849398097340148750508740402812647028601346291619796930286449696256266634007717879471029324177385413027972836398573892212355915661082434585792175353064109716126802192607368746624218599415119292205072501868303989161374838457735961050676420342862708133763060964572605795326441000221907674734989998856515915567243077761462431181005553499742816853865293942287505588213840159381576184855283661737601972747376382735228889093250477741262043236353537459525408660419412228409093910583801020641645441687368655462819443910390575091890635755183410781708055580883372253034678119526285493513822563795908195512396704759322144582946176278931493967666657209420676131173137424362925408502749867176873499281617699646286181835176339112346915470206500326025487969964653624830285789589468363190622545904012614877425101005347994077377495371934765547339548341683514289584998846384175239296541507591002841179099110151153991668723156557813753026312185897300962550718551054440699825842090453928889779091340561264804265975178957599244888242149134101789134481676781204661726607364770150915827073144848174482087854192944121171718824105283341127944038051225250997422195924132166346367262427277468262339741068767994281360114046732837274352457635767680771009873259842827959439272346290833160468826970885535389284948228241142660543411310732716138598790398428594440022407357266224895010258885525554816759567458328110748898771906901406135864069175621195816955710571003965835459710945102400929508590771110687265067932266668240774330308867451998231147609865539025333488791891620520799953571497210045573886648124186541261296188156127278375606548607799106882728288397909375842929215769083322320283653575445026864046760811485860137191552311351338522888003369614760589469921995287717186933812270826273390368380503048381109081004965644420389539227999791124664044986921521157925928822079770194708105323790597992972871202469964382559309405620945129611792077964210904447740565443645843897113828782343615114773965169812654008776222621978078555151033149423520891141167089786754679771177173365521648747158076998512427960742905009823878836836606717305533119579336626715800226801565179795125347524531304020923573868502074555613330332239973558449153519442731170863641729250558858809015799534350674528004626191687603147259507950980869345176395056044570028199408195640965851016077997690156930436774778435528374413321337600952561516523070533459417025835657252117464041265835517759389951771877475393225422127432178649452310803983346624527897978652165865228062920229072555365616547395165164062953902903945103094361473013242326324149544551878372217094806008902135127197029786637137177774311297201610039583050096347479751395767649017082790049157390454426290570559169765751566790756956099003376995320697328068062771206049214758661924059666707304759478659554279740305202092487754524042998663439698467746426902976053636594830334159611054539918189572062441431609595538101367098682102747088893876633417301521721062540696824233598269770010916798435477347309148153168553184667000632223537398786648396168088123212525060865967276637203584405563312048114658874925622972766214432067226694200817181877270855000355323813400417878468294446797261852237891757658749983838699248160649148220808745605457871750279697091959956190028378003893519603057463709271071447991557744968839570228342269073607494082405059784257458753002380932941719601531724146869716912495146304924831175079299314266741810945133677879907866845760286526595357042834988634662786689971655190069862498005685367724181577061563669466306188072586165614912084077550128425860959573141089719962271919279793785707755238205220331303830801046227488001204539455832461811156354558034499623000648544205330863362036404257584568846092471209099478830949864206483972478080612991722950078617387124877623166573577751076016486573674584195081906568482017348415868708570572815468474665854256882244519931141062611430102912013599966471355437240902485245552780806482139008657249525993354879985844307371955046779319052367038964019511577587664365058989337809060058615160127718024730035323457076669455892228932596587420708899951493180707116661790419600618033698796853016743517860768874579846361073472128547211499559304177833548998527895042917481611815368488674414844134806203528939947654357416348179824082951169374438940100013450743879108439860643741231273359163968223408879069947226153579283251205452824779999832158433257623977450442262702490727549122566019356240009944290449271374886775486986024504191886267045510325403550544338686429366157878476889547087055804180747133894203414743313254277607984831832929597843629063440045854277949560339300792216462652495196917978714083863456581847616453594113422312648865641669506201802670566559676431316910573857388616907713076087948762166101019183642090875932948532437278531847582660767918640741579035714171670928764348171491604977915844274674504616239694987402480184071915551322381331874889085335071484388927188388768983877639897578165157349149687407462748357490135509754225573085186193289125261109718620851297281420656686463866967755670990785836879359250137042109965382196408488920379966705249561959261951507674033152828471341440887251177682405941193873945777095608286733340865903542820068486215623021080937823559622185501064145762013516073002577171730881071595687711748013868683681318408318061159579328667745479652281193462607437555076332808057420912133046220490619918781856513587131095137459820656825964252047360032916501240365762382875010414795289604032323912959429100409316460141335435407431042352374256191583961593455690323699957201616180176445382830964053502370671532918805789143261493134566365483484639604349522846260910159943858525870933620865355654322430628533965792897407908238999445603955097759374597920341728037065069775364287589300848212114872587505817595494855087906053522457596559515791364208725272573421771147318108498198247632908072901513808763246202351581529302959625626247699940142286751974184720708655868713194915633541163975202500640628421638051849951769324605878208364425601188240302422423949181268683874450464457022405342742406395038584191951528799763822836283912093251865251553184344087639185654794780355684737288305824292978984776750667214147960975933719286952607452549426898909204848420634998020217839578733730347554498014870723918597242207853985677878567403353030759672926385405248621680047868385120711048804593499791058317259607646582824786787271108582941851785903272162171126787503249104127024202548890082218303625769966604162917225420949947953908668356688056918912553823473057278041646193826731237966498247897012221234533269161399371107424336524479574680013478778949318918694902872683343328405525984592742309504472325696649607827605639409611441349932794522918765514512318852732908083302092625163872085968245294299745174673944606724407159233394163741895131409579845948009390106059016350226833501784180970321070727941296102612377069543160242594834956941612632819795042785441427200325939444158065881007317492082362506920332156877325831527787038029486384350166064726700227736965165118256475983323442123647067858944822457244522191791572574118314091409187114566319681565736213043363988174854859727516371845293821110336797137901916286912549558228746888927333780546840937218266121141627902067848244606053698098975667811645607728409809042499971880398272432515063263585918817612726612966321416268111206469249382469621717806176547557724569980161770263147603492690852173682456290678664253776580283198647647960873738097247473543723259908665838803512479305549826969031767869768149692713982700046040110051468298704690406694834820643414387000466186623125964045937052452504277206630817692798419312380779182865125763187120908317685921907709876612539167155396942766662238938370781714891140776051871824248426754024340343365023101181107594495484456029446984883298794804503335909826221095942838955658145616683203711852165616139646545224734750487849854902071402291267336143169104656196129728022966242141482215817484839718681770612549144090517915039318511325653356682876663322954615102106736634579136450089534496446425761779644811722411628203921307567832606468458217747372041317906568618877098752142580448206898416735712472089425255926867552465840564652243298281315575671185925298615447802584046664980864959921706172082403596177798674648098090131496776905597674062908057260786826070200652598591303735249669846601117867267316040906724935277384568112265006591958412006210324464211376516148022421671667606935150410728438642947332476192653538040988451752099422320123233888485059994769360919728183798246751490501420121845620485824136529453722582627880185111602550007607593900097780147928117856359015751207139322352243956499891072519894247027375976315726715888716590855797125182217176795590212934086783647373204372187009921884010009914205401289171525435768678028197935549362285952575191796871670851682468155309827307463201444913409687371193545882150913822293715056320775716723301726763210801659414378090500616483221262880945634116261485946364751677929654379772045187489733378637680950139836633589670822925743800501323683973566618685440924169559736331902348876671114114402281919889945795192106551245501308830433057436030803692273466619701364587826608248338175795410745515532917672227484665280563822377763218797823886009241170450474638933208564407612171474112580652145625227119448146999397151460924188728605151157566611516751467952339686889904790468314989211078688357872962876417107602774295276140039488545001006236077388044436766266422688828006681446319890052465297768426292288304750095524589199860832397018374330125268944697407885694532972318519383953970290230801425742277912569167239446038973081877597623154498680610338262969064649673011890044897825146283476390755039450825527848327453201617396337759659028101177613442783981577084417077932843735307765101941641957245524946077456846067607367657849622302168417192339809565866466834212216184675849784010945208553862152364957784682493122457022200402868750726640169848800654675000865386649774912120520505179010470728372704398929747893593538789968549251877515502498421595178360716405079551939274006724686146454913528381919595642022439413342154432160886597425515588145918664425369887910002555772013567598484250794692630815276698624455256360049910635996278206440473462408916367428709837922954332905472107851702563503722803801730648187564681427508493594444922409697790838567040223848419038884753564541406144629185343493598680849743210683052120692866932447070008386875129738501964767866909973482219057435846986867884706658151162226484814675674826650340198759897862764976536940624470164454511871366822850999574679527935790178758125787663879827666089184586710327166947180342888676114556120949459765102767655964267117315697121590755828527382335063858807178300123324065878964144622880124063326204572623239195790092738633412952595273723758984373754174975098240766033796436760922374348006022623497457806203332942794991124805142173145057343700145705115439846693079038167813881611971221157292733999137134266465075229029292697432031303604928645777387680246990233384077098907436904654218389194872138855983202570622020542474499811080020126154233923816750636312025583737161886070969986788837974869075796877501617560159754816092408929466556891386839220618907124566939349453314248830324265658749343758945143652325061946421109099388815289896289976458664261214303881804677709368548057397102851615007385177021836272537375430873898262133568095025623702768996231734958997275874074247169217709037745719384953230469327510580508280003924997672491302511252164607681477081620993351068462059432592759426108726475426869808979701072191684684064831334513200458476378359083457142225056808765381095631308684494203317392030867141031287580803311151704655841070827048422217285295748309260293922749416905886947741950383721844966120138873316309432414154751269609500308974391091671244958622637161153875752097133999582080349675670162025743260582280425664673851581496916631374667172987640616551567540108484263953246745851063723505150308337995007523462425996773569399987337079229419823797671012545306101701231857761997910598250991838468770407688916455242388086533536175627215434235158128113684988742928847396950493742764208885398787831368193972409711151611365384883505774545760627704088959394720175740157559610473932470232753794761860513044221360605186622504465629992316338826197655269075273281625062762596755158967047315590364021758597113063717497777085560353638483010021373404803917562033618685045277875985654950654883167841594069284189505012857422114272568069586915989903630440491434256818090582792556411221906769559144546260230435671204873863125499451741834625474908999994111515178197733645649952987186108998356647085126666818744747215263580066515261166848469188154853025550613813229342055812312735563341836657678186588344077868549850691668462674963125390503532169187615154075447900174857504009468086397099094574018702786126230313502181222100845929868596111854413779884403738142767991018634112299009397682551009689280567080581870945899461880075784012141704074017123854659802283478645989495024562290451016852639769465816076857811135074524812142575001182361787634712383856310756741669053499808951030784857375495470125184834749662184663448154963189481087252090539766498412661072710869740228052640754302224990447732707886233367854635935948601529414404878612792554367292575982886458143547284658106886274133447979282352585490301877293526629074406902206638412793068545168010434010611186825307731510634128045851327017374274686097764490672610575325336690262081340530323547231297385305782617299277372110670467560521626108602597658587435776164749073995266843697102501142127099731701912038937149944754706123655544474448567519387255442651249164603546336893410831568296576662502016159977546461987924538517233076945489421990549782969971505880337167626772129617621074862556296739031271276356104930436205462393236417356763323472122731160371253387478337216046984652590884400307677066916632441668265385187246408742207146813947014520030799557098280473294053409159641739606406721638645427134993503229555330673594379897445677338562751052321886307602850798646988957872131087674241558095142369578071984432618496064197647760911867224930004387008385309408447864838240921637489099232508249460906164797852589136038089717236341331968629452116349053048718310675457006253733018417728325701876861998380810016744480412165365491290586876156860597038485098875342603661648118397427471827918727030956562922084576821272373783752940211110959961241529200879656510807109395144184719706471286010605105987084566922055835848413520462872786740118683756927797747137949100621686458265860537109555541985129278413506581388375936617592989132691781686780292331314815098543571285936908571994875351660341972905054079196915355537535581018028963259351711733494081696583449035434681913610140101992806762026558324383828134388092593072196655229801907394135405126383632683801649323039133529158876751230240983041001589205829362598698289536247722087425057182164305998907077873779695238414683063927303426985081048423949559307104370577887730660543977985994856502900727660383302929208725177210238165662000771619368080790661230342748459255485051826293663435539186635877073934607867158330399474290527888436902585933087087744185402728358707767669556346387768223667145550589476035156538582171372668411658824868486483762579833306242648475194450655390234260270845525176302720545566450111715902788278752353909499013778370137017402798989397168134321797415566468096576921619753665171753155604630835494475604918357247513190601172265793133333801707457085805005649039369145600444557670817389758336205876200970636104564579589288686491256690077690548962865795649140994757478562686669242178922590147879960427685540386951932565337782785062533426570840134344743804462722327038727076483892776023225745142312777858199729971666933657449718772956619562163153286426000043687038924764628229375511087122170207006451466034229200098341734420991518918790821708209538986793964356874235855964476063336462098745320858818029706136593316598500358338858950467661980270882795129007724625659145044656662319709578779372178981850607220799750880068290541834971358423860586357646949272238679784424898407718536654918757512905385880120065912743576045709453861792130314245128477234736428714804712521808550070190020715997923983975067733852356223679102266102170137163736007829803216240605795765053596205687573670904181437558419783396617983033329942100843569802717095668132569786226240904068742178651050419047306226731901959823067212281940127080481951234491026904630723502126242200934797435517493322800987362248496742070494192106043638545304007424445933863499757157913232688894672945704590415519309988378460186974091778515863540004988277319715961372942753138739647553093997638762320548413326689487068949524573898889205280834936260161398282677713011183849921394841791726675460126730407639204217675578444123545621349719478547593739212826519341272418430572087360800114472132481889768443699331072803674652392348481714170327636416415179631901413012018704822100744960828225640337883035771407358513953955781295615930191673055713911312746125171002028359069115210349210255688231471732628893705457741933115939868526056857126076393785753390116370980059977797944287483326605015733488199264594016498108266787130642491042300418031290770971298458425704327115291541543410019545405957095259021660428570599674990490850327282131296085592492194288332634254759314284967794476387778593631668109651155142425105669655810626309481732041994815515810637783940119829227717676516790338210982366423118469775916546799287971569225966065512518790534902874992568795445098266000734915820470497900758114011464660245265390611496024552442601381778522484748147488572901878700115503228517629564075889467900155751562160121877707109231559742046334986267648738969748411577940321511265735126066704159451554474857035480279486374335963217169549099231899526554745363104460446543185207505435832540569962142725906159204513380705581802155880506346680743103319607548070250669361453495518825695522815049489365581824077862104603147802420625041912591305514303117719002797280791190065558318212520525995888803467798116991403704379869058727947795780199709284143407153759933449072622461163120571702257931199469690915214959591758416738283937001176733589619873156680435384132788939746616904869069744886453909682311479767220538652181665220980928104284432867031594432400304942395675417175953069568211842265696813144637223556104129043338166772559555676852352043304331003017505649542108337671101792661925212710787537915181560878073630807307359954174656146079947769722645680760436106756304984556292587196522440274358212893379478850032491164744148685296574277833745289496266750834324821769056950549881722942724105781116574000457331139061599657824650803795894208484821511189961475544355949875075937200486314492082493014167734383757538545692897565740424130143447899460990993394913265948648107393329691419640828118818420940539770656058049643715720748758764196966157737518422223054176085202666605551836620394325150906481402119209725448939619873625602657775953932638948476069149132361773424655763139296142104555954759277508627897247427321943657812160261264396673564392602996721627838686387573698076736548931496695022508371280131178253929378208143633428334708026303896976398211968975224553860757889650849062899367535887995150256238334656651088882591316660419906683383545043705620513312930999716841580002880002315415312119855501659793147045634091252009191485725472232758459008528378437313837702439812225526539483916916474307739648810267851834585894229640577118073945501121657380028460199586526278461081158105308611236902720040546646268224913929436315782469958613229032501451370540618758795656871590359295514083708187031520612152042166020451053273415297589245016236704830377246053407279338248371499014350998952181365173672743367782450133747163938847302237897275126738320026253672074162321384349675196428615588189639534438315421191455207790157883462218365249615434460434562741458641760263440366166576107769240119797987921938495879412868628642740550201509082073394297318841162589777934140368759704205632317964840066376201520770331415116430307666562938541598680122831637634984657262238169870279027539374824438439015284922032878805667672868818795671250438639970245195795340188563100271445808360592878490813698910711682256852407313415093134069770593893032677919184875692476315611480442578355293962755176276174293597713096904771138405411929518484885342147883822476856032029746646789475311541373236800761856620534176510568860845387849322508183588959327912798766664777948962351049638123746992731723701475113876231001077446187456457895780456116637024671058944352461397354353360685646428368468723474820579364745536026181471278941904843662080369847531346700222010871643896457413604588246294572157700405455459791244649153892484286046077960305220683637623233878193537386582703873254582497043328834536756245296647319338039130635876017751238235665616853459790871023194304498793846816316367794152949040725250181829476087534442472232650744475947572155902603689971629162081990351563121002760081226265145323630502360760717322553545817361814102915158245782348109672098220262746470981083557742607297954981992430917574925896090599065901940444043887914564024152122263368420934427297099367222101170935690025952439549084064928972918737513625536945768573389427891770836634854184132514346547612035105764898169863963793109416070864761386131642442264119648495046831872397956949676645043002148710528085403614627782539600517392967324009065868896443191782943624107008998222880690343750438084404318990490496168985941198057692899659225878401497466042871540921940516044983212236892991509071402886799731918037199483904270999683582275780988074674969264715223681188299387554514492067998008716716927480121962865769306541930816427381789142450319598727495726195419995041248131577004860793442414561359397123350679231048220044021231075972845965674755428733246533773665915729710765726815588375845340021181626891053210836394461903296304491470163116271142711304143316740917898740890256746475248973069971163851951861309268145706058900065714796705142394817238997412490086873728770514583660706404086413068065073662643515468036086802797144632264599114560342772912906595666498263116915703411945581180868869814515634812999494846005249545997317314232571343214078407204347811892096438027355032318866850175750504271096762588383784719365654501323637519722376796523874796014267295859333391810011584201021887056039654758631639165510255607111835294024539362851942890258986203351992419391611278914110966365455211689259969662732488140984389637215392697259075746056382123759773920239185063427249219888903222678802065893582140463843976679443873807109836843931545527902961369178446294661957256785471802668575154827650050936922730983386584049440898234661375234073616350512246479722562210986452690582070969818004074866325910561855705425713790112571491748991937244505714311860591396236230088504611875045624002809232976425594708303530233984774982440339462448879555319315827602670731487522354463510872449107659090813811152840218098246112745397406652672583736276037640768153866572803631013702797426860530898177122337743777228510200533346367445190681340529377723838807832210004186850538477836198824690062789802426802206198041162018887997256550327704151955997053612771164319310835377844444400925683921309273513169063134885239058373082016313489270137687747244158697937271291288969846155339046183936031827130296049545153097328425110216714842551622246863165497619268100776599829852837702847850554889306019340169690298595510341728820982222529875123611036909919696287893962610702298343540657569535800601985604359946818401474090335834104017530016825495365192258617383877331955665684217401315969589128420670560873290038062521695163241369657008978687566851820148194643845380203948040661147259695621021707296117435110738115763561210777356587980226745506654096432472312566668279036327545225348272277679952795471631117216775335012199204450226396669968580127838121971805303618365336618635677806718147455079453920991267213006793937266068859061252038658051665298166841100788715718582327968760749327295482218819401170224168081341647985166715080762636497555520009125250317113436137296715962283586288735147641513442755053499691204256545862269846124093993353960377714405133991031898595920264396099908548250378925245686933399554851523572957950806639715547400900583695017986219926812972403329920355178633981017214402544909647076766922056451820267696077696329551677790440211210334896356498050741061048078481940770677958104479490026908394330796648554929027294221621037882093236873188753254439680608710664719926851964812528136311853093555152094777371670944488747819195906317170057795517596696252130897675885673830933966702577510212791284588338950152013571001220945427855762938133813053891888770557485263673938644400195135403038136094894673011028379245117653868054791990063289503441710861669786709692007450343488064305741102161138064211225041424955620002812175169035092903101667688223617610305109711959912544332755364598920016590482593873033595461915339138755533719170689178120601665837676140120900842350563872379520444387785684558005756479625732012170210770668938531434230968003194658863392546927133136626783471717894602343458115454022764911718853391281333500632833469186753025142145455386014384702291443024400852796044763996249862365380683270479277680826083323766007947565904074825484853320761039091252148846709009888284311603615863081068488831158388674955731166519995699555483887206252464954639346766496051426527794373467907116230478576112658908910597148478033818995077515805375130158643693287553423087632007400834167605329746619386206005660891362535815957081419280527327281198068639964771215502934658298466609170771507908778060820005456956211602473185314215013399174128142597843821136674175404753967292966562766859685651478971007022608833785507102432955986755553656420077701738958980858860879942001565551457964120142544497009825658456579342219002440061571830818633258000893602471894955932442198737308847775936333393361707457860394396717829923121349302383670065384267013389750086850546365592609207527428501925041682067100762678506129925147732055964097410702357356382398791221195329637174441184784319108617101058768409092079359125148779974055513623240252320318522335888820018608839027749620326953524729131539389356252957676723858082718965893823450982883662213005180847162293255307144733390172312645512538480468506500399622074183113122831707593234885572482998483925031359946177047126497412204555746147780101961600505863372503425716114265236142301835353109159686382568129016643481713911180229325348653045690737197299679017710545327116253679909695975909073478829796748080171611133486232075308662772418714901437730366766660532245951446275073593023821094604368825787999996103951823204871310402076244611103419698043604959060708640757860493794094153066242191867096021435418209760935720547375639907600602113481081725240809582257367059309646370279714977044074119853325444143293627302409928106809073098712524672440055004179145969102168101760967453780601874440722890106157856849825949445615211992998108850775296043811206912906158986089043478882084816941637509543481757926245944103143934071964671573022039548807862734119531152551503181981879792239378094017409908097198158535155810192382292032618841268906662969575960882814681117071497469615306521856199064182751029179388019075192789268159513359105999528644723360756763833457803852266413838176968538917692002128060259172433718480493752875583310526556793476654702512993366412575761294494849040269393846789680936924838125994667622412369269020253861268986794100977147516506306868916280453263802302516033079767364803337400879507593195283553258982984164088609726918373360433467682752869871840870912834197551252219733495446276815149305546304190768752259471500537887779870325427595108041797802525352567740318399668419185276846933586086971025616524223967326216897385481046651428989404777127559011838368656738467282117464786314560508287999816752126866980880370562567987428238146402788263683556257230176585120116584526759424546531332053476717387345623290321217797014137398913925887867530445624460670649196104271476590233586798928660900442016563564052857063122895933217308274130284663620907153815403539354192578030667389674442483006988630295037162047128070406945581199503513173102169881666832755742617894659495366226146796810355555040047778014961486928809243332369704330864207617138603519649476641370247047186390441286029079386560017799298148078569804335408033422082432584166742554682136679612766417992354382122407531662341787260899754875229099902206436857808012366492075727448244476867289063215574199633678648828840729600527719159105976625514938469576710855832918449078290678231580722036267510791360212287649846724806193093809249546542417416469267706279830317282069508556343341148419303235286245206573765635865343134786849638265648156311672652740219367172403604718738961616132205457645857740195041545504728871532220687640159154858483955442944194776583041050104565475776468666539930374772612356511883175752249595748130403552180019811673945246575008640284070358970331471200903737592061128247621288695556669382246529904689079380012594449053204323703471052431289899371246514032052087274213887562725352616975729826103949556710463185906868495765650134693031103357991605367248999269579456814525651314456048362911211398355304322271863780595254435290096551610975694451568917405447302354228437393216407150701052492746952862539934370426249431116214766582293440868145739334418577183547084053241940355677789436101042723225682751124050222523223479496160433143852470284129457477313166493655868021597122226227508103216585361287117827622622607170437431074850387845915161645362510376825269351430366655055941978850437571027897262282177731381876200962433765240728307466574495977707580977266408113422969833288059614581960085926505425113562102241453097079942241289688535936820638914719446359082291637455508941454594412092239102554081954627562003901188586883990003587647456154439100370544511140023482293218221322434578911881677996454444404981049429516948467271549576266406805159853563640536821018777447930991011663283370467064485039353645794344489606785544235376390405221787627443688578360044323228463907582814698860938479209825528659101947680167891383455409301733790739549287185370582497359139531082006245894844628691830318862094567129920734306385173015229708274500767097558812340840871254757162768028315511372993140319489608560543130796872932875247220053437433130121504461136978977440915473260028032355888377257908291378693451540849689315929500482496590530917012941152349339190442293113141916412936170731879946612963659158188819597340772433518141493503496270669469718374663212113231834926736604598979007639065649464244441238917359539168506899458228574147251210748700309735900945368688017933896101641416771816260058602445876158791756095638134012042253911229388367714883350573183637704498844213308823678031530418223664143130578263759989471347683525518008227386619604881360402138729200867743362710109447951419970904176895972591101224179841927295117228576291773073963156382625664775797021073997504979082384864542020618175508711782527085423242405973237702496896541059777504951545415530134023352333886232140639987828223265203212334229851135781968832505788685876431038021434154951768238837241714463285132017455880022103272311728373563818471501439961553874984674981383643506509752951074116960560657145333598481435943725842464462688729061387977445457261692503146142786021608525236575612308262508129418423913086528480421688611388620941928314095650058813108035396043451370317757182975724690956455366459046713117523322257641563063544407324227492593573838702728418452449468515749053311130138526535209524326031003937027542718638968718012358214716137188796328472501943823962555082081095702768887588822342224598029382080139379049491902614590928694123920762576730691905109757933105957482581302371762170080066400051945492417446023623477817642272337069406232073498373596696307790803277860236274710781098706518652770978892807992552662232735176671175513699051242457056891985325537818123113140343187678780673589242709388474029686815308538464394447287198786668083080130081810034885261101668331442023187175554235426335188010852312367113824876026589097573458782953083045095318657619741153971635495824432345979959144262329903840771399188511928378881750103910936822413205836554671169308709304357710154937412588812871122128803251089582066750996967034341936285436226764586992967038440578809367315635758076532507043338420807225688216821741389420008973370446256845493034481542503354031283167001634874173784418845069120348360468920479189838507019606497139072247509180032707210247657699703331100684617231458383655519434467206608963211375329379063902341470438589885535500228593866368894854276917717867673265163655857524326470761832326363453284085545923950424596457972961369554134945942876167385917401933823781359849071614326913734623374528570576394877372108819873955494816092161250754965601832093476477975417648726737625101763747192682843645400948035225718462390349062795935658213816619674377756347019420712714574185825785188722276271105936911351828650544068004865525015278229604793834862958990811488260553788546478371162761502072510567805827345595336234155251902178227402452977817578598722432782487489742801095222647936283430537216742155016177775574017630750914467526867641030397040167045125136605129953154975938313303801351171179607538455860235682984562373287849315049291850508484504432355833736152044066534367087621285096735371870276090495518118467269705171699107462742408439580623943055898619554314495333403556234337298754125617941425137316088543507027830483060538123507344539903279877340560271435225550863943617584510103617628181043271269586742011709645132264115057428908260254401643302778266138043772988642705094874980413513701390903213960997166644165986071763261750425219158019058070285553609937302189307093570867645180659885874194493679605691758659615616755975432666077610951619344273568238110933694209661502769948684575544595119860664656700025311630647429368937548648148164780312966174882361458423569015962427861553873238983026402777361851292735427871092877433299851839457667498511058375644807472908239891336260527415405099874616932396937910188104832495216063942934516008563152351768885173443810913053507443198593457343576849772693071039822147400252979191986103694848669279773334895976865344601433567714708314794792943825178285555198223651874280875983812903039239869447827300470194778480784984001819645336075097342710163302940577641972646097822866163223560457598016658999078998044935107079847921320068060248465707772275351786304177893027471367225310383109597771567293153080511916158197720821032100067618107470152241839056183103630225250783303786829318763580288383260539171844899207978374035487002579094026083695097996023945528291365249549263092082324440581565949660095011796095372461602300565096500065669300039028625860194001482549888243266484650253379664006623217643977034538080861243006014991049169619675696280739287824796172571968257108189731329151104808457994597059653728312812443867306772447225326187171301139286407280384320291636931369829525177456908655729059912195278198201959291019311047544064238625792414768836804692062340311012885988823129586863884161687707862482217638674229279068870584350956653951639453643986477448310859066401976389091386741950582000450954294769449302415316699004453880208395012664975101489763265759732748430752731754518318119720123929550102278639962650429836460211245023312392081005988030119351895131507205538851161326118486232712230833464391943559364027139979289852984296688855777847244240176054499698296657356938795185461377501101436495839454236680465527746548853016466387386415829746118489550903480183335733919165267625535804548856411102864799826924537058686035225447986430518914131398152553019793573746711183894196014569834823818577363944090434552829584323651453571273009609666325329170994581077902696742133647366428631897207392676816609713971212779924672803497885341897788273637162974462315567694624923162978532784553657328342874736099420454924281673816518238696084243049798048556904856457277730615096713391681956678801967773192942560192900573760990415108198593257867344543528794811182933484261489792407330575373497470824134550051928821898603593228007691727713079285900899789501409947360149135656900655258083848591953067885106176082270452734287421465030296692242790038045249334738129152674018933013204913747830169828156548951303585975121261673701570070322612731656690677001833493884066386853834817021357963037760185580683043098952996269736556585771710758813575042715735703096652736103225401288305535581653718354606810025185007918519642448528584791234006553209972912562693876453585745867148315996369835082349545321504162678882439477632352688417162811000267661954871236712520366444662879225527648730629576618789367383857069041665462989252157896293987178358619907604505094098259402671433429230304471592636362170773116643090937224439881463315251172754914160488325259161192264841515737522921615906503110580293882710562507808658450313355823034701334877584349696861569629944802855910078717623518948457189244071097405005248622853969722557806796580861788937267244876451032062398607662361682859697872860492521132689329396187061355079669624510626463648760150914578730545362167034959253547049053720039364850360790014238771525681339139271518843948957711221049243325862859289662158060468914870797983000503616675144729252355943381776344456830013363995759574344064895997466783962846767470403650278719480999454716636512389564546272966285865433863289545925217324579160342693256131081483206924882735016194407072206426340991458059380947007794626708535891239534343144339125001892994627920364392634273559005744432416022605785802785916371948116671448652517752150019367887421624484591227439908044321938729473566481724877067973020024125821976042086384830782826256596617586427311313732932966223772175030163854888716326698069940570996437995302317026625486254479227392227796784869091899935653736365010766140935250019064598159419902996073540135687868505702188672666387655189587103479773035439650580182236138401911770510407754792805170190542510255666344027207596449134927429901145804033900338091627846215234670035451073336300443858109844116299614488991202607819202382226698318763318970192392524673148281942232025025097813802099022721367310137534362521741064980006254052132913358580525536228578011167989193568972070014928367518836804737258063323923434328436188567926256037160312103511732593461790665494293145887379279557276470770066368503043178714155487699045994139411537572625851592328450218488792947951388834711215907402938761155243128511399414101700057045239382474468314554944635709833948336701512740490985110093387133425436155845507404584505367246006708590789556837422584062123350312272722904408083109657080370331255752633494412460553860484308225492188828408463505863145594090363698122528508288789496453913687183388805320815202218831967078840960601992155827455663902351059321562152509579638645306413002370726129354556910046180103598704185362978492717267122817378451665627313344387563203830090946041884277426151174103274073560608918002146988085175713460200804759443407898704814007582474937701004502679436640405317102520590065341596843391266962281623819071196967710136077866018265977644003638244413644761234829677673289685922869284767194792207385234259769051338092079312706419914302358505937296366719646256354650368899039202192453716498429278373267810092473977079200520138410863530337146059208117361937394384256994171415138196477038472348598003193729084718760581428775068585111029562700335264592126522010799570819958333053417340429874857831243249695578178387797482278885631547987844937647155804548101568389449357127830592584428108678858049188258490267565588752091850405322576113697191233273620931294250892145974253387463752823268994895711225067536993895184912012209840261898429765634969637613954051267386820949981458352684323485110347130531386977043412246486969191016854690267839134719682134900319132584367516266887071695920724027513712253415302796151309521767397558211078627099281555336432355484695148285363240959436149146705608505757983488389691250599153314732564899068794126576333480998790216818523614851950465479874961289267978207056162376003584718241027927866758962181655514256236036611175944312664621081916241145328174223011399083708378858038783962277909668962289661834905405411453207525561825578726275493715896174324555131392600782257697201331372927717344998424805632947790902895228505791913681560168297266082516994327119475075279564979097667760535303280175773658748188577658168697722036267788801148771475190312990031428594759766356573792410407063517393234494541260409743229125234375541752040540639578811274656519839531360679004248974484365141002754263333193795521877991484676887208569192502696851952635078519392449321012086916148066265312346680644907452813530725350889255186821191523893873719747415297803547491245780799061728598680002948691704841261888932995810247051518250444361124515045228496534178869394424112204201775307025242940916732600805857370418730688779209910088269545925656163411510936847261153968379513080132263284251640053780073705925646479789745773277840269891979480214865216375550646271892340141621040007585429709484165814401533949034127163953352363127389647128655651488978495236795890329160651612563980146576724234741822904644418211078573018480529082233441314807825265412007339598008677837995326714954048151184120150212637413656896218634573954962655239636353584440869257011821512422261755632637003971579403193173234865135518692542701641552152857594502833843859591779700508998630845042466022330183725618467010576443525332648716022681627493761450910793860045519261168654637310187785241400528534899408620584284555183062959380238118172993612402523884985610774352396377309733802462517680693827960029490661282196202076562931797685666386151793862796377022704914484093409680244507645931816024999926965166045407309196016441154442302589622383572964318186684781155744351481089070624320612173531914878335400842048960894181197858762224642823100792416361773438666315481096397629887467212259883889405140006485549143714426841264980509253478316552696428866762255337820482455838618103871169133010369334418909939854363003699710106119437984790893366670954554939407685057544552280598390130091870281181347223726711990223120328084219458356132597350629216241972191006893245890839494815329841676773139901580996777498450355828117124895278784843010520907156253843382382790383355027618612510812714937972086828578724604523813310696224183600637872558340568388593088108841243317223188236686531373993469576061399951677641622800763170950483596240795143805781633764464714333896576731520294661491953283713408089346618277378189364241007027043807656429511534095873430694970147949947198713671945341376850866862050836446898655338000201119009740937426214076079076832219382192237892725885780778092527993653659714411662100849747057916398961579161827264978266088991021523364947551023495344112165147602790697166173663762478933916557009555563351829255406531455530895431971247746467193859224144895127588579072113652049219227682260849772563522714427333616352109787705628426490811477816259163944920172679890588405619895188015897993460575673683860838531780537486193810426846758541797861236304393711594928901811343400256592252424772265894451735614426139948278615859126516855491491414074553274680577745062698464056177315702539191448091221821351514124825475323425793742270433973232988642562746632624490178162171063679520834979063031168943991158599818286874052403860024453476834084170541505841087227958231279667421284187822538094089940010805498576482301559695899284060100214552508429476321633936447557305159301412048160866892148335879979127487493753092425217680180969712338921833506886325516565994335388335541226940803276402969195482879987987683144215849563562690278172169233339029083883723471818389531783965955710569838104556874135711604761184731942789451709750793228984193948239963076956676450963845087568047386227919707002032596308061419489880896688353535049715607684729874893987936715310978668943185483878329796784443979932463387158066376980160784626957287257366082239998198129653405740199521087334693986563129956784140043172671061333075036396039606038340420067866478798030758865004789733292969857783203892373360138816345105921101600343144874225611100150816813458142389811770015327147267040205256604360781558454188008395052103601741251169240886313760288112361748980248307752641837321423233900587313784060307124782950494697331453598899670719398289427854184933747559420583841178491114940184819516865558672334381559648506558099986565490132366204743397545806504097910801279111722703677012867736041180101002292518801375026053519068921844240247190414904514097251753990166399486012518669256169101247580966699238820127862651360238133839801203949854553065286413414157992691705300109284920278677334969988396068580133199017397447244466732972125673940522667275067508806735618859933277573085006249738386032573718360129391327330920005081578942349225900354566546326601626008127755411670563400011724130391903726584007887913162296518014713194097459012087027379446827007440682052802565667388938229277622912143131395448127355424080992029052173243803842091898123539334244240858223526545610982320289257116778628554314920434191245805482265418896530513321441663384217432302162570666863167497162861280850320356273345506044170374381381375614820399531148685150547202747680622878091738915813157042548480287705983593127690676336806307858972311792963815341775926881806470460704756113095807144199438958884449751535961755480765897347806063597302501341488842797168593448885984520806938528382088782876510326281282484414764433180486073279393959188609911697756550683748590900975339508018827416344136851347754773645813483912226015506193933530778495306554490398961053820288967679338414497352848179319946609941405890443639247291534009398317342184887141835611070761175689182847103294326429311761997808092018291192919687865896268062669448212618260416982678134537593205512942260816762799271158848766036749449114420740193055970213847855591873580870886454305977298763933386965843790229424572074846220839354833773931981064962854609192271729717144730193486856032535568684184234490407995886150388780150190806079665095433661884586908918662273617098945576638152534336927983687159163388337394747669760315089215642407360304743335628841118178786357306100353517648541194373710198550199034723064673569231776261326940636975872552158784617891226268429086292858068409715675241306538909936694956237185595735014844189762581352142970365858035363870254970269064061347285511132845746880538879480553049748379224636597277837844904855366392058782106782944948514714961306968859440540264449235690291873237117161549257134216731742295672281915178721029913729999189477337608143475809848372885248057670084515620461146778608350271553172624695613101189898520249438752531908438625820387620105203858162706628719962819225505428183077001511357391604267761267236705031607389878191654063015449820533878019522720297157968487796919812800162436806671168204075990466572131055273303852323835155186893101300265222412815582342116226311728551179262507452278994317739998935036489677830953294525690959741382568982977357880318015234157154293462885207273721145356738226274842950974744012939077183595633744475670064917086590025074595488802560160308386865590777641729990139189661246414782774035659074662615311593563241863876637346027229546243023655138222171072528270992067701117768121364688492665618038224146909455012884613669193455614515717220253213767507239106290656643457410428613388688215966411225009760986881733360544707616729982390560999273171632671750397661368353261405294583226095403881830181191362833461417442228661530162454688165891509995237046467560883335359297259764585591522402862788766666149341222344656507085908364504894010665713157366902706090444185404796378534508846045864834979205206875196765630102844645205506637453692015566179378614599409735668359128426765445000226312731794344579668329818878713563859857255559620355535918394853234174429102075862929580322495176757473178204239782343788125552718072410536918183646298343101602238088123342960570204275602778195301263328785818309096015703390893379182184697922055496469892671514379618754259189571703296633849961680248858113146864831703949198347903324909723753677273454594346076046696968583016408683752102727393798866803093002017130584994772681728270075051199112091045743246436932590197614094254938074530173939734938759500754983320531589109759012794934654212224033461421981152188852464772732431255666811684175482962664306784269921268907350705494897617560844140699943473393151299399723636712468456381183081289413089517481786595858448672681926713819714724240186346076639476156661667001931701703492878662288784860719463474503691926003582316035573661229740365307386441206843592911935209701740398501323590877212796146525521041877186003452424998836513214304958823204979484177015674664162864288922908418373532461899330097807951256768489028286268746482654734447335570037926781526882836412348571501887621715120322938164809345862349363479459714917988773439320305805305210974397803558119203006004835053964173261487185080966335652580738862028727856872319411224214354326964365417883696849847376658628513743282252346854919463974094322074658351152331134858056333538226041635503132394382381898329474301505749098330284435819119449090549683801032889649627720292034690910851596261641155542459289660184739560718300605561005068283225405926668071636101447751303735320542145832269416266225660995899031313523450671605144124866645435993912215607481006267334948244478988598639903549792316159792363360452206114370348584126099736188625762240994665764143485100207976537544144205113262427107384064509313791445960797815745223809556920884689427565476124000885349313663987490284768692102399195320485663261982789345632382300670643705837755876075215840540303884181206069077474874315234596243263292943425986800985254731786931479935712285395397650502871054710587483525158872338377093507072359539139572296924556175674398624875780816998303701507785755798372234814259391754622314669196288525251557400926919958808108860688370993003493679481210713949406465610879079455771756453598848052223583130315347199906110823429522574856046941658918522073838841549835767914465069171713188912839468843918021857769627388195128370378815933855129553524277049061529396999896809628686547516362542292784490250442580916370338144816954266134044976812559500795736659431968261671619810780820947598894345779748381632735548023851466311141913678086668376555369173983802343564461075460215898705674838754329907217694631347629389037480644836479258268449873421773410924104758182989335296559449442805556296532285410434218444714222059794935329933593586847869136512919050265762585357473160697415690341849552475357467647645647403799564193188267792490853650871508877932849769356428943022456838666854582557047213287629061198534420968380914033699485054010498164133013561859812705493410793435602694835246241016499950257855431805773139992005966906169236733148400358624445905411779295106782318412152691131958648710647780089300269076967115860533715469157673713036339967923341268884165794343900560264873868344247144939801878298072737779586519863278101941844764129429859675485296025585269382097730104714347662542225449820355258603915931322939860931213067194237243896586279151804003847363113813131766099944210117859127755057703457457186957576792068670666108762626625859212204496655869416946313268175213321175857914440845136354392349940046873245058177062933332212025162669793390783751065868973709382691568629915561918196963444602347204668031231416242546794054751937411331392915367828306596388909724804178342921246828902494781057133347092386233081951610135618855812500258661555353716337268832692379283068620719995630696398777861513275047410861653956434916158519225262321987176644885776242447608809009145775647540309385322584071061346899341289615549731616430308640106594980951979633329426041536197346705111585717688707771863853966231128060870706168587847205290643095854405835646829861792641418114494909777710057470186667461337775159325280163122490368366096566679933389348090918310469201399356838165362951188891494042160134603460575441611696016164843254581816838593283103644097838989138633936807408032037315054451185373858840697502772775572045918844330305694253986157739678890585047874564858431299727665860565532034250056898532621682658844927170989476176367859410165750876026578384460866635831176901553133248394603609781881479005080478658509990250530123229917446735960343265788099015611124194430438851599294441762567577598391141061911950354717914537888422783435216302448611769097953074045835700709887357213197850827457012915458584866383516291144499076074725241124408026078051079527969895030116713534444011713816947390165163962524301574533044990248870966966838363614056356704020395146334107389098167218037977650559835631829564933903609106581671208923421340775796646124420676219022596482008398818425784321400099772340131131050243830583379860015560894940583176186765102717547493998394637301818828323094228089194333082172278152606490273553130758782256835639376189654585961480002551165094659041568196013979112151776084519186997166347813492088755309676113067505874765616693930151744236503157340394183711775101710971253028032111416906572402458623302377293221120676894718095920208241877162943620488974708631356682042873772191577140152249056009032748994080326064638409998086726583756674079076236741675035145299672230209792771856301563415466713368899909601774826094265528563990833977186336703591431152048004634163224530578267236962551749644681240590379402290190158942875128377074206440708046088617850630801804535714936030905960362531544448334263678952376464473249564144582207066405956280085199855204096500755660558609901511119137286538216322233037525319241333659650813394132158201357131542208395721617463628060642684822806120645138303085397857915534742896826708400609024930962323842754111141574111372518662978688514041235992495797208542762576925643146496483033113678528594408607853278596102867116244382892319486304727863442135157350253678919403731044414471588649349859153443510095204471967659844352406491550575630037308718142723842256466228843365037110652820414893921780893507556836278539892865997479801887727653888328789849271647564305926213851613426575555721358553044061823781504381816002562300732937073812240454219177999778602026302052125987786295415091509599148228037373611875788328063115509353898310870896506545712043209322730460006781337396530295755788856520140812586536909467408096266013341784003031866394485541807145385167464315587884201598845608464432605025898667301687329862733123559300331545623690185738924882232215804558912429801866409970150468252191763422822293615114142454642953417707694888084521470558546527416625441771651253750511518859135184878043938323284220814615793681394416680053408337493978914024262483005613625966094432028388209711775868266436746662698565247421431172371261664262253619376925348470442283022007913255245410835311606178950852087063660399009463921255216616969837007719696985362432495430795056496181600916594051340536472407768390179107191783714954168050741477093774357651915286817743190720826621911123447781812772314919642801268804859712844181772338836737883436876734161732712753017591690034248905436450802407522733889342782159707586143767277802711869968016225463918105657708810828254710362801227555245664031032437101956490705925771867062975200372482228311650260824629037464274924558914073996320250862165262138522707577558524739145527378753230904634990033681533526176882302279079050781551868094054208269669303809980724565839695071664823507218888185264839166873838514727794971721273305836945763980303701028851561396829074386771561751660109136175522498537372802125817148422098368344654438781005541036787724915823894896696954564657145218380119226882522679705898688438773994565090912502096382887546794657714090548385419206705050330654918579134630065156108011789968854125871049874523484420250656066402660676565941057317813722536675429408014396591125243872434761339072465581124718443485386770205492667122689788429025574261346987274006154317080803997521697647991130842951425654244329903925771962051850019412337667886905314046125235302364231701708331721709461844205417877570977687594480125777022597599757886418696392052554621291126451201675113320366795445262529413711502300170828772483850900773235198137396220279006582358209721795345226804352666040885484031937609616506525639040996162256621966001311508818711377520295608210473610771825902444927786908925847490801371907738505126184780419859046452576386508368511561650862281323614637873906570753603635673053553991509024099294884509195532165535427732670057036973445465345789860554275467616483272146445417834967495139282849128355273104052305197391042121391520695928339841045438733412671752543489070235348661337398284848091180728207021204949453385226127984348351583373250156714091968099275891786896651276570584391147816216826172787517642649657734301101326685556486925125069732314255094630017891157151171936165482805297648329039289714118012323913662887558813062065319385433325910455927091978471319657416549890491155719543829757942954827980020074665085848076149472988639061495135495820695066332268024251421078227289980158801478274270036364032163898461875589736862457942076320580250341927813889904836139387064146793724537797133446873824381270480903821665720728711488680462835971003470251337924251366543933547358577087486352593796727852913683915780332947119985223171584958936030121343974461749748071307088383586797539152604348380756746514411084843432349718904411243523452084707918410343770307580383272388557141457428998838162765995212300828653474061730739203914805360390650196151629687421086594975442844855182543442904621921219075588518228646882213523101776579625237601909663697656215278869763645232658317411666183335822497826936768421823434025216834396206705467053831486465304889725637532273351141130207993698539875434949987324184316981308331426275570121544035767218070796590499359212014673093962225408341558581855452121698068966525990176471083751068443020896258339135643620669740499492135677636158841262373690622783560993408893171287904409227667075625701261652158244287712707888309046950225585005012008039670878486397821865786167170981463767656364822862364674057647401072999339560527826081400198354213587650662325244980075722923498961247782812424683448052997909017597553814484410255439156577348159738665848934040321038878496134650437962308934583807907881923818058907647875089881371218717684872394526227699345116314132496196028721108000739374186403213115927382896871843831858873922916019062643140426157750433829858030295178222519527902986231836446944434510294805683777410264228403399783695857348411466073615713919969903990399557823026708303730539087942289559413971288739212125318084664257485213214344397112740744875044821730788125816366065882542915697909136687957920027641499666876230174564353606969498279448806697658495553441770933820261283482635067814643204014323678137668670990284542246578725515503827007554063899338490348721913705659575885845960987224035592595543917769691398454592096252485130201916307397056711042161572469646350990370450248886491093347589669971932539375787920712870710012615275393865978992117278615052426496982827250545106049246475643371419853214836636032622396331207819860326489960695126445181283484412989537628010841617965115103525526169697396545666608578502538455702769758452450775359701171202635606856211960114133393862659272294086215908657664979181419200372972619960049066207609453666143825863935790078963088917178842526278125159425234365178919391737710856878857560284222847986914772545824143891698297607421474710294034029013941005112444946579047295844867662924113530934411556842222564970220773611177882827080151764262677796829001027586319478724905009639271669510262231266993066304410574973353754974095109709224028152082385905072151094680528774332465172769421545222289773072792063323963383287990133682147131785706386401606270467436663952476232936338596205153333183588149315868621462189742246639179498865844262160198628877717625506098564362392772933182704625918956371563011999380302715343155197606398949968540140121304375029541890321254436893490307689850695210858437355795134428476294504049631011883906757804043048595124830828555056269017087066122414509217823659664065469867956315217396882339699866408343411860531776598731985908751376941693669680682054924679039784076378706537808695830692919458924297277841595211202792844612587914265253518279744445923083293570397590782491090782198366715493038690046545864178289411738195335935830058712803838352432394237541191551308219530256419813374050912118471514966497957235644121007368894597250518210792288767350665780898086315625548010142955223647154533341289113452552067724241730567694682963866920983893826900994910466451239400463615991816245519968603276017628860536919899363449777811836309023367850909130346303003408231739684787390782290284501226611957211949970668733366897076567559566342668409683818076714951959944735306112779088947639354268161395763486723144830545370527011302735790869481720607221750399344546375594352689914988443022722987150664574840157028779281212918859466569694492500339291036173250335121423253129097883172359684353132728782786892387783718043529417737013126310686364145853048385721173499508457979130729341351321151622259665771908413075755640922858521846677532723955710647331721509530155622140583509935401235532968678552531907420571181987111953481949485332404167266196261639370429979582352955467861840924101674153777872655801515851874392590110017952558274530809029121972056708232339875597071718578443704747517838166190016602485262307625618481702689893311860850211734290738512438166064906568767871639372047628759636358798186617073784595890678089399596560238899466225139458855093401960560674534276560400690629243451782323196731425984939681319242561038332985416228858092825496574927479468275745699170321535167128351442697758358104879957382233898723970233413504342081927062532690386910639792737288988546941558116338450207006828048599118119652547058410521933665871188392325209858669205041483401424462534584982835033099542488975200691596797737436079457678958826040910519172276776288998117034501453734215903779863000438301508866734455248242996018369574290401013349478153034348302105941314450600117734073292240405193230222871870154630566459961976378249338320023982817076401616504220556028789214823303345216120513969244840325301378181134098554732136885069533844975628466277543632881964778152741922078524995201183531491614275103776521766968535955634424953917074030505026913350214794007634414499629684360312604309576991033453005644435477682576823897399796098883854516212111508719429464657293386902099723603259884678016336392554599295546876381841057523180843129663067427271842825990647718468416927839051859077282428448857438123112657886344980313970692480051337749284224696766603336438217714918620240280096100594763798271334022664295943289431624058723480934736449857429779677468376968004090284307405150749904252543622596820422764343915241445719691080308172139125767254689264358779557881201783109733518527273982331382093723395345348864723577378238680577377638429098520171722027145440909163642460137325403299207046508688272136002339857840226618989251692867758868205192875150722420647606809562108813629683010420569162139453209877530530449748429289867460553749432330300050524343562123202432656732000005410740151079496560035992006564221679758297451034471320528510939656484391617613848767363129253418385065639446903319908345041386431095844575549758388662997539309204418599644533655864982603582051785993877533295167061802432680799695104955222006090115125788161455728439771299786171458825321444340644703598057190909173892776621747678805358371660363521095622661992590968189037207407776544530265021075566383228552399546825714229048154058423479013503334909061743430341263296874994022064849527686284954726784934991799175734842566915294825999876653844734333747143746525396793802659547721924451007561746327671404026549600138588321639961158861547476597226472703356219231056587643497737055454226091400464831477563919649125781506890250739686625373374728074725153980798278726305909744857695519925102962625596945476984426400823824494594294804174474598376735096393930578656009892398464463759232135556997379831177121791751363625031553260058472595381023517298245048880574278454978980661478645003347077868784435328851216327916609611466823593644865384976135676941793636819101238572534484489323230047639903430230078622474321773957018571431094898345302659202507734411754360791135547858625463396658395084040723473974277467381150901311821863815620736755812201534434014675047439267839070241982470898439631273174509286282921265058692419309492544123792505626427118789491099187137636453351935760936650337101268300074183588670178923197629641399826466111543228821511238066521889403463232739112034010528150149441680748451559473472535262449286228721637159663342186523414499504135073716617382675660992845551911974547885550502372521220768969729773693554650596366093643494640578174469477167470061537974591999364289600381948882740403334411898171212047253077122710985652289692666153424655171389529002178762557844067427138081760251920160024820085738805831465038019635111579084019470770141000380729716537663410050593753709364024833752412506120024296430104380822703229889238864477995945882210816811823247139132656804714783320445720624063020847578808566657150992093296888324246089250748328801803457765107124873372349946441521288697533987184628267015174218477091542318339940344732394975721224801348003814704838336089072373684627569917139346162936036709825981746644580445769061491967421097946773481670060594227268144596595084308975640095400159738179924755382240247693030273548777858317338789989644640064308422488555174742970205067352926894873523564964344897021836181411040669708906827172758880882173638393638469692154581781866383662321701624045050121919307153480810854542811872781133045246192968892765317771775449867566627408263608127334479208271086494480257151463760519059180818441863982042323587143927754859323217426286908033003480913842060128930960893551055471083650813962047678582126126527670021552382503560600517013953773607063583060428705515457287283720374663932576181939804780836082111657504201949857380561956929649751146100815389270270643294152336719220335679241761163249135066822178401387248950574599805630590437108491044784620332440469709227966980769810328390452505526986436562686992274846937673556324755248997723808320072175300968619308589844225904175551407018392931056554364563898826319943130539540378186700492105830459190002176900594003820545020844750525953929143884350477148914303900220424935582965585307794532629067293065449045927700766419854346037162442895626879859112141178407110095184169097506559725968656344948328582035273957368098809761243974643157631088734724775895583808797103362771668651490889115635735306261381057592183164899678213280428674612192509296287726999964453405259698578433352229342065693162940798948260696335992044805539050072164208052159102013965559501641803582586526528807518033140700709681548089941865412866603553653171703416994623524443398647210020864635846018247324085624566556705073828202406081403490963319302436186565244769425579032174513695878726285153912058929119010663940641299378504698600092846775883704607926298170105413768000222255490292286159772012993296606069479642820585658397878186523774371703096540138032810618012691907774780012415045569032856173106282259354034145590631316271379704811773265610434369686428419498777041058429402341806041800090438697443464886069632194097087351459839378997355172902669083691672990040322298956024869049324526277728476734301664114474107548615793894485846486808362692947811331559343435838642232152342295632161403890952525317136325716821895609640061806392482427527026136881519490798008672357737392483338418138800992652970118596178090443174320811587496088829890226135015409631199867145954106595845642591901687296276779562719767370193709245381533331560518445357674385137360998941666928410692940758161995750223207395325475916968662828212883164936414443557342009558826574329498356174409666006151869851571321110528350138757725099515784069478875119793277692897758502079502456530755991479123352777486211100995358905285754073601018728818183967501244194440366729672713029733790203735903654288520625807716659848079643766854685146136384386284442838087748763105562678313370899742172410019981735273067932185486352033841251729206612469556176560860538826427715253978234261906218345240706603654494602670159068496825285073546813734755648242368003907955477236998591636111055804550261622146493182948870080014737697485868083730165591659814508818843226684925573158267912602259072239434096938173563702733868638915765593166730995183681108353085526148502895976173753102356974154217037514582297694299588067864584560668899762407003060947344348507001247792705401164643139019189278104685353060584562528475591679885484481045047708166972761071887536073734706651639336382223184223350629518166383201842823276469806503725552569371283410270789670481840492705364321246725215030492325727492121644159084325388326175171932370200786352477911802530711695157176044264994360029691831451578576257844212362783940980225477611067698131968039903115954849178226392628467830186982845230500462182233558669885787285740293011682570240866243811305954702026808692888218707380548666430470615363544647797402843535167386842574590195603784903600709216190521259733317950103142936336643781996421850174294339789802018174862035326226799226038644591355422325141373710518215043403152693727223047688707308695282051520709787786834099572378603497104545762974440857661590281812326751722243460931982753608402703380332810522469008997325395824776170020515742389238053715445994184144283141012564636378738975678822636378925410363667751947942747153721450053463793171265631635727597054924386734383293973468942859090969115662042189399594388131361822132180316771478622768668025423252435306097524035761718457997110834856590558734460427295587917940569147020887095119331019197369105473403260028435915510692219729823192271984143738570079220323601569390332530896707051661660335097797853143562915408221390059204351171026131017179116734309152043186787938676789065504538037562859830155662433903935356712229937987171989140361044319414981388219921698448041164597908861673891606738923559100373215786303968053633310788002528301411396988506084941088921887591600408613369739884387419975696655880433460684470614530478164045721449988071066854312538727256528036360522047074631481144418469464223320903408362162808668663057752035267358545008943326491303819009298495925855821964858250144975546939129967206704427246962523473813849735689858868033120977628358006800287343729242530693542207064027749806415038278298044953669798400583481756118831953154398941503343924407465476588205755136448239794230392767441376967944459983779111344795950779684330162296611999857376453740475624393071543127431397155039951935234927754468724756074232228722600410522114080849116345110098387294895869875228758976686896838517693982159854359888361606402145803288476111171365815568295548509963045559921679436239193309880262059547278168492216817677300434225062653591429230991352364024788997725385861856980792848829947784159892126507958926085012371095043482924269540200860279834766581026480790855328103095165792290296111176545099204208231398340365973447280363230402741948507013197250528312262026429974839490666911751545013309458770177537731439522577568349269108002423153211993849388430317077748073242843990079173191457177831400018010447242232267002519377284233392269750054651969296065502176310058059304267439147046307788873902071540657097362499446478218801891052571885243879609653740790116163692623455937630698737127493936192609516270128451508523186624133093915699100810467904008822561154643790437539817093510503466044407495666955602676095041537895406037702063631461052580611466219823217135265399984121285423186897416845647531882318412212773990910058605176213013232973035719064493296782595205029378283606795269461916947700162114148240790374760350690137358844810858754597001612423000986894879802820134769128245603728763300123623279879501980193423005084734167058532149179713009356655538146778138482677842096522944440439962295465348083442546334491900629527209243769132262438110292042361451989363547970569334161029702383085233912989920768147984545197700305204582194264128606491321749554155771074399484252535997914749472525365679704034259590265620400196766961796194440437285664297525846575368521899505257518763078999913027008249391806544152582653452076488398830496862827554420743635647316542133589850326160564856196887878164533939493475317215835036197979822553333701740857128778521734045474419068871337961178220874182537303969004411967433289795951601113407894506375284084362375087995985058542573541576724634984939082770256404999026286716549484352216125348050676056421765519127111394430966394205512927974607648343088339313021276697795970810866750100544914045033466175658663423856130815757056630464237041662148829874008337667517966241689298197642700018604432820894905371685195703120311643127942848015779582636248406094740097231617284018831330915577055419934657903693377007398835084119824243987748965608503709258201243966240394287136134084959154401524617540645094701178882061440815159704504809055865072753496842060226632429975098745523523962005608950132153570924073070427320340076809361038687428460714628512872003603837381512403989431128597224140608052419826693860514665159516997181623096048670350045526315066798300860892041940049420874164333022417990898385188783970621164152378274672559991041249302010737900546587285690143213014864387873551850628848411496473818457452142048708479492552383111749178183890736935821032228171800739157436742789692394081664504656724078036914791450367941190295562421658421872383482317061817961616809091316892022846228580666980665690221104443842074492032670030788874510850850085987130527910260035538506916793523838950130154412614608844804358953466579719551356822627645357611045485342274591106081048409787016082193795167491785762725008008986828500516494144714563016557161546030514980323819750715019790128467604383537409897495214335014991739519835104236784559794351546867752068379499026840792386291418522980992094854228722884277674483106668577729584586578602831595724099571426489888800264678164009876323893788614865799027374589647763790379392938006777902618332272899782742024000891176551043294217935605781029662906538265089844943276350324739071239943487601545095118043705627670091035860584105305134122244506639192949796305210343248501505699717601481490309100406881673896273210456080027071485617426430606716400439097898026954669264055912985206646840406864705522115706516701976547935093184668755732204790763782649288411817139617882469330727298701573264994925698684365621495544565481317088611029276442423961254042910610179455155652288922445940414426829240055095833251828897554998983602635953514377247014229533078602852036933167012649561386025563167597598036980246035485270048641757832479350617927828991150630128710139359106359147281793402263430483072522969469132588143421289046999561514418117377520534694971478361318356847934401648616356652963505919251794012133628681599319785272078126259343586164388266806075696594623076456187509036895719489297361421349997948211096142564384582511035208093583045802933392400851577765241175642673026620477572703370892965637116187202497431243575706794037610942016244595290526234767803534130137093308752468517934403415927985222179297699874656325146968287375128756276889351213016898561970347684539992788885107643990515349308589202012370164336150449291824395288794997034149717273183731273589958313909682566096021293851457263032892995213705560794300400383122114540602628945696967454560015777864347524732946394660793039784416792385942244849789303094318035963150566907141053346621494121932116749520944526683582572486848892296924941217918747801484056037296995620462503713885411589199798162055313484401444078420038341903761838952189982008178558011460369848713680529579951092916952849403950980718173698518430916636415365760359559464460825136953234306748090050197693131590519894938449228587673211046804494368515798137790169715811198758581429116723379097140652943491195355896313447419853078120776361222453537759398090778318273921799790996447877888932305479878164859294350697348189410832071076293162418498850377968153244543658763907531185919687287720630357717858300480545477062002177372635861052221584919106123619619852736342996650311777985598472013276726089691799275114239399173681411200958450782458786254265348074560916079696690105677127343087809714810610951155419368593948287346795079633907240814190693755643235899782599206770725146252398900507420053355066747111930755747677952254540388683952141253829731963462999327907753676668237405183220271385680537615055430491902419274013183371995784565915274423526647826212834521807716807467705807286357197513252797205190863863910104070819064166087523099369852290169745457443311112456129448520758213756417512816111951523739870625516042270569080947164166250485692068006038925675032050656793802588694851628452529896142947844973712083854085428578494164445243800860552408311951932444475596092947069607189379888571676087516329220877039486916025772567394394488383672223489836217018434350018972912111261951112915595291255582444942473665722242869941831244509014547077541199380274062338997785120029140683657548642366020185454541018762309051991068478959262484196135241599429042594503489829747043079563193471255077097856287809775763536950383877871684769806588498957398512844598789144602796636343943798742792532473289960298005996870903363052316110891215682470304000231878304304090011302984134405622631255160588732860201554881649223632220214487299764578390250575245480964779053184785962915871416833013854406147394744127648772454720428383399936560477830910841028759358609070267954499857962277944329032232422284096400911118484631528977588386244578836082745948312849230183041662622672034627680330614156801807611180765514313145271292028458395398285072483547554547489258782868267063979816248703948111098760164290085264322580310181555261793489514316116593304211155071312538189386937109817331188418651496085479489418748601966769104981682446633925809097831058269689084583477283174796615358375783119602659755695054788399838952176873456970105106673247086530209450433930805475195684733072050438832595859235177369516194437263595689618636091407670205793239650917080033380822823510606719087522721391975480867908717726103921547118714867943287987552045821801089747475538152908625285135098357394115560984192861042158147292084949604338857594532929685607487907008418609123499884590867572953898665336263038076219453496144448244441155740419773864718148689480673707831778219795471902706706241861246026318005418553100455844913248752378618484084892047608888511316627000794520514125599175450462815747041651870125106987551639005904824630601141216304498449180594132262348251262436556735880278249151978623841976371858034857686566935671976456663042529823842811512329934874131116899513446284805591141799341474937748362269154561645374887210752541109929202610149953425077274669807845127980104570804943253747721556066046469633091685353407820591836787560741300034644777658475473674052176880431733314286114871650449794451726196011261159491422933365926129917076682913239207283858559172161338187259724521929943840108238227990099855060961705553855065544844695320907322242394769097316992235946769759817752329655165134804761638236805240969887782219759459011082651738192758090289881834231304566220954341517708155580236207553672077467753364761550626642735869877391325715611972365135501555488932603481550439093434442107679410988514867744761980295269232183680317693922148666121078206524297298935714000539421530199680127300747895444329132888244091524012492868593033323866003763189607078611023433102633557872953798470390937528125490553260161315164616634008939998389177662501416975947252006317734680081010916715532362324821540363723336920347336044947588529696486175803269856697756622030486332505568744604161139155536759347897003863439645808564273600667659218744754867925879218772378999560895220191083585962284670345125325461294387665549466837526929904090412511834532237165059008320881599816936274816504292475036109978940239681405933284161961929243368117327820528417727623078672369349829484083213635646882994912946054699029685817669986243747313493562470501375238399136853111963219186438500201971949212294850440560564568516230322000676088038045447175171211430599735791185099872580441841413224344977823967986484403329333855832245818655578284358126789931944360599149843619067672013525204671974109302011935639369531161160956072985694428072157542751098229547766657344510809927109878132643041130322607006506850448031011022350492930715784450339465636635916250773184446585726488993505301079110455742714901961063095027741659687137696818396956460323762893404192191228005433936733992414107734647048775984946515476489731309471901657116863972020262137793263628077750490756856836742240150398280541239578139172033158689403124164641449675028291430077038051369369543502122679925939624036861885525747482334326844784772791646416562486153163543390350604477770528548292245436370534901322881053672061419966724503624773827283166210482297162718568812289183827351360132803603953972251126952818736115370571760824822985062042271707943658197878835321179344120473456691798396938134305554940650290005995155888781309020761049263766769116032846669546955761291846531541198528835697413104668820756753284892449601037844863730452070032996262618372642981842843834765252202494411434317003435657423074776562444451212648152739361133371132445372487349577102902943246467356136341574447997069123819222086977762457243049151399512238694075304698892063863655654540855224028148214991408077118071023039868707158658371446701918012877443930605055716876705536437877152929540208325713284155601393966439734185177718712139646514150592356327880783005251379345893447364873338875833886190691525931956079074794902284259453078359371902319717529725037222999373483996239608395024916924958515472723618600302215514804856849829501146929186550845355662823843272348758060398332484056859426411021026426340573931356865928687446136153816363106845794443089689626628758679604885094583880798685402471976898481006236565058169072953641966866432067657482793445173654140986650910939829983437705891965835798733607867180871674957481344749289003746474547440460476104289048587798955021962350931194883707709126587361447351226674514048763032380704606698784106329513940212451355425226708123412693212836356031986782719416658469822226816412316882620505052397560438611035275786580523368248181430631887383469227990486230661574615356585351622590267640562758136109438668813703220352541210555412432376165622779119410026277982976056220376043780564023150410878957738349179385191128502078251175179346848755781498405244102659507030134221907240359529782613607896566580444176707464019838139542499592956124570201064411637086484774327721162855782304306830947723576956609703097583055085457263168111380762502913841799078454126461199455436009860720798090057973411237723077155877689975303076938301536356531102410197995644753515251137026604163456386289945967109734908922493800738429817329736697424432289367245330459315492089494484156358566853276014075437818816853580873683877320307689811323116864616941988807983752830263633924169485811372555466994974930431886049455294846339877517758490712568963369953556035446664483990095110964142065039338281359093532952056199191607593117560324678812891353403451559270059230766830916080911738836476878327410526080701302491596926752395855273654832329311217950502267067979304989266741051313139890468343177844553091154294493203145703768913749414299437543796250152506161021215431371468143082813289179950612814726209821340444951578976653161424601314384726328578467375181283422357788674259077820947540237683837926989261728312602013698800414290434199071000958324495595586016842499170137929633910987482952695349852980648370842864854136326151385877670109020193045016716739940850506660706026071329814797059355179012096088670575747758352096860238846435242040882803065277385998591692788926441885705696285067097440143995281978560718367862016078743591206305042340635305140304182111996013072180650649613892692598992096539400841670416615310652017492476396982003919630623365035218393429891826856081180352563501794297808965574212074142525893692498579832954914704333707362595799528698000657395261354413548218309804847742655598459414983431026072703367665036668738756984576143187171924035471690299220817416366582432889398584926065120291213597062983139596614501494787519197958237940024872897562626564591836218641943988166295302328020319362247348485015811921632883737839423844519281986630931042798817335361346967945803240192649041564582361381630224985733531466780318080481246696162228593413061142890286257018402773606221726350615007128307489920218460689466300023967809550955273156910213674539290903121197815413835137328300397085488843207853503738899382022468224820558333776581401970850433945498198189938731564632471009338108959966945979554482337837574045402667159734192234116288693995331123356891780919999633559611376588063178081848905001048938007805438943087698239429988260658542433681947190648417065038744569326357894771451623689302095522247177586835167521037684167971799940669060631059377094846097617027566058199269174051632155945912495975381599009057341359589086940563965029746165566904684574361641488333766375177880631149291603403983611883099529904778921827725774294760350422702858009411431976154710284633869527374829133606029642208145016780106097253323073622315208244297142149248465783116774004689141270409123045312677433421164852962574196961289456812973107340125812815065350812393427944869467570352688521263263542780227080399586176032891649355315905226095756876463059992813413083777646653463823676476916621736185968507320530330340971031939453360007076217647660016590204314964917258425961358040713103861929167519652665769058379591288274675113092869509608078566068862776107452822219176495422780546296081196207898201741047639891373638186830485972441737347671694367048076854737976854596194854357813211841324232765387907208619600575797798054143309511671522028024702907178304499764294427894642576168804589999763056454121482187397144241870111905577222424683284967431108886468041180873076269246870741728147324975247876717430792098304960415051368821178433008517975117565749424849897795007490655640975774959223864209071224474922272161192292946984022724267898303541380825485206167059056788222467212635878337937319228486840687982271752318427317053294548496985477976054747282801229842491251448768961823255636957027929839017808109058847140054829345862430612534209293932225433517309751573604626513885512644252865679279321110880386119537470010755676683082840715323217736953879804093231582941462059898119686646920592144431133436151982412741895394021524941201432279765235313950009789447290936184353320604657018358471651723010173826688050688975606434556475985417766468748552684593483088047442997922196187120505995027309283930736000865358672108649538648328942632435929896794162048826822158656270391278449799956024286085944735797636761464794334563952565919166443592935396600126921687467825064386662783655069408383854389006133881995531749227277549455760024795200840395751034965932707962666338822734133533422293293336345911424581094233484082787109774126048861280429086046676138569966833042359775576171506466983218857619597563588757366275734921578331830553785799076778901955164310786944239555421399774324895952955651892829631623851465484440399247788460498895236661639585595659940371018980995260514478192732972580943243443857783816663130412979889258703985181500650855204000248066493059170830451872296859539871741795554203796381897987795025912037094653361466176356603947419399209208237024012229554051712873524403856064050415130039448523261762718878646191021136860675620439110209603361559802716080243286581904960453819470746977982896060218153389308166196036712299877413663620919659575507874284835925418269505664472374225323666616834667580028272683533911122916727214176776087696345061976590477280367879551920705781731096697338409952453107684495942576387733496251816447517931270987539485373321962668913152602657357181874181908060493567639037186697206172976367127446896679938553459076252521919807578039283256680341961947918756625619422743708950697295705192956327680793773849544098967607991018164111607550918845835356696390635496765566875509434561333235091140955237397438403396152232753077330655576327954750392405357320511797738080809888741382763026060151266163692007229903672664755937549205367431475254270130528910659584865786658230647938888779144461600644552246509459078843084551131212616690065114396854546385932544043112465033648404351081658692941122646481987366952385683118708255347434792540749327458130875436759046455076966779152151527064140152931161031513961559698579138396978610036383301021258532926023230792252199568192328580547989908805280370583130819006414209814829395096273240992716937719160513992109021211225574147416575655205063953005663733466794858769284693249439143417286615492806547561123685171889692907346806832625218996358995803773335353776377064272395889944419469145882432456133802421237643632934681684597928409113853779256182588159470729629375354897023226807308634781904960143445175359475921750945012774078786240222146758320581864234201899905711794922361044104063648100742881091934575836609099170656639368572712157474184462831328850866322152069710519305092384153525725836251143710477823975367958459882567182231985610172893096828177235065225289685981612719919283878061782039172661397363279931805098861589338668061785525543338434330495393340204724085102978799315156183835722805107191972283605945090613762664187267152793637158461643867951582233781718256362043266351546767957261601890917739294667135261224895823905823138864368529943121537707723943985518622021030368125172247448292492940848831203656434914216172083733973140437071435537558705646253438262432867190069950622390474209107720144731918044207226654534124980659819885811424878763712591904119393438161445272710066381463822997936098078620110443166769348532749134880750910359284581696993688823579795108084766321678359754043271235114591278658021103198433904938186469416776527601694625045264890564919397529317998654866887935271320589039462962653628344883997120775806185110710005302711056959645565555648583875958036877351648093652734699798720351226182702218551212431981270151106083179443824280522285513119787261956476065935346996811824906739713159584882398043680633029611711121482097672879875550676447925769473315998302871588731308757707814975250189042177955773966136232108244161362657340003290366699361022998931397854460988337549460159112842259205005029792012109928879438305807480345658491757972010755267419144753266538882638637751201509460365737366738646746362990958117795499518966442060506583066539251027666751578073955993552091610393764387877877753122224394885329422817570031517692699921011074563739984090161329189772999357874998816939975741603651209380795762417333630600003925345532561457372697430154380226268477836755555025277956927943378705405349420422590014559714237033384366281334930136744369827195313023077377939060061325490952624325530822377150690477800500578115950431829394931305917719969148287153477852642526887085979254444913147533847715091341181078349142779473328302080900746756011883358324022479058524922750616962504970800775377388799073440067120333303139006431752986999210818108187937743351565929808653705540749941920530122946184921918508154865550282373973603847191625223630881391990298581023061439754337129172538894778017728657247515082085556642514240202572926970655959360705509336700569196574728987898535677422820951915309783302510689197462574831484903847795203045981783909296626117237951074142918458814701090397722593222032006785835689529318978066884645554837370696212494568224607184780163201462545188586744202450005492109502523940833175361442644359208221987847946385143449753321989806418915643100427053960288223117221527980589370321235474607108202023138270698181400236683605153788345813923822680659005395306778598291244995057317571687948409709058835020204581988606049447824910667653654040309236786038010248342144214557977957460469136127607038230201326455491650484306791535456084617249348562888899075321947589284437224801975100957418472830331056968314608859569107082092236083080517826190264497705649789186498627864678840164996588035376821698641304821584391664734074586697529031861501868408105859762247650418829614819713530441615712945649729383028091494816569362088640786533384955382208213909162307365526239496563250564673228835821027076216797844896064211537642244826372008709513488272415923671103550633925438579473808158126545470259420410793070667225769836368124897843175958974781993488048666638256878499015446379494349505379397660020222890671222471554355862371774378993475341055303722366402206890060372713394606429414010595295307822006773449780408444733941212482551497728484112252806450578261149624730121660435528734977805400461234621053977506261577132905753192203249521585879014291240133906952583268749536354145977499227585797128982779411924849803482782889144337315019737229675113320759953517905004541447782806626380700154310934840695899071832439889374380552839916001226249192800477055545301438674800798195623064844631573993432275282718193500675059965181947010214144834386792097684871594751111925119047201286543716101397151804190766636236371676976674428093860549351012100334208038356095426242917285613707484267611906019248270559601850210021920183262276533938918472066950614305709834699458933190723697499915043577944214384567767742535777946886379822535633129432408270050942096100800297366284153368303543710845796405532483198903119375144939048762381244075739969200214582303429014818973536332818341632255813285284916552158034594577727744231852317951230357446836247659648652438803873809372378637168266270244467111178315982756445983528228421460624050884444256700598727586752463392805517509704405409125725048727180297994717159291946591233996327181420270612400040660747800060555483483948247627225935781289196102150348690278555367499001358052195977341273847305379362584737016772124902327242844674192527116855812440169977200310895186109975243334792518920923846693466114738519629136992173375581627043478933727197039942789212941660888076853323758975101426315539452859149057594263964808233480845355150356742332171310331916930642725043574182321247204113187941585552170491424114182288909689765897373602713665609142905313633227152591567737874354091043842564464861356086620514825596604561471192670951206423946233945436228440791972599072755715253283218068338059498029010035250130194230480827537210281993331293991105843519111616389655740334442156057331676220445166702549314226522869066330380869220609997592138249052562054944741012887936192431187134712129535705310120383079630392733823779267161449452881988495536809874181634962565917749978868787681406519546150424237200793368432539440452861772940248334100223769721159501791576353056820397330501427947776524375728638533246021451410628868770584974868008122457050153118034395308534409899823832757591972868750673330351534666162447070187960033979265649512798049670647951088432481610406055469075333749548325481885786803195878024200438376671107244261013636060211982869277508322062147872028668945363655383125198205064277058478624143635475096837124618927044711703214474871826913540793973491539763561545169094785085919710273285002367454308610743133363999950963144481461463235776010510303553610535720295374682762273573351627636888891298727689292426330935391561643018831318929463845499387732382829681735986316005697615158134728837382291168317120760760379421132389049570992228473332728194390810159965528264123594858288407106087866928353929618291156016510751473163226007512092484660263705296973420635063621481748144337722974302835589284738364014148398472606991835139519486426700528748384175465370835978241662469766305820859037819275649728376824086188058629150319496184565735516072991198532956675211830827162487340522055582100865140444318080460318854305188145678597033508892976100387784684864047997287428155859093073699647182128721812092367817233552707425352737376535223938929057164536493713177823596480373332344612379857600565767908678768678421248109105121432121285286778910931837792283923604445616754334899407230546609435273069861788013928034329599277134213579801937932682288553969216926921623233638430369870131314937971535389597064145811385768768102484734364632962311678692211529346672608422288496679697414787456194834408486806369238913378349726179805860127737736419808824596166681302761007073885433982079729129027308024331510825565413311179864545700926196688023917207791897724102913840096090390654251920721534162703652152657898159060821072706517155573126952284788523980781901353138742083364522685550020370718458488537918374603131142918761556390670509542090019254771783916991898698757712937535251851013763054468365439456486794122561487146860616608068281916838312231547966727276459046023319093209455539568167487672664024123366865493042248815445349537609773823306385345234484044212893359757066080156462266972845704767529516472042659855033742249812012729666070194800899686406587053236789383158934171511639719173309280801962579608229307872310843288547521576017947919811562136721840291877714949651844763732071511019607726440699403653664789354476297497267806450110006105545201592449825345755049404379899015962997442317531612124565691012628895428704287591302493945796553981752345009972839550154936099713401426668995637726338964680904583885366228831770335881347688946659107336708975606654336977827193484259030389610838765929758470426422436146495603480420647763954247855995560481604474479195386759064556143866749498838872763446292681537119861009895376904838771964965829943511793966930798814403823011591895021079991219836934523577297976655181823652255350558181250083642378126242606762353398227011557422254335368420885781961658456996206912259573618549855383605886274061144376986466856738526221765085576291837466019241011531478944756200532184229755485355907359138281583246782125077846636823028776890128908185138241434101307322306380208796353861313634838065022668425846094973623063453830482281585191814956482079463987470524587388138857468091360743160946544235687494581317821962073751047299506672721236192570346944905736460019743278654180911130533798194233419742202834330290637534061565262162009814650734491047682101918033176531178206725802642183667019187840915608264342295831688779485666903179516017061854904714742120281185126787254682782575819439507281159630582193136336309159043651847027065029060041837411586045219057660233877688902182134817437017845294869870546612190557801458424788088465265129712970844352786108596388383298784837892285007909020475829956812104174336327302503612568243050600159848403703406721601642338631315607407464927359395607711604033886982915167324528967561131376705176558742347283709071835069739974941716178217250796112362443377444023042888549715110277010730369339847826332488463584129215149658073797267627437246202030546216285930131283562568503583998922090658741357451711050516063664357530195825946180396709497562031244760609044321842452035683492005954790899746225621711858861371311953360809017606615435905160982004334130366615709350438491496989357804854475126023985441725708179735047768374668418403019979222011023813452736711588629220378701072958248301177775952810094392659667752228197133102404915048845686324062496932044542444526867117089774428927696087041518181468820195216643923669346669515393686415544656529091559895073789594746739148892609186083256819174455476555651975807581466623720339173701763985155513646748874970981037866850782557202935658153692217033591966749734257596351512223472789700081276567348710157691430268724298969109831112541471742951499680042051128297202879194711504197653997232756339721475209663935387678922765575576508069502569560897513201389643344424411026749963686778369525375239875068662540253757253954315508064683733080243534766522656987327896770069251941303050379592273834022647515003916187713739135452542372758154026711962127901929391020937940566078227400962272438204805667770409784229202279726448039594895729851410570447623114272757057692290123588201137786704634438430693226640589019765224595219879749339628330649566200558460314092811608072502403948237714052213144279585607719225786862740766232663772423589141416190015054208423242330170612370411391094871581483895554062152647394717424185010597714929022173375089328806601357540639069608392075375722736781171139712252408465805773674799452219643015022429132154425181025902168884942096649393697626181160944625878434573385293635455054203513058117121333723417617655721901906234759496040933205544538804588727828816045009593667365897232041499969681404672029819934353376201678507889651671053295010831277696134313449191305324783129681578864045734735679800711352551133252574749247194573717591333130463935450106492064484118673125290800633062079179872488478685563920781871201963274322676421021277384710511842127931102346857316023545523171966305283121348147361723320464707568470153944727291008550754244170093336388542143416177904927067720226967441491546482129517165151210006165298526873223874609856220665654033234847960628009691002578949498262850668143598310643293648969050200602919393585748610476744228539322659587558160743448195580535750476382068652815418856733647315061913562892552452195029955315997165323026141596933302746788324546428832334173361936201079218344437899220456833994049783346037777450330539313582676798305990784207424207724411895871757823443113566887771370549652476468794741797630099254082083677320620358104744368291871284298569278954139620513002313156970341114292279786629830582682246069908977166381779697565392286496077289920756321689889172010637416462273647514740045656825228663093320902304124511114042543817254426544760577052215821628127827199400635312870471280353920586370350645913505977362155427095823207998243910873347499145405832677531312088314936824521905647122683047294339591703039268656380426807404966056798732509537321790967844085770388450170702828352486428239592592850140023781573625880467288419110226253701220141058916527303901730650949077881392388636783640617291603856617853543978080251947969294914880448894247843538488560814393941394772125427716629106106237850732318502852248513094226517795308981499736118680991894766615940038593909363856695376368567798910640134781075113857972404589728510439457777497452911631041462339798903033099393455799101868407228004145880568669667461480875369013114631716589474881175476893732185127782150337721602584553101449603461520940727795022602597367220426827117355267662699647971465599385160376878440911231834831024115861025613889597669163244127745491692875003927443220075903664253654363218009790177317196061077410422223385154180404529443487877313189684239328101834834322557575030043403008471768338831775137585015749556857430596608211804318850690790121159299321748147163492558180429182129465110191049643626136213268430505746242003859546203042922980885191774879495452324583465098463052395185720308798723266814110077273256300144259800228385846021965691164438724272718196148074553603074490602612116748619828062508438644028948003398100173098790582893332993125301373373966534674089880126307342862771035872709008096515429742421120530002980736843523550432478117828190130330190978569189054808198044693275999392542464001922532167538211922434951811381111625581497519177689834782494410493682156550264809956896506204541440998797929682226964245620635356647525382669854130397435798332114244131995532874251899534292700484035352003308204227067990879681502763772718556584283978638583200233061967244026385478889618401777063410220878118073196697418239480003494648096327519893558340729609071925207715735464049099268941083375155636519100739957392687752396117020730926495786254863563893703581969820237132095833191725162488254615786085403060610533188836108860257893524276079142845124829309109806235255683183666078602820789565866100922094006759819980023015819093758781830347046921099709016493176990804161839081004192077427705012099629008713665525952044408370806175178020278419984075416424488562250621312910869179238995614773401313223362227257192012437683098746853483607549903596863092988015983749189064789510349309302680356411694362186537316911831191228668491403092075521597993572736510275278121715684013706322258229767062496760130795480114341205808439170359685529502069748882987362223088070014953731452771440756213566425541757278861261156857812337281305664202047431771274902327354536977660069587353796284483443449628323850199859957162424436460228501232663003738067563184889569205578615795690466906111468903008274517852096676885570261105394428390227367997618567024728440394307696387499205042557058663899742446996354106594583538099956545385696253797494903567503482676436703660731673700899052158078587077264727180624089957068685303074412468621672141179191400744085752345505179845622449976320409946301338369979478672393484854811346904724655540034164813806132486223682826245467570436794264301802280367908268045281044654887015459623377783671490297166048093847495426263245107935058533929652068387649007424979002071881984118436831049658617293171960836684954709363493431070791730244287929354858512948457336781238316422153978389760745454658903538085483116333373922313375514200654314372039441895043665102621355147853717887452705350301601699308298956126856451301003895489558695034377954284346640729804359852876821806554603358349933263386112957799682837642263597865950120332838769326029879968849316433858838434001036257142300702092411353969576898906825485663673205341990694431720435994335136151750705064347730095534558681987108936814802528281042933128170149530382420795324190136827472681691334144428598818016359115687995491016707875223555826746848905495846616743042461895209874771693952908508597694786937124329296750326777420190373355211056348227744275180683414313280311389411369088336725931318699344099583321807845002540410661884124106134819033915149510207809999153560007900469658854387060861314161147487983253048700327924227547224074648336927157232635623233988722332267684223229024918166576796370508428967403957685279853988836066033121736333209533452705390638795153239810608808670215267549960937717487066669846490060628766594897996473641894986003272344076076487505069162218957511080424992146121676021681971333018422072812131015083634340594571092212568245425113329006616427756897568851637323138312984285945429677666064255942795794701326229502593651785250888907085138248199266070340454673967677620224347996936588977834542315733817889759302984055962289572378439656689028708349498742610250875123137992544639732058242808184845936717455174888366315213631057280118097121809990433922939809207424421758476283575012666170311790149974458212748765549079349912570331086690666002644993036123269486137224953409084299842144858433701773111807798832197422738681097009043358396567017566615519121820812084579947640046219262829837654071274580638670235262309664458114045002971545266711274819562759574727310558730860645145304986350272088188190978705827139670935387018711306542941144549146538380067875579929060469645664030102415174997243696673381718483876773817085369039702247186417707292819389463914690304429407395886771976028411932459064504638767221967874372407301590134458111450487100499715693633053310907532450878849403098467831249623181757398213826599455721152253235241451491356867457512104307106775921410446401758718250560696657118676388558879063187126878072765143265618259872557118601610286018136070518586688591859319172358498462968756369597152405794463786347923983706064349358245159954864064580257487471077636543468545354711732657019677628193109635286221829128721782433943918979371019188002091354172648013529528986051461500778275766977680167132332461996266644399937632309588565293701357367967516242969476677542608126739921322933095567801125119055579676044660464440922396052408454920136836448962188802908668695737395273935968137007946232044131561326948203097821582967696550353235973738586622278657384791642508298987604600864710595181246286177368640660481918676564116427787863329038877534797298937471374057061686753150715574609459009802093954072788299984237373628749532232599561321959019143571463493166147969492262102287736495701786076831536029255089873955969077403190898256166504041826147460256907984158404282719408559954415507657348137997063565725708973297411886823542282325133923913050439518904578872270045188180740113928420451698421416675386921634956827083550977565539661342524397854569174772885375132969519627715335310503846088530588943528746964520230084600012538829694207869067322729461460762722254938842142445090867472568034486175700776013075427894558964326219077990131795579534368245423940863215424159279987518035163295966823373144133843242968281804928848155708012724889568136681863928620234450994943806345111311986802533680070552737246920114820891348404781614456177567668299104327278771121958432172830388632936714988292436787156050618868302649754067471821804561024702031694693431452655098978602873729766747079320717583332043588378190679697175288465907612086266825469539359877600681200352067516988769966057882986665709096451950230342479501046261564755211387679353242843135302046417540105056760664941858518739987101326885950884903801472705195740920415422864069166937526552421543134560875400721943470085643822722475858561361157428524115903128845772057432237008210345761155060644252113136274913766705505820291188563420324961935191629489619131456125261598275337069395540783611346222390998053606868483541361152934647864217258809979060136829607909842029204009944825351734611273884073872369032004339595454125852021930359751444577255759606513811589241404322000809109156874554035268268228130420153170147372672002814379263087211917436213251500789083922250345580827746334850546212205744369019363069693192198645035316759405609558899424230258010301924957774384483879656010580102756462665476127910841676307036595707705454373237653350578343646361402188765007607586270326706526180947082245706531260752378927569223792350712260219976697676306866472216100650189759523265783965400232850263290481116134366019159105172694703712178544962676433237885289906059017609817497952605001703718949662714368864702826363509053278382998444844465983058692907834926983353297213194648290124502045647509933279325744240829077111547843254357673254584790433843591240665760810620122427466524886589483051409461767735227598977511507840677653328009046225315296674044437030134342365629321887648586856823626979735766420029769247190742186490087144176192725006530289377026243070635563059766917819764843370640946662278903715970704801361351928674059324772269885025312158389123153812446222165664213377035491349308079103250597374706596123675031785084807193533297330827931519607147947883170923984811467618520654192339911387106099589343873166274813158116126919779635620361869264179463711886954850275125377389704191148002481703031388886388198092321052313595933928349761261210209476811243431823612556696608127198660436395343511337116915733426944583223984873765141877095912714356744131518794232167638932639313052569529745817332515477654304098605102768021819327600709060948604960052774968583922736091281764004371089281370933189522065648527112492073054439740798590350358476020934270866927911764191217354099441727998174979621607449162768170655380512553909333431403957968991316779101336477600566282494294093146539640598367665581186263324745251600386713399455103005915932091277975392024031456301089651405410335936485279808162477837146313967367635595387721202184582341720872705980437753570296325975795188283096954503821489747507088167157905802032932502489043294449286579573257828996394674381519304238594062050495826997280090395419349367846500641241929079350152225312130464647285426546924441349746336130373944525557673304714855931956506577078421355411412433400053523550091374427251907883013032106836910305978946683437650061440239728850922498737098275574608394596493545796777217755303659573501184866863312935674489297373801651656633374158427370528158111218814845178133122752881589941375817403255599068359299282413824418920528595325345856368068116416815308754287667717616433928383876081911875831489597731541290243087098780201274468889199696907412397240463616035232541236273121543002157425406816219596816980934623830666731561063844426515392320503058986707234999308226420048254454590573689408837975863594785054933844426153730635522008309874960212252180602801255164079454202623933211726210782517074541338705692779860976237707768075405326066433444116488327168757561379570981616388487768276837857111311704698409103031856738893177128236381890001704919837901929896700304493234794790186411452771880096434626134379995474764732834133880264382758797974420779473752070625852884133854077552887778227906010422930448623751179265005664548557859109016500834462697720970041546960966459486265723526601792060680558201254554648193614454144958916915971085232087680594158798082875550947365564617693572247880771021607842100599032487460237421253138097419608311609235253506039590592862258781525682135018144479931501492015895850448389267713867426605355930837093061772668674129962453218946884504119311016721020518590958381616384050529516040354409579167431860789533552726710922157315149662440994508939499309719358971576405549864243978883208447474521782397722327841724199742738876743144979183294549785729433423491449885678415321385286715483675606526466477567721735703518235621359787690695968771152679195469500825981083592222096603804858321800106236254215916824354437122802319025072536663963972429386609206353683197536707149935234731642546250746465322000933395155236534378842359469867155488706232855555871597725528783635647877894935498775875022552118647318341259143767864200093368141756271759335002822332162324966789769058233027263124519528019527866285819033668935720383414518762931204152775857794354987875318712136689569880559575492025650939933989875200560315161614292074381872079543315063522383043266067626848588875199540355743182875591398687902284469428260406317342276091221036279307102276748039053367859214098571973215296506959049521616818250418862910110159463031844217229234530310600951170514058542196849970616611006843077310075986779575136360520424708894335967632429084529597559616794752255325574337365099845636905478235835803759182659311948754577533082173210335046842962170742549350720985253092346964588767399811063140405360630723034897697813833994799450413179038669608646441285930764808957167592044602326845161497554731414857951640601812665441964156337958530375399712594394083937160127323674956326035408074207338884836291810396400161963395541311452138331082014740925109295747712199509434869519364712787835113487741936873560998421489801553576339207770975931962113387466922332644568353843180395802671789740840488023011723163871832408765117335958506740515959428245634616709243439660968774258335241083642860527042753795985340383885678238585825910713922707723544387389782684164756661087010737873536740142402265919879579177334172074651457634624644611500944018995756531753307218143067981184679671125765935224967795714307344705620176436651254766081968820126450029254432492755368902208985175922919033530186969335896537041430588679754997236341743887081770650698090586232850348902842429757615356957465458939330414116840898486929293084880942783869545270434013045492820755415001611622936773319668975367866655467996520538392242982257319289389091633670223006592683340063033432692431717163770349899146306022089119188022218275153675103210374678978253278584601306408535610224760367977195968224770000582050912316195846170039930190047795653667893423108027137313423173260028746580948713627559744486023910861579441143456535858915653037831786274906798025780718783085366743034623319915753868814360113671989513115322976920499186409641316672104140438555418962637009614459608051766041067326985266561184630625662746761566793450021172460723821196459131567369550904797137811882320025243163957053882913397130738139965157500128411542928557127822562432229827695964240800622267600330300876924268601996299726784991887644246923434532761057605524122464663660159144324572295728227991102399896637315274462049450364993062907350087522507013541930721240892179634376751527653817298720387273018312402933953201724598282284754985547877665992100363677875526637807371926716118392182601433055112039751010086162583235384935596400627430077883245453023900444059145345367878219760119636170514509392410009309564330486395506054500754015870227845373637134849979102830877577989142893692288603136174866918202521716871981519665532060112811075662159161532663037315586263075322600322452030865699665110652697076427850118220599028683109536232090435649875859758053440298292716324904771985141292917453551433239457208550904898112577071420524993598490386445141782939594987400113000818152686120138340822905367862476381337080142984017094862996121232751095851331892115335497669479896722181839621979459935445192463479822256419125347018658557415518815562506918828808539588806880521732860061531841268379979886216050316782763094338228150006086051438014998399252582222953138613680280626807048609253476934976401432228665867036728158254457693968118436949040344976638059060225109140107153990984907563117517258850208102694348674445694722565308564676808577326972335559966161470095370684396969068585990934942529999189754436875802972231823123183037570365925234261065198140316052711738308146860295523840326547600096725450237263496425708571109206028860677007551906259288347803038248929715733520605696371423683354571797644822054867967544036893467081390661551695822334956054197913727634834407574600256715935703780424912246280228369691092421295149154105098211727277517929958411688765988164294798385216929951472729045691168066162861852806485860743667272061229296176839113265102616290722816846948665164141858114996472468697203071379464271449431902335940307737218419772455064843755342075029321683288694432299713664876566246272096055650295315649367505740790514975067850354346513180181321706608956545878602687780844076632734061526647303782179588238230153983563025361480583792155113449416627557054609532926674781028656811278062795577549290400213356577765606988200839895509314823901898966818924898259728282276284919299888343225268276958076615658395797285992492791548678368292003500527511105714929049487886374568872796695658907685101435279959366200193812584001085539217713328794723241528635417460619729589010175309238906862462491654971021060517709713558386722636104974025454016593046044812830497742897525773781542477502324480779683135156932399182053700036219997161069967490810438500623931460723785541094043952878340032960257017309922468580905881930954428988233919262471616221985445311166960255373100061247583255313020763185711032621459993979862238258066051985542679582787701100213375770515109720523326158690552828694344554609145105015157439071664300726053320228982043358537995214959745128243090163416649509826803985301658207979437638681319889611278309863811593636491509850207595233089563140869539533916470822352122654240559292311698253675519209333267333670804864368800991090124141614766750344313630352466235066808596425894342803419273082273039240668403342721059996110525567013753003586292008303817168218999828808521945107862241755333669979254530306860589123651661780170036130109067226772491892151349796503068479512867670769968777062917501952722198923948743825420219036538706726428525042110748057987981482982737480738167305346333221137654174602301495484595957791927866214994126514359693486004223993156224002116258452154347866650501876509564427914422165121741468941183838554627918096600092896422244782089831941580018950287819956157129432077929628492239548624118528236297925215519056097100855209065251664831100431576549493411042414194179854614213913199415850541502850446074316936425252472483510070818899752377596352413115225351105679390445238327329425336453938204492997973224355588114449232267647160751265464743910844678614883615890772961452307169039455218743129909292093344844583811196082137246235796500444530860067401904571970821659874722557137633926733447597006008598159152581030626964200640852781619226287962715752361828509465016545816799042625710275390773786276109531569800685004871420654563415899940304888999633106139816938793586436329176500559999277815308165181902555008753817048386160374754470252172992884569990050806971367972361180615579932449666674860875905877907386507180329074463548311155606904219200099306540656572231822119344566436854252063119192485372473564056080332823138393455555288275505493513831215540614590249373452211506768181923292303613899386926349973943990983532097609449151341796667310126030616278892493444191843916556253130619051091896101775254685999135511210257924243843643499090336484736898044271339802271400844720985502271005930444236438925394835147878538943935609599135446625238096217546621718933869629080820436058529396877592550370320096168942181712861498133518771024455518302062961685629470554275047283921456752840139524801678982329498430462187756046701379729786813628976447041261024074784556888304472274375488520901056490464515498879160155354569422636910545299929288731901548756857248835272264723647222534783474040837351710495297925516446244430200719874481159189922469368471447451893236439839443423080617475789445291916867352249139756435700438845504155832036663337548596911886452037885648151482452843798521271485336146514676436503633625816366443105760421545926463778496649425755591775394097144932778436515724004871120012219018165698737753880626368577906191005681929204511457305114077415704705894230468951657166238799470388652100286642257370342136561547858521620561599838451703100189356654311046153721057007090375954865911820372818801401963391504576195002480372044428612869138811514772109215798474489005263177829040199713625777652163559483978174755694644561287453875693787081561403261272344103096402870650950108427370757222800994055746586302924653409606124641840475646258849005033172414848535735569228635683088184058551492788013282660717689768702906248092080869766178728516543188242044654349721538517871224201622636509635271467476229260773648762549013067687466766820258187261028664919810606254923020202896319858655627896639477951541661203656883148271052816437933554037506234056516122035667087122086285204039449534641141426349311337857145706944933952072466751199852947956200939797872513937523678486474955797506641794924601130747315236822623525888698531082270603631065810753170763818085137332092344209963903002566075917256406104542713015430045361070203942044490054896770536721529860723380161723225830092423631791676349271389224343334956684019909255891656670864145308200902271768541495087250724002139777134331226643157051896076448988542597095575789945898289198210516585763461795371428061124425162201712889824832203411261655208877984660883613276372330425504486979314112552797659261447120094404945269178139052234500701155376065957005104096886887556571762352937082399963226889087337070378957086565869577580789090610937483323012164289914705982415845915517003879534891735079343058582242991697952881204387443864845480364636421014807317360268407664451748242397161041084433986219528197939238419925071491406933645678821770857366164578280706118698224076749817806725840858272048420929156592353526806089011308698313165239933460245763755644158800338016115245865030129790455448394510277929065207533021072040569601588448970092489502967959756065921439140836035591122817580695840310493867686720394632154702938482041186118791920625317640050616222895229307310239978748713962375316564677469571174415225610328758862151757452936195239387789356279957556919765733170167545975040128062001568149267274610060097343401345973301594284818240029971973887722415484044465008345414862241287160402182835375157484809315363638346321468141212883763835220665850664492464565378471330455781207213283907677341373589790552626306969325028553495592822169027914455720325571800435584817697471563505799270905222398712858944918648753636804639516167088701091919604118269694884733809014505200857347422479682740711242697467707884960324359719617912229911910252655140066699062817089645425941887482312342831487568466667013059775174864017453792539539870732839729972327608463073685723169201401418992636184203995432603027996958598119134951131455831322128944856851542484497523886236650660432356902650037841465270263965164284835709039663256764269943506470978883863894983490104301168408901328879403539097434491735254634430749419706551194364953946751881816964859873396822376184163482851891253195035472596747554597415058797061271071314335759018345718570321605223653764612152740268129960208257127809851577148840680647484239136111624162604416098696807831527414239733204389884878186505818067873540457889571767109168331869486465433930092620772298294630730005047376312764741957942294384446876862646628307242607695246353453127448083645322363226006616852685324757294930945220067114511851860516397988647348859536280931682725892763711058530238025896267447284516360940566980875098994826703353366422566746625112786492005011983300685652346656525889553444216087067671621190465916689679008055429230751820138899676909769486417336024319855245219376335016815725577788186846972366997469862226637010180805462362996833813374807353912852944081959262268337822162133774479874039907339573798417900262079023600739004808053175304630643778737083824372467527117306897816963267784340236901274483020386690926894917585314791306003648228255878450582739412470784797925541324166723017986106920820876666622859250519777597327952040261800533287627347132549595393127191887465543253356252792151730412092047961459327149200437886885537341545612493933720180909643218540847102980001118347252681397668908254000709663299799431228273855669559635174196503850596477339758886754620743304744223892039726638904428830159845148764408978985531318460130501666305132420962563825315580987249504531622823013673823751457979861782278881868489756553050017901122278041049695326543619204976863232327885053381221382258188278627272978691992349794278840265804878596197016632453485052968446081054929217561492468347631468115570400353335702286852013669040304339553433413536977309532998699979319177264499091509440002161603603907458561120130474973724050844464893116824781215974682446759411088964822962868163194213810253610022775507082646479095120731307897446060953771057624701529134182301953699903400791088053682339373257294119309030192464348821853947399295560668462285765276028952126257573284142460123597162899644947654723410870965584440687341556313700802507222129903228377064187298820274573925511843742908268022593822126626760185080642381532309924261250526322201157195977001376138846172010775041196319832410644362181185351230797162685224642549457958512677240706927300190923038325669127379621427334045214776298992301350773563052423938668563462425747051575205871102803161469238186098149702623946845904034170740300080209519994946773153874903248629449163725941988211140594396426619371135945888511076568824290016362992298408801215226066294744782945674705047787440252750752771799212616606045868053950062600788848440032673875036768439063035728145366362461780959214479197442090169178949419742810870355502097722181062232421411590159104280300235755010553581532874449821814831910906785952390954400389749878363824242489852922847997764774431955116260534364882614793672755955101987375250954276868221741832863753620389463340767896261657944554250088218379479141044089418094138511540024733057448598255118977589193642269554564911269819232315516702405968058247467714140844445235371497230188434950189995935292511795951622129233290816698327820252157542015027762304075033490143268421723024582982399879331467238348743761027182817336650678123269274890562252722468812733615932599398823132768247871235533366410083946713170815697426084099481382243368947011180671901436366910352452546768306763664429205984576723791865399037146661552818990749197542218896492706632169472388551746058293978136703443544898699684847295860936707878667723525522312024728128934872759688126736897621106401350970514685371581955293029421902204338120861314409341739584265776890735299654260032459720933081282930811471104000981367133947988567252503681238365834638983302168490809131207484857043692728371129300391239324739283713824005255998806475747984480346327400210673380409183417160989245820956481101367564962696545597898030530540436156459027318510620916889719170345030250467576489669941159585557980217230497472112652397644846004984014254519430609965686098654566031907835200025549865509627169682032577663886113442192137833470223557743068523457125258615215606711868227497083571662763311654230740822676157110465810086998722108636377751934655176379012004820244818485510659783213353305306146178731365381930286583706863138005624196717488380339857473613689862432831992088419210599222934021057242548334894668385099616862194134619214420915140941826584819663313656110274115835579693765992716727513823740115032573618848329398804439212234649962123045165173485521958569960184892160462244404894631750504898920140385475086062103873547932603039036309377447560370593886451159032593307990999262213923677798302612031619123720949765855168166194832020715318935447818157297834394309731233015851968874056196745045186774671182340223563182592281111059246568974655927618542835260421791359777545441625183031138808721749286854085449350272824824341793965735132919477467155099480671439142643411731670958425477013933345703691397396861900365976745178499735937261648162384052560960324924172923807123010458485506374711105301694838662883763744078689353350517040228598816767671383048250002799619197303124844760910421404291241050833546969632739934921726882595325204081790164871303830343121679798837861591232794897957947402142911675159902226726829361560917750932147011589207794121747858048039382707171434006840864444678995216842102710764170456940275935203334140864958617250890320903024910894372647062510712243554498267413572744196393205685041965736843924573140860217823422873820755498774321590414379716927968725701408910567761056769211507818755292907902562497502949494887119867054679098288783811101315116615021547915780420664804815292483089011703471597589464193776937259782354942137384705071889404666585970998190516600314480547100726046941151508393522367750152711991588903262463015187040248096077913839740576182538569301945748384806979050842561544295665274473812961353612523211136790739100878182072436410532697709785987921238737985482025111873619549474684653568287529943802646425837004837796427460554561929253692662461516406255115120930877803568802124287030897617202238093939213780765327313941534090135928416481810052002141560839606536917136431290514051592040530447513662444716165106816603091991652344898950607803694817860906331096291679414629337092631482706019772500417911724252050711937141337545065747187657637328938044073345893411095700462365290351978585165094678696159972654631490650212085173153087232952540137179048719986693772259698919565260187453877821175638918622327012851303974317538188146829976463938080400288629170536475887828897306420184475879539650405694011308155080133022708916172712394013661835746623017874975777740768330089102836836623875302245164101957510734994798116161255629303478552287348808598948493208856517948909690435431796434280283320841188257645156845806004054836037256638146649637438478839176124084035394490607804379044170157279130585112208543626956329602182869478402846275234802588372019082789214204100809143706161620049493196616701660595591403211592722132662683087762353796938728342761064073492764529720869178081170207904082345685800673705539294483975963853388198127234575355445787668140016383828999931901639828432932483460312348732361180444317650585420544436711793418158018616956549078863344683672356919876559528895975076244112396487438168356924855111206939651359198048715735411954074901808687124767968335087923157390506084093688631125451370011584032721383216302198682084032647395726513316783549113760154552877232860629774720606124658030330695781066721590348795834559482882226137383803006765643789760719741446538542540830860119661239697660338620009834598665600225051924961300284404661319307598526428352925292053170706625365153377290664007068673709006209745155360901072706429437056709581878178848561979138673385290908015814997336299293323890535431654594876597252459946759874349204636731799556502185323635989540312849691092527554259716004235692828321503915606166429588974419926443596621650706685172096677409729344020762654096178817315739283985787257532232088352046749594451504650058152500868836173233367537162600529235381118502365028600726011902081414804672482206987221856173839485793690767666080885859899921510135269880968916447014976643121601606754497604511003176118247301752860763223862434281019140859201399345439022153698131787436699131597296036815159480485836623735381366258778261056986604811633013940125629639435904491240261426513146118069309789506905296893684619132719012166809356523062983433979593569570701468995970002314419303874965073952716129536844129441059770089776699956043835117707657845182293960223146120553158502938193644092234043828734308021936816589636500876608546368303781146062446674212940242873414458037273773266180425088196945456269146210330391501674015680806100055581236363779511158041022900565807979690889657523063469741531276341710237591201000116527990361822938413902963903641662618138236439898627870677559339466399989783052169645617212768066409504498771597188689526477391021691533272475464913778803239326053734254548993293177340316690533456813165407499004558696097116416094347738658021577148651574719403182971817076683589286816767518432781303118453192403108949649344194050751390106127929298469037114928690486982764640564537000196055177015358566381320338476023450379187530165328395935687017298900205380419136031568296085041307366657319202128508658594658279836296447529406924033268814132025119066817459657071106282355222595887633882363391746442093670530487206058865698658960951058619851909643974719778736423123797475802806891419981718840644014611102958848237772578916504547880873319481155386829116573581179780779224240298122739577600201047300483040090004103075932043991904413584021102715131979526331647918113262246124122517826202841049306606224340766260145423475013501337708225239273332851329762923862867110872545099057694384787003817551879653380604119848814174489438866357222549147841074283379392003352613520578854660180704123246264787141158155632309377336004412265595647011360236519609586875666302013486114309620402967090536778685471211841410305668548890487218458696199147355266603749712223667969969880151961762655263299889446187586146218678114996726900902169087279051417866836258522960735146121767441802124844655184501430230875548828352748048735893240812943119538416658047706272076811386675080808976946646472140644364190866273585908504618996183495692930646222508622169904631888935154946174923449521271458666973716252845489235053436593761414835084055879285732920042213519318194331251803044471798370305838453530932403391828416391564443036409792653308307698640938732190562240844254186602809390322946134478265437262692880818871157536063822713003096326299313938419576849182913875940441502674234904925456177006922373073765683017464399579828931937289238203051079565281245010744208377753556540769940765498406730942578733480901026664257444598948349393177235614682487856792352277949406943674593202068324172501580512242946415717302283031935574366213751233364622260368946150924750636266154603380513328685871038670678780072188959510609011346373177489163763037211418992700058704954939231953291640504701501561848459597140668280384274836496859636193356699824096214922230656242205649482220994847184470572107512701795281797540767830911290856543401165939923719887723763235424856149099387271394632645546412359432669553418102753987091718907257666842862601051170781200529736862414982187614441596662196627196417255511378666405990754150267071394827215128326136843167411676342062898858888504123895556968521706373336356765232966132415540926281977013194747809496701448838238507306912906519443627013436580118362437852898784902844577928903893250644887990931702941188115155344652811854134460127593389137972026738552327346673430561170317360386018005672543075603562400211335692030893978660554349172295256737927871989568362569946903337316133353759727208022784632848074007259201717151913887976869381167100887603386655439595416112605983555716302850498301921890715292493228927956701249865896247341956050037332366083573628437028677171770586355075606740757913712982485118100365409618835719741491293401865682572336585633064489149544840224346312993304090439463678707010216741593439912431843345374914960146896166344003216198621329726211755472613477099948051624443197256634523186066902467811482047224577549143236372477367679445931260462457972978926522724151384436906080577488883284309366037258678252911043331092305662447846206990599708321021439299979538358847687941660616369705725607231670125929800486272897164679070778325275585164702564281697394112036519635439448498168185195490092837350752995607854381999298674584289644126063436387570108518683217015080575256653523730389782806566384934841704486718016869923209727456125054769618197287634619577208996834007773200237061303819666772913628770547465353617050806788269160407154253813616828337342248050928592463801157471348581983904888657014291969842096351504747458716747987711461389865478446309745683896542963959993094222677946941167783054987306689552752305440392370423947935726089417147259035324835645110002168238166505332262714434963157418176037845854764830269661126206362870209053522990144360403508311773051177918039836788658539814951881394294878491759251233823297651839023387910438697560287336765649859548865622023818803415477200500420683415538655631170787229269010634697441589933471312970636981998101852057831870855983426344200615675921760853808424371347830440897572078944966396353259805706159912276448655581345381890156109564880269657268521443131287040763881754996764771763793970818512842659678446268825006181760292671560858133451403064015675977771117794020827584831658206160039078900679241255146523579328609331064249411375251378672819149898656038302748641017548538776673708442557673318724445090115743038363628112612078816230504918990777556156832059166153111771302014686401511876173417083309825175635243229275208441602337200185263056806556359078006507625220215057458460142825742870852737343749978692835967509298581752923177886767419060855339216943481177361396168758906458904441027898628982081720381938778083728362703303788334633745709884365542007835964087481142827884153482084904200630184468161803924934147284276470159108987270885083646960756540474737443422305214683371949421442510924243155000213838972314343044108619366933043497969756157447492250167108703243601648088167305586886859545635063537272243783278444961557391961776576033221966363738821710246156443650792747174992380312245924883514614115197272783688728837531321702548717951611324264005336142187966338114316116412808220478079849263373710622905549437248332858397368378534898190719586706990551334160316184317712709072638374563914991069173394573534020585664453312522943279315326480675637807368098149470980944692216968817620104455139541525559255644028031485498930249251475445739505217863469225089570550461017636973767374380340128408692119772730172477411482943141390445420705880568300786398571586300499519641083488994056544166903167479701825851271259326772132531231560040788934600787800517253076019838270753931412554564653990842789329536927036190118184379951735693606267911018535517529263760904267078359882005185740139625701362899540699603076787934069140167265318522954292367749219853084656679938559112014779489672546884309734518768023349787938705415186358451906896975954434027192563321913359842241657070237402859743801222363067368680508924920279384321354016712135925351400552856103215829380852243114083510598511560918812205109418624962052180912568058372738408903164497258319882486771247876882982510487929652047559272270256166080380002343014593842338154008141692617706252477020459814665867408562211590705064555918193374239044500441333202751552278674535738076040086206408239376037153629674192895973091437453063396506626410853845125288000770133502495099748432383194831875058773872164769757190422215871413121946904872810135696495947254952809743230188617883603559863309812557784835246074864281028731580229756650586312536202702181165769453964480531553147256566233512664418345070227630489089400599189185567778376875112468133972172740893012870715969655382310320415666812544081228336324998465051833956132940747387987803718169258002300041583288152267980914719711618940646112163959166400476271619303516935997933364282959456673969659035832931722866246262407534289182224199074239695274558361550311515268771288290011551331761602955257095141441549990457927100845466087887299027317435119560310627797014194840813297814922003443462355533250736898528728064357552182357684797624165598899530745927424116552824979360732536263658816000599847170392448251302370548604922345523407774446581980584858170578438519420901086257941764696033123291163725234976482731815535176413834820901837021033467919287747200301259660156419248403345967524579479743606788663783570739399776418643850585312004852324547265237459402562094398858215646381585282077559257828754105032554421638722014820835833010255195939869603215841048104370785275587929328881831953609820862116095015595583056508898463684314975549797395826045892138420944351950681978521782861294751588636075384062692270948938413628836020678645625678575585536798248375152942665999543213031365073608982199428574199002472002327133376722946104362987384118456337418335835144598813273346426239281408864672296816839354965376555744184571995340158358736925327220227491758024953899134785252752614521676378675404873110819212532604070066311204830381270463081501619777825811442220430575303751379631155657753505849553278074448564958925861597112499054327541574100706716142583139850455638689648741971309198323225353125814895183552152010782540693391500601349838934809311922273577402537997986480996875685421793102207841640793455488237648410185908611716773829777854897259943938406474958880133959017484931113735775508201408258363635354080278094753163600233790068858250259620357126144767530520628465909955574986541845056267406324055606759187006774558916889975725068235976523260405819841781084595862534847461117667597200030868964431155745046750138595306744447271451471537807490517480711572189599163659692956518230244612374125610988559374581890206139456519634811187839475126547138822540394830969381561814385993865435433818725556433400262626227782915060723441089176920029558926478701512693850926058593968879849703716081118843221949851635212015180145587855936861680094288678619855414963977112671721259158597095522275997007180291231397879433460913311617209773467446743433156108720456496135166199803907116648173883945246198542653925229452438100756188191295283368036580403738062714110559268262545537032035745753232588750604463294727633809838073231667338380766864874384450677650142298777164466624633992047453618196905599278922521432703749100525545284438634418446506410369163678010768613795865903406588035831395975967088752990519204332599545906289800521657110328934022056989279201162922813312355408652979302900703389299352330725631661868748415225435113121316833969535629202451142588969277644806847788183318297589005642219397155815833112733361190616096279442930532339042210241363613696284660045277887493884584174190981079852716713185123200861297878186025683731572422879333749842467934694630853040623317266787860780670226023857079470662491252388532874301951011365957327953423697303046039410899689288799574128770309997032434162727893353029645404919041907947485889637700860799845844769958375392784215999514465301696891835183150005948784022762887239431758413327154976462733631836477281611796454494311017547277022642677463619731399104108825023129719842814654067734026767196414253869452992154695551653101719687639324073201808859238333625027916692168410193443881659460830125686678266010467897020915724182189280987587274740989355871295714652397861173812405692121349100269699277654337702311329680309531405294607786332711115817462263889436064912168256152568091088533046771361614231342913390962183920810911639609535020171365714659528119273895258996695223112391840916397001402504040475123537996940789979213876142272115910650011001975143153708269973949823764927058486601060375922117622607061381563231127492236522537155391983223046229738863043797505853349683809135514230990300345281721258361616932994421881429889750631316218182895345400178838189416606845115770805985356003844553902794015811862754905170212667860978907868146728161600339046047483863946795702058177515573569293657683554888503748978829204832064654736398004459438691616834312742207994105386447378249572750975398475355996837999245714874558691755757938175704671799599044431558310542153671595663360074792558003991867194555314205594993503171807295246158223587091979986472183821292217236843465598937162439683571516569662951862340187800814060474774478773948330933313970432134673917097037233451380861613583758323454403349134743728455516770658002586262235553805144580512215490192313926300795294634038255452325713903961395796277575760359183112865648385791366145981985303612255798268224845209779891189030782508138216022627123498079946608732571393586900205305831675280903546418123177729744872892684090794518828630729046736254793130878677409944514645029527680589719227568854282761787557273233592585306254559608688694306847671270695530504088934996560008992085111398951736427241249913505207584137209705814255290540485526753763211224749549211028148340356132101213202307566527481209584843316927182009417390363938818969096636639651705210198694501595527767490225088162509952677776492856081205470638177902914788743517139034763211321501623186459079940476040737517441768763870794733054497657383577316249005694917646208299539537924123187898960312204351395957595691816067738532506593423674274089932561743029610994992910087735491921653580456116286352245072137262460950815878421233988687306957621906532853005581871983453494704292218831356356603516470979798143642112285385218729290435844241879139231616188677900456674182278207855349500060034661012479695024790424774131218730090899702449749429837235468364376839728317991284244823400749562910126652210215473670929225514959367148234067171353207821089275006222612689036189446256887201951772345805611496990917487995821796255335649861025056245718096146868680102852483235975296650504978188033929137036947025027611992588212664882652344197745050518863253963831180916320003564931632523202717557547289696059065129269149195277053696555540634684519919493584817896589391806462390874443269815451269338624867247235202426736103657087987570015323650360216192517721448477928993713355335997926778278020779492345134868716450243636632058828817815799340342465644807945940611922217204846713205622401083440442089314167615906266511968340119799843325828411301768743203420012471408067564284708957001812839161936587385066104483110662522243682358995874679065932834227118801904976381341069891438367409802549942569321169953649065211955134777086504896000619256740612831829913894105916516698342469466496598167696082545004104201107435645737788010440063958268879549643601824378179135865901418629279743904887824269589314250019649759759573310400244153089350522368137542555004137010140386502429402922720086914077201254714726916854521977800554364420451170084454179134166102747408772799609309796913304950820711407221582967465049407753690883827917875912706007280766035122980491517787731582038016864633863560025478770359411020473852447374960411844186192103227332837980311591761242866965545899971219805723688486581085997471817972916238887578279310437440347458703384677555830630670610827775630370229997017956171760966279080053808514748981184745654679005303032044169173440153885101339274235973525753680244140508732228587417466299170198002850161299768025962189539089285477223000638693342839084982281502114881591961797761589127033196445111413869236526599314090435655528741185575654059336314602437183604423074035745767371030556521516197653723591010988500778776127673155376651325123102480457001737289816320912498224306317455775294924285311363744737154709739861004312393815768595515897096876338242644144410082480892685467159027206696098591041645205675142698193986991842997396113897009861845098199346882495494357107184362805043695491323529932671929821542594241465070743574089091473136871220982758948467943819747577680806865185914516409908487229828916716966576143771894355164039179584686492610244441557484797553629724586889473079602066172376740116799469236320162549913812165561171749771870203442635173691031242565635256810854960751464689969695413814605035300561884415925732885217889834922464240084822960069012502804447834253714274979659684323400278259400780932567775801264007506734963866605283458374675337968247679314128899470039278425570209263277826883092991677439109536987881148011065492803203207563775017743376450676961955940040132312013822070924093401448296242705812306716146856281651083808582859211498875728848556801872971324968144513207030096213443735015704441296441020677655353920821622620587711323013612192019323088777319745995336684798432165421713575900220509679874465520146144632053069046097155153580780324767196986364388867108371732120790748857233376737463917271227597562710523690184474951018069945310583752434412602779128408149742482523589742450477527540966284431864181785974867407107797014008731854925177414701518045776909207910960534329903176947941721691288687651399525714888337388852617219865610115146246121138292467748880727562433545073296155322117896248906113751322723095605855150128195461174551063580533573705059567282516559476533406829128150288134739400951888367036663754190658784992328098241874463458606733357087821401494533044026513083059584179253229132921156715135425084703112545464389561942824607434229439103301531299361569149209796402337007039423625539991113233186258420334031499830820679891246043548904549047773106838388728743685208909323735554074678440295305948763643694176367528006648592924877666494670321553423652549969596654268051783172298118334073292369023970662467456779121825367955490378666796260136560643420857818904746709426644004594250445593045337273618585507594808496068267796122242545987871348296397864732920435716001424748327005110019773902727777283042209361276977915249404940425484525437772144935781208381080454898236630935591036246445704189949391423339700674390286883459924557661599284755268015874921840668828791248327407027027298116102358498185375635174284716768753967514155477690020860278168359459133704278500505003182542512848621387044649951534946834564085729484202082699484210575762887592023200972170092707199453174021517422146273651828483772816781529056505464414070708239953519169648954303620871566332613769817083423015169478178876711450442204279679616823429340427524983027520418447141738137673347506793398926515111735531453445932507581757753603873281142860236330339923535383462752464680523244143309965626171915146623294878693482870107023143246953126382135981199519782699067777631499620634179198423527743378820729579763765429367741137715565247178498418020408308317738063337649960086075857870886237415662168936557355623530940741986329160459223327495480719111427126432822934768526545120024812883918051566571340112694505037340752047541108411979465354516208043861600674840503653730424816875223336873383551963393716914620634232860438430518559931574287463484123487556052789883095844472742606029327040347504771800415220236742941254504350177494866016367664887509219597167674631972734896246907940664945560648254634875769408755879201035294860738999919175193349998077615421875508626723084760040038503171741918482201505509036209281221982867882460000116388071984233251551139323591706492762765288352332175255468603383983507037519738737408914419413467924532303610267107372166262955903649888089434657235156407562582142245535595433929580058677237633038223911313329919426425097332950044822807292888456667556490660952216224637922876479465435673257812480003007463666952041913440275119911060635863591838212974846767953249328388316959077386435011971862303303309974041773855472318528245869086201510314489418946027611341459862074030719612668504775026166865945875303455223791960938313939726200175605256651331069105889252343914288525710940885021503744398674062051412592778994613421869293543314460057772407191662820568943744064814625669687886612398994068840874600141508984520943775244505529829419242851065142864702051437145005731821618340447380422274579819897504351691525752533006314729987873593125156983616711893713603618651099454262967264341188726540516202072514730880376959059468523177884063109707950768732352943747806005727784568449755998726559942222267831900652819927025932115806261179731079015892806933037478609059561182939181281719962812314411221289118686498207954380641315459944203347572976752515516541914672878306419435683746531211278785229860185850868833639308806780158611449024830042018458424554080632253006056033673874846313463903016964139198428789322026205672479671838491160866322505651158296630814527027449224769801764815134692569609319357146777848882804473604546107434995229473084914058411932041792875443916560558495288178375914486399321329462932305831564448186829572506288636829049071554629921134594651850530600986782396609606391202481310382128595950459544899066270998183483549218241852879195580410016362591401426877008012784474874644827275520688042668955824296073154815064384639634053921078821892073109911459954352309515022777303739082970632082830376139875764241148339606377053365922656579754015229409001338421038696818420941202029315216732735045217006247343078036998662843064348288720951095254118450590774050896058091041775803957846358131867229459404190438439095240666084058388311731346998202913981969205192164655760417110447929880963182947675485178957329679245683344519631962377582214144982899559536025619511976228246019595967992434302958562419050506864545018387217568432993390535688604805227885815420924987169777900961813958045216061138567685081502317994625338625656193132254470305827939541817699343267068115472423613396779801344840801815555197121022306430635829449319233809011167061385606704654167383681555600143366519376071681221943911323419067449739044065650261735403710524182398184987769649064816514637131976675465669951985884977982399918114959023702017526400616168494308364821979887703554018918534008002780666507942105629870531641033742754575138588642132381935783298924828254616825202457860917744312510160102905608091176188345807337721756686209518718007184459939649599197118187379657490034991021415640963985289707409864087670391841941650030681541994550447155370123071701387706844706418108349541941475026810028722622810904584567437971920067755276016508547631896178621669436306311297624839508427174986557075947632530157709815551700172244395960155945303070862928840076698781333143068950063681113269226116771658608460216396072487287401686533588434385103453938701571433244746164454866768040854996565122054458232323882294083409009451945754341087076863686617210407843000142814378281490203423726006869317700975158369354433338897988461916866017099907237674589164183820955609207975315830061984556580329196264485536045049398408478572752397231482938795874714396355025700365920794909081280697846855870777279848691827367810142215901273876554377877441084619853540427055106658250839182197766072491607164075943355478835252153244147048129411631896173855237986564600851924117397401264890326080834284821045430812168224088164320619560808888798079148983729573084244281184355251604509468667330753581962256125502988843202896041741565453296168280085973919289927248605790772825933563705403781056600281377685990653192483535313831137397495202745512291520709232103805032781049373813413956732868902763951035113071125206484720527260849060208951871204343879902930517002909670692054443582066047848261867001414049743617769478276783611890420764108788211778639118741893783045282052135778228568551679151806969408710945016773278773576006547326523343630853800144642624364083029856691003301692712743639663717461394536514156422688072539586505396493092250888978354539112812613697781816326509287602363614576103880903364873109060120096697591015806723297157064240486170867720434517197357793483556373493888412949284559669837540615545626535513655258985172032195561898650649590280269145710696627096191320007434650736496902710780245718207112251688403686985444855303832346793898437241099031290332266463345225299691954534871588944144250972622429831761531352547745898116859554648779624064767843966337989401848878202275903848956624261656571598183250191331606935163005823750708092899751195546028715070179875866871242810161031121032630208702702521445275611688850201374646672516973083852179267468041800588536846735835347972449051381399990688315728393137669363374536088296937145999617363411464880424029233901811609120270387971630836316901621167354639828131010785248890289141065387136229548222631547955205934652793731966672108069582734638012866049728637705010295357856254932205709640340466185824880149426740613283413448763171673024880144192782757121283340621671776091497106773645787801533199090047719311825090807393911446700358974216432390711165248257460842255469919574807985029647902532447481213532313980918729203939801350147415991125504428411186274284461281560570831077595984487414226006261303514362821548513625636516216977560471060196235644604714122771220978353887217665565914473726085141672018829699206746040639217638456547588698370992430912200190916049427916468251650905151957456184062198270046300660947734243540237646195499642554715232164389829651951340435267014711525963854069423649084220819280800527896591826083594957360685754596030603315075456476241216451813405102493765159381023321594089764815932291826651479849021321511473431924676343622977418085653896008015550837182815671083510860478066514494492193579697140931009307690163169866170310388847915959166146658429703101414486656933554890712488191898821433002334666515549051252730134251364099237553555089668284692584563322519948432916416547793713845390771883836475905847810298373665225250167138674108057439532077321707862151710175655577911503111166219120449428637767414698403724181649460095304912893974868862926135730620654944314300314220721250921602388409421148650017769989658848321389195993246161929097184589852185158244203016009673114246528259590440177079923287002080868388037678394832126079945700787901255235886674372715686963534524368826454832392044922171469842991765550821265608280909034033847440375045271109540107059073271588449726673735899100463794860432495016021972111233562972776698132150012420774804437347764793916999133778219137769612277936710782798325453482912406915359319039903985623301975964160293056894665276475926581703971064725970652731512950300629338168662398487395264820838389955058669153054857667884010802991293767157607498261360016932729167522999277631079423314453375720994282992060466182441324868826393206017785097471465252976171819262217413954736395150750876057159533162232202967612878578757119967802982265414907924100110748056014847176245607324524186763687229950864844690688684571258418149103974679187876339551926493361869214973499903156305291504622383479938045767523606774010685047274308655266222335581739999731974182711998619797155537749831893304932924004657298039210560128969080678596100935015294661633828300075834869946653078832448366415722190790754839070468852823695391823317352981580723316011348002486654445666328274895794077037776751873475977103783680196429783779363957770645776722230861146138788968465698311038852811286693596214435539636742599510487879056627110107931453140843783308112106920573078078534843435662646335629246214086903597614906035611229354364708604449579274891256164925556601175172033765250347149798058180941184896691192530603436472067973668104486637013817321333681142785932026272300837679883065312766132711941061681781278810799616365551004676909103728190905565334365556775600143111148734787746820965554528961739357758374553303844084703562010373184340194923869335995784988737695227014984694513672930780682570143353215340548713370467206203653531910911786416240799291449984833504985678748497777445504238602354521237368735232475095481591661042419752704673960688410715414608215020851358848654560405506330337975059096034597847618113526140346899212693596564140128925401556572053905519297893530012385988284432996332360008939214045990874846306441402759677142620142257163531955700635219304830212923560351510689651751330067264942704381327779335383613386717312207997740110810916436873477947499710214803356220949598288742921047485972940421771638208788339781253815546506773061176447159947039034332353683709004205112350135180284437031168641215221841628172909001852677105844612167034729159226654904489908232796394816922136966657324870760132856408915109466348848975609401579141785517603894900539484841864945041775302413485767664718860831331449652721553020554337752380889009862826249564039035241467111079889668388396047932030506340036080077276058011499820771791529415001063344067223347878197212496210409206250559160656487953396005127318742654770120921469053208746632162100684604194535459789187255592593499952457763588735097983705361146266329461275771059778139370182745475576618368521111968153724138627851188890323639031210930242844836977274199432389714000948521297288356947713357812164226304698650279180036945039704502612121146587712760419227881717844761769246094967077902548387910195496659570426625881986780102661678380913504967975297933456225747252633587717099948992302152597777787943028579864700998303258605772392703110397247389370922332946371580699126750424780906163414731611478667087049576012304231565441681612170823372470260093441186115473344013963321430017935837425032872165943423510129681537038469586096738428091026820578801006891087960918098297176558426660438196696777309833399000126668033379278156791628060003506732390837490935942669175686332659541961877238929446076617890353899476313002658643423429806838826066960006204454126632171077646954704949705266649599006634680728636550582511853027948206043580002573775314775661285277995789992177211114454157053477721865137130003715619633039652183827586002359557115804642680004641382448608903220807947249548375122618544399782975964725005883681128190945346574884423165745834603197833425997861389295036230999640538105170422678694728952602253900237149301939070020117055339978149647028204443371313779614844707407042929143408634673326900367151232895419543750454115404972632427889528307431189924895165517836627889997819904443923122271179846081941248520819348086633902079032549568499255991577890377330426443197366599855231528392335817180737144878009911389271659778549016296600518944491051943787530043287492130367183272845417565484943237176339495784707506517504679233856592078360570007432449891431680499347914136905859938804745999365137140436944389770675510146333899873129153155784354124212769179531574643415746713454414235287539475991197784112178604722353569716449655250067791597878441389625283643361163048400701985466576930423329474123111657810580467898312306070467412857625866052206351432433631230219957109675759559670453051183250642839109170897109695675552735159788340940080301868052630664919811513785857111233569877313030411825552902096710754562921910023978138655895175733706603442867629193920233428692388466266546946320415790785032495125467761989034989233844190749214999861927333021593411970073330576625574823478597453716571065351788293193761388829848739126110490964938267153934941449554221375339485857928291871384639272287157353632212656651183112706483099436707662257748390189910227515298433271758745316124071960652524560176324406642797152592236374832693310517914663752131591266868778339560304064648178327574602085469045262755946081133105758980308413986608958626658298160260229932827199667128541179107224268982752867666483045962879091440089129682493124855424831328452377294034280207910341297403431961146369792735597878254174055815062578352583989333882815481767387824635611998073382527373150481288717772656350806616058408448436696672012201405713303535227255338468035330796668803974122270693124201273628973022343198159466113912820882062914739970873065920226708697618581915320253289036577873491366013005401651970588153115825456748877945733216493875946234951208975313509573721956235340045211777204010798722902613760354296865538072013912698868566372019532825491074776151667041494155730343299857259367827656453617810693440176561424435622061144574035265631397282064937150255926914448069769754829986910730485463257675691186101149314249921928134571389350757920829183037985931642195033464723257877402622425394583388960995331794078608545855153247216730623048061954932210674404204212069056767901457997257970817412041251803273176987531969518608019587847831306032745353182704506912341337240924232201676972007385052642922739285148002858578824395131014502671118540526271631841137236735780490197807126317771021214870096641045894585781402317767412417673139786482344339229125429969671626693767630000996625725766834255899179234288415106103651887300810229365181390943812985283993248549966339883401893291693940686566365138909493636810259923204228091248353918665309594751253537005341704422012432880629509324654141850108634041503171274344701891254856913819852546049334716214765589217688722250447482658268639513880175134562382752913267928790296753990390212189659898213211151163350088429120425069084041412825043388574553521267919949057930160730130057007157260965906029617587915770843286977292271858918769929530494899086230821171740430629036787929904210017861549091548934566252209192979829436274672553440924647788510518770138939670116421040552846441162013666600104494975128534005263946728688694790332916619704315973514679275149314771989479841252489604722472358626288474031472785533914074462884157206371320248127198740397224935399427218134665374511765961235209163070926247362803791703283632994464308551655870186332534817759753254019778586603381833663068691164642640443758625442846030971318562767452242143737619673319425469634569536199053285631013801197027380762793926180120300487753779110095180556905294763570287407102146246260366246889748579691482097519084978048891560236240650874019936689070702754526967542669185446751177825756869560507338286544559628633372020607921536522409308410972747157688658109849448140754656806703818864885241928009508054492414187648110423546662694562148112827834396885916124608685465063377973525484610908191955873894378650184536453368774559094604730131050450555825227307185871213776586640373708115121674828463866156236391667805804952116452796442250032726151887541281192159060149261275970033998946046307355350572790152823958890215197886314789943587674135507988224903149966456402559072730069099375827349174781007367795042758958089311546111891429998544717920772676570967543534347454044642838279914326430785693348435049602581111815111065527226249622527659701949478504241156588905408637357108645206258172248882477203249587190425808505195801722705063526971126989590625734249624219338024056306586395398007398550601852783187285012394443723088747971418634210635830255549941082178976690357654541832538482911623023920066221627541697276209380258045143597373040558384991897722499704009629061732000112933202731105547883270398101316383896797150225300515295760475064029878847707559091097516187446455547747446800013931513009632939840151457053286268137651701196361744164263045301434360161209809526541570135162846151544780695930009390109229521240692191869828536079253401329988394419623113240566156275785276277993893049164655348668751170195199687253522801769584280400734432826659313494900442002517050312739749194505718246224483572166892157159057393040407728500302873954962616713143864943597958538435152402042137436718124716694122061026317425402089146869601820983519051270044926124231673440473918246990971480935113649674546568154517106521096992589118845469985530547914687703769632498647066339923113434337400569755372423705781140827799889371119420063642612718156477312983739363581842398803104330397605492398361921075735104267767029127546634341609592795261282211803133010337238771243381417589160393949708864410263222670097326923354981671583430617831697911243211816587415156878879895637053678861458056525707613180331600810224774912874356889588569971196257211203989349028221569934729935566401401234236363956989359927142383669612057530582512434023011933654036523723303746721715342276223212558496372368977736396935398231313450485934748361541168168027845560870889211531037751921814929830656673085349916549186224885505996596045243670406005957395933632546784438466076158828231381245192568606469755116639522704186332986808359667559175298947008954121837504864005281694897931105660567594308255236266294801753034069784096901933927500988069869084662227895093404961796221624644551060593269406419745166203175170284575053947077410567453144260338982480180832757151766337678047114695963842206561478116614190905036726395058802736636424614198378974580193328116941834636791729954692117167622149156436035339568594024397823553148153537218086840650399221951373626479230629151491180179412320722804599794790113679253279781684395381815055180543815153282616101971657084650259062127009150471213402752624075678057045732625335588250296599748452976533632449221988077622055835566997699630278634775950512954844409163013751802126052985998922206170821475280347734727226651121765658511206652125051791036955930629693665608440614531921352322893483677346026546584248588278616075796693790946497546550094131434384549069200860515626096487830364076359613755383796871860885427143359654281671327398741707021269050073425052943227198615670972179143169517269864881173557387781496153305435239151007753769719289525103175040659611419379866519259830193814062761824432049496992261609527380442071815689961198537031060149628498625722706097867744058611619764661924821857573955275537448790454740693569780143946566391118539692296295424570470964084126872862268529717642875218222888169803617222155759115458433555675575391913781319596356350609165290219206330566434450043186004233580899357927091923245052044874752962182165141338878607723101914126907442028667529757925813409285964854467000359816307763593325118268983544530780103552548840831317351113370815223333509209748025988785691016547148499158699818616050394982725299831010619028630131030482140687901982733804001585789096520057857849928089394732653995132259313652916978207326337347137523492265493878944535450878097591936454541894949241201782621471351071705940585693463590119759113190304831863908437500979926682993152854842071304514731549007541767877290131387665350901804246089514752109134988435596620098707468547584602599991725381335197602775329073884593266019671805680995043248492705048574369329485967444795769274444877672138660330199250971695581399466482696061687266408043413181446083187706820667700107036093283807894534976199242380319071399846307596400765074544031819078486337806929413263546179628853216956081228734755919028695057661608446239711961898897524918178358110369060054692281354783936936290968636574651499161043846875423902411539442657796413903426805471024595686119940959768956089431392112844800969515679377091976271660391459098642378106367424078347992599278192216100153121878726905596716089845499914127374104732526094311077675821889094097604068561114195338463820757716510342796914367067520917905053996415933271369446975588142532898442134269777314615571467697501566361740395480902210249270215182190455529941561133116741644780938228387872021131918475988320694728383684529448234807757424920070692680812978466158760417824985181374350575891250870174971300776354330091334857597098384606245059870726122254623089178471027399497847661893967101665491790099168428433177336239431418693266349717209219932073394574207490646044112296189400950541306516097307523075578874701590714448676813804949216907893399565521084295402797744828477100951014893322319843975217354191225871937838462808286474806597355068067243469281792685539722584167722036602878077938677480150107453129492130315763458224759665901410485067705262212015827174663371883568804922030507085546303928540825746889563339631596798707854565827701313799167525122024602968203408969987505164682077054685354610579213847651251498322952583034991214084749321935881376829198303818534967890749907516369882579996257110461518121293449683328439420056562836494923901351956131448371603505088177784090179824546052782340378299805935100429444215680148570710425601681206623310413279082748597486977839754903215129961233888849139224650741937760218011233698554332178288687424213874692570174019485994949429293115219359354771364003751473683758818333271235368603300155899042753616486737431094422041909407314261300296970365619840857738450297996448056121051540098903374357571356699101424548595141010617573783452076120192695907633278517668278435430971463336595777932198231485782746992466509252305839439110636125150467740850360824994368993882050132258049635573342098786649864209936199446687825978414058227812069165484821599425045202746813219835377290155430204072737254729910427015564043046228312903728013695848232296512315560760695774982885063514351466026117912433302473558684393727088618720985501970770477523360166162163136547732806656531407372044423414144797070184706432551021734873556623712625495682848942802676434257336340325748365425436238454164573109200916479782745603384671750528728555601028521533073491634020342536219824472287064407809155135957754177215242268915744512719688905111898200349294486305613556910370983625807250007206981194676425957573322817407308236246360306373588236321528480695335133397353821338729558920063977763382358788864778315694165935427863145870929847200424080345121713564598350573603838587494424844264784072923275420879309800807185061224516435382750819086724763281506221846172826659934509292655145161465040631014289351175663098466108855529905338475265981815933594479424136476159470821823152929966793560611523764914532581961742394771073565425988048635373073054830581854003691464126913892501768963951788644215414095932161017489509566361595320306241636515030487033681101528201015337682115169718286490888859682154661180772750825058386195570985340935576877948336061148610507269715972318193093527166838134777302288124985404404111375702473958356428061229099910342928558361063860071034513223549526810446431293827272901373867520389946393478246583269146867787208652155690019677611352923764360564464137345013044448774126725906659008192024415414707416028758438541298619832251712460938728717591885030365707057724574417915324773642024615594433477752180037296203514761223096474627840214824933733127801013829693998149499349973037070565706876139148774620388548056953250825280856986480913121492113864483242654119296668699685981988050761458932100560018856589242760304546130643949600724775320573444425911825542739655384517858490335333161610710662556182470604183802450649949825595243011396608004117862958107463778134975506608149002294888295212518059177933900293709880252090282927830710851565763809232833027748103521369245863838261129683621372815153192802365310865303018751763382677344074297198793348855327312002302912770224190032642682782328708258510033257410618977141111045950799589437282092927643694339722635779539818096407636694327902118876940802107345858167040769665934501073789490883027414130314614268167954803288976351123633315954562536164403335983776912545379473239340703677988266038916970469808621068078210320618720519676716106318319155889906418666520845346684534369774870510655191442584346475766112930428567543135181021854410874326979450550417845764109245998594498816562807461149960206618821468713556836866408482688151843239890003401783350889939784516658722874120489063363230592168712465510998273987695387055621454883468651023526999893609465433905363517142882000424756927166605280751208103119803005336791162644851215584239936689154646297814108429169913195247126084462842203512750045170610537044271016362781811752263239573116572933962563567885732674322261275977560738795094441871304797474305976336176382767407829879239391214827334046877867359125535703236178564113181901707987192530400202036347676402532175474859853407892348471687117018278794146918926171256344775832914174184207156276856766107866731489848136267907936832261632209703106887612157324357574771795530947920458410955456416009950772862984327817263368986856597635832521685724051237007856367515851919373418189001988883326070334613463470170185282901318939078857627180758844760914349526736993763118185378055058122249259910560325385116571590338614080125321417186427442256711385031598070763413674505634297680512386470879440347082503230250939404101514004406713293851458489941280499070999152591889405238285790294136131502486801647502469984690245087592002332292729182811142943172436363180891381958721287492568089877850389060407751003881590114721045060955816952570325768655931012062418312704131388742230561608196684952535965658323679316015673711760167458453024740484941661871504470528266538285913615511773853143569639137275100704991112999395046693275059992084480344133017779845391429280137590360019557667630447402197977888783552291882073183002391917379638042756153287224254809937411030938907688152982334624846813143273186635976739202727577168227682466721807394657387723296538626539140459400865914904852819318064791997962305294256043796784314053212570984948513690532462096077215993762604181517704345135936668147928408690976360635938784474760566786771014011523086399352005477311825489527278249415198084918897390078041208874758584070104169097077736220605291848349503237486612152380012826825589193498954104196749631785105200643926451254807200391014549474247277334759635942346543571393083154826748470959929475649845876301845055238721622459446727369868664440857597137136072079905748268894715782125176494982450715305991871600372164697720800667643017747824996687936010247096128944590750225483961946632642313257714096211224452513495030874958294829284631203708192615359877814216742302845305771022391907402758016007082796932842204478191633883790840360620656021037210383643161871662243374308061240334812270742183687199825524142328490953637512004667450798469295120677317862674073877581915321082842822399674520822709680524408602036139147659945879400995371462823167563437668110136925775651267187547063055539497014617983794196332611619998258319483780822465831062689208682427803086062166811042029557331406187520763789799739704535431092831608968660699701595224757788712691293072536020285989469484814999637398996747103448870392476212293045437956598790840771630515568827380910016559907744394053178364192395192609344873361122793462891281222740561071787750070363004567217258633179338768942755197012951966353902862589107814537470676831017392270611690876923625433624487610309185861976039425823640142130656177358333050292190535282841175540233242997211146390813230839401744150056336994717828320549667752761443762088087820527813949540873590334446344574176245812386479759894435489655807824527333218027553091739156705085123587540744052818471618483981808588301976318679002871116994036984413377708737158128037855745667411601344385704345128581806820498905214316971179333099485121361979092185771730600928508955643756115999030410396704574564087328451475153420519080299977678124773415037402369288926318406311748925619133004499136111378955077046630668665259991677422590481177390194943088692466377900908915653440726867922491175987340335977783169953381365549747092772540142754001433033156302727186452068691400265279186175465611080812459740635864905510613498298658426428421359213918721980680556218197063532186322068734160513889472782808638379404734044181301739585276174451768480957040496245908671614807011739211482984536480968863984452065438395570478208793156734660893010523097201479948978503273825917873599107688495164632977008425392461237145847315288833833450938973885622720592493315846755252386412378768970762076584776417859709588966998750685563695786208105182381363541200893943935166293156349804689563387089210570957684018824262681842056224077083323516117950949089099838119647940585804119249326721471421164309934116233966241404964547289055574414875338419544919712063045910763918563437807360439219749369798830996892029393303175513618263835128904895972564691296417715713268234754106058913907891646120984356667767149731700680474134270563266998916112489790409225841339669795370044667384661793800136368898847345157226985773491907554087788623775327547921931581880416425185854013183565194676655667354063655101855249998641623382449493777993810512300126284578259199737727825580154152174893869752434126572570173614407629716094567882731200733569789316410597020822674313654910887438766192780942040125862555224592030771659890787109204104852272710728783253578066249020666801546151369157004695090070084398463568943444461210659124912056229285926707923493945344909579552054116871309185722002047965605513468728806623692766519100567075546214611528489646582560102650468324281578816202749066479088218431975475566900788047170441017283772573090648914542726768988634764109975412317498947834546126986709861955640344167180525841905817730398495462127895871537874481600127299460250710559372279708291211524680756128505730178511593645295357967839553860698194546723472674600402042289357686418334652332496570850864496008009954406448994335211664636519283020157295312596383618804737665934655300103821161307267223362630952133352256295549013541692487408737486000927101827316357026612187885474115408283169143271812504547082977549193628817583691126921195005270250162994554283024744691221066715757164679088828575759094384599201385600176075245203089727878591036322348723762355177264563790664673818702830988097983794539861072104137047550832992433303297793235624511749060384830177586321850909634326942330526771305406466493595292020136790470516921018038627163267615992365129060884605301008361960274560425155028962499643008663712481598600334757743074674651294335302022851179385479840194790148804759063550282670201657224340676660017566276150351511931086743512732666296810218304295013329408388909337182657993699662804451855700045011715097708709180176865463860182987974277196853275224585705513009941280301074986144639774109199239222102693299843490456025958464822247072871409763186676150417667675063678630106197749148701298152215715079053139705999401520435476668524947086392309435149931584401146411915517528360936393352027451272201324855391241880226205317857724675595230687680084770305877465721964528151163858903338672210913893210141763996759578748575766025866282207445025763726251128375803127013033422859333132946644566945449707821881720526462048472674220737297451242281186270231268538091630278775130531299428277065014616484987284524740421918253229481168806510100478838087351201357373571368268228671164941011361835781152591651230292947174268467607630748531818644302685145868807863832445083015182989480871613604668717330231920724699181396473468355243912857390356315303827463968161065898093860209032971932421083975762992784725116038138613214468768536113788548206660625729117457973560883491287272384238772276328268751065509794589855159410719139705465667750850644471751851637749032513349165071361717656636563595828497328365327937886305770055645577187245618402934844265245566914000572654811127802894418337363389664662059402183195211977601304876492383303868552995025559284176909905534374598452403782428893244566404928872964680486988221529956802942385811778234256861864264913499323879672369163253693364457743311912947404882057561404077004323749740136649074745548657977193292820980979916227096182429755608159520156283909457142173643644233874691397617132216143155847975452950048747401902916924941002738728880700274702286272981422490966186910316000468330302652374504540251902548414284736997173124232017064416563837624846972064452443701532682655351824149849263832829127089977467861678291771705382715828819090546409801516669732242583417777424147833757329119301187768491033130436289649016366033672378855660659853995862654281822970716453135099550090479204047920039677758139638513545671135735701808985278408021059658253599274635609626036688534261802609136267344936151642485038309913800796792254362759530678642730961974133245281003410959960120498224917546936774690794401505227038039496928944755520263155245592610555446103908699151832219762129734049392050215852379312481094321284079979065948469432389838306757719415156444899448167149615921227974786635825101721285761461170654570711068698094485453145700324530846943494129386632573996624908018764434214522867363476993726651182031329877309217986750277710039296509228474544691037790765133014469484584844592306747533415948826589099719436689638681973157917895869972821955870006479260198536296719788123738254753911539463921609097037820355533173687557197013491793985493885875103786472394523918038047920600220990153765856194649953827751906484978045177064418905024636969334525089901083472391623720817936888511048456325757611451247023892763579906983603279667249241663305999492773535235638332674920163984695888363918898650734088142270170327218851371686376398148611784353781696240470593921263540548198690492713379841247024761137772205439779520258438070653430801139732074667982961083384114146737554477313848150070347206538023494115163023396807430080464963950781825645948855692600726587793616124677770464415996060903354639129343066567867149525850592403262713849022455020660142596481211808153096760855212119517998773554468931258717497601702482359019523441608198175311418525331590725060447421359555878407322862527480684495929390997913259653381323974835093277619679674632354471893404328427398261808348717672816794486721446363742357545911887215989500217462191500045898658842249810608136724278143400243882096658263561348047969060227956593565664243943280839251564062751779056486593708856343163131656403620321572406604802187982614554638673388663383980309472943131150053453813085946905573446072750584034865100743702173326422265941618977414400752521435356023501033323592699622486297688052808277330606062856214731252296310493981330917002215958250180813620623154649159318080151656458226424329131284791203891372653880372152140293780981354866264944336831824294214207561043291045991582910039978091637439136981740951021247326028053603745369489077440064210066116271782404216076567034341632456712318023381036557284648103681691709824550353401697528680224125912207935811921477527389885202891433817119340236713989119319692143177670764146620479065056511774857670422365942831656726582309794064112108097722713157028065201374445018746870218839306333989723861585261356278812751070454381974546937524670056218650616627391239400531043320107729587111567870312305710240623324662830608055665173820089770636558465348703044002211094175709590522643948155696652666242205524762418184819151298884735149753978723550495205868765942508905311720644772118684647883885778683291629305278588745069929848372836161929075209176785067200814376507014212930146622216702646734128153345503703169895889246479388364162544818356800573848407153307506719842030073415731972098243914693001294670575228432589791561621654555873673704667152389023747773788095028019000293293982136645457177652592584609478677995671446014566971043077887588808001037822565965227540728072277110149775468473418844596154216538650072550960028918926314604618967857034069508145600073691165134084370490171760823719199780181971996625485553392034768088778942376798326508747921673431888090395735000578769286619388302044182344684412809679787551168564414188614678917852887245655351115062232194779304036089336061403718334248606890212359504674913101718792750292651585727569471595809540408889313345460208094617698029152852758445566736326173549513617428276874336831101260381838191777134738784251444904310150819039009577102512597929251594156592978722061011261927993332398138113588315766972776664266787728023555817998651440025306784735005800848335914830837971302239830104073416666218388357198195746243777148569776742797307639951114639038961955424207352010234310680024444398867020264657817289970516292059229719163405730436913280785526272941944739575957028841189392947399522426417198279260437200560288661428325178597933300657515592661636899960745455034898726003318539784361499116801397992240518949193801545527235330780240032187041757518463594148506198531546875295122336463529748829693144563094285659367015709088301673258369814577340674956321397716015567617280486250781692692141523318154002360351577275731464578560416524227007735378427843994150520910658846316084128182608282731811982893828538793947066500086510961729788258847786464338055580225561538957516718398583004943690078635979722135321683301185848664201923770303182641622610502069620946637864340295821097673606515052796820787303047702505429164877889317379350688717421606091915240084731096528464171064382019406915550769406850986917039193006892327923679233186143934771352430637342380607220321031246569637289317607167588966286826121150125098737844159864827324995408727984949057187101888582289306136640823943210847492927897588599014422507701881747494017670160223376535514138356485091684797640533904458116897060515422927007358280287832972109851569520277546811176017052320009189755919745578991755577168038740678404501043979131518745739750515129055093740740013480136089912103969526020203149419878259287364777176654193970334665722423959809459144642077369400834209215358991867969231725830336898675981496007011558907467942932595631207097544121934121516407092752112711304510810970141245849092830598651470575266898073616884903770094375369560073138431728780843731708916828519245889746615681949928846452232916382432839252793148299648394449790278834140870222542585089712494986106339059977434648871468508506328980294217431854437481758170290065955985183305373517030180803323597876064861040150354198068733480415069925603337882046926916359180994011082750952211596102112327261879499104759860928426680328549363488639802103475845913338574940405893883684801354897566177573702631092180479876795677941159636652330198211612602927505658889018713743577253283111861860633030799898902571667074109734081916376606897988113203485904371753290978676487148881221991698299941420921198234909813757698072681645505797120979947702883490886094185496160756995424867070659928590617947361323079320584159015498079800767924339632428542461396782015454018570341763975570819768545440592246076688651963138646248305225633292197245653581339558672102070988705357669132668379851401972851177021137676826971315636260597738683925634709306290531879633779932433653588512378417469347174415992523904333655288818470683224991520892941901854430580897313030597434260115596059571931647752126538700268059844016662503291291119288980997255028795173123689928863797908103697255409016189033031248685544193260402391955062534311288354762828014134258396968628216633026564310681000384510674957626016491402917145732782938020460944834900951159870032097886967124169158861753720096984573475118041782565835405135292095440035218005433496818820260398464963172849851749493165593745825064390001786659594660793885198419424303370176861434489356943758667368935806475343869001972344725497006892719055150355837967751822457596311255437243188262262951881664776275223380798174308208049359343835738538405982620306131277693264128811017711612426929333277443567085489622413585700973435625777622816862933202857265897487621104553697237845275265823521042223542008511058216733408527920298833484526525117940447026920840268160406762768719713976340121032044342040257921831649625589933918753255531733120637439413926721025813031298712377786305246456779649378019388731384748151082563480537862575687933387865034333255259253354007548503770385305888054236066189876049005379585778801898511695371104903130965823861415493924528528212532771500472822614608972486034506453116959481303102893901943116720622689421532760132209319125916766162327837597846097886325708676160906277841931268392470409222949158195634902449584956665000243019947396290998408941935349933867923512620553423664069105708192367943036650143128033393942548573918764881412393455530361833234247935001284038286232872959140431378335274296764177327326140815312668853981572873274548660885997467504691140384139713773053258056455835882170724307585360345692722514461337445714175962172527435592691903631016919969464397710455958826731902476203078872381512530608459265930068276662446694670629811445784614024708192217716017728878091179441725256407208691328026837077668118002274555535363438003642732635208576281353204939274708774342956031135250268844460639484028198171645602354494748636449567308602961611476304833558105229526067907160603094774680476494991154512876788205360775673344790279410969597162631398460020297678264985089623163757279239275672675556181139841375425811451455596525565942025629787720938492675419314126723262445130096842031439318554628785397413621199440120582063632007579614069122115738605351344167338691837416687813680107438082627301974085950045745495971458321882216728620973563420450735518779843069136571422467883433802236479875142191275318262701644989311809744728986898486342867207817282903878545194414961760430753033464878880181913332187036465231895600450258546334055098238575830702947008704711616904919848299278457848539040816442065055695090382489294322145102700525414811526075667021259518634546703859136579749050824654171368762001558729435287703034266714566818573958384935890252669217085056446114826862079330736561536882553871688671000907162541259700235197500946241826001493157337607061359794811854999372535824052344459624019881102282589264477406870171536266184076722083880612336123541845819666323483214497972435553708598848084826138552129191323695905772998814783241626824548263021633803429041260254131753428426174916741053225020335170537967511503452848173985508149647245040092481232670798688085701396076084908189157379495274194308458727724460151244835386498312934614808213306613901537609452016052853839585815732539568062575622600741204924171672381534342457534275761312245200158720204461232135734155028338974083462243619990306103165487760150260058870704513362399682598046379027697883280551816656563178959409972901905251004794565446317608152819341051020581586856405511056062729916522780826778318523751298253063422647854558559627804711882152842699063498633642869329558253993914572270263659823984767110594126546448600633936467549542889880756246582052819922143056893104545349422510435434325704883588649904007627541914790628361252808223207919272594084433630828240530502503909787230385397043421499744497344227235040044057950454387346550296844965899152844708929719322945039737841126440058878915876585432382000810035510951109011006153919822503536204199342689248977050101332127699462249570422707536650607877451976903373813286756910828095361340085349470841751165755904644783666414033313003201308604558462827414373006895813501204736933643346834158459666566892998480040066525397120389791846578073013247272380490848205899727906207909508507095145241742972807742384241233882915410359027930628760272393458890821815375609871034137892518352001822934989524804517211174692300889733381558677397069083468194715850182548148377203215051893052937239361480514264072291201697461741495637678245529506990715242770065578091286460342736778347358702924801689297238014826676180826070590842966431896635915621925098150895600262973176392348429852068651902901294555092756270205640729467556324293796567377447567198752490302224886123518401306608444380824186701295328013830329295910289044194488148465233681151908410398603229752255215690705648088601396827047617120761892549458525258451958124449084107599870078596163444517556803556442664668932253256957591694390388834589658985132233278000898861907163551597906975564994481041106338479534578448795034064754410945250009638383555805999895180767033934493767112415422435953174554362649366618834731174925539012209940995811666409844935554196935224804141363001036787259803706766958102162627487378899112607065062295970712394621332893904688270053227250894715072817794194659443026685869941641281573035670904791576977415791408013891303860113430928717775764439552343185466172608387266574839380196370522060974153723275352655854807289995552740314149224775420773333693194378895085957953089414706491980601167393059654243377268959988987886878124800543082159078890974018081334982014993289815891647427662498006537626588531483207834267893141408305730666998139285443480942808305366463689662300235310812884962036534451391618347369003242611457882151323892981672345926825938251993897806259284548893133835873532857186177615971967497858318309273445402176076501610742334596825673904219384489203092325045868191802722741215050352165630966554384758247515307463605363556222155285311232729128969107093296097026505262126256083678021010189732785748075616669603737977342414630835287920153335816573600210877548837350975237085487005674537443332553107693004140921302169836686759254089479169344233770015859908591844909337206922257632145187975264387658642275431231865710220329710136108375344725396182388127983387422222715278380996951316857856600760933850588357356253281661941648114695330942303697998616241360768301548711830702398369063987851037164140766700813867925031563428113177245255201156125730066272139882866484079094840361981592246415610526392045811549753078194630277005028834337563343454007091109962462554178340223613274460770311508171328980748472379764689662710940591573316272936838109562527473152873056679263527238757338579502206427026261225763516987604080938990078328299819875634421803082796560129710140722290501409862011473667880352934894366653467035628181132985630081456286056660800100648187361877351522069057943651735161672638421745099562613202809091066242198063630411084846159192862841637813854843189006012070574046649256437644445537338084828468389598198664066292103133003358437371473553149730008815191203605837810846505832021292357308613273518755027147758032602668319933951471987776610484007948998688686634660249753668321449469466064373244666239279391579629540477391404719481985094005054882244956932016815673527900102864188491542256739412786595034493414829800057782044955790279414817432595595011024348644700734641255359121891092479092731321695256873204962300972105504857346079200422891810054226503357805376517839485175144343753667906380525821579680911716083654319032247968688601426103833496980727925938286026303851989624412922459621969835397747132456843531149418711226705631912914659791307195875561250463453801995046696526986136930944946512351785615463882393768787442714402523979831457008241794902244908495371114915280139595437275903671377171472181287991518269304393602284648433989799331576029976213778943664763609077302024289386095972072698361895715951096023728187783889072498991600415040977323654620611103983639272402099912457793834935953221836431918193285628933097078937381142656238317771984487778557228015557156594873418396690666451619036380156331683021172556008979760134901398792149437515751190165682163313693759682074034325717003441703586057420437243369050114504590889524777311690674786223608014520553253838370828533417819219846849809355124063174838695887600230068218355935873954367713256432965089730273322167420754763205777362476239474250953620846760563377797225617595976787397077584252553884249791447057274697229622721143494969313760377832222128271291390718447702424579130100330455445247341532109596803546517325002709180847571782761654079759983763405528931147261903636413377332491230377573221114520131260872363772739504348182476392151383292095427253932356397846445403557415282529162816347893696747408962061530184520739716422019890899411427233430862974588327295214304296028660856971539218905328422127044193593296340972159174720937544984081656891438530822449525001533359170715585685750332423395230613366424372964982699177679048482419860139309988930195680140374995872032117562205867492596127793040404800566298980148892660858242384039351088998708318322952524668176499624702047565961028096951495832618350827459523189616903296217827358611090505535309328271022910583701588479622507717601564799416094377379830722419510705064252966826579737421447564676377695721785098722012695443283231932091048592853164216236891919604395366818449010017652867215477344522765505778790185837200121136021590238846330030187778675203347315269303780758671287307723691576269292104333763210401064017412122359647383318354525873566606124310613348839442448714058367384404404666814554241208362721659109118128496298436111414478618318569286147681736785573427477163879259735339927942524950832453753716061884089053753403401339493989647597478018005642245174251327205151353696639055678872858845897099426205944715911989163529231144896723031932856145231275477334835263756130236265700153313445596991274119956360529349103869485971812777376302114075705509125218491825741581814459017551390766679930185688044164204660252117152985259667932741545324203976220287003031619302107455324612350955140620558535232274096565715579770513722149261866960704366970818060910404182271046970496401176538693142268252723129049557747813634054681357114667645845498769212930767466831774273334318313038005210806475440509907978053327816837095040840498759311824682350128132008106554317062954794063468811398131593711121992311259346043067047166983868272533026586959327424797775210409340835597343044085137462736796842749768262826805367305037247631393690526629406376010773418224407879200915227249564702601948051010677485684712715583219885295676228778338937398193009813989269922721731237611405229219321510151625908102374805437988123280485669279850191429842314434017689185612389748746706762834656593881937246262875772363803444076428495486525520980673395072042124724874580140944280883024778070566491662909340711803648793133068929499618760852317104523076950768820676870302714997413460884249113876006123200960905343901700045526126259919899053648179768019221998331942403969494744390193767350936406159736793747598959494660301201998157181677570668782055754575387246186199538445507321942612573322285994922122084431604977941393417644537002734042727457383909017743425502331424440556524852099264750807731606103532205833682340916241618231461709533142131188035649372176584760518117059222616221890041991594216469611403775455288318396847300197167856564641090919642854131403763984840608992863581131248841798330956860157136592103101726577227221470111263071013562330519260917484162978192884479492722299438863230004597631816862841890509229445874757186265443769343534810026960085787624071454960169993717761807226263238148107750273386872110940499388463491781809498638655955823146354250759333877785698641833811852095431245299376828045872028675616800752593309200920488508061305594660361115364474601334680351451521470131029525147456086880325720217816503843853084291916498945258194316279593083894372781614588293009809453902668763749410455602066493718268411788634966746348101343937481059939634273283931566273351647411554571394969002782269331766227840561466967283693801734674133784059590646452636431208977235180364667917239270293976678159624383803400266998441967580219650433185364725309398280624035051617568185690077315025207744292440353445832590430007858569113855903137240635718227339331233110618319046291218218812417736255047771659299474467980891535381180701088320399779479794008829832032246292156666354061446900364358844097496738224108144880979218364134908476636938238568445953671269118301550989921072023651235278281447823913861154284831558097372602010161561462458827828320784791550080303758297432857493343611008923206451411974055125142543304922741603026474702025489266872234124380283267077953822193255093267755260585906376702263165345706974223175387571876718497822929055854118872671856921458538680479034943827859158247582974622905744880169589976687948679817265923144815020794617013627825334806859253428994048918326089026832701579315823346657728098207385507562893175032168879146594079729554875960670265325319449527074914630103122819566006008905149438917708235593711820579859923586444824131565122490290889048812177494705944470864250633059641793040221720440791572956803496437797907163674507991528015439588331615349402802098028434875745543409203746180786331580136638881769472025206707986083422981401571824608249116234620137778444672830414115561276745735591911386056480123859063668863711318940095930517156952032701172595780227477817728181452854749318400929109655563791094019035539087625476685394323814836852608260168029553932824913345614959135916155351976497549227317698205269231093930812499818546214253939528590623033581480717238751966411194837171357706043286693433129983464661909501210848238713088154288467364163708731450240607834934125370173475467163210874845121470358749911160286874949305597141832572666418548360631304778383010649590067788948453892117070295784033041898068875389945960562369353319346478520993025243338142808979956658500753884097653158964099281373073096655829631978971120620044799587080272480795231607740671722940059506022309363560136900782304899201594228808999834654333309086662867675226419562437433404351496252360007375077291942598548293210893992434585661063952129774294330918084710986872097919823537059006215941900094490130241862978131889230980281048660636203338669850271323621573161071437395546776331382799318065676287462500073352699331078607727188057891797812764897631316872431058763482423689125172483528474403499845779547069377306260472791803498444223209358274454037637415235838585872294497949987241248333235714906838539314686887610503251248351239211385377437898862440287499944738059632673922296348254455931500042880027163978111528940710631868485084448444053470128414917485627235006695232742505897383080279965644395140595425533706714726269616037596602989725564047284387944440362645911167301899499107777164281301944704136513116801823002461065286941492222074123903247895501298957199484721525182111111089195957800677994016885625742691997338377845639359281696623637823414128318124591038839540567612122324183159413278295547840989734439721116807127376217637447500794582260196229116069767298352592955299721765865049842637732602036165870939395145654331332737620187929341540176891198446118692455992367967629119451762700207487928923656649404301771769971122987507564862809488567021030085041837330986664899448723834636400150082905045445503924509781792263355207951077801650780878746874249695800617237187480060644534567342409303398287285743743313290451680679928907998201842513827657029786062196810546811166376134400981784137658076669058668717411487398808981369638871603692405282769367678071161304581451166259895991821414472691847907560146900139939948881438646141223045822008566407861657070474923508730598741722192787765959970349662336610240479930793517089109585559352000058883976595686474671316087645402869282836111184330958988727058738662196000000377626984424057129872284529602177709721287388282711023238847825462293740209484804752327780024167654276687804276057630322464529723043129613303577002869241777327846617773187262874294930359088880578330617110627380673299081198265330907369975571811956945622894500492745696149524220827487122799126560382216730392366781428261493326925204784358512887003299705890196595046390345355488425827382298597228859762847730824292843314932729734827572327867702197166771068672474816598165623329640118078783986830060354294705248742562954688536655131171126054584850298255238696831195893503301849560775463068604468009998216598266363141714667074844033433192125284705402895559042233176483306355900258070255834898070962033296538004084088189915720399179235244056810665747321743397157884171085292508240965203434446811540987036971462600330767493371072397605955861889818484039286999766497131009182194834628107906225218714621764645696135627759629572861034883225927480529839590945185900492116362730690243619389295261840874269020625455245696296321833362524126771839881485523124697693625808322472039611989587253657086559526614078351440003494822701108308387975639925882775862774138799825131199684687662844141554172655569056765911260403330418045652651217976157648088880734841492733225500554522105730677940355433465575706180608283641136401255596557867493454107936573775751879672056570694026548688809906136051657196054762103890447694357344531529057813150132973305265844085001978365865674592198401038370290075350634700055051864160821090038230337714787641184030520565961536565993905234039742381760063805422924277775159040081339405975645987725509755738306502190080971992160495553164128370922610822453600235062402355753523174319993514564073916413274702639300232741255932421617369909052093322029682690957425778889570817890394753651771415370370777130004332297126101093052601001347889781390117930058685825458741856507703289531508471261623427397535031809917900378636844162107038573955328088156039947867446073394700070416326338945092022824280577611290099885222552350149169764183014997935138442813182074558847631255835275121242351709155071041601260216858417793917265870567965609993907382518395513609579139970870097259261416557247185905178315430271248151217871179044049930280676289784132281794570254110914891184681210573537344830379390984322068166888905533980171717686820377771023403034745807695021041088382353611304772334034287592881795648529781182152463633387601512646861523730309783944559513626651424358732128936325848671520396512244414882195882581312988497976296510149546402730408459702473754240933281511560298234032147542385004321172496136712032298326204301200375851458422241860504047518819962995890907226486049951405551521332853763530285235566592893503819239121264908741713309632803697796548731845142374545297005152965528130223902605305998467666201357516771368171313165321726964731752210858254977402132134665032132038655013248748869376764942562657337695334331050488707958548751223029533514622286261077077689305769856058842722846237733435385475537233259086911499862041095918333349100469313708312351425628435011250011562143091373031221754455493430531663248490323167316811449311577587776040478584830395680113332756247582651519320715525639167659074628942622867536463830142343508301073787639634941453591141826574039218132162464149450081370441654353520224339057439883866642650898733829198489147365219946490688579045744216258472609581997319818275403143953601595398550843922227519259425444016108513758411903785563361533281394303658800982072382672022800806193186948222532045464454943375596200637972278223332418085040357090044288824760809605324150507743885097426862432147650246481806562942589973529027552301466359174686826662982145307314240992458435853381534942556003476706757448298844895792350283749860542015909639858114714598680540060457708541813674569197744999752229663383019339865656424769315922624151814505620486136554124539717072930493128183885423576550593892910158782031075640286880007389545753769092639854382893528089040622405640000679925156285216631512834606031884351818591195425545663906375895811146728049459458586364325387646682198507157498158369477267800895065642070625925091273056016206548649792368497943679403523060777320595269624359755869186350333775660660880797950462125107161568940453133615330969738617548064984822864411309781341427395164121034440291598865428535805189866102681421938204402897327846051291888136955014685383917333144088611771421912225647558125650937977183478419769723410748803552853405800344036594574978699486129910190673001621833651072174767412949392131973622618329304869573212772784571164556787654101182811146582156325978733952276327339039380926668948408837473092387306691764858531975508935488150515211202041181898725809154729395393983286363048073739338840619928216217225820166399104318645524859763766208902586502661124066331410763555304273725591449262259969355681079843544317500159618869592820141576704599948165531556238525399385600287329256509890194848346644014116111500281634073204119237285259446578495275690272792637344271455727362571795831336562526755427663822434083679877263181721213991603166975983364006215431179569967548932025011659539621858356254195821167636468336496691627685726136326639687270382580717074776610982111217623499458030784883050297038147677548737224525518492570778313344426452364949825009211382846283189156911327776826611476902944635641779659505941628407727735521696344905689127154045610020068816186633634874991525885134373752046971092181784994852078485382663050605766815683574611658337378766084474428512054266245766930740271102424786148290628119842013718471696179477823776028932720640130190988658185673433088953505588982338018277836384509349560781055108333163210299114698947374908328824848256514765637824802784304194204629000394174720290758056826185400572898989006767431896243786162274283335779570476074903936859787700187993497784482798261347226994341316811362191114157008242490375397464242839774806157013035554736404868811620261549399823648614361877133352571495074155220568109472193610418388368779861799432175569197680054510789541410203325798075677554494593273170794264187519871297599309881672337208226117040745333500446705658518587859048847442217073371910897519179843520580077751717166331372803208898571850775848357776210910696119561164801125381512345933269201276935174638456291653576668462167059767055507901486861379378892502784162226679160652270633202834160457694757803414909811568987494509115953519409369822686871950065534761200423905220129293909335762026810070620901226810358424173312616970423878025119132681625620033287061813604714005947315942784891231696646125553237736482843369595247687860792673538185844563249729835458353875918333531400528185923391284311095437283882899538388372012956374910248894492234223390228826939136765422919223398816521519116006940816047041762714649531771020766831124834539951942301638111823368542655327171018360462257669021714228038471460228826992471378549388002245939726617183899079009330647891740754751039060819832224976992731575743402670211713010772185942115318764509188046343282988917076314040898643965045014462501852832211892341134464684782237862960542443229159103353287473414979922669891694873604945059986061988947951707382377499135277604802408512952541560717033087777165938820674159127800271538303206785902821868292132807202905961601090259789104514840412498255982604323821280937765840447365492985306941515503791887936639238440671841367046005502802814511033258770599760598618116286679107029629435346955183954277176804590420939346504773959928522099824128677356752896899502267886376770085030197782662458093475061817956549230805789518685430445368861333586241944738598576874961678741114274248805267347252028252905549101086633651107956980966756366455339032143597374418123015293101133159890071414528676756417380227674027916296315133210730852981288497830708251600431527611377809355749613637750523580860745663600219909822457684576025658738018521565088856086218105922571279499015882479349943970027281269834310975548083205421114163050645788010813471573688216389663336079964644732158915976197322371640267183750600281478697062627805882578031942251570607708000931723999157205926529054156811493444355545975717304310279436199525218369235432239305479628874754765924863997320307975844718839573025402164284685317485387564633870592049438464921460372233921803360850368946047657524225948062780074472450482035070951398290526397962941767609702291340586878407145621364693059381856250015039401485732034377175050656724963373209604577549863195222727554006576002952494075001480004736071531188118112757896570849896040158896739333835226041671621931462068682586039864997813544400772219146023615578588607036734393322606498620429907023237634429776058129163390696954077240612864331316840150907316099767898356687419838733790303960994943110136081242261025579133210152624853838765592889959794115030438165913729770782103797112650396735941948880536499531102236354965704149770249451004275894424268193011644086276705631030494022398157012016881339246951421470394142999381182754001891063295755384963352760235226844603922074133119285891849153801512196618806480005004632351813566500830169117605003994904991770063783595061082503598313882220526917832986781735493688687719633150949780554103801418109249689711770484232253048707125382447184397264145269110430478037651072386718803311988595474989735322438555140667624657781850216584834783969853561266672952158843578237632477549050332912266977424743988876479346284399570537745707735122850978377246885703092636272938204937884534325610574473438148931986638719279629402883398550120245392665488618330336835981844849998634883342050952163634109832518790649909875357985827516069193807404597601835697640163340339678494813605296394297074451970945134051724782193931166075660922682176877077649630336108725162142926880180886632860788591111835811140399271358371372066478054914070809176061505751203702581461638053818223957666780281906675880296530704021986041471105889131714884002760628422656753396815653755214212619119912003091869357712228402837621988493912812259951374623824002326315599929170550715162659280015159800735271089320564585426548345624301407619459710063929777338793236622984487867519743781292003797404848107526797768456363486698768294954972955362123957450974717608099556039063631924066168182935744385280310845113962562091468643538488625737397430137315067690954578011411415768306307510265536336047720574955108388051157577577026846451925514933229010829175045851377757320665007846654639079582566154590626876696530422654768364381904316183881907518313995657470680086719379031441227507816949590234685881197509040389331751412415694913343436559733815143380811784782713402799271363287453545414162294625671327234470439371215031126102710675783351292416917457852967385352013679362488306330703224985271784595920810471228891509310349570871485616606329571453085139864662169235987468090960021889614105615500593456979836769305354200222755306650525895324501231040474755573018270786803743166777116988271311344462659061935924319313552356013154357527307082295173610975973415436015730187025425452936297930865393436082129840037229639535832459812001090202031142702145038086218699988472753162262818223337247211071257605363921458650280018787872757463265656338177947815230942960977928103987243325268583892670473702662074082780725373734360467018382417107021005303117744110100018714345348994450571674601404196292128656864153880266541408712645120049134722650045208909990446545574644386495530099220374419934535556048958459448543749956095535426843674498162479099949333113832138382956430696049184182120804435505906575250668068295687581389509369563678160063449512384813432816506667008790833756458701586085330619077994987988596019344160593517297202521116650717649436299434023128647336059664593356402120871893319886041141402218686251287947317992012996246744032770299150566656588438024775543192945954362004846959383443745308106887337051803738522481346767657221517460356724043324686260730992454668126723450390470478974280939703882046990567237906904633247954657144530341490284995013504181022276090620775871976878209336269200425914604881417429950122522637013853084690222169102331018082202782744332650814081424034995289408016028168561310581712372143255823968586346936208344878104464133640950843378047603787375531924201195227544287539979884033648288528464313054474966116133595439700920070628594529190994064934576501142898854135847063106154015510109079730054243317132683966293246138370116942384029124851046282192317793563112191013613873168683418783505510593772780116835468487074975902940085066677833840573553893180525289027239917403038999507225430175572572298245233916054145727195680900512544270787177439484804373137138567177491004190725570944007431359011293377305840342046705968479552194045896990703832310167640684522201085027356906932010062414608525321475287227436635446482339381534715616305576854973681474362393640537601308837120984560430571862802988488555826280753316750219074368137624638874470915321752054872455224778179588378818218072138911124083713867959402563899163644792626227691618635182712449131170457008145285935743450291459333434986394849254932422455232890157623811885497730575438525319609686892752524982223605825978793404988674394019385420380219167492850573161830486677428673859409187503181472076264384498151810656056557147950441360326164684522202779302870559771085009311365378911846745466650409575684376026392092153520429077397441064066776284974121563184991193181621229088950662868452263841858417406506498945340831600556038557122566280328913869327089958856043522297375817190471891062936775304610427559897781651076374844061534623390562903984863453594991732104434090362173271993013491465132050263528345702130933222110716130417431290688635452978511035032350992696348093753436790981073811550805384402162978636094741417582867673869987819933953111219210048452744651328583413610767565900235350729429447392386399104305786709975700794262497218691698434034187030115533840554123542499536605441146615924252194593415383147890873305435157629171262106074995671723524658420203466785688176295010196865633697407427066363164284696591961010518306347141611184067989140341273751018577013696410194282850621762159555737927428083689595783013413134071056282430939481291219536613720544090804567542760204010364015845437937376364476656720592775435714764701775195696248909763558550977280523735182613873581308776419489978742476485724291303363765841938572861467658667734991061091482387491619722081760088945244204002342333810337162570711390834052766894052604854728726497234152643384036384402229081981428858719613316847787774519302928091021936644655054549209984635735060112969467701644734994079280405653481847155044966227076860572641045268619369106013759707611226586988198560451286763405252291407386978561359589721698682765065556721810295215096238047743764307942699421744185552465092218465469816752125299953888315967792372362252669261440613304777301701826808551732109623414766680658626564910472838188174899859963020600553484381131721387818102117322594155407126789308775952514051322465639801188508465186100958996241231790917452991270042645973720919610760026644713204275260482859572097361471750065812232944212140193690280373312813306193694050633750177778711000689892751326491147625577578587093116834442435915116481975037164937514960135372130701549347074769886795990796553227437266962005568301862116441565504189304128606894770733355979107835930818789218816754447395906807038693315511623465957226720096159230770453972856250886587321971332355072973536995289036176094989610112660466706897951837036018608141181408524878206283408945791872185845815541201903368495456191963181521226355256678545555855454390872027585798654173471959950473762663694979165185999284990070031786497336625828049614881795790834197559547817112205296329149621455146157323500363732354656233424165063120894936209558447465696894765526480811757369030479703410405746656689690754296480079517452570975935846360702239394999432090211533865358711408163328524162779892167658643409687923240293907857424662369503518661097336068958476467886716246256647593843441177560919469950737262283704851496179842327990762940682974740978024896474894643043960476344606621575573335306023219035784998558523352775282874415898633516581126057969897834568342000627747130051377658030771909781502039941206044460017921542620582017864564044818070363042665305628795009814709081732711155234565686576982256563266452504801143594548737388360374796874143398009747086009872366323746351352023530222371094652689832048490140602631633472632313646114958641996890798150043203219045546759038520414882086521422678264813820800330957352509645558086470326929234436560427408542650424362223784697711233898853218944872186233095528050010401165900617235089207065483725160940048087935773044457226384383991568290789161542527694722103046654585043142439946012097696056376550758293585037023622765305717021184527440302206086837019515497700725488318234574961490835934737288750648896049282927186639129348823503388653651084821144382682954129330928952936140055082433076049820691105712006032464285517027120934345879890070238373186654648654681539033265603179209042167653261283008084223577193803986007879429320586014348225182972811055220710844407403035235753591223833365955868712438797555361284497341840527753554364112827008827856392023192499378600285141187654813978494683797850121439124085710409986019899011300082303081626998835082074107540616380492340470473149102280633613333731063698294623300762487643135261726707161161926378983243095278482289393658343245446387474813228235355205066331038360788474186447630907023720848985203795363067566158531046599817368726163815619698121138765827729548715224312012662479035595131642515469450262582568299903347907594021127158524571916844234566073801588654419307271850012677662945359920722863128639598440726146047088376880713583142213591762490273731789341164728450551504879410663675233990551708589961152696817614490663736530252872927033920217371591840183245669938086635732363662186705912199775309407525017143660743361274000048190879657820191768496039385227569403733240774252859803885990283007668786316566924032121702667008485565160184180915321851746442255292459695332142671209627752476222580392026285299125238162692150570270038884309318215042673592890005742489640299795050815021526640347598510865785054970842361383315493471204706686562126319675160746777461972030694253253269941155992889195893232886669591557648765864022477562230564767371414621062052624170292244978093018428591342444781989203877377292936037076389650101141298622130231392496725409457518558900741630926434789154059823569701257936529275655621075781227240266750672181084868260725686687885406690418564468476743344984112416044182465836117547417710267941245530495561250933013663909327488190835341776721586802259669134191709508694121416568151232279745904497179940316989661671878609756738125644673473135674921673223852556319403258045574365775955331896982014290930559899589055146538405715857943972676236291271639846563588933358107178998595355669449465715172495380492335941192630702463154892732645272278874616094410104430728829245378490095611371410017186593196990338983820551724122048314447515801404135453037284961322973643269752193057849558578290542593527721987166589581134030895356271129120663420544091316576812831286111549472070664654994179249035187371674923685099595098444591797500578064596230090238161721186485086022182356233389037585736126609280530307695289984337441386567915049794439982847208434757450550057716624751575420497527755397909396143429413843231883655382289222797436403687853499371501968606802753136603262070368385983719106057363107081129897708235737294495530440918362576732831852078436340140736594587961827528688591659073157076668724557786954891702102796400624335104608863129389307376649786057946247315323000610781490275065873772984085785877047202433395698619281274606812827346958617302220840702912599162839199710346298063716687625663514145085034027738065595266202690151652033996863589391963517097373126601931595739030368836065228254024826934454195990396637879586023110049920686299868172196540973028825655866653982054398433432225431318034232484142040944912542201017309089982791730497108483700122516305020623277784538384622038041049716794544222759881308739726169436338947140297217393892901249534172596187209178291100987838554781305854465299632392142064670047553189838593609681177220176570756893010326933852608651095177667123549221946313683118527206431849252866332994891927327283941539991947569668399418849704173046274138016130692856565744738388790578165576018274932018204550013159945769187389005927324669618628801171642274514627601861798667023674402631836724548126164929559319301947720158690337318502603348837608520786670219494064351770095168799597650160690272218946783747121615642006899622332247893238930144011776029975334703786958299441440590493106693557500929973150731421340367582596480146227281488239903094678690669299869898130987124847078035613730665995831161191605903795228292181071083404457747503188717392383463142660181678143702339285192020488748643913047290440507765905788586307152098667911020441421847768880476944600047808933050658757685780921786824713446325880434866000302525365679045991601608645704293148806517298942799555828863894418131668729666621165938704764776807316395782759442943459275553792341862495759018509673096754667300171896988813816444060971444682535290240317948877291942832961615559224404339651161321636650557731883540360726124589556679604810733271442428557059655827084228243177211884573124543207754584831230137837229664489218578258129132292372592095998227023679707342203417237570436299291257030602288559520362689356709298566376548796528725725039003233575161724936954442380194784979578001932063566561246085305518893084120218403506251620872391281863283604123165381474246133350125965349085332091534443448327502642112359212134412104029151534348993796744160307221223837291107087323503266848495736739430706582010231897701677755632054761590997553377501150795705409701322339705554011245681749297763833577286189825605914240811884023849866045420063138875913124414547325025742391985931670959492336019979712358908128118142020640469764915732069771280417812902628770472199844612272939291321174190506864294888456386781863306556343642473783394378295871576398437739138444615616547463660892640280665998902403052691616773780952073677191858979394774561012104943646026429255287050468384517562679764646778665337889983960854530470243348894648392212168401425435883889078497363202447758932037564286490636047178459609217491092168156324015507824692705244487566720215598122337804899260354089926391634159596550496524836648240045973269294590281415888533701011707754327248902727249912975428691551045685884432494090230044301597378987837495788563641850515988413541607538489898680773078633231306175662943457137406835897422856046954630063878640082061473089918994769141210654933426689770845041294734391607876392358389004672863587580908285454335843780260369838112544980600399816075544058943273440152342942403739209816356952329070924715743501951380246575886865049253279393786248997884763059611201316355052226109257290146043550484849262656624787143843423692792350142422592959645491846676788297144839304654000658162953959619409429142456552716101664966030427775993014619079506327961925120135022030450955742677322584247356594639349416967329979734582706287174161579916868615599652759856845451650065841094953170953963799798335199465881996016742042851544405245932055066158648995495667386079093324673300623731967039055179506220526801835859509501651870285665901573216418612080091975055729726501900630615931859570867992498298532259407602733594847619380250657153718409744911621955979673830986011759758905405548905817631170718978635544153052064944097206995681982603244508298596918898408750227568568342107036205931551925659807820681020382666522065036760726937775002878423687753401255267023248985722424152891761944643749049101844841530420584987386301907238539281986744422507513370615356942015570371779380786177472045666985750649722036439061908043296553522206676248165470105328279171662859173977294263418928251784055571055044192296784875188917666281776123809900559057827141456290646565317057133170022215538049720802390481711853775362889876912277153270752896096978337690553500100297521903155969183205459129956871183976973971369621800103251255560204280103556066979812013563815096771731952764205963937671292881512475771313742165870718483426029856511024835723724088753858065347516153164363621385015182862473951814613930784823848890958018556171290196934100605522766417402904110753084618329892898007254741108224818272322041147970353985917641063453917886554785197075850658056265831256273435330879897046081372656148944340591597160709478155446623136625921700725227288456400719811277363961248508079725338384938584982352509890746783816500883879680955772542468184000526382100222199756779558018972841997098480225357309904932249066671747846862367396674929444592786602885959040513233996548056823519537660086179360041065591499969296325904082144406033368980966347809357160983701034323099518961930992643652964596500718557091096543901444075336797738086903034272232657545375385925458775519637838423512962752380627574029006864914186803778335864153079799212921245385076622798902230471885808426538294211846612466413687494268471138501688852415549415623881635239582280535546545382099285989547670713847982047794189014048165922492828399340210845898193162224097424109133093417768648687941579635498708521880061027639976152572193222010884860517605813331291420551350074812441189057089105484682540144389518456078944381725602645981682853412405554124064206977736067973237275719695250265905381447765218209554877866279257095789188433624633679240419778378298505861072984877178331640163809695647793631015964057082225411519297232895873744811841826282189649145466357305165443746130787324208278453642946782480245091642136093774768330414572253547085860735572877452532235975089197489575387335195526904383463782662600636920338073237481075119384535239772777669492825358091855859755460507318961929444771441299655909576114642108191427806004409849640436166639051489746479507223021100624200485581086753247857339956657114730397559433861762293854147508345748541459119791700559587969550376085200328881409215509611490792995028838886650961922055991624128809212342245156855131772026599495033411282204078649160850608239003181433130934848668097890784632178013226028177068690968287812466728128360020642438495603354806145641394559282340733306640095384303613038270103166880135934857215013450571723910299949178289997787469788371393165614162546368634910054843152617950398673144413883464562021923809010850725925516338728030002722781008154967794995974537258412849806122131494006342105025640787096528974372926414380262842271160401989110984400070307921251609340180795266774022192115381186605293937319143014103610956229806133781556232220779454234515104291099475547975692690262385803457090583120688447210044176409903601558183114808450440664246220637727453060909839767141231762281651486401172540107622335210486861202446577829100641100876377622599905279164529177313327282553133710685828161777781329084704147767893208415155570120257904241177543621526129990403709456447680678087951823040896293508801301327412885472306744464247039904740058956838730522444392961804199043363047451550002459435616694661177310176434775002065974055865830019417483736891022933352912956165359093333883336794319912129950602084766619314221975822392600173579028941767335763687504362254045213063868905885926137292650017858144023822035378142872426890277842208141288715949822714377109335794911923366052927777152562702498275513391378777778150782009613673250025336451106798981888443475418133315275571982242838069678182421769516465601899641835988886732020084912099172883532797421866695927039711018928461556607904269758112595720012787245515890463849444713817932942151079343561780622195004661035272298109282890368298736019717583883598066070184641888575778493860369978376429607950729383935720329539894444623903910713072962856981578489716710765200984844579133429812607394676926553744850523559703257606396457397358509836906780117322981508385163003346016482825090226599288348658141027921262893669748599241004395479524032538175708868698679495524831636754079290613120474146935532786647096635428464988410969750882986791064951416760198593527541692845598414575087340233102030256239091969965555799361209736861923616131686444985958054221079300093818966003252276695499934708411087666685586577766755320114429480878564893585713308047051996617210370385480824529253569941679292672109525196274381512691470505131637540503163084257895172669914101829138258297952386331112629658075406663928257726724300198267156603190254898628422427649505565816449524183777481955412203514179698451252964133629514198374776916040519745168739953432585003685581754549482108943539689035335482579422615423616478727108556239605692214663086181221910034205364567123187947412837065053265232052743072445697160355470792906561487370428240327334563399570461178563379144388125329657449564023451743609544093510810192135627275857781475967162883976884801755947258251293974378400400079526636726361800531536553437038579700535918146651407148983579898573077804478351925672309145293650282903489465697793214332879073383483934610734966631360958337770813503601994673959309158015901398529164447545978330169758180801147990359202132619072303462745254647259283689733196991939611709704584231117989991709356366554988345079332361965579404531055560453598356843725179828049401507746446476832600374742272337021476688558285976806144046992049296370153395998146200497173523048692197676574197902330569014655726291037354422411408199931982875967192580201090774389836805350437689370123335041964998087190546316453280081567450594148146258270369615120474206060257638518361973417854059095001657625756944465198179504289488461295139390814689893461175577844483193089990522426463031922842559342712812867279280009125873012139559404443118744008902732306093989239737202599290158354369250534815684924312777196851027537568818978436137695394832624191170118821978783708778264280150462583596457488244763470452360656756345190787199880762497900635926986343242288256784743817255341000169747806294388951746454267362301438676447786490982522807964587330170521400762477604092263894935184710631152308309986300201722576972272849166253489588444452763358035295262993303669122038520892841699722142721680654741003930524361154876631867570126540612821785411021078910753079422203361459737335322998030180267158748560943822906437155652198786596886960504456557252516249475218463735923230131609845201561983383033625684707518182810044066217836278725092527739292553939186336454328180548950607125260198591349366350855957728868142436918732199427365514764623075334150774130034633522263091929968538845018544482349208873088615465883912699207967844772992541060065640075428396838314074833433292047597637616486523321086154086050318221101473738311775680395958850802867936969627422220874257687466061190723045352273060266409986275323488131825513393162784619477017555266443765935375065450476183974589514521272680255218601933243084016800945390295086129417144654362233088997905857984169480149593179914603759977667231961689485385859276899685830686236607056331379623886516263898431386280157676043696991350449130058903874713124034871509048798543212608508974801145350909273705874413069435196751907958975769574664022953833642037872150025424804285582408586535471308372090086814264396091049612249785148949088028732260436548489336169859866858925493085894790817634813288773352659468734301064720057007900223318345315684683575898989069830660304016994762447716399058271018839329998781769640395508289842023016250147045376916161998111268865561461741831557463612336305969332478645501583478270340137777432219994460342772775170950802340705781894375761894621741763266015946334044617086346958464709439276937557765971042143106833440775835644400350533617449793631781227584623795803485320991886411812034419979678867159689539959241006682800574567036744079105591798781913070587362822493619530852942775796237147111242281322930052085572524188952693252567868524972547818329352798810713877046236071253537094512572911821382529804573528501589338001533194045081808810857460960667249683204188884064761172039676900478729276598511791009093834553297055981399074872290338611216490893453140228899002309596984087758738154964706456707010683910997753533230873014153099909612197442842519752143155286802469577368554367441138982114604658115797457993613987288498933230820750788037837774723933509454694058153791751753377571631886528000350970186127456238865071113049297954267403661614696532642981525917290939475270528131196815916202409907443847288824361013668801036094823139471535147578865311230860134181710909708570076176077146944594990456452602765899676364892729587776950886521495904982211848407985768895886407438533855070724378017385389432095655358276104061900063145695275247698476215054280781291457202010496464757997579194798008242017550171658254217238212279206091630292778715157055517929045153466254080557549100192810635173127238431565196797252777464656149273834717819212537146482339800503004203861734005255006803129978078118938144018536759321829630852819952404672676110223234823377505869289896695438668157646460988844642183020217391850240976607887287200764388169374550356371564065590706534202363149093218551353054946424224382493945753535032742535383903078983994731730258863283676156284285411512514398600406747916920596463158561633469853467426859325997969415419179434528420664339838129980458423843920624910750325202006149365405420713127857735726918225845601688477135597912970144509169662981497610753204608263116937659132860540497079907902752930761195332377114268380198548970853809957998401769878071581569868036414486255783236881849461396801869667342999260271642027107510477455272422509806525335444135237615451717805094606109286468445729700632968660101386889011556972223109202606603731609593171416579575509798481192471338615044527717537808207077822834755249936492781767978198922187808694878303199114716864754481066040410122993307835594209725359614471172174064909685443726694962912185604855145185669370336121806460757096149535563597133342029217161296248080901382891496455822236820746334883975274723037170336643566626925368284657684476807870724988012625965866969306921104490703514878196348174859009261193713640642226523773526281054185206646272297764117876747457792871944191669798677647468306779377959355435802667607165124003382554648078127223320498164545601508959109128035590946389117719560052053473626920281574412408464085466918079886081072972823595053152896786484208813802353060150056224543058759402412707863748900460030274438185399830121163752295161306016462166883306758333459570821802011930989410718689977634908566064439921404611705245675963880263306073115820204819521279995009542836455671071145858246541107179607954752004795380632641758924478510847830753235933981765630183268178771347919852921573309982933410600057117584551295292869568402312792859362953147290508961920549337941818151872763621367257920679302261166624072188341813876433982549185988887197423568420253005693722179235579270067210696610248216999345197092368085385429872860341568947471542728863126297164686239491072240910416633469226816451474538586592252106524802551388641906192479495382910706714402551467746450200080723321464630596312062031524119134336939617894763740722390911317146607944723911399861099618779499350908309845254257161282017686329035262824003102315066152471188621761684933337649290234470319496524963088765761480481308963020324983535247588503468579986620684710534886933976910597907823853162493403702567297869899634490450029351595539322346037797744483096169976910864614413508659675950507419036504381954572595610731239974544925395831703873357719692901649861426205839738380847053496650235405335324244799265264950087768404400587085757275810025202506852921634223672776405851847779824542953150080569278603635500578807284355999646690139582385604666151847280154520213465815070684742356471284059530522337872453879548557109997647193274455828634371444796868170698873847779164744552412748390914764984280224340082421887534322172136099319186722344768533411597027850334851078264934086146115822631916783163016600693861686089854865517370906808375377572203712008793711367669032762359831590062113675571812655681328264040590618752768716209394431349298522405531257956025486572830807043171305290281260428328679585757727281909302258607803865863682685808148137438366909635623840736790284225078088711799422449939702408146689259730084631184920133009058256667969558803336526595340231922302937651607219996467660186220931926156035895432848350006663049184002435987661165204921931089444433251906933528162536051826484140114608459425091517560986879272966295943022078280572822651643094367563642192023754238533717613324379818733375012185768084909602689479703744500302586981037388261560479625693215316425892975726257710268198043924138639655595737959406601735875834913520470972642249433978750124911664880904701579798653734182469645775766015622610183186305739202554815175913182237535259737364216311877689463273545371727790896301491919721523075416496886881422417690089421944435584556554167904197940922973956791855247974305501238937917795924091651496588025165748609292655260183384757715598960178910262722771290999831261791714050375865186656417908757423584148858242835296958246057089835550014230909116594053374079994218863836538154425729917549187784862658156901431235485710361391080776265237801670474581133008727162945375672252699489968900650061976393770799173969496261204733150260725503371324260028185078513056919182731897846584003615713171878437234747454250624574860620132862537755809440798977369125959860297631252648458024440728752168806483580209209103438276424459478198327153344330537924728579548439033186246479667547892725055076458770068456435255495016942429828964023803940773489209488458899896840753743044831631882888318274363656858068103001548676646248241114768793731627569642039099373035278750318606992950147038324418865858345238049150310083058764148757024513574967178933805872846546163184531771167798300558592776175439139926711806160069708513681092278002869646087294226656879482943713087615478207415009788545472142168411531160691861671630482616549344220716402694485356173168165131747607155992217780286502961883046766182684231615641830407536331916997672435697779485723556304165752769998419642635521382211090782848256763517165956933957969846227878047336821776999420945569729276073394464216848434846808208536798241090616964612928510666044713515319820079013875367154066785378533944470906012556941449178739203635959586509356584470505571765526217247532341265078494951375204043592051227765681256548950812401329569857473674931023630744404806633972930817458649454916927210702224153814950973511319296879428072975888901978157599385695316838961746435306478406514118196201152075683370465357352837674366439465357220705121758555544382437348011099843065731405635766088580931151500924709308831401032878622450011199986175110375596205485868653973338767449958494775664417002192231883927806198410764941242757064090696372480335173243742160119010133589849538392776614990893413705783998695597825784370658928710264642953514155630534491666232710269305051278779119895199408483841625633225162585293978675825949216352096365188577501010853008757689688661449086834906263290981493832902540153556875228328212742726355565621108502364559582829971339315567032224469828163201308349942700772798547012549774258605208013524147664510129264319302333539104796800534008384420961193817210511711835644779744491252035450743222894555616567112321305826656078721006248207155520143334005033855378905274344258549330056476913220605033267909587125311784890372540966258091666103415979896393328153701272529866503912408275956639670375793399515329850294240742154344558310542793819598145448066279990391377996991897885032135962850951382023854213972495797333760312133483336285477822084914283460478304489365134978741522638748713498030687415905364340758740419437332359933285593480222819782565940392410318510891744499324108914351701311907318598501507309825797005348766202440637267120308336203007636224822576351089793920855152601350116295207416160153600964930182299975883131085560402967137380590846879755179929785603736825267676623645117077776055762165801931785949014411053156210069612046274502751879826627609105066763181832473927071017952880123995541338820891493207491192974834398923124684256733550548496570977036061584089001980972378743793965697996062123744607396788226767511928974957003619382562444979174830920438433113380239159703265174703624971493105800242214327602225554111235357880293392745496034744321223807396264251322582747725196833552807230122343926275316604073407738674187217383317384408366573025879036945234747764915687368910598135914329758142108809342739919720430178034838219917394711343606430737884748362783318921077592262339026210056688717075362440422143376536395111704488400537620840530670561464893650188175657735701375507904699968118466367211773952923224725419439301654133820565304583466893386755725352262812306734208699049228679010153288635938722474245504571594097515868778874908883478514617353752898564969070303139030937739015649537970497020789859588819858380118756945841574641177177181113638068542815501273801488923302990345824346597972606914256676092953641048167042470185413644314593277479477658215050504335823989881277361561410570243797365036010628273690355099822987894743884317797461849542218120190427348048877457393153592648667812375489082388931218046461029865289730659044454241000423367798668954329712520378166443294030058602684052781156284010603663662649273836969080604403453056810839962014034069208996478334703288730803146794984142123284911571525292011095580804828150792097745373621279292697398579613738318397449555504652273993179073636331536968667689603433287257967844991125003099246498996947938539277432423851787575855080076768517651395485638254152942950250201807544877008761697983995868491135544477326298571960092927937070560978042808281128117878421634851965492876350763261779747013636314587087701755474137631681044076547789837006652469003808417796613025408878251300781957222158310446329400229231264172511523913438688974318220749520797086309668950626803447910211522155391143868739630832463538213259249334098830150227546946906858906299697715321409340305073875331844355530676534460592327426658822864579905657364736149794092755510731631672608422529329265985935948800618310431470344583329889906813100771448959303311863069759867644109869025907049711502556275112152112921347896175202684010595707879234202322883215869556651512083084099702048372559375888683254437424158348324362249088379875406936979303591929965397555474745142090578317807514342743074447258958164889676724030134535613650297799589251776238678288444307625412172716673979587763457124227538738413263146377331320520451605201442592160687166466242149077022213935054061234451743829079305220346054495115536874656590368660234662863637635100458014848701743864246269461331730813888466447292514159552871479455773096081995711999867619171134871913878906588363131277861325590804005690176964543263317567618685003405198447771555159101272389020969860741361932823016616647547883800013266172602932429035556794052377729473223053088979304169465905348788485560666466748717269450591341476193280948227716208481764554324432698376675946074791572319452550179070941337104562997572392956181573157692968783523564386061804512411743345138738661516684864974369082799291743759453357475192019320442036671712319550332349159503824198391880655655331843469477411350324680396582016126614488416759551055815643915829295272394156784704017809465274116672199672481117482851754875997579516633686697368219368339967100471666625690996767445982767056520675254578415207641130969342879673579674013797136279723199369425453360304656742151705126326219371071928026474543503349540311221937166573478400039677196422104721861302092626719844966041320841603612286292800662675953568662044117771916095826701742435070589039210973582742203683711547402323330634868783216492670400704688139253396321728487589626567492909608072181710005157238076332116497585047236905027476422282139614604438447177654618188388699864277381365293069013042808357835519047262551625199085906878686498076427113974647527354128829914812357993408722114645012299896176722571771007166177715880015997617986702687554667281882169889445898282198840528712258184800760555175022145422281685288424576321969355930093847378806581397222847118541399398250944611512883980293544437933449810969543567689053746401589073438472148171634188582699081705979844794145600348987608540922263089172073036303499290652740436339738519008475347619878734823931262083047255507892926309041472488801347187856553200976254536478726389793320547353073790310618374614068211768819854714481081672095829529956625869027014196176863706506342621240071748214687709534501927321333198844993165587778047814473748535783280022551948072239351894598975949983957236694325750478513206980704582874850120903613261425545314830176378926804808407047111432260823959466468594174169241668062574062479356059086229525310837364748097030378491166349833687357709971437492166178772160899031809942652817832781700050264015920599036327710951195769780111331879697787491788330869199951626569673050548796410824982311953806168521225185055556635248376798951401704000042006373866209435150512524628418269857264516518820758034178943281412684504115992543801274704752910250112581090781422555995008587981114800678510919795920376256875755921527784705791071791258245894125095268651635723621719988786019632329103412012631967907660556903532605153493380865115931430594906120459330341742431091445709385870748011895770858078548302736321994834815448484851945021042753494993474347074994138814274516897816797635341375486729784514803548661063426065159144431735075774282548286850033985616752120964532818824125942054408917058776498639679290798034360109250513383320980059935705379840866453867328151636232802424663339928917659901336558428054052084070447593455778746190406939148826990267092685502690828070198263001848065043684529800951890193149452255628422730793866787762098793594766795137496340027762960873162439802624352423700618487475303250915763486993484721847522945508336633050189080808494373581080336120991417121687193511013493333454920597140515177633196567337148231572067310447838199605611898917417538083329177625373025781390142944252779359456951275713346191780391600309073472694514653676922383903166674338966994998827301938639596088434239304717798437285769497022940443032796798152224644045086003976856009976673802129191206498282397387603600458040630246926184828180437805090914588157701433126296691489244788306569366306211503657278443546661719343577366632095808826815915362346261360761141770787080735006731782480023322727681954250120571055284327432428163123564498102855586592479445582535677522586861005801721385707968959252806365042720226824653424637140145258712232571332557441506716863328749516961180803497532968939128490753388872554633752927331355107166674227222950081495681328069562687529718912978834270545661034952306735249992764079855415300278841396258903796833524712083334490518427584161334916157272956132890794524675689244473238059248713751068997552059494972586840913523931179100637331238652601499476333430916210458961501736805862337312963777579313858188901824471161988249820279922645854246350697249173965288283622734634813403399317870147401470714343475434215889715539997867058902363824573319747528635042447250966817399642361256757572504063389487514390990169119861513219728154964929656881098996635631496596577430819752412627376396308577726365881917336935869670567646956059186347447746432619601375473361744486075492368396971235410290726088267168858394588617201356701531952710862178441703873794922269123399554141191717185074584493773216474853889497051212121083234176921210605059076046779320097306629107857684224675725067637427956185081496391814688243467139319890400495381990669396457209369990704509458400969457221686410129738850533702479504853186778984474890831902720590853806909877170757471580127884784976895010716015585221787049983523683016816106647544916734094337703900269316816190872676798086783015557138135827290880467752718172879481643833750268093602298052239115461577347884685128783850160474833478101848586933737990319942331645330702506528021264503364615267744198235153556642693921886801163174148200085811913544334769517611604799938093613588191174969318156108841450007870122867374734655146421575900957879722501158817260051415245395741240293070555247882663488840030863316586012134316950643657068817533001967329988959814760036065172867854168056907694223067763515654193199232535286841645225800014578993747995145816182503080129993048849979818113867457061847611227089026117519276669072098889213713876215305062177491145881814162000435810603330651134732096905783125283595205031782476979619248527673356945277686753321054479753671551958726459913487841466207165111862616061642753760873951956484046610523027913351470340500887966765699518455234768420572628077274970605172640107707957979237392870367548950437302667591148927955699825153209829243272689978368956204913424420957621708914249747465575932890401021732325829691848560099422776604277681967086829539197390439247863655691264656709835507884104521123459697690593028761140875709084901089770857580001222587408545271979494642938959074238493747932944085763284985015835643416307589941475563165504970425326964890269881427991437108156733911767151184737527962327827801779302733884402220792302157471143931396638656865950872580697668824983490995678923631396668197171245512103166361443929826859219370487652752672056115420892941619742409721440612427851970603012416330196605931691333360616525715165840425413808972843155824493182793141240625806483902170259700580545768393277100816593633572585301409214371040252686996999098017303443423003495097289959712024208349212409347986451257144896214409140984551552927138997417867678492434455933469652458953413561775090984728779696015836285916254615769353532401294621958322176040409199960770994414979839371244789636336892290118499735557829323175118217117268461820806519290155548886993007223615006092199682444616017115373863524577345215823843975821709542294402066128558528497082347264996935926634270110815411320628154713109560412822299598465570169648872573609969834512967466095955939361099099976665277358806025799891186881792018025982291909104681342110888648664609033368718411993956065836759792710128101950407874853994466765380826001859875125083947345014948912324971477949641899523792298163696466245502506990482397752789464405366601701984544396665293515951172756577305831904435875265419235936297944409316855320177124982581751322119713400522890742302747821408227783756805121002607804869963789686286592638874053399047537582989210598382088133308258747956512704161238983789237780757075743850088998562400519411289374827888377996130769938388837225308930257158675943532038050072074213977522055388419834230018013654062911158618802364014615526967664181687754971670444373423763193652883742261030030540073558952458711291862278342015916033342937724923998611450173466090050464408959177529502448676168970303320326439402867528599646484712183758062452559887416893892803387137383754380545915147795777301114078440436396586299550908670112910722805929943354247675684556423284650944314450994029012642111001552235985576963492560961681479724471457910925935112440433786059542298381444761634185277702870866376957179968997398079432343025678358269156566962987539869160466520237285140166095595050269964424366186663435883978240656986724127380698559548075911512791441339788986544333073157514185631955556969140636089247385030165141727054401786029203682995836303128008895521021654797423676243664911118750147798637575249473417955671501042930508220616404900006031714878651315721359034026509578035879249666506755513471131601661802882549211915318261770905023657392017876274113734605877418918643757956855654993956613335536678416716143409451157283890461020595247138238430507874420668432497903009911824515653310863744666923882115075083631235621472815996896130377340886781148460511370615896829173225993472891842030756189665386894946876330963874164573660889689916385294415300190942094310086298193938627538400644356305418891521799410542862091931081412612951436582285541469114153566160259992607135104513588458244351401892150244878849151600772224001391117089637219400573736034350774106740463683584668378616025670988982211773513349961640968038538601268859626747799033391956596781613048080155169884978203317094756023913936599574680879269114765590057393168435209091101313821603272969476162874378437236719217590689646134859028862201295492121998045815384365298784777421583001336987493444441041686874694736705589666422503916798128774515974336332742224728054655185157694674588641737668923758722246359704772633449867749594877270166593578158105487760161743954187200890187250902063770564962551927513932741626583140417003447735189895265923099845766448216576779170184881142883713851457472924862451439144826473189758575922604241949438447814718461912892674750895605997914737486643128281400695037060670782997173642213681815449367620373877585218727938042205543325925981007548744172973894919051082060671652313879975350257632406399252830799021579916318390071156524086948772808143090542672083916647451897070504215133179969235440740224033181632083839467647626359200304973003484625697669868346622296727205867265571216181638681782816409020881325067187856831668122059612612032389996768470233949928230599021139977096397056445535643563591411976421573199633792501605845215341190450059517347991752996917878467160010901420650032653103891940771571830359058873847207953463305319808160311831553596508080610333296573038036449521856288973902244274292916042178224605250255009039333725900050460494840018146651000785161828472489436297857768721425539068844777762134464562308302369249534008157679382225929871800036316376857168466301828124354825161903994673718368349459909609624066147029630883889757524974199458580384313742567628152645636749506124940703316213112521355271042757934879917920668050182588020528059929001673786083395742966295417610280471938343963827519349186854302763012502555597531667104457422946100730305970803095417296215769102018239087931675877375703675188530755755090045921988574385030647677952979218670786727591052300943823471430532214287591250348236840967536018710334979323497546268206930332343198155130407110759358667916021208124244550550793338744910481587975393787833505513032366997552856100710976296756909187779767217524962643174147968811546665410662319633431588915051772229123052177010169245740755894811208912485379267278548119109910430784283663577036527337685265722986361248217896635580885005911540106193868595937988768921603350391474204050785717521848771504488196973753565200892013014481272151866609061476913840472935619822109410925837545247163837984570584373553070360574134093568828988431543366278070693752234928487188108234649929292195144083827350687772742614195553995001584439641302596985062257987287118467970445527773502023971042790565350453093073196857968651842026296610756573136174445358279690557170383961793656518140646367108644983181217485138528552975562147592889568891093473691073204297800010665155451417980252295066907457180939347579641417753451648205521412006179286354128052826156143074719911316781666023012600020163054463964505458090807396971066280190270832950195195307477018918419320098497998633940599899212076397431209178760346324714714230525847754758233810976446059323618159012813057823321059340457313816810881722850733105021018985479337750943770604517204518128707603675252562903867118920075540223223937903317250854802538673994444151493207484055817090439570009673900358647715800963197910417973996890149957249897600070773965950701515253684241280031988060304309606029974858898671570585309855478141790414970069127160793652970422263541564272366451136637424446197120895535693726033257523321258036336391157945950370188145964101539851131694567225775019469497214673110723386820528964985240104565428039954185936461387542872856358638732765943503223714845789709432665923206037497458908341364129175987256869927584151849286586397728972579865498082581566429479313463842099075615913613671196948451931621850370687920232978704462073279228114394399339930617943432652559085259300207827735673033014679186695801035520622262475395750819310087914438900426985394373091844217398543699609057263065315451759030123871968401434897549998037311037021913065911703591654097864038552582690184252872785312045548250823756790050010594949107895239981654081428358524064005792698502471949204054147917968180955728524301644266916456548884550347684996918663855447756413642792798490268046069022050943637500899731817354891009313041028424186818701338033424769826755665410255236346128350401114467739520902045905672740690161237192947246325963454204169761841372977051141154787761464755246194062344206157980066713185800594921970753194038291861428718193776581472037451183195123339626402362628717491681021396855640358199565497881392839615700075698698419463333568409363730270242787095799479844071372936245763540784659217372567667201261532582735060532829089593127512986789716604361900638820558663199288532304898342180325519238122918637361891932767144224952954782608298332856445054739298737169262375266452788083263766148072798214548212592088524653081948296890166538460498143906540453452028241459968301468067286274573332371655289120166241613015438855281470171921957104327941853184315630312420069709768292014388104935768791668981745014885866935094224606380002034451199684730313956154836564025858339381053378774111065288039396538762703611578025440345914400212185049680405543762058541453655168000122923146841922749197984331875068058553896191740721906753014195682126157739078373356627787424941406442995457945989319954619015844516254196378599332790033173065075519466547576507665243072983036819317804121569631180129735343319605589082298225442609884401635329355822903024313691404922947303175819701782445203282010275122458623903882529578675247361788809022818708521803327863396345963248259457448902406479512145825263898922514031188814804412638915284330506373626564383192850762908711079654459093695862202695522630325153323156826164426925763433445465696553470737830893294682641264331548495816847327799164893594757134215308690288387827707429998431493453201085197780225501519217863110595194516839084310527292220173159295445722161236345071474081223686318697650077559347966533380115635378914408812161578392143428604496986402957173144486614076732764868829088409440849614539867865922872119814997841775978623581759002998322798541039579434909040946139426463146581471079480266512146674752824653152221847438477270197774810333630280383416055177989166470674271488498131804674171503816818452233089659119027535072570669793743930693736172346884845813580453592794875272929016176984449813225682666994029172372221054129220039541588848834552707076132193742590486105627698454015882254802220586018252029687721509046182662220548647002019408908205796310738032762161713670091098601555212364853937001581233442309428164422911896156703235393673260561755529128794381386671061796628572749820867507956639840475562755387447142251145257197267747268667810332691285281074618639750143816918440644807773070874370115802900671162482742859274357889730398059998164747100209784073092434628604836516217322818541090422368296163970465262180772523344911783981597198861829105380432161892515058431458896843616733620034358768304082876496289430458848727280731513082358545572982154628605717584298055753266044730250875249662197688764019121795492044301587719386742632784194150095888559951286723722540430097218769094557316611467580545693205442921008700228923065126754732641963047896362182083258036258668800362734625267050716464538281867854240397381662229131321715121550264066289017197260326290396708224917819691041777606409448414416873365867082050696317329787915205444490882565985667947382392115890028142877715566465467767551473432954852189025599246398923833872087584000495483265720469235811573631191924667700861434914481351093576538621696186852413374086611451956171866875571192045118770559001143168577386324904256191291099967983050190717080772714063163796432493705164507372062782003721621408011464777583081997603437287051228513766360066510880533284367102885790625651404539433305602089545337800623139433903678350145571004715283228966324862801088931793546564313470604837664951350830402002368273591013947996389631072102966818564386114555921265466975596974797629810087011146768632903381214651840530670817095377078700808212496347511069773242575347474134278141190610332279534427815195043134587838889281797899169370510248702729207403768416357919456969312861411379754165779541342950250562778998108777089322891268146636476688455923629582888947277108930116789524606778444144597567724267526756392548788497795634124258593444912617948758292333066943840076911411310017757963023613110845086150457319722871970794660888323580835004303580864897518507577739877694240939111557771573843124976905247390729637634067675863302476767686760957784169959020361476016615077651816623330950382032632111706485176178193969632819089163996413859263217531139583404505484828724398659616350554998422719755089854234594031732906595715623366584952419203547293964433478321678246421580888540817191678720507310077432298439860240814566619860144102626474252721140663783466137172997148312819728572826163869730922417707807534190088387376774469195862524002933196387311867318180951221111306112985305821624459237123474236273985296628363638338452353684273437967687098066850115880862804616094486936705205456492270313723282559244548750112598081913846346974354307226073659301339283127325630659316996027793442089908061621198888436911710585547970220939507208699871700148275185476030529677740596239308762226777944888108264809885137214104470445591689241943743369969925597151948771667649848950235756467008007862196787816260314084146678660586694123718491182130672142518457452412826809105134199155749788298922390447651637661501113403272499883209850604687269482152208669796394586796180692588593324555811374455493685977098905815698836079729785861571045556620346557578670235272336620029551113812476222534337608695168409851487097590838359433803049879735887951639756828452631374204699849237212317049022959433946641266529418304986295683625401610924016581362607671474308642893744357571451459847714069715511227201624863116682930282020069750899526806244758662631476977277919008956572907525568544079233007026213940043332222032178908578295779849513184192225569196706882259173216130329562807066164316462957207662933704632986318320992381922030779932988468504741734925756519391990403946783756179343033555709002893076222116567054796311764440788400788687153695740399782076967385599626263957222963085604389341432860768937224434018177255871679804299526773732209727606322256577271386843396479810472066227254894184733064367236613331530076723459990588616461110813899469299060316587225369518337076259658314204860291279340280174416612705512071424654693746057919746740661443475524732130614613978706688650264944348575607725790118270186385888169811173207053977628991913042563571326760737103477060268476033086839842990847280710932925197972117433684437705394282184065686435992317812084027112708294410912532541372927049615094008972185607133783362457112700985241985491207756499199649678458542240400288822999999823391128291794059286540657368681597625363745212495654059752597671499240431944514203981868613880150906645781306679567383427735557294487336973799133733470612534382826439317501651850636906939814605085012829518841264024485092592004871706449066493263111018903228988414199286485537639122706647634380426278686903506383464602056821091310049944210957823925799327345826911483444711241670442789915727849059360967489976259549159354237562811313115119976931002132380676103213579860601706607933979658203520387728970887808805135861540801573485927508386992467199434591861048110735044398773184130225767393494780307028204483335360013918940944669492413017369282219870592248133401190648590752580074578838141854505774791858679217682444011659362991942764881362604357055569640227060529311341698406236477613336382891546191652996775894070158171014590633904853451916986230064546467767957994004030565781556890662575706478308067417155076327748482522010375928991489803606203048988192994350393734854644412838231439854171377637224807036249273188923239779386096744285499414323092348487017439906550525048310323916356242129714023310950462560817744612953672179015803364455870639110084984991482235959352523904182692974486374240014519176975252487919548335717118026623664777454682409955949886813412369066147864729652152353101829797865398708875701179870879899632883017550087038172771813839346035801039612499742635452692561591342671799977999348941000435733031724359190989512051423832063940115350252546649343028550639150609418216433388153215342673636298610664946310547093196706986745356971876277706295483682014636889367737799369110481545906288499783127764461125790900954305965706312728205539242702000285869575906133409814947064380444308073879038568958868119228450370249698892257902072705724573946365079436255537537806317118846874141005540811430171447882596820277194256505969888472734108756172818827589726239642320269063252703928272346828032567513384700895581312258433668528866930524822601339368004398023400850562229405328235797138933526691575830712953736648613515673099698681562830819876992779785484043831593855852079122778779831460140424118697628930579422414241231333129048677725323779146223181047838973628744827784335609507982303195298180094748854611294413082692366765179644955706672757864300402841589894728371372686365410430450661357227414054692387804152378889578587018231933884806570431152817309823089904880239185770507309173655455784906151460048930715748813841809789205290021789839296967444294662568788254942279308167722557232243673567705587489795870830261398556599556929850876967149733652317870638170456898000876053761388069244102251227216166838647620518441304295438881896372133065176284905488294346556603610545509601245901071422718965714663353608822365363838048166843380390621929480345169119911851255075836509194641137101966913801977677205087689142714580913894332324916035423720554857554283878272894353612661805396834234543127885517666823991768931522930459570024721958550877819233712985631076568733547606163169749475725194671712972480619462878771321460723873508310904475468682923874585813548154816429737167492026494324945751666333726641706397631301663147152138610728738521690216867201831011099698854012455698470257973841476392932096929897854864702506995014223924000754326133149575169772889522216544813073406572587285425164335103349737885567314678522131479384782545223233992465667752325533180045977647324800902806482959891083566516728806472629256642693301692856403579256485228166981298641151601715810463328226876640563012866343276969278128669860406733801449796789845512446235290744675747638651081698520741544720179123291922428725413573354950662504085090881378539689530517803744113330598956479117584796005559734255191417226854411213106557565526216786633322028721741552094654969364938339741066079230544894798968621190144602886378277330238557299070161020615844768527631827873852954426896042376163725829322803982365571327930490960787605399216644465765115047921276623434929988104330730830702977155816918455616935196100429126970109037426009796440993009919928416474162961840093090209016614419996196065272952252851139502987188421032763597196631758766210373912485263678871428170103586609595353284884417757381742485011778036541664562730732749094272141944631541270607586534575977492276321108272149115275151175999544327444754952457245861089846254079291706876595701098937911916909956237453327367993472983373921782984156809665561299220722513862280615863077799529589448489121829077219496246638662343498519098419182583627045255024603830258002115496414903214662699152886747040901061195006691241616233972145339890170426220200892337540669525890059236002564856752042295755955540521556550965330420420656542314530795782332128059661070405983366474630747042913867005881448317536046392865241112933056726392613973289774473922050038203616059444620913156761750498900104484842885505036571080247194463584579949370194421173036230763627218687393281844715645502316695059947385217921156071450649694885808691825119762350295717977438572566796748096898661107547614902348504586024509347556818618447814160096379086545225681464036757953809807605700588466338768129055576365733761125085515526838293873005440566115564790113533065488211793070295037660595754171596860845298855926592347350769627226665539580080122751573500234499944182120906112038734782890906750499174397201753246178354790664964981988542414169790024793845756998609928417864916900999755143146309888797780271806664851929550874652002042565305856294182798838870832042625533433126386198623740830830579650850198327618244543352548119895730657985623782316767633872672195529735647533684455391823466806277696377249431376004477437916470552783344483718125713015618074384721193995689451870407738404968709623818149788727360758470016818495442482961752558564770899483504602956373913966552540046213619729800562811386057484667119100616129122630211304693132571496398713641670121321001519544450506793710717669215660860752598354558390818249270166876169340497696921622673361657973871584478524358156698620343375359447909160527032875835945807767974724777683529329946893550296999834286703101083860980989271595280319056714048480260723588435888164428695308924131145714275989451105121211776093266200639304427570372822175194829815560182762850381186048552987745706585017108306384494968933648276090734539190273432575696706408823840703529417552127515992365341526644206332551332915914714943178272578682664817167747897240959458383968883699065228623527521432635579719157471549775928246456703034053275155503235994809623599514670149334901826183912393210129862794700029220830029713995556318147749957431993962396792260793370946354235332358019070723993190460122053796344093930483517079686192528704722565887657450349437031939374344977821421379742408403728186348904563582158980565829320608668536443796583387048243975436004631798393363090694467654595509373355480088762374535230248731031337843195347084998341016612433289705411893077869484936247009905920181902733085387689149852523894219316304456923470067775076845851628947096661074428453667108150315102031857536703952394656669310578398084921503519174633895881678283320906333600773839211061001215774816284198327101395776340977400626178423557899268509013858751293813742532836794787577815419241424713303997563381229440310140568529416793570398762605144144647476085512118562404165293825800403042349380402831506124674802315124987387426227007184172613400824499318198355559623101562318855085676719294375339342799467602614171646775154545597197329052090175780685845443982411652718289549362842283223854339971221166375664580553698098856140479115833792494265042188819719697228884063690551078542806851714619043778371140556897709261701888996917165826390963322868074476605784192406484434513338934635200999439925996461718378701329546164489107626867144779653051128735140415257677007935238001677807651502166831594628676240576256568585533768196152346521535359346953497912828273779260561130740786916928217774739071689338822032387358547652999494525192995182364082636587570303060412154155348728598617671716949789474641469434362033201791616152752745363942851315059616821404167453881590648537189686444718510351721450964187719648193616403393045863141078644736913898957961663193528528063937008293309044042253057106292908758978895182074020842998237677489240828444072317371459754842517874214433796144410574720640903851840415687337045844530428418692057161292592908212430155482951793479959417446560034183450652569787690165459126595618020625812218346327831521207253973910900828364110446267006902934036366822279411532117776930365077767335768129337888588033441369132226939850495586653408707899951961657285212108186130497619319360384832375031805240431290800630505832448510210715450365586095141676818761485718840834784251173292594801504767739857622191500017038457584128940119854268634031903119970595819417794901092464011838989462591973948892896715171795746527000019016030274148426846571052286488392593085405230659486272328980776052015867136947907390264226617974233760863523375441341979788766883180029171579981111310204050077122199743337626417243137155881550757249635513903533277426140108450146781018945623331066951741510466812559390111262164107900468946483816078550886770437422865763092009069602971385511107820512314456334819229479573646340082222040049557863153135558412779863463743404693822265221674474283750622220985617895792091969167472029341210830585031691350224594886143448292421131610975859578423088544125241849212914529460676995734779262980320453398583229045285752465849768700127859834187385215870467780314623024206049653735898782852971459219807479910507107330788179476517900454432861093054799158098215993687104982731582126662834063283253877314759720180681357067554829932241805986695501860300648859978240875084624584351854834524876780721386765022093786188023497150867979275489342201842957627732710838544311754423458193424905868388115482621140334804821929139839084411647775244903600107398708101551503028724757756294525045365220973137416445484384206375477363890335912006592808205166338026280772848771011731623646838141727985691081493881685070754909416156686312346445726613215048908733862369685819250908321844619771496105105392582196039752659936865842702241736833464756917303664689171982564726578524832645367515574155056440683080055379940166694813098137617464831502610466067565810812299058727384544630799860646636013669135073580175443095616372957779806958060020230455649858912858862042378933307525270168790879387357025880395092383909947618919749625881316321057617932348827244447396725510154206033611077713901350921807146028568872816247797413565029996476041218865371142107210047045636878366779815929834889849457426087131933687534895658239892698909148356163629346498013979823271890822363403839592489606721897205716837812941426110281386456109719462478190600108182376995242432687228585699103658145391512341417076918992117788162334938061578647717332032792548859895701372740013587444510158983872070425217573115822922824949025084753585071759395992202244267333551121686265332583453313242796248944241563132024326005709611814992042827628124894110993415135863795951656084601991219761118850612849903113252899751317338272276861190791940670917507535408704822151727448250111995428044683772610560262098207857568881978978847797282790609562776351320869914539961421881982514095885123512251671562935587487272710476687124904204338830035144633090329207637243524599899537289955958783337401680624313115759787046767670753924921063547623012397704010231002316638698951884071511779923836099143705944856193479762180752119877784155637692736500148046231515273672915096715391048685610801037154729348573063300231673351148746690994490008116170187342258096857967700986991570913332473203552292672724598708192819245748500693023343229255874707144148049245294540514956141916370727676890215844912071539123151107506042870007017138346225129628235893578126448146304785273164028122738315118187402871411717465424139088867512656831080781859718582306326212065866923142046425997226184052854786934432701620894391402348672989429612463947422068255972213364471936668373376948240552864947948808721173422507795821585860292727022817136758991708556571569549366493956225777358542143364024155638750746995465290882417705920105258843023304255700461183534897846153143201748730497915110715533550638605881753335923366856652373560750911899753578815625185875222011462486845113059620070402953544220271477614800200044356247409635018513848315318321118388516182215366678563294000648761900756849571540070537909754900747303480593298935429199267754493524705268383949605323239747647383610883028285504114833675866727583022821133304375623006834849593043159869164175460146873958633104292499621415111581964225281323054926350926163096848486306334472971546736322428251259328099767292963772485066035072670106278553380429370026013946706299232652632454775233457299178175854456026631731130543209381015608887527623787870210531348035100574168390834564070552574659340495798123632317563705896176394922483714540122840145282815955508761947672799867400174740876480152783808225461106168350832620255814671858659548482892233377018219947916655164079655213657825175710281126048035092509256404946462025868381279041098045315510768423489431634427604468115525697424757045788854683139529996674049893259168245373172829248618137285934114731639345626562189153003347490217975643382675489786932684750947295880938425616558487812212414292409194189695314524204255665186601006722582232859947863995295642454272003386723438077131665171453495860884455192957084931650162967201818192940738338620327191704094167404766567273828036271691572921343306615706989067536037981956520459847056171523803728805392246398023993368778011315435763123394273937747071705552683252583847887752209412706589027286647812554452949992727159188635626558907559243448388586078892789488028729014970923120564686991451328848639424885890486592741234997069348118596536345454357974104819717656369682390098251603810869034597236128271095401763378461391900357233989138244950528493635995434611936074241044747357781770032438121722099958774001144601151606568708381703429494935293847668216455853098853931834997606791081906500057197432214760671275208271735198047081336352541278443066320113141316266221391639699014583571761859989747693053866418142648887444657994296799601485254941660179740981044349303266170239900384196546129189790815527914568374188800469352715106666940466593068746084740908947281443303011334193006856590652129937179769780686381068988321223774447808834653134123406208464624646087975338470322930529714823929720387445593832848216039825298527798361222595989158558640831551127151465961127447095145368098459034194767362883419718686073449203568174568734240717737301136904803041300379153158277206342566959206431963568287824343069097534398651207587085768287518294839702440707421457200563567047136193522143616762610199793213757162963506346744680278069011270178182105026626980236425495271755914048566197913532722534615729658790887678120545940543423768084586316226687288916088326943821236859373831966638313115252261382333265351280886848247686238371935251848220264744802258736481113514061387616221828041973580537101795526397035927285696045792203945767895457667393605614075835528596566233663111088864863587801734393648087197282831179042389183469898865311609222718539615814995986897764257661458072338301680812689750084759472613810782495825327996069516178673588838943818219013581616556278878055214265329088234497135734556926649516055199750642353295738886688743819039127550691357464436712904114830723895248456357310476271046072674665535925612324215647626953694322081736947236748313059342619216283390446713365440808505972414732266171718730039152098614270163359066636907455958057251846202872141181751794044882545587583831702654773284009209360702157522911937290336521865419374550850231796403281828353984913753162686221120316662999594021865184748047483058065520077287691489112593484769411586001028695620549347434258891842660190445390838048012676968381370851646003607239265302433876488955528707130339898024069384404529086217477716868174619106179148401467461731679791261537196242637134234583607364688937894308497747474460992583932574849287008058708685543755350049039179342094984388359214073812845101233690027860713948281053451109989045397142154723714606394013860110521200700011251000704871893216537843146978060007176805452453831673637883128301192730854187253772226054706920926090079963200125385517236238626612494677542123952635726056825378949445369466772793991408731707008055305888179946683783178462956656382677611398521867276696957135818936509363553938942920121896205057794235776663531127571613188553925451366825651468770007936748837134744082145244408348289804532638572236250886649582581737297058220787407360864885869823629045740282482949099153307130277571636971522507680478860921916931239305134014308080465172175732903851373064735917098949373030195950344353141987479211759608264318036797946688964511201757197617452447715826323839824832142533400847584457084297823846957399816087450849897699096285061345013269440644612693900112412065706285272714034745720070856371335741281029831959561173740422398141507541777284327780842727883331413845828120330513911453574065033671728982286701925106606132217492065803664439654298703560163844808896932027018170925852054950070511002304596790835001383518158261147405326037824846723397503195394335185115148988113804250538192625100967123367488737293284173712915447137092493645501286127602766730483558893938046235726879580977215370489759647834617552306035771187802187244420537535588569515408065907320864581470189288991005243231159269483480797544713699628821972046589647526915361899578850318699320481277062479263338322444175422990448112086720543622017354902590628371036609703635923708774766395200132484413626572621649345571914845325590390913590606430870433043050479415009685715502085698770678025453125383254958656630751943055541868483931826207230429272804602050220037039664709775774052808282924097997928655726087064245050572244135759358770902482002595112403202365433023927553856905626174720222866397071041296287053378728376738768446363863462295304306340803070404913781466857764099530576591687368234736857624954304993360309488692883061380240024867385266832452780833849481534387784818887129984423210826287812882912686992026901365491444619754929006953387052426016915093430991089581230266602976968911950934189776966997901914546892915129776797063565427538713945336292127374416908691019978225991404330618323841050636307686819317566758440864139065482902492678270846993294673414263623660975540366144090174872938259442846857146400525460682108958841198578836244690166112448903794641936358134709820883828430891602279314725521832606997638909268523979568482137286407080849383957116567738009888550145788613078710583267629890663555576385415034985775344425935578969154282815860346550375177014623045669657467792289787414784410679627698937243725902785041709163859174811664278001687713291222351605603300994418999743709529056662664556277922589779389713077218397379425591919477756664787378475649434426812412210448035584145045800215204667251714961684638643649260843024779165957922388349007847788438917705323493847330343579512059434341074750399380846538997435485928832572120050592005033705403362879688820776392126660928509994962970980850752229724781292519611166621276320671101306903301149782169501021102572007142736971031007894906188736591741041276179907156066752226647169913108311821299538435120657907714139808478566325105787161667836791009794501831424987829224357132965491567706896511904559156559645172256465693193760759124847882300135295750342856582977491155229206256320896094592868375460720814232108127556378426855390786090240369025306792732361218845597783319336956392722231033351078069440250046765367967491539633024487271202493667762319604297591824119358535246197776214500116140666476381201521095687467183381880329984557523325513200845901547231808256979380001591536350466144277968154741397668349104340108059352714802514216406456652021969012346959164104434476880542072308240490143125732085350410090444411657145893224201031549598313114951980943867107165703168642738248678012246766030863906462603880627683322796205661463769367214659732810369753091926654958387760113029705393900575214974091724733470446571051690661451108635761033311974339717298534578847036307417197009365066087946162358240818632497710962390702567623250646674966598279149448323424501897729997916715069628082121520092118397959365022924164118193178258051497809973846017309812562611159569299392012207677355396612259000874579992671731932926358881999478834652241298235459284149027269538114639528681332868604815539797639271919111800734690334295888141476632380244596175030314051857975137520393126200403029100787373991745038462010248244975659518034518402646687667134724518917581630703784869545519155757443632302269092945293102811913704869843410347522884096047265915821458900113859221959365582817773788598136688391374989463999861585232166827058750290075745738325601285945831728559955286025345239726882381498924345234043188720781979224776878562390889328759343575037266805113757212457390382213637755970955299540406085388530231156351179848409553902139492673359007985309514450420208946719958583279961018045718574643545752391524503955838517066333765750272785846455921863159679184033410383526633526773835414088426402112303266031134873103053938099996693806621690008390149837019366990380569741544943371792102154718389814480211010518245105214122300826668137760537526349823738888014837572251040855563864403624834507967418742416622778222735217417467830820424237369589902110066551928996073532102125863320609788497289252682880584315373703992084164237902501996712119038385267954514597037368635225078191454952573308420282642391895813969870168514850681155171184811340018892002385606404967530126465822394527569891686293053977472737413741084868184965731087148324102689013925791307721591330209812557331360843708416828696114143065146503315118823673855857304226575636390017641017656775858321690194115018770151322807664249922070012463824180519559188826824800252919724321312631877850122552758320688066118894192508960947202952130779359635706131269395834786550537477068698000796270493789689521550554440074527961605910611076503397862168869537857041626294244145193491881065322480470550207684288254910704783110335733698495059748103232757156138544808744214503903528796586398875329036544078911443729702296336361840069606951609872017770382258601276735765856585302605313937663274443123480829059185740286212294779724450893837589845938691112664546293872794873567902105133162734726848097737611434793322583904421673041154879334956927300781039564722848718735725686758249163123299349646648467063640256479667831352944379634871035334155066273383823484577240657302125008158690956251141347895279376230921103931147598979163889848610616598425609864077517528574961939346613511835740490348126893554692471267829550355201423957727526114467097061894984081579866692107194150584700067641060716974445976672262466657054191229446948276789959730344496379622543420093704769107669142524275200576374743710007977627303370631090021334368685097151615150490999109003996993150563613420073406967370970101000278822319420993739354055986288626380968940788423396524506375491039857044950430663870917058366008390330733231715767807527667782948707608158117132177402951196083506370492563854776404401428309869600529646521384380195860655320536205294603789244782079824462802876233556887034667304256562607351596498006326865126579700994748841539776792671791292177135881325865313186774486111502277002783285274531053171585034222249062303158489009784022942226943099540130641825162985766220591684959999828866198361963705078137270319794308623381074542087036952405306361368985426256718778554028583586601990635102314082654122671394496042987559326860888399827328365539844683535007401774947999372338572494894915402512068456627559478905504176932794711084153652465491284466371788982909442738180162164216386892199364833126627493940203379285766918484640422354667526993022493986578115684134396685487886080559559969158377498963742579773039088048246535760012692324284633855868766301051237334656895639847359309216877654813974458473570628020214105277691799429780027655285285449075095444925793089852670317498679263754498695239045213674047050240614421869516293435510974046117966305832773338782845192758711176000602517068467633132286363468341995187156313519734410774989358621182161346197769350779484253256820161861457764109786526335893886981232133042157886784630550264922159480010436158789933370043734417751244023005844234647955485139116528699362386775910856612414417570940153151078301219224892367668805229488621825493498561045134793272183966143924889095863939565944702247210316466861373196685914596867351202116458326617962209405902805049165331234626305698414916300882234230439133315717657683888071228569191174237755719983382606294768564189545043015401867607588891533256231068293847056862417116170767652465483610932241742842301770330344741974066984202104192526960176892024646823164592652632136440251191607653686777566141521606491343134009308937220660461921736871697852877021989727481843337231727093312620101130434510773509556450648056967487295829051729780955393773804856095573185699183075375778625257561419246831507526975275188649946067055268705612440801046243900952563815373754873805911955448734682366733941019252199607197377970503460774602057505844235263337780251305253929955676265636175642652287050046422118596825584082818159104318435871003621006867651299525033393984271341849845430894285993469894584469712945879460309686002378236776115248963901583658311270808514705081155277630403812597312468607821131441867654179545624296275989033475626933740037405330368098193594835516201582678831191256612269688854497306702847152759215402410161261675505025114385149386855957548595858757544088454915520262530823239981757710600926804723464690990777362446386592866941156419800456352591430202901772474313032679147759050594486958592185044864287366337014322503058235831519814030555027557049098938318032340998915798160349346737319636432290291781153372414085561907030645361878420571818668460564161680157629658169075260174752609991112986010990161730979733951857918949344789929629296948794432595585193289439229837346653311137837567704197624757602949749922764430180543534124880194645089987524196529674339928894032614164585073311460070717103363441033134061263560400954878083166895366966253047462057089678105852605021220438350033463350237719935537611577846356059733473347963040117125270600793181881616835182397090460214838644557715471621985606356532764744995478650118676534613837479990921600771207662339207207946210996168341988332059647861028489868175989903523982878422531574780253421489187727969105093291500592916149159279816699483061043755219081080832988991658514275377950155633174544107449388203721381168152134416653391752301564249458156309827738611520640588530647962042347433283205513756868037941173367885543934704952079339418637088369216221396265677130464241673631013142575139690446323517182210133374571761422122834243255435140236241223931358886075733645887640329692225400158484500112762302360326151391283444207254552948986865204705998088775206360581643019304127962941331326305636986490368818478483939496721534907041039349185638033416180137398544765651895464394928617170951629190275588043436017124793022021024443656974762695470620806313755712447504609994514763562947778970438598388976026284653939053874494631052589103189648751762413455512589194077272465597068246460599291180947537366115459707755886837169122737583599629115798418530695952321319303911011193690644476839732339099235294223717209031345885577857525889367066869981712623964847597056123543967302087625743829490658945565397480479148486068368642405441946139673775978739534692345245305373897806201937422976677076987571310728760878390547267167443114629675263527320407840759738400650297744113556253843635666425529965273844517998490735676340753728875706333148524931398976568233247877459592522258147269159616107906046635894110699521125422020279492135519079813246624761834800722051365347475805635906780975328607056826924986111425503788890973667950903744392686676876571912737074784463112817067446503666903607570613678374423870925382978618944580193997284825150004735121125190665331797951804953394355146258134404185249003920964798299830367261565647554200532700532530279853230555340316651955426087656157577820152279811594814737083626336445156387321326221682047683718321396093167093265319550678432337358052021788128700153916681585998600738908148133335522580011148793967716633731773614159987635713071183422514495773725718655352300000153238458147673635907098834603786917818324584901446813873819248173544976261588622629180033907048685318244680930204316334956875637266279293557989115515010290329171733332532760160594986585669477772084993836099874780530609309627877741697394165644625636272520599549217771895750362459372824299638896869546132594007585267144012864860508268009860099390223400839247389652242476058123237211227974512195977961365202111371755993420386398768526304280549133292931704422295743218283145483682615526969317601514970008634519899033223037523603211618203449299958464930182169488339509253738515373765184227260719880011235188362329127466980111250466866993809485719079018628524541909784212727289927500874816192078053488539235208262202635123100807332292464461513566791614040083557366406569611718110863553066350493760252545095253418455569220163225002873808674648223369538190482239845811906904921664138904923825810096809798372089632878844380682315090065665640328666550676887447602634333627646742558266214274881671478657813974262103631046741659919224665902232630011565931449819723456870010354296156472355860798808381052637427122707933566076952452122377492124445835304257056939292887421169049806860366510507823741542517876930547515597643803218719670995825721722379370300456880322742418325344976663573762352379169829223128981117237496905778138283612569721807014245122061989159935915934714547905472217943312648353858345336325821349487396342820334561238345181511000210327709364083935650175385287725512479072265913392160855834610627006731041081014658936612536202689033939671453142952936129359663555724182574182896112061770359036866226178037093781700228493067320540572578690318327344385744868856454716457718447077079401159733637823295947210591157114440992609738653085657624542362196361867145685495099132167724424337568079770169162727399206337354698274649471649446533466559584293587735225922104534868621378604947682810499786861251241980944490386572826716135684678482708939232761753537790988359450776971868018859865452345158609275287924933886891447550031499284799142875911323952520056095585994482256529913511908238405362240173194441101516905130004501724775062347936777655722747244954497776758925195997499729797208225988717560831178658525423121878325351604253308980607052863704992404414844768426101955644334193166746277007137703212333066472592488565911726075742971987196860787337754658772782465142499146349653409926602067436380683875914012938634065857619644721064883491404115173287788669535940968148844938667346235832269713130997982019207268847295856097240715634306212836063314342549462831571505510138879683105218843490098223160356563758427786535131124832015730831614082132506323468551218588534220814451757091379700396237129642401876560591826257399707312393265378979690864112877369710596459562532687158644171856725898791780545809735545402161866301672871010411667729647951332149955570622107125550848636572615459652637171263576193131127927384442956810909449184194793278818458749089336015660034527137524358062353410538645596868524905101704200044304781097459924760846937937532479939236159792320161200437555327726998967166235394777955427599772123102261343366975464277140826735076382357040326650935735325738696247952888174392810931554543686736678916843444994111631510194403108101132499822843286584756732986388891457455025191946654966674784248046212867231259833497955927908028588494104356594363173177656152630349465392028484266171945821063315253968588675076182727588722587524183867670816006535256261381117542820369575432322173982019069167127832346724997806140735447633609777483920162445709536985204671464840313126997265332402614305974865931669017971436926926793004098422982079203211667475470832267491667873717547220487277829030153542192628290955839472858500687241642086562086217040804091498824233204214003012043898549812702096603233101933953252380870715106001270552626920043403706000940353215766838510777008456315723781875105659135421146938474373212268115745060821011376015286961042958950891475015038928843665787526122271969565995996030461497720755988360648270788507487492073228519178746437505918434805847421907621362401779397556556929176531646219253009490673908103046973246793901976239000024556548399847834551952829458611425319697199068414908076602877140332345296026261085573246814743830912846589057363465266836334355517258670631039202491075928803804538722044515558023641742124922462402827193348731827093730740908702726219353111874386422256527404636645471877945632888630085671689810843037410825059672041381887385843196244089346902765351256337833573275873414481352741163903177463845147098698457239906993053204713911943232126640191076119628397960184351266833860207603039024345508488495730332067255195896919109026700159328767093976432188333875514485755070404381298452529753658734835852926995268063574314816031130874201843661718378118553443895248510728686005459556024259566472028487755915074827036210476382388874801961017678415296609742556761642738619940313704123553965765705924223490218832152576499947170998969881358032229293201185535045272932840965895528595154983690464277877217666930686775734657362270607111836840219901287129559264873659846451416869000921029598720222679099374187819162660487707086903655053592327454401482958518958252725451540478332573957714928714341491221500582278708501352022394963989861390878034639028600256974304681491414273136542860038348985130361647337419254341947428370337732987043380696733415458606992317612312607451764735354867081790887719079345418202564554669919380852703555692034363280048887781678671492808738875650218384119403388660031246207732260963687839754461881579414680767758389957858367193536027485788482940236989207687329346040575525470252804785966707026963675045540334463624230837604930868187125840458403807734964785340071531403995084886527315189232160834984576031400385337450253672461730597004600515501205478378540532630665646572580212387396200974087268504035710146413529194762857161548707791036236076525317192239554539158706308701304501679782520306054612115442405004691422115940149581378307483513463135461806237737429305688994720227597611983848385973708381192205908469271426467708112199771646625649011188315528881298443626259136508926013840886251902901140218490506397014080910212007228906068132022379941302673533926828608862980430599074435909643418961632471207047879228648502730381337430924647384399515878954024805296993197429956226639420871182878282817367172045980436924798416537949498075624219889792937292085703239237912263060965421604905954205289316780240296424063852509234661081755097843772951427262742966858506062638657106611071140447460653634646351429103017752649816789581538829741585418994082622455402048103302897975935892544765974433783193736893656547694366918082755085715429663037088183811809992370033402100649824289487351702708129495487218537085266611265322074695835738478563983711937912727934825907145303633433262544702274292617495191277837737860205536012163106954342461222987146197165355613778780583322511374140821684410673061110451026936289187497782228020546714749698130437479042787405552970761872922496447799825873732337906122471584130676766289380714404187171017778012502454987595943732937953765783035911773135642165114236927796842654307075387303805209946389389643508799201473294004047460850877476701347429747358505963121812686643708672883995654636835695684972219156112339281057075620356515053801492355960268870014478190866237893659902086436909379224230878759215081308849295896478521145796341333003844997069993450353633160451330410124627790644193321186137195766873013031188685132575515928798103582236108075495651322032029342048382233093786697480610020770503365164074591977641767579600576906991194320723162302917849696625465121061461435287380496287165636146710849945076763168620810087853315263610971952454494392636306919140993702163785426133237070333426797022742459664842818201482604581490917664404829270113637875849642414741798386262083670630136040879743317234083682296566221090059602332511005486745911245096831629187839375082095825367619148003749414619297638803365431262290276437520520648563100596713015422094793455230827744244175748800643352669014420947269380350008364066915543831905258942468967543641516639025216029967021028149074006044918545600060496063666867223568844059326295926773589338468153306995558906522653476035835627812714467823242280057127573228991556355895697229503018816961163633144143121734086683830039533498601671851239805276526656946600960249545768413045979530240969186848615619292416321601504911125499054757102000205269570397195285131286163510672497489712994430725360631466549003805949436036045348869522389979772517651089320309880691853242728318140088361814493158235817993380533159768496566602375768825440302409806541156764615383861935846746242867809761376148912152749819907055337160769351107474787193027778217184318708716096809646980167668399936725230326996523395634025528534991760975438632780612649117754331465809192074815058096489726706504634344196995258739043152184482383296355805287473837166705470580813257577682855310334195032332588475469256905342320289309231960169611204534395684154578432261478991845114728885001542468359731949974912938291725721300946641213476714465297575983400611267672331595990805857948795223790732935656745708170763490486825119697428291446194905713083436798405379346437438417320868655359852459547240112246001247295905339299517771750837546921007188796997805614947771617463419162733469577313496470361814033475100878061865155802754772024084789730877996198969224799995860107701206552718097690528792189938552205641556348410198533471802126283448892422293350567379120015781618653674660991790912745012746212609400736074601831935734353177546182171635000741895585771381039638121259936338386279332758415830148972201514648309475921913225367611036391282944640032091341273423223730289752884150418424821240818683149716368639896943108906515296807078306378025879411471006739981894660183405568124673107440230613712157671790271737949005143538707554342885779386307860216209281012321713298802665351093807702427124368154505761916001354469572836216209147290473111056313687977006685342330957228702609539253575153803458070475655095228999023562763998988426947017745301467592851316547295144951826976664050023761628213415013648662319038738994807288780353815797431554598005589139449180599086026547006162516939978652116173881047403518334024129914772415207380034285528299344795292876770398003263365681981751729289728411433752713230914221666720602022945024954281940664305629389415234295171442533305326475963066195687259844640800143074139002502621684404500654062290017347002065366750131728989971261228463366506595141029745358150573608028039599545961352390232882590544834305542616535499301071333191632343003236421184465502645942600048178256444422515412601140209267213584408741390910565316120556853669305630211607160062428504184432239160175505276767203789346061278058884143632350889002725896098526197475796887664505628278255873235462484453249573636315273819886074316251752871834441926073774117191215262840098349222439373848665131450851195959176974471598907427856171702986827005950583715982527770906590486078559109633695854193927906030669621339039748447467011137579177972999779738210251360403473933629630679681157422353082497956580408730215213122696136733203119489239724096188501887384688402053752479843476110290559431099062418710884154446955700425596981306304930211152828196873435206924735250366143637117995465829373084983117704184293798464052849935826429837437719265940090772169353738961017648278643926618422282511383896774240208503325830240314140148259983324980301991225968532977556171743396992137092125891557446836509866546984315711562394392201989871078567766496243465874846837038944626142846694607449836695691438245974615427901547061590937511945596709735991906717474490176696278872039001142697052126932689784020975194677929769969108728965241325826685175707988773199044153854500147398248430576783898779215679876564565954467654342674792854790346073386801183634810254338285338210367419795777750707211587344157207301746932470097967512275848845833395953559533201030568624799702727440630281494442477231697565925677573592386580800138029465018053050109328082173797263616861415632106355212291947368296756335643677351237862894723412104175080160749999550379955449795636924773250715345991964400233253992896377868649382929501278773381628332337841229103358138709415117974245002035630101033887300164305193707387274297670556984306078877518028114397221126281692411758183732589544765181246657892774863171201353715549191065766126657563551770842338121894879532340045115040473249311405118261069670564467562637048536228975873987668546224278897106748454835686703057101674390856071449830782414907689330483517202389053091267690632015110430475658681139004458435764960794039990451854997423680456266183644129570888321910357275623660568817311669417828398752036788131591344853597093172394489627425930642592217549319112500952532459838110440941025661990353536926689978907743278190178686148888731471020472623327877696350536036228353822407003393687130586271700579563088465095895782354774400890824663781858797331259889479211718202197899347307661695741731415351950298818216679542924324241804480044043491281540036878936256454312853246671902498125751839662575271685995008114756032526923977022567525388680111475791931047869888895049723607006929800274821510254538199204547848843738399121835025670641303037559306099016120687257658226412357864290353473949279357737782777732564292696372932462443122177534193770020148546344048372241707037067987793118514081763882939133186018342231722023228745161124173488736283619594493715269869827573210325182588819615941928686518549283924467590935320365256062744398432811069048014813906506286891069871765036541638534776115805356369974627981382108489285000656163448682281093114868799015390767289207854577136864392971974714331521726397810836556740693769206922891932315411395843573158952643632312806559928113118941282195807622186727834592509754844355840408323721178662280525317955141179832211643093019320122474497436890059644961715338720291659050746395693741116888214982118262589175669557203558403743588366759698554302139255604965927826824664987035054755911672692016735167962342223372675967224161220134973903372776036732025764384882628002603550640189136893255267233992931308710960362226007024748899481846099316180395977407269481806197348436947141372854165975720643261442157897406466264351107017959699276727521955850271828967845108579061948834015954684466756495108600274992879838316987651906068212182184469764948221277148971675579854659747046130215726331384532530364093116072643880566457391340194283342431865024164022407532114968974415042533229164466912479831408008374864991202603758479701272842687820370630147293676540365683128712718420219109439090749836505200474081685377596346336746697512386148005349860844105633307016509170259073924075335328780512026390637327438736111092244752271214752793253307623198626590007634195253372476268738436532591613184395845778559790830756605725836545707954123994096535848334755847857510648849372817010452676932000549183798322598662278776346125178599525353094882860425916565300420611948849424830586595335958668800799146541429791642735067397605560434141364224913618808106047692252383670019046278792133325774766998011163614214800140451784084633699988933331514239377886469275292160066185386048599757369644482830780359993249391956510669117696000223879447242686324134155852777269181333012617222509789224046740872055581213646455432801772861740907926502733092991993543948796859324975557021804079629613139504112501038200973209189593260974848492507291243716997011883471365241527670790714124099716191558909098291705623703416733932469459733522174194047109575566245096518650484875943251797223685897275488890681608465930579403719978050444918689887248397039727553560043579766141327849308989597476357740181664085749013592625786712216267348348736350798561857155895084278645550934901038998771524118448708896655803885741558783886392018591590226816450151941225239391029377258982693350401661069538776966564325215633932540079551794159962484066683987066130122290273647565183127838104596308087445715686043158713669485067424699298783186127335447907564897867941692568547674807623548648380119739215544514005674215151469213482532654867609132563440253686147666859028669233258627320302640278719841984997863748549492551537093987530285280337936513707287315186582635153154321966677402344719449660965779939150874261111940198981021961448768859817233510712783294180972742734075825926879056382118841658161549632341566943754791842731830132112182617450900458322598353354488698927299057909374989150432911465072452492798703998948799740974945055599513212856372637880458015306991064409849436814156844887861974077333710267866517420741298008997985130585713049289564668840796025041444383149093094043365958289212473866330563643755672043549351617415097567184435810830851282903210865461057451183669736617558021463957173989764032139333737839866250612120418256749507091539263780126625819058271108688715805252772598575226163736628555721748943109396737599851644627603069314806241310729172050531292132337035498538261826484429412744601529768178280471077636752850126123486723570202199620875443205044022432676589221467583319664296841179261966734277128698817612510199765384697275903752831952979978607812519973401918856005345315221613054236642730816105767720946933433751378234000914524241529907408553657379160787621407109758832851316611218076720655963447219678357937210863238683897114239528572193586231044974341537163601042531154634769220814035725437073457703293809767115297649403895465886184920063042304899082625940629041533096055253101756076548625098699137266389214088745213098321653449775434432757791500125801845868372807201666567353209689304326017159645923741737577160374775395443310433655543020046798466521201717138164275253359338518663583136955185849924562840953739773800826041437085104214467840218860078498797466129270128976938426721465906961924015152623379807467036990488525936838251680286931107181395060456499919508235753201325771254131794714739963667022858275942453709061760057274707513493505961759247607502930127686202988304413090100731393722593613178504120201327113543518802222483948760492413897969277463263402304579418997134493434288935998926032497464690528841140659497985549321560917338491272398445516709520872980928288033932569109049401404223241155109341245112710344806875477880923674294882407282965193142916264778276442918723162980695046522579266400855158964037998692058427063326952546037804527371555655893983898022183287651032711644691086867596591158654496587906906861915913400616362247430450871703418248929820055540548577443865429083672251522322464306323946196111972468326620467782865654558438564883658615032394412008314665819304900019179643049804513081483350598107709112719215665478158346023220899783145405382368515831827425541468061382833081606858089875785591731348904090076636802579311551766700942756411914135390942996239009394068167310377942403691533995882838660770221838354947841442425776664124296334523070543931699694092323050494755321657012982524354142684708940297304882412084850251321287330458783979309324514082084177143778906656017341982650958413290133487255772236657890765123539139757592334134174769743545580163409140755267502705615471078081698588731593008611813329255174293337508699207380951992718385704051026834711170550889079872075972047999046086563188388197261415268334217598086429431355983004003885052517058324591113186908819484945422602838264223347175023653289202246092090686752446651298011389169421183057877278776502728702041149685440388959693744024538090343639039265583372964843835902016715971954692552331449227739583249366685653583125433036847791998512235851713692848836420579749286241808332006208031064579122501783324022382205577338579962901970266483053640706865417353336277817887485762945295459565065566108254070078176755143756008472456662273471101343539677008939169498371219044104120313766634170666210116997788338705649461630684715376959123040656267371164970777086918940648674067359250399958318779193072052184165037311872283677787592842515219469555199725608635023660123875186870115235413992928928987534806082469644675112756357692672247141829498600553080344849053929779307978755500074482870603471379262666653374982398022703486240291832145000619542380070901427881010188796224563108362259018089624191513079363807254086360542154835007289438039893010821420946045296890585038246236734110623734710956179975593215215566101064240786239938058281073530114746539334885066797717570598538322565187645221993578263698530686951615246182051152181919074079160294674007679594728418178398396905386881577465177521890504285171072360917415715755922586151197544164958400879158878373900945804933314555956628584434318766422591601632627285086064406637588619313312254390262075696770800844077420451478096856133654990647110183477845406150298810343283309291091231721198029882996659286564241531162189317095157726211579238383003220714631913961097828693967604237501874650428591108710300517157601388312336706447489348752471110903721201656149776379858076815408774361863743951894153340092552058823555253833721961640718270899856506654515490054666480542459170089593546956530684099398439922609090837366946578973250413494053433519218368051374172075355456132742118066173493279133325288808971935711785979692274425524013326044636496959804725092238697896550443868603842537125730024704169253344473437473624044909744753110075741276808208564901545503366851285583692435015595326446071420956735900727352926835659510878551853282847494449373432806516017002534758331506323186312698055019007618528821049689889627772433572208264019213543760693006565712736254872824358925406983707662379547327355187859149893021333091083511867164127428822389509001857160016607171674739034007971055985793357102215366814977469771446416979276100636072867520177076636125074172772173458449864839175148977659593006539094513047326920335217417241619942719498382879027034043265947277471772077277908818838818782057070615927380169458664012626044468327839456545722666395431068171368079627831463475101522391656731309587525443891174257073712362243133776233953532870024077175168896244312424028855190633589069715512702492372813746708101526407783969224541409452157534500992309766404320558759273548745075862468498888968598038602116191463988069924717325859519329585751910565670524611264951094176023312185876315820743342498929965330619446316931503360816530006003308987936820008829721904156048842554961129368032507227001686566214338908840860296806934337290969359256750576400920610594707698794698826987068953297351016566948085703770015447692146267513523971800939586935302874442660205317443075142182313262832787054186657196955616325887131786239835905520446368765699498385142593394382916505967068536668910419224462027805251415887610967233152442645952392264204119293245294772319367671757876569093088821240954892883992647785528103077453503739637119230513334417491750632155183405760466232495159700451529064064601175727787433524522849288182992106618188374871526445323248436590432543095615638417903355243917427729740969237123660413126258944509404835815251108746661847037211759000635240120868536198619322903670000673637743489003653223556583619826895237931913374055185888405314063295177151439318530182858205476717906503175248963075280000883054068890273088299639954766678663291070012975810259331628106555703295942185911200323096139396649726648585256841606960940703901157242674901300938101558736755445753224772487289564360737802962401696562620404076369873968923781822509117229089056276013478463025170419747621972080063894639676350898331431152897896532235149063766291890726174877845077398696138621539261581543975230354695557355694947042682982070339296517098789165800644915605472301655790367734639148980810203602532843581346772382745455723416347855970452265875172028540432984521052578367059558482917353596749848207853167755715770658340488420934811220478283844138874344541545507132514029111400101660991503064189062474617733711631657876010297034056152107939441032537812503724010205761675031253688652933782793768804936320982099660054325817937399556460802330754116070021150121910474172344915668114297126071573846330940697971543349000293488150823445637855488147636160987116650421048772981899444150915295120755918399917494966221766454080588372786635758252204661095020052491489250248410402466042703907764010030988891394571026196271494069494422645928156995150277606057032066080595003346905913726995644107457164362949739662571712828121710381108660499833863368116021544130410212510185377434785577561096888234761961274415507903484456225531725498913416609285695009434404256105332913402311680053876771608453278528242051656354318776616065199138547339338570885241224280227842928393450469532762780728473863882304045563095702943043502700383393098082931180483520433865064755069266682878796689280080036461456543218548019215303797574402941943515192230170139186879332493448569232850657650972351404646014449451538891016573181557604506517334960874035777498415647944344435701433328530576937218280187853702798633035498217742350768094954469972548001282650235903924705116207901689938108291119509038622763409118622622297962004527708681380215000871144934768296143683638668370533691251214181131728999695326683484467755919930513065096219476056443487263161979755864523792721955779046577121594258731943638173080881257494789225131474312591015018495653205411906134682466038962002090336641096880556942483429320755893314117166672473057228970379300994004875041320057660594277938433426966406147211386726628641377224918273395594668129177625612642044774814818622655038363829744578823290028301705729227559878634386841514000167226966876772419708341354804140610990480782332037105712229197695668625178511465521288903013386644058215094820131073326899697972499638901919156046579478859175356052571116186207892030831379538988005774938108036735366168810623802069754629491011437106394560085106469130408709533788709274300064960842386931290264410871275752071548678403555014391981519330659125591611665829934840824735438305539407708661534273966355941681409801501817150924214350166380007034537019310434322974411684060362305666162648268157221334058135602067232492441561833684302822637765852681725068610817151518668786515281214205482909549285485241800275003068103028845665675979020306547114349524169027031894147297663032635268643036054264657760481696611160624154561147889589670124096348886503485416347113454978458278701048324512986393869143027227604660114306455128257998055415197639964130992348261350081073547509397100698471329829421321306559420204743721535270729064588568167240320557021171498842593259280209882856521890135092201887710580505984775972002981861706366447464268901618963872546276829624031484258629901968930341370799711169520212041495400837996866890782788115923442040938977395383945182508123410594287267293038550575130518594971600180354907586930793085356488663393018590267408397060237533968187948596001409684091034019065634969865108805228040149719375824227940919033374656228180385533550798510323286421229333823888198617663786214806365959687794743029777087122994258159991407208530995378621167174757605469663139898477114166997238130084590135689509462224495991659673327042568768398587074299778169433580354227522172890043060677930892064634979097627524033999083150608079616902648405130849018256234755004089992746147455804275995503053935334218032577380486406125229624558993688462249639142239727334297397394274185647626836465242240550322188547804259744450771326191056532367368733041103824503902858205559154112551020677002734215626211465970229795705512566760156289181476495622115010848619409557083528391316089872983277028351814375424587742320142714652689573311995267621560244263347536828958094744961592011815770096595798803802567296398583495033440458416592095036878817281087282772327357098342201924765991949664253949644318169016326713720978812062908309733181057602242884497161318222299814752756822925555647286074986527278790102138032073828181847491531337675873394801075249043243945708335203201014939207837610522831514369399038862096568891712389661074172865609062978903401853680490726844735117982823529086233477185632205010938780391521254885405629296676460111650620068163117110455720898733356907867764192397137633864807997994012882156967064843415080173055986011143734210084529216121510794573444763862887552463053584695539787557543475106600448070003521955702772510787155790948705808604729957476627217864057074498956960794531085670314652412415760939736194892926248493677112576212776496932317314133315063274359551819470064554351957411723022964902790111246063046021997741931395023628244913818618376022214536783516769321522161371370950372468079778981656050901171571014300457186752465058115149430702911142866481841304350641657300693062883606110319327312622074960286494667872492702430863419533050418674974684453747269702384215086413756050611979624939242117688934286479545643145397652695537140490833618168430162015882256970848582474819804716909713480225727197843040662092033552153567837811447279759729738979723234019080207770560794727607250458718017890393968208845430692249357118351454809000743811057539443663097808781185719160093163984601694701426321512040809774035052401967957437482993854675532571099701579560091759206982179105624064174713497176169085575470862909507599889780330616692647122818439908157956683986061640228530293956038157421926193810191055590174301457216531898558990866879674872836163704987596046743457855517010243826638799935842184691855372859673627769764251051065454166318218473195794817791827647755108681352512354106710955202455314258416017389569397770056819765756484715754515151031637377503720066629563211399765680136206811171704982537062314557991722645002571304037860752995840129698469627778648143959639095542404476610836157936696835527248869154053354418765841350801336338714402769961946835725387767157394541810570505611590782361163410914056339576852387415296077940449544627029998928381356353378534470830427002777571170724348045642436119361222316819271153732510586397331396238410282895532857689401256610804278947672363190506412323035291790481604747942810619786439882959995575763548090323495972618790526787658592278886873461603212262714304545211166834724842141791277629825000028927575928461027410266439548651176446723548846293372850857092596663495204472926593119798407170187018406464839075784794100255270710676937252779840965043436838242540677203615064377488405173375357991788058797927458272022864645773487626153071611853428643543307213978635475003025242720758868956621839299274141907457992231683850014806640338172046616487262401402055773077525297662116241472890585957689834632293017823768191046869147815240333979171332458847046905641812094536825186027989496582862900669881337959756369312955727830751213543973914768774824898243792414785215899721808076737035711043323930439874440292023962760365031094872537107945196425828541552077921135688566334388514977805714785881724651069498314256448575820489069166695959899379058773835817934301523782928104558270246244014337555693112137002738191705336952101508019772204111871576354397640004988550828690653471108539158475185903924709128086229972979701441680386399514977780053305204889088718467425491650072353230775967652451478091374362840004935558305964024583543607744963324862412654399108676690410120500116297352893870744271908367097123020398812300534768175598827615964878342645181935735261181853159173811936532471537948420603346658928453747681678004056068234167204982256625526124605486891756999509161699688195054644895434999353716247926589965621127464058871717255880161808779615772549462762751447769249822266306473696159926427288893031459984257354747096348652037354808899990309284974880962324024785057470127492466318425431406279160752497747087289308652521472772505153377266302469197027811043852353677765487373537682782401393717109449024755184074974045371758042587437356097142021267618355898820224627370741871585331860704468565043449740584622005698568916110207764959329249143767707608228460694459329434173604403392693063821046323952964401446319987373746502266865520329305579139141395104806723393422624793373999305590447835359625762767776508767456199969361345912121719861361240250669747597423875385787421292133752328425267564048546450198521649678637871403119416240654912569917626031951206003274260108044340884458357666061276658111032546533098340643832841974649558842650040702727943603003203387140896382394998550103627358730101252276135156285489659398496661464875406211002821155979387071663527166552272793688147955800751929691401924666699703370363339774800623544451629861681015570169241685816063914926593358366378906744720199220655436136560877868852340605412070322399427862837877645823229414978831778703827522083132566967543030628567763370067304501060175363037469189975966419604284243934454585275798684974467609486009218112061070107497742895421988993260054797064913764582092430236257075622070209862049120656068112998606192335359954081653714491516971187664684072478392441320144808171502051219531258717121616307332010636886043405987537342752307522682666706773144026470945837009794904780429060161780943857131648582644699319197935878621591567764209076214948508436931935051831289998283616870013673111450661056273176694446273318238238005660204597637793294323467648613914600073731364371603481319955534311438052803922622833300318084643158096582317910711485256541586393536293153211562727320180818049980512989631638142481835292044692537411549507788687200807564510906019045425833677105896446219161717028538154411014799965383787635630579581832057499979198610613148388173307410961760348986188267161828037986671813812361081301738011092672443648370221621784346103563976611646593765904848429377115458834606972444326727523513180015382213130853026078473468670346882816022524015018141104051389052231956729781398659170935304140254326295107587767658594456305935322802662964232343120826199375382047942278277731683328410501656588322373872557960327828597945987595735080595740327206572534502209744105351714185835403370561003310183119589652848666974330724533259987582307752214749115091961924850520879898109516009095240585343246261643564388438342501171562203044882327869038612357011556380640331605288992126855541051954760199278915234797869069663945189498050397465963192862043576066591298188217775208699555471639637074296116026902599529456754601010197254612223065198917054074174749244205501915545798907425346404310592477815949138045583927036937504592669857883995855490428141183338379427029388029059115498524162772305441987999677400619206743807729565597049759522255999708943024313955699851310614243319741603545815708510275579061045951604803592716728882115441531311878874730408900395610516385780281016804806823066185164321223633105625465832976931811450418360915893417453544462778357394707521105822975776274668616138979997703792834540460262705766124301470858155926669588915002019643508099582113978323085923540053898584650127899467765602355446772765276501849889310011823699689109430980878707754645375215523828395771204783487853131262639371084044725833594511708265602976972388119891582004470266778279842589744589792152277589931303962780134397022966495337567331586222366727597643776943533676694148104193312581481497448437659820238315499986054594449347128988301972063414146784991301110096463835447630996014171779225739292076678848638153733932457695666899336193776486011698730322703665891946163344104601175601036768493790688861256880678137243129360921704663204556001075218390695002989792894486666644203271093602656018847493835406706126581463061872529170185792532354871850995731419153398191595291757225491231106836780462328889270552371698906745703861754506245274516532893673381621714618390884181849327657334936000492091245495435072532041522637178571731308349717376287551939859773938682256926576544158013361341614401129833442496219735307073690025617051153756463017626013296333150360521342597631968291948570232916038682437563720794412596866912954711900806475488339775537029973903948248492344059508918148592078872550071877395828146657107518217840626856953251677396226831463834464068693394340832285044797032708499067419271141786158365401184233341495402754029865185479280961139484684136943264694542073668391877200962109448331507656011079197143291902467416616924705359232529536250065886994292220006378542771205069002211215990791409332492183614548334641986773543573171602345944150298161180924165009030277624811970615817321848909741824421119547328779402829097419425997392296928984320139100930490134978853112970276408006755209294653453900011814906046573403447642589008624560031369162869017241567831787650633835264193310058457885298177051413150575217341871125169767101209374312524526995674015917718470883099437954565145540074202486100303587941265331734690881916719101348549705301720722559734832330670846995955454537787539263713990608358700802327651327491080929169110318465718830561151218151562917574406474606708584198398864932232078808974901880300513936605811345235708488066526379999035316973944336331941726156176610781853692630595997935004069042767222581059706805670113379668858043925939522579516534394646317234771624195593403348746108645805206298072358754896104839297358651751387698283238582947197612957475848680577799088771103261804530036329793232341959763161185329910805495944301787963307041229765570925226608083478727980090805160180992449834984389705484918780391998433171041254454192417238273492832247502184087009653424210548264148942205580608843612421647784878569173697624869773279576152647320214411059159142223913037442993398431868860894479978814289264911895222263799015050003671494747210327063181636972691578328008740191558907920452286281798450823054792698757391876294459021840209940534310070150681948804557839909285230084548220877684796072632579020923139923423613064859452338071168329243684885704390737225642561035556331165296929540421621205559913192694454573982084501606710047182620477188628702286926742482514939004053780827971109446766672246659192736772923704494888226197722252793377030703295818514966711753953520654256277744103752172662446346855448946958016424061298629431899966680490745709674885966613212636340138291928019347219032254131198617272231571108954967745197191659445666984005645482858937280623343629019816683276386238273943460960526390913711475735862792324728099965723181967739768947731199657412042762448922347411587938107227803607459550508096249875987948552182100526802705145510848402054588834097733204100876736172807991575165811461670730807938883962126800962140958485766384154636883809095549706465502257554994051046934724067942558498651382736368175046460647349056721802571486743565329723813662111118136936698485408451448766226692504976100595771348307118832658023433712030788537040335624238230124047367591490845386672477390226456164798890141274245937889489179290047307024874479970710513536103206622240025043647613278384940036425069275785301713396214223284204711125306146944782579942538866200095058601497067028334340388264975649923611390459821600363680647569478201742821973615195777795537102378067124584805665317536282718889927876452653624174686179176585818934035984543701916460214632845517353889900846084862836375553067165595278816460263840143904823114038885696533521839419328454968466801232912725984292263919638021935037779281228224290562198313512582363578140544781656080340565207345704069628912645734553262167916667590984766086294855763038666875166067405155696239774952739302362986566958985781756479218479591412153968708643584713869585246133354061825765083429023736980676321705140725473114102464726022305920881989100030182904464970900735459930612265058081212286505436024353952839636333643104405732616219248036467443322868248940860981653030834344816128257387126507419574113924638779764733637458559317187884994271878391596560625199696347769951257357110277488093546025074528526434619910427284309076240796329909326616132516687042427313085793048134038406427676046350773570471813103380257723544460719812836263623601511442114982982451588462247541919070385819362435457116218424053593009967422610824992720140695374802882653826074061420366338412274313142697224984778876164551612755439839421047221244546606771398216496685447118554894554611085254190213293117887773847692553676813319136287818307822328875591239443115094325365710437202077498383516364635562370260805548139493380530645453197565958638992777834427734079465278217081938968824009244677464210562932727015038046907112041919236491959454836676023731553909190835692808030756709622034477295856418633765440728538434543080194501738706992469549620351191891029866441349842531551786699659210416248577559777886657488271514915771770575351049753650555221447077749547848472345184765370557771207887524486619938289009718282084689723103873039250023803246033009810173196879328551764833131899791481171322468994946201100661231647221395401372473961624486916850392616637051060713034047770162018206573555820686265385110081685879147394955150569766069143840796432602407837744426476113193836425604691458640401865239845714221334239970190757461664653657974132274540220234615865644277696146865001623407115067808614802082128724922531007391238450540805854910323857932044249972770476825099426967760255217699625660781642459165923731735249419595628877048405289598224554970267535431327945310151279893191463357656106291339487030229141764902390896808910817062384827897334921811109883172835235667448390932433905061553522486314942961743295472249269534590758205647728175194406149153154276836246955806219767992956755694144417382661234491516957779082183369826996549266061206616347684578356098362520009142634494623631096099043686308960595797745273444841251224201182255640368663669017807024332468398862369773854653989245517977394715038712895731621781405512032957526282470220147630525379631408667676632512653467978697640747159851398984567599211231741750769046433100462057767712659327392183834438586348056004337330970156756298781327065213243936835629780733850400476502140547144546610390155807577388729393044294855101719548134210627745801563112111345422217491697224933729019295780542530010806037146649216408619948397691298215307504528040791642720108210378537468618335576240578903042594273133625336112115293982241932596020977958805126135610832800788326399373173137779654518281478821071529570558803237659324330319909359935897528902865020929535342733149210554991061389066509396967222518780072077356458668222999554720461207656455945564001699926359960225891816337317846768923155433937388034911714936930504581410006183698240152455353615382553308708678839265739885614823953175116917002419763924710992420249399506265856854573090794041775528155479705124754432072743294884253652739546614641358206794908782087453359047588956174652268098312718620990333836226633462855845034298110316697533198401246316157909733332498035983752361300022126418145658892786270701779955177932122300530209340101329478550687580825836444035371682517273084238548249854183722233752406888823416599586688801512358948541216457186082690221871895226596100547085856745830276862581949893628755061962042037490326987755192273203962322608077274041817984119762633162164804992711452759197315945015593542221753340796836318262654683375958784676303872055361846546429532704439761498270138795990900488886433106474810397719734463116841684740316270342682693375899392337311084246110206987537451338537893677553062681212133221883443102198273344361409894112299313453941063667107579367353955714758969292670409560545567532033808990327664467278153325230217455541892317865134634661426648360509812815399910846479886422762619993177235397945752729948144968270347068539473524004756457921288774864419698173302771025147275934061103850716855918232692581226628695773161268691648467408774540624094022415643095943125236064229722308301348462070117677619689290291877065194788130645662499381889605908130683946646656903221775498420068956526773736557558059445781571874046717433965844548918900886897352043942748839722066079480877947572412892580509457538616847407984166526097582330334249433338971239703111920310910144287685737644574460028971663003460408315525479167570928992683859704970157339942072781619817479660284155057340145306526856927309592402128350218117374169450569750758588193490871587510953224247486517483047506525038994157419788203629658554630313964058350852079409775138974564951323196048201108228710352221606882930094922641517938825866961686715857806500645882200223813756539836217763067214382849979777062465886908732801214773531798224816343995276401445363808784369793696638978425844816817329021524370931442653858231345841620337684078052735457541558967186066251071312884855934540389817411439136728740679802674531675670212442756844428731542887968813930392397152793644128027933970770782619808210931197464925417362293157434011358547465955291161331569616490899592672830108447585112072631091866925113911135019457627782981968822295991984377965856715892683572694535374181180531641488642350499715638370869980909740605366413034003920631596453732239022860994902098205197113786792908368384136582019259115078226136544604846902086288037451041437747160025705799018911438166397672901309543258956076240640021043749664066713819292419893023680669284570387684046472956631755584976976962470210409720970919405046850988739538527187829177619561045628569499154371934201834207599078598804652077918238322411242265506102167979575545409120179183046211066256441376912406430893359989258186294732384169040465839844243099611582430127849730926127046715241142988615313001022106439486499732463134978277895231211852218031143438770619210511275451222091294175658434542193876871676971590550642418664224388158613229961802322459164419079836298691964116071870587670616249278145926644482459243545425688663476180191280937250553289537993013585290717357964239378806461379928681322055669974771248621646924427535103271946914941521791669717606943834834880842692616754621646094050810239871822710763552316395526981892691135094374986048006040244050926467977492956792792007277503828637574665113983458836777578166224049714230007820309267408631118917624406608607059427797435964924029303214767905444897888634175211634491467146369319269919059971559570157462198349422146318736588618370959488328536096512255362656547488571298178199232599243597267308358567888605990894927102183464340752512842296071152187736633422067864842579086485975973643790097561595750981245737403328160064324094742589250876758359032217474560046148276570215860765546200408721331145309145113089330015707903814538215038825177862739037988466433093914284508284819494577628746244428343690974238563394353990366854066060632041478719439738433597610745615933578196630249568255494276370838499894980913554632560533799530588972020436335346628426211942397132647941350670531251368977115073299132139935059045601496823439490901604296170240308309712469471253860109141031301968053065136074225618377599716100940450766395658370683082557144589548972481021526360871902769875121092015840160729538540831768605351782397356111528380888393552944572344604741214471534308213696779729984217357311979021405883962010110807096630327587570912454711537264202050474186063926594336398661764572164049378624911256419894882801096129292287786197077883300245785040296822543984617561151954229779764229739741449161055498528148096431525955879946349305574062278616228050390639670744349842208594479508201661068756962318855904258846296391039270322127313832831246008123815894441365444804103290931896887556141992028715549418332953717061362843221323312223890421143852173717885334121288340200752549812916038791052101742586040027080132253150472685272695443244677126813900037087787989794364750726019778642228832019646850288271573774676206841999267730425794580931421585576797157936220546212793636110343706917926880224825448198656260490912386325059096355922259226128191633630724634920101868953910048444095139793050202359540202012702963134241169595792989513657693260956012476438478189766447479395732375189459425976007298911773764129604694667485138906227859160088314482503256868076628757743297637231674266969878586156053415584342504943275499542665306700044032659825491653693361566846054901181128257286005642532666092186827146257167668094866521904334093330443387329601249806557074052654665452434725023991740270527296611719081223201223055487235454475973310168954416965654536122311041812095738856675725286625915460073497570505100395597496641552509543708606753757743183393895031170943374852716724481914135714674934713537254220030822283937813626534036022401407983675690452924207795157504702721043398520406988519183806119862863142131076816197822453830646227182171614405752785072482460409610452491397227370431253678752669417478727992996536401228601744589642594609840029823302038688160240764944248650476727970130747226528391206432740911531048206451485394683111419026293427515762490501723403666589273825067716744075556246111176306085765712588464935381029078173692330919775873885222876771988802073611473727606784755500819229460360296303392092665037613648959022083318864018923678863897118851454002259042378216434254055229317395452766657386506284417983661959001692861523064612554703236407954236719924069533797382396972893238498592100752630891872911774087203756412308835742926206027437959221294981620451264037437339195906313948689109828825450249377700513514464749314225466095368705065767340561685903637776126011660026630342629599253808608979397895209153392426836758552612084126299746837816228090388769012796291902189159741180130903206682463298540634853031602524173299379687597342538145907186850095641119222326349683213427162480545835492705651501920764340894249677730484167401776729665438068092942502429598415327645641461539925109835050407463195519153133043567585494588533288968561512143542707654264161012401754645876620850898820803050559657736974453038084047441457211066816092787096118703743576072287847385463938685647762604844257112045865603624637327723675796541367694711242974330763680301898685708246243759343019884066711157847706730941960591666041208087718224883055632192199777262810292092686795012791354589448360954594820329502434313984045718556585630632487877803410828078927691371175718263891565180663119684559019385758800664193858737558318720426111838695188946107032919930986533487753204933068734150811018521212684165967704819647917981576377654619762696594507064067580755036293276103979830209005720360070408860728435609714139048047480062693495058649912823243249705285787674059585998772165071958274620309620680284304373234510467199356270489030579585263779545182716557608173880654567455309448037643428557585180677329975850385964896009654748846514589265497119548301020354387931156775032539710795293689986282700527593989572518748454970879027152845161876639915678600910487134359031508827633171005427227190192704741705766846455033240815877634374875756740524850676985043295777331264844597694890911621629935171133504614274736164930446507608741214926507636734464071749364577837910367988317914979408352588155351996098169191445569080685519915654333659114284130265159407210997388929094622678223479538276479978904607240699827941567299480371694927209738032011950064352384009964864739970219228235370724836649178893122042059041523088882304476760481360399747295918703457623603192876919254494261602035960131728503476145436120263728165541907943057805696384430727275191094672498628189657604953600255727871541029270785961052232968453254172434517576560146927933806818241673785456247923425430036653328240479663439325361714575529481996143298944138116464542198283330253687557889113671048207527643496850844081924684043568356486725834517592348742650110268783058517505392905225274117288608879021053123154678045644379000490209955803066979118720070294298586464194390734062948671153991136229554380987960126592712514256894486485493798998567042834545255149855638068202576321982364150821870321366716732256086316147592505007239430256934528441702895464495032977473719946261330819670686217497825366499031882717326931473644220417423394865712606640227520558048462933215783831709600836259074206773468636224074704092758049784069094076192898493346495090623650612099119278784688309357905894205401551601330666897248429010751032833861424789235126821408595578243967368493553341091390343688763998216478900918921326114506751989233016197195285775374640338298941008483278338540970496726809332064242750432833551706762279507351793418235979123409122959902223809004909737658647643500116331672577783870010556285607817336138505431400984219180326046821931616865357830352430958432078024129639622074519826820775336261409150662575679099150159122656448210453105237890649967288543532098278342520311607097540630556453916307762035360273949576861367425784741510762733575474125976954337114372412221558486216143464271232348068743535085714462849873905434601760043813690460454633379528673469357663319006236491091006150616472351614281599769470579119193007920698705486472556247268580431185828932876229466514953296172862158663939755668351576763123202111498908726901890790188220618775350540831749088789397112897254626106479950755326602915987902202443559553243417496543170130359208745290558754003282353563861650813507420400605920958080960670800536199553696361541878771787016276732835655044661272331518307198990938919093288604859000607075016847154932403090836712835668757514072065150955873257082885789409061452310291708693833203884831914275655048392980074779904680569031554157641830608262545766122609947269833605250742195053690270751296486613157589265199827934878258616716287632286845954974666100322868167029464239988238043694087239312664271094806940557624299140372224923963405605503966370619351229681684905374266329675964877902441727782420108064175902179386690959559716713011285239987065018441291005921467229507697706977139255920516937287405185702411696762119460793094546912992031400550505482406700280882228695388434487363272609230965901667587982363839349799529504760980444838676350832544194087204195346761875374743776263579360541143880608600824499596084205203290038032416300306313342110257849366723410364434099394612798950527190750459496994530871676694042296863321372187318767461581466564502783905105611471163783138855227618374311573718338784640330227922196723046443260815572790809661606248280739253333058753683630855836955146866305591230318137374540586960601587349135197994105184467950489655057349898870834581134731557957309151043510082377565878663736335349609343910571472820389217882118341677332769912039766830326669083544752703187866153363930550274871452148468187140395582009601411212285798974836418994694395922048872529801695922177101389265829585777181672575083171148429436841068486681236705090110132223373010892641658521223493780314817470245015621472349626871172125456760784253642320212828945957491086450770633815389013021994460369696744507790957104288271597116514696052257103509314266536326925658330996300389239237322967234344540873795616193760664320346160178393453733864077815900703216028515856520587356523878847922834245166821495675885335135839731090163015085604066627112422637604392764372630115988603476252002785790286884117099199097200667731303630620116641206040322976096033636606363912167835663468196464987876568247296424749356627235563017925465813993070262558942031914109443802354324152995493844740946625221781213623164852460592396066371427012570844853774960511824453773938761864207365676806339842667497776536596001514318104555999417290496938465399261272291517092097407129941714167532537687280703745180241461031153863044665846542067614848193051135756288845615662009458512199508708176552064923436242435706669154662634163048549415629300380081559726234676616589032587326578185640527169790939805669404359232314116580266183136326970455509991214315843784043611977355919477811908808315582984888665010801007110371798499930356601008873209008418590418729620345202788156726583209946159519318576230599933578043904538399872379006682791601606117122247303602869404943895301538241850895828163826961140336536681429538739624352377485377555041508412531628877899504326120272012096702652377147534890227834167792283213502164466413918911131328342967053401728383428956431405056774891659667395048700733194473050671001170577589032243133875716704659475352602743077551703773571328505341168651513566199613010366307918860360958321874483416768002517946797201305356777435778296838739096561031155493584426673433319468057677238572303018775800386316496916637488097059461138189975628815883595901940431218166384862348142401822897215531959926027574149610698748627845430286142650497121460207086275127380802886309778122433999514535322095544749921276459033219986284894904114854829134864984477010346876496680634669811712576666088031881292799864861255760335476862625588692559415101473667532982749693290458210717438625395062481167681318666748965939379941242687286736960693380408831617475698441176522688817014226170729807432371816977115372644039528139910072208726006194915333757808151964198193475409487988681867369802140003714192415292917064726601624614691447094826957261247256318202466476108977091029722663503262554065856123774943424085589558310924500815050017066165680684569759082932908882935734126817706749548683708916240542146483559109509034002975271106610382604510709655860353315004367130998048319098969583168579814515802780384370426490145258085557404764275225430517852567445560298427034072496166057513608692893484185058881732204192040523556192608379695787037943163665276834375514581878829321212019450104133619621741869680585682014888051685564342897996566571258427343992673424618816665238064106304673011236244472011814941011429306051611180584278165676776582590341845559700761108722023056700694032833055515494023958139791009930476562533986716725988163745135244792208307218312738839788895890134272213386444119024960223350338508600757458826885741031983122595631022542636502990938718545624892940093500082850327391880250917073593432713310771385994172989682818563143691439325566226860106169319162847239422106615402106366747338422341229866472162396580858652271386871288918785912582701224033048093951971966269340301762950378521315186340285350688953180421654764387004948379805471588186115781840157452462142238153512205343045376920118303653830230695344053602499305548169227315863378560932935289906315680453833507831662305683835177830929150425040396458644050554160029733468957607003866510970415636388860894788943729412793847510496949168003990591593224119944080551492096993881115218166829200348201953781361046889647794232431346203732380601537185264693650022256880135876341042058030024779883502269165729754649062833039870415729836109237515303243899691229930535206029462813364231099489139921148364007519561529863402200997362578377847622593499601061937613664356516981528559494544733704153693056434357740981361807642994169758550027443487525488904676242772029948922775819233741473683393388860567123785374827635805890689518788277801290237831702163404980528103137555451347565166040335627647355529500499528422444322768809051550656329020095241816532765269020945331323361736300448115819125616614974190768297785665838711306495977076729498335437274796918826406825050663800753377572149035927770177793842801639374469778366722530185270607449350690104090384978279915432244070878302681986939626781055341844499430344818900394586523737587533969932862521682572875044427439383351048335275020752463897531515611259061524177216219451117061435981243362707691249906327926397449279688400078729203759291054038525502573370455555875367961829376263772181554118383236481293686194578752548305994736713959568396960634184960023661677943325172362078252748105923977473976751089619955412916063898641099592956153609251595215594112723073037832354416612917172211654911370170134402288082962774697923465933611277940289461350256224297679658621519254518886814864965557043435737081474735098558665873484181056895724837199685830756296954555198214146465831685990105062863440915191523832564301180866760253812213137801061103158425151222208148326613014509776909427187083616473113091784417700100938472289141059646935732076669860279518495105857525607968613679379918823429607916835660705350828329863158997769514629572319292178045233015376197722434749962997999483447524593128491993332828814049723102808961839957979452004640701817954861186761417807558270819489580813921129433378301974384313911227814375350272859743576728751181461826831851634129027744403637753231390926730443267843739884948635598754989535921996729683664734688186331557225241873853784144661219044676759635114123765585852899627171652064763503760599059030665982974397280379644213748494377658005505633035610855584125556849262772882436862092063403314403664602007999177601956363150084484794099470635557043733776715797113124459059862710225783945535855636247808478809971117019520192232379205615854781152160630289040912264666086357331492067626471957261999898369553897147036760417662616963456761355348758639375519853938513393163976086838811001061801836013184658904709382790870970409382956131192779699005309375473464432257969004365495881465999049397487051153276802266147093960696729143518450687683735125980161559654783592572037239413956488234487252049277901438078475939857297024967781800259913486234464465717005694460233719265617734840084875401841310078578276273694485621215990412127484132826327886350582115563343282053636023386231437496472046140028369488862000670623847733949842896100981533044301800255558215762852409062435078367438293824451529835219293442937669657390387019338007529458870208272589135283311915880955595653300009078546570952461464525047948288260316729345078706229781957724857469340743663770859211116065279639947427685673337336618590377749949653931938324820332117753991498032175783446203223507583648452881269105938585292761940637882642440585040206208064733661939796867971807513900496704685010293059586653645623514059490405173285463240980674716015396497322315347503434973008367119409724320939789687516628515996565807531188257993499973468883774851576205556325962235181752719076146573514364410324810527169597116431638181153716147486865551986110437558117498899957725335973366261441177215046410315182715564682899065531551402802742188186650523121608069934340639428239033952955752742813293175363925399416742184258061332063814100046063142397738870136633018311082490942797215085736006967414787622053453798281209397856477347739635692594988512545721538699581157190492136772513439084766652493031518335841727191216883861308481232927518002337813858103082229079987101202657736346832902080820095849864739791563046736511377061958203274639836731279372271479206919463568978006595249836488647281509127423406357175204904269979730220473472349901931523570152343265136076139354438272391377696600380606589454605295422940710077275626997345519240870633240585789031322279326129228213624526638654588295486597876421924665408407963099115439367361656055549855566980896232588861921274450645127586298918561985266249835344674229696320148359855940628795356014872257631273621937433444290799431630620319687066586421051929029462334743463967678189278461170505178905060706533087679653382866636102095939309870239468806470267206651479215209656295267113206291835801798155567723136628019831573288001990690915807264352200276854838581865807708377306947217950154487942902073173545948566032711823319006135415428331516868938630309515229299415970469199596986770497802830618350443209945613738241002360326989610886029475057964035463584255783981406953808340975677301440910085554071986439520514305485341500055058880129893008631832307383803853711655747356253867814281151800396429358647313731762404078828872575167489651796009579750997985779723694827101905070254409276082324651988834903926277027022176571520016929709848787019983884009713854953520420695147114549429148358748501784398782411418497717582694657972123817467994651388309093689387326034372006732718676086094046752972880757789392197916462396729785063699631498020897188400296058104944175287477479466698678180642416823682807508318371330452262737105168707556705418030840627479146686867009492989377477879177635383133909743431473199652819808035591118645870276781010864150852035789251359712850387430958207998964017524488502099347699014718466572328123541884062439844788918506694186752320161692833475567172878311101353660744618059667982503446610129188269496530921254150297216568713862175777157684816906855392531098929218693116507222126859092264844426327584922352774263270601423880230263118897198351237213709752270566814453961401569829301468573463636743516504060396320585822472477383275186237433882386659534137040021454187216514734342204549466859800181475709695747174163967439107491281803248597406013328797240469492723521846909983017834541226874864904454173164292915050482814614974107159336296125626195426936148019652529347510625819101670835259392046544087176942553237321868059023020337526474901327279274484073851983256620814400969645513432289479950262540464285597476137582544577120220706052201172607171651390251307333351699523775570897087912303282845168042863989066372963498084388542210579487182620096861924798476002809170860758116785802811044079482745438516448779781093371069560795680959065908259114374982949558980996872467460470426192742149609159027748599292271235433644096534738427415827338087205355644478008531341655654142889744637900558534420016323009786175665853651214477512994595737396749766425112634853433871373048813823663887864980117337428008437754362204272183881136653292326934803939309601405554572470006023104601064612285153146863092467957156926928215525433477493730420801033647759454394600475993571840641562400923137165297893396006005162188510440450665796348512966106094136029383159481967596155914076492954878941159673107485505464039271972269699105308843525797082646461368943083259578089952480457137706450131585795284367913920343327221836783938330901251786794235408151837677589614762555251822561500624485373121361423442084818463486082806203763246710260477211036101763435252495026796060325045573629315431988367425146405752211718802686251606864306461933849109320524916417566680130623338984342761093044400475769462804387575303154977428764790044306553451706473799300473054460694699345138494085341030669178444479766628123170583189974020785220059082084574097535776775305423589307357239876146383826043976406373237861591071802746436139500008665935475919751045168305979805547280946624038750438925593806723590270330934407857741759427249538215958924159328141742824200732442364896738690113697411581691275992088704307798237517859937093569011783242194839136632703405703908975698137558200842192931238960663984309178778654883048130321004789781584389174848551292252051870134077164055659066800090904695990497770339373807275655576500129313071262539909795108679025295086814378354122906083645391885346919469312335541736708269015848970808672495878419406110908038954472832528207148192701808968089342131182904937068962562819644194858460293934878911700313657520634183846100268649324885768002977537506316736438244587971953256803473409834233541062865432193084273849850683429976390423272780232683866039447579521391634274225189957595610356451646885725394189010267419557517404565264249199061748971819254256626344853686095244753737199808711907156013222609176468255037364337631264103763461299403608770538956895403748548151597445828995779013368950593593207967292379011054424435487331303060898188934223239881962093504149657172993682575514461513518338429878595744414045282522504221634157001801948537633005765270065353054509438033725189451934421265794185145952560756290625352923390412758393516463890481384722526688294580173240537024059516630718212286451496467035425064822951747864329630220169250152682150857593085738502562417592145655414105431025996457782119265574089833960336661183551268729623125328927434754583049813384437633881044935063464036656886747042728837867230467867351441807765450759676217999400935627218110916493700837904109671261401200323859798407241023895796887241063848694674394998401634151468335910643747158434618794082995984409779013469544680568994157054069177292338311964060979294818998393394289006139557356226784839789308520253133966851495151491191932627837337908512472959849879411904894202072844344579148240096333406529026295316588161731636875565503230579831480885331510576316102592035475304233516046564199444763351988463586172897693677818764366854592083253391253841536733493365838783536191846270850743165338747545531675868302769638750299858316664546466067870448505771085585498726998160289630781216333294963428024630377102026773770502028850590913935307575294220563070654171794067232520503542798270153962859812181345335275276275417322214874737536841118506588709211900738534364769197503853132843017801023910725035395904926057032686778616482068190757919762824633591617448588062593395907172165536359534464267043166562053431030606069711232365386857894629329352757372112648969259860084267693284142618997379072635639403415796446773709737446262115742295809935881444970568846018499481407869047256462473965442842961309943858148292908639721524591425779166999310565238534602232799140942445800231728483521822180304650978712643876280276776781714787275341431016879166130068734240412218342862036746438130385487649377820261447472593699581712186211690470517720172837706077943610477423549875797830939615488975151652791767992102719946562121045763710819437605965717893198811317980248270373769399437913124540638206097232830021430081459871518613866042151878597560635640280524869438950757229309012619833778613307621940680421631863475148237207012303773423592569874606245823332243912594695964769558626661304418427697101315941395691865897385116946363863076069778913990898188133474837125191624791093905455923814179789119312845271548818644947336810332735318766061441165721352763783578661125479733803140721530436689294222998384295749398828062947569433068554976954969297267474729739432168481067628407145636007655829123311980793537331429596107532326837175346624352621087767952991675641668741130666003016186635622419943318732379060652210179307879620771646938777674331820865533807495546470063910967434821320572506155065487074731976606959556234443489797700267693238258906448923995932182979137139678361854107894136328125448748330239151427662770342772029902815523718613240054727589660095447842626147546681775539507554063224600724251992636167220542869478682726913420237779538681567743418198634742685555601026592702128371696215730559344651508157358278586746476355219141577695983795333098377858883241614599090427652705688741825672604575620711151122464671179910149058127127252844358660433292153402234663456730401980470540675691116411732249507959026103141703673504411383661720493918977985532513611765491889628866194211889154172825778345865061493177590740847459701086315085806855816523375612127183397062540844897152382239422816547306450966878593493613538135022539491758387727049447696218602102851794533158134676975925182838291173654928235260222345831970848248734213816264555693403187043898568246383172125052590446930301747136843657898116927028322134820173095890943903227244850050217051253320604083521137856355295008840970769633241484693973882163695763730255474727484221683686882310257767839702691987458284161715521684824135741252320554707055442514406470173977650528602851429643040267236874098029526896103735620561671823246876431850064070163330427848452893058334954172383789151096765636295423059419227055474527112199218389087493437215942796196565382727987195596207831925133003986728872617660802416251789175587867311396410759662743903173651102782984254783619636460284836925814095897614687370763310804253756787199137651522308347956947162788443822148906067199948036238432165347151583593065842749370335284283615120577088862797564140928548863347806720942229691150490872622168004253685025236277895069634858775593500555827464700091851469508341354148592262763987893183017561065647767799405670560735343941843114423354798449871229507222152352070847284568624690315192374850110610475629848821060291758460410692078906183363970353541077316516430360918614905731676487984352776509945094611902762360905875343833484226002434600708365910944953948508389521104288955834418037369455294691078052217104225658217000979692111195277254455836308940189113033695235155866708128855675091737711590677103368322941962164688956562994228935748799605627906294263602704236887002538065088598494100235044497334167318555761038549126551001063511088058094052295039505201402230504528983043653529884453696654849195486157196214197199004915476698683878059992528851412921518966875345628982337048867376840111605710935880996992694176682335399209749929023412953489750313894787869767151546450223654083298119467608104194798141568167411658443312622084513644999300902495454026386964689379181200191928147171111129947993934579696898808250274782859298300382189436059971449515712504660904091043129224546173648071157190023683718639155811363601946784923193222881966070616634881134207148562295443904298965934272801024266886412097341613557694748899525828010691393159364217925209857925959105700976868106209952247512365706337402648472971644885034892047971994787369002066611989491225310914879866665511152439022465580472036246287533741862620270103648845861063626390117799795766452993886734420915133964716789747784137141190066979181610458307338600631310306939728477097545856560696550250442265861933867700697611323082408428328055703468555944065153226070935605597685726983740944317990034362909595353098979004432763383990041658819307986535669369828555659425970405650272684407592272767890067406431204098798483490194205771583423886566852837865113826465372049900173473460674095886921644153658161748799890974523009631584911289810666944288225877751139021685520506460951084974440843105321067222864058043032573942007855874907793132062874185487306288488818113354530647623082711517135684327911427886972940411928969354876054455094789453057094831509467272657160721557069768789414657083159188039534280426032490644221255245192319768370826205063773306650150094116740202931292556760569529887625840479441445037300501261010298678867018443786290836295810098016873104323666298170918512373936453752636115667528228175549698431258272135536890886895846244011032033585500284913254178486342195615974007119760703706810939862077996076093685660899182983207727353023300403809204012996387106725658804022601464600292518751235618602792890196191136250585867680102264269880735659574046773736607919909184599223536460399772535458266271369518670972133846156771821402375112873463166844310805526085220521244888076788109759845896504990613643127263593078756376419431433398111215651773033190047080484248094940704597273631248761083487656040167861680444624529789899838332791424239494769183760324014435504334998114678839479387911597585277295368728826331042190550335404645971201196020726883619920623013737102895677949627356042724971544309880529021698671600441370367799304253309890544524586891323010189567777474061471876043785626981257356518739129460292381966772260612103610147548666104087935868645539780137168296127306583142972030405754585755575016537262153426845256562538142388037521167002803612592406081757359498727197969444654976214088444108056110891103713370430293573993410834876086146091184671116630582593790855814525043284652782088483550737717071232380866768355604609261951452226565854542939964077861615806724537471519423409239531165651249959742477756904312066759343165810321290165852683663499273900678671838788379861994381157962830876633783206507797266642781340880442257396832224839079746661932008283286129665195021613958219254498228328662639033237223728714288673855106062113941471704257992292987226488859512997240856107855992579767531454724537847872015874257220467454313931690853926465673928934965475239425304076715655112326674916088665258538008066881980425834437846085117634830688296914470799241466241011899708054319302277773582178656030246996511569082604523154971082798382519010748529699298110556498309296544359593045047574397809042067055190631458516323679693694717158232450194339369529457844784562796045567568245507413127969438878293027387122734048640384479830487706497833532444110611729601663636933964853488549432989540016760775270539474184836738700414601067532338266620939072045082071575421082969525880842900649612640482309081157082369932100872403321284515250395534202219978864732433164125396104816762818560647393930456221012088209720008213628297168122715407899178180117522182384915590476011546067445745603924004457646922063196377707528283037126301424577200463922269945621034251019179835051411668891611672814634134420970099132059871829253995037833567966716025165136867994827787148402079121984998422276275742900473574732215799454354257520954864716428907471787653684520812483816428079054444802506331719775066618884038543672693533422528284328435801302220633179660289523276802347139959739085852787791093212746271785777885315788415778740745013899882940388283556346641474111612331597616716241342589505073131568706683677684789400037098406805214608141456227937427809814748741102936565307991708924797751750655902445597330838758486581817419554625765380310036485615299277546265663363734200656439287671192733179929129363431666630892878317982352221336166781843825656194592221775073565705886412072002960809998489222461024797678105003323442013089309837706608286486625856853627399726108351631719745546745181320176854148411943859592173964273075449955332961397974088239801720494687493397775925786078053916032654605068689945875702169693075686562761360972638828520901087271719790818603051854875172180304001083169080642278914795788177162970560042039303749725222016579171810015151433933180343831512300160943548965059372432767738655977471829597871587025667749622505042456900928118750128061508592680745872145793800649933116316799452835236335010989402925553966750451944627368665437943147092974295951565919066327322729928636259582518574167126248030531437528649300690485791612542888522324183723853693105231310385211865918644460497856292208946364139594741772230623675335230450417191932206387957565295719591512997322852601009639952323036593986298517014154115383563848128030177866872988726705605054641760013569865444971759014259631666070969499343202403893355407273797155787898423926624838719762725952636021501104253759070875605639692773005922526094889064042411370628281995431977350237216234782586992787713638619394859432574882915492776041406015235739976646374936045224068740799073839133865153540370541859087764394576359787250207451374776320497924693197483673452381806354502572871068328370734985441767254472225716765520070115754118825284928125362877531121940659632437518541984262262662397601444277040390530332473719207263695398558928531990880086292659144099788983323775100659134276549384337856583826973081578586557128607025930338480379196626521388735807464048329191166010919281711675062778628165612454558701014209628958521404138529214858290688982033766239119497430712337288478074061063503609609419041547486421173053084505624780979141748224912085593640707485305993352876486331162098200885494659879791803059533425497760388882848058155785521734430958547835372269462024845364523533818034665310052385805942619001014242839407370275859961631708871285379427960628827257355639654714577589295220617386745199996327481890927526369345850296562920525680294120975263939449132370724653021228969650464293468996351097013645740991384300640872954918538382100880492988682012121829880830668036279524911363034385841523712521467507768688879135767808556738479593354750204487126648005436852786803283479059819393532201899882961122119962063776578043266714626708711866683756228731089680082305313522506768609032831564415713136130374955901436435916509796217132283862579683064971051618666651788212212483526910603257616502092233234716134736141896445665266785047124341172071064973321136123205215522717533887213546508025041154211020971733094858325659539039232729585505788589127607149935195280792218937567071040333363777445311299354029784575937688103606133077707470048593468586932923602213273355832151604824706768675270186180683162389553660409061116296278128581360743270942964507660101073420266331232571531919322131924540474983959831409536167294418367538920097478526451783002383162804710730845190096626668995282416172897475600219683929316576484700095599851036975775776581808016213783946532835056682866537423031921067318784015513338411275527009443924170519999640663431457291894651498471108675972751804428893251717268939330227439764684656486410889401052522149949279827889645407886572645009876629327610419986994132162615238237178109895303429983122804033899977749966864113491584387729193561220081570874761231453151219452159473617421848162887961792532755037170800929175936500011025315212481201466812545134433674100623304180218964159927441002421530855794159573259561467911683515040830258697153979316628490696658453942542396340181646189032472172597243111919789771750328739694547210194804260769515090917784757163581540868898329680916786039785381921110712693355086861221950094320092795019850073947575250716787053361506953989428604897810172280290397428770308017238671911449851723979097878073006809738346364308420449648227324112719443923612786768693658473183885956306044935087663943453657397839886874424726569291236606981165761033675601370508915268358611355073031156192501504975917602015788499995853362966158547469317700110419129264915938629381881130199057843263657898368647420708614595054625569972990385959984074428328849348793168739263150267831955361582283215279775823535904948321103268701250791833737617634509820999776793979673209173961101706394147763617114801506776334886806184319425698226023052243805666823529921600889372960832333216492178333895624116821213627212812113088006781474341554030672622738126049894830461942730094373608856790611321447238721967870301939146158986440609426942861788539544149652344480778700090621753651199350345939045259937788825695901306010957266977087889313756779864766837996743661926790808696582352038404392186888888496735627611427841568323580599425700224483839305252644221230198358232448083110466318131250646685098711885341965442071996837672099456893697428381567998522555000507217097267254742366440184351802126240621396146422317694828971648241811280308975880093921821899854496136342615480039404448734911405687118706843849443811460688740295263208874271287621953418284950137553173475066085129866831510999129916276675194344085280148268647178494657193716368034185963836660993428705754151695560219547129691843822394891063369856299098517678191540453878114942209186460186807217860912976525019622271828283369524812560301700062511997545616321361336362283016558327442815288895788280745883231356935949834684619453687327306309812545224771037855371802115120717458036715963163319175971903052824592129375977370756074096277504274368903068375285846309094190361808538196919700839968693506715915333496604809209303748172048506179382063779556427005996673434315743493683524002757032474500968575471402507268933744446297967824126904382802357134861148875898757210842475182594177067846304686236999412733470735208902665941126249198576360602310472381481885459451686674573587114813977404419558947174574751238439480110079950283951346998683843569684765399514803566598835593307910857275698093427830976380563689188217592896149325058767824920395176134365075643089077997945503125056241586046960991089972461697459322878960602116088097890287772279190329430699988493702516066471384645957981092627510382435077759582949194767430814059000866648430495146461641993205904008433429403666665149545695033509986861205562611010719634336472730742424390000620676137965917638626556186359095750327706237536092815783334961677887542971860411660360886866704613283486778772564313216219546890843885193943235973895120574972511041245447349829378177252332065210455587215823957220965580159019047557082489035300422731099549483618542165078571421379190561077176544658273259801509801157014287312718691119576220091107238518186694622624851242301286656119921665255794710927183733201417330312019955423589147819108307133109500693103227118264719716913465819754069993814510099948622056067570007714320778767756093933613895518251193066697888939592862216348151066014351703072716039028041528601954526402623073641984602032979369423560742713557007206264837063524189263305142735507375762319383228693746752502859875701081777366266977019710832086655247899238599396251792688047836049406964714504258342041807379087212771891336255783533464767479551869413308845343512333117811680393851046000131307151351607140907049172048133049651147100509039691015605483190706248851546912735397526332607348400691496595770518064085709021364916163272844344865731410035353432984642577452736557253607665985317336112617726530312800524218869895607792130344994467054214914907087107233595180737694874675818877242448760902471901842150614009767938290656860280138697819899961582986208796151077296709382100236998895805303652068591912338645558424878865095851473767965967364322027768136155896819565519886488288927483605607124261225150996835481900079808371773614567208295737015838075790441778556676214788297220304768707654398799217332742857250474350514759314448283064586383728032442569175840456676925462654183535278965571158380857982076606665618812852397608916043957717456689434303172267197303428385503404112642594181841151806902765440668336711263410230324209544887750700801703678222152768656524424924366871948316113601290659560551154732736050582233570149926822150702892212480362383558188788386262880239233736244909604362376511586010332046418589816461902737206549536792874871714651602721338562405482333971965740674161074708149228969594137500788790347295899881019369108515156830297521642496157599015113214547794832406970161397178271324490485367210784274966373940384492892379048658047441339962534553722765972946803993386953904422569683853010720343577049489343744175532184068803615084117592418264199361542866893216938997394942666238792422294536596314847211986406485196553814824394143226222456795077743117843515908628791398678501758047465756702244301393111431819302606622994940264097199306949582384956728847792609970464412055097708423303993066441243790766834649888261982938034562936845231853650055891914593878218159976835986071577117023404519313576453233038443009036409371798937796866882271985430056355056138977229338473684762288852524338348333206218408722364917787319367630623197556951667569234538349261664293745219249371420700030516156561123565991194554199606092454831856347239352999608882257383738076919518325433035102278666280457839802108520719920355684139634722066319602613302607627424455349221899594779266890345204387117333549109012860667970826112224669587035762119846602079195950666867589639382978886419092946801218374788857683267745437056852579364950535011615167913537821152395074180494511338655634228959099203186935231194697429014845100386765247660887747093210509683017404566859900797642606611982464102140513388856284967894050409134215574234215970184229254947100027459402307705502307234455540146060151238616837479065381227124005473522518832795254635854237851540466502366927295073436845688303810111686426009337659205197334025142727618339634137462704134536238903359910350964297051088412765354935307991088123335271123190900398310188173098961162389754789082548628417334174299255734282284665150816626658250925635803302811901896711699110709494152886519226157146114688887917003514339087916414997713228283178798564791172710649180777465706668730999482897688144370864881851231391534631678893573936973733641744118054601471753338794667774167251203097513160484586089066729820979313817615615130149301657678491801050916589487360681021895576605732050194047734231341141030608726724580832466750335081819291407996540348859369645162052248051295467995437225423762497772992149255413045019681613710453043766972856848599127358669428292562449433363508237807317873522265776893610139116853035778187344542706695779862378925314861204384263373787760226453721037509245287436465546226747210563384463603017156510901462771959655449432292596794619356411721975953478228629601578475442908483048015646785443924566003369799814364253302909719610399755792922299897596921138800774736603209691251465413017830948335653181487749188727148407858992746799646642904459378895471766692193758968971214896304977053252300406998802697256127803613749736536857204426762966582294307853175899747300944861827841510833286101134052230999390335760715223336474493296628153257496802430149158520652037540932510878477081688085536367109976329760512168398919107413659051707731112170654038216803056993858878898093136861102743515387521615593204316733599397412366911262934861205890750826009242283179380354533253103044776321064479590394554561642461949131882726004592916706657692304835153347567741421755163684700545272895388459291912947200162775391622206281526871796921456769856984115249114676325388526127738800949441503197605152133221777811368499562719331390097207401679324334946776535963303218521024020442545986136109184968492080260536140494982785046259964648251935623801763195325524151482252207339048920952364526467822855050389675674137140748427826859170776545821790875883168245019636751026198703574256276059479411449871547957810060664945691396088211593148570526188558241191796584072513028099625770668226738284333935622868185299136889469716132085588693770035049437122196800329462641403807118089393920163551338884971134727379337421546211445777202753117489584863430571907338013215518464028758030150213412369266279125389786413597481177833431446002940582010725342483419160817399300773074855589728341042903484105098494780447966958450411080835335033896626923174770074746173512857393706601041690144592309447476284096866465202003790412863628838002970590315244733177264634048372721330834052676453834496066054009879241207662599761108257988091867508980939542331903024707256005195299619479125405097639207708080855316108603098881489166704938136121758234113867104284287215247018254076415180164725728588659133563003661635926917052512733086046981035327272897401375329063007639677724850143678918506285189519534607921678592427804678959513567920353103714864081455123421362273270475037559825866289398166639033794597786153940293929622400393164836107573776888547113970617863865343778722738367121367082080298568824900475496847550281756300046609326427163913643509868316304014834484985931355220194680715585771141747332218080833872548018428476005076490721963274226744137057481994434080526982456609899398983049692045509985315345668944077672710116503713786630651840364986497523520413227957602867084915796657880659282666680798980940531973006778156395773804511516169981346825229848666496788890544164939516578918300472895108442081973125036075901642941528921197059715405847431126038017484417925492258846394320435402101100048233544496282078373922706032978058590375566654538387982808448822360271526627145102261837547583863572395820025204405907967377836658442185867562605654065631380614705705361411796366560721993610052872197234398145695969614283555066879386112792919792399656636030800420620849279439422671081989447437203946250753397464997145899038463226042843960701164529636006835427257506044412009415555825164472624135636581859917492036300799536018252670282814232241063720888925177892199082957949296494209440330847982394206872949669416743416648945283447736177898292580091075808867835927787314403740833046814478565814777394100698754198471638483157767716179677804275517625799708443931265382642185388360329658903657437210547937318762775526310240725618337902964914644657916328417649894260770696873074395360783569413693236083771318682806144402960010759922478572896301344081816443195536611610491421009062848059509820162437127347122408987610993289057727251929605670858341600013903067473408010493082686873981094742602395866457173187772807763584179413726494842849753125439171031073588581103290209438978913059849527245648571556363010247262618195197466928116087362485051119921489002495877216372563574213529159099243485919778611057959889579373544741197809407445088725775844808178218270947654617301111874099621267582376188866424715247113838915796971971559457607545074081181364707848149600092949056525188679002637119912135902444852500836047631529956161755908247035426402135622978842796900247657577127038320640816153544562205157776981428327665237990654244963294022395026011389970223218963807261457011574339002871578396639798588303076131844159037676033756959662818472557891027199241275095904366886331606077854431882641329541446126947757778014824107228107030631728743819059109888840150024245876163656707454470895652646862881360065409823511362190289158995856104739536272716924346498989055525050850843999149135578980339980532322958530098278299353532095723964327733512423996723768290651428334095393087827636925355552142458730153174238417083902947766870331470732124994829825492548624095002964540200225466008158952317426440145355113172088394003997073222068099811148736407892198371956490699512547648573784571381397644967874243562930785211092412864149352054985780167081903465652672066135242794504274826332891395558757296625900149155534180490770368703150811395607691145882172473402120428104452933074028168825832622033272481254610417800435307315344256865448922948760551361170947579280305776028858089793218841327509738169362123562101769862896460374624141974087837337887180416280651873287465921132688958493787425979067492894856030178908249468969098635594660134403192202709580149806624489979195450416817538696780070943788608960481129527218753416292534486089282058741650687818470379603038918233617164429216133733349234816286492474501968481820594793357747420138784528191889102796565940772049533558960778356226346511838362941248409478430091127286267619906431886720501866641870787150899680373896379141267326970149508832625958035073961453893442916963867835132249111901293073463980587173909664124272845015879275800707082925149451631501037779096747263102642187444356092288966597700560626418689456342816993074780009932934494225114052487145027485249606333823659801864481168110084066683106457700907063294312313217810482028215810391388386061530737503478633544661784190649523706323627891808959957037868319344829623100814642687034436716796239685350004330995875999139464368884163001306981986593705486839338937429983687461094649179088159057678318043180534706099747969897041226869847338046166335927103971135016044828784008295008468173452421692763973431879088012520151991873119827998042886690188229146534182159923591194481038799771273299957314494731692772671365149942370368395418090667868428567619724510030051773135125598174395144711417746926155829361622664440896845716452292543864477026999658091412995138359236039398311844582733287657215713286480684720985574793544657752822546653596690204999065521697955919833488927891132520161405663799925384242503856803341185310935513998286442841597565087071771677465180819242537398216010606931414019527575324359765851742289516585177594539478528919065926231948883163111206874106295804532446836897332657221675447762917189155188606764823847326368044097449987160529268150638803229364264618816084101442117705771787228356417451752067320780347068641731481981355063950740538859530908746814073140346124415334656298960233568268597965833467312323394906266813174791255066119226350673039180216522689426165825495029493984990233165579387419732305192335186820765411504480678100966580519532062937621867621655395539949975978227559052939670590711223622092821826433537598848934474892648593724741558116376771065534643237525699911713494228137262173175345244326153424697404259803429222904024337848099975155142341286812772664226960263413796352881032177858749966638121656365581513347147628697626597991554239083065473883856447485938483952912727788467539783255350005149031663622328082734196819323387259660434882166933875886942975204436716307311541028683067097985645786032230940034136286057379123249840859945306926915072499476962387694214466758199057092421788231410730047425424041207767465423535351526796598168362250096169846936221794800921081362104077903051019072220242610854732439903947764252154551311174759037072414739600841938080705611354696508176250183016460623476987054211719401232980226338671589701795060800636638224474419110000444388176882672749636141065012588721783216827609576707311237731826088793005735583925792093992936977557701614915155308641879062763096728100131214228548885833425565805192256488124196876154038953060982068805033077907060488567794842373846163420786433877473549252351037857359212805956334283542109256601814023998484973739603436342046693468987773609249929240508487290567708540732734923521939620297195469734385487405663989761489908804891619229192805292267574338860318842240454354481710022931848367435779827417142071161163129169624434461319834573915694244704467237244785150706173114947413784205041018183864820544590285273073407583963707015539418945101555572154023432972165671583302812181801850726645524401203744473951428928800565355856053395519768387547799635784604158569067421408301363083991806482596441283003592587100854462466378519504377839303268928809204221839925826721933589002507164719380830853771727531315676230228758154829560920636665043672067533066937995095589992991949145294010212932112867382093180048753240261350756812081932488142857763547120234663401170870367092104401586981187732376760972127454053338422740049061559128801503195461894047946741688532728903208539156068184297896508176467610271494704064657226489695173733007460415702394227821409124436964744103308702568993808769472438504014970697394151198775447066025299795930391354459699088695771825480252034872421110696054541559402006863222885475777805611300404574285805264212952726911427630679977885975911945977301987777587349954483708053450547354541002035090226790601344024697444682978897046759679140001274668455137856175284012103004222896066907904355280285939507947809915179472484776145302496151260469961786488521939064208063527660644735008815967298510050079943212328170466226358095244462742743689335776165676472976271287887635028410452152238868684444832140749861715020587054503357705791504542048638187810357322024369530907405845362871858368216042028679969562256615223364401723331115846134719862621809708601465882085920075425830206238360719343653173541830385675661688066973534333391268203368955087359189070698899023634227816441974511688389445237384573914862836758942802098568842371468827437268240177105593275090944403935839207514384492138774061550719475885618947352588428811709952280520388285098648999815488849202888535340831303590566431759463472219566661418674102781739069058172816489353661378373869881862455446817445968502375124279072457266661718704759178894871562044207424950551339050901723952093261659145589781515976385358522081362322456374166465816990910217210962924386609393374062576857159365320619727378998153166452802683729286374362664332564778844432606429725740749808342728565194267466317653470491657410720264392377926034812264158383026632333977770610597012304017627584521677676895763591891423024823947041261962115924951609201317530844506387385736248804670922476868694167378498173890562459272738810364533408875431374309266750896862029071169003932000193034843737662204996695195170199183794136620124377031891452074645485675038683705757992752094736651492526762785955050225352217578243376704570330082122834842021328281580973152148655162518834362449953708033360782342474255052149847520736003196284609314539866605097258824880140459800038915713023503265984261412642326048090386813157439848803090592439955131496666680006709948926281291749740420676273260914705682781432363925988701281170726210874991964897857979852872730193521110747621687201483464388801865156938032213736988577959562437270805033865803679471111927649421309995920726688834802864376873941466449432350363913940430839632137895543816973675670416537928724631613801121842636600812599564200944294843048591793403538794670300314021607664265140477112188586144738403784698217851363075135362405493772669350905865831339373611968759707271140838442593647104822716496901233254617997497895374044691072604177418104513428980783473141604237942781759196529034666827194869285524367667757656749500993698698255866791544044115389387764520694643853120534355864159978705604842690064505410577910292564684105204527878569216473111954522231742628661460119327481828905676383099230706212147125366093617864282661049379506450692691470733172438843353947950572520903961618825711623355875729139237064681455605315702221151445844307012232708154988319387918270851171003424055697695051498154427838081985731293429328796344370256701525997910791880606829072168304945987414793256251541549625293561178879159405369058101198103095777009742458645306919648461150177112826455623059838778077636908496219175503894145269213518637563688929939024138847024247811620548922867309659946499971595183124914783335466454710382885023471869136472980400208057693300376852325048892201913865144594285514345468230179000118440903059955438252849649647184383226774320120850182885658794947398157705210936131759435844116313382673458723251005333736836791779476546944178147903381943865954118914844456580555631171623414209927067084197300707315827399411649398050902130179803361193860253553377002205644303369388021520202537696086643402647289633608242008210481194311709260258207178220630724545039622279962676803974428230858969415546240682433912764207438725200297645070241698782605350878449430146283242176009209923907205596131501915818073066218190782030215198128124056005030579143353570665318055935629862687549394280858227507734399454701535439256085258217155049369100464937696662464606676994771605195242243940308682576598761351209754291395787478347020384517694418719722798184199163902996446117855189770019924088829112747993744336174539473901990801605525543915594128322739522752506507982859394547601162669043872556271149793600446466018452801910477227073059770957843872606769142117665899644692214280894745007527447865856415898939692691321129018034759236235019424989952605715993481987971150284755656842745767866641474566504107613465925407833168341393344683064993002756019935530834152924556024666548531828167125457572721431607369602351131584917595258871463926492125660442645339181286054000995762074731513954351010266399852235115474762215696022131830083627493281873302124217399781427115711502303966131482561368242848463443734628708942061268744007274820892227607287947508839216993723275439919093380963524017804039299848196780990492790305941408831932749824260755286000691638321022421396349566431370198207173229066352288159695800325692041884543897655547069286362328630203481050065615197128137526447788463094573902494313599925378273694874814500138698509705970229621003997810650711915732752629846647475782944946695066416050314398177107599882715782229400884436014638963616767238375087563075712475761424612263738390988383513847897288850029181282944049523661598037476931042389070767904297367520491000461268491415703460237681598903241077970936100696171031644903048914174899478133918055785143351795213039292096377995704443670358886095851417547703117649044111975332668340770470188920375279509150891628462789674916214039426180202372754640989443890935300837900036425987591788932242663760198332973427543424888349746211317402100460507131555263988946199234474137146732615745332054266929648242984635741418849483121982206422296605481169907668383353103015650302800483759233248776508671073301114485371070536192287421656385842558748223047404382160144310749343993901846012272549596535879008286849546453432394673252678256310192891072812816172329703378217258715769456721061480924848365266701206253311129805663331056760215168619053274643747825708068180204300404347145130066159549017993017363357107224712501392372410553197854812734791237773369374443342231968774429791901657267188658738535675319023010253704459396858820172650370609927314868362986230133359617381434748550910177333963580962887902266073563379226522790627130227405051534619286308476000176367573346192597980250066814408981656999763007264984523946185250766674886673014038634438820518054019146115224119495057444700194227219496675780309522119209697247399783626471734591101768726484421648914284531378715252358817220882510190747655683875044662427980582501955118317867400640959502264228648142902839896372778575692154432280261471560501803481956925561166551329710278345697399933377680474152499121089988394329408407990697013536443886592772137500074283918310199672996057249655610567025265271006741911550725666530669579973008494067524741907853816179842225196008551725883614306800898343683397562901965987638021959932069283253320861359479802716321879150970348761712785938949796419505406587686409643361522030786622794889490478387269375041333755673206292361602493350876294949344952387725985091528442805374926763696934542967131385790419230595071787870749990858908190418746523201895274578524651904998422381271127844289293350854920918030182648528617493576752163416216842962746326531121363858641874651416337991815376266534156411529775343936945993564799120407665051773852731129983880672957934596773567947224519451473370619390607764623538599240718040109644740642886328150489002073025653449350664704903104319889802565519047660032325578077774003717526366249465906737757192757168319833501104296509095998737868830404376980323147664794204589590202434619497737009204375631461081528309929598901865613103263717726072354266131951511257360126448494215872471083732133325511161299378787352992380008285456663969296588120936070186886317351763452601706407193288927589873178590358726935313016633395994831025392247822279160543618654583961370668465589457670329760114612006681336854608775988461673923965729427476980054243988846907938085166143538620357758046175625493514950939700465783264009501815862781797977128119704117559600149123197208131055304415238673831577586032628700204296596068685179913826923900861896739551293600603146809316073395920038057115298502023423780646270987709174828194441235468740144197125140645471571874477780277990945607101732653094970781889296548880704665815957591886205578061656660516915517808556585995871818712477492322399866697107560456169553642785477320381282404536105161012431194631452187656919648003775658833077699316501605326499403317457999484781817991377263886704457863117028023974445922427280162103631200607872374083348449694167268336721368563268994754708715880505611897554858564042065072774411009592154081110141837023342668550406666835425927512701398761540438952665002029068622169698732534761640544160273916192394864195108816106248657534556804536275149157626127089283672670088347770325689050539296326648599394626280803987984552697866491651095802377526471514562056527375546584744516083067856367616210132983151151578409841951639783085929235501885172267915947440325904301399821806445627808112696733501414772875614289613934093387876314341250181297881299965083666415460932535488897089363086736301800467204153521851957970936555480288794323606498404620276539824579324780680664811898720595135390587668554826718792344014243422973862876199724836692807290061636200565636774246059435791417045955740900308474283386394094449663801208701046370617489629619024341068427708147940351855594285000731097474735831357149152977916940391624746773431727360122684028869695273355602932194660609805882976664152099496039379729640384595402815922446034692697508266081450605468657038028683107089355477612261933145130949193119163489152750161422382650124550097110805177752818193101669796991291588049489631785137168758756528032315298128196350492115732645409748874513114130544842958559292566701491987038363852448400604738515036202310084727207487266728511374442530457663296178185527836211458940798101594350935325679226776508253503520900812447696793459109903164537301038972953680585840585534907357211903750969781751414214582359896578361556178549370600112189416526755629026043675445652952168135083109809791112585996268547692286731394592705246245295574941928305189963317024473516179043713964268459256260690991704281804051307568181944329615824733515951055824677687408029204180624810472614534055465909401250605641307321755791597799483921693045567849835365450356824596812861661224265393823977087538739059111775785062682612964367908509327941682679538086905582562844379260536783124266876110653525279770782130822865908817409935577560693469460760421155464448216800216514739272459279413276226994431821847737550876156301443213431558863003199617326567238601628017242478390748741093608503741192460316142445356885517581066452574918915366024355675678790899342630038523265046589502499819166737194359420906006687472551495111293665483017439471909557473203276441114312205331388236165170003005789855688305654643151973926095914842559628390479781573181966442780078629584685506178520082902334604663422718323477118244674779283085939061936906614456369256253538541805631785842735531183547620367118235841053898078272073049312522041535227106062626023610255891725863576557549261700048620862261177557416754183677583679704730030963942171474383674969243507065754115534404533274201568203689619256923675012104513971764799530784631485507201603471306467344052083064747832588198474882331030619892774743736958690388495913277738312897587652616395233555632123512830845612212457745707506306272598195107114027070537878400442087517227841000096533701247656056362293437955165555080747328417696379191109659660101009721954462951165925514202531468749703308934415959480046148787760172866669337627817598502413747338300069092469601594469019735085253709726562383653765063888865661451612689653078786986093938803427992761330286126444196473209272293065487203459652923458632796397671548953521584079448163279251704680751674108050194871333936894574866881074260346344429121447903927478598515366839762344608319128545488639985796937248239417953503053139384396223295952738355474434777731424232588312446397095676446534751162610226782494696769178031933767910812745055769984212828180795523045458507701144141632914773997266552680303598135705518925897661044561693418545542483341585433587324673969113723137294561174875888292173704883252043016969660817001390938935023681751602813730132604724927049737135474238831554718591758123458185876130396949275910048179049630587909236610709790567252093810883285079913024783571967980730564166957419155333265979260298082978181589704252533493091733914801560494925373504708589897813290768633272949811956658436809229682597023962630241516286964727999560076742369063457107409873442350445213535086390936356795016248087753199153454272045579059915644120959510968765411304477599078296591291820512862376900503751745795413908041304834192031230651429457097204510350100854823165878670692772689632147229155892019437637275084907200552981751008829629663621153518212657856654145068627201329948716056367831774076706942979743912971437571775067103658751387964669268360468187011867568355682515510650416457550118369750700277274150579945331172529904644174959448882948801498601185912849884790811406867390284100291542133087811766580628217933405391947547616498028402470160087434139237799353212597336876364128852946056068602754603351218213817360053027129356765895049476713998221597267834751886291978950873809324603106422967998854719565334504247548480840824604986774021802420166942888852447622429177513517649760835917693532550854738930930571762175858851429774460874045970629122092810370918375123420899031619871396609978784696770980493754899188115786124106255314011493492856768084282379218368733505635338227112583769767286090055236210045624845130941211129482524334563715886371899853721173625170591983704987859952680380135822377310878362150208234078112542620675395619514310955548827148754424029498521207481264123725777668326461383135852054542774515184736017133314880530642202170209512226244284478422868117977291647285508411071850404195533987519954204356370043128793064518756592170506621537015921418820544349042092986888141696416882865440956878872211883440785786357042427964596402562560581341569291674329858078415720428389270955475570033353236343335705268574644104803927672756261351616754593799544949183410977797785374254734406987855979088503724381658157703187819193497832963055404481590694670142466588813620446417920649778594892553589010791105047509712435531891551613992282521295631676635434618745500948404308256450268782801098332624174051979805207336317360300820001419810720359132863987905974090730584298423995984301108267471632610865548979607934863304267145101249234070554342842062663954834592738330170534258212597262966992278228771359918322016817502183892191743789498933908769748360076546228496129463903441611087393171991898231757373675245125105402750381203669411394768259636179709401037429699160259356652211698422656337123247703729261777818607157321477085679839541074386106447845093998547278564193302650540889716509679100793766247546152101578175064536465340579030540632847108891942550786789815457988439145648449662556376109591568721381778739315965198788554387860068203184105419322515945622456314045067101291625605899488078635625189675108460571865111537821691510729909619972031586162009611016861129774848653370912663220415426395636826999659382605950369456418727622378395738241453505941420025817418853071715946361541226145121794308074308601059485637459582959872846596063561453477189059894957181576998545453799695289794507674767621914517972373023536382394584341030530905808796969187777349282334513370938102509349489569579126003067426756744980791263457397575975306967373887737704926983653888060451384062011431924019293508662561964748627531346842218896449069205569646043301624506206253125192373038920281938192797317933419733449391810127946894555008899273141186298229571945600444565056935957485800319210773631972102001890963313503408783653261415783880675114437176418971934458987770229644695207043938919441106444132057833839517347939981576628923309908574121652646604032534709727674896313408832446959959372665505454407139186720021584881016175436235473639590579984442487658196885563472974348692485960931972907068262623343870173790026734085071540235647901132825919886643461502667705747601198431449487919257990431640791537544447514659035308780005628428779242232292908541509906640807644981193959110866673394329950389589437735550288304577826366832803944787809328043583159032904253078735629193517431572335835583571264011406492549663217466846377731850482993459852365829537644583762287977705090042319358320984936496836104696920403623929922915652231298675274669923887274653680666624092501645848553920918522742290048078758215015961169190571001834505070969243558711200826723124246093016609261584645630013346316319709368111211190375018126846068458511291991740184104452484772907948448662691834961063232417741145664082912264023746928003440866680143246172792627169895678878591093807060550125745533887033791038013908783994529091946471509809185697449781628236156415619390912048882074603095991588046386130676283472768549191876328363047892283063593140471567126629831965354053393666488159310335078767044446015197056404410243194588699531755354295116942563277034622256156235096019165427038619836517724883514651596388863216389066728436712010720686107511110205301433623376264652453068794268720062753070025813409485009185931839492526925601793520938578630675418470904093751386365283648613534368382262018314482914578634818066319611263179152249450396109589922520403305431145953856396482025421936180836423284575557273094302087645279967236232562701508672180997448225362813478833113416999269095140844048794668585361238718783959596359255869133663830221637511784452156113014637367277068724475131821469598968911940730331339960811926763462428563919244902406749807442530894099369387045990725527304367724010017350890183341766914191954671455834090598440034567138873297552414738919860395287221628395882390617847612192150963399218598036523244268160388200077549151660852980235748885248465770560498398371948219539873193704989270040525571600964043779515743784948328964228420911943257330323771727838742581459421558404387007870849785057388656046148036642009904675020045930462934319817155045421465267865348326246738842137905052659136395772694261614125700169240091154417795211814385572332014260541002468092194989511721118525295804350078359789397864531578745239263520824173515750069233650065012523410807773788526543385063500625854066008789716590252125685403642735339028527769630835597862815606783246354041557871160951753222103480054263577109113962894109264475527574408047992968454458965090605912801351674297772469954530159951479401315367656833592547259704038033578018420411483375641732013509450759721039228690836765783439349430820821548823565239031972546712017781930880472564007835370096893472939708384689668797998135806589665719324380163158198560656092357529951335706511195781542711913046643814743526245828971138703186844306415366824662227021371527412593348626488598971482991124783545241676966248735330244327323707829677973290423199931604789569259226436039762390656994844516502023325984663223579226050234193711306566107827246702093482403925683557410466389266306370683244165886930260144166992859740678343816502952529723633031773109919148934026643323796257570795814189578846478333587539460344725786082113378236173358877460696724383240143969668330190622883486173324491226663705714806588530784192422707872915444210419141951708867478498375675821857221327253065236593974074553508460974905247955411708671424187954699422269199987084888045758888439843109999592138691794328352845956854129730354412932023620026083185903993334194118102585554856562725360937306578789213374253516382027398883130345352885124945051918649211438163380171783619387925046839231030551124974461481766037036509836008327092057293334091046144543389968619308792059461234181679899459892123980504665901519349410520014736682889189114600057116101554488673916051359051029473447402610559659799090765841061973201744819550108019770196929982633911600246615643467597596491539216248748122803894296397109246217138551877184981349611492114009454221043759891406704326588167974346555589102473953949749384577105215746527888645126764559582113007085886216674660092435469034865759051217615269401771509147704248504286430976674581131293551595962757455418895509903744775176913572987275628901070072175824119733897014874432759282059448954107799494076827635800000954820061286826182472413669487709512263825172387355338520948307787467219755672749827473170244579454804500852640461835325376061470066383129777176896165303885721327357246029591158222365246829919604871105480319948412323538789034150077504633452475056403083652632421658562996706145610470829225344200295912609111232303511631456536720180018993147615210886045049242599025410119118948390153915451113383698264270836466013736832527553943659714587864496065316778959720177503182299060792040336574944010305905641975256548590669654124094499834771131056247813679804491511423094258868597860537743451726055508418047059575370776649662987632453156514511977650983483704937443887477852334944348001509674360881106202434986950024997593969913902358022228692282326255598861358495975320891666436757935498001321720359920962797777723298562413609355706383115594537688617369800160775193739965690760094069439533961542826181589666646570912335606653046319554995457145806186660918695286312071058006043453613320021543454761267545481566642882838700227467000936119759310395555019927853705908105813282699696245379652273190482169572520347568655046658764183245094554480816803337591518991459204631643041291998118557496204470362863468501684923126607084141516807309063302688400930408978544466708677379297074329390544837767066907094826704403282042725619458429439585329824509700665934728630639892703548986499551301964053106520665828897210633244144852970190599747429760339302051475183387223643472728539800030888171625871313715165911103523275533199434164866180260091740575456897055820729438841282300386164913224693473325800559535583719563610862473098279438094076574421282908734165581985819386073762010416371777640624089012962425552101677198150548107207834422987829764881851102930086977947510054309055274846247179675746802287153739359268849842600128478600128829079770237656163777481188456022031796801686792409439659662068786140658500705925103361545110752950544760280030958132832928264223299852205124276065264137519176967637868740826403047200843435534155518045233932991082263402517100966948082677916219646893017933909647765495513307870135544523838223085530350512635728342830310566644992906657886902874593735660588695546672652351256001497141653944917947690748904214430001122701597111033120115045289065462196456499811887412229397376575047996245188900414404552896128247974928652666707374918283018245746397815677323606075088223454011718240103846155065857132570059492301746018925739536960680416238973191784144564341452024847507502119620720836637393774761247873517269049825305247268856759848004932869520245613003588522448228578440534279880013601715348867457962411666293529537684938037186519060394640639558503263424366482897676924629761154758997585509383456742795394041228210631126478226798442540604144995388285942903137992556641220236008283920536418094539978045317794701262471498020093257350299713051168995134906954235867001012076648070275546654562691507310972396986148329833867904661669836187795671322371642341970798946681260837826933817831862710610885820564820506456368311937329357512887754316388101537176112544745375454504494885397844740476150658174601500917924675642300565312893926687997138792255767844827532480091687150088391740098103694422556294376277945493032034620734490210482935790678674419054264535641028480346061003907931057825672426206463999431944131351061332480518708397534364052249760818785394788768552173951508039850246954950077077002429786244668679121228961335889461998982650962097811173397171521517468776496263291103963835138606467028453861532761539890979758071518512449438070229833635233621879105993050189686973369214059355126329803460871128446246201693539206358937310441681011523952237038230001769114934102896796394855254585138877564411846904269549455557881930767345343666868233201572854224922640512319214626589720317527055174147829258468142908270191150811738224620027557518557206637802694383950091411540268740365893710740466393505433137940867322035940545011946527197250579094290638404157560140489317160556194820156329617139358001008256648613173412818174530567684840772281298784493785176656581665074328371702378512806150003482568136166059779963147242915030599872963780863795363140296339213378360929829304466455798598802657129127357858055538022005673964460918332175431359368589194896610965043829881130196921470407130125643824490185247137748603320839576151472556057384792250104124185303086167943536797947086281052669356678790537067579576679503816926656775516806816953980411167043743218734309414015160363686902180767039201803686267052518417358875168994499977611874638718906673146919954347150863873026555672920916144479565793166035372968532277864111024020027334743070900603387187890460536734951365116574422311837543978900904799108468808149515459707398719237287449480235852059764781528558875687501551868480131844362200483726308968674069628173001147554819702704660536403578827722000504541587086441480295663025990952952433428867446865379308854052122681224143462898032870097501678169125296235205690048388196682074752017912568489220097669422901367900404677532847348235711644460375301990481250282015394495604280031438128360747950376029757014107023519075561456124817365507928197200066296365346373724787832878041029528531696267492668236107608977736542485683400787506127583280152874376976263356072316810984305928285417388638381300545353166455603376298295601676625597571212385269557549733914256274768735597780223507170622162101360816349510721703763784833070844124069925611736767297068483656726821685571724691562949085980340494139561109707453806329578227518914249394646661068413982000149309510286860158349895909101121760771237788382200820630848062194910892560393546172400057341949345914306398399310570904331420975818280609891093855699080655952827956784600656843070854272388053777627650094404065781727916095348663492214706944867383466829274011569168797157380075789856286983772030655235296981844653043024780362860173290916897696153006249620638744196182398401475071974309550613854750154918401528132860337065344312858769256920437314607909222006775626859196306964938991735613013789668126338774813029976480044603668970932336382688545006293734342544827599366097884712293036914227476722240618055002666617908657203354562794937796439644738859432983629691239757822815702516875639048714821479567031665426369103725389156825849074413393467822471646727716024012432522037126254766382207420367119260120290397530239426442156573711303745776399912453351081182496345332378346765431090657827298942414357195981955953422404516498636919963459284334457634590664691425847621264269938488020047336969693886932391105234822564716099294518669397402159380397974858177175992376591429055558318944277988476555439985560404731357943635143098343662420114117520395843183375509800205744275853832957849338532801394528530001146283502196275384160006975866572120193807992803497027488124807360299626476192112973200352150888199449469682883517170401376214774164715978075118266360087180709296338687620053345458782217033376898410568526344583967169138436116893784370061905101293476759376005096856636047736207297117323546947233813962290659821463870399091923622510947978169126917880433203777858117850412062581329894572748161652331680525190204546290722326870968127690253811631580239689666349071588518483222931135989166674890283502124111513269994069938060524350855942533780285978080958420199135535181792509345023581183020449844927983228680962592946244938495404387057111998620641617247303548814937995305209900625547407346279425382861938405702033402898512159439713954076523775969797979856329535397770771757136433528787175077562242465647732253800591912762996982106339250431781248108600413083612102604741873224644775925553363959715165400784746109174333683886254728539843868396831743705655154064140134174785753800610141443500098845176786992897304898547796912804764328073413019278162069870516612680995054814993670368004519306268027053001816606547484387988010038775847717635111512597210945627256094486842787627138835977242856744507208882196503145274705278522869210613924144210848287731075159459375451737737439082953375686062483928373946845767045869429072251887615257263319731852554702971032577535520498001037407558439847661986244181897794774809536855378722609481397752422074139151606701541096558847835311727583135577505908787407501546370548930898796326570729912200736434829480390612636430630341393542601312521493823238251826285994033734635194693866195467414323394821477908598208203106645186748363271813854848390341197463624148338980538838677379557611476804899342093516379658462381461017977815680404305898420781451950187732080863079319693504435132011218890086132207635861848494236475331607555946129150826536038470128582766064795488267482877066574107186973472837539704541563936306029906085073428442459222974348582580945243738260827884425801748242604591897149510403989134874747261411074330073540053221142453039163388984007173705576230393972141735208417956884917618195574286709689707900075025634835981485822600368362130109709751927153669295598669234073853506253924551660419766898504316232723763874347762141144393694978268548362422531699672021775333265792367408963623762045504189931518784332570619795265085454087768269754126656711089688796477704766259413080786146704550446497253963671478064295790509988510854813333659398825920275650083568912256518111183111897249289366340960582177615249064853438297291614126156784153357999256362827918069388970508041938472127243468006124008229873763391105120939034921811463293872312033110744186493248041322905983508639632991230613378865728624431625352505847559534892321416994582270484667560199678176182449752623100887474825132402496276371929257042871616755726932873582369700836814947426306639486295073717155804544462168135325043411748334638987820585789369032270513851331701044179699648157007575768700127094640278958879862797903748531924371565755202714073262302911701570551574209657141679647203682532611909726562178904249537770377506017577639337630936030596104441005379501426595995766501384957156144095136672362763377556778918087675040488489349267112884601956847135284833894960619252643082490164839385027937978090722582703680949317592121494089791850225373141700121070213129855897526557287159504260499277247565141670131042793945042481623468697274882003158920649470466598006477813732627073839819314492399195322546978793728778988025230248746912579020231518246455804254796828892441527220474718843920343019090453743149044639917638256154991622876698204278423813976784003193443404298336008542958211267814242009805394456242710876993296063539144392060069892173061697018489585743559286893230818628009612519437813329106975494015471016036082622058426076811606226516575891868641521292656364834955455982313988343417919828755121555820427942523769337065671274116808109486754414392511530351691149333973867267014284333351115222462910606643683362875286879481224380533762216658808377929404644529113253892202107037259164186517874608490468979249878215595980440024135435089479876811578504528065386142081610752632920758162841561423747575128598121011194477872080375911250776363726453509742774163341467803604895986560502482404772651544831441633237340241175833876040946983491258615697474810528263700143395453951712080406411934888195472620480170848503647442207719228965738568478698011753586699723388396047960266742919255196939531906469789304191344744018112058351558609214033143060316232148395196794125499963244732196611574463747935455903991595663915294059488045152451345358843755476752719426170145649396518524060527574816673603116155891048555769003628538913114180057848308534507174406652410650580536868948224489486309338864373041010348168441525442781072647743923308574145370548408771792943920062533990394104874854031193328075860744039598120647263680240492534411519240081501139742090510781093783138677923722774528463321411014332148558332030769409491046799945721866408821435402879996474448805045245229190230016074980395115481689743707758905714061512888227531470356762340957547184691594951986001615579591215824691757393130184033997828089662383310095882307124508543546356822244740762358766988825916919990339184157966866039456373347689423172691178540040233194364868619927106724500915058695053492173556979614451025726509574049373842954109254083191433840891095459080544896493160135012056797978487901863259408456554566890162875066792251778398199000241121309959674901685167524858417021512921359482257324887753277753037263289447334968825372484634180228790225573114074647297427016678235916200149930031746271688885814047548011351182974791882786363070445578674426039519947145431666958947886079667622250291367164168243541073233784066766613607576112776264655280841240325948615290344269087759559888096795756287588504906984006514397891771552992589750347763429811527545509953995858406660710521043662637760499592937051297708405401490826628365109465497052121221150772297550963548540017570480997275971973625154006440926428284978333176316264050011162000708550675181225131244298767714402490907892772645119117831785758032109697284429353559790081024263754667605207923340021893804940104569283015049442111774952115339509261185790692858908074087810953459935230300298889136343472590815392655084487026708518203111431531199136893786043094461897373803027366301456979999807829121740799393464497143042427565700591362779925804269758391064578636167794056959880048343647275204112098551249942257608581837638125785168456659657613225165753214825916929552843346010646397912384984463411709900698449735915250386768644012704359018326028452760210959687302598982348026592657018428056373050663820693148297478355522722805030833824474000705028185962621660233226172156936606811775659590259408450709178927729681955642901703750869502197299637631374354984857888924838961056985404663491390316307866468243336107622513731178977421590037082525508679618327563310678648786224085243314336715240974686858351010362601869708270298227479863677090846175962706921500784415605177195432189568044900212956217502074926432416086650783625629820419940571138245433272750003133201501814976986968467336329288170317998700816530398234437043979022652441717052423400397248697139102728714711623721847371586786236992597253484201742825670870225917423121842950988405398554903807016507977514699766415449141755093657655593379427441748621851516156087262061916195512105739141918368123096866012635202014596128494938002039422786743218931420389010981777656774319723903162811740988485803931402220733475548291768773491174790993465699780653990046516304767086463857425146200936205364676701997853610982618746433782243063470922431930921412205581940469393597660831276075951733625835517433357614911834421247332369624975559413566827875738754146976936424470659475102582555726562230534544905189359080475497134410795874266361951166568365380800533694442805927186090886395787462726399507300855884415244533904685409888237214963196879885543857025729700253239858462120159938263330962310451576781554378820067065866561508185158544352209936525287265436510234777629876754673504948184473430185091610574312707575511272326112304691731141832391945433758884628031125204156435144988858519474756420877713835618390903992332837379113631162668884951949546242498671099550610317134305163656571277566983162103298636152469565557938619896654039311341531921921354497670657499376982816289815343229323977740686989564323557618651155441689598307520041004745302133872111330847705360943925084171761492193493050451250112908058866372387903511085295380751174401086561895416786031602477576815552186721361348396935972182728538399679679460009460188828287692084658535272459896570258251268673543101805908579504101366613043643228982730340434653702800994687966236619498006660674452784545101806084019039325860793902155638471382023201839535410212473382928381058893422695099223588544144107564882735348798182751178660706173730396189891917253539615495360358781024171975729455604863863017899252660730541219982765675740464641346369291060540999951280582399798969656428744102582528913654496370762638163106827087985519774568296504252022994182550096138387098663061793415399912834730288232815862091262245935394348686287029542158696362955951119162535010110091498353768184729297602971115276586097876529982610970069675041219601072948776545562278795083686848848677794925384382923331740950375748024361812972952966786553432489150224612144966820566836803263851507180772807264377945279869508755188489112083481347360958666377227850779236330564460925394570424795888348547941351957309049290899040730306745170009413275064411804913308510375301920532543476867475636817431655640258208747375551181087623038832490618949154231382728220548762293186593068701227036278477882041807482871437997435979450768473730453281389785179285532189800297630882941315167220582998062775628305584487893820358564315266617049437193432161744808429542127103988501674230269401958746810767273404969583691708169115003097522962591527250361722863225855552485248008331718617354402998419540551778305896801081846748342979982486183829274012494562653506697463339584792197292928096549280764203728420350650043339971706638755307760609531470595228902076805147225225118100668189281154290594363468755513879429644941064837036109783824221404745604557447360479310948339008785308160791748347149645107985788226900765386923498584949365203542672629755644712354634211772965188459179935703753280993627140105836883013619192722030356144065658435396787392066326123643464459624197122678028042929038556850268802436576934927396229209546819150106480787991953516258952575213211483823307970962598440128876523702597271653750244371898241733465488065535062477932240464660034814235675415792346376361990280802668358747625385342604350120159214562156775547034334987394992703507933103851066809171877826092567630631006388864800089848864480649362904400728823098271403119515898115425348471123350316271327566593447206184986443954124744352620269359191068619803089598909455196063637516284810432068238949432788091737978499607034659381748855870232267467828502560238324464620764245293875997919538684948953862225220207429338174117080302935212418727900164048878175746748732051342868174464908188587553316709809354107178138666001278719203036363490739097376785314743789912610468740372355883254030064550258472230121792910058810586029627550116800627333165667029739075167185496435500226005520740141075963589229772732988919869938552081459504522480539299999523321939527025461588102177444677061433701541493852797534576487139600420658127331939160397913714984172385573603777280313718717880578353637476162461947272751523969306499665778341697966222746830996481941822590595438993827269160399377353766305979349794520661056371119508841129639203645324928002455336468201967425586813043929272412274741699656237595274880620529231418113565268939678996470882454998640831190522464908734203633307270587786878322463224905789344910357977035178361604894760958263335088329830137707045366153566681572183839448893310763517092708301278584159854051019431529325010917558299815457769253621488647690051911738016936975059614081131933908723705490313725191248918253624727438841991233627626210303046905044168051817584009293802238126540214772770501708725121324541159017521218843550969093522838807287461805083962086615782365983567031850830636730694493893560585899782189612256482146339385032745908883309070326488565212491752376755261560618340442089890376193989576241541660742534677928040625620018551855820328072983698643413264980267882325056450957715814066663194391591221480957411434486828127022525340185067076370224905529410379611883251023702471706193796954817708124523794899879417818573277273361904521158617388806476705301661287321004039660309640229004676853256316423341480989106304756696923527266564899990045956234114511725328393595931757741647607842123239158484256219179770721663469709414352564278949676985223829153870711128340733594269570871273015306636618250288537418014469832343377089167609331521130752544594209126203991132334511400676224200315304072877844779181847143603988859280112129265234329892616557139852644265426364008877470572185299806596518588310684270011028890695482682785406654845870400678487434116144594675649275314281632329190822541532866090377898942835418632867685229679292730136652948849738301165994102584666406526664649184199282231022313382978913954100734591675744407732319866742185609584699873000218894861536992450718686851322048961347049721778769896037624192622729455920190379653260211958174159111939528446283407849023807577858881451195438156042615141168426233000930855460940793609097919078075919090366256416133997550629061671261929745956297047897577767842338208353272238392968083804311388531552430444550330383908421816066350286282196961554235455790826579084935908730062043238190036484223354693790603308928153548140547743998296917143909627350619791673923210390904843087925328756508109467348356470464652795112415441500380242017927410603555125072090520458938589801199082201347527227222567454676854355936571168826917154651003874729518740808569142324858312305489058041136187579846953138637736955228693247296779420882460696679652925761671822085099270302191014696554658765207391534028534066830678402873154010997092274758243053846224672873811397787916634272241237288551598260035948076336878572081409459091528532293415060383891229881767632332548619296017045982528939115133667094349631284152565168772928709710548667711554906524310896772421736342522654094630614668821081334255039880496196437491267700977505105561704224186897344862124823782239757513220478066491516113846617651519742385495738519090747902454252980290869080033622547672570948312818384312131732151833365367530213427250163498551256969358862764780194771002964671305049499727534638520054283013004329226390316641385626538448081089100409809967530591171138279470353299138192923472241456298082991061785402665682860974941713866340075989657949603815088120872546032464974454757183270216268345428523928355899289481426058754557127434464051652288942044882467703025429384638320478984494467030774606442216013613018630521271130395169662682615781722284540767140676906571843345926607879841468897627293577625972471016216526095360622621692613442856585423863553762153755026488910843339735977552435990569203626905547494161573678657048018870425505957634898227050469611455813769543991693963753593370244940065413857351593718141239915219280610235238032380438976055168070223629258659805427350679362517408400130256482102915319601482042066139021674697895755343865926322191285817754578443708265865715919749370539907102193118017942752569076517822268358660324323234694796201199360143004306800087051593495169118816801914768517467241449800361267578659895156560279503472544745511281912094345337181830037590048643608513419987673723431076780796333720625224682488168660760919287316380469997704702826612781561601039823563871032578321553763879715048081790953361112514870366895669092017453054085611441464096656299869267574535729920828480667881982709467701774976171795776194490594870576445189378655138060808368838520593441694646505749059572982335419377310385467757299005170353881548340986668626564735666565556650169206017463358519846883696954907922208679498521732207192902476212854986475032988388611826387473895260161777751300035712340453040700687370579305514904609857160618099274659563770415398869696019122014658395148479804585113741257069164132321632105165814964776147791170983297605494672758623793361736587898642074620237220794470155699172095139174465294125864598620575637457453106411192125112996943466395802138409882227717239035978578609704058086544309543350755680818565043745072551331448012954436626441892661584091516686665131282648324644819139104289258372964014663541655418545384545299480339940766361236715977098766362132070035025211206059621588150431978426179478173332282642075561875022043093890260855736401507865462581831128557996608257452869164906560729829785250649679584793488997450835618915009713820004061943811298170754929574738008501340331303666401142748236918388312539869483408430185326618021534800723661085268389497795240253008081171638804237721169435931392563224080908046490144415908316851537535138642270794151663593739122054446118650899375195465657781818186557557853269174540724220963177436987322422138736706736225591613494762804908442074472819287954717774115337946369964050451763750546780398527578861720633706011409945144426049190178550317973702627138727443942106871448334997165301857423011454177171281943188556966406502117258903538377552093109211018826982279254586293102382909036737872224723327070635491998076388641816183796165613184336179703185602714055215742434056681895033037079970172272623651870952334893776315416542709203748356077797874297112296962694867260412443681111047089076977819731363641578781104232860247982091757719436024697277338721196087953778116529657291009229145232758408682506625679785705673791467326967878901914073876004109348255034075256665793996605270271252673753610322020792846814131750916822688803298573848910940883616859840145700501953930559323709935234743777909332522215337582385628459181095199494752473217299812083604449557288581976162288745721160293041720357514792946710886224513370403100664763059575275352238929006528616314067465348177134010302172842608818427981863769693592211355334980803228507986161495666452090676331666295804827830430827535791006699161361771161999118529555275910669265558718740297233875774519238369925787294242245198320613328623961175792401624233823495905187920532369264372690709854156766372603408955182246052983823948279485823588377373445369806399499905903343005716379054808780653859863114764212994259942235645989724270407686598968832590170276595156030043323284939332937094782297599686890940106660500182499773213492323763778452030127865655763280187229964764813814682339793619952522040549354471903206814587183963743980536166146538746283223823566493539101254405278409361570755588287558975915727812777363623646263692800221679497517790278379633478481673908960951313206063342428392636573359272104204955955259418686349863553627680173368456388407911194744573464641824873739848593653037053889929090773451534096511032579934378046745336110042318524108760958698377664773128904276167318618829851216425965116476242175525660987875999330828844048030779863679891632168731796155922171054128050330579855984162348530426041203013851521260145138676216880227929162996319795577729193652626615990767602699497272442319043681338866729362480625270831201961180215957297396750820175433010328381439521132337882867689798553128275852029116623963776300296663624369247661375324404268808520290764914019996782486523245278454086874490449849952660077269177649110910396028817211203575798235994790669457482935346075755602714775206415979346052384335490991208547953418774096020208150647541061710726975356705677514998169874180664878316632616772580958694330059459700281733323357989219516264276503959381102973302911447335178674911648293558326363938369924071508092739877204870853236701774379197409065345779395588570099277062603201623671861468177231148477117892025583809264991448230302227099072372705280834380693117962853383307478070773303597054699126179920330517325119471745733583830806419622093947799432350844698621653232010316424292461003335357316173416384984866101728046952692070759391222765358559094719400104302001900312237296017841779691711249375472226012888608129407340874162372416871652902202502504612873024544294700790644977591370172735030891948543218167713799234382885737818770735845855257851981951209030546606304570219634238799079019871625815984229112720762637007078385914208616943769063437289062715153614986664962968611439829643219842265390117788646603712686779248126112841799755192288259781505105004325148807947212103744679117395686261399630642613883629621675525940282786026721214256026824778838405626868467056495116725974987320541773932119923343428243206606810243723779854661993317573894915791694745906192481132707919549094725677414149516805473044980691396715175290772263008352775688658696399442455291059241426682162114727499777823173084998667794689371236178497026465010227637717080661823879117773116542859344674554368697120283342002516253467970422700598046841130866010316771763597546248091493255093310092136336224381054947075204419044608490711102622025961368333254486676399942612197602324024588635808816370021593221975140963035955485089820977820352035599517417592620008846533815107073297914741722567535134412700669031687542089178574084732196883216046821395368494559553870633006119274184458734150929630657692215202016861855392953775978052991248572044744709810417993458690692913974321463670154395287761379985925296201310986006090304223246533457400389421707252609019086167359619810137548907113282959282105687831400420959627937337492547966125212218302004389812712623575779971073131715549802774317587562803783898503437587958801337785309820114434986787863977054292910935608863761564718724860801202349662788961288834814925333578959022667534703755816257077951781786810246451818361334320364821851682943244392548733697109098824951325754912789191773192341420838769591472334361216142562380419447845964495359832311488991118949078949546646787393194934503900967108473408546900115125522733701364944853561183809945420070025596350760952473678248921117838348329257602582908886567950037356980756743346647313515589371566339239652306645932007873334857596283397289156331090773278369626539125187056391791392765676439014512996866018069331620971759759764526856337997713285854219124609557111598956241769970640055087701258438789974053015835826946453883257256374788007526308842778879227585573393186735197830281824524829648844605652692949658483666710498991852768696936194568844612223034467581189277377011332546224587539503145506544133117043274584811394181149666519720696784235651799948564532448911527598944657032088586544261689384422519144733466898006556548668589842064207709990629662137333034908451038460879518927817231977252646342972107204138887698546426990177762830978876902507098137006443018450087216892903586860198430627636752920300664971037344259281727208016468031647792320119873702797564600001517955528565460143863556434387242465853084297874806902843691393296964244378203550707119236822894843289772147280876247469100776350197370686345384935547142557618651529353112966266331321496778653819656944148457456902453280447932090635825571113736711837333419129780783231409706413997490643658132200566020011615022861750196724780344987212920202230954967986748629261351374075937102962083925013153166278878742369007498340840939899005676599156514597320846562341632032394535355934959078604472437246158703517660379761601965390084600613884347295520793057770226700094218609893375438751698862107372792898533107223706193979882784148651689324735029654061825664268907404658963752174639883710310666796651708920456161792943197504496712058626565039892300820403482960837909004679828860538587452139524895850927062528713266968654872539432679918106901008408030415271276426444688152307810323074835025180862902216310038340273856442087727116738359012484488219598212700400819148334414260729667748892994936427103631841016429484916291591691761812751814751610148997469922274565949259190811681609081273064742101347580336659566819849607418716797596941358037893896349449541288490971405143301746834302511038936782707081892400063583761060909920442563880370833329478059811204488438061606110772099993249366249733449606135043641755650048902221310419387205774940651463993669483554967252331211230594378203052978948560160441985790915103900485024023676807042369836017083352996861910486262711219440820288474329103139178629986297557163634361037016483083262116998101401225390452216541634498303190730069934685353018274485495885286860770979279110941256429279934520163044162288897129841248728791317274320264638884770544601887915098569559904060826117218285599655381794117750455427228681244254868221856753246038708127070977461735614502851738503536502701167520075679438464497426067476932855597319373574928000782937575294268954730995949006548442161657587243103824033662129827104992247575916421724566954667136090266136425999968322284392419115179452890006995870145621324353071470729733655359567447588953228787466708838825440530207823502994044580212366271439967507529840870998219363717576820804990569025846031061034718003419367623751211257644916889751131423626911949953794214523592997761998793638240120415993682143687304362829112409433844305640286405840546833044877877329075581195096779941487323522788462815672569896976159043870842633301454139755100137511831758414845952257292222039338981037256965446203671688154467234114893143278844567826740209581273876489188309258595301888616149544186845986106808813943433422706102356665105288151450309984330755322070358909327852763357358213152281319775026613832872955071434505239542211535590366442406777798132583800093962882475958646158935730888971313050223790022790851714578333792380070539053822797894131837681241562484481293172119037835433494134702864209413599647155143053321718214330122045039642278147922024738039439847506512072529774845381165836452442057118806498150352049916159431502675156992174676689545999275440316291288916744324626194606582120754451011819634320156113586300498993694547071923476368975448095194680154440776480812009654651391831012714328872939809939338451880371839246351797535265609591741585928082754048305706679193899728253645662390149160043241241336684942355872061640593852552830986463142406544198161883485585086311258666967991224490573278138452417609423447476546876824685815693081649660167131581334088945673528262626783784921382463699216324601213776636056334736173262250784325876684353950929853992198630308810322581520626663229367522798048681791901927931113859671196636862503430743146061330047917094951975735340678901941723702537543968362305126851640620582960283598844738829066757894794655635380339057677315632524953810854670617778141234477608198363292117957199653495586491641522167311109392864628174197589540560285988238336683722482513111932155722364645093904880054274205125075119669955398779668765608055647242100391475303103282449458950032410761628418177969896642686162878725697428852553297967065698283600524768758571034637949626349340676599724561604881981833015179333622647677031202277135881271890681963326715382146187228854860596137490671677629418978861755932262638015440049340361989775178685914071796789652513626273306831091248129675027251116415100505609960594136877453902210717009505094212711441212704809899348500644759656588273133926610802042873587822435005810676919835000378177287207379868225278157407020492574472128019246321463860037929695607278398803423731670405776433420458984273940734758174589340188024226504080063279820697958997120321576561187390705791158966664138861908624080650770198241920426783775610037906480687931018024751102843644504845696740028805669697941841000576424884836809683261667393690646582855168868476869914887444108525876421516494591193325732182002517048197471379251035851953101161394307278369301249556626446291756775258633049402688885641698957717139443626295748697831961673837438550417649855310702062705538825952345884087854380202082424968496030439128685563618952717099200989493158150033162061428293412358034059921759827968404845240587635133366813350751730713960725864619494355119413463227071334498434858914178617068261684039347129906643419696499493859712596681400893360293085342524210050502808393666305416771245167209538778625560838551909760698172501423666673202821793288892582391133132530714063910048107006765732637780397427372275476923412231467566394568188026069935717172186371668071732303336252628890076346024366812570699035549869447720556226881173938500663151290211351825725363251289622452875036919221563499435363839576070427841452683586830913722307371968941621415971252488596813539091884227522601008716686588599260259795000579840073104919989345879329955510196952690694710845227915027660499663218454679854727965839328283169093125828654257636599328647623413854231492276856626376901368124307952095503404292319245295902166135351188865389234684028860702842491317671682342524453900662445049957828655800576989193770788497340849364518967811941207107665394493722471082983601252538325487292786072352620712023504207278885318708616023133844848780704891115041863555135178704908589714361749250767649720188076666693735145537711035452436368143727740074444827742853719281223775485216372717955049294115310339906385250528438004155940035795248675143611826257509189819965238731517271592766606728048711303766866313830333771439020352795424524667711841283195034902324547940183326679049597951627967548192339637842876453746611275677943732914540407690736024590715075601882717904247658414047462097161973030620094689458899623878371716636246317064972097903730631855905246515282883982200173457480952018055580976632281424234124398724208428112359897977282800871647636173179597400482492880501857328080342917197878019695080722472000869687381431167149640454490116587521683255680443104403096112042447623629247251704017621532082365304671134053350947638674952793606594153756762150536747005108271178562961057709060989784743869612153465581266181241625273695633441030364089238421361749241075381798763170459766945278546945125385106451577247875233162412821848780673700475936716347230428328663302557072166686205085194499818602330364835271923149415406790164918581322226031472002317692694137159134485273026689776961179098013326454638452911267636406363543941001469980863590346687811822340281984958454864131477316627622622289351501120668405932475569721295744011423113212558472564742627906282669633159583137745784395048259228861358736014958088840414577335761242528103750972966186643988298251587853348457133279896877168201863179404464739939775692389352947156615640681267646265759104475705010800969810787242764635518073019909268297854514576059553348839637077416878090029528814855024781056836621897663068152823776503584263634492140446111085609202759832238191556295517055218990184302746873446336299191628524464408742131622224309054972287530741935597679502491735636982531029184100455096410247763244698243395003661545272354150912171238178088896004287283558056252918652749028840668804596469596171253760307510387474042382927923008619511159560396915395604769359116792420931606064956258872497544157757733497500242207511859562993751632783692127811822748053508599867896693775427431419771324273676520222977482107751639131745527270707260668605051743743870215655121920268783358040651748383831716418569933378246659934977312151394393133323146045927071233168701458555550297783430828681630059405013384041161118842457364289838228272567104290580992920026826451700826981515980287972467051328649199525963877294652268376658031215468936662469581934139687522986201631740871304574675994701016240190240665595011404662621590827758107971565645476030822155695183212372136184528106984159222896136756998217038463208046818564577773468085121266140481938438262017312793978086849421738726223153452369192462434703467811658123231159008875517709161871330886184447272777384176203619280015340124244749887188575273246926478411946363298172060299442470191549062599280229539232585406091063432220013571248275392790189988338341255679047167618585392697482831484251204680813234063881344623957428653847128939684763119346061466851003724880956252283021595974792140864177471446372905308110337750509767522508346623033165600554683349885136457022088443913676145185336938144176672091272205810875704227042349893764245688193992977523754590981805656240397087562085786086614878054107908121362111442210838395582699297204450501951864457080785152356070764241317490390552620497374609209090612100075944986332302987317244788786868052576825111204599901315900054644123986402017803080392305564029479544047954304031062426737686650149306845794758269992170967823397053208294750432532802139785236913563221018727529749926857426771278446646490460338063738321603553552889754833934089028133092683149005704466333758048309863747520791922928024127202530144721477669117236710923118005231823309452027893519002687784141956212317549516164747269931245629012450561027331541869905062010670279633926593217467638556784339818154339697882739302285817064131434972495997693040266359604994411604820334366816340921996283606638144470198909677328204326330371841178756944399570140818380637904594279846422855289398439660448571554036867593610444444679941751910627113588515460144668081398664349290586585051404607057908230497601128530490491187749377594702649221667777950405236055443589116208177126121303779400835957207728954600566880737209958189465030303183482229403166919094962012555935088386411860282517545076661586704722759537514895386675201973265114736496038611407101094664336791664655921711663819127418054465765986030504691235667426820875132436848835385235322328347020540346151167705438908564455958065802631924696011849469174877341648619926455949789014954638886684756694019299635453341581945401072561308614712801343722715821497618430959775331918956645794212378316129881580677976707953305311282239377474046951604083728617943392666682175865667284346401176880553124760288343385335541673994458125740638832171712415305510793577416222453244296828713389884590090620348262215996555351913690595771327082999454244961676025900717484747358684884873339644888220962688494959914453816236573233847992968990392377848519867871749954580048435334430639012057807683627730177000082383588580330845381574664959962894228323912829279742958864248423080819519884974590800060018903192863864984740745504623879580659384291672090194435644558561838846730928714928956359326764150054910553817681912603999335346993456595537023294435782775014741068745664127109524964914229088624733546686372035483776751631862881514355839362491926057113018173207026276519504969027100729770471860117210385621194473936421032735652880290268952499757380008721785995394831113276890252073930047246744163443008138744053472848062586513949997259440413552782218266531150671778850265625979754357590117147632531142995138610817178265677757837586001265488961638927210375873442898266942954513302194120469293410190725576041981055098971704263118062778593250520551181158228041442107531720244346066108219629291861909937684047664668881424674313952048088746058555709068790537457450383595564096009471084787881812455220228089637428148441869309819431622907893293429021330260062598786533420786057004563635211208485434233125309707746616388448730434580807043388922922123307916692461027323588005406467216116632391505956123789167287381983267962568529178476555705544708574213430096640646388690213375108139057481715524197677592213698551994482846628600870014033656632329110222855834588208302259097160805431151268023959875382720014095076765594801022551696674427464591942735822946913849148267624390358643503656093093644222743494038453060521932527859700412869287144101540678682940883328726255850144787129021207296946335795757619151848497433796561432791494649466814436117096981887862849560138647557481018280489628156863411178683158964364094434449225008290152493736016780540234060760564151048835030060062937390288760543341199225370814122714153100029193507703897863948545190928249494225387768625823656605370311180919219384206573913974631968748333775480238702474732048390925638726924115560337884717239296868183161476353792647339012955424956283056084985437436087876857988579862519295602415018977184339614881632499276454550596278952496907821339683389803391508688824698256991760171532421656614086319413467740228189495321123898186503365294272498657798366512000591696474446916133513843736735830512218521042869519883539742779373801812290424600920625693640221809541870770785752421655783722181388357702278008606471097209152927183821523467991886999134788922713303163197980618517414941066674003928752049526961248925909856800890356980554583429583154320845914005004687237924840701283397170480500106080375882709787770922766603028929211747852630759714963255343806391152158280311842693061865048427051292046540864100848222905939606625219948132964008630925876312975290021707784058229433691636058435767222236166250334737600499768504837244869064794033232324218802056138372143795757819768318476530076530491010798739357302443334221431939922674399976024082056563332718544221409032363438814832465322084302892109307396762530444124257623806411498200296638758544792230846936493523859491439053073626818943086297447945474655313743495546984443343464492074703074373406656335277876648815334469914477436647558566200409732058077051229923648999808168123225701496396363475051282207525998909026294557465594911131105926679869804801540721693019049422999800306492991079755660494452910481183772132870599770858712679293072985564637782472573222802888146198916684666614903102285768732541060715551104868458891190555547605890930692903344304225423303420152226485436432651591619420258139679062280459823322029480549151293761388910805832618217033702896263018129249022844169195643916490127961036364772481565963557413110262482653505594181779075202785622697633824688864098124975030583558532100429500831341381967472607309326335940565772049622517640192878014611074030798966542692372724170837771623373417255232047541059548525874761687975416527787360667601232661398888816231235890062868872057279061765930884062269840857010655922191112674477255448654924546601322433315802608715393068310112496156483434638224504403966398523677414083777887288972348370334708834291444056828210586747909614070978686296085487352105656530035590593493758871401018765548848338985421348968054181775164930404117337821072908915575186607687968378699895190854441298583452420066458533190086431254819663710569448058647895235867691982750056468544109415671352035791981402523004947681937040189703275948338248644314126308643777647301280007304492983787904707859070224132450475998581089140269766456297244054453262763203320836586982018207851863208185154086062876508729474315544933697170905890999089555498439905580031979206364589096614210610858342955733858726201390982332836823866583267198582554734506157237437974387280787344701586670583919131196373564384815332478640196749788929240549437373733716547866472075206269267751712676979829889176090001865744472813643224969847082512539616519225068244451721488238252873422569732218040692809479417873526688489998021562658141838813578859123603088871715864678724048182762352648938606904910736409763629619254120022964939675173151595356440403055738791590522189785220836089734941487216263064215711277716766760759483017803543948450121252795357902571685528162754105348240253906575124139888473736912593704708247989148938589391077886068109869856372334014437628563914387125374817924846362062038570217291409358563676111239894421824466098126202041851661690379594307052320567089080891915988490263150851378943375506169640376995274026197390757895103491894189889724870298644768485229354103809886403406955125754991348352691861188143965951529360273374325935004857765518301975758761813324226035158644685004585438904299363862731210116260477916487852008880965660110431740234289362501932579465834715422274310271242158168290298316917135104211305496800440191585225450307553965983852694492391928174988413286447762732771674297563139452232311329498336292704780263330019642480217985226851175173375266274421799932181091782130729371494913645386166540867093358613192257270429442200204681289378801180100963524712086549410412284934047577631811035683471366504582262618454809247289547973688631663277608254491004256478665251494386252808637607460328946646525117144630616602712653691665424445696317346722939508727087860818893339281557168628895898518921395027208297774637508092296063909520956272342902563008795495707326429102635964501784261550619899676302516674104706219372475660068382729483336158623955323613833168596425928525555007014038921370597927256623844320504192385784389125763934005906155720614072530627916046439140792653427549978993447969672323764097510056510667467358945986225719579393431316063183602643667006464394829548870124998273979973522146479365370444921466667021797277007830385206292774628781284144441215009384697598903701588241424304700832275430556176916791083550524566773473814027264098651719594742742524264436988444316384906919940784274992129781548327346186977486304697431815566144045432255179515851627784670423652859917006247331442978275497377902208729785202892695632408338048242223800762157147154216654585441954875893335321823327213739627500380367625319608157978272795704830927565667792141212121181244286011380862620993923445034100066389795570908711537738455951548335147836042803686335332309970869729763252271708836188913111133390974689892443104901154893220628259702272207600953642923162708985227400734143778113466430326370809235509010929772979403155503574665464146501578617817191513474141048947784219471384844301350709562650400792303417236141314419775389504231927167074193863131805712259072137575564861087855138359053579419218978874795717152975154589942018250498585345697560695889336948188784148477150635334679872364310827919740448280018636168174834390265323606648366527656287533504147131737720811682545360891625796361608884220375576826772598975002258622816363634292278799143357305590171862500195087357045485551196314661548382728963125199530917415560625954734064374371959165113060290720404559629673548346091713058274553907485384454554491901821672696216153415885259836254577351296734993454221838888624205044340993079458902897530897766983256414980884115304596960960222110248608624050663903990914561690441266546585546781045576570050139237354409013117538637406646870724994576788978872405699385456301171984962798578368560204628805457178679704381028320171644532646556945853407961097439284301584064488188287165193806462437216970472282921875338313953327601306183863163421446423458631085079673479250050044635724421150638422909982233760329519590322815288202271734210010450077794904206084250180045355403533147562629865118356371349882345834130262946485091462489275162478706966404173436170788577998234650945749801957173693635289490486838195774799784332182749470294773488323607496209564556527646427211226888240229127398129597454801707591088339386597535709836920584079692962744281986030026752716337854506797821813026016441774973175813723666591629127606863469555958275892745059139230188289363954128758635188651783634481932523690161478976230870761892605698227441698305174380847468334119514460569560236716584207695841826517555126055719985453378851906142757788760673415429912629914059533013898178441741163530354066205864895935377523392570769321301529441611126957600268646231611758016043517098866505060124630458781836086209587503345242984229371226325902093242602082711033462040049241925809291258245276966316868608558572655019259456091480692453658349499484611284562941803599237745107164220535000887860056499651142722636977602536370697615476437255527618939413604218053266612950197953920323540788766240028082846323084703254993322538037574096848199960683804073648704327661857052131623266088781126074187951485415876153521275715994336535559997224536869600236701031891852506894699783147648520981654639378379935718359008286574488312168965761425457175158718884168633847182314792837239623264465722250894541408331956290114861468672548281232464063580154691609992757426153491843395565879337705541609287836776063888778339083678440720139093388604722914418742154912836038148238646314109669006892961407430400452501052076798412207348622535673235856339305154143587582390550101654701188807728624374006075694592652367811383114854706651370771943891881826302882085784489974829635034480633907159987365117282869577749627918818341771550672323096520071173567743096023754448644356174598705633709167621468754121699809447294298792271257831141558482875500012441156930945052854683167391098702833405669915481598892515938246664871041892072980873134522042134275767835009847777166588922871049583572741475157341092637992897149232916463320682453285344593921824556640917631154084224388218557711248575630551557473872489887023017109934074054123569715940503470190162911405340580019094348001685006442801988364824811400738310870989751431776979771481180298833390654307428417519129869834806728196229915769297908198307659195973595990779482033362498605961166594919586956709213453062584745428240913126178515841148970286143780872627615987254094171247724249313511474790235944223066819562263438792912325519713403647496139554199022515888336675376340577223331156573895275109079043297804149165164445257643874471330375397571288976730455659238557686472167907454559975337350347885440817282910478167388217409621666475277496510515603105601054450474664350744225501092769241972567787035339578830343572225584445370537732182477320149570464623451694386130329785598766849232843716354683239616364551281579544772631555151285355475557707251247131869850968826532196236339274708667524239988856127958690838570900985604257450199822606740522799991850613711541067925973114674722515376658923385905160034587833083544323623575828482087323279659808950075817100401760410777385345394947466409955052353953728682457959961249684062219557136235060613939616733880335447113699286641688246973792295863890635979861097756775911618553048248407779153749018386005794177024079743069182281270389691262067137480915759428946280092991898352920620702224755306068158282899294811017503089454409875134924911423485452663386525416036705570835138398526297539801193030249411186358751349742337022157527660575864434337849435787041960031108584093039732359164602495718308121776078964807133389581704155103135739137638710312454130643963975155088182161262093030105812008493976345163236348693094460784893997062700811987026909208835260867425787590019301608440208680988766066850068846318732991502198089912753414005193081425118320515306749193160732248123395475879770123691246961357253395751032973155408583340145042803892792780984400843783400034427573027209195139278754201231649053833537619117074551822239884959745071546440298872996771482071690572507524898071433375147117546415183257732912871316027296798910531287886701590965546031593951838962058747590910367304449578912965771456097211762757591108891207433896811871757645670772467121095338931804032387849517491339322351338714834494102439436868884747109321992068487146631146573230659420696425788913515697182115399038969943365699401012415246548225546638663802537171310019796886821168650047437319473957384578226341027603853324677073898543358140807789042387600010861924087938519882327185110223577191898968903279990859461462272909730316197309339470069919066031644401085638974729050779849747051414588657045721164939019753659945168444412334277236759435994981665109876051929189997098112290104166879763927422955940026741132563907302269213040831132717468397100763816238251175970515124172009360951732075453715494113413299541250807942505849431784225474181336244689149359894873556961358205587481473061672974050395072505167014039338556048474972680246649233494215061426843344129819073108761782560958959892200948985432079475906465676237193561390376827783592419790169436498930308451192798233689968460909921424563119467059378513997410332824177398945623760821438174557185304431118760939523709036573066508414549863925010362308947864627773834355483638014614866383266413498025278186259235281380259411941976711154692962920780898321628114262380537790578058080176105206568925598569723873656391511504547675619112453703050047663907187731900339689166593120161299110402232857822788584897389353017861278478256173486863491598778201012670617558447528892735135419809765684901472140111072626851278154574663623679763219587243283829816197461688334990143070487233079951746729873246294541877656572641061459946365708312766302253176142373191668042803729157674345187723405955081621906710460735279750004474367029859803074376311747948411321618938732285907360155300771137297215917560137705911453859101354551820360919416040118478597455557420664049787941359161494705125930459198694676105248074758819920973247883882380351977241735461370165380062561776177451088736049667034380791694694868718594012044857558173559734319327344492983541431986745322735975082010907805029505624253174315125831998684501823519936610084739629700424259205131925884149769395860277165861355610291583652958526506407019273155143669165875801289976834426751890067974052060586698908136020630108150346553188939481475834649847948366333039102140750166628735892781458779435397863542723368964918853151710106190364754309367364050455043970226992420133763235153434635756267254597597360616257443574771835150483973224113640744573515756812687131431964707597279078908207601334359388965015171175828895516323983795574005298554497483118294567878525511051941610262588946620286205823805662096596666906791322728078631084554983129108836843537541915266050868847213622536521991728052655636149267537731682468829259415529873438599369998079108603831375032106419132684786172800849561945776938220718748220231613340003675533245903946447425220549134633486457964577166833798387815849379399244034127278213405554182796033939221675639695480551314702777321645282609345201910625727085226340989321435194548147081839174114070772265401406648719094864840926062211482349011211999423533055237347503493848530679872141598900714649159141788702878324079785914575224789486276554239269135636994081359668134066834607183683591291922325027838953067658644470467684050904360971924193087164172354333079974971863820359405049468972272831687030555218048446574632047140413461329674330940999945115351415197352393046403777169217318702798067973884911305893693304785892568815486238998866752637284453637492403805316688699964681672184894128702511244107725437712602278775065595724181567785806074359140344042510099909641345914208297731166502592428300526677579857996533769338927317761613946230794726786008224891496620862673722795691329985970420924821077086018103926194649166571921869485805186273920851571770752950521930512455609869911303499884812267136847580098636104890004513127393956243866545615343682358138085743173545539601258820154150923376870607270889550873543219344066649681172684268054473515246342370190786642383996007023063173177736495018776148574786240369386961340565835017922312391061863162950328008952252505590845502518257536816228847018730251173169753753149151210337296143786936863734498863663956001683895908217634044166062080420859790412485900628578577342693429564778610758604319361320067783475326340780623842954310247776524330418398823195227277151223799823926647237270227420999003784909239026343724458155441875726517546496916028747609762890611692243384419460564298352076306165821861049696251693501232254493550483509782123076962173734783089970205073166643031915595160198045162256720811797468277383144397646094226272073532707695579967646180530009601176734925852123403399587667548510505315210799014577596942531665463572562805249090967582231335781167345088335750164759800215340423502649802121804194920379567377264556708663079803144785966378151526613066452720255339069364550661519064351184327622360426202649951224090308544972929979777572884608808195781496198856467410380682264641931843962357271879500486472234671289223021207842260308565108084963384338162915940198503076789970213126153991061186664816318267092531863198778875339071575753220913989535886049199620952043087148097266989776454640978831899928276302822409072342426850492519725811279433178246387897340355872141431919289396556697003375566413264883087529599945595416186792622484162012436886216389042784571589517395274400972525442765238119285165229355360499664598550431015223598296378136177751261164256350636336502695332413546801415028831890888071741508221527180694831488371584266729566915691461057261250367488866858921518735252292742918443219671812172468603835063678452528496948340534716585475542054149727957133182661715733924982154960348968615035788815064306942534235035631728220781218541329326775703026690745283223208470103198744011432273406871874656008007087178227675986116267492665168533123063868256576941460431959843781141989025202660304110615725585212883854493777606074207874061649315513463548703804500531641013945902223750691847078566513871618495159235475416559801399667439843009644560334590450015893704465246794312177523499615997085806157642553238728561879321554680443492008021305308816947194699183206207177932732456608029949381802903614525898824852139191293761024964031311180906271380811791691668728789375988108988134316538068938698992429992839892920508682292551900157954051231527501035360733085494676871480098142895892371538573241587925353537642798590071800130069903744889951925464317152680595024756252442220928411467458501158369699875105574630489487824393770086846506220974678590457184292315243044394292000547381838823584765656490791921977439139352357470377836843556796040841720889854667942125916974266762614961092000699167582395708174672307071357975024987861541324715791465151013277365084790875853101363134692475639420093030847302017135688201103342181790081132810371942985959807075705012679837312433717204329482715270034305690233113857819932916628770394346978892864756116455545244947671618797929129518259681893802510980204668608505041573726293445855314198975473177442606840420699277010370672127618056499236960134947726171192718633247412526277996262700145381949591867859219514113662094975061776430823045800270476269780452388800643923070586543614054529849227209518472230689062373354251187754068340594519335081591721547194008316507512414929471366854282739121913678208939246246278937579610315502024894833679433268763687642701437596384503222565699862040977026992011183571229488996846967188128430073152900195705558332203732827025777424218385551115555092185825062203529121282273264513083247957634130407631543842568571248149726481700630132186952137908454684590209318165175244021100975032248482034274261932170362631264195180988934254208334940978563897180754277129250425169971968577627879408123309027426754429036191057117328349519605179931348507802791228596151310911804495113487998050583378516851195008746136596336337181844746615282927503636519339920258723293585334519754861735082485639865105300812162794491234071633758032333838142596078970625225972830648169535766194820028053690153200707897728768211999950381501928064742552375678203406801270089479448006624643860535374349485467905979741291894992141168042859299478502041106539987313182151409445879066183305342503657970374553557202217626554209320617682574004880522776443476196719474853737724374773025568979565662152633442129183495096839939919456748367407265163350246201613222424935459566817672125641721542673475027818084571335410121015268001365878936006319945580643250075660610861929078789396392030368324503147256575396797370640319661667310247382049885083403675372173389619137112146928277460403897242139234035866847486887038100861486845163699825738199674864915400035420800198107405562367638956150048312121195609680993843682514601528510506733496598485665332328970593494260437188215307554585717654184547968410041399969227668649206282800232222847976009644161459441409883733026741900973719904243059780376544463637857955372384740137156474008654673807026777955226992255303522799616821151291508733215019787557372400232703364372928997835941612038603788304611694304442962051730594590748177558896005168963067702773638734488226242134120570887845714951389135621534211476593634006415374740097862880206388651626000567591098373062676232630114478452164933636591222127686661801771389963613558887886649347183753642650137276843076078858884157697274644302528068675109314400271363090337762463737755728883445196651549035652977647800862484669188481431896080969481165757093285590532999100209973390281683862134608841145077710158500191179899691779390003245785597082124243555032226767431833035488162146482891391876611070256199791524589013294741619573074508208604112154029449305398054390290942547395179152310595915055502552118785728571612941352751579530261865286783487571656349770008063032222538929386535314634082656712707180902931937109720030740981944308075945046944859600406764014892311175467909816009579165036910154849697942309070787984495420416081503699615739606508046900307634872169953455281566864255721304820254835877810544974382088395487759842053318230957654238097001546571755983818163229395586744028203919935445002819845395918560076986366900909933041664760370788694597175959950529370725985944044946306335846368500792921795169169076344904941042352466036547009358706340450821976070766147249301911477204591780807334126289212406627302176779835962401177045486761229432434814507173033328416984156549553277984753070498562864741901722091784536059699831724409202807113181360059133746634629369310824822290637600035325607049025673332199436371598702304888347808086222843601044496782157401718208865515930116836369023276820066947271226299821870981391088605251991923694653917918909808943929583354252568301673090835724604039722165799084838913365170929412898732391989315454862850520539613073610336603219117912616930246743368225882840249690065705389442381382582872653166327317424180811392462720958393267071066782817254247986709269863341127125806046776375909663671402885542473899602151659858872650363922114714607663907920233256459277198062325083956194234641375917008897293703512070415210762850814746713859072885759080324923521802100524016072405739328254166532661455953433623878185927909446616684850532401109360410136407776804648052478456381207477178161727652300355399103799458035927080100012277536925176490484792627892563398313318702483357436340646784914485055463764613162017713595106677671470915332992270201014020116181061693620774603496022524110967415674067601588076892914191666004934379780192630463412351241760658023713479663456270081133011973977980857679789356972978312780244266532834895972039366314062216222559917668972853977013615240581989020680191981355117916218172850420586794857437493122692023366997541330279295236790579123342084456710307382913824468856964941656221252203257249489225365421093922886098577528815507174218722512746586914431626666074638650092550419300805377689289285749541504269542041998774143085490658771343073121248701294711838441239552842645653376399770631094130515132048624982063258471145438771182247934065573579143865647982304393401343091189406016160151199076844302125816470143319981059204840356819583604267478372200536760493483152744423558140205364887630877798707360265691604283614228989242302531097853732396746090564031314801756086787812572465327105622095079733914803233846936727330163237454153275775128483078731453313188986449081370367276799623536416701365420820691945214983652107673846701618818890206332641450339561840009333300671316508063432068742195705628068712486685046140454401523137989046857236940117338996352209335039741960803554013286326817309737208775222898895904936056129121114868198389121219425261228515155122852667023410551589536892612192098646513932037196449405070362548949005078987638173943159740172799873153391365094876962738022358184732000197860528386365275078810186498673653321233413145686113370067877449201766775729587565228777033721540626512646523291516071004683816826803599590367147696491178541001772277004150575729707069922073154606835452015280449617949626570895690482491539989885205425900314736845414591611658136176421839586577685110107797429407372544798647706776673150755414177791028927555656476998033139326088482782974963931285438539080239809572710188465582970686929035219832321659087639132836253227139554960691824673064556586123518520759295547885611879681702121365091571138038567755667401132826679534381405528737022982946844767143145747127551505827588662957688671362586536476767571263033239452771794387787936065351551417362733976825841354949008756477708278983023075135723977315065750064299936772663400460434335351257858891999465098289486525391950524105309407269056874710755884385808122998354061828269326923529848454886479283300536612777937734680650595589107614850125608565674235821142180480111438427452202326481969349397826622288078362113014325913769563580806393040878309881364304890418013039850281212376090917512663556966744524400722831803669509126024263302231864958626981708697605010528434072486918882699224703967597203650957278041607964500187196904058298351455258631900627843561087253299026946708159220224173220601969823493298580041966441654032121103349858693100987205547918651340761883299431989878761338742494628285051159102651337075981831870174632599844646543676207698152585956615738321639092070281978760151641353562940622598465777612602232030405164128409256920840579096117707976417316150941651776860631371583050017645245754171877594621861812466178152250270508488376832180532414230655397386896821628002147045309830092350608945735447430936761494404391417923081673747370591715068305253074406445336723012094189716760235352189436597469813941226814168709225491041844032320615754489111562444638527186002317028923186119014172458469677517623700170871449906284766472993010234641252137754989273714067449486186385346134377013409760193652630865985625227706341420177365310440125939419427156846369704546341859381943037108586631485434456305916078829747664685787411397162183618600726723832158486830690239230750438275148114370224668979304919305942394191100056118512726828197435940319676477659381425039159813014641449570079290213722318878593446977024689607053288244301792976800687010158130509071461307512460412302881845550702533666989071256287092409226393562082016807366620621165584405833780835640396618100654460131718262663101044766889277929619991922582999240562476304661761772751329274830609734816993945153278438371371481137289681549192389594279323710262465669531808605694125073728486907614456304715044315034918878842297104786983198998351081673675921059837788139944557969469669577326903477536229164676974443490936370126178603407835537298262627511885718526214780844875965532784471238441850607493929657608117781902350117746760112179206704865171109185240319683668425938121334676556976103917193837413698191312706477190698170447963796614347984724404034078920779823644271495703278774485451457171170138368674853289507147932695877360173152356724244280813856505626169048255119217912078404823458071865832329910842543870345848396153560990388702623962651495757926515597247468008539180126054529482049890986708219377389015997317525630062218582446902946025079092670950391675692069830664223417964205494874449795436220242485602866927797976624703352439714647208661024055491287082919342254123992763871523732825888640734015611431527142173883085336123306274934337431380472895658247022841018296055302378388105983304570899996718894585192627285344519115746590338521891289619000179546610078353507317589952893228404891861827540090918873171614828603779263964938544599831392090234755491734082415940230520019990539108652485476873935180540367097564773337016152412537363318070240843228321943444090066462409247218337255665878442123563151116919749400074582241672939939919866715517658151724409711231770563507800384141064951601862923856786727600647652953119519321249014178737219394190642627681011563654431618862562098129304019288884408215222449379016940361944794830377758460449852897843427915819473750745515683400532314234420344134136882031059174273622071924381388530107743021661467671561699010221618669384306293709278081519447625743661046509727669126978079636429185808273077801584156238789495063554700819725566912079861177961459122886841639008746467597971835790321950596808498954867076176069058303898047966743530266264014497160580040834930625416048900543132188251650654662198152063794143962039435053537283252639699814228740228390244082297063373515842844510035882343609153360877937450480248900034735399536900731525135264785601227206632172292383964374428125099874887648830850212559021818630681300928231581001572011905062082421664839430655012529737104080201204688294838776324296909327669027699975072326910805960818097585330529682325678639587697819709996508494807134076303326071491625470030016321205937664740051301619553641186398032892043250749108332577497232857946023988310856258883970188144321702306877124078652477522279980307378181935288723022322115496652797289247645996245979381069791894296656996094269296848223832772222266589466990656048093044408455021752593732208136227892056175951189369676591766572798881103533886850993888473912803687748623921442221285792319449467710508555803721024958451287823076998381224205600179241541224181533650053150872456589187031568787189426943337791706715776878389038847963111348476095971732265728594133633252701040655255561433968400944879753014463425019406152457086971571921330054635436554020156813618058483693297451385531491892909953961256638032638507167607281830071024729722208045619277568348106434145091238736097817258751181663927060995867635295116991322412490956503579515285291655681525774101094745512588733205055601252824115719500504292841123256951736826860735545682565391936552833980949573827004141456556794701246666005850656960072186346879339543238519813046457698996667903239271312192222289690171119017247002844205560797853922667046793913571881240144917952500893223092172424640973626815626971133332943869020971705058272791942981642676103335842775060234558791820203531655642969152017012390064922129494299784340546002569245554395984125577863248010931695871399187118260984279423890291105350148841340515237787461816811307751540364934677713029530458728042291453740348201383473449107627341699892565637543636032813637111223689786706674258770330804871462383510959941941087152940826392985424278014907887228826855671489948700330792004897323188414847315236552362418680343512919253157279031689594034447044272010438618937349958391549896236998676779342657356795653390695493499473506820070531131486952442552126884326150079449262568607206777952408630300394159376644692271779596502575613801826008482770295443143415795872723693593148010791421197038431801352855279437836195885678698828764144325557575493305904870325704555901033770317722635270188449484239228832170731230933573894563661282564190794353773627845664804921847603877183916400397973257940800823020192967918704978006446944653561264424389224429262087071958325033609025349568449694847772998839463533080216420720338951691539691251696089887683147798324266904963404899251285938516698162017917160338849557416300683211043622498131278121287491786548595858291283306607616477958521519746505472379898082412589031619637515825489612181688330661200780724608710442746764239615003048965818548627465181960279597475780857188390891083952543766932480629900482445109054546917862669260146691936302739200246793384291343539738332171839242717186544136999362383668479086321024712708093177513330518258296676792237669155416903836126172844878906636499704862480430290545561594280605039883875237807583492487394016945817464923790983345878934477520248303939901621711701796383111117772532569829973635625925559644823268427922197188987467710492598210220560877544230415792251442233747946133093616985738751843882749984475871911869020354292362707391984596885133006678787181579886523593263501948534394576141875099669284524990802148021958968405976068886408390913511761242725416827133716221869172726684311913464928601976557275267250851606076087435591663624180379555971200618228387998843851634936619304859774291719417486949733429542707295291444571101126456940727702063586828620999939097500878466855415929148116167696341552296760803792915775328197056226549360708017328928509754153177769449657268778343134237541867750177258573634043129502711886821923925540565643275800121102782151221029953873785687667895483672754440497227523160920032417822549798673182857196182036281572644627835750780351497327533208058796772998527185982703501164739960695070340799978520585591109366555065392368440603224447761966084185817271519991603804567656896498523237441107182596201714601766173324799353257021201502602730639672246327005271372345521091952198757371419766477519534679510579228067374384364152990659044164463172114560829858288630396141219653975140867652313847745022155002954988316048515140535405030843762534047879911492853475027600291700921923307929872344414977901343672457361912502137452623868918806487459851945303114254334336440774430582517087060571953542641720073486400137855722328241234859034883992138879324469741649806344570181195087866015523038179553845001140635478777209955283135208076902790832612069462532614434404894444978784597561786003486978922523252744163237535625277678719278961319231493818584999565709885364591343193750814483295355190500736388468594184994490747786019932619114336632944910357111611821338484026157695446170458530661240021718247762636280513982630085618264772932526035179329598985816750343114420560284410624890351536337761072689734376899171536881832040188513306849115525086439664658867860345879243038619309335918008835629088142070324051220674041870536035425093796312808883582553384508831156908494013182382151402352498772520617784523027701304115910166425194644220838491365866306451671560430936765459240551397598403045074967679091675668709487819833473994384389854736829823669795450391599351915486579412708066589620381651911780986499168431965608144607280027982115440679135572157807914191748707920092125859108042441748220380741788378680950056117165454376675086995016620518065549303176046034214860695189238862508537835269227971669663744483208053993118689742825719617953277377777478278352270454247415719251776946017553524915878043440018499680169796200875267275480620805725513277807352773420582514837096708739745881921163348152694510389089564714331609320736525207334084263380616860029251353724014142298479039893543873047375436107355704180044172147680857563415242275983996231120134194435856713286640471673979821784534271674825417460230641222611069370752587787232439183645366826096788485319144664278378607151056895150427013515825620343548313971251091487435041368806759923035466484413972090589462280370087004850227302439219253141689840918152619807288149297638146313074780827074377451615404724517897051724524661441822198637859086102509270425402338096286313592843604922204099511773933313295767204280648956058764065648554233682227822370897550010195418034746246248025280418258958588117582889728105813491382454796415206862562793159668755349062075066714742410141985186984108116040872765290415425090629325008059371644394188199964622783997680373396303580115296040635158075100782601231400627908804203784364386262106856728336572668108595147320459164185825879697888293433843389331696682137815285898308106279757237713548926061902522655963490220636615097044724250133453162696462777658409747302189149842695602373285416617282804998403136527563130478275188433156027558066496490206210268803340615996503250974903886902848331038440715608901164865385161458555354544761849607821942846183899910532013161321940978741965444134000778623575547537614936191948550790109451755923483305971781431244404434874142594169035999859893757534835034261401848607257961275598675841939989874673002995403461768228251381882843181647707380980956892115095698490786374925245215540420950623660194707854746770642774060154823059788743651705879629048369837425532401459976530978645317491869375184885168527637874032033395904815375109939114875765105509260941928871898845776306195107291546676064476216649404370988138100502960386884952532484287906781000399106107679195733680467582731123637631106784650765289616554839561939914777145444665609486174777656230892693814937973619442576737243653455924863459956137130964772087501653825779273579651953592545953184985982527221106715045868672889809822866716890572761084115057214423156027704702266884019701782428025627023949093626979987152776416615862683109580612844328067208253326947561764195988075064264705415924109810076488380666157159104948740539642250974473264134842622864763308871992335610453196696837613428536147337884862509379807999826786769982448238579132912453143923853227241564725931673377279076059910311939682737021774346596410067507912643581745425172448865648050278875536283720365696806545197867371235719072841098353168778003722019172032102411219351325416395142490135878629584468506964150048066490472026564039473130752246474380908282621513312434072131145142728576745586734728773194957104838005353031305630346145664091080580627325823570301743211731472869278345751722724642160963322356928668034074712006855586335205545286832441059367362148763190517441952131217467811451300871670957578299403158006836084259621514737764485238743871315345449938206901449943904858699060094445625010756664191076164290486830847169318148083745529119658359774095978503641073377822300749004987402962024242750195378534186084032387941541193866742058922411478779467009568436383520639531684559719076357199739067817999507507280055019521932449248538727957225685101555014082038107911594573981231798542010386393321863755501742670007140236138372255395288868441504441334042159368316025888023912734032166814477453317992680615286265895641663520554706302796350141402358576439219541553886913587096130868827206001994178590232270621242823871356465900030596031331472901155534815552348842943137696658954517191135896564249859014657984780405908990058995193076590764469665248175528934468990390199357367245317204896038570129180327642786336362186078239278353408285328642104376291219299175616525239206479206713567801417407937934010061020303472176454889334903685579788771399613724561406237034704559790853089964027498689982290326126815033875630036740902845939337343161548325210068230248293584803433136785757289849061223932264226286021064732758298959136136190905995984941006559254356981343553955533174270402313517476669706807248292252770028617605678302751103857886819204519066757834866961477194918283515520858019316815142463488674524455362186127046824611284975080274041109212437927565464946215185563660230999179329053064071840593065928408534246118997495376154936479452635833502178266012332023153625810131246148976459260031013625536935872489231285516886102139752004981923118467000254639217057539797934657882974319938900091417933771216497022720764338335961254861059046508183620117503894249989581246665204616570317833595818687576697027117434975063172252097063657725975239782462064563475437492980315607083248790542473879678936439510960723244007804479189221748010102363410783792554214158051744091510953884923794885107107707908186087258711012128593285655694952290987723775709371719893703622348041212475803236471342980750391925438205895890543289466532098148504905573669857015888982179482357826659124854316789171868487754490073526654638151695267214947085499060756140301186405048373898277650935441712396740765867253802246149295242801207100868221808119841425295226585346414231340516005119548975272048061333435893476748610196178339536655546453498289509196388279715292980904150113718864624355670919584136168838710816477021718978249120989718995226689621498426608044476439719395383689427273971418242151696788897593545040067306940603783842908951076403160405400435524457558594775772192028840454872696185156456208933672222723678344553012815385361038563512066708352975467883919529126709331521054634089603931725995178837324731141906562570509514029615342592196282345838015812724501258521268078922753224053339362246123568425859994911337232667443272018362905029205457604750826143908514130508229611120621827158937316604417007352645157242389981586668240288480016145456022825320980497491182733646292973735438700189781992947211014105209424924249344283074574198018425269020042594707417300088360946441085650775264157089304206518774584565980920408837154539371170484654884475068317311130203381902687506134828356482480246948946785962035805388214611210803610520459723089344654347727823140621873164759041137085234346605176345559000999133740281373304116429842940645227425236034225895376208585287394247387464147944591168100215573575426332898722662636589063596279530673216261853875661061278166884583827363947684398026545863502508268054494875416607910485303241567836084502424843423821702906438494916182977793548515603310934104350280313262681423467992679684462627887885356981849049934862594056447632730115365554618114924902010580163661871863809250346560129200199724174529814552922125147480631705601476885611213041555695279264052525891377144029624922087334409066837868380341142572342948778477088761708199649612814013197281576737962322276902598032655854915678191833525947929370492569809052726314058263140411738812547241299250354901332306040950106400642914107897366438457103748465838541222532860902239188661567137641289037220158459067355748866226953194866476172523762176837938758602694702951693648963522546223487458284965448031535432243562654844989680076538443916130120988215359401688474855069809887509792020213050019034028814290524125122259108449772198615949092901110579943970605867371981812973760865703532655182774686392140877990583371940931870457367977891135491165861562733142020885642641083782249399274281164437145876287440304209370004792061988908280372049280683246809454032339210588842770163731557970142010870487906339756038911725548563389969131158927712578995695506684750780628962923507438856420833392302788782515155525109215146369840262280581733007884420711633419439634337731154778783961651336842184642018005131108199481620842532242702923489139817932483978191827510721254351802922126965791858419095191765108755802357844521874827966462177148957000687897398860240305773767961362659701271384239844858856029173190130411046672735061796216891036893283837672578312894182197276020322666337888051435827283084507878188601541614745995528353491881071299949878022970392675087997249533127139821655446579821830618567413399544150820166115259214313959518619252426744970724566808432977933673693541582179657796798374178102680767316602874931014445284851646486919550222465807141839955182541846310478264549562236976673175408316095959570249074558396798437853660929027883678660386731546606161862087746908969490858071963167278259031370638277210979601131067392758698412046989481085723610946797369032196481257923937815575268731554791824585677047003356142361272895092784366897108515869359189717107146051926353934593960562433223701070503954881402140746769509651877492169220605136318608012478626656923854126021758057620030613206080514055408499363025346421193710562100743517648525333463571985749169445310088206586351806437717054563933274755498621628758989946839408969986698678484359033205713801306330872759969117431765589953603329626200459630272749307490302102373463750341604234358209960111641555588548004770682299060885756399219357550226824768117987798989829905857578313590616041339880542644645090178699785980245552717855652082912756479797315650509647327405879859057121101898169063900148884882433184738505697520402541513335125370319407180676069103959830821605066037102665814840064118274137718168768024329684439252144990374656614343065227623745359207491448617801509706881658365231148518565440916550389613315307746253179767079801463357183004883055311549866187278084898499827658422804971847154081727542876546346113292382514255598950354990277568929256312228316319611644898915337628592481820856790517654814283123525588145960019144394140327881697725042004174756115053204254382798873024285462810490766791548336936032406275847643104219610395820328943424710615260028753934529985390314165598897002048348308885136911712019157294189931137408624555820951384372396662374281155358005503592478311569015885946955025764665581197311104941988297280970099066993531136329575524972190741408361204161224347615855122187443438576908110008526691891153859282555093055485895244814183184428796190141606060671977008134989084490586870866603632318087316509498442843622710245331362404047285919470177218190181882873487649925396674387251595279661418481651301553908559696360320816937844590479041294453859794266299812099462568987860928829102412630748615121715923235402499770554367995722650653418945117522825414505743388820035976662299828517912798638266766841294267152783657316111025908258636673640419225067324954504901904550819443272524037941075488730913488183577538534403537424871298110346592127365794834687645969491231939599487634609722125329556607279816114357817181310196210013009083171869086919713915392317567176195134551447207048225822389698521454288501200104285093392889921613948039564641399233024466026746691307075600754738941720011699620045141161925432776881307559422050115065936033910245787890641280597580950870266972684638166005031922635554198243920574172380599447679232588893959926637277414709646641507692768679260445547866347415204443472882665290070849498932057441242094635648091937454258282264432997873284462744504067447544630824648562779211394589243280252879676897075897957802307288382444107698658827162254411264143640966005582574326535776793783069745115240831185760866519078430058974905352666718586486075875892978277136653024894675406653636512775256116189615614013204823943271444567667116595769230202998910443532077104576356716302980501024050674490577115367268100161078984728305272433370572534585460550310321813454938470391878797853673634815195821743134508217723344788355313915300894396706935316559779582377726281708801573403751576612492386437626973373062709476568453474694095064890353294978591536512100904895541435928234581214609944279328985104694566138295554898541024498563258393032047351391001150463045986498626719143098006599141219615699577145181316078989984800926553633474784016593184243365129101207761657316097444302521409673708616649304365580879917611204424128734677387854000528927536884275683862950934328333873400160806868546913817539167898373922778322024352278832060860528907306127411784880871902613325518021768476296116359274057948662925764454350596940182242358437428999943138774808608054552208402494942256385866877263370871163796819666332932849954794667838591152639638928995986694155214929810780787336011533160405086344664552574497790723468576186999647861215392029462125532532188099482666971862293654316037062021695595407865246831725141875433112200943536906962276956007273846396968592806395175473117992264007415886889064813968202565554997728411297845565943600864082317695292313737645472850910289871922974907509016615155757425030606898840824447744183210068046513935639213049397902018444505557790032133857851966882557418372620666826878641994391001645910092898179704766449486412896689745850153727987157906173528355040012338375254138768988476457713410468652521310133406352497109795512604894613824699108493863867441325981475274334255929310510132850048889286937264695368347509811946180648376216622582257528898728031687646219045300115367045521252475927307860868040536984807879015807798698988131159799838170762304253371947230846232974234634475028712689800730105709123291335081500215924960841817566878969407633261883335203301099223245159425332142092194117345854016659083375522857045320638987854790902347060106785805133232892429138992278836797327742682361167639218847165116213940730926167551555776419926954667020732836035741910183185694392736897274782034894037230009222266032739574991386424541377462299979347524299402811244739882506023453103759153403899100294146738028060427324396949432919161398802445334490596668253166333447056779469636451137726241777499433146927260765406305094632938879101737078804932235664523410934736680888449809068675651773175572925352242484445469838312479971765624732814044640728784897121602885780647799328754146975886047174732345689422197547493628882705858474123797582589692096362427030209928092796800636326094994125173728966084359325667782558189337612971891487915884035460862434681728418846781515949045955565797713059601342976568839898429173901221471448004150396299547922062945117605797654683880043104631693008902534369662691829937154268664684968187535074850235495469483934332636703726062790479224033101810504739648791388728810628116141741411361789691528140741912002317133076395612739275081231234445160191902873466352825462926108684300475615157274944540580244216786608814388754405327956422422479329745802577225814709138121769861698327373890640427640210195188053831679589383460683903995407275496450390887493601557897288914304182418028547590750820481476372908466327067588599104514328420748663004131616443143770151247428790745843540994456698949379353764569507548227207932999362337552489995425898150869422860432093741445439217994493034174635337260620978063453604562791739681325628886118031060460108669509387603568332556962579731768758772161675379089684229007203737661371108920033723274824951535759260513122608064432399076270099954312760811605739365706963672658224320272434991451781497868901558273826461759022333217139165729440478671144039069953869616787314567571118237867526790161020042873117615742565989667424718539227036718673137821236748933224497560292259565944905439369472141682620953884906873095828881195051089374003072720206828603219298517158322099911197260029683184404031477980463956281277873037318801133048243082497492228615065082200616390027460691443609249352764268556322037759464391090179088075840922051262905427814697006035470209558354635263574869328407140156800914715536520709110386066755116672277030680680888295674271472154578652061898680306081195178732251893192614083929911983790795778714389672123555942469257973834807829988349999999960683942777723388309020078109384765024643804330524463640753866130944970355567993362981265434926463010841233790954014703333992685421939054975814975165333512579752203356549459435599816321034617756017559042905655829224310971867540792906057683629500886255411117431088773977890772394298984714056693672131563780722956823608976306242883614629280114773557083988846989746838929170062574240222156814092509052500101554344789717792242878160296205554676124245995937542262892664813813127980901327432304230495502179185886574740399420354974718510587426587087334680179979934214641290436017773589797386839742860971396494523404884252220184777589709771303194145304290763989992435313459950132139773203990346578259970838032622276245374284007736483333624250248572468056633111955474270455431043562383830571202733725874897923689986393436957369045301062016233095973325717610477601079948695287762172368500752781974150772958172442647202163353604645170801352280837083205708422648079957989149625870538046708471838568873512703599362030198396342185688191915527340780892280876962870443955223821247872799070098327037382963769859156812526308646312272119578623645356501290040021990992523453968085462664433705958273496103948855910854894634858498950385004641000224862620881759476757083295078068037208691202181463146688559620144615686353548880717811596002508460293509466387935914670424935797134684105776089199866688408601638054065201232948309009596596053079728062124646523556724880053152828004119942999173070639227259502210976665579991583172343475361071105278349411572560077697321605444276366049307146204494033614782896990917227595580465681797845682064347060866208392652108061162410403753923821802534468108877237877655422957324990436373797578803653117806312589785775069152261829102957489925821681212228400332321714297138271909844280219765313732682223414682284686381764910263431595050708903547575804682381758033837044299439966434474682006652904312971453376250877096278960159479577815151406280805463122837053203337901189388359971060750071201088549824715857273567587620825309067839474392983813463708835028649519939767088864477955946942804625127123229877886373486332335494496573317595966939963531361084484544512214836972997256564926037680657349377551497200999151314629913953274379217964195035191303793550765543863824329234349214169266844670143883070530004193804177609080205174709668892748992409406086436210252510864451482404347318727099023300977927911419420389319473224032257279649702056366455531557622395478199887171695574047038228203043616660012109692258133439420568495365573329637297677379787691198599178811598270109884558379705018394644578244951895135461586385001339017038480944038325574659447286725830735644671045434344709572060817730693672969548578196325112925660166935149737570090082274420983085299317503375388984846044359985963516549111381027983241529269849859652618177572170497201795388422677909609084237087807707260632180492087038146750187338992093313625330232823565839127492806238276336213458956398999474736653372225789333201751924842231901902454016925669692554601971899717080586697845326607653202754012632087884694038805861388467211248997013648729234440526862776872187906813137901731163665413631208011293483108245922032043530975917161770936976398462801502166193555724823888085171587102632005634127886094423764885701818765608110468985636416556694030246688271666874605856988468271014057036585838471076411746385284766393559960525664190911320047969039895404010611352275832077761360755356193733945801259043873933228726977897697416722986056424676928564690386975890347394354780409658783189816473537682842400567863457799302755236209513480838213842416367660160906749972831872458220011114020665901375595736456369000336682939908597988877840983821709945191285683055037346475952305431034940285281981273617188246608715024523549929669843067683947180512057881073767152123059915482953802886200745997452342711885163064722538887063971738375598770816115518404544288296146203748793312218104305546405004182322341683073116564201822608157030071284924961290326453978507470108175017058101464745336891579733582043808053596159281384862406079770792746071143525995080144959847374208248645367481415772822819466176189758802494828767366389402458440899501850209966642870076180928089702835532039389285092918218604019700719019669695625992562610221057101586261129440052277021734553518885192929405589975718240935780254579648931662391089039870658498911088503955633432657583754207190446048357803987513289856980922251262275761576377783685554398668436964183445362792432730044309179317155200573265391339650067506720197192117078824871909911153125813755261259370815095228833128351907593516784848144611269926931450715497430052663430989598341839670655034394415428170785299802766525345454335022195310863098598650458132129155303926377454146635032763678725099031549334679117894829153650954753732038922581296174720141763015899910947007511510778527168632189772309630936682855044710069078627647300968945468467903759984651392813025804982267999284717803691541996019376322371029519149059099006436361047952475658157027292124994603401250381862730991210076807854461364377043666811722835160094730667794259961484048791996804917141215006618798625829808138304611573103766229911437534214859443732854252226119314334149187137037106739653550459811539180536569303951629727513281989692110034971616457848845486671307586978689289950367010551675325386077101643886886842964136209193728547309124986575558166149099793398295257329395597602994913984719237379549206527438723061790705675022456467005073674667884947544202448971136392922691848881644873498832641859679788724412203900549899894261096277513320188042045851935004115154583910893881871991224077845182511673750162294915980375711665728742756879365489067277644597976498151881399759003239773060404745185347517601129632180605033150657899676942368798980799813799290313641057940032323172497826516366009138996189507296500991454264406267236789577905133407529158056784925445471811547731563227014031926614686598181794128113542082175667108903456754913221200477487487582550349324289363264283744597484365463453676133726089064271577661988303905269427287967426296026141168993705915520298495144333936477494132897146924325034541925182779092843898604176502900855009247447274787707917627716441919396947758772479536438527136818184211827110050155433608146037437327315241682212350506449055485683657558661189101131291054255439137726276651993780092795228124050056287750487282569005260436727466648185806197032108613980362914258334087743611776487762487245722493351312928600329027620897591928690374269274920199192265827005469201038695753975841626255132915764953081347815956230456157762776167313820729685286958384272288580659140370095823561234866126590787011913868930777157432270543279708259221301879113458302585114518649818414005473864423415772240226875764470923631288108633564418424934057531358782290022225475844775718963277325211944568822175401045280042723915859488916301818140639110048242583313149470053054331265903305390096408174163033579663178426677301888798655992114477563949342007750189950622509489636130963987818470928223024489436771299101881212297953111915789454478921068780284333447716379822183348079958663819409948359066262691269684868110905560337107599515411340544949035255842512571999962301299539409659168514454016240765976389226183988895391671722324689092109289066173697694747329486790445308219698859394991677827627292619100819838412982705425022438490083949391181381174563173197077017172788346178025570759478237134724333691636587040009740018667218534682991705352105417957720255736688390257703647696034082749299498256496709067159151776739341175161271315600089836313358830749457288153003203295734665026180696886511506637099174813171236516697161141008824129345414301736882341606262139946399807701379411105255139896212137369871920353646401719201643763566678670738528849365498304448573936691006864692251136336296239034774549457512056197335537870854001883816127791606939798787920728285431115478337968868795155296009187111856854195585327210098502217457081033071448022148606185489194459516021240128453832166053930417437015116796118492756038576573879584813892232119100009972197897212599282246511110044970271517523404182606133526215267949807994304483035441933769983192056001653732939670127483012633329549996728459378368168614934025497621302484793283627764064652358571927301873244532786295750167439985178406462013207759217023772076122791371224405189011564382674205147880421633656919282116591291440019910645566911093684855486305672688773430102168128643605774466755096603596663480052876989754293267707264776552217927761613688525464377796531358846517458264987289811592619966966728781132353073220382163691108767161930687751795595999593474678977335919027100066939189296521934234798542039779837057854715882718859060255161596537689167370757942543004320663694884036441211256569633978610579305222997015582149367019149494144262778145459562901688819569656962872138510422244058376746486384774447243443135351433382224954252665470308797067583014566416529254143850934826595008985354142950307919899974058675693266148992706816605569103975557115548984178619939456698621396208131813175857780936464694596239035436498126066197683298820853306208276657354541868618246289937043575912739030891151130751406579981727958828542152455468383492316396644304009933367275536098123235231691550016724646260655299345161678647814909761944715633413808269167709434526931353145682047774522965009553329791392879763754991746304257563451980595040428335046712141215695736539539332835947667647351343383451165389963893559465924988088485203051627633294007931770262551123945363369794468926007619301851343335236363001043462012065645139448154226090187719598463938358044569297523475245811654649046088338960314300702443517405329631790230854043637608209957653454660805310457498727797148778103711496781963265437330485556278273480930703322124509692147744253029135758739468602807470513227675379568720961395458500582691182156451891049459127335226748812535251374233495279575855904238004325701926530437137910304713839678893935502803100244730654209023597614414846513518230692867121278461044641750156524656701033137051353509198003456328728587525568234677874350267059409841774067906198043335500216315692301987466735904761248082870606191859161378494484705749462250219654953559951021234220169744044385114765297573793041661613505784940603875143839619821470201425130297088821300067228079347803155242596264200892839710202191743131500017201940324107671696964126485311790424181703039450811433371529747176989330634314362236531405307882663621527838350199702688920871165621590491916647799953075575141168741146256617641278046931156854360447624241646666345512773671205414262784976817529836127674716840752966876484320413287722269361982062953782761175692802664019048681768469104179894058465569319457694836399571707092433900017630173564608877627874209315798862309473945889868943127822508256454482033182556633816210496207834225122816811993430030149725481203931064443562861003816765960457941961783257004054786902217573667187452725972878106934619451825626653041731658834807426603250323070622738282074847194004226125109964267342817504516361145873384580243947474279999702896152851038533357179573075489725413010011706712837406411235736309836190739527596655634700957688680855308168925606609842244338555500382231811774673200146676057590230696692997467718330607942652172462148153617247610471412137683409931938973781046289047464008170578991988855801197736603798394036601338963208218944514404820622408167852495970396433861961435609690951329541981954307323723616173871773460447751075305978031451151890212413112205746149129169828670723891454530579714824888580807270891765610567758796608981114493228748812124943269004972604117040343765345673734956210940088167411918767907159917468377454408382601492139654060942883984997145651670285385401615975429004255741783977416741868526471799743682378292586665657155492412618431818810243581864439852176084591520314390848955599736973094707397924535776056487908680585985102751329087346760694743287709135283390610717527992972216604071229892864909010756679741473350728892189693606475547588705658257270485180665173613135140213111021074975234909452763201365517757608228345932340127285904886096403226102035074887241693093344465708800879172911381097927668168723708235465572439639053685951004422359104804117359379070524208027380977423231122449608277295292964062230186625660970014997130143483866386577458454280815083163726955323666811201365718571903829565965782194639479166397333821537382564823475107783075658037964769802718293774835042736533079874667318337046263048338280084443847721824565677297778358494089783428351987783147846691626169814695665258987285985843192303918813233532696300662827527225026771333718555863184458395118896548499710608383154809664319474720536656206188444875162536299638227199139085950126669137434179133358755221575445438856199831674961692277353719234707857977337185500577380264117646857496247560252163282465564079952664833614091842720717258018274400710239753246116294117510884465372672666040617213534385210043909528500985705437740903874815570580216714083559326089322529064917162310044240185650794125632404579956442935659876302286698850875294058447210571983057794356194232850852494537261855498625523771944974086629222518301912724011251945560151516360501272248377033541917160662863177344225826858725210911777737948348699138428813078976177640794157449091079334330620616979265282953686204049560478348436456443091952746444037304992006908070691249878313918480196126963461003856159069142857207745683446887132508459886461116003083695902984129180149101780888018909417711188628343339823307997701337073404186899611913958216456645420177337200121705391254854288284861289946169590250913317356919512023515759697218991669602036986625968138244500004194144584402141202599525095137668400440365999200945545633403778732099667855603674849309985380492952604072032228773239077188026653596931980826931959871079820140482793424910141823858624782626475118647508177609614702367223377944839112584096922296883432525658644950036643457413889758195193992230840144474420266845226774493678952572958406249792021341008620237354573533974988079265622647618874946859236641955245738493471241383574848734021699772528988428172364023862027037156483921767089841875268724574990856945688889430783489163324192184385437003756784904349104633499807060497250555671721349618512965752879222898562276888294341715564205320397545900281911794470988418047134214885586843781050774148591776237550945387404842527957771313790034015105121827167910672160242055791543180659120902668237002321256626534038923454390992237613549352821293123203661985744184797780786794642793092409447277969500827844787637574397308386310126859507496695989758621471766557953431091165387244878799234808143689665576653952605969872149662869094580042492426417237246482758652463652184447746754016999197961860746804803581530536101211764899348859196054321180130425664602291491929171164029952903090270063560801326114427809708233038074079885576869620850925724487048127453460764751402471642884182297012597415490509378705938408129431711766135979727472692882241883739495093378320088072237349306436368720662610244657261886791893139455031583009012776908143280236394680711831007049089227361582436057675344774813399054515930289817373002116551855701003399170218391709498203652046966936742851999423180804359222386402648344320725421921791996088854853667382015676799723773938583835012991601854360533786209002497433854737076986157031831080872074205498259762443636342125429081543728147972971749759188729270914024022570769362909524099804380600382165158719458460109544054349584687390266466008424710235280982450876380327701032332549758642190174478496865279835353479899525476009641888133785232733176031501833729608893364713994352512307326923152372027046275279005724936191067441552374771921252184940232363634929374639632723552270214937438385642128083493541913737943119075589602431919351824486092451613896145543255993832549129237363583940175430898184727945509517362249978821703588945520373322082342472289740179353525460039502308062589803684595783264544724748158087107703999404839399230708669761187789614455063512113296179178166354633704251661901366099618473072403652956773342491348117532178788696205012083905052535963982864585962908980094940044074712420431319837337570024815048607143497778711016614865133802868707133149471909134044349351674319632202611326124986228121059064035816125106859901576355926743748045856903607502632478787238518186760159658890875432734379918669905678098896967264942562043775716309632624705914044836055070035965228175358875049919342365247649057451641375456036227791695564916517346891402060814863585997814989478413551191758622683368905447584767639127225153655840111263992481851684763638090773724453288289045915475640593766261584562354529722220536329395135492946166344055052714298008441571980227685907997292556832116881256019152234131952967884048410714190614310651823328095023197943544574541174841600339807001979504605557511140152969527564675657533009953571648151878912932117277751170733261122106467413085905623494658432054834857727282255442585077402077161417205244816724292358783002609429727931123187187024189002425002827963930541779284251245617618523426369515274943350473108263781913447956293703030631180654042158830904623772536858648116960768458697875837849274692642120829239879771889257121086071376399456612099649032770256916804337868011708678327920342631539007108462869762457805485332336774580462797880097763828047438883332227657391540665084787084713501438348502393097932886203896195937459292331329228166235858254023337368177503998565060820534344564724019555872460344310170717853627866003861002188449465037061671298273299428474566928913978363546994934752380879554509052946142850427214481962164628467062857972917648170710452107035238929803717716851417562073988343792796930468738058882670219573374259741126197386103104453711125318316485461400503639418893160375250819706634907038522304686683705032096802302929452911510081024068136842386757678073459891100088828277489897767772304649143672375572820708155319670023430798559615639922008669375817711902306112358648948783687461407875822958984236110300362799995423749390596173267259022595227891777220404704565393376609916047572350446155660830150530326477815353611336847346744870691390324495633117012783638200931708044262841360282570567260023788595556532558858193055927629729644569051226408743862809873299894574042094323240165963909458613534477116513873982666398698289922381696923527938995421195919018824852296486363094531061296238482947103431142043471573475667051825113956437995921182653184454208493288629368745555515528846810886693393591157495298734067804054968425311180175410998092824191908539758255486615742283214411509268285144835833697310727330555309774559840916265226364583059116383661084418900073892573543452980882771607282838710045334202300791172720546155481183352415456181939304332152810667643965748941028397020628884380188257553208592107525575990238025079875085265451470522092657199477819483275217289525934047813318142454565217065466432834542291530939053662446149609438972461584467221243271382359437885612659085586474488606708365161458249113046628144847597647913850923832318541929345956121466482760456520637064980739812848607668353838221370995305895133486310060324965824143964277372258377080464728352446878003021422478656726071017482589360224137386609386135260384617811324773870404257087677457872002723248937880852815608247983296604067921760408470108284341619823574276865558626781842414171417273892119145810579821159291485784471051432085686771968163576169680942451969435020979644081882725145916493477914921030351367815185339782872069649154613936975580054429492903837187165154480016990102540624988545646416189913630906609205686156674599216465975502085354491024458257388354886776918282827383712272145032335356521082380889054002296663721903301046642844801086784686606460070009508516827561108932439287000399580090747762134573743312799344365536519221922550607965979706681847080206689610892652946115024340921823837984145524500789134038780449156080355970451761993196388584202765585828166636592018001895882605025747052220124862090413395077881942593694179474936778825122311939703952133365404902782809162235377325761358800778589501939848062709058100560727559337707019444672371941292533254552885165581146819285031767830718828032779907750213238786535859505998144719436820327026617163184259382812873348683259635831882668278215845240972854179405904174484071052285728042738514891797888394161437968518075988063722052547675780382256962744825752699142459031862206405882149739145232440705187505239341439266172772599465874949599612027548857515760457709366097648707442595408531474827185463274327016852084029662779496788521018859362408285165338506837919372529904504501854718082538295199478580472237020374568331457661389270487809676130293703150891714559788080826093575826819197436479472111547942049673170483617702666739987444619612092585600842496040940555806811636928019529657497764995969917470274336603130449829110833528689965863502191415870947787993654248184263123224328045719180999682249602160725398116502144506506383609313148510068477111616452964277894836844119420031210591639927125201861475013520547134781034437219476389449052328907815840488431651993165532618661562930348311298567540592932584072489379265927879811084929391489269404144467306274187891481964380297218740647289715844499272377308694723224835899554053094953100118776390324466694886604214684481434700626542865887026395215979325552352921518785753236514007585059916761933095403927803659794151834153503295474131520363527813925566216284649464404851317655164052674062037974093134245020041873314946433880876111308410592290119558273484710959972197437711853006234482241190230913594864184925063410680590167027841570881314706584658017222881601773018828857648578336151512085908007712849388665474752075751329509380451009490154320866802422910102589057222341888943526381240870304828540390253007220007055616122491350648763161404706297869854919012326791901945517443541581379085630214116605724403118525432164223152178356121698272863341358132063850134457081029094759173705905029295444788447536539892304519182265469104157193132534850163102069906322701037568137883157796685523608330939757018108349302849143674317926158094142418434033916465787028922812892688275618379195742221904919307731176113270198243906961138775629266122290811813476144821327318743506794822447433706260725422038824260163921997900736874216602831893959914144009219459304465528079280057691677593985644732936711243534570323210540480319613063461214922115319311215550611170004025129881093192042706940899370272140185908651877695603131295286799284625350488506951452124407335037033320396919638485294800542735869210923456852165062814711983519651276574238931351383812677487803984594786807252012181005407509540552074687384309242282929055874990881337913622918299220694566908893582012811439378953943394853525732625356511624360807470413164559032878409231384378982053193101522400418940142555716252112314094497986411109376814214931323682056945560631321370670596412098598861362574232712791282790636952187688148545714062381720905743026953775211096400468460431846909842046402380627006179124023615734209069086932006442728396083580881397262502920508457494744643965228033697053075341835737204055478877867622984580993953719436040900521134489351183399254357427043597934026007167432878923762306732397034140256309818844098837224112118659333274499454200376435309051024363665777389288854530801253964112004355249325882058327009146747640231490590030520169834859012201954555684671658381731638009118332772174720929758087525222734738205144463383022905446449395061179422570414223766143571145172386406719215856209687024711375499238768934437150467439868862052994652336107419326690817712754077419769196370142124064291127065917630086390680025700082517728374300845707447869487382345987128112245971477216430948833681943328799756038689633726518682264691015123389607617609136107300574744485797365257539449382580063515292750742443318229404622866353617549440297185740537335885766794306668319541515911736347531512498643640126452510863915675559114155989815531443011056441184200990880157271979678279667878983151800456593222229806429652280538315520016445657036225267857910976277028316215798963966503916910964798881703543467891695329405684152410347054732901483156552890422324164438852729529097257478057841352559899591134601439059972366321910589286982697627152468983975093520219342762682532335022693708214008695021766528891472470404897945999779679141730568784664061361277019614540137741247084717765187646305191531256752391754949198669208683647273015036549419962599066287912103923026994618750871026602174240770212270660864500542279898941395773121163823075125934556952389001250888013406407925143016135557034192218267230075223170572774575248833921676231643476192585224206026838167818611787134934638431454568566686181078964500589824591619153424260600521361363881530828248223258118609919004508210077007283498054918320288539805756725732687971949664338093940834472035217079878000703348518727144417628133590321900207657908596066757940921636233297648389869039333132698554353929818585892048163118644473482491788290107122454723838153239710703297367611972004208368122020795144431407496756377620232872917901220864693533826525733305015897538091069688347497267034613768159789053769512455177163865556637384284823526543267632775334653151496521259506974671987759875162047112628873408602140115999511845641643530127579751374265715028565447573318890997427180052981320592285976357096766071817441301021100787002751911517226347875011298852077285399270341899968127772094432358759847279515639721723895236071497712638418335584720289636711488017242494321509773783181136150341790211187307985211112049191255169321334583906053264111076962317460029095358950567712252592448903132108315958006816091251154123115381059340205027988260583695230256814297885306031018831365590023737122411427532503558341982359494974602582422563806551725512679962374205630653257939461930266057888130004674226963173558966652186040724191881864034182853801326532679660886618102578366925955316377755979824800674858580269937943290602468068999756834376995271523008671360059880052803059937698268939101076647227327993484847471462553405237926799220872780957574642969920469703630514050292435395010864405817754548838581677957406201782741995298658711851648660584843651976835593725325416470791697229721813635847852910618960327854311782182004168430793316426904921648157258052917730298387598332003036970419027434282625521365500146432635640559563128506550173350551380952773406760173876600244406930226566390708483875714457879401706951107278872836560522579530375456854652772207446433027371587037662013239640780643953958153289602574889359820930080183908521852124406584389259871549277366007214214986532450501331767323124299434700178282941982057350683009064223487673406446160172255073016084891007207954311968355551491485060737872392546215797604428657510697224561228437356137198066666473525307316506209124055911303936924452981163164181329626207326562376517096888762812020840275775289599731032399569869279597649411687416249543809378161743793214653306595192868579583310107149446792410592519100068833408051029165327543863687059754909300522001599479614276810066875854715695984852795671389114670889015042071660573237452107535197489168092261314461398002103375945947572631850537168371463593890457860494356917988755067352005800425853427782482821017211930196412778861465321865681468495885834663332167385538954785450404466382101274360564114165690381086052096613274322931032359273388445373418290783691848751554462057499391083398698998807940940059185988162926527386640480390220032074930193729304229814410088641010896053505523797386164089018233159796196019290825580734898996809922032041849311899190445689370316763036006437334362473564174615088663240993577261640732581177854766568816982206917421011554600474663864507424582102601608787186128872439543486001733799853604426936468598751614254450606677471213134993563232826581521340510120115124890174701218519657893365893693402605754234442199566469528530413936797608519469258982423136502512285157480770459969377018419232584378790789729927654134969971118404691054544718536878463596947832884628509336448413590354986067278651534455423818199919263940444746295235434264655624070702518043969302697271675522466480455974527822579223473220148870462468306258327063079944284303906084828149747865701868200702236280341967610742646794244087296680633643180507078262014370915853421067656992659405892497871746286254139013827026922429701717243115053904677287055402357297052450474273075219827762324617001949507207117132761013572175981890290451997795610149900691373912379344089448508080077542150730000205744961088943170259096688198838542484353258328723605868571464738305014777503989409284399219965976148199641087350791197634326363432848165125187195267645318755943587117885777467319370919518528723141757294289608072386596082528844257310090235900526365386072943514613560530432499800342113495656759682884069405732859411722722174669628957218794459506584062020102739799334892319575304831125757736633479043704575636338373085567942994136258685982301833424459560821847433559004201711030841469746125804377600955101839404181831305779754373868971515484721693005946766188356026663354343104415914402666756165043973906749281510264371037813201273397057246570497428443144761209606224514636304918705082563190916486514592396938711369583172827147781275522486215700046687649602904748855420425595618154763657901651241445765568650739905130398637274391349278363277731273494621695412138183364463296443234336830920848339308883663571193953611787857627561387636206058190581678818795776262948506055374079016394282424048665429545001203449814128548441972043101255457340824473671956880818094594464286339589557315556262921890534700537285979856737571627464048853228008516661207684347851280157141576604579547939017567205536295044931308307472471979502271460741309273441624496865473830511380181293493806788623695216189407155361808150510032081620886426777087201391397779844235887357440857954875326840449835676823542649969245938550956733944587383460107245141230016862261946517336362759268196693448143144531600587290551010859764958520992389247564832351933622089032072551278406779211402468014163301259498444906137659814065417144422783117436909606122054828653257573859066050857092547663369697761970838777497628280755715284355491311562528035000521933874192571574437233965016644159714267954339918335067979874657640164640349833067413945536959558882034686891899248632035382854332986194076474505649556674275004825537276852743903757245344105469228230455049122929725938240332372845093671917803515071312381634448032472293543228539777961977918327032846386611127531386654637516966551904279616499245108012833960223431272716998252555772812647800171370047587361347272433266701175508539349327058577259887124063986520071805506286537256935166419452937414108743629681749439152294940980929574103963887328316909493034879972919466017089846458928283725654780086945315049501434096129064165130259574636036421803184780919115648327499774423806132915844957414174320102910407808721876568417826223610100658177833281085306094797367732632282025923312209277500325613978446064317110355928885385124358177676099813583558019178082009761613699231886044516042664508240365630739755587501724211616823951997898392336400567544088603613288539813298796699312743438659155530132112219056650848823149612723135617761549217857857172849778458454805809549252346872298178520114503958068053841414753420150305581997767671177533828772015927696290419386928405978658771082049501055955581792004852471738575122186890804683196747979129936236746442060067028325950727240659304788641576732769620867747677830287906614817224941785662928681526536709859582578399009072564878045007363919372647970304371463954354302141594142712459018590511352788793427009336545561289108026696350448443768282696900492058877322337518536345227863109787047156833874486159537288309153065963216906291363533415077114332941320455458831175965196949680005499188970472053700453304523081761385841808493758811048667014616679097855599573520551000649480524191992874162682211597626363642790582916227563536015723549707419171722615721368729029868619058288949075779076885558814441214748563981799504644038405726701018468232576154978197389480042583025270798106922280754825371996535273065820863257745737479052217450064545119991433816224943009059683197967596309146940588520329381054356774464249535875265674674279902714835336364862078635460908470855761773680073399716979900217337091156908602383181675840872507421146353013761478041806640598363947420654247762392745314275666692631878643073405754547024436173231559998520270082874344658373417272035705900436800815983810962794655411471242358565458433736026539508450799051919397173496032699053241789530036637920911788997584606030714787380688238661819779225872593595834983550676233989090637566047094270631831421454920007444490591095952711502486437184190586312011734413292439662135165765912883733940904688090019711500972216458099140714687787782062625395241010341421274235638864465655438358279068859086178616161549972273656271326879614785198361609009229079046570493591301191508363865753771676389972363641015789569813327391220535332899491639498252447684349143707275027699910860991365391909094873465872635431353674142038403992341115245001184031899623887618410434609419992192539946334055862021718938547151877114297051872103417592892541357110273391228643342474212833540639004924060283854409995435031232460473940919219461873785722130227986292779674666951907885797129041021767452910358539446982650373773038113897469993702011347027331290612432596908491651098594904567449316130055930483953968779455522128555287063404722468661597656499994918478990173018322720714648343270095873529308681237563816975658742565760455682354292201107606859176593500568410131642727694768722414985110799252237498340952960643278096667869327813561930138258336706543935592585940332117970149585500327398446201707838131112653121478182005535887713260264545483475524103465997125261557040276205554570512863472767937749290055360483844119989638803031865750956498169772286774516628508863879014189640491971431182691237974543787180162615173436653737380204805546156922070108313551701949902993661018197576244230848310717065507622611722097507288099297644626425431455243024173608400163167018731733108611059727013149202060202799796819037371750129159392959524745342111928735930639951630199885298815417418671086420654105456896137550669992185664968653750936962693532957246770103610204826055912627392640312451745715489480428898465196177351715013609193722813137677659657207662834653416047976857058254214234153840077123659138660752611673785782418349408305728560353662083836761737794107531326672323297856945596918472602579997403421652155074079690656642959363840285310224983750644419632163227105327183409739105878596793115682003895938631469899674122554606070792995329880972311041550100728411333801083277629265484438882051299241080902437789264268099364057199524741854361781575746039485168441236719177217691343043874099611369682912232634692211930596571191535587954929262207477421772936223674621963037175853830330060152396948856513666595012694211910576735802176946980704014051553887755727260558516980897419906896479017664096059043973611926253225351895774010986803029474008036991367163423293613278624711172524932213556864503623785795332143303186861609034647042720584394417470261453900306295368916347422833031010000627238415196292218455348747110004270907281634217630360536101949080591213548468397248754790318128685984965945282803936668314652326433480553049859650938537438164093051322644417204302762108980918634231381793247826429774821957488368338785642286786363653199442843910239063012713160118630696544114282843365413554082212591206791663474143311206275435682102981060294771739913670950540572736284140823093627470177095837776128839295165182237372072856789030726130931624363156480404911339415866724335232971512970544162305554691543953988532609997392756859125809367709563788312050759019385081213875436695312082182072023686624041736983139300213951648447790112793436043732774681025620376944633417481724205824552704524571114039029505255682216417163773910782478787369805310339587819827184696955674644068545564098336032941870596976572941189710444116015515441019729745813290510482104486397895233644822898482450486730696918857329833192936602595817511860540156443974362391368468735700585976298796658772922559283516794954063884712694463861171535641036185017619683217233423273213202043537696308767716393084032149930769447817228725585764800265863171095731431816632738515089308228937376794261018174003512129775216148924566531690319926898064358882701673081879355323969565078913801136441613848371783469471642052254409127844404038980678781764682404299656458332496677827701096027479694300959397360423296057119516060305600595815018023528561807761228242027255227345209083452754475794127104037882123169370558648645609378182412908905572407280815211234732329373792365477639650195770696761882454852176782969821688256542055339146526573366582755764716944131572632900444986969479995848848365260259035917590388064413183956702565634341785961293251600038551437801572408061584280465536512375451061738507354257296595058883980124166260713518158982359018209144593268799339755760119455151932575506994458404795283918249396340931617770181450801989046871072742378130908803149523494831719706891855952601484981137802751952532371359897675335075455216479811022234288471695804291794278054738846143863404801790129743400061799494833379593581569637754292831604339725141384819804183707593894392920172989121794073818818252447307392069813153726113598524235158360096093204831325226457917800638106044336624200464928347864330206597882548641451210232396394681243356213696703484941864518291196361022552050517669588167922305932312839128781541504734248592440198852593631994015305822778650358027540475793282267215855203294126502435473289300777726543653727562636413307638900711656350918288589339621456906899507095750160173248797976032740480679651156377927100106254942518190790264064816215438751721312477429929412769982240321247574726111455510216463592645251919862801554171600349247787536160237360041022172031629319620882772132412932936579958064279777760622884437967516322633803613952492367453522710512216236978881571664544182579667670157707263191153003827742796631666308707681265309978522518270597091116750976790494597646688564316802128183919604167526858143078057037317228626401906905347627470462105488938428101302719882438585579460613564367557208071012070544581747584774071551814549098881763833137089476525033071550636216155459161041568288861379698068364945447042853256704958729587804655915185607849909539329270339572943169571884527223617956589230650903716119192609729972141587988083245363424951860111873927859351743170718072334582882456152592347895138059761314383432910119680156819987559565517328279022807742764587043778663338929244744855370131124624618070551786451329831120056008877962914704958795115776744018511720703529317179957791806995488623773507582653561714492279465297477563696101188563707493921050767568822648711091925238715504189835726605848716185005109091853525520465765110475266384315903607904683117332478842757537160933186097229627177483235344655019964997026720417381420816082504482793184019253027875348133418219271153291627217890870882926477456579898568299640815330840032544828322046087574346377793933679378220076840464665060913617061496526157310929849345199884498631974426011745836926133497090954704877322428455895936323809176163296026273505777947820052914580580710592822611401488003084073346685970567841424299114268197632818507162489677797395049391605016224592190796154463811360023819907052033354165823845912302481420356821975436350082847976807346203251877855120873985238706989871729401190904447665642728654874038721878915763432743494121881253727884580321321821395359554647332134289439110547465552510162531441649417404413505240513589069946595211696654030733564483670851458155690541465976362768291207972428815041860715042659147456087146740121444582475737764332560198354755565268699637666483322591113737146143466844699900029124258426006733711839596714646811021339929738712042242207385219862819412696204900423725284051349266649843730938367324497245992280534213126443786503939093753444357254634625557301517917915989844362742043367467729282719039300503771169849463097382792150870281646168890512173383503163732060603569703452591308458674484114255001101710203155067665436976241652998978887924623674160965359047793607430554899259165331660010435458630581865556430608167534314730052020797998837267654531567991634854029679104657956273455513063616758542465210577839825352286749821254450102618774948475385836811100924635004954011930877132370280527683188024211764868079280063490947421014987467218808631252375475827673129676883973672690018734840814104702442208083522269418311535361439650085261435367205381192669168834819660547330058939927443459110306145824052418296766632432184961124499199699962473311220225533731687382419712274807807237508573187031864262909232889228491999435679297135684341446301167408355599041618940881111317473636314584491794814414696448219905335471536379724047466280528639875094084683455019785869504806413560030189078041679792242447021802700146627531671349737197153139877422586740642721487618901238223979748677742413855121492313251164303603313607765332415267234456907616852984971115096704357491861884028523785789823025096757139382792229218499286630877155467225913025058570529975762835073467661268406999012588017459982487124715420797294738695317698875407434124607697778922335048940556988320672000719455503543281290159755381359425148990779054958263301764328712560649262071758714865360733981124512737651098274841810941158010051801004495274476642101433417721776423386452601071309241716395070542910277421505308179457150613767932286763475569833255543678942290337672523849162629199461724036600587305962542782618014480362669254228813070529441275770785913793862523851144788122278090426550030999713777778939853322557371064316459340936513979813374973676908084470152044242250323492160714475020262959599378883611437165641910425531416607859415452058309672562166493089170459533912355039466288464558294663136999435457484763028845220875635385584097825679850829513611246915062477058377335973844592673051544972376232258912987447596713067039462134501258448986789319120470631704601967169204960001721090519571793730377108210562913488445716483876506392125050240328315382327132215592838411661974969620351503780121665615880951715474158740172003416385027543149540589279212564466490662498237396161404481920910417698122373383309267086395374296990591090019282927917544973183779920496399844923923270896550495718555063432597389794864323405164497598636060122706382365597942287760594880666377269486584639211676210999108416321008554802087999115440951493395510356630003286258216432239379708684702671020902595825562625166897873799346053242686339329303589024029253292181846365291104183134646777282568842488937749026797449450914771402721086595192453378703262339942810224460842857485313593975814958049101437916467555604304738859951939985397993112236778630652622967323459185625368402199523645104308143846870466457373436061831107412031121965073289960513771317477333498303606953887937871961813931657982592005391481128733205518352192595694065534485955411777178903626584077492581296483138717527543922554559709090454509907888927119726158343464954322510041817625892605323382474955834467857183618017926775060608518380939435232433831285099627063240686137779832383027289031286262914825444052174377068599822059709989483689961188734962488832327307552289487445130193838384694118353173673018127059980642625543952083342486200381031278665489196533592931667940271682337731185787497980690088211278731718836139872311578155572752239092946005907471664942907327115696972156054780303801450000289702053203560302942167979517066765314831051441432569692076610708238211003183495487373978357810656213988958209674942021136321533759963253679120273493840564544995925337050235754865638120076839157257510643099591165328659941506686628363050943218372118880537534234959856103787716272188257192316380651530411635721664146586626931593933616435595183926638110625536012104205058238345535807926500827419328484785108441363482701341675371814914743823594192849025411199606916498344619153078160122686866608952170263128389751172947398549001974325697228860323180324505773381509012883941067319411166093215093213298322826915619840325753477942228498943005190593481306787689343999317589021651065735360519450375510903271810658220575488951731506926429446473635144898269996225958796746778906719082456719321303743458162116916056618747715883725152920611852936630987079582979024754290252263139945541601900737960452801142715842987293620592423338070303992187813652760608249515131143822471710539772460026610282138837003032832103555414796391190809545079976046106715899419022260344959750258377781681431971999890254657890394018852508884385751598970909102950364652578543449748474094167138137605337543390009200525420369075646157281494843540421447851116850406383532214074470965557119132013919909014049200706537277720168511371709872154349261852379559542037840619588785455338946171689800759428680897951418754120345421053969962619245539226695179449039017821953481154750410074628373942231761708090252856064095517706858005662748026062857717223435897350706514651761917350165726903004931872559816626118493535418014156636089985048275553202740799552513956021083243490292467727069876682004339850877785942795740974576651096567979254923761651455027119424625303722197863808354420224882980275359041688280144212514727291591148527742348268021790502977272550745350493471020961610819552606850812642867416099605782544447626050024666823128771259199142442440544497471732624532153868766590145421775427710495498192070076218957844612811815750038865156992164956093212544079773976050825575664227394561916591773771046565170008356261466602507313828838784582435896992962807926385708983139033211634000725243173353748693808889137533575212081715470085789736454473497218061941617330833783002472652469498489983098372821722139928060003411634300230351194753162420145381065518672121816108134938520452125106994935044681551729060125745914375832623941441768527816871547631524385053207756548248205522903907954945531643157373598304732907960421430451801425834528388030777362852492588465581389243767182695140231515232198290339440333965185965235518782977168169365673156016056457232076402984726266585790699305388176374625150597955412372651556469901712977667879110792930589751312962599931390413884246153515227851860991005453736823778173167039832210247811420940108301867994223969887106498984844144214828012887833655505789799281224812851318856332536473708959607034499512509676837937537834846867068013411831148961026839501856274651514574159481726438234384052965306064325839208549120922551278044127533533918156919014408684805337889275067422982735054177795898127368067106068800950250939844044764368275247151874861477364206037183481954222510041394623573923702471865928738785096217579314601146272063212568042648600851251809321542719806106752202797254195044617873419041709477133413535042396948353532922947767716980484175478241247854128986322049439395205034558373264604825037691004127537811105587480744184127989014093244151341870011677604622101270619126660399129864177342301474168311591231056281737473538563609259409892503753217024115967943645690492374169254470852796862625756019208333773412554851764110351883522618951874594460133471477166833651249567433391168279756684050225398781923868174116737117294143842937203303158751592872949494781500315196685176232573797280438250786018179616613985678612389196554330638398898280147754629813023978887843641899895922153878780288374044522059689826158057909152902947899889149507588262419610985009690039594925217347537949688874161199295672427102732098275827299271010389712617554698935818284732883411539678145305587296254627301346157080614704310684023200555084757666509512506748068442381633851227161294457441677745230046325729627082650944958022384249213604405713863666029292695638994962788857877853829600985570060112236183628197539050321544984831168517708635822075254650469576914060884512463024593320967129851095418166573067883195657620235832611698540611414418218147133003125177823701265597034191100003108891889561944209264821319834239580691629911932202041625832905711110115746813769782507942219158109346810114679140822459106263469492611054565757231575858377673594236236845444220967153987160936005224972516967187209793919728617694251934007544409518629967949351762270671707633310302285228670095015225308490095650350091942794829599746856329231329959657508769089049818114292088658093605806271645503426881002254453690201077909128142553466924870271237437349506812048669477616830577946332329001178677291536806290549465939635805500672636651392432776771128174056720207127635596333704375909279794989656312101279760087687678291586848127349071054423685002585168567073086215068512227794461146684033148550652679356862346201612258466807720879292741391325061144325247644631310259421675725957048361571460387708492371400101992750047863893114216011591842152402266247780792755895989738847340704012211957634505302651921304319580749474159082938805346231791172438485300817899066724259849737511531918046166598163596863818272846368427935543628187273065479744025268355649412056945553632572405150366275141897354314361843593477957825917738550113672700985581561244247209641630160392590093850301680934289657178504010539618663972533939839852655632681651085849784821904767814714675835874240162736690804228873588818098926640504358314712856208202868999218302782250025700881323900467924870982251135319275165787552113904348645510762350764181865647542558782876369383294103607259346609758355334554944585577462568486616226094557016227895441069208109295257759290493579321548687280398812769717634528813046735897713959637711337941210473033224218996185871242471827141252667055916415728722277180213136202273522540064932465835330205363896436631380783853090706111229979259545247401656831466423228159713866296738519227738058809758728044105378958379778652938680015077889886685423651045310792695115177536444780423828635626548835092745870215137472159479426436499840109215300325976277298739816115451578532140972606135691712648059220543761475248470489301929653008839282670761093117219594855621439552812972530804516080252256231920714076153352548239503037851283153171932335407355596366294231180584745200228667271913125121135719151603017412442362630211742315547792880868447140008117850604580472287251704720053254970299555291893344158836303684856047639185265467397433225461499415729449200698414092223719266846155275770872322501601208408231803607466050841652481559235690962801068589959192800891831477639075644265977388696188661974469156150823164765720373372569035829374945845533798716958301332386351095916017603690495003308454974584946331541126013054910578519635467527867279104166339330233245695266424389939650189902454571328347513304949427574937996496758941981572378648254698683964026529862774756798444589517414495808953992459787652882408788652543876958201110935225704643544672128267732814919183650778812755117718640256856665840258278900797088041962324477891571944103573324404802560970941908174755979269728622257275263033272873615952339671339780962669966942315153079205955229639686026644773747147147928484890109848105018853305754634614404190199625484458010549418861933173545318878201729927039678249720152001663534523778788611136741307772639463429813363472652416409652122541325064767373057132928945524286476416826081263944993014107192688833737695368547733776356674923211414353821089832088442387117233319074808788222440619709838800616565622970504995108623141599247347638634761775789466621964552165830858930059423735760722932714873514560929980653670562188627340354878999136033805379417360091808175336892031805375063325879460042787755012082872386867740461356407485265778865377890626613676725400430099621168047789982538226297619026936495396900076167342138263535065040629158139485158999327199732597228800095571590151864154217035910723513518122773287474723720416053414761136244006423359486456929192268961401532769437750911168107391974154834134322568578795775940369309608735543324606304057050682122517649335593665154435865316753710560689858247160208689749370778067343445727926430851978307800523526740994302863764922976447731283522381425724604131939807803245363480506066841745580601441807109442548516590898470984872939625666976115637167931587193335062024947295999600465146444671506511837265461860301608548766672223113329099098287014362782562224125452903534916735258860829563330822007472673066216909268299449875460685767234910215912723977366558910171343108038599772225691128683036666792473901074967628086078960961767418551965640892878549353245152692045336874023396417765154354757276355148088604571338942832086676860887809454637411601616495744292816590718955992984638869936806586506026645124032912719684889314310935310008871671928087966537480513347519625839857337385646210556806767111563262512107250651599354006660720539056655853866589165960069999226329829727190640306011143718381241597759190016763427918583865764304047513981791096238652846203491169636023763277391983002413344818290560598620651629083171863330293489087640963195090871607225611381219392515446612226394201960796386394889887324286981851554228976582507097011015251685989760136124647645706918173593844985122848445313246374412280792745525140601263484166094087149373783817930758795022954337693883687860859294002623811195870701114516645027452606654527908919117794922833384493487627065120233535879038955641051824924720165920041967509392002473449622968955197112464605327122823823637059853268347136298657675737828514610703397894261537939382932281524827266033227131443315150977229678244021731942684576946656178324945413573755499057374734121225809870359185428380508978150613043141876577539412935016468935552498375210018537521841265454194408637041238469328972990103467287282271917730729109648612264099185730403734274976655622704413656208776057858051075177640354274228397045496096810663685010210025022801010527695955236620006446595926007695161231240663070506113729301389583689173009600058921265222227808081563128560914067315175277878643083558169277552132077230225608900414770689297174206921971085669870491712168126278145806340436753751182038671731613745386472112022869333439914931005086479809416643200737925804640051599310031736031001171210909426103867114370164521897863799670320842185424538453281061026027416801665625800214325500296957961585513951382532929117687969816454814048136759816732857906735293218546153362749709857383833493846187226285952096817893831654670564081136937785601044996834079540369602013183910397952431425563479796671265113099370509631736327047304226797693313736591580312083853168419557379736782503324744330996027975834446980892900996453855804834761959430236854113695941805792057681562157394372081220093881455014729558829740181584258676380249331168883844788504507158479613522686917257724967125029455402824318299721854201574652465505872059792187520121408186845576722996523444955972581731555508403464475314000215866290928960254279933099588965350411383214445084488550516081697189066842439918424649771454618017517135849275126536259193897382557503712628450176189832726809400128008029289730704553392407209682544340199193416821833535442141122483883719599917290879206944213977947125995172365779010350605841105052672797813239863232052894626128537683389111314149794479102831861441120312145679987581497314885940965497099472362165084342034676373776906053958019470407291752574796581235274678249260969377650492057048259331607003434166889841718022603031618024111595887915731010732763766360515372158474816197416235882278892070914668948080637948137686274349953394716809613957659484516373981360611753887103377124417556910671734725920010067846859372027253143048597366882369844333462379172493389062176277740047922052590801695451107524957317957232063901428261618802797550292202148608007579359049713932376977644215240285910962987745735154671797513416303232057028875075365948644817318711873257070516551718586414942843685791894690877059670217217772312096019496136625119890375257073061581655690867217700053477290351120311775793649085196211788983824266736926169472395632896661743239908646979378028628684443536854922777417407314109570789186480344865415915765282797088341123789064947885127900974998018681572458513295194926906589127619453652748452261255090178470026472877541704338239639914216900703817973054306235366091152695124340080673074000789902647650122519841414287957233440696597903204481778871339657509400656531382123925017341826554850249087913206564367164721171866825618646528596274950950515562935027064285717391226910846620706196682075695596271369739746758437321173971503060286223532778856965545887157139354537716599414823527116098997507322683899587646336006942064788140275806685672275107580405796095891058972528561600087807801958596441333725053230414496768422213202996127278239815572270445583660381155698249797907221039466005581372836301207831023542137874988998548326271992597217292455466976402532993616452588880284860254063077704165235627119310231046756137565287464346157724095841628208513756430471677057106249208991064163280295855802965617544077333524734012864828920667829160239709678574008955292245884062678841177416065875129111930029132647356413098136225760129723046816613392036373457715840303284966183786321655158743861021703633573299939638822160289557547733469100354250282637925467643652079647465929089054292341490273655466526891693319496626403527387682377615176861085002013261225625640319187883624568136853120233566529549359910229223714433472629430280626816799337063926453986639573078688710995911599023407291894804132517243361757293201848703676391316094036830100641452526577224113877379996349425523344122653556047476974440845107560635521792720635971314514378573605471420095580618880062295323611989892584245508222674389829478741318368658219455824470529507543669690234689526195075893585632924169220446337652374526638863893395404374104759767598167149957954272030062985962211304568530718326869356346107974346217457702352734222825341780627244690359076866457813868247348639909981469062823735556104432284787329981224975490331788490831356525872992943639205935652459905708810222352086678784084859890274655049365744625305509710307592398621693084659100928044222722504276477831633723453820364072832720849915300645218321540085763111597632771229238698361083015156956052985588163919945796462525674728692984427134625507240659699670154939892180132840742135818803880569927414173273863620608100611342510457428639106347059228840903305129290215588287409942729963365181054146720051804255317075754990209638871914149299037329612742316567726398255375866684075072094999631980010840231142009197118428909578405167661532469492979913233063210235061072110611236275234938543649760702421803964856790951427818547660597618925454409984817197028666384711885149619691468933239033973606241018815223933835693306350763582083674361052132860123206738847124603344432571851972733799028911388477724388825231230463977177864198626392334267423606072241446978961587073983129598710447931144858006688552228536530485903284319390304177817262823844568346636304202081310814658463986711655863720115887164698655274933804524028755281731089673737954493950259241195932958365522431974947769663250692150998970331249171333372670770047878145821815424512518564191538044504594557334450041103976444348822806410421476256109002335104654432377147458115719237288031269389787340098377314900167234083485684493956140324964880251815648225366985552801873910173117894406534619188956204864296975860405165226722713288397054621144474874617723945458138902939309937354951957973783907200384242005923882370128836886088624942060122597492846742287613281688483091209301844015890847105241624782534758008982380508806182131847307208063647648227321422969449830908325912853110831885023368981136849892692859444112169705031191135693892303773292750538174186527240330443638988148106346998739471612006377408736999511295992645468192173846431973919112272480793715025040023052453018771141674424725308032111117077769287862046787068995626846253496468802696889818933939518891398235070347728773002196311326864576042456500330092429804191989773022096818171815436389275479497777371080742312756998100732789588161120405930494714672725650260358045742906520755164199861329243188786854408020863370694709930146936745256155966033549353933415171014258863651489366140521685674968786729320789523722599107676703341139056387200643499887407282631074004040088353829061368014907526081987582255720375772770076873613022046726528296540406793488948530140666676525676814224608234345284208026667609734871899844644995095083105307106397516197338501165089631615667280689456890472168972945777055016479314996156544210787126702882346111369080017231278619165466460474538183263006994164609899575052832442408256807232817633495917411688400054190103700422161831662711309566741808589232609521948556096461151459150564192489340595104176759213714572218173894174919209988845120359425454859947691130808013215956690482226167069837746372748480039152619398964176236963696382679136059249141059114403037479038485080489657647655547466905091716841259558260963640712780204084191733817834028628343347953601838243411010807914631077417920091651514450543547469255856984675813570056598783817298704035953395105173898597948689759060991182605994688695683945203878843269657925105922166174463105421565708609321414002803099670581315885359971467273230490822095062111538557153970334544724329616788998829132840060848240900528572090511287475914195333462514466094807677968737664439068999086322849546532065879632315969743540297923345962899093516726735152202330251498528834896542855376908761267674886832354352392928718877390854783636492437086217882221795432109837019443131739889980879069917946871835135149817996539215980027933837410454135042474655275261452123847332987018217358322987063438322979673849451194102344330873179791781157022245814188125398304378657478418080879878118615110379672409131835529784107589054006015849259532510785123723233638459449834814297243527138255727593225469074428663542533667973156505553421929531046510908170964209164227513707344729344012442059931933009684573959368568496696949284707527560015893937465424893540889389926936343800342835010109365213714455381088592316500072502962770724348192436801560655482833791696754356215787059762920421751546432652993282631133801124885338254128421461881829505511226792230542370600956737786886855953651970653048284934091797513850479568674315701865121023417885212149851737272001521563089732397442768344580867293205132348258188923703204693128398694645605278384590362992232425280482597721193727987138104713071539954523861433551399904394895187878499662130617062169783959414318460176126002112756068975565634892043114325239746953919873222143739872248707003457482214124302965885915078671917367038215855395127157200911111767416455073476305763712017017513644889315425351144311884852897741286323332280596241985616145322333126758668990216950491960482823420356043318193756466921676610920458164161863908530394157807804149481378632359893188915050691753546625991171722598932693021835985481347834639377653035345585268232677228993331456243525228365743115502318035588027304458851621403178131651336041273984214282801938977049948715845175932534772198178188112294365763855711081939394313103298125266361582186581385401252462174134309255908714755158313407784025900940689233075916388735966594415445017591256162947332398907095505395743939552102653522710267080772383911645444874009479790427664000269255101653286924263933525100849469074555593543928697770139750379442850727822107828730063411193161192450193308078494062276991883999920327948316572089326436715671931214685400167050137341001439165643732308103884746074087558899629653044063408712260893846624860951992043014459829449186542436831240826860463239779505927539446741481942131494615028624667430810716145896783367738586173824141265226944327471864833942436428888854155009826996788956048000421260192194948782201849148046355465198297305637908030017739166756171582107052658533011513705148983284755711486750531133328387272405272269112623560242384442346599281618539261209596437311006241068767957922115161580072768102998172517964917483106835967535768394620906492445683164073978887387477837619762812596717923143169065750409437570631844789506973439936855406349169806612189111074428023641476297962770287471249423817928607794559085091728367672423061442092181799028702123073357940655845758938788165325671609154194248794301678948559446082238148463094065584618935603876558556091555366700488263681896650417078159136197238163913372278002703376408020776223282864343358005646287282665227368301951678426370904120563253122784659299621091466130704944332672862953080593078257336470392566539714504384958021567819446786900372062155181165032929229612369741857173330882845118058217415099060544836686649086467549073228426059657422692201983577730967284814278780884521407755845086777932074996564169693393238320695729696039382829016598871656548911124022450319937784757559384193018478932248717692444523951086243327916103382544041515049476362595603512368576810272236000017454231448948971370722353944520570454084166287785723013553633931587850434945704668213760895438781495264082902643594505405079354862473775378553360507227926137166126514698349552623325264163842226518253659540803484961691491137091050500711538574125107908616719901320352884063007782787113965825982528178036804958064018955286802488864133414419434244713375754594695984836373489269028554692945471417717809856576405782108718285207123816136325309927217075595506643467222291508370379061804395607457046025681019324357161150894510448452768964466845038477003448864082606341979543152213919345891298909442187004152013087554800614001812876084945036309962758375921197459310292441578251471282000034819902113634807410461552122087904920616876990024878613378120471632321403172205851698520694643050763691055703490521090125887294221715254880263945644158966264423084426176030912781953352518320553132699797683541382826636196793892762979363856772189858919465052135054963666229504414919984565197892221823459546513413558511720344099376972662194826792595062560819143018846057677840367124463682487349801397510611785352128362625137394688197172914221304479578670478323452362446033955597976901230020486961773219812845143245786343067921481744019779625237499055636692162687127208655360120009553622420383859628128325184278242303321701143791755828199468268903323745724763971582347389082245526213056841061319103091130100897675960096092213450900268032505047762228715744284196820080474578165572495283296071627773124849494158702532359354200352586598698456717321639308652115192160758846151453320680394233368145315738048009042112147277966308152730435361848132530758807200873983019474937235937646717831178018022863316277504088039112279306467078721448301721533233102312907445119778133614380330255711678533712634642590235310286783643680731262427462745383338942538237347454881349152316918283291264246708212467091752187836660279772617442785101618046724956438237709094461453769073523910155474015343493103644964869815274772394430798180216790422976209749959404398905380083129919536462601710864394475977708024133454189729446140494073089950420170437384494922552126124329154951101718119153359267903886798453671087009473299805687262904870477813065425397735721606669231591157576833522209956960277475194562537591639036052877602876386722966108029687655317669481709988449147591406228147398102286241389196697770155581101673223820116169926938905087356086651764928286883321644615059489366930865595240688667502062071027695741510047701155104260047198445691785053737778771957437011258477193663108422817029966871416409213809803688447294774665427154810226447885057238113415025120663936625946913781412044964845450568110529698923808063094604124551235394183338065692446893234232933437288691873564313706646319404333556728410208782632304840916447843704054871351690706346674572794829335860831759963911183853767324277459142506275286209691906519846276314261068421806897441490759702205341609361071206239899607030243486425256938147053179844779132651240153788330194241015197268354823929883385839246674101128918546470442752105365033033257286573831095684023927170234763883145975806214187307979164756871151211366084035572658263635942573988130944284919851282922485381510579264677191750109813012624235033788027758847631493281487423767523555333670351833840410618705502867951772324325545848358931163418886399457633001781506424374132896905099413581564409161415125461373528896187969185559119338220492821968908662584534137377656777064118939008755484093123250323815860122750742990813881323468505992005352950191217766257461703085102011107656265289176956979291093671079544322584929017278687608546125733062311799588654326620606393517322535311541237024984210229716182613021546373486673767311601992467889463627722008929135046599438787594824551139939099283859638236844048941528610126674985842921596247002104746079919499028384041362274753968699908422200734962980124047823372987921281765881515158161741723674713400919203281837340628090561562218858759734819217842702086786526186901308546451075253861887330155587055523151575286418474034789973291000975157951683784422851873711275510999877220497429201324886178060160222604453457910074810348904356655317445418146295510246344416743282225457575824695311404397969443556180348480223243767484357212264381134183666230055182547142329493622085363315145237484383730324382688660530560926426635567002905550696562530661600024577400684218053118375328810511249911241260303911156001287441711018870516190055651953240865056628402395267211230676658070465546397574706414196393424944281690401909059218793424915211785115265184149677587007218704144647736877059133355854250428405389370668696543655783892958864618871253975593801595107638186758971911232764679299947727551540458837070448373245292129098528957297716999769625556768999572163104793118751591756750121141684632319898651619289521085455782508302643214242886595010559383641100990943129232300327747445050024086142008190984014727313016006127244330497178883112448022261650741708038538514827677546686024337978053934326342596205818765295980634205922705915264009165640785718516449063651931441493175697746032472405473307259170425369411073767836270617829672575030951665539822468982837801310104373300512053176303652839300141427114175913467493503007919532643079843630950163142215090131518425937415134748279212878094303857886174384137503494992944239114325286862649728538976589409035514487151318600980950750251918532629049287588975719697832515627317214090882585958279023248843491278474640941724112534850287294274870767726308579102621074644407596770782270324464354502323332845279870417555506679491317431186156118837054544789180128257618726294710135204925852867807670278724285033442937495369155575697007903441461062356959061976925545283202058472960084693400226402003518245572971861230878710139179340357931372260166517379820461197001098002377920467345566264243227227172138986085580565285111387722005447709369723947112102650586230254713561042138516296641818193148113425578114614360127069824725501942749667522894655746977146831414709665060118030333353716158379430666308737354857951529676021370413001034398868032872982964387352308806428907784913446674257561077057286998293977439816435542259596772085677915607307438589646858933142206512403266750053895443567383421357422025089759994732429374652795572865457122660536842214832425415415117133797051225505648722446776263478256917333535899231138558901057038322084794911485265761034165959386156614334701699922045243826128687443080147754033240973941146250662474404520961165993871609703032294664888990004193322803158403483132658646596118397742835775534750928818998885055178407934154312250316427181764779133696396560287806606454567358327179958359847805457908116988415471036947064311796002671280246910750586874512504261158000894790758667001616176148055581480517069064935800413466541661370391897440213834344123072512985755479394758016769590559585074635283605460939190833485281202721254130244909940082219756256034177705704775072143518122994999326449137404260284998294557909291180127908220013967161445300347444451327149379520512600596295378050528875407067412727059237731923507652954509470552335022075779561593993236005037303089140784557717687555554765477958327351286878039231847444160270277684905764894343054601565961902404715998513076879079225185276946917702244180035735885655555989694282654054654733155203924804822521275271589875906472947184900450024213829034076537827092352552517032105238010165382983560239042991248399159601253014823640468366970143048144040498088418092694555707595129466644601377190762138586697384971123268431930705597444001740977065103628391734583814848083917142109637057314103988076012073251014031015686380265988170796550909277114565405202928758236621817699276620081760432752816326332091464145698213603126579839802608697430377236989486941515474779966908059247934457332505547979410723222869247435548563598715701942054843145166486757417919712649331455508087601320613815718019933765990414233812575530536482856811489972935306116638618808395928020686187264500594661094051711507704185252144448982420321118809654548150462283334345873990486540128841343220338385718260274963877175635238757543242908116830339437692572143869325431902285540911380014129568307217343230780728999003377163035955288593713322999010119894040174595943903160893168198275008500181133264977219172207418583866004101136808956795416435879970638904049159501882721765627205123888733595320229386994919230978615222204279106414059731422809978644817460724251665135631421701891991022502427309869797232500161744504774421753348079954861711424510577338596624404054189530100167431509973626671151010874252505543194063233420685080004799342340335090328337209491096187010190130983807631255363477484707645194624398796719993530365683833955877468516149564647668492429580917471820723021185036422477265696774558858568942639515397780479592803061046140443494000422491837532002645386758321305391225340040067824218008994482738826665122115288677761181272829063048062837096545810345146892094029967238915303152189215852031482513355462553356583142698908613057222749514197586681260236442544137425864137724316348839535202507713609270370740569871426039084532530663644002288147166771665309734749631529434641069077892816868214863625368200638720829706046079015913823228090206172810811274675254828188289210578632681736365751215676825957316731348750903734072710464777690736817729692907066464802743162204103553925368169508292429387402336042958121261068027103539851926548036505772711313238662214146596819281104148133870139345680613662852330000811648477905404569931801525021711201853882370610155344182127218424373278889551948794982855922045494756198803809514139844844779286710350891293075415118284760833091028415394872277352160110185277500950347827919561315884299306812744759658730080001031451771731579047912500417901596734092409276778850460568652893255372288348320308530306420211573849421650605027081403370425977558594358146824334409527185404109773681355709843880279916577029756183369734453700537137564193483879193567446096136972959577772165048008088560562946686807394156318625509717652121093435128737746949822752906219820982066483328242417527506160606580408090064266388057273434524116788059871389517054957915212220131764373922379328686769831847569989264861700293484229580251953857982738551471720906735235132326207908004930042924561492404797349706477030361562441197456996399795399538008801510429359509790847990608018975196128539596175037060141722570857550159055986509047986729471780172837419739683000639961653744990550701431963599429685069893702168013411091721769360593018878878310516045102700854194359760428140737053193992564594447582960419957909648176916877820500940425979556376854455965220448716103440059399486168073402960684272987297917557188977226743577756091477668728678854683088418731046998125445095697268287811325322801914518696672913093262685084739267308786958256041863570304334716556558727611152415404556186350030902190553429469077585965115333963656140557594259134475618513533272989020415765641582114225856141929444497442464794402210610685700412529896048403094411876755272499515635465349729094231284094421474152761441640106804908856785336959674803239451441793548565300894213752890318014023989936042482302477373097700822760480693318091367118670866082409937013091271581149996427822461750368138251037193179043096390018452096355871055967780191910075268441767706785285286565132762018570934160331115543553283851196982749190708135595289946739793732441549314635651419728190145516872472499388853096969341106000586547407673200359233391435483505966858648649503114171615941200328989649590745780239695807427152631942419140778498997443365547706828500845170482193421583110384070242732959791452501455155982798727135772182035852432423917500385095603058019506701881693318513136627172074906982135627504172302956857790144809361137943685841232535741986055577070362091869205484811695298063456850860339156708513946149043295538015923322644591532211846634098301631431069521476388380219878146034837934313995992547413249754935407260761730408664437397596733611563508844595972963907227782887762122511472473751268987770964321449071652442576324699483876680170449711643647409022687475545109194326981517409318043248471326814264568647093018292946538998935255683824701157772557690587816458187399145652038847749189221827133478622761252085009074567273692652600828626650961200133074082833445698867635955041608942716781589023192028295851108394803172593568820789606293640175237865941573404664750655236196106637194671361985693799088835952642314614013182450711383444840293450589538136334191755974021293771117027756088892911981036687238778109880854652045167248533089474192634892631719101527334071240929860828372244101071890045821121506635669062215375854273862716847074404839598726168679781706824582843575838105172190974466344865940100823937495371295255180358975561866748680484250239168633038550585615233348923618471889860449405151033579840185571095371644134158342281974511055418344349456207532705459685570931093414064035644546487295902927879415994660925756860786037902062682350350995292239430298492159806459122935915251714282560979235538268317179772520018838623821025410848634984846935823329254727248557832211067610203966138838094958493758226687878724993934048590537533588194292242216412237256351851400882805313701800480017822384151213048650471533036283549205869639666572605262859959578713100385590858502855943211440015496961291681126145191748929700246976026054090207084187600857735292731290989230586593080089931375427941935484205008814079676494483832368252153550237290938256722397789032286710175919648377227187848247013075975818834493828806470407742496305957446181184715989631946405523764607040371860636839207073346333860491370114832117755684423400036817036925191624046924169311684805627879726071942196044617504744127757925320222208559520781839867171454056353316482206997877122272157637872436836422559008771891797408828032631723120206356163229180452993531112204674812827470945594440285224572069151173144234167315891876484889411257182264505594828727258845118630845885152435781256920315360217487397492883213563877667661731385404490213861074396344131251379157205416399005611339704372343016672999296132400234375019351430103966291351684365326398436351906246709600167673280240715705310947018118674104659353439280079714543577889775372036484946282013555473412739255339194818879348188216794377907740234986613234817403482868580472940106811982066090014767062012430411352077920201973839269133771065180219882974082587818329205411851837519466104364317310385867332902165196885971869054272164383939764925997889562074008041652148167057695581333563118170492450089935206791941182621838365071083749930225768809286813535973811886151681773610708710574770723319624215248549696595092828384861978666781149843852459083082583289880151449319289802554295381201684413608372770871188700030221038687328094283542666942733077132299038171108490264433892448504199973185628341253663075830176391915734971424320558908980474238415082532760515281658368207172211834216212436052660826343087738319294802726261352506022332779132392851990641310457641968501391009524086359817936618367159799494201063341612354445992796268411412662275484065366109949123289213202118410786244082708981571108260611690906357291540171836036525051602574253595787044807239336261924613651098660123699651077373756102442825779725682326843131115578782366835309642851921299265116034177150061816707628659986842897712103640680611676178838586349468817164995018567717003775847920207177426363630285119941631837959743235523239028538525204491456539915457093875324692023371274032514811401559577116124702677581255807677556300221581240154970796196303502767666918718042289246920193409599487980996932443397870169601753872385211797452644509028114828202334939620687423390564169376161167913715681786990565484883254980220094327929852788418403516112198269906521100395328699135831607084204970732801683833574177227900094698572655874118267235688754555076059810651562271717945286986381907400574678285762461633053847326318279675560531544053545197636648817315847928930587583475035666337583650930264885890108737448504762020148029234402535808330106112307916316345782327738828885059036781529748124350045315761744223702694175976876492691091844728755427976559778515169284911096351327946561962156572731225932901813570711890003361286283341587789467102567850351943665888728264963429916671832077370058411753789702692316984052970486714706905985243028819134927036598591650685752701930234592871788235649191107027946276484646742920498121735355169299961764137784022891216880984604619789234251354164009792091970261263133352475545988497599048094534171131183492172102388189071671828805742371051547368674580414772947532390611257947834335924540736007514626667121075270582805728732892019456815332457819915159041026687531768901010826356860599785742038418343209399846950309900241782845140465576117633198225497400993995929113974466521216554318017013944447300731387658315502118897342895540807157849314341414981528480905325712376394050568726654640512249940514556927756281511234244575277478316033977723905037950673338697847083605930340638827025324343724451988935734362643591936089849185872423261055785918325648846569397387746950773791907660115491708394241797672281570277833548015406063904741953128284880528002102060580575380858098875785452842860750086449289225489066537437798478225918975480838584760846878169360984516502975920858560123705667267152923737509549551778157893567862409178414118558912037134276217051398058255698795395540578412491441558935357157285236623712114838911427372689743456385638332016788673471952324270111200236832189355488111149613787297350419660270020035131602890731570223110807309737648261123615674365007691180092425598706323250736382279344651735249794218426084034348195255122218638390553490408600943148113834714729268017430629506840407786892107364443316236620059658799592394888123908275429359619610576883999213682508616737079582592498203704873914924243714531101566048239916023868623927631260218908784326964496198406282154709899906435926639080444915262099475752447018502393254176640374607247310499105174415119260465340676948633192944790605494417368010742202835064726701206683837425843022593172603828040874756934637539582890624396445001572508596487916933874653511942237811980969773330256861117493527061024658433821776843107237480638016477654052106409434996332072700663027619359926881017579651193715025212236098977337794723991661589026662161984895044106449703603964520713624422860177486953785348376056926280773245072839094173503218660983552904070654617204543092262735279671830112038998429193689966093203316327754970312588839819550586516353376882608724235192049894346744942478419563382202464301366568781277769061465986331431024314229372543708240829518337176615035747861400476813790996258754299822969895296000465547211180013211912955836088188978720713135924650257283013507519185051435828589366163069413610893500813173949845863920748227078429311608325730569680675323298225981875950342068922175915671491182096994690862775684064256349080033901098598108718715969237359184768823713700390356543157630963436126890945417281727783419895992271649069518572562401372175838465416660074415027614620476626942714216684498369265396210445423329715796349742397491920645442739559959189336506048452421409160830498712038570134538871466486646265605588162634537733242849560923715000098596253296220959383844846504587639886000830012003776444718564189795063754044098821816924300191842798000555568650112516457643486545646365915225555945472618648863881185026745563848026567092108097428644509923724489049848416661511892500294703885648362461966535947601237908150178079881698757107781043077902075760205342109885344935563633161466085453950790016102371006658871691525815996609713989314089916986711777220268498110734445174080771609124433963252741351260337044671754067573953999548833689514373672501933080777188550708985982569212991207812319221899381304071737895613269053993682720835235684308874957893654520498970317648942953742460614794110071132393077873028466792846767196887846076032870714247769739459533654310164820532959178630745962938882036227166565890455293556194793467100866011302379438815753618238786129451259821947359627419261422601307198565356263354786906246168864901041780700873664688426494209118591403416922880453717422813174062509668052781548317734710246080726385540814656154747176304161848638711818191165610165609551525007444932253824376013765086887598202713228493790550891405459630189698821220167459658886691161451464346856770512636953297153569704737685216467790611894334911850776571263221424361497362317175923843888738548456952471246540039195756578624738066619233959405858784428266832978163082766944835399278418478172890938243470337436839951938012891985692751613687298796606175156693959801302249083482839218596649274446636989347473581507156910492892687305349978469432946970810648474618614995565143401996010503698084233396766732201905377409844419239173203019008546324639467849065621183629292534323546851119315659580935147630271924105352726470580486102097305696366009630927363244561195663713177716910958854101142892730228093499935569592259874691279906808009109399030076270515186372544333218314609319425243354633470130045278347106096030189559576400099123541729523482406618680240758606382580981355938323484242050025521964328907018316239366065722225827811793796852668102621025536724281005976845194548337670074335627312325964724279029515781586256431949383600748976304445242555401847030652344563709875064887341305642079159692243184727481603583879287716085959225950670634584286071568340070982571133901577882931836208619711688435425491503418503887579133165956347707093741436385856378405833843363649298376954486584948767578602214123654788024107212919621430519652442250513805236986173257735856865399262920539863377571265714249617207982530421263200727478151066708964194623494543742920157277479154001134182628520004453894495815031588083028120322833062596379065533246392162489368101693304163226617494068677400322026699504433882430557392985944055065385723192525094333960252830333094203177787511669405016317687228723876211723668008481665454660055830678968302334088950574866243342005171351294641822137671927483376423273782899264925470033532535941964538051814502005711690275146320419634008589530366870492293313485409724533069465637655734885692250004751589283819388307166756634160857491591762513270989914036454692075924696878047014105725686154638082180919582938012601325453044958863982249721775405462826616310692533910124649196870937248287139751401456587193551006124231165061544670033639769872468367734796150762319473035731305492752989940191976645224396194096753590682032415939199614815597225247582720743875831619009786306745971693952789633078219372433438660335466993245699976708876236931698191727295091865942709780901831787711073399249449339579603798112999362083447752479109309883379074838934690749310471074319759693492229427065060838134377811285419143775061524267327542035750123266390712163753930131221135779618662397278740198281974726028655683481197854871550888727179301572466911266436120755696823242576036736917738532758020838919580705817682037618918364973075787527052069856870534150299681941123576891470283186286669476863896419194903483617585682872662868006172849314614476863659127033763140274339160300174756807208569861031834175036795136899247729108943790646989545827736713905081624540241125753673293219223779170427155841737364332974665568724338019430358048456563582693368793089681284004330631660105958798071293961751682638545725473200770333247445737576950421546108461078166208574252966201197531352860171010654434200877031776675928184389742298887380337184213028497848965488687664892833225156661746568346330574506063248455713838303400663605199590107955179709672523235795841660391767291080327192168101858203941127163896788984297921870212499833337323805776378903007231823533396259483682116444115489657816370205892972068139449329647947350787552552628165995988631361574777695191172265314317557907880148158457220290302636064200875618716179436510384051799325112459540662871824039354482473672837218801791535791267369115705272121861968840441929173276761792607239342026820626984417445748618570491296697617449011385955237399757639191687031854591953467430881737383132855358310281631098702468223562823167884288088294972190777087659095305273352043090226220113454677210733527620650569383357493241292191613581404159790694245657613423151200920548888597835730897934667800368331770482364974190018646441852056321443628955397617818164411413374759882687997818250385009070595175699162381369213577801061825959626729177137040044767000920278490922416831827771827868344920799767618917725929539457943780382775525862516735772445711377779258770184261191673765622561996546637923959284584547879985227791321946366521068077976786541238848260389879219688846992132286298707501092771052285230565029212887431292360652574464786520947521508788488791475558192747170551677365398043490456138691794972186877064834670465789488900233963041898323644896454043237782901461022274658670759371172698402648629705270979948188736388966199142459704604223550063366773585445495906918527256740661140504771584830125951004986600778697563537054634131367617313910747342937601474506193324675606342270467219663860505198113195798100343712991248203631748634753484933372592693907143621498254686642368980698091791442254282524902902972961830431853075065106091345334057732060465412499601080565421039154762696924922423521873567659037396974664704715616050443389033304760604523634085215126529465862895756123172693742765257908981666668729935511072168208168961266365045045436200148552480814945343445484386721267194963535946758129455756160223464203322295024204695429759186402340462784142033782441181128602287090380326115407006182435481954395011671969760456812005593126274558549407567513758438081461591661234262423415774628009464933122109022603791647818203656084085044280512049256902627287537353859077881166665328600079678529181806256813439599161963871555123815490653173250402522319868444657742478749720863813549905415055284260745099017627246389909905543770802183388734308999568027900356751971098949306122467756435220730570157282403502280497068813096661260679165384729796392847717482736379609351170108258268711927537250579265446110006960193007164961069355666594754875910878912000511116540125053363395501500638188546252408745322169240482133950673628949058596766642789107550945293707855782047285004666992373772995647689223512928349842852651777208523651411850134082719781125465201138836061792889121395196924183389648753360152646355543438053730894597804841019819799711930295092999927240574730103186855438370006154344963137920943979342656595799189152556614842194135338541672173666638992186223151794293464001967417770887753763860023723208049953815318355098733231370092518281135759123774466345819093695067244811283775500288632322654337130316591687146089862703611838490733478406521973233967578888877401433370290006280267374639226273415017563804419137579629753540718324904365285242477740646835443795853120381122526136895033301492527430022402442296536033354753434766972194198004291920701456776173844638370261353108124516167473373617178634155518656866725839869067292216142025519029825698780344775064727431338969662936776743720232154212043969028364788396460779321489093772845420316585314046989365275721737938846226680322372636710156186398215011229887213238362987717736839908755227752628804221602144577906340563823645270809772299340929948178538110571921349236012587963679945094088354660332083086293317515915009018287335392540100280437238554656274009544464778890133664438942723471736187373918350027088335752866506276891429960208606910972319429628873369618176024428222713945475015131840506126165581248517749058251779899666243583656252353660210441451801128303323077586421145585899416265073362983879928425064307391945032714222206696292813214088746082652332817171783572881914072247747643412631120260584846664256920980672903707389106982826176397077811825626082983603099295975167816162648253161095414600501607272502980997775294914867737789287279178405095418263375952808990225918054186300438483073805751211249571054104398003010018550371713233020620647002378682094716624643196322229835100221008869335967893753056803155210714820169038021142793590952952868705834639432935953982104018533350685342094473085759905384594983507743551557216885267338492144411462370302503096426769906643488826440596007989224921444018644084321216094881989127522252057262770605912448920411334272955155475168364116320554748193169877467090259001221385409819630953387145368389237375000852034617875050733949620307131334471825559340221534557480908528382300839435357028479560752426490758614596699851215911712764478228519325824637883626313400283084592771905156446155493868260751615330450921276549192440278168040076356888265863785415512590306978415930351862672297784026488408207063279939873753064754362379206571324882697049688714240432791623265842627863908911995529675631466353814873561989527318409997086466763339308916938417714497593411160469715197549558064193683381015653392724612279268062539327770533966248798640036237725267840998661182056300953701294764109926593518888349088466286307576803814013308128567750092487468764089015819592409301963700681065875625221267094225697515451014159688230740481043494394770318021156398316504384026026046593294481987132379685819084307600040562255342294637336677333189441038071244716530474566266436288147194312675948394340979272803190468387855643109071477788589726314800216140274595589130016402785814267216961681683056386802208334710392242189196137008823740337115860691744113286211547807777246217414259754247080582650167118617766476051476379308180556049974701625425057180113000011437526167669821916213159293176610285682358601534372324294192238518239756270848530069411246879752242342092110061662294177735239071572140697645189157232317171162031388725935681796422672136819999818296859338011541237067235864729898830370379088812589024415021035668352031513557225986872557626082181537886284126500384367987892608659805165949766990634576425380036266274898388442498659396705024626846668580230195477863147278869599004690399674284472865981633835853133394473077836553503509582555069329637866477128574029760433767571383138326640236084145428463490215131089531290564978303225957428894678225206744407524238380595942422083135867098654569345764198371917074869598959587184312875755298600554575034934089126175477173672929266695089284489865357068326366869494117514869521250034568465336608491973381540598552007019494682027284463256645719649823092822084506448178467673576355027770398203360739620202131229569605865782761634984701831556988689920687471401648920896348530398099140776185810950148075696870703069870440173442849684086710439975382956663276372330469017038402571540160305911007630971267860070156980988137112651033570983961007472918663152172545256729562595565056663390886269964660776780816051058966580985728763669837593825273138348251300040567063828021290276888429436329520400314306642498640955632772388724658546076791576824155941931634866808261431760030339327166175939516702474951181289477713302673422958861303805311908306992593453376402836876507402486821015356184133114717618148462564836163214537416662446959131178619391314045563221360582601767736168063623702838388711916382723623050650216853868322318924146960007428337971847999003941438807226551879711531583838109730579991024032235047058526647754465552182525856897994627600554391250419669069855513477741160910735408570394691388189254623834313321296979669075361131932326905278647141386019084247216541949304431924242533047902702589312638283750929375260471675265195521600248750795721085051926165556370249606141823961166487721968358038362554864236821377417033179998915837271397089090135128404272114510984394624616113113707611034281155098249725743851353576201325347660534917498644241779175758582874617188954408496261770776093935721911330205260302076966408278135357743138649963289036483679858845425435420564085209313591215041616047766380217669604460283263356543684736499150964188095658667848882251434934052704400372799077417437890357665900796647610379902785041523581947156874711426678202016017290123719972474165791942023608886473239808813581865529948250591271478910909192638897969842113674264345251451756815363222308967889263905526131335447815493050627370580524644498695257839813864402491371244986087853781082228937964959996232134225249312924937237867770826467348375063382084245580130767460006829602965300770630408665366254671692864915370084812947002477552063631684262795947666154697984271085082369051722508399773508943741711908539807541677374333664983918132811827444827555623898249605507437437039377236174854162175895366215550371578105122280288453555662913977906907668246030239987196590890388961508752723169299946781367980789576818733165718065615150669911360281307612875248155310852940805553118814662542421906778813243460555499179165637705859781839245844841161202814262006193242566965008674004316469356838991402170478025439028532499492468658510988139004014051785971462475749110667623693174395725489210535211237800482883032082480877243225340933097808109873854803954635356528171546345182811249147221468429845174938608835219528121834390761596786762046328550770149623851487003233702096799849221649511639916086106848090468954303993736561173172863104709298812306854619623201860230159802991326947350548552467135339430864299930613273142758994891761794054831140493600298480558894066252617748377299261332125035590307166652965536028240837541283578100808368815922982339252109332102243391397355229946317047950841116869224446625201229912986096874162725763383787340524936062762935222131866612079319914147112686647701782558169128330589574754637571251426425992154993229579540339881721472922004453090453881344182611080373122775748279801068005152946603599671950507284096881420762723126296365947002263356966404821561625054172005137187217625314189731091125681603064853005382759929963809566028717543162937977083484728453844650149130480601796666820483552555633872369715095021135948648336464325585815910525637643084785862938748391896977468333821487848660698011893874867053767224707357341649197944490055002324014548265138004091391532569400962550731646091164012779921276084799596321230387592985821899018808402147675578353676679388220193175303312318633991839625188799202555498001816129514639246380426204755229704670532897150782551432968509023170437792859501654167114922169267497490773744843020094944918197184308669294532215625804447533556372465337046275455825999853970677431658617927277479784486260965766244835040098382082336074645662392944306364109051974959132897890851172764964305483944527989245987157145524080760768474917288810169928689895787880378345094377070999504215964206887096331170407220839281795012357656502591789412495947742450094999319540153763938350027009953575868868260568562674101633069511683355606393790354267090910728873156643278880673200542667334663056360606008880972859164688487858579700838545887020665245909080574023397749745866025781084343570797784642348810323152960322732039039279234605876957766862357494915532240082119916835811009107939929329106294383131550610590644513841427811743431533853273850704075797775030094083045374827557194480225528479035796594480253169086506591104838222151585493685912000514154682712352448824566254768584421601212237381647094281207026172523024370522267525546047192045056065123431803078003797675037497070245934438637140540732023385693789286901373350601308093848146000242605100690834585814990008137995957279172752881962893286916823185845739887752552187775482549236203800361135844857052480931504726224000216486793220131504221380259256954687968756560360754090885239411484457886967446737396571350501446627629744226874658380793777540868949195004687173835974176642145076747055321697697675909038121183287063376468185677273424517446894291405651592477307877447119919769868782124126752587037962249267756307249414497280694582738316582358749487639595168467460447084714610345554587196426713998641989286086748987441564508166837047742205511216608060259207161060071844613978486668721402220728540160892832682919567803478709883737315904818775952371762904934363315008109284127397232069839587187775360421757730189201067276558295905126288921490739191109527281895952619031187013677068040838603267335292883968731777294643394848247805970256264148929186272545189954551513111148888111256133809745290971211366408985793666200604627177252475824764902133091028397764957454405915821059485473695089849353148042898434655882099023631637387795138035983199720988387360265156812439816460245457033068890425481944750018516601387691171629700094585354778610806240543286282826693343990398605392343857954500044209010807504237589366663173545887665960891322504285866240829793915008556940846670945486565998069920096203419542211795520876191583046884124699181974116101493393156596541175708971231195035222346910814741467951056747544410249865974479390387764062759837906092442774900611227186879610301929574487395703084894181801166837369782665455009937419458858431483286098292240314398861576409437770437159917589873340118505136811550572253474067798649239916838700022790629894407072592744476536181980056101409656949345354060159478755171935126845818565322810173324700771045193985188183335857203695277591740150655317529498092528148985473028651010097621068460569066994566856193764028766009741114313966234737297748739833367362620776798176656147133825304769234331957308252342410787692874014480663417428877313780290417857009596962857934828193849933673418879999423981345453532219593610328400296758675845068087346384453396782380150012786881276696988580204008496761352003231542785039832725451093567986866106734142036491599883692975396258468681735764084303080566293663330958577974011359200878819376578348540719860701981368295470910767418006783593543554352393396087983622888110798028828201919638242059115083420789853949280439186340868036633426115421730232115264830751367306069846940353089756190344210010682302640615791667528543828630850642767850775705191872493137319147468440466829669674652656096468994605790690969174678776264867663497630405230671908757180826016462423992455712774152507521776479703353561107459508593221338879865727221408356587425840356936343639111333931578774432036794640190278971740739036002813521068410209294675481393543530752319546593387822141159523098792022749711389842960857952592889574851498248854543088861082118884539068825085487234635470271720046295389272666084168523400992331978373562073222905487027391329355621071482525666919506952068391537943117873560742798684409092121882174653251433786481839117606146470592400380953634052205061250276344258315848059710452478249479769957819486055337274959025642826299151417889251259228898201795999393935789117504371631952179999818150198374089317823539907302781547557663862917968188035018591444513205129979415781307640378776672904197776234349829167955197270808489283683703014213083459803229830890104408480664764667836617862495027341089276223026182629628125757631691297291344752564086648899381343392185350199373777195155727613334059861127541537987408158721041500428334358772977905242855781549599867936380923693721815872746027995480741377667195701440371898619529358835965601317038362758216356903829062852911352281629641705762383396072899885379612898446670189665639195091189478060227975159600080918553327269208605852302188555461217257120464500470311831614388873276425467142612644819660254121513582314813456964086559270449150241589167188811946113383566870785644011890077240603353510164199905095309692394223521118140314947104681783806262292503266755243352075731326735352609100945311941560964918964905777585063132730081787450387037646160806207418005598981963158281060745210607719587740069560908276396413636880903044654912219137072722442441965288218978800881778457307272480363661182085365139868190350035871561833680116924675987344316807591230686995385498365462941937222602921149164800306214392170822696310768871728504320887043306275918415816865857678465981474855097830201270534718695362540981498524292521234953179186422156982398186859646202007562039475241891979243797671669830292101023086245130554955999498103011580389492146936593004607235005955459562221153032972643263751904285776852924860103426097676077034074233591758447832886386568489488941383563683777508845564854624858575981310907912889264282289290761049545270321013159386731259815303070236811800424157526293521421666736869904060618062922322847667123586280508466539262547496120779324722372007181261224871789493179793428463984973296167175028143228930652228091708577454009127190117954220994173207767308970212684774704752299317744595301833348464237164126099468442034365752669822801715241479371510322728408371085327670897064336734415726090690158890676653398311381177488595066224832739390118867161186536531969836199282694547347865174844243076279951503737232071338691520515864256050901141695138425838133152374219363873897034911474478933473798624903253658131733041312898158706179767577674765044608289395559296225599776834699282677104872017244334192893449498401335434852456397874904490531321073823545946443267185856727115451186384712494178852121460258024546032496837566437919084621825982482226082891330179334492900875304467019184320383846384695859799898063261061462562775645258003751301567732531395121035528254983137464516071370539421239854758326641257924520610765355588692271607221262359249386799988409143581105652311536062482943978821050847440603935067730986829242685490630874998411464301632331271689013882318311958942620180992896743111635933524710078431459469626807769810955225219578369651688221683416137755645513168510589934248340550511872989208898578243994374153440341795682517238010802398680670636184336089056525524514593028465557336667101334044914451100048849953416629847634086713958512353867299940276160867731221925611622278698421650156667678547420724701742428890009021051003463978665951739321174656736706208126143988774810848031696203227132948390108641224003605736613198685562833364778228616546140869932993186605599824544530707234203803435524842202460095659419755972477812043839699307592517285844104727542134064610687443609627754115611949466959889311411061837160752717949086127582142260882644376640996970007999877796331338402089108496819680101305482296110476217606909969648532180253738247832621016338776845274963419209221912606320298087381401673319129282615971029129233702939186149560343835067100270381205698474292369798483735463201507724226550211358851623813451635676760738995640127653412905085198221745515535445425802338980029246707523781298107578172857157046220581206318551155389327778426102111222120624685294738999393422562576121091820677772481784765321564840032401704509351510523421099501535788463990972459064153958563900646804036078734753924493673915019642107913650632197465874814345128189981585845921501303660675519169081990180155062422831311502042940623069771241813536831529620309413801934534113777123354514412562152968214250625346496938487940936697441046386979239551161996853795304784897792631705096191044181599827221209406922052487464825236814440833946105125335418254942533286154717188884813667355087082973600043204451528993955554080514125691495938604061138192651744931731304841979611134299040626960843801650425210742981659472415216998397861012164039257199330980644773674458019211418058535763742396028741187811136904642149424881574537685554931153463403481213163038318421544811560352863978475442592651980172174364175666876353790312065327987883451359373619545871528687009383516923384281946504640505125210883224792381241505693037197620010250121719826857694562169526588343073607917077790806708012799442790106764382718310859907533784593073596155938714278814044123885462157308158163825605048610302638178683892108365163470480898619188671037606725115812884717725940370318248371911964009500955594143233643305708165480478300195346411553650334508732803332307053674170000574082745037994022450770591876223864624399382433060858388381494266502588855657112449821640917851536842984340786227031767338899658781405219636076836336465928909132874349572415969230466625380348430186557151684950912635739465410008457132414883675810348547523617665590324760295416669362135870858125555027429162278717225911758505563274273338761086439743944200736131172936481441905091343705091028576968597839043341601196943020383267272961236756394711167724622366113518048194230528473317862621446199382832444699239792962225570311604797300705867285135199748758859595082882382664309178675747618320034865226483445086010535008961707919328797340230699784996941640766047597220635927388676771831740824118138864796118341210949654885176241326270674388029741097235884836855328907096058831569665639971079622539616355472526298329358562853059254366298863953387177380618812022497344487786753277329480492563794415448746017779643966524893955169472987592886563803230271975275316827769474374961554550810703259911508830994506561479311901118686012389655816585247865660833829032422266402239752449436448882378539971636883119811609953887446499804645067114320031884085289361814203869620207237778860578259408816332037805029859579372672297888827838216384658960909242444379092033520307556210382435653187892862004335394888433217004275597703983108245729744081090693592771474802616898228107923065384259855631488417041702176069226698685366917960789009870895055613836377217521951098526673728677938512725690574139983848363040269134869116984296195181681510070426769538245894338243611177947041907993869989626828153174340137055753141924928489573624820459897889706189515703278203233494104783698764077223969882825887479198935951937657569073212622513931910625177993253283442372678467305585052730259010203896522591194585925507041960288936762950637282605766061036189512424905892873998192264334754881188454130415488637901148611786500505928538832337239283611529687522497405225231851126284345199043947268482980875648031744967541174213517767502957696046264864961761385121616462007303119219525695648081099941888411687964252345011003857798590175043198044503902809862707303882799329538677656276748447504928803768783898077606407169535440359096579900267056300550866187024700509975476026803724797209106126673582128838081518953222824518831407740452682301904763372846193093868394455978780467396957249430062435288136712231902134439260284986924244569163821413411232956299356365567933124771128476885793371519404390877540456090441730395403523892823102811320299131033582464540638946675372413926018515909035435396532809709638022193406484986929611306467050540026726300949943725312605143025330992237933995239166078373152153214662873171969658024409549487156493372403232288686673944996293706095438992450304012680608571214344621289029571749774290215269300715822291131972242809550184113408229709374214637381267153388029704534076201174893337134066931948123745964524717799321485958761620595190518909418264578393811400222748500590843955599151744771965965553971792288352657011123655479302135766948100553763331782971308538154969093142508324778459837601920131462211831248857327444180890315587693046579286760368458638711675177158831469916980444238577186131476144804985072963105531276671964727577607918055410766445464306357022861507659560515960397945155404094029791320512018169811354169217929871335606630552290009502659341430451921075501929405964385923771807082345087845321575862771417000829977821449463402122137680974979184888768275746826265360968774038264851209772149812144520595357979402644843439917035844646674068395154257191354916470223527627938637628974979898367246088441458353631123978166924629443527788966414100319887863940713599645034837828071814414523907131802299462817155510298449301598470548629501957919993778128637439281505156242496059357293386163195311678241259878146756169812114477191079755581465105100289085274904155195364967059385353548839306911514581444709036108082757231694383473481321679623641243017019898135292663974737289909124327733852089713028651243892506951639700573334106070050919065078147393456834212611075379781453824708484734209884598725042120310821204441764583007065332030994622935714997972447408113817336821747036888887777051234016474295126991899655959422304001651118205779651390599131981379112565227690676098170867946651838593747018707117352779855579227191652840385856193826222169448156151124994387028763480191092636965353651949776318753570939080028821726444756037893461990431942422450190036796092446966789139668262047921703667207846637180235439966750262788817122916578458528329445545076677933274608637996851688173631305431934666495840433924201379350127366019726433564087223414321675992170193732886755972284632357248922115015450611530450809381976669572455679396366098937113671532188579329841456436518474730827639479860766546398397658901101864478505332595862064704772458357693554917147033812623372776246312578475607381863541888556354199551178031794935380419192563031512114530629425782733160606255851924297555881753685078484507306863907886124933230608284287721728931287935040698277511023648339292448835932060770681703031922146871565128218341294722146324972145595191315152149947972370749023146366285581271193834846583867738123965922436370322339817049093473938403678863798391098722038614348413000934290171788822060152340182150537773576532838238039637048940528758224895822003979962684982871416408229502896766551845914731347959292454548199606633181623320982520436697029128381324216500254343502871072390863726811752721837449398167648589325203879496886369469746320281482122743738488856445547660228467578770138941146107585302799361285090416800637685133399387967401827240989530312186057954432249007681782520129590928935145777599459943134119810421139201204235067131875965526050068199313335736592971889101885200599436026092215469483011118468052600580862406294299526606552768371930492165584921799672076772899973072713541387507871734244562441372224595355144284785223908283858273819145937196721568389824593295555981462001276435024841521112001498208452420291358166103693182920819475431961237121144272632508840693386550931009251936226872322180137500714730720291525356638476398833208509547801040139908694867866820996115124625070868349260468009475582297182647785534673816600969954953074408564070814362941580637060701724326513299620662485890316991453133109407433507160016786213385186179910059915719016030492190283377759346845182582927501428927742686181515759660243003718387952175420878442390203824730893688816975051198107081453967457066566860859890199354703963715779861499968143071185667054045364128942244706562761770083405470805195340450287059758567909047891009911329726060395577333080535906495433848892578264715166313830262189480881137158716467980097036163178626287603419946850544242377724681842150136558785982240128680110651156054816260738508637293067683675183655436509274416527107739000205102491392342172407606159109974689638223251872928532841428580553516565515750797339571884069229284590148952660649993338891517250104833215686602464670520859687040631066887441892653979680367401146555958832292654402015700190519667682943961016763601089730034965356055575715187739876466003853561339679359196665044946512425230820033483503294901711320315377496976352803678150292633504628700194660136639728828751149559842877494854678510123541501167801148312014163800942727175366962754269583379578068033663488304413399289997264362558001461232153421065831546009127556392087387248555001344196039057507180742125203342863136038898176619723777411453260725795822150066507166809954226510201687603019026228854505078355695397086096451538319680463889996190101352234524309700137518120628801565593644622385363116622859081661922168351658978261289143330359672508201850248345279442748931913924582393010397388543771777174102904889662565563191494116384375364238345278121658079207101546005705561591015458888503905724080678764077645364641091276539312996560007076532605020683534513209599358409907600212205249319856993169914265589223624894848372558694874331312859322296977514006813654642746967251300305447540069477633776674798230937831299976397840805828369619863387270469257294301102518220015530506842612509043697538711763011165632425535905134362774847262037634938308748532401751318149516175970466198714408920044519046014449688377611952688049354102518432483747042246502302127741731688449555877250776943243615646200690431384967864214021400762226309090961660437478573256113178243046838661083726705391214586356522774105573522397912003111092124583394778528684545996116808726552706975408732834682861654891558756356525891669207064087487526821724131336622509598723142863398688551351504782147292899881582588740585935721006961568891863903917426332623869538413239371253833541072379556506831292993499837913825452129484185200264760525394195676101516678543441990450980942107122667691405816104854707118411257762184924701561059145664590611694942336537503234239656510598640071138576751677816709958596258531723457997993205103547959723146491926718922164711709419877701925904662311960111057205225093505701775399301346566512828906104171901485058864649833647568938677930260561202501147447267780826834417636424159192927977357356358775229885018471308321388589749270191008276703316535254573759177459625485662153790463223638874874558814734647771822320659994220686457711118917145505128310785581313826228501037513137680041241199688670187769022871257972265985100373912947564463249994419570917094602641624032480593164150673812955947516910484156062118281658070862463085948729126244648115227534116049082202883584817679853138709958146575215754433639063928153503567928038655304970165633468813709047260479916194913172005843933299531128822606843249233997516070574920917197879011357982193048634166604925238553468958677606833457348816805682956270577957137590229557204118698930482461430753966915781240675243136805293479223087802659279347155096388713008289583887521409542288095255763229881873647494097432898903711377723880459592583554414867382712642435404175908616633754871976984487728341263931238611861476330677318750687866381165369162285565313115363895587989439620579080504900258780239939385670396437465762994251629129746146521865149593761414570320026482339591980356639087119561734440403198570705513322202431389506623595750305549443831347901322825690044750111878951553381478371864670480023108889373344973714821009193138024970425954654295917779693526616847661974852157108312377004405563610331624352043715383662163607873045363380589477206982952803444655352023997348091632602342408785328610693419452793653194806187036236521922785968212531055159527993832295282969979233980702876381061479192350307887445276356661664561738511728143041333934273850245648003487491013478047373374419833151381183132540450267754088034273685046305537252923206962728840644689691260106159314369361902231476689041120175360637748250527568627891711327925341446796442989836763970826556603050870538653731982577015207149279113794301042179414072529852232331714394663260155325504410191215077436620043901929140391562627896808369165143178570278940449320714213787973638402943041153535254111864347193095786673924015063114394764746169221037257890802079791467213557321327851603166308639818604153495565958954781505460169663308449915940458358756654527382114864859606950446526534175017912410419687993202483683728928166167137039725507785404563529273282549192093491479687297629870967320048829839350008214794645449849858269016335477806751780937293171606890582282061758624633528271626273440850828331258021168434099272974558277015570489801300877832182591234125641624464866559493490866072145022492948823300692491210144336561570996869762579340402762244038928105596054800096998727985596061765033996575984420535934137543789697941392898452070707527146501163408089831363446759606372038217838124439039604605329296179388088383912627972376383953390856376296958826479087336467307143187042372260332794356512394538826490180436706608685008349690398245690533945953219277219388055402079460017120933627919431431402165984876451272438464147261261173974480716326437463752506161375057843570589398553558272127908029481786244905493281721085184580398261522363247773866267479326512133596253042085074315748596778877103620166985236969891634301223407240094707410151690954759266424688271295187837002783030445724521269993364992724246220843458290580115895670207966208561936337987505537233031270956611432725211847990989079069830233887115655285012114078072006225545351643885199858011421231327372923597137517499254024480745757539255327026849169608079902184461579440651316806238265079033537825529792908500882611548672649039617463528110462085449853922692351657389959653087270727564878619137649610775664716931978496157698460756497536415509141953054014564655045451073521609462046007821736015867507514280878209848519862326941026791213292281566325727625374856296347152262566021396717004206569942538654605394816955977843353381964113063039206929589448194663746622702557803333432226112992420060455962826939998199269244287109237345415157222002842389592357950569015339454462914652585700798409672033165637610756783740141656409726288539753697993477711880058252136602464185648150048554096356176140682065650352863067560347225810195065580365426572892794564238467034509247840431322814299459619227849336474751349296605036616193897207443930312244411691890902996817919045301411637336990274135056009166077053398713646978657886614133778893405728770055881421223685043999601560807999077203814701919350184851697415630501345062949812816755158301512881125153938764279858462610037185935846954935727544111404235890158955423625485890213828778248467972168316142952446717156673587496974720801743762050187690069510589223083160726559345584204385870887286087924959955422707160352976048153354595015951654645795365813908540357384732133829737874585691517651983575365300631983590824792733127428666532851592697185804779335148367287661749561980446179134673611890401961069732746938546012624459760385826508526960379509780828238035069528658544245682238840564430214343896878963008261661524273172406993902194286387232513385678222347148585675301141582923905913771639842023153627978406170132680053753999037466113823396927381787434242925223186822147982458024001718966317364050865149756984670537946942291892294684484695500934608939111100818504604809597799345022116897226516835003991591403999857778638459440100281509121458368908003918861264351769742210887590668421616425487348476931286945012626281129793240901914253326058110429930209177613558734941195866478600489545737208965881941855923855821088734892683395938286948085037264410934643198560529301381169689310357681353845472079953955013180510027031512991419186876510704377666763120295554036166025848362708221600531413289711572077969883656956592961835481768900052520670882247484747341146197385511507354135540568914476970677714265676305787565864977557730568045673982598131493328218213107020137998790617184515059110110765511666908095510443134705487591212781779901369956809672629760218220150687615800203867962178607267306602930241838627433132941556056250774040402870536186677375751652871330545187604002349884929963783048542790396685381554601392316817521722619873414045355342535677047406728187056844856925785145964288310429452316187897032876576402536822473594529966162609032542168115272871479952923912702184465935387656940022156038312489839364576350147601595650673000158132762206219434976528395070692910273026546704203860623507514444647508124192215046246452482639631373476078074031353994653870543790553292372589605489890498228803591759831852201964661936193467531969508758543576470607506657335854972782643038360651254304392072621556973895141514120392429290623756604063355154641127560791171868623765009420707239658016121022625993975240024943360189335035929054133833444774492474816036741362598111240635417491584076649020983096958952257364058186881950500838665060725222929006695543450942851168119676854850611066490593038473925463495432556283889433819468725554863150429332760188751487901895436078747737126535609776052435368842104541083422824138012175777269528830651498561943872969311882895208548535012342153498387578971971828126766964685496573088294706157820767249285994244328723041116917062131691950685239644785319135497514445899251118933554381066289503560987195579219420283793236459386492852768610932762684039831962584721057132172631311064171578878597697742924139757865242855449503128790098092048884445109409310487510323935608760802865214330911436489808540830142275845339271505595640990407526658500124409728069742407637290260542817840194454004016389734115024797484252338602304160380562514203999971173762311628403591133155606771080223253533609788352513878570372646711655699287523560285379734762827044307158166204610399548974127878396518630345862037353654268226742828442059296659822841069959791648781218152364740024333327693083873228220070545394024005727738262668531035227619562382452041087822514400789015368292626694125777955144093156582607483188343902188959158060262560372260056197588369282160426911732428376840502029768701920531009218686292756415634384830602775327536072590030650488326620002049166884854885725124183941281200818668028677305949284405980722851875352883365427016064982959931351530820269611882237264398264322633934012286736140149233615970898520168901693445291284873287497211721638960596503598088063057257553214364727468759482214993235384353812672583721904980366030551285554065039356547481140773957494764662447401373632110735195591019230184575860627814204106349897658987549294769837598246728537410151275261190408077067551389799152875608271676290325309655762267974982838067922899673283172310567709657047922264296019106019444898256630209261345036464713777514683560316786437921735280472925969891892975272012783248678175015904676587174716513924860743106248939988046127704494388053200710249073652249692690724502355799921487447131317695460931018798366598073403484316177709268769454786122387032644053466542084865247569606887495284500434857926952632019604994650213923668065280284363481870689955846286897894797898061062103910048397927230179336154271153297884595459772227230818705179633517211365030628366335088839459601560980636535548677023025854068548436860920663559519142582342309005350507632537580595218088414003304814994329182162709603803685045161376498896868068013946347764828814858528257423980699687637332473241158961593871213856185717319456607010383796659606687943136473105874575545957800390947800718515274215246138501862049763969264659887238498154558730985686044948040613893005559829967363968011196739137784334904983894757348186405944563942940619638350182720817333753765700364984122632506664454688107285239907576267450608369671547218812716783445496050453071800639162428262231490393173172202479553881767086252666151809200942244597152922197994075526269155640992152266550155174114470631330886128792158778193438953236332509636884480885410015783027177014751227970424186744474099877709877324320039569006907416632857003494456269438806878343176373632760979732759354052216973914989396409472209318228305155471202597591622409022659887101066662114562034620069244755293214072307124405163740061930248467335782637503415559600682081612027167907504981776228205172106902960720997003628851571336559006763465020397738974944879348671572068750818686780914130403690620871776055413175015062891661995857742794391602990956086867746078317703583833733482172342159618544236814648966795500215086908542335440004139327182387488788000286051418287270338875939640511262306775741258854643213698709907198530655381549781892477862278138660114438672832715799339476701275033005766630405725768708117888528921319167492456243197325626354718072933521234460706032902360281160738663274351521736700302992515766842849521152932017983587876991443094247225087011309788184928739249529173486512776056391126962495538761561012881520951455254559300424333242226957794287947582290045930101531822946021905104007408162632704381255623729538757428219526852336280257414098738934968842539269577290122005993172430975804364052573442103397471566540389625013499602750948975686343082194628547580047139959730897546192668666127228340136119199645370098323358556151448905601212646275631259348357192369743919623034301098804209812376123929183304934084125063296531181947420858561422544239674647181210266030652494770300696326868696205139360329505701451303762515118383421913691133440310498657908254723314088188126061226753363652953773167748607330459184046730796970259711836486491518413574451328905523821103709339465056102873080159290920025050022839369719241099501365556014062046761504586953200362848413585544005854337316967385025434669864510622283908438398514969079407823872782355693412419829791488050536062527586512129184060289470903081523460990220866602955788612425238882248170236900923891124870273994940093691646960906054273210333965325357697544140470370827664390743948558063710947156344080270955704114787828027922492572438891276953825279433136058459525156772284240865198515590575612685965721311696320442760204503857638124087459353001573262552325680056636696285776917168175908786236548922892378557145315120878612891668530186554736551111952701845788524465378246835468130274936848198064854552410802488839186927736945025726891311497624538954550628195184468952726415002606021830242302891936975638138428498955797712009453090755778455607175922988915327362999964087546927882199448408912492452960449504601372689754607060421165640661312734257866457880742559279719032772907273769764308658734616031942981863500892991450108344236311103707938615087915381095707123233984662887146193958939336882100679218916333675159327269414544645502685856238869219679888710657854009370060406317279919633530373159918254795149361136804407062994793133035331493679865037291525905457625033190896202774991579370364342667640070279598765508358534446126918946157036088810617180722670296146751089025043686455569626822272542018587319325446668310474283652908574811732215517207576335758277047875456305865535044017141597336585363310772720499071166645124486222455615231616859930609659799954026477290003053773283932563913442111277780431995122975953132520293457025338208803114233667031503209099688603603906375130559069427613975499592188482038685897054894099301919448566718405702042458552326388388702771073443824117678838891788404858665671262337705218555325134600372883555039769016641550980766672514841611075623232460125791996298234227671510836243658209771143934298156595529573423225625640033195122062500658872699871490400912682996857933609374164285106213914290426038647236472254844586381152380540503004788041716167117911849741794627994801346487010059850046171954377478332888385944064378637351291129081058640317018107486799246444653943690717544432827373993801966394637125434168548139395001114299607727011981063615008582902533469300160787990967879629367842632716834942228177007082114783681024976786472765793420519089716635778082303992037594563510003404547948967918076093577624119587599711274085450387336568239209281741349363870462771698675465611648694795021382904753534320328979137745818015128475572103517720064651293150486033612690929063522958838057599144437327216110957212663627907521005337162884637223474854738341046495276710146374935516366769811282850366523051435768139654667652506155470425335802295570041213108822629009672431588984743163281607646156777687173342660034965641448213316764051489239062089381071553461586632798396072075330653955349375007391935104479751812038580404477906262564551281875434841620078996255276182206642228377382936366441721974068814780350851056132660650582084163208293076408303926858242117427433770869110825561872077854380145001239983654603263817831691447848403940772584000147850386574873779146308851810169020040613202712067722074942054208674344775136780192136905318495542609143503282262274474509543187108593971957237580956740409302059261593926542435233813768737347735523157248315048998779002124392547523723616473502907218176173471059219000556776202203824281961728049118695274222786416589745879742273380973471359353315204104366258574275070246781297179085117117081984185101873958637634056674726307893069550765469034662270601066878825960339945463082728769475547779404826345976039816512832699966312624029836326333204443994207080733407327021741071202369364024670721380910688324598172818772039827070623768752525103591772162814384351633274069538660590095714451252983225476143429753937573063927843664792154350385360396351928636461866760526271875849895549433522012659335740060732617161770462033475279143068762932529865696730758898685591199869538181195530021714745739065531765437270582493243585392291282120901168886324881340103312851921843396654953151233662141826851650942702099573605776163236976639264962397043688022491623891765786008821331291584038338255815380915562445854102068401322180969709132227988009289492095326411420023990802766204767135524245270111150023535863992394995960030163004280370681867597284563941142165242477150289235110713357311423838931574484398539806979485460791195158850026234010420278810172326664122858062386463839277085936156178334749680637860099065230378466988904535684774789073549687425354487474741566560318620669814750090654747752299143717277162033642847717289114463794006050010589870084431102988863992148217493045650632415474734010031474465669867870944821924565659579300240471010019126236234227850568278602641005845152260311458455486244278026687429644434243112162724976215367308108410311709924916739946202940492604416218576025027834614199464734410747897953698419439037341416481386247418321266497983809562147648945928542979213987749702037152282476004676921879442428652118631008479636004769954724939808126720687983107574339925384125899592713842582269773394417171329819317674087718938710695995063077894661404557863888631663854122614067991942787742717837539224308553778337352522094570811582047633878389335173234934436331571291369394745783810813231013836087192338560625567472944464802002727467063723862791404228441070430769697478400861848628952748649625707933565389182954995953349972273569604449408266830269448127312778027781091306983392561681648035760385906482313637497992558272707804943266952274086901527542576640516038120995821627282108612636526387925519410801511793657104243682862949881100787897737652214696694548892573436831622571428046800285123489077839371115377953668092417963820677016336650922793201634977244254394206034947762592041233357998543016817667311178372373350946202094105969997999797228829837057103032566366289983148159749550284773353892358458977551479292126007016628283711446985163726919913000035512805507412881338450408571384662960529801327955394652204640083065576044545231272625675251538386002892755457877088558453982137397243811060746816075931131934721090532971996943645619725389905518233030967139050537566899295355432216250423270526274584795259802449576380954966555479316345223674352754642518405619099584449589336679368658327224189655534247228528741402980057192580974076491093397096317626417728035613525917015355888925345922463724085732968272376629563225273346870654186498032542927687178636453480836866513149576298047232915237337987063191527012378629230747727594720688978521328170583935859809598100939736643347293375625058285777437898688222971365801023846218681114839669014884457514103103214065695668142494826109615916581883239178553730231565645182560936381784649820551012470583552757020591892306122967014480893226952504830276952104914472446511017999337661603003758070913622520930756094579950509196797403563834974408121278180449516217179489941442579334735246008875426291780907637592792382236627382926843612847396405035661568173507918605329488481517212109414155747628119204759082289310215496632104153858472011928879719852009978100355547510712580907019265486954821710327391372065088457555695178858101294458569261182368184710236656812166428957103052253046597828879364379774836319064681932290614020219524119828683702691826573277464661433170621203695674013138151360820596142525107443057177288999254298641494289507818649453165847294005719843620549239838613532083903422955661609643442335858022195428588032194312422027036848194647827148585426657489165067642362834843472289052797904131402753320845994751243077157372292742348961165462480337543051507050781994561600923095107738360522610794316466082904007071167981037630096320623471734582992676276331825034883338124478954489086583816925602260468681535076637264617087963602434916036980899972830058372766459442358684978345054433154158977685090031328651626083552653598950552169632031598922374915111788387453118581294429815899228303696914318956641993654877861481059745931374553292819369296305668456297968544647126152080525307805724078098338975598772173267235903075486674402929303097937436719028029618106912289730596910575528955236313783463292840792507985543806448433477910842759441116180539388468030304136745842452751763951644805265501047907306205026137229446959495427488864854560732843369501854232859886891043154780159166169747093084595832864378061341549822120634925589111170658621641874368168883188141021324997399612216527359668641843687034136806046344462617266159839402217399154409587523307777306472833597739680456557238006306225138974302828259522360004578099757111352184687294257248891096389582836476170365799213031871268729898409004320648959038011555275617803210807773574751321658815534876320257993937807946842703156984704414426929456676211117530194476046578683323376619692908079808589480757115036354937776098127523355316222667952363856445263926594053202978649595665468481063938277431477046862430811175424654696538586150260327244951587156422888867369287044575333520547780279331160917277937936067464068883593626874122922212846957701274799320995122275411667755028241709785927252179920222401659327756235512748511794120688663867164064380894546144717648085150053717774771128602687048963112044786094709253404130399111650053153794818590761200665441442698674930082602866649792539308490546731143891482176868955172523638430619096454065397832852506546352134856933448180089373882326953318728556118233930329612164276706282200797814297360613265413498983474040463286823722230375166697622151489064734317329424259399200336576310683539682691402219257270461924898358928506530349221891065919148431938445510031611569103113006833605220931742048319317557694369108347094883965228907192078395681337851688381197684772138420998733355121928022328290363161606538799737648208254749846164298501501033869035915841319880935339008520279745439632943848628210199658189905715022229359794135300728035449442241098260109996852866169646078585187130500540425395457654356547608527257189461041984516531204923620384666598328861164627746283621838352304258718813459897372144832094105028767072845835153201656682105190289402694508519769579116546161523996239709332842536413786339019294038944653610975140100289505767500142945818321022547413470723067393557345480777996072843558560859052720822811924316468875353698367818952368071832920565416406291727887954833739464230262697108962108005561706193155556460387099491807520765119140545680945533818731858947236242943489595212784046988055457514289328472497736814535287621087132449205355588569054002449558804075370443645244357413686312883360897183293770351095028881611512829213663968450712190175405264561751204022490768294785696240102911004613739004241301745489571213659539569238835902249639155263450134779124764782476826343206362858521529847680862474706388156084691149719303122078472369665605686618834390026843451499911229454791897581616328012801001793144025668101214234687091545947029650302075656856023800455068941503067971419939513893944111877782976560377280998035349991392176707285320558314883103351391910994451330988277149933450200063352551451205518806608165678011845801548082868279171628062146594400187712013000634343665935562564666124523723363784770621620235035648301089760930416217550362471778262032924291428290371794029165858271047458175790477822116030975379597063877672350534898094798579582069015630307754077345966997310038811127187556926081976456860015378053265620014114169395271921424483484142548907605033991862364099988875259726988033472507560091205107569246707194772652643169650725562072982761025584179105410503958678911149518955674848224172266440056841365107719378444100937903615913232008686750183793289847507217277302296281027338048174433188135896732841992201234931509378714335361261953997751803019027534997604826932898964619123785903340908111602146906725954384240377162343499326580819907954755471413236166538641164047605503913444124226772707870053718846514590545567399391499564097075024815530954808838483022153523339545785157341995745950665050389202877102195094010953550220511497134242703147942992338000102655834355945293603102623567746563166791914528453280023815456946700187403936753656757585843447971083979317443677587744352035452723430029199749524007522658136654936169083802146592603554074797937118535201998926221030901422898265918995228541840762222800757880382058106760076160660657890279033728126429992079097311803067322269619215275298678998880457667112786900812617654422793821013014053991848144275481392783237538659735350189599791207945021466195264074106986655174560607278876545027400368233386643913888688772284349884314244088381560287749359121040835389017160857484936802646891491263156987841781480356749713569954442017000705094341805786365505252186262802202644382665685794567095946257899152237424620678707102195591876274609910066136973171415723985535764799563359786585611995733522242661007833286950959171257979940425464677504237054269598837850898161187175916537346691076773496300482066892734291090760091823776175357047162061689655615807544295184189880168966925107169398365177378468427451963838357988772724379938552570639000579149869031871802996262317878495487951387147793471823162842905089713168174463288932070866268166742939936701885439969741852286482990331864087221420648217155007484640951537281262946102741993263702782628477612970550606991810485268166910942897777960163298103452514315205112659781911617734209236112804461279139226030908259889217027367124552444758317303276469390986144122878939725227713253860491651481656253308789717474795250140462002205738210192430513695514866115094479152011526741032178812184810967813336892919132099446208352223598083800176794037183269598270636414015057643661686210129466083570703696035022526516660146909106299652210204210569182815808085585685815331190886603627602431089050983878781077153487230496625294814683866949645848646326157249786448777131470675937531303692580145242236866809015021390546261188778849397314759822878962609152843068710334259512569207387271600920982099521804006598871453655770591388679774355680076530846089716088963217810071097444533714888504223200926786329030231060090551256257250165560329397090140549066264232123036672821319230966454115531503515205846660680856569395843071297454573031100702443371672232170484216640578429958208341917140793649011135036567863392262050658991755633591464665774884498366583104637300901951225567898191128471887904664301538473513781724660473687357203046999022353668794535638099990872469171418280848004917008795775104102901106398026343297879274003741852922271212480287254534759667113176447078334407933071069802409625908931668195954707015688810009406798419013039022106889263298167170719202023261459752280570646642989917254064052932571549135968217572741673739075775970830375277251727747774825527417526511565209781418186611058482497954469302630998645499960414681785679619988378325498649106629428343060631064198688604805742489623127232254197355461777603181410818800520124392379599577546892880129963301551678821757790423389923774258533616420444211526005775266029547750352231951761925183238829217079763196191871689330139225883360789189966693674374674733764488154705090895092385263732654845689751699961548623417687206417213928543694076916909975931182777813161533377928827698979300454430476621850517642119600412926040563104716034165366227377192398939259646638627309712625364587810089974826900196710681219898519823353347055736689855971304894214298644123216617237936331322446591970048256831245679565050153276530406516167539201095112458175310853752690633126228420663736729506670674970383329127742061407071052806104810664528209339172685650000428491478308554705059266129299164685465293759274562728905240486920431355497795362881102668727601050416764586167297602136959205001493883869133064232334882038268988669804983226167418899734616904163901785119632047336745858581881205610035594809805662199506409535615536519498457667250294808364342203071968459934514386932524066354552235442741681484324621868128787656383039716355752632001117487974417048568287010491584433639283277267718394582537055705912934128897742542283610908098214601077691565559969861555580958077377036959941638484856431869731455367528057820245137179583627429576790905468453660000956882777390669669244531093854541225275271790751001408132872992341051585982102189311256335063458785127355033629049985605319783893831811267219434817629975149893745656425089727594000538706155646777661988201273247033615337683485384492757551839209929866855052062004216047344965979911153857079119486504889920969986589011371723124271500478159625389906427397676829682132488384120673385304601108911076804952626299073262589580620426936918749502245792360515765526488072381630329397724522732947179178445100783159832779841337790107852345795960847524864992630494632630502240307131701778447300104431762502559382879144836080962705316635589263594796058246373048135541155233238424635971919339852577604707191853441722433691240306539647573197610584368742308138795600563213952353116124337427198968827629516344478781157894493840947041612892336872306269893347860435040838388933340212039591429812810323496930630221445090349392177034796989010771140178904182524017130289607587669664645411694341944091272342988602631711707797285984177475282616534107672873134877718873435580272061787405623315867536655771813566863956863425141212767539201482481731873278433598219115896818868359465355145531831778886868676635975876210515249935116917208949704495506311485683432461410871354729888191847709877768386570354044799670832730238711703880395990966974170971698519840431401998759206126571556896988517835257028675838173323060300781225988035106483882215167544210568771412843852967553882280860789400711044576285370575440996708803230368109671843423218075267634448203901022225211210207908070061627999246395156317403664825951111809103731150088121305561960763031157781555177309064588963830402441339526062170663399936493961496699452404650684960595973778451069149538542976913924294859161641353396949101527085914231496835695784315888332499066345117901478648438472412403807532889464101863952823615599987000331373405543224895963710142958595302658688257075773556913205251830560572250002579251798512708390162677704479728869724904483326232093972101119287635133337093124799787483250436303297910450786966659348770442680400318507489220523481553908680953973634938375016009778673094167792409533375077502507900983737425492222574808845545788450921990699658312954564384304214961864053576638416364036398658430855957572557097922853424109041198667510174281795222548983921847661996734873302379848862763129204540256915255476779840183744853287574138589987204876494625093488468635874429225515121729007202135565780851978219378945176462900974788403633130125067469226702788194309827410370012835924863511950163933877443971963391859251876634790115301791962425552764075682747881459038844850466516218934600439877709464091095525735757877803330063350439428286187118742244466221353212223926406993439592780656889140563193057420701987273700983839802476670054144073805977847377491072671249833425063888920561163744776733734951749170176246050727360615115110598902654969342886800121384721663045744013901738547933544889757215165092096752343276669082169300282499280527530861979395738861880148108203124277087841668395667011871660577076534560493404697869464391788640417322998113669778554939369792885765885316065270750112849199799863857638234041995345553940320043698503499098538158416789020492494442781987506315319283873750757251420904113335467002435702641907219446053035980360922880801629354590104854392471490568660427571226469382410841148833349372915726969068744534281201935395019379870907775110606046464660590976199801773293834505540159501611121271286227607302013047254260169729669040225235475530558275824734582577982548274445333987829997652087683205539218631471076669326700026733153340897426526825923929371633195382561441586319246762215697241672684180298262253761758052481728324226899917637480316635500453574220867311272984675215456664156012542934990767785677148383289469844239079667351299892949203259563915848664215409656576075017636428313786186555650977944436897648085003740279853795111664670735084317964055146087996832200361856630846843368308662589942027499438313117254793870473984866591610070182243805753223100186404971617711869455169272226423992991356758156317743580933984163280685409838532274744454927338189294767957550756192976791391437771660067714268355497441186079802509298327985242731065835226423739958705329061348445019722279032241885787316571158887236495285638679612272584668759749625659827987822992759194510918888886000030510468744161254127180932971044803721001121125507679160926120602109539812890085091814742848225894625788085258396068342414285072475748672947464074851580400153497959954600167025143443267227775822020600211727765010341572047822262006647870582868153835240721815278945345264967927135386940729064757245254971568143079398423485693381786218866137772927720311366711671479958743327890713466030200557299946681945325972322198643222859345728782514652264673141646153559559689765835565615028950678783496134544531769744039583927517230720812996457457010534154357901674624207102159992240748437060488022345849788013322215253086888650356159747840866868404512321921610584501487994190404000385087294284689762375366274437091607025244440013109166199561871970637565285487668178466060635776487086318451946755414657919330041100279841477712430509882326592612131758569267308127217201930442063301699173000313238643759403620218593564291983135826254751217761193446777714334693233960114489475149619914572751682019493063962656696937427388436278804707755845835715976056005486131969095994622516088490720398090626179655921560037802730631308769614816826917912658867560919681095155157622686429789867369749610207266426711648899991872413155528446684725429670131441933769735633421417532923592761213917835943849835902366669514527341287426797230561269541895176379101617874514304640400795406642783046056364848014679866318422595845036138825142312740777822905079479330860625368254749123354993134397643580589024572895539944026308788722748474907436794388125625816483019104519326579349194482118141938783492132984086740707969491454232017512216073055116565038135978589878970007419380937775539772966126152251006253832441617978239726520877837393215628488836809777062060685011060884687145436944300994951178515994917342380810077048027292497906413192602289228480235994105855505537353317529498676039217136733880001545374778048662568398156607321880431992797546498842861393311407539875297788564951168738100278429034206222336113811954069339358875302258749023341120406665894424051901013357046791245189787119022545727172389117143062143742841985183979795019440982563349506709743017220475071461720308342531190840176472993624402804516596966193198685406169673691095952954256464969014791541143147568335784676610113196250129913960157605172429688862206309919901747817265996653978258788684774221999753522843420450827063907851458031041804755028104101843003123771574672906592886938593501194700185432584822422078805410877402213646363744993438237372200099798906286701367793590621395260669530844228068811504886214470093044789973323372055427177584131605645148183102481781573629233559817216564463099664755162168816195984162208108096733742649740685857634133832370996855246516779398168658204807206950299520882131061811863931905750102120933566348121939294177022997528636551721255226324944332471267769976031315040021989995207872189128862829110391681726111725991927084912574667677700379894103644736932115946745752304341865967964839055869309675981625733462464687520174588500353233958893245896561704388316890799708309486055837067167734653978971999422127993621594916242349863060816922600316968508347896329730903786856361065138534919558018755218913520645462104902005394331794210241298118237016741607493312985286278086110934995303912782708050702442936639502956137006881148915067364026634781310026898341286041516720941827513974535618974520349668945154164006917502631685889073137313533242606123770404881372060861805447112075454044001081579264686018396495188330063590442539333365723216789071434197135850629557561308462230931076333790346159960055128493358583818979267631669080241678481552247977419165096656557532549390231514727410658109886011799128928749690910523704400424930968137897795415685649620802982612339293002528983844164770471796089838497790790359734253953826659130791820172098681927955231854647730990219409438303059008363120762119870389495192723998009457526398039003309356672113523355424063296622727228413740773988349174758343245681350702569233016790350424618177190360862284898575597515409057970262654111627130302330007572361451915326952072671207146798882583599217860852873704670953307674510859873318847723090613219428724122627040040481597274898391107113403096194222445811211903698513870988986228610391778259202166307807071310084450432187026283127043603251585848992425513981190889784185703525806113724963220382948766593997782106395924667911974365747572931683599538261761462423606342073408181086208268343743847343437038311238819781358063651580803241486340693481695712983675883847991287135617212002339676154775693593092646208835967665013118388366917050508876515614846451813050608617885745105855296751645894544355233500533936206607650443296660431345496295967236008631591749982435090008893063655051545469942017771030679299047154806472062388488967289690195622302556248770419915637726725246345210669708613814862134572389284376857294407378026811916330173502137329872241946647037915122827002835750004260122051819403113397608612795736549991425869005574938102130135033100843745808089255518299725829820311514687314251929496725611452840265226908792037906834195817724365646989476845058996747411975123822098297885890957888465088110452259982013956716248191931638554691006583232561087562994010338532600627783376535754318365202312601314272129903065135312193270377654323724833876304374147036076888702508654472410749501430841337131694657550623465432803336923735047829703469407089607597409721116689935158322370672036116835502542683146775012978259331590043806778992375789936831311001032582272089220059141217150209265613999800031690607252100752860891400786987866836590455748498546097779327044354009195072568138550862335279570159336544653092952078726414896589009842672386781625660884284521640208772879970878791852813100537769928820135355398891541020960271247355670165772559461511843629810457416801443381623668387912302490477674305240993189594387759128135951084236256509496825372672803755600841151468292478874883759139619143582963495470948717005320360735894520110952419317347653595932314738560443627118614575378371687435997066570902533500907944229027183358249863359755228673949440400985157462531354254931463040789009760755564707768200664254583106396777502173977011779761162591695661667757085515767174121956032644041873211303064639936383485397642602886039465855993455724438304527643098415165369638534117780661471472117442418644406789292057217464628911175320932679743930157389870638919223817744307542802337175214780330645013770415853829362519796296186710830051272124899252449138761094661570532082786671056698702515564859971963415437761836102123792297565024987541771207493046268116683668582928883687346982654728385679818360416502096954825087215040185134493564337322614678076574953813394151688292522405998988158522790242901479999959390330184889745115181289611718053753149362985376843211348848862752975366660486048775903760796760315879801338092613264056569609853879899810450173688274235747692258319483747090648978701128590512497701684419453560691949406194888996342017923537521071263240607954819336849024367788387893521537655710008990958531654754847466247548895280235122423179791458126901570952500825990394959375732918883868676605691663329186402414282003190491821092525544337283263199314605065091412621022815399406784861479530409589444994436546544281880348215293745363020153803928117925540736367742338070170204037216457462050483926222053392916411786513916392275044691110444183770852389518481645572579357971285445930944215777691845714774650755800896761243626743075743544451219681603251134602145148114472385794838103416638605364011405323466988219722652269462589364655930993041484342129511659728596929435010815685171724801484282461602480587695851661475891797068477649087384583290404783072438400915359900626683447784129304277774241170260993328187036608996464392077514334695627019282174421728534682580782232817334753434161212876372560307876809289369575896584726906987610006805807573221747516133555558610545606839701132533473603990010024704119503243653068486814538876463533276409048407026960782072363228356183074210578567605203953556568759744968232961549035928197380640805607461014792228935969638656764258804151342942002831956689035137891503736870675762591885461187849353785479710071938505396257809509324691016255280022878892111668322563640643718892790385796040860146947017290655657931032576635560098375624076125229505642009045301096688274097534026195692023333675420617590675145094678944648783998313365708101475587379733907060839504025964024588392079521898860625982310227454171621894706673632648260285727293421682553214393567970630049863495491728666685156716758612554638548309651087583025416294489197375985069844778665026837076697133845665957667501625813220080003166373613929473039050604951231461973066826462558971453886183468125868519657324263183810996748839161649630490656222043470021710177211106171577348258635757286547812839968230205046830642833160738155742995704438431950756077633469649727547098778310871533262285909704590780822044957575261974208629173676181456833105906148851033898356397504549524614314000708878726193264746497910499809584093509142797665825262489489348091581440248883157939628415846087124409014050620155994503909206528278092350634458768589299549798913682126102705210253879578754033093564257222498690739856353300639314451247617667688725335041013422321395258627635818118393569342317766602677135897377303340044324482461003236215888132881957347077369442587008314073612158409318414151572458568642216058636527016151490345211139619440331714419381071049570519306940979660663621165670626535614179720407190529333431226261914724319981270230086997565405618932233824839320418230087325969359673001374202860485864527785900446470674564945448940353008840641741524062039224740230906605000684811755872659779861763167760483026362464112214696967915474333334471347691612350965442195845618315046016080730029358120432170366644005410953673238098997516534184058152927679022005180147397714118677992411845426984040745716363501556393586395370549815997604925068279233709219319047357066908762431319519889690121323630030063635928027800041020761202684462998920419424394982126371139350945896208534532717842134502108193609149770739704020223994465919814021060393907621069381155086026246189620557041725146501775923142913954503314016253672350841207014649715008340534013998633703222706300802096114788935890146618038040966748413427587429382275108301219755291704297097482277220135174735556335784617664702219365478126024489513904224477562290330701241952042317367796039262701091550483016780287073904656060633311043704688061527130691751613599110936242512979775035123907281715958907658201832685895738451310667753579437559156820158028481035499363295213306957539113095328770442019111841500492693694352346142918309506801313265539105612805426637316044598090420547621937601271630153584950554848615479758198930472819683489435980068193865809088764031454124875067234133863374993764474132101458931117260777736275329192260092772351662607234295942308254488546684797170483611544416304109992615608482603064518589503850086378576174065803524711048930788376951379451002486760092349243221240682790665015581259341916014759220417133419497099864432816269064279563940167174212747250021759823659907764468719233028301580229344634744620136975971059304578596711494114679536564120836895291511379409958039644350896564530448153530048530826966690834221275057466311356960696843480217433981265766401410514676218180512523775195003593195505497543630596524997308642440820131206482246229274198361623324084394700717841373016413320093154898740873446767772747317156909096290779173400394126060594780779983626123999646212076443305820987907877175798270799749067840772406630384621829302863806914513307912871706867700126258342803381290027344164768856943101526349645289866867938571326586278096690462954948467694620809451421749974943115342403577868485750943622511225205480572268723955350749190873367776546925041740741879736633098488854566968109046313385441783085926406331036059330400293323264110494666631686478353045094782322949773054143573910078622342890872417200490389726568989790277740080733022914232994172327861327695678088180017751924942247566663140679452761384830492069555817104113808325707514077556339405069586236820637741920753040581089815479204913060664958944891559573061695238118300544939348047388732283063631773843827127539765729777680401672302345770374407138896227910626302956469993444680533012026656774855155859272851229520618621608391819562888693820640926740948200680735053479522388536521241442577035758672433185784186982529905837932338916462823651433988377610186165841204661669967705765106604069112458527564449702314289898931551855459733129721919642605114310861601181687916513001309022939858473328817063689700362080047810489342079708518448452548005500022987711598665134532181087111268934534328318343922367587711749930087702785684699339418393370604462962973101815277607806593521191738192595682142088821558846690305898400364697821174567946489155506258598146677290190988236884961963503487021558216330509355872238475870447211765987018257287111092085084526892358869220296798652406610861809637142425703343764780725219807966812197357581697755003289164623903671855957217943897326177582533159546085992422700804750555650481269411331839477081104272658040186095976794783562131510514174955833480802071002073953525033894598614630242151096413505673572071047918063780160761056159860350816390619739127809343640657945398363307767180710610411079651875456300380597813731971733306172286044504371221713537350426164228190997256097909572696378407232409895470471137897171167645389360884158086541951799291524470664487400478052358617991922451848228297171185607300191388593880007752803667818505448076341553103476347831844841095709008189809728882003647015626613964263129739087351666144166652466597614139702266452308813523988239472041388319735180173563373191871900451188530112833071139081720770782850749959674587150497464699028139412625174685488294217200765072762910728838961606345266933357843439897697897516281448311262784978916958571569435182920113477646495765239390794495570417824140984042645480068169946581469030878698475994287722422652326027185980617937712969289667249718771382625920361513327384904850501000998114089845667842687313046000362429137588911734991507042105330366666525909458387002080823608749269644645603298851637345058464189453619386008363861556688731709640380064217441887087300240961290226922951280552295972993156644055708627170568595216244209247298013993083937545509590388210741990123909047638912265058830469593502690386217416464046586287610748184898877308046146569820539935794191001052619006421038585371787244449297079883169878136694267058007948509349663794927965936014428524082687675358328778787443843209129186593552537349072712424871770241608700065031187568114047374056396776077398686516437954653219994711702876143815392217670242555989832668433971728350890024621929662187864485637923208836572560996480100048268769037913513325427259524289491827057596423727353355074457318752452965843906397559636353291317227242090174447606525047223570781208336682924833841266180997358402857703794175368523621067140424753853681336922041647512344409512819583934026023715583705051176723586207027425187536314918900539563671963828817286082317031810285565088526564200469948617678242750191245973897111956975193098743334820706757913410474801721613899982573920547889757636543006797075019748956532317168195745183855191205111536214463118853616381498289194801094004752400656501535545690632527408716534941702919366215228046480193635281531202901403419442900476763526076958472920930315696804048653170068629259113933944394327495863177943197214083573798487811334751393239782934258024556703846732554757887772274684611547959293813257945749460396095564598459424934878714841485781074470614682606617863761896397583783489426987224578395132674847670946663806085799620189886861723864951945479477855750328400124821439104178039160444328240045010460811270076257239846715203304279444577717055550218332545814509772405325338964375161974109592451945298184372815838396030313270388636987222222783514038989288773494303709942498713312418373172816311329454494651335027735403283761150155005333800786592261823559311352361761746579557180701142581824289759142758210250775415898448847321535285869674863347416883088633624710758720898150259927805107809888378487838551868120588043062895780700565074404597097441951723351327721085513002289474906404788546864615208442314331304247490910441621235795982761987971166022603129540551037814024483199045375328087432157331474024882108318787432546976781544369200289610955401528436764120696021561233074471042275657664993278864375063459711215158881708087201413244835076078973637302361320618035931585909523828754587007759715345223789188763416656270390942193255315607857626877071995250688369733952321735509966323727040281277320012110453534977612425203975882260078402987008611252029540822880854215838192597872225077679405335241793033061327947601400167511911455701107672291287256525447817655646791802004636247659743476853137136862210471640911894672472505519290031418014202268753185787983736791358793452125256404684830813020754505899937623689844643257960742795267076823147334695985292113788273994142265982879081020644143010506378331768597485046643557169134580405640327310066132924306142950801060449667479592111034047892125204504906360685556438480343255321497402247089601597693504029929929857459809375735507057700636462751639413940438091331650256616343752637773449919118869188353291026795503605285371217648984880379189363024724519012046587239591247738829871523598520768592444979511202805303768417725961659982072208392816586006961304228184429244611716972075134652235291146573015465421510799610551626221891210793113450171933621489523605124452992178576251959274225436657206852690381299659298902140916891729571529783399992903312332588375853645116530830121720118096443749950833667518946162297993226564496854379588376768733539243346196393019084495508585662000336264613363460430740736221708495051921354948641139184427387774857319124901636703784937856639574319645386152965391940617170866665480027355212103991173479177917822818972083587131041139093058813720517023388067709019322830134516629773745953888296837315222851238270326733028573894847739710886047171620377402100186050080717152805901833248441978713993418471288336806899191322827921800206725539346860036816419231833368528526016964924909058826500441037658405474585577418025768699289796687394465025967385523013065634352429984103575744216015001434333604992718841593369800484288140484154042385886123178858994054587981170260521464386561505684601536474066608847302898590862969861302051642646942808393491555698002068161778054412558586627569291285417534290563367591213528089102479441080181384283071543508024258233827052798501088374846022990451470038144558313572315544105939455675757241238046473252917674441145396917258849969795149321892375732902858818013916725634381263589489511651320033334469444136564780053430656547896719608063922033607970040766079192180255472280081590720381394855172314511766190717139712075039713922427302495673601667969113897831761087332958016942216088430393868121976923691193744302086406139187910826186285950038039453360652046079926344933379591628131054039811998239768492550664138963721581790461233434161262113706509582340578672124780586465648360613420057891921358563096588433173716951026574062111221867304381037222899916618776262947854619435041122395609364134907038766297949635555677782448653804710319449010789415992372593172055680388272833558165486384188998039152783077020553309419766113912098908518272201292003763237649230480291707532847638841051238151633878861155323013518366119270979237192810117154023646314360130307523603701013511938587075466321083499368517351043926778711122861041641548898294035965417928433190042328067413456813950324990613033216416126757313879736020042370155853193496597099959295979189151306510235201908573852455443107023493716411646073099004568723735578176120436027258938969618928129195837802586120535221027660915740183652245561797138004043915253121400388044314424900890661504493162702149254632710591523448883697280365931032218064123774117298511869483575537191540813017232730418442604459792414503647987833386002724559830727811816465347286244726162558329583601291342894683320113907250028320100212944036542997886133295951111018380176831528878196714743468999262281106906166810908248865395799145985580901748875809819972467335748340414080661499083863481957922005096778108715105476045036324033736563042968929816836080973378917685454632625632925702661440472477014086668992701814807045756042239789029993522146356026350047574884267167986856815941665253608351766139609183551127616398741265445837808528247851850342665485261629412261454782035776040122396648929144831171591090932758091972212798275585228352277479750123428060691914012965412315217363404990192501447726435463634127998211423395332595364550087248742456086318631438640965482422228977975666568684836426026602534083315125931656853940937036012730407569151182792367028371113774494680556634360665642600791476069443190626698039384450269456182015333301279674131708126383275910554446981254524126019431247447369689472338349328070464616405788618742796267534056757412635367992157990722568295926798682748677171386737944665155343510067542261796726527453615735685800717474975122055303292934567935196522725512234224258371124552013433211228040931164744167953573523933122456840310889229762320562957860335036982774916557335311062169569537018865342522260801047007039186162044892571911193421285999818975829542245251558116748746806620769613137333290098252553289257744586033783418873752540495081083993681356101348770342575968188827920560484672554478808327250297755577438409018004447311017544161496644058157011506723024818373577257599564524029630799076199235302908603921206463468507330339301678674610381102105610840337056334894459833107826199914048803426215394842954702355892680134565655916974794212330014961038477527101012696037913745512806743594849917795184124474070013023687831110351164977766205669924662445946116823339256694322895388618903862051765937703493259462419357510354892465528346689262150128804947583324664859107593861243561584537841455856466616605097963140702742878315522970422704580440855560606140579826376960730409782512828976983228766525869324131944438033734382205523723484270310139206612078031433126169020059900319519507016408012183303925286350931588211403800722447268282528180945541429453017542301664825698116971227267442130373167577631119327115247461035804003495377430476656104907673173980375913866969279795740469475814850892733867781805751174587535845355649095082393218420433444688670851357625152842772302505948929984451506046722497359651537018164884977135172671817195891844339847597012755878453524686988430962962989876928423741576082946205514406331649593657913220449691551734663675013366865967817544716040973024852831980251144970878848061637863073372415328387470901358421506292734570489282578334119482188113270880128564073852225239322966761221184166120166922015727516400332071770815544292951227117179304933319953850663588153864936297862472901770317510892979321197371014103371791462854147818405287258270599256950974953086305832469722403947642185246713083356183340926492568200046941872888773892023381847212679881756237511285516653179290896028446825384913406757781422320238346499315171597778612719618314160338921753000070368535535176074137583616642562295471494880806324967184383594255816980186139797057266055920349807166324781526611771775713292567346600650687530104417523758250882216749609227672552945798623710096928739710800947222828358271059736421514559865636984402483588143574056644518711446781494816868724526873159698810556398545749045577462648142147613200061068234014560007123731938381389781345746569700042489453701169312772975016379926667188914455961520773730746170712009750662702935456133718575588419191651034135025610677707236317895738409979681958559770669730663108005661717854728254993056370023728693334228604563997069502405847670478474920061472251938271334970229636519106661611683604345425789987124610512997634642671216575887226958749286757272227578542518286167660061236006132478843249263678399861085766223787951174172072127810775570679108956720696283094828242078471157931951328637992609783371398782057567448207339610772172938210185207570684084275230185679356873589212569968351321970940014150809611252848845119930011857346239329085849131747414101825307848659850863821307146513751010561002220431525319245288361565291197758131267732161229953052118734947684734881872207098573294217620142169023237211189240744286690998484297564693120171080989570928275868168983671504149706065121840647743633025733297747653886199755591190573993565313138768067186528805222445003597395915774734018067003843135503957043887458131197504430208053196216918906155064134519836106141731823773717630435369186534558199162686330740842947624490475756102896451300564087007078552011119264072429563111598441869288731459529904109880084187765587038890566071620874563406565211890282942059390956244017520681204366628309538443228204742009640523267150849111149477416084801395556714041203838464496607276787341383602716893134863224716639175805544667138330296554786054134041784774395273121347913583439652770248898231791801058627401333426727456016680640071401232782431251342610758309442566492995491553348084239167427935724666810899168548977277199192258398409451579252156074583657333357239345853015404401670658847195425270577813530330089119531194729164356221669853446966570380728856636608493717117658702905346412204888767269917714238663107738640965960875937756724478792074264731766072994755806975747626303442501876098410800544303987946073691450962728681732808689629982068186204264458405458657639691476072444604191995958731880553484639489604897496740307850161934551786111154196150402204161552630538156209299442198722424419616515667566136059925007433114991426781299002588154143890879005071923933905078682288704173421516220705674210968289039102514530493434127406550653149017537332467766409460478586910580156521859088907129027751430087522289376530196846326560815225825324265656416960164864973035948872694702131397786935757585737220406773900190670319814549579496979873765352680019045507638534117850061385580960011617896465252007077773434235802713138531321271095456315666150386300708036989303072192064113447001014570296088804541394998525807463149405069424624713180533065078440160533370902846651378897292919402614492958029531303124764636945198816386602837379681002477306838710615558906971866848887628265797616870959099166397856572275764303951575316370684671313104509199488993500785844498667048857895915895273328996273954254845665235802133169706877733647671907926805032821055799253350292846809375408683552484526611481287502977312055167775188933265105208325450920832074413674723743406257975080185746818495640278115291865089535172476101507164405204252498527115829763397921990785979696885804741800220608340496549460572714414966913254345279230932537782405446479108591715639341508319199384042646414902827507894532070743009558247568894816901892223842722233443521511046605739428738329563572626946265822880582196684870243494135169324927458259055940266849559471411872566787116697439426128019155137035761789948669860955317335376764494957391545774232918383000470259006165652695636509926450079013968520500841850830545006288422257076814754409978033132636377729314589244717494989926736657828831965104259106143376637749009231032939654810141484948154681516738248253429290939940696794169448447233742693856992038250550140050803427673447803742848950579415433024716000126464830973040895476281188361580746619805460009879357239876473651314822229030542463644829966722944868350643265124824926327773313064932219253407834517831452885723255931365779706920532205182124653574607465598058240273892097407736775533997722770232173496170009312740755620450712302337646981692273179914345405548882894218615150654773967889060040122478591015164347467431198015792042167807412580298126538254203892467692308241215902271165371086829833437814111191171791489827965983631150881446390817369735142890610911673073211524748480541471181771815508633339478270661213819371017453260565192900951467192242268054218632238074565409944819501818701560763483806141755825301633914709160791212717126529989627321662748400200166036579115327360945574489525082665285750145962744997830094563980157452112658488922219223304812005514140629654735181713416881223199085269921366617507809532018780198548113422009424979627945198293996720404224816304191870622300404053768250232123525414857381873373706106106928309257647359295832362294687517843999224870318016616684209307623660867793370107497221565609676915381463332590776186637627657835167048298022383779474815802414636975292274614585736310774399470597577645809949416160183954638809723205265789913479909998524678469609128328762457589809672861835190193594734809046365883848982417882649251374502402653836140456172296350701034577765921911410523270149610027409980677340406793398699086907586834923236814959757163758883930022929783534545515160744172263556442655506384339445295295560385703415434740507751047945636418261549601881291874767212916566915194265584635185914079600174600722635051462664448492488113505647473210491723822288254410094541450126235293391141581578135884619918359316320548891237697803806729900193558121271115753322638252577747594635128128128915595214060659403595102360368989201470192099908499901324227462208830467562141411862570058396283068716044999897753751294527052974728578730832461677297186496245221529988967941022310405727259667672011848665097491810024547238233416007730850901476415786152805367340848343041321082257192963869980373082986464700819143575295556621159331047588787175688058926647331852461831312381816595455907917266575954063237654220451083086826338055142233771571282545353638497720557962379797855917003637548065343324996848640274452566724728413389955452588763002852560238558663308510344245314442381384708367552302512982234121609523870806057313185609721641064559783252829506413963042784761276091224478391334517238497965684229024564035124432747373236342667424221818717559369131886869129328736931671231720383856181099809736112462488272278448694027429134252038040319229128228623227310164749762385708910650298239109252443933689706630238760806464555645332641940519162022635551263204528915559313995043969696009882230069920389577185647462979446794016984241313600889344006598591418369514159916601176288969471585239909002278019072629954317227727898100684241644450015715958040707953560583448703279582434737255441717580838107660210277057319132077182730408311978705151055059867402525052423679373969934842066861084491586194848002952164978145527709043445548595306041895343346917565869016916486097779077303138148582706640305960855734186979469899557509399984181689358781345438149547942983467280403426424649617299214167486349250994114924723961821541984644628982128550136629263880998435530405687374990787111221819292126627394604679203502580132988688995666616455504716923246546727394267342090737300015424323980305482243813259007143927862075540590193698670973693368235841418656627516750245951408147850078795603523993415708545071724496057850674307307912319500297122712474922590708850708061155772049386488119936534678608079797589408409063773562816482419670380176633590158767790708650745472857316938151541147523473958217875606111314041014663120865891366328010001363717187173471530234517696072741037985922539724751186617550020674383288957772437848507753920660140252594612790556604181799009359579553969559518802208125938197783099432596184386190154145893160159529622953505859900414402365593735941065536893457551056408959494795041553628654163167867713366171624021179477809083050381343808496221711552326379393738488549467772293197987142290679982787378942297972891074616193253107928749013225817858884748606822398498794767473619332660647395809427929260498450786341386460032339090146096436047511618633264750467975905471763003048114120256238750204834466806316555051802953362831825659160845494838454867352598116677773950946754111559083052285277116612851974269749160588701358772164764688275603529459332869134359541600808061712854545595692148607576167025804148184688232553998752677244125933390302114922077485560432064516433208974985164225802565949853515564694336543910368806683232088973765840563691689464650642749489264998190778515460691910620711509733033582117917921037864234202716837363771289803031940255880150024069362564612205918799012717974012592144199546593021958352862985764472448586461730982148434036814569728246828686544441312130653249313358527342204905767975121311193978415667352533223579206079029726425343794753937751550658479166856690184265412191549179186497429865855222761191146544723783321735532095138428005991249227736829326487162801578256920444678417141510293210075248647375972977510264984563368465083133300890491004562877393948196244583898854357157215230405322632052003423033124751475632552741371965435980171958691013553134221869348309663687247249228583625292343916327921045716882822085808920602848900702337371826202510365645600120030794195586416089827966102283429770430389701001902403228213682011927591950833690302887825681428726908093745518738185956596027445713889847775588482060379784506331154187817013402173720623159474997250275157933388910590985328908693811292053516009296293413852644953442962192430493993977898553226715602172283394052616074895526568843082011778629655379350305520103919377460672726351932223652936275807480404825094205014288928344954038769300960495520607483815647467741019556453075110876100414143155052025363871517728997417994750169618609693831001002050519644043760724932132918946868388922149356785416896097838799834219915874077950503812645194048349968406269676213730790183229552944822679488580737130178634489569148521532571318849048321717141000469240203976325529003915748928561914810294529079036034454376928453441347053274800912244626546028249940308652287979974039246328510907964858345409944407813748790094811717326967564614823931914548010383184181945465174985949807669682784010571886979923410585408195796654729040753598632662263524346249190548991568660663800918723007023137390899682242586022692520527576712600620964531665843762529969970349541150081248410286735298246747268015298845279936235238097201017802795064264278038432240972963699786803607829108434633114147608980381079563614206365584469202586825473992675070400189165498930338393911665743045551811061769441248366768156277983671014811263402124166135248534411374212266181136196000195862834354648652748725047693804764087809839238678079201552341809823991297425713035238496142795414781422170748153721994328585050620893702085392001614722777820266950946533053573550971081217539458215349452736653979214346879358866972580553246740050877930230894382656773295351436757793384746257980254627715502820603665111352542618178658642063932105711595763890907636886707152417996073392657697422341904925389373549144407950283133570118955358952366978582996511053116188120508729170181554723016757359359308531416861823782917128467439525300110033888717785471259688834507092637889732512908639652903081408602432991944976817278440171930874423452162798038449139466314639609806267876667053056926081254132294920166345881005444440445762806804723807716057821801679430610237159756900339652484078800808948019219535820486655876171250124756233307000752974023614496828560674582332534821493621686068580091094238970196074732727721607851788391007661982744124046221714675816145467120674722438588248844227332086779357384639525406358646267454482275515165454156172767395682010810889397556247828611590444443972170401188649698099356359968429194261471077299437668685317704412189126758824039051042489364243950401342178858496287752314096691465980274442469927284801494661950549211401207024389670861381372404557770623940037594072491504343549138034845076512907102370451670135432838327093435942295406124155809646148736928174807166159229620662416314777179210623756524539000222325688248963680559554948153130819324982993699067956526299399616108120481337442100480865331762841601559938001954291013910061477231002624549148509187792732673071020561412562413239276121992843090465811653304877290360800461289145415081832682289389150685900907990051099481362386145060414042011349465484367252233470521218534914422209953089058944579725977522823512464356113692473202688869284888468763928136368115158931440324233299465474841087477518609769059905018557977050235239838237927589798738292857307213270285553173880741216941059651113269005203925526886391435520226221435168837025360843331495751608775508092619182982640437372630949271848518157418534208410211205947767048353816786762278090109439713080567858495995275878775074444910838910766575168950699121323218187115604025206250926080932371783676780725382495364979550383403111240336489928561724546994919653581088827311879413254512539226698034939495269082662650545133060979657888686745500054645101559129872940926498734754879172749127169191640362364349646868761773475257192231288646489263344308473979783804528273616387727764676187176347702664976628122074076100090035437008161206296955688867761250675235794777638316506873584279757785185185030461790791196931941727551000507274696845435396697302352100468314788450664707645043978354492604725090850091610552828046384056916309859269194911581739126483898487217416018402754681237905933086509595525004211031225607714992352498810009145287527168334954656202366280358787062702900158186024570876058808909819102675232463998920913730459759087404025419569596830984547015398447157157355307766826944178859780161165798332102371458844652455688767841067941276467534630805020188530663980382520390533082774815782835172830085718769041768754255233094425965859731630400993250058564035662299646667586855250135501827704602601150890289057983098636218008520500666866418730359021907065362856631000072872094846662964088348132237775292006873950764841130602160114144383725250829587575306440652508769464837703073943475678760678478858547339090065580584566479414791817126081070385330402431523378833716971493952034643503746675585600143353599341659244291195240515586107876349015800304576630528087525085457367115501116334859878721753505583712136262971904863029079574921124496536250925445124054004503575816083603726814786734214206438228757171850757540593654195145580046520623627289450218752622067567453328359148616159349223393230317145229089115428461506138817166871295992503648797948070272820295263054201554215981711788049869725551899800419138388842118852352807666158579797888831430562910441072170529209641492352653984446193200459068334945306002829114716013213583477358773868348858671937371894494991807599199427064351426181289976793600100429687549215207639992312903025069051543668851517463354352925302527959916333581334022116202641884660704337887244253676150324418134911065424852822246200308057203399382190063792439178201609315367931143083365408587036746356247853189258512439408732938637594722075910437089462509182943646543812150117103197454105362453430650856395916575307567943012157490023936279145511719931879688739094256524063668303849963045322274810308829891930269100148321495996360581512070356692997485481649212153095569070693308429956710290178842521817377139811730497966988911918846249247695010804241325413272011950906293373528658225638407551964530892469503441193846881923073362543258190928475571515568541462792634843426300365764864467050280513405013715120515198987091661036714646275702138693779429992366421411267514702481697914949301213532608502584684921232056287757947721859021552326919510313355044654094337097112729530568117269450553689736613361153344783206851321076828073696837304541981568341403141030486956673643522917909425082404758088139029138427021207709080193711976994805184880240340359047169353539357778702373299326560222274129944734006526781836455102821276504289373423254006075949708300422777306188693702591000682441009989075904337745890477303502975781135591613908873773377975227037207646950982056229363224609228993570606078247314807456473124111836128160551850412932985083879452305701191413110892337521386821708321103300959807426313353384891526578809588756142827259807257711723072708249928743991651573292956479080718440995752473518595814895847524549810696684925689970592266997205201352050706661746217012200268641438773308025596058169805061093718764091317135974727266423909278199061812814122899798244448719858630471897497206930730500691755870421817150748844625274881109624761874849030033839912459844152477208947767666887833066971421242038628663603512288439539546140783777854424694170532758154551655345180998496623566324088658965206666289582325011315522582307051205446717706123302976287332817032563218617373753757823207570289291660552566375633639561276231811436034797516659339423854317158173177764604230901690119366208397245625567624031909637505550903896816436046793369485133366947151237241509330038982690854265211438727797893621502052526986261413993867894231452794481135635506976920645141482738023351115696037745321423043482906558955254687443356924039145042269966431509804272111778049846007829630366792052123612293522797294393474224962732834692530232591406574283579557200308969354246717130376591182042327679932810123209851507767970913857560095551952242361206662438597200812993993276736842433125518511734096005104772846027566561414246153056203490264878481212414520780316951793116057171456525229722369881735953721466499556098445128455200018581115829300556352617746064629204503226218329074865960088521608756035074770118880673178392831676032923659428331952853311205742687776232582830639289966349740188492571195899425267081910651838146580891318168900324466755730122988566626599128080039940556460526465567168830963617209380306431287861502396165068638619737384453212648686430062803025872032518644001282823034217438816856012975214072795772771807179692221834403023224751857554955055445795913633245035410509643242132024017004577711893064557199138261043921598206387223524074862940029270558475148697370815317511446986474927873505623426624942820806913757056857056799106334007161070451063485139053486569632865781156425722809095109969005353879652056322025385063192178937950182075433545949275706530756213609507112845935780514774514351379898968730020404775660993042542641925575907624326315742324710711456931470577846603601594776237241106096290752841275726461980763831219792185083952737156266789795083668337589984286151298530798321621840308068635480680987086161696345698860959242671285134522520899669443388514642674166051894236335613208511389618405504256099472344962453717827151819039072607663032675468625932995868817998114699394412917284564173279013998197598454725766956989000948994278617219988451262869791172187344286770302974727310925944561385295946982484948594984773007127581810563559749012416606270982717376613563615445931617365626853578784862880928746710243462057994193307661699767832594226165012407406556630084680117723108530883415065234157335521441769026436778440412569663963736211063152944585065751403310964394872125891625126435269787923032312952691342579597525345092536890312420561021695800858583953607787901005447885284905828908805361594397110124943273329843647773734580016474960508749682940766579110512921584568242693812720911323844463291366970542167923118650654006369892051312550591974162685056987506752891853476771041953563019872575573757618490195910701328544829031810600838915308378080978745076270389106165562669300009665954077724987189838734951208961321384367032591756265262590215870795706280333776887104249923322586065182596457459334110296718552364193682666170874372970758963025271200304562880975040261527714645208383557968099463301784562203042238270017680477907385528335786546848194312875537846500166108048567109851898601917947273427205495827841781233586836863938839285557380603219028848113045068765275662038208777520845911592805603326844307189134390602116473005015233280622023188441428977531252414490156886356100008169798448373577515761356084106530495757890446210614781455009409854120917872175865798371563521113866567805812019922515106701363777638525765583406817088236952782482319245045681919817967662537606832402750648746970230112733878823120278246732342051767363058279291433159876663673841118441204666857191169963599533608379249198225862479537251759222172956282512492986445454096307578999907257138850157145879331617299930513618606015942065755841846606331958354102929206950796419158774866101907347300394445369546584667089983097338475505287144283256606415802205891993101729248051933585865738988574652477696269087247429886301135617286504763750010821250499479551088164889574138622501282041183098996973155912670547160804102841892707309572611951224959106492946862897801475964584564290547145318271954988916315104044914938592689552697748568824893221364459625549277162259173266406067865540118567921251233518834153203251901909537913418437241867409392465050594729543748502454775511939732340948201524533470041252959603546784858015253749170775539387464557043515069364606504586608059648013238146056756348014706423796381386617421655180161561723976521258952567177518352170620919622351255102746245070291941287701648426826014156106945705485810521865990099109173000736447850635720609892768138760967793126584457309492270241694061532040865318245106662257424718334215516929685690770840944432406283085552147159860535206113938150398385858990704258318971178099999449989217793442571160056733168360545436714703500056396662815123056347600795029044156755423211039285762426431438372754890998630556736129242902973687343000652298923933763604667913740480028418130271790890986581173758190053165968851559578143730118467145142048003834888688119086915573815428584677026726228164004627386233215902007160355354843371666873792898535974260744866469760004142153316722740231630198969496877129455463579080199812969324535788319576507009498071812734047057983400544023986682503557850479395872582820480285734902883906396228235388187939681220523803448187221231249736542894932418418330418949974392341890152091705872442418226212088492166754078176515918605959486725177363662033266547692848620983841984079882903508136675871094077601561168164909563439060858222248410532232064846050029776886743437443532043824312251492834778782099049945622536451653969608878055325935160820581593746502822078531300423661550033290407044587515682462163911042408851633276735084051888373459040321217596210930603714232942507728420179142798696740339230827089125432259285465072422232266474146055001409844799435780996101585013613888060265572507082593235973838793948375257084116716075241567455994943357707937402299328780451333607988206302122161676127199016812501205249826318116620080373498695392389347306207492421350133758945972022132185756361153615876420191556714981893643334222223792475087322488881575216081600096708013246631520182774340735975865103118395656774450876524961729075817690775585806858665853289920912139413977825931774869853719863933091379390506851958682585623814676476478056357379162460547069852326753522566949447955441699310910093220935620630025877038503581228427038562646489173942371284569125800666397700853189146316709159940749694686832537984092598349495789966630196267195328970285703915938828762823924672514614176592727659955767222921003754150218752569972204076318694530733858007184018579723257254963814259683522115653077874371701812913544722960648958264267106892961846050357185457851538415601521859487410247234125466773893655218878517258456940593838254857445477083550828112981325102356669681563905774039689238957482210977614396040150008236947408067115134193918366460108045794213944225110324512786995373239371192481226978319207591491565887974701130489596183417798643939187722718160879828772028874846614218912770083097494161855784001414255187476059901940926125110809710433366285419440425210091356686086292563522810087373166125971402462993359380826178284001036347651891494124336371124680509961230726006332387869365466938197602890131243337543571614853274778215145111988846694466404763826064417759427701966160842515568071647300960836688003458804577160564424313025385475114938086724981770064567657333580214199038031164656011466980726853991465914262439721201532003861185292716337580872779990126234280142834537221494806629834320884753045884569118870985441812327288254413009559263112357465318667021660417115635922558381925415874997339659657624711891193904316400960460885995252884225509341917276812764110878081420077312335632224246441886995817123966244380816127278985567778536941128018345819631226714213620852072232764372947660796982716190421886754509514661849887466400273619951016964936108294178016660875421506265519710360516224718740740312653057561182646891957100123416849038661439142105457081617108713839373375710916106032118276053458524493666047434926889165146645799266794594316170390129590506447612197968196385172053205742435863009036914739007039482858045048837220745831210886276716216486643889612185540923560858304270896621165317255651620077386632117941616599842411649576452090113838356443456507123681906137117315408767989004056874260921929470068844132133051518862964198523274925473610183293217052998245175228239105960088270413568577333338446949478989525418716987599657579559585871271778658244247322133058546700105255806617023097080004204492202556585545686545183700868301366859244059555895054117347071204506721711468975530543397866087877983825022491110374891954403217900298672753088662081656527327897529864832082388265142299764674853722659407491881953763933236415574525868549302603670964829146597345885356051937671179892519106906508310983975737527629215307289083852045706305827854989044051503767976392002945061143982826154631930645535573755310581822539367204406495757600101265896164430227306499092166661448437455169243822167158998440705062645291146943514848671580067932862555814920094376560792250473991819665700271076608136889180349831198453744664306661766470459326906501664903179659735232356555078269411317325283258811676992362377847602241236905784268463840685834299030132674919145421795425170423291184383375112522353354890213621155857280646592638395533419919939870016358067781026252003839943559289796017466015346247238176774277663194632769729157550492940297077050918810391527099842748305739616834193392938064803366256375569904585928608885209231376584221354972943133645740744560545417715277343235113529318499643923312650521544951510416004923330892312866711483604515250009133984206716050867607309418826670574719728311404004270008911347358181239854610309271874437596561784361647106254742469646179541055392042661670774834795488111918894525466232340821338455455928950807693055426078479766155522231489528222747837583179156407844883749847228138296516358431515963563506451379508636344004947265273912967712172115823380121110415580894174896141712643984349513315564660519502512064180128920406591848841365405814323369790369143614952137806349393990211844710639885233727991022208379319086092596415085231985003909665259702320964045355263625491476803761663771871923097770093276224724296692149648519407421329359617894201732778300682550015760238907758957232513778409158089667778057265062841624298960948562010949213039685119656674390534468825864388484467344374227954639208055107020610318090086869845244385599109297670618730742730261055105728252687736521072734157000021151246388075815717836564547654343345770241081811244897096592456603527592122078579621260393017370054538043610834630952174236747161602760578469152643473791997248452493559713302418483785071765962218381410334515426418196565149274102535513761746033326275222006204374683622570357853258828324876997795652589106054415741431329942881083594927371256534405136089159444245554454165699316170637991543384099484050831983860817837929501493061944408981698179469439685269428647277934669627111735508279356991138527222771789801962809717975743941693603945441786363356683163826106177710916613587613674178419428671576550014962535549963435286429543414955313789911785150305810065866179224791749917667594384120681152950446427291463264419256758457846171924809805200538324093017675557405146271111891911222706490415538277214312543771684165495326315572995644223443122064729558479079317091785540288584983246860400974632234889709625363429874337977921688729258631730415564638619666905330034923700558788993080914879998465951439572065703153599959328937577661410424814185427523167751189584411105162326447683456032387685166982726128953159795782393409054446918984735563604319834420327314631558227044020265205423629317347900551004112800318501003235036325048222361610101549819737663063999729251541689959928601000567836074009736279847322776932819273246400212568903149091164996397119225260586397530858367449403216489986422694938014236679583295299715002134633222124399647203179668606841996240611663649779892842651486420989758726464593481864266748557846418069167897914463726870970841581103828423863028543218997260990845947068926265676393937267577476199703199092553174844904455905452818547171885564275599098249758798927622999683137386444841650920717090229704113115832332502985249374836097908365845280009113757119278967045240336590904353344311835141018380354172348349918047221828460168192564919725720492433535681242512678637393110392743613584569256277021325781583488888628615679603260811686056672083606155835266342829755088111769289831448954700496492396537387400104756264792819983003888431214604670278777801686964405372125803768208238683065790629092275401309927754551721853801945583392138436929126790875865076463901863867556542375177950861791580529330309273746643296110631330157044403258307760455168675414032336028107854632082674165672643707408946801822233242444325453974379512092564984481010647066317526813499431412979391855947670572870846091195472621573964940699045822334016476184508214450260388199042500332572483251424842316554961736733261744683450421654306038021346750223090733541108530596206556179848137772116594338455260458106149360032284309681516480640837061651209915748864586569065200436738450964530118493025688285382079331100515676553103195282505436654179155173206335855441884101397894057463202801260867289365822637978811019677430316322958884938925198455097449506010956780529700026201885603708752838397826086706151983901329810775550622319399052773658171500668287201962882214136055539379704283285437001784972109043563600449620414464030747297162288110304199699808282978470926785790209777367226822131210564567585687511295047404197665604239216113518710629957939256670767818485096416496104954385768324523608203164491319643302341725835634102695885752017213951695559186424175319835162914292486140822929908617649224156438136679866962037080861573660139410264150935162296065791859775568215203251546515351136227133137529762310781627046984392397341643094332351372130866684168808281859075530775374875853993212360096233098173329812178978712475543441774733836465974231945997179911183339365909054308986568381629041392686324411851328119678228098978262719747259994535431066576529239086161836072991406252008447832355975470355819497811536424449803783249020129139594829359529924489590459885963440832393823196365510092678684573059201533514644941423225988171205725132596066729894331423180812826481249805350459172684737973295839869666927160620629221833793949658798378357927144053280432008495854618067675718440153096989038384084609444384487430419667645751448261449996431860118466507670066481390634711461549083160336527325910888585202945712398940616459417198588670577925427952445399717046187045077822171320616306780504880833103319603418608976986609542338882282359870921636457823660365796118975278628058370316076564977300947484583809249842779401245199914840411490075759136884153452088173238363521757117826456874961079878204511167024540659780830507520914081843592628288741212176689678731003774726032238962575942906487959397342746497756886316870601959481314899759544439682296639277897749775756910566830208641406250506335633565486160410184503354080819865787849414946464552100926388270660609025350651631181178392712146006202935377769386993410575177914348209856921174197337390498846348677295654033829113854581014043233513921661184414819667614799786776292991943013912465264098686231612024447287685821571718352027430331132105527472508950652114478769715282184541214499497678228954443307590284336324258183758191230946201789653346650673455029556513650069958380101192805107110609635188369706358807545049238742399821503614291010428104687979590401394848166640094612360813613117549100965508924929543769046563985052591665951161185440442267297736832992010452117118676226598093977855230460743082570563227239057310380630745276536737218593832871697258150632187751953908965410667274638164428995346021592132250592728283444076165995471250689487091992060878476141575227089214315546024460213748683148039965459324528043635236251024241482211584430041325738275982464276719478059720904003530125639896707219170187480084365571360615586449296879957966113347508973616938564979991311453987936606193375123818176526405427816026149370847676578633122257065054425619632890139230620695342647789338234261396867180533177849698474198713827989057210464504260393217558103478358171363330284343014453908489146137052115025011207751331673834101656203123571304915939169946714181361578014406695861641123033500726733604450686583013692984962839906426952902070778461562865167135308316541091027332011384484777785117949816748016423601449341177753632754909150297009751425816904047627956363754025313289099878381203226537979611715591253605254905691429950562663794381939204750051501245855883816201175166423632614492034731696940996659469255582788149009568411766310863478494021130338406468267579468470709782144184976581064936759044674063556492221757405995974958332959463723016330106956034642370119755404374893294025601709862339586857417469904720897559004356829424369129270251721602820523371790796866700245121798121044562324612326260364145266830493752629061010018396719003323924318837485557333960815726023468510379529188549195808164576314976118351038804810364124762748468331841795205157853480979236197503674210098306216955709227039507658549328242271429006288693164026146208018386401998637535210296663045467045304170566606072600777636520480207068441420331142613397203930581094520008454737149174667152846251266054206336865394196970549510428623824738425813103662245394188581444309757188947788723292477708924720210256888822514035918004151248607738413020110672150450618272749794458338561239724842675147907516022959437417664987758663387373272271176661383535565722953945653227599855424786105094769452850804358887287022783549305488890952638818912384764101515793395897314549888582698981495011043119470700483293413779205146243897579952522290587752330900743437011840582788035662289649977195963224337503639685957106717162540982415537260835752030446946960314340541546953049848858772197764921573107918353900490150083151271766037439822168489848736572415712734978509830669713194535297137774900837193147450243955095238421896052886603446085396685184714184236533637722076925519623784233148354014213023421561653413312482330101574114688758374809403948686389642507215406813902442533458325119563821409408297011961786619573298116915991874602550389085570719462836157519394205005758918239447021973897754623615802932271560326716618755331662056816899489535160762746719777979688759155424281772084642351898773346609700200535625199896543819149760395470387137161375570533283268270474949758967572996050162210815806690902753548645344212108934658816053727209817140189716708048613298823158461481064747791469787371022557583101677440584108269702247790394786489154088223895365024883739940621810393649970958627012716871227309915956856049736974286830087569999989881970624551514739184816751061753565634923876396859123705063112345578936538957127407618085991605925998755302386703806126531162212043812914451038267327200626770679144882154552463356981133596824346166802855548056202580562284016709330093559045807705664965691240094371897614237014705456759478116704340824463430197001820736122860451416620554744886084466999194128957928293819508241681864185365149098969649822708995344275901353400840115274169442697549539747075929785041829674590223194751784273813372276327317481703703955461044808916951604026139502493973256507780479524129752087862381833543104092217601491888128943629621098914204408051756164512538002858336590917520736055929895299091259054063532631251060421068619675738515447828840318443118739647662183569752360327267456991065043159085364530815526199025069288055479355745196906479735948019230024576339081311792938499939615999172057649730814795148709353644716947238418018368083062767931895267768998336359244732960802280284574990488103348822654998406338747531675428708021918716868839034190184298331469349528183617719345934187653375377592106772343477346077720165947662518167580871598810868725536701164652826441420072847815855993414331085992462992171893946411849940816165332172462813956175379656679070898719213227292983376515109343022478751650816065801022355785682269371445260735924665327948325996188384014561770267209006453703477858921709626939881732115166903468151831692348444161751190790792486573204402399114195349987123982765072676400718166961889018931426027419837415555857515578765111916791192948960628589054451739535245694821994374694560926429711976813304402805350193134558617385579507452584988228839686145090743448459823346209070421173885519761074387497508706942678585699834344667953381791223269304583085616733052324373537197119321390095829055481860756634944755000825619024836657178369588436507804591622466630643823801824585110093839272064286393241775490573749208073695553485867875083223800600050716393650647440486808285180174077212657551777685922602989871935751643421860014444096589524137646622251410307896599602758955056159333398234573925076742382465544549343006640292050034417117150816965064467263949754757187905349614161416769011078734891392103257890099506914118857417746799396994350480739730441134945869432894635754117048975060532374211340616414200274275473611664725321251264913686980769074567065583674123354731655874625273699162571957178801861272918285118027066166049751374979964957340563200915460889698993967679439660566988775839732875196614156770720915866507155948540627456821077068942654672359672002944762945021219159107313302699402837629418341087161298093012792351713020843337727855811022432482444694573261928154898561399436048781865822484149702177587428233342373945840542719756439458337405296126492575378715059833667741483557306904704413510119266576260145934095457329616025664732980868288170963469967487018128882606141171323207820119734504223841321510946099006783031083050211855996882675078599345671597429161270019514691192303984949470605955662139320784575348722077510107921944306033192191787080384184602771610363278475932315025954932021190705373094475178331258550923067007529344299806247580819143676775432434186867379571394945434604917242746662549587406045394966166612787893458539269862093307213141216140317941676051291911944222376115940412480701073749200509502466430947673301021031915956038197156178093148154399761327880437673569303828878116834878996070622222584268792433046893337067874755831638497153650693717104046376155397424735232384554618024047925935741212528318918524997971816050187367808774536326632422673392604736150090534642536543332432217418254127023620293898594590765344560482602662481899453839257546735096503322439997830188997888327832324721805334362135927890907618412072599336195914631483955955555300625035785522015462065716060205459402497029102768683816341161082706617913337945473597494258730712658846714066879188512165287286823727925408834519711987177681002191670590434961676828762140842806176817790357444205728230652653871713929968851791661458832359562713728867689100897383533692288786048679160059022997466103021097050097366811744505743385065789716166581536561264615385415176947316843155623704711456051713270994398693524872770785946241843595233773599669369494919998340239509024873838165822800284649125146355161078670698102108007724634985139655859734449901577361139641852492512495705592917748185723360440725471556760970128546800660347322501325099438774283220385428056724793027923978788756358894225952284131597236339092714340836500748903896187837796725496633086659389885001243669645436262887529300047786137957726670578065003401745413852526658424378228266427100870221672830695574956634084139083321403186475315155746356953435049663497275537385964870491131942498540070809338374339344952126258881601926854517099086381245890845479104059226978355000390079631834930719724577642943512919744872829104157766874272513042901488680260909679657321012240290951321204509588159713174679379664270632911971731795606103520085163653379233898756572142835411946174887516415589458256460362025044763432975270495327678021851993021917982677057133285602415986208083167917331839238110652136985973361143173855348372421421537759148355481612438862100981079089182158359428214730295857021594904164141480757451639499593277316110681679082474727067797181710666078923770568707631438377776076211234946033073760350804005153570624308799734832567376558078471848358264596568479086437608102716683327918852401297658348130259489100943689517705328493432508573293637251699882416363520657259131477277073223798071740920013104657211432226804064870431509177193536245412763012083445332115398077633143450799201970843686445724250735260119686228495408857385110576514600061599437720817752853324402196905903991935515689821636631546713180402754775837792082678370475216575610476332447597352899204420534864990146360967264501446903507917280356441611723677949059558688675936329614567026061411966268341960643647201946026018532745798767629791507667716071081141274763508228060615290771016916138445643139881948745483299108040750664585736619856788089901494532238864211137854372120897284183722319477181828587103328260908668492685197735202085700211003465856996031460526568753530645364625896764018148005399986948226645394524112397865447760514406747895579698752254866394895491516470380935038756071253072953606047360660152654270396993692937221898176863968261024620034552798517013907407776033120323219131290842207407215848300947805539092995639632545274399612509333264056148846833894816084972304720953823289043259548949739680051804849563559090235137824398128276764090420107040250109427213242332663109878586018817922840448874821382614477024854655399989997825381441102232563826439776545133983614850148774139223865182590801392845625933195061234695538654975301190558966695090485278383652912722418448169017701663957095835360071706432064539986597756703410961960571749690090851201079577754455879025880465903563534754423897842249783593176198536272008932621583074141478766566476698470991888953379292936920642820776406197687202058819538791346321934636244755754241936067108990999743693897661418737196656604959919858311878637338414965868753548000249615779156544138362520970487474728253489688538876327582097159821207817558129475725003923278270159151507224936489375668137472542597355953258181810474350085608102866856910689991675619771203503793896001337167207884610322685615445561257395774688553220979971253602958512598895290058272691820472574627951031179612384905461338606514538681417856731297002969805378685761323789287379182518802686803918036842992059047067709298423939650746546126865990956696438775722215109423809954004029499364227399402440593295024094814019115094661407632969908287670875360425214671104201365293885670908669932172400517989158861052885342459687272343782885374713331498603909940036939204217434047945074624042886931397386241419105652800354532344301924197885597216765030769484485924692967771622075310452347213856313416992480087180788195260687352654712989375291486255532128793566579305899463179177042739381951756141350805250722226671826524119432858296643839962717828415374671554584129411691009214924967828397430217549242987246918881473141882618421526153688690183477501294228105726536247735291236378316313344928697034035979586382041036647965446735691866698867567849170250009071186111572586933754010646961009260364019895492664355475330113826921615366135790192172723776076113955148559377319128191301252539422391080076288578505603404406568667664112251488776554037778165650263507760518558325465255784035484957920188374963916762858030016287135908420365938731972591157421140476364641068899160424242713584590593206270251865159487849663966432951956709287672977793180858991098347779109678998958114020090945828915225137971804827142898526796018973584743990265389058766256875634907333771668371971525216208603710835860470138589804053073315044067001861491480485600807008915618720716274694598547595074894697074761889356876664354744333961331757474616903351197640279867747605747594733834784131771081631520168042864333335944481853098834243442905762733402738091960319493198783037434985955952933188827385816958833865088448350986731845684727736489795213234812692152064714999816944056455705622625282082158485427236947524894104283513106311680566407269851537836999526577240346582051385725698756520803456199936354114944395520792151820731691698347879166880235100643649181193406370663132528332172567565196304348677178077080309222381592601442977553353940873435469079360680102485713030572253297536232856929811306632206968469910138204635140603982473958758206708634015441395435583185572707752662681647395344042127761200549756838490290263634313449108645060328421153229394950528756328262363551948855321608149873200017992327288646304254812175624154361766670282403543329385497835845560225589279562544879908947000716974827993032349864134384560693569003012281038169863452392671357220836366982505642457003507878403692729248567230382883503454872388499727208917389084857162460436171769946919255511490981489386163287458200746131299372192101542644401588023629051979202537799395119924604408503458572816937839879139741683148286204817531361653459284806925668189262918647966450478103942724730917973077793303449164254939583474774786565744502687399340408827397359681312364721274062683467186337507577293763166013467974359018649479155911161093386455755638574376555173543626928876561039119494504711405779910665302417032343028119119612375440252293940503412398598543684206131667567481873163131771670925996308680887749896020675958018004574948143199824269159939447186200874123104666114684224645909796222854409315663497019753303682383131097862143207568087196056345198104857902957406928659974106642728044566527905016265077784174205181270282399970620166663080933683388772578516779276808234548217043229857532930089652463570201227825090810043672857771426976772602005289700899178026940164257043602015302560433417382692912376485175851609233659835711048041951414879449963492089041486948652666067157271959834916125514956885483384742705304287027972761341407057891029294503469271476940681278825052033746336462443574703917444578965180933568646899834244688373374642245361592762402807505887402590723249966182706233135937724080458544619346314437696762445771447413103977690378659732145066681117410273412723023508884874037252862188920632648695781188497789269052190073869455014674643305874226751494609579709459608942618391171992942150944618553779825192025524362525250589201579734371623253205107277344297279821289786940983158744695416382193169718287097196518955649306308984171809045499500600022445601887218532209496541296094915944010173528449483073699289271363596013873558887764035710986155388595488276298658598014307784972100783228600670230224008210262593366451746273116159701996119230280107095400416079038656187229965753324503035317860535366056958785129572685542591552251601524679524993095673583558238972822539773855063509135718498938572835285070553504535043800500092676781675434307799956397034111226596076945504142535658144836856304480769452904927710597190257518778427906236609328406716122535006501927540765462017380702880997532316532280296009022336850585675132632912146293079714332351014435053091183430348547138517697189884705436589798543781665073888486162245541273382099858625760667622759861531686182889025845169923945684611179435321860890593456065400964183580755441925978400287434424732014502494196738844543542530776432630929830785194122184794870279702946875383652254068173961172816973660534196401151101664263614718715888469567991993956479829437057592759301769770969254654766821221393708320562883434054243541000802938816277916757238609204735947354426815668065517636169750619990412823371162012434235701510752550654381764538138591433946732686167125054071961718746371108815215831710375324800189113867320279839071350315735412458890489784822996808933377716308393230176378831427813557486777631606455683305772681082388012549540003230331452931281878274304404753200026030232489946276791637862953911666726837304801814712874808078528936748063676624314889907744616335686032965926242953361435080145077704530705807727446558522514914715530014648274086501102227517577692318559051521253013754895061422657369499312529973446988021379141692253220570970703226118716430204347310851749943909659586624672696187885647238298980817739654929799031558779422216798290050847927814720976201744420707095289010951666843282395446938059566954480883656635603331147063258957583553694733006775441136148336889945728064173018875138619926782003625520176357255952228530681030049235645815692854914735567825508001485765399431788649304934569549463567148075673191697426301560264441679585259812487679869431439579163654659587723349646359732256643260677533622990891749950871394200280177461855204905977376556344954549727678217517170396602926893747063795350494343562181693518635230886521498659176617880743842446124239656222010309803809429641898525698152418743230021260899119630506077269617068746505790565681558188522737813188453290092103264800469124818539688952092198483441506151237774789103469448473615370002336257671024380694407116616009362494049465075334385431271432048398607371007418443101684897878243090284264034871336893009449533857718855501234105334998260020006852126817645255006812178170847530660984212687313265419117249678620610589255981771806888389822907443087284385042706964446295733137782917512070289054250025758902494871426632528002662245526701811160638376975086357912355694139716486489614262799598533153323167366096505072119371373034059613454917961876048831597503055537000750828006152856941092144428630547337738211710812614872393201085967022797436076506128084874137753934978985805471749305271291984214044622292981773418374559252850601772406958604801961128590283308250983843918230340290213013698499237356896653607608970757666256402584568070990313650380493723100729909312169692365406376146250448373360128143405126851602455618686315097269367701463097212441147783475663730043340472316585966564938692444699494207944777719394559521354248610985341670380858407346619969627776210254589043913104910762126616994134594031065993879136194018233013324420005247588889348895244359075547882326635355235081636206915530996495520184852675729564032266585156296725837944342243911369824683591046662859792571828615398986357399059786187510320733908131048714357979685142586772287656711184035545492372085923020543638535345806099085802469519852400925206207328760205085148927054378082926496374920464657995950926055825336560698961948015574653671351957433825311881407389439429119695216422413903749465989488643243912357426173636341380466983530627087539399057743594526765223607734468721584454281149874524007488934136129996234859425215061949819235885362080945731014540022789369703741036037932418500780996888687409308627885314649331392084223758426324540004753581634896202710795686428653034665143217551588962575855177540342410855251528711812371383450985458753564156368863883000340057637668596277917793359443421630679494823862010834920213212952410409304780791854482406180227963356907484502288220339921961296343473366342842925440361803256450675819227278844793760170994685288860541791343052667724468850966241989227694487274109404407827997698417384249845491198008229300431143931021683329949145624995315294301287740266179520107665717365854487485308617148814844978197724307626216693484884324370796629597642162669320498928488829978939108009844670319629570926681663343897447218730773711471159308612595217820056740634798663335820378226835274317334746581333517826408149086905294735434708913477243548373097946717660955916588037757343760778959637967130783457329624663687207737701657400648794539161707296398285108848889459956502895436107964528518788098639042107786409580947391091559510257051604178923438502397727601176180395442290909085928679454913938435603860458989325531891819792777726515997680175593963028704430696118548959914287420375345986079120302833645181478102288889812692743331428066668810934020409773703077515289241212167124055151237820631144881207534378509072819765001595681843548857516833349596576961498615235528356058126586214340908197432420846020742384879650761129174569612942483519465645656059399337397521286958257314525472107900238426995648176487010932022179144117587826229513403327397729180701490688129500828882907716975918492602088783419834036090091346924476732068798032417948610249478043752660094749317232380412763947374536023546236479704483480391873055965273823182901380942215437997273671578609463460786106964584829794806562839612040843886368574739492903660163399875495664236712545807880576090423566187736375216369579997041751246574703690452722936469511842924138937367007026960391968109038014958486484632784825248638444594842450816911237311430636669835907515595813378197725513116936799354057579188249117079481449001386762873200711116499276848568712872913635547794536621956529020165329131769541368764259229400794123104502490494908619979773184077994991852974151397794065718357990352251486246400528879062566527677562945463592256215492504145006057196803740553364263461692731229651454889486312358591492599340445791134774574747827412317696643398620315970805545284099570052085320260708354470669787029959174770598142112033129100016243409149540033437749355686345711564571683466928722419301387272687058930559595367369034552241995506690998067561131178640598150634993189504446218424459307458933703290967402828207171482242108176051633574640890280520148661859906162869063744512322909957688943101883399910656880710827703917968438393818441663484460695383190732482146130478114779215024437148091978007614047436176284005119767852331954044358781999713221867755516869707563336817387019203291291103964768662489385305954871497515399642719079243090520004659123123494739305457581125761909565132238093454159784437201348034995263106771644775507038917891256125327918319334376121285000900847773808765460332531975257389612946335341343061432154146293040382097943567143606586597172180257412557318273968888783715964711352384512002703335262980002771285542586275245896121823955038180721709755354734740985176553067871906946298113166104048503075702924218457721704869923541055839602464599254685213071386238439951305420463838048966093459530931229626672605934247843224786179349703201154939697291189499450389290402384175901090223827372024825374809649557724175815181846373720074316567362197675649308070609211492693201418343454385466518469671683712844959366533923950666479218710141039647504511308962075545587563807353730296429129394994275338844054523865221248787988474782366518882215172903940468237856935329899308341400418526216813030345110658098085936519528878016226480045940662860074280731178670177648811306666333865892011125853737838884505982765649317330537843528136476095615969845651830112905743299091426107626229164087282454499698469175559788933451175277852474390496180020349480572502486365858072440151531105824680692576052396100677997488339919165117428070091936702526024105158246038578575378062245379094282716190411817562421152553555895339982499013673639055075567722350723969328069063477852512689055028554276995480958517618545251185968298246348435520003562495112460786599097760631745383291465508312674185906123064134863368034372968007174726600122405401889491428035586547205961111820623032892310642491296187397499649078189030522497171533312402721528408290088733198742484323910054117607893596273784428536772901227409631509925783857614281152830176816128569400679351642771299149813998398320085235868520837058601232310458499644179769378988220613951500499549349290497600718975631969505148480654164905238139866220983011877105252941375378650713385175838415711894197728470848838440391167070489443028497948138317609803831307310078965963892192133505487027178032778850585248919531730637833928427752417804465073954879644780681944066336172607398105191179365834649190891788420582510558461055072139994639805643179261070443113354774901552932981528922380172524677928363842337588500921870643819834271646972900606957327080777750395278348669488028040935292168256384514929520692441840978053725937890652239218985736478017217110396014937581013295890914924833977079625773576629642856053891737677544743649519952732331629330971980689335495163795126650031437289916250929424782479624628716962756300600322848815360271015568468588499673273642482574330826587481183612627246725344962920653075652258624680072482072908582421892129964105498912874316408315301457291157151438814957780644899678399455190549509907369407391338366039513251822530172384239094351394187353688036245573845708755360167096783010340109285837589450530096286709823574050408451304243554043137009225158365627014398785721189061478572598575816204311758068448396216841620672079362718012076539060964610353414449161621069185578556270604021359188267030142085828240201109357801208559009027356666106053206968519997411981600560271582640139755338048169578403123101432494112813437549036936338992683066193006707378407761639931773646098854750357290576278425200042471959839863758882366456269751769587790274889236650403851706405637083778222416874089017055875265136424496313393532964617182917728309523285000442819047831235812455950012105714421525125929875082027459833819751211227304207743743159405466352635937347827245866558481028777025179467646243877794767196658543121860837513893476511530207162200463558472127849810701201916138399043809074393773616110111789954690719118646165137878041317388630795347834841726798686138549731847429775709670282298471886399872828857234413439499945062673193183784775019733943207137745560251088606809753949127910024584943251399957925067156407514947991322035420469158870498356942671892161233220383104044785762034466686360254712545052573327517921972058363552672669435902518189022239251297078734078864150881259963310626414504740263442572388320480046784717784804097772663454484237490535438195721514568189965885071359896411261487616689570558772476490005526012071074195070310674683853037287205063455439931653884013435575104424715855606497581664212212886667414204069015401153287537977573627655874176032623236443988575326545127907626108298995249095178012448557942310521720181150246938594189165839890067592091746825537116759908927427840110058665126452598813808860173281115987821153308858590424904844172685406927374289443297958764945127983333807525503307837878552596953644254285103163657825362464093357207356257617964793403984178419271822262128954655842631355237893602957216009034334331739483338804811827163635288481133346384025152475086920556814207865582037495098270874079215442406015307999261161588308573224442277062933677608471763593177870748816570040738234019338477394747351654888046021872657670770927361704382618141503711565136041043207475664784999602674215850451806036015860919067860383501414584136394295096813521426687340551920795677994962347602166162586650270395252170773190552221245559641875334676339618047717720102434151310862586096559079877064515325273037228037619447274598193523990701100413256921629546949976901255669347873942400452630032311451663737854625961553627379760167740996809978583342673161593968326511439010561407511879721419771264562605916291630988202894190758518090617928901943345771360810476629655053220597381034165647464558723312299155286582104790325532321306801220888695287147682243007587992877269377636001586868362308814267245326317506757291495199812860111749253242340054911880372570964323919261228017286746256323791638910258162971875661232393118493871763130109581472042977099094207726235586984436177977848102597233376873686538265357925189324079956624082570193809997006447432256174368596867817552922975276658314491335047378441033936905598813532050944152032586328114929466596027857768337014248639828809652013462252153496135759585374864561631736324357775093801385050632312392464485491541888950027103553504196628990064217784820486999540497325629778284140548919961671930037602674340159941708482800412511505244592006136216492781632040024395847280701464662450002370386817222949571524682233837754654207329162531106226132531913179892611484985930911281105473813901193180058458682806726341453995938808619926715673620128074586948859462683256013254416939456134677874982065363937189651086180213219947851225410907573785873871027772313846010802536075321018553995399980254560881091246558903806234857347250348617258415944039859949073415118225342779472088357400263344907769253244629134275598336592547035974403689291884729855745622161509416065566899143119495523370148989683267941299276703218747390212972558601997315199063919784944329376451667392823618278242297245362688307555768203188910536894036303242590153599667087301227186654412273148105489843214387818651400668403566767912762515765612709619489574754456895078434733879436856486047460689966357628204637334310557059437286189733507429166810893643649078479893272754574267256641457118672382634301133895745510944583143992689082119098195366497596121911411284792738646527974234139748339223034548854846646320799738474342186842976991090848871297497421791879739833034532933597550701644421451943087388917303284754303102855177751567753533249282599067888181220434232756905926898762403950711340643673702691181415876910798351327008758921174341687915067520198311008001531913684618616974530847515280939127324843836350121691011875972571717773478977693130342878842642350646282510759404979387780418635303846492994523828263379797730443168875777946851485111779037263915371576323043736147282512284072012610447628776088868188418605826066419811612906684636243324368033820088080908360477370488259527835049291991468992401225598221095607703262909868349122035184191948571847702585636126027334061535205980573765913283261092003860164595334017406449773990777260722634388810384545614604505887772615258449029448676094365999821715913952948357578855389325980671239237586489542596708936714911469964676108782927658511284006482278552440398490022650144931384676239746480996150586376290416593899914419023040256418821213428601885204235048803891930941732371959239467473686079139167667084910424112339341552921478954094040983179693077903621866167331619648378499371660164345812987199767649572963981344323043813817766226295975403812630776439051964724856404513143976185132923755251720123172178491647170276620829617401828548176056556959309164945944596795734035751202250981948579726770546274557553329547049195507335550938554352285659709625584974108852159657202411904071360827304442948125511263207547590822520757346018983004326875406485240512518775070883263284070682943905519758218088511353095561694222462277290971509418586666835334321266433448768003069037009374959986838805954132545196724910294451839129075240041815197278575295511242826169890502255851508239477108381807543827385030963958537918628120392590996146251471635860845738563364128171394923979360372096993471291016972250931080055196355923386930153886466467210690458362301128079334925166855703029884051392801684629955556456913010893548647466851601224013538680920174473331093068644690312731889346983732141556599099916529510035348499104525628895476936176724807441400293277712828033716574730868293540696918161270487029659437499682270261569106922753927465037240056497269203090102790983821168067535497956431048820468251323724344073298155586640905989334016087195295135622290451525979442508396271895359746670323479010522406870400754433934374272219631777416291964243471852502308880802903179106320211341643320907621206653935361811196075390550437239981072184018108217063134278203813872239263438081802212835635067247129298844158485118612330034171210081607148014714931306474049859593349348759385030449092513945057406792575613590772604709974830951761115371310956416012626802137569175551579824936407267222785856970228526539673140283121073255247209113028412791908596540450538610628775482254447702286782457078020244870960017421351381647373680838067287191111094984721740031788605157313228162822448767966504639869840514710261475485318362418783020937786882932569047421278085815963392293897002699298198455325148609131026922833813706952641788851767563212003192311089750264278570036433480752306409905953969661247318576317246344884171826951085812568263993911603493956154685269813882102315937335916742830992722021698805270583437417824411083488698300487550638201992712310023350661482079212944675300843162922667031758196254534360261954203897223572560606983099750353511814466904596824240600757546214268925561976409143500385875365360062267867607340580662678537180109614166698105619256042042305072310851461503637162076669986819436297934426754492907391088846389285654945711367014728414237821382835527112367744183326545534920463808721725333478093912544191567289095238221016211526518666223763215286166395971128554723397516988213574283792316535444099542246186039588394759110827322195837391890572974863251871678471407585866060795226004981754235252821715118632590290802473875777776909389260619110896506109669308300662113775314036756429488258105157156637279364967420222447083886852733009813148373535328372332345326170511198462899765465711238807063141649451890070794471561094544955274871764106047040672154998866776657408925726860158062433489822239160874194321985795610556754590695662193704677016955285432888621172496197773358412815379051977491016423806829106947160509935802929515776298990477858516776458107005407265635216703485361078191302968381106291159827689964677626679018170494935550591358893203014185689295617753389684448006230046870795173394059752952176441232515797087283425135786028727798855179183081638222469623616387658693537683035534321295957647242527340123228013385984397078269251748888015526696688515014737489838955804635292606416067084409241941111595823131295521347784623005733577774104335188920447519377249194410797380930708811371565252834764137188078740547803732268850310350567322945515861917307399009614564624876861368867395698808070287383115981092101713929341603767070247305190781165618277790601379072248069405155594691242314859897293900294309604061583421440854004456239827541848606141196436415865999135291438872139361998238421848340812407458829815871145922040374081019044940763928268057997956150028292320354905445595374517617025225409665464376709584973380897941793622702225300941134009794625827089230750149010261125828518436223877051021530850809324292743307536311502446913353197086293475408841846879645057160030593790946204276196294304364379096251792679260944868644730152919454496279927137509348600790609841234108666700368871650107893367060299364174739394347723285732561925953695798910117306905864810607165466698501977751998601243244589143471611929145992851253556901067412978652080897955641499352211959677503939555091872666705544294531867547060661578735304059824087063972984113321857569551293241754901538386186002941984237289219242010184465105722517024325808725365458208627668943036128096114674980144459130647468542839711099315645514140695843929939077096026604592568119015626894806581618214957351813811046066145529477767258781295179222841921970867414470146830408874338447018184067438111002219681438082699193974957220756209957996475564185934309481495844944609168485565231000140217741032639149148076501960672231349735789454704259853387133495088687629224173745136527636208269992475911519920078547602404677980766742614982271776606025094359983090171198933792286967151894914666733207874266400343131100496011128668623325483516292788765766095250200746281859878182261288223614199681567332703370593519740153201454226563944146669143395562484496928304613506267735702578339985787682788704850868948244241166400519241256767789178525256984782258912604166899199417813034481427999083579372794032387617503231703562680816751986466063361971077922300734530139089401820036297691249892795347979107474171479186838239825641353994549263362484036648697899001484602500208116696130506238725663097634665816734810954033966177568024882025440559226640188005730716848893000332667181209591859367173983671553002425177965551030253147669264392776266858730365520321659933900302502730506681939040322333331552955942832552723736426362210429073099381089312046930149650116018230607090480139636165179100040078129549390984383769619402525321288977422172275459927299139871585052569363148855542250990590733520222521118542807032646703083842343676099981332846365510575045158539014469346939949837487832491712216782129431886030427864423379423940453363315863274646651666031031118946405943949054650167889235223363711805693701079068642387303427766349891367432232920229372606745257785203443911012741374502711710727567900800805186410366101970621328235177760030617783984273512638033120888884671076262889018344236626460725278475704006117075745332352683421080143062049833707674696500713350094748026982322596058675882834110461993347363296591817645836657649210678004169243832363894451854558738258258614656596788382275600503066696781511769060290237362871168833291916064737820156369660683572119502777285201419027123761854494416776003621448191802561744858833024683241421408839805790820482658130087380406197456712394227150412854129218181948307717816563538862469700543089066522419594479190519477805730670853117624026739419493760490438249695110968334556364163651117994727054839803702026184897637359920826350417120028328514048456457822688288659969914374777165499636723325285024942517575309058751377080690828753497686039564864405559329390719546458202578556131807061142277896921574422444606075858262925453143618408003059992674417394197997763823994908233346237478150313423383525619831739768865817022044108793714250125663496862222381538117857055899896526630820354829492421086294323951650930363399093480956684393716336021242937807498505851084375135337772077229581574183392340204761553882027676070098263385321409136367985110308141039652276386933474562676843006690377803708521118406570955716609574380624611663343131314663580587327626422052315700383444135797953926805153186692332494873896720490576412906224889881727822098977082487206983872644613188005536111759616746798656428230304703607946152700411888406350146817539046828851574009244547436592812370827669202194781667156834891538566244832779097034107462900952164257022752434632973651225543324079386410999130383984128537187706627892081717725570392441722763371906008235412057456972925904936554329004898801981514682595264340582583569190087243805568610786502197679415053406421618004596745832300150253028101821041881791952945082853494065956217379130906127571550667218766319502364796061139918980755798931951033277556546242262325461634155640502455452295118738715959465663208372159801560623920842518114479881769763469904852416317040621362011377239346139845427960164603165720228822965437503509899335313818052050730473442055690335883004405587549706729853834623730326364104037617990015395715494184806306886472434629050847000976153290610368570392488530359864777821333970365520257997704314458334330360995107696601924049756265710747189957762564543340254288737852934277406749357457195483673916455824035173986938538069445387752979555460045744015221107440282550691253746224695324240166706030877773194202952248935557836911079534884148464836367036289258690390914943536395776714046083123451818388135693397383315734667124890073991481551762000962570561579219042755828558022047424259798027274606408672560528042914808155205314335004179951240186973128768340039445904173317934030272565612039476974226973264427397649382087847361656631853146792812661372608968690339953660575341668060146241398253611619904419549499215027146198674396332892685188099764263599204037714228940643650264972018212508892431898092965378190307607294329929451215037090413161676376950074900978834401766410451071337331562208449701078224362224075644355256092318521504552151499855213419258614995091729581385678341120422332167048238604763074459288345926018723877231660793004694633938567089705834319358262923492583758387249428213865406510174575747172788177146548559197860898268385239458039747391947078917903792721197360197867329880938982152042151062324349081563438700892134682960300714004756890348362931360808338155659760784726107638983964528559364464595563903169649748478204360775220029242918172924803840329309477364704986333531530369795035488377709504079375358781416128563807142683400751506574142780185427040697650647351722566597252149922142781604636240721983403082833548937116759565328520210060229950531711383390421038837622374848395247057923922784108920692364609477033519015980814402831749096150362736328738142139076675921884119325130176505240210112932250689458070504750468214254596150953875205443405921794179242245057461293106289609801909913449053286575585558069648530897911581706474746155283936390719425956994466890134421300610279859825164594365439797233410270578760202809282024689571642393396082316067001946789432062162326827273320792532310992786264366514411981143878737445097821675885378519711433459081255804076714860658012246111162251195460798778354356139554814554818570365806377017476723974754088035458730914044695519924133184945410596148318450159934430670997516623325801994765474133243465285916384134127240690939264121606331523718365124816429109582125366732077566395624427770034231759604280236699265438027768128698554444029424435338915523044964886443592983441095329121780575156453471403959440321722550931113101157481342438597519977580187746000265462713931557075886697432081419030972257686426531048925773103986478015334552587966240263120433251817497517961418541752693996339488488819860684470209296598450186692198607843316531092392105067029402301713750921369249659303988817882408817107347430932633657610927948413315207826893836445202657136511173013567315550527081565732823374426082453184141076839666764138182507490722808325512603579735685381308532034598701065598942506774110061908687483885293483098864858704708656772563446845545137093133010140312402969004336382809183200183818176544089992741988428588887597893902962555750596189063199124509994263344670418687544702664025022939479717296937032271856862951272612777585311170963042008501977467041268273776336045795291310571291616639764138421444628741785716028081484706894311430212055178648389080579112667763171296755973121969059203174740716405995778328991099750206094147304821752609825496357158655545066305200558979086137055525150748087295549875255290164179095393230624995676058399164170867210936699146382745944808335421007384551936946239548127573884608472491504421068206402670716412793956795116981342166986336381143441599969842076581230371392778800473855505755065294556963977421984519559640937696064916153461502335101853431890008900716895133715683563174832159786710870240346540161735080479231720821414347131340587462674763194440221729266088268525353968907778355065808204260237910008502335605193412873182593391182394020773754698468344619099010570841887011643303633229689871906755522670583814841503099125399019771009386522518864607621228500168441265234344775659586360276559307796095725098808855996397907289051303711250912310063468350480925835061562693504134254864111412010823538094988889388272310309604910422037860144952206955670647209717986332153538102749140881912833363033960631635931236119319765714974017020540637316016702047531781723512995218970651782745086826807250512864641127736161142446780590888604836492896376997251045519345866221715767512979600537465067019366765464757189656708202461401580161564822326339088792505705040657310813218959262249618901465818856836236155261967934414250367280168896500640572315856670790475946547007395655292204744159681137814316718461990734803712905737537776847756253546284448296182126386469921904103607711422477210083580145770605949932780307452215325555563297522015586201895459906615814754627335750704873487203951765460577028136123342310982783391223230869391132528392730616560565627679332104828931134291702095262032163520200912488391346372818122386570071285720234378338250260661168272192630596142531155441595646748295042916057021237576103352850127987493368522912980817090004944202585019116087673777458971003693094107476055255962925436695099376068141208640515188665396489093604306692699710624448838316848458749363992686634612380295495452183855777638129720622238069439864913896524633635115596697542311254517371042728322274082176908940235789585008291478352495084890419156812282514252019019855439963715558558181070932539902517760450316601905638066745301250906028868678984765502430647991606384422671506479178105834716993242985190844045572418512155660311378049787554731210042517324490530347088821135086408544014719053056775069008475925918010730797169989698554720626705260054396841619875396051130469953510316974844270995430110154404205749730723219327203155165245426638039065588324671168086586262845236922729452037704826195685435163932396317453505036842320375182227338786608406980740051927059596098008006361881070223453717397537430972126380460110885315697912143404618848029065786934440414867110827463895919785776717489770271999234397201424982560475289901163801271031513496175331577259584316817793492522807945106411435344282066922908100443602544116813307207390879626847384443665335533583967777321182215392705551751838307957736262653283546592761884231249816437248277095633779090698369018775808064750541786502057731571852698767712786598517959084999039737754269797384801253561568093368094650258382624119859140459540702689521878256918551314682641517004575811192840578398380454049665478888044434676498674266916144077998966257379666924162860633101252344768771832822780198920559484486799725861386260335679229338042008472419238041280773472122109125670743065525679462014351077536503771217622108396683393197105741860611916424109898995588906155591027487087901831165152332853351295029078194462389103417676680781192124485745208816721460684462066797199066055468144639637025624086867471049943520776330453640993654266240670278804926066970488813235610591709681391317814512835716022206871393932648146208742083588781115918751582994943068843899537175994878354432530811472637298392109004911446493667660246981564975783763387305844625503636155910391355029395360585719747493379432989414202635122109985736633558382415929823640589824753271426812917576125650645249802605028659326723198363136756239035016911495380256394973671445215781154097456924706037148745829508899638830346337872140433021926780151018131306237091961048510626078152411796692530681088176488517207773237242367866165957065816422213695522399235662363261204611186428388493972398205343428022649629134598015700430161179731466683943852904247271988490201507548958272352331404317664298213896141201414601844356972173119146508108504133013061283353319347483017325529637194700990465225195701302768455962321175042955020992163635283492692262532301198122748644912644011949100141358644680662215284482884518321755433993179632365150913478468068097480101595164128852639239501493977242482392111016388775029333543961843869236732271298805479827185805945006127225644209877593549033288926556182019143931678378919690436522699228554366183585333604833935649305685771395290055374584798771040280896141398216666054763534471828378402990587996952467946143940960885340973411256763839008448383349668320717208528293594501828087330605782853430290299870126624815157194569370137248663182379234558408134734948573106769459630379647607354461360919500749119105801630257299025560790361640274248460679128873273132447861930259082734574339826049289361314666690312504217778377276535104103733932708325467525469217891839210496541685202613265444660611222010725498798393642668468047529155020050848460622041393073400407005621718478163460387099551117687927853228604354607047430328573496389297470286697281085418632743511400195897072921878167118095079812043128819279447916906011324206299682391541663009040187975381862356576511564053951168521307297844275732589115765992193157351977510428063596626363670734335974661027934144037596840623267700283367006376887131398062149563836138125261834935171444971970715665129407166611596440293227642660712815129097456415430096219386829944132556978792104681150945189549178070388276784440399168111066401000561810942378788577522379966114014034353386182146082581971560235946988023502791863894559268116816978958249987361222724681594180434813344095269149714813825465229659594276197979358505511428775709617407879933426924999081387995434944955078429020624181480282882009025819038085899463902544863633465524755095209127782650110645539667832346895227565057688023290509117940784068748341018671874335037191858021067020659370041524688721840860761992165206142383210433691164796614757817763142642713838922948927363085665802427854841770480573178664404519653610575853142503155587428580362401408679052648544221167064386270598717191777673148816793929978342139807688691137840599635906887537443467650904913206686955863543467554266063116362832041223086863340481551745386510718266910564284721503519480775451062762996549649603741625494569209694563197240946640081942042192298526285036487998760480740751453178807710780237014774229039605477109499162050633438501908308411336046398154041230002355368230161060692323354160648310456341065052909245911606601781460500002417317892644972412806009362031803528526267911518820447515395357955319850152983770148225674665937486371822684521462563303372532885197140283035219883393868914090527342733200183512702209523712910106766183870447668119584652845727757901967633565425613436934685762075723942505192051641827075236422277782408507679760788667204983447730251094314817334045834698357059945336423525101635365711085717460450870461949474131886642525001449582365668920366396772949291075415959238206329341386450480330343257533802736724906398844937137991721229400801406608650169137977571891263617838033918628224104596257087553908553381093988844023311936047739345585653342297112903206661366464481035742037121208803743446860286644205152259102308198918343828368247957765563778347795309790554357418289328696336529675723265393950474873800675498251659762349895665853415022400256505449109802466724867378075667894695267498452437365778545036416239145582466062053699877958612303761937868889382592729472690153925778227040688778170692875399640843061970021199488473492802528619782576664543861682195420065886339023956522991636645974470175977936722520615332653182757699916327480472227396662887041300145150290254050467707723410082896828169612637506033167400720007921042322389691004827093313861589510377788935487738513990117624791313812985398926175596925082336185159106254421772107125252997721465076384125771374526555702253153959727185146879778339794556881417442808999669682676307700391177101237613382234492053957144445022536209572696218442939614151760854485315177959544805612871880713858066523983816248976425681398790933328798724740760568418110678784693336245803882740671732963527499659833428904322350051104489751442548070152388410711606049808873331200533897013772309026858397320017325678966626411491305482935658792668774141930326608618888092118358570672817636805611219980419661088012273444953718764662115483049500514028300174788361792079476099131443813943500308642352156151229402936971558849543194315484889303300554945608825263893977766574085019237952265017818477422863480322358516383787087902873358170002926360579583197705001176733269483007398212729180129727571672936654228393985737363747434053128059763510283704450561916028429787553323447286156011518351794423454170377160506981613474155491562634483632035069749830112553931066389641915275998207702492522325391975753243918268828985562802857073029080014598664364783803214847319603221976195585001345833752960414884286324064459513178427453169186498019816189697863154621747767379343387513956286044218984162093363158368515535921338952278728737643752669927964015790163017493131736193745399721057821668135650329819068375456311534671808864780697294919320236164805453331697888609402684831243570393172365370181006301623187222096607215815634339548410098303084531001264993110185519936711875354464353343258156638548369100973956643412625953455015275973087712645758082479357847870727040420479034938876074201474444666939835798846620716518932415895774344945506468693200636722344255409696843958040464130572741822870352983537091284015999747295595892110696841047377122847569083816024488278964239594109804759741604783600505742738969865275166603282561244677019922150743906569358694644030398734892441851100277080925733953493565791093733095081341079487108811603748310180191546757252070605817016536836116349591411657524634794224030858511759591972302340419073840625709956017891656853520002157425241684913201918581515669158477082107368039963510148897936653125976675897210561388741275244052976693433837479287716903220734291544124430009670825235021335934442348141287956270472906735778933557846543506719941997996548793116536965366687151881985752446928990851031802726740632327996425611395151765251105810861705359467731481856160645588386795473350599005288243053042194439440451892672698320537413339655605547962700452516034901573506320353917212822699690436117198175333566912579475045174424524343151945271076894665604807838413292062054696427139595259500334634555869538874760989107347472664118532403395183129430032391083196776155228664950572178200375543092217758763943112946767646506769352136888414150777295283579238319991326335161354681065208132841107148598584811887308522226345668646794614254133660966391673396085686303577052540004249892797568948893257480072619220214219413415680837630106722896530562158565143781841349081853390758960590633234061433208760615726349100536752097856436562721738816955736072568682502819959643240904905820600856122412085306306290101827683962333198481098022379593837285091716570658313987603345876566030188132259041089563247366239196683057650708928463482930960258921870085851973520916856640837117499057653271288946407417273710861926559033168416030473607319865113826915923007407265512096293759796040847727159702425958687961537471748529583249930013873914757036299906405009173122388477802155029456973415411546215990558918332694842591825123006099004594797508884866365315886238231978531542001413227904422538608064679551952594411767235852160481798677887348528167409607388540561775049811005694191014039055995578817690606021418857686300243741887701278830813381846690522366411758826660342172871357035128005805937612374965202274273235900861527113222123204633842162551219455323292181490854755921009474180934440425342639638239647430764828313675976311070980353398103953309239815167392739596839414131275472920414473256558254508615903493732960193869877565363889376139170106772544749079224218019460085670824888178802831842438266095757261064806202309984510495381398321629060108603834562112425219735998412406019499802112978431514810852979190613519831988148984437581781255710304318083272020288744284271224108809963137241269431157305575453881854031980997063440717098037107778024415462027784537881949234685706388510035085845234658048740964173648293001564842734323665237923054049906312480526718209370302566944569744756608403952032415461073921687396199608331667371177580266486194217675710986068082311250271308976535221149965143901963245629136096384827783131540824233474276406534260521418408411205139422495550563924750688160570962694486992587311083202616075066395173709331192767653319503457592786835802868905500738888404928552775837587073901834074520466581669569274443942683977313223461638400994963168289284183014414111887794671418640774523821154450057080142836936580848433121950536291554103573380107697685703495176076385837605127038974400211492413519674468408006908750856832205972476218163228920214795703354553122624501681599911787884986255353685643543549649905260167894832558613953222657770682443445780057291772123556874881524211411846446945678264436777298953926829461632007728058530676269727966201471401750754440536485220922310956866691583296043784201458939839707017744448958450622538566307719114307008338048827445824950815745419674621929380842337202743674242574581881254943545905906190421260602104037827778964508635874017889847352903886779349091562163075220044418069121951270865199538546838716212409429776283675570870211159758509109583962220950542094710074867198255000798617609320006722707188050784314674565848186108502624144249668209352839299643145548811016833807782650315122203157676215178985720408502313648862292826933900278020404338099767948018031940206271216123843523087866237118210029632299382712759369181857450769832756091849013563963520671148358964716133122219188842923253671165322464395419324493649169039626643388868665586600340188316379944124489542415992249951224632885028838202079286196966022024504660360921410260141375984372649187847112024517680097599920534035285329665855450821117521625894563516240753815960487530129896373961484604425783530908407701439003244820198878768115067886635643552577734856671151987311558263182535203060503218492398984532050934983408263489351937051643663851990582112210606134290744367271471724653299117173174460313894726817294490164789682586565169758896962997303216493600409266399107801031956817134790334770911555258285648639377333687198968877637879631364759474190066539715672174115157054929327384105538225408860632675856169811069733638543243514909756000811397754116295876489053486755336786490457021029366539705853089191096143483475829725691965535703996086200848791224647727816039745344348337292274029264241407856524690062633666823254115847400395237538179462235393780876286141613359365276800204679541442283765282258488564210790241447044503608327085532991841599631728009401476887393369575830975012933113113323005765249340205013461064140901874116447089407403803734779429739223393216802935493139691594277071454858064599984250081933794304340670704240087497881199066191745929111716324570708844045444300556760559504491769355113160831599035746775077762091568917751841424671889955222471399551601843345640071782906615292749527666139851453248566354973046592460163087052004902635265645391274034823711367322963180964761902715951102232216915072622176750008615986403406618402173562841301469895264394044220382604876080399816747546694066216053975932908728722062681443289415470804609986297556075084092545842484298479250444270058856841721827593091128733794487628207162569536631213960942396453437120943398171457966680508526514552656923900290444932398432530685062232361184542765562430543088826001835752848159325319678070282628946807000033354222935026443217348771025698771564249917264715969825760640518841769962062539231359743765034361427614789541647684747407143572242159530720549973716713532407705872296144884219102410998077464168951479489339234512647125472314059285892244140130954668380869294903584224474847187256136118638327595205144564336314523156178097159984756320126626430782182102851393886459238474824275652438546924894267166997418665563854716551967945377707290811788476090104216956958494204128907832867234848544680715072141997090117196388596853187389686186337826730408671751784319530653707057955897108013918170434641995103787623897229549476276304652800981197873285132188414605314449455619632246916009134553613906669320110666341581732784575649108006594864936165176837334162808970186821376751739173445247074572391196313458410261884208387450036381121447576483633072248681894798564845232949806044749611094669417078783789592166275831494645292738417834016505654211875000458003136435336702907623498728005999715574135579782492064594019711817791771111738544798774470887958000713849671385436529019270353229197834688384156522979717476728516429841024776539046425489756727623524996699253704982524698556168572214892619711671195504692769126763978272091535405413057251966882032084972555876775964921240723227244689749943901264119500805533455831683908090019031948171834535166572329983703139525064488910627699246768719098924092818767598275518837981216624839360134957379166188235386093585035254347329723167091282876870294867278675511311795482354752350626533012185245327938001499104755814749187498006079780546991183561724285841480407703463609988390506170323211224070883831289684441991368614407216781101610086225950382235106141848938318912931208909427892233207503055530654175654123945806012455647641570902130136140846504678864110498916326533606571802804665810341075784676591302148803203695879694919904605998582909197056287125434410838912896573737570936940006208872665841672288130243225627463796212045623098184595171482354028466981158869585496878426899925112887759029718952267296472434504179206237585658599288773832576577996552104280376176318008929048867602289636058220296000555483023528519373212024699149206215966970611153341809630815519038318507736516741365166165972770469979149167402350341716826115027273158071970926765425573687927737183607832339348606270011911916543321183082761865520083856866014409130991148249094445529245170130286131124102407757845719371613174432801920980293377749718364026144726613870471716974592762550616942676113484730320249491539226069332983689019869493812704228920328131794967906971217049680374950800361427656488498372161489098991334417832562256233186494429015359431793060582653614840342975424845112453736574377595858072091989996112152866753606338436338238005239949939199352713570278268220245698146704812909873108940959482512415974206876739110534036286201492818582986891111387400613856499013076496668904759199718923563252278804587827661780514198320587594876679013580603432777092986976695241889205458404376422270529821465888880570418384657751430544563159435889454180041274699226182072142134091564947445303070484682157461528959985717885041853654530013461917124546771340341904122505420215553860249390915650201109549242074865039281044735846723651692018857417871786849300407192036125262939691629192817568302212129942075183782331049146444835669640239133651482493510140777815730135243977791259905317649128008421962336107653918691611278840970816256974939323610550682447516852887719258172628195995952946766611870841084832550509937892628023826874367242438302183871344492481832168360892750934309461247166630569881214519188036258025921190227544151938222552005618533328690089028459241915531786071368542793569774526914103920699845895497191705701354549770584025271312066790007967662105680235381040873246596432992346241763266338050041721810245447392346930284192951417464999821428108444039626991885326385787902869387799645506212723966877781101992534463897026677206495357544214993565876241508262826974042405652958595761126396292563218122259180926182410613298725779498866143434064535207885104801133000010166141634331004512684749404845323589025803923327055334160249343255857204477122250460609792953197111275683619212187349648469318230933139206822794361444474552276015565710394457908444741232560854576638258477487063647425231897508241136386515309481365191911684165868879631124648484564159889701856918610017805308042086060400874384603403160460762634551875360544266538414163727157494685800864372985085930061996345310467271828457245149713132216691690784725651004880777705864752613180587108691334025484585500015705423165639565107459338052855794071651969688298662043835255181063649983637587670254720422306680295791904377147903973373259181548261057052259099904466076727602683333897365536363755801252674168861481320064474307501112332123401741152844065804713223891456736021063018396267051017638216701583745614372694166032496130689137883674566361892600228562536769071301214039778655132422864908253461165402791795966151379992486585360352149742024450280657217174597552179254430980386618427297601063711637807186228663439518125225056854687867458445391549926990626895037518812076282347838855665179265664054553808051149320701680041893487601833737386172331675058761249955513078265775939536233510083717961229991049276880034854992572908350603387079068825830866472380172761493614421358002831305286186786709905098630128399090361323163770788235869253584333266393866609126443272003195444931219834527283287108632649741566572823532206979265777330621804697649905916219502742355253208333479216578548182794180717513605789605007955994024394203213981691743514289445214314484129245643112950690637201573670965102333057069115007148393734848107981936789697637213465124669975532663441707168654610821508050148151638839114673628551683287935038901168191201830748618562092345816480176594216933737723241981339828114266929199216087276596431271575542264446332065749731405563944303017575289163659768947479392605684780471015876078063305202202114037983878346102862606877462406918545621185772064359361387402730046175751441708799290392544159852688723927367902565552687582971954503708878822549798219346265489562491558847386754186207565849140216991754896759050692219651184910709873159902256968219771742610109499682301262642770752875716669422180758583688867024666716359542356384793679108736452816889420856248174658230120870077715150301538843544160993778523319937516805888990071220281041163101163216921239843943566956051207021071040860180790388508079513995346784735914625171755835821373679681739176398289893151852591698907827408615214272554315872906044428153588895800397505156645416145783922217638789067524508869896053987497106442281367227718668545607266230704892837627385923511791141111085989287137389699377927901265008566777197056561056857359200087938070366418723023596688338578969996615004624877491118641824631746300432434360570218909119577487523870175812553153117921466573153981694017772177527019457700658294296149501091287044842808544191580914765424841122636513061707815029006877216142068963224312447062409340126443040001840904044485077539209986221267245706380290216751431045584417225017146294721343332214320419271924233666681434947124714274673975891857109055519983432340916097994873157429044816534140313280017467881493089069451428644513505047097888689715648987537785864550230085065726559594072818388350217000021693235332557233577532763382119283762744633001022371456755525430035663173138364895437607731280764236429041277278025084176500446902866995187792910708519799577797037516023428759964583352017199012424018224920041884643368957240022380898200911451092991046766706305030930869630905625354099740759833406412119745159821045890146177912740806822376948733357503152930321356683884726449532810465939690392419103527759056485826295520057461303065045366136111074086310707451936105395190284444129285106543707408501590938951411437678018532853445511768420386900690629332899373804839513583240611310221294725732088384728232924064846154543815953479908693451624618573702236859829355322078475282565728916793482426834367977610502423960252899021946015879460751079857316681087458816084232110790395711303074459292310093659201866577195654609347893503043812967136091526469373856239570991433518286589041962246782589516805485032351123297699113320195965895821237897258411126836317161635869568677541541481267434684724477634880809325908547374077813417958808639758494446916885321291464679723410125817794192078861437323286495682522300706637455040834284232756392689788474150429746148177987706127779586577249158390503263882738975936054648180624011964312547061926115060844395741474613860699323529692891586010930652653388061237712270383241680665851664738230288933109175355645866749032192818594280111218473076834559606881948555560569719394732879969756317008682018902545771483901680950513126189209995240704218910819483134067981720270025317871060034886651282026337947065723658015941033950633338107878557576628480454532201873098352307092063607699228405087694458028121634920514780132409758904643154510960494498663599685325660624504173464296039318306777572628573926804717136396477190000639103070180930579557657821434005151123415443192390876857652989129196462313429973555183117108875201716451244803050579867379612346950537715241711312166418375649587119044274293616908923705316925717022372923686934712842205685157151017315901114728581099817345225321355880651582493399351069386912297728911838419802404878215827285602437820490963132314809129154570185662202539058617738281361561865266106823639275446331883580081797580074275295626780939390813525114930186068761589950306879788376543197524066181289501052365955225942157911660705899871895996059245380455311788914228026863231979726920574085685616467333442186094709495860391021440268743162568526712288390589474602117707727718242122840495016675358302840436560733432820722575192697236057914058806068134701948532430700782229904646308138883738989124351219281778422383271709896571209378417112691544714057102449045772274820590919476622848025138436536362601938965963583379779478810167887223607497759886175832689678412566090134300973670847317232387476117211172047319753685857324935042412239051352408167851901302201480008399240215276874798541899673211873306109442915835990450651879273608379733600961263155077773257853615681437188228829119475008265898121442243052040939814608781482929618741146240500101462330840857157847066727391788679161639545377919960242745424872616978875602286801759093788871005119970301418127563352833703212236434171666542054289692679776413271509358035185797558713735275642143809395837398933330946059477892425025723249341881950190515520224873209111184199472209944466026001365046510966730528746045517511146526541985599649766145784082935592487441885895534894079607997943813576950141574556945605745188313962344365623434289617776624586818510422167501807400283536360410913643862177142398492584109558133454840973988482658485809241902461847902006506668782254546234862417328541884779904287341699590880716833472541407258036273402271163484188408058571398155198382329131208372798022748761116735007174110985266753946358648399061646213171673188785074781021922391861748064635908755128330778243456627779107709737192712910770232169180766066827866033343959197217781020601861277674371168272415315599643057790166320037364845406395514522184637229842921034111252538441734125870746428537652476037259544795831062166520851715643835092413736873330776919475748528243889769965788789925341000499812512119329276768233923467521841988218832992293930257745149865429935999145448851394845707629695114337879217675963339997248796913770230970763900623644742000423289706206706083366390810709819188417500438611410947224769343584737641528133743659880111485973991467953222724613642875871065169090470333092789622528723249354557033619159008522169514795442235501741611969847743036545793587225650794091990012200331994950387313567562779389367584579094537542153689671157991695207130439312237292714115327109568145254965413534639683338098419706288757180172450238845697837177311128816575893646400647696773990070442332673127569725773520731241285215354707746828867505424995931375600024955932847159200083434315374336037761395993967523756023304453098611682642024880877872396827357094445678884228971798404546906946100396356872066811049923887511841007668066740464238282049571781228693436993463806102208183348465830384287862369733772649282277043828245391422440328164710986288331861373008916556465724079210579084936996740971989917397657506504209762764959732408224503162391743705107886104375821790763809875133170068004918519890818508426854802920073471431776377375419601911005662647732889196392250994069682526740463244705673125953415106938572170290351625012439791940272768936406197228878991977687177516484259844969402230749427253979505735195829135781462546030367150298394315877277806411145133171885827427890213057234771312286591027035231431726469596869409965274723299599743494023586415707497133741643861869333325871338343433589411212381329101223814863139361701558549048132280134264749555147054533915729838674288797990765791405518585473678581718804327000112062469315908937865204890746113642514179019755607346465166211203471752888945262416175755644562379764005083794447732927614895447524843534428825149085743408994096498170965149462931639842992601917037446524958228780728629229163893261568058774439030681470774342369694290905590490677698722110290797422827511323811040379449572254813188131157561419614737493855893646118847148420256869514250007112107113093274593417935378864997424964790903760580927244281178281433526329660938130821452561700005299997552025416227646716525771745027102839854207341508244588270480653475238162930129773762952760412175227974422214595759549747085360303989606376865173860103097484988084879394153135009297368928345415704532493156522821714440095404115804023837823226933899012417616526509435221268404553793343462578755780674254469877435363871773804654129934114881846217550099048609479901737198247720826851129887965763673936960030150991116571447314138807281676078314390319503963103512372659901519846908544330220474172364497124780518602740749915136704642103164427588246878665296698406027426646763208362734564889814279695998623060150226866097890312460150785349606259443850060284025272534072270377962867245307386334914579490874379611229414616128635334008675524221518339452440139963687607198244832662686562292495277011989737932060751011854844457224224940455286270428627307895818766379041459758790750080346993145425609416919068129392117393933380430219672685036266873486231483980437186713289342455276036589903995830935739084509319521815598337473552172146673937651787637520355732703286613605578531008921865665155816416857532795062277444188540248303011858030019546834222780483607327409509154073113921127726768087511800988575292815054318823915201368042318566795996857652850793748771864042856063352225974042972166396692491337938205285339279434110039570093716620709215669863727082489406532206443500702451052681025776743213039121231201354044549233655906168050384174162232986544066031894726416631748474751169588947346170024227724535590570851234930213540717812916388646240612054922599318782521137435288970809077273778417557476579539496598735858596147027750217088550673874671054751652578711828905511141966681757666000116895527777369509758703522322286207818983010243867058332848824736827392561821869338983355787150881785526728561181553141438094406355947764214119199951659870827058122950652589125569230736416745927301480507288219979909642101415777488686587000991233016040127951694002278858132016090244039002897181040100752154061420592062887150320927458384708289583388031641509497640327764939051816591392251592457173938916056383206873122719290192284049614702509154697673200783144987506487041687271858959890309501669862228514498720267742666845867530684626491783116069730472818788856358922417071421602388161065716109148609620583298414472958383211638760250248166485241742494061428473713814324904171284697681175944344330868843388540099007443066425208881896782152181127548404789033953640095255664280048828152506954786282299043709131766442225320645371924990623057151520188683539306086445086997569966673538288190821659470665005086641327391062441094112886131761908264988541215143839931887331893213692984156442908469788916959919339140975858129983051180211820400641840064696531912428839810635695781395181556141817217840605963855989413309699346301901849661873719619936228446806806833121454452980229976860378815412730815152041563355637641994902231305975170653137453998343968485532345099042618255859590960866816254553222542437023770493395562976017038995062186671607734126612468474754654986575124598544622152933835620484331213931826295673486784670991949331511205546279412589914756118892051038326473182783564459313065232793938298156053607648087825163740183550349781752553919476277469003581119228735203619594294220867157101873331706195977021205549249601870053708227391918605315397996055644500167757565686409125997673924234168059603559322188608636387715200853225002748621416169792865666617699264295134439065555348356151040904845252611756332784981127925416933193078146475191483139341572299204298764358400554570035993011410236184805882660937441600332859329066696925036038072595706345890243322223368885140343464737282965617878328366688588132149776862019295090623759054427198497137964749403784238614647270865519163559500796986963876319158176029968942074183295526277182084431882714945981605427869337122178938452430425232531200607031008316605726394732982486753849601766744219471568271496978424015167253708965554109861013363389781811096608015465181732318200932456918875581112220123857456754272721129946927985009566458264157620579236268514392583704848467309961808704378175408193091597525971957989287695770500076968669941994837062224418410420297351248328118915484962567858542081250379274475403245072830364188294441965678356543020641672849405591862970048025240111311380418362087017505323277022565773850961149127183020974163025319357158992199960089628432498768558469836617185545359096749883688468920048911672346434647006449768783225244909254440946589028481764052183752187206207631160186239618188475190496412419402020015601515213839146783798421633195262066171978222403131502206187086499854546747821161567770654140986466246749991487485279295069308527553974538618750846318315576225031536346487702874812026684984525758011729493542656477867711055492393050396258715417760025539356378868216144336959473406759097909044265310624995505640173352856498241559222573095752991787511497514021585465398885964247381309532327729710180013125266964668393087108402751451991603866228714948925796249217216714728410059809709443962326955040508619838662968574809641251228088114566092118713824924666801772612226821150323370818264997722233148384058800796543077577690341407198852467616749625583886713451754932560251455571870334624634751640399023677496541153296953238563292873304467433499185205241437134667839450984314538465121192916053518941274288730991658107504365175885696360313539626196470820367870701168261283003149175915699337149287827618801394805788374544291827665097549780358470402956395284081489152800778847266015502284222438603791698674877770223176040003202513998602702465514221282218432259372122295882258148084989939734133376717756817762071338703868348213564168071089920741710670771001771951526422436595992256360896188248039809386327914787858645779188851202574697755746064214784071074408075894364532430669697013452616905205715030878839362471561969089196573271433697703168612921929526130401668010895016464041204453277746452681349254026624046078014810391779597219069435128762336878490649454648787084995631248174362439836008420341982083100880058004483399996382959924424480336113391551975817006386012148557178580503428296573129433033070049933753403699734679729819582400152525694028346480925467500867881190877106327414603373572146301859303961694988931301896551305393439044443654281633613127862818950895289387984877061475694583703242585737654567549942334256280043946130980352089109079153045487783625048218011208848387087369563272923985044375899205488711393471258731402344399605343236044987046490738276779830689873086592498433745676560613689298124012255031349035854554310666775921075000820635340406119507574440748302718780566569058139768491736819391196177570904458938455206897954622186911094275718629557598824928927560384053782814678340826924229589531822057920539757844982074414238152558456554499483144024827539170461287127754108236252303731017443550583985565877001933362672482695786566932969485558482569694178547446422181051141799889785361435310863449251544380401906622888048231613375568399103963654791456247410760278703293673278650992327387081633480256787676463451899986569316186143681982223213423276946580805132580132950292661731763047963817078772333983878827493676036541109475164980674605885157382617582418176031914313402497641785777325248208953362920588062509212678783145183135123441605073583962769106141916016124782708051218730689599094579606602080098456149732694091417850387589456149818871235259053650639286224589261621759247858168495890292965149869407346194351494833057716881400109476085349020890901754368462364261706035602044400831642516182913904511969886014760921243880542337913371234436667603486821169362741617220032608940186245629264813595223753873989666359539254471049090729730914287775190920052415888579139489967645633558073738299737704720611618489219540641913798740664256616999799991444178467801930461726437118963756596268921422550374162036163065414497991995064848223272101524307981351480291248957925660282240208197266085908778331727398857779118724900729333097863885095881670432643193549926153925023552288427711992899703197352896930469184942585272888557162656921685657510622533359025248721939057971244748705616921573178816642571276910228910370494333965930245239409858310857607382185186521445729390102335696590837731317731384284215863826454603502503830651948610561097966967606581725382646775229294941692627179657596458186580856720371924545428228580271014590556748127485760348129044170083437136787668764266805326839636228971817467746612537875721968974356952025098067555510306368203733223705187057510173058189954685274179321163133830654099094546188640761210704834641540648178685288518875228928326627320639305552957527110572330827488311292761946331605412870245963470833220123805131024021529148423971208631312914587014424630705009051426316668176480242384593700150998567751874962643622637111334387318932518446703565161973685536914382726765334651583776476253949503262114952475015177963837662838735952859995942267955601837358027116270395366914912426778860929197171134965655255634966084137892262171785997883240570427682754638878023941342782438417834824333980827740063290213155771026238796918898507782952744050601064739862162532313447826044210817600686943324340287018969597012741057500652775013854724643153603865644663848041930057945148258941241565914032437880840028791416628951336263565351211879106726951432903397033836789203763635875806258282568735136595463202767729540677247036949132564951879591487744993577852352321073601712891169351552275413051004164491646481955088599691940017888695762896402311665641995899928765916363870282502010913112831458952000711854850661997966022046215924285698315353559372798611534194831850727349001041809047386540031813282423903667716028963266808922148292012872394519422454580020937563279309288844773303728589304222237508127512437451808628123418621768963081202982204436878969323798973136875521004242085196598272122127219232429262595101440458521510066958901754123734563808112947576767252789017590581662689203697874321310199639029884601636252721699771699263578480364191804231634571657933236518014338414174201620320549879819778266835183857040353944836737966654652897850900858250933863793740474967307503269066029777086847336558212863422398539103060546014106739199199228583329814046920658806307962297155967219951761460803066902242551084243694104382676481783648876179232550789313923206962922872280546700996479831694945528772973817006689165642779387052693386139470316868183453523731953760927622221602280696469851708514504484498858453408273757684405662636491007655963244882635605309356705136499053446823122685141102306795717120783497443673524442035022233874094376784563036628001149463105954611510098131077048949218936321288436871294145112191934543246294177433307639129640964714131801052918422631460484194007562380661029297317215316410648084591353275033412948061262261969842623128382651320450972705613142781581230571550243618878742293405078514706332142240242177816274181558701176138655956904304360606660515913210223501140092684791316076706576409931394968138922432752711028320725442575791273486891696334871639295228550587896351039845579711676728847476701312838449131084608348929348845809134455562411087069807974674844949707129539203144697240486645669169314836683585580726116916821297804084130568206601621846056482730203680941288861503012749921331473506075630803748228062629574219918506003927184515718672038632231887126976983573335824153040327879594766050896707206383432977752084633729743640648184222555446506154200852178899138790129809473195467370118433785074180923677835506525447763653523130786533374920458694457308321309480664865078758586225232289475642451615017589432201671459402976426636245359145980538938353059975793529616240277309347753655716158752316862934982557000384302765252513342736325320109257518376210548305814087563958675344068736432055514526590470911681938528375488119446374520805575259662372639449515510927690048870569473270154052325820421183662565241314752106691671110168606350747255493500256433781011088590111700569985112159470356489716482431982535817753109988281955535006379206435160784099560900993975772363589089950158094135645724501494460294856789444295805900159272753557848699091517170427550987335585470100963120378837365786235295929901911388160238818150309113116256829151923122729892554648858843564828269533241103710071533385721622871263775058543327867021329462054549390579423197201180552013625884911734797618667496566674394076544805190248047964393747994781498351769125358045398157798486700285075594836438067745562244114199935499285649836430271216881250114615656547981484421310560560623358704190676721081875579705299841821950537230409773548824917136261243343210761512243671080673366578128819044362397200276188249196072289952592722036464810668452142212906300670430960562428249950642849537397068438534610732220219294807644238584916230547248817387709436531023681383853518375375426635866054443342943640663980867948912345714233605798545566011244418071142163382213639724267691725322075650381604312215596999116709371957359810418856991801706542486657337571371320216175963708640516021777876838490747771575743986023435963779959766666072095212597860965934785283397806501214571755813937045827991542434025647720607494692713223937366806617930900597846207969176074913838293565612897822867939763425178535824850167573928448581478896704208303602025446288896372175037923261456288836323804078538642453673254447400153029089507385423579007496784005930041083080535959067717957089772975706774929066015079664708613919759253831830515361710461789740839827262086685937237250988681984179351246421022110887875576072834861191833699336641814635436434122679916471168133925192745194842441255328653095366282539910669708197930814377762142558030985211867724070948321877664257601880984715070657782185330117222595850579682645080806920180037185428026675974561563575815483065312144317873591511550674102627994274289017900504143951690308333475189894498767894772693115389553184889685617635328121733507653719166855838106682587911751412895894487449289120540293912160326831640724107149372821408613000336869630645823074615613897338076636354614552141195880212276480694035729438940932436029122552525197248475168883795792644781324509492286624478881133012880172234790662802449787578042611555272616381243664411898394704284818797755126570992507270389037871812829954369613371603778623892622027947329588261752918630413503035191576911713172342508534222800204524734083595139988790397658086474411388221768247737479230521795649046023062460802794902919197249109829711750871178615333705284418945434259496920689888090166328670345316306214200657905581783235254519909024832145935936687480819879564784034355289113521745787898704173168734244127154924647003651644739201706844258789053462225410578397445045105134566931475437208114268814969094785624331678028485236078822568178282456027514108491715693148513875388843408471241463689684275363772497138432921996531714734586323975099815197546179506145081829883421395866520667257225766748525241821949861563973741898287135965193372903627212249010706050429117932074911298296257196306088491282844158444646076870669545372450163143056486190448878397402803020937768466170561688177400304303185508330033194702681345373188957698266866023811817252975206267694045904246630427306522412626462444852499719879207831511310807988169098430674183564211485029634814577903772541616993980960490715655428340261151780893482596313447420766471415033626683161036761420239360074958137857461039685435191888896857413529690080638026904860548651550849036258029188127793213656308874130384058743505259946960404694113272037647489954603665303670397925390731644299914154468808831485295424837457751967566471462646487676549009929638728202739891258128311297989865175690864260866392643415836817484528766947693706049702887248161529142818385578066677510709249539256062709991677935434477150993011900297933203667514398240000620073300066165339229199200895918401460406425136204757869774160037112454320856282127459073169088013345050895924328051982119476786986904957235611732139401792435588107717425501109032416785030087486493616481943476847759769338768003928691991641064030360269747778323397314912587401249999285281723223323059225308515431573909542202894668012739902139896015507545743147680413027869898111444591988021437037108466015427609406244226243800032814168618083164756991919782300137115269642120606148789987235431834205185814906238177187004355667585171308821125331249844654231480621033693990465109067455706862881612321765438952008946826791859066833851124301968254387738497779405237600491260518489711098005921028890662672898517192967363873974452855878544159217367019196187697631714563885825276923358867509941913738377936911166293134916986393216158773292654880919038822859130752615589706367943063172334815362013917681399516663587649491457595759030471474725953732558872130440979847460752116308813055368506218704221100902989218629706712349922817492946961317002736610638514712391526787275033688789613267599310354439443888182060841452498604745436038031988187758469823912984093313189377662607582119180529533560519810295365470073054614650158037513676761852407261657339198596577827528051516344671135984566736975860271549389845448519794274981379592453562609610235919169658584823877764836351202115918103321997165961635034557475487012121329101766222992423648268105336850740751037540450763912812904974043526668071274273451226504308456329179067671195809169294224911629725835644236294159015961643118799633298038101359501144450564261949162586277469648930513634965584614898677850312104719789835879645113764606583846793000630886845260078058735784547630100937787939169774373566001754798715898902383286109933322841636878138645319912053467864579961641340133550439352269018107261317551124614466281750979590538108925320732589043976281515018512166473305956369935281101084171067873286792978545205849739872281555790257273641727262688006858565534644379383035133874204112081484688511869559354982453228783655928345267828295194399342589760893310779781893046692587825735105172129691845959189044508381542620103779024293281496078927808136552542314089946496733825116278343525270748105882749739134862152325990255509853960953609549175254812041819097527737979938799466295628499975008811992086001501383245657008475827689654338833411026563665504393259377265305678221382208427255017818302217723939526840114632756315851942317886756537046640258224450422824349781553776317650445848915000189517045003500958294318278558198700109982667534600792628586960146995088939644995648655746016174017697156172722436494528041133188718764882715504146178799154389452145822381803232776479182267150896901432877053357334973536301057504985925792729130019497999581805550905457245707287611334058699567462201094688715013169311473780821088933688347321630750818030589939812530191361987030703329948712409767642522677756764845498837345819501282973747577612034795489558017474329423924163709333363810305014997331518291239660004831566952482543333659153374061966566066168748178833885426296569882778103087062181754374376540132956519045095562761873687112715617917197160108529825662797899887338063402424933610923592393192478955774682893763410261828694943642182086812561107253904704701319528026085223252867125144095911050196391386227242195012116035246987863305176475214241191251290099168444927049872566529243981953694984909805584559329875704733836268703107256007898144183235207834477363022027660505071521822294100909872359994239218974174019737064126756189017021824544853146905379710068516560315748342784739125697837162525879586791859581306038269194260591715049122159439878037207561352399727762396299118594400935499543853269631082833633095668575429529086649732127720290241265249241285650572355363836028936940229229566812239127933923726166324871122834424705189263324659436428852815802517092086644044950832140475877841382236655108922784100910645028211814884161793516326815648959998227408018195376089515177887733987370246647442030675394224577108421977708286497122464105723880969194602890292832176177554451831526894868833423280509143549900941297241902635328365684701925826510486109965901248061851308637791822257193630759227744808047049103331948264442692589950645452664576549278911413207233187914591295468877637569907874797095159479950617935160912561555785214439099794440327957409430487705822288645023014473161390443485084631155757471012884699699208744773907215623209533098965114897096834697422862402861468980933121258735852352825017731404146807212175850925164647954438326900254239545430710872117812583483909744369827015773743619854865965956981536305509425435731685774434913076161862457436380186450693955626560861564968457492899143869207752897850720046529153441058043729497642108644918733938180858080370482802191617063904967504139689867958462722305578365131272060860747557557500850553740587243879286878925168138980619919458825790016203946176273595199159296812555680197459840769988763198280729000021665052464904607670479246328071416901694498668978705244358397707181004416048186399875588939801458737467312318982294408090052072465368023788270218323048112931252493556980513244757661603684060915583076236411295236551961396989710934710359242805095635407092696809824825680651225123217676858242876207279361742196878468589971901816977601820355848456544617903645104711740333061353351633046026012225708942186128930866347281678785094782210792317346552440227285627987128350849887939805687847872654154344749919362017888445080295323624627392143042688354493418975106818827577698922055462227735033653335096125462075407847196906826364683538244175206247053089753139243730418714456347136390597066594631577651796417476068417523911761265759014994046875447179615613419061013853340595978724831673851943237379690887244090531366190342043547547924632109331745352287162159035609570404773342868213187476824781837040743649192701631215913409450041532434910086449005396005388260030185148499242832638425348849441842992568205935044542090182011417872221273513601184037327815716481891329580481274485694037062911189432365070256408772557401619836336361044721464563164275366982646853233495662260639259241036406790703948782627611796155110712817734681084251896450069849263141387869454945504693043948946422721734758498758271203731529587672490342195129516706563997553933045032722060032158808105086622483702142261823330209228116779772807508123247642955133992742167211043400288585232599944206698468474880932091833108824699768272899009309520198464005272666630467514659658714136319366565439792670751563076978227174236285043344624279403876117115870588722312277319210979143134834654503975883981530208381937224543167298094201849978562928604479059684619744333765934137078994027376626075980650836751229064061160885641342171444951639254033297821420328234619587881547027115412215002234306350373306547582236330061368911807373078995436601758820177123758608080817854044251299537572520618456451521288621987776640729655133585128712241157095265708293458383122881329447561854008766428779270054113035411489119225007807696359656035428109584767593264743822730420701262370027287344439355390201989948373798846401566039748398062998835994100827646709864438832347629583721317680004094725606049196495666255741811631367147823375246669670373902334627892170055492095113624321496011062375384115058364594750112464291633829793644919689587513764880778851444384700962401539812955469398929914724058589579314437673012972502958223724367353800097987023220270975074037073531661110481270395581697989432395582455609556258680170064289401518214788530723828366993156757736235457180414104834999158907905779818081851577740760094274616116499373030837066343458087878921508330478162530615780219904414788757730508419516456756770108228343159175243873944854052269212966385560503232984055222740317300706878478362543487496469705278298955831309733316645510771999083983610638204443174137770001710785269768367986586640213802943706624482476822321016547297125337492776982792146080854057702612703826857171527208296637414531103697065441193287679394898104266330649419212269626243276274312588711934994760678367375411369991974494746435768625056151725168703238661413654058822011980123883742734105250954927874315091777404673401041572765868455710043267814459563912492076059857764642017330834990061150676444934190200040101686136268211800252207495813498229546838378612846147758438917477024767881535065196218599408724357199091419566775330578817492441620332585609280379166475052721890833262193453454570021582628009841558022176865010755406037042405330793970545009075963155496597307055229233015326239640361977147325030193316185004278995266014654330741651841545601007765917132522478441040709371296311643954639964275437524462353713308182651706482656085130466882237499298536752003799236232102602598161327091530098500054345081247039181680170116716790518737987407550823267217538730278246631191445768905423881054745899240462290871243835269038982289290703521699061893570921683496091849896075659276050875272173290621604826858869637069994932133692492402957517454401942115798203476773310952666056713803221311175810327827561298987164677863477034102797435035525133889622921256394634943573798787400230067686588091285089093928344793135282536533230415683873021049493545283877065880154700167593533663581581606568752587769871460473897247723875642507787142840490826155151733183207513202535409143084272494261286960304439039823553022544614433324344068936233487612519152810401181857929325055524454110363497019847387306052085818201128640594421135715803779638501425269802249584342433997939649043097715667996935233606315231909869527369003729976558781190391712391378672771348653635142601229956368658637917218335080858309854394410098599479592764632925392034323640818348904900558562910327212419585623341863733824670959071870167531557325785465514967831446491887601312136590247833257604346908213963838696409130259875213564491966871883143144511075415051974425245219633125968371648049448056014597540610532835292418896359984750628748836905491383266593709132646225537290761282187833181924346056809877465088143536406918875520364744374355803120004641006615727651509265604494426591210256175131186440498509502743844609453055029814252434429080827186735732204740544421345565115883619468353753334337347671029369601407883208567896883779385056984393962888940213297207491457002351600836077375736440136282235603478465240616142434992473639998959287351029663506621963185956136217904752356605445409283385527349911575699684180220954787396714369317193136598251433185693783292257664936181801529608915424162650751558643533295680378945612307089468300006897781010564427397636547596657236414034413130618673031020998569367011673395158943097704405773567544660895779197488631098944726882069828802926586064287245365714155298146326493885918588194506707000037079223841669079852530238294727701094419561725030302054058859359280072050569311340742105154476163246064700455768802518003000566134278648123234970674027912076064046376258977712975351298454266158026721559488064150987347088629558105103044423279972083943083758613566551351101897707614963633847192031471634598052362108093094328586926256155518104661518899262859270058546605220441156324684605522378188498991942709908163121229276093983357726113340494324147391669598896464781050309950153220383792937638102035592387427471956215697549650347258548009915701972654240523251079797426711662207996132908309343252670595889263040418341522005596295849172957753921695649972931602889982260858677159880335908247215127822400667259360790649552613881982779018128927646332237474417620287161448178833127092084438716994935520692550630218181414094208597630319269842826521288071606497710977062456983535687753426548329178171274851770473003205304348148638912673545197907601800327476919685262440945612758180042725884808922162417339874076227449592505249016496656333992707661827453405982218151206769669762791532446849011887457133005139708189347473783590233039557648514883789129459474927810451714504801443965402500016280566621953033897270359965156813045745810206592886721362325221683197677489876102729964121672925081558828715708149813827929516451857602283450770647725429238776367236691592292810209881044122525044820172970603653074771678534186444477143699452407429202561664846113979782737441845232429735347159692881654923612606038470243033712844990663119470094121538864882335728928957458667979832097461433540595073400778447815915599046475593517977981039898809364295749778678839758920248351690264835486723896248364230701528973212073129266064103724771261170701255290758133528016231755866963077224641454297987075962914231150426113069007507548915284590899007717678573171825953336590305637474092172037045135182332536547587537733830493440688896375251677533685071903802306694566181645054922903985584413481279183857117218396044596224145721406100509716221009116499034753917479181263355817691131943925467853214935866560377228621710571733691498323282081060293287515324631920967802640290753084078675489860088404967658183509084382686396621663271304399776889818351685439902852028640445182289726606242576229205547559386510665615336044360363139387649357389605903619585570941379871302523633775594270865881628939824979043451686611609846993289229017662407681991669251502966460379371153966701929187166606999212363873206232500336574391073963140526605944755495819289491813405660686917067540163440483532978787620517071739783866352375902164153434108467376328800229831709668435404863189237348861937509587486532682846545013026501645861279663097648668691940119797408312772508707099036947729682592768694855329467019100871862130378042909292033013721236902872415470279759961266880648050212174692104750662491664367176499138505332270845889855442300239548052802729155967973592029880386915059088829569048997316150877244710463781001765196408828761397071640010699460105422646493872552847679167842769193156346269118368892220403703366134653786986485853088474863555892797784566630121433469101001715752855589239515531973096384701422832967990027652498138764723278050479563307668294961549988252773990963145957975840808224679977288393527262635343448649550521993436478357547496691212691020275481262490972342681028323221687643547249694313943285535639092220309208163954827198289474806377038914581587725408261357419246596740096127807258408650658768980237378258857291933681348213911926851662883503743605466553003811552693516830002832515642804804930668527541534248671563161168111246665166292183810223712112407116263425320964811548578773724416200551090986085004912432603784822402168056335346627017339544855864510462792601804129938631344758975968090654355813879082222349971928112183637321141076165752629232523880090738004534653478177666561874801097869985080140828244639165813640541438220835154799733226183753969706986372516853968827635852958312208844198297450014790091906221774107332132754743148494869266068999667430955814852232613159937551021976681672143383014076384869944060401391936774182941839610159302015987851273493940228754295014175367141313009742975859751961023284783563926584844949850010154929663729707600173122001136242868827198267604362740591423636769721017593424207279300183283003716572493753493786539695893629297226653991202605603063335794160587310389331023121669102737880260589497200156619108458222893975818129913412397216621497122307668670356488715025268248718803904761079150539579011868406755044851995992623971723095903882756540603206988104191379464144537040335022288852266514746261439478775588770792324918918645381577036208627044107559535578895562908942954984494252873431326114089926948871355865224510054867688763348799824121436211836459824255192710201669936963868920773360904128960086886730188878037648822204190590148084319350858126169151892277240275108718472224203506284964333266751334525119901426184401483524658341099003213187522756561151737994840864244435607842258235992147627504282878953820909434479259391526038143385578859978524949820743130324244534890344311598642626574637391942979469421760132348677485965367702254188635721136273352614908231337455725147509417498579029090680787918033900413183153082837945971764281170837071453218210202120432565864058560146590639158882650061876453873098594735481470686777497803334988791722614345085689534289487169042086344124189611113396526233426110977198065387037591063102277456142029663490499609138697936296287676895673274782984990227324124744963950108140853792928123774356552391120438129925589548171089442005123164345313595723004903826354944790877104056618223064577787930549345983043358030631579924458278899206864711473099775623238483274203458624148695913420820592925649614002631356863242072383360882770978010395177578054471809148808472560762935826401048647385920548560725648018182914362643132735448628408735681135144221464348741185161337469131280699076588911480000891550920060904003188657999280437106950629477043822353297521361406600415944896714849948214984038910722975749222406561242637328643345476114897229518542920954950058119541638681735049061607389196570524739732851611801290051141152155907891680221001166902408541005694775922121461922935578720103005465263740784011677621879185359474490712948604047586834821603686757681102601142821763585122893501971781537611988192827092252772484590325214668329340410515553554442399895996460129972186184172600644684528889421893243656407257654932785207992018553038610362006556099062592272763562668626672434164531975030605709959399211377100411572698959295118101279082907487800256671370074630324867795318025891869253012812686139690024748237335100806445668627947411695368803226200400719684415073980239224098883699382364407130387328031191348774601241176822140552274266518930439488080695899094799828761797093863039994363035361902542356320608347775538243118261140410836760001089081202469404711769599994305925907939996442035256200606789890746877694526332054030986391882310679104782834991211820579844721081352906389016521085746004547686153589651201319009288444903127797621911184110393609536601212594372979316373258327031906387885262468799705915800470235720560698863053877943117204332867711176146953551631854886280857895180341784317883894454488194276425723220499074039388234893992133151930159300979527048042357059298819927342626309941681968569403513213417710581087205707279584307591813472454795341819968864697573636003465627510152311233446077291586320167979778635854742940951929101628235715347190616707021631407147246052409201101873744225714763116460719641770279662625502799655261158583904441715929512993305131462051603216815902231080804452462129485037847378846472456444192123131818795798157236764327958378026905631101716659113148539360379217486932710741513336053002763604423331783448941131409336590505246425986506295057524600006544968693753673320867203733338355679780635776683599490933908834939144797069144763305447931387323553209369526269095717816427880040376510282433480209472183456037556357354620535428183171639292837666510978789625698766388243856033343208792911983477290142365046491793504932735414699929401416753203556930706641706596954488622276199335124233338647979742320337061073125969293829820236859180654529013749748113878316128185480269006137188506063748046932274262880488720948244041896614189643270029373410513177952552530343364791762387392438933964551954586761009515769610775981452223797036362803421030725693001594933818823761955970262442374101313180409048338281209303781497416549513245415645323848048095058010132871751217581022917664383789321724891157044076266579827558682064547491390227253065606855191546910829654850475788370226536735926126042178895722594012569364756775613235044054230188410465972826487607545459327431578579869849808351775419742692277623904490285503213918919309780996155524124890787148623135002558064472451618171705972021246092011547957202036472112954186174833990621237238188606420615052911921251031032171211938684693315509344975161283735583258861615002269105032861314191635747371286868358031011240596569532893744397362575905710537075469493400744271887454760210822215117400491296413175779775374603078500616750961533287361721283048658956362361739644751531939471562546937494567645904976960002249704642197860367756652510604924963163497647022202269162948768890349409327268848411430236945789936485900458807415480463695514320808306760087446282312196098009519361004274618553779497464041023205703004518081675662924213184412362759788087277284169966783613921742702623201049470471908524972160077537543697967676599058385089905237893863860791059207321455097700303334791049216760710729288621060790281767650260831776561176827373988815079596945103145044429112784253897513155867191364396504811227261668653295348049501882230218712942356341858050956432808035544492591348524536816206074003479326817653838534874908979236523807278087294597726226583171413686655170122807428463700305172113265364609681386955553731097134872810902631061706182828910581761771421364181300316679786409641985700435496293959176035021867537552610178074555036419701479228407335964876097002662395922788589628138763187561796473307658025662242029014486232514700414767961198305661361177137047401736418744491200696336102460880212555063305375640924458177157603296291679451133192124503869667321279630687002886438444864927057328272358570824735030425989268821791225385292916099489120117260570118449118228951906184809331127281506506795468792662764915000033599185730679476316324720537740174111616862846671687694921889573735675081807729001763094261537376826980057017425193225204897718853167081720479949748900946918048561988095241548823626129826062520684830689504129172709851485278368660937340197160224762761134384302347716950688262191209231907172892703232696014942010077960354237069693456159209951516852870763293021167406397947862685137616186697862732255758917414535953268397082413413122729932842792650172045317843367570833982284938644066642796320518459252888856936195066938192243052834818821385392624125012088630663116413318061558181432224343961757587051661897861772870846266697670004628036262141978726403049021626661055929425132008906237957922095430070997435846901404460702781496484149107542012476273154722085602393909393100705293099626889796823438545745816475685156929135617544751797305758489963097734308434981877867913075322906940642419638328307853497169877630361022387361252608604226287758431911706521768373554186962236473633413745215698447853337580699676864759929436037165182794108384777841805474186905935986852787642837027113336217800299545749186965071379538773371069504413966590062575161115121284756697204521837781865077062930935066725497275305595386787698759729825740350513820000950775862455442214054083627884820349458234449133403932785639363113095293922925538030343963614614199582634477615605918201646311877023659341076188317005278295318738702700830968792031807637342179451043069682774902838386834246527860984449006372147774114815695384164930066339160674602418193756929335488387244727689520280877535456966125893609101192404667880796884745272211280589384653762025586127523756418948362908177626902185866538035883397126165613728613211046841638103985751746092558157230802284299927929462941950927007696194773583483931171352215956151410808479124398914571725177129703644990033173667715470727588568789643359395685525305099748160447009085350651709307925559165708725181015213717414677292511628430874436056346622417686062746020063605893451356859136336212707737054681574030729262444708909739057561732109407676311025779077526627235936245997916159732565278852990300675107142997321789139012029702544722703749509748816164993120365669390265697839797271922246253414203142484624421515608337068693067209118306347668989136155361048759929285849832901307356828695775570788777044601425345072342670408750601878037080063520768445591937416938677977315891679705932119583516502209264994859946602346220626545463152891566925237765206150158106781459434272154806968110441743453749449535236398347153030638851265352604741760837424063184745691827969453574622295196948672813297425701798103019205691197131686540193197149569018452536091030406253002128650614571032683299715480531245116400069760892736291818262174183068187228891631085802262094868239929164852628493401801660143189895452903317048015377608481284483725648956027870453078084765496517675901326633058924760437088655956489860499747489232114510468780111423340026378718358977195214788791349702275772623567776613907926400132734070051921964302828350155071392226566493586919024522810110136135671036062861198672933041665601350366775077988388064732309536942701518584143770854749884281915565335443229222191138856595372756735750241943324059668827444866686886425143468118154643896459715660323841220303575016359177152302878557126653940530457189807964579232501696030924191096925455704139460028114066902951667159252005747838194970778511813364928680248293354859739991337848296730191060710127968120680155297389995755903327791637863435360736028048107363528766879095147097063106846484339232080831573522240127482456397053449993370941627928532508403285641853606731590194634964449648312135634604849340670114905995410117837883503677641324210795456978255202703560710952384015260804165551561231155915791143797657439705554344836294337490344487551570369736572745142152565658108293449068814606399400885760352653125237530662736752618400586284861886467454514209932585655145373376412161810889506528027444466490846918204651918358363083782969397246940846151016764294929125038367818198333614570343787349612293930687422501712633168921609496005761802700339725511490774371157848376608935200098656067491280659780030307010435334980823219687185895166074733404082933327728229913956947862984488648567714224494577504287859091396392772130084281257105013888521955566362903547866169790144658081228659987257371898025500936072267481280258486930575433081412551603208770472572098833585242856316880621787404523139932765344351020795624141389347411414053062262615747778337559902245114091445821360696000246074889047009214507559596500160302475172990349447594647208789616638991940852022401423759883960234069461667185186293401440004642053707962884642291086646712532125772144196489589911885151413915415054366141023931453795947029708825579647639947043653373286241660367551909022490959643238459212358150901057420757845191554492016171500808726013843077071517883878722549158495857688319257670027702292739399123035241236036206336700824612366274151787764093290614827040278561370612705477233490446761102884373158605643974327075833221394057270000461520336774336382805506686419076290234554774398863916367801442590851221035521161106496818170568774808748208470626029006611219377143432925785448643953909479114890000898158980306231326588575652469484932861945395004224694030764867865245853720098936095209424774496197762623734345477526986959713726232441766807957928597255035267046347382782387741839959186117700392188861737852973161054754954058059781284400756771742666605957707314279388532058192645767616517911631196924234859762487946690090966842992955022172601320377134793300354125447142905234808460431987271481307451541442727230183647611654083024823290002363140846629967365164921746199130517373545735262968010352844760661156458228241314451451098610247275358676930975037150381304980042707849192378418545215914579135266967445892548606527947725044848508668309067857629449871855514337935176122023232481770199784118640696718557194185881925962213421938430190689432158898451998886091717129938075624910096116873175505107560159397600103913963871119406686325368591340718930451378946762785310193476884081944619932095985611187360414112650720062077859391719594333486751701378526862567703392445997903790052725095378098477265282435758386735921875534380026060890427288114600002550287267855717071563005027424011490750612003871800008789101058283064895045524667569896575015101122414070375709909829090579430725917850281480861011529604688086739796121563084942948767939527092239399735742843875125114744381614975092555998297570287993923477288410610849833201186190202161409799829302490424105147598230524351147989973661050740493683068351335312696754760708891321109605997165524261912940170990804066340474869925304726712356424509756924869974086289922406122941464928811488724748445618696989016700698991415222069164480404317230639215172773241920311311603903095215517530809404741687201611324067229858207298169824540247623448023584928415815047791912325080329746453483299194903774680331360227279891730906113275978686016796476071070805931676347556553513113017631554892741314320648241296828165863184953564831324447324874438333370931977181208715356239113743308339274719353795111354976199735531512462158279429327973987977027123245920767429064101749548397879445789757332409953766645033723088119949452109319087380227708662015202569894942019885053644792935079436140504664017098977328052726735482326730025312255660230670446066175449960121836586103498126246299146879878829143397265095146851988235941477631587948936665159442822093042957127139306480223453776114854271111959289895485653856803163608683682962206580953796579913360434317570374636536705785782226472209486370797075465897633963093823381170529207248298405937625186421897906961346451330279356677089092055934602739360677983962033848092681127975841389484308323951706760960737516055012018374768567492234671830151381524236283184534978590236769563972061394575261096602273168081951999778460493918626249182893799794879737111963594242324075352538466746689615153460961985922340780510192198612487879004285541872551314863920346167589949580158709241148830957530588043713126071023361641088621529079549184001998806547570753301147727739354798356839811329117733125292844405866617516086862346291090417903847572240534776308957897621406665202233175713925601425547949866314161702249732048922621891760142614786547418743588366695470433747048139213383596990019521473416628212084177341564075419347430802490538850178109300436113563341514444894176039055039322033704217463722011518722774957045689683846942466371522601786609789146830420699362636831343818210138367750104365398414797145322530733771060959952778290602418916957416560818301873228057087643448506218586439099019552945258494559283967351484125213323375311821107904087550844078828106386052840356792941461817550964964633825890297994179623084859118720926950568623301208743532453635539817741640917850070108441003417058781112255629620683629022895725999296946264626682441844362968332423751677352196223141302346095328388371007028755456727939536490522499735026342162305148816758718022686031112739123332528781468883126730979431491003488137090864557715064100485264600608277509365223741466478347726166677482609954434754376870520421091029936142578495115191258683583174686647511735273688363988594791606818911572683681013804047635280256202425024980906067432981072074284683572477487894881945476727254178033714973796950224816339247679249321885779103093557522521075777231683303733838775016755116290646113574383654771477396120655353035043604046656140304174429111440918327533748311789985717777250537722090378675207297472677783825244090339775090782922644249708635028350990027305179416715502891876984112404978795036628697757842411342007691086168363301781413159135481791835365116912582308170772436288999846064299270617589357062090985418822471389297387198930043763161209877331558729517774191235893113395868761068863636270576293644273883279830627058700419422970331623902050445591779747864313488337328703994339888607411086411836201683601582437759517555347733844281930983673502612685191233130389286170584833645427532373067011766577997930170156801703466887968223011862448125706131892317218098218542073520103325671716825808557753192228570996445794308629757374470451837882601733014113316125357496440880653426682095664413241647324499359845042645744361611352983103276912941647208580945774701027022861465705990237865344799257637198539689840458921250615913109889307702278315414674807695502473765429773431101077118433227395454972706344898912180674544168363285673888409548250340576615256318062009589969453334134836602510017101921213011064668968898564188955446046488015493208306312084996688986933161844179516844166515755799867623029139728744564730594954518931655656147723354633509138014824694399856957701380462373790152726415063352987930271898451277951614155927752539790751948311922756241991095975469672719275111103634284654044311707349461917316035281636902990307132594308747911719307971671353420838338769680697302407489181798699206228121553012813582931589969508894639411995812910693257898383048387474782527556612896199001695557170299439915496506697697842910225482946945712608010785068963959742840227899902140162213493780509113948856954718683000099854684996179580383652401546164909489794358678380457037968515357969733305436556934875439560063240006049837092295615485476829681204290370289970158886648778978306742786543260831144789928993719212552411776876769827960914471720260426095799373653783972246655839612070751831674543426854076918163402241597342817175871575912857757614927288497524970970072107520276647326172579702617539701700451646923290978029343317766063978427170406398447054560178420532657200400608909715303582087433173969952787089422233272807310858309372566851976147510275163249789013789077117903928125267299008761515019996002341002402257396718106097518728405837110861459004089369383532507959507164819089708746079571591876600207357281679048058357297529518975913521974295790750270301831793016982583194494813446846250120295279266455341371860193839281312732844566530316466253756129279648467396112047287656273144989963328275934812656224987168083519356155477935159836594834086595717343134288797374762527233150529576008159371853717557166826180888043797664290427121149636591641138915528352179567412052775951930008322596220850062937901025738812960664799147824323375700426525296095167431622443609614370423538135546349411402697653897444669488279512851239398078169844556638163548295071937107437401837151448414046587941113684035427581721538620603648380527519071481131487649157266722282936655995422351649018878073596637526249810893219844413369621411176838113480577855391690931695825203341099536698459928826256619192189173126253209328396041580302367034322012488759141408833996324539032411740621377139394900234074864582358585812045908085247046598653507140843149790301933583035901834614281733213295804691142962366532701513175375531766995158883174203693438114027361609391680619744776022082364629985513585469887990256919569811543423130813282412219251677924642422475559118774925420860596248249669130467793947179594958491581589467245047225088943639082646203670516462246134749278423271751057743642595972792971077008435742723114807670405892419620771526035758852539248022169870558900538937851229582512596989980619289072265772364988988210204083107543853853203769152209602004318503331544792767416228406246304045320337453738926310533656022321492701420095401088582271228215490343037086157404506560899013561943159348740782328811559078618673231399719938348833085315907764564801876512107268796161162382818853969105239211159179705158397738762288614221916022227225729028772878017508414196558404565607456268974932935888987205357623777144908728980083371364979080829165126201192127622786743375261767210026140184867588335172998264816764192281423756305919874273849255642929122953388238829373744533485472821437467725604029466196631868410510202311135614475448564570395155180586069599162688695370719856539733411115631471948388751612289657092075378706746488271314097388729473174221887272420994865291459156342077721125155725823726213183133707372085994504219062704197287550847402624447867458107932957485440374202440532579747841622048918547676398969734793814854922932085351947307542777991016709058937092940326371688872126408268681411363958473929282401984819834038743495777892721556843800319025037398678929012662893700322863121465110401358598149027455600493247985928848132803001579008407926989613321728359985409826842524660579427838690139890226708178346376251569205838470636610273523501772028517072660284975183994137575411567151258100084135014423584369724517929878385711619328684092258955736989569128689217737612399490744105108105201576038159114843568295851064705274962783796700429379728583833460619421139591600941112241653336487219281406859281395251759244220256138302463700765348732506671653122068120243585591208488569727000442139514272379571899834671365931832216913575233046498598762023749449666785798918145892936361304510575885695952663609554414593892227043425144365392419107864868978897668795405917556074037467668613605488448571090386537324793653508085836221217071761416039272879721924769104500073977432909606938650466251832606414287797751969031464863159986022214718627262479612322734232120746065329029938015133759988916805976315257300757780780473640756738343714159750491576255459983586155028851015165203336781239060541731338512677301035593399576724341299531364584460785127197020697920067485539760013157999281364114698325396101973192420454996202424363371289518756558089652149296447941939115660304019408320811113145424180780751739836734454404014499391265227193254180796631981147346208799237462960537542522116755556796529658650700487779922528371758978799519821539567579233663499784626032208837869003802107754448778629070619229514427109312393896523918027523774280980960854030595546345657900345987196081258677569418377005311381150849997517203655019274639578267087598760252237507052988822028786411773794458796671221483742533590660842573999195765117009553299421537862130971780416164020692410831987801551074896854406736782620925882951643803746016406704376688878891529085715512201196020496300089385659880126668346762148489921227152717065033099381928320387041847498287626197508825341630782816636627520480184389138409745154930524879611511722922865323593633635013474942219633919703407751616721991827688226377899780545375780244288582617055922042551486169823402379566791822030282447283625710191425364270447257564476147973560081048475902521279934096723180362269599984025629708262038872656854665904611180405984633600779240785595479625618393332275348969098046425548139156925062480558045762363750812057476204399570748075424825840654288811402057720282319850384660575069255980045500045966058486185260071713742139653432485510379515853370726677261048833956793984937326128370891766439853707802830171627182170517077750548469579424591554852198227363135030429510855894181956124486447318756512748383329375526349605240018425645855720233602431115670697918739949462428083565350947962638454627276451736103481195956025034426162810713777469622835714169227301514802983466572113851487754038486289740916645417086285219814438829224004711353746153411986590353529238033435979746281061317809700769927283438971749604621703270100911426845596269596359867485720482632367787376379177358497748856439797001626878864500514577306757629209266431602776943444565635441467796321013448063256382783778461830367485447850108054408905678625576735271206949952323753044759612995196424654383844318593679275119830208684383219670015897970987415222120398654657709634140979273268077215477327237837579202861879001313372583217818142872468961257589439173659533908004842139752895436592844596821852875782232008981192546250751652843450825815861921430887340298266003221896961195040313064810975467884848278685628590179369067310258405717648720093005594510143629350346627364893863417914494410466591325885578954804238039297359281223423239953197426613115806799119175199656004749120314264782384788853600254386211255682746119276047593836575333293739422079220498765944430441037063112926866109507404037106117394210972492754185008761692893301907570161384170547260062465449577369356052351225517066931250974290306897352826156106090751582122947331418662007629677501416791858997795703645438145560834189271611632453554426124367393781238238624876324872780391420976851260460037569880778051414268623893344246047133271633856865855136760192656433837716000699126455138906029079501640016105581818494809532882869020735650320140621240154880152150256823153005426618903724818088971018778592135706895811205164708822255166094032376016344772632213852018100747815674427316123846793281289690261803313560729001173269648919485298504805915069812010393639950644255637833605292732745867298145634884750315347674177560373213968215835813663879184565842564517699685875105766649281265287365752254458107685789828740921271780924519265634471637215430918400165570844192969321226024476998226456796628921270194826764535132790922193819808540273942901487327711373570304441615460984604652983877154800916777378490620640984909607212461855193226922570134991784655930176568355242858644183433827439649227366256040518900399200052797952448045268961852795419732971944388400119105866273469603456405422914781408926864661766184368078625703741947220580135805011978790104577113378806043633264249986282198001162487089392842587649995182064984403258905210012188503193410608404724643483581215475954248038403536288962690034858478223233931862916242794275201444939831733317003920480988257594609593800095445304446835502194619722439627312638694257160514332023550100694015354461375282344233370382917772330088570624331196914392097875143601883102338978473563857618007238777894209144671253650679842926990039815515029248354622089693195456306940291200197519126017680895781617780084515016625872044213083596737027357367452235438719902369301953046960782009428814051267461501027701852365834914263923895055795142235034623303496366319535837466172481340199412351786772778538680655806927589888376486889262883436172786910524984802092804937328624806677160642424321700138557971772840732148817680890964151301719098622189982591685834965006950996039959366530335271279924978242275053574809422838881495037904929397892241567872532070159358118230126685113342426065628095770295908227993161272890410890590812273088616521203809305927659176899664683946860264808000221026606792484785518878272431015102368985895871657994767775840354218381903218275592103901305568422892353979189432917351608404420657492155685934524704512601494929616075103126884040812054290037709766827973747426224556130401405252732133637259701162963518618227060888323385962480007895849730988928646002633943153035075043286202710900557013131821619903847827173269002304333238254476624428230912567694192069481342654126536883625144106422751626583815787129434874185814176459490970229004232203072464488270416085034780339523939407980912441700403731736696966055484312814144131304706570789682236298938364491026933429628725061316626909076800408890686728844741306731196637352242821103064975943171801457851178833997611517704967733070256917927401065853372514992271329942706314597367681327683011648530568057462540744534002252698478589320844350042746030775507278622215549750357920909267616724459740013630931808236448733926823166718927515442586271680318230144741560493153436752890865386346567599014643403977520543578917673036403134442185624207260209314955679330496608211190457917723900561744984507393220671029711290145588916745344582832660331529643499418099739655284765181474709561273187244933548907039807267666991266308873381175265614247813739072975513303032105515856158244726842502484824004078963356933564242195620930512447450577340164733285846910161196979029386079554263561520595033162171792098372292426366734150139206740677198532491135211579993295510281820135668502292706140806040468899628220391094939276414391253810104153299865283660853026516804773823557268982223274641558174123177312622301292732090566738100223656511380743460665696013937945832761154259998602349835505030125062599675462749668771515708332254223258799558188642728710346758632103369548893907736270843733790789350342890852321424452782015737266645869740426115089333767429751279683722711570612436889053701114327682546186792681461304046518916912127021678334193507314389614705779608400923118769490601509213239191720434683809542465681183961041790103128711549005092174426261091322195049364828378596976758650076131698243748806733376686043289224901441802062040520682415791069949171531127648325698284744124442022967816968499202666787532818065773119756583863953362047533600886955580929687908344385917889830766576057323526719188786874174932416331018386779869732494293653319212813282908929374869733454560436921066213758263078855772737634885595648979747724362099862645131418952348136016216819630108447012724893817419205482493113065844854111890654562178689154518168354839939931199507762621145302718241458032860727195811035374532598717484653248404492244657158360137422775425065638948440716790160936771826973983180538015583608386209555084785706470164717456521513224560635946237009580887994862703143877148990005061363508731952952307459597653674837792366541440995298880167119683014632339019102701288532019723598421168269519240986708559857977782332609582525869134981026073932885917624783142055207581665885565102000279317043170802212340914003612997064794634102702380585269275556315841117644293661715653224872951509225453541989920612052614206057582491010131190326865683927568753644433791943843342922001544087383930261340715101439506117705825789499702867411906143190808541788386093818671946284208607454101734434825700458001612633507370748153620714892504296365463741931571304003548043028371451938739092075119800434086290248263299966347533075215065959800356513365186907807853592425812505075332393512213645192304786189690608013816793307774183872196437525464155600670193904617811048786893026349704113796072545278661917415145063298862595045436506718825518675212657377547071852285747288662864357193757799524916037377679731026600146840718602559677006918542797407371814775844286948222475601888261374514169870201544923426223079729820938068309936550819544147288742613531953123023046870047819560977778310791495548362777777803769224520217432633170793223135597365412516296853853683684504774461072158115691038580267433917619019091303863247332437496130309239619430142772828060310561185114608575325358198759740667264366190937496931862045284263194866936211218186255911154216281776942566706871754549277649295460285565197707432917144956834802951835613275528021930326058622662420623035706652984670234738539820760918696954906579660856897700410162752080547030747153194214291986932344266940643179806291915999797923471240816105178554191167785967295480146429553321689082588334550657257979040269752556202375641268548086188152836737549570909620533748245283956718720937527488530278593591933564176360606703639649124902842994963541811719538927609927821158351963620112366681976166179433532591685136539917196459409256270500349096381295282297501728661051648701367547337718093497806492540615153067309723593098488850990758604631492636279412809268952960283508475018388773629984867351920806121538685527726281811994675211082844324652197047456306687424321715055829251906686263317044697326098524999504237829956736426962441454916803920593945226402696466068404174375197460148203375251530756851311173022863485104232272053319331833040854821644926829484695457242131739363776684326322326281520896641404249051039585312850849293622511486903673471492638494845051108133616108490840005127697933015063060706228283629252629909116785867462758567252670676288484028248409735045076900064852518527484112805342654472798335029954537830459758585098671248865939780356347591974895878722080183725645166238574957749006068600993839838440882748086886618281350255293939205785000861561065470614514829719230829938367875981087503440014048286839704715790846866678325552884049053305728978441361901246854448977498385355626292504946189059473015716082673446572201320205459333451229082991524199575482878037538547377775992960669819624013168420256585070348617796814511830146045670968891694430343673369213729780277762743558889572759384721707796494863854826818589460674464378291598914693837580620351960088567603573704230285934053999345490017720645802141640185237311671534251097504015501119072742382618037173120413184479769473189230808451481775076400733086391109728181091278293892659635773688193036417651122782349856778324900684298258892944626586419951027759309360667465992507280232912004523205003834786133708374246032221355195561761848115837690408711486863488339441139330028290919709945124958256541410366983589528975547612385410788795065547540271450997604176850007361049415146064888711395373772905292553817046167730311578398209357056678689334407478057929568115943315067407342041653392893573571130346942031427621566360302578826234406955409007179730314927688513759162813889688027349863393549062618034366312809810854261762812728017578067417401222174295788105996830943125338069187281067451181305922587009011592904121328910896269933547371335233088549471205470143065298739394981489830718619874215957066318907423106554112470675631717624711398837061921244624958849681025290683858284320863313765544301322849442878548150082994360046386191715330577548693213609819790165961697800522474403615665927035884867674660071097469381010849428406080233839299645997470299416841778867299466008766263052937195528357377693038405058913312686561743273167888641789447075834758057067153520107127127831012011532459714428661739979530727138311745087582245659675931648910913553685720598429543276041230122652110163179215220963355900871521271889513152279667033825845863898417963560565073577850317795646693291164815579625250319908843759226753066539114695133573792634852266600169464600948622906307893125989084838180593774906727548367896005865499745511300075216061937213189910224479133750432593641459841867008421683831241090567085608935041177063064841514293229592658197477728203103936909403210065274632424481822176863843614523127086660149090231701405467375227735241978882288946945539762171920824855912160832368808309840000255266786287044140289894614881931041813446614624407602867779783124738244101730099733341671197753122310474173441072049074550481963420189715322283079170755159187604776442139715009114233104139405000179511658454889375044816191397194620686897906343369000968420599048442336318470368604615787860109793984054122882931378287528175555601692579425316782159602031231283438102340273269329511473403950756060092524616438067505553597273206696236385976159284469130293318313673038589236213663996202643071794486965621785906630833792272474323842910545221330039934793906907941033944718838175037856672452991921912440674412408445213431896361505327077685770173469499996045844732330009264343741163377454686696013706776103479623750651373281110141727413876438981385559338193428310072515024915218026924968448442156565637759135054805068810238558217562414414388589886284165130774696800622247272162208062288338802046365283955353700665366810390510586051580194706945613325112961175602115279375521058273520477973202629657943772978084559496045068392201571783218768381529055771886446313384190726411457092116184622504205014061396369799959408648824934036463343726076433460753518193330895712492205608542306402675562577981075420594661549646500048743358087780554108692927882599323417820527802868972049383257412992339713315424557542478549710640763604958760825800593270638701119052177211336894254931516217025784500486021023125501187331197367420920792995568058866882358388734787904490308544919038720608248297310659676143365387802974014985575909520744892067660856550178271455132014457797633521503728031514242912735928367113637758104327461480621039923877948393854067096053298665329471950548284003102855060033783922294726206894152484538922382154745408704096113125940438765350340887138939699461368091426236271417719479537492916923644446313308311108923803409021071171179500442306984484400052713136549453827447384798469466972641493003391764804883435620686823502600888404920677990941839578024189769350423859639751498620409962027133333865110524422447777218115635821169009193651971320078374640268930800472798641302186754219373711997131407692112770957178283314089726032310906828473244786860429023027591212018649024380010951295710424746697792951820662849028620164692277918445965010101003552094706091669828758955593607143595161823347433969904901854581075116244992862948800190928613564591589735221307224564293427988480618766039904536784750566069293967545774309812198084780773401765867084179422106049556829143199020071976180651080269267442796852968053667081678519017954469261873799342950219970212375464277702892793760991213551006110024861192199813409402710903792156245915036849797569252496542528555448074302038724074985342451593448121787801901602005870184244878384794189666715729137634095466607969022400140541514735612312746899850483741317457122123155563813431187111016287824060247171839720008543255237488439154984088991703973978192505671711546732003214748472736474054024775922352574377518075054430659622953626246409127229517423945051204136400627624034142973563153683184793854573618167350055635020509030842303870033561684694096208148345578211421621881739657092618866418408450628877184929757315251651587761300931336215070540014058282259589478524844151198489778806475552786202601729345005284384436797681505667710107212806352904371353926595692003035196539541405006627036131649614145359805246107741231096041218474432900955922912159503793345684134811189933845037294729131803139815529199990866229878873561001887495434087260839442113604170840069143065057732180274517775578270789829113092845314079489794345325626358430213065909087581231513798551346349122863742882724361138411977341381859955398510535558799335412002118882373051925310172588895244978060393893662873105963645372900194889079537909997387356548239114127114367933838586671399491645222930901382953242461307030711946659127064064424404731417117991841641308202388793792078304701230530344114902061661627800640177698898616170452371413699212151967140602848244430207277129412054012871972835851231374148598812323445085058380108829853989579472150026989029533933158424244325155567615831144364666793106298416949662094783059286628968152720930396917726437404848706364633880130625985757797523929299692326110721377866012172263251575314376933862638785317890119045074257293162711028639723081163025013233645759453853180776657357341242863414270054651736403453247586017012627538828238717569865592222594265509905751202229887584027521004080852106886532352349196951143850052996247441496405640898860007388379179696012763357601555903745677842728626167767105841594768720894255839327732426775050870694728320090280913464093419323627709795878754224822482272682400861074804118980826136471837040450463163124771049554426647398843899924314737490477417518992370090608750126071847950442828674025837899596487325930847986089865823831854673195101095208676506510858921258117066975786869288642642184375520651104354923364045647172184205608744456548268269217532839981733438657349218681602816932033323714028696813051234089838967665557210572867270979686021543456586879264419941482753359593212142669263580252847716823237265381248451509148690877508225843627380762052187540904391090951195942027233728895412284111547979251467287640509851510119316936704828357704984674778153792480169581517971767707775118082975215662188597690403438222824920410747993406557486738185771359682038968766669534749699621401022373977414560025603065633397369162572305904878557212485432870105230743794844324214413338284903206607237640555645327513010404254023503592945510945041202628208216340679755199636573903166854620082599847720328487437092880642940477599418402710655203348024720709166726968859991914578192470246607841830664802728780291326205878845623055791393868232654346174906763808341630480312617312938274605517859559439641818668309134690034894764118310285705175467825530651520829829271985166827417809240367109342379433813087730192519074050397798219163836493704796693057446522726659938683284091739417328859913538830159905192341415224890873279951540079418250078149616556382281943410683990913587263465852317989215040336418007026197639950322722481454881721398037275581703878050966735611004696350713205718780253143988798296697268584032546706025872826270268930743018231755652346390691300634967862741876526586544257522844562015934570123685566983716627397107933385959669228712227792487500267478184507712441633456666903852331305726213599301511586062397219758934079218239355140994614186929230406288593469429983085815872487571544702684492529693835924089338373141624584436380909938487997116667538189432915562742183656987931471208464943516248038732422276276486164374669119936927040334475906647199162998768048798431357588569951018478779347890048730196833579288452476676771398305527958243104350837417688823714356848052967569696323732540720637882323025724148034501722649203585172663455674980520202599698446575647071396886217269518144068299037964750280568508050185772549891166245167837444242848206158076088087661400620257927265859891804065194337179001480162431516994673738154372340489460453938917856087392060873419382720437132008203447970934963420371130982439505293981523667050881187470738425935871810724498976293275530077709137547169228725258010978205020247788095309051525419095146663051207002098365695799053716978103087541324809088525813962208556738597368729159432739501717847934952765100706389628173458082340189356397816947904486194753881499674781179312414012574940622682650466725080187406218775852869962694870622605508062436040455218002542454313582052420064876923604085855267827365092372520901209897022753586149471136742757354894325781890921538209617032770379337097340414254416476502986096166070722098158887869152305471107748298930154885697302096094743293667917083534209184371809609543282636555275059268318318568023523409666946310455765231685773840574740546237258660667793969756266116886266530909453511525725109179940003843308984100749027544782506917827302672726847678502463588883958293950511674553132385056020410668427273032574870202794191917735111043823039143324317733163362601925864659685417309232567636205185191312976017028210189420068555880701413249641896462518271010905194111039910231406158914128885824049408578254705565120086846002900768086852185611621845250154988134474386874693947407208135968477234724993375213094781050102219211315941322350262732558987490481351984068705302289767384517835682849287139054497121696489009651148349531110132199675373748676437071056919899831996744557239329205341316273776654056091437313337977871009894109602891758245635405089941892748791046855497752629079263449732870320716160805381704079089710153476445617453059860475553134630619276228463104789976195487793136971607558579304351183034680662313389777922483603901019700475925910358845694277601687433962585701508518893062231512070088563525949321542951453924008726968350275762256407312023287536003247180964594027956166465361184269989231144876043215923533673051135414694925576194844628076984688801257743944568099036512233037484502344653382974276194552935007472213580972828260141768660941544320773300337593770282955068011138032806394548583648054628585059074653064130616597721430164657472309228395310849388665047938113252188287984786418372669429850190745249339806900169796620201816382117009355688159086166900573602722016392435050298697607908067268644855656047798859309108215825878152982957182481618875969137143166275835201452582740985645963175285556381029601372547124289549421815682682619552677546530085315896318437767908505785315602719525416031920731693794231471125773799544647372865605284422409308995609782960457685889128807175719337037744053530267195889767678704981156571034021833942547321962288770896454013482724377979376495693215992662967433977219139367547389169482362235933541204201455382516381687659866918023568818006575610026274798798947781012066099974719528962924065136043605673201441048147186148745078643417163895686430113604420611422122554495889345369706952127525593093829527653200310426825244224652800283028011890750735353815472039618150269774694362025486391754285585868982949735753345207865598607108132952268572526401061547053456478323653616002940450403134510512442194470187295515353991477667646538491688077787177235053323571894098573320655903265534652863888521081301786097665376605483788226146022855039590002771178858361972898207492686066746162017475799695593753484534811448449996068845400458296954982082394384283467795649301002531167012702060314350023369299154864225746800687153962026441433686115845484764203281750434130823204993146811902420035153051394510849321255640584264465968789597745905582190032630365688545126792918251354401707701278601959469339254571132422707589327579354706841232039911676176625529109275587166874065600542216170367305256200043078958883815008317493936084390278146284518626750793951233214778600394353298410641054535244671135073037667085298790062730490942626225988369367152857189601561441829333503173224637933515322563912445678863054111880547341362289867018197674892683305815108412098552656589606359564926454346062606397496250100947327996112371451058567178274133173821080683042020258912865627859502700995469583458294336753873019882444932302992812499580688085609005568675764833338466830005348039096352338340304341574500424289552082362814257410681420524413023774720642465265069172763188664368122937464879364582525292393082642896526171533155790710880050558764505747223435561073773521371958236739827146944087825634461450505149887522009272942646646105680727460297397897828640559749606165052944383865591130036724298157147051883272403644725960540978198907378061637601945776963781734810231440629230622353081208839857897434337700219922987030022568847018640721877755228346381765937880336130338195356807197164944570042442089904127525105855286668505807225992697231016465081378115355720727281680493379848693527408959593707747634113817285530278490876279215919920764757124758999584731565392566038846921955686189714299537616797399394612769358594477391256316341979155111433369956332911967289043335300984387926406279866808738757508788819202989831235277877479717508858705659492341490122722110531878879595129060280998901057179185103508248208358335320090918105538366438567854094551020020173752396530778980994808410986194703698610025942373978912531178456729381869218360110423943521022371773057144170701739398973085494535855795757304208291380857332319464590166910429172508868998839150633492200804624661572115979408877315347232183951863850330269060456779159496547510777250574599913881043764879446224761638083717132666101705717816018973759538683021314700012454810457925914366041936452006962173047834938715373838034473853590906438678461136076702975904752677051169074200504417128195109490988990253061287316712495135014323821787876461163693742344526474098366125152618432482063758883302518358192491571385756992373293675883038822106391916278094784425978173453927598701857666016055204591327691945643708356519354095429167637347298735458016404683897860153737566938137842913514922283900108913474390919558675796990027717750262110843015038628757810426469908004180444990199921473981267111679739639306737015053556907698320490792855246023052540093544103945317279037868874029279063057579185851399451823910654391859977003905881129307160512545986085414695287529997713265742606577774263007336467365248226746690403651314395476174722957669414804950474726509026645098796354804690438871696870459021495608651990558735450950179387025324525154934664055774749423216912555242221146765526850073891548024973908286980784280568333306938131256279297346926537039023334382398485525768722724977772039803944663607934928981308262897562884206829078477159854682937753787205956690835555851825194567144595675163041762433645031199177148699137591661590192307308880805041843171675896898644164757656979195738612215691894051802507824437316555035571021852991236817384175709295554963988785606624660129274919291358454052050804810766808175345214812179427454638506059714180312554310837391273457976499139137161962681928278510931447353059511107472404652785569028868987233706125313472421873621439434089937762257965085481598622990333515499322465134561684176139619353605353063101769849600255052227891939170899832235106111195914973144166577653218318941951647217443280164915742405942126020658933571657130273881252218446423299067826502134507141468310474848893672326131597386104678303567868839787719793369353184413831939192604013101584994754407338123654695603744023021627047601733267135490552228547194055360178907171486000165288397541519519737155158900039258079888786067620262771977497060720540131060184254875516476144189791181153244468936346718222337593487732654738677064487014715977348303343646998568063183188239318675052213082974278606739909069118068207165758809426557473204462271349435296201346667166703920233629987646005930458684689589415998253675526039607931148399782839303044296541383671296429040755647909149794224622755849408426807838405745534590149501993745083466662259262966408806103859793632728502370542692882073261680905123098737134850888912456345161520759069819525896311340931197470971211679026118659332359961835561562459459742743672040207134286122851865439340293156194149421240625185301268641658082520643568453293431717223743110193396507670448890043586907430647411320956078929684107062320469269762208848262023299804378579742108932839701220474855833885502863529593244322838078885351455770952364702046967012186740806237649779740125011778351079033082227783192472536625298933977105529727812295778052028943633550536032064035556767737415562619114162976592770645145546207482381398309039611788372580830855954907841968014479475048967188621922950448119476082023284564704581239495819962384237638412560382345672890950829247585420577524753433203231125572444353862814168592084299201681571604062012201715429088937613552132508326101056640325429504303737894297808537876630791776401773804654869286754857899302327489062360274862924319624424806779228186767390481501681855561247127917062261032988485955950866665566439163038314390954230046534088553055604851332939218313225980519966080106285813017637664720657814019837218033361487125785512517944644297282914266596386196035316395432139698302075766994048500426046608710885064947337987037248216833608866787480355724825478711983948812531896439724671205047184355162809899219084422841549668143676752926583654157800115018896799784251745723523416003725722021687691557403635263915268883249262840912914328372561312212061090726673079381606367148878131320300756937676867478637245204774355712360422451920604097911423495993960654351868100652937268263385184418636790891835868183701546559381532517212023767242256618617782266419539823624663170714662385118487044274816818408715083510990829761228870402242284044093362125678895485205124203510393168008689651577303671991648293715023546642902875375311761235334950998423603524371440094816076357831642717534374288947494403817890862452736803462162374739674491605758367076424330921277391366392748365085190577449298660099827940503652191030187031452457510947122034982348636990047719290685417553884015842044822353042792438042148410188846350683576749847141221911814845746825605356586890102546113523257889549613943712413074907947753712045139317156845888408987981744810707887723973781624854203224446746983572273940037136540907996684997537532472436898472147213904307921036210524195114224395391548302317440620592365763787533059548425556347222155448455019798731696275125716943503713982378072313592990711555011453852030700944089373804262010816377579498614780745004719408046451331888287265374177417124780449820432035207460623280847410757141948245397412941589550307248353814812988328640923671197362499773185951700884965596736919157059441373796787199609927774623814447948402358007518087608415851091216603693579058676750402117201608469870729570310647747439887620928945911022847884964073493886176015774757361993545537756776753590886361458081515410427065403565552990603775477786511243775157453246824025907099153250756566257386760167240340968698421206668450241439983749791832841912996925063095045137941822850340895806580561392547560876400587591049404109444563875051558395631950421776477558445333079272918666836952882474370618214613677820043342069169071912795915358330181641174585030903116345478608843905723630944083837465200174089568789620962701640111455670546274202051016163985149247292530372533693191947306984898058157291159892116528000404162377387342268361370726320468719315463756600176439753985051178247207244253005608322741466364994991567952053160976039509481968381470515211006062693241693368691315116605070778971936634600634770766241616610950833274644648275297315870973028781481588101133785521503063924618402870035259654327229332931132547965371510746307523516406416338024003975967761528059783069346098508150484471179574373923771640946018230057863106063554877317240567490302801542852051104632846870462034820211122912861629114939608207962469194192111407908597916635587516278134034076387341956872774014703109277436864174168536053456965123208760819557388471133712350964525975640804036688455194623589295486393063687124892636668679955871934495424510115739638014424179037037462294881790883755084782552013542362185491989243574526881244301809020887713557750257483567666667006202306617300272211315557983279147887272808395182598912590765159197957567907698886757062178155377816442466656414815740354931529638689439905557134862245856324666721410831428265074025079733940517261583237202461971524223726599173513500623928830122023013214848233017581721478488137766514536191979534380726211867746223718458737412664890642644565986945273394819558796253148026466871425893663185230651405751704524177154131874733454689626818499575880302087022854675264231286443717114531751459266477669759890437549190374641158983561771087736734605676952352641451802210783778955295861242321716118122798509530041610020310185128491431321329962019216555678694501603629340036084430312287934387743248138479662055896548315116301140145542842971042322463417632901871779646847738152691080406590693824155870068482958904376148203037567833165922481266063336451596290110212578918130617902111379809659902405693750427008959007882008249792761230862557088742002572226767020536245159515266422595551380482303717801864874953293590457477606231655925244028442112570617052431912586473603246299963693026746263653457538559538743237554507499311719758259364340516661145907849838220708231624836270285966221511816539247023562492800080973925490668185899301812635499409895311595191690088276335518468263413470409592862655191769160372992567782532149130182425572883557990044040639576696146244261085757958830394626558180045178643835354444847794300103144609785943184795188984571385095507664688917840900419138876131646666387623529189777420025079591782963204696557339787627233832055468407037037429941043521779371168495691946717853792449247194365926798791981862613926567222703376077479473592208548417373339144855798988944196035528335436509614294768192622667379489983568806845333394415294963960980990140097898681451151763771900737221147561669259258446236640845467790158162596342473432253578117831809753053920696599167247318011395731449419969558634222443899034055221866036098277391200216737221799247272007901122365318157795583993324374092535302399963015039878548292577706306366863436300334229184796750170083947611096486831163648739250772011376960980932906234102897950890190395474346569548763422859807978800838818893195475652799527286486130110422501847774815037923823638069651205567481057427627347072278646703210370282416312660388896955711947571941874800088291882725233395206006740221665686238895801199093527588906697945107807764010388169334306108099889224207451352300082129055476856985114870484745231472008229397731033754429003213194281287408175588124687084949558367985511022209895044990923957034713379674117759422152826998291830554944675176165202410891745236928931920725988226422010300115045278642917448082495132287040052938308476823948193508900933769667661675707226129420435791589872089826179381702105802976781046103212639548510501587859528024215121270824121780183689005186287282785420428198657301999164842173903290427038609092671164420435729383672962065515419467487492222534326209489408471305337739104982595528571441697938658657277335480685053409498063128262786881603585016673048603854160587188166097977815918592810314357003959064252090386145016721063295888717582037532268915682777424604144088027814132193940367861521321121867761508320326822519228383768604167608627649176383743380917206788780004223073264178654802518271620898887754669579607641976373412720057325225020601794286166305860398470416293343359090196453951983802460436868266312459292347694137705970477005136660143610996318422851441580896620803628109216234911751808810510979452920282160858010793809674195545005025011335089031806263791890162718506779001511420694598926976243073484701676376390778652310022669478901264432759732296595562876382983436408941047525387641418730476901459654144414025665455468486336016288068559262390130394109934743340330824201930104023884482780025532497810885474165726961510590010354059446319863493338418645644485536204606746908366233793142268086365819966203410615211699217922972153695288590746294361459300417089781553570563427569724448734820472792540706973362473622260885710143444657664861440118864439730996852736052217930225116433723452382081408942052060101097634189192762860758177303284167352276237395770899436180191276951205888971142925836098297698187474097194655336079303427122191634632521325940338146698965601281699418828177796013897029100018372912771030086888628932137783289214795178680357203867547561265963629648935673621544980790433411001038066309609913832816787091405382464295842752437725331581855551722078079274721111174539781109053914941857260814941361393671902698846601802014668512218804160081331815565418986616747252128898218184650816236528719679078201331129615665647561128884838831952945548405125577660291067609219213052891422448990167689489989758715239378537250871149958469479282041341148832266891222888343842026621695522200108368882786482075161745076633223613583250367190614794719836460671608743682447578429279842273675033457000425645132213912729465063132080650248907059202910485174920481222926831291497085452054491104839920384737125677642621666186169705991956485544198801716122941008135329639800681136160264931534948899197139656320518867163304857878698240130919365270654663835503947768855930576768206528808121354450502794867067090434220008271471969661681585310904427079427838355431163841448011517492884007999510410241361395343562880656244889380329364180743630671896548993782299131350048037624171976131861409872731848984859647169322124323498137418291069209013615032191633603209711601728898590668174909197441097948031671500257521361208199385313298524309544243271878618870823695747743813471930180934687854747030283416589849687846795478509832217041798830950288216442657415927243448016198117804894108593426596214194743146382124535208193493141249185715113813862488849962820048477502920803172575844593999300007961383615918114197196085139759743620592837507370470284499432695662827688852535531003853512408439777971018536446661407670724085404992045764966173948853008833535711238969770149282838115398825890277119951469309865909953732882271744550163668462513217324482857685558701958160797959605258534652747899721630156573566430770356435168073856274728214328754923924035249017654427550328302192307948184178926801949897725572132587479416176617114843705015520165629084305493731193141441019012924150327180921953264473746424478758960459786754817885849389324012972203032814532044369826342184315181091694916100866484942342910501641175399111548207925774678009206959682617600889834426156015335838106904244031961639489389407929842338319685723620074339413161494242406175078313212458288031230729229482740530204642190152614172442106742903208012716453059843030174445123741610521459254622813997087988987422137389134554477052260212604184583400516511160223688853101573361094742684505712975395671650988863203430756103222817092314576122168189236587338706561829881707716236921672607580875089243072017163650557760097778766254478679019396066879784870459729351738223264472279453016045937883678601191920697145697583940210710270159211531094313082896585411739273319164124189132814628936390355705973214689366164005107079272394147486835729839567631460141981303147725154870590361067929512650851067342400293221070675401006591198181965064930684905803193844946037174701878956796740242682689299587455462327376701778764483100376415888509205939006102992889355220925664320345073224631863636610504890910241990269993135691847666443778392237097638232532527386006119089092990982379787433667739694925931437140562978322442419962610633449469153699543988751559807823176944949397258529070562038658746687487661700206736600406276633791928834751127295266543816453076819444597804450397428694687315178054593851954708643446623421891743842860775491986373714608462405021772774673054229123045626838438690683903369007704845502304433660875652143486772119440653180444805854854619336909415909787939590720854287880202892515408846401882171270936886236435409987455404073372313270332319166390846266568681347663700383686495727578841072935337501702734811628251592516148679080315537327215232900625973363890418441140214531377903020992264151672244181452472160339801327526116383152578987345739018126494560362162471329064151030682927919023845388766941929901412521336438210120688647259557215027773434569589137266680992458706827303563488972277735755197338406419569547245510150178940976319416591054667561365417822816517891596287443914829485374762219855611896802195153504561804904496392522789771530080788074191342149369805247722672405150084913509622051248005234671356490781693917363621106265320954469250749339918893022267919292675814374603992777399347238971111072589772397359379382621682534979513211367550225271336992069483266860005982253243529766441811286109433475086855549003041416492467540102741426454300449052764337801208542819824695293705812511026123123855446033104102878786332202909644505830631046278662964658928214310591209741050800675641737194481209194433574125020271957909125048844005835194377326735176790672594622929360962926642807030251687626872703524386356336420164060071421459209895115238884590626063436616118075952486639957460012793863752744821283997935264825049027869111624229647288909127270821144967465470140203874555149143318067257183432907548499758257332807392908584469137303363908185193896306427261874307917541262364246669653361343742859994939627651572797214460113823727134108728989304940129923699713600549412876854149163014244349764350104631288304494953439953638921703857307400209634501093858835258173144273655369951988690311526918134795983457789747468403650216725780460961295263503530550058922830318045165187001512352313102650293234829454575786407715956334835931923439694240705797630259529878033622876260391634922296573954151564344675497770107436206952398651871122811739320366218650287657638848467669189656305952653840857641595145483259607094531654520481586669173239415005330089542303408323244294171432845125118956157777753506933183764456318823301294032229829088883283845557488005283849015507239969343267065938557417104157748233456191177458350754648765428142104188352140962882265736149616958168361918230401606012288688328926208445768215141037496313426852724102476821365350724473457137514110402662936605750348529872885132573365603834920386363171922727335519530750340472436481743420435308466124751474889166648760287380765017203640221101064404354727691162869524101733058390481026913086192513818704763382941038498811898448814014422710552453516082258428498606168645572112231660934818087053453855995534999130148463101267769759799799963040341207487399220830301115591526397936753167169866701935195586631006411712410517043063538340607105612639503886733338554212674393864176327035050839936718560334967193654120442340643044088517282340130776087000939429450855043777409892926445476524815538409590599072094614052781852107437490131027041674820040634362892720998115118733360706674374514692184863213289999096359448091628381935299053654689867399139862495792448399524683410577223490083490802373014155948757824126571957233620074929124089707055624363982198073826236355716419565096685792278146229794879377105074788880764664882382803426437740364340450854670947892269739826394729709931594848312828426144249017550250891141434053340183556232601306695966648507838177307192772862771782879973982951071479241705959332334638185926333849697047562686066171559919901683631684800852956754294296445400347810908903420497807158551678919419067206333121313312291052167233623813186742136431003988546313428729253014583452149974689820796479421230290632820556622299367349505291847145137983333251746670818784417715998206036352403784665696597296149862648348488652212250634568344384272754621798032781684412896878535622336412562701434546243963346062860243358548253359039071584098386131622481226556328334810414790128544694730123921432745325160932340317448666727078833781638447272292883545121609615259017697026140166867048269850657331969812499645500781610619986223964139355239689902196210722740442535349951492051989156952617698811597897371486759506074439068969752438937433179797700153049136000476807503324143356451494899610932613207796870780700455862027555855794179167671551276045086904426381521297730218830608282964942977301607199213350631903320059151806132455539433549265240784038266919113767145686467584459126435042615371548984083329201190008831135037547651732189730998906926082266161493291453225451904514517898301344396156821332570298936044672985336600114829036951074364133531707722118576272418013698041154185291800865984834795505590498403886311818862075327501429602010916859233115836094920590186175915788275590082499864665111293622772690803564398682644796603809396891261344185864233608413940662963391310501555602595490806124517986457490602466865196406181292157132552228108180619850994700457112020157368953965072304954067804852659471654991819514851801479398201772154796856453109879186070152029227148340511208098961892427321141673307290910619063248328981507075984772520494339648087460302739101757214802532308492642138711887134474373278286967211405193583292349424288922277671405900716731177500731086086153401949288805241155737660677636056637722999408759461408055180309778278901135243116316947732099453650739339598373303247912041920015129835148080629128778464881117713035236775312680916333668844612827415220460781919598555396280898358258100982335185607904765349173840352097339416426212151125251214469698750295993837104473282400013129448960782270603580509010676787753603791948332295489018555139445376919740970249115677532947266191248926832918956673108249160816053017221649445843217488232018043765228199758288573437025468128823349037210658652833452056925612435266610415457879577196283471821663672738365613934301215886468408083745035999967906540499357359732218130049518276414460670399987141219677762750083856022782988176210285060713305416407402448004275708065344647630805421916493872105482318997555803797681813114849352884136016879111636365931413968227268802948559096028346232747744889918673495991247504696878620428071707650252571303176187733899034165875898890668406653517403308009473714732083278601891980439068039966540505997015252349616760123655056892482173186388361639074762557728248907151969871761839680727903958062771554035470048597727912105211060943821514799647244902729871721380502475183396584450519135932214909743883127955112419222521584586960768503551745034893680200993645547731741224333102874327581994227106003779955500600157791590476501527432523843568482756528331958414507028762306713944833103447123310750990727329624897157444595718031262767466985917948919120587888533979252333076511263746554859489906304190017598039615643037360699165494944024200962986632738123187138151098648530129445864158493555680180560639471970592066210886074243771451129323415623971236932577753340369318872791996488760698662848062090704716303334181567281285622563347086300427692646519423491023934787689617924755959473852112388094524063208133422070790567017636905408191982100647959629167069760168179656187587045141243710589624944012309161819644058953596078303407716332798837170330543924667757128545469996352180076444008682275510077781848932022775414893521778803202150137636446804928614741504070375670766674486446315561077907758016290734788300266069706516112561644539345939235517375314281867963028843165694332882426357520090650374264777817144172117471621345842515699072001225418349378373545208996568833423096977706907375512104374061605475586488279420329341140152651454955770596335729819200267512768087493551071613272340175268479469353112402544408841528422014900874503991279385938949416603349054562645214305711597846605555117010091658031793347177012994766872313967315253437989519141211801842916250592718943675180703958543807094041150895524615637697741366402898561156357242348984464906601050710988282636173710265799879991371129003596327032141547742815141162677792386305238565201848296746160475881133220882560956163966721299694305290620285491943931691272920002837786592929169889230138325055104498382250090595147196180450424065085782644875771242173449094747737416807619200482177290762290180190386746191891256386624434965266005976170145177467418035791885475634862566637773754347491891321367530990857316698431882898362451765533467632803999903870736777344511295699610031825811433450095041858989693683082449065522682320303329421653986233811805912923152893181301315488857346699675548234866357848545355953122136986026846992066438878246537877243921167014267834614776140125490413141079964050429988112246775699000068489444992425969931246235143696932655074493916565658361650712550058680361079913712916799584605525902474178079212969207286596134452498015388408737572393428954074216160275794839357766198787133888852629318802190913751939749566080450677744212865339961599003344177870259344602258315132045667803510720575127388045078971562683999191270654243633776093640822252660136827395914032844398944278012258771591687423559250006370566844890491257735209439433331469862060220539442756445500407008024762259732352448599665783183397649457154843069697167467753876189718763836251731602129968985967951862657322776586262827814178460874707171089373625028482986632628412286386315434425327352746851455009190979155517863426605210967026780652609883664625526453261153177859422136906173638474015257874593813825129672506956597053471955413829577625658031755706825481442212665663083323812322566364492817687129370037299606798234958776384143573409620417020354399552630706990285901490416164599110392078826335212755614604078465581619509935240163531759079234153273049323242333192758612829377589405505009083063171660280604528520060102752549104081836338484770792257330099425396938277326291214336745369606662642150911893550799482816968012648204018976822808241759175994119627140962477643409241408963665855015227230219774108742143048953659191361003282770233574368960978513288651911213393347735323939548617996686398973897745083133101259589265809118567212859933936300610215039445016290525281383706108635020142272678355495456993508563649517386236951279346337748606387331001140861970919655752909624781952229469729331413181182309476919712371873198357368472540991275131893203974953225710552311394248307687258261627436015797430773551265314783729002335852351304289691154355177736566479705359456225722494313985562962210230748973653223238523417904665572229084393451406624563349076419691778807727628512120107780952179544222465337179691222097694418725250068593499920531838085868265208152941398580458869082398420344756193811670323599456908557286987722620292925506852824249052400408980343564930731629840545339762088813379896961361958559336480091755259985998760342187537209501973079071563418969460891174426985403724127184618242463190604878093262746807521960752834206342109174455576369283126010570872036583172707471143393655355023227651635685202334266448621866942720623184373381512787440321863306597403807793563267029125292738946384532219868610646462559725086339167889498455622302596069876553773573527312973641682897800592934895517719701157775961387346982803762902327995274319189302540003614817305691575747024194435895145324281545959566312256238194593896888569700208093165980949079103034085460798679060969581337111395733737066272445203194703607145371016932953387859135932380094951378448407638551104976382835761780385889384200274170350164590131917215229529854406073681444182763460885430140443577668029484917008791949975790599668710765829651864901643120206424684134846742642844750278855735672560161562217858122637364553908400014605934035071483990698553358228938870765014651773933703003754722336748015564196062369427140799940626561905601016148887374085252604926031091314103822152288541900899643691297733625523198811690530342310753000098389118969968855729202770367516979634375910444830335794646798216810527650619990904607298062832957401184782590098573922796629746372924733174710664907684770660517246032469858445868351485470122621965847991816173545499849173958192952185777483793677334597231558370262287327200666566536086667916932569921356005940953914770928591601297356220930951359655746200785752726900708171300146721635002212044457726364725537262483304402400017949790866746787738069584192308374578624392893156920188727325936886702626502377054727527972589543800310973444924088584466905789287183466893811624572605012099667503995873456965902195981934339854427462418150632804071369114245289460224489166349261691923194325220558078742517132097430237575412318755507077569889908065310440271262715634657376863554462225741687334153430740496176235290998801075278932335117345563717488855408082148603683752368348686447633190487170762039528461866643475995975113920788478471495948702780515151841838530731937823743452520745163768723447015264725815584404666033301436157922337366530221675611810532519398361963768186030752313453776953428442313826057185944506816324246810084177647402957850069004438806389485865751909541303606893255393687996094197332079878819057068453067220448955768418520893459476905886648370492326975756342358670998697977535138685683253830876595993417162067827302847193234955828835888693000176947820011219640166212086466684090817999033424018906693246059990541918711384779705851378613218462023720127303572571260118192748297921301518427980447861097729367728033358908133104445254284880230374978740316722888806121539694310357395426290640020532703531568939515986032141200457307166906503138505317752804450335425405989921965499333694929593097147212741623915062146755398461747349680287914385516821313205061269942184715808398009598712704369459078645745649105351362827071386786393392550897402695374565732354801546706413228717018281456474059531267520799046211040484179990278832122759648592232390204761923292005585459525445542188554533236234740517850236886115178193291455666629355386595419613368058386790601502610687411566782765207596430869885895855157497803366362036627560077028624419363733645173968545606896978624625953015693719607607942713900412682792847710376282582108000896539537472659923102911151041179211453359909545292654820946550191385540674641967486502346258108726358544608014822836080946671750071025881409938121292429006908370661170045803207118673802329345571635330388398913078088853715023890946394607057423746807757937085475685596138961312003847188011787687527460486513600134116168507381051119350065024874464087135172345836747486617010610373707971389154289091565881491751865466529190527300838736221284224566260350374412822667594465564682555236847431475277920242442743118729516190185639358481486824198474013692876406938911864547433003713899950179645194629150890114172202394730056939815661020229130458606467251369173197425882665001765347192564105370230810821230410571969682426321302344800673912285610379980886729594023413807332461291518682914488600472160531353810651447717412933711629007846475773471959653836399639989161684809327535852787731977051091902752279517640581576685400277733324903387914293846786795162536393488382154179219441329126761137409737642598510837113215663397751735333182217489055356218028692239100416912296257610525987850654388498786837149934024467280497363599720138374408702940315437574820743105189255068975638083164768846330129175468759676319868574812511193861482078128597997654750593857976823110360991400497443852032806799149685077046358840954924251154205788637694600228820507521979155001897982960861394078992292529473718689437512020711944616373816934740627454187230360266337902565168835384893497261719759510102938931286934609080918530020452614389251477283579987278484423894477423690668363726271498142697179969236833928652008003730594727978440594365962391844970268134667542025711180209866718637001411154313490343812775294170021222668676621094339946354289193076990586384037769891634186042117123480691776672200149332243635956101541231438338901011599405483669580808328061025186630868747431246413857030800039517196479330080830173538791038180579938473957169815601591374270188919205647886547839576537652425497637260013864510348090245973585271410858990935962249953483593839870525295763606990877930201386390881048129621201547104031741291363876156540798484135133733312099343441178268979047783815746806491724957329646041127708595984474843679901128046906646321082392077797749453789642932636977193793356980920239381563093029945670201395034311107638309670668552993634870447587567235247978691807933951340508291775983302391636749115344261205715796727443675948302450838443117949202917216218989571589175647761581612180832584802292374253144512311956793593519552267369257683895567266854890840688515989297810708886713870141397244359220382818632343624115165021413880616377188856210494803687441581215781616420462627908119203099742935006521594346880224717761222100339537980533038684943617255786882186525887099633626938315040110710447135776635017893284335274059511863060569968030830131647885569092172881433063445915692716544010414286913897202971805929291575978208717883820759710960748542000375675627114700861211121050930909384795117545497917666297381513329909941987156916379031307329975430441545087151969646680228485841892084090369230096646283460291608291466708992489508061777313751416290902112026439681343216232215451419280460656562198023123185364339491273441529935166366323253463527121144099129702986890410379425154146248688856734081755896756259794348250847889558020927023160408398562535278799698330516822984206515729514765672273928169364856372117834087552827043136199275998363305424082572006680972794963936778534580944176156101401006644883553127752699263716924187819222912957893681439682018631623781429981223340087758844935073789379606116280185997884873189963798673627904554503623014364484444463094545905179910245971217557172817925865193901659953462125939394999264764335388730424314111274702642275802593503339018964626625639261426986722676792503430946000719486136929869797397199691193009106779790217232868893523482435215013243050013175108856868093232084506642837333321501848945955310723909654039781233767672777900083571508352032679641817598641526259365933229555522091080871342777987940241630972117464567103266138807140351604279552790270180049647167034948706121778942578588442611820766430949447819621356261456566602175698786742701457912371697566456765276941558813705842278569237372807508374103951637849948817633038453304095271058859625438885474658275687721567518848078671837442978621519478289314277939116382420725577614411010472627749283285107330821179112978368724971539401410974301079887165162262211356298358791976703767680548770017058262537684648403535378638072559066880008341064328094531540201507762159365677824859819239052417567885956014314116732709929332132090984335716158418751831375895934186877823196171242762939545560504935664745968812943342768660640406134222726281468563826316936097819014902427811216761867127797650196339555590962485415944394946390037909609746575668009574513778251252665787896564539640478091278411007239182910106481482469459017529705587140084838635273415987238992930705841845045120723438121713764256121384364724021685719936955920337626161318525343134785055444727429980130888883956998294577562688095632361042545002162377824497194725746088653126150772764850294047263252360540026987701346199356158834477335698512310621286309880326885016578992677966180593627147146754839578584839635237440263661312255042787264391881804833109175390712477489870794380113272993177514879901602889235923844886787823509541823470361492323459938872021702475267304161772481735505390788503459626574194566796779281832837627954870529708432200330617325927675458154499288150559510111423201126524862742717620040342869838444358693153914754520115406447747681339448625346653322195443781633632625011048416887120783178570327969116435653177749703636692135238922526109419667613211675910023681426699178805663818370089362123216935254599452973466335468661219615054908091392072368273474815036331347343299877976858279903332642153542545203254044424007812539172193369760374174549881055001888460810104613219079117349157077057236176641293287292032694697695117488416173244268204783118647677205711037638314765045167363525049441313928493854022795564879076733228108649018934845350068442686805988468489623353652004070632565793163442827981978550973573833583687735490096790211361181628548711827164208601837838571177235173537375664011148255778732069106621736420900380632230219905501814224982568549658142335212144181048650682285506043860219212136460172026907438875532141233648547112466085596959286661789456004099392517285985404830930337906420742149810971492053756475542245952969872055119355185095280550654960973660267176802726777690026735773744695901102212559745591952102060880317120714139465757762248345868668948860790279028200338232393160684297470111694020124235379525251064973380970931742439715963317648504828492120812812274641815561567172108763599611566681808458302091540528822188284409637340789633198037192264405932645219760526817807577148058292804913590920245215035334856322323348138040662348692420221951011150724428564892424015991678290598846130067663704895129953359337847321863069445586585485515996610045061666531740692594775489833232107529597740802211058365361769586318875743019459472147920157681305715449452778695223935849066975135700381717638389059583715060806653443995269057331448295741315657952271831218653129145859932833703362984376806417525043288979814110422026196940095920847056035110164662092296097543880429311826499476192893331693515850543179629749795765959768521810927221872838921602156846486013016586431882458978688935676159970864315666194642826586073686748551050005459649138319221630689921657771763908705295696961824694757394327883449958166358235771763939744839578192726567176953530889741873496119218332262703950782644500680242150583902802251864916449362705428346657615051218860110732444286136575114186155188027510407635446712518945356603489299956799326630239295808870442185352817202830603875515422345179817332088960159193638381220184394838883001116966156972135193372720974709370442934527298027888993955744130685981033682274090885760977389814359887507988084025858753862855843645807925663455337164327215450066276876920562211952439457399229030061293288756108962694461948720886736246646554827726321127108761755050122247939339272954666339233419362916987754027386291873087198307143223440120597695111661616679400766733985571974324902642044885875350715451949764762018383001109280635502967043960293542984575099939182426830908429194019457618698621707466873619415816380043369470043744991702092641681201107232913616051130410150873266365854316106481535194706550158933407749919232784933532958683323039815771597603833082459325431695387235755946456091242332319151064477275421404514325927341437684271752235028861652612523539942541921258718199823116730746169661220949374110796591134145682545915912957285691027706320981589846482827210303192051367684273470474951022466479164908114005070648418737115161903795089012041689868666144450504638196318724720354430963927483084794604642960485710799687562353112370820346105623427623347278037026174605549187018204515105200991734050913882618101080321398519410307421224238333523681800392942037826745035247122171143630369369874897658539939383827440598079510062285223570937226781828785669392512893369928585672288872261495788375217601689150250537131744816034326087610854826595632408655843132378532409701002246768719288571123914147842301918031779264772571746377408231418322537527530887728151821348522824245225108502724646619033402364009565254101855174553502873139012760985168464274349079655237922812402825048924826317370620765103636152700935778933328805190756022706273318646267618145450339680417815881493959037761699198860262464630646627235152180371555124153525637113316701582432542210572918589358479124906959624448834793312923364250955486229295874111401714855109796023604757264430307064403543310848158144067496919708957309712162771439786264023815385843551130212960319499214111443360802944898306117076777872405544185822077314056949951697113522152704499546338233274704879476414524011933826749617356296417552651054569610125654610140002987720423977779128508975830215192147943446466686000734334756988092828167269066378618660179273479582939864508671231220401780907552210106973094290793955487885092404610736410876556284812283386050630068925889401314066005794210723490747524011975051864341941112158249419628809115003830356705220354622502253583535596411973939965514674912827877421945100450450719075390984545995425251459093260753563994862171098474641341242843238431846194968812722564965926327561590588603233555820378821867409956889378126072425473932569023181411006640424769278069007140532555513545713555785162510815865151367652269270421551209852413622787655994608156070412591518392095885417357241568843632989138142029718963013929372297040262000319935657524178405321618099897217568549791952188440284130698193278387786076400215214499687294075663461156643647153610098903169266956278637968259628441330448110861163055722616887680061353144741119213398485886146191818286515651103892358619467453141193049557151574648435610612660061249136303932436754212132896219702560369943033790150586947258152470974554196290733096528579409066030015621242757725401441579232825682413408433701624686842031956855831159083378246881995427115186458641817878085338553076454841149482076196303978277335163769599012337019978829747574408109610335353623275735914210034086890080095830825825637055659273918380824136204094476187182094829180398732308984657765747467204709623366473208332325557402513230521251689564934020916351756655915183311506568172311807147566883310918848337505487525642101020865769959438491427647613706750839761579055112818536059857299271305182368896155344039006257755238381053921978751997329283508587360148576950016825580345915761010419039808123994786339435259879980025093078400280350197146645690519918032081669617442219587563396195318444229476815290322806600612030553284306783971248931720950373526784806301903523752396427747493010210601071812338640200368170508717030885741960025737367942146686869468474967490849122681439218541786216086616181028226761644040993021001332138818073599754028014236899479835588507337804022169342017242648633560615498983582111876496044810587949183901167827587806427648692918041720687639352473737650272155876517937074194558016106692611649987757150664673672107705237508484700166726261472847223449936552676255066110447785043679137468761643897001285371174183634605888237652424283655520499776688319233759989119537220822680996879798408562931505653985797353248364468726906600342846833239499345274426699886981356856818424547191835402954373545578781685696260580430163036785169302819533166205554778805561229780709611933440835728907849751337805211372273600760835778800455655830388679938354894138857737568377756875892364610799080425034867055031904287167984490507010389089439618869680624333570383852502936202096360115755818321790043393492531350205052986259555055661430964415119386526320135139373662649781899324831815986207190663906061793909499825775451377364770059293920909504185187130512953984525515479520694557299566828819598935338434963912830745455101054219327096722073859637775951608422961605884730202901486526722945527006478882262650197705266290711784136670825061606178511509016924150141630575280638767107724796438911832750160696728459357201906282905188465594878777333672744216311142146030450451871132047737022925796552420930495191323486962404436056273783868830250562523313880730978928168878998590624604165426789695239593188252438272704982693350814904452583669118309271809049159003331795648306753704682741885670711190216958105825280204944837982910888931040371653259538610389617502484719627842441002786530348917335040911257374184521143696884357822731544513132498545917933914348168236231140594897576508329030614186803934731132376118428225597186477493308945161668111772443054502714164476559203715718497871752635018359503929643981055280095552830934048738453485511761139648736463261078929106722131225482125175778594782775424259028092732324127252943730481282736310697565894113033615243531632859026831664970525463352921076244300174639501582755560522338160953986422525392582558008933023740671159988464840097453615980237237053182466153536291647413653082590259583521081210335312177374235145887819127486801875855527917563407541273317259750062603245742939897995585554142477042636277617031203003445841686664586136582824198741733923655762494646968715323995661225006473318208746555740428568854898412780084335398857826000483237472787589377686236044150459512231661383758885823128437448042489627201032656338107128147245418864999314752980064866984635488592555226856773537539962132644541992569996333564811234910711282753014020525891241631292300589248294062497274341302496285727358138210256206331113924074339752817675597393478805518719904016265840154956543186355265510890430885215329988899298458810854991414293102727794217446090361349949577502944587661121936918549467863209742260866837102893510453138977660076350522421331848407363161934111400587746735573005914695191434236770050810006473449998505299189656738137658611817264732384116425814987050913693785655594241403463913444918943022519760243112344688474590322301319286574577443975008299241405212312859645919934923711736592040106963650382405224009289934854703333658256455170546185508421733135439316199977130776996062281612271210064192326361601848965826706801833090010478697623313776217379531379358869100563716808803130462612382403123234468214717845328556628778689387057866063190672475406856295734051448685495720103780492438399498046577921607497497981132414427901921598010657861946768744804519663435144295255929697865394503668362562795802602839269572909427517473925759043696981300621339562696335869202584456040210363794210095402865305661984573009925735048271694679452044182428755355388934185003662817660183581606710126808365819869693284659472259251739894893704499770636689305528171982658796178920796833112444473079124767609660245133086203165994338954538150681962266577609552155749127580926572694938226132660920006088943821653896098381368495919569640246145520791928081174450245081673123556895692877053167355838163588944565168785679534483822321613764545403656999957967967492347490459818498940823723524892296477314776483855413829098502702644155578397562054321018398202483299847843056704564637853699318336508644784183704774169516173348987242895458058398224008249836012660279260812250809137990451146607852193341306960165418034277492875542350166572506707371388255613130858735841406575853398484735903224965381171678637949485604832075836686614013133650526425921455053359240250029144878638313558258066058816673291162935970625085806946550388001519350389189572240314272398868166123694318220154608191337195628718387683944496810630836670532336807491983386110264133565872132820987474863468752830055648600204241081311995852530917733031356734079629088744828690647527419491557045516755419866262809101396321530133120555315595423034123655182870057920082707824058478829456544813278559208015421061818405815902509902837358275456814002668900318093313363929222896852599250045594530658827313251875456308156085346122061636486120795525264692695205100095295007713337340421333790780634914859344235875625312802210553646766014870716633202995107214714931127658766960239097728329445456299665213950884751289071240551632269870360608901612819133184784175973439211166232463877785138214220489676962359880830374848495923243657175932968042675479131016784741656277368990528208431152602360626780745139240487468384110277331916384495227955393929463742414747048962313053060014216538543562911795175172196130766368870389297710401762837503822862343013649699336783466815262650593564401245287547122287239587629540027720963152414620880682436426017866058109957619206526917361314177532934599047527357654276260866095658655022661630515691468763453114974471497527342304388410409084993823525661570331426202970114390279790688485128386915009389033872152806610167338668999534924575033796397255920881564039885208254921780706380128718571113196068297811148944955625521241588863303379064556804152552179597279355287055303744324665992582751127550439018767310105166657614871876638095859891803442642251548036134813020070662527152454399515327828498058669285685054316594252391277425138548831489997744794058286755020196328436297725332607458805092172064264997028684514108792252904391604738474128887009694969436384269133510371722262474240259146017834371997435365751887018645331465165227611846665518083279804797776846389488003022584628092103658622382995765348097411066342010377328536642982261328759174020966649132250305140406839893763026056363062466284015845640227764028942271309283663071063991996432084894125907661828505513138870510414450917022775894331125174090124950483207231227556974765829864149589324096247741454377288084738735797254671182774260678174737720844260879302970986591965257969742492253891836105581922609386265289909774861249223640373875771851223673841403387517644838919083240185048892702697144031856546394378685747952983217322930487467592113369800991084184501514861259377833764315436512138693028045879060695778893885796478724292365613697800783372395522042905950292866214126287850218813691161036195130909263475824583302381157007971862544525239742530312216972119357749117466100258213950522090884909656233739690205846688406561339967185371517366924712248682444433478094853171458701277959075265711881647807074899759421741335711685130348760128407812000431342852957151564458098960131447427774822377094658683806264214296574097724691176634154597649208187957651799941321413899077510080508645207960260429516046857128083623833939405729759629705831083495842645155141136456995344739105422856294974953492445624992200684049383142270575930916795255086392029733085062765738963213974391786248951762766094970746827583742172307868291810995929791119327071787537778656462080930776739927335899585570165551626400855077974291173785447424262165794248757936254088199676269615911482789160239437184574124773520656462395332921414939052433718120991432475542001933718956617208801821584659430946473715333912809310084626139703536030226311696272238335873160136451869009734241689209623450363671706682445128410308080251443779983771767395083887868678993605671506527352285030112918111160195765583466671695096133006106811973779130284800725261021155640835959234433252995113899695007991292320347342205681137839956395103274280275228583745748527090783730521541416158309816101429002152989456227462498319404071822616929318563308769539996656965019752061497645924678482748843524345660590430617800963342874397611499241486044248487350756155615511928165836574512945217178316121145703823844596430673350061914274125569788000844565056588195587143773800237025516717485518491492441120590303950894478015514946142102183475420331954049447327299365452588102452234367484114994377501907802368527064039920466898897490280345002909237986856972518078082369247757394833577488484242114337510482141966629903598822104766130262661675816120735477335905402559796867298694909678728033235684686674736773003367850867880957400059228174610064708595998325206704989987163700065467781735872208317984666956398823824986574631715959250969626937467905159384629563068025474493486199356798375800004918999352074986274013447953598376919805431030399564267390507897027049688118446615981793024263621861986844708950780760719467139473982043739924026329898659284422597350519168935944344031343734177400106062111617130153485095851083878743733557855839265871835751621503087075620273417902681568757491322889626425990845338667283606771432938865097675087055121800710342273409683629005456276690324951468762166216189944632207722606743723190103558035333213318047698801145238176840709423489029403068697045865624165039088976362471038143791845072821180215047444795188628384538540844125282656129233930110584568812675078278823103941850003702337961323143947021727662185623723547023588367266875921640087205675647324053249310318494252385879483865935485102088623657019666300025425779671875611071251172572287637864972887033606567650743188345049363598120400792313914489133157171839232387872179507064773336403153134959033778676863927987916728259761273659298478124037268398368153070932148430658764336020319568049940190438064175148384024662395329599336638816354308154862929405237701064896901415478484619306205355294871817289621031846667188111945647952246342312575653168657205115913089690314453102471458072040704070800052015102505944915645580244061645319634778297324131229439624836068401003277911209897910884674715521983550382106320925096372777740968681593633209467945589829247433351620853493748273338351596813529288624339481020631199808773259842718837211815216477870916304985414500907914089157518396705985742334892648833215907238163457521053794599505380640556077605661322393564037177242202552372186013628282288135298940794240134574587221243710088034042566359200855726171452840918633192735634211070087601578319046538201596314031310177448940949846071407436717460068935355518872436592490580212131259023916921574408736618774698403946579450365019710201013012034142041682821825233163266018727618089304386963370359868742710775376695327959786941264673803283194266415225636999210213505811524056671767329962147636141118747039999314278188990884598078178382493794380741765967423333640685179054487028891275601333968866931008811326974189214239518353348529423806141433814117780826112342256708521893379819719538537573229811735199503700140781878820381562568305477968621738569769568458704000543636093725002841347886424459600855797827120616908861419323735618530345288882200030143582602319340505150025951193936482298754763801032532335578539209712155637106878810127365539396549453774061663987978719911403036645739729850069719593517081083598617052875113230528627205608097791031465016509520755190596235083461003480489365155552927715996996566442834933235854047378256633120479128037268431337824840623581571935164218423910691221040761993107725097409473634702177869905380198304047920229650578041078048864711747193217381197287465676686720119243444655480530077934859977636906388543122483164249904368411206796088128772789540671496932850653228209237412447548506091617471549349030491659090336254920739324428308244886048625332239834480016827413140900743973515288685987652694988114699487389843738243341982773484934947875422897111772462232630311232574899892975468218315772232558004360146604256043347112431772214848494534293174861950741870533936581222755483283433300117742906977613245367965737412380649408713825070922782827321792060747381107283796169928967956959115497237663794099227701488240859366271457483254134922064224935106543646168150592081328468569847564942252033144824270502022499056186281867893837830330119345236327062896296364236537678687292352268031807665404355819271925716606302066359744446925173375761648742351967702252187289719960156057379983283004429169684099265277886412327418038387034822981047094315536707102201409752482772361394069942630367399385553513206982838123894161549139301841055763868010802316850927575098429547252024616104505172143557640770394980993301275812316177622132461127713876812976379931339985978106026610554966589909971630500639563208730442472158519688476009748995084706161359891224971304408223702690409940096560135669465655014314105506402789903718655135417033319664405487482009679345297608465859498812776720437331546341620633241974941286281704555534881027267069216184093734028049081233863336857677999253243412639248744086620235767919198798637548519585972127122061213798136003067968302067992641979047314992974037698612288250593165089442197007816842016828915150556923612137500782608569949341746875227704521175304065551855854962883052190843943195439268273104315189449066372971605242166867227147704059138209115526516829749003220756753956622590028306412732267126762357855744705941781918556622780803268744769191564622188191520375097591788130816744557771924087062781986640763225487047002878644980219826292557142218224097434180887196854768140632051690954910460879632285930761497131583611628602193740194409754105805437827231353843008286176680791501516199767590924584485164857922632959197342240053243356603294339183720880864439828916072134625247337425851286954421465552117707082550630135202604895576746376813940933857240883746862748623459397037085125368807239384049905681183009109250074816115823489743069554459066691149687014936081592842045299271473619943689424966816518755234213147762484638426101005851279050297566222662221008638282799109764519451296335048168574320654518344024689311065712225953518773296627543125697268182201611951100130024550445210567238019072388031927780535352948260408614062359076780011808264734769139559745645873402694328744297065446281572096328089367805930687092901510777402019649872450741751716668218657359056381161824171986252832708948091301553416188260659097889609064398590135404212287261092540308531936290303828252760929065645859982932695499616909582243063958535486271430964198959970285367940646995545088168283041598268849123989694391959012015527287889804478767186076956589394448652652110871065595793992466656192853119361480343295475454826863677549394424378754290990569780811339711483512973136623234918330335271258840901673949756636596373950880215426469724615263553569236786367908639818180806386571759301024043666704285210169017596451731938155100593098122418484871460444547465083987515706302525653521593267694068490776543663879000924534568794806742808486201771961159152644425982044990074709976071109027031445808462669768752046904067991014426900275732628844716542050813389053168245456962079685398063220003159822606834725647537554935712341175394886790511324113084698273335657845145316834287498756472688811938321838710767193148335056026287593415845167147944448366313618111043738413689082574181798864869568962200557001873630795441409874526645782609947301509009615473935146558429583003770375272162118282281611396113834680324001670398339445808813309008955370103333845069255776474005847282243273946818363699625688941487565368185373759515590055179118377172929840566465169192640826259405950588867854868753031227186291212713030491061224702539775412161245175311462027173602705595740188819244751071045243465902469627994857872584619504385656338402752047737772156403980697596116398264852258491235658498156816301134610785984339980230730407512949837745313605132122462528960181936231552757174141515954977192572728906486467262347158641112639242827076154579128171295782296959232749719283484108487046728134974813101021261214696351460848722483741723939668012963899639743684152070216654616756338666543513067140959315630220270296607628567014096759034966108423871775510609465341475310884691314961304449744828622276941005045669846874748299962157293210347895759836512708373097600166622674114985790108745093025056331823997452761877158547846686076946881312395789678470318964779953807891269775791806202725821804344321976754291899757656038902349248847099380627478655932111257291090753730933568063560517720647950223699715876328707256547462177169036685201600035879782257987709072684520200884070932625462209258251535858021334127528121657500985536973622641464700505174977845559785507424920856009551023081900606763155505633698072976904388380729746011013171620650151245699338067019963063031802328487160578001616565711188829315723029629336100768121585321456575245496200786251790862328885657058705503438620731858748655078209912897346635797120668734795375442144667207974583567637592589564409458922805087149262168685694079758399404328782505455584799053445394196634108370147158054382527908889904310981720899320941544047209644018659701853352998160405302143432222642189531302037281637740374023507848681092070337169550648373589903898619153067686682217434817083548385677421602316497465709382330014861019638988678479592378032774813361022069995836096364548447591657347575026845629279376178469039665766799571532688446141579563588711631399531771012966933257156898787455958961724425395822305780866942100230990527638782395149980871188694720057931244549208852251482559339442109283662135642876067392500820717252917140086208809576895218413303713057246811464566614438351056294694323315461908497643012612964606613847619994157610492308262761418720895043518532695035427651985940598222142245318224111250596575163811603534716165694301497952705903191860282212956388863514275005173369533735870280786375029283569872388201315072244684849223464263511754862023399902106510107370794061638524300460416096762872740903969961426227088788399341963037046033990731493436528643643882860106875938897226747415238312643552898539228499069156521799984385358332825763620247729422748998277273751517653548138484867758471213025804469024687391195409591720565867746451402983682489228128393177451196563430344301869921051838046227797244621752614250273648008494486081557729222260775843556082979886483674068840020341286286678853964959122591462214947690010361366467310443115221253058741002090255853037003122272341645450909050122501676575271472279421992729747559516634996787897582400718425942314923399399189248494926770193644748932786750969040833258688437281694303913926116108804004450914418601754026661481866403829661962390502936580375604942546949467128484873150455276125710268213995951203681729169354513059882663544455047404237422630444678367026590495849844793782825395475321417945265762267630437819753785729195871416052203367419119418738012049754180047496252260087932447167151363416344654723962970897802027595226595366432676931493116444976030350843612508334190629658108394780472461440271491164370586928047961250731668306811233982497306257764129271152571528059969447915140485049522663646162575146998013214899269019772216474872036971777387114109608376492691508700591449034102814151936311780624102480187367085553841173104982273479472887396407683236990490383092476981234112332810631331782228128976178088748719793818802425332332509730045846319186210910506814487894602901433296424139198691318294153168244425240838921551523306378257240059570472947309527117430193319542639138652120220152323044364728936763471832487104308355777020434428985513964508227626685671582064313707012131489266563786825308258694563277215327565478880613868317357660235120333464569200347868269850962491935242340613813994483115996268725045034164256130817347589875563835589607888911049200640672065059355235817118073577728688269875747131647829960039669266933376182953035108266078349768332819145685337393596511843127840187793161681433427564206778175180242244310847492583679786439655781831907710801118846502466001102422349544621350674313911440482713584896241987659229619672857431601429787239127286302325579581864869442468597489072792469909937969471133917815263353199076219658625158699520365419911985596670336078703016599495405013634396043757815033151873556837630418716113375643611172159571135053064596229984975783421653098822051809741051075029943867805226295880173963048867875668323450660779666194149163092191819499256495466313449511560033899445151722107246989949179308606205642709367064481778159212781517804869353402064505424889782680149582548367287784314129278186222862660853370452203173954736763682138921100079823615663228000165424409570159041949165762040066398764180222239763445086974612024286322696961367201266764618325793042976134551810270801858502058528002798310061364241394670212641977145569486991124398977575496703614983377014202275215724396803681612338321101345331378761324125114395078238303762278828871506865386968694775061565494820299882550572080939031566054756027873364131817058714497991919715586028138567503094695846814848095717837379705858966821395823125863949951867143443740735999023011121136580111685280952436749504344929921938044349447839758732696323517066951895581549245442440558731330216809187360947450786065034074266821346520997145377495675742513924612998605710237773247157350852695289207735689712239871730890680687012919996786777772024957310406914233940456075283788547523489176687155002858608680625710454359336664118654416206213021859015253782763092469882501985047009656680584277862313719821352871603216166927698511449870218014106067604092152400088567980211701436431524366138364577697476042739133933881054161899871875824375021089295324649164346574411602330514153656902091006905768221344735915667396768860405801725164342980712473421726426020810915690372905695087976554234991059721764925695030465705803725103608996102628224021024634914683981595040302286729451234175570358001707151490271466394511506566794605848769975504356769510017813547672207678591555921980259789755958775050643859686313561866639007003411287044558614138227329667227086956853827613447576098911403029006420006869133686865678988986397176644245562882652798190732526945545687232341385830206840053817381204754176095888999688799980828056103643179892649654193849959809938842182579233610289841380481756288705802055324472263272428006892773174453882541562228720041945360412337045280674076703480340476222256123498993939291599921176815285780231609189300860263244038140690333220748685862175316281100319745895271148241372849807111087552698796057723376736286952792098015985748688297625602280447267270803694479048165972514121527392217475438170501134015208202310351040803357930545254117338376297499290713286191550113521756276710068948390503925609999222605693625751461147145039946691095883572610307100225522019521902513321396435797288615967085688573273466628345008671087767137169505103455353841323586057780494860614846492122434540570893832813169713927021305091955355725919372653864891723579172615707527192003678051558768371253541334968602696941563828847026407664201848981630022338208407538783638416770851689773154599137099654077761970155090083224763621290163995129356967558198361437725573174093641881167811766760001612247591898886027851865183234958220471013647371376008390135321634614751472058256117976789018401617871463602574507338153860940139377678724811238978687697002926102903272948341325866229087786386103142129847285840250783142146602861045086591640354208083070043047860269506675111456407724772347566383734950966527928763024768810438428945324584931357654583953826965297569359723391942538569900268084338970791145749219497137246302959915002733255593996673128535203267878947567645866857606609185953447798874645557707242932100918111113034426770086186380509157944008835433988650453544214943994769190028586422127337214843908921967996580322425622861735861699442481257786237664079674157237437925172679373283113733840096091323250705699544446078972761719292047656986641283028135460540830570638779921797444115027028516764959655458947669367325070075225525178906445408798921493097425231330751843829950716869136087617823987839948603059317335175157714753247931372873390388542856938281643837224244233198145671364644387221796940173564899939460376321966798851845886511974429701328670915385621982897326468677808735132522659230171020619833449759942828153351264176326061773781337724391604677163956167902405956925062385134452842121141708560640019508812537803835078554656548034689215322621416825190600706263205047810725899294360824616929109152604918119058705576707639391199872820799581562988684738345607598695539592538825885267871046404326437744002343027888972284290860567160055289707869192606835562285978920259586010098577040659134410568856937146908661099502599682251254100215842514919839103990884026791878526021105613403580959185053434402292809243949802709275550447778901684815438366656084524548950402531622097945979960488437419305020189320485700136411377170348489330853444745845780069045854092264672672477721568199273554210207084360382359735829226870988820412915668982595994000569480216740052686363366864266062417526239592386417608170055707783985797885527662924788930257964983771460793832385927087014472484415075204305964026878247520294840433302140765825499518819610578064906400976852703490722915530373629062287464972370045924105098486023484036592984069603849501049746190266613080781225560067465376289973382852228940420770781170270811173482745193970773732238342832433392403217619284792059759063347011895378320818162181190466696144634919691915678162418837817231136793655524346594882058736472577000173309284202229074464719611137045572681056279587461359139149383827058692897878240928202484539924440550078382874239646910489205848271748895959224531454894512404393560127266968882208396403956190925616352710251206654604806744184762151198908321952560738066069671537692140899970577054691513870184297694458958693100654478217463039582123365408621683196260775968160911011469778401898880387866782843605770159877974584076330939162592832431043503958686715862921152596253197686875570802136720432945412824699984561427936467680060707116853637906145673568428717562144125682174906293297346393066969170857985823196238760640978800263632854186875832419808517244047432376219905083899447404713005888751068713347424496233109556776673327704621204301681911123480095299755320410764502469637122242450587767279890022561540498703581062504352155033749194259342388999355098462257749480788545325111025781737022226748644873242635173728859651079387482854285870005905120003148539093034285491262235030874505400909459432795689600389031826887130878995731703372256824174861716869253488367055049265885112924463824623942712891451664295887609506254613327055246804890033407653968481901800575137858039848048077025225882562434554259545364814680715695993976034052420516199625877722120370303275405671858905644933671759358092315015814202819658040364663781532796220481734917260898116655145481962655675016011847286426611179237483848858679431452819436550273540713930268240761541770696480748110742975085592518045720218433711508099647422119998981776641039458502876505341464046955082260984104309284204532181848237400763187711493420741395057835293805435202331836383425817845954919942197421475880138835896207069710742609296098964163304473249203434084119833454132467569168955846279248169847786349847499133099699657346949282539204856147329463755623357676169369453658109927199324620977320764871951980619555788387697937543663195140925398283715056660163798408702683155579539508293208296708415920830148480941079185191646224787525108081723442621767361051352298291621192133414273976310328728830984024195338588730488643655603991227531722443248397436903629247232829445072242151479860881225472642344346905661854443665092320371381418491269242217228929019448970765826157966451821970606030333364837572909966015172720119977419406484407427444304044068056866621290723405039163466377878309787943695662064490134222303946951826107180673223856142806579440131926490600155344113214553316410966222815795848633627302351886548748774218269975620630474383445642927806865086832710666387440081854225791475611499586043779668312385773167243523649442379122364440658505077470963394109429105845492384124687001206977855485442800955270511710828564403539635689086555389342764421142683265275917265020054730873312929485099150407170770947928562776101265976297943981176653861944655812377525049470273425835670033767219216920539596948650339155070641553425038083265975673814248082696680424055804559416591316020388296256009828927877527840471076818820481267532580645661869808254627325330960459224674470662396596043369268638537029276504915675697366415210144357433852813151347400303407561097363292360710026443236786658485153316358872679932757325914562480582776493199897187306769578251576025571019766689725058154695844173884216929676060943882439493159543991880704050713712450779866540401494556754554369787224532796996023936673625433833643059213596155490613355911832479695355589627992578383924727234143184288163019591221085256660095417032183817641143954034907450192050882794466821034340055163783157150833220319853346158447778369011255023493576020301852457055397117081471974240230210690033520013839381615117083214494374393727498220141703639184754746292462584400508554597603667831797105483783268274002690240183763650223985579862862396082101912915467282520940213853532480395948305986362287215528460804432230487117665367478134243796484983781870312496515734065652446396931045773384764666567073743019290789077165672300294353048233039835740897849560106505121656370406590846288954347183800229907516666297826951962987511363657421873857347797682828516038055661369676915111721346267631539481552629810469604456128743337881525754270092381382314607712062296532287516631141899659524519235105457286994647650220847864742104893266462421339076324569428422413083007450933851329379591405966788671169655592627358189529873998511407406278235924341602805442071064352688971613353443633870980474857290247039789069746626831915367821944561257943946901892815418094544688216976836250815016132943027811230998729981354403750043485853928908965005540724102393609196795769798334706308618586436410160809071121867767425140492643252913895328953138517650753935742468149967152541040588617011127332332642448015698968486307573627828258434155898270425425837279458416096962079725989435741533750833792707487055406464807762908452934085601482117382325221736656966475139931694683863752257960303046699064083086197723843175974462579260140306829393302681112262304625616751122474005536052716147210793655173761684517954294419351065552928455151659234691515656296183151183480155322908659003112000376387433222424295691131899868012463599851961259848964917684622347486984058587685387533578191549401972565882795963722781074060753834660013217415472959918305635480277437650690054601462686767803247261093946168147222980671587657897845907205866250800284916642458434909455498248581256554033811338698496504615501643902783264846305890810869024164555940470274370170891193511193153605624827181689203784006639608348504551506683079164938983704223413110313346027634387444526866753164672543409071551598926706555859267598641316191971666659639060637745323506812712407093859358849372485712220938197580650793036133365755177621966179259232426600775551376796169630810065620949875695050411070497274324465382685836932675732057226126711039206573058017962165193362085220481823395722864881359310413409720730002538387603456238413311355267201205351509380930325981168140753046517556845468290812917002317691013150467679772492526819615523226635185738794222599631515568632283029001356358395284200072232643788908741961803154713260730512095128203149907349824183722738883646235743392191942836485824295568690136686707201060879249183469294318506991839931658312811675433167439477113998005369202369000014699108356562589601897655068643101169333761395323107610380823422547711288323117257869787362137671327389748045091133319178657833365798984759974946907968505593039816246926524614312166011433741507306315236696854484949572977982181743944756958897024589975553066434002856426594603491828129830853454534919067071315123041850719976987183591703628478796306975784468543891230899451720617817788759354311157962322913420105943361048039841072435767921296866863594867889255834299642920337853224964824953122182773818987639684734752285794507415370663619006484175219131303982388839747582019014456448921118365150502238903851743736216172932677168664715712763649088195305216919490108743902996890248790666778557176122312346561516276342937636850821619503152806071020481080429965366309454207791579453822232018125389875259194400799801308606887218476845889884872052879874883714624420384044810942625275484869040190689246640138321750701958794707667457041753813148965802302732121917875928273946076712694325587912387676003826579390691116109252504932441149171239170511307768339207036430272255224232713490123277668340620747228513248515084162466223261297560716601411560570052662982384823338869069766547012501131014557375250058031448860742391810555781558637040201430671969151030675151208173513187326331122361308533929669649173505154645895614042996056873850248117975588538685835232248037730628536965925910237299627303452864140214355064108464187728559630848685330473260787858666445961381674592698267081182932832615993511265284942798985928315734311919334922537889960119164739740309197814992636371565625733770330951234150931912044145769796962406921834801553985838874293421863086521490231559478166149919723972375171909924803176839569201402100907715524441956254848380365607940160593404701793168817348755744417877585880003646494566430727892157469960612766318117483414347148643487691669251641312276776364174822866534692457180270359091340699505657856700109312584205760233564375182780084918910549847616838844572398755720518828828845401913973359011256157121018972027868661070203438728473737176920689388401571219955320785676161382866727154078836731176513495861286385249559518616877884681280197724359679547733944372307509600584264632137936893107512754346739704477108759141699483885222070855700252775428300717749496419644191274090714456667968450973612722098153736813686436158528377457824536302786207054947747907794526722007292152802287375536710900032712916557363237502552026849680254912207992714967014528927388637347183246804751989924987066782379386022459391585286207669744304987456005886959902942679056842900053517998881857813129679996325914077366687787416628815176927452104132451452534726386975655827039649119009660772942282675209230207795335730533475175045100021295970003317377753760299869230078461884815694845650819343224880733061233321262732110707104634022978684926514653930679137150794181592611450586901607922067048231860401600936937675473576777322681788095668045464095383284608797143255464019352696785649702686823416279220911518877690701588756481408994921519846500391911865063283964160596217867430092516942455466638143564476075746216129944253202924249292698079685502409612547474848583562902174151867305141201432189755661125813500605952258726997983391854756892624899578524667070430789758908363472417447326797320667849892334220328638820296572121120458801978949963895225421562144044896431664728166017844482764168716730510789453830398481150243095595548518361498593266505280665711244042569376391179956924404101781131271776964746915637301870390297300368724602785815210154138035470359332254116638843019073154994065429501991408457219992875086043758687145312505354556925680496862452253984260885837093913156806131545942474802571500899300773789720948129497825449066795662084375041766567556782199600451672061153527545851204966799856671869714274807553609270944082690984513090733256841806863433300518897251599298865283195294497271581815336502343297097003504975129028571463732637937881233589271992882220565497958293711668836953975405654133281009902640907878870929608976187803637139752625643401821337747523614771899104206898241096145567449420537522668203856457183826629851098422960953876336721269639247124535954386247660595951999793542232037089183170333517979541487003663829645810243719699661853359741802790708072474277390235195267008842993136439978641582989744952679701646412501519827205374076448717878164947772062123010170904636545481093060580670526444583459661136815783504694296414473013019981879383887965410850980761585504797344162765058638461776852856031780100363165062813894460826815588052519935767733115013677258636130728686185900045531445220991532847155960705087759363186419479758454973813910279618032015116838752935664665214265003484006226268446059998173346866616320315408186610085476246896632470907209332860090992013688378101204045122993360786446992871168641393781064267954860135867637373523646225856585621293066355772282427004024158424635791797293009232016456000679816642809639952342812086364291583090339395103764687290938756942803902291290685110961049694465441354945801860549010877027240919879218353150343299377532458808840412196507962046317627496198525444908503981922233829448015064953275179939789611300492895494785211553703348254598272580606001527742112154393702645004555836377765568459082585836677797837828617297434306590813060204608125127971960229435906259335046349791053647161476486193040797965073456611926306300730751897533507770881917664418503638341339246892119644920416187391504385411969423577211135963714552238272414193774558123251635207914512929086256815688509655062279805926725881542067406908415690907445784685913702193925823108748579439486073782761295793987394866522507387901717879279871998961414206649890964372236398549457352097459414300276291164413771440423146215048358806377518979419157238093094957466253172619116915797506060573102471901866232356356590091617183905653406514746611161741310856529546531149217528423860486027308326239401608344740100042126187744716770913031175948353887490201753844734226391238749976161828757326814253522256946236371728895347921798216018649157432740139331341969606830018735383015568516989636246599762697579858889756187817285747486044060884904664038983009742106027611847844745629175626404476092982682801250835854978080739365263533490100930744331070519681481895726229787289596540189499830927511162905752521824446934291230515916933028085834033782257706680496350391019689761318267342535569773749116975894763141404016340997110202646878977235287539133759388832750570692071678060191709744686802480182835703028941889157058578713993440320748994965632558207693635766892680897466531935654412370644640969181820929628316522168778273240665124586917972186993204252106633457948667344435251667119772805799561367424574773376500523622320089174225807330077433750638450605577885041513949560656524240989344325651331384757286104082668051926661350028822860424740017581524737204704023532647533299139409361391847620513659030000342445795923272646659373868842514218046285173299647079659237323409143383674001476075889026932950796968479358538566574808918539873139391661331868770382144400022430510307388135349686244447573106894078058623830530087339668557742387340167174821291593436908203828580214685105150096560064751657000683586282388815535346765129295336002793903695968953383808662623234095555913695873156318872807613211027214009658162903702455690099218437369500052885940984341298380808194429830767103562652318878770361447680073359007254833983051051334024272442249723354800865701946602015893095606506495013498426412174442022345326170590109632541163106273538203349297412927184692376375765332237791764514528666551952148370705746055294357287068626525105186263305327592947150643681864359399981868429882831901652237868462537565147357926561894915685402077406590132684976976670645047061653967195002160902378865895318876059390275559969638582980972534503772939485311322148443145225910124383566935572435608898176075139019787591650765817719236861093489592175505937474790151209393334342759486950771190357599337343227829788223225081781601465293301942877983679181754250182422031785806194429629898409876750637527355703458758368446778130818962797936191388292700249066780071332964937631813301600846442124271818286154686319766153320467969709415485159369567207621800046848714521612608989245639852269065775573994219012272056293990909036458274675827688207665977029978147975662680021398451359067083488709817566479730965815616378396787969714840443669092679117391574388025017586349954921205310700909766180423606658805811667565849280982453352516942381673014377137545984259956442984397158670046375570374040235773298955943905534138480471481003509781125940392525817460099911972904009589114846293616832099556366523006732721979214079086610729123199346097258687753605285887626976785235409910702825544495094092637509349170427067817337807413942997722795743423924452333540989007531954436955511929019948150976489239731830694070414407919344457736700851785770789446521864162738641463254673986236124754570406623104931557227064029090390619018143505000620620384814079483273225461508237813266401327287187477407844892216790924386480033431193220334310040179214566226263928818052967115414202789838852308884341623139585323018801039428758384295283063905937950796299413529978848259208057573480348990020581266887990647470404595327164638481394430091395682141927952105473454922658999601372216721920242412504931473479570294679171522013848572560773645053191267466840181942808120647897726457374986697452548981525586327872007912743788017357647437255893332734317532386820569991320998729380659629875755468276099769120859825554522980431905936091293839636661319375180256356132627577846194785122271624596338740887677830775290527113067717425132167345136340320682616569745358314616663886100527749719080464939635901968082569393696328453157489213006895725187269043322006922275367469187403607310347408936316840681077250508920386618057350137904883762565377895791494025629403369366124494765170281776359013939955688270971750868617893031138787848132355607983015002807582369454959021888816816342871871435473335347325689993032071028682370194672037619094162973221684894242677255970334507851289345403923280642972579661433436639230239371243836944005756239849625953484673201385830656387581605875133315533529744397912660094621739550945461709049860160958344794081638014575827518115179149950595982537110922781279378088607195636440426639643552063333755276871825925411219005016183798132370036994738374574254721639727502700785159493528882547136275631962745847558144402136100799282160387099866374900029617495838618236785935290926313246021167286942129795118147375817171669900518470885499013137622414851755253114735791109626570871708442947838229506182524084529837679613528357253888402572370721599807103923347950183923889604508732193553713674506030068789813552697288226775611564764369357674128849522444938765003225986131361715331821407376370410059623696302532902225166260616328354242951271271319986580850872607594795701749684081629077731632419164317911979378911009471481028121860848442375504550912353221722153362053190524336660525029522238387924486972145658118828901193831579541228207270644866233293740384541740359734870606040661856198442207519754496980143287215500814210287280105467539548879595462634119028197282017434376325628549619986049451090216199223461344646030108457672495494078831490556187124187407114964995098211307701353441123957501719264794563596326816135740758084344407764995347033320805431306574540945404130489041944271468889747216112725256708817640271064396091494759170483946212812139017172687029603869688218017205166507170263289561984529495131675193966452651243239896546559097805729780334193988225761117427746312919573681834864256271822040501582973378907646281377442594708472062688730639247349467499760907579870022724521339470375342464426576940499571841055166358788113932078112532880991717466967777337802724173868558521060141707372071758184278823664291985828306036054833191736308150929545883180257870165935767652685412468992449271359137746519558651534322531517067116066852706437647939477480969101410844193493800201238669385295307781454252467193570540921835062297836704119343121387467490443090516378081924894089784966254497592746004723186442423321969129272351871769617670464869070370490347986766714797899455078037413218932872107553629226360205968462713694035874757146953652279618430599692353745932655281148524136592561927746111557865406546691506877319382501087799386432111311286323622634445776035026345986846948701863871687522718775933931516895754839879480960298571059049268944544309928000744738011227196681825179384589520470673325140673396166694351396257117188108603107864695432967508051830644260375754402017888168931961302920202295302582832179241133801653838927829311082266287153804010479807803882889657648824724338701188165910629463426766317586194987124064177619932451277569235370518471940036390789607537793979130666887672337923919114697164899230442279120839931825696619510429715592088461634406565107511433249980078801824972714237241505548683668067273222699619782063677545877261198079828170980115629288324084271520792502814947775590675839004830513713139577848633569153349104484674502537860013576386497594307561076332588229667086049380377332716071575292359883220092932635933057569577460645223773646837847137606566338873001792542708740048855038757688053966516542390140688856686057964728322536611564515945793052170660892906234149037183475995568740288503548114925759891891999431257444058210495351423638284368990371876498384333286515631310965701311229060601309738617226026604751691302710831604961323613342508166811714265709352126848133679092826529973612588418916591226481636057040707052291978251088010069582309819794746002937834136564573418390146536148789869514946064800400289236523888615623767769172222249026504386245904071657282944888496483796281966366025910134705754868248024007710828773241792232188109530984973486266008839814855352811548021785209306078914174816403886317729355458901880559218261163725454778316699127901191727973840303076018597000633465532676824717755921079705645084087738033038593105112992528670920088077646099700740871172518235590235100925796215095060956113726380386011640266713543564898312454628331839988479129439810460225418774921919082746097714417198304612442344651031042499582289990010712939296776733035190519068960129355821080637548747608068065113705452749467962093924830898365985280997275214051807787874682460486392943658635292453784010398464416915291441103761588542088247150904067557064626867918924498273404443694350142443950459746749747516315851939570103228327128672076833972781741260859887121339569940331255341230854022355655204142796130773794902151709553461418666538993561281504777081150201881111883472988329067690421386021099484438700867500802804807888332994379479361235118202897951749516168982579508575128242992886906275914409029534517123878391075723674981303973028658457774893552038861697752784273652718397222002820791187685526968600736473272247647487667867394491862907352901262728326335191270589884128891411702542674593721666681640973105718071306746891380948468901782811817585402259794968491398686577453386366310873123187641894359424008769068057805339004316141145057370542168396666018271757227297667388886745943772945163214508492036165283569396935874085449357142281366072397693917198183434586971790020409908930027170762399942076937547376725063818802699732583979612175419544464530769878727049474421321157052626336317229503210576233754418727510629084338158565086926028594328386665948350228815241137516379664911335860689236318543997864750629394856922578858355051733135753822461023128633572716378237936712464144336681434152667977833230489465672765893023226577287314367361714633328488983192620540058789442176754886608081996030624076869465527551367823805291137405342831678889768822979889651180549359531750075976201537780603437141489965181378509080143968245936294018533214308489816174559495553910675576506878720602888992348125538059332112872871911538370623052920257488663334126705885632187420331620049469520129831783567391607464563510218448006578923575967400646648542340172260465206219937845817976903389271160299959643506265881027508381617888258305897478027446038667845305335318725380998489795470142358358344509095946296234361949391432993926457501419889767890523300461832361850214993240216555249257000623731114987089356591623014677782483375196772304639648295710549481989242123750603832844920395747288918464815268568039926614359397928763056508367417665088244063462690171686341461804184885236840752680824773445704520547591350702947149680208768707781653132530066005605072885813709252093950143180340519296979612521762199539354258617986270186010517238941314836150837291420992573240322703072270519283557937437780373826921205010353852294108137216257891327386251627122420687747017008293074431547385338158213338086693463576884672481874099588274688742325300345901990728590085584711047181219485238410939499437607189338435359518234514233280028050412828778533695067828810570840625355099170011397249746838001596162690631563994525774406030137864050005722327895694963615455060605761350439051461084302115704978625360744122495855009796216387749025452701887034894282568933740584993017536559351044995950606716612192186010805494869910787722163873512435673064093994965409197628536067087309603073345324897060836692341956041422020982456646885725054268291062388581354033978650237666441480764417982665893098985138488651826419729323160172187473557468669503372289662738093986963642758851183697933425230418964465036408261357111437474899096031477672005506829510923740167234328004969328475498787167465775958053107856376636832922454149545471203681789395599609487917373440965009337054939504857946180224221172800108924201702802404934162365641222862120667398690999640329319790992438787916457603206579291107106760645225256863154322035225135863795901614536692868848405864940074068058888170306186088577283302521892198714688330914264778901327048086097238478079351973540511205053609145086322392915787026548354729961689629413158619169746139673195585463852260207722775331059057628273047838875723583179494181967842127591054190177693800912060077185432744948855486283640200112168575061202696304316984920467914547972432500603323762596002202030371569082941808119073701633085421224284036311784710687215931016820642535770800324717157515307342420860110026927929152445831405942226841926447963637638980808842154820847596081780266684141855228385950095637294855634082045325939304283333622139120903121019261636224094714471537726162085282680227001077851391641415787559680060247658797643996229252803855119845198246693506995638984617546025320929989666280381283763435966604657260085619185562218993599396521779630699750862315333930428784243171179569097220014506905402405897404207210155250225252289974298451775487907250722825108618123043387977639995597654559249307176458199425436992292614962350996491402195703587785297925925482181945202081088891121559268808141289270901384060786401879811519792799525705538976369296864615917249475201649548993810756591241713674472986041530446325133254740641462433285534138639061203303230235157363524197270177581332123366657832530475712011378041298249796395601664245419266798718578005191031803976896479491664366893371722751699962654661198653542535566965019427285551093715019659719388847177406289547658547312247286969517220561434957058947245904052933603763892567461808367610588642470123570236361246670903130022312711390707280981128508277559805008562399297750518548939028896647599742948534109513189320280620521504267802148598626155612903817592644760444745096509138882992681297140735464802338684420799227935188873084831383719061835240496497644126577914444426538878320176772891634431946767946093470334613995482175765906353607106674128727317338213621611666742055466675689507030803891685562967785798905712285058608219994918274238862076407693264333509095053245846624780194125495181385267486204513584989177504670000214330492916988429000817300200985157605831608720254621981302529949073792216113669055376147422793342604912143989531286175592072974449491337756766077351712016583492265501867492117326227512519422824106976079845858758939924298069199243231131595636753438811997024936178094385493261718929459470542659028597316585763857450842790605184950582328737070040333196187003577389868879515331408042546209154475382836453078808322593627798376899642153950636899761381788860660453622706161591270736646796949917275755454322861087380396379048820959822358212426645410903154803845545392840681535316065270665796086590016362731963916732640135809673540539141353482483419005485985565090390757766816154746346913798074566197895345394572820463340224300624752572867269296927699503674008780131331874545016846900983120319767858510968632438200652665008551832016451559866430360625468596208557597415751635271752701354336677074669181284148942964927341646765629611308107338710528949794086445553875827808190214165038539654535347744009972040675520481162424543028316054582197359324199359148118995564820408244642664269716301570438847007585042572397749407267096280243839420911832255872835842685144406953948409075513217254392974043606128772768891328675079593300817407500050157878505634065375794329692367292135061744377575206072397813300249779284682313844910692675637124250151689611886781034478331242726229377988294198533582420930410007321465598110854808462263738524480713897128557436616674576010975392033271126156616330616337501362067542339137624015054397041520752885257357297190565495784115998364441583130026169104760646508603005373660805702852245210083904695177049747619935669232649285653663845181624683400987914478019297727159957624751280695766335706440030366502288155498523043256528026773629337678998611534648770603290342219518793606755511698679358382633698239024925977910573674253096688780532838953689868361142825418438319116897214587783983841623996370744040937964677632082097005232633873048031716245475287292499931648790621650731847751368097768228564465086012490714141836782907598134414547734620604485743368850201056864077348865202732104470635174369310630793387799566727941679582523698904680623308488985048338327445716865821368054120438492111200264975914410103550366638949317885805383973645085042315344177269579055851619954583533618145699155173705507101333484585507563567005019788972436050215505001761976480359514620065952326825253108260547601666511032400457752879126337941545088715976363416846207420615780809857585149391203081129070352850389968587516893331972526402767511399245311454419327177980147791235878729362071803373878808913950994514886310434537695473687046484557295664632768583436509356289207768792338471619631170389970281814876726073591157513422314919605749362556456840258137745857426492038374400090501773222373185055299969950776148789337064303725797361601094090576747023709568789991657757005538751513169047255508251531643744061547597344084425413349537025361797124023914354224848973317932474509952114443997397181940737156092848009001136854166338440054580072319492860072974901428810110432213855739331736836190220207855420335655790756629420128285854232360378415194177916239972607850895635450076776210020026394859635050592799499129038040154266905769468506963544839404922746041240948432368173590492759395522639865658835732193478686164712687029371424187895717285284192777096535934056687064493315833178352977586532643418258194720294617885373879977009891808797434169662542263462280857628305722898818339976443760792008328275181697898577230427968229849650672946994644077298482846607885466762205936716285204096207029071270387588354604005532991543195303624429210892597938643552467386071403687306929362804785474603250767537696148610759148276268144897181427931487534675834848656916554729324634765113501252988175416043178279498730298910400252448391143718370524533836391932250771576513258417832471756078739348580962467047433260952109255616368839027521660417941241918780287486931607186252326752976128371139172687670487581992683672893527349238070020886682131514051644857280496204874974692299390505698931996424619835023789333338672910683832769457976413559097276475010656101604288521927160174678273475167780445739863577223520426955601184015339170702731788923164964211935918577757196621202798517134081702134666842525201854711423529461901343674120833288882280195197929440245640925767961285174546382013421198013632502975906967171162985883206336289556193425611677758128243665974505307816300039599947915416828415403081649936066619501857336760652068281625812366513385129574354578181394944389966573289963789021565622804036829584737319201275683666000149312236670763992803433103778425914931652658575889689255870440900140744220262861848911506962658288842339249910796982830589786511304931049468926684237036938289438979331338067749714498312372013480422768647731953400055606852269375783458923230994500770367508961556449528640079232738853848301705506376392266496692998807911150117780388568232881452451803600404578183608842441699045365843045694731211076909542411975522204568463307961000054112129596466780872059237185243214429903210134518572482192958149112978144060944390025607210882782879325429117161382207753613010894873087623029455286155409185184324900221743922525277226446263667876757273633912891476750651570244070064466740365666407887234150031983450208703849071644320845442515926176111962577692910490356714105751325492041804920621233789260384007371457521290599527694305852449338613472463606668486149913531437132387230499563461244198827570759463098445351626849543916990424440185766494470362660814447558389314015101004067479715321752935814462109714201760306574727753402443838455617183427057426093074897350234990462318934294126421789787824113970772342920247561327530993382696431009803938322815699177867547216217133324292487036295187964688368014150930288963476395114356743483898099122798232318663874152958858619858192177991008015165870631642534694953905693341151615465041948279538574525173063745610099637874906966275524172865815822539929523431025743824653284009921838341617139211076200922916679499348217191227818274087390908165979110763878396781925821080089984710781614772485546054040950542933673914345528146223580182142591937843676824845599225143519804668237733987457179203187182343003451078622131675207071187179158946936478290927060151460251935332537652591408057417513460851617665905754930881298090523205636372210965499196248593491698681463029955634769005192310426903088647555063842897508499675586844313233802833776999874963177628430659758111549440681963861778131968815975150246162587073300304186085308384090321935477848270891819995999394456367063985009962747978411514448211229534275185259377805487959430065227155478328337794651771878284393974105736659959512717496610285509798780820415231295343882434768554084025435336192141570453961971610445806981887302536695060346997964007378468479511666205783681179066976821191820653840003415293891314692848375402032343163529186223775986531246525349035384534347068488599858225091573177849424270138608163577917812977685690021444491315647632708627063222188213631766860254416591469245512783292734883096556981239819874542241844610526399424461443112406176551849559597560329920152352243793826155845570216243109517011829360842371893846139277360920967905031222212963900719156126670805962163225058212894726207040505503839116634130109540440329667644729739383940275125284507355034568023923371768011122133355944643013613825222960825823389355609895910077648097651778871016955035216329543551008597704257515006004235490446137232095932063833751267074126457728944392377558940235834886660506255624895113803698264466275313258994257200098035761275512941335419252074670584291697143867987116867678594200466962825233777018871606422412419756981297835474332393217703463126584524552527654731027555722142670846988685658165123460227939076078625225948976913261040489776636521456612130860731181406712361291349597788407443089048427224367359706778129750693458360881143802267808237169082549914980282474409251140165192149284192228028435410786185692866395016508113692133605395284270516291252920069063280928060439891227066494268259355148718523649128368244137433332543193829263831126139255638394416488813644513968872708568745648491875444323012354970168358485866368853078320202488753547190860093201849526747348288659972575324680421206912533337814625878205255100739173300651157767404170833976078805794197650506118813990330207059038462773486242222162277361121729317825391826539882318255557305369308920632178344264617070010169762795394225845798616661123613375851329730491931223145885540103981876936873591858013013570443980760047762137333934961514952176214077704626089185093690466526439203667320356475373595554416391450363374865421601886218581498866566034664726535172952267288989428313160610356815319219612099802609109786903046194212459216015221552433377284000676248185331526516343908517539793307825022919345967191365992650253497509150135762609153512231234709106103409302600912640660742726824725201348610830949508370932304041546640829142608702596858374379605792696184961546874045506500895797467263103423816000980611287219565671885893022236787131067523973515042191898600343179339799656707600480998127285972517434349114599481540151628905261284669590090012422869129018153562858419995357951628797214495215158315711161831996176246871795438035461508535193897593443471816045427498401339108533594175791634996380189686565414903202102823573476874706470456335981901746423805414667763246411411083036383766725487533378325429838442389513429443871753037569602113606895013908590026187859985222711775224731130772269378374904672609442444984180231938956109934505718743111540051740822361411486468221021037311465713247011955438810561601857796385234722260753210830922591400479103975851709240249759611486617538854034180231059363054308325502405659204203183891482834576582423566057073182688354142728681592464312117238021416643615872180779864587611114637787407455532894131375343018911793014013045044415445391643756443150983888557655161114387687813501230297851598021479156785652968660403814509034849693956329813228843982952941966398333792760426743610049146658865797317364175881545971239511392038065300958020457464755725999470962881796465695758306108388510939028284496445106484916448126042585731464082717850486214326264887249572143964841307418279854755777492405774640310442457864962092245727528520281313217243666264867062798121387185156575175129927433735193426211081747125832433698984400630069023868796592079499708300805180640145775201927893776069085593404917087269745525911996999001564909821787499885446671558671337724710680606916869490563591430551387839089802788698669075559581202434516472853359130750355546335930382207446861732845003996934970036604000234455664606671527306538451207049808643950462883952422205232511449321730174518457133995540124715561539626247619203065263047292813199454333649778755686065969567173521275887831943365396475758829310748830602638899441507876058273188691104410970348542461003087086528557553921691911286222404108404789963343804080643922836257695321433128681471833972693243173697597540626057303347035459222322947653451218303560538945858371713851855243121245878776109543691336358934983876708658596524971314400201075587879748967627696002189617173740731737675798838197159759219777968343311464744144596845864053796512667711964466356021585234512488279681022672246012913518844369155797523152400377963073495144269427285990560984500438438266380952580622594888711905523086714430127761260225066348374319839709569634131542525183319354776794687693600019998549808236878346604510659301274076061847483641723171053888626284090931561264830246746958294218637449225026894013668960873713480229378781955371830927484213009742302892640160080381431062159060436028009372012899833764605398230717220405906239238514107873000192305841268662903790439791348016172145464275259224945825725104377164634323575707016501826081233406057671933848973862405769222775838602480376575818313736449665052348487645037747848558468896277644885168041741656760394895846233871835342873306647276437797229528899033182985433869857460378625329029101046710021614658707350094332760033366021961396945896206189523253506312777149519051276534594221614200925943474175525874754236388733855935554704117047254009070189134886845294440872016884564692035631651961224776098521960910565005648835425854994626992917108997484126510784851164974832265377158745281725318211997543559457026381359617580349437042048301486629241461091199952775343536317437338241682972340834737359327149716570742925621532069219405422107524536757914894263813134490530511013149813300661774020096402330580326990444521060398391918872921900627818845843618760533726889695969450005071009633683454045579379156612933989435056569163877202219420898550712457849815041856282919544253163445017195156446158611238914104843743620183872447956393909480316878729457446466862155575606425495175690211020756866943100185146969517007411415485485739846859979182571259156300002010843884915253695688599228692769809684686874788010819013895021933535843007339078796693983643934750892909352039352921091709019175547265865636922313725424836463895284475698301760728253308909510914499664812185167849953064591544686094570869995323893310057974297100387283146146879580139299941264130923088658399096763936303113907516609031326647371388920992613978603702383417551511136464857109697389189179192629697035761465425570476637862061764731484059372196076224907554172203054086269509688235438203478174527080026130190748708339144357046056514895608693157514870682876663597041444065667269794099141839623863812731818468550877100436014410333446593781343567480430810934893604547267239448648111656347420133187943532040693546891553245991328026969511069600139390823154541675046890400426055130691299650799733026768863714342940162229675964441894967170593167382542766022771245550339578579126187236600910161997038412891567810246110631880319423761348249696678860764822849395661331380745491738278247152017596573384144186046321288191157649032141650222234790717192868015507238648578799642245237775878147330539949759932135486222012861641138154268613590942647654314372674492791984660076312149016081442422059879790485401408448292413079752653040641239419376622233137958592357901961854935324432317544445696689860900854392858780053216210994735964486927297289437829988932502474199178901479011367627227263944189252632516638041069862534593807546816775589114420788794543094712076190791764063190314612127339367998081298189224253028860757579754476725476762881648812611315025956984390745067796223530808296167812229849952263766108965935115326261134656533350290111423638333859323960004034743017169074251303585985806606873159839346042659893025969431916601074708179610243769742110777434336091136805460857603623839560043036674381099173366265573425735166465649659568198884788342870624200797618051766971072873993829818030220372524006771250409472676791190267826104374319511333019146402222149404990042754841962668827821775433933769408330818009800745745751582071233903294987140859851033401758586607324277938974696990868932303303603227472453120971198878273315576573735375097394830460888859704007252371878698772071978520097239785094916709947681833675027478075520989081837673765529202148155980197290059714628386039898282798847402976016829178326929405983380798370969476351313105423093901816092499522338747786293561803768438809483108737083758872050031158779248638897346104845633137820518254033941558874759668750064688885386406184038492706886117489232849062432791369912744306615614783166367614251507794173934113342519897503403830093572031521060130709554048764909879680051690488030490490402635006696120785519112422602288752459964299057777015210447784207196513343026183513441572295477507043390348543858441329499894100759426009340914949663899635656092016387029574405008318583617738144929979597326109146322718981322587596231733123850274795146587433085781537456269519167335985376361967518545365673861987773541368642926716424970781735327963225984802719565266499210509003149986086197622381550894451421992476617807587222497240032539895286370315344053940270101893534596630405172872305639603553761375291827730940490265564141409144613665304869452938332915294591320011610906235288536873129430024162750761778286537726140954090881864417672030711936617050210233985096285649830045328625360532599410851296825148653046344941018100092375302392512939508338791761837289970111430570725685265480405196100658694604495049235551930747293630721776310296422517041238223457319498615135935089934681413506620826077874273702942502426511759955285348179624357543235024696927476206158364988068178032221854233877065427514207877997330548216445460654656319554038449758649677858027120939902557093805314500881627295282020764515821674786413481490805820175014215060048782204026327863628981640084635735181863170399831794556195605951185044572082024122529942271317964251641397449162485426603281124809819610079292792395410979744056818187639234181167037285699912439519422103552397472085585572564716291425519674868992332919488832653348041832460256263076421774735452423237662168573209143527685942241250950963244552023869878728213821745705797946194098872437404087717691981592228263848040283550938963786496439167361221056040213343934306825083930841558736109225147263396068225987738678128355564880560587845005942362931568857706563650411499985386420747169356843056038300157409862172373518559125953038355635536010249238191353712602380041166258902974391206478087934764537963283398384874058660332371889604970861819894448522882900181100901041157091216529636637444919081822726426601619394270020917251437372039095006748001354272582427099696329002493159517838484626820603807409615065631805313935566784523903347683410558166132404925885560312083982477850170591833500120962738949794148971526424787020229617185397199277259408300132461614010095592809089988691002821421299421643993030738962163184383729037412302361318986127377151167077361352805609506428864131300334948466766004186579896881722756958570145001654695207862177774568029095579555877923580669972568723887106939858000469560812141760906513444573773217843152256063438238999082154808167453880539917535567467185562217790680007320088919752398101380308463668409666852146696585987443241386355174899816936636565058541296307853708299877981694958598815918090751193719350901428024920701170881600890158271372531640679238415699123964238015747705111218313423025426842205528144455348981939943238711015644774914837925203851784336854376865878094653239176713430272126535258375921972189548072314426602954383003912223443167388479699153856963196024354071129468816521880838187872380346923509279289243018785005235810089224588215859291452777577058036097927407611907365460504762386655240082116266505526538856867089646304043580669477034289987233789543314902328766874939293629526539551005143332314854233411669915055891252836573936641447275006880199523688203481192427473304481634856458163476523371308245743651796363490922931470425965130766352904448794985139893069612726734109367124944619465317952542771181202063655994173665423744940419881449044532279555919139568833015270579567217148157906001764067207293726653476883013639874505377719519516285065178510848919877970661471489846376077238232359309220119557920118496274403306878092143690349227118640653909142278260716001141447329649893347000746044525891877559669855646231391684653461596258882789902242140608023677825253774444447665868884815841327272499632438049216013880004567220383294912456035592400022140305641006692066994496281827038946344782911814866906653149391279519519223016097851104132367883370778228868759775537316050659089037505338195263451747094032912893310884203863633551719082420964839422805644541879144514351875189116737348115474656710292045027317560145542950373749352285150880364513117298031733010139391023678397028098320909573400428270594816541263274802889172432356363602438720589280975592254190310068489389244888527380887581605472052042601234501697084280828322217614928473016092280248747959315623153603258762704810573003314896492055510890481544250715055458583816251032464386947361832067706197939087236601371670048016138855511119222250044680386638767878344002861031160352474391247440616395879354511128590919472617184208600192546726256990609510002035618734436956903715980275482665017325370444647558158058593019356190575230178321469785537668089460257937700228429759944738853918480924701317425416326697793879119784696297487323839216464101052811007006346432729326092391683524630501254598556384274103429188735306707078168441749886220245218476233774046451776003936880029957719205518877479289786333929335342676881788491205977731238393561232847814200745430448732953397258737857191306580215299088734953960010223980488842251212071629424401457182828166118968148628221834749732152772968598150998384238342352030067435327439229701676767096175458401905700514119320587594792516394064710362737292616307483132524518066307999276517609284469936368026284464841406427081852052017783043755985614891241582884540437454511228227515087954514843977462043833674548275369311493647415836965137252704741478256816454466068253694034663939975356076509031969068034720798806231035697709713341124850504546890587429059030851607155405738698981980952771337182264695534462788036985342004056669953388904056369697041185710947398123541763056013925147638752742593386956068242838205734491037691676254301521709878216400814291097355306207327129736955597321747249179238875419035673405760699713206411600689231680349750801330373925687986455413739356339580007357166492396144704356673172537291949436368473688426893955439565576910674528868944896060567316161975214397788426268448031555728632720394594965749411022416989723074945902328108794682805170866441419047828474151351777856925288177597786271288472357900255827975261627187002274686792928450634770675300337191942938299161620135262395599459320676859933379778302169511507856746236911431021882572941321356653908852851675297498029315715868048163622652436036423299937532847377546366772542318796094018477904476968202155373049475361986683994841701729322921321878453234684832273495861730812408253856386064042490320703227934162583754685502171735548274646296004717995300508151644316149525621540679952579500468676829988421843439630207559724437473874944902214260118005230535456170546094989681017885317432895385785413934306124523331015397562690304667461220240874707211611650156406385109299183372428158649992273401934646664093343337397072908482372635462351943110961643593115515343351903128687416475314722786808373436506242859437053238218087975538485026024770537706095498965947111461303517587982853814262878695334796260622459375439653934871272882117084391188319287922761855439331843808946823641735671143797459507872636012719503136232740925694499470436946237031112496016191522752856912238348434361202996805237186438706059349767238825921663573431323808501605377014761216406611355040324185507994307908693555626731567556203271275137182930177155089220854308894487109864701081488182166134989218489081180046733833148493266237038927038556756367932236407557521477182148868896447042566056057068366006254515886393606523918210435203685741143506605566331164598388368043745880978874142385864330175781590192231809851121896348829424976999505534810920655627443616147812689190359635662440165016600360331698009532006219037357034459810188607220941047205843176008982228204123603704421351700767556616856903877924507106426476735134934892723169910830595943094465998959302772356668131880151095432413129839118497849951639754043767150377059075835124993952829673019413436852139765915958939848109849441456182275346632869535804285121724816625718213621171764980484406021757929653087675296320013006008235562929284908063761782057398802603943396801795671164937032442313500999960626982028209892631575468297391113074376966251522171299559751518544956287481152231184278263934209646983258859723305568427578322849220417858378948698170024994730549506483370643044832363826485806181819743299824332728411059890284406269372894144824759156856811501141264088767466175962527729761419479760079130762481329214278175525712515918468572115670531166708434563963626138495388598407461562753128892444815899671173133109648036462829508380725354575563640386404586024223587268956621696241509358796113077948828466463148798967695808905916823986825706407031812810074767907600854693557747617501889146282822351489776446509109453042864139893363552494485911008707440516069253926507271568673986617298176556796403088184180938018768992237097555700474375758795535587744381255686175740282433884329520804563697164460515260427076748001671669532325287874873457417018831974094636686428764228465750251103492636247079679607000861543496543877694296267554141884109875265541340414355544701815167287488830160560727114909762815697761012672848442149897152105659963298094493513869382688064911596517655263043107605849368948204966233469569439929284302206364884966791568966127661529293823402435289169549165287271605125923075615374705448648851134437210823228921209324624884258380082367260012821143306637945796213440442833711059984815070659170813476924486739914924776997601812301728896393467685571428035522545956050572464922742370231174709165802388454065376483296092257004239236148872597028565157038291184699041017562647159520570195857706665264263172722190715732909813833432696146454070045787932864480072237863706245976592958899138143937188699620282264125476185707865275153567256034937953456447798650767878975539381490029224253779241873966129500704963932327281157491431740791716132323624252761872456073804940497364506436246119880981377986577222996068572607532311981884518466466755145722097298477321648303505801185949286193197199592139987280650062227435861824319483426297055653332362683663786356034648285047869047344254485555808668556622969287118506894057052560784943668851644657062667994979581824779453495017692002654165974700247006236730901889118237795136343564683413696348454871838476247593413781153064104604524057755093195783497500523703935801645461968541295997151607289020905618793907199759539788834281979274666992163520826704683182113775272215714198159089361158092316685401060854333042689818525759018379241388131110482195407151322952749807213169898629993957360152021604866377603433222751749742171847238418482264809279469799222559400014188689148654156499892090419401443494466464781743258039792185443590893990601537832162652123294539304939832010930367177379621166995321951456044179941474910888966893433711674345282701320029841889532669238917970497661842641019219865539264500719364262368699033438898408429724984044043762063937500019391514845479681281331289883343019301382122952924973774176496146439890756446129295565807745053384815624498596038350587856761021457358676100756709790030461081537366707700609381272555021249014269953389162364275898706981773782409127376760276823593624674643614853219198153397480507964655324685179332122225709075679581279768246994784981059881488447531213961814562376911028575296017347647657153321261157906130245875668987409722161619329021383673896814403780265877248253949307210733920130923033130928972363188080962667052298760213251963101057381843027282627858418952377301240996163613181948618814803898090556719544453611764619676803928722708769272744429663602319253495549553165908006293521485481976652295462953015166446563959112097593507469698710466088136163707425576154102013686358689056249683944321771636477562364908994404592714103801350849926751468084392470839212940224405238471533163730365487916508570699402245691630710493826257093777764536459248292243554590928474563336847081722119365148678428654411693720710916895378170471381654802067597710901843794718384668564750807229330860030935806430469917168170399146245553501967969079836051155069556617559608828845787399557613741488412254296496258138869515786424839239887670700391978030985169548511353508467306516712476192595782891762292096016193598510363435902642653010634637807578943063468613538157900693063785738859132907418515806268066835137734950908569814436672704069170276891789231161536706326399988368839175866399404684951508122951533438540399797292579479513210827315354606783394382103846417747604175028116782360664875320531376334039304071420494379899739265419584645670936502942771143257711463651938334102229982343505776331860307181891630136004765528923192120283638439549053837557691319025883442905053526405318956786648318154332800380057995794424091626394483339024405111129986655264726612100095719403719882135422921380074846868887941110492480874923237268279556137256224401647763146240434503106957493642602747991863143753838673357851063377179708172718139685858761045402619143525609863025040062463492171463464956413034726138532304502890068955120142031833037535306756216890337710166752096961097637439647671860386289812065691921439661787041753275436077820879834906203757266978537225262746209191305689031468899174909137208184565206389144952400779608979455647308987501068552298482692291415322877301097999445382677178576426883635393953633814951362117611179614077615017887040254116876774600890827295176614586255853576235108785916151969572321271890904465831163765114166290914232437304432644763431747753619137101957278322086758958287562425879709767626527035803935471894661417526951942352816904118862736592393142362164923628805718086560315273683287586867803997131823596035441237054256116857157019294444323660491210111211945346125619333092287615829970296511556514229996205307084228565086547585686574294396321776046255873517671561347147644923088341900522916265928331340278158808389799769327848515453267778186698666065603026861215118458379318605012285608998347648504279391349932853263080414196595648721620127537446709060924926077474191803535126811387982171022375937071917159459407288283098498812532639920336295424139804152164576366180058224933512623282983534837696285920789791832879770015557023870592644353623560215541380237563453304652558189925660036735677493297332650523119082616389746915881872878802842297202544062445013893096675228400690870097399552821636017081389368425293563707668110496759128860503875578275643504316338258509039042829605553970386620562011597717963930768341132511806928377376154993839903978130275990130532573572922428296886298354948694960029579937106418362435123879339953310985420386540020552866636874363992355485166541858223145354445724556369723205938857800747251738459885810345373297328329455974916358275917993892847892653224834859787417660016742750113105027566297081297042282191937046960038230100024094565419782291691420128810557744265472255961951848683962435811036217556497816246870316533271279965275755603841886656736399012171497934649063474565819114199053372765064411492414801701676966436617738928044945661942875814088108764887023329253132354600774379150836980885736313070247144247760476999015594746401091872500391177450798084662522497764444559837860295566087021035196974362050312417781173910291746570638692720713108222877329026809239109424321554265159082543529269367903965019937365717158777563624251040572453499868296789962774401222728229003078236102452738018747130867133071667892956457109830177145933565445132796049225851467747457659916825014269925596841164270348510001763043889720654177005956429898839982665719167238457602261995095823953515423791932339155065182105358456142822196343004997891751362991195822190781273091405294687549157504439905943144131206405811514106495768112925538637560295411686366448757531579914621233774610929986066047704945048020474009715214119203057709486445356178709505562800248601040547269915823576584969949163931699794119185224697024763659125255219369242498721985434234431198306022416354488918465742702197522345356862451816720510729537569493090312085338921184369224455739837876719984908448910551210249528842211815374678705533817088111768839232644085733016364991259264826638894850453993560552401803407192085653182636221562656454121808752168194295661348570296679281241472543345150064470669430453870977293107168729571920257348311571132068938316429584914251681635926935418626997259720152490115565301358644645837257205183716965293619388210031628249683631414732496921578489433816225352811620413458401638369788216247384187412387597320210378130898516078889634454482533500944598576914977364718958007440286330886736256234011180999359866199808565478321624456600719763140893264029261677719889539354684730585106878361608361407311946469891539236105353143590335327300114878969096508192221884038505254545014712887482828299321699821068171558438666285941097550174838763014294024897655064619181399898816355189015892903255778285696644176126148663452464943127064821173718818611531970915248045516364561970675178930936996215735573755056253581924702744284390067052526120702389280713548335791595585357272795226994021672714508377633234443894702116128651753153074819546355330585013458078737897449221831214019194504632138349520883006384993991073855615540393760637736324294677466010622170243307206498318909494681635049863381413381074794028673151812660292512251936826132029726212498437238316341883396020630203465612729564085523612860809284179183558864143304795776210127430021852567832166312931683024684566812392659806442882770919603722772869425429397145476349165562118376690383680037697996068259685928145925687492606087947484796775395547068980054454563070048171474584609205555744178915455446097524698598364696963106986166623240963916408041045323920576545415927134193206614957225713610542054314654883906457975349812153617568052722800680187351539754456767349464433085299847881266647464358233326905280626440704153863830159409550759444751155190083961044683228631171754807348918091896786861234743808441350275096831162405257658905185742683106225709090845253539765603896031795434097276118793247768828093222396729159945200599959549483071240880419072335342463008346993540954878617194323312024365374234015041891788641552313360915967916930081360198129047730478011742670464673347377328930971448469640047475827541314109306057202256667312921635731249406287483544379844985339139920964534239479285252599187900322371660235484114795118757823194634117217877571734729040253416200950029053602580021177239838208683453967720786532427648776166809299481900996435435047994170117590785333337566586893208249121832748008053484690550533499457814663085188585984112558348527124067999734878122203069008858872081085427226872940754564809622290875129656691311354479381274081504392204024099988154412405444628001592724119429525990431126636909819609296938579241787894043445912921182231870860649129078061465524237735464485247189958370407574627502507523925119151406547812429173270993596897584191268449296030243979152761660429362939408932962116668277200585511722227645340482866369380285123772888032443708707105767014652559776236638888402153992729125335367111915840244417015339394872136984499468917393703090323733557797092158532468966252657398952817412223541220849246729030665140118955042831719350601696769153510670304806044142138396449432114409843261689911180728510083831095514574309693557159356850887991494020554708190325577964932816610241355915050099152280365901939168658725241073469205338902043600329917975743164958359600515952680348529463848145219348532647615241072872699178966267987865255521932272634590304883721626292659410443354515387792714086499386151941525588349922947984149285043788264382044927467194439028583239926030498423491110124217067193684850356117382221271086942178464921610892702345737071642468366893286315699062033806458611105096781772478040239817574116316380453340611358323123762355082084415981629487853227612839512964546050283829651194883391091781323344417019510614947777356045323804487108868242758049375631519776978877351566535569227724095391759896207311398567681810087993907718955077677587055842028291458609250817702384448994586304311998156488349276379339102459096053898814856957825946523625446488490744455505457658966351174309422486735333875333201874816250880749781192160305802994428689343553476444623432443883551654112603858425345158769695141143022757968154322484195577072269986046950214149726941880684513085623002098044105235965269236951379821974590107573948121864547895907596779317031108521253798159276786443557289731279692226389781434703921505468091611027760868649738318681078909932670472543400313713088877074243921589251375800842652332980677891918728146348620570511502258886235198456003975153116013165746940142120778626296958227242757647058602643075924175114296230658293402780128992600823621607282438207320569445434764034671327194197187394894446346690107370245900818970142540961786113783510333380074430440345370255790946253517610054807360366406198542826294644708023791063068560702078837001695154559985234830820487297984774614060570415270416067959292509044731664335090425296425301703126557238575833412781269082895721219784659955141618074027935732300122943186962823690079291887550216354597453657127744949400508944989158202195183324587117442886466003740294560036276365881707344078672482911976280571392172933486496622777001862847807072737236160947412374812003614041008975572678434633465349619331642869023730596908648046345951030962674327712475123073431677456457823879230182318448080320057200898603518574303094783706118426652381315911250415722778861739479572726711557911314476592476641269818922723346976347453683714975526025548784565670557223269099921076071433372823099735280130163064261607950829494321286534371341684250005121758847792416921261733291207001166561289029080948010929626528803001875138512287913674142585984101767780029444160621735561387645313277540753601527963989407786136433794290246230350647798273699047903176115366833750756919919175886152213013731458555279643772562690386884747826209607926779001986258073591648459380923787626820314039064681229541797451577272815859891051929698941878624882179670654153452732604356618032975817478955980088587921283316456199823646375517195157334523610612719394626823293916797288677058545773823734863508229047153346088124896764223870090703649379166431029124733456511740852441791876296264694275818639989110638923456524493166093053478409420540404118636810142090984141901882800923000315853568854219787072016910861100613919967646951147479867803096353857056523469423727633687554938271779997143105300834822750302530123126241579027084022339807168354059152896028026660111342385708575668675390610722967364858685235097991176015822794825204515270316181239472043833292060580129122451409110800299332447148620555563606965173525716734326256185602618579874219176600157928855983300842253686095708888295942047417445898142350646586230583602492870311719829143283587881278329666106817751585889200578029806379411169485770171627375991938057566525165017376425249797785145802209469518236016046271198920481922016447476061387476663704344009866005431735476913435385085639888044734554551724648256128268133185852593849124161094709509417245088566083125538058371729637951948419287470693253467725019475961749972696281947641573927094062161831495038594405000011491580764359274178799602426033186199678845843510804527704512577758998320284255759779150927788426735750477139944453058942981041140586733790221979082589293084087073918293201391211422245969861682899505515411589955725065754288140862963527418980014676498019817542398602411482952653135722196845466857234233337439034322681095805764007611573821594268947952879934953290147803923604470039815072688217721236904170282183619379328418396626311949997892151083679528793705555580488135965995481708723273356339775992330132792811709983026052432616386727028568753443393117798566993663674237504611387984808196965387788277755364683854215431977483921489858582159656620445678504784697382637526942673936244653368103373939474227343150743596726161491286567982882355482017878298934767047963877404500156784214613616265561662698518948865957542680083850017377376704932831242003970055081284044347094160832800408326833881970057409762410770153315941626702555742391030893044198211377143331117950260328717656388136561559873960641347908658755234680430629296918403627792820014941388384200762799842605996026094810609321128267960730376967654295749819098112909276666742970616764286844154933008202319098043887086220527495530229380054809482967758283564817360081199628086957705873985386361294823359074229714340647182676686498365195143016913664755116053545621938215832346465973073773576480353257368118071684129883638373907416566247819142612665372746562580753488276541258768542520457564058942005935981805795302987969638319125836618247653831008885383371732177115029787277185708386231619298169892418564038768992803958038585030056160424114088717619046114252594355281810318834192426425724067291117291718584482266171889454400116391908533653352460702756664979209936319640909362244936845050646265945778541022767703917395432817682588188219186017439443596306364470358581395408092978027977440073520079428997539057882162581740838717406987636012510149354251756332473384228318053301220782964615281855622690592982105033070215025566495193586310672969164665305656291508502989313612882467863112997111587287642181653216896403243983382683588011392388006169095570449418503122244643676512490920455038108741261665186329015897250403340473508069103406736052996602166266192116088901031485901671945767753000610761547058194249367706547875350588688764682386556298280807706330734676900430888030531762516184862222411384274088685698490721162638072613052644219840718135674996786481506224243646846300379281653167789393516059439374230089583609864883408758602251960728076643232478649582822949634413637067783222333236598835869411524755100091163890809702637798061106741576445082495842292103251500119015450417530729659832914357192626562052514098309418470371595960589333403666758460693862652645968758016878140272084608589052419691068983283483661821511117068742240410579720387464800181521161070257777468595117450966660726930432772550286644501787215459237412335452639473148084285647823153766083788268558911151815843960352038035697845466991200611950569098512454747766635823708726844810681012656448381840165866905349124540277070504138397885757633625297243008839811206293703862984751689597367251108831226087597887648937721283080254052258045503042119505342679589717633325600282830459009933688749936184089374595757345482142652679755561836768817394265133524069381524501271860773993990583947737007524344124700986985227562280100334654241524458576397952877667092522734322979890528936684029447953921118916755083491037119269942155166680972838518834353262473394842875724286008424994362191399589539661038763319234136006477482602816644907421169393854760176012047087962511897732288686042649630503581254114771597819932664132037310286847512088153193911667962364812799964191632393745533635815786091161063298021243712952792063782771889315163121557927832155741197997883572780954649026629439924511648729666024657027106994336204157731014020206136230857087172808010187429530092504688167967161606750046474736427404745725307486691368597848573862419733191704020955867576075370497000234034166375921600535113636725287141369555775284823853134521305726866360277591313870112744261148598549601353390641941664055909255517796231649350990831964915083512148803964310751795182216305897493259311132041168506450371751329062641754067984048307817382618016988597887195505661359288140036593976542157820362288005332515518719141278904716309852842572913141662258981301733912076429188578373290060435445415138491456232485976040126306597835363941244160274876970207336600852520434201334108933258725689921842032774485712195196158040863918685423709819168768119075518438238817061568950638879549225471519324006292656671705807452583579382979115416334311833195266112509672606150422776905261375485263630504962803535688602466030114668496475789696231131776164001457413451369975648408315626224866013508880704509907017562198721150082067582858718339079956674713363304205703475154271452642932771765080388259515742807604344075800363560117759465847972500717919518049698085663015399824289899953180987705618941092696415797200175784873543929589170634258368298449255282759552559777140299074673840257913803715426809780517791986716792406603459820686691957551304668330991035629264967528888618008006059083137949457294045105660605581721857441751141705782457431215851541806689517251931425552706736393381568557014918615055276696535354443115069810397225001575160213074997453995545217101594958811573557394513697323467867512896172902107117615543732322869908511985360029757945792527308698961281059036662037382538005091317386399594667609404537175394704860687352024159843019021617825882224749563751220286819812977882211448140685761237075206374580212352742796032251831596208193191916667160990245303595967457888163716546699993032178992207684358489141464150450165288347429553624105356806599919085099724192672251387029699524354407542780230836797241455239014619161507150769937836571782290284139603717857463950471507522705804036868538123897102869363702275273795786920620711919292695563861017038826446442592032378053126056499786890267243381637723505015870566766288660140883607463695201199183948597136880444673289394361159019385077033172265470073749860385266272728749571918589312868790077430053229379389399303633768589820197794112200321952792944537825914210854463953100431607189803912566268250343070333603330707362298872422933933800046998541920514637935488265271273112910985906091659101445303651000378099091308612248610340700985040223212902602752673247870448163322588104003169278616365191900359352108387976707605775473020644747029689411792024846503617065101959971981433490603246053412797531958646395322271646810308994335330768033455363824573414272613892991988573936967435008185026751759023740270495072215345880348419693161759868845409280610829907070067601670967145979239449295526243457869022842306613449847522016048726930197095921156362621864534762083371162739013313156656541221256148272479059537663421667742694761369100076073478088057609468873784566046178332322358856933160663545130860149449115886885883030536638792769125892693267064851302797295344839970892248463914399598698278665166006992410640004824753848872339725587364525958482198747489877777842716774593289861774356502638242056959801666332580101401896324661773512440886039205447354007029600993057963848569856640268275495064876493994728837659967908766298281981067846559436286224148832979530417432035383898509619114809188504091452518033225138148681864432290143234023850090372687590076852900449855051990988248304234858747641177741718672556805623280384033787361011268048738483659564206049982351419236524487837876311875887860105419886314902627495663000102215325980382333115205244877025786208440270039670105843123979729603912226937096522242103482317862209960064274046270539484641213262955037510219459991113830404736480261619792349495780158112242178453064694845270032535164884293792590186627153396280114722850497276045371802064423236550819314483533345112871713127137248411892927124177235078967438998844944136788623087509535906984769854427276709910356008824416468573279088482708210248432629345735292995855305228839472229519090680440337972434460917824157500734384920633179812320486846069994161802015039014116440007689256841652691415071710719153500506222802772606553600201659660696742741505044746298605212947204298547574790336680224667243286528949772471190744085787186085666739963007365852701926406179908248276440234988055752506636520674551230165075471101117196892580798336813120416873480606718479548784787054544504621625902684442232765274930339312827685572313048537038289053443601968804867690567254069337243662346452316819960388250615675772639428950380010963937751350114248020053788463516956464814870534424583583405039335489040941110544179792124802046583528805632988944964123132724574435512534011861058485935091717710503066666412858170804075636203765331157541322843623972072211983628398031216288790637412213245491468879918527740058611099722634444438220543587536461189097347912338326653134225972214909971594953275008522396228694366141283339756713750032722375651966681040488110821715415431615208021014376435489157189195117209298556841013769176319299042523054855607751884618933875741560689994608222504072764770655571469214359651790145870725971584753893821589129921666963884176171161590231341142292351035591070807683481118093524622731936829866066239303496400393355703280164544871273019875567138302892387401554162179635718943047137441119291594279380218948868449354688370046029782420828107257269786338874934036303893298293621305750713554056622019521734218668459646113797874312528605717190837296570653505276251708517491344676019144065470856190920852670772427038383000962224856337753261705034829457089904425304357508664403436520876423514597115120075497865079728790183776290800190504586426400540697324497483472331721152386226968469884578295567535382433698066622613629939553612440234449328090249644092940389700629888839647529326034363609420553671915507242634529143532395177518017784678104281543839132291064749185679720755827110157048053846599046091071976516544620880782181976242501017917920127426331563145212280094042970497949041707708008192310855164963062712638340545111849101680271831429647589023645770830669088590002433511192006101068220581658926720006916553886349398190637241508112784858085366242842790001760289013814404141590856292155617335785528356150359978915738654918134906654574035011726280900391889386980020901073322977430757711177397472275738104454790430629331820073548011499125890269966508407081201480583210437756754547873737994158584122581296073345929664576490237654044131655288568072111949768648535676792834087390942134611101761315892311881831223628491567849861512587672419706538983939297480275760736485191635539810366846768609477033655438111210416073110424137696565004662208047967591307080881405754147769645902794871732701859968165388370672742214108220940107268682947135712083714315355243568520878729669982901134676618584668340217606638854414259474525931284173716449279633735959687741688831783892933368164801820214921116041702010751190534164494501270947620422074560573748313317056489262719369788412151322998799761227849654835657506581979151028391965008064185710229813567503755664792745644582566622882303732654091194200806877233182585867718116496407008197594638843757572313168399090671464641025097705939165740656370135585571263677176403755671759111718834297444300479119356141912239093086747036806888616055693555837089573225430290453322631175984060339737862073130720087350339737204999443430280144325385109076526366156407825945238504901486775362754677300513735217658119664860463576381196896229162938722341864250958335351467245542409390356881702629052475339165141936448929054294103339010736674110615741702096117644067020649032260544254060416941921459387466157021517531087485773561931693227684118350517552565300243385008937169856837261468131852434677562391394636392973539588674457990527331752210155699434178454805269990534443287321847010075511748348454033692911260695590911254433295962664984412093673217290957501741853048957806125641721747511514452416254783928635112685614343537003925280639567921564242143480814919791799431130316477146346775160716584728037184698540765377946407760426142812581469176994453306738030067391305163808860998102771680430707319533532067797920114718225884434007300832456765306242351230295943652348453160380834403091677313604889481583214208786593456045378228942013970717976662612576142919158244959809067799480577170439685703674172257091716310983925017112987052833353765308699361611959974955953917123095107971616486562415432903377365590559907078871038678511459508261751173624765324166970584388459543133963277424081189850350658133945207735982114606762668713418778075001086430664912002402079758351626377170376119230182912032162913865814166443837135257626794334157205149625928743993948870627060068654377554729556474000129143599814575136991121939296899575300522859116084399807525470497046354966486927614956558302415305565891877880225046427644360324501886543279759768693037917098080311895736127238820691891588634385513880985522024281646651307150337519955070702235178670232133945706730911488363360617198387376370063320100629045082590089730589604868956584898205230501060260359278999310109147079764144876165383521119177261032410318919910937895178053609001675196922795259792383614438109822998353269141826746912764005573075582067872580142861446571393817762182700620223801436419994611617155639769590268260356750752970254866750164620991453420978330544693533255331857613939103005810100458020355576084382726686461589806242837431617974991534536962021301396460326456685601278855556356749557699772681507350856968502893912475410515354019956042722118118293025344127787730591272962922827555994389893133807040851681075797233930169251048910201648717756667331042327325848065806882287259230674872286950608968870179957486955597467488407043294837764876685631731455956815302810137076877676374644583203720367370393552895552348146104839858289036536966012994704886375195208243472608344837953333869813160154282202051017783057721247458977982957026097268083150201731470909879626237765843461548754149130705838376843504796509532108433644717729771659590741351698420175264441358193264337249693846657879707580802493227547837795738975076359430203113045009283031851361821288477012765320491842186392329311690247032896322366449993478377835022381679234997948730562391586612099900125872281906556776742945973334333821778706678487506589002774615385011316733179365698482768908079423341034361719860811545446709152791809448531597507162560696384842274293016187867288802677930039042117749669472573824157941261853185019288684547188647720565257931890205346222483045255933085201393034540244236757800185550664663850694925435517756445518204722520380643735317393775169207122731440159533074906863744206619448266236538174606862161743040121603186532209012768612090711537049477248602021760513804846807492043329391794871524784366216807601605885406229054934054695099017849364368292200937180959044142825895774399868317423817013732784072766165411597267886307694356985858691496428095529580176765661367233504723068817877046478312497242766231409518194947958646052648614915434757689807717570107355301841083414756248110850276976615922901005112501117107995943611899889054838828255632006534894082303919711755764394071393571246491715829432372575831686979656143355518792728181898461163049539875539963540166192385389580804217651171084097815163279443205086698471115864905075303883737327875807457248573405244075973804731869854429610731068114324683762066862927174572617990330657026263959859900627072665455390345294118124621257657254249236370893207249030347718126053631477509236482411581228204683977809098986106475601323321358048440625324772733889297793872206693924567752691630298900375920029623355314789638964675122364409416509303765118731193118960015269972118652308229505964926729811124578536519311675011653508857367493792069778148618363810677059286761612904887399904054536091816662529517414831406803497864551945498861667744456643778783812207274822160404831724119445996338152633897832498265633091633337982363364134587724202881173331825100734582854274239067957620851468666611218581852037873052382061079824959095201655552821239600025290950921186072793993985829545652702827858005875270494939615253731837825532072945677181481709391656933591585465130795279819304240150923624974622218364732426091641436449285227216262990216053069691201931650555719166285995223063946476371451944614103258126952064277450324172795541556821095111176433023775055803137326516471976863463806477574431023381274371339071606167760198146160451385197103416477991386991563716631085295950619831195273554428351451356891843254353379938293011934553166861791475642436181678334143779423638882734038710663865618542156728606098068686200850865125940932161253258016903896497673990902017588158501666110661226808276772926718654095027683313827507618259823709245177849678521936969997826761844891519897298097720195516664460123882516685618115225056769224463443904151115048608417766597298554616487839085700490108864690623966751409937322649176858068710261247058155145555183190924828509409178159172036733091399393636964655957850943324278616557066854465580202264296266003246906186041824590486585012454488568003918592270311091733296200523103389132626334283743470344289767186643932007055482117146117636302996797556538008694266270350169135526574766332043701017268163212990369449508002766447314430060988392032894910296341347523911498405179013287110138351039125849089754972387035594418944044013077525836352514661112117059481045486610955394817947065625361277979950410950671992017289077314255706610182685253658609424611429224756041442765083375089024044213843576954428417331813509710549284141971122575999013333974425039088184097556335866404268008157165830127209050219784283706875963385382962109119275577124005238203974912424326094514099486287162661374412530196409206048033339022015310795794688073021369645741414440143098911883111220407654220002226155726652515035272042963126001155901130294539157175893878787106113931393308992914941399454432573216903489091432463975835675618750011486772392971365597163383169855978132033424002928511665698762393724288960847304168048967337438438812368665782374472963759787979015451322899349153648436916448397857818732584953343408016965073359647241543601972111497290762036546734933940331853943114724452877791279212160556885356298552860545444286831313344952697581697330712995783503896419397813913881786734772186423213729160707983813311399045057012703148752507893862320704991075897312432647113635257115431746348277046446033579117366452704524164847436342212264195617137312284291840325194825831137074873273786234244568175631228234898639892988537021861392019299887175606767869409486781439469025156837281872223010948114389777001749961598992677021180276089997023339466464091112347021066773002248707039416614555550523104620144988217236505286024661383950418063699106649394215152826461166022675182751938621106819999758916966313921006236636129238179389617134481013221901245060906160914447383202480416033441138874199857457527598676338563319159530419353934163898215185677197879316895328275167636539560784300889194345681278219149773200233457962115978428736530230646663398602276121296653179096242712547687745420099025700468176339856971721398442921562971860319643522113702466721012036533785207667316537676576874417015978306508852126322934818539423313916829598145602652972711601237039168195703061038508932717459193442464081151540732442142130348453501244670181414694154163497535136604912476801803671818254245674091839785895178340525530197643739558916730780534940332313600162732562057691077728105573312445518386777321116782469546608634171816640200485588144373796143065321057071499376804447692526927562021499340715053073653190929435552261430135162781545579261870693773943958237247272153832256833421906112877089027921942965523244960711059148140647093072660788066500535274693132893468937387731512444069969184131798572302505787385959817576044884977753591506546233064465014035947253297537510938202524523898489456498434272804398978617706757387559325672458728380211142633723835965878924892080308528160501184891118523745394457196530751355189477787778368844618486723322516231631450703295458121996947097577443086087629536315302087428808272795550969712930683317521338988242584756129981530291057996124266516309692722719767052629456783294110627238376653137083955948584924925076704065110662456816112248189416035057626229266740684862367227359584808389321993525794350718425729155890703472283687827253832128431689328724466880349446031398974514443188145816798544753416336413977022007995458680257738595070298548672118312367898705440712164642472241262893126589498405749725366099164837460699136831693162620704404853859384252610225049875132595487015798843447216398562977680813912474504174243925432738939498167680756974771193529333061164658366970405988390087031075584744721129188956700401363774480256836882922739168280235779948212585930744628919672307271908612419579053744899207275101474923084774538192294137090435158050173701365994725037893629010820796808446869959169508124859325280541160312693407184052316530715048555473977506204709183846861440393196580568813679424042863724909965226835178147100739244757762413243877382361779100151209255901869241111733643230007907008226639557706634066216918266995635738421096742399501101695734746473337421022439228524434355582281885837380090658341645500398187043569926662291696540165592296639553219843234051101827214570245889071427857557400743126182526981671023063136562611464643678915132583368721232309744517904464896159324934360990446403217101130107220441673188087725943116322995614497413837552118824383119985586842191701169812256613867794314507212644952689623012234532333737039274669743348489511487770444991915213894061494322558096292848496891243678423020738134351266770667771055425931874464634815175504486469783247433969430593059902701637040885266000025562780179791655078458112712009558919026116454562729610995269629765343450660351365288452152008673945810274674011125859807297024482965236097486246880708093339743644606669355586653899162180812597077707602941897579969342503650326192075080269016476817239137293207147880261414442946315503810071316821095448962653654368739696091033498256690473536499366257570460737565793290880301336656040233540869476359519750209937013189377176829508831555028513380937500753976841387839841358981286121167588013879527910351797588269837801299204194446377615151555517310994990552675049756552163673597542009747969039055414293680483034480013801084615221116772933170252459171638652277651779803754249888818637848828353226163712127770195147582008049788738021096716341991856805784910109607700495035785800808184651917551675745418459345679151435934493693099968683522054386481378601980968283070719679060126277446285636300228105144735698873642433629847712970026548564850809101955478787258381748378433795257158478294425648153648403020007083515668751549646515631140524332796173634150211769007533888370143457499967244129869480446367133462316616915065620267456075109911073145718929352615728650479208418202105685801544930151092339026596365995544240245639464699573830012917894670610716416146682291894725276667916378740005237802500925831045836887163473108879135745447150439847095239103957133801515077099610616525209723681861349996687415622493686054837609408319792491998212617801194321264981630429721682068783714988723730080317735685042324689096681291209327702460507520768538070654380020277582419787346262298736473825879636695900185552988827866868358456719028804697914276976667726084933823082198305145229071305604901867122680079323396847386095570385240596920693464119785492684197606723922963863279352171008961608066899750323061281763724244904858116920751199948246621974346548223900673879607923739386506495636689004365679562909905782923395138102864950706907142376576648697619897256839732389160227932004455130659121800063066203496362133039948452685824712280090362161716323984766513541079735116615760403849051696881665533604758133816882430689152862168429627013369993801529021455134802150736481528937935575008796791835762350357019226391493726269475903000235461101807105560703554730604829604700666990919571371573205745655035571573555664787331277184706966150784616945724438665347688221336301003429168125250261093383932795328014107638893885999949987411226078107567404826418528477810786934621300235532518546269966592251708157747702666432381247638719598363964404773900797502825284928172324537703943902377078862307741897566023343902799640758485245279150154284900223930059935069412088411108106231864408718174593471933682659076738099403142385256631534734965906199830371868593334178058520254488917513122022672863610854782853307509468935138325721892636991726678029925848622686994956366224959819271098828199795082276126454109628876998454597149135294440539315069732248260066107846587657896761432946253479696275921327302750789589149148924430641986378156235029164100719671570882568271681867476865307778832191116672851800616126335086778840849064149212049688925558016378486838448831148583120930789695226490135447005944728911134875865769597360899251582297076606946120617926198956221734939222815359713236288022027500990316776145267596462870786810679310434267898418328263575223800803625899285488741085723007218010405144587437262127638034553730713208971274231435372645334114680851509022677913447105176913452349290826375217424499661699622512751737646394327057013028103008815906308273022678211135205585471986507161433831006036001844142308943872810255171590097314238030211816007450536779454513454143916644878366636295369021238592278957520591459851062436254894921973573477081092725866922947768713388166907502220297728792402919180999028513805351126523220308819532476337918438867502791798636015153170411522626569931652236998394568240365997440089928821785923452185787235832362108035018058234491270250035392192344212801690607941411769976305045807096751062237836578846563223076701026666024514593104632094082801357649682630892758228097039724284080286774813959734361540442053826655627188854125715802366100812467949933608604725051059963344549276184833675446852073228913272931151596405218845824175081174238210042962542643861139346138413749801145724617622239730263220718432762922757359119855348991585606567821226991076788528221366571231182901405834021137107579580133732095979756438683857045141979614701690591429434637794837906380745144041623498824507832002827749766115105117365676683200455202680632426638515814420709720040872418273068174535443990561548097958279968759997998027703355917142560216517935437048897551336620685827367776359796118647940981582802353995402144426791810490375718070400202244814297736637865117564319873641232740440588166273434480346745343221812169788755285799597341264591684040453299590339399043044209049631067641372693922209719429148791220392305819580859947487052657284484250017872342803500795503362168436945511663739863828075048523907547184791280175266442859631035936878443457706872265049603033059583801983544089133962166420938732787689498054504274274339813528978826617045338197559238149445619759617153971064025165968661328753443806197950046750235935037592671935919860023112903617393239871124162265118155322501916233177619115685265841026175006491759246600061043722996983193048985271080368990874880044812257237695958935696134914007614353341704657925545805489295196456487535081657394042878393578022270838747691452090959152954251674853886940192798882673248939314813105299398966549661281338709315013189743442502175790092622293623715738314388802949507357676854167143786197798464005981673356561121480954723370379451473280336773549620671098202992011382760918594315318888183908288922306747792289127295076998306302239014641912627709627515835892947453765943332929019083620321297411605473119193782438815404993378649448082636222342981657481461457804142257548331168288514924766874331749283165380103242063821632934583294475951290043595780732075062585175440407286817985949605543013628959288467620150191332481000492362004962250968654691439257616759766155407607474432365191294551645511242279091699578461979483257003477577639221196098741324505603471826169152671187420130708330121532845907092635971878474164972809244743014373018746944773388022825176799216317370638331014241897453036418080038135956994439350125059026092584207673185304937379358243433873087971596085488033138347129584896612211782800934094831793613769456299961217667912091340405918001866408742311105678036786267657597490499536549804376282424909395392421450574062716377607663303943735499790356080137978837434153863240399712510976695274423081593146296055287966183045097136852263804666631524554078726315356974427117390188042920208901553075719031287869577821465044193828348789550699576618624519791532696548885162440031432719643943417689966661105873656892477216458330215946914023649837408040183764249919861651390253953987546065696630434975875514136188529113564804787769354943323561972298411165047412880393306032164311815123763232647413439822772116066641756355916408647589394492088444672596585191199649314091598164639626099787657174674838190978551722178564218669672856917371466180886056295331925993872668683955839183937544547451432894263614533789806944264577217238093955282750440479989916957759564133600634041538537338623031328883174006531553802392589242384291721619047684203659353565572929252327826615833785518622846279538004795934023688710605675262511915181630885074759736144073856570964551283214515464594329770083749499948768359315175582504529193818153052113846564847596006590566800151557962061287459529663099669274849326747192144002161037039170126192889841093419421147964616767817113979544049256840869074630760265419476682403837903419975410384188696241678078235750672968010445254166025045901949796987120762164209235361797653232004252339099425374462278772421661394146314269793349683107884959976390499981025856871358391608475216124352171554025376209519243862983763383910642436297572973493747214599457880312743377810325245230534381784441167753971085227696402100350768072686488195231215985422223145192901041354901357786950835488866802403293744769376486726251316089792587664975595577912676699806653485734694798311589014456631429310339500592702298987720934514965130472744052798712141163300917655560590384484032503874075887861303237372250381463067763109291991489888167710867040759606957628548507981599556374365507961305347533991360823516756551384992595296503411586244149444672362705287444102012510290889677205785266471241917586578744015235083482980848521400137173531131741864822847874218193760642787294667241788589188332363640606605448834933621704672479210257134679692391208943007270888102355528536089530965173835750534030775925745936284024493361617535283485866112041173716652413416276828469366916331730657675567686250919998167484652439503077511624514170294968361138185329587602358396607100020958480505343791480109098361281149866339183489001143142282989667075816238953561550303727965919788856045273818387110466911101526309889817680340299536201249286517157066784902625411017935166395329850584689638282454662249615094730888738323230254919699563387490099410835201312961986324782255894455596772821616959158789529047832508645866944364009246727008255168278084683188445765669339571963028468815208772967953467363497233160325887175012826740312278936053634133114350990436318115180672347050543637822263930747403755576845377079817090760163881012885459363573320117649524428656514581681057714728466172019529594711292668856261817387196775886414399987973082067319627626255474087731961819848904198368672386454737242278863861336641096471001529610126943695329583143350679394484778141294579881992519583390103879369502554507066919783821582179017821342814314757972801880723423384797240049991903335328652048836974378635963492652404037638722030735517567600380149594861111359757597188656773630232014910486899472492339987243044819664654770645332149983930332913641302201604196617349665398544128466395785265189135306776172387190371651718963029915548535840815327627805071714220263386084145427533055898054494323828133301801101933527474253119821060168194147808815876017862832708063905921691851133307333638952382432240907005066456481705508729144340605896192086860233275875599387097718637898477621433130394206139721391206684404159706905822864004441269947862996729615114081385543400771909569843209843018605685195485674141290781515479747811348690955340075717291734214382856728686489500247439208758455216272687634669862913133624873149591237762447656773428319686175748096983526905433447913018099830998159249868817075460396244624953002919832795725250007608915667846242828653136872050195035933024555105940843314974208136647246813955046499786338021002891360757590622981365946439961638778257268452144320233663422897083823978004391774641910380804097124408436564923787229810497651529234920402414003423397954796671398185753299002920302905644472002801535628104676800452010179514299432103241756473059564172177376865753557245754558108393357221604196233952492106027701244464059046747660573965171214701858859583552223172355812800387997235273538998691387234051495809114439736765667886762312238149082307820944431470507763550028245602915988334403539219447442269420921178804608199756594356286486480733853319253703022445152600355802247776014344815085128347924889469953667929543311327820100628819587653451113416295316697907057515679406533019713637960081655858639717633899315339109103233824754513051116695300480964253606430590904597801948660580519847242341680744647012988830465442254827493107117285811823030680129127097824621124176506963710860335355952264553241966972729229482269908566530167408640687206798239957650819687654808183946593218601024808038339614399462586466542280660871309645652073956727029186257823530192412715629034010043905524797908781056891892336754788518137039435709091822849642850381784307277788512360716331002910852955847703554949442461951389091671926723994836810894369873195523380820863257850416124364869595072547891081657996507192672612721446675345285635098700302278018220792749322625321588232180863460424977248408197067017668075891517431639683428863147964499912879305781446180702429258920631122146971135678900042899081443882744467068290577065437607615481425796130924328120678167689945739682422935839250294717477688092225925927138639276403152853162588139113324501692092819407137690475988138453527654650985070055330293031849396646759100562679507712542231708964710017458593448233733711435050509528215716521186896242213135009477153023003723734617413921071567563675626418634943047368929101055434322489764693648761967506653766595443574234427464318285235665460156223150992892413861636808956300870362368912137357639164828672213206878369212386789020093358762614910169398941296976864991240538876633745826562290288406538756668948915765811406446351154175302836883895594870194650956415740530505483423147059311188401089418868311466627619083361061581067810366721837339686718627213534702773647583934064766373488516264913230523922284873025802971637881902089488222479162349092605594649659710713834459782607217218544774049590034995021917499119602152477114383588112992384090123545821979241245600218761598944754387604394285326326787069254529162676229873890498759225254459027817562301268057112114942085830877657721906954652093171240093808408237149332187036631905234710822945960301082532879314257310089293928634653730790837482804619382439143022568088516221782611409435661544634094092164735177761934066188378915059986521311315958668580455163874972380069261643418207616840853111942373001423243933015964384633332879225035636971209383857774108716710003484693671825751722759983989506228391558241549737855319496617205688672181134031196314783826321884506363377834292885982656468259504622463860131664173845374217183426480606400313977537042949054736990748465550306365709612603400839429236300656193002065536813712693137618527905517540666038905100017340949119857041531618593587614035208146047293079846752935012169960205873630254355427581416534590401145117139048070809259338230827687779989115105843088481811023705650024233232866521085187214221766441808597126090884469940464973361534509264315408821117831645727174559978538600419994564465365283887247117405988536527716020899904834795804137594612375998312536579001179513368852931848675341307146755861847810702473566805060794057590518492467067258006136775990847655961944941549299252126007540552927077808634690833659643924462044315119394244983936283715842579482820385472009671485987927780601848985548057738559159640968749175957503243059625193932653983315296082639158547686074612685049555541545981734855629451062515204097251123084929353950124206414613568605197811767797827866623676553074792414053972520825241005986340037981404071465590437421404468072212704491223687788712364233509223566622722851471495473156644793938317431017198973608946397390616618241274916733021663968783680819909307487026843343565203241404268952960183559932735209252096954504885242750199688571653044478602630746081547719511351167972325082377405053738738504225173893479753768829971893116960661950499456643529182803153741498794873412854424076878996674329302257925405953041753550589080373325140383467930437278233351382829026329575055259610700464668721509354526653034391740315181105335117823679971634214232847219483863500561230686779295288636564904550780095304582592276166982674199774086857011896924370254315287810518777632494105128995432668523194518050357433817840166166636285889862522819017974736039938566001206857295931441576288795445966976247240862274345769998838973872295639792479883288523313018037529023029966152640046361503517340576430748439070095021097202667678726093982382194587425429973982507273542644785843337918181188161236804615993259871240517716078163056828584205794037090448142748822722926802568811504367962763706307456398107764594351606509959037546874394296788534070775541338373200087709666401603046105755782918377215505249945068214226169732275307343068891939581794214710447430310164333172283001709511577791492238119490171789587911339357495338169291178058085643825964700780908291183554494472519038852628537201502418119089118594619489816315550637548152362035898312826669711923024897339092587909242058526138261375375022456997974589979994960403471107380897498207772752978831109399543332203394051951821024793756818108348544534592753161778941919403776347403005924898250036420290838492509897104655059308110518922328016693897793238667773143623770427152415197631135849113944467589045219234168391102061339573059093414980919698080991369692443219649283376950670762782346702978065217133020003180113857099260215477041302023223730191589297431728944810219571490107281315720596168333077334646398964412528596738731915461338462090244693439123010573623757349846999608404487815959062906196192885603715426683520995428314325502279345630911895819472884082434776140326301299365940749165128549793267547979887948217884663703696869752483564234256894589749467827892762298991842050948143718521218387836320325489429976790683675656665175143415054505920047036273440028338767882552537218679670032556690086187042862832773796499338453460552382186083823959482233352825933233688820689369695223629891679480085571757508580816669745597732865608463513736008669261311976820781968395709282649499710983988347762876703260024293505132777316249161396505663098377716410501923121778829049683801806997889948094556832633880506331708596817718022869390129703138387884800305616524424738378068660223177240484483289104264302336396411847347007854051358466626525683947844049302054227964657482434424925001490925459328382717121857055167424161026417672583396888912776638606277504121899397173006854833127994955367832755850039012973998191620327624454966419525123995653977464622229800610469573943445823938897938632113863465115103702962646913321169637092852340498793564701798543850028155091990981733263267065309067275672032156716715381862846364860495401749463643864329588938954045354071238919674469848970589294877090924362596407073604740585119195531916933092104053977079511022911048944932441127538273626310336838643213175310064067919077231329540496269802719261196413834109095970396127647617571598184766029603249936652407418960326801179777951667541774217369389931635089649788892353364964198135367414036728900149540541720250362179604787302230441664794204910549857787436634191803398156841237274866454699111807955948623685289112886820009001020022694317621487342700304685082409107396869772893747389990345570963008429585734670170851812426048391325460135598012718999010171949104744808956116234304682053444100151105433577704556770399618798498316513893442360599541219188312806753055739742196704959243318837335723561508311944791225316798250201369930246117148783878471339951112122283643279016764307546316804518789323811245395596747018813734781182405132700271435206126245608794825859379873226608320819038755501681665302639159147686537303372683252525625685020160179626849168616939818706348740721719214587161109017846498925585225586473297655274977989305469980682096962489058262882641132835952695056296798821151038004923151864099273561637611956139196895532066977595559021622469948436292228841075076919433145397077261006968006934395563507373911926812989787023418021569153755041267102105758646304654731710503972479508353718551385214570662867463638377784511600211395739856857596830668882171864202909250427579782645081449008579952633756100829971942410849012356665237207219973277611804548152527226446982647830910273167583075676221470614274806693291350738287911123691326278515359839636913318078633555846879666996055082910240503722632165779092362197981281878636643413602899791397105712711126839880764946653440601087770043621982808856976962753833448864568318851083945588073038369682808404044281393108111849938650598599147575609055635706920079705733176934796371543927914660151409850747644434392296135671361389427239604605842249663870587654500267702956034494351943974720401679253140409850583708004189118366392319893173947344034698480801976382892266788963750121408026391802557533206750346184817289166247805925425503775088505259326333236908954157399730957166617722678869009345322036142314456439445823983580537078633676975953829140126884777001814430454760736390987221237257631078901935895405586119109106277237297047259098195175220798811025130106367740846782719429928102391188123778024682340360928375600778966813708774380531006749485079344257056949875539546888259273755404307916904175052639391045094644373801447509109958076701419250640887219333172476268266835920445693439570299752320539630928182873860001106938555649762201204345890380165807875968810269630921908295104246249893948848002500152289826047503697227817073623797168045794023164218402690856140790877094262612007136749849952521255772219949384841905329633321295747281065296005758923652929010242965073961337483538109542957624420929748464172881036629547807799078619305195931486976482963244634184750955395422964127789144861861819312072193384527721927264700572536229580499296901373338703401648094170133240797043562768375626651236340669799632186025735993309606855750410998472881250827947088928959638892624050019157924593912453549757164904903193958818256303730714502639182499180205081515780269560687413687060077650048305395582305912220993055858778160615035234780982541638151972400504283424816907194118898986595085805376014439903969051045076501293564186012292186472976146027680272519318936830205311300774297786671272372174763183441735087333264697446815319526344676926526028353268552985336761030102865301990709230046326090267417498404872242967129377993883455359314084765032870694040454277386696634350793532010700253165364031808051822557872239924328964212930334968330375367327765449647489568802836965462821576208276252141947894189965222065612409851689612434986886424621745276866960988903451157713779829941873529137467430374801975842185153083091915162086780936727208868428625003318197111584969463906703191948364665362585473578278939028867193538762606880919387040593255619865905765975949153622373677852970405172695288423808020492103955493015848658469341417553572791179761465148943262860954575836862445573010825444692712198339398018301843633364713970764584797983789320341542674874094339207408347266435017964206690346381937360547394004810235858777988144099021920444782879888810229271841890055169362240209351347242937060453301793942393458201783309481718073079635603056027021333458904021483153075853644765072560425499644591314202837926085099215158151569631200160865854796723437507651459795205828140433443695498555598418023212816401054323882451743968874598774593914019463693255770972086129953088985646933797914026446654575549803691843230361913394384506177535211060899579843227970234547957282968887440696437932937531370122310426900104645983206942052393213360000766413332436498252336494419595239355538628746669648627515166431828834920336453962562789836925273998244732382702945407776934188489635740715092601513260731972664447547469314031268709836536992842113022929017615375446444683619716339010674695669693404782378876983099160368758199653437859128148884500058737034832508108749567233461647192929008704142028732977010307467591092580320540777127342389600781977026607146996226870335018222408311288668583111611321724042817106625467796516933511460219897016669041851120288476342297826857360530995826132138805449568090424022661311890074442652195825077313970571612579768230875743429642489381278976684400067893444002363184252998201536759762214133847035509976920963554422486847399735259128936249600640479170545304904485542746675715247821959924922526070433735696956799294032544249536683692122376176018754819706899120494571467678281598020948949969090654095676861333778740937615344002104019592180085950942041642612922628100485744275296587713526367784708222577814270503469528386766970591622665443992195519506966293549689139688728644977751238727172477660439437596247604486228949024289345246608372847485278423409863987444142223964059257534479538906979056671644774914472538728480081933879039282358830130410609972526649923500333542320249577809549953763919822961839015355559897185265603544860819251411990098986643735045161228551206857144703856474168946509103666887560493155032769130503502672325443772391016528230539218099422839889337434277787749763308885108795369755080170872861586661046243870427610579801497675099314962029499173092562634160756182045994892142343168119389843566616718046796593142106756323208226111001228207871684514924195712770432666102680727394149994591419231540009275136287939901586156280076967643173765810591622042088709431346255265600191329505565479384011112903428033149356503728047038655779165760669933826792922020103846184294494826604356633221216714446745509143242817864575998338334369383323038970220598021329515409001323317042637677364544643905200070495901330937122314877117977692919405853780473930143427071795704610625389788639784073425466915003086080627207343939077643378359630985213592275702248676790193974313853873547419469481943319536190540738445626087029021743204782290433413693125738975737911348994452953590786484583789048515885983907372774891596625885676574498651952258761701223533789512402727046350047886713734463048545792593333856900827129424363667750583416315555428703671113175351597319883002853414369796906218597616207510938108820649180022403234810824230077992152590583977292790387948240252636353574344299543082548426808231252127859732313302055397755816737864854129543161001134119414879953444142981020867427979632119880496354748692324346363690414753856358451683760137321109075188075602342173737317679670447314645032425038061508048900310177864138914401182174670522334323589616802284030954742156267968991437989530573083833412243238616452163185200375128348335529483799962119676329616974404676860596848900568345695203917707174591808593919705511939420262990390551161558881869020444624751996221362184261805867489944541206290829304434018331117565064610633329397052927626994437277223204208873466779146522597743249550891009741962088871533566128250158961601388534654963318638154043021242201863732683946243081152462946177687308566528982568324101386308547505406196217311548546258847187565354842125896405661798875967993031113652498244759404861096288342766138870623443111961809699465027999201050485123851948241061532597523530754502378396657627179926287378311321369616398055475156018357303405983210213311354104472227701011782638691267647733441025244498306471586409040970477447083604409581679867582694783164592542480076808131950741147909653383808848150895176503941647284400766623043066028409997300588972907376425382141436626087172697869953961311780171469589636880997212884574440839904920626979508774276969053826565968568314303457972886776777326186794348301310838557435456434139726429480160649632395011390020818805609734571414851210769781115047243990004597637583712222068848395115529554600647835021469592844490745984243280574712382309927438666795989340378898479615518284302237894804948077826957510011581479072177868971989240859227354417122226630716439167177225331945308800838009797709728516553104855258274739462973151779148388117572755100308877062523741351076190685128385692386077321274137574082977961039899964543568040049171438119707429465109855887056161892138709874936934204474629894150486632329956508091750843940834601234667723037073613011575661076868647376595774030038657122407293240167281748232894420117688429991590337080261234031727525147677218544545765040024550795904803376606294681550542919443600167322944021602092312340202559155930473795689007205242999320810765962209356710332572543025753704502919927164666624981023006524472509168631559184227417024981859048577217670128628107522496526438757766806758385183370645319274291192890907090577040457938536063492372103074567701025451868363389087385183653245987258375812948893847431912632454028459743534881548327463250301597902261490922840865974847267840495016546437070987100285107672883090016616405266276689417639612297010684867197431357293307355401510177447223974720511050937312233079650732913540211046556858480745167627472288770248210476235894829261493134654856723827000345181043123372219270758973372228320124780134150742344466970248102970934206323901121737932998681439548027505924034206708756180811650120518200454789034892749434217971747130527791900183766640614233250451964358238743321352597542431783082186009690487226549343775365975580232944789964563322600772826657299022505480399330208208891928859997318553461468403261182263162028732964679559483988132445972317772904495370258016845757330823310099634318640757838446181441407062089927664978430626821183463980969501266269681237862631286387082881703196239100003193574167693633466511567540747086684096075151928565368095389104712098055658557905622089076684057892898117993143850568432825391924166476502427411862684516341665891969734063338170407329688857166105253718079501115042309428943115709309383199032434189839520166051909505165821210914161517439042384904214668224252532177488256760489262273465413068939921307463757671006635029030839307579136098562569666913997468731181775325281796983492228293177172361050685630221264617880424282311340777887871251035352308765492446678679229586594877301171900939308900209212048845765687630525479253848305329486487035510920761578025401126107988907822020087955300152417626155983930219618596935479090826485433478757209480685839129648525944216586066529991863385033856381837237994328190923804581744283668236366406465816330722167848161552967748213227215447286050694479962751845227116923493323417746209751717553837450559334561018825975757122290069791794431294929516436021953249145798145535563245183883501491416879496927045523436539033482400116877226077401529385827940465245480526900823853416581931403343957741283356537937872713554546836909893108884937912766341972912667015065347425940302874900147789480457674549128563549448014255536781973286370875584071916968835373029209181456478089818731255254028816752547546409499736823215190178982059826300911599510490344185606156604348581300198935380758195416209781899337758944953691115664559678022591782112881772468396160974873267543993021006870596069507934561118861523073285971020380819697804808882602354747852430349831224352430510961584706845073087680319970137085091162867515603878190123292351352399055650605039709673356440359352545726587752044016186131281036539996205584943705170544746990136202828500448427651185302750722298243228366051306465645068624899690362702931575250121059467679971778946390101828342682845696700747028820581031003087141131148416980012476597432613257402613374452511525766792883937328893741862469722070907510654340488063213211231309048452173529542730450718566741904819037390565911582799320222719267634937266876377003127286602602483518151644997971308944162199135763113130756884063342361491814481799540405900659023581179481073853794135730897643438374497315294498599923722664613403886300655500721149125150535287917511988249557921205538451499505271047174672528374030486555190251379427204375534308536047800305127694827732473893253605429861101415348793874148735320973888142184467921079468191662778963760090615464089989946515032233366093001589501786637180079005671381705790430215479933398574193763139288581764945087427572642809790847270042579214013950091850090141442266582764440796571246642327464651842353273362929589684275718967789497938512776246815190169899065637516362252701800835106393960477423404242218112963031273964090013993123765665613966372881466556559665410859438664236806124918294511368530666917863220382810984698259333258375981740797490599284504891653988782277242550828010209786897763491972129351788780227144968879789392650917237415294997361412436617762143258463108558548056090220925669660566175947478825272604197234816914204981944168862233940138305464319748387075637892442255721646022393189011470638244497404166688317965080626452265769211731688252960206795976473764867929702777079694856484704399940218879110614322095509920972838207317838145754297795152766254090307910615910336509324350965742203093231190200196618102053778861334213559762145460131590016582801308133029386225626416482458270877370332957169927027868949133424595838745810209603457798543482732405820306674405605169922133282392389851879772202878806185588079034166027036697096367685752563838055062668468582533164198193803162392954604727685818627498118756229352127222759042143331134779999264139500496559730114971616302756556593772644578628527239689682590352135213900886767536918464129689763284424762587090301759385116431553646248243889515970071368245523356278295577746650532936727192746845360994991819868161215828010181957768208845673768848234956362540726655475632854089196781197036848809750393905302794410118004135436507330047081164199831137767915978879194172641086636877521073009570673547102712728006635395826073537926237969314573355196584472690605033790127911569852669920407089685284872475606236364642380413040020746783100901794647685423019135733775842087776131658658739987172643618400278933471682282782119200263832863620675224026120736328349054506534696467552152227568544504011178105794762475140448803937532736924726628017365468901828063022579155450316950944889208010711525779671098864142427660792417056165906126145510914290931386418012910085085334446281463796303623704859380248198861237399938203846431790726595639733641750712149174281429468448700173822628697550302657171477700691233578020842366360435049839541719025109880764453254740136690289818404762320810495125710979992093390286909923123641041569698994822961177511114693527849336986563296301753551842636074302702330452674913846784426817343341380094510484188310164896136567564454474250017926565266796019011336045457784544658400510057614121482113381019057241284630124172669447340658680895214123020193895040914074047321992534426796712064738218545340798677575965398621448200596934127324652755653129310581624616937019325323109585356161646454905850734170490657271679407055598235231195423284001044044435719205765347731544858433132200773551263067079098481366630537587399778599769342566108066195792659282499768630523949443870305806505626872718523718220897398567152759081861207786412705981506396401720442908804914711314759334379773651935490788461631349172622890377452499789460098688570443391457360752336995701299194059289385139960785977337286277941960734393410077110937843394239614828218779411229971844241601108363645610893569722437305079613979967270749541549097599893749652174293686642920586983302468193295723752052567204131624825401493941283045933479889534799251480132502619256049022014224115406700010319080884202835095205050266057734773904551634681468169512898228203189505725916604156965776125164831806582898356262871800143197604409733742289581910890946698946247497941367709518657582797390837899655708675586333426181448159405057555714288092911208946845929455191840534703667525491894565731315090712040983043341747580964336228028560513864944914493604477113182589486818555404658664237680172804129247843221873602482353039910568453591901486524253630439080874529817880667472714401018141688197225401939508922066266252260215725361703287371157551910073154204116964916921658300047934706579665792109632251317199571656896062655383089326390653508716518479902484203104806444636118182417995574530918974344162349453260758440901188671971569672666419053476620150778054491325916496029438011358957481635251890747919802151862029424515339940886266719246361999773236405444574340361363626285721390088729032664652588419552222550634599117820891228570676281445490551035686321581273361751795629632708555389431997681207305467449676414914680161903974881683894446247766768729911886923386721747009345649559171330307806871958987292326238620126542369567817618852769876632622562982977598575317145565143623390445768724921318228413617813011436261389541118033312761914532054419364944881742664792179522805764540457533613226596220205831863145310654373531406594875574508382727422306144761416778032407160046221832564945658744213168060312982956470721653827581686373306250675195437157088303362650494445819630998489119130463280550394289146232727091122123181452160526353499333213768158915836067871208285578545052392996257329827576033222292531274969725210875369261902201671294385287992304558025242895820381516612752544476270313374664623096684743289736905155075877802694669830143974213058816719467384694140858696446963402677397983177669927719404088462874281620143283311301803666880441486655935416325220480221369921900620236308941010022461708865881825493191518650385652399944053072671927103076307262293090792514597754303584520805840911190731314619278464914756358520752303667776569849635555151350887537937894408734742085093481020485259443487346262709738172325011797928713301963833338797067902624608850127784692226519617219332470487123158711715953106261608651435924531856340686621715078948751290732026917537097023029298840876767217900818190664951461731200680799452226750012195466581431436767353437894305690195277940904222706422462327045784758454040801384615675878994930393876994754531929692886022671086288673223643436627755265329507924343498041077409929548792291435611363797361013324284585538927684197657425945484414274838414661908318488019601063878920864314605802767632418282412733190338456867712201904020395972864713993961589447621393109417307871280984199683082997040086420347058997906967770055209890628666283531101608357501119978683775542863604729763412779145923785073886614656403994205905570170533465030630926444452997183677338863189323022093607426186581860302099570068913811116537533417380508273598026366551301021020655312942835974697965530547493793916186492964581046525857579944518796461560822534180741032381950716204554134787697535818114137138351659575996352782116946906547337911535494681786776427872827458327520255846453446550347413281754064356554378794721834138804818235753718252003671582201072636059517064307838004896201228222101300783543795707555597720836343805259790073026352451290838655595954060878380732321651762227146619909815833578136335333158976627868134511265462030922516145625394087191883227251364212326954838235397302969849255279875947626488351104192223071565788545982995180006774185300065099262475080138241494062672341184721162772350602017826915867676801837230897297076992271731145975077649445846800890384972778397801825413925512788955622104897051910220373812417869439578123132954561512685437176989590807210658778729262582973411852038441728274701661536970677785308969678752709078926074158517361214212046419537207471344407927134968655424618453329415304465657627317309012192979138904752386470264165996800841604342402244941539594459342317253290458797130136037091363699646828090281212963273805281598800973008429298855350738281186736999027543384247820679668521572122849718076779559736144168152893519927364160939501257224397889460474986087864488083129266346268467049764865710916149759783943780179532859677817537807634903340411905125153473655570142552703575294970753429194869085002597146259396048970491130699952999886084746631509573258184131147574083364139530231390597023862747077969708934744816261355152984469712392173537321549761522954510179300080062320993209506768227087743508041629723605987978424841639614332667310853932819190364008134091274730640016055458185579752551516952389574997998480767121172069842123946044662723667612492089114579514065038491693128314541265024284344824343860125868184598506230381405358639431061851832870979802387645502427138679793272716860515916300836961105429039780480404092060219573650696955081412240859772127021557158930184542063832616917637113808201411843041149248953438628559676692532096563969176994144422881827539379079090246536859591612597636737974780381584237166537998632815830274263477985639698840952091705588629595749635404859426154434834617826068790346592561742553897334785198213991905257665518363955796366452529230395685417527574530475939714006436548219129955179995324082178754730791902050811629331607919543929844805172567824122475039685683597445587067389108563076772531238565100810278328308225118856474795945532314955485085117633912612241821897025416416675502602280800678941524288268807916891238688517783698849259261395395832211615663044037961112134040047467120398800448795383664997432886004499309820988471495302348273342589296171229619289124552516474370614066443796080333783370144125101472409609275591341767213534365950759346169488278562439250020867549728369759504439467360878235843999790910612393098712055416864491315665781866126201200966322631807515546516694298772691250469766173877075530670159201441590808202429490601014803865881293493942853335008643194159155487911763209089580095027599587331048547935312087551139942786990627916954738929307867631223909523554824819324050207160595502953074080589874118793469242453204326779474624509212796114637573291846237723732960758415672923683361645526221702418100274102794008663286939775968484337199171441656470738411595774147340033736098366123145809655239096859310501029989609106821059238956828613604973054080979655690904309853646902552864594000285937758066099353600653848273085405539406783504681462706424987973898253733184468202861761084337245968587662844015241408129108263234747289345439721434551137352462108709928290409846654303937550757969009931946174464097900990789107268953853833706031265524420494538639598823404930247148534289239331568514436006470551126646896120280596538124978245831908984909874397079050472231558749038542898477062868883122755523366896463176917525924013048120179207661479803917151724686810968553821567190182284999762979937007178223265420933096739781864704667348995762449571976743656877621072342595464519979005087648511106445688488552332683170038594135972986900321906258153876337557781707405619733621697967786379763700434862301092831636202763852594173989793935319258171088248200041459400074172173471440199980428111422141392921795324570326037110075307904041202478416288547724391296485065349611672617203180662317986054065549922740298306832026732598965444657217550574831297112960714864020392866300151410213886412693254926800841675573525909425282288767398262180036404787050572764815684641997955670179121419309827191860546251919461832512771230201107686011054129337913327520529721078996298345079352472517385707308514366712642039636141797900978775231379201423920512583903042427245042173144288764441606134647592425417876659545770366162313161460213041026190639607118070666339484350809034884884662568808497322205285247801948291478227973315270404361048294322588777369126285538199663314423435161868132613191746325187386984914334274281878316484846036438491386060939067335366516414113201197293465106449456560375625506979639615655638814697391307343124566101801518452203408449185413856624315630375959829013558701230964264649730827255550878828816252766232323097596415229499584693825517232038384409501463686445558368024810185727278023986742253110564708273636947156723045671916502932876191824990932008795860927132859455330879085465496089015484088924241840972753774844425973000212456020846753244918906072299990585767674111602155036308430981489736568335177169126978357607517571514291742600406833612096434031947099898607659285432618575413083228627831787687505031945380870929238024988313211571839043500792362128044956599138905200758351047644047117835739286665303500131070448545235124890540786949433888655278349892612076031768835301456028947449247944077547846177324609861026255705110535348937997230739476156640559637430074022892279332144697184716022762830304474737484680109318304061211837164853286382698089939419731966361085793410343142499656783156097660636626828938182981529884740422667600586934085505717156907732084178491107565307970667045400425270949777860228489355920353924068351539784039786924542264654301893496938598165552468605110670507206480779690506884409929429977746588917438255019095407306621231606350159158154360892601756188721462403352291915334004602657007555016712855483722734413779681839651765708064762966319166801969504968953598091308399216357306726466349693467006674832490729329495177024534917090986556857579776467698127596400062128925162610355715243975764205643864596655539653766799084837945197887964404120058713217938887119146201939879630020872948909167538489705988754598200075547279249045032641958636864607191042066558248094896122178226236717620836831827468574466193957593474767290035350237224668224818531147565613002930625926069883967498996982401900755498119445524714165549522209936591518624192507403137865526753796062180836835560191767231203092748833844966652424336743579227251284677821135137885215688480913210752203743579697672616539053540503846148936309803075736543805989097446796181172613452140282477663222319208675849351516148134207223799411688893928622423541935379335686820322857393835306228112976200636585379598805411883964137829153695824174011939534543789056703620289201859749759227454741676455557338534815755694189712003738847300816050995358870594005155583456710756425913906081945413968586709134681097171855056139281958695978049081003709346864643665982567098127476651090993592187736731731238949940793292322061148657662331422518424573074881187795393288248539126644696094353299618564196410002566423353351552843163593601178081996468043584577492298307901924636627056080374802785654278652855485494588578100945143732201226377799142669328774544437633900710815377196084037465918373273515097902895124494602211528017680367082315518961505543368604794245830103942446325317791083225882316994746762221205921294955187174984754347208777799434087649540440250493013009833350973215833183812177390725262557633312145510143596497570361290258759475840369016032203656174817167520004011193282546377918359274083852729346437238544257090143667889561448313029314339349934308016836485285278703073740064094502706462485625504966758261833394768976084262696571133842600937618309433634046716146161205285281162935149797202061522206583989967456474904933508821674091924084567510183261037450094425582385024484586990089028441834525509723846507444529288343253162473162390768475935274654759183974263974104775057616119599158441195301395034125805903655585385903365001708231660924597498229136769237178817287809684616000630872812455277998921607125449798386053862179322550122796390488952967351095969854496107015460335685055247715588950223867267168167123187156638027539505400478396291374708207866472721417670497352497056426396373557925491924524217768542276745044514278632222517855036985065972332303412991635338957226927394023992922387277832581206911768343375378482636467041815921530387260711431020441117670303537929205788768179552636917839090175168998104477782712954030364310816765428821669753346941871962724569267785752327658561096653193127288243693881417867340271852302772984796756475668481359119238002991978777318280850833094743892796929997032291591631042512629438777134290603125460291726709883007358932848760941395970309093591780526541581730715533296638901971223058292368777514708513128963396827508273617576216959984917584420663949244559692663028963227180645128029923792506688575539519838335286824481468401240011748693668483676114820486195512486827531948956446950436272408336057612287104645809237145273373591254596138650886007439055235760502854490704035588090164199075430708437768298877405291799807551785699481021182006287031244672591977754984178121579882661280475997095370194139991877526748247828156474399391422862782292204688906094466630485452600645469256880973056517820606549394559980004212017479082821394243092991375550360990549231857521404659377612582534479050634099098643446179938648986981512577804117847825728969878045330454389740025963254703674285070647357160198473466253436258961591181263786888641898398765248753206927863019666147338778397208535634502599799054627682930906214519474338772586797010687287207763284132454723586353145409502065119896536817465165794656418066915017903811072630079052264489946021541201418719840261926552843838179877456621597374578604524594121895182522477560822076811143498750876415003201765932160230038459596392993241353515166857963208390236223613843246696183440414743286639553866449173836715183507438750166645268954936316696839682732330783098266443050983449731279985906661410542037751503901178395583569668042313440775175196149730661700724543192888912549697448279385572859816067795615357519040902070219511823047728680051851868284245754101765123604223623695411884000966567109696124047035138876135638899743854464314037095136075746531602749514539743455242383444479489812902199458757475875757294569514124499321751298383481877200936113288486498270742532972345460276155174276745743958245810529337778721348593667900848322533018616979045518962094236866775078958463141334551283009959917873917772269323946619218329779590825012493684773882089671563538389133912122621761341527856926418732320141226886108025198388077144226936149501492445766549670658480604075748203295257236560862437568326046102377874288894837059992579183629741820752211744533391763842836572054653812831485431429363940100843618700685291365773544327317353086168371245135417608524361484898751773069910539352136384719758223074045294859545626161806708315859080097485422727238739506502187201485893983952183035266802194844251138786480128417428601638772828536652390596483678546828113419907072804854344516847782091752386642929785226235199621321724860129945044123887654923116322313575868167655793976725623730513728141812595094838049771452720089351503271956956137005665378715545376781524687680338406683482005788089045370625944667611816978979068851130758548432565601258853524862511858683633493867663282105510602948634306572110692131184763012441807628426834193227350754940175684293181054548059070961888284025007664778877244792438767540666831498776635434258158069576388805422232031409661125758239025397996285788122646550656720804195424807192663144083142047730927929718009696812005579802849840960749261620412207328755275375725310760750938199436046494972648406633414986791939432146446797258314759127270457485103455407510872228533212150148855137085438787119690631331603703121541882229499471032385717301292075854732960331971357714488183253227931830253018802854315180510720396830346843971802370069999587974483663288558984604331544650219393273118048928946242244296152795621076360077171475669939911767635878184662794877746968295919183278479713214658768208019953481555563662134819371429547442657895151679838172891715555786322428598098968294675147634466018574460771660769342418551010846547298746940326667906973312038222293513791789969965459838926147309075117885049920565148936549290575109894856824872457667647595007179440773801004713707774157949898569463829803491871639602962062138721313147307961034407394920542652225275484964114064084289173474660868873793976422607426119835362439932377584937992001159500733419411128624161961104516940109703565292093808272808015629029203559575827690309431856899536134488436050267197743899811345431719620140557633289403604746178253792567143141897808329534055392205343587948934882656855258049879611574500704183103723860652162658377951850716175482675906768625080187781167507211413923695451273942215384444601466629166292558198423647308382712923441194050579914230708114665063210205207186386818263400972397472927312520175168592528080090180541448648476562145873904586745206215276363362641525847078716162609755285819751577984127889724510573851020657322895612917132928643265411844042778951522049164783109477321342836967685508959950836968320668520296160213750678158910790278935304416827192556662119290257438402222374405513864097779251069920477549493890264137054785358609336509389364376936134117857521636762453422141469952749534733236886141934162479475324898099229373445805677913188884825618234467065013519993448853508137840736375969783884898372037273822664077104817008462343952153053710157608215281518397367258432186750131181146636032677911044084858134159299464707849416445079822753011408311558760395109853877361813237375351624311015367599108112035296759843609807227113438649090085578124489890882385836927083834431545587558176001204129850118271027218455163388060519021417195348950378229992342894110390467834075217802473364353613293679647440566270750948308697148501354109765615238294003705222893173684004395139734786973131274770353902415229523963619110283436436141530418388582709630278238644395066111223896496305540498959098224707048247706234828985976893941154875888097494027314652029917880814483673450258575501183218730593354404315494495127399935847164176046933387976496821882051882495446047731204690878856316855636016732631275763123561729946953521982550533841350873182850482975841096122027396654199352626299492335091851554096603705663516597339514335254041597635666867863268477404996771486002766552495111945907666395636509686781790497476398505105216202673410093457971134389508383718543974904100177112877785053971962279687802233445601196737066319023435852343780519935554250650656802467731905587531789403090209885823263417293457812778173479650600242397686486003268506378179250392720202182079877498736906244694230404733556687363139040380243905898366691445447927996308282522723834170477682320204256532513442944850224302921636083869349867811054067132504889754419158556861787312234588036340517290742305002708482134785631980307499752822491285143396227606046623043105533682869415053108325323752074048826652780176957486492944491736258278124640326425053527843573966826203721344076593281571294703063790841515066056563744320107402299115866571832490730652485553370920828620992917133429560868787691550187034576039995365881638203219927775900989486329878972683011410982826532361876121036258222228705902043834271235134538937609253855942072374287354605475552907532369987180286088261377645095562962154806221198453606865646044346216113986294385478392650286730008590389690344095630852460727635892244083178441023491743057201153868989950402873627633986386412251328954604321578399471424303002884955881551394745262749828794832589979236252092986971642754813384890324889919962343623240944332810107962874330569753219969204130464843442784577832057814781660661745504839166602152291775741112565060691909813825162861671509189411533195773793769596276655437917801260995659404245486916891138580127353890964237831253687920573458736650675108079863482102478194083968545947506035053795425828465404943266737724686699184677902760118443249188587022469104743027353885854106698553257620409866328435537940674249991804224383786876923678870033197820214394331990330104548311161150839977761269147870512692482608037046533432324136573537284982928261908302947655872597906397378043233182119489701630312439927970862959827752137809484095405536231024633432223559250464001059789678600656006569459371701040533365737648076946981418602660529940608016825124033192182937869380381478158574112300066822814344507163318445728537642453556918091205419276401863778340752918934399864003994958743741355213928793976863037310388249869010739721379239970269009248002689526431869054120747560035672491398827057142099874849058377790412452869932974819992650969858358175537617500304291118711063584051931516303773177647050455928667744212886353835921178869133381593696801707761954998870200513848532520509361926326563060588583120468205984100323433477549572520271223641395802486196249737026384606830960949445633484860780216603368666039950151105393555400833004831802152536210484851563569535343355161131945101533467305424424734544211129780914877751111790527984917130878111718146789777783389943221750358437661605548580615528193921142183873826642961032414564687450751976494677489418682737846608980400095625235164511085115597709932511877514170064234227084811631726435591523280401171855059952268925131119700216056169284543593692761706191698488309575276535544023601972091530084240628389886495275468167589581738962633348065530134918936350810799097613162318155740486248608630377733370579321826903254982072922066361605271885516589585119160876714292484482959693419989680331269639674673307397715145432440365312994540473343276399344049312793309340586209957268188665568853546280895246090114598963287040959019678803247338335493486410141725640960730782531759537028549755540499115706148685120766876973585170194872895875130461173518259448570115576672916794140851259272043320417180957754468777404831405237233631100905742923850853635836677587470496168623751937122592065349711791260672070183885038992408047362504256244507954495225160663253598169880102786312189355938999649719872654494001477808831569723650302404709124458291204117595279004218463710874236604183969238003483634571351454640156634863083312510232429900562137289671344603825016060416837142393275548759452084079004720834968568653309923348316302710601604523509844028719974072351189596945114441073958080446057228979932664194941916805148142767475829989759315660814312261986079916591973755410857118603403261544941900157964791611746160243423819490087589157224902064265404986250779617470443261007491523302877506910015039329453006513624799808783074942035471371400662454318069542226578099033184580142296997753981459623528638358577908635419334404404132231423410509451642212797843130051607107269922813339124186426504311539515457980695222708637676053013859609377668439170287226300923450113977617617819670672557798419479579970475114616783627073429254018919719057109412007511205389497913211349154642419910769022655444712610004136398379671870973038935328129374123290111942769003278269097576174936769660059468310938428984052916044134947276424391951182359180830630013179605638626287534274716535074764898049851307577622140822729908403907856309596787229014432183516170806164714129596033218807250908705252335559980649543901377601853215436831727882726718542224041402753551866741180881801475288192300521082063498749839150604726715604106036409252998257926445511745216264515256713726755039520856723249516616337554113954087598924094710910993762318421998648706210466230099687037710441515104316568837984137768917171540092732889483743029805403874972171550568783599710062095978963258290960020267120307746754830142032360082418700680736252167129659234091452591934435833996439799249687452826339176039703842134368001314162805732261830114678271291815354450694814025393149886885285204698561438801476554012435021589256574142768428346137289140598186222161894988971396602620165267965028605331412708178112508599942323022299886337456951168651694408722224113858118005383998452542032845917212664951242531101275874909692711578282036433807934545846208718602401867998396023104911137865923458168537404952793494863389654117674770581509342176339736286941560780326431691377623976812981174710529779337196057262258139005518750719881552110172504381197984564694867495622371024769727883664301387580142183433914970460125752001270455701750330105133343086477501008622492079125108061350285324253245954055900993437129969030948372147660923646975334156842341326918031598834206157002917814055809992635731262174039232437743833527204064995359992864681028469789058431961793035226930430187450269965345881811433839795982278816266171027341406082751063691587555945096656664867479724103372690458119617727831706618634909241924577655625453496311245133578612846702406804165293377602194883435554802285948139705322078734036885394813705726786152883206676052463707721533548922898824907471619298138036472832591414646101778137561460026202444270537213878334070780802702416521294880910032284603341515024815388145102971713141061073441829522018828979044261043685890194095542053336697514250428601095897858729175808744642026459871407113648699439283499447680815233486383313194493487929986838298677968139093812714352775461330276759424501333452573606379176402760872018193017584195469949230320052647334376375739228324674195349648782098595244994889236215464154567335808940629042909268712118073467670386454042475405227182885769002404978356174977674253221747584325829829239548690025571836325164530461065143427802786670161439458891518680739562588855776914271842896785264436945122353685298887943094992994913214286612968801069098514538165035419422976899590950463619268478908476365656709195399898487565236667317087656818815681201038185100697338810903280908507348537515426324471784117465363169195743563040239479024837072749787066795322121897564757985231491513559818102590333388886538646910295776467089330678331694368183005254600397370394487028016078978784787767933978042386945941910885938259229434343635268383465479298263206770204733142783497261384656539052033025075273773848839416782145113821057904271211726872662972177760743750913318884548133482063957821530589641219027835310998763775836855262906139029695323263926502144973169293255374689350973017209828433641021475309493083310194108924898197214999292039574532061977231372811304852701849485878643348883542114010390217237754423339130043643136430659842512019190099779834031193116738708459973224249200955721298368242314764528936491253311843342249841515215954268366109272899884680326291703710563876685260453342857237946775509742491938528607713094994527430993309754833434692365026845358729976314994523005497121196492144530480886313751008358392857991816605460085206978280974350318307341428168667769210805579505902046958268751859495015171205966278115062527946889220425635139463483885290080224717177470799652108363525336415626850269380604825745533770481060892769728190030374907718419126320905047837996213389340814171996293132218032124443511754208987685747362961806514645361264187743325567727613505662580847081095872329601190783491629096968558463693882349213452547116151191542169944373542855204762457305828322218681137785954328587710763038430460809081975120932415617993842789731665845159830172148091180475498547184232153439882129110424245222387913139541261773093271854701502674355485886522154638759822528230572039793802038841185577676036679810816133577886813652563687778917211349603198538325239335267993245138106268132785629035835017544785605893482307785108455176182251717570293457725458287662038688078392199398446896510754001200034092269043872939542016279110315713081784654023977553056439876264663219052281788743059579886536221532555780943873477216429405200404415007761899683233411123681246414532903002710073672898360044440500091121361610838983823284972715846955031898615665294555718893210120960107083768950090134079946676122159253497101393361320566852402379275809439284070745717074854525147160535746028807994956299875965835827361504120878668480808094088742099458869335949517590024908300801833258186284609904444924138539975527026920580988171064697498985812193827990029844377323871462487856536441153227785469156835616321748399361059873477848522276534241682584793613171507429268217251227603552303246718554915594803736009703682341134178974106065219551320962109008782397525709078470353747375491845067643286111766616399536992748469038087842224331424686117243023486843398816186557070766832682259687413461869547042756154610555048520616749369026279647763279946775739492839671511047246941362796508124248371294724427114334054178617393787464468933878516447954790785180015140289841591745043372190631050619456795114545756299050164919198089222090388344820166034647987636480030101526535031622588193762063789518064902603568656278804588280978593239484875699630172293619413145717102960522718040351562631554160308103928110066464912965688262141343650829154039858777104539905544718904047670187167404481139998548125321181182328984700728372715067063896253366357823871637455747765101998365695777432783231054041871369731636170356006740027350960580825188781676292219862616412194575735756067023191444502831021938599163744445474673529840614110500117492537994717581811384929547928264937894279092059102982807344436438550046422041041287797068017015372830341629436964521394627146820023985496926840077033018805756122285570069718654559754824135740563816622982856486547815777032156167262936461378935642506852431239158880596045173099938849776178821226030128872610938284400660075046620297317273730964737067147893966385672512764234721727744885821476050755446244783703006837964437153875841436499575451355810921134143553410418504713266838763237387072201354259432767692863708923180207955071715758686155832797021243387655737982041074229786561983040014992783947419899575255672749926441728539260994732252286573852862030985723528158555777686333757924002604074966563016240164520823670043244563422172735270094789154600016216183152135467180460547856696533972949090498354185664541122458202359365487250323897036820195025978448456684170028893443739047369417084646014785085634721360896500598782337347906053925891272634236056672270589659040113561119962881298233372203004176925166176077593613127851998599988424875898333488759498146824487675081844216052906043263726231499210990262764108185718906384266740627856524333515677999551327699298861124562216212520831624823190139059564762325224258302183932806204329870746859568151079463324075524124312393578665743327217965470509610079545108468397290711236673620258793174997625232424541712238409432523837072482302212501979900801623337597296165227062972443807202504396443596867947085910715012610988013691612627557098290290886711658729951728266291549447388631392607937165724216546396016002831711163510231062778868414989310765614579327917979002961593994413208530736498246981785854796326570780290967307313585534622186201539081866107400324199146067143686390762270984207292828188133190640216915556788807470005638371873402256282885352264777804949417254804488862527173650893386173028878990751936073834570413637830185840616893260939112731926520736327500572892225342846999572863612992582915915890121752322733245619678458597904613713971675048852968416051830625649350074942485565065855628250751546934288228862242792560781126900302469112381691642075957158290147185963221706770066092743162180458236068562534703556613218870606069504351413728220107830475885529126213338968690863171281574303837484327547168526863820619885052468763639061212512261313142465735717222313397726966751863477155422959556192302346449701464388158191742724221872104333341082467895585252513775235199895421088568365753028419281852486076476881355173322820360324115339626126453710130146887091386065663535769149488237765582931040141566510235394682014685180970178859332104297544160428186413803331945051536366234728008014071158840185829501425175562499801101921146396840293993578720876968880656553723743468642001002794208872009170768060530759260541673804778172412363099045656450077428535240509647698724924168812230294516054524967457830096957271802280823227727523108569262141958553058113358918940753198324764007816253485563675176166689869389093451288099650790690551351564846091612451002257534403122108999072700718217115915219906025293017883399653448240267496607321040003702380519230812472339393744508148652071591516051641977861476276795583837542571991190106832895825197264589662142261972885720924084929600145847870099597722145701916521762642613140298321178031386789404671230461161113523954241076876750825371557930640588458633747633188617368143101212444945627224231986506809763787711831484502032405124135672198489988182730399166733607453090109473965704314354712421482633091407394741198447942478642979496413035651641690879236488943940201232019237434466069166951843535245229206588566415377233508322897287346617142538953441312304189267026120662675091585471875097612932907958720182063591651086399534278703980933531216445683700060224610646168215420143703937522969794063858096659365308284464520108290028333757214790748509761771675327202801271107539392588598968307605001351355164628101546712226531061264712160628230822309607760002761138220541763328444878514855872464594030138730018981147016343878283228894051967139465058052498955600638801163551552350961856704786676473349324250453120897974173211833161922965015451226271211093527833650800456171982894634602463557689848026173727424775290819737932685041768867932451575186807502423964229205253113643808287874260190357022654485654399295402087653779561643542312881950315529524125661660069822437310818738715279942440918645614871016142485974415266173939446278393073125211796547607423379963846490719707145670572557303798963600706345771704398191096433402464257091955865043004955592395760687409786723224297390600690253951748308323110827152412070309541572115221859784084382748185065130553497568072542753515744962966507034022849348583465548874972588441962073514516593699949436132147000848312652798807911053904492270097863690031960431931410250582390128253821249458030525215897830084063575437952769399158090737450475805020473337010183415133752599395611498393761720876735078869628053279327534507141894914199406431650730165854625856990211735161129985673832539401059488014051127299789150484585831565859443704454030476606520107068726340417230655284677380436231120121471423092265194101579655430443774858785612077754364902616381570913518988011755645193133346816318445101374532381539516506471938872455542602501049691268441440026952198877945735147830450315771926447111394818217581674708699725643213542365476306846970171248544476677562031467454793841437923683650115021888884562189050308251478468114876847465717406814001796149637465507275263042940545956007730753995007869368101635691528210899746081405719000796997011999609674320897477615612707653268724379725589017755989450874301831711939193532364214235287582277729545976935115684310874008842897715757101690079953369685273970336633079136837497079424386943376024715528051184502620969723919984754507650685584276030469157658799310856964072981699658130957715350694717159222411033077134487871246334235164605992383629189796691346342028217927735179060199639681607494864516312288229449656003585800328200228008732002683967239080206781708458896507646299024680627642117963152794194144416509234372587306314216981888577004009450031403615618932845445108598371622696147574639108226954683537306881989322213794154200756063581807226866008660752489351010917620620593226701835039369268583538986843574114471959488584150677187964590151472573969586233435165095547427293183621016219506732905286755770753096608260522555408782064533590041940059208647545672751824259320636391392942919079972684405724941485543398819804112245326257231370202802849170477346180487014283690099637662810605443565171273246507282208778661405512973973254002269464637475259769421053841396790602708639420089328470734031288954458418161783824872726437800115455144385831894751940733638098140775709160752295708648370427730472665067755649995730132769330786046494160263388467395594535046015687133963886487906476826609136615097659733402640829832584412556892863772101962053314641603494715105169106836934396670083590331606676618665988845408206583192445065510980256358701623467342950503030874173185364199408375950445769424248855915018378929451677359382977175176317698457915444369866975868129551418280970106774854936415489990664116758788277842304717968568637255099318326830008433423585459828644043197655003045141741974639643397129001614605307847414294833654109573581841847039105996392972377463166148185170300780733667180249566672752274179132565195251536666307891500807286452171294341782005244646899389173596771270096452518839038835380673549234468782342296306722118093240625273830225819801146895194035048583942485215679686409653201857435373028191146617398644831299493354671849249772858412898533247226088497707128798552447764956725228370225586405019901053312270804524953972024211611544503654967436631474068822365220071370679394243915712458298755410824918380509464193069042254220378777190014927596386467663154919667661750458179550588785302969159062200603901038217783616382153194087135226686399062344449573734642224858886796167304657920027965894160565868503274812025836215521838901623063838481483883691952110549388228722599692931599719518456127281774032127334635575202614632961159552968332412253405927062103632785069745802717954570913793542950945364686948413476506179436180772575637429572134450686316712840589958184403540666349529435120088564064880742622509347525332330158903850628544134401474172441142010047729194566735689248259077508203868664144227469223826127659855026510177806503139379816269267783783868149765536168035438276971095463192124507625385476644672175345575433000639371266908349975766496922932562431050290139770781633857462732556261406992179331025465132158449226085360920919710846834120133871330537329776460030923874942473592980121846953221777459535692987934327304115767630419185077934179094907826681646299506068929297073502193541880421732656511494974606909362855910189170399044791961210169181444467713901330844333440857065367060276367154915828049770652448832045557112319032912486707205361153925766275277535210045641921314730485133840272206969695052846116411957422023596205846223104731403607347792768671358242338672367946772668877032157164604943493525134171531814640871545377409037531881761207339071440373067008717898317942295463297645720097037942131587971012841661252846711255838948547362095011864282337100108824080291269586347971697847005351106728624576864098263972465892712356201648003509357324645355424751058949270268382880787382276276463253561404089083543055618207303195385520901577139469046550045155410450025830759878035065834428227177451972582169713625514180706669591352163282717761203679308485391190120324092292728004888916792927304318021161564585084161402875690257171107707472920469903157222861787849170599141732754461173421791586802130744031233525773073295582337613281166949910168770357767116802205859034175361380531800958263368729004365213258945234912538114309063788372058452342088416015758083748373729629816764145457091312236239665032705656748806766949964915736970994106257783299088202297311687269700237852753495236089742986456029866537977767092994024513663470023634814410849535299097610262058647163411138402382548109525906697572790570945371213639535142718024235939930508451189670557907269454923743347004775131342316894839740060832557037260384861371416052591631498500401484309057080672740425480421852463478842515085397455513002247078960484549990694717923814537860570874598918723124776899155812636177453308496869852193638630845986559207841104927211647606703818196731051944914128543229517494571016420095455724565494453021521927396289050975320148251981747708928267133610389012047439626867955516316885632367973224456453460014160328108428677046275318356987807612055837717694388404933731216857934719546916407606327888997346042991255910179511802950758937458849164405760137749011913018091768921295425397812037774855692276514556884894706467807350766216725167380619897819182091449897956596899323008690926681533513215720736899022625835906176057961876160344918361364265954264797642537248077965431823298909739414485640503109562518191498791620210828057786948668585087196172839113809723630653256464739155781598829641930486729332401202337535178018702477879769123684979673899196192818480289011543560589168537398321190492513006666439822195291773702887505477438923713587421694486816708952200300439346376140379950571481467553453707426644009401817711217032725082328661707112226767780375480367473685709792336124610286733361910588943265622948187231553312893218468899189503088942319674887192869899034855405280050786067531701151245161099758657394653269613194721390323074773113446924565569686551429352555311359907153679361232393549898244152632338020119094223215570520122520683718806455388475696045406402776757086812934805236110521693098391302549027298061125050265752401653746402581144327142020991286464386409209254278797825062207365509830355253995530790819065674010189648095200743420067832268147890439582183545989164798320150830645820277292778814954921904968530649699184665236026940822532582546078574829144946154387528798292576081853935803549252763826775498812479692005200687692656909883993791052649881052109530289259774444641668480204667016607616001691835700523568565420377625835924926105050876041499935028771899892577551018540744465819418659942463491362714017509330595826019070666447326065536204381131821850202741641797090295336347118225525778357680421314582308868087350428553011512786045641545447273673920716818311393657150574930338647039598966852425855475791562493288720773539326457381217015182527420733072117299903409830792622941402616301227517344316890596938790808219567293592272218209874334544795433605101613264085742650849252148503425302680161850699113892891609986841768415742135909512509587037868372452907610655804562608721093584224622666856073756780602709052824659665614898808327736488939380961693287082724466211647083972132480794783451764781275202060666484632817976107745292622117200735778573739973617031213889741524814071983687216367407289094704951705575099154363936058932734752508284642121596513974874284796765388162134726436227731236588568121791978749950817086786253144422450888511013645212284409369766433083451649579699426647478073985379344933091171159411393239684509234842748893468781602997892809184636649578661767212250933531321421740726996119399870261280356833619923855934872952963982962953568948070186143652728081183876653771580943837309488403978540220553448313095697479136903767160465876320048111091332784180777946692858520052496765180578837598294083501054237296108600866991305675520284742414991688893796666872259439090012948231566695969528835061935054955917093049940965991824186043891221973497132842050571625304362985268802996947324312032609277516938716392470279896477460079304632651354275125729229896736174230846053366097333766174445663603377981136284094618176789530289561333080194562990170206253290777985244053397022794347078539556126306733865601002816463413399341550214818252743879834930293803107182761524358239742586326089073311868876430343681969676092154659053458049999917224990876713876825592446384222711454544992892948359859197139001646657214749657361067359356583303958856877326630133650038675554021967066118858309257494075509656955984635644332579934613650419432745029052391892179256034436796490635871465085711807152109154056026203651129839399164364591219481282297359981786273353947406912125926417216209097416206998193088513979612082425532569646632187718766210041131363397753206713025856558503690637672501301161793258356060501094984669176143216263625067995904290660216933328572336341977147667841740933544980892570184341957566550095154618585197343040252697445437965746785344522120902057829546248172713147397055298362790142739976150013869742489840306391053356258119561597847003751200116480897687482058842360531250609379774060975030902559087850973926345730856331421164341045993865405013065440766914239629145662007789776512021536783801077843729420054046838433790558792396141474152546286337579075319208880992313715139326694415371106019157808285749974482414697690805211434202881992429386267227001830487393914538583045927143476800484463675616189651483364523031400284356524220336180231016067469548478213001631995378888111044973339400437695690272849462824366145425349699316520089498660318080022747376426592945568442201718647736181618178527705769653793253408250017497061545606696700860824808156347372434822285351808771259157659062133622476838294738813318028202975094309500635416457363906260194363553994593457025219298665988437094621648341276324439525225448673961525080050045996619773056783276720065274522793215773286800216661120638851441181314896877858924766579483185261999252222343257266913186002808475446760174239048745682197512948291429770284249423107142284294492219002444532567060227394025115492618307379389936267680026390802084705912470785248939638983768497525182031427549563518739999035058466803396872031519320290376583521194204075921704789544890059377815491741910069374036103923942326118081263412113644097320234239362513601494425257804868860128965877025580629732555616929329587022091371254141686215112660326161575546185641992683570863342647215794150882831651538824425210248509475941035771548474865458400953185793546869680998151022145164107707728956366469430627788784983042487998258989102749494300348059314371241173054573207727444935122463153260272077221268135739745987525060936241061311877557886515941551668885916006878589028264181783574323236654547027648564968302497873792497315491352825803686884522237754953603433201275052255944092979678779881250523953418714563810483397292936285283307972067558750212116414451183742419974385264195848695817991631098168350852758282744178678175622966765664070051681856782765341622355754432605716002145019834695094647213447935169956341715585689809844474041663737154593771569418741961742964946756864307883343474248493128837381008919034477198269552144255795838111914430259562472422566867739173570335020566362253991965132655915738490183772482789401254877752182145293706906539844083724355375140256453262953935237343106868951227354468163227724818739902481054242371805838889099668213444203014521430561522690807400041460804571366159053378695282762747459062398098491778193053160725942639844196582725243748714970902898308347693222205807835200793146636614361871106961350478635478845192394221587173454177113829219059652394614134371331631618798829990134950472478849593784438215257763648586785249823693450515547472160423213156100054676840403487453087752265063703675861962014477997794478632024668072605296264917740752907205181232645609401038811832039367230439459051082818060757385385986839445753957762600858400564796238439910129224354252801019794205396084704962060960259294114985997580360795228150568854736411166178033417913042996128680268096965570090221164505803671911706123544842934452097249331454433551207584820745930206035222510456951845382085643502215034557889395026755893886450204305158128273989142910408065159281196565004572362278360421624870819696741963840994975539376897455420291734126585202304471609875325392953076639435416032909391999179960945632803238675365253291927718026625647018050461877388652060192908628095747866555238150215205776804643020005332889982464138431766340612834513686918879221228617217282138242589811146514722208755586436324046871006123325511521904422222201724827229263264873945091604587597604380073729448259848805007908089241672393237542372232976617387560924669077597875657268507794154406836659559437718023379186034372768938855242740058439584879978895393177806639071878247896890594212340968935922866773741636453040145517467275040819606830635434465154583140047778906953370749795958751607559884113430962462613663965124297056115605661702405986474938864533963788302742325500476903790592187879022001512522755368501567329653826071559050910906088963046266832364285978518811469966520019462774110164156538428140041337573424103930293107122993666657488079421293556168891640082527650068682856379321505270281498065471129967192402692570821672467628947295846463915621155678952758905607629364988637921019948811969946328510465393092750504177091297371405631753520876854601146799027500810108860698964954356096161540559574756901559850425599855921617477437283352629137188587253857530259931470336604219028292097545305979066672947752382826041971294409355033705501756818790818961891255202245972129932023062901091437698478719994969013464340442937816299728680657837049507035268846103870965832939646763142942091352564796445406406822469088457063646771706360211626604696962270766989562927246898732718643925349483146644921548165105598527602931399043844527314864840290769376030254193831654216581333125201143611606458709149894831462744804802337122444342558231056866384250571376197698853914286547421564294296928397047093023557388840775258433451757686683764225214035338040155976224526244726906444942037522971777693726731460212505700356397933292802733273314147984209425913178003628962591379446086468549297763163127969130885958911915253503454206188862801510222023878352668096916999251562145322850868259075296050451621572735580760578298648722202523076460685549314096466077708662159388785244984884550217107541716852063053847081500762754718599204318979389501562502326067634104924915278375555107318068607882707324019658553325263299074481839757761787153066331603755270358650750654805951691717473773161395217146080730353556179196966553304763472660896449475243728923616447455846458168058613194836010036933106303634589051111851104254230535620427287916007269245403664542295773490985495489722019078807784990335134055646929961090228473068181496954966790655672061097293144831632651151953048656315470414600908874559214289428633852339866464652735936466005390781917266839528929703914067852100728830937664878764961796733353799178262302334892741192700433419210372790962821259849870297010627451597666116844738459142478090477078345717300346596203042911202049130950415347372139267967736983841200414702871203128270703785487198308964936810837813201265000979222033191443995482676755518931956327813265079347290187695576084132091320483091069538771712366691138980745469212065249189339993844541650583572880030678673594741409653643124819654095605891377729095067279289135801908856312254494058710618049728266799602098019803870738977683240375647817569001518937129027313603729970694232642870580664848094448729724264061857363555895765821905471907083685037143849427822131628501453986799407634792638353557332698711408551785951961559221944186788437088163394371491144749356383789921310856142875686899421551706196723393218821831639843172588852534391829796579161825416154955324913112321585673407192804638474901259105184542297877173441860872203899111524080927195954553928748935670590700913947446274567265986295572673650518873153565704844377965324433574923078501859530372362278935867422105322045211899747499783976810861689123612768058741172581251341044527164183491377505202207636874229717661277908113008306978653160181580123518124563164418560911766921614945745397195212440840444882277330426921634136597932342976964072296291780261803129636233424908154547023069143530193697668871327855139185367337694879849357693059571746164024657477390559717341411252184786836844212426894875996232331879997335643477488352180119737357132030748412534964085165211266798991712799233347348335721884185673011905936972729476431817561495931084996913315549258930936612633384177113888088198709823082100035411038245631217852903075398517791427167640913345563218071339916629630027074212805386019135630415319198542618510329217277127544522849438405751049613200423892486050640401977876602515629759618200555709623113135300860978339286384829368125965092762449238907584056616979381003817198077288415866009590735327512287173897422714582397423494241693110312037311158979440692438304248547766566475478780722025083540242237967345440671248974145111046576391714561899116151579241947305798564198426691994374377699451786390319870823432190953033163229868433253238766972675235134397116307230255906730449758790002130004754532534284185873617047695694112087969361480643785831385543084227414023730917595783997093173119317797136823939680793170771420958203435394080157232861346658328083950396954585152449490555500477138431482846427460149704335898439412430260602333898493612690640301881133385640277736646600139197209242265083359512452021666454888456577714966928157707656600399551309025062671509856415308059368100092515715459189796273426881969926129333991584870844917369848805847816627089445811920702751878716860418917500231565649269645267223903024462181646443450258851145750521207463236720754526328410490691051452565198279650229799384305301822367780068043513434416999125764534201758055870479057005144756164790458961402206072501067693583737707857091920853862998871880011273538960849892841685467102722978111150026938243541365605332529704645486849778079053591715503979542588973369327456939948320844172730763261133426007276300622002680185478720089826360801392058317404535085854063639566463809884121642015580098737137619691688015068017254688508111839439325809202423229317067011288917358672708560145763970087059936649277918111320217574086250833408837379663183611584356142565608672291992768689450987569862388576534892114956145350174905606865017713443518464954139624865197699648271561096212108219119763028087352741637448361157056591559724583577215849268537996302000693378907524302016506723867868416592770490420992286831523263674617738042555103704796048631562803863923079533150594018650063336684088474899343569430248007500768150838218499736680797292752331149051506433009319446050289634505105036456779439032975544484729458607001559268344514881024326793821065381691504056054228005132766242198630127449407314509967137624871981686827249136039266115877087530473202829411564745844417026482809782830573716401633872392278622482639617640713813059700670918842294766343938081506549011900297906128817569597116594822951194796734163968653227799838657958185175142483803719249752279158319858947543749369000911227211821954534639783092312500359427188707918659761818102084922001264244576095252079804951062298446177665486796025375581374205433979538214188541972395669559612948108410282971800825268436939014494292586290475718667999491888099817608871710734764053371319774711025983523326784240123581818610314539381532493851726944620001629676701291894758326108204432515477442722717771539878545706198696541975389862488711952715573517562948646543804508500243899418012553411762138446916947949638773976682298806102158238285969687979414199982264430687983445035044418363834627498747720004595774253811944225849783675347946997310381442746873148738539807187121962304411527132889129298998702871109109692116177972429154179378422717745018953192796234479664042558485406808229927201422553483951238445322880682906260807133417801333589696420670581165913090326042023020294543369416469047937772121391683671730665365378982587128559623244885538988070481117962357038225778330904583398496376275283208610501635280528613797220555214488826316121201069089734753828191795548536005982998564452130157935157196070055782360359895289325544398470879541184313294053949163944195755419539694474101774462783644570679722491664761404735912651121908281563649651845736654296025034289145673046932079955515723956385177492892986520180757255424484049013225011499680530769390429374667297863720432691049230718701175148268004854934838676653942497243900000500826328323021294184550616657162162675983722175966148386172257413176497865239564701840816044881569225526255355942003153662646674473674818904174450246536958800019035625264298174696286885951363745827965118422525243903755479653008417883640315674194707250339305254289085746585135944454600264322839764310575893165081549047195107399492391189452928876999343276764358367904740751308684195441046597063280622707176398023924855565861038073756486408681216441071967372172026975312771406498826485243653537846743033850384381951305499512879988888985745147877594603500752998776930057022417452937468351313075311710992989321830090980237728391958050583063166549803270493546015684696507086759966048427704900647190316095250392673990265715436849894677384011500093641273171042229586604468006381862182311367797375819979245953953032606259074116027087298422340474242749742024003676683458302923595278258878707868297370432338539201798150804188452522366374699942686484153212531073982901177145224172095476009606185122790828493962372958616339017007623828521643529662978090497529969067063082676036211291081067836506315658411441709222985503971739640191563874524101769939546850700728402341780754868598884601324232366324328021057183853853382650008226085985709269265701661260629847150573610346630772322108865672084002150233616887368448095037306888295450647466937456622481906031502281251122140233089741260845876283963830324585269881265982661307162061568756439517195171795006882644119150628753858484493042803819103111258275092198835542545056473009591474923012876023925320703451535415160678511382075034266193260480896950256227724801745692308157070844004918817506110281349559988911440100928026483337712697283420927755223154487849132549874959472550338909091143086017631095258731761275301505811966629028609056136599738987804456536849852457853638757171642352566103778583319696524206855708434386245868060579139867510749322995085865707687811886058870624749419628152826737186430759341820814209575512428104033928210369509045834818908751693664631052006540111225068035782269173593295990340691031780272465646148357875406981064342247766706250988498285813665975796423365101162354999476185074630545913909982606908942453807406463564291003381403898931598585936330678714223908706292085030777091475676552638034621266369716198006538137289264725462302808330526171394998547287113865433154762771849644009810669265908089369761813085158188975486683145545360694885309505348331507344036935408302242299014797393746937294800814968240411690816538185301020313216934742285425039060471636494293755413946742492222010942591432973332592883736366740880076515785739447155091573443936578727656904777944029857478056380327258511971356415191524554062881489973893766761561727735979447123981244217117982073548269083985796419903949359799479481580882147320301371504848289166848336844726507321491921815141112402565631799050438454332877789086234380593072672337506458256637195236240019508811117129793206912408059928709907970756412177953013299384641940514546547244718359516378867309232508938374092938014877142164369617384696451694166472915299209539123310422852489790291598535763967453768135282009428122020577414252274922765057684648794277181078691484731505472305251320166601436252386486587006544581101115231077751458795034528554720370967771766591421085491409142075036900429753834519243429935731424722674286239592951865674526042722173889508884479300237528442345233778649415286500883805270074245728083124356901277981074981202954712178900713426570044485917248087385250929603652339982737634382657150179257103256644170176932345383341852945039395780968976501141365778263121118648024984254294130121918564840838688679288336419829616760227394204127991130667719314568446235201200014331452992706278032526413827882882844097283790098957634917611471104053558468702914440707835075991276757681457075668337863152951443807746715362043340820718363196424379427395036769965864505183004236177112858219972946104587772790539917441235718153676907350925104903467698703891836399852169393572753891502542562082541820853119129489852524913885183741132350660314651570537748219870768732942843196891292148718216901272192626111319843404642110562064615112090506232710724729415001291679749891236616449164370093215983693869605484289069107870591044451726253655440477750783818313149152239123036762667232497777144254156540600459049569059756082652180098405036348966699636808199865533667784533868610796812115683389830598150801582595609709347220950524307946519399050242285485599314466363753816464605895146580363643926016447918737681518002268522075992124882416363853694839817443681852455576143385493309213252994376165564602126406695656951998590558990175375573812420462573171129908936708286651393701280619683405994707394746343127546177779684144862458542937926329804671777864875245956771419080809426015435157443202933051549525373273878835110658924432755473706967122875921366220075663763802552415889732867531138961576642780579226448841940488942617393147670383890334660445297984360401366695883756742706054069111729876864233808564001417849081101004048964936869330079172227008333071158132210137997899279098768677019921731850035594055866226287984282702019334203899471814073227305221708018162075842092004248652862373985816497442066360480394642790835493281303423071036719173662484129845745132561511673139586102703459574103017236003033522815911329385861879867847199271343812706007270681818604531766933316948376309602099903282891706261471949852831438113606655658981989120577809152118950917247781875885515674288790522857549880077731711554781056092469653605121225547240365842230661763881527235863055688639446032110322419791321173403873531858023784412574824352717714376349873522663913031165711785111997507352768224694852210206039608051686625324981123828770238649354216560812840422835515334316355743438487286873224173570136367593550388503091117601917036443632104302173010819391240984976969867608779529845844785443712702771104761430902204875740675567725064599762369454539495558948291628040301748286216737435103244642731512125868486209081093122017232014136269758352953219427377366595609159122156967176361207898502136653403726433616056549955299768789650538400363115422477693310637115115024311731527341352711275751545865076589455741650992395348014680971384536138453234193285661386670048952629092801153645840191014162429141227802259626009354103800719969971294957411430925234825070083731958189454421142275184021694840662809720045595402813031600989819085419658896003954540337407492812708959969958517898334784074729537934525791713486689153375779239372434952677785262584511067777553512282617942559447315624389636695805672075591329158745691974265014104810974573571191816375691341745819556485376993577246677732537538467656402843934323666789582370854557169592253075579767688408114840016618437945472079177893447036573958538600670398584922236035215233111073784773344541706254181974094969870025556569392883722572542157248721730499975129181666418040258126965811985178689483702258920437598704368707567214882407130994867629060117969832806861843699737812171803043446210066600024593949280224897179915076124039233297876397335420176448462394410688890053550623897541593936830299445703370210997185137764530546348286781554089123575573268694399733162724975076950794672508409787802600060288710334796794187952528097222965822697571969287104546102025972772176932234654119128025672674306302654512813673968319026561409944804976386939462852906731925488090573270812168864960791458956321141049383330749324596303679797825495370873360110793835180460033090127170553907447607014005229256891616555759773828772233320850801609653544229176787142380199124381738503681741551980104388639360506097663920360787312084811613603515350603251516090328265424121279479407826967867383165125983276328867213887863617632585128760426236837279289962943463692145183600615773530078099154287448621210055414365781142068101291657455832030649719300704218519276137186815358024436774990255123720655427997872356829012677092090421423259286147232356433027975651554548614504498587726985000284407125555738798688832163061899316404905155856684570296520088988859614343393362549732648510142536712673474695270334207672726231262646908125916503797107340709061751292432009839131750856042499490031652164914047142969892614381574287286458738114859743755192348129175859837222975900945944047510424608983792182799149702690110556658231438257570526498502053749927269048388269321428969475549278829133018654754864834746761809684570069877146672388330658456683256179186788486230462610478164392342959798153047729982740625651654704348502403027599680241794611370014213749708484917162704446685707731431354700919501796571450127610345010855787442653072328619411603214434067463079450790117644537622005877611470317625125260759306825436006444851465365657130443386005700033029142780154216882617769007573750031834097957907942608044840587784377902691775786518502056509623795056976672856577591593701821960269805962194344047089249677317649181077359271148189872431799956956358309179078193441099165639059651339427840080753876619104236481781259451441820801858786617609929497217423435526715675886891494846485262151943730601153820037424003667606291318939122723548865819824767881410096265118660800846515723084544316195258114791444938691349335024357619460545359467843321566798754229689032335225139176021803708757192801880186223772669730820014937072500606612214254631704187681649435828189631684595922092918279558612224060044087856811086543650034628573119557555372157981828078327318165783489392337753853206854873779083305069906977096230702221826277173414808799309061381544673843477706254455398534802080073833802374924348631511811853703799262956108444518788237642645854918476622975147560584447647722614936060638965481708242839089454299917522096771277286835373798076568168664749414482173422838804512551818796902143111124162170687847996559801169203887350609382718757333218843428985360196604465040778677325425488550793742271185841079575310679444996095404039086556863930171937886709662188840107854994747153268092741235530214189003164609425439438339783611601576850745695250706946799275475894008975438191087941764014207273270596009511465801506423885152249842205439466896268204724843842894742394328450452839516208090483245742686422627654496860525530178984034029122603014120739052116690588486866776920706071531153973013658301223891097491240345458789340184841574602022413761284157229528572366802248418792343523497036903353486972894996020884749201209264565715760848129344384529123881215327647233478997436598199557355118997565383681879061314990704271221237254914061020985702036075610022460084108182266133687998162657694767031647532182350526279160879569632666231869943571938889589864197891657380389980915252991400314859065776078482988996500396371622778743305609404447867969626560490639965918070122815891496808280610833028996981516127802844156406470457716821652089165394234807016442067763577112176769673406675648826635473013175829122246599474685475097111004818259335429220244381376181661788048538608254062679809447979130403833196744706269316617527869875173804767996172068400653492773876960168020407141648784615883307131200843721192847018168948268054083272150470854117401024637387291846846112672297233445712742751457287716597179887253189465170560285699498537910986403025049024889243964526881423422159873727678396402721159312998546063474781306018071800359313312044820160413481195071763458546576525896144181929530636254866984458057351315742522554681959218749275311213636008041966746479528854834798539680913298899208197930183897349548964246980811903529064460087360396202853912101206292698202024744391467553324871330158532979917796265704182444595033639705602003813398273128632408989409881712700761343318060727819823447216121914314734661232616378343259747057507513198010876963805355208918670171703701666312254466218786514293492196948596718891652152175998807384162419641779095552045680019525236810693234282582351567410929023688494774530409757664463333629010908032438429096626476417987900201042269363893845820099938161510899143152978831992150524817313126644267258980647047140446497450386510698486847928166206933740607463906564732081011996149300557904920612217504092488923030818970935180328884748740546991894036142341629348949394205107104007266560619190599561911784904390074756150411414980897053100781208945842242949754581815203567399076691785633417520320098561173518689134450060460499016997406159712896337974676817777502380035376140955106580475220969052060092059415639948620642685524622592764881128719475035047215055695650649215121687834458462583105106554640499001102500178521189310886706315675595880021190669238823835212885069957519254351829517810814840397683204734349019446779279263065228502453146029685505653719289071034064636146049616598641567146068774653171597719762592129256760796183506896495916368586135416187462492325750599035988046951002419293168391849114133830024111958393467313839454517367983584571677303274377301753015485593071048764377386674718065169165731972793795774570572797165431267400882988851912448559416105137064100905843024536449025065145155111384033389499592557346173182007749202573825030294935271159466049814901948627597747834957096802362889778088302126136273477730841439242705126293126977908108483469184261977000585859089856941987818149674466720531796137457101855875896505673364258621133276727356081672283760879662540422297546324172373336615878876526983006698237382584009933582304515697551090752307495112194699062031848593265212680122734876459269518027221249236481420255901465458267190546376801428588760804271312676171754472304776878926366672609045481038334386940960740932753205572963871074615281833435911749699350747665772142833513050232813983043790040695817052474801496483634014982297364338015006467232044933975474131379740938607219408341696341729974713812926591976268635066562118087662180803497629999110733282442687534968776212202590001542763192994036585057025182904067811185433651507785968780852515854480403684044744092155651901868611759377350183352098949520095109164358510476648247663498126093830606523067009419951010820003556080123308133560964260788639518472449821903896778938175672170644606381453155801785379508758029301370236235354435707210919852463055691450552850393638606563020497469360670109176815204354319841416429147146418615002833425043486763870517619619412373898681651440349473274153107133691298675649290075914842639415506988786877027140314735067503145670556367369519583409605126642063423668339148280645459943350450705483265059544684439848104637402819888592661688557580596382571913109976963491444223489122511457972080995661813254381328843074892889995746574719124960747931288214294063757487997752581087668281999413977848904537932175169956498358689913733277627863629889562985257073938578522351183711425389500725734637409986910034197864608078568887869176059796232592547708685820359879443180464685177044678365824889402643879318517367879115021604133075233245453686231737381909824841376123181315562197892174762512828219942208352607034244326353691039350400827149063596328801193703387812236101541497261199875382488846089955127124364532257588801316256614453624949326089587149674798209003657972807966206965431002117173661668054841199297505086704153827742146199297569766566244192188267859760036444012521935219984272859934761892137475546932455935822649340295161051072885127322156730587891227583999822313816062762991370634881281147112311528876428862340162470819165574661271313010516748311867991524700454440787045491993846223017038104198970156510377229149073531968860021604487175401501504847151624640040998828540827181415334374994481254315474241059946083921537644295288247738050587761188447662963442535230914860159823982930767417991811193631673419788593171323659807052420571467412761029997678429291642784618476574849664752171070715773212320621404488171377895815670517789170047690098298939745361461165174822903709658238534421610388406540783637008863306180052163619664078921657326708850660089422471143403399849678727453225518088349574105847424764479363213131917579001208407649954230774978590759104920663661154690344217177346217491577084516757554720166445520210839441567251403951879839921930824355498465704574353011071700088894906078539418456654058124833358132239352380450000649457567438063416755218191624394167323263956554850754447405578168185515464212175158459315292313782293296435152634928600304965726524838805293106676598323392457755742134278748920069875393289466141393346611445133881198832436465101827908132944947563511959779076297694485250984549289195170418577012993791713427322703721706818705744078314548698666649450610457316267072786310902879528908288666906844615154870505088728165459742953503513898167860988766893113952709762928107405141922539942368054199812349600260814712385459866135737405025650901762465482863860298065038254161625014511290695283991344939803470285859996960141864594566787225375888579679115464321622083613579422724076253808017305122049149456066418447544819747792431213551585361833436028933264882753489979736854548301943358524477484206388718079945281058803110510472902651235071551778864633554757139130850226924524085409323942965389604445721216633079959384353254222115563821227353270826508099514409811054458505285126368551946293990016222800184514831049841462174098652205908325036772050358418372337358061532836783534854647660411184625457002873002102137343945327753999749267434877412262430280676704699235388314113581197563392053098412204410074049243798345166728234240362841901360551140333761115954313947460556016332083879882439123720365892203843571902842980878415558929465624276525476946086786248694939312476174527516970973023706403103224072578011769017564442270596104276991295115907897383952785663484073838914698550839912962886014640518917522013677628080047835903990061826837531346790057757709870121699389932565070401896898974844770689270476314591301424519004430624793235765153622217078251506084613173621633295904323243726975382460972517143464987572439611202704683814585870341575518926751760586548418608453462975386656112112241528396460718456799394917803431130444230294613623179650522400410453382850047472310894636396233872088283551589751144941583289382229117211802126321423693548880849420215151104669270154699090662246791923684925872349717447975213332411544027367376191214720145419250299009171642699196795271148126974124137880671277885569066972429245564236380182099672312350940014118700622626688857130623383548101851561644449769056241004963650015777322878615483529543711910944077936464483812170981442985138357318085706330933238639224608981368087827236772459609088857097451439897942696682978466498045563842616589159656199666913661962458768277917450924328982470156077367038879325974904042627152895765233668103016977051331953595875259159543427435650587458091716842058628243003305045596515007912895343711556256898375898963807802055113055618689611695901842826130836862171073280574087339179139699688636639870747992940440335780050262197930209916762989173787095669485841974553018921617105419082344625166525258594992411065206911844056029423498332525835913656132154618955007486443471705021908562893865152062675371960074840586984915358129719114582408119418372231481808608339468469486606315746641105498039004483116607196228515288744171246329124735249215958625706259370956023800873663765721321956886964285576421693947163196395439783325083666606284167586796256822581887722027614710533506514547188599313364395687313901170924711926603785151943091940788125526305728538491072124467224533238110525602184213256554342926357106907561169882269065896988775117448547090092864675415313854809072935779392011317543703640327174003200668478998699644541117949716517798139472607651186628635650532198184608060437968634434471468369730635822230576800452513332465279493021904650392418712420420910210418276353697114322643486700827110242797943551733587618907114282692634165273555786073149313193198037797448081778312965095112593996384026232081141778415669539344168175624566100792398761226417620093772088625801365339496100905971881125395007698195353346788829350867492451336964619991220552299982383656287072424623414596404840121543862157627708975842685138757314162051413953261628209733699118767205570427886189736281671605846881142833702810064558416464068834706265626574229941470349464513136117437828551590326302779343007225514921144889789492643342911923864054330537340747244790403062367963380691371330655144295276067663670442731047210359579376370338999717272962256427261925999907668804067220998906354188129501998987411515680959703946500638531375854090389794502806677950189309266183755789043719738460252981813396559820286544386619545968754384295219032017998828589169830680420269817823549164737944643606793106534185157073386732033616609379059535732310942808759908285240610338179121710644177503681181967478799925986346191676736253012396523096176956100733934128076174166968705149618672585829125185505554557457561357130695253731292992326605395764285528050228447932565654300694900351088937797269230496883496794234451925853613443885929477926940159777714837888949556643129536404060252924508336061365173213793321938038383270658666734058555100192494482335498569825841374823769056146688975619977286037589216993512908146387755425806979726939788383907309204817461886375732524674397595097670929860934060513569616775526728084232748990362003611152693612826494086160554557135781173871101575282350267874152153760551120355605310228674339814236472920421129598545236123699717767183420381813271188130762845114726381127675037073435573600783320531504822598980546224732228499076317316128425464956905844858271512513464651917079946069370158599584356943040597564082352409325402236537013969719698475489041202138732049444746490883641549729004314204803429543699433289746337960907773816635440373356310724235651465431324966799543777122202285016915345970556410829771844370275624325007866242870927968841954939187057532412045191107991312633859427162897992450392971373417384802185394629522543805870268905334980562395819261201589859313014475050904446323488151293892550520788326282368833140020647099978175634916860363822779920291623992629120208191645331511043761707069292695237769976212598023904508341821797887341213040168734435118708665287061024879864869602734523829937939675677315241220557264673760196770228625916370003264198054453614611163580949208536668410369199792226342313119545658178823932181594033307717090314837480557922490848405817919387160847879661876770696581405523172066040490888261276220429531408827682513467685761819021418376450033847869482789518253560420876168856830966998510198212439379112446321931797768105123107024810978699743835534604868270321031403953257970600457409685141691639141825153840742018212796925631934760960109605845749759493103783340597198331258991256797188672782891078879636284039244757010143044800753392266273814744074963341397464123357685497240859647995641404604272190279608651093537303996881758531355389818756380048095717338673960032036549257944227934016863183962344406300108724195964280881580471601805821234154633156829498071587763127210722059392288618272431791415687480950817535587087922325207797917445939983217630481208060520764865616411494238863470076950722923644111758712672902182675610570361253074611230262904479040316951244818561272440247122794631073589992128454450013030464809998368022595228811708695824102512299531226344403529335404921684472785977201758687234149733261707103474168955412112874356047167616792765178222549923670499793284311468133175758425743866999192279820260958981619060431974016180174229374381810670971331179316594520175714091685406686261342705281508583400422674811425686720527576905629397974991718632581930539630877230739689523199621178744996652552520720672371914346515466338965136750830613166387654888735280886345001980517530171995939745022781503711366518346925577007745214657771230572156973992594213254397939203170113274319004716894322354588295416575505476372868160142305932384975168153838612903684273453350200171675732771366000210130269400874511732553443568316158726328683147589675857674660114998960379980640982454854231235576033171279841891001004928892173612135708771071574195364204917028569461683428329550335862517605791932864140463340897675374371109369647495978639662386766842463657460533303563877805626414406806255390866392370387763947985633445317895607434758573389662695528436944753667996213629754634007727707227708744300560349977495270460506479461770161147784772954077742380783607705000765345450828174974651533332911323851886994560751653075948508650700013221056213960513352026512653728661521744657437400029283544883630234540286099274695962101409458420557989506299056192744647776988060343886793337614126903821182300449285932044375909541270841746358492781137446474648119026214833013331123174779976882418583849864701341822112932745823416791193420219497962563577718587256419746712240401333384318262448005605201687774424881189229155807286233369134366227938660699740431225394064421936425686323083094362535718394585000888526672115086515106288650808833281897639931564719969279321122008772543732217418808622371689776527351851281565467870291590691452428734410433315947692942824623276387163988109521799373568015370445669569764700959216892374277443326117349844227194905777221351644955775183947157879034393937523155289850722511569115051723567681328394437528926744072995874727190345489398029201379101222729043051146935254162029340877072072060380167379324818230294367420070181668603069972548858936215513113559838796830658197613713362294166526655879507519865059823750928188555345246840917261255561799040866266055380038509253909134120854272567581574129307867137354585860694131027910871079191092731466734524743792981921262899563720203418545075191848924011951044405583998772643751376943412075416754431502487008923774885867444995472447413182363349691864456549220764981027673918501620599017791662369577120000475087985426751005555036782462726766682868784786118118611926682109297800198949802315504184663006102849443886304182695038326837261239254829053866859046617164047648670095072959372955577057859213565813667531280033736836155476543919170469282975006817584043664321402389360688743041010222250047756997715891643477758410284766123775325987315952951651664589111187137300993130168291569403693268100361285827951490739786535645848086947600376534673332083475666033084001117405275409323713374224148998977888162149582177285896032798944190368802966872004583681974703157478397146960176751368922920344868270722971213061222833307249248552242471027604300260328803172043036774138602659220667059934008262181198202675860588688194752770039027081163775859858646115606694427268603612855386907577518704986817398447412528654340232474467554813461622030544029872885275424160285946716376418453028764520128955620070997723640734161154518015685894662824664430647900635579466039359944067916845504981145737036107689856760436996300329120826181856285528718270381817154452964206749229658919330857454601311951203862503697987133465694521748991843541386481700683521161511335141868954394463474271634106546896699708290920417245407998194458069110942558949711722739254299018424095841969641712854194179558019834674248223560151082003093297908858288660995686733943064526818624092333195464854110632032961924576711609548927521681663790265541227351288924448916162483559687625676912973473791764654694642247637517972660583590647258674981976917205254079704695325390372610541490991473367262694796391066318946770817345627763320139999425588122703618731476594287241655952511743249885319503932164805318354044397355290376604262639076865997270236367169843883175992056957613353642394956819504017753501071264760986654689339765367962931059667378865085075484423699165773908048537880764498347576685883453639106726550935009517575195095510598114372781069357614409018783489402075100477547285545544040700049395675699453129903913735045082307794205144545145795018600898656077828437755635892028166637982431528890515551965276726995176481654498372178648333686373662269075932845407883063184251568413508407824583102563121301438033534123811441672551379963140006313553888740081301393291662091039298150802769448438227209398191758720557204311927135460479174381866754061566621981565999797382208570846632904317600600353569621765489364510765639919925662091298002663707884565124601710562714403770109918165475437022944578599636127413752375184940013045872469829905049760470169148023036151498401106560252366864866337915996408393181858064433541300856274495082957696119681628688907460181617632119302769043811806932406877910391782548079839039194760816275144429706631732566732949731035946131630830950254968333375241365765753676696161508530865729491695810627832691492983679747941908913409307066664490874454712714350548230115617804904730601343346362370096864918662100745599216511170546581304291511117099674391552000511465171334519364999263794081670775195953049873900183428258206034340184526123492431711773272233397704583549364416261176591763571549895260100407451789694101219260488714915576851236422164423767103558803119531557007089194678529221905920232027414575870432622408114159485805886021519404737399443969046057505234195580425157280949734374610707237827494477119969058609809565507096053513308978155892961299148402838128498860356893892289346926053914859403966487580027653047633467070524124598644406011356414795067139031547362860414633343650396548535933203901002648342289965841999449695952211526884574450524667121691096150929116892003877488188301204220070062740966875190494438215678336230761129268961768470241355399762912177621751980202767102434068493377977790088711619142939363996797207553967702970316443838365220182114945587241264356535608812887245193193637201052915230802782730607342133153287442820563962200156747981385758235780507024304930961323849557566530105283170335528702296219712353553901482940259843363462246462736040213217399805689568284299684394078528141099445074651393474364640925348047866418670336314053102970153601486075567518399871982179570919131409956047735181773340776398452805760656484074166548872198864934908074648295642729463360577305717071897198721221757353732896509824230241927810934865683948547522434495879900581841614595274966596576652582661766988293021475001013931148320992070970308051663831770862781874261756674500484123776933519284879079663261779787804970993249688432547300585262150677146406053378592104197199112162707041162990544219486221917846892801383173125844912804309244601293811910229055849675538276993197303490604589186983083237738975867482089774930115602350823780377898018161591441835079686598049930299543149116390349149359495205359918839781857703746603723501186316354094379126200779997257530892218128915400247496257263302088363131464996170619584096389304972580493296464653884854464435551158056344269504055048170050005208851291994316838328757133379567145885769384624352452209900385682398548111285313541892919365691828054701030556026591530383206355613839938022524303163473089570966953423081835321018052603052868793135132854361788415994733738092526956436146882135243630368059167961461030614306716504331333056674903457431813612072700929428737710309162628716238133591434171151794317889976120315998349703567643801765042258806221046088993414020046576195627686177387361113884026497618161442424815648427953812553564632181860347463154939803494160402217985465895549122984453779758179025776240756130348425934988993418092907862987778396596282305218446112942000521777067999134758835888027466959583506324116234290952671262685663807539765098763911043151260779555496362828182926167919570432767258921394074238108998426180819638079717699624870729142498946578345479834543073989132841109229899798024273886996605640243529049560944101399260685951442698339325658002833538156679517155759966662352881051397036366045832212016377630627614299829751096904021517731286824533620231042709529581118467776451836116817095690175060351112562660022713258507500892438433634876456970595291067985219888651449013171573755022005913770500720456513145170897497590003408564785643041762754880193752325380266462412477416937143916491601771119295466466902681793396820782600369237663291436069812827416617253549986860258925270459436474787645971371146744903198972935471348702584503144443946820747992918124990431255106729769319244887828281346452313423981741982031748531781003442453387812244664740392707091536790225501202729534464374927025664025935875115404118401581843954101510449498361855881223900076789354959594535437537432122803181908757017274886746791395985826365860997185583832576557849437031014811821822572957735652710549046750042617461236139046476581036252766286440796335542836962501241135537792138858622683559742967334984720128954937894067059308583284878035605492880128585145602545173855027747847581339326053563303227568059628332717935878072626250951697737276938062479611054612580931195879424687885858550906860940243445619930169233432988752005486726160622765906617168484372238174321249707301191892650496824957444870462804716099519104260721129548887939027143470020416714601911596468218080877205468952998054437091627802363269345176523295033888764024293129298519954367986105867451540356179227976180080906409050241582056358242429121206481720031067896671654512153792360891455560276604192730299820386651135694628545824252256826336702907123604640926418219078987283939307371600677626595066565339910733367136956958528186028192316168906118229517207155955215246531869940861635618271964065051048494200175027159055214582738234994546464634733157711858910959096884254077037072925910461449784521487843058588413167805457510087780858669650602761435483535438338991933238864222570692011995719120289503502477446304704432391895783030335176040757096737670067235488959301329593267519628550779815919375270735994598244576250304828088731719960955328130810332708942221473147615732423703553047057138763303647906732612434269130241028807676252473783181916704318989227424921160152947027384430867572804031075313296701521126282207521087649799902358386541437474136789847844465822872695743923858486067278250597423389818651542886232802310295638990387685889749608174221812935208937575374042865627541819389603238043930775931379188610512058700647006931943372283798165352548984700834849975685059980439669411271706806057306804349549847610137525746517918357953926149258919915028958698939944174178043538850669495853923921924933572952833069414229386337290281922897393116940859023398842285145857583807030066056911271094765270372303391110158916632715172050423836561314745817879936689693835432294903582111570444787233043016115667672506406111015237942156341336028787148107538012923428981627546585167193778453688516300164832060356598594315828229573625293846279436559687401382057287566645249052069528821825448108235617628184967205896709381193795664788464868410116692939588460522889534367830227780761465646336832860305498704301544328475853620991545984739062619627109613028377451329638589313121324310555367081626299182737498199587046435942310419432117157937461605048657340203644266255890033258370918942582028714351529035960386537167592530666494180932481648660391575471994306217929366130415523491877472941245561007207617359510107839697695731354402805816958848219791874162101956150565519563255194670212556718309906006633158923028514384727414212689683734870381351892111480490034235920918850800845119012280277178538895244559128384673728707803551232881555632985089240515225026752870018379133797712392334341579685802706594492518340323483611565068013160877549832545181079620099528701347660534408847947790814634425464323740344427194794504032544739965278019166293667465661473266784438875434508427357491730113700852546383201324381631990597394171985613204802769552645614440538028844084734053164992182140897488431105753721344587387935910830294446650531584067749309536899664060341587752973316807605225059229169876535961756723524463604880528169523626814719715254632064387459649210716270363739675847904222746729876252313685281517210463537811596640143313171466704457287954776817067713321904461185392976801105646708498651127149507537896796049759850788083202984878546623994618737776561468392313888821599199305821810386713254440130653271529645308783112413166940694904262365251886974278208147223115783550261042148394807398180376931795494898517497900476464907800963058429654662218921279329438730802352000981652021355017974866186585721776128980270794843350837684674874057033213665838788663946109104803255113196773121055834800787954276826283717843991530620972572770781831802700943183231306068706128721710528789945393950374819506189457989352491752539024607331147457575028418682580355730939665826153894777360998826479819090152304733004634017542220911327389980617506998093006939235433950185513344220957675328771932125841810491704493270321870931077735781817664646649295845780020873849807094153906931392696348494558432697632260827339029477419298215798349615898057374825379532979316963460319843919261757147997591991236538258911539336147433254694897941724354197833144283197850266430965910814516297704707521808372104685502471480782340164784306702980320461040568676135380766669469409851843042094905054336308454351325483462063321868920595081971909275640369986009098582921799446974393901553620361836147070672952669183075575758891501578741293902966261620592196598740632938727247570738960437263374207513865928532850470876850061314375013803025932970586977750456431943923354454834816878984736471783047608972170259823881300977870422122516333294889203738297683214342782040619285386146748613700862083958168390731530579177388150174885532087403916908440410062006353246179324584341858220671391317791559735967382899754386619516101745868481489359440201287298392182249730818681624524322058308180122191483763765645646685041399063903713955368746018976644290039661494272786611162429633557635599929514019049880797142244859342479620179034382475250856515195392967477638438186366912118860512715641651576724300905098812787214129773871670350420963615330705781800563219214708168167715196940470000639236745862001439130252315582837414228645816817173711111426079100399214089225497984454934731242788859075062117101854046944053361801997994442383083016608379539866636834602821724316507839515134842640806004123785191485408052729557396028741292978807867713651297577514560325579913408785856728447968895995037404435613110148339780449272119851933449420571435665356728326880981591380395054721704244548920288205859668497208012609221388248994433564714879172789703389127332383165119045900824218266943941583174932852391485870360755685740842300594226412569189941090455575360911107903747004986648082267086379966296749504833678461149868802064803079793185790788272556933282816727250168780933068125597387617805050915624058089351524008706062730020589121890184289026137720547457566807974561544948272629221177730371571080507679193830499072059070257198782059967784862885098696276093790434158283241674621161751077925071170598459573769310282573769390088141657566543164454566523599771038528649607494394232752878646896681038625100298085069236234298257511054487243834708838509556100644088271560907305846545020706858809548035220654408216172957479610182356773809011888885238615378197595709315720026483883619106364911677477178891113569399531546638821305680405750910983948044113245285071308445223118492275870696591028931992209424106221115307325959718299275152685400031296102642423121247406359990591479534993084279389318924470822964800037092923729534404095071449330730778451639772905299287605712457251487329856785118782559462256015401927325525351347663977280628824881507895544874914787845007055028642681591197021243618375227448603772083012186711582842055522853829159009950127278000610065826901376760131981138479468792268885557848455642685304612407439934758783024186173576019912128915216002628163770475733805045365081860604474704885825908317239093008850515581146237630778176819536815411742642768521443930014300435574505319762905920472194326373517535611190562923097068945897879930656298575056540624549713840866253591727862877911793174991003293749084129688174855072681830957898999920256713621491115036981357108551081551452740142876508974154707930225500360789381663344634069339179424712826276901280627901463181490783031762602956707087010528557525423247358460013919343289990095005973932358363509253158213487791928277183059079570114802670630524875723642729840889978738062265487618869533974886104611595443280674668117565277984050429993170674993375061752629953093230379434833529029098415094992996092687542627558854397539123716726121665508802683548367396681388037443491520192569627103860854830854678063835333704338334746215700741664468072642163899930989562317320584184711257539314505379347586420616540388033804905566707214582688774510286080691935915677861336963190777883389111656120441533356883311503333979171207841259167770436564581772538466251848529625856548910386435443178073216482780301138825980269853273251312369103601145072887126338028741333564770308931847761498653848730725384687808716967654074171299897655310445901702850610628428815612955261633395577386109424939634504964551581767681784341700327658075499147652741328942176348694605737293344793366753839853293576858960071907335497440740898002319307407153419884141081944684645165164161600446092348135846988920060324270586420099018971149460555967433530369766712780644781913574722599628802583044847053091495162104352477271334489466177333950265075083370023417731059496573232244560402459077774139662245450213808114643790893672552442800207339419747788278235463447332169578792112839893481910961992966956755410047645277232466865064572404634838376606631253483873931906094676910832625224740260032774176498524266095157471418512669677211807206608068144605485870428407203981459462282148474008963792315472855096665817539605546781371894776709539871715359890250011718869924470765914672467776313328979016438261128403302293899466911292237363505972154821601082788502851373009512625617355390636547922550735541528824837998825327089545424391347148560876642751584985789575509494519221145453314576478200089557814418010579492658800973080889627488727912997544043368128685864604739559880971833595124899754033647846211955082827526622880384975514150597740477958335929638249963041864915735306191416402834846526961248409018135134938630670027533791803222978249249435274951963408249884112086787676298424654855052120840431660547440127287551507037556101959811809775918432767965648317707704380108121351609515060207608713307304551656632572775383172709923530039832073575228536873640310584015557489965557254067674518176250893356632441600225649905409984086809236929345036263067795057486984973098854263559549926248440624372951903509496874975167317308087332573840993842639406374075613660314439140423565330830878569021913631885598530969482341216693716586536078527806497486298139753579711871674648739720684343956730234374816588295704384985934580911835344422780842727141430315845657722262812435418296756197121202596210525966147417505500162007221765973558967050595689556639351221249464648535657263231380723666375736387751704131408237790413149276589404027923945901204751760926644874488299406062500648721817622420455105515081160442789317469269519218137547288804758865055097446405642535958589118391231387396409546585927277705207014664549660372039532831086262499096168207605463412648050955875721442662767582367335783743157897940882527429515586005709506459521384190412115589889524510338028863438739410700944661157793825667236341676911174910296216225215990297797096334556648925221467799816990439338971401691836806167820842077045469180005604780599046932036919214586912000706694499638119838645682571304541284000454943387813153119217942590760064017768397581990190498911266744688694430612089024174064456197471562614828798659960198757334539050240045399208850052660270354855830480993469753041308842562540963957318027907273428093658949332327733056771451636437944149043376103850673111635980649540873014609194693869848042376181428306241787965851085074942882274912666327049315150906817746629650519895922208208133813723176084293601510987180605201321869722423558830705092903190390263650428665035197741074995405263109501787532034754007527184647046474688187068291052998452024456033488830168007331627948656149695565110092591427482339676836634017730498042271560055685851688554486074007657549825711308902555430290599973031064629759382004031458177203042804292440825769826951365895986113086320601967516761828671205820619693824306954715299370445313805279215245887742073489043718349007814260200216671318198704592079782070296070183760945328323610210291233982575108530018417616300174583206598343163893563662114820078319678831349671868328758524492489982042508436950660783811503266012901011157419710710447469883926662660990619720680384339419094628534234372403154482906766714244894011982370545832173693598380429316080529285907912106687311256048706545837923005418646754387675943008692220025786472079374215032628187280117654845348989002184282010989632160494921349002761549331462488835132719576053630527697244678397071280432960169201989537885722261618712166488020295042642175819552210834887480135268400389446740598068561301200924295706670950498471585276272323759489863092355054237212592330665731604191233151620010625462571077766424867538748194917485717264747540696023530041773139733897866628037260580903705388506711497854477611310203217047788222533615389390293612229390069404493849374870483456580620102810140714933497291593791415175861094954463195198758588236990696614976465274373738928400793494217468307989429914619999962608485266587017120444594864928539724390001832610748431560905543052408143712519425010158876564327855898941072436016037604336759816525760088769700866666455460576908694047512549919422019520080493471096102434471449142844324611574674668102104369008059358711682489130772608142251530426314601254627754909953954236176895980652625120031394525131634906329066762380539939251621309940406138354604106264749583797073355930919375103129108370054772357878783826209652302252159750408156460138809409574383206477097410114801433316107173908889408920580580938296839333803573603236823379905153495692220866461956938241786060145659142037028721041052427188792352264958384005793712282772738451590913387200995600919086759986440120196632909269369049510403714136680387438051032771738684240868856758028978827566816577366155759732464736540092994361666628022850865306251435453116408771962929351700413009622214552487511864557156668976036338213030070685864910631113022143817306821534743761630236570580316421430790134307149471002599777384147417046976681251728502477637091627706806901590075561400698136898856687274952030235474715477764389168306617464659534589849711667911916267657647062887891603936359987619750819442270919914502106378243032960536424578923368555122285457546330288111021965208123810190642721486529626443198151738746021710383337575647374740167289954118769474087536908041405744670306399245793020825965934767665338650073883367243370930444917705823665609970417943333708120245733812486355158658488901491794101959687568071580007010374283750591696515163701778711452796594398295762439853621619197054717187223181087080552777388803889982100154097760771838045756040123286987980281216191145154424156335321637148447504312439993091081008688443820807541295599769850177380369228141138530824956750811170608279996922787709308762556607598973606410467452635550106788415919396834921895406778355555463829025319855790526742973208088264810627241167501812039239858830809741174099152851936709464170571351692020287367493250459484094629427336123386297887944554588929920368068791779524981543866945311008453328692622628734993203846281285035430447042136766933324617958008336799961716165722581684019069794045504799369856266900208264154964914705478018288438603048993920978953960165549810604121577172436272805977068914512531374290837369121474361743614439560365992698168174870028792121281192511421122395574025202112384002822022830034523126365285399617482715261735268584298561627401761030347724090914324905465955502423980530287074672632533650793658724039568561246898275123763499897547975121186886908022156475012235832516781692728804198883378006798890791388758280784211965050692250558584607641058645609260513185592028924388809575554510644275730891388688802079561833412750436693773950514806039258080578035637347294610643012660450040971115665204775937261295616441050484837528498848501032162987485007741187616036488802280813876445224736053999314360987560044109148079248563467529394454842638669586631684221642010001879814867352065876311153037254917057772932698035772309416418203659235484699231674811023983113938884651042884914329945422555424975050561138520808986694249587310160947818460932223057499109040890732056529237766493566869228435110947581775887122113431499026321014406284279178096168133299366089784910396555802657651596277013940510309294453711980123162829164218788755802501414561662231915183791659985343319710841618033594570458231543850898912677091811868324106760008971108042960937967390834298659994303985361906365063799029078185759018208617779080698590501973627875342945776585158993969487265518573235933869515420060712279535184426724270691635371017298840565698121442113571672544718398200890713791754810789071441803638674427117650482050862203052299972660695489535923696136552753848655076432124659172167812945001294535104319914889626175791830689433232191927193111779159473333072304327044015315388516345411054861860655500632227745534712742203122554507176105537078023805967378771415671973968468951668653699497787128854300386777942982298412316288110026449091469094641003129734026518044602003066099596261845524853596523200138707261972381425919620347400857344573139872483007146953880910816283326755814506444025044345071150554396472398844780462206678205963094189451778430241353830741379692697061787531674677338934711308534170937001996419689904926854499349841714223102709975632716552833915144793315207322291867419662547895803934035353403642388458279169588361664708323124749739370842510343019203543841234356553999883342236449851962767070763496919914577176453094071742740573720800625194952849501476535868548334454725389368722274881011187656521380702517543687120218843235877668936002018306273904023681513891229514994954281185084443094416021554555240702049068263569759555330890982484932294046615486049832729194074558104715813167321281059441235023444360575730668146593529770098593355944022419922197441056494093971206162103242658131227985565123281675794334111014607279635989798417906115318371316656170264930736076278947500308948674364045870600629008805835300072446728810999316396718352985702783238160852890543388313475765789652392417745599327047407112108705674780599047618200780441904021321199803502573346727908165705958376746268636726678897714858266585285645426732282533292543792155558155255407998478201889144330283232558498974346097209498790761516617315542293719003054634495941300021366824867442223630205884100500670106087607492085729925501307310723987296340344377552097414660471468780596012325403335156606104016254015848723344153423860371273357519058140324048552427824839515033395092281175327103502434627563468189458733840463685943661872786933693743647281206560183107875840114186557040246938503242135044526240170935361744438171894514138223175462480475118898329889287508043507804846467834226892110106554986354581869209502047285690790325851231468405391739650011712724969371762566347691836061717501604197598229889916032920217143207063906250093720123209139241125535268023004045562512191434915952443910643696142056069970933721360746083412480289585402801302778037503197690088402574289510649375765237010698677464592563886698066075597321885886570291651511743978746228882067687014065746081789884022751195300478808223895192935031988619751148871415679494350918670604914895181209129513494900175448327348404869188180033101607681044658554319916711683300599788923347605830403266317385086929479886139906274400839171288454057342036726308063925076660235745185303028607047478916799865329309442048011390756239351028878744108307209723369392757121869498415986517842200002792693852740011615342022743638059021893588852273852096830610579989742928912133094029151378999589278449369502126820066470791679326454479299207405195997537777004648038751684026080753290466902377485229486042382000247930588864654947887989260158717086000414852751821054153939074887616220559909736753058981534702735570442342634772517302039039453528868534767652135962125350771134537217834812182627745182277885926587542438468209262790397257964676480911585636772494997503153747419227753809227703594564511023012573333819681049169918202876954297580049074655448007413844590040325651199078604718254340036987142788068626576197222263070399964470404554180630367640270216682775344161413808654507919912464692617401717681977110342449152469157263911741154647755002226109606303994277912936106497866499652597197474535050847212569472400487556526739847009126163326044325572780910590244826695891869038425114569318321452316194047811364150580653584123423714446592291985364785826543417589298355908792908306084559955326426818445135260917447328405661010194570157594190711859550520843564792882121361673093523123800115220327740436642829417450589638612852308010173413040151289344666105513412971649029737522883717448569403129313727987328784231337930071291876121613106816832470356057915653947457559778101396034309211041169855388334264530727673012276516342031906621451137806026212248464734628485646787098870317672975820556971472592614557761368146183639825404499465173429149612329306349830386963400776262496149912881474020308290684096378889003663458296337178985175064662254633598718339093178136192003956203052627395653756001677488894884525308309783116697945436655149914790188236739135964717867201230336327471103293280305232548050087079524609208565776698868722517404374928394837143952205176569835876430720399909006922991734408193624638551313640786962559590309688492603045150456772937858009085054562176420464675032836030478271480751200148047072037896343264089636434776647597551254710343269274862805361648624170627152054593532172181492276557185801824729610747221144826028516447844914289093514216219014335154366928436534328395925151650669333469556502971548394427320337926265237335049063230875869223252364250387513303798945521419706819733149216453701242388903952879339784083292434395618639283684943974669159014008873565136741076570952274801490979407301223680898612019354815826329610988868765464422859376819479855193439223106887948773062344170206577210873253890069739724578960838131121453796787837978880956294283111751146021390764165050382142104830794818093319460343562594039231264207125199312294633264050986062509799460161339470568467096345823967414358841449110545254424275677505577822393079122830946189362139702531232412223622072739076765142490599767787326435524156655205217631703854015931518565291008803995500865580775703033840669334334426974797157703898657691995701330618158262548311172685055148046339480240491561104240965200207398239969131718820462605836084781687425942801689739416349109192493476365627357089809834647880539044457871471171717931141115114377497580643700289354320581207499022029381837515343844453635360306310432283890701336559622807518759525326898447790125431090431047068875932609539765175390381790541723287346704252331289717953725939193219240567943341051795646752948920772262395563301125332293489509624743959613735576630630466659138481413385730022527317359748194928983409064786307373975649376930167240794227671539659857202826595111532597352572736155126431417943737619363086445571952181905639194249676944570206013351625477668144902866683206374859606310119187848628357244891780381954836319283752972466246666419551448763934572552642976057724635278902807148268376130366183964543034679795600291823915520599627049658679293511842127183583156566186638674553798194841407265837695398519847570098750656752369225860501688348448136881471748890933611397696725406690510170178224580151719292902126822506740117334392753620046928971913274431994845295265405108526586456101032140112314793735253870594110147292163646880001659270505482627538945073638193952230214046594311877174487764038460112314811295351293085982711658459571660624522363717920960723656934369249419576357812468775090518101855985387329647248169379335693240777148042695837952777482782500192796116005050510625362015168428204168801375846341921354391906713754735681369495984354971597097861047008114588272302528098650319484267339415677952408945185972000666940412586198938998863279487642004601718397088084643156594927961928586944052555863264396439929899591321555717732517658434869454361768091440992305417742651135187105417775575541052194307034813541361281875178869522983341658808617256788126921159678075058880029614176367349371707039068307041667980613332374801028364049265300146516280092576798346001841027718550715018331755586087584144022161099957155412758413050378783655103892898838558262265866895680804642262890140479886504507767867171554935011382135167996439308556182712730138091499659341884592563087166074814757083489827623411670302101251208412084350856064569776355152272357632877009339262285534794757595612203963046156311216029129153883819208944360433273409065974132577759182849209792789292801883849738007111520592446212285254521190664291566686291336683533088308411314237509402717246800930872312685485473843366786789010316038179834956570209619377479111507170583700020616384990841117167055096612933112788951712464329809725319508323060220036308292134797790153114935749515668823542459940696291894387681168900211173537622084500414436284246534285244082993961020493618257841140334713832863431953139402089482140031934003184317259816869254581508053996104141943247257067968296127292353806026811603060518954283054727258426770698827665076618089052110999327809547791513695801254612101114643503987148679429032894919910975152754195463229595119220272023894427205832513453966842782222780415447545876854381220597045097507053215021646145775090773932077174304738794042646567847049854146124164004520077836123823070726163717599849313968343854237858774677250872080489634650407052238395420563289799359065649524705234988575941501468506392999812762690653955168097741468423012806084772107083381575256655968034936496368998575574775415329044473178936688854176590445606247174289645991277453773158205344856434284551294638344844878427887987260934509928263988973708620869013607924509625826366735167521088083479557908604682539823037065278967492578748375615450792802190698030666649379357835876937006977691867722637823808092187065500966565478386166848788397536025310266092539176226450874246580249347106697401132031534628150900039484494488989925299859811135577227487021840432608658348968379740061178359663157280362675223356647777175641272340515719612197840613289383928178814577336199009194663662303183179143810287572556912800128633092051425475720509175376193020351223191614548971649327582762331745745555460374678401496409789498628092199353812087022040097610213431841048884254983682701091720008891407346779635242787310449448155985849219544792401041196136268589021012741083953055847959691202026884635644460819386600750245603172102934743726395157060292542305108302016725092732854434044915153396901748440920498550223447767691887725035278159907854314684028394051756571125333633736871963164564295285786722140460432299078117454554789037376351320795396751342320818128278874696372783660286189660276424234653054915352087305591274634173995028508789518402717932579617815244852330629022419166352986995133602708927571863463347136485695900436251467822160377997139894420255157348666506863923074488327991081311366861191033098542962529195079812477269453916808924402506380398979484582870653792897136971167759111723347474288320285247261837535728192322713276920243801070110443283475693390427100443073793771766884399384581915777562677295209621467323344177129875328085557550202262565921639084109462213367070940326270444178401864806596888713897139834675593704772272231110347948504503942901182914958365609967150246111199806957336675049986682336645868228669131348807306778450360557035139739079148115635684098314013862253341269448236828668139202355268535075254829586761562968777039112182575001176099187674084423087257402004795192315325414941026254946939616394853315563303311083380105190776470333751678262328791358901184164540290432845330591500784826253854101982664042211628321180387814455852061456638020824657070994877019478890943111485145840789260786277699929854213767463493913184746640120634593556344024171328572249977521185904536211836618259740990633655566200657041225043428574665415106764913734627528536655309718420813406816157150283919229629297523633741440627828834600847704706767920315042108779734750579188322379808481641169820628942974731612655814287425276942156845790604330612226534305511404308371197454878236712311847293506026774174865438675969334712969830230847741648214662881027613332239556842676204040082987749301611603186549052655852710474012773847556554934311193351913711725177663870450783283395325873857497734963333101799216546675285549536236606542530467943752001042603122007600752349898371043412288015548499734363753153886077167443528914859631128738955701987214805335653954871196638452761073033890013727848308782505813269666759568391927371201629357425378234025255737687710459020071480520026928141089682846973499113446675422248261904025334789434791718551276639598899329766841913328938140826567843590692802911273017821756147861900925319945899729624003897205661115841536619217178495187849760471794287122930854289470748755357699321488050161733239707193591893125745927456755550956551954343816454427656642465003890231944919745825571421142243603867883443486311721718399206479487793652633538151615264104521333944804248515684512968731155257447068813538043487741229238754369828790269959537052782248222390689068007745702273277191470171804546467189869171340769145738249444375046940162670585086191979469199204151960232864308899733727084469776693661595424589515861670450469512241899171803288831572568753686503980049833061702864647616680847161923880532476607150069482449577588628933502922501936483381518186717374932142078543938945872217718930336227067339699724538525396102012201594983781835790428030617107727108181839275438300054367330429870767082977715525633175710367817796793476592086736779903772566214378680558211319206383256884838133630680058122587344889299051387723126228214752778527324386088911730393529448468445766462582744179261623709899334957814448720251999023844414179949544268706307658293974470120164845111807541336879395114205465989356364322639653160538043820657507332199986909601780604024791829585072896494499526676794733758362073483021759372345743270633381781088974978200491870535357422387687554486498426882630988254127221454623744967312422607876643690911492902024313727905518303315226210386721087437556357124403487098147173600025221946162261866712344694062517613831756829483542387068467921551327758397391628735162103500954653676149625484098114119539495236636417128405061178750899350624707273308689648243184521550616962702901851282986550112623559010776224047693405314721742687027339929962365095985003507908124073955859330573127930107999303092776646360802294466146647866116648835686120319424979162437458621863130292066481781974570063448031917634360241554794358049602807496197603145073711703732308584127411879918170587448278138980222330206799295563520953818731038506747375491101254449646705112465949473774224140864092582764215485518249384889234646292811781636203740704488104932224294405432073325461830586748726230312938714002456571539352413656338612804239744060054286051963731059561144776122832379939441598762005246588089256478517235191217087120281560684453040557194702298330663432320322821973411319125261892479153856728742488857881620206918870586465007619062522556208146147550971050828936730717481770765941733575374865562138587168219283036157575686626655575429143561492284616939887749847915151981225888541595210094515427365185862081135065698788695781072539698372315566027246715885886864681972294220286605549751635755707967170573184638505191570686261875198929285642312427949380655126207797612132727050663562996303807956032432471625141655456827844442111056607099776376167237712721040040422451590326133679267893226355733654848239782031606247705992961038683098935344631712176836178799714092446081164124588129132915093416302875235699593679047776340747758920108491854491432366940292944737783345704155382432392029269219138904724629675188273819512473260593435816799281769961408525402916824788697377138500674355762835974036597512121663991523375961307914198027696260412836147039212595925301897508520612007336452496843079497816423644327208388586612366310389983057664300403844465544231707279079403678963444237499717605821633695938355056790251541135899489759917635508710346271601844574693945492885530640266253355225568378424165235895505639657246017417518676895160169358733849382760041226423247138670459233429567295172114939109810461956437077492019359327466725680877921517286980969098183271560952072121663786548880878599450939139588278924148606368984776571296237589214862805679342516984680683944105350527677570344607244447065083236352702805205390602560018998066325384819645911488556487432597856391191098671401210191459078771666809990238266425277198705728893483477012331309991876105723151040105013286894603828122163586500778229157175285304031378812312408067199392048449021593453123948910202001533722753993450777310399774052978448775767609980136377206609047603392121735756463318830440273955065733446287189582617642478792481741244588183711348436593211016256984590703491998429914567702969115300756631071288454288117722919007568038507183022533451945792236082291591781928013800297265636296789909435622042262445923408406553591019750755698092473340721550401977759737081082989274614512973830875743155983872103880593064176945074069490448861397661725652755393879990917753911560895891857886374859322940805419156516372378279964304628732961269030625150930356892051188266865457749554474700291973757377205960067866252610339259167699251353513349756126503573325957918294744552546851595739241547735473746284484473769847953966827175367212520553930647366179183485281382756143958055991245323765108099636706378846726765866942802837277227346756366648756769428586036968042971598575785120283124728756480900279307686741084644020967731793297274751276732607054806212935631612843028727975527517316688221078944736568286080381302976089263913776208542446395674698148846965857305651801009699455228244539554742123074179443566127908845516150549917453296137182842942980711623382825152527824744126646460165657874273482860733581014624202018682634373468696809466203080304969719211832302007367173040424505513821793313607537413870929674919557613536256973123763795234462789678847415188207600082140733752173085266611153723595643181239873732507793413276175218947711860016225072384992287646106540425926895380064442934858115913982929780890335867406313099220108138017314143651471804535932939878026456923635950679559733496898819037511130157411109536714845369840054439516284193383252898162557475817316697253442809763804120712376627536321184545303912094450647478985274992807464294902991978235418806112164264882274951544071503842645529871950860391405602216266835677046493663745477014134350616718396521791245704520176540556054415791350795248863448173913239588559371623569210929336890707343734130814320314619580542732512965907568387682841158863106110560516475103758210879063537094800389339912509833452624747066707031480528809533735097758297050559387036231714165288211688723343478727128610033730243374247973742623379824984470588466843790772118878371279079600498727838157951606261772776195008210229949872941560059949706619002474220797456659924103230637233863633986677311742700001449813181399859006329492557086292013098539033018911437525141443300963445976732362548796908345754080269775298180057140181976397874662807792388350483951993298873227676279764336187195627039400632162700852454890980557948230223389608577427666254009393313877545275669693077308752288119632383531919488321338832179117553172932755251677815616152572608721126762025147154925725822327753292225915106142848150036301405889852244952758520648310082810412445496053569604671897381452142636879584192103776884284309727452272178682650801826885877695421487437510582208024661542450727397634625384276706103096839562336632290344543642288768100228786639501347964313026990926533518093984311835932675645082844865034463138208763499290799795264780224722598444943222984528953704060010887728971738218568599845480167142350118308840736497848504761462047217300417868030011564714479251642148483154723453355468190387581364375411121959765761268102297866783570906271859027309529579421561070061852390147716141106795813293024645217738128653662197534533423883665333120676814800354898284647465364421275257281713672738258982525481699467317929139120745982041530893112106248161034902110240365348867382837261515450134051917137927408982949028115429415187796605163098487436296582635440071233353895686920460592136878522344913893905091838692430110866700420887453505414661586278628679199999826442431415571277207341433981234227785560690762075109804481029725574449915038388271792466350854645232400510360675580703581127236694445881793349464227010242992045292759742592457436687403000264222803369491902021529099256630374688481538794028919044883061105463396485236625928357897978089618828628235052054266128718392470871246092180945124073965590689215419626572496911306922147100173909719905302204075500200865328090976143230698227357178773118574712360391818871451972710270048697686360631133084298716966285135214698976897934855011545662987122762997995651244160867718420992150357500351413849856913677828309994676595706954700076889830923051328351715772415900614498010249550859238815707636618683161400896260194546398486085480828035705524042857398402199574712964512033702322428991843809159700325326729086279872828381680058430714216595414311139660267580335382116496309832294003626780155833254783101254509587400405119396806693563756983900853825386201722535264674988215469395572869642291567437009092591105036101167052189728001713885378019374437600120335888903714661328163434261708288240546632901901344070242096529693335450104984485497414897487116866014748934669335717760632173605997039887982439743721076163635693245868480577138915256752710481300045985380138214003776599599415707261551837967169459587874176532592259523786135822766638122722087642936160091162337790431718032855407625084685229420359213179710451323498547454210606744525448671536529508716011570314509392135218404160656770869256013652158971536993141332948459388742896500153542027355294536970886836517295345145627500872105547196301266947573607821734941027109620687344833187450735953023370808615505216884135301001122933001307960387731978482105506618457811934168712169652155937204059133338588318826717842610090753564624332945568819687140716399393245960736966576976411159382988726485788830835355057432275881715558414960854447347785308201260161096267421174076811165125361426166510385408392517474088417915963058370200689999413239147482150006593072759105607908531027648237958150233508293221054549987726815954727183217644995662275537407863925368464685725288824821781225289198166563093503674919507384722640258006981042168766298898166677014063382119348774562725093731400397200283095816934312701720568326099059824193168692609415072215044208479400325548357023227438786502392266197934417878981145716715127425715091059324761021705026106989037051144569290965075756760708952390393416980472193869816965587679127417559299799207919149992778639891763198720502133289829077305638147436232703517831636309163552628068871934057200399572571551618875650525568413767706415052300880329494533398632196853620925413646007589325249917414037647085891310300465728658264903021502361858763194286948187172749510173177281504283615041002586666729938968403727524734248364555442094779721418480580377596221449223994125552140004809764729649043442353939871830176265833291984407953066725212067144700123112658434809676324852878881727374575201044504407536177064403565287474050040104718391349684240520086438621590581323198756854781628483116024140191812252839190151230951413540779735879452182109719344936807953117092379323810098562856025026902180482379817616212992523002854515152770036232900794108870713672694441922396644562541390617552716986169636620172013976652515450004797773995707683360910928955150686342816947220798031065837954836106685905310719281564301794002663246999335688279985038588396347863203724009641380048342580364428770915306099646010446028713892623070938989449574376099172352566565490373347183063501417676429027850469569925730301408292601405391454787824331061582175316762581154720019433269722327389682238202723721757046928042300251876338241863628606390048017921118093218278670813157276042884643859312039521124227209966890656236129736499620647403320439613260799339885694602338300132571313334671502364230365603077185058309110161689548690966055666281806642091787487302836498031494374766681560742502391760820706992941151486350057686531290068121932299128498710073487397229543210636328499502010313260809041512611865126518534003476731054345713281683150950261154660571472724242729946526757830167363531447446680599431109286530300141399352525593947544672522461856470137743362839411632566455194740194672463666791736658456896373891085528065132794994915515702948182609400199437913308284909345654068136817885841254473814568611280594203513573381989227387230084483686841136340314463498467399057112689012275487664459910144472456706474062085017479985939011145531658883406969004547852767158582043444238714448020702383327965858499515975767141787787384669558174590907174620618614588603134964151213048492557318650991891416666242021712509518282812566886734305848129215603620624680517044413870128979414216738260443586700629510657851640075115994791325282654748092521941913224794579113240374212399198870990236772453512656125779057484245221734519380593939633406271962672487445956292689420406885815451819805992891352753178497335745807025387320201044610969246098819965490496123395542103685172457753851681049889155374631482931587196899491795304470392524530565883710115090486097416880014307364703175653852576104128744495335554442643074632881576951145351138637551176363743248682252898446030276890755913808138158283481721218700161327205083455503966452126846124693099958835195112602901409782956605800546064468777065629521437145557497753378816668206229076161764294255443595504609299158995790816374987746838912535036684628903806514241312394143556686334441059064797793728657025872024162963626280592897272951190885974736423598181416624910088724165625668611278643857246478580918894903396880506869066687208004750628280393391531213027106573143687714981499465112483307598249925790438249658581666009520969362693878617399739070649750202311969334273437729593640608218015290288333583353505437501158362482754991901970830494137052949751537917433816812692710572178410298213262299693398624244568959439041521860356958931259707756368094828365328919668016214771207920182657220561528522596074145244313257640279842303536583706197692479164157232683312306702462066210819618557735520395637757022359131390634547683950133918661703917105132195556678620732891856885202059070139974613134935730116592807753233309813705993872696741906662803340197422229282426425765983454030727864786097013494262918823938099727644458191710452096051402442503985040733288179606278175774007672180119421809129397536040940417959417634537164886475618276133994508171358870924870249356078287381168050324610124518603493922125396614014266440972331318012116448738962907182872923223597026539929334522220462203286605260464292424780633238258732247267214580366180941091333146534252369994903912837009792776593252557189955388397618266393756492582292486718487670834319250449389104022057020639739802956376353494991374569350918942833590061051587691885035870031826151516483219130411703737903204905700876100777716084576849554103036622453246029313940527160307501560341838303276874202616252860288265237459881373724170234452064418050777004312647646343214934213842015961123119166477994635758925065734870471384970041243852498981171104895261623067004596106100680289866928530084889627016899265937998722643165351179132158794936785288513801250782986409074365002599550410619812048880342708117756676866826765108840421000188114509555723983441805143937535157926732517402317058111943279958480677277349340891581043002418466751354566099359389867065797045742171834325864073926889301118630849889518994290021585444511621985305314091966075534771905843357361452181539011078438158494752828453320349968995669158948005368767778832105945014051980096363670931345709181013588752768747964280511908470854399324173096967729563382283632120166787306438416005840723938630169295782397756802646230654721501324149610745645548919953132545450214457727835414591598694231856607361966198307198768782603418772917943677569057026068792989404227531545372569820200947276384235938987686329259776999455061596848564088838257832016124461345722657115645341363755111562243835823395531724545677257752213559067398129977918717615163464352399923847221805555245754198503955408370949094090374847219497219203789542557947171785593297001523745198190258754168223002858441603031762805344859646639583839351454263829737104039693823485240800533547020031539057404158976702384650338554655514447881822623897929661447112910115486057675820325331403033524053909116249751432467981598582796351040744262239499594543604637243961278932576224825651742832791904547701955950775624997067489190198022170294501417277039601194224661689464336226181226606411079143407575412779635106864062382953116660949581935453399052883111185645889932076458603335110101550256470602703345967058647982250808308898351750289965509182184802686565265486442381505274702175186187170892498933569765861977648800673276852633861402269149150063182690215346123630069527071490610098840725900666728210612752704866876819226640701979916273118314718272563461894609070454262814509907313391076334521130920799941064704272338764649157960668511451941416518076712294363995342887777572756453680777385374088620809953516354188766788103846523025612815402842313740577076373707731017012810733429315144355790719286035359225717058575352516176594825028820330740025169742628461780563926047429144983443548832660784435611783084012689480911137650939189809308919111064339237836386834614364583502695867665722094104337756873563661701472603090066550833337939755956924268481738156513024517220378057485310557275029081907331486938005134405763710060030841993182624556056922564003706900182226813966759835276730002971450506614459752831179644465402220710154159235666999803551442969042858368841970840719545109141016314942455957646910251745589645864366543631489275207367256281911407967302345243910232604744271994856505448951601992050616817713410480265339152534501163123491981749445019522938448235748716508005420401321994034614538545172956892416911621521553073511459982528213437947559170746663201625650466563030358169759682915014699462289094933585824392652994062198189413071340474750709456444946057926675569340142558229009065834354461260091007566189457139809333039305070103346061642250189700432452234091232673030038136797782933474931696738090829595768578990737868146108432726382975761082049421557121253313673712438287990603043134688806401337927294135251542859965126182233301939953942625854082976199461621815790107721757598064979404517007116390507019937768957655727711753475411537625585422599806202249803462376462630114505141229693514561714956732774025727523328144783477807909812227097871712614740168453888478221366937623225947399118797403483621516426252376256053533889903143125049409893347778126277894010823665257544373065889379431696525568087663532401775977177068633009185916191775221615059745682237422332936357379070300679508351961603525895121686534286931781748682942497886164433878448384651282792063369711407683966032394963140558527690351175181405889461170246169171627023636030595740922493462300814962380519078034509536148501240348754017966920436178479980550738486771236576597277028187184363815725852768793455111852959138230525773761763046675032678183308000866050699999406270640311044289575725617879894912590338763250589956530282154638505807756928425219298838023297151896496414243216574349098642988410928333835264472915496588624081528666104949763494555630558110686068654559679157233953289123446303531719547984720222413344037174275304969709478555336836183953840089379877354850848071242815721916001461391583104765444751202120521193817043196735903907937351502995074259688077389219204060281643944102129277529989112449912350922085096016162647114061557370284428817189801291886750484807741366464166575358748153845742952704169020299734791968720421596141681089609684265535149100404864679911543483360393786822083271947501533885302136291077959660338836517689367158544526062896545215791908073621384209482647710796232590348263361653451733047230786653418986933950071456503944106741616487237018350176069230371902355182350514849706122748480179838567239351364979638666599322896321500997318795203999362614586186769247790714232283205200057881617918023488524906251111315075421995657288801948296020487891123546842028824555365229436650399135620162753609596251259058850688501210084364554627311158652271510905283234712862864816958058478919169393809486859876566711910498423828739004903304374870538015823532865497639569297833862050513548929367615391006720696448750086762836364170178840659849515866856893514375564876494234032174319604427509767465390660079772085498633160584579488146350993982960068842435420935043392167535194308429822841622544291707750454221484325378912856496636789971514226604364813467900696639461862578184723299307595132398433122916096917396152772213548488308774969062338204747813019329575577232237030555750574619553607302191919856731563752157400962712427152548684594534181255296999494929951658945941856970553030669867743095984723839588793148282447488092298464266103979552452537513310133405676778246075848282653503366635523399439411737067274657691322073937189322292058906822359753710703522602132502052701391231269766089383846928898611524298923790992777476866786630298927023444013766647611526302734473710494028543684456011898289196738032590362751353230730623269257452470266029857116025078315535090438798322136575785720949687220008427181186498514439692269477110119705646205574600499590110224919253286748384743898003166749075548054182362737952444970948187961914023703905452500438336360508997419954163190377644734782253230595816406101444808197670010325406321768154194091459217870382466452846865940705586437295632563461827838004278676579245449630279691351060407968756592883585575269674358101002576610355993135152874784334280763586698074719700769431105883557794792372622584557418808169894539032295615651788473557986860359557090736965453112073641899006796255821596446227716255307528725811549400720429042672482858441993997068734366552094097049753394417704796565062423390144169900543185468424674453471522747701879686890550097887190734994541031104001086317106796495171422448630257203491978949213702677914261735177429223665110097417491287486629495309773954649846683002642901977106838813629696671451382148623596805434677179778174633666805531644972349948791968780222468858459594547046227506757907610411436148709562498487333594356535757286079087459415682011733073341027269066362829751372550396144155493769818886152207615150836020943222319948001454061252319629395230593077429709211368670613201706528268195325000253678095958470942419760360139277544456286610467949422341046156633331717324141871211306187236179168470496094387596404236651089166223908215353294917654301056901912642133643903954062708866230532981617929565073123536542566999613818584585936613896201206309346266872294110195416220568453546935899036214206798524721367644821770225539949086461996798343820952867166103000046741436039084819726525766895500400234029427123384078638659269015812486519858712895880326747182356095517425116735250366254116149487596542919444307757697249359700276726861891821212091371357917025991619705625404861977693182307910414526649504670032410148938100689989797501973009944302588337176233827329292150190680468542676292378105460667901764138648090867585881834428304633312951233022921415203339862310277815144477387543708623711364722354062420153585962817289055771495126419507727177535971748862190366024736804130250827153119611221476935579661962143188622704132220777348392223471362609154338779795158924997875645647580477542523690908589785616108007738828300184463051887487733787722003213216664682514487054891318498089832572060483373342995447825076467827771598990297327905427946946617715056941014113244458658620140556102965929086948004675065681178392520510455013441971934593921117432647039052926510849690913984731066216746068525620507248501322339991600143493606738400310850965237975437525314176211665001464095014116124496131263648573276676667331597399204150755257474063310732737145755269568175811384512902196827951016408775099161657484253730266081129601774789828560622951319112912075576849442454511844922155250498340705543018786498392473768708169628806790899808293120974181853759682950291043410813992404523909663627278635034186590093892972753193374576984987779478380680892609390877797176554231499920196357022203636925296023205409556180479733379146925625643295581501475331655587023242363226745028264253101858727394849609189490558937426769577534481690027476477709986942749470604979082043310356351379372555291127764435142900589452088991310918370461263630786961463078925674825595389413811076521326864256333181891320276778762187941662803359260388109296179871944322454217031224770747467724072609287200559325464116937826156380300832454052327698519064721175149775538576737613277098377213362536322647549712876563843834172407133776570042278483570277672367785052829540126806240623827098638364087066607318683308443805496998035455129603721475801059484464587160821613137631820831289233562424757705513934663229077179270198898786708548270674537126412065714629132959463613715132823776822195975863697980474003788467629416047042161340052961241631804301754071111500512049637905728596754107677714198119903016366123140374954584773636900071314720184681464405512282958977184154517757704999186069820799800092069855363561700606437927290092007771099408801971598671576100421961246666765124808577841499666465783649234199705926232687215708721945213191257490036988674040765359317898326130938247790998048262409848132784315521089322802181957606781598851528862195430449437876664056468381300116009444898585161899910576323624922640675110664675060163945058677634976846074955601554279248004354578223776372561912720602874980774306885615760378067623822107079689710660033404382328364353253172987807033444702321573759185606316419194311364921753371006339340270469245590215950329143343599327364106407873489287198517987837894329149617577215670349182395024081490182650592850811507236566659220712293821050188057803103822322889820929509913757101273474704460002282707775986666917774167102495129894911367282184258284544515731912947707112690043982443635220225885353737470073702490110247612890436637334832839859769253967214184114971353449418477241789135427990266359658147123679506982298215993690585229407679122146198119180119808526679632314221759268760791889726793487390557299968761326919688184242511830047318329641995537340469314486419876288212507639941872590773474259545559065727254462073336703866799627009232001888369518654117580138811428694784392595834103221089720385194442427817363142309011951954600718139045088915126486187587786732691582569967644299536764732868819055589461087433240920541511631684687958340943306034996415001280328430041598508946770868756287168067735168710151855498346283858640623724288768640778190732692235759250146039587163256854302707818868227355614845411875276072162312921703898639157015712220149615406653298791313412089450133770218230955496029115579820707303776498225829790466122266429347065437963446851989043727268298475805661263001861577333035564421268496078433491309670803462726694581984037844805521766406258461498277491704865773900011578203892982923604377588065933453075215148750787486994842387289533853526372402981346077129083272827817617773507657441471199855836733979683464654295398674532325372175282354624598608102967067363284149923685929912367536123480764301336078859031025892767525061537828240039967008333737090516099173196216887186870741022371391794347282974131676541643408189291179693887340730315007830777465033846410871253441552329062193226826774099672357326273796835060540996361073890093553611886463694335544688660339264042440940641043000027689054750691943671658649494037302822912221222888920363436076814076175510655265205633529586202855107748984699005137819651128436032086915720683123204106127287486947899633986640438451709250081464235665278965351038795118998853784428991164759589233912541193022453004154729034111481183647499784201071617624912350540000200898283410809053966202007501417147823345055069885141679157348864588333041763775783863017641633894969753884807596884344247322953763237470281198863911736007265138916404966888551843887214710961396412599831490901016907803807918500029942854442404363520979594623367687685487731362837923024128308020307501890047263483666051288808285322457636552679765184975780897201639158135197212604681145274700382608374709854728660194712431149206496416151420524830936286385521515917155866767537216888405606647047300383251795765551526463075677760251244584719091743778611205041878614948019612955695764435530057809505791835289058862366809865425527999002469432248393886022434386813973389976141086853540842738797825407681482589973727125950521201469061800792660634321158159837131087418524595121590769548378706369074950438744673791955871721981462596463540751707432391385779679813526343741519796995136668158794757330023025817220703634312372248733387290738375426928232155824881658374588702010146653459546194054469136239563159988162441532163177121742309234748644585508212035525661343956109307593330166308910878982463739755732247203488706447385650863029852796844713764898174958202025034758965461543659634788135485391000451139395320248403139019095357160640123731230164620333526382812687628090355632611097281919330740026680240325721421540905092788361274245944101361897801958036493317208334827146552843006705323091689654138441759672112468844929380858682216199387035787570509329987423002456258206568304939928045065546180537281656101258199774797732507607432420316025352873768559458348837051483433273149640539833085566684873058501226072328939429628707589983780591365743617053385473582232842573651852535570026102473754864110478402399676591762343444997414153277116589191442306446497501549314810374926873973712998709480943837410185175886780441175670722762457636342060278278762297936973987484736232472714631531489956545766077549464481416925747022301804565297374300948817631644209947181052096410232423506179039280374450747711430750277690603967612896140146418642748326677339789117326869256098815096962175772749445730782963275531414746275750916725006403000858574075588862851786905841462248160394241700808232178419113638588735132046753208890177757919827771036661525382029095628759101206233541946086447715137867564245481498884093575899139767735607955360616239919397809774466034532076953892096560173342557038268604029428110127617866743389537735323193722791698784514761114766472738319187841833505903625769160444445235355350579696766434765052145021780891547661896533383541000766771524780331370592849097905418228246230747827166445581413067491881590197658737719420880561621340371919158477950904351658390330459140119258561175611579396967115181978037003163066491659596112079633264371597357693721792652843301394589933471192606948368695514615069326622842788368450227181540715140216233132090351939407584083205280154758607061683035591669770990828556793666077731105672283276139884960738996333256056398508657713340511422875735454729449537352710906639737712935902231797870672435613619642293332590115473257964178324817505392207216675284766693078294814577459684263128554077278290352113031305117666798337327184306278208880431989504137833389932802177440467190622763107504006030702213100612968133928693636471074575657476081506634940207335372538958664372042704181665469758399260042736994306192136010245941390327443209954781064090172745502874369737515954286803976488581270560639748062080430172865089360636291993931136652310601236678202189802452610634267917272281477494559598458448194950015900879769572356500914706313104932110917829301346698575334504745417114942053183836413231048140492833683276602126182460604618389575041906555439336043915455655066246758919092415863400900442881776677681559172876895270043416948053597916819860231166798145460286969005702504981901286686298990459068811489284778790795526884345154451481664480982108239359161572439043964450891777757108948356771697846241825339037056734516357169902146405588675449241622280239402557173247516233375425308662857204025948161818412282889997571801225969638873277042127167072636628909895730203866143060366823623515785445523435974279761541653399488617440047950722415979199496707431151164305852115952118551219205930477707889928010569871813956763207788750539572475010721594349913953366234164377338084077741762230589991097316417839203946712112249963215739071804688371365002289927268125064080642051982036467740438400680385720081934224760352153806152128921858153078084865624499012847599636240717293578592551949100770481523623014957293278558348130101811945731086237791844436748124829192761536893601586802641502175190088648079585160118240114627483141112964608260194428243527911158147710425748744612093948137148157422327402618052745071431507530181126646493298566278901102897283148169967415993144745038473933394618556368872074056758537377371629120169467440933778145452659274932464547516945877935049053253527329648533077521261431584206480862927064310227062333652609312122833626268823813565607412689322017391790308431756902724733496720355308597343401386159162582008734122494556555970342374821144846856046037369731849950218367184124456859102914371722500162916916977126178668757866390753643731480256497331711596238542671799851737765206145504930312189191870274485504825881530015864890718120391628478096558078599141552862950626174840382662202368674161738341867969747582064305287866372704919259404836078121879338091342694963112573912666308443613331827927434736455257472698522389052162999477367836199472834659998999995478058860904571734948828003828695546442772831658802987694913772919077424220572967002265601301102587470420661910974348253927815034215572207490276532413345201704759010557026170495327696111754540699288108094491973095019633566935365929501233867489988608008634910994382742526664433306851173495837207753466289539851287529775902772748167112914635766098084239597591995499736100460852823952698259954244250173672031184186260057052937248007277878943528938567437708888930729569762504299573911541752347991651433606302662461332116502713886843741258158666073791396093993722404933760398364921664345691099353564737409083345705827238837208857688085191678651179327517053091346752830330952987578842396373460298414390995463220967938876286710377269049880327400696531478129682466355161382914553459208458125332264899623371992798386306336403978354239546506679362229608389553605927007585954642070184661298435388402205556118695020593997139277222182879018897631399718409206874531039854011658642212204709670323209954156478264354868682705069896343242392951724909891053764226848995991351026776665843203200253593766470712113310797559331972278501348785992059176091461872116144827153412015018123565466321385409331577416254793727570321776220063400537271749758353378591666909966647649478229419070982188040534440719503729140119066745983568817262580498701770169566984986053328347595030204505446016043795725432432434602918260835519121373319455513845633701723935086921449359596223358411561275649598979504981799895039932783323846724459517894908471411819060684084286412560026071447881870189137326854955337211700292029084338544093322323942574429447247138317390900993646837781160090213375832529481842446447835620378101607108798063178660588613736019843077855329253055409701218810418581960763547546409249305349568218638464144697680592551250805205080215502403027357008197563217802187966465859901477229009649867231401523172049266940764321439315829831416252716168080910600904086108825632393896407223189360266859969713524036759148492867288651675769045276330061122594997833666430669059154531593074622752073841997529299949463352103423051928324137571475054742216685458511149922571184020960730365706036638273102809085701117677402259379326472079101668614486254259626966376538434687602808673703402588358806472143403801502248297663984432405771364743595843369148373570726370120755049380891774339752695128490783871837837857529889519942183543578899256669437260085710670846923260979717974533547272946136359874392178403096922599585822147046922227125523987403271458031650209993546138690684448592561768744082797298929972542016019777906931662462361007642066465118847835650897591176068215025425812011148656710035751894747657215232988819045183296735323800468303125746449353453562707294150918630706824360407894081320282326686490960897592105260736570064656521600064112843698629303225668749208116360547023427789415767154304637057748073847834697892443736994765144836480651667645108844531969513781181600807501091870839767252601108999740908632714572666965815087150889384833538234526200133080770348773851070692355305584240213454294770404908576489146812602895128375628111464558994067399103951450381641310369068440318152324869384091486785944094328143625046119656145825836983081194675764763691145601681691268627436381718033571883377231546811112728465742143075167975570839744383535948541918831616081208607756342839480768337390366815575203160597219782444822202050197253545816348698415205287359355067390304517234134983939293994304839704777602699348058545398751263864807894262101089086120117559083549686690793916182272714481618190341887618825578592322432231530261510956647673002895922404371603762968874679954578163433619273104299020289997734641455649312860611612601612620767888621757863495402814701077213857117010473952216022136131700694746761415716157070293436081517886104671333966317742098396709128004325302614826330162367850352033865232220723431969688196550123670946378740053932028794858016558475948783648515048302990960956437704999439629758871014861240994409810598623541822323846411793185342103053434268056061666317811915307608060386908803355395253738657368370115623420810608459014419034800943663910341210729393449448839796471833646134916328466164228927000922488013154835313202770360494031928944782074670272495652934162554076331872341488348722123439091139105199519702056065444931529164178361568044194936936484492027012203840445673361851967140493675591300885014724494349434086944745992634705391649734510512112231437245366827749035445750887181184384933154623936646809042918433422097063670020925732661941148620892424116033843601402497848995120154690843223419228134518702439250976746966966180605258218805623984023436142320423668858231272137911907405223899511681573512204550858838225089748023495087360310004751012015575968594286965083654605229371701944067046500666865554505223902966489847699426646970313666905518080090621701581325077023171177608586939163372923410882909175965913813547699063355467914765526546020031357581013833245497486672225859397146987334463611114157816407651045848256856916728289005200134335168948377698500153409288641512679807483381476815573810241689781710185465597826715820814933719111060764570218847469132545220396656397864939030230163852128089307337103073700134812052941090717853000461921018961880071002786687227188626570278270979395330087012886731301160594631108076004788860570639542702774005773807697284305910944669822102278979378928553316272175429932202648803853181387698634998142584329111261177620540519659276785283042714753847214328871751644307928235145091440325956473950651983584531285986500652109559812414281847192480282130680566782879616301893275057778917955775496922894159763375899420907143119172759891714485394611963807607520025030675812739125074790786227118817088150816337272430905231934868753116032036278820319924671221927231739262934195261002965809674756935802742044575765095802206178558545973152251116266722092947173429417260596194367319496768336677552410246955709512910846325268160696294034977670793916422459326102509347809755002549106359904295470690521307204700235747852432025849316619512474355403367431829935528440057741794366004621552864820747863628515626476168089593372471004147639780030141768838686783211876422994124900762428773095206683558671189794258691260744650157761518531905479105463427154022022012257051287649293470834822880480240170713590239928757585040685858446412426165268109703468037777838513512280260418578583198097315968762763673015597390681019000652092807463609633480904685000603985576171548380458365102255060177681621790022610415720038461497627625255919459014282817038641999420497712372782497862914188732295668100806324262080533369412588003091076896641755202837879962616698707549633162480271611942557530611717049236668886277019239817090848733929007925049377834481704008403377094502533488504394915492718797201191504481812497120348396889309881735232998703945808801557049330091343324914461809479297512779721020504073583028922045418095002798203707908911789128986751230135114606658989095696313819128276864922805042716089191521774362423983390376798309859350102590764625430157808276517183869829592436320256553509873853625408833431348512693665767280217624930327683729045441611187405254540416982188728488249612104570212722501200839263231322432197986546461264510814706000251056633721374676042249449305509870423403291844735057111037649175086434315685645804440301112852680437453064926945679540370377308411446991287463555440618501585901872127915823480554691098792076191910123862040859679068319113856595180859241566007223454971896602841527019303787870424425110363832535653068255344694885080599142020216436190407256064593686248004091194213176606111276582060099404745370532277351046290526479770239020168899336395850336985388492805690164121541105643167530533151118569782277808876408095800593799312469915664260984128459412531460686714801798460814018625006080508844320847513786151749460469112187752943562986503859205223483396687761428289878302845216853711100075901650561620417305165852853645216974134665426636206034969931143695524939431480999428400347965769599422432186435891599330360248048397740023163504883266044923037413697297441586933147178334523386229309142893821641770074920473574117213118577780930861569298736987270321612867878397309345797733639146967573440184821396074681012673219435041772739895108934704286588899657115169845737556557403843003043013944331064634529949379564784987356770919568533392019561948442873841968687057152099047081051030770411402657825824507513591169087125461778497268881410454218349940249533745366744407344232227777333995923167082718907358589428723953482849426222391693782390604337055825502134561937072313950290273659815372840163556362241206323188310171154360138999442419775970283273232417952535094354626321147782550591154469898520725658783102878641577822829125519034858688800852193121036120935323373232122692430966489982627331244994229690911009992132147899074982668050101602421514415700886090891384600256487199004026421192983255617899770880988975625691925979171766684520777285000614021069096636673310127656187591698935955890453886783918909902314622004860164834809258107010812328950191657975934231528275317728864723165760547039259059963952681135161963883090964284076165159459435300081738552825157842390080624168345505053430753563690479058110001886897361182698336890418360432274459612136334849016767814924139256070055464895352902791178527645800034340320312414458678209068901153259080442574038561912387097157514357603183786804773320363713951296347063235968578720079739746656736031221139605869249605189874448529654765385956904601398602977517294262192734463660670831819530429429729565723368258065299957919354329047524667308961390782546996584509911975664316077058409895503959340300445346385609375149489173834014258087086376344931547760360209374822498699919662567268137425997157315599253177000276423900065980569926082033714690012084321021823293762197912171670197630798359831899224952274595363490579202210029709155044313912150569672466564839842798637949642485785150516602708983427192180722079250983072936698556065854694179987866387783779945406048487583255328127629385790446161404390689976076143776579940443535296200703849036791769521812160344262777502825050088071081990380724684154791906480654244709866356923228312805261237851011747208348027306805147306450991267546214231937587861405523827965313635162662680882063515714043791139508867629796723619785828737831734167687592384377996163584875955317324268503956710258211282090332271999508637108133038235327485967285280587001710719770279479570842137553505395233055306042907115450092119783967496057461186737389021064033586421962550154663499018357608751161320270951074364464114694541392006304995803731230396516678044244473585442464390180506411122727592213084574088949908521280250294253221041239109003356855247498545271481741457096649444415731631090897215392946663253520609987276488031451241060115541842294925353546286686305136793734176139267746272103084319991966579376570942230186226917766671998082615617856267757041199871433527423891436409877515768618133935115556587591211533784261919404620945861110418450633554584772188370773689847211946872518281555697394153950798396268573367466306998491009691162190587655554282917479011348312645098753893809571529932101380460326382511137987975662316385441897395199336449868380348817501763588478727816447316301588657682601989922738907774357835176870783849950642707245660015226482380899651521713729015145316668560752711536022327797365584552508080611191377281036362241751278044700978439722449882164108981217167728109048490029847169967520445773163414235757916753577590321784450250089687357314720580947930310404404309567068992011586249524323958692908016343695228861111270615474119546823638018512942782246524294598966896423915639451891707980258893912033973035864466017792156621909130186441508433524930458586880662896823474753290445754346802192325883124562695709555806565895460276544880718464422951215834156572040653754833371808816543650687469902688308965067455155783201118590238555871982753378351290905914350298359214162410477063816635104114805193006020572663093217870102281855380375793631888272753496166366001721795224527639024077117717044601047095848321432528567807905591005258767811625538288568012820947370361248622009691671887956509095063795484028185395808309783175899758617381050427540766883621991209740700751209966601624279226991696047103568128382708011059865539264500335482565973348459511372563533348463690719532085604703858950576840300959857623257656246821518288655547566558468711421122931526967604481642342055521840563490684540776040207691032326817807047449474083613949130296513701369818117636395875083733955818905035215685496615776450977913994503988050321778809227554563508212638798816468683827406589741918748741191060867929944166434454076515566527447182266755271910927956176702523438938111102299218597515433327063581151023034569443786491565879511735058152165199074229622487275202570493478403321749526672906035651075741499699454468739488898577338427456642053179627452887076942012050057749855598848898241093391486552799075829475413745602774712438913197206652603144386805416779636122998061420572164515524016303844977039584874071578743567392927308768886543951862536985547654547849288830647669714275929468336113983341189706558383844797976924546848507719401942924571099127847211946961889132347071427833553513886289092663739918387878109765066463651999917248801087684765806869830755340651031899681775330697991154909694710343568587357696475383677895011045427341951155114565824952497690316053705812387236728727281440622625895619677186597858464084035388773645854997525626400184411181258547792769255504785254525417620114146124620981692279226830326650778877328856165264479799200103422020693303997064313106947780183833298316124472297080957339897133260123767154184810844437004888996416877443435460782183354033008782696191496552141468654268700983850373421300823200461014089710416965026875271314120974652571431206293724835253436819001593363008875479731691320718137521833426915110740991469767009901348940978155149797221803566127518249103661166276766398934340803347712532758499012162684759152984609208613322418934820070363752396389637057412791113304008457863014659980098808903872597697357784268017335767511053384561675770509566560541384418428251816175797802904817941149651193863582029108223415145723758472271373912385485827976788414479661039582860383817893997304080201446227494113909313423601407986355831402232684805126998673824419110030873373663004590579517594043031902515730113544840070402724030686377927670574773027335663107719376230210975695647555747489181008948856556665395431305584763451901516618963310786193848827687621264852557319063241142191948698369450036777237482722011710006504622565080162538898857130053744971097005612440129544973187896614683182021408781708451736328102441811859577832511397871992651932162668509055039354936068305472811748871436754496312973735948413956932918058505747834174277412561151353938745388051554105360534335152173515336124503045365788598923802956071091384826561922433936011219202347313611679928849323808002857140816160905912079444204435532982486054554693541222384365397742864888569122348995523250069661348229612893616680845705322939262751946309390290123179326335795992785119250838938151856861439997928132177466061519824823904075560006138927791551933023189374877728372072766564819538987360185569252056871463865550613772831709822948862528650429627094438687260391788384279277838969532840446445464673110350806697733972537576744752806148550459232601602969921175266098499923357441649274518348205432045202816235621740337476318697103540951526334717386605952569335861733467587409824824388717111975416390908179679061986009117682052197199990921496438736725968913213172775589466690319035288073741833146444893750157434736125541074332798665782110201013994308554377357718022938582493758646020658498397518426863761173479452826530973086534909180961450264509669000528041639122307466200677534421966976671300485723735639243515569222434831554059548293777091392230080366715575821552976601896820992669656474861889705195200301769778787775288061921893999919018445171914038545567387749810995978503462377450470673205671112594762908773025779549038032154485806676560627192832921879161864671928128899272611833582618768043615415251168761213333876903188249175892942303457587622602509482083668329980804547206320346965064649828635231580269906411396000479449989100431049944991044265350246052145254634109740675749670569253201880681550715576155807491226017212833390410745420363927423689084554094290445138789551957277636150706321900119149026656152437762491097695366498918072975502967282790638003800038156142234819282972897960382474308757354099850647902936683574351452561771968480779923334713284587978777861493357504807111268143706838275140795422705717834938374874839074037194750312371517034418924009343771189940669314972656408673400653411692641720126668244114265245593897227157062111318170596660607647427976103394763549054892130763495328665769712232357524974188559369737589145994587818510269109512691086044792540147635972928284864069440720230525546117438767167712512070471796514767729843093163582820272341486934685565174048199399276807079389452824573868563230173290804849318311597165573071348329690074863995024276559577784724520572902245778895802868593120314291496545453649881487186560505940843723987666171003490212307838634599968694647689688028808947776944496826197776143158456219594420301601443865062315763618026072660027403791667493305975135862323407018753811902059434147115993601963395530051679515923726318029597221815578412462658112145909218636126531446821772302743437000169127314902642357067638640555942406113293982459062022796197904633134986170380779155462154609288745490285391334018901015947762464724169025040157731162253745534045905976374095558842883798463222274806790984793983764984311264026454322399009324070843793945575904523638176388978039931546132478679395318114814798992045953836288029026642486136091394394526046838161737084154792079831074073583855954244454300517934922863514258376453638486940180884175240911985634990492777636695132832588040371056340794165108963562628239814578106972382165892457432220089265378422060301516128693559121719324361422775539785725076531810041325419921300916912709185288698734088244564442471326280214900898092782936797040509125286923992085293543908446153961843543410915608155575198499987121437909173629363212454870698915517761748004972485819484326960576775856436767565437307402269325710155992148995174381799612515923714354074313585000279675553009327459030641642995604766628856551162532686323839293125681716743696512031424719825365973118539631510320640736151292593033621203422443492909724277830342073707793155727874565683792579780765000182960156545483894535588171028378457776393584515758388227991100203566017191456429880743537296331297663811929659542259974967950990044812866450019572244375885194186205495158207923611993566413968059770372586168889743963405912442558637033077289656084138987335870435621020205845579935747209024834888296586392615598028871576852010746999788540592551862248598401720240213835404443979041870633016726809811191186523203606520420969148378860238203195674340188976178475525803941068161893763945857593503403038044007877523378482165624081237340897188665147767240627285141806702343412131112574230802750918820318733671235016200997800419016997820238512915649475945830394638682557445712174200017551842253126935776815274895714715884139923620440177980195264616638475869221499371964969055042825893297467355588023782513057722610097497678139793301882683129177300067276882533060163796871539814391626390791241227769360857213257806585785328225855567113558500504050119633880080712398549318049695613035127596482758365651472113958971228959327383709481115007020054894918597377794880322865497178374153856876714412237246897619425206820967775766554517125208879144953052822511424661586789600318299987555447239781894479089768531156644664109421243324512481999720087219355825087109981680448787639564117004180820216529421162414461475546724005262895522549425998949078418145606826831826824030883175529287551994523733107767183970361812005622724549889089875797384231629194393414193239509666244139522449928443937077037590605634549925419310562152020329055905506784983633391748613437925463522205482572688155149730846643399669769570685630446328205074388344031179879114518935019172057037345234219679819132051036819952288080299809865996364258294119104271717317037558715159605211561800250410644967538276718119906557220685545845516433044885870990041636287937568441522533096237466260664836942807258725345177646586814304803997651536992078471880509207574144499692136026777825707260319530585850252262577869447794617739549931123779877732168311615997376701041316924351679906730949798573752166770655868908886798576828623312982008096059175004548551157817854047914445798919987551229758073884165470377379267157636568212569293886670816258849925149033687731742767707308546235284254170542955899749623974040093192263631871762395379034972966279436255808433710111122282141231777827401459328318172347762844147373391318482471788418249316717457649647071576258754331091688760810235890034243000158257851070984197219694999245039097862010403845383733516649149076572957566054449046872186298466508072848408249804717676756344984064149224808801718999970278922813136811381734268774537870284025082830030683649599606775929363705680341526081911926884368091094758522400739034173505885737671466341432727542360947403739488622732446767047796481866777199966978821614780474428598372722046020080946323867203897071335448473763433037339693923484923175681562229992287263258427768878834901285826703953853889989741667221149772309548960947573923081145751298187277458225853818890199957584029305464722178855252407207244350239133121206020273671106866816723497911051240067917877918050442633524148827693940089316141567390809022285285209511408666107340472157411887476701515462812979844752772620210437114576083401162121108683019041622399871542458629794331907015957884316683639787939398790058661345355298591821581163779405249714469912249871275713396570726495575590807009952668574963972515841546771945080062850822676956739517790923375464690744191746202110813723229087324221592064311757968435710065131300135115227790531702599417848090040793434305209102858317446128766675335189622832891826088266658681026707619114012435150346381821641119719232991825861990070332711322740079662816857418799003162770453477643731225766282742101323094803352227184241197035961246063553410528969499410041213520162414677473716893588511814697125161396960154518684935844334836452957218299232923175595241418046095894275080746864376049656641507317727852744313593814887580805108387118006859705442062449875331765592172331862017543512459268173529232231017058192762012068498044314936934146103975644934027757500346417449090037046942708978724415445005732824906256498416966164984865087585447938074132672327700606587054087779143007493999669228703120233377549067477596285717360078609525613311586768082464453660916709100492729485789274843473927462810612561015517484984326715627274869406779358398354162932510388683561513020490957091241895638813794396813870271696734992106655178674682354912262840361542425704191081697094403941140221686275369712829317937187111722420351426710056328031508576304757575656387970543038674913921792689309017198916079720810125363306414938374417701708647271238623922109219857513751162958613654046012891657737704360219316755552834271205144185782820978771967645011294413348054546656259237335997530514150600604474662145698543793018697077736204383648483446546943776525638397124188762182335068591634075910500842548659350269522607463504022886277026998383884802741481422043034074404170581339213264247739265547702139659077773620055826195558087163099076490292213815203609126481454345191946757515276770428505581273389320838978417804557679240306519599109822131393436879208062533430026094801926660746914740704601058879994386943915415469223959706511814963261291857542122110330472091216133214685776030007152290166056396585104431675777667139212250325896140858162384908729364026211258041940930176598978863368248512903499561920561435324993087328452448206844641355481103328029810538568170482014064602254745980308663210231337953284948191618783209607901998807432504751084111083054737314720274737071832712550174180444491933580758923189112059643538316494631300269964881011370760380766499139456869055436234668533508693614621418995652531781044291528956960205377998771598609919645503151917909526265856907104074304561082833506253743368899649875139256549817179190962248221384617374884203833135373355211938978787822341132819443736950508125393074106368408343595758115823970448582946793734108042836693820175620585467739086198625918062605875846494253725850026323648966816914694407974110033405361799025248929900958452270061466367922661884525151256340361779699178477968017292199214489991495953831925230233954155755371157452287606073249834713269253429861055329939025636921781799253779606467544363870231023707095431923740600592237141152704141525755230756328549175926845351027462197831092423789392249208368208163433034161132864839732427326202670083244666296846206967844575886115386661908204615451095427024871073661985040566597406553831574089044532701465645085598016003903760631644586550191460910056011345394257059234767997801158575935752141379209611436753969857638433972722266427169768036732141590801909676571984650169008827730728091335246253633534238613990999862945511545549426784661475901999053674426411381681741319916335348329009382122043292831501138495047613873849811109980306159207020239998199151166426059036824878402067909916860337346370339283634335378710215985828274738615637468597787188868440189381999812885410249705423952678559823293793236634134603134250091824333948421772989800589377112035707165863017302962397497921172281189676330995457172161007571008864629054926533466044286647910434711723861432488181770022937921931142119628476467406301181542447132702157123029001619538797695020479112382201138647644320749262122411516174612521977078138377559275468090013579654929470657821552401078337703412581817587176825718699033848232319975738825025277712085110632312206659235279698241455858142545783952473118571201607935933303780259510757068242046921957544481014778372125409506496730097308295988538914527796942079291363137912533242037188947463766689794023951222168353063449170177946652291957480049475861503050594184569020833764571220985770830064755845863610511251474352957826477886600962008655035189608152982789678898902950011317428063259157808551695585773449937310684697920204097614463152319441319193575727020452801366804773143658206418277736765645582477896515183496934811124783114901423892344298337172988678440062577763106595290315525275653378711014348145697306663853376576205505613499674244904882054515468834090049425968402117778571360855847562774568280336204034802649691325986427534932932069676769915669098983938489307328814837745687681345380448935508105181160228953131671719738457500337488625682235738871629035031124808797210212330428281218458666695963852621149701540111977695347701718786975283037988489372108944724411072523487474102749754922655936314442958811933354052927036457346295498442005582898368568328886039800957783441928085758216690089585719033690852006543623560632594659293311530342370353637084093909312381972983690779912514071608034303229821763602701064682027677335238945218749374711146584838392198109839278276250423327235039168956683210627989406291140357295474790265418957095632750461913162968817288823088253457670987412915398536072013015864586897159211562001668201144873624616471496198267795326585519618988606750795683908477569070964330758639894793807957798523651236288241526126100988286452443835406362823949674412878743550535788486053984043671794625104687901376199854273259015445743764615664690470320398257688830822797016888140615598584186800438144502856635989813517381477823383598347664230354640893281930820268359853759970360255755350084895265301852345864805936058765599470743321249763867326624444688834681715913516752951528701661492971450462104937518161692093561143523450384899611797625728562580208432342286521434984380242076008176815784913851422308937226450874903507437642485672301854289493618480922996642182344389309960890634922725029142582108397566811988599713827241239821683655810442298470864507651133441405887473708541988283344082653634180232758532550167029249455562734726868216467320644846611347376332666542115508462597501779456457472865916460948015090035336663647552397594346848036430390763827428806909929984223843563450673678409768245591420449773304090848952726709268012885484037015774967989989823579180794601346946605200953511554820811547768410313353810602390237222545949838057371679618392860232864126617102448865221539170002069193656472937326377428356438504838464092872452717951630451865493714913924445447187742346296186149005174544266809095446657553026496487078302966871153761924425255551171084839974506395574526301511765236836640717105802746759380194841189095280846748085750815652037366719699609331346611047942447677742401578754659331910690028080032824845653273413860765473940763151513243943562779086855369667833090384456474741752986343203125440961973128752016887032814805096798124009252449589380323501940631833470702238157730577176387262985389926148164763308716930452714750385848417193639672106400133557246445690088041786165892867903598340160401628612078911815783476544221553310806073602438604561201873068721399042559521448379440874875477944722006243596685722378628939620106848482907849050648878833990701913748519122216250213804115466165239200183530008851068560672156031232964366618091384639093059759020314642190628368269901006907615399622165781407247115640239201753405590929870754109008650434900569463602284736338864088468946880423962760748338325578983308486535872133304811017128954879077457196629218405032078700551250110490340493438287216875161820646295943553101455821999686706812471196771856952319983817768844859995979884234980188228763503860356134695464785196214960618412429739480332951871240198707071450718286463045741025979436116614610670057573806237258794493044635142269205923299866605455505828635916515526801163824571028620342885434119382180291536814968517972469919468250852187843249781573127892497394017633848103732958877944113245476352107418637225700430629080412400439753538012790796793203960307457684515096289190650476515498268969163583678603007646406732806841450956769046660127049778066177136164528435534007462754123610331073299980332759050881312188612878908160401404029294066263907391565755997637712869998764822993708197699195816582671555897700572193577415837729339848484134920006489655062766293923510303741570250192140596090105644212646205520198940632053002308734107390630503600830777482650418623232321641643762239726798431029687819816103293794540380993374212864342468745029533517759866203424320581872210907203754193806899903733700888506491165919258439816920296512156818400218391077174011779495882946932387759273591833894301611300585041940346848401040364678464599785546695692010826918656158900019703758599674167692111977069778168333436257205304201017709915828186752165779593726878601655272806572460863816463712640263719489283291224831347028128620754048761288316313001234961579215084582145456063145941322569850710221311555784807187332621987810974070263409000578732844478071179825879823283138235462270622052074171649783045732100924413806633075351173738193121676875452533531753783236657931699974501093857116030754457939034443732575426833893507728231971223103872806481454069127626538984431328331219945038801264647638784512504822076964743190645823036276180179372036372790529323770092561436943896523477782815267375543120226095042628902853003183530855426107800579751351392037799417360393294016009997984234027469938041203861994881656205127580124163799852729558190372940562168757417668993170412445207193629462843913081219108913947832281107271981591287110992696424833082239104345736103101717109581460742848487172361243819954836653637505849513146287416190690283826731481797953632171851958257801825767615446034833271219087387849253801483291980926049907772097319940491988503366345483990334904844250649443000031850320668000704905965892761007255362158355657579439667725175615372035140330892490854930897458054810895993276483872010957687467447256136890429276192208378342283460584127225288569985711544831036760717976821522918705366416544149337038439603840599005111352333143785815731113695836483128026559437554465610266396941227888223418102466965417777540616121016983323248303392149768000977206332219800497969055540058287535517909159293270707090028680925975888734544083608201578540932556340845979375232817095985535349132053002185541441971189268386196780763204025270851868148897685566523679992099241217994834751616148123040241058425205849049854565509964240845423088070092956862000152306567440986292279769454869985803698984216367395092744940934716626625255140181828282044092226899852700954980295079044509810490220047527076739720486807846150789786233240940019858607288634142296204095380531354546220380635323029514788423295565774043533902991883707897839826718163204577577544523117954356933429591718506582614932020527149283290255216372819322079891628521375495836232091617525673546875609388836142952085108087234378700445439701840421681795694894132250903713668392011333130395424728311171237072291516692980955607699933183589303153577098094236049811067521143982526742847803391309555062191797300285250849698879632224107511791700472547442785992812610172696401614806837757191801171153911880708152361595533267730826337815515977374248650594840916737538296003906606546340562468618917086909391622603512441592163693218129809731381172607228734136665923341851167729618646487483941499779811983060091379507910102395603983600386952588016695131927485166213163104854156843297702690877120175641674746341089380905013465413150023841682915479464762016663624280146405018646679034006399019341263145548366933098800349588007558891104075591477889832948558521724996819768326155971636841525084845134629683589672613391477669076917754259041704478547859596874006790832548017920868282862959831250541533839984839630082974239764418948377357003606162011055691157646508819525402682746721234605387259896135734542647560874210403401147402440927567826553035950240170316748875682160841060523679902978949023228098984425732161606046479987272804065416403060928393764349387948144298874795912094375566174454526593046816695358429045207932635941219746394537703035468186475413434394624169421412386318926131052161249178218433956860649684995880486435138767870012159840645170058566998035122129184692778225409165331720405108520566619269897911459626401020355208103261681989578237771397241913350661220580907502498490535844619278294301968353095351710708020832259520519339809982618410695267033361286838412112892795961841646774358947647474503118287873118908663897362786314324756604613729174777272638283710157547538707802946897757974876548245141751991745078168276801656736524387594950628682066180883663599999936539029330839327664787212331883506250209919875718893141090446925706778895880756375794437366000559010618269078212575608413624000926926946146009570749281147378420722946566768460217321699961310599488998492809013170620885789331077500142828496544266271192712950969272475395576496140446628975429258049975642621466240952944194651680890168475953315354946119451228723642790237484966429446664264643056366731337148935719976250123341444971497330064625609601992256314444321762720942917792827865132123404697104190948415095214750839048016623590926283791445518576993847127618298241140622373724960729514976847644176585718644300445196263185906633111421314839796796432654301272430132274836531655193672456447048022355579533740966089903931783589443001246167711160336554958559960518945111972283293476324253144908607762775840201055679343256842416525104295856698974791886419164974656236674980975425533947283482658381698891074006860879570559158855127283747940791514874830505538460558957609686276579481911959551656486140105208651173588537387655079846116880507759021743537125116720462424704132283869141912295971919688965951290029901273455921416965101286418992262610992984963720348387767056132901840827678677232823385798421495830055332332015550702313798718548493716105950559692394770713511466207395982325420934408448614601174624033843221024911977003329770715109757918277647337734412106280308254979451439032971385857131232082464338832501381926932326494031345708131098540504942575516387816525302506171926994167050498708280961252649795081038897646132336932009610486573955200395785657022880195614503586785568035534805873867741480991351890506206872335728289411345179351280782535158483638286131244536365833372662899874388976006281597351215667176352072773598624404547711484707623176124575445482625715744736827787185568467845337867305785176885843664555889925155466132623039489307502389687598500660826634541993570876998782553004860608080751411985863250374308317402956013099355179821881789555327861590059282266928334770475714986404289503023548285815212116534430448217840197150172906417089806099627220758352613856043603343215540794143109467772828079498386027322858641767766366160016677722165303818158348332412742205725085526378271600900762230454695136982316017962628003117877492936313778875825968620968994101189441743812768131798983175410045665933843098510892097214914720625447069140044229569204803321209004059193310731639471643743998815506694180047062426094552312846029975780361374268625040009408996601717286439907877938352325136798482615480760279246607703578439960193072463030272023052495818053376759423485635008859273873367981326198906041943087802138177417795319482555050837207542423311285288733744941433957340923862990399700789767148353130748381914770007746770046124946552020850042517428132791644496109718660647592620055253214421213949430987386367319478391362477469401244458787679211974697262594625357088526472730205008166216241749147446135619443173680714220564690765147099325936434141064516200194028100924365607286904045669839054515135557157789024077809612317816553429940006197189839432594612983093237714776821588904420746934299945936317724708947081083497957924461091970713874667186519266028653556846401623922942892586883067139733258381840426591530540172881105180964217239859046514838498791708527985868736809745210567236542947063482017691001285409386399595053597390990243596264189847363083525530904512471687339605557933132212388879544278191776510867618832931264602831363601893295859648141849186001172511603910704431554121512225292034610975522721816419910352869919518970805154874281407483156196893842123749432181723307582040618607808903516812466957952060236429473274141868907666690102390227688011116410826095354119740843403733631459031995161545367916923500423443016869051185794988319007470005000072228584815779962921674344943679412824939412255158679523876458069685757543465287512765327041541217386771017059097531711406997006304909373511010765499834957947915777271831832847962501329314770026426819731221641944792319074268425946023278282425260547144157104255599039577851546739712922822869755531961914078811739497310953593213839821782806074345508688049673631815944124200274156236381536600102572229828910605476185520482266902438934648189021016461703450897508381293576957237514090290966807107268316954331125051394548385249944383523456205470181126762903540066984175890383705391164499666695625923097063376050732112326448019135422750576051214845680976005786284070904488867585345577937310891885703435238207893965180335361785063320578260594470802347594777440412869031639673270823429363842100612253102325205769134197686186180320728355309118240092439432586344259052917727085228074414574894878782531718101680512678591296302988597900933877321732356928002626969523687398465720861097708520300683592027979430643299893648865879387193932565714252590364647835626959735834158220541986838483375763856492752271202788509759533717872531838926265584508879194633727546301549807366837015411467813405032318557803852667632061671723885648281816106504353860721853903340023621016602615286305144293433999915837280209657347234738981784678596042401665785472545942503902047076065122364511893285454379490153950442209435453413432160918303445095264930414145023783268050627097888963105025416428296252052511214058573462580603278950708633295260191082864143892244674407486288522300781979842649295724528605390815494538847281199867387075333068116248532311154194576441283501529651606213630730682316329498283570135301352061711625155991688246364450428973473434828363106472603089045185085527842085872328142825729779533377743713008635398561697954228890749816088359174834609296747782789727870701769385064535865090394355628717758816005229215104346740834408450074256920517655853491608510973928556658215476217514290962872606114406231681966378496631188205397730902298815880609581784795145036366848904017390265626582021731316718699032924791616973718540669696978583818963137342769705625846807906898378141361317384356929148467868336353551832422870468652646945567618916883528562212914114180819392547162668385351326329945026376047086772665570532750489202409107992376024728487844610048993561759495314248047875723462836829631486897587238136202269509759292487962064288882156051679145769965505454066261001564668848337748752488646208763393802105840445775201852063134831159374648207728405498845848788992355238457447425858576020891817236537572113938372688406142620410760884027184698090775725623837147478674227925069214914410759652586774008289019649710717500179534065673835197012073611942943569441198475490963617988618323061624772987093029920441597022320583896680441796687861144032747463735200625638059408285481446333884960762046178483917845085711491099960111558903917250013640056842178256862301670377331270223218427232113928922204797353630675874035908652751401483210448476138635895677366541175180602423476369954677281308319196445447038352775862623559025637011461449265789095059620341299716230282264954161141214981766654836404259564677235630438473459242346221583252092611929406305572834699705159797291818026608709607783831022993154734121325835554328974148290426325299507625317971229231553140659816562538942260616791939384000480971562316347430311588348033625517181916377073607855464118021096010244682460411319891290900265608656349637732390543444777909924018108755012466238105460229332919040882035756524204808487800566876987047433482854736996249749032012245099093151430867671822502922046880798870215497322220482024837471778759038823172039892501252842162885656797615964205896841575489637546002040097266955876349092373772634890919512720286379853062844180698054428414701395940078245855123231943733585332384573656840808228717110952542402116617869102670375041109167309610433114072364357194068245768820498086593018099861982929228406019352674887174648315467855699616215054906226247839204312826476304018941177699345604375472950662276019659480750351491101707575217400702592299863539602719783118036517359908018193435536341594532051457803810230676056353379531532627749962166427580968563891929773946100634212908997593830716420539711528659158905949973964311210551782589588034688622984982106458931671699882296299171150843970845977822750328623371538136396758924427511908486321440038347066260132731797389785253307749419308402050873242125817953547124084836827024673599069353173815595131556518545883379262406476433569469940487670630001118181541979324375362168041250353221828504864404050271934286844483274422634798426253258494737568391596290438543567918997743415550547849134171021630446757863833014938487692677811720656310804758278211369218049588359336921257361605025796301909802319458579197943377304134025614903269202009376565867848511640618466160359988600261696329708901747105082229585824006998103999057045293727612380997884571235056597843663392603807318618669180298725730359444082419674522125802066689274897415814907041341721048236740280517360298736427043852133596328313663111792345783187808153105525007108961031268902615032890464365705746786697629572021869201322865271333273398960299394035103357105159769561357479780143237832503656929643530624484283213750772850280327521923038392114876587283562482360805585248299664845405193757688740912103017997623521408502463141100099298773960987782394571027761709104164339391244787524416521539352971198818430453474399768595180622563634787541654129249540659207342014742638641757095408298463463317566733713110575789527365247075917595477123309395013090296624155196374982912263474254024099115694145750570092602949239995047742852174675430879804705729744086051379977928072699638260506009857436120331158075563678978885039940344072406359518203277975751038426865116906307225858559836250343808991670359455373816946247783037347792086641106899470362738294488862077607923114615102698759399558012475111475172505832783140198600024643648773446485621762936947171849385907486721487204224023381425100313459842347113834057335739062059287474967085441136278471141753162639355806406061083148128461989576265976769710306947957888214581594954080505205671535585797170819881171353413326947021266226850880926991477557619728334278435882746183386876498854564211120829301781436247185941839301557863659282068428890228156253804893208241241276369092965694625488557100178686503911827600957815955181845828650409200334702945720978129528624340502617815628353543344486912111990594238346362017512628228883340721894988378016623520479815600755005825188803906840838518574374792644066929909006507410345762893982410409194913625222537863616810037563883577962583043906649459344963747638063728998164065612855022440812938136743790781327548412077151544272490999534161000199848469812928412110377328848315837827548809798649201002793258311743772275044229152271907323636261035746060016078403688753187670734609620127088922124833107989008054904824445690718558454473237492745360400286421182394302942941661577563512322210591851990941604906356726209262151212588084381024043872280403258463417837321211435540239226136371538870098644953249620490642476212764258827251976350011921266303118842883986189928818897040880136078790558809059884369237753350973902727747634017131272866101063409991327240502724474389267658070009737706912665480769027663350737459709465718102514349896941410281740436330930524580738008373907082981957153983114413292160751735009120000541688011455484389799647789296877761341140097305008668703460445670688852913405091922450551947391421166384720240786634764720926879335189390748588514204907178438349359892759783098020720684698290946951596909891417282790779254635905966777122943240997365320524329079715582852199103611184452173622766725242592889522457988510955902548113608529633245092831416959661464214424996896304860835070774857327270628736488326392266978095987922371337713411871442031239480509272704085962321697729656617660017072903313687656910112398331284007795547329218519699466678660862727415282124749055990854710193781145193181604964581423572332368000616992605346253566182263220468360517210558007192262860025727605651306462980503698548664713063633862827623403844005469537561532852861954673363163661783320990821591516484244539089814820387481294806730665127626417066310213732968204468595198597641359851817713325882843501679041473017630332387491953007538561678097207318433648974264405145008115838386916609365749767958396955952757730038783887285624854926125838610468456140337959290417122345262979963025536437989571232140878865877440917006600053245926260321471152531428185242206873634543237602283314130138375602606723277554225165945167970000561751959740902737865811094020933689036878327586504177009212533469633474397587998067134427049342945304722924047737847199463726234837278520164709966800912870389522124442081481701380117714399677864437577087024165400883041959220585454735802723405196251837738751849412440210694277336172494245124698001048804373163778540404773588192074337975854322731062992433919774200800924810422056396290387493048242197867165649011235887623350599450403665995833527771730261070257695661114518275937492738585683763942423266476610256210566162838178177527663353702505195779250581493486326226618788159055281418502063404219204393761109996508610515940990778329638518301114543783367447573720454877512062310771490096932358834891040568878861405881897967382004887727593408008695987639042166287129813215171229287695761795717209588301114953540038824099176690358812674146579026528005679706443016360201949873252915459563984533210600537556067422765947625108162880802520557379688340796518307416017532128236397998006881035254641082038770599635088351003166868138981788202627889332139818441029333104133385619050417849108539334736699465099466919028486258371295153835291515370919566317945315362665857373575194980837134321592249314112687850056784470892078640436790627155698709535335555873104484589339642547190351394598941396968384459022313092339599750093826026199570384740411060521098462678552020147952542634191969592362753063601282663959405431468808368648263672813656324201681001386865655231854541870038203923066983029589012224976796355532741207242548652182847194734917258661195728613034436266342461112320524979004116374649436335198839657468033609022536545032587342347801794024246024779824271705533893312324468283632445263051349092665916521594586672953860966328840176362460706081677116976028972761891056853469920617786515033278636067073224008858865071237137949266186895317234029666930839421481240811702103085815042767873509846301789940189494919977886627332688619983096243268941244862466390037847551975796489549093499730859442922564002188925088257719413028377670976588920836484577370356847153201085514512670031302428210627761340586997549981791801184459547492949778978163830619775492555911706257848830032361428434542886822307918524237112912001831356627857526455439253087767987086432918003627551325373613561175551509469069070604074501750568419215822380141611804007857753326646452120974418594058236041260280564352847865059682934116959728911667569042510230472690427463552909642353575820323017309200553267605396823657928387582373413105102533158533120059633456584808984798685531808857264794034327754465711742142081669130745053937064165771290144870592195460515395498794922642905316947845236671107730450347911996292436115251472705106409412015283503280406749090052842020686608119385733281501556652683925989224350316012583006459386917886905350659574978329004208448258036675968357403729183952950692168455334084492542146568330794941312790621075621076715592754843686725446657906554927346545492291272634527133182632133241404138526522512907235552331667612738406322368707404451470552987032260976115031855152802732568061124863192586079664773590239475613437341311717361084028031736415048788874673477382965089041169584376466438432048786769990903648877034516350534964974218689995519120446235904305581976139197641129756086366601413857421582650509355240421108673255263317918627038433307580152201648340540788265515017671541951984054621502451825180677283104926817999098867060490800014206048714787286826557560520050865438643916670293047576271854455523420014638717353497860492951166890524175381663160487625459416144691346770771725276587227613281244077349786370705017458059800549645528792890392944122600734054934902437363009352933432309827143700256872212975027779610569985054959418621451427018452746240564032767724031058367902325097608970631427001281788984650132694310777884749715326038728629766295412639200125747495334197979790043244215368947132507656241185905543240779447376710916816557425934700558080041756088380989278007924034895479948256883894692818764034121523393554499839427500642355686185614402486882100185260915035711061947057138577929043121334403132807515357282812074437644701006647956015855076775910438667546502478180565909840076933310519892381104915917090469124031158552899026909658142433292689184552362430491610635501734177677139425591208827704623127364219161739192603423185805499926061248032840731467713931947356825077298795352845425458523634963280519732602107811899547325582659567073397850727867155647014727667082602861652643719604331748685722069509461287474535024879301355596791494140008811711718512135202069407652211838012885293953180080319201955773800049626561275643667813112759709167123172035633433862275957237587159590725292405953887088931531558619032557427746034917762493632866534576696456511936191261482957316582430062662415482980483330381422351858364996444989930478690202003367760993347842178728046902199662229989128176362713478153245571777382048122964618378241198688228231503475835070612418953491843181768620872454395102599004633670906077804874252730599287391787295770398685924141857157727021130538438941300233553807533578879588270673855477364161906986725939014440906057562651946847838420179137157187040787423098379079023705388927005051205887725688271467422507402407854304724533955072531457022536641385529174810786448801176339161775016375785110469787745146009742535323462484237340746257081968715343660206002494029403982889131535263884939271953605731537725391782254423840004611542937119867029010470612520402862860642462177392420179504450769470638008900557817622433802548701594682317447236273889940087734776887850167233065279825691993203494642968206175008008140148052164561845660403672292898756351266655972298298082195699141406938540067707812506480240172443243242056879075186687730349390738227492084974370306345481559610474502470101528593129444036042611052029053544565754781177603387598497144241057776704541555508634646683365782054886200039759673807532044509487336754970490420673236823053746719214214697147901645197852919576461602885187940930451671370752684908569685631766844190389779007615898192331992280075915068582572949192277584919819893144387455081398582020358814876678886979411794143355364470013497931589881734848645200864193132502992084504061922109139149613774624532251660926795354567658919990919260898762834793793691968978074046935463468815849757900798053871892143647694838996496640818202400805789646053727459698435884015797704724959270456913453223934928696371994289284764484701741917556710468000948948687248839564553842936154564217321087604382107520905002596480152478740506864626202060738388615851811381478930374882719954696310488001037015606556523680138898944760799260925454547244058838795060953709367355782682721010136693712332472309313674244736264790323604608896933927030912104004954450205660451312279083755380033644790389993213483895092418702613802862667894045907166401085358886825017504038529326259467843166487710689127552786471359526362961627895720713977997079623768361982344729700877058887327899436965699775093038327042665664172831324862191335835836970059879940540714149819478891631649323028413343231039985490794275554029765739507075728929794332400062108251293523147775558039393233497838847976551223015028499872167788323861515054335711724058798849300334045762525103753048379485696097249360489247981397059133861525747558970034019134967549313876381725174040365364051491391916593816031530312185943832258386428156916220780307710014310801258538948414318074022602955256559725932863511131975338533277445800921093233495463834601071898081806730829597648939075616486606435747054152004968325944705841844244559465274016510443773780003200523878375943504793799224320228738058035499342568983900658113378634918006470311647225489755638633760645694038380398038921190087258534664056364552710056885280207498127913494636551122674203876710135196521122011772481555250720145571628268272046065298418096013670507845144813053342718123204180740395361713564538498364004070881091013841098985447301604481625562700975211441018287402153841539316778827634073674034810583050129985968984102559036276028733184722556791524323307475005792499993991521852991591257595378053698195195671636552637786096759814463930706162866428516118464935382469492738999134432480470397744798293287255375377429710683260135413861800277374534159583017542264394955225480467640078609116243380606897642703485410960883198831879454816663814891320864952731987923287186617342659558098412189612325922514743018603430142529774744509507246293965082068955058545323486356297560216618411950372024712471628784680754937497864789507940895761293055287634553514248157344226910763805029971092896942750619298598491940076453842914546269713348650905742702744446911362428050148302939870599304797271049782162711850558715409640257290592542139108643479941474684412519460505684693959000755308060115886758946682384656968807917445904066028159927081181034237577825198206406143752077949229570029509924649565580430375240884935365319740638532061012985165331765759094785633733236048701839313785751610682754410531697176236987825825008689998360393955766805923973258066431815355155997272996398244018817360151978231396706186313203619950356807878123691794007345430788173712656186916498606458518730816826970982230966598636171949048735813837309231016780927637978366155023440232341561331742914514563543245852623211511465037438877348583340485810445430508805676509337714593861225063109911224358690078083125081941605926770847974197846565047473872985383160270678577068390947889950706259731700507887916787394000378768278288735224375468671523203942260378057248945802004146640056127080323715573432507819740178369259775863120155505835504958554308679000283774288823263512828982661967102006452403917402826573697403097634447249291255579768167549339286169499387634288616837567529238851890181892093850070251689831891633392548067485602218963893491576396044971856203793471084981258657935699394069057513683517142134524021780416155265389185128596338306754657310537047203869933320788121501989681715732125694783642852140164023985852937081830764720791961851138680867979423757770049165377370821481332618596163382279603188675925498396770435055210813992774938031765705236216584694532684736348757918972889176300010135385578630701184242630778626078441234185275916780276887632433311951514950776948634217840661853155074430554580826955310938677345987929146854788708152164406228118639289518308074252929639398013819145247425991015197554443279481784601341232652371874695507031747405480211250189233892920198724579043471364867430898478061687751702490058620311944782268854657572784863917608274028144511829925347155388873626281096833011910649838368255576487118029000153347260632176305067859110064530655269066298831064368347024533264802529200803433362666621192931375453468178771693485890738105267801359104686507274700369377347635801429730413762476448203591940931433824273211299317954350484458962664174255713937698985295547555103862369037687367388838835477671752226303647951853166061424471437144924744131415976917660067884453802821394928066086908328556621751993425404958887244304781849149626858325185793841218837390120055092023528893990534538134996014630521532601194658947583949629214412642301371447273726602506601584130588562578116869707846159364294202774524620262095074185179700209602825093860526874187178291465441220010199405086091779758264992944082773336838095852636360939746480631813800566955506684572574961922677204874395531707781016830862883190220878806000229289527222407878844985820151059998835374775932530097602608666957734436703953216380858895065110543655675533459583071547578580825721836853079832196267960686412138417696765208180082672063501135730615527372880313443691043080133234682010148627681846652030941615219116091539836513086316460983992302995026125032323989740640021500057280705228950830973112589940410353546006953835603935297838439423508245463280128704239863415032833574453987541949342345520429593392063544616071729862948099148881959486929370251927646245714946805020470491477509066641689736616530698452151359612070193372968559832340956742132079921483134026462407221878979081509765853590028872631370701299305421666870736139519245393223801264069041539908931244720743149618135172751756299575291316493710316392540117261391387116702104224211776384747680728735025261818819473000080606067213239647540078563951363153766253821440832128217750730909848469228792385834569014702409324049963098295790712087232967750460583031706429549683594589156952397481454055485142301447934086854351975705800618000989610762870742892027827635342077643019858023303620944622736239236571580315645001459671115480822104194201722345631265308384553224762172850448821107108495110978037732913283630015540479654285120217448733521273687668412345268769909005034219478285849733360803263429487034541889022954321751497757455623785532090237309476351381293367547959436754465207409507537715890641385305096645452149127113862443003470595934588082819858383890356012002971643547811655557201997674996833448022055954881226109313995335739394989146840846934813608426376234580206840749195212564518312087253782187222522077740225500579439883801037122219448914605261552089111531593475021892892849647687680491593932662846105044334762140702988222593360234651991720388778770004245330986051415450013779542142475568588510682441252441177756679347059113655091246159219484528665348466237315724929375757061217827292769985168282464652004119888282083016058036526480075442456746478541068125473056376255097319460703573006935909206797962670794962679566711978402770238375570025216835974443647694808827047767078410993008994591068045328716134035978114499244401560766256669873904251280575199044740119938823247738701514663229623015632896222490244092069803741670936234660974252494310996372109455414187037018251876717815307619049128877542678195958235653608996042950436549611236533540514991675710419975331157777004312731541346702638496824036781200969824257493427650701236327331645788811955482258713881412585691651573749935308143500288399301087729320097401266511937838978599899063568388904255882742876523431654255017778278414886491238223096430276024904844305827964790866008772160173322466020228527784415415335513511470866777928752682387813461178453406484343458726257437651919237568874078320572404577793367483282251084010933654279230790757253153323122306937511201172372494992937324197744764769531645225686244447714034465655742044282450982935708335847693714441944960689140074120142963667560714137469650104523270065181724775039734998718698992513082609529403232231763018299475144085486634887095512166308808661766974768608311476759989794271682207304172194790895629850152509727759660379280949906909452916239032523141829610547336472349510280959619627781690997095647809829393703754654222960917261706421481043364802518834737946658713946161393112731364040397906538300835315394586521459167077751055019745362656407666157747236657648104599571742462643040355678350087266204472534720197369198270620978099288434581287518293988732843274402316728168838236520996080343786559907980320174395630373360099775977159442861909906594819655916732234538779815802510836324741542482035190447826995454277623872278023445993971088567157902693804604712712670147570999350098458756476119127260967291407111850876119208959368288136349395663709380929947440651359079969263827241251368849712558804077693424120192800586024599697357117895900137489435805970788713296177604515948291661695153755774511720264715622780670368022954548633393352867610940880569609970723153027797232443007744269063358311808538121568359333927555171074344017857636415820422160548496828334626145218832684487400211102665370751104123184091239474303949959107494315782001437978255896852474930008828784882501088293420823499268652269247936072294301410327777812762098301232609826641160042346499253015444251344813814018373872620151736971955241127516125651926793475400336180920687319537852317240248169646207823233496865134565237555209954041057038318514882406812684579321092970426611563967373354948447744665085881243473383525832264866359583162717703335257299595459213081376675388926795522974334431320742270443942887809907139298772132107267016321090299249035609543275991115872375422791215604644691927172951743893816540944079695472173154866847565763915569291254164897393155396311176336206639317814382935972628866424719197753777326033303443213761097543281529747534379667387388699650829744156959326356276849909302028628766467470263736264000787175030107410557972498120273506267708574992547794839581246657644395411371666301900422333766373330870231491765308513705001781930480471158268140092982762522767918874568493046081543808558533866254322348176832667154506881496462871833129358963032739541722036961199586246000457692918842420060730899749553254962533585254379721550729764585930729248382872567466524901859050838552902608295027289934238931758492186449888780728895969428748604431713785600598844752354479091969102934065707947134394078718939226877008935287494288912132002622847544510675375926304988939515143281629269454772176232875007958393176396471515416242968080271496922906633494863017603709925269665387512318797185206402397466047703199007180205160624028112310505238299227784486324654845506671471945582142894542057994301035447994889889787621410740841762611192089109964774033994823171253665759844096082947507499577845664504196249590305131922066392340564629834698848222838365429708436520218735648339917684307249147809776386400253490232591844509660665214326767804862278657328021690903670647266918403647235941238135795269873202098264608818044251470464092129153817073098563717004251642162919836267417659915746453984138984303385510986998870968053082122182447775938732203332113014269810482084591825626465477663313537000528104805953753258073748939926697174546972455267012379858186276168929338217124141427398736730960720199733599038924189025886166082645401709799016566423207115128021695923957345367442114598140686702358957519631917787278508006598171156382042570872253293289818160839877125393138704287352516548693833934183037681424593372143222290483951267129711044744061104475283837515450748110728777175067282416291711970717907144655705230830765139263898560753449039180582776406164854089818979570875561926634273761663819573451180686957640730597686304175755091915486662772533974969234231621288311661851367507660322384517982730134357489253404603320526060297150233946239690316733323089688759229633878425558106026023899421208595741116994830128323037520031578741102797072754608904771544725212046037846150619923488901242231317580426565603954032987262126230411781520140968619545071698234107806680247057265847815937441135151498802340117785392834685213773465122299843087979359288987657130021261570482372928294123339524454335342816324208360431106764407179821963356074524157667255657853165757094618635766793931462116634812695027167150334352502691150979031178237865368958611143502172900319239628649211134057871580355846660162315137409312910465962128114751031221587635522781172412177812289956979759465584615372637081058342284824410648430576094740677487467038349199220245702315256225427402414264104373842402653536333280715812149730377966188116965773004580748383992769389480214035945852857471087217447289417869698661568266049043193249868766472806850897240025677986583839438915237719935616513732334109694955192821881248467267317294192437259750484137889995466377646025931606081032710427928073038427037881242317671824190920384514783541919412942787020036615051165902896212638514213138627549485251885056751111875802596700237563178716127038283139767324909694501996304017272262276970596907858696439041235138894039001228252713971218563239009909147541092877855130406757896635729245497553916146559901434533632843745706842198981985685874581130297475841805885609272679173849781673462683494210605883203806018135605836741579815576327962634374826578631362869646235135686503876338156935414641234774081116080698467221559729856850763706242083278524908113929446086833661520785214077479458771448625317300010611240018679871727209029559066058000874661879676998959130266413494220020000118860526567153364929239040080254278735780951454765065216632529536251457958377206353248335286230325492106856822080685705952187744341631802761387318926543584201107980728341964393779107671770971802290727879779125819636639304117513936826915334301632473653877269022201975154646718292207276774680366627551155088083866523322726141386849776246023302005746906217676870804470230740066902249148601686327352100895182784645554382861157037084860450663872719158110483312418265407678260530723920263789333933621924996867774697331833265079186043657842159207149761688853532325010684895219770105528749281328550343769192748867222159948437011803635625104180464003465917565294888899665619925028590354008226105740690016069249723056769730240555599738942410285452949435452736458480043364610192782911349964639848473205648168956953608579421422736748931777011346182270897729585930137842925724227512585887145387431419096122379375383724394153364175465914062118222578624919628086072946467712986704158328571667975434357572378526753988521542523424836867331329510085882950705855741426480171560831457075551644841084971467674768782350774424811318490297027280366104900903277458813898800290858598230495370385739391596242821983145465660320445026189618024867144853547715219498481030743405322301825908978899435837012291290433137237201965973587626527479999005265479888586232515423869690020042925557303962926679663647832220569784052035480900595125298158940061690710245627458453563703399570656529836760773547156539803383259594289196404069773722529448812069756141172448878877161090877302007876721982564372469076842520628016947749892923141424438915455202520587514070295627703344779465300514141086936904924844407213133828315807608654679119665607373955314517070436939418503481439264464161293334438459003220079243171595107872070344302721603297751339733559887436482502223625262669800943802941361756975164756768156633449353383903175469242718446569781688018854926670085311588315480652760966721763146477173440534178842738712554355734362270383908011646287841350810606427538819128846732120767967216045946112125570320127135335035983271682891628901345816913664866920699684668167543902019736506039735432206887546483358098089863333335758853574886492711607021718449193857807435008916654764167650000985564917732731571046445319498629539484181505842515543702331062110622409485756570967465149054022683476761664119271546197788974926091519065448995403498637125989545866649506420811845683177298766207602417526515224688081783309874034963362129252116399883805820584074119405077162014032971236709328686505826812812641205941713213275126171366508893760991694916757784659759033644422412975737314403051612491919139249346887716661658153383482678586923544058389424522820166880744654447814452580558386221852686821166215996894011929484873931804934048479601256092704088135984342034999383541831166475722068406060213378678798857261177642293342035483644355165983347695684390770031677651114171573964525161095521395660761000740787184005450667734107266621298998824021023027548344934867002890965446710065129801705404862861252519320891894633679795744353528481336996242343925652868650196915884916849612072234933969495884572799459647799684244361322931661748040297224624040658722671371216723735162209118898461737770259566825299604527601342355792648361321668467417232529881875444138747548389352525933625603803422042148517191739059478026436827483229905592049867974578068914460051482691351926408608591345188469811026958613781857645576671114738255360577739497646683268607648576782901613827394823848423960615600414947463781674195113465559242115542894905873095215407231107486140262960775570625562460984152991410688490341721292960387938795247759702713536808347253262608810768906060410133690562485651934045127406648120148963948381912000501716997192242598388082292232036731786231700690415299819839407594922631062967425549571300157280609146280652126085929211253523769976561980319295443040131287388476007770516482432911266597470851507458365143484461084052225148395382666940706042874732200325871595866088711345074268830570835629920454797301285202398301058871119412465982347888233052985459218349416862063971326706613018144036155653218268409024422849431242453837951748408704013748531928841170491115154961173514880884078941161906304883216219748127813467166692216039863254200049676003095840592106162647303351097572019593554831047462698832472120468349551739800658223515650213032540317661780491246442110090307111527461064410532754281360909960793838763401644660639995856691086573066803830094395698491840119791957444812325922889167386472812045884673968871583440545197948185996772214112152162862561800911121547703857870040270748471668773551362709323732296535618856671329678216212808739728182533274636123414430905418969377524270958188606045528513117804742924977040955880481703514511319352152419477921771850934914608354059186772475136204180284418601926307886707352725263353950743372845733040185393771306156962444955331009406174940709707437476706487299097893093949715179863575983926190630439910474751906821868031347109380030930591098232423524203469318450530456973959202861713793284557054037130765233877165041388532646859902453502590479129502229418038976988310377384431201358245686933153019293568102169954627253633744468111623254767477849678231657422511352624016541739431128347701948044537439978616028120774735996521191253801332525530519851318712265861559015817454286589271237824121163498379196354600883640844826956510470963209764300977935046303232492283923386153013324205842500105900818929777862608621394921903424114371853445953368229505255701820966422728254748571796072463001997329420308398791596318328439976297765725864837860007774358072446689316138744393601262068323914494737097977016871241148322790930186711747554857463598306401020470810583411890571535072761643567618671953739861230970737993928204430134166058742884482364509561782383666670837972417503403898422965501830448221265149146452260997959560611020751908253118736845655204240812397460844116527732018144027567237900456970704314212765806408294658959345009043287082515131283841076337247063294990490283700309144182504299785792252269468092502766075813714863765520919807322228680967597296375326744862814576854078559031013449123350273244035099285471218637000780976792089903410146652719913371245902110691242440200844858061599258848861744524364714886916148758380435898879390318542531863544895996365900240636491018727222870018029295789572440532797931719910961349699429382343745524986208139669907818355593210678861377579395773384397913465529409748263052781794772940460747330691653064123462076118135638336127744210677490100421135262520833076624569438343480423149586686822634956141653585148370374896292311738373466510276052133906117300396383145426810707161979839386467808449084154207513841962296469722704632473932749379291067914765575652364875988714027539582383179406339225482267273728211725640246953842598317275387745664312674233201439243480015704803266050356658424393258596819044447253228972547288004678693327532564593401778897903752549739052944583306423100155369347397678429617609936516309275166160674954019780344538362487951608407885618745105086052077316438299046300025040061095337157329657456169017458175699738784214211426378518529810596268970526395221125884185001531925726371349388343044595082433271689374376988249530657396747088710854798635036514959191016438333141137766430294623506370283060804461763747508056152355648438719293071462314298120388152300714744782199681205303425207121559071718277353652301229308588752257593183081285086073413545505575026702087847375080371250608122014996108758551026846417004933686382407259122239092574068344457113829581525231643849774544487529870461452866412064059786774458924997566128990913357977374756439381646011198060685141125739710832008525066478193522360555820418510226564040650608007878595639883022147939879186301412179012996305154088108536614670952705501681176629075725897648140665412218386634036372095749373842573022259815144289114854320645606812526268988943207178868780746204569995255961654421573728653861728748215497126637234919171771664744752413995086728139562199935286219308928732199604095380378223682037878865329408967662137909352485400667335936670584393446428345201883603072220188918510457578808073444774189584712640396714620249503919534086399931746574229147872131572206956288927463182165367409412098746439070897255592686647542215919468579798183046769124930360862657144316440155222720763646341918574782922483996733917473183656845125924734984371219868422260646387599883241345750908602481230061180415597428436983701423032561886363528986452665670349193591073969076853439961318440809166941561288150460621564536547793852352953641693018296313610399110280727207573274697100152630459471050496027586704091904445297683827964996190989583552621223836408175750239721770073925980156402718885316449660643701052975558253618703794740566570147885008197960086046745333958742917383135569549189420369613213877432571339105675025045870258343573600907777678841015593096319388714685424661959510887452907393394980884577934279446835153024460217651359470810063014786441737509940190393409656833944671940933843325412586871152153233222023338023789632082780301574879728860723814456717533455724067707289139525878667744421819155328066015045401684971120509418769279685676002499893463219627145127120983763242038595491578543766747081133591269350988580615521654198285965888706759737812998535821945597975093233459814056533395027207292000584437125984060488615358217438175410109762765606771493275496691299684554620397409874110925913777370389059313531773468329652972836655498209726865051244229268861239735477655904294491524446431623583215810853743993903081768466672947612773249432555317435135615104401528802570220580054934153181778333350437709223268018239314448008225706242929139806161366356441001867035937661112438333105113257569442303003858372570202608945998853025732660487969039477904289107030547857424272242868255397137561933472145321357453529531986601623491370874354684239701469573863494466471437451678441767982324821834932419998906853323680564946725851972403310991627912733500147767644468032539588168979631375018025561242877946048628315413847793901208784702317050336682676874219388984146152229897598669735724175731256469015096341215862217623235844380693832417648070528449243743185717475257580472032957589919512925413103602008226934420574974594942038298800977659168248228620676952483791278464667733826726104712605587570707185620227113049807965399909069025998894587304905169243720543103626682552580404302922409312271713970959326350934133897355924184382086744120208210683829507579188572977765420700619492648714098215491157346099710128430505851609009523756521688651062214500441605667926955592218848431055714678247444126154243933618420681683076305736075942123829779469023561462952799550216710296667134052736160486398582262524562458738222241629243265550939869632362194024015288207565226803828529253260393407647705407219539222876245674220432265441711727603555779427285419183589970130228354687269802097301000425205880788770220093949355020217195254639152503999015047499123027423171765287318838662737799341354767343095155782912768830212896295723071627646737037015554959255222911056235171757498342916888263803400079778706204597651520080047978097442436235300254645700370228651986730194746462814316491968338316346708496783836054046211170202488549398322456942250622266249041819248475623193046885047047074287548142984717232546201865036105493213959136194477263930429087783690275276583324352839443414642052734778049496056118352433807268063713595816051522226933385050660281717243895580496445724617302600259695170343417229556992100917872715950312879925220788606939280163958385541399015178952411172610577321010384490991857809159453910528546698210943898013981581348175047851661083965989106204179507504685569588863734617804506413109337626702798634984456132154931628050095450452344500748422691898905761534652388572686235368305363919635904613359109459375252457821049313933458104076703685898567120616059062406639003633511668691091895242346666444930082360629924150440467994695183617827740481554890330212471316425431646433000818676954894215054210341155526062125061836100627891258116449625552057823402557300375084452734647017404106942096627917429010866512434962369621054341680531541679812879540423053107572050788492402974385195210841685666425302748768633773271366575417917473356159933261286233134071331944980808528154054319403184066251157465022040203088951812407778217003760237489145829304732368977284603733660424284637010853348260622355515828173825303499328314249547805775810729552823057936303696142540569450186580676890991021643574264687679809048573876311084659991055699928060124569513824358810105994975774283131385465929155904412025917917522515373295444915112849112281602917931580991782713922610498111015506217096230208268037966374427243682381382065577147684155462784651824882646057529473705931463805789422028073366502644298297761355939566887258810707759138006864335291653069690136833204326947200511304694827496897754714441315777473406919622226014588015308721336333634112915568963898983604184861596154744407919833277479488958846082688825557822885319192484647457097198793507775423874028640182820958127669850915077789532813755822476386740230134185710185277219021399713533356111454726039585316459851208014669770202026358231647370966392170972039051679650393840091821620579546910743957169086481196657324778657229444225781226385711265005417791983117772883775811008435179236188284161381573832948907856233638163051744250275296197902362972920643254759289630330953045347595621173377749045269929198821365062375792075351213940380059117308422715420548602405849315397087679153537651740080695833134603429230521413184517710133954232628379855607513963908195705342585270886318694266758375826349529631275425443071987562443799632658697306483279451618805333532470015172369145202123340732775776906263569993985458944091440971122738215814029916802237380252982927625542673613315477422003378971336923063610924003903365939986457173246386529362458628110369478768593074075249027752305704201920419716101351364934542780657953318799201755453558828035103471941870320807667346533922160230429407382874686053604794268855504408989669728276671690184896093192670131998828852002694978795242491891607293642960654822381462897866090182683308153503194450340108799498244619351770342203280916802497169964081982924739654551007643762059070270290070515115073262034178970214116676553810080509271231439210458245195602157434224692620300486143032528813429847287786356699800178744990467399159623663932667273843365403248469451663382868842630265767869584380591470475216674181436591990175821569690973608485271708962794944749474785713383745319719922782804836666872386320689625957552874170139100910377838893148162311751657007301884128253888295249175992311380123884532887654326730050346878115974070454221199376187596104069192115677597036612162238072405628146636170657363313026447159476222831304848678117048451297446503370578715563872639368905301054355214912005796597668264078614287499516588673766475658746200292277605282803411745770633101724682525911218610112421737733333283409465533106595539466750644355777743957271943416015627967940570968425242099818186036485262230604262220309158267231898570021482574701687127110071021591414919487913573259971535159837031687229724958980836037128125540652959551367339491352847613632841146191160305024992540520543136849454852011392426354759738789586349955884228204796399015388492042252288818842054932074917682668010321626353312061535059326367988634820249740981203638768017627209970366336195988917761551140273199912490615534556308391760347571150729462506141071858428270425829521879112723146601710512982212319967085694056652976578113986067730069900204719963700798858726173962578766070001555970060002622931926774761660496830815485358313928308407367340496733265609919364509646672184757538638283039378238345465839491456232583544055740571400927599868523492038488150907167264043173501407158653363048429457251416397236749647265702415260647028909094632655096636756621791690998325625725767085774843965795023913750469661591039243739714992242215803910789395698251453951367912338520926010453917487429536640209529331410952066991598001440553921618331566059485296700925864769371181876662785047703353610913765481073985021610223778057503887970781797338593271204440864387139671391595409695090674670252367111800203696377889528315140235489162997261474642878910246717131313015288653184971067323394741807142279928425507662577939404596355109032641990933279517883993522355291209895610819128590431651621413107458429512374640731863115646570392914393055349803776090614050393978365288812159284120856164614873390883295783518136807830594869008810947010260984333862756612871347784370003098548847093289458504627036789957952898894764074279906704466892352930388257011131968601693392393489463729363987806255011392538014811607661439088248992276420230042684372284334344747644491826136338793917611245514131104044997718317688995408781313765421456551066943949413757827478282390229566312741424787400494129588384954961281328287479148620221583262203164777032175353664717126158753482396332162765111678009744784668267234191836327579505339184231543930502506452122742315930564708214055220223573586884356934816510904519106902775396662517305382077160531835785057966830244604314340471880149695431925080992164060227365847648409591357887241339696190963952448699991908903688168581684888507932016190231471108361872699585182533986290039265606261906368612513297046694513636381728588609642819490807669853198751497139580131447551841166649704320232592508924632779791920091335365542763171034118718570514166067496074682041558914482412300657768259528482755837453821974029477422697039968049789145970731929400157435237206557196819130137806519528824203233491200996188979431700979196651530797499275518444225232419703565928440150594153377308197068656867587845887551570279268876647685204039812193589325386018923734814807839132690118917723379336047885880415389112895829866169022211322567285059585016592876148821929632063216258725154640385629336919291258930859545489000408156725859839735428804525295895241223572001155775649179286734683401134396092882238843839761892168699063119805680908417492284171169903693634510126447031396438495442180587411493218792060305849333057946770843911812271826843868086194720111348160469901214686419524368745866185215562658316927346583181552916442097966067817341191739695819406964950120670534656179582124974251645228656944119429724045259713877659975016267654625268774369626036841351272533220927079303323505919620081676657264028738272233799032699873491101466743724801487017458235740644288213088363535151271131009027952595402624840354366108319208241679567496772021286192946211951636376094114594127038272672303350404921283566141508682098808452922149689341771427423758502287836573403018535194820695009198496726032866139542730204807694816986251914491093763144474907264193386530419848287159825916125710416942995890483298783030342970133914462384984624148357969279005218525685733838530010494234417276105149740354383094865948273465705842542179580991575610636881395063199885072401117620367516083891625037292582655302614835172925025750655277175682104602524334948524568469647173406300800186499604086902900903361506510903775936346788474005515260116756724279968926342890335450945038413321004924474715688567755685675627895519565173584551831961877656902522826696484609672033667605979274687426863296597853828855818409677961862861304286849673383987051114649008998940235545852018434487044010800690329611704971464283693368762046147658683708677698913158650559499259434870453771041386437088322415943141670905154699113502356464015908646173513342168522070485963691989720907022729462637695316699220845340793916265524743125067248558018897846452066925627904570053577066831980192555206493367619293610133349606863297267715228049235394396925813449579913184599305102320962015750732673938580556959658192824676755727752201611054750254283645838698743610489442825725180676236661965726452090430607027826401361340174527076572378281862066695513904204191910119715980338295465470573472039015136266520056415575184309435789988121306270603855669799306010119123906154834509378149667505905996448096279579650287268556172887174490860483418606960641824252193474133665045745368220285716602448474678708377497693233844758655723214098368610863622877722610855594383858391085674647325463392772123895542109160225732416103982891667744488770296887405158059197499314229012548738875007757366462899073656198908284316749759423253569381951422288839851259589934246608714635818454441571404905131412995552601837800133578212304821329910384506695484789022715197211981638269739293506716607553374138833118778025934637109594221233839286191148142123750362178900127684949780390464966112295193227585499128572806757326918297323475004305463078879438378211242884601239716810226364428163269849961780866098884941695609712226470631456076159937083068137964993054553195219293733536851912294143899609969685639312232825950635046126023155081079570641562857405336744175948701902538263876320986663645764193472007112410334307739614718738960339357596116281818576084318892103467182832342374103447952965364600726940462718625004897727987002833099580185756411564606276505107042171156716871355400842116698561386133231904056636904524230449068205751640904560247591585659087781094910373589641638851005800020145373293291646973106998576157206008641139713684019239850942202950691986586888618971853241756447177896473961214649431402550923088977654674832838776125499328467851347893363515236223988590519409444765229881706236238257385748507865155636191255435214232449722478444286280367626681981321860784022390530611661008516679361604474960855487530779428876164373536390535469724080796930188661298071046727562097715039525991859310959345825133816318659693130866516085774086459112112195772820675832329369806865953357678886263933686898749831603029725869559542698052499623399509104240485098833666459217505749625646702689072942836382291146330548227088645985179287680274817647888605092052393769962145172225579540493685229112834649782605072726206762158592718729840944773520482118097623554998322696160054058869204310896699100558301193940846432442927356204381162499793293694476033108165510985058151973662846018728554954727388885859234464530135618093431316037643830218846128304910181639858457482673213812382919122810715433791783496548419800566420147872838120640402483356954182363546914053077121973495933366878575902267306072781692552439394884807735705432918381159706199688874319678604326883419534957455346041185005022698938536002085762328276177013023295421724080113050975720960519735793459483513810355217137940746110599013554141697453939257195141755664324451615544964088415848600631466630830821553566779506077542039342896929094881740510385539574414888371759100527555882040279458687165079230741133100320807728224253400719574209634813544783624773792082095334161176871857168858841331889186050241239928527844660967564392518680801865988560400088218802376249391842946102393904402544088861181387599725673218613637059547443182885660086209649939916383996017920866229969396489411634483881812367180380909267415597828814663705286401811267796561431238602564488107082584884859072709249528661599943407118741703955697889067328595817996325097041183761496675202719632009451269536117391461771418545985398075107816538903753143428862612925536942521972965258152467974167825547793306295883142389533233824656473581581787162834124652357823905344252142187324391989456325192338848752966723751670905790647155344925737914101303791193625073564174299434715199362450308758917635841944578553061822967789234128390107307218686069214423615285977830633721140438341563459611200745376375798221102882891644063066117963980716540542684390902288543909687932871949415856837374556505096728727563761168181787364880692723524221686766233412248389911172906548086899785563177778146828702907192627633031312119569358385114329452365066316190222200500361788153533306297899408282777643022911465028067595253142683819964424226022474990079942312603392664714815884297791223613217721585984121626023647096218703800609150642980929847064567587125698127098276262719053967431492798757694525022508371629646767890903714291537470366191853093531490953508316143868868505944037826201822173781691725832580301906405774263281559371241836676799724514005920803561632303314473654549838465840237611424301200937990927067981664258339686727774623200558892856038945736026004853708916801311079319182835692425244814793761849724537244102218497919235632195980474715976966614448046641958982697052863119443307293683402509832874553394112502666388711737119091119798632987481508362223378536788799303124360282868996403647788992999336988460247301070537946607430863043467252250591817402441846034791723378341218105529478717810221270248428818585745562421576564689492118172953816485830903227759145722919195532560158380755878650216849648295351223104820988684132664794152423257846330746185918877708933366775479278830539491080041209029263612683059367039475405293285768607815953756502375601289183200864900421678530744789519313701274228888028157370226794273203464793912974937873999105801976378176719516307440722191236861087890329484006102400739622627786004965395394235023750115612141727614823340713236068032675678372472681679809896514614058331767775047317822934891321070487217034464907954214399355919312370620123210203970826882144412159915673098871672062451371429040617926496522931145697720542842099493328442434312296395681987474458478389811052974519397522441325156439660737331426145931695600401776804007548642716034922964516593101448877121617680842455676185720025901535649760951170453197314850508477500473708141191899756664690843822546530831152626827883997462670590252434966982776979282116257840955814710095458018681009525430735236953743052826395128144453152033814765988320580816658228055007455837234457001519234645833527024396764817800403619408392910710770731707027718187050445252041647400100406502431989984528112283823637303980283939066925436449103713836617756476349312798562886208538771108938343783734586129930828607845805460217790507022504936779524539085110731432468440632413894889199884358166052499661784942956904679216581771624771458220560733734166870567099859850864284398100774982864045926507095939363537507198861583628472107936002421667587221152378313968164998767290321564125421093347173490169592341061868356939784224934796731567860977279333492739038035959722323221692416541788192175985810666323798154620149126626960099235227646001475840019094554481212611016147146531905475203166377614608249792949822845094704589000972469952199961210150099913449220923220985995097752048548374617472332539664327165242447914775374785091385299761845557670839643616555220072285362718031505949521596858529540566510661365285684943942848021479882509027502579150378950718921876935395056966348613511937938103193034854008829107626575960904934964793870378769064515969979275035912416814768689444799682249886424984215148300967642449825381214751536993616316463118887355431099610695322244158198688532110086728864485287153753811221230212487345226430400259584481624537800165945166558927047899242673738061952236617441033128558218040031865729970356755426491216042443009261749704796381633857759651634256865601663172297535781896747956714557400265311436899543158228981397470545864542134653346469953945923035181318532618289398294781531346459471427318804548996003973053257663334998413038939224035252696028309692147170584226318303100644601331536064331875522372222590984241407634675936512803301973064192599628791494863111099653709098751226376732471356831900681705725148444232034029868068846236792391643883823500096438518516570714376198232434901840167361930571968303892639304008643767962293885551988233481310160417903304926474225118112190469665463982328802378975100681260442893228611314697607045507624845002244038499408097953048107119479033281954611370068908910600653691318518792178648403252763651628868670480652375492075303137639938281986794481802264285422073443973574103285996458483593473831090054823410437926991470419991301105437033077088682451840323846909102399426057969506974232931530783513080591022342917212716946631960758237831276592846569236841727671793961278423684915762422283897694967606504413429880989908791714284705998786218571766085555113553180262705495103726918199512199518627345381596644696586405744064126887495733058884394946562442734502839516636486180237309487381326424294231729927000531553165422261479777424039136085304387596486548623736548691517421174608563249535191714518935407819488406377934943812484321640059666871607227055787466355557091694381957374180175116527645775820694817391875492185099342008382936943957622604740778677196268582583442644576424723990318207296795794809004495784262411502387965354969860618784108051593212419435687384451031402605859437454400282126556346464109693011984218568508026676979859678061366757171726741276776051010616059977628062716174995566610581733139459140506143877381320528712791720829588712128407185425614023503596039564840920371885145694961397251992132093299833400083815864998320942968083927223570122601977204144492401567134520391631256015712697188813229685299000342714847293467350393783241030202706929991805041681728086109045424476065423810482130475548228558366943838223844423281445856158116506358657615148930778428984603600177694137724685740335070991621612957196482698934616957337195649204743455510602745378855770327220924843704322104287710362219329739483267461946682123747609887884727562242080119459907916960227602366023978177592297312114369544775663175816522202881239014661658397660506714889766573376059362122206588413275804224142405227868894038435711247126500421946206166041145027478113213667026862140911143568907285939244690839483942517414733449248300548702447280714916233271608870335717100346606044752703693906067143941397859752621653529747172451142360781541943620350718320378288155897380113714824921309318365103973819982402104482668524813577494226248514207865382630310684586236967868114418535453831768731306542933566138323205473954133486509475093141519289700432491311813503088041053987629371771729908659555333487407693395985950473404797211078973989742837889753116166357014913516427170352352175692675680870423425726548961828648384679276157430175110824216411017788717438236965249327413586188976846608909970173432582355461493334704063669002175364107681100990974219780601408363451061155235074731947500396384231449779844972324196741958295908900401111083255742399168223817202235553671986034312238306680579926956171253824752334441820639806002524774542468054966105030045004605579162462929410545520935792722209560845085839927120192546357062668232336516147966012193034958393166703515818795757461319816074174405434901562293010736351107897231406895748991133092222655593417218573542652694984393429038114739407944503593460124674887575017617462655235924367519363533127209242348640826872772846470707712587294787706306773487419173074985106847559619236329156167563354622297869062141974762444450471502025798827093298987170138405825333435840040159888051023353115110279821244512378579640336741649717399302867082337523874055656010383066945727621900526321734830585060155199583470477019341824805579647692535708220207063142782197601672334937634227984213348293553341588817543055253031445775676740033456250610005733140547037578445504967144792096444757671614521538975046665147693675312496993502500536446544749550900304178711332294744116896608846548348060081738435213751284448981123616669397626224207235007330688363757881146899615665155726568478047520230637146632002927341147058229085322548465020462717870716708912586670442219261491157786289032049196310535989151375126597880819461963684311477429923929364202934530034406729528628845718450884504181447299900553147519609847035945723470923592490728840877818307926720654856472443910967827603493441031175759061024816226439735143520160044191902713395532516868259895060581778595902762658561128792919052574964565750617130613308475935291562979508360231824578408600473189664843767211627992387819083659000452005444435056269077477497861131459627252409555573712795444920824967169323891407824788249610905060325729966043227620871043099563195055676815342082901843936392787306431737842535255667260731708709349121510109523210134393052028592438661030031406008327545410056238317307719143104278232862284688410266023861933325466135663335030883552121207748323540490095446779814386860898368417509803997882676332457372536506515426751433477131796642840446875334396820070450976826822558936534478049158603497189571644513232003288760171733450266669695171206165295438109460555163254968470826298978125642777364326040191299054273591207683293320180535432840199906515757009844724631217426496695954356649370131959890457529251840160806307902362998616366435372828214997869966114411397942443733805769049474630070259702937714314408829218248020708094350703721014787333002843596795843432202572780468751258713590077447004675437660558087124450742197560642964844849048087536278970359717124456927511877243957937224874299974901625023575449650158597179965951984517403891107111730164356963490590931626129014726461686245388741913821569418742207768115697413452342132609021022785600999265514974990070390090254883820764915915330714210705165655163450198057133959845322840744839511582572572113810890843786593939855949921683675861176925209626690830853035036278280559147472287956693888749744568117549487787655594173336884293130298238803617748732884666900369275746064668397060544541108233675637741525318121919945978967368826863389896378335582836599790572206949771783216680569885145312295893154379307549431316171367456477828134073760879606316190641649728113849733168767291366286773194700566972412895047538374804154330399529373764504908566065079769514551042767222257798900167963271285536813768914838774465463161524375914011353608168448602844097145640445138869939781654394888281670829545081039421137221455251565527970604397976762509054584725085260837009976060616294654350584304457452053893682838787265429559663191569717101621645174222790807652235054021689032272365880275413121051136378398699493713259356246544935859607665256958622090477362433096956264697370197195840620420515915091911048068734251623609963510405525844887062299821784859934531808435088750559519421819440821762069363305749872860645038605598782103179458089656287903685228210636520979319994003168118572695413758508534101735914881819906509499291684551814583631814965844569643401228152521139164823644989496156265112930629950261815592106281142374904871057516454166778057136007589203226175024266634327368443182755210749749976165860926956749229328279246869069371762003355560387092882192251063645835094346823793575590092448392796889592731965066585518893545548772830641590054915235198012827435144767114151669658875228894317399412946993078480295508617361337309823996662971895997752135499187868921002850082028779034774822465943352520320860316647977300066362320913825829859663463910634900889677813296870325847510809594250838728759528745666173478091473619006852274133136745662804421833276465750785338620134205439659144668611475820520930949948880056000311628877138665630582992202719172993151261298069435639158306340832648632061627846269116903257515217878957815737802739679842319669936334818747968032329022361134452037707720206760588079791011757204568367027197326135661932837985369099756091498269053899098270974920567392087955843157433796494847088249271036917378723908355650527942751148534925780538874562384410390786812892310112250529940746466784190631112396982637790188802503642674463642891558690806174211330505444543645901892374275192509907975074706586774009615161662708883081315844597729491970447429903825110144410449338357815718410638025247665676336488732478934511831216615480240009337554129178271270105868480645052074430057258471283310961406741116188811706096406188423995766162926559653921632669542919605038391410112632061278696341813811055408263038388722821466086435945253887824491513803756213523077741039097584868210718157459564315120217671566245214116930587920725427262399207142754991374369450001173574565383710581457176164323128045936497886499000978687739283865261848828473853606948083369489234670424924667643145776421840552714888139300935348008352274275298630689098513704799798679672781273384249615004547110173388212509121961264300957110734225288405652695464494664253567686438753610234176083107098366094878875605444343250620384662385324483636933038438909940806312854762975649675371255375675739233106397149172032816047824111584815683397619658628403409467413082759711167209063575690058364463296737369087212260463769032312097631324045914287562427650922725198390220456740437259640016634539506172453443535034763672302566066287479337114357010748115783006815726053840613556763149354780199146944624863356495695733627567712813308572957602886644562244760328395910996260991525573571046715435118217755462071375107377460033201766345855440121024197213372339801259312296377936612338488939992866803739431694529041170101222873869391576815436674306473708367623084483091942606993616332809932210323765092878245548569483112229210345824685945813504792104848474278345344679257887300124812505965476896495242203454460279200567879840749223823896746699318935333747865582886270485520220172255178927087985932611593140572640138750897814510642931160774296185723336899707863980469029718440883685930147055746051393183458336103056545274054945156129393064691243049651814101764342166149067099878056791099979431582817081368816124070772958050771176051352640783218052236964386400802711898992677179129875417060856541929406580627892351377129258990876201151755859216007009852197955109959135681995607026573964139607092887037232408457673500075373876185196310711539457864536190249792228502702648921826459207161957819547634946276783841147445398423188392820247426451550133291568571761448092103589538752768034217388667573639898713016662855058455004759988580424265051626777221070339842065396613195607828833036006959283128363303974197019060980937299566863247646838304122217438310437939088758914606146128079210744186477870457128903136018661242804834748269118736774414775269811911590062297622483870070725908499127239288557264771680052515993796195006900662127983558922415452924081072962247152572163588268071260552911480852110342760131750416114614877907971372919851305948845099060306199681949777060518786862030284041384376620131905409119517295974159081368405744045535399000556999180068946789416623221724286104355289576612089199629286918434073709180956117029336933651593856130036957937282192390898804763656758790767318248704021392092077808593696351599780887963848772773511216508112536324451165744226620109959229939371833535722276680591098794308405860960464611978658745952072451034104393844079921051645971352337319118262899464047817162993917864015422947508569764966532240332616438258612194760878383217106376582598970687361611297635309925953098646583501899135670513062040970234069444152790286149586851268285500839350717306821758704002085139605319386248950928734726194584305182408961727882182343993484123666731211462530447099491442479482605383864068204460668764852972344777034005767775886442525230735118082658324508820745949604751970402991557376114695647526045319265354201717926657021406750206577534875613416087791674067995200025153948333845487753991893825236494318371914822491003098585562085845964845437741337203217238644227004582237233771359311858666908720608267030660594830143122140834270516486780144543063827156949641331905430502774522190343904809734727655807047666225197149591000499555887726840165993385149230976992402200880409426181978959406411167824789107666266629332532995006164109612904458252561928157567570882032587180796353611038128700544506176821297163856524876847275782638685989035912446341815061921303434129534419648518879681564415353420417734582441604675790306196956535987911381098589949175011988330453481172611070212199839428812044011951723511132633658199607726610786555649982077291620675503898557925542013073826026948832922138040356519246347423880851105911661948383684883652744738032863911774394053216147467088367082537109135356309090642968984087032070745106910344075661183991777875460647451852105634970515084539667776515184380573248509347467222227693944900038260855221291473159771589737897153961259087835672278942015952861567319157163031596872176216184871760202188070636410988558093148109840313363604940302809102074647746825362208292284101386791755908581628835538498227959126737009934597337464347838427316757417621638602159646410923319080705280450657634429199392844801908541256239031744747476231384294789016457545005744799712816598414590782660747659648592222646729009534901813510221218978619307088840548355658100688297289645768835111115748394524988928627771314120615205882786632372095400794266250976566056803730040138834272403951526310008859902379710204028239389932729682285309763421865685102353384872940993698856256055298156875456132892729459719825491456565520059895448269028720842305691792335554301554885482498350927902820163112566999904453705721912416264587654327829790312693323894018361468000884564688414929692705214321745434080785943261790826078863544202855799727267512244742821820479537612689720291441593383376919204686044795741323094496104324922414975417257991008689719529072196785864287056433764854551074890403065597219411861672729194000641607932458046012979525918983854551404911334890088169003755143987307850288088220242443042279279543049120317951776952617488062904838696322450214177162175477649212473236924676848266218645144884795048898037088775788086989806354976743569488553142434081592645583351017850100418538682334625661288531497083671584247027944659230496228336967676900845378161846399877019217112092815311020977996424799986246726538382731917695408906669613467428382488527985448253179325961978857726292598459504088602525271832700348018920293784885471757625407485765733669655410069644947782335478462837381687282197363493930021418070726025815030581076793931723060550132562973456216346434593601743517341153079355170997093023210620857457268822146358881659164192760797516412680498996265387577727814782262974914870325028464924147513750621368038927176798885712450557796223403746177372946420802032186465001328516533727842777497294677306906497667952304240315629578128060027544102024865387657111831135862044829941109098006486791500336912518933799205024029348806809665183427972075535121298792204330144890486165767646522797654488222362065903295288078495689760669934867215336969529704825052667414363559808389225047469868466577066149330093258886840284810889204084547630310488552612139979503533961602470470768985109164269560128844170295667703660085411086959517047214633155182586429199564510173135103979682889072639800020558420137000608702608530824939677560872804684671504096723400721830748883990150016500148743911174617204866299594909327107110668488742399963126300702090850096933423282729012620060505553664857578299099110034228906199867623941601832776942079313144285395903390346913907945492175590795124624668429405774596863591433245985728540415356670708134184371743593649938581482106600881462834542935288452182099466833679779379853528844602458109978954691415727056550229096389593047068650707220646871587153047764640222654533355904227904243600312281683323748728349675654692428973892645068221881637710664653517542487027828991809335413461296368233786293710286332148031651790459253091127337133165187370180727813027593496762121773368176834612640814704597075657141590276835302526713522866986816624744691193446500342584612731022360958754011092265903476184634879181552033753902021511815705665054989640101762118367189117130516377060171586384406273308026253187606476523135985364022443023621429547300483356843617741521343884123648697206116807488462534308090277962922604733622829664790625110478335583527389540477087829965723350266413398647946437468454468272057779826888992670515964007306403212502808141529830092471906032341509233856636540107440373483380274191399835889467821588117275046809591192354761592057008946122590831233427276498204157136023518488857938931331893271275140720179718086782639113396042290219478513762609116818827905397854024740435534289903954206577621211429405251211077944236461675917937229885228516103685752446734111984115427401549122771952811043836475595031552790586581149591558198373976715964585475690344444581633416724632429574582123158561223607139211744449428875789309217916701652023212259693178234252659219007043279874997254876802512598502951925555407386369471478586643667316474021699639624919469294244506152269418543288035374215367869014266273787210109005782489366396863349616486950311532775910935737223106718470029153374683117864961545859683581426799195519053534265333699257032667576377556504736747934124977765192065727407603288505379139469360279973083191371073532385131963331583880199637942747920257692028159747770724856790242425031274881037071754008151083790939211437571093748581520352398789299948501939900027018767236820110048958622421075315161348308220883978044489862367785297586235275042673429756727680893358592898903197468524232904989755399823303915571514675562474956061517546010039334996169559321068857730762314894069965647317349383730522251237871643410807966448580696580586735786364309546877014570586016209205766363757880569547262271297335739778735009487929880128084440352000651665308980759318023774593268640116833063698201617475746762662094706149498065796639639348537760214378367690735546714098713376595531243717719304925010537974770087371991499731525453788661232055748877208282294805122070635088544906361629564792928487891222300832524363829714714387012612023104055560782186841330255581305494951568536042752919549187016519715448892888003734680384966607141130151834822074385888383034128832457391165647727170360208532010184817334772337813076213479466796425641897823286184192935581465026601729072218392508614542483755822789162352625953256484825678586078488726905414080523063085810116338868334600795519216603624416743932639662317068236869013419303710821896472950869317164658397202819940952677395026290561069727088212801085784485118972355572141444409968565424002647079014790145831595813653678727564194912138137191213659253473134880562988709086798186388801141993490087864636341130941990171645599825868799032486192724636412712266941362923445211809951445408361114853261480684813714595142848250395910762345302175048417302907913510422659187235515592038755159735613932185778228649129658250343531561439990656489565419126633827615625626497042258364453875073421862154315377726232711736479262250546097043379280274709667589190115439499213227751362318650032443198018407101072292930800176046542057250070345966310749169186260723275621824124919994346137307583380668986230089037581815251790727315468380825814891250476486103014558038240574939717206483768483920493490724581302568284191045603188094669579197379306855994440018475594381919157253167441381126312207620522641343911928951667957057301178179842360038546846814753214142926576508070836747853317746125641424635605507389451728675049329265768623213905314926731230345759270115868886110454224453851125479182180678914524077379060978114093583789989273131614985602786550065867581379470002279019681793199559156895356389888616309381150568175753753379373417230747714524989662194779954182698051300468992418347743517618823210070370037657805190137941659744729139846196559836016002653627601812678005421292091316674500815612384734275047544434686362454596756684716848589078226016882597898270950877278762266620595973652065583936836007989800619315944087765063384387603446459433527398795576706036772832084452124489750938225978321494203475255962645425554560968932742885676293503139735255514594259761890193501254786257070453632836412987208761268257780936531307986486675453534677576342161876479827459381480956928501271819716586625262536243321680448872498480012479623307216349797309721004171071889083029542327754140388396431342735715430521453196377513766226908515470237278540092561252202702108130222443394160402817304928872210172051193869019782277704060751635044727964528356855254256687324831454339620985015158374501211526927197626849131229220710364882020018378581855119710162741126868312507085811617078769227139888557157324795377531193944505131322761228987764688152036574243306242800977353892580647972744971723632117824740281243340500164532020717303990227267169552999321219612312960503212026864994227320975977953316305769190461490382630239510622326317611009239633445674088030617198168593541248910624423349176276493694087099288758781565258887653578459384581113048929592203202669271607152178715904173817006491719103121501310240654977154642857337138178136220039053152977569497722120186769003289773079386918346603731349982920403937588258583390543811046262099339425266913619423122244094824280674429075007747642834846116955545230398916902198368242694205013345428396758822393772345790885153630270093728921855399243870583856944535589663824403448580259749753770822087980089243448903684551668455457232560138174812162038204416354099588771161766955851609069695330353312477403033619882604643341502617318997218876673716019099350127454603949220680036149236380314401910801840262109054776618002012187944746724565404703455332826349814182532472507746837244824981600709785189458675235029446566787104846721659386990221986684620912653611206739885230570447918041634152842781959634952892521215909032777253935481723387117037354036942847904576872026930429650253506413737720329801138769057489655416797917805730188057209408679613515681577192182274970816715179735118191325950633349129925288143989640873736236975757685850097174084419133638368520927004747215998565525981826404527705261859971626211776088792973657712250226047470027124063523902097282379138442330116923225832296103100668607219685559323021681765855036231804020027890358323030987836953767906943217355287860443498299066808669846589801763384431601746993986353776698874765129305281685170185712857722364121858205710946746404224021446865571279276116108455055169707306895827307536783456210661478526823893537073790154876333929226588420914021022208707377304733742098867687783820299043093681728429271615392531379622470193490130086950199510020628683575823570303820746613171834927456686527802349522254826546403668190420578747601948683849260836289363055251582720629078797450183597437219031917772734833392218627095399862505371769482871500652146978211307057397809475154736286608591185697714481805584492908194723394101714847964630281966688230523971614043460537229821299228677859952135410559829864075131218680331739139741964289815328839618271706113460534173317565462126541676855840530503980676093608683069641829056066576015394439743948715606106448879838848313569915458416957147054859697492001627942735876278238553493065245010423071658937827208803378239200960549894328044523586400022056872183399829144333665386415150685934032781000580721196917616090596747179921444485137270886529683506183733712670441032082029897613032632292622955817682123411418842171944409157962851727056398462387773520189222301792817388769560851534017889302411034129666302867849344572193384771355511168973217433227418903855959534032890520456426091836306306320420038421936117161886320101201310325694177727762579106964089988022040355533944090896996440162290060891338388625050150538560796431927384227999265870266882994303498446247364918784831797918608114861665219586242953548549965544108130594864093016439480388758459861231120757225742385910518982334052739866026253402882634211489829754977905707999605104436128388259402983631661718818140968820151762126357072570860439730368313720752618108457480093622516320102599850320426701185135550105176390208834967312066183205180517014574710174261600426114558850250602187287336511546603465806031526812584002386548592245418989578215239393035149147998807387881291928941615900093202853731588918219885104134270701779545309698136656054217754527124091269834252948601243359791670297462498998255883285613075068528699277724689497693079385758274942891796750435534566772175780931089725776948035123045294191514592312475414577146450728487451819303936284408936237730571554582447963855836998377080596918384082866653996515983770499075109745953118729606166616381893646702151841493365152709617760748853049761230230958709033217700133372853890231590976138822198829440886622787542907883909355636149359723064896193022677155786279020672791386193822840182578551917956803315289475769850333511041593342245576945907225066762819077540532451951299802714072292801714233468703150855206717428967218261877831990335957347336407730760734438713658364527999307940811759830303414825044034823460061766673272878391827638219102238027112730919932089431982574564304133563551903473869042920845135906707487528754885464626471291773498898776113351685912443169870552615860528285046530884804983897323296140448472863860139298273119173172674378259236637353177975561986807310156299344989846582255466343371906807764265833422315427808085601691771814024103044326994808355595680116301482625052149359653921149615960194866950739705948229862216624489718117015380831397144305041620422217428719234551626226684035744427373759700389172382567272735050935943072748038003611466057959983927505405440582861955643589693187318078124049652699937078129128486753761112418644852675361128474709664069687975917727444423439222032732460144377734178478799347502812344059848497483817530282680976257968189498095045494289812967731360638399345350193318788885469766047929912882976336498425893971260928873775097851282758744706545981517898386050802578865367539572511527460418712709863842711457401528761301567134741501099996221074881479985561379625071923415854353660979728154379168337884207778656093692300164923794518209155684022295888124424285510079566445318355082598491524676762737487344390480924885259062128797903087005689254131092982082532466652894499980650000516054979898476984181910541505126682132411523938936484872564553324037645501236704355352416635380128975054067400504075097965147724976812261592932042215089185461229848357750605457450660796888118678739084712012820740567167061618618567974785295379897812995468669479318706895912809495386461156664042086755959633968518454492601763122657386272433524664640957110488880226809636876241920005653915660334802595947088891490745401587174456272760153203180990738890611913311657616207711618135099724003191639054946342099771805576614113109361209003374042688971356401396339707036323028341736833520368605191871164652737714450281523353068491974960634711701378960303576857107463279757144932968845919306945920764382412755658278502466747624015684092899900663792371187781522031507555897823956386632938953544836734501549916141720093412680730291833676652440994194500760712840101900693919426196440144288309461763656664093042753342166059753297941343963899916745774564453466304890887905040792284808996442413952392919650028543095591233802078085795315667392320928780605450282620433224170948231618116232208187719335668637361630987744906355124180325278629983540699973210428762813299503435115676611544151167283781548220369806198217392083353217941921735680311471987106541248843412782547679109514810760207392379319813228361347022326033111743312389930887931602899509397451775082982402668581397221885498061374661401407875223003217603107120976402100476676795763591705627467873363798873436679271037472583620304619998855903126289682205861202160756452428628532964352807372282119764320320326871495686573955118728787033204998342235049161583284146241391406662250951008887879692695623844902363609111470884651560628031953537414118509759379539938554196046480616899254862635330556310748961670684581488949320095920685306087738642753488614911587480682899268606966797498146172927313740495223528528135762919455509732251435379630166701201280390161040389562821192346005566686598650597203538299432437087448494570334571616883905946286913532324556140776755830522947770656345939265573969809328606243981876516077221610732668587139058368131701651177798421148802829952209844916385222128141418729198173628214650456547681707421528533222847382334154713219337768205547617948677758766498842696809307318632229867507518670859983306689196896309499570142629654160450155219652257868781167000012152739766125447057772460877843141240294747331667551944928227457404654655742391512576162747273841752352104764647165325049221452801375557980397531949637506825316580373874759370415177238121280684358997830200765805790562374129631493570660661187273960888247683487372868458056053037953408490065315717917273560974390339273198476775399755098097629702328512183390118893554214996983713830314488397641751117921349846730208437050348026455928915844548413437745859969127842042388103998809758527026942522202431207295944664156008878034934037953914459721971453036043386913167227761175143418579316123365252038846540464809159167651037098673387849493137352621712301585119012397878431845906215659815609781017484168821507061753094992267704611730083798119931492473746078528814715301282256565709309396257575395989335448892381109048765062093482111758893796722831151931704087411949115397293776461851949434763530360274012037579709980099554569451098919266952030511748234643183012919185568211812569457076473078578374877414018269575340025215671471609409269347893859106940509892682745797844321572424524199123642713355890759555204832094025177737068097845194399526095184166589201490806610612593996342391995395156428242675362851855047144829803743834340936014567485527531991751939294350916961442499013155263935295668858250712188967521105407732704835615183530487100112823324393856653278274547064560268948307445027318041518747043030102967411031808974588873847473946497322416418511879481806742004110920529606372519724813395332482319871020463119106486786604921050242991518454206842713511207700091407312255805632369051045288047451960312120767511619497789675721444436851209173168675877026926563633316546525524146048194460560794716829821094054164320453709485713726197407501973280891642877455222652732864100293048394251205405753088229715902631916041931717707798658519219285890579892284228218566836933253559616117735531520129132456261856868649891411075910344199771652049731676064105851195906473218349824447501581291699132397410104439050010204764635646026750465424263179594294480690301530506450896398510945486237254071669973395026748180883068075361459541536439209369199967254039567543488533438509119849730816695789070596396694752527697788235689964914543750555461790465607262815161712821282520017298907466504948711130673966842781512484442619824027509889657129251207617822671435494971304404920422077428261066937379342472255856968497218315083967217011096104572254317337263539843896166703825186538844849493090891981020493073554751274908233376142132784001087748527757752566436981501935797529582166357369936803681266193952510413518764982935771722079437062246036076440977198868418030744061594771177131798408081969526325914876775387889061961663061377962059036455396850558913382475322858832273000640928966873311687870213020205383250271334221069463938468345301900894232430362748819826216756969369124223009765613985838532931735719498747450925560030223049047916715012557306377930814331056363278221420410303206537052029535187492962975672695302843668407402145258339956302353835226153846170981227080580073315888712842032938068119656688474110403535154916051089450667038029027860575022086816599554424934012309731529970573546427780687641497193554469452804819358176940033056253150119721292965868601406422012468634445832550958467566561609569925587221416765893457824787729229451876138520493127665972388554989131647292940287483228128396381216051874314385442494927067735726650456765462073205395439696012912018400086391848576652006243404888587090289482110686708695145545306162877015176368933357514402690280974060043565419592978161099828327778302238241454050923112729906523610208074111098633020533663369360656281829224471967198606308318864074774107605090951525235612687356685586251945726301262409412693556829051378724765749005667218509906385680172304101679907668826064659333577223001453460552582419640829875287193611604333277322695408903349819572890663469351572099900855870717266606951772002311654814653997367936135766450672674326850050409559692555276777847870245043599023753088609990371745049968789699337775200237092213258426828465280158704840111146988033873760511622321199661508881464431734817177563635115611300626927596416875524064885761620917069555617833234243470202687466740754448455377376630290767277816208321304975174593146531952724485096065414869205515488304844660114058513646882454192300048773194706963373607378498953057038413412134721575734651813652102776571158510936957679591102201774261873507388269424745034764279663001627227841189817976400044778817653523406214699084944137403287860994001924643952354441465236042915433703291512170676961374506017022723244220590145101328698556473482634948138115538860220015540830072986190232926966347018479311130646889386926751737388037080581594845712698173614665537161317662497369558870556696400041505872578513685609109851058910703822038602035837163146839555042328048370023033596410152889517109362648090862374232179877107639195215948344609719057101364539965825242894305690896744148728035663927188732298093567355260796023032671198198986801023229930089995048795150067896933360408072845187847985451527429357431740465388664883939887746440861429954525693668638868071911562775720283490960869607732178269506111824798622050738517493073085142016103774479373295904698767140190574865630645775540488651204621759096178776445451300532344510255973687818317687410452304384138888475675121677684901658398481685608132875400838291658153408262932791571383599104000495936421397495882860828552243049671110835611073452241447158977454166873631413107224930793140540529334624435620568301077212773899110832332835432081961146419904758874474024504731052769946211370902313892992849230328356495982129886276397641846417394024513784210512224981372563891355997592604857042833430580905008585594847806092930334360448937909170543630558472377840797727240455068970262249539208918997053385285440448659356117666278500440279482241276004791426809178409568287557390983656148259470917128251290305605271460988179200146404808367532612554401830933491730529813106790670591391020805516749181647485790764232963445983055406211649356955727105653188900563463567787432036843444781676681881824118336324931708999353539739803466558945010522535234962418847659699916047824676837607375840874452127096265633580724165960881457770056468837114383647900826487682934984251433672469702632651696056260418924459057841849721627721144018685939172570251590628926039231123050708883570858214524457910268850769886000889475397881798091319328746731878855520467850599833414274252042528696111361960701333957009178170831562328453360637054395910872587962572453423668888640193885613886499749230689017153489645273658201703926425304178780195983687880770664613898474912005777910518321175285951360133132322568847000311991128142738700806529330738373638693067891618418949663636067381755366765009154125475377712222883387866209795616452512661192501635644011494802853716906603922787783909392091243280007868185515945655614922864144733707501099083141738601140787586923450916163815218465520764428621809150228934962616785820897535427616507013507884391358530355680214764259038321720126253309851654369672284711922557846755984757570451212038762845721032663382065669494556419138236321719880243948848729828610867705594668604275126342562671836478417622620657112465868867954224300507204927199039194625600032550427972909612446059826053033690684087402659482317526704976627500527119941845824417823525155685908417966379555751964322221574474006592450175836079862533496591955212789041859933169145434590018279747687665696671553481583283196353543153556108694020417350877883787910546148057073099071133308564407284205415452543962749115690128286410723758244711994324457777051247348897513508251023074300960362098349106342240849886167724972177395435961437536742350272588424199945783913593411349047053670788769754839797725954183831912634315415964763072586958368567599475442438229543646072212531406033926237428500470516534296131391202353280019350752571352543463251499582679484617549770870828668447944420864614317956081849672074455279459475359422122750196661839885184391488696768933352665517010486746941444313360910666873627429499489610136427391816751975973101343212508531814442435498656085575858705015819712783854249249915260835521367916345679269559476854085028496357699576535752382892775778728177063326432099070322978313865153037484069083918897726634899548443650408534622329930221988095425998065101252124370514376007051860924684780722200870856883583172357080042528253230079306638037890698276766310581571299144950800105506537718809274380596494163483229913721138873612816931510715056196635128427433609450481118612825976709741284475725672250305546667235125319150313342078909327094380104675726032841250668830025421787606201063467894092834743870880511914268121437642227672511131698990637407665351568758518754393790686276536749130046106276896767996674648455639511808035025308654239113971138468115945102958080505135434425795844320352485958075776211172516991155045935273782347957026123208569536294105540707828036688620755551696121306741323427304353050844831624702301654492488560016017985241447909090975635192855536826643435505154645386517591753517999554493330786772060180148503252042075125868130656571362567984777809476475133315023918406616379383611045627687577761486827885499438210684473685344550756225457573370575688049454997703549717719550914405497866675691312870526493946641474440187181145738514512952101774789336422581607362374122127243051718402167940986200041422113837330756046523699440856944120664860106964736717005069604124785536978131182894607562781412396859726451662614685597131711059919635776441336858520734989979792629569661386703155234435881728145914548197723583603177990575528387922964392858980497355145099237473251680050696091572723319995828561521629914825722515116073180694177958583617837200241132432992594338491644776506677571972794235574527505475348942238718242915715494694509570058459722439654505816677461773550837969420223014031726743068812886301478445670757001454083282088759984196681756122329838572441666644547284069007684359561355513783022834604974440134019927872104749697136955864127740387769833537117014615249190415106016135498124290724378435966054182517464609489469965555469247209813196466409231887276583526343673833850871823169659804465375979498380166242868942973327785499271313936195379717141021628142917945633308804893670134326692376908786386717574038752158658961994353228467945513321244148083578978458937973469035060341270329355019646564400392647078500057182233695005020418324946321414737767649829726896745002856267073735125228995347690401354624725366381109879673852616039029611668152512977700073394968478577484434077124285419908686405169768300142795129144532020204710347733095575124484896905537246285372824326996929005147142399378370569783946183041345849649276747875607173770169026006484436386956086518930685155459599104213315827266889015170233718068532444356863355809738046095693772361781485915118146743949795962653722362812762575530452292150850778649862441004935964765740657454278847996289571007872526360049945801636059356834065973982586060826536972329874219829493774523853482224107361108822360658261165214211226904712949485670845955870438611085869721109693606566166766337503591910430332897467123451919323151721037505595607134387483741616745914467170582126275383417798564448248789510261048925346279203282770197572903662348391810368564418620078027985490227936576212814388308140235100398809335291626789980932268348773439030773749468400537241904811134420290098759682582436199900637766838356372308992081343255730569911711948691724407030431284618777018944141160486637696250391106668889094531149332432939224108599928978838152629206129502668977974819946816715898491127318666542746184558665151270765848427517026178942531836257966468462717266623487124307451919150178115427481477947565032920871360458445250109951561327125644844145261850609325186157299036077850711249822519631296828446217332608462686848914970381557064211930431026987270114209119822335513402855493925717804693982298219567857063277509064136059617595920707445938321029468694290884751606493931387008672881042817510310223553960250842175387122464406875103760277626161232230916241487729223079590731661194470892791461135030640913398389482450706351035348023320104714371168680592549888919559501668564940975876010920559889516539721762209429973516468103708123401462980425305707723981480513656983918044686204336570793579402175171248496055637276567268255348678406383909680344011914297264420474172380933704747524339381368434087024611418471165802362171941713459323690897731523395574177839217404144320819106288466575644930768045190762211918745990490165524688579058861200718732333090966771747915144722511065416062371317503195858937925576118965503191256786390468538126877503525416525834033323186853605040340016643235557481395921240517028053824586168023287401028923397720151674946860667820835371632284777224621539639929014606853716376548497636067074447599872491223245022865113065351856388220386599195401004959965845018791543002032669256280568663271707848440226385003340547680851269155614302674759402175172617933538481895133203748351719696486794872618358943765044833050702434159936473887379023709488718142597560908828295633861925918345776175521315051203255003888677106406040942143859863761928666814150413515067578577939255214018932819922459921708105145384652455069653979010025058139644904248952110718269419100239617504355417212145492128369332877894134321539180027146603805155010894386224071095803524324376227597735611910566035633494436782668839070855100257699196909064654840135034555462292734910396218125327585873793614414942829467893726061547262724015157306286780190533163585977739633967392429214158668266926017040621595877670747952145774980906061854743021941635170288598583094502767563198055155506208023206905695161739864211141149082995220057516947348861877272000895593796475496381522472263543073662945342506162649804371198974802671378067000337865882534241727214960012140911047234482582218327776682501744748493910825822879155191990070965566266921798713354375215125535264638896920972165658973158488493459006528023939339120481374077959153239390548123073880827567553357922668641022030204592511278851302603969606830986743989563944303161547383998393908436724753769931849730239304096502794532338307311107864667333670406870846025505171981665797801797744864864427774226925372250736287439820127819202686291237107829052300742954339381063906093458455034002550850146083193576624127000047492485967494249476256965945113190459209455946407728254415044938060725670217992501224488713862307922493084074980772879036301065654230349902574492681386321824465974586807385988084290354241281930974852242209506290118736250584994701462063300396977584024907996914029029151949189232020656478929517193327705399204730785732214490040552127109592029727853034852748075501011057597901680415996775768457400540817483962221273793443401387560882726687162394534160584960390279070501202396405893165216825313345249989384791207855501364221598273361046676897491115729582895127539648739643234233120515554580484201234651281663403278862344077704972063628838569785029320280098740207967663605981503820828972964428397601060610659757007554757747741390373186540992388614133696860359660921830247283916926497294003581761170069397211624466158893997310708844617698130457325168619875128809444390085768289856328508662754161881756035799006554473818818461914716324400173307202763153375575543856654328525293115881869253683156891175690723187088504271785370078634454974174476262477550503950361444696487154396871989908349517143482878184226684700676648381292540676346709169215915087949050261663959730792971983919425899724796810031998615145841718322074771784177423550562412419530216793188739463679437565016341597939395062351743458467698590027358456664755641853257459942727571011416377429671725673177504598638202259349888135797735089078422295179062852992379781557842021082858217124434042099192856656776852377151446488044680038065188037986416981795660784932545250293290079923257105171221678007663603038716897069758618878604614084968910721096181136546376835779452609520096609321998217744895416749139670082653862021995070524835369903258086831393600444942350592930420674288325171434831078566780944383473372216935974396462313765154388131964538518771247583215884737671139024754096963304837291233600913882459094479526481265487259752365739421750712087538250751556210625206422064940973073308530042652798487166892395460380077937520706198019301470980636416837662439025290330716295781196594437123722079409367593734638578440478890049179124825868513292409213129137125814274308671781278423723298414733528197940820640070469449864732112398185648375690250802226386685202794859935177825316120129553896854658948256748755710862837887694926865883497339549310426874769293205284960360831522109654341609881644619975284846062343274093734298089594026629468860069548820152533190948089876727313501209773318761529745454252736400735075836800164715522390271909067940418012843756518307975727515450547086084432403798738674235363500247774083800946795677503669544285318835619732564937938815405492481315489074210320615343389384325962293768207861810236374890717218665285912629819145307079469330744899070448500946968169207564661091642881296552913997491466059358808811664841908586815261163133799614630292810196191225475186191156067088583716596929716789764493336092543462097644230691134326868467061853431475978886928617500600312313835079844433792819899226423601739822391546757154530014383605905088422967835779785362369187033279998608223133549070523084629171516437094712686213489743663990798802436560080077469316027488982996822948885480073093804457961113431777944020323888994280991009507947714197876273859572982524200331286549798469033586151419729841364839827414663990501232451905679913395210919845299597357894320415617423145269172601281214068623655299267871864608384513866087955194058997652744745875094962760560616686624910516958925731257184393494831369648148694332730853498044825685834636191353196385266601081681594429942320593440956653879929919177380723749148226583454810275714693438992027065345017420661460353632108004445807214064038482867652719322150792192467744282689627641470229383097716911250352022204325808299900872256427750678436376305052625327997016979756601270144234097744037700642005434799061650139392193284449948211656467493042351925040301324246899624623374499079762209311171763240210212386948079791071290649886313611893910040049791450134962282150302373942289049824310455884297459351299296045457436929449647934265676538591406892582157318089700773996656612297255726220391650601173435944646616547881315060426822763774560077976280882056495996251781813066651881216101255280979693206343906677746755765430718980379635226569790909290432475498813025437806651560454824553912120523601288670288102046130737673465052589096090564903295875454437586339854431433320516159455591317705254879738184683612853873570551023738963042119632632262346225516621751055510517064670223076081835104130344170805242830505208410460468593411853186236693222635619072522434370397195736091157233115877520418839504166647964153610759715625797869608411886641888513086520268808379459814625446005246989927076632568779537106819716266344591434502749878869420378781311282545759912235631653210301543220468920170321237113467729667647533721255352893700570154803526160963508202391633088995213427293377040231313252041243862701214202788255824840410236097144743458400682803742869571132089905960635883169691683058648727024037183065437898122094795295900847698227699254393296145142940170418383916738154189426209077992536013935538804877859184196221432950405787162837572410904761299786269492793732107773199836825224383144559072818597863228732895405234542119856672603687268118443343516736828471966564052717993026754773870401158196574977089695687127697576176096743084469552741126432725021768927056775589310318623507255373645641702316376636926144688223421350253562799538459881568383817766032462568431047094191863722110176383188733869315786312284966362290379068468126917428699819800984019047006559903429583859647363098916859076680675936320653273504158156133553929786614455115984779027642028641562437757213907577826035686080103303110852549883666310852075156365654151945185772267475212768390264677163450609298586961300807758863344537391090434583610723716503082067779155836722902155183642255093864787971697114519271063238420315814809070873088368262226454251274725303275456090634359948724291184166124813987100991165039007412566717914343860553382253395341907818366467393860503123371340348284843218870835364522550099254625283099054322117663290994246637914807208216914268578847497478379540572791678616036791693219452774654522619620111416754965751113457699421045986649730643626757206826569949929546193782738558663394189909914094397415137589162397828619477547764149621363249511163736631400214327169039061162838486636621633910836368358695064532040650203628653595072267230428864998136613543208627789062284639746896192263012966527062542770876221440598866220865326766458893632306868156946265323808479287338108855936557173454550344051262305514100371252773648529295104469072355574036924305243009394789506959456664723708025062583075259042771192548563018844440244044114475158699532981587959236218756833656546540006213906127023891750936897629776863617475464445165130263810067988228580269398316909491011933670740402278042776897510462359328712197924336691103235074427590319959420037944693321813323703124138655766342205508600590712209658910416778628392928123649732839938622836104877943502955593544539384681962463209284028841189130638413324863913074109017595319491228442763363618378125864121358256474581961186059808754520573361571618287642374055258055390756043194898842612011659662385864877787715745765704935631227968251316348713929000656116575136370215603971661445039207635763905692533649852360562438050713108836272309995491200603300952319534982960052438608783938267480111105037884071786423427386556457146571690092735639960317374691124148376209656825862829878598924789796148367126026651478684925025800455845344424670158420721001869391387423783793670252717062886180729288470987768139919618188456704343881201951726192536323504799030193073153912621160913399026540720658749673500926551344300788194718125172847374015125339671932929155222174628748839783296457238346863592924049238752420486645985678751600993371552421940422670603179101224838928872662716585476525492435919624090441705039578868487804089928457023308579518987015254911026363497137920069178987580060159467275674740889985715438175741676046864697802560443254356161182732523488919289717197763280543322529774867469747777764716146318512957867946402019272133867455218626819455688576269698305585206160835037128173417863077116334775098036647408353703635906022922061041344033809667820965673587903687350272465918335929817700517351619042667523195904831634194386986097827336162086332916828789630210159738846727702002404142538969157238950151117778474198320420970269484948260062934594227129437455810332355142434144665872856543317923625560912011050852707143703589714560705736705357843507767065069186747109986827543133124135332505191143075552258197383493581559759649340038910666906837492057656970745282443974125284389422484751469964139050614154687424647780076942206772282268475716531020779320885624112524212977565176894992838804964258909264493540533887928457915887135140478147425000695820872989453087386134771808495255831369373228478823379526067872493982594128039887704577264362754327065800338159974557857645661352047121072083984620844120991244657319540748904028479424821411324501077201711090177768019453986151526336285232840395715663641435853066367860330139657044367017968677139269320561560978355088068981685002204728539127208784876961577942322640105490336278822426483658740002917417444198761821390552749182965034634417260977137524820953250089400319960401739259283233952467027863162425589629223433536648573156712343308092911305435773203623798552963817916905882119216761603062307967331026259790200073880198139958326671545123006852980000878293645066549299345359055798703446759738267311730974709170403236707739165003043145692294799647969489069864116436121892251542942819224280172487200294445951790172035194016342219119063980277596914367582090651633551454094388792647332786373278077475234087642741201695401143611232041771793211014097848460817503089342331346828233832014644061935465224104462923231055131235109199586578897185474512596792687676008736923658200021023115293297545600910876603485808675084918156148598963856053868954396504728192257456498457901497817932147048570451046734962350318427993195001985586643183160327799489670247082662904650949883666439842986495197963235430999825121904988126820736732306035290809545048434129872399764098928082686823769079122140194043457839856806505254987914187020302630536793657782629070141601264821571668710593117218625934839870066055987449897990081976800139499617564176279566653214113826121920644203973745744639715947270063708261233360469311161919242245902534624209375755408781256492608764667259046486019169302846642606030279705144688457993858362245519605017800714772691730169686882130257223170084294472233379520905848035472275870807932917887740554430894886375970781207686994161952788229510961757956701973568498299505558995502038946893109620923312347062115163913516789087139436405728718137853570344287351751710097885770807991419279479111574327991867012207289704644070345322813180883648223160704948379857786551993506141403321144801384234833870934003141773283241909900499947650810783536738093080981282002213209244135184923875809461317836338084193311457518463462783798464228137980049153335574592615255603855145519629223431827316445994406678570626738753230688579861400552018914275764332150240390161760364429279910664750252056420667745807332455778403695304522382361308790630736199272103131809057825015259735390639659556678643458337970491286857984309086369185984461480534414185898647865471561992710995386162775095995070242759318097098649201877433943870712061409904557097723499443392277601537464762860217695663707649791655594631301509931457290445673443164073984255004767513781149912100635264286945544774440863836233514010612084230269076843047011995912457099049310464781807664124497974060175151103245885466444614484092647475824749392194996071656076189404490085213379260824655899592358366860863680403362588341265854988614722158367797744351202395902999435823152736877811275519001926452440269995777124475237057693399206026353716193207034716937099101186672573873578291207224702722905624533398554277348534965143894482306303571006024996185783792139239277215679208788734133640462440827137146961179301314412672233974177715772827016273908771035808489914283090810244873761482251184470707998234745807573511338044335324052185511804605321234891571165275825893121619276764237178480719989833383647448606711770094816471723312608319344937301591539076217830620210305794469270351125312839703620967125409819824165672003512785264475182705042776787199628943494887191065942451950506404645742247234973231140791373521380163289112374863966730581539398006836677791354500793130479404027467123918511151887562821921554584763364769097442400496565772311398140302886119568864793718686463505094760971554774420953752177023756959099674100243024688309601522112384411958760205587438655185589506920714172141432839829688674118655735631027762561189557524801228382869645468953329611957253561398738130333216636229982067277318757514310861391104241029019270038767059876311988540005509681339581409239036943049854080597242700916907069079578221338495181982786722191844824314991790431490207648750227560669145232492836438121407074402017883568608925046378720625993770794329330008333533971875769980170221933328604137088263093481548443883841513392917602742460797389311394483100515594759818118290638777054327165934634365296097212063737352495788532818040953084417145547448805409684413080879143133273723114266798968430605799249541045657921418612116787374074615513644868148179111619804565055148890334207060207818019841456369396568491073238476570504838353848449146505017577163943018587373677900756354435258884227763421478229380046657459920161407882467106342378120246626911715388341768214743751141239336673897754650898553275728720678670552134422345958717080706395867635465229110630021221574558723105412254899902785348100971610030281257002731459386924061317579892758729821399209061155278639306641588559638494097983333600642213595442560835487290216520441209868351525860441577931976042542181765137035618762138535195056424570910885969723876473532074019785298178730236615593922114264240955313653661602426132677835875779826039827400336552343735054891072794123021945985837977106134806973669444444473132621942189752513784734115323227735729807675946981182446617282157941501197171216506149286089232371146932185645401617228395624538130689884820714802158697658221533587914944703001080092370683243788834403188178118642580658747577978288558514836835560921267743259812892114004520579341726912759198311825914330334989652360558723637661727787631118964258708569343712682115657649313157031815628332169841730242029665663006692351010027243845187969742149548784223009807079300509905447449913104422712697557957372006044121002156883752433214062175882257674435310269272056882028660737867205503621086932879561602533867697883189225701581933608550569670386874442394782683949061818111839147328552655641945795931051159062200373223687381664967439231639127276620866544274964206969072538942123649710121345405043834216566855676938879799445897976159407243796658593599583730603671829631894197109697307482206800495799173677322868025082153501755159333200988763226330039115210988120770282769048094768909983906111829107629638851761406419707244487015621507181003955732632658576889412973650647479243009379291554227365588216411717009061642239506634864164316583457581398573938924278645666012964561144345181424764097237679197202320284520435294688747207402693354167850363558435961131703690035697975687857362272318502739475830648857184793278828852528751432838526383875548062580189655271994751488023190352202068979185290993420666447747062008404183757867385927333293830131324364891040731471522426418712461540875781002727251790210088905564951215303601276024738543902891936861769817326251518000122550766441386589745193062120289641991506628376360438467915263666416305019674275715154406654404802296259028635292539858439029303047320191767015143854241221922156546299654699398859217942833386794819814493543946891302624774600411856056023838234345122544504008161947081042202541056344196508411847340229821503962610480516680253551188972435903182153747645303013339975157928410138435295215528370144251752071346461171843805879477108592198404701869187285087051261448039328590518464053341978865367654483913440686350651310079532895490745788679259686878655375929203836059544462132525226700675498054846720689509246947797677742718337002863285276786029233318856364307213556463422596390034113939884250618892735634249540446879379629811933949529242994096475397694472019740605365641948143835457921600500375540471521616367239596287520441600149116044518304338885568881335083732357815114978709998386720609943685746371398289134476971094736442591685519689578701039596707558589081284676076662012746012633731884596898532329666763010194686971452791593918348578354880345898105694302140402565839199567682651682958294405866073187596710484472978906958430125481291382750662234484025957564031189971660890642351277271057613452470429505401047431674665324368482231194993469356014385697222825518379166663485799086047512089914744825698891718908653799902001653134759278373501800869630853324936208144231760119009700557314755684727950207213356637102020590036346565842818634991038068476051765120261460982637974544236730790237041251935836457563473815006878519359353555899959001527551881302545891843871235012142588914090549449060930886033540528788166821442552723731095850363583918139602012836272016249219029383376509206225390840531825134724222084838054770356672304955033468131252712026680181499931963608473840195181442460417244689901435383687432902611932777527313782915762908261042410538561781878680287398637941101841853073154133281682722542949728796637288645330580370833379099155991015623601775628882289521583234350574586257971405698644905045643643284533016043091845738562547873638236289720991755230376244831556997231951015614744136476166739855998395507276289694271559947673005621165370551326717939573512676625666858026346775753669842724967837970672820367914288002974252082913493440217973708974334593660088500485897407741006906678077138273339855370086405975213326742889515606759387940316556969032333095651993788887630082189605262400984136714730190446814440771719570445524923386562962849178733916098105271829062182815021976131838046450680258847202087250598189771094391208986541607959685732717211170105739962446199316817844939273353785504946802591033194426207456034909460873208913967618966051634600689337427182687756642170538356189124566273531597926952227335919404495056056076142583200373031291606243474561256171692076538559204035631501331748860520893252518940708839657332697910220939676101171978784201954176487145766969785707231162176355064726244096530229759802337369641994812444772672219315283853328132805978610215893343529212500260158130922699440063801930165995081444801368128951374742345631898448590027443400811427599977887872049711892728582371001539943335195395280910636240276594635303012320226292303290327798262786535193429237834770676070720891726182884672235289912214416287664011087121194150158525567948052870705360843372885948369628172419124464476151300722740525156209724623453294377017908119586293642064350333761675197186441445360482688213833486250212160915675831352836191972446394191378091591723542002744744666895937004019143036827490676267824676252785090152844462390517361948272519477048136844062552012968577120045065813966742711526707440853668758014631184754759482082512655234005711945949634598397847610623243451441193712762057561168068438851683000405642653024996616431277210573496115313527468291390733764798640563960886049220388102817507997728768889618862542524074487680819632744847415032648386676948031061766110238970545640898786123343835152627301734425808188359764843406270332602327732900546901530832872663311244749857834719556353786738368025220939920238771690183565429167092818416360871814811332426472815325564371319408072803872246273165259353013069871416061483821069237224032978679266254764932334021079170350234052960809810159549538267046740496783231494974101246403500884652745549916833327076039118055628862026791456245023588890526691343425911911584790018322180181538516295169307014458566609123893857622467859649885254460484117268429013531902087892153333080603092098015632421094615840513782174458939013341640541183610030637909003045111745994786758744055081609980090229682076143356089075216256796301400106215019574833961702240314576783756713250337607991719756881532887793967973184918353924514252389205681930675930748514106497207809922491562071564019792638337258950926516916754100714167026168620442383803962275396677684790792407354079731775702607881441243893436526283615177830903841282912342812425369355091263870274610349359145804628279100842003878975407208448553423485338480385514262405449370650047153169553304021928902002100437886679814842270002896343667213483919479988844759304233109042803584656086810019583621023228314720797464985289973865695028825332562805060087743356321738117599244950354390626245399434685383378697505307844773617849755012779940943456600287587857251897271022861242461944251207055423764563980256111060935699252803378559431632808517300430690478178805625638483725178124097567926256689087439700367552868584681368170374874601598936025322511250227256575355501717248522962963023490591646532532156935812303943312917747217886149866091661569698899172865266146763990974203723352573596041282951797310537106908555309683407251219441310386616824601477747765276333913258193360793529849450086569103435488645560396959941336516386130181702001780764341913959904185472981607400207300600754514206572289156164472378992295702731028709509757321730912619537260687916561433118054568755150359464332448601337497913870216592601910048617879694483759870675172041162345287943422011347119897814749337369163366693162823233432568612849758643541226064899366777629405440050076566477890290230435294216387040163633747793573302826296646891983327349140901114069734257191837506229832427816895261147877506979097894140831849826660249406575761334695932761364888201132396230872840492562228332612853585247855076313196286584707168512010908316051159305908300960534265342327152763686693292088960566470422975898790358837165387541162661633523619087661434510428582296380955401610044543684484147262262728141662302861385701981707939645836113308083336867169335362916030670745887139386558652428832008949844275947373553912960164352751745012587429406679640201739360221483258059093437645628476778940092287162663785186808595711595024761756495723840522983106722099648208571925776572126355627161003027812428750899353676835101478843494955571556115264941657966351157135588043449243712105350356414081855571010983242335838142724987862730211715051664474945721416188856835455443883703821637285507917881916269892776694438643106240024361546578101502160526336298260730717646159291144787511612729265077146478705695770151756581611449442404008262744493232334398081829995928121707561869176392825024126443586848164608776002665268032788259645195201476307908860689879465267712217921159448046740879765754223079518135677256287209966985187298429043360355168470318518835406364148138049821587618046304601892127064194739835607668886893493775534926635335922757343227568024229778202330844432683559302088415784657392323105182467649062073995677917366907693851533094569974029349993079246700811959321654964237095155588509754842027752750776239196178529101092798798468714922824180555102369824613877203363298131867375325301735945980011282965577958147390755734031521428571736682968450378228961298850286823569423196869393410233523043344131600224556366992555248158950440838824760513229205566991073655361090185989652434545779187883829209795785470978579496893695322850167579237112308612457182990401487135091883273627895450975617614579384752934116042083878071826476089547367153302490423873232152306526358755812784194460564755685239584776865603381731987816351977106968294179102089809710830962782134611818432681823385407346352179930753489337805000501663513988693603432432422774304376008256430524428981071476759800268713954599172508402993786780842443773838964958043888898923075447212318664241820269736225562034142634587117672776606134455133374732331442172949584712628139687477597072920267597815336683305886060990982937298634677915679117421520294266184305564825740484877017379639820996385231364396980684351233361347045315908899895832529064532476365064560943189271757777394215007323033437834409880093389429331821407084874061975698599052736416180415423298535545402293717935591518261740024434856681603571253999573867046578054172079141863328142023253227890045623085605372257201217788237001951565991179332085463922032864410470322636797487798257548193317929040358985205495907687476181764327791978840645808524084279981379199507845804826438318118274084281118608302444568215364157437180439009618995162926316710333937646947438516631061823530421748856507785032167430985040099416854690174562245282039914109270077264492421510689139564684684151159578775629053085040669840027628033129032169796045917653932724424553805122642587372429958496271234516427738078201410769199810360269580494339281196746031656538815338896621519678258222256881133646764262158585083980064203353924410080045863085079928414082801970607509889883702327285505500539555501300549381627705439476551735766834164746798932355407843150056902791785942181515718458841874638899194837913833222638903934030807677002227996615725376987341572545885336026789549850690490801112513474660668551158149804211127822088755630175942611820680268869044072444100790654943936849331950706218336221551093310925122078712744519556669625315578036939154317328888981670412909099793900109054181528285544303823931115577164654393728969417533668538537438785961262139036880448981791005061178085570811154362131417871491442048571985911941787612312612401501827799625394475448081125459402687050634740705966599119638303336882308555181522490242103359201157088212913007499176683610209457335506615399108800049078760805446231156210107944146648199059399185216205882084517449620929634298643366164702844537509220829627913760468548806273299447652646520731129078385142210748379913944092262151963874446784374350385709503079709827794501113521727730952999209698634458899824004577124965974540036519052561428695479100596059582654696313078037490061116020740480665761870201020352271967230006720578671273403646476714052232631789849497724666386932680820619795748023822558615407750244380980517575052764987307339395197868232869842479673965900762779710817407312995660396846094738282634517667561569187848115190103285764479687355525726797629617927135248432660310744648217928806161609518348091930776119915441518903996270686882935665222052798336455278314641272566154343479525331915135885747770255558591922902658794503169722076787893342088886917036524791052864542629165269864026466772688402082147022766142569263275580023982933495852189168759733102522674566954056779469296534009641206549407618558756950835452947329271721916851707458246039527012983566072875057883208655870047557253562501307438247487675492131423660437202626441088267103324330332689011456116905720508236824860632967439642020291478788187466489523211156169821273363010919365513655705303393297589534381643980272604263837921988452136083848526019100460028348582255081307099827252792132779055113579023806650435518712714669616160352041822533755085352686455358508403730745694858484685346182615249948605720831907430522155116013871206631856016811614275436250904097992949528608081780965050207804165454694448753116932988217722233228179891283801382214349968816353101348486223833033240528918773547702577166474940495805903151495103613575107473000618003352002228560130258549598415234607763540004485703301517115290961873197020373072110112230187998258397213692938120656354244369535361818671715800945608698826067242127925635949254583088032199498203823960435391496862307917408444042943748955995203461684348729948432869153769128099562157775972715722708307828024362251074765162540581089042316861040462733923556848108850251454973310576136090532876193722448633662808196972890792883818127685614146379373445460574407008004465311857278842409702823881278506482135619549019016650843130975149561041791912312788949328950516133842265798837613856509348876191179562843948451255477751595277647363094245584571804805238368583690413279428242002243366009635731200927912768597244014227290461716499200430830310481955160051038337067213804183015089538407092423508768072081488592979913974973078142094142037205342376043742373167524208343503810049443526027819050294049851502862430144125581421065050575629984596416275397837300760046436539418374796953542856219788596383690198923009866543186583074787454612641740101123227716906291545364710332094580849839283063438926749424337155888534023450259869858113890286882342851978589609745656408777470817013830249127233849506687753660883982166523011833276584747689878032132448434169673333946866937775812712949198230816613967269964032464969679576643147442579136154623686809863574743441875188302862088234605670411275237638969127425255505189193724848737053906399949529388293139378802168733429163279266914329439866382300609957661597498564739838043811132917740483789894984142027258222594207833436499211891135203663985915301151368542732860659006334500222216223759826402925440081184904123228750922546707785310504804098806159893452215186945962913657686832960124336810607158370112368924330664213508182252886652974441037448871105723412007089260346160363137383377271432818912628669396252591196536890059673717476701101226907741197720499420958717497346601484309157012913613398314742962693078968643428226556836124373960221794407129784971254962282166886072441949032966077503347352958797641564952367606684932265739893230791027634616811202797111860250227452750669526873001777513812210657407855687360580884489686383196375328442921424626068735215304180888878206749683068616086634156116812425151494257138698094600656204886572348835696138760857135418106120708648429835926780382583867973419409239862510554605482053302521120491336440979367262859713049683370264869816810698208346928364025896388854113010301056337247243273880429831068919205130484166498164583207847845507556436861193385425073618493662066340707454108663946328870382356605967723601907589535274280401525071010597811511896859599335167328650250060099249977040379008671114103632302963784749945792286882104236542574924419573141553948757609081383175390090701507762055916499767070960960493664923077609756876373570632895404341148376047047406537180763859372276954324520448267487191966486940346201271242405765691939108562303339702535134600565766741079589169111251181324915649716614227188547678099332657720207292455925508558129558610180121925857886989168913241079905182407288179675114033148549753255762110742226075600282085398171373843450593181550352741027402122901265431306937700404572885576916280350802514397931941354323286847983680682362843470717494765705736925048524619045389359009521079833912756944739560818554926332328356043079598703426223744134163672521630798243617953497474429405058564941336774553424355581365683512207469344169430448593698576012572835752001124663848140786939749455278363029954540008961249965714221441427696987210062236780276957310304422811857643057713957964305466526366867117942681414560864071592441523650267914884436005711869658161706856371774134246171168049804969015597872953395652521652828688861653891836303657104496484995418574555974525668619064414691552398405434822143224358093477723847086582149092826758561302454190215576552152203493928349157981922154278029507684345258089509328916758535454398041323888921616907471329418344322872386915192472236453877679367682130151596848713359374597050236697147893187855892169649207400005864324754235928269513755359218677872947247815898468699759737263450573450086557085051748562397957932510588481107437804970059043332497617916504418786387793271477729283908025403294122561130151531651513677626471820725519934144759764497270859821758644425477387386376463671984023673837392933690252348542752063909754334141463047197268859790730138263792763263959395336682188085555578251566560583924252012665031773776877224614294827599422173556112870040509614250894984388077818790604719020065715165375511497239090079182481429631276706789242036629301402355937771241198758218566207405291519729835129509459927918764860515827177027921020122459600024561165794290812979790329159396207334990196910762641189602209383142719748526865951535329924323323523192383068818559751418268878022421406360208807438416563736458781580724471644838980482548667988385354348197914654423536270101102005248441385308788431589716510576684186732499573905795431093205025626410759316003576453483729456185575089669508425583431777457991371501673394680706179930477853623053793426695037046842148336194089281126131404470429628302207882138298234086073584233766004559458397237822361062991164230508152223790092519448789184129141696171498211722459349243774397913933320814647443981032627935132348415757456158090330104265945386398962356732194113805504414329657413061281700776194670159813501285569668792479295959864881532367695664424146228351252996471345900374171618505621972614492513488803492475468198948301272116311401749505562569755367497225527729010560448843124424087058122463897854135291234620292350993986015290199784868544719008000887075600506869451402998245212506467068300774332504486554942092491511638095360912957698339582271140004513203458478370662835129499611752809024676239951977345155922064803611209520139011714958353636821791060937364243021025647899696945588089685401834053893899495712688907520498838157859547444734157777127989719351741118310985386086012523935149038896671674884767158380793647163028028992955458622791925243281407101656233999653860491743956558529180566622560554625993338564380081900666789227423479824030987242136260557965683460223224002955279681280370079368366155354161015870628969959762620796896825828619070316716601607969398653267677805145358996558490859183946647390224712825980272021682161780454934040341072411896667846487879008834940509798291216789711611383949293336518420211043837202873716528037214723905578244135417547173279447580663504746438617139876427721652338566512913664633917754362544464791983074847561241277398706457532245554010830760278708605476221374956174278872744012275952598023883716284120386359445774904309560922520826845631018487219792018497866373077354932698901695113376935496928760385587271767419437295397743433865818414926469585823566412447439715417627274003261128530704246899105062061136068049345105113895984599669545360725890273862878702148072678252770362778611195794887378288353827141937052158441181355596629406739681156460893752530449075061532126008676136291709435585230026227975098596242966875348936431840047977901833498458651762168851173439677173340845019029868069931124625705537444960829698870788458658742803794194029392255554259891085035373520776389279978076598734495088081730190657310420102809460394212040605479045920583027550112833675873452586016618665767871933083398977514919674118745395940812289147581851262162332431245682189161432210090747078262276797896198486504989911198157772835168812789483522398113174833204355795517737212710167645806045240006981659288678538178918793226851968773018529774480032065712805147186276599084658156087327235079511765308767261249086972783325517362289166822668448757630450514263769991587747165679501027215350373931850674390235874055897155925975541216591201588807798985735547461484605331532331020071280845116246195402571245412747609815511963821803958073576187804346869853566154394442110832887999205692131743855186086343643732859978339128637922546087596416570521379245916865518078212512310018741863931811774618340084714785502022660738083729035723267547004630614123024345398497929292420572717743260179087297115260436919522189201557410625259845653432077878035699462173075489592067660213380253822231584140960303289959093072304597902839839879416259122984000023852125906122774163043502770940229085025253801064715857172113066607058208303910400211661018940834941301345559633349841091538496183878847116075791591376867980024883284281025176584561165201428708271467565362642281910874327201645695019339294897679652466929160896686673606139305809206568593443758338067086549006682251856061712275690949016927341979213698567516540332859011196481337564470860781852287645283878128117854987850816782591522328062926147764450755048328492573362892433776199194731556685680185876629489928497214782269278091716563206963212947378877538918172904214990261475957897144499196381877655047935552916928564369937733375973711178200398312040725895750502537203364529597786583790007099323569895165740117285957501696824451195344632838768430457225912733565520698693876580568792487480928566868856518890844906367461516187370562633118344930132601240220957204189968803975486298556464528273883426291052712079263076245859712004501582696015740400698661953053469096507042303140047292210377180295013796193880010930870607372995943416276271109097362954372844964182392997507802008814077668616000642769047783088847379201875328838729604551106875283632472597914702980876935237088546264196609584131657778981024770392766773537026768485536497030313008735046790188951896029909070721957594523558538084220752373229092055181892343386811340023733982394511314895304806748041434021404563555794255486165350026426146789602155044700583195334716196095185872732504244729237554024117337950703831454381439489627824672969490110757791658635080257561548067086537391093726169467989522589629755793207586654351345490455222276232113824797732772669630773940165891646462396555309780658374913427667233082304484348046925537356573459262806529901582410398359921772837519866394815539977110207906559142111025814885968809014378000740310257263698554547335902593013811336882884270952242946277658099964479285258468338074920546310764955636563004183399544738199676677189243582906791675042763172554777107480765807259306089540349779039197422892817435446675037535475122160662977076492661388381631242337636144651655470789654662977993432665282437128922803805532599589756748693648959607159440490780933544088172918180748769690451988888213126566599613839083895163887099243530775306218540815202817325184592341027111558899734606153215368481195113794039560620602259968410041534858047397656254790898500132995068811704156465234203245620162703432283635164395490243813936110416623143565767363988086820228269047434397467532440553541717521894096872274645122766425561837837560813621969286949279104951907395202205901256030833474916770412710160903037460264914962739784945444985583025717123198416346737322556817638014206153064414460653978194365020350988907622024092845550054389807176081202532102973698084583915310096130128073400646940090700789160754691072827953216802087399884965925838406832721191095587401762176578569084418424833927494548926403252858618929717386892114115207811342841735180011143787257484701227965531199034629028525691987158849961142856169588953286897939928673807440483752740072589841485372187941688809915503236031736671249753368621347014741515110232398946096479426925858559769796980997763113222759499286309931134120512706502991537077463632567883475909367248623337394165074395758727590828712933297156925769765127012526937334896229328472066198251048333169476162209217481606915948967878544500718615497993206907774384582218196359524845455148417398394454381877235193113460583487893460062218479233418832410063680586510590211159303556847734923260517062935987612818573091997232773737321354581832296579014174031899210883241141257549953560778744824350659822475577083151293334203160967249948256694386777023319199584617165930982065272036931238548191275900561674210122384289015622916375047370813704375829211113459469745678619805157966230744012553048103078191071075734950627764979067045764436280650197163432854637684688060629916403847786551216813977899488384468672688784455778668595558882249053550254911493479729709809960031172806910985758508364006746296972450710894910960888836565177331848673182431701906777922263810652848069256543633214699314927274314978275031749763809478998247544158145112079401973254258382406579141559802191531172470360279495414098905206852608324191838621892030030013917807807326880415533116647231227867750243595749395917539090015869517404825626165018186381330113238071816331433643387505372582246403602605404055558484065267786518277820776534077329070029202631980603359334095879916779884155162644484134748409870216022691436950291381145671993889627621120413367450055387292724054983500380886957684874783522902962477176921297717105870194892385110334167010166291484206281192275154786171241396682683814705893034077525247261390288301687932004586057416445815533518023819820199656965036265028817274900613961440774294881186966668094603831949055418503016057964813733038218736302444696628836701516613265230003976323814753635794401294440752357705058991329450308760561817496305103140590322509174429728619809293130769945405803395476894613812949113605549171837657663095082653284688318824150123063111586381629923331778096899299533768504400286479684545507896692362851654084291353090134244682185488103983530033693076306112921229137223225191188806779554826054834379618662288806551390554527935407957700007865387358481473217075998917379859568350467172827883259632175805442113365278104420027653070785142842844743739629576375210545517471398654415201811562826929195879468082641560385923584184452030070104638727943598649448862961161910490259026239545205224704360469865326763180970810464038689417873443107650118192988115854090160919296218107652707577762277588589055324135201322264643325515289626559889299468718686112225002844028537206549382263222245608206117717503198232563596346530861815386341476771268048781657961777750297700206684174150486319664645844408798218344691789779583845497033283106529240749745424798577747348471239879399746409303767801366193826558899800200812065236621253327350604499882645011547113413847669177532704541443662565485417686623247174296098367672530315781210599128501060805139133364550997531890794153135702206624397931487458542230166932441677198014745570387082216006804247278902157468885039898786364160311313119713996860326503828646803406259920617581306100019871833753876391618794254802609431316067350234115158231728059881910478356181277369972013130724913735057398507151273443258152456076929079222146285566003642619893260768602440967062755196388352761773595537023245921813863187489410855228281474245962259319196974014138454067171843515768034235983544377359439482888925799319806337834942312840026993082575219867431243307790864336241325193919461408831217072398545709136950936090624210358463428048803527973705965325992763543166941479417867445037069344182441329938543653191908612773628161584590768821856530268126827080689793205187601885658420893466644044441265567129065567288852921354684176574427038150966105168038365627160708307097699292668773697123010790354649109973942477827326003424862490268430774049854919093648266801341365130816336533426907560119758012259374558415475823164717398898852241853227427265568242820288334841912111305939022630392815145838923830763246528965116067109879343073213864441421987177871947467360170391337201823487508102780974374167328343467844804656763233611189537662828292592159823894840566074426617201163920447391069464195406626350340583926573454642389319428049551101565179164344303416080718291291698391788874234163040967065593410408958399306945876195672186345414405305128335656074497480052853272008574711744869856670378481767846797960904512129350691134888265310375355693170027224087781617685291456515419445992429714988602800126587941519541656142800133704786972699002374698278053704872855805895771466107922416793226288981334315392610120951016535549048579785428952732681719541401192392926992183305317269725346138502961612355421105724371868719932063349295268724616724941033270067731644041052004032035511850358000390926300819430627815505644322730260433991766726617864079684587770495172456823738054595841549029764377053155464919919286291199197096665848007485566040401857973744356400917721201636442327304658918503705505320810271725404806051967972767837570082273819099534606924976979889620672570988327780223370649582188315994740538529320180849487341524593145260508044292697519712975947177807585871477617545531135184620247980281038795943047044763528942929352304945845579711997136136245969799690228856095288578582947953332445348782530004337178689872483387311060254114465711419225842914490857831522983672961208567719381374081104408171633485714148194667396898602831004582659312330856889539913755254502589327293555422471836616620019569380126892115804791732433751217570041255430490102999619914811787784873853931420464909604047337468481276810144240380579747347846576645697811698041898375698909598791148020802400694337507247184820537122016187839093339114961283590016763537354747463297593488729345470987530365599973463226260802819342739494941382493913295560862283861456445412006551186576862662333003288136724805518726294883787004321867652500166931938808497257763217959849991077912429165616954571509356677755000264905364162572786664268326507135267269968117472032911144429494015744695866804891782819513921422238251911361957991412343594992988533642296024956164175965763477833129721252342757381336487247174046987215091997923025831930381825504445970758551737538377668501989545144437792992897878208773666484542807358189242016739578365041234155013705503792087799055906401995859441989574121397662980234714623387411306252262806057125394152912822127859817154137338085531484896156794330591734811289371657072240662491526463335380081999508281553858690359317399651811484734927187994610902059113058073842452289994581778766240941278672053843010427129088596259849770503319087837647836837257366839339942362627250115632283791205049728281549243282970107684760653828953488255079672069931535817388592827635341646513944911155200226281403016674723246228576527499692563726345708131816027652653210188193652940774101991021615832679420884296644902919308367422167120037829198773991433457291383547471483136219312454222950988073464577350581079393064170006225892050650415567453905736455011015371542251474228548792907309463714122214710709001972836902895218577283380748225610702156569578438682067894649955994745577522545060576557945322491732099747770507751157824813400777387738642628662799370331389454234721715143498683605404399834416043667049718274848622041590983565436930262935216268125109527921139466622400146141595997202206090424967125107320483209030002168651922025406973230814274980346417259169016955778243174250618232533630562247423369954770999851944482086663811050051002409291209121901212869595505914486071467942979573046702462722171308778689629476989676786055101669826068154423200273623788692932219843251930907889417805583948268472176257398229226994587440746108261784964737346213338721553313636646164404333144780413719520292566562890044447944834416133440083267509944693420472789812399953202344308033329557298310795439614065799748429239105147091945476526345779022139099659272253976919290538024697088027799974702555897825250897980210489264799568259446339639979383644915050525392986907787137713242346148398251925464452177111141575465410362280304813832274410923687761800322108478624661066893007300808817215902744155678453715047248325409234538779830911558276664918743877397939399189305989421427056783225811381267123983921535188346663216394211325289620648893996304584368045082114533879278647653441412054201836852785183303402650111526856363496167890150556070475417207462513074526815330587689969089112789538293358560839322708921236841829835100896584779144117507721207898799287794522448359595160689687553793003457391636636355751487164227800524073735865938212207316058147147803643811867754739810587771545351543051733139964426039873093966481392336332440693066104969973256708372617223805127753113464020749243444638968885259091925534590525661667045893727453988969630164715790696102712069251602222264734750236606379375486603592666709128132937379736008537893573901700004135750057835833219419742065654509000232509961391097168898258843735604809756970299806202820755437723739429924865742826390861834566184809308252193909850150506278695921857433103594483827847113525522014963714693444255058209867577030064016814368228315040616112385142522002029347373437255048518054344828759695572864923520346548640960715957666045341442677489698548643612372315490023730688394149351173976269038646929674079866755057327854987085602535423532181115907396185908134456466471309168077626088212627261027232071681494495999226167094602895669302861645938114766526087537864565608492765274704629354015259113916428627650720358872847234790543630751070908284620681028812678930057044740190242209475513222655349657951530702662464805668206681342658455669855794217251482511107380176038213258369115307608241031208038574566502878870905463609329357172198227670830429764923738348599924176396678126872445324060463150065691862424382026983270297575081469404535307848282831729274824418624120315019628356219301080422051370818146197644324242890216950750873757284075765137506255924772828432052523195943434630469839183321847480020895914375763028994355931890057678056898304449927782775565714128843929456444466179985137371932284591911519924654198321388748584490215221250681909302861385823862393301764465577675039544435032616631108621569446082151669338096697945297640477214285486445339253335883256618196191411079374231123886466686670488242927022085486729229642331321105014316995095598473478626258040169753750664507091489194358475275975863754755665791541973271919971185710105107347782382705170568194180549569715030581376298690910467678043871193915160106207950830638009315429154037422528470158046220023016920995687671672639982186457870812563179230472771521395638947678769677480279864198524414974709729020323182101931788991169093200618959401126504663250609146273178705537523902932771431830291075206715236619019096637313510597189367901211198415728661105750412832650701644616253151803691209027851103509700042900107511680225537618588416841050074211130542523276546226168671457516253300249812137112076061195881752824915099244265739481728721133767126308839415300018104292953437847427749855652334559442764835317290583230622903902085317508607477940451834139358788451913121897636841894675103467231146487905652052170354501325622651915918192811480927463458025272362612422968172661606193097783961059963305893872423213596744996288944036069944867998419872079262970003659471106265203162711504662227796227041378150410435679396866784754534211018897352932640013429044784377630943895062753886812589075015126282957412209650102920872180060327356651083695378113566354148191239666689688130926960071637656337807972112113903057317955468609112899031758010360315693421423157443583480462699666220652488578356948166874418655556997841183980296967500370799615341401073853921517633923418124569440160794224649635874625521444611314799081296406938144281060269200549434016855252541468471992275387772919444447431528801642834927307641319275615784415589910781386000196653670356537696604445823106540164593017097636235825724653501129148411459455046446280429485505750870680905243137083906864548895853185042037764731504236761399568550588238198804844310172970456067082037253519061623805136463477235182621620179654094157633136419681857497011359401310475192819621380945374319737722560856176888569906500672744400321416366454874816760281742973759568016303459834955716549272552606868177187776011007705788139947991943009259741266710407974790813168743710123592082381351011886258613403369025484140901707971064525415274241758047409517969827478965322524708436518301291951269548536065829281969124082202886106104633099675164283180859194509126624765975160994780240922345171165079893399765561255673030596442739140542750790263438593968810964499078682677665676045545211899748322558925515109898354409472405783579759497036381198902576706789402664621315741101206045131862758238134871600267535646784860671562841328324012928998400834568248866207135175115163365773628956772165861865409599108739963007863912069807558638198815699244820924725982841982913323401601159237399464843178136692008522039209546037268715267740305683655185658006497071983914768657367622705371368065080740119400830943712444250230214278563202872859251162102851320907678790916951807754983480650322134929966916182680082209484940030844299052303448961030581254135345882784026603130774129234827714203569717506395665999541005314121783653551342582387017489842500280432922971204669034365011420828340492861984863783305799682837206723150564964638171266356550889289479766523430760065343588821831366571157092872817878021601143748589482986406192100564070693085236795927914327922929688683383575637391082139335006781344942990201957353422945438370762366539495514829476055112959234690624759112852346686489911944519496280779019160825316609340959643716794448328252556868039534646173842402412299829478536265013209986707209487784962255231056495604036549818214890109677146145286046983068110873576559831404591149317468608428554368720616164688601614933918180406984784068658363869946373806892065489132761197215239130708477324797878611217249488573934282609189878191767795762533843553292353021778629243770506275965028462733741554527432745841117175288126174133331587556190779601030534540656356036000096317343935625341092867175517465954200501164272552262484724386264047160537308351036720039883173241428494705201237216813247937118916991209564849890994377528621552354589386389244986436163165901431184439133797192736119801853265046849160299607036751362769986894942512367140339586344010685621374905327572831426651401057314749670262933548990996637311217634663081902674025760208091426765201362491132740293284508148669640938511087404719501056530852206036828001387311658698829332258999559489691453134355955812223794533018636001091482147411391335975641599274275809174633883075466376821584325963452930383734637542030901479543893034431995528814734750448112661672580453634520489704331478109706562703478262836161745733235326693164642553691446055637237264626872970272489473173138439593373016078033043219780795182661615694137053692153038906027686030024177350162360018372095774465518167997709295344901222627860210227008506097148147314838268398171318238237545262493231680461981011840349412509186710626141483366866878485571820430334949047064302920813617216618415451130615449060628778284292325207762614427202873878169208867397337292335395549453366971248865008301444997422981392220021943255125577033712683648646638383688261374326210699240190334076816015758889912334639394193762273815319044668556142043886156678674871309975662612610603055222854013624231699821504507925045245296006719417928230066571172164381974212394346859761093582612768296081108726643729804627856069481533109910977095279008247844736761727663894654347645219404558519396398052981204561568427791086342765238773113442705000458575873134147362011784617663941205901733242811923815220502792885259824785837729021788125431094355323226829419966434415262484920301746346558459812444587758863384015842378378564147502664921799313135841832488815884739652035759195083885234625980968923157709870822225695346066647675536087536595283975405830663846104359602572604568116647797993604103079826545519735628332860288036311466453299953048329702607165660385790046279362258508251547503237234060126885112872504828120641652461093497262333620102998148188970470874130023889669199454588656784939233826748523324769767780530967202623855820169585983198690518757634731604405146643393042228541853481166985683595476035745420626188907201483516575479304855036395792691276112997354303591173884904963445019710329264956503991012282160258799165439044668396571080427110857821010353229555047784835870623417935115419829028330943802088885576703769454796853003641798077864418385312796205016317321121325442369424010583839281347387775232773152497128060473154297342765746686640211023584996413153991263020463159611833691336797544681554135066207455320220549317781128785476705818388060551807750886745744104581820390939369976150172667863118327363839002851462820483849087505856685502241351540421709618021107710603755191967519515419914789201286550722878649203601465977000633151198917804286861167563860540358100245670078832248288352045710229810581726196139748000678854344778242964047483499700159274410906719267063494792950624105257805733293500437326513031440815678651595701093527037796844516438349790724092412192697267774091820260423904844559696930350110928073513403430648369466025436943177568117392487063392020406750039506858431511676528663076599157286174174138990892302056148169107118663202274184328210808121639693341163973364584068280601695859021168827207374572234030943726765981582471690126777250249355443348753553326352676592747972318993011562728545015479023477734487860472217683430794630915719329367470483330201473850616047832710265256265414033231815204364935332561675687541063611156096921855711289374760979952111040573888372919343685281033018023682758038252641465825818473505694458756580335062658333140640833116289565268564815786835234985941565873440686916120040719775763990614428786909753502260658605988442717704667971716066924657928179749030079050797718754506910724321567401603849604682628711888474881003388679561036389523661788435621803322525534408075641622512000204006289570435041357323563920938259203332194510159434445602671077722297748715392314066437929102959624946776770645882758968173135745379597871437911359129098287064238398024764562706566003138469933770738934401104978396471840192435339721788164354454146099789194382780533901077049754160271942469267576207699514479386441188113865002181675089596399006299241315122786213158233526614959517626671559089730435212661175866584707376596580650959975804878937744731036197021950949314594761929687252405640026444807013362296771266778382722087885140787114320183277996041511034464259882132264801528119089392702017922507597917312045079774164685411547723075395526447348470646330074876461275831464262196267248347933096041088164698872799819246724541180327683550091327002192207309234185000623070996128645336869134015042050471417702935979126245902538536456082653764836900771132547738203391096162775092700148612341085839157396487706565478375818984167807425501787324382625199933651561783882374915563509970040985971197915483136120334629342824520674047267827648978818989053935000666087361681810694155898846190461441002666563865748641918902060318391635049412972045875218794777886072567710435554196773359985707721132667417015243057194590195435119943658155265272699747803551393560773677693814468222842391284163522125408131547735451358537836119185895663683307804868311802689441251850014059226342595843271180421157132057521503567571988925566692374878665906684965428979225587947728116463996292074681360383103724917778477231106158452892206498444450321407942452863495889782660000424119447293414302692061523348647741573341987170397127822401001799959133620537790640071584661749873482450449969306485004677761568461751790435622266776528732454191832915432375253972411024075245955752407133871739466871352066804265626225133104834945040295396228764142620117354561460957419332965559661291675581013568147670199441236745832200958282574453939807134087795531158066754374558577970885424601022172508192043047737150696541082753570798315026231338193709838232737121156081864303486118415461445658551560941591420922036800704203318120543155591371630253480855488161778343583335557632932798202476623130343207435950648591890107645493518918284395323497746447857893926201099548115781194733003790590135621789919423035638134412943856876117940297224628197204257954179995713410779816983392676878393938322377820236066795301905837308830408481016124603779528059679377426419177137091436707315708509928533656307070253072479090323715062173510916249378517612914020713475723272062022820273936061633161306738766880212398800724455846496532595046016654850001485247128119849166636953727474341048253218982338590026048061878042243480096373481231713479959820554871731232805219152479443424019283967777118969807184104109534835611654498574717250739031230045543105390160339393022033503594164645528201033792197437678091765432167437354034113620682465244514478832814215316272106162237172682075514107364140257157865143342980202303868937958464252485028719415409497891724423694558886601040783472303837353220872701390815825857769897988233371457841868296518475936797262066262995138537216642205194487106584557816568741973794893794305041753773101339056798045111775357514439124192920243099244083138690582940710933985000445251743841352678897843268095813788417280835804259803634616041524976278983264826644627650511857563429402948555814326061962694830731951318694676909546414283224611041700085336214233940192914351532590692051819875125988535040462708700589618517419685327163952281351733318258620101444905198306508695146510835197043374620826673193721229938292717702978706149279754747148160006776417433741019206329904541140814453998743340470784287959671259836321515063938296185153587500684334656735923221954891530042349190493715991661804955577760066181525070089797123644451128440713282794269167345896021849311034998172349500892930272504770119122130620057952991164918373185584375990632980653188232600709665795215083568372731853981849551924875956819060034252852857030475906047326430253785844368096576198909234841250007804214002168477561655485983873452338326754589569861745439534233914936868973527843321569054732010802016577868438948101166894406585505314685582054664615168279588509736807683403693661638802844945366724670448485251994229765994278449701221880826955054013105270350042364788019836468311436633186435718414149669712966982666154045171727205545501729587048913291641484720277434997280945678099697318188123217019703807392789265922774644780251667475788250280884625438188813246555076451903634990780095101391822498837290120687169177350706110672504434272355156733903692977697892855987949662213955468071730025563380188525922902306896284116458728721403714895842050137040989177096571647667785299773732709359290086334092892794598609048359285752310192630870160883670569471629905617272824879350141606351303800548422836727790523091904897683668217509745806029826932519286764601965531210491669598564482990911288887092465019399689253813713364807453411830643555903086696452133053962150996748860705942654952019865626394074398983873791600143179491903221552247657571342969701510496261661673956408654039036612107730453978261316370299983147802367626898227478896696697060068807278875978109746861634977990402401350413351576845690872804688332462943398352418513991585496407178491556052332915329250752140220922318859959082432860513454835305099910110296125643747771962922082979028755974166103863672578560653867872520691116084208139821715433527761650504893794511111139249808149894752479620768727160046445319899422391497084177632091247612649966366362648435986831987652984794084867055266106673106325358547334295626582109464026888083628639022945818360814424382881176562186651976611082038535536719460989845209814071860959062164166869455051134499896372092140165565628432489672709461098286741819346687835709102249172207054731258855069948613789277880965966882797699847510923544045839474798381343805796211537100516382079571049426742004894852657290687002024849921388874139670201179248460723512575857732442829070632976986783829548491935816657242573906460713240153966374339835634651689945940897974809058271921065617449756229690972086487388201702155755454433985209768208135293522222791267584413192157874996125503485322040507153424299562708537694671058519638806817957174043238890699036354579516902912132706010834700349359296507586447706553805608441233016208331976567142449078997145740179435975791519715010016490259363869743613274966296780790756630758173044080892211693398177626542245324393167028648463636141378493975563330622172408899916652984363164425758598564742645498803676529669582260979962580738946045630831532776079220741140019536962704188410618217754456106114126445731636921708504134138301089942222427199918910028580790082141976185967899598247919388122272450283336597333737688913064121264086818780026490052344643415537315767279408371454260772816700509352697091238997894850369988470318820459268334172394409818460861837656564313742525367543872358341696492059133728000889831354107915845690317553706414719017812587851028800982346950279394478405098196021096281740511343440158946362039199103783263698094859526431300460989614519466084429046206031381031337918456629114699563730085875510731508642790895534139686023308148490562635985996248505878930434044243729863396338137008299105797631832846283545506451107130534650325881652117422040952483938524804915811430005914909695420566484132288023905074663212331465207995274393340928379772298463047751355962428977188033143102806862048777168248390283105830495865136884285748623642019881484505573399084736580138372450660125040184872888393370598308382732440411340892591865545305820816464405090535411425973450676361638671989400234804749077111355269710934206643573345920684629924723138783276944960386644612416448177100163001467234048511081480482269287944298084327805306668173873896733729482977652113646085133499860156072597730716064337595472234716769423458387036199551331671252412992697083826351912016258844852640705043177098214865943191623481714987554909218443065685689163622399217575292586422645545714387368652723829353483509219085210892612456128774388453594541081282786116967291640059819505187144823967947020205353762534016057194992921453984509620997303827823832150641122443731226587300123976646620096143064064414105620142053885564713356387849548263233249346094029685844809755240217726320894032037138901117764538181454079693799146800334780332417452029604666234776399165624392714981006046146000684618327837317917344129594804081336561127973854436520605801371218064917341461903763404710195776614010550003427817536434415377417083675296230883483186230151480752936004816809740294095002687778134301096335234236664558777727112658886612989603590998343012238690504181123736332202634885115870297564827055699890551082946802289710852531672345184879752400731367994388916932915127832950243608019859682410831645006162122111182870828489805158219288417638869660838240652673748367225632548819137114293906147845011124520948569298697207807230355696887882563774157630190524649294193642406479169908936391450722822258915354027607019271698025366171347775972921573180914037322283957482381587129685211601365238836092388091509703944206848254796525980304803026094132915737927625410867002928013383112315208242694466635204238162026113378482746311553277770762614614786890780853076389704260808272990476030900094071958645930839088534986626316155833980830899563004759667077414312430106577051761752633318019926301652344076609078246235410197777756777321063613505822722132356025409066124181122343959552682693112722888206738595373781378500292550569827165808721235925422446877640807057414699293803498788198978209516165675076140699382090944304108730000713255795696461799087751694595516026338201031317016470342397363340037553149305316292391530251797524479283533214809936517230239965214015241739955582250256498854471055030472127178437508880084130071027962313621579677070818717046447537366148939860182301455941164220449641824325366376973982610877850080764861897773127582755112617402514109251640638928928946423159287113048006677561516506626654834292148114452160862810629591733185039588894520441149157813668650838096962918977994168191554568972858989692412176199063927515171548753302902118223397797303637108134616425451199144661733683445988803047663031417848446178111934497791273000742831500299824355665660895003870793418223831205251077692703242241093008357625646360844423824339477124572289531175869765007810272541977497715854126643841663416355213111403088411949009096351605274017650114685231011524969614251041618158271717142047664948349130121404555088057408938751157594460379262063586758073672953636869070379595864116303612490190272903401031189011599861433693110861474880219154798974501953848786321311796852623436083603242627966725903748657730124411502622850021859783769333917422340356173770593490451344977703958836712130507747845142474998314499457114230283337711972572424050551431129348608276413660931716597626897728149605823810837500525382151552190402627438190081320288708042308056065053350817122695403669986818374783273804432173340355643449287817250505095111719329041765273225750285458966701268762496397077869300971051539387265024068782132041238283260647573822087235881823309099297304080531619455159023698732884976446393889482901773241510866184239121094522758708106485474790766621307378774111316957554416222533060066439219531530245556072109599649420960417302764840261013914111851666492378306860046008784172872998290789850780551928967557230821759693012676819263365237700280207114737093861428384054087398371832416208524695514320298924809050970860288049661216441781374405774448516565433884591872051248218290624102919533583932604998668648228387462890051839628563764128712713358417057280232559907171033464630241938428612332145359388707742001368074146464782014930227154710447822345371687991492706446268018393383640862461127638116825132912806078765605633262331680617492808863931666267547048607714851356181342571729624623236592720060940881145114847524557002516309541578241198755527602135970309395853958805641885395507075733195630943940369268528947195908861948355296434888052691401143489899535285058599762556143037423514459710290580531465401600518555498019071320210697447289230384509192378880618695725811966671175172534511382833201949670200288917589344348472643853296371553722306843850733256487139313704018261647204665048482524778176654925170196143195316708303477881693496730791609808289707461392979231363839772409957544839021482928821515114802015387673604618807125412039321625437724738311999696329647144894045083861479767181818936910253735743675052704190503226426821335846645221188647863375590856424479057841468031887959869827098837122846322301617002915112850404747753265598375969596778921285025750884073902359326568465489643371187413793310979772140569416429928152128918175796523608899613394025366382526939846888217564260959641806427749091954131346474119853755794962112556680552556860611261796183243704393511939491613212251410964456756206422881387272919930631375900036273860555927488741642603511571066187105503207648129728811568461209097374877877668676919219731295188042038631848724962411191038736283198651412995496730779065238518069941110490912577627162131820467842161365516355321848601751688477126851978229303229428254746664409151834162830630757881518369256707714450984667809575363753565851055346508601267939252071503203032171230703988489064952203583723626508938736116846779793130902727537150635666454523511968426954569989427859569519935278184159205635291076123822816606469474063522070195669017756621835500138801436310914512150640737275769746994813209002147800681826065126937090830567903954802685133934525538871829677807424504214501797420268551904168747307874145792620568894060978395359233578825517867664408891610574671083748252908803659394117968450840609409769625757766848596216564427488142748680863169420917558096693815960751417526449313962514840029660583532151609170638596436881794769512359075130135242168818086203398992543870896611907485029544964182000139159411793283064338522617994481994088273494991112027070897414661798182987936173097941929318886890950112243956531743390114532876771725193386714705373250265641150382590303011371386733948370144624158772167638849045281131106574969869084023685627845974197940457039000603637238778188938429865395845196443503681928991817265044331685203590234142751719249475081192017358877408740961284746796642901997307663180323309204995956608908991627838052508824696551606625553410756628752289738587863951411042466985766497428060174511469091471265688274540077967908804797566810887250102362753937471656601785372805669736137890191552672547899311538727055620119075671107284055914159453973091779245964593153503766073411869874009852385838489886075807098480363566827858696579615694310167538628194595162008645334168963310429176724783008063375146615325988202078248690339448290884752482090858579300115484057844090920963145826680364173915781553948587897358153243123491670697476462967028851755332386262102337121343397442065710623825232529219829309216188496794965079206842047396212592226747704367588798165761714999889013339822135921198835912385324059090218520410874463175505469657492218007051730983211657580802491530691792827777611452678305538662861476671939052509944111611857795292512180232973331439523258912092363151660482928790632415307628625435817650223936176890449421560672116536417933418259189196074062379430690979929648808786360782156939087686909688585312933902255699778321003822008952512623550806696573768851598281291625139896369065352789970492764855291967374894429861309215861407327977759172417234016685123951511849938953110994397893884238429504847099485370469144662074040497838338890669891228797822541240329916393862574634560795975524839555256228059217533451413854431736337285678199127078890974414944508628043800149514980365927650531627593673993229941358223917224898119270374215734462934342116123167850340641196843355871335143770781742555970123948038442518278789843478441713276101120447205656068743784380098546604338776322272119662851681128094821664468726054713079548908682249839498859298014125029027305933415735188580023640528310277697829610612464343805073409084819745014720473685316951156177153912347818807046339123831546012226445484862147629190270144620939932648014045448425422570195090291406564714364705572003934180046025505876983817350526604456944814598261141550084636220666552122146307684036947743947590381570677002174929083027277034531274794615761491938828252493455180840163887294620125649530283988401591567322213228822351807321945267800952131829213686335000116974995430692826047751706267649937744182680965318462827312234605241458011537111542113078716706157208860236393588784892045202674488547648691952013014067820397306511345360436712287845386446490284408074376567847351629710991163443837373465442627032067484335011998157709947544205337566961637335170186950979497610807580401647585131613839523248983298891743141929151370837187413879137222318335860007026403003398967800805519415251397780633920242957671297435569246534059399400505245682893640215994698576167923412544186962813544393783580185010744124748601924904728480106004737933419250306054277642952805638773099279468702164341632367875637735906807199197196126209965634027264893421742641936354755577531794319454375613464895778145072071995777378259401814707240641758621660197772750169938127313682496476087007424594033876291381921260225798294306072705723967026483960302317574647437339632837667316676087236752319149046248839864609875452763555301127282089199957600294192508642165307554651247808976215382556210831589757211453737848735615477621945748606638069358135137003611370439307970756722812467879616705298005765850161214313569671471168728616674981450850248282583048306367398924844658370303160962939900258412393998297215374589756082688366060932157653738340622906240808855833383655493467316216244199101401188193555543412591671543267757491562718828205096902822604130250725457397504521787831497907458158401319468524943417052218963897554320317575949256066802395828644296739461255147594541791085288659264822890750772110534033613713906079472296719575203254473932711628035293527937057992384905693342077220217754231864128281453125434875801821914822666563438675840586425769068287185778107463878008380715985478437908122925077884221261028465446351525013181918852905645342743881636745757721266229776214420867374686326873001236671132384013326731679618267586092422427927184024450394887127480170265968141568971689194557623443939366175394090514901471479830808301253769874559714497558409242571300079167587508210546963818762152229694592189753644367154749378021453266234209613496732318925862743229747943154058588802246297186756227068489774392498618686011684882569917107247913090018526441229023880587458956834739196772676778141402029836250803584198994843762577699837610627773194969673525638881333203848469592393615059674300532090788755846933462566485337684577147515256958371905926168734388043111430141189252703242734695182353630382547771177710983003902381302492623361061905060961092431319203901578396709514068612215103133271376907258513236495252753197067307753444230635905372193050283307421210165168909517184049917156601106582274299033088203301916115188530236406381589776364185059370966399341987218510135880782979841103460675468662123422462143476542579392533297720853433765171152973437620317132325878437717280584572202942197348271439842962803767140176658888669128402311770055513353085922719718739717033856924882142965301905201779938923940446794108843212738336142317259560476770142172755581752031011272571556920504114159796352435143014544900919953483272899491713072813812962975560281997183908913633236232962963767354680294499680500814366258713348906428783103461895567696962373033602882054216299285352628765748119099717858603047357693498040079792724077791134003354738478050701531991507713770976148363691087249110167737055862908364022029025991899247406447278852129789936588331373689513623831071591514033933360417042568212471138985984739447147318706693120776186433274357509254725881655862016357985995068106711152731125874343679144185408379791186930846597844865188371458138754023510309931335244336883319858239029464854978200160752221783302876292266873135665516028721518658473416411514107035061549165303004664986257867130242223189306992190510822385786355483575346562190852194801106644305740772986078416641681853911559322651264755578480018237563122093823907220236204933327253378153527457693345871844561232349440549155871462489461317639758493022125159200496915547848033739357655308233470186039410337503173423505607998781276382639199993008044712655774300673879234936982138277503796398972130399955218529024058813279771789839923473344235954550384266131811837942383761511875785290440783462481363905487685850669122159593544146995852324165079155403994715235068098577786958231950442709692153299679741405423831259894566045396492061527752630283031018283022826212029092809450727033962973418313666209050318551329973343033934292597126940990142513690466050380800212885912757005446894747703329964794731387939393098667399320545719809116906881660149896961625881486152557636662873839863498339383466738877751187452979770798745425067892551582086570087587341037768118251382069522475676040118039119643627282171852281266020417515937542200849491576214563742580894682988135672402349613031421702084495880749677133418607801299355457595674633585111810517400030923676913378943396248180350411898974345933818537019657932932764307479004270268115347682593855768911407167297528981586222430688602682986027078731181547642538267221181634213660860754431158802636629183116806369808262399104649124422341423776402159700262205276376867889524076932479446181805061096214690741081150144224452411025406180809736135790011767252759620738919588183083046105796988945559484409208421641690646719100156954042387270956148319467313114133342384813597866982374021795114511112619053142452650293083308772684775325149865134958943721979576955469427013489248843337972084742507949247835974749603731433172944814244969120703329353501040554230537543775919829476051448908206343119774005624129608748305785881933799745562386080786610871230551315920627482574281040097549403095201162246901076094386260851018698007906920441534143792079130874347244528552927277833871011693739888049332100223314440375540446725987222866634981865244729595953422396060164900203072961598372780162140519835254157410221029985456285230058340092597973308700183841372946962540211304706988742269987255844712618726313806921350042622920847748190478809826460902599903994582452908932516234086636089479064637521741434042556403680440547404468866595266589612778173466187886050090860419812810177856111186834651680389746589515892574471832315977399960166147091007368335827226711942447554961933227210260471006152414599319423166222679954405802287974053727872904617279865133465482193935974888097447920948105717217445954045195156369633314258941684118700902799093303018100088162961083716937520905803892763099975163783831446988082815354572575498336835567874336874441473261508206607977196053696547885331414573319729748375987507478745380675249392391922263259137292033371438573678506665737534770295902701466487482878439073569817384496009935537041613400088493685013609705068733714605806794455862696977515914315224993475151371362922810822548514244881231741877216091113761403010860348072070571320941543556813204446469398871370096787884855425654748916703213858359395052830103388596846100576746977059355073112748960805173150364141493773035702236416760550791796181235184361626725046041972975583003526925391124341892414075066216502862962001835388218158548483733946255273332856593436001815409506327983012160773267070195492999439092889832117710697415943664060530689921370379152069580379939040403876382569746924084263985451049957054584466073699703990579817086770376559494066739658814670677997176021952568261907430195475868314817596750741971199666582377308200131089594689695764810917012772857331207518353127170916417255161144272240843488480889422990609088205028642249929635659621888898282169385473854368411148660445430175966746743121454360304958909252938578275637488542465977717209768673218379588435699120679040524013316954432304283926792512682359883518191742446641946958007973478081550520706180303268278677449331520205215653548634472005510024641303639771819174111765948415881465153850871405596533063584315207616270082532355409480797268097376085751054559564484948191740550680609558515505763904580500978224472649790300837348577502622759989842822750449273810536914966484837649563850533275596989534066646283268348413275696627799567440211939066759917128258954419452150593012683293844239087146867456767774413312349243759495858946310766686222849261288903466909031487114044335483024834373815700171054099523265376397643701790700101870999992541054079126873657791660782688974207193208758135077478131041957515268252499102146781541273666643334369416687344532968632737921927079598660499846503515950267114393090819956501980890183434895683364425115018919365598229982364402535905128584878332873714805159222842551718212618893622970529002132311921856456088367229300614611620793105240500413115238018583603473015947865944324544489302439300858442302283255493403721147615596917802950828032975446047387665496167120074865468864827021475595274729366227204764912864150356034414654651211214915247098211160409732569856965420809356365840166799110396628245785487875244502369945369626069371539872148327880451661531199555697235681603438272816507220580626101997658263557317602630262383234131112876487023053302761389519738906130437192427237100859319860006749876473430839749842295913249105707571264665298361881395616735626333857040954683197084191107410698457108534601992001551880539125037620435220916556562571817292875390455655532373787790852144741674696941467450384172807672702524475299702275738565544318248760638748336798426321165577086958856964641837367414892525830769982824628552373989878344017583388844125514614267302590018184813859480757548328525566394567066775341967771645594972686612681532414403862316384256420590876342734093728596520335965952629227657315846487315055691234288030125344593599698260607320113001511988102403881518130495895262545194561408167106826531848979519059208395610673332898082801344173334355590760309421992428498892662387360031587306123003839720451390336551062870992065357444343223967107989213058151172679388855818739138270229190894101836216728538470270770690992667161286628387793216707542199969161703787450645818518156199670860721511599229514613395450087252426945018957266015875581646650768112946129264621289824511829273583741580670555970446045674119415644343856579379188622456212629140947173115824157361835918400145877931773694511404077312314781342433846053732492003749126621689208233674748175161835954379098506096539816480827267885159911969685537988991599714608004852561906248590580735821767197444645994853119248759143892001653345121308121496910590291460415956260052123327553695097160804620851278359613920745307340653442793506101716530711866707134148037722947312637416323703694458389629951358067003355351178174030974725394858446292670163228750056259146030754288750774442414755913433120074769481890600478576877717567862351949774262286374356852400826370707456957896096934814200510326938629886378397932317002555213651044460685682769388070126621426812538987245962930515822024945677745063079178842567082572557864361159674744497516575869336489734603471069370110625967123289331841280654231030670706159171736374739001849644564863644834420364828983131857331663359892675179639150474660384585822964467655111637672124504219010764883297672975354247140390129927340779654107857752463415523386908175996085595752797838687695840779220584422501111903244491907178707337789328694366985432953674065923083948442417732107261269012206590479975350947896118218986914112340340574462664453542480179276028062135924571304062463513954749493508274601622563203507686789194048665292536367190484445257223425482251275054774383485600859128722130251995112070613016546188795242048538350993335918546978792459540334260245561597203339203091585994498181899746840227557808701568167216275208286842167862009832974064514505211613882829298218588468903515308986655590954825219882301345816464958373943633696545578031473968168900437211360561788733831099798659619675529744043640316980095784447153778164617899630823935931061053975000626522547900306737115952748510298657256713489094567453398014130448591378881408792774090647455919532972214229892006308685714937299538226664082805666822446385982118014472987042926036603947306128643473150693476592759568351674428484053787202141747834637425875729302177057377622570356815934436091067406372125780664621073197375986480889931928831934574185490535038151932004577403868275076406377008471704177450278101184815054136117820700973211608333757449501527690051781889958005060785672570165392828676288793607770271647511159243768772923777459891167334852206519819838208990241143371958788564182334848774094521208741476606344050197432104205190592580488734088180107606317610222049388959875464802320127673591367675543873993887523505723394056216699574906137427335442226197779881407238195024876742209431322489854766480320499415133479589535010506384006685083568735078700446630908906845866845624812023675169671100674074367904316736040427773449078955788261625741935732442556434195586352083287147295773229429735398809260010667155218469654810469965155545385368538247032618648249587052207824298062275014473713899520875923359515361890900536176420451794225912234924209522835684137920848473737025914653854423210073227179046904982685401439066241710018994658691670724094392898762426384329953168194319793565257666741834574119172808514705634612154631690655232655461752236870365817531360468890048103006733687085766569566734444150281270019043901969965308739049412382972797009650536038709670378561337903738939633632349288952150215900106093623485699494599971168500044452778906627205701212168954273431856897834324057151886857567646598158791994695244862648198890363890761058185303203933049201601064360787629373325783223932967664403022400237297205932975176265087712641547642914976217615307550535134984331058288184014045636733723864119901222366175380493436439185156762293807565781222701355951444878757616611854139287995462436968528881140184890859807113630296945164157074766759181333973946603636032799048935674624124106349024976162632026010838664208340513994074940856867557290000542728773002400333769924629633353922432332371131033883527861995137515749760446653798891909750027591588360139110691619568272689415606836183713120623820639649300745985810724361261344547651162131325314607544165782245128587597340022116941276036521693515185970784560959846396420703507940241160074914646839536603992467918051094716756063866546324691839040205159978403600919544152183511403914883751247807944648103648260168093851582530324476382984079541513113805073886247528391718728560164616621477477185152128754978797016248255880878744338326769927029756124119705906937173668327364443450198876613803116817530258405569920398772520438197305269343248340495691002979979302019469599869424984275967211494196464051748557301704380776950169433420865365146875526402493442361853126978914874678538620375056199337899209796888468182005872674454912917409157241650028190610663793018494122801065304480115019610340906443398478591844991988914543905168874063443236358911000334018501791390900384603565663550443445097582062357710549368071503630342375270608810034729681982345043692683527366641482827587463697260515772845472305266684164155089074417968201620599293438904541474331181402469854683288829042766462856260277710771604565924282036301874011582531632285278930962486933477611473844519810092270716846651880918950110605677331521565150167933507671134298587109304265309614353036701392014314701374730014722503948501847908377241471282125801796589982780689921283204066497755483348405529788206007240746351166843434449148076863296916168427561775044820981820151329995251841824313665200675098845182678874114340060954502444421025922726841679759993555899475084635321903804544512600282135819652236767657614477743662032999084515822228559599135082944739443021682500652689244620271511957018442588053182525984795403437725989193844315188730406637980690109263543989814329561045861513071391428174694488533509154414289131297721965973807304044768947210814927425871263696797194079039323847745068959158203658107233727269059653450455596396182075057636946104622914478297439195269987252246780718892326623230862098515612569325745152650592552308285704907866139528662405562488284445616116007153190064747358235491875911716114814132589205286202729460295356089848702079526304274564967203450893179686577791931648188870550779880235882689583609811953761741296237573535921578961750936791105163812540109452864701231029880442880001116744027981016248356928208921203204666705096323347540894269721130133714198363105094854055884276859215018874438198692667666985931395752601080095811832526512869565105404297876668295232391390453128175963906265523073679073298105923242940120908905620855863287682133009250335620792226392585765233017587502862593614831093454323162701234994750070914058798033452801151190282223471210124442502605737298767642116445299227646961626868593327233152227536023984883191857184749762980862296974306839682139527112083337000570248663738795304743996693031967168284511146906434770705936356844716213164365300108819867068037593608345338892079381339847297088354828209203853513353988050176294315841746847907454229904639326969982776421979641915920238392942918982876000532297953290471593310758028322962453065315007234224605432677449042865592567579712601554635989459870425071690630296084458943766141161767085069373570296087572739630488546528406295811034792934492989478156247658023552315574359739948553636948102294631144355529606879044109416661870640766006842197016446012650823530248282034246962335918620727894211437997230807380521097498848435949463203016887941303708672945967042933256999862170966552275948958394566480602720691433016613974032969026192770074010450243653530341303324217003534539606372200133413129983916835527373045607297392740613535944828558153628577979903947926728600221172546048455449420494738332993791023318088849696720743053596280655385836261874235830345216324832987729081807550459848177672617792059216266892903384355417661991113569570398502861894350166946567107879646217492266244696221581635517630304401640551541852029957482262873623186783432451466323413573833135726093129841884164560938504075668512257396594309550530295423186322901882404173209678583047886640385916506504699532986654183851895912251396572918822846793196273369809751950237941783165633053158711237489844519673011140686530196000367760293001204851845296154763859391422892251115255941648356472290923794094802698394401707011093963117151600528284155274803015033765159975025066631008477684804248884446766790535578070436247441252479208015089962340347661301698042588524954114379140187539308950687742543418837524092056188955790929910324662339184258963227880260299267266802492421876393897345707335220261828396394503120707774781147605799157789240410121972211277478507618408444393050960705094365551424206841696060787086870089857844673697082915344037460809638680300957621425748191708322552452516395680625633960745146664710400054793535017728304006270715622599103534466974363658028943067986108749433957364568597182833402345439699158018994344602175782299398602138318419624260340861859266537192223253437538271741924458360359884367427407263720510594621262065903960846871382818864911112504798473522838225878369640478343858685116744055928971243693145642072637658560805651773228538394683573256545679585854904816779566413068590152355278810931197548542006197840039956747338920170464330211351138754584515550000544529542948470279123900842671018026285315639110152627012314670215288096443000137247934038997976835264600019997982855125634071638651182333292805500102330101758098001194378230272266501369072844248110523982882789332832131744870774453947505215894852320630124095320863596206641412021399333962533446166647194869395808043171762679574183495352301803536264040123705311136055270476489057234326301536647581711926629104059799659857916055817469973923611721516683940571278098990330727950121319855095899680591374773800690307396236274574632547288510494041372860537456119962648300689429319263998942008959062127044785109559968316213183852025275478346435927955322637198177881093880458477179679024677448470943624808694626876600204822968047654778467141284744298609138337968480179312263780713668580740441297866784298806523482103022739212088685215418498856213685716415772891112898577133991133774725244838975444991709566940869507275056833278753160478865584894871905965042422640539021681248820806929721137326916579200057052480340260992745455023038607398916420923111011456664589267268083379448408230347628983944957697461953191037797392757962060404639986074821038508469326284755507852016826491339001217623055435998256672365294864688572162299011992473292964045057851984205289203444652731885329971143440413683638312385017527756476887805481944407035631037387582783142399984467694518914049849675809908490092858772299683488066259773810177284160316874092830806284445487470749505865010607850907696531000074577513232661369976579654111307755366620991631262476801615592746747941687325686637706675825074617821967484387106456877204577744085020014839919750385707094772774330214855260391517507304500312056158043286680052484119893066142637614255608004214400135636077987776501006289656162939310604073313983685113351123040925543714853773429339101506117388372764066059490441602889299907365056578718192743318229189543396191153739816721582298436227161823842351086997235395503191751605897260301667323665032581027177356625308186094774987898245054203866695278808253227041489108517858432413978895410835118494950509130930493544457515753179152771442490533251197416471735180374765430856702724954204221653709376337925904939261560914307045398976077335532730708262880573227595227607378439294178515215697668417454003017308556521542362628845083908932113736652844823139094125115769183723709872779946767235777832696247229254163640836429880199687324411151880607354739624096052566420120983720182107013970621913549175969417779231821653247143184562308442534337562345149293026209904520196326664910256302228259572078550793973058131483602967464480814253084637625038137243452739319245119833209601885835304740666931460468727459095881342702022315482944705954398212181355794327063750725360631966721652162201457274098304859879938407521809219232035298679133435665075735524451110376465998953328953934972894367046543249556890378870950290603157529402085190164661229953727682471104776122163701229295529952168265225937111404402490584598619838462264628081494762316106876668676213464655062891637602641100664025829033251808121754471814767590665210187000342748672143119240788799495536863365103685677051220879952742238988241810945362648278988786966447359574445956181828457339214641452884221561602755284246198678751224772453060738143237114164702892563424380219823225645380563644452570400022803008399736254120142177681368694290579934039558983546486175916958447328770862729542191541095196039549793250622550165610609837292788231801696519106320262032840528078209126880781168626138464859191271147055638628784913614346619352459590799529097369102379137251198007625320238207666189836787075867415937836569564190359220973778471018589920322213862663737205040115313558749750140393695193411485579012186253906974885439479310861958530851399405352963014961286708762835576145073842157754328405921795931769088775474621673483450424592263223085433231996999397829570643526688875257663960487718816651473437178837855371743353950683902287525307292556177316069532210694061231999961589064797650771964760646181249043928304103947436972381041398028226848972188383763832324091801042996842260209248729998215712223193704126763837086744089895759616761208304688437901352156541383032673147826310500953027929283863184364916987794588388897489203674822304114263692689260430890438720213975916250145138049958347211262479746090604213495528499394708567722520196840303553511328083477231789603571625784692077016452090628344696143752843359257145909197811516549790303925497204950051321061576867533408618786372828762426279290756456576581711743120458880024102064701035715307348086992608425331215946405374999730808651691853062282385972166272136921649163182561119283272774361195747428073233534294072802455356773686926295532983405475196041790428547961741927114630810944198452655357400488780079295841987828255032642809052922755627190697413589464900447022433424396268877929006096856255874788391445351969809809417270412501150040156723434109702847095113863932279454235365341251395730644515067931976437221945179338165160925414157609228248989734174391061212809297413128087675013892134874083262183894423637189230306370161315697033777836298912427232921049271014139648372061066516266964437515461213454532298493171240629517186287392138582761874432811750340261723618701451158128380266000889565689904309703474548038475959269895191358120925943902539893054492019628674010370322968510205274852999657218911979450606245011330105382491835806913226425164979576728640265135175058526532297811840060124818439659518108401377599077296610418330757586487166881835776926854097848928787023273418315697163498830643105959337289576715152097091847947834583350403014556353441934242529863091411985446237366751741609298242360058891172997938561214401755307281185708909654435911841621827895395171127367057133983742127602615143167213489051260642800521223531529701397378360094390959198598244132172020587147156875620524839664289334985667873181329502970078736379950377032563286558919257076044533275017990646316357217503203229424230922152412198628804605446431343469054371782807113702590675855807802870702237446706235381877014459049637026937569240878271092056852273202212116717921905483369020488779537508956392845347320314004025700192427889677829153705404788739177662131643068829761065577541293845095301892696898047277051374874191866388069009728407567512049521335999403607224476690836597799863326131860653408387748756235129495993054208080972447468196854323654508639868951600119033897323253109687591239076262092864147415615109901798362486565448888522652082419484911702436126349008280529170516907162197840884387122762399496506212502972392374405322870710994914248381005868863396986220655358424071292755531305016061266179161087585468312203072685228913626341984692770266799223454822118502877425894215152661207220622495068319623321951379705326818554821333212750698642249111479641635661959009100842658265164371234221215925152653779253764688082248485161816465770061546345028888151021994586909910768822511681859174059408165361198204692253451345354819172718564695339668108714215287438737339410996698803474005765976917624377943893601402277972116379365270671844075647160149683568759685987161663090504033184368237336292233875068584764333249139008559258508073583933788612077299006403265398406941207291799764131340414625451692433709719542471049476381872363882655323558989814793781008436192166022451985643305767473075955254602123784571079655806641271101178849112228071091208729840820504905957393867342889839297559318386317744409031234446469019789891033907519605885510056206911264829525300029056948630880780245223219538947292037923147832763160659734924486051728713522310390903239374663719901638279318987148715800528128502177185485110647204092812706380404134114036390588089372365337024595842878978054514518334980685311920977146860828734896841345459879550220391301273797179726280851276779736452325657201950867744781253228637804371959403225761804822810692746419079264772583606173037643458625087471205704565082094163565743732991318097444646943163974494082037990862349963038392930087863692555232738750260245932245609905736144206106751689198424330763263126374187171755232924035318569368653048678830030655774205647217336220480330675619392321759314748146317178112329431712562962985856871275807528173594999232287576358117657750103056920175382473813106989740539289666121140569270485634766006134409187735106138714173294994201665459789136435138018906954767786274500695688940317865198105676153082516491174214913260263910157280544871948407001272934075183798422906030333751614433993676976608308699252346781215581527066525334746470515546117529296389880839761680670210395580225721523614288668274719105404907629387268759038470742300190611027159827393183580669927693565338181595882957663958337572012404494736280438780286359309758336729780188412971520623614383863531960079661635686009862567669308666271162634742485692926873345516081244164773385609064146221672482730401162920051644996394210914572028927937196680791566263086867406136385904336432531464801628042644377961043190499585968035872767764366851951996660918811369221811763743201673684448641821427145493666277970178947441092940603034117645387235241827666967569367881265464256872793169884149302118040861516495671535130805555447135944819208512197325934995910197533012367792566623807674085268190972692287519803630411061706542588768420280901990048140235089398831901307152626231129062729042763511898504442801278368191357892934299723704450557381877042157208645469625056809248935086850134031683524247452321989641487018222626230978235839312042725953177016962329218608625275533121341579269883726862874054947894748037915722239539937167252039791627226125250987826106056898418950161135843918745727559293548431940351402130385989876243142440911382596806558305725541303563814590972517183437845365972327914355238314919079950460078780985061722965320733018593080459358923769489112855508966571670767969558239157081661597992252375066275119288654439032070200886953103940224122201904312066375026273837469754565915094235646022970697956975019615366341195637610270956639218117527072243743347083790166793071139935137593179788196702873614941262521377061281163958578093134465792359561546211483410300123262984433131247370141089056125736909944433540051242689862342220024566971148915450381294556596110492898489253121557702671823221211797586050541372889468966181670927050893439822123017266653977076215118373960567650675915315534949228838662032395974897561594736161165739158578225745403210259843078965463100663626382724684755260391966630444058217482096429519674328889013947221990338093309525203323222969472786388370344673787259858955160774801039609227808615275440616197555469571551568419997449364084772572823953498448437956137332369205133528711264755848952772066461762446660948311498779381941232012259942613063490019115118417274642681856658117351577755289676222531371747461260605252307578942217493302975105895608026674364166618575250412270424871543963718865667552743972029248842559772312149045751834838480228042163839556736974453119174949615828733560724861796556748054540339246698705779182937346365669531529107543764097099921421565195098353041724087246214434739216834788809501189055074068310390814172774746789835898424325314873222102999976064215046307603266112844447177117363986517842551101164187676120808142714188759461700616803940131367991444924562899201767848790276213841742121855127212909923347172987103478842964483137496624305969961551929053289842797514638470956394154723946696996096253507127481015060630393119895017112394281160330249266313217483051754113940696802726478673956568158523287438961250848107010357153852614274063257679575307541979037667819496310637745631466123326522210960100578902137760446117865278758008778396923193833535059606356217151376811002193958254954926795626427127087725575979301512270206235003226410051474558202950574723139788379809642309254570977038933224331655950885215485771015241854112524604773943794823548295057758442629721093763833243683647836165385226748289017286508194607894318600190228850770052557705309563382777957774937210437459176311970363481466890455041503898274698865942296685039945772646949849448231662736296546295930606180528916777409427706394208171788233709228878912806462077797768490414765739754312275352712887295134910061089397783963495761453247239883811406420707618614652261227002452880433199059437897670244490297568177948918695981549008074160377065212794334399252800991214916030994168112634505239072177238109261188971935780845240425303176429491915392589491836559323661864332200211886425777525003664758837881154687737777504542728064752056381380284467812493521357827381775295003735137985058654031846540600757117807273477508697417055757539933654511996390626389028528432691574245337736332186779627523921534997997981217250876979859802404275035353564935026573560024704634279577222748384364371779194773192156246391743448188992602433030711442670850722412894559812027546994751600072271993668672371322035998687531939085957679888119626285647348127961655579386086319045623530377109900134012565649897070707221640394282524003121967160312808856380987927059004793139439074952090123488800363123027687007209913297737086392422536601737931677269190150066155738518185652803800939840620805755139901883666300053082714695608986936879293848848190158177608935929198173552305070008465306990224261378138450777137200884809226293842778149053877541336730480940326806345859617387067387842201372259482622929417503396377975416503676335233888069796126238536597169009330250121771947202386098713880638403438030603036430824849753692433899072484506665934018312234510962058831489950176858733767664543859579192966528879970133894044234632285117777425351514122464346487142684264937393536984459531336607795095840812824884586754136198164157795884855976959516526282176563845308126594997287943555225465426256058197572436289062181131436741355638750511387180847294509292298547253104358109137950979429445541182365725478542354092031147213113407412833671079653343784916617933919718740366770890782451131480630295357611105081511292435372314199514718304722270861706690545049148220999323050604468529576262879642986226042066488629892172025886836980965555606549294896963170752464313711647654424788649167464135431065750279109184105215272360786495513648199013333725734881709890449516350622067378007708352137819202671530520972187242080050754082042999816285723645544425260202168223571563266589907759519449600265700641177630963986580409260359162735587452506551440406120372332325260209966819872674820320055155786025798209318052411914983817550721569765365073867180291363255111773598290610127415586877333586043631742627380612088414526866011350553356019251365579837200956975461838834951443734604269645645582097847298140372132793990754731576352585016009240751086836958207567939922100134550099809583003067537752387634754105566092137888718070938398516645493168729326689959194739519973723836843315526057998961842282267006537849477750631866208626943223718521344007409658688885713381696781396685527815202377231941950939023307122093685610058737169351634261520796500164930450002289910933558769373741003562488957475110093506793371080642450518883708050316260590135173916212810353198854822541671676281758864254635312658426128364537854327817751205754635756397661053390126363886403189999502899910938230580536795151013504982787628299382233366236099959238205672146408091263005866917255287209343049379115689513170566323513166498034972211814287313277817317876479767171052954891831015362202505160264606120293498897556348610150259802743153405257285313680117585665361932448166447941653784191331823247310688314295588195150921778261836172408704060771071308028287430983009613924284601547578167925307211564803483274027509791226694546504408936796968650149678819355035207787428811906586384718585918492263429376912162209303959593664288057338337793414656077084140522795241702288866372396461808038929670335612975678453927814758109809158422237266744773352411258247903694096441425933690976856699223462053994411694167892875976516996595171984440753982899427256134307483410158086420306338800336967666283304335178481847765880069088969741484306693439519474601929148925140035597371497293764173682915610914975860261242517600470512927144618037113896609595205209437178001373557426288380957767556553659910584819676570639883910746751255148382723315522763819865389447248519896804763211646388893687162451280530750869689057737566503016862127570352552262583077967341641352163721269597441930882496516116629258027184272663287581961638264831897099492747940207813272756187554385753219555188102654151121597448617518589087817049745486774742201400197881690151204480065016688510767456148050923150432700937182900693728584229954685959963405298165210434480455636167522804955867441583009109811522334829030455157975823737442855505547894260406885039335286782793840692798543075845914939525854759308862473279646784696573404060845474409613389031513131579910675767662338296665136233631781500044131781814109092348180346873514278386034382219896790550926958261094868337276504884801012439960786288371673710625164842632020517802233536058485932399886022960992392976420529629838756287080765465605404559980574861235685496405193778925184528121568411523038287916447407410025033611534112668352924581925402616087670643385525539414676056795149185073879147007799186959337487703027670632777493745873592562631573572346816401485063263720614947849652394291813473029952287015996588620928833594156050393607989360738545930314734808171390822714773299382607515086590542957099387000616837935297019096979786344490420019645723539000234112612750154229201998872804569278273944261261032882709672868145399551762144802960654012891696590772843048689459821976558923088187072040940934687037471894011670089257268296969561404223887532533782697366750762369600477087035574595115968338201403416226904634524577119810106754143920949106953243444602050417934499298629316739888784905582043682276105085553840703613492108891388930893120374614435460931697851192683749398010996960751023642585530265736184341034469040628365255871226319193697947207944831763631520864330211309590838294462051687440058404083889498629300836765689885202676460134569672097296874309280054634541168860213198387553464773481899197173309966951608413426458419695354796536094126292737639935006917675037264811590846078680349725978105624224150174485606395674124936556405590029289978077940426375441870586887249179860999131719039192967021176962305932538641864506842542382408860771472172287945407148378018278452421297419283946137565320205024373993681405490453512620092790547545716785936468483581013173423146180169154981761779291323461590790455027621310148822215301909942252090937433035655688683158674747499747499556756106401301842038914025144048854485670604018120927575813304916609595732238290296739243119600925590001886470698216025823942659154013039847141036144449897749411173972282284601056798886781136231193803945983447227430832276643989527527643747181515264391659052367854551766306602839253371043304866594444784980298779749447083625077542002962935890685010654819839891379329579513366633131605751546721579624912839437900390843943325737267258810910457949968184744404291538018081114858140402388765943344941606004587727200844943899350843917613199458883168842928398045964204878267325708228425718922130306240782879162819867821841174690256205640406136062088606375715967991054614346026467901085914841733013028475609223967375460218180406075265463405067346633399983281050366808552802449607106568853344521320722613482626511974823177148956312319436032974269703527055040994002470899193231469845535571036107210440729347985874240650649497171732333874214053872483083951679837610195772290564761484152515451320521862538397488697992174703387487971558464871992123889381519485704672257150164022597813788926995038286558799323828648170220369274933496731031582959777153479875959488573753255787446521468943488265788762134351221981943738213022101105899008913694987485492421932167414300457406068103265599681678893185242517761475847251247236378904702375089904125122148074545555399987370550999637105436501070795006159288901444658675720333643969583220585877508572360773139242093672756762423091170990899787318540349983887990887383809653706199749691641268776803956972137134257551507364164566985398036715467052801928216859304000402163354358085686196435060972396339347198479712631817211022287852286280267359198764868110721938890696339952921567518582272355238133370544855186491319675819615678480482253125711137822325367500148536012382153502177074692109619482735109649953746077499631679478048178104850061912773221248454964425211535260923961294255477886665798975133782162316204040296746248883123819145196075666894662794246513603723393379115585859583101156453853689451711130343082919709515141271320167723368231019248861128629864625516923622234655965565989975856240418797204318247551015599242388796604667865503399879215536574557075607279554728678775518886736055878148578984648885337790648471219837300495094311428966567658768228389846681196679353612957098101322403281087771118564515932613393942055209888622293495586029889133202636721049979692569340147846106157142720634868393861002863793625213057620195926969972982119641059456417983950990059399159376128730032489104289455675062951857393663106899474219799090328428483464508665562619202834531692052821272165871778008127253674820224208834290589193469612028510154351497452621560467929524976404978150280127991023938442350710684588825363411424754080833121475451644320278828287145119895001921528731836122422833569181196406387001267898496599118978887572720061723653188839250069189022718832881693681395637540088841709347680124207451304495841293917938713835855947544379193733861780981887161027131104755660788144505776700858601329587125760046813029020144577786776350842488236875301706700846754932919798049416827118496118769247335910312430209626766754579298977398025398481950042433033562284659229595218996205302440967678906786393982527044394933001236756365368492587430896803044048839505233868075614380267767733693773540743423201956893474553477024044028537867500321996875331758681403038909299866701759451268694843646860172688268585618729842647178936125235796315598956501400899213825748437031715440410886357756813544285259378601297776406016481505443564394778423211835330732582844134993110195781155459682706904109244544098753111514521874569295973925277120302450931715770177146375744530851077430270531983773550902566162871275731764726133472046126271544911870960608687243667802457703060769050588183700630810069814781086364113759539767394929628221940259293314698934578580996880947393941180443235666121634200650637864013900792947065665548357074142841131598648929265091280877363608832844540435277836276786710894383656158954990490624354511414427677641998998736131763384475303890713317326060078858127291197356492653997617396889655797711481370243258053082900392344354743042949660567090697101433284979238767945034328968416380993880860146681479335283632133287133949558716377244116011842827286706176504094415714652785891921342307127158122508449362834546767756247572616524338683542139384240125043515605090189304337870510364398416517385879116047630696222535748880928771166319098956054322647836701623662336261000602693682191306354840367165674936030492056913048202324496043621044896172536664495794550861129016035262466709379715175198734359633972426615672033127300325971458222602594370890259137520290232375177332413966535625125362574737918295808586005249614817942084299226503813073867499057696325370562499406247040502281310936104443957519288655698325897956828635120871101797447740182455544706664000534597087909147064489163059484054909152237890600383381253899883198327274731780769746044561436283102745610298702671083658608423706837210605215473896655065512534102834494005004517198292101995672174363413746356123023013511622689685637568854295303986407729791745281169306908763168535534512003457328071327589939449497334115075235053226031598250257248665884403340674730125794649748524187527396654156952854867538348712970850507408325743738512294720985677476781282284654251022171735380960444079938703305461773967359111062829273721258418011081599335328445043138792666994220679063485402702113178962714648193438744263006483661995367615840312305252260261763786493496137330169573043669525903430796504037768526773074790613792822751986411176964047167115345151301541161116833815541416431308439319368407436456356055148371114219577759269426814331100266027841730523301952033313972513222090492903490396100794650385650196025647021031033618039147841276722786703923178437656626841117792073040565423347692966624671051892551639111895687114026452475960561774153328942884017858129920703080633324004809643788072083563182783894979438193167715168475760186022022824596930847618042233145547342954225018050250342710640234066137248784829702004537343889705985893138561903131123814199628074383735654523941189219011979700048949760150240443448570419546639315678254319110596224345621746489978274211945491060918573246159726638436768697932137848841948087773187500234020655980683895187298111486991596960719267613466842818368711299962054924204836466651148364293425428676906626694091467250992902131479691006392165122178548073805242682111340108888317081418598439087017225560523103694048300928639027586588385685515083168650882134684842992113442980967929627818002708307682031962582706652386744696270226422467254990558106237828804308323055639117645145001555025205777228522743236059977538521217610072881153262107665904588143216307616428453675214180087928854937842369495802225699914481837826614155157735766854392605218812378456302422027721761052631682269703604651645291818851159116341313704816577788109824086549219031139573513305739558563976906227020406867200264539424617326956585523260076352221889284017629937812712695159596531468206766409432171753097099167388594929577686713828977017093419754261912477169676784510047405315334658496886744781440941830609213108007963416158112756937276106233066527629650502137342365418609101929317866499043356485384209241302210792847133425687208079714026508290682471118679056032820922652048266560955193097175905641296528261654428996462011744655482218001332361251159453716015017410146640188310288798561148740863270885328265226844230681569734080218502134025187253309252539014846817328491688585788860933517693859607550571829076190784583168959914973246534987860804074489570646860613148829283654933014881187438970794655019415834319813018988606448283515273139165386213989557625337362467707646118735432766490563214000456112238239863029318146903956880092895809161939384105321145135910571562630354864239221531732765457378576181541607337051793004462353914234398537848872185501645305935066628734422683573893076659255544401579037371884978219608662993825501783789988335949148814667003672385343178109915173587141479065219139775015805725310281843281694919047935373777359010912737438535099343039564179345886104015713485941198599642187261252891948893580520989813156812437518411150631055958697679566953932923901067182627477553301410301042618862349929234462179465275890861014446366884257341003202528043874198220731120793655436376892272097295783306463582660539694044583539911896109690526253154837490050761594006512014812525014188758555615246469855760039515713301226156400358857179409494192962083045348718448463511471640612067402671726140586970903063946105521904116767602433364635370808544886360910053844820522864135925998621239355465368457420572669121003973482375820011780306416401562052365591414613431383504674483449396565530203530600616985347589309830912920591137461354860939419727961166062155907072901082917523281800812530907607906865697462700346857636280404750288628984184767085676075008950508904425783909984647217588692448416490074549440058699326196201174475542666851502413902607314885619493083528464967993290339492970844773795055128632932958778363943482032402714187512878531888335646403247846243016349328399564035460205120705215337865963945083016898721335574329268293814736228615217200653456587925444900930960521512038873583340645165543539846929476015465092844224196881190661077769125513532602806921415668280627527115625322613137722404732467072705233144704989780837922320292990765602733596272197336588134317311753023838874225309629701164774894183839836312852644442265012921437925952149640753344713031764100762031250152997784087087909618362485979053583937826676526504702144930737883682572493217933046227369487156218580533971568823018889738123686125061272291788260636860324346315220680147972799847803295881601621384038833407224781470082451714431190090298357916009898508704607633105434829561440452825953304201880724561471563390073752570352138246854551105889908726823779280082857861597285298640239362595657850599016126933630623777612730166924159229300037594232560128470796027511784002611092430938322087244558434674808708649049083664816467332105650804330956014612666314120947702102841238590784951644761085655572532813457306121245744420008595037430253867489253946737990776666875870979725371993244563023401187261130265727933881795747214692564105663840221865151361668535388447900613959096392421820953762442616735541164186669015116535077579457649474461745659144972928319786222921182404586078404255328799170979734792926313451135503328682560363023917646222322154251393995232147818342255415519391148772277586901672903736136018790625904207973944235908232971393029978646382488794338351224927721338972427711724322905040174095375832375702362527195002939232473063339110213822052214622995174140354600795997928839014963920996169167079352175453402231470126650182645846686223645365425563004228495492486834441610411442742534003834830128098870058987842271382701749355028414024525980386381998314218443958617038573507771680858371676238180316692207315190246619011605220160491539026871938731052595996525883433635749012161517692422920130909508772003649275733444447902654061832722975427377348118850368342193838904419172326555189113278458483442820277641104580755883918802164622367313717618720368262623611473475763102091841103818690500829380603033110604079476342011702366398860844120797857912160112779834801731620678470183605908105653640363017289787051685717181529316483459819681875290674381896656955193368496408574235029706930328704326779809253830245831129140167863663416264718141573096172443757402351754313752055271575679506693845363932205878232428117287590128516536923389319412393352520541927713592733956145661039317916378302457903059605722072773514188342370501123548276110399435682440613212439057266731224749439046829515042953584448674925839243939447286099131005275055040588035210805862915537932999878286544446212252251361052860023726823768121456972666459739908304786875825084272049003751179416452948136641005541132206124884697294903892616285272409443557006408198126011542593699864187318088764498114166046509567167322641947843656485505104321268597320861213596503290896505895322736950427378389119687696585235293763140646335658478769406180576706233427447363178419997916920532150705825428672218594799344657256286925398361363510950161961008751030961462159555277869814849556709620176971948054580315506933808249640619043062535429100908902873994922877459312182108791502689950667548673352132822229398025649177794559656765430973478819202811999522123304794626618620952536920585368197129219786471409203241369443016014695384128939825956549626060731220937696436863724943615791803461375494037926531205455688706473539319903963349682835730221660556976227582097763954806988564527031557830740177402203607445215784913975595898420300422372455062399793591541484231788698426547871901123193470009274364450495375414484110071749236988087924112104393329061722913602613141158137048480597431575846065845850092024264211557549932568759458966808800513429430969238573140768012464064429521615729004544349273934628695196491111288115161247435120994250502716622330764588836986882929256968687888278354611936767456445481575476641882570027648869484407945574839095397014870172810408014320649860692503513487300558220417268176572950614808830627393915138803153319605644633262216547509309794551966143735205307436737982959150373319362475274204036819254112680714994160165715739113563379975754573244462032724627659810269312454271462185126371506784227236432851345224718927472944046440354970811004172542517186007880677017034202432807188136018296902821498117518590401469692129788198185352429512591984152607731106871007605749011286047994970071917176498740384640349259960681055354304471799565144273224548175696575893492556736004193485841243417969816330217353066286520768833596214690851733769639111971152753511169382884619101221927234167125731520983089587724560964766257310956198884147359257833565799252518892233561775135180693113951429106561649104241232090739634589593915222075475242492676237202011407492993230241176034928764794451055955025822378601290290621694126281168103612186647402939211850265482409306565745814336354931914280873702297413248756436794005330173953504501656349429360483553730285550009782552397196014664330058743835171133605216724993419823967365604009476573929461674357644645122528637185653767288925350419684706478707070580115831339281837079615552548850165591181702729607814051930431631760569824892422281187623568767709872908829118168665665403092194239965953681669572841115698511573443218024448879343431489360436356573578170080016197845453404554626892667851838861494430409075571041252582678383441659265006419515248768958016708698408038225491740859797085369670778531627121068256248375519222643169513853490948571431082159770735476451408269657906944401137297661766338992163589103251008367533840176719769122059197346385790549086414524464312797241729003692932876873405698577253690276868602521864717039978332629054820727349222067270924066661570047989685122621766162090629774869806923074531307311402029952804113962851010843118372385323888094643074198907867835025081764103221407670351968595718567871264586394884113496338343580290557040342706608865487878909359650730817766206321664873809862691261009329131587485178408851255937365098890510950734019603223174718572063987669264431411697004487168672354865716366444593054055816304103313150601400044623869245512575754286808431312356924612316441043424802771862724832553575687097640085949558057905976398268832769354482967327890872810597819205598933041676930671549253432327461107890687481608438297122975515136053460127727306396991722178006401531211328678739107912559415266512967379611676363961188091885900484376979835422424607847498664398138547891911470488709603200265209920004896845433006752852351485463830038121139063128317033030412259170226825322956599716798292827979385521557349420631304319804761101255048506849345460698922424895904363373107227357865333571801683213836534507432345236685398898056986426043830514244040205281801568455212614198502805074151453799514595299705375788681790595992530002983221341471947761281638232843032836029457144333548272756197188426915156809583804753951876880978447786409628286665999392033069653173817503824797762791968959857645495013616498621017806994883406526755571426731682912429691800913991623526916403658565471002880818896979940979582765671594038335864604735766200060854895330601558891080197922523955895768766907089799565600359844649023696226548709934661925157232312733019333062460939341166504478862384253720296208552334251502697994629995568063586105934795554019192441775577911267609316016157609912641868412007571719257850986730746034103634942183739831673783008358077430405149123034960193034904285851827444115435258623039759700334514928739031409288233814420350263595219394502195779746588838966611392787432651350204673950738201174315977678067222791104527711755599511576878114846042792021000850697196762103931404617078163609111348363476939001800883625655320376402634797667984914617995702565712691526409464977722627325031085489528554383412021828296325533061731620499594490930461661485542054778078610984496922315165678060176203267193129292577727628785817233200874780692473094023365559932529162031105810754621311867570379869577395323352671992184160876909736058681501152652353531900229203524833930601396182908206449470611631109727939857514184672409881947591584827040354182030345720171999917856139940235662077307827409242649705935033098996430106867087507882476989156826719896946135904115693120595594003170252645017869383354550729193337258721731475850553419924183954715627350551494500456452619150716219259160883113999728695625043911153280916715691669055795069091642111736911444618290774099095611469786339254477647636175031596814589073884984306930450676542270228644155622738476819804935188565163809810334391547453516766783631495268723249320881775949949750328928996447227381525470189157319382240267027087886622966905188957003018295850381735562111327025132964357446394880996413911959678601421684112415244725264375304158624226739794148348438375621101990209390002407605429845403416170676086744611703520352945413851784041142079405649456291364175972852281632538087502676553866470371464687797094613929399676719012642637310872212945821646577636390218417895676167455569964418059652395127942840728211244947959617374917362347665704285487397104659696887444071276033638132169902755358774456812561233638285928475223825859768227279407673999175665825091765071686567973693440005409996576991368165544364929833921738794269949990603886885104767481113968962686991402746346095411264488507737681688858947654073133658718649827032280636694018412680463482420886051007239080162017602163626010210578403155228717978684652616351207048478362416649598933210006358633377375429683887215130826245761672580818170241612692506570520670297696328747877361915056625526973276135172717460017215889584322805924335370961309896208740402351379858699406252430953000172395048708168680127742753004121150657932824953758394257485317881028955544439928688218316826864119334936365036193100384737797660412326924511504881567115071187117517813081407525451927025094943624162426922329120650486203801769646701822936738914690860195451139495381098651711918539453383030549859986053161864299541886282505031414351606912603185389791257648214397527447510712238240010584171185591635891145408823195961195081665576586591077925531733128220769548892381888688662251739378249911178584785814330125817288520104821196581779598506553075343265333159661315249655507266868464091452860756968431502795343268339130298455870614619895844166033830800473037258242766119573130082314859561606429998584912095416524112597220948377383865136381309198229072216783313517775289377077284943854950800615966098328590408393812046003640326033695170762712811238045426339568736923455700566355458173174664059984179738054009917987868302381182993987255970514959910625751108235397606796381017861961598057991187108616438958948596827315905242916262498157599786602750096470656309658390733231213203575165221799578327827487394338772297774192922987079784132077312205037752708903445757491196046604941566166305292099532102927351791764584303564037820148743222542026479105810477656169771482719921878360837273168488270855132338104630730558783433988326003053717951556991183072756074139888476156004098579730270252917964146061108220343014139513343660564526302987158836308528853076714995225096857596468688584029852575794191409004279248567654012549932548340292742208641313190993049932352719407112607972888122012573183822782619546870393209352992711850041067215618184973760782155008349905751195321044597208484887796328667045232906738660411243847876118369199881328990163060234481554415720547502903073219105131751888138831307766985932589589838555985740709809485665875999480482495147674098517656978699756463596802119251585589806614990431302626599869159936099768071504649406656743144060076042909548408914671568966465918937478721989896852277308653377341277355942093314510115595276984853983489163149775672440425849302217550191381539867712106196341743191876981293874225634871612923047768861568529536333725705246140384307633234003332570758129139027952821716828697500307637107748525987865215386551998415735284589224052334018728164983478916227054469934761855028431672594995796054642041725505837227018317491976512380428860474266643601436493629976625487270266566265843011196651768583335968826181899839795422284555940256263297880134970837680705920003897449831205998406991830088677582411418789359061012799582827786010848538461255477399090848933016247378085470711985735226213716938799992621106037278650446000949053056783577835923180411541958936547488443665734434401747261126423340690374781741079113063577030332431050777261253728647794040505170394050317830086008043495154147837073204829428749238405088222400529367108792484100455120703894091083390889167963192207135867220902346634200665749522123653694384076593659639415088285788621529835357443634855367865714519400956423167566342302094040783647584835544770804988838965754319319844632310425160079547864197714517596840158371765312572921310496312279744871073710755858008102231223391603298786412542790030025304737343951990191211684254802461195585703717803568414310862570464693161852951892573639887652468305193707313711945898672032838327036562648813455532877407423288530392281188200581540671409893482085448433080409830524928354430773860448561986379446888282888745130349266833489955307045294642347782598321787023959851439299640410850985368107710533431004700167963586122090653601290140729290709178435696855853073383001837300295128410935281952570200272042488658435281407992735609546896579811748151586224312571389845384165501527294655230444028082839060396931923414096353447410147341179189733426143891968947177367451233173415635541537277690169901114001299981506275058326735210118049781825621170971760693515606992627764214419450609265684680979145895243765928966650562964036967012253650996567772211953096940274157271775524236465119081704798447886859288870805168744637318457175147415709377481179996806462557505016200870443867808218266379473740572429920570701301154942297392120381738470846706684004607742636185028510561968243231037332038322774181191639934965121603866822685804627339296529733705013959835618103141991437401058642940300195285356919780220925298223673635124847810908956578889843690524895141732913202143688932980887333201602226822086270922640095656656672970248828411485145985256044352520145015714045822841680348541746184831054071669096427695966514663483200035444525135972027431789188640940456513890679902215898007067759099335417567352700179592063653812296802961857784303080398755735888469079599913049338833680963046024730072127083785781379228258608156898961196145787465968120093012655331192810173061121403286766371458514524430392687498071834190293255170337447908203803749547673416182479295808656762043876090200459092161817018231796647253737142082922450705038723212802392422825199467885415954517760939415512432972082387591969179987895678643829083497853163728845687145385084690112069339785713020816102460169830228230648341637687094936406344708076358039141772609108344157053811034526604164036468131289013531851928409426623194810285690925773660601396005557502140858747694795944434295446868692238091401903155233411159292035075337835381797480433952832040044596356804726954410477117371364554426213310161387598020310011808984838387009959790075275093711086567092564593284226327378082115864284026836136790069158422838756849135713774718965580969848325625465961625062849288524859318022617901277201189582446896673374698844414701118436364493598981861189160639136533654602977539547256675273798249401345661907827476525510783223184928698813878332709195660159992820673974272871916167639978267486177531624341108413690138972743897548391074463762036851369052037187428611102251428983889210037583532757851017249614899381265862279818859927355951430043189917920599958700271754565216155381845069070941093250982629230228634082588023717939462274338792962338734471400950954889368313999324190663405043734282990283456829931381421596105215290652742462498402907735403630149581326265907246908898043429616262071522217774320812032333088453555321407133806572597597300067568833631621647022157629722534956081038479594041395459268872833268130204327251510087134627577090070995490471659940151995922963494870141548291600546926226950619494802398385090577944856540012650398922876560586274509447396856728792952792138154214559943924442891108584120394486487412151482603514904853348933741870137634138936336272313545168630153342498159302895416924891555271503904122069040039963931765474946246781913425353176132521019058934050975737622766308708568633905906423209923474325214058604626018770800609312704616224741119081087253074182080228142441180185326121689854580042177583456582850279445435324093329629555936101729203808300624139539008633368492000205074341831350527522270107489492153777559185513548584499813057258195548661705483641366158709864630926702057235705852805841607346626867686006789784056176838881393586578711898023951935056966149782292771795962244196803980722215955259656120505097193284435289787736837335848666950920234815185324027534224693848864570504471498842168433547943105838311490801091163121802214652380804393229337492208330976665777860419771273582102297957531987322439127433367652344040802215750659481540417849852504754394007539643862410070017914090030092500898534075186086582018918647194187745244243259857904559263885040178682629046585003706714354576009495104886327660602918422822471153471638599118926153821848938759579668740545426350232186674747979305065487538973965127132267317346770331811839768281854438058184466848235080521002127930132083951447552308246979012331524245288900231281655885351450363007579327004982867854975380296926065520193846839949111984315749467761156337193893989319016828541657167115024226850831397603808986777144177327147404981745897077765558091838056938393385062822382447706293012980118877928695996846949616188084492527398388694600427303381655454000405077145867404112678845402144985157051660490299916929993521008123736400066430585584041410464922969501064611159184988513930315990743478886635731499826584360175929641007998339983945134025336393114476297048676232478689319769589248121749483223368690261292034911773835327974446666239298716308042417337678471656561918620380087238556617038046737090377012570226769219964198157397716846618422385207135003611033446074035384202741214274939190634531612244755632548397709605439571971971081636426188630664700610780350791724961992888958497535856033066547262203284430464669123715353089368108094488983652567306868561161251241006988053138338093965186115294317354819188587319959964549572461337756757274012774996656103844527186370429583720311073140407442151022791969240738621827594161060230279440627524886623382786750317173221398208902275919523707535695038727857168441293175009393158755278633022937322148315421264265993859534410324227320216405029446464299285227502083513226874760348152019120559404745295016474977887283400197797210245637718673553279756450817076172317438999125177749349141418534594261191343443354983204253516065231596742328027763062409924763810328516974993510833608927982769634624231615837227427191327975974796946468524691277201000754169478558321426845840714786843705085507049128428917331171026605925657389810135197649828357012748305723623122130015841209361139045685783256135618695761529206253774684136030762154453112551882326127952689209847435006742742442568036822895412888355415011743833022406296964496410812387820601644028304272662534681087726829920565959157704506743789638239576984154020401328902770078981290506886084190532323832912927695904567597928202831217131463276180901931846653530686887885957754721464994026254311951429674965172825489479342766513280249953187333663744811648884318434773616410390880434168854373274050433504157981794426198761088772599515415317555421215317430140339553259794227526132988485600644675491360951257358956397424421289714029693632549763565069921677825131437724920232231899837722242257373870847213145663357744166020940239471005950938341814366748272505853809258413294576052791337133946116044890821866145402285886304119361638185353123349772281566387125313513536182626767491700769937352833332582487180383706421766267985418279767372104305151249979735228018091226742672761558419606655096750096804606957705313384598465413422595636224321606711628429194198598790088819634070036547544470988620172658143241123891800265949205298920581431632302826567385155432774891637569031271010461247789076869148212956066081081430032370172710048890869555159295504080271739337242834582039026569737284366138009384949724653333370958644365319873094661305941509243758485820810094940206177516069191062125402687213104717982822430016480826480735658280998579517767470795260703122045025596859162286307150376079720802934498360942801942965765603914918084032047584006073189660931163528190532406138596045368007451173049184132106615184027365572099042018992356379021527159462597784453074499836516563726620183114560568565633656950825043391462199442270255447830792564725991169403798826429051398778144473123138044757451001840774882119338913976364831543211505738394266507323621490442847691870981177989472090332634246159981639276128731352830002582741919378134605990434333599269285213225521489681143162115270721202445291170399824017781776547159677546603911277964172630129202888574246366129466794581388683929774334740609470250414226484711541763466043752505852663266033082367894048191890997458107030330745660986996376150720186971106616414100600877394083916480972692082153471806558862811131026873966825583446581452872127027991001054208432285136469090385420453072964441114626533325175840196386725513737265351909676295373728241679869409560428694773280783325926243536279516618803641898718820788850123527086319203776770256132034020383439057188162367713881199242467696194330173456349640917064777804531664650736441235707271344117060100411739843567101602986066027669668419845064079873902249352860349110383837999639715806583437623436779453651391654214083073978788416094181963042587404704964617454696507504285570353803558256320407445643923349317813711239450602546580964240868066287860041190200647993068820399494514154417169168403597835072387305899589537481530025564678446579831790009974796174664159549649833497512377245880426571757022895827241665445670477871719809440839608311106386301933606610034686844946112042400062831630968403050030253850644511023411158522748329847713128429152160840087721167494699220196132873727623257665037215722819396615005442449548467092450730954305829098259831238237911788607717612769565792363387898501624171741885086058172894729222070349642772555751246803611603531966946873791752192399564796036804349423509980326095446878966691591749108134804598676758503947037898016954777307145671745960602256127483389048722798199741122698186211616765692232990303579226248742648768969645892845786842762610344287683457040846842992426132714080731358478916724640036112747887218458971035372733348686405565339405883925035348844102049501298636261296312366394418269886730499533821617012645954333763224272245421721119377668491268791723187283229695738243885641198246524881210029744777050925044353659275016838803602344313695618649511834884357318382967859831088236108583870051006788966814355632935228308084223777489995876515437336674949090404905984362466866824703211947983900562104831020843439433786087821998468654154485856038999616561826020641744327137329867133694083817971635681383193965097708435432271995589699502302108819503303456260230874484097563354466505890290637256540985395902052938515360199066458415767140098787611107966414252640017019638494653677991975122906946201504488317929117876841463050987548554934204226614796482490605917203378089695286189424059026151435035757972299441929288041336005854799517508650643551713963517323258283027583000488652094767165210080386108622280738301251123920257019049410720382099994946775126718189657644840647185667347595546420105457087833130424538440523894598767484481228196614020034183621053384503880177647241300333555413908010345294365916865506897646645675472657588903310281620939210427901554767992018118156809992919864674126974343856611917486476224657387636209650854363231990820901960437611635236834758424431126702759287458624838115440238455028644107684608514283646569721866141567567192443055398575605788440550919936335432906331550139399690588138660085924458544555285554698368838649842825297843202630516467405598889693103275925617466710360510273398455915650655319777230469787229430171996184537869285376655948967617959804071235503323277061387149639779194396028016947353371654124655083538021893311704866947965866463890924099698366860287008542558316533672973689586000344443660224861035261349937394899029022703549449843377856697302290136449090094944804642897637615363614576856746246781923935908747591407296565831861636890543446121033130372232960572283366092242114206800133976370176201385867086067282996416271356072264304181970110589296589977390837506981617387721842066671567300491612581608754191702393417374393107193269554375524064772031742593524331575608861247781070754659535848537112379593217355607496288886274086075839425209018664300459400129336877910699645574469702348768331446941522333651443655976392865718491518333085932235943988824958987335137621403007696625569613812115162116006002890529480475219522010658345940219416457082694377464347763459202967130256809160228130623779420966529018158419740095249674151813466452968281289783373738395875252677487902245267325377541879335685725441794495253324601127016724643979309247289387180671175061980714704258450134439532869311835423977915707608853566004181758066105822519265149482903769741102744747538055239815308472598754496065483249238291306756560192813126949627116313933730008285971749822299190034854506107936892437282896188055269440116249706193284568802394935479281780282310575410211980918420172870929196316266526139736868495644798720444091496056829044576745551268711810891027728155478191209874707547565901470761292329050511592810244855463941018140976063387004531340176262680717703375999106519385850888737683078975550836531213169796982158357549257219290437426703823654337334568854289078527714131500510934475508103754776591775984880362555369859652369889334288228466616476179302051544149136540803567886031784673864969164586442383675511304460096829181829192471431380737007947288137460574507841329109911135693537085928570102653287420626282378995215765158498237076729697716039913075410727970258394263133280013262173050297535103308398378818459036599688990658014232347805803906213973275872055660075876150602691113434443724770089081555417753267155770949425335589913051061832525878867909078837943120404789261049578297783792203261678480090172435394201764012066449011409719525143300872141009014786981831538276144810137976082099889244087346160214774343535522767016309366450251565255565250411802744542584962288173254556083945962813741819919041443906785993053633937536043642557867987910922426941515386551887148249261162087626594270547830028395521295841774180729031892810408366044813307941671626741761649131466539740631943090320643334624200036895567564066658612678139552381474565685324518896908431552686590858871979250527246438458059327224779095156367863961634282374320238936022088797516576804667270638871133681341382699031961187888760256434034803545615799552764654258824798318497094058233336313539647475152694210320603119361040636428337825015745039064191769724152178222371333613957450016382180309644333106979935005336902837283768125714471709781636224808866311606511858860791517302933528711659912605834581450013220217273311743900926396510598021219673740266710492482648833985707710368051275290231729595394145960833728730670870397967016722599884949477563483079743267434286040142304760008901017171256901466224154384026179356377241779669264236503737412715154075403756434318469496940132772051110995873740591331457280441734319268625180192892125312686121800756458086107600700691543137039292761208142765548415350308103824273318272894946153398456459333034126037976304384737926802250061066514830391412315946500394960005504547166062994430211642900574314450165071522663262965211514085690351811229540482183309562910239758446850857113596577110783326376769711795978537393870200899169132452288825231907706928371960325408608541867351763788569871491992560654414833618059653212113583045042176293963772778561889967531219663656462691991943895505453794077353635494064163707431329193039941047222470592153391506569606845425789101172762922744646811437685793781060281899174941182080896120141587410215272162339322353770440451616088033931474473290261527313437687741408677612740393445106314334501196123942507811776765228388902233873527398865900030177778916181857703702638253367751519233584311993905431540764846353839175823480958633846721442804000832971243033300953789054977385667418900580384506842353810911193070698245190426492455744326808198844040907414890313502371165001342851505121036062281044077253382535903337943590253776391169460523034405801629886562874635905708351772960589714088669547729827189060824418334475382230177704022633263890247614056638314301008289036573669068460147640928398338742343110304704913867798764072297664222596652095314710616416828857018214813525635912559703674507990521354314602056446252832117808112852994479912836079677731218548507723760252359667084618970593137021557068232553010060265882526706368790535532190051516191514830036676081290566757671731614330113282031580113731818772464061082705345764144266045092802879301185055455217465204611614460769750534068632531908190501768013133973379160281270160788129586335482183941380935611126435422544509803948268181885733788210493507745772701434092612538257025332867017140963745056337036301727941912996640306557585380012128190671784450852279226753272175277589226393197005070317097097615265043605656350893845207318395903220431833197898915876680142425605336890098760324864396445256811243099374353856312063145051523163981019413819999682445235902230472775689866147306384535388310511123433865259342072419683027592010750397479918142665414820186426427319391496330668069879248801282169578030018388514688866774727373801599939376276885984713174590743499789915170167196014243695203825215385701119255614004298711129482631200039784885000283434788900245296164503800507912493914966493754107153017745896133686995408908503871262200506092252408883964269441511135547176203549072147457022040215084597989791460141540520055455839117370529372830953883622722441031213117001120511721086337333707107070609613671431620803626880302118917001540826668084117238478426218192352807082514212908769215669542164484561420279002537728135662137696280466699254414271944208426461528371034890893113090543211351149661821250921848295895159673520046604658218319522722478679619793209165364018115639739718116478205772041781912686019063523204359696843446259373529360819485500618243908557374384251467452754417279193048979443004044650334081110486547904154347937680900404116651670111460962360839676529444978928725728697155033853514188093713362087615236867196888718006359989873118509068748346399815694935092006031120861597944897286915461742175185474636433034980691786631938081013741075246834868826717816133153058961042077754347099267068929095427222913677753367654654871650842142812838107651757475992345581420209025662867403363504436615186173287074576802050172490790962665364547938206981349896693504008567111691375178190533830287037232091682778247047328215274782340607133816134598662011104973465341222562307746140504694814106319907903478284994878478115176956502838376343933249328095818082627888306620790120060370924286440800261205962565628283638891158435123640674759263119916138289161541885096568516449533817202468620629171878157497101947033689175803339249944572939672982218387394149282299400260903106303635815735035152771905347399324421034809179413149800831118151481230333148896220711892494377301642526029741482840741702392503643322602050828348323605780693807574957456624916759953467187442837487858800907441829568351279340682532624417754417080956882418423514241976362248647662643409142851149844618155023846901541641567588752130647070800223495972018447631094639879721570136247793765978314936099016281987853453136760244198488346509371725398488895852040312525726546954357307324964399541082070613937552001466505902777884331026199523457795193289508668196486872244885411216386424992448685110801679491781563186127609423132868651588207300352389477754237479935028957555837183136626241795143355965351671365261304146833480997546853329848995267865245010133810392044778389843815739643369681040046909542556477081715964947541171715097076654095763010967273260918530656174877054583452028654310796021143735358298152313075671810514530776960606041424831743414686911256322203001561479911055646955708223310646301260022610282930851139297353590191411388446539557647405480224268144122371085823478388635204057938873602944265778041316374911092480709189876216395906111056998706601954613944319435234234271679072606482522161984401268374713268833926505122304442705834338380296069006992354062162257670295535013250838371398341633979368584712224070284677206200288977518786123888876930677629995432161187223645851664673920856034109114536142653487426740914296334248297546639684717475067797288191842781412856816318296853682565310345002651313508495983508600786258897537830447508396371162901739193901732305229525642919485868294506368160993644785371431513946026579610674253874008242186614763655693785504604885386732130868955781965697768728162522112214111220330366998680351410910646550341921071924598982080682833677511120882896050478632104146545757642970584241297176124351348166142615657638103486374005917475286008089490515771054704086512340871448154073719939144649569232528977752989856661941937349599213777125605744706116764145155543724422444115249823408557042678853671436011919574897198998857028396904599859138959919035892003392286011216026954424156556199901741991861075634135586600907748021997812417050469522476304286573056160704268530564642527748350740739555511427387322720992795892658943219608464138880836401234482235991610154384080999718837403064762187369912266479234459647541889213213429523205985078853614032240377919868480976350159878435789238000241907254762191015041784652272242793894301674648259189726924274103418082364232114734747138827782474214048551944850906560082688514882731699784093175565966919899475151590150897517257700349923480503488708181419547119208805166019659907715413515382522073858374556012504984867459694047219513011745123029569067258519966872061502289213061386381587379470754838624379717740070091753944288201276610115711776401479466293390989929320473145773927573357231846993113283739397848157778405923145525878328031482428860070176605023730711742687435173395919334916992680474193351170757918759381342967705927591472464255114659061406032562424749335666758310436635145840314623437463220075193122043525327185432797572936007209001654719732655724550532298278448160742515318738593832240479924911322099213096497362709212148045262972710748957983389590199011871768144843528415762971957917446899989596986419941070139498771206774843600026087885951434093331880115030450140041934485411109814240046097167062125045906345931755889750815502167879704652471147454568536964532623718432053832164410103952605907381374414784725030805416553280806517820111248478733196325009365096667807178055276016591404972303794407248563480859005779884315323989423682243734872353964130793390800449258454050579935504461345056238022573356787814896775591771901426858390555021556559326557591461586573413054312811379801999753291197101745168041341504061743293212434385826424588025467352662584899497000302496209541773681461463492615045747896989079579957439616036565120049378640351992551626766116937850623489425469098638215503769241383820401448821183859570413289350454027621768802292686648689432776128608447370824168549679564405146553784939269823111729040800554104660094951845624059801214912522478463948177074575186247402451147056052361220106895375633610661829740479014845129263000758731291426944414064613310893253753871346022495190765553505789560209625461185538767761485030848344731020717031681144451109967682859394374637971563048783516545722868157368585643929284161732136671774807056905006867285784230439681005626105283984996529178977752909968716763630964425634036001892023835741992397963563732539773757324723583556962362453981055957455022429610362987581560756083128428290741365638781160889567372657597584062327988132613310034659806619103549846985737425270723025764414298931484931334001865338853915440990693652987599797699543081120458111133359435740071468528484236166220701899696060987979229609428909153477694335026616135269653284690002801432873532546672566115364317517552660709949989494799089694969061944284886761242145614318312358118014476420177762010586798717572116326589953134625168218268005729928943899716623961153143239052571820948936356151589949672139946044334480480346732874990415597510290541258373787743787645427785339727683112209155821834444750574436452890780924055416511409070456638055993301532863524926232115206403144723954198589493572475062518426344160941280162396596884193238509346239990474374229381545012910800733642435189877520752675361337448878694068236003952523325486214877753397415845434228554150236912952720185575327437083657134008535918026344236147192850879257175941200155714795477287907869393486620205152421184457123664637479734944458730081197647633925399020175941013795295446076557003164896640512992886342943661094738940200604155043361091009244749239852117277128370622115577375048553154862059908300178650983559715975900873932546717693271461979667458542464624843755404767076906055352263645177052388228065994219901891272047310626629788386413651557089551113436275598149351088901164822214500824563322070344565006179784281329980015158234996056854894675936179640831448959987174448435935720430212952941388935745910462261823739753012998927741398998453558126080178659492482102064148255536806480592068275585787030350092024803015767783812372023933793858605599180628637759945599656154228059617275643096580437243405128733576229787513741132080597241945139705966598587626833260530319559862955702658709409900085697115234765937299246666091312636060739871102352908224889063344315873811320963470018696724497872194834995415839193684700702559710078813643311103923125136290366444238855060171891189413401488290970056557032898952608116419576997642691533860151726363766419827572023533583913927600656574174881429842919851947212939441473094130329994059258151568142301328411063405114526960558981453135456874865433012040747376911300154309531139400020060640904167612912060894680518784826729092645882027001529549381254217860194290344109537475623764346417471829102146042297328985971759708501906193277224708873458449557882680964962516091017578066597293003668290067660587439442409597872934121055096993210274367245850180083603366428900905192293799921292855682375279743161805784236275452326452026014870946711246959855719413997754276470759170751481755194255998948204950974848409244356771155733704337770869981461987013148515288615335204711686904954215044464138627085144733203536099174089467537626544674708929172801014497048338875595767268024871802434714950665168210059921788962444659638680540273550156118420838268524653037841734469024703661943647645908604170884721836689843383395486131716573442390712032258133173995767237979957021987911242211151165871344351716254859362403923987276349266658184895065434592558211864603526794473563021214624541506499311953975847402869655585681138792604196310636262000092432056545101369276478251419391560278275690350022210034912802381396819886659312402281002429872099915555121615600226485801856325328906313663815230522245786441467067212602890743598094399464323224302693772257247071699803471339120679899345684275949727378218026545194479106024909245047736295146862622372586848292025632193245707689762887295186544306580745736417019204054154903298833012162506711329760977765931475421201930516770793229844855123525947455464884979390824466482741401861281226979523597770741129451906283047454508220529855358451940049335860280968318957390257466236905052581918024046842755556775138659632701625428024912729700873309491235118393266222731019197685533530663857341941705648932802168529405288557435646219467516267771811386473190627904756553646680133277379730173853603428902250181351582086535080449923377911336483442095831849443617092959810548830358742681920359690704001172458020702157409319185219671624418234967199083954332832236163551911322584345166062463609536977022852483520064397056839413989980878036051376292733681633422022260743126623625177145076726574040366804708401151308151728488177118506836542310428562656291627638540214621193604795987660438517611953179778118600030781926500674314413600719361157816835299489934001623069462849424429716246014131907006769979813756702757563129901023788517476794123587104725957658919689035484039766858909456263425090245622485994891496172785845328925622944411990276014190414360666070334391077607546679929249548012160898014100576688099005600776100469622646375386167933377968535729000490963021125479660341441259442665395871792707095553230272057787240489020893631988766819218826510689293492179462165928316279659010356064855005744300599187634688835643774063770663685147571852583750606705040018703309170992311208930406078130410134451798540112559873186413178203049792092881734880950348573485043108884077175102020613774310174509702445053528783944048677240221483799630557394829661785290404313401289957412576910257549328506899801370946196931041359479263380258982754636325269956706636641857662295756723218733903723912523894331340134615987403839786116087165192468304724092531240584530675412019284540353743879225626934064030229165081568517100530071283246772208833725116278776830374107694608895847291847903839698648840139820640873894754320897784407987217239723401572856526033250070409421548319198038971497058507989154224777627908997951195707312812352155525510089876806769287263116742897085459574774219587193257091770722114210761642365001946618803319813208883177112819545597507537248522259789319626717048196337962291347889853058572457855786433853609947782976053207444996869016553051859196968328634116754710193136569942583014250155241940804946383460260993971626812598573182282927116432419603145036518681571296833382908260001296117110890530574372911111357080985897141621474071926360577487491237256286789213719949684153484455705926996408459264217191667052747905125948006240909740198250856329005538578383226369918615607814759593317806673930068040426964538738964455571991387055225823572190674492731936750081659906894003121222366468823489850039990886706167396149347801691679009597440056347339766513077987439733530814689843052887766206290870777696652466048096416622879237271713533472394337542899352535148794481031068765163554641190175781335628379617227164528230305604218326244396997485602899894418172244157943507386007020989438477666021356116832634935578114490271548536503309296150318670288561655447384640420221289462096954777015400599704976341695836661471144409606511433006040162693275804502735025553669118811215977647206987828642166885789177634295797278715741538037441813102121595906093147815432907559185918158924663289905766533723096651956734007334753294100745346152606299123805804665305729926789690550637057723818569609072952083053689754292754124598967242065835917278668285120399290055470574552024088472005022567923622412524722818518688342206456672124894886860953076166756706119780908745099028673328424519806704683294820086072898697788122518549335446059043113244036191901254248609348585877441302350230084351304939010017207317902482134757786177787309866178143966573019592272392282321776540120573244963783460740036987687290443320038559301018937099464333817376249785753717519570073831332283300740841739254641753333936564848993356230467214353749788153887596129976118686641945955589902700177076679184333717609735285759866423225583748825701707992962307772653904076773278428424467351905167708115486076355414654408049305235030794267847473923018823546903786593540716934351447527124137621027199183940160050164617445186461326921245761180380409625979898908876216955139249453803779844124258394324913692329640533375741823143388391617866923784689440285081105598227859832351016250388910509027533969063994424313732286078054756551325171112271081994375487071646070684017566255003044191923545248441114724971571785758120572807048657266916785634042346257870328281560016206789621761527895494598189079044144386620313062302008316555615243347168658452009737349438485098056566600325301976295609218322368713400086345164085208805051961325748519155534447815101617751317071527022769696632510642287362916974199401458776728380445792269884766005336757469478080495592000047740024557991691334704767516996948039095508918830976441443653155973505226297881330997626251701189045663237800548320749652925133355351678624062502452592010302050458743105139061829184056393802157747941024386024223986232125430272604456772452383124055769231789423701842594944433176043986213509250710306928509643923465908388489433152009642015145494751840274237577385845471387752580267324903561826171540412393084015944935094497109947173344431163578706287749649949325388347695585022593306824734780160856012352001567355086160262805867771375213898639043920428068829537529001267178254797535136603396920535937656689724668108317748214772295385560216199743702975645809645969002673027786355466952984017837046206726621177415693694687303776379085898316684278710705426083645299956005850820268236997958179407587727673025829763705042351352450561384815699532940712494870250806100776008648417008711673862667551246734114809831242552465363164137304147150509276439574112425140527541220552225136671826776795118191012362714002169095637493368824000056267421441087177134356640502152348530599007072652385972435207776753248372316208122953764628686584194631818319619967286033958631643816698537225259351845368693253204210316351595648908088926643250044122782030841680365625315639639417828196584718694279618021861121243653650657210544400408791473591749432356537425749676055757820382816895543935578532641426178904656520400791251669882850960592138810587370882149189564557829991435153512485215246681374964515482223344984489540221460066337353066435032082005288388378223823722724613524004984475018850379762354668913751203964541680921783133121095511497004839901501130947284073072276684487235158282602185349406366980500490526184224414811155593119100645938704812957242289343366052050820857625309233833544937459889186129406037503471865539729932935620077242441747545911584976479538064443097649575524290308258074729184465642087997968701418926291416484364627601396313091220022370411562786072650088894930246224913052018310774768747355678905964925846560007697327245112121629303827068031848051601581995825109993797823998541743490466192040851017745962976500364900107748526466132819296172783709214232561872633226026839749542188277373827568751838462468536092351176872278119497200152926499734214943301296019645400639164851435312277610541779885373497259521892231872111763485542956233248823426515342939282012456945926779640414840461057132046446097415272310141466966509328495094864706303992499576306411174103331683927251180381560323245035284278452955317434240594369920099060182755849809504263981193679104046630700080841941862551311602146294130237926729314416021686539248786721630891702219860410495081362608934607412143484405415662442535601868641996370837783745995389680191214911094223565795227449965472689724427756044874870000404314906553102117580040403096828781922464845739369972195576869722832005037312041779673362332606116263473507952201721252077297905597912156853892481157294251770337479053898638266655967185629104392488502081829911437665157366869694286846941547093481443912700728044381980141305361165473580560624263979327527548355642029117935501188219274226275950616261480333222357171890656334025288978833740329897571007008992258157179990524165388595793477723840832448255398298282666200181917036610935196357327555776034549756483689983543092146474097195243531047809475406048438397512506464715292587461907025279514359290941248494338951878380875685280498234355234178933215532954072263020534376788550034960062764998521170254425773716227847820038081082198114904345932522333977210811280508725874860026202857654306103487296840385294236938152103514335087549841114482188714728013286392619296094544222866406592491165818716992281173260030952769819180812759881211564483336698474230925563627777053814090658516820983313710575925089614844203732484487896231802807360553591733743615258886675667588336415459571041354289201551918498592495188612170585384806069100212998699074606124683321068293476911171018783510689241031930317563501403865291188558102448200094402576262272353798544718974004583502294679791106282153425790785973820072338960701336875453082864312956305547101022807834807416350119516910498837004854171329394418335479603915378293730321666388495377339899517148323745340135630329696173604195523542469940490844082329012705194073522639549203163502689337173367211101352776091169827072221406888703933856673409783377982563798054952445602731958066673550761651269145622685165615794607307111353625274642351632250837125391440317654523463200746618109195633282052872426187446982502747199787175446677566731143173011365380221864784163944114661641770073272572961227470441961551802351635101150036622020474806812099928704050142456900066377054931439900741231306600134538375490375105168048302239006038534183280516298288487278465497961697465645872595768889450408814874604251379197075605420647367156656589369671494740128024571982876202751329380906955397381549697668555646707806740240398776242366508053851054606415378915458696076108113883065407016761533305041756312140256310047270026855702902386760265610184623388393700384016379123715474001812520949134125562357630660461030753838440442886371514072171224709117604994011142641973816696773913989068592207722244147582141147374323880824299131050617743601706325522048652707163113179853857537921244785506424616937737738390430484183138765087111452291352349743935786065171950503698663733084132307559304397964530906808445339481063184072681080101480829966104159173819575918821024881631486372555763145622974420859079023350693219961037993085978013038370271512967056861174003445249807043089555851228721156329242699395321586549814350166201342249751430348768619243977910534083025585917865194282804801631151081269446886009160734450052067541595952313397427764343822702294770761961826245343321955529487012609870987727999090492677404250506192484769359500882627309590955908804178175352701407026466784277767669095047129035963594399892826984964751484469420851522461857655737155193348393057701053366356806821243305473671159767448442567314137454044547030121733195075187108895824484907014025247720611365887248609129684563029086079492539173082702121280420226037518841264533092578169884274209219098565430675323073437888122496723008354596272053865055681741983252436027938479723978718305874443823889285693192843102050971983207840619807924069956991627008261358470811363258356951981597495180370293206480788448520806655520478977857840235269359737056608726390997422882650025669928654241422362352603383727328488042775232176926656615086211986631921997779241733895182134137139107999674778010659092863420038336012226317978932333162901595490021857044209154542174979497038830319547313683459299391689738556822049310332144603735043937362434554013274509346151642694150038816160267799651269627099499871639698523220910481401737503455668891930931010966340562311756889455347684703803874356111053127185938334386224181827967978546480291577802316866331226738139917015656837160588347956957450384880293934803166529483976526798981044790991607457928010082306996309486499420803536294954690407335214007619187718695174518740186493967203023949975539450662870620626338841479190078343322466855320367465822392995604987834983150625611085289885315969189587852929396488348268287831634848587417085222045180593046308869461472513199856501947167561860623034658343964696874262145381879563687347062404134665716863322007916838191949105838572980198626061907648762933977241778265483250358369530120986571771084643343723905643411706770481514023743843392554854998219846968884828477493726740365726880095265060322608766297904773512967691890241352811099263467757223726169668809387498429485499328309835005280662651646720660619666331473707487304622296626409697162333318456772286938661618237352089225828447354092022022697126161749792036204752237633678015498261837304618118255343149099945225772235012324545930132436914231111326811428174027838975417487486991626375821630193939077882976914840796099610726510501789625077177025363120550759090183029269533159256251209003823819468438630810466667500641830605613597548485919805973051866251128864344073245120160985003801128604879968421071935358658177667357711141204409386858857645355601196466268981699463537363619818852353038143649221382287402046320516617199445185111338576350991606776546237776209407970399335781343664204210367794099560922381148790991942813192843033179792570731273227174286764250555589371896668176536734556832391957162882784486544553789274411131429492502399172912628182701114941011275384924027585806831761249086721344984753809385430733539481394269761202528803330702699477922168262740519585472586635371195019116352651000389273040685276484938391234594221838845231552110777704731881138647328337404898601550019722322615827498640351136627532514874069998862161728440005235441070512527705166608074287561364378073755467815679234292381303312956860653643153258529218212884846530582987693037191955013341516628076481050950965916317363670657924160272641528313427210125893600403732066907684563389710553006792725721646470744267818122849172292864413158916874485412523470730549214802263425904040694738782267242810860711776827823292172793081368330454491965228397568535693287826712897845998274358767848804954802848418966345884032177749470779059713618781502741491478889764502625971240859818710875748390400644125461189174510148189873671485364653682008358962101371734394351890688025691205313459349206687211651665448976725508449752693744622292580985556117615070790669169430777199113492469700141514592650199295827900287907558594391190068285652408953774267673650410296032638161627735215524200669993374549858703387310248094756100935603983658990462191938282585326966137770581915274845517062060682767938882037921671367688259839131188324718109017037094389710346294935233348294100696070054245776959553113789449871656142602213234158669971892519297427960911016831065191381680113665202673901624604090703748758410440162188373464431677125205564368298719814010936471979651855744109754305939919359538475821394749856043964168256503575965872908439938385566402519389349811989479390622769786640841948631289158610148591620304127799611072149036635597558245942212157068077703805940395373563383912822588563437708202247182972780610813240468670866171764937701968529201018319095745238319627994867917635709723816203611974829641406388926880868644490221172541160916881497809574315551329045496685365043134190963502836883956418349704496672608250026833742011391903769453887491638927254519400562071382805410950059095769659838394802522683335935342526003748389037300066969132951827187194568835483871325555461473858331201950815373720417294168659855221276554993698369774781159380451205329131303037027623673863960131742593678882321660031165285391691310436959873413183922416691909838598164004234269026819857790521960253323747103226299595701554779245883540740610101811898205400306580133217583349450943999901821765868471549910411115843677629408171758104441924275517036311075528720133403104457477862657710838055053366351447766595119527423042775946081697629879836765378487984178169639734763070497724809311023514235817563205273029181655610945416380553151175009372565900777057465797374922313958155562018413414727367993954919497677504833419753471692277211388411701512668571707391918199671641644278232292965117454043582830866747815581394855930507970081001811804220516191690591204458113595822728611807302516567138071929764715049040628088781364982785425575264527025884412309016838713524794978470599904271179212648697421469554577769807325754858314844582345551299609531705049723474390314977109492449453704347019123368532945488448103705777488479433245328205964489615548704797724191955665578880499439803061439724605142414174578078290679759178645161775618332004809624411977155914451712449004235018559045684201643956548606823123527396460329113863125226583440651236524109949744301956272126853015358882444149246991644784902187801516078437392179995832839835063225783428475004914448541783897206051759928361816772028332947516494474323027373918118926665036325118427881837963053214851523048224889779750988006235165005324052490994218959481889959413280771802624162057216773259092396124210006069980093553059357582690356021613733467338415639077431185736634745384592786566099141015800528105868591131133430521195620711325464382688465634742302392203475445797234561680314305092364799976077991368665536784526562342021661494322735336255568581774494952165016474071716311206736657355727992681783357157689864803770995999650060200729615199258145330868303345028208980531779416673676915597583413435411815703757602720371679132079935489482413598813971634784599169727044905480281349623376273969347982454299145615422113728098435761236446263958482976172416875156078112339692247880506876962387805697193264361072754990703267415315567710814243158554036924804368084400805631674693300975897115254849374411330098974665885431954838946666911351507347613063871873700156177620528077856435237729195474186017933311910490522614927215534762642180146951934286237873343293262472540994622859911315488983345832540663186002077610475039422933971572871377612986181819183202524083026473746143136467995417333730638950210419591059649900847187388919783409739412569747070912343279796184753255812859944968318588812986066909127073390376118492336752540911350282159813225916471677356327611925734549320486135106804576633937630149968159744161990117908717623008284126267729430326789112487394795852454357208786395909032281890726312568971471789702828308934548785059985009699124280014513948953632897538663267448482060891754062432705350433969641634297887259375541484827206962119497379769337226473707964217582280923819410760918423371423550614246438253574022048622060379431634486039101013307018541886415629052162955158805743301511782897764059717157817989240732339374420715527548765160715191022535333444225530438834485297402714573946083515594062248827464784655868903088725199776436392758378916962546158362199802891249475730837143255259831242556835121376992484069665684087733362996794936558690658769375486457238397541468338307209239119968302279044947038453949936361741993433830468840950696319509960865660237745699479073690017610438757393307849584225830602984287445060748798728684418024752085751641320944137513395216719402379797253829645788088696806084869681856004743726134330640414623636096069187690167372070785450494573503147867712680181513661095473862287617552569370165761609740857111222174563816157286347633928338736945458790724729481427398462551061605807449198191160895868374636780649862119610091667520012694343040954735151428516466610682820107198453749042496720236931670119059605288539322451452562641478793741743878597646061017565229030332032069248387809868116223799103921762517281800200284697973676508573927817743775355279540670475180158961835480800089646587797586904636458137240843266326339657935730773585647174899455450217397157319943911489785389837958514573088956036958552110415713631280189164972208546016074467642681709565562434993113870594195144992256264852644185057955770179262342787633586008092794942841857903647168736374028984373595314004259527188560166565946107570173439345015270312892823800462774030437931295515318585738076414859047647452192107928974091990025640764013707221395183118034487290114486858458920396221360104985719233792896297592914083197476022199224638121299120280862272942295907196595281210518079419860235546638794080748808387855906266527716950847803102846499574199791477449794003334810123953774278588710168256456215947533521410193624797165480851450072783648213146262389282491711078934033784436885976851819363327274105321686097847389854329035220267370186264851591720669480655110832775195401624009177856260491201278398069358518497138595315563992239823212029212654313574356898121480395661295758320525333478323224818718958012354227869714350960708931354143696197865726682492035225941009529227111232219558732326337840377725516513728182598368349426683213887822295968631918995929294252972384574190782840904215238511320589812177149889516995778497907408670105610251322012588635409267213340955890920092292754837609373322646805615303647002944013665810627744800165492619233075997114679891164770509805842162896964045642384440058661909889947568821752224574871276438691637623565400912493152990952997651614243874623090937844390551730982339134025085591865261701281021218967788928982989840575485043496181846242756573061663283111199407687913083433267348993385126628366570921829783511105802668219698976601273912404006615382650651842898511787311599034604981409550364243090697417643995236029057088460578359126388663940195626646620110021748192459937765472968628710168583510437055245361745936501525617201320347104704721466658508639636523290120483283512910079802309394470699071496607540603609883811210270022700694460542810369078358463596801090020283141906633339266529541910945582835932833214827554399811675177913664789357864316776013606444315969341280292763429777874050628839083488846615465481815996774833079183433803635614626478416004571037721904835736306575008863388860398823142004607136804410702628442582800074141149830597309280799139232336848274599495346287578750439216910055627677568417190521519349695235854212625586738510722612329932850039857399702274347533051012717731039640949512242928953508340939347103023959632424218561024807643347547878248511005589963780932503741636920305427130534516999820908563888234362418477353103997490891490931928413486218688342070284232769867281216892276686082983434074748420801289174007218831408622087280758141080776548725926846362467369531320428574735280065909206591987423897010184164095460320200807477867210637753374514751052649050451837910079639690807500699338173275203613771485233980939815152907389511991217748139453704876080055178243108582206916530709756420954673709337800242509329961870690420004336610230299229075838744765348271225372206390063212152152990124962357446259070713724847707581320356698941448772958692547473900962078859420848734836579050256263694421704822040275136510774670148421715021556897905699532629666067735012019945137914022052527291128728267377635015233009962659243202983038419716288776361824911676556774458567696627551829722693554015344188530376023059640017882400788238508700500410533605699043826838056205846491427523212365957306375709500120360662096889558389531066273979251910031680601984140526944879178936238820164835495343780297746241878268112121112340215086846340102685965664774010596782566785505788255652657444927577761894117150109299369857910540380377097195570132008167845998296377439203461825630323948063718940622646214065059291434596891266560919159290502117469501570081458402902665249699274348873755921778922118256612191837610654812710147985592216365245634053931513081612387982231207475631347430939381881754023021428986201208820201672142700658804367654626968660055074978242816818658637635487148614106860366755522198395293448524870249417656256370907009464805392307153718063860863421796458143092949892812351230628794201190860802603211448872815339590147464306153100934928792242579179228173127014970383640413795075182213195502440973673747133121608777138576177964472431848863612039184264182053013627666808758818883610158403772778265680964570790850653565043275048049176074477153744551209954195402288283780231114835930762235464647754119647804099032613450804343638965701545400801223837963971065667659903592026415769013504230323701235000926675222514756370094953564859204139242792944692501474625882010940463309116046480917111527724336140711499871420494154930931483887652290577683198506488411243531877920372063444527661102838989538439147462552524142751664630022538080872749424794006049539546659058141112110416273252712211191446782220493510793199288664624675074401230447443218657905071474946376833759172818004640640748282478064460491927913139189113762835749336987376681698373731595444386206620066961328732955425082295678460940420648420636855169764491731426722276806478242890333777974734903370284685679899268102794143464357922658255106513696795729223645949191596543014989113998129549901235785971158020966111840211772277853961727533425985969236281609507910400100581267911726202067799048268143493305648649127304956764692119815992877938702879543899403260330324014959418865806523608191190918082045952746595780944688783957298198198152733126750276849964569034690864269964426953726294007900812720974059774851841434887385975121527785291307781537049461169631699403462386321563936136047421830426330622981136625547095330160603568300482254291426543491770573260207144270889860154112259113573438410672834084414726009675485232538815742907876220932783021693066456847298979491046421662374745468805047897086123490607689681027878492024696458513991425360377734606033653501196112458180479020456964140342590869340606602082915765641089839330340518468184191051932821083097101371565477148927251059755501758566603187240332385826718533644356233641688745151818759368357549470800329766832677570311491668816083745140635111404099651410904953790579969399401784620290137356149344332395664132789413572729946395293905349013376881971713703310413694524320758944198975756385359441133906667230019893522777751063813429205227131306999369330341499002974533018443759497950468155183474928817581202171676803127482433365658490682124493736918201036232006566345909427995703068502104917269231491507248606627880267515208540018476092217733108798095648686741905976002225217403480416204161776318022871621263240698316636859179557943513120110418227563083913260923048446046175151492442816943560533148471751652953150775095254969430884172623825619523152610813974465096862013934834529090006305770090032638909070849792345640784447414999141459275991905744976038335893162382101394613181787053887516107847005251899154034206472586657922019179743788313814862765832421731370394037302697308549086466382746616681156718393309546142782033796313335857411852103673291256870063006287910682610408105198686128709784113648330501627678475897242973382902159202750292908589004488899866978250919477224667524021999290453718691140753072944875394788135140700993980543173592583110497669166885631346568363231409494244673324200036725291139509493347200312114749711949536359749171475767400843986807794226475712838964494612404062482839667528267920439258799695217383276672325664574917887543118510392692417770744740730175147144800362552816657399119435652476877872055996258102377029545363922102929173754448316976947048480076305662460788475299853556312033276521759230006852169714653952213270703936352362207089291196502687670152248591288911688632373024365485034160246596273098903158001712084408390875298110897407276652037986196068441040015994838026003480112543299027918892007645606388141792897460905259505386067540332027069415101831693846677455448097500454365037499079427989463325804725445697962264207331373005768531880599667796428914773709903838783992188992416269643104673588870670896207604252755123254858034089287221745410200992753873600176310510702677447172730268732699965527904858809948809317746427162150477748863416387278337764093515483253383371683668424716889406209082570869563894358043400816203625744936130583127173723208208502351755069870777211216857345977815288877620100166576890287532887797712874065583975336816565186423171581214101918682252518937648804977885432717905099729362758438225228759147088316180357750741840569925112672370428618320912851520877165878586471115494848157179850324862792363685803520517481217066439017722175440800826981108750007767406504376587372364222789891657756385444325722935801771054145334668235854953503913797896309237049789328136108734990116474120230332526550112245936895584858273848586226323174830163552308205423455903964688225917907120072570365502174088284775209231717332770105864594993771263907484657891583328128155031086858444317329792186931578933356492559986703879564857793693600631562490827288620610501462799181361819872210781453361917268741419504753991228001891984496714716749240522454181638050604063516839845916731500517063848012601427628375885011212842370994618000631634723649608861646786913116412801843218872588551846068702150849796356260606381952380850280752279710621337662940586651194833170721791254090559929319172888857889107756443188151561333470879891130477548809257633066505333846735009900641914893693530131261761420685489993028634174020482919749660363504776219681449771275969735199587627172364894337995417375361242419951795112050585302220920534442184877650954813446405783551854816172690257370740196858216879972601614660063648038276990345456191426807389599807153283333791781335985635054291493924791542725893262333528342736656532223251198041709112698569400900609439706944831893210051584645680077101666600506417533141279995889948973787590818503594475464000816638814742097486980968666879333543176127169499475421224959484095909757447046953817483318770377702963129042063550142760178044961950230800708742085121695234568163700479216478874039207273346902850157779540684274588978489592102259948296532269554522045666055579622660452673821787725483516530593716483991571104683196755601752431996782427392143181220162320722371377726269695685153735246667515453204522755100198180519693350247802839632679554711864413079474558325800679642553273232592983788060874904351615206197234716887296287805725535680367393368644173321278411617556216404535428828829202472678998252512225517879958346970756506673062401024464538144351565138124232880264950710734824939861577543404500494337211190979605730581423602927650574609969061740539817415080973923019948526198652586059830044990596024084471168990244321511037376905716749779028830779153192720257755969116434732351024918781005995836339683245573668578323845946806598495363837305081386209010045613044634685414031466532785530796906467007197394939709945455391233314545053014358665622094791299571770071075205322097910192356305005907901565111916908190805247526106919257178512755399448857577514707070474458756422631423408386822806485987752282121043010598911972159416023341425697915465637746548538791495514728032529450239653084431720642188147982803749426018903928016329915086461826662532627643001731618281392009950384977175812479171348478340582208555937018406265558284390355108776330212425709641776016150423978147116029533305552651680703461743026505063999806486664755813479521172684076756764800941297708539965597404675795218874571561220085508857397798403332624079796198711857896367937608723571921005341457066057632345934464264522497286899356105729332062576804737682997019053234300610183559554700697847564722896532934342783338899569907955500907279010808591783718086793460815113365379934001151990509658027512846430621485236009884858393942752288384937390632161026799042159867597270750465063218896823058139767641849405651144128546134180482521944038442372186419424405139663586251084757322596510333282538719812108986789234421851333469099033921131202639005570419676034882163240849052519566513331599197507980729507349938093686572979665803883198143408188298202001711288089532384731424529953224254433378138552560650647698820261043261735603887366837746163826185428805962562348055965386835315943301582608602523809695906604461995648841246402805232012742508786389359184923953002712521803544196726903365838604916380629610572825940958213547226574012383916572872910590674553382658323236402458037494161305981335343446885999712420594390386578570492577167320323315011721956505672973384326675269420429730339129895889474066276988478167310587395449317397218864751117642995575758662373248296142824676695474233175893782260404921770502584129777132206275838656302924128832459115977167841118604726602411061939010219651407617663170473804155171375355912736014227260475457627946931817516777834810023485014118243308627179184134898440228222555343593471038084794656203187140362198709870077795737715841436966177182691008012139834928854048519056069964747166560168179292617219718845290735692135185708301940867312499734576974584584021677683530268866458256994918686938838461913075064418042983284102299284894665098556585951738222178854438584986375783066638707278894171118456358878326720661145092371323310246663990530587718608474017431842541867201495590311802752443793649454788873008332375125761676976568378626213707804585986685310077520441137181704272972572782992618520966409530827780004650452024661635665477049787521906449230734966676988812254580919618182894431692362382281505228326831559566164193725739954652398704063935257913757835045480274576130668839906032218072986913149994640345091863790038342157563699028689887620301212957082747108980809213166204866816532813616114384282788933155793079901920353952090343441375075789806162642286328779601514086208444583006249210545582196894012023134631291138519026420908827205240097847557803232044476170200191641551582823912070670432658259570916447073294315533117219251437704347470909973889039468118047323005285946101992352676454752101453715043853976495006741168310830023633829937780130103984664781214485688839405350273437642705413145897974866542186442120916631205076603267292593421367249303349231811345472126086877852933576706677426265069362411466718526673969467649156000512553687798785493508495294582531269768303637301765247212970006727660405038921956261629471898455056387090407132494871077915131728248691460227629104826711508406587647324358869255245992759523701062289700877740401317784888794317415238906896536307144073430996890071060846319001748456667675404578789003277469389110199464657696984657193684305277249268910423198738321381422693435717017241601809013053875601209997679040422629976066526876473990272064544880097999512282297193816218336552994505802589329804729488399154060158449771124220309293683852933689843954409038201710635906855223123427942495769000073465792764355899851292845363301678397608837056917923269437210638150259669391995802289607639310428130827871081796928828473201551336012733481758484849542561186118862085314226663264889785259832757259925487902152759357527863021564382481870454441528432367538669519739969136163074167985584130082364930945568339733570238601559253248961361987126356232647438829744075513782462641194028906413552126358116219103946573645653136463365503086011979520143446381951833602659992305876631081958880852619821557143197452261763102377737668329604575152468040643989969210303250154328590164130293971084466126452147628586710118214382786067654516465591766587501685301133742008886911937682855177681149337531636194288461911536627172090853497509265325898683235163109608632221073128192304483749633445793255715450272460347999084870025577453572171556271869212073164178483664701412101763620718267889089623250622635962909190030197108597993692238664230828758574451553774417523543034742626386297661373513647436046830977659566394759007740136663831032057609107353220193327077984797800113340104050854574507016616955800703657588331710153825308223822242053729068430641493555697632065368562952457255756246891332839287545108429066964520908507194359190522571746148087004019435299653458046995717631410331006337453943675869544576159003052009998509565502698771933261005152937930942598328016357867293818792415655818220548951288707333215397301967472013249607662623867055771560742051646031840507728583052097657371175131671207818211675220804420583578515921244106407625675898017550117173196046010494172919610574647215977962524721782276198489304553504622600050523924695370438222896404065555384315570360962492284105915984137868461257318169115553533722994111026736495357328771344744705260465583072786996948282153500794984962323439403708955905986021573329368960974190597705973647941472257957587556058805897986344703479428589075161291701678368755570996187507822169203386779171458022586665677678643991110218608665300072436004286986573226215979774006320186701987215827173722959185267070977480265062238726129171868175724514647821532432355120833025434851781748783393787214496825685041485755660510216272434007670287197902302837388704039906724718302930515352087121450193234523726886741360831265355720986961922981020872900535057016296848620325243017975298100029225816279102907627198679933192226624409511193093234609001350423875474550480300094078188166250111749308086519589983811030338256449151614821796481004595252336571483025401439649115327459933531785721066158281623161509690504052099518927467951347183038823519269892955536806429894148460554261530042624890374327930808384091758312287587989338314509553240073185843826583804480410806049620229844862795077234154774028855789677004842517054522431695891074888787129610022560207325530205911361236383484127419548353951917630607795329731603387903764824684421004136892660721096458618315672631218429032614970952025849829682435132488932215318284639428029286932199349524017888656366608859000690044297135422682906867631174574677966831278435976888893829840866122515211586760368059761464390065451797593434030092195065971185428057481772055273468337386614993031605972039330382098844564219257744399660339959118127622047847013645256566112783361812052869592009224023448668643306850256761462273127908564321010577557812096345258954947007818704350736696706374877489237900292593736073170764587759411287887408123211810853181969304786274420586187049218249051988434668832086526318147267234771785566063072901388530707982857997971587496199527721524527736224380796028213239600732319042270453893064093278402230379011497834693667902021197947581050623927737751123943463777576551463544260801745649730243379718738955586191293461941845387200411621112609307317127912788856105249661012706488561541953026260701409877159678475413181280139170448385720460372281912264405531745938300866401595777080538998449469442642270447902474669220163150988644542956383063619085088814975736908940426960768705172078180512267008986126545149473935531999299955682055724994049595760252721791455230528990909954835576367968412226606927738981726890369915977467529000526176424659098390456848164662942623329377688907885346794561987674724264866480283164905715420739999624608644539122036226060537330407245357276699178063447184395236236782619060584426136686491685101113101052436708158067025550671505201143569818401159914908747130958580467307260431825579211974374418180567429481583172510436853114849627508465672261872087128407770626641061430821834859578048392062531724524776361184276394531030487718615135489637730721856123126210480144983914787561171294973564986511986306944297711644181507501442401291902076936699106698412436389200481417963607847920693494747170458404627827431736801907821197925773568319549273424802242282351732669972575206086646020164261129977049662175368950239751068029399711434868139971781317828972429321393310537336389089059152229247987573326656126714993087173648364286315580144460484867690202852423021857051596017962733490780166193266806547284282271577459974261505646493423288695411829995654737091772073937548077299461910393766946787444316638708829239170177625353977895698406282298963132691114403246639773461065702252585452913618164883555856587383391300981366585368926485958389141217801549507116613209384652294085294924001649873911617293948789712338007353031893741894446883966320713336436474476784644886797058789679228769584037684920589063397726592121212199211770917612434013431628935466809378232243248263506530785130496426349191225738666384285376823843058573325567498068531026962287516093330948254443640590255333103064365317355212501291546531821934927056676196457349243952387805998410846341982191733311372846553808557263192161549057138715319224324649824324199307303118752224562890675742382573318462438042630794097345730569072758566989366405417460474404631778423161766685497979079666691546959818572231887170735569738482605347821399815409986240762113718326825799812072056853765654219146267656905514845583016316390058268898893917221406491260386282356619070564016510664191964440945381533371025153551831059095817557484639602349461335827774002520486113354505557260383848135022945899797350097609461659713923632655844222540571010308755736178990207002554637015867329564672967663806314326763353726162508564373076521516883679625947807994221238576348805234969223354924145934980271354624817927629804829736167851653766762325441396180287516801333262046867535479458799007694753705045886888987819634597643980515111051946928931293463609124401581694524342836551101724585632137928976364964735211461013103645061448016434745531101079502172960086013415489998327070551808628817933779963790228686251771799772520154938191502703965177947909181311388599194763269537105135780882761766141371756664102251689708966789761971422208309428604717996949507392281769945651139388506622612743013518057887952118149452146941310525338649876856484545832779643093811601247368381921631696361642880419740432470171784543180916571126829747078138504574091619351899732800495789211952951936380131816039975512558298849966600606184570305801982702967098646305831467702789468277895793042320397568576360681572241540120268773194367987206808079492724537403419561632723990747803595115741231168419580355276529333504586399423520782845604424032032349756115272497336843684566019501354575627720801406303170948540577927746957812038890493060232179394648599827158572938446276644264263267711368554309467436103450630892749565140848604869155968476659990919718187229507051800515372259411585446765451802458543185341687511768345420674044829176840655558845239322456853242678326420572342425361110013142034331632398424552541122975136051393486319551635306256886649457078542442496938535185020057612243704409143592395912397911382302438091101273588446703493219080405426326207305523348655665788934802140351663246829309884274843712867683800800114761465424916228362571796990307767017870994136053958902524866551810154299605260800977674823856379569743091901759941605285290796703412093284012516538873252809087402951341503277165110176275659871285223637399668279057261261797682382167602103983678021574775103491398394658699399880667818992457862902992397700567471248254816714574376239217720714144030303542219992146462026796383735920532573191755534039979160151424789466819960006780274329391554839849370063362686321571507275850933452621887035779248068678525075716436731510919025454581555560571210174636979201210724654650721013405237120072750638538526528925757813385677071660646906215654207829147754365413624369311706437318708963319179600693236711874747107439000536574516207303009723925914708442813960966893941459843503901457166459711395207613448211085835258125631423204229136734524206270571321431963348669850584138284765104654224659978600365618603712935035878866444935093226912915961097765209514054453590598151795086426381763306403951541253096002924840205968984895181944566535400161155306831593544753684533844723768546380479654880106742336636111398213952624655499505600945281464491510203205076429741712592050489541012818778169312308407596914652742315032792074850570023745321069581933355355145551834992672403152187398638132303377345891334709143212373483657732830628661944350837712451925569914240707494620213518392647592438288226835834919853737488688084746487474651288801689610102065205430004412458199005620982508209908303884311821741275875918904147453659563308099714227196852190798620737779803250909818496398054094147564243155907242045352400472618871037601559739626727519459721425703558669826676247107653035704802090136595201946405171484599967298305563204739163064689694032478920976836370831840195435425347403248712826837067983536963601786034945221118879725977766830041881782505112411706233219902819422393110287161772803825828439936119025856047118505347463280121318874142920148464101900204787584108935058922656794280983739614107748035548556278776670397022980924952477032466504337317588630231643320368928448160271348047992030919414604123419091969959049840682003679483079048156465092075508868786557980639400992737181656775687872010067615263337971575885624717062819074332320226714780900128850669170355609434884277427347647941223828733353904190313196956327672201164483827141674394372482275395831444043751136985208434828931162111497571401021659914227743027701973603245628480092624870235486593651955072012591275122282408416549084987354747016116839222909541405912024053518406954456029679844371472751594488496279082138563232954701597155172145227124268916567811317208088387793792867033395468005580672255969922338309860707443858493963171311246067411979217136446233791863764839539865957158597612289761012676591341286534798937010489364298697449037183722241082204109997936866434538108458532530921848475926470690937929192427649368502150328494139807186150403911915197921102258424773817919616451142930465756219110073398311465568369739629840053883473650358157446079445768381338536928542113835855366811354672148414351983718751396827175332111328891648270565653572635911792444658273799556169491117578728881616551172880582193025009213956164250903792523736241474070308509258362839881391405104121829925683906866261177042391417102044582404301489904930356213800226204549695026340541381368750492404464090352944796019881236970725429316599036638646000103209439898986472666049745490161845332668784699701266409208416876720499594022574507475045501307825255214308054730217665188816215869261195161944705095485277482914727616799668770115664858995262287270771995449344076183755133730906338144591903429985256614661320631873486406257238383171589387384955807409746246819082776865620389073291383976512470154941732925861280299820611842639659868702577108609986210841664430835515097085558386036839791079522123089623724970243192241406350786073055335135127428311730939840974536797553694825015268063935749064248697768109571958466944952361113396591753256502642068013502506534026438522397383396600034360165615629119970080623272114956184252046459574591380182482415255891930943715862207747425910487227946872169398206991743216383882593664949927528982640577480444879389889685937161880300768731474723638651074541367374195598286886358554075767747796657321151666574701334692731241434509054974284831431140018922027998650597428513500108219256407891879213986846454883128050208074389536100661207906100605384384788717933607801574013584370909499972662349383862041562169872276984816245993581685738681463581244447480478498266230852380320269463108941922716967637790669633856816551000759104888809356587664439943045643159808988878456517592633139441414341946939497895051440547937632331847943106357960475219519991964221581888788728441186940184233870446852136140308657032504357786215096802986200013862027999147844392893082992707738018587509404228885890800776952357072730545755638448990933358563800044440937584488657171489195340959154559944067007770402510887300288040585733226577772335817272375275163579753961181782368707192561281051583532675306901225435387189290262717950289605032479106434247790051012317314258084920387668296313893407106891650117808377694582137855701394591041577265547895217427496595084859321383422949213501305060360548938800836666304105505256216714542737261276483897717513282627439555097112802228330530013215803814284059981301348614590629371034488710027724401032509726108354155824359841486017456311380423639008748864198289462688410703690459280269769611901863113691104756929084698159682610335237983064449281155475553668222106175575594049790547413353716008950361097240621828813906176928725479938435650365923205928854556517051774718098451421787417908624241222760575028574478986515540625256012229981057881547156069691584828844669774628595913776507425326748480892058714586100851976117979239774880290299150215226809829000583798394056148114436685722719341865551363133173057349945413320315436177367220478802667085810551823797738386513452214560752982657011907865372839693683731865765264987122242374022639831075254278196179611873385725017124534762402809313234052178160504835018658527378821263523047668852335613955367391281585324940220118123795157539792046922858403221388428352372592285322697756962543274591128514121639210373966950791063923349575853921903974169644471299169874480480361196982231475340328963423065144997449518081178395972939707144590312681782838905313771936562526449099910679901282514418227347866623240965899003914980581176547855186802883471742185969368895870800332975462975663008887164985596247903404316788922624165894161416133061718234288572153076189445656507334457371193745081696080887268150780731382862561860602097606955896368485711241820657418416982135976480593000646087846627216767947061024962767844724070911896986054165773193844302346858602960865850993877997605955943617949823287368705929467039251147292383121747106158050102669131925125190825665687478503857328904636769433036567578248153315224450644012572246976136983524636563956847124701854707607202475191609959862583869190630274142997473495208120092678667063994096058389043213584564839704507538790744851259454809367283590423760976371168000525353887584462243103495615489181295817633521907209105706637375911362542778831656470549789150312076002741646852103685180621160352954311303175339371812696331563719363325360050881611514314045089947297736873231489102886186675271463323833170513726767533149053819401512987050120094379462620735053542811816559936546454687666323253163368527618186191494908652467433353564483812670640862493046053965463889494534682631288313947943380297403689979886244838331132908393593169539184674708873195441212507405545250123530511423683012515332390727893557136081759811422671245812864829663480646092667260648009525722667751937638070082611249344260040525373020507081711337492577383004833776714482464287723447050608729933729742936044355618596741144101125464819093771314475710579194711957045043375750354592702763004037517453274009950309660830245940938515725668591160261885481828599981803084989434523046223901910635894402312207458739937642879110267062379854127511866132214031950979043058097825526545998446020796058983839227017690740096296911725065219606282391880941922864071844379186582478456727575950650756678792761310584569198606396525281278902087257194183537334471867231903529973698778250794953293578016992412106650351143786921419025977343004788274771433747434276699771500637186800226136064707514301183192481027572263950917632634525848204732776913790799374262740154280084705193866023879038285845124211495489035381087665736587163741564875169288555394517487048844704703444347958693743496653460055449092558650229492976067717925566477627754687378883215842568306386452853859381818679112938659333946976221099992393656305767562234647477869094535976226623403457064934353530810055747276236174284512708398290247415211248208235855753584022443003949736363320742595810665820827767966561134058587960695872237341231789503453274754547585100977813415224101359584695261556008208375607995940411071592668838649345106164426246322993969647344787585082965242489763710610995354220213110915304475069026853223802825878586162339595153695573322103101241243819239332987124484610157337949888019967789404985243370516548158829716914416281835248490065308379361614734873652516246149579961095804285093548855352028192202062930994862685886778531318251848448937906002333691551239450508806577009687396409046179386354296398263137477481529525673966125588170601858841546468178640814989559790051361975899532011846790451912342689212343058410954598531117151157334557357192824169131565061201638604084266910765354317963019617128577662650927456350166404974418205960642404797360989837307533995226854156388641004614530875251142510598426549517348062856608151357340906462152645956649937882603932367428797112861696808602273376642328951278280093957615458588777798975655490282399140305510775896928294645434817542771775137621436742660398980398470502905007664381928920932612168277792802759727551326603475259440347796324666867655766863828256584361966447621919041608563241533775304962757822211172554654451329335576607409346841234762048373692726880943099833636358353583604043974471843964515171236010619226197428550798921008539557610451559273074544720790594787780253344983419096032776308734545413157026075890138827720957287217195957367398489682798010571433783187492472924190286664135079739397183580604094747893264219521501248609032071855058430355642231666826899653654711156443210862910506117148941911291086771059460207970256141603440323673739108752306142252485713706558847669924336781782381707257074553314377353802143300668723924334906398389054975058642828299854989047282827466278258931915572434037525993086766492719315577254706045783835607008660690159233387757026779583412276331539761797056953994023908648181714478191196793344485302709033934790309848328973533982874791363452100011408087644369556119235798161014959321671644715122140199668844405956664845164671186676959267888457667412884350063833261601771855135800711136662090706635600911546690255314236929067842246467753017603664785864659990953983213983284042487469791827430216651974980747479150666635614792048026910054316664325271723464324418471512077076181805709820303166359354539051637108157457473104612187767191244544022696244334919621256953266294999706155698626204777713474828657783697046297203115653508893204129679720090490226138698475813947317691107313649577162264131358567478926339601047597353691414228752035864618820941347801436758327894144241712112682337748216830664524115056809516955734239433098147982866372508934002495605038860071826272808986286240831263290269368844672535542475419136135494933563693936424085291755506870778987479580885137241328603838808029401922453325547404974222840920543409716943121077428353141329366426720527414595098706102035548101403589704676864017263202688297874719041943858219422409830309170167736332212918833998037883867826772324125232359594474157634211419179993682609354018493679748879259878202669555685126171200466077961709498738469299518022359408935563700094006984016398015775496751270439046827535839969851215025593871571250828908105620702195821282541504260876242841373070013413724655071410588601758965007060569438360994173709539479947006526016679714030540272643725250416046127696794217858981758411302145469583912031965844618770632705407218712003684944455131564672490663816182901777222682495513339400295617386870665684077109291692071599889635735314075286590311974329294799800863899583478136963162846983263219582682464893868833981878770416276607604718631297731049811435787552881328723040866779418863605956028371014829078355242516466178096767935581161964694412294643976611092094506421156535292384471902914113255181255279087917066465986911336384177459300563574098530610740376128785623624781360020726424281134886007217076210867396985962037157552989721763396183586573779208289441662298614162211317697174440856267893037506023808338546579729091697132707355866089559659477654723254687199960376206660406990378874208891635536059812207517706560675069619402954394877148039418121783876575545616503062907105451177543904513604122635684430508020962349292643444264623080519116433470358807403636098509604810766912264392828280152696596139242376358520118821948560531262659647525828523644696633863325237295316188483338823175009491797188346993828665932193846362873753892730033202498768238564975187437862271684695655748293159846142585207495011566990834747496808553769866953935041588264623612482458983786617904321308093842531919913015381290396563216301187539532148143607824280984083950859562556241626316081362095875012400482717101021465926149700774979546645925944195883759344515155830031055345660107062646434421001454559929445288419972270462824638714253571506487224862542105287994325991754155699365131470897727274949152064788210530657811771048213921214990006744784309034810564462255868924330164596824568411838262314099464825712300796104808463263239210206989836283347994292200502649967614279381861995191601851592269754578228715919251898643351905035045275361068398408554956027519965072119774061412681541758988253825338529985683567645616087642875120530454397547105503549365766390867199014708533248198168286660139354480689081355997184539429363095763585344013199838714802466488426367268493889175489042668117826523979587246716137678134689405802356632142623016203392581233411218469645599536867232923759260909082788095312455595571318798289579651925530006165204058676981056198371679752094400616983265003918191888922671467396349554802356478427026091097868293154556045247599935575280593030475239628024090547819094335458984783248489440565209436005064611742607718265505587726506959393686897498642494224611012780539747279490910434352509614399147845304789259301802507870743416437514290225428981049561435248226923978022995392139337937123043569118596821946141399012814554798260878606004746009449948539600464071701979125480739531866710473351398079739744968614119736183590422440848811056397718901366253182078013108588806850244555048138408320016579299722448498123741115362561703135091394595869671080032635117414046324865726453667128315444115425220382099452541832340263341920754978674475689011808640480016726002657890174011701441415475139501782031749367869029198218776211738837284271678625882055096915772373423881381315422997581899619788918823900017474434664674782772416292623530087016735043362968317082844292335438587030125762350247357278762297640079123053678202464179731074052131357659681234285611283851931378557986853659959253329541921651056253216460023400314292281638800285247821735123641771365858775722060213575856496413715263768796797168820785523804884371238219368071446765921485261236618676377406941455898920532285683107659409440204822848199927032933364371545492087850662029743868553938213697751517660893207847904319268860486583601468363294021287051256501504300223944824962930062779941297882375825564149669830472319306794660187061746312523820447339721285772164790548087490060401542164255831703651570099346216873590890882771948014853275183521781034728799611268317539111402206975115475286559599516656455780188454515176505505620147216214463081451645717068461035896394701653311813115082887601953344502813866592077953036743700167468049393288913678751157322963172824481013513287736852054235914913028669000661770326118096380921664763171381699600368767359940437509645831183279051481683426527685727477458167966918163622099629171592564756396670280664632964403175119478680468383798105011857889142710654682500459684077922757698797759372809210848148454984744500384713161148030505200958387050465308824414904152204678542645578920193842584101541790804162546653465894803592903002000551603083896086434680252850359944890863486294939441626430511543844480605333672590081789647937250246353830069992474432757769303327417596214309002714777197936959519547408217615471844644895302474056879973852220790053463116696179220348227660452730703295309928893947936206279840469772088114851933769946197608284001540831930950249809522298027752393346422638377431140132941224515186963520456410956283088978260871510399306310037989241149382087479046332168144884918338060244640452612934238644409716286008261667616554972694843503587142376552946656986542333050975977389821122398655958049694368101559720902357818024384851010302638227610712578003024565849821421284340648582611158343110233095115477242525217014560159290079072249576063631830001782746001007007622476665308481188091967737551534166369550253176733693782087764402376173082178210369213004917192565104762053456494744632830527057207840703524736494496341252507586573066907380604968075848897290642911430242337230951228412157588456090876111076896460146415732516002626476135179170991525816864877321277189518935476634857608713984797249599620408585853170171788492403548327890331493044556449349646529540747087214674214914870720498245649335813283958687073254852523387254885692547645394614217844562458679940711296627275857788045536431798733931446993245540784888207895326617920875433207932473942488982570173517862443521168417444512058281737486186113142124769733787678761624617188224310984859941366919471859010306750671280251428650739308726328475647152399257623550668504194388020724052974643229165620907682297912650791559926170128800466109085127284527784829463349237736830868480412488526563938478878059637325891526274511555177511252895167095940018362988164529497741443367598498751729647523890424758250863215194982015742371803721099297210965515125225662522705869150998977370827798791639936803827593090291128640513159327393563720380461676230541520818278129632275869247828418447410433182802513395112388195334201917709749015575377711556604561225451966892319211216496549209039256508562050823909064160700148223621270388710571153215579334155161602357283518359427743668466274037454922530300631817621146182318484149559053924961384535077772484276612064638342427655485577082487071110369067654130328283471675944434472351476136402166532715391746493792146414056230413765712706401285753052322221672764314767605310069230272766932051830147263941947577701147151688847364021971296434711682276658079995508123306830225205073233461923986681868013850515225267913717764300871945040102800168819351316890749420610183938616766324753212639433442220684113126615716086205377158611289582852227025856400326722237137911407726336370723785603414241895547125116991503301483933770384027256313400646615737085566679600652989588861111793791811360539213261554496853668662411510288229440769255886312389172537787644564562354994413094590514409734417287896316585952516182068382027153350408427780964906640559138931329905921184447736500178730618288659342324810040506835238151914758963266701270474831787757680881329213190308857697229568597628649260368788980946837913270450115615827207053738235360008812429704794112624579509136534807128550064384622358825653046849349533566303692156283399183760909016896097457865219548384209356536258944153332687280208753597684717740873121141690243812859222048400065860621616487984980690320032397641891285374497972615976904707602259408690989670176450990446883312647450020136404656726193313786467648822459424032084126052275018572747633621585586564701086316058546242985437826702797341158357227519936140280976426004739481342488059997869955216300495020011564947608404410761312952318575886960512488810165855372356498910110220361515079953895155442303297827798375830683895487078994346073370646638354489581168704864648989092971601105665074058318955409683204762001322508542447343771278062297533565369475304935768405249002573628041803580390018555029089779121886239055672567170417858950092175929828601132838690388566386151256819075771367265092967930603274669535320289825585054374740574022032795558862844258276614778749648738793845578094425451193157349124047194985134198998008091243474214741209172875869153097067376411245102704848755666924418188479162498863737458884546518000248055787215815878286813663395044220060020057740218328599647839013707559173900103971497854379740449627910521939864771278484886837112116252235871976484528250301052878696144847573666826814225228460642519062096003059839468067096358430542826421982926788646015773976729144819786853984979870217462652443117757437760607340789875660164940306121153561838035888625322241488176049675494522257415212743389969236246153042548269856935506723056899893594047193109759054450137562560414055189762434894886511286332233697312862321999371445943403750498203522515922007574714588044205147386238032791119581531397042964225223343719716034836760856454611392585377073835934919848075315224520773066534511675380303301768432924797995128622849105088202729908253629735051261332673429827123690965988978448068084655508853667922435145197810132873120541531566161429350601120289731171980237822662743591115662109374951139895688252043489578073978242055972804297891445149154558212526187419560399115534192237155979644592075967935763277730296619467367075312091842334849030400867398614300937580644512543626251706339377975677351028162790353369537931199119393203448455315520868175022760763710978718139374594695744625207619031976919826287599256316687794506851431744695545804700731458387882911389993580065384820966573241132082016178192189320693297524490399717266577506235159224540177437370493547184908397313030222913732322806838209414591814684206657666468064705091955992358822191306653397100916685298517523727138853090002790560266181320924314931820427473550493296625283694832817533171756192762212894941043922045289203807199256388186919207988238212243312770590426834413826376795577983205576727627367195440826955482267731453056169316349917112026295573031893595449024214590735683805854276335420559076347653944121633104470539373829506779284752995008040352308200424673493913968705035191803881273143329721686986575425555521726836051174208153327454812008406109896622196791909893740597056692998521957125569767591469972202078334227128403848974494780785770496365082247644387186158847931532297332459871590042677233284987901219946639608710559726279440948100421913931616129602741901636663470827189612125880128134298276548815994343632472989861257544555898951755719519292823922572701271723395327943353230956098169222838710505957638104372849429441946816642681021288369088719362518755375783142800540514876848412656542347108265667534384999880241183834282907469708338233022622850846530820267358428322792382465904626550657272117057751577344675346311533899092701024972559975014213847067561704846545333130867834815207088982273572316936117711047049648732850666246998792979272732149095745961561589607098267649126975857715112880069576789358238901649251652322445348935533885578367124827293184184810618952190888054708919553953512582555579156785560046071519558043283832225167592196667272783164605348955159501557705344139943072880810252828019684504035540473926302368792319535930796775948375000234513220014664293488369303645648303475766090067788873972027831305792684774712538635829341475002598941145504489976820430419067866124529542677000817674937798856393288167432210204309623498301046473095723214533692897343849732852724707838200475025191474302665586593466690077516143183274497168097562615902408574050814531271897906489552813101106496805376431649290598670901037316603064998247108118383943022226083587091574912752232076146617496228961895693854466381228752455439093260407471522037620194927344693779721643379132477136357953628577217596449860411794681540973030320100848285087371342496939790452003395136247814011608625435692038213372490115710729177859168677995315971096117288086375286114167424410876825170611168913575691058009663437825868356940646208122553585231507140701779760875235592597105810153402172698309386621563316073993910569019109391569326236438130566607402233497683099933917267138933184470241119607860113945505563614076273723561231788926816771115287642933500802317013143443280307181364979882008024132824577206791371362037568379183291721783955592823588578208702301570968993236487831702959932353534783701376739309855910089746934478067474836696371625824581429362460468861503307024631770045427883227118841907048274076795504672753661873971917585896830130279563274584933666507713079258345619296854949720805377627251468431591911342202460464561072598953318795093184923128054328722259669978336758271093398797315208047505635835136400302348551341420922466059753141949475446433060697502881160160700629238905366907402635486592958590087529241161843478244788730379261946003291458168299693055905366752603291700473082123176509752886645944001480420780809504375932628128129372925041323587233553265657203754782119866948709232705854379198515809070459615830716836436206342732644686742247963047648030472550973454438822265083624485510135648007544244584798251896385963790774235432368117235072758329535558323965599489096242978314653290953065103386334985513529968615258810650609059932773108452709648675422590426047662128331291260475413906548741968422195842467449866412132934129017178126215326793787293995997484395367511817186562810147693981594531848560376286003690918241143112016864093218107159737138395086584664598688982628598486420717832925654056299579770460960306441011798948186532684084509542325420343500498310480143749911792652970486534848557278665006968530885098746884847084516396709181653199943920037316403049375715953452416612172078196487346521287365112456150530357281256089062888761965736570432513100616321577880454291836048891895854013110669518935985623403952517858397804083925823232932176331539056255649560863904979886556180045177429310845769912200877102662023945769103887813842503902329278267164580744697711941911314668169997969468693871197873684497197647219396449635026919810161116548906780212427792537531521943038273390472697252979335538923035210917280364149223081784301374076390364059786939268782405710833281567239231040308539934410955836495803046462419187193073686527123003793417712587362506646301194091691284034134288728747869588856206859286506322477020191776344283951020339601769297487904146964335862327675744455631100204273712743876390304148058637019478899120124413209452302468313157568371816853145518555636282049560993249508798875738830835372346656779428291747621959212201159644598714953465866730869639174211880282686590495175002622297569678048486962849782984320928703959103721954111878335256682126680455576325398409125307031574243581805039983780497935888149752746822567617754410075632679464154154574591584143231536858962395646597332433688998798194110774056808667305912892252388061773980213839312627606389304687333973969109771475221591477249185575567960442411929045515901084319571985638993858145092376102920113169559821593840644070087031572701326938749769412179699561121535574034027185374084128951175022739294129563324658547494701307641793072416807030590156420984835793008263423193147229805929481640604815811770288056933188560893447945920488487650097487267169678717453059631904875026188773310571798420355587996867446558755552365960631545586018255955245110951664952078045076283878435982279584874050238190151418945124057462857764306878135254067694915262457275764851526061339971803184551445617998600564439563856376279399939641548173733098072378913436198830430534972210014051426156498329898855831256921207183770751520940706971152499156108627032311534058193938517775549340267424023177089975962359782652748601241068951739722807531820312572615638042578528083167417628935265308657112434433965576858740067845925259583633471391945501500060834781504373027947172199881221131179386994251532409994221494300208998855864726151353289791351790187252258782470456452559112377518399825389935001928171012594295849954688495346705770318340612325736806784544789736460445455773655245151997537741174477808731727936746343625330613287130959858072795230192660611197626055497862210076395545537374144389714576513434785728135666945515946788387450014645388045439793781298183599568059630125192006018263286892549915525453866125366866877136634978512141017426098252973039123229022898951595731617577989040225704874087376493057611421455724395771142136594577881666060621295930568797958824273132079983889173937450743918881734825330432037985550034315889387435419564812609375435588274882350888088500347679582247382677692957704220102682059596051995099901654979987834867522087696161130890923565016864699024823276310175755269772964480006544771881043129274182194036791780141743721144745776301529937170920960064637646982551358415965636272606243464408640389019367537857609131716111468249888441776096291925866242093884166587784334872512588828720313736404586803428516822321918461769828702955125253557227317395244082989568321238938971034925607931833805681039861765387324460029415713035705720725080764223320317781619916111445253047925874597494470835818489191691257159225667246248758313528967192777954682511109776833069534345241677507444193444605270942613349300511465663978861315625492493190781462058899420230631758200574458554352817636015686313794760214587702558080081793698868405350198008366206873431526377412358491851959424375194848802507502722021765874219346762604592310950408001635083316980075734584985961875171293541703686284087197323726594360322403233307101830294048575513512300404548623750710749834493527926179611423397800415571994143522433681108153156015912658978564691951676198104125162902642536148324604386037637994308628012790461455337209607381819054142368994854300141496222392191751977432809329338242829295202477623224735122840659041945262843092645919175082974462130705264197404919393692385991510613514921916246406116119087533463192835957708496370315175534300181980932589043736827693246701396435075836590749884015943142931473323003157328342100917302202335836502763520773129993770401667496432845895562954550635192092759105826941309320307554161909465948564058264803352780778371551828876602953175390611563300834192547696647146076446504040367080990313432339623639078385464975252533311219422077764303435854483889501262169359901496019991840197003827894263249221089878585749494795033755812705018413066102369564122003701588223806822418189797030794758889291524839454802542296993577671970765605972861288658689737184994506210930975084885407797445914345472243746317111885572601692012020097476496892659925199653246170483192892743227762981535867075721800143623441924634248092500922518256907866287085563168435388827269189012138505953510819732154965688850145778886243206121329753413187617360864361824082836884055135117226745276172139545647735504305217863086213250475260860859341814567937810484058605821861889631167421951411033388213135355745724790883648429713978844492889920164908390460274497594684651143395239991569948719895706073466570054809132614771056406197006944001178465569950355385580781659332117700898930025971500155250097964598306818735227614823101375313454117940576670380101282720821470082785042519572697691108452988353510328537530151392832526471814898048180884532435413698156066927462985748020215047523851346643623947644077404345032906939929539626729014079278676321871491878552780437074636467789820387803645320375144182456025572250120974239178147209891945320631234470918689784716028603102807375324182851240164084009781491119290919254914258915702139560037291219174721792358520921253545204359218277021916277172268309169536565284267009798766961148337918175788962141475897677789975356361186707476646053895045529440573425481176468042288609148625269926032736525337931172995166660471840613097914179682461981928876273654022197488085853919065969374384918627729757185259179143933973122140494394156457634922899143451837398911255437227173910380708796833004930896375008529751307217228942324637306764818885389418987267593254530001265504878989699975238567540235062773010296822481055183433949901820647808817208744874834979918758583041133308133477036846917858622162221610293442880407009851411862762043638174402599739802476899772762827698888313884039881171231942050724172924963519973092193087937566239405981046549359680627102568596025665093122270938292765066815346666771600631068879093668463010572365188346107971173753640217790825073720082134367229174228739476152470742432054038463342681264309307530427984194608535018330750882561264778259230267837741440769770448468255856434785273437590625146105622258672163039280985493891597903683205786900687075282347739455155970621800205864667345522892367172319980594019099670869298153084961056422671054841972547698952403929219005207113943272334030117431600426714640606337012639624275972326790916961735839648664921129017391943778239822411356367145095126017924588759226520696209220681652504687155015078194536263864923651879136157152918960859968262703159072136500621181339305120880543671573736038018563567684573749504979554686492304517379796330376470760469432922660082941678047045885330924214489812662352263889130177724034465792905284095874704018207186659237271462424328488713514935043348039342678977057532953224734456498463391346712928064787372873701227473803993454022723996470068867303935435821560401085104782245205241254199727830129985680062029449532754757325185174920138985887684130226500256034084668209498324920707139097071848613795337872308788891133739223412598293265474589374967259197935464896444317395477919162411712760558395543044541847153619173230225799812142126585126789838665099248256967749856551695772228530954360646072056564868398097427741225911760948848950822763394919780294653905930479955543405059497619460740175034602637129053351215161359925980447231511436037150102636088780403503336336384886166985585321764351849563256444764014724719970074221934476361512452922976065716193277481387187051159976125041017161751236478421647188363237310861432015236221134984910934050640551820001464915259489434502595063888939912527757105601528687151031899773339879083610560617583491219971247879331807737437031111439089006714868847751957291753439531010797919231649834799971851777363668282517463591475735975332464034806976613743490888153527712039453852806922643844864942665182893823714195676269986750883399591294691864248125622612694179427813619510782198465092559073181268702536906883823616862734363969690235603102419621446845883225195133246937401588582029176174821985626873457157702256919902829696515958751732254672217128886845437418354327487075238711704947351417978052986010557876252979139619793964934847751107968321441099177160915218678391272028589829407266194988891783622702333995426899507120693189717630546136575762482210382198263376298954581263175071440809801136701338408168406027747965215671528199323308518532363826108706215711675968484415942296252134456950573413816273810323838939958934533933579316894720666871480324637559818904606761753752018601296979795762675950229276848012332490292108405375926338788779825399407219863973046856991888815664165351442577238783651164738416273790528190373741179589773376642165461253046416500467346423847172258975558489489245716976836997350395699298169066770242936870398557880475971240056426870220149578382521678950406709225464466811779516868658365701583247141011172049985775600535036427027844002069839723168744124820374050966458956554152067353231509904914823290011212737803569747114306996386171730694197274501180027244562606985566368518458413231413630134701720732803217356732096152111238829829136490978501303438532044132961101375780112320233925943674778373703095762692343127306347499913944450172242732618378671007756923913811609316807796566664747798427722157357744619814740749592195039371360765507784522878667369201550924017069091124515439070885688104094969438483433511532523879967136267744883037595135062330585909664874849709478238880475017237111676785477014587205594679601963110236884911334300962402240769366909351056541721952196753626664359181501523060695521922266627772861868159616456449035658033177091063761370762865175271893909764296805349863206506887346558737776589872301716249852091120607237312676977240085848687775301038741322400518771765058142195089436820571539614969054137745208471979802089123855279789954618445044968309117997354131397981624323949989003394266855305221974301259451344225460750950627084721607699169080367946502956965695086444670223207136824300685932934454913302858082212508964835653546155004766381056401650364825521788335921433795315933255815463818937667164191358133660579070833921040406774523294470549790028520351796361147316157887057067254923274059724932060610242157604088821091934332274771418671995559613434527935378224762184543569263222799340976413001086257082360757389323831171306759740780818296696400823082231621872064554076722159911315412222044411272238727815371684402164486700752212205270939950812631181407214128745189767795301577963241707977633253621801564618684695678884840767942014952295224724467237204335618995431019653276681743079961195895613460515773557445221341541009437009142428932466518162418290553155744869047582028830869762278220946941058467652573405425738635258463240501080212023602195925919725837846701851633003838031794539811572720182513803747432621645480672830100137037676971051384786905254364367468732056521114947736168991089243279218321474771436084432420263156612437511499853279260956656877488057643837529968493756010676234837232064800336245121742540159457838491415437003989741792414372741276367295080566075481305110949877644601401669346342121466672982484231654981215638859392040843049504573657056458060652009911675008009631242562602559595876673379661332897395283689648309609973904255617884930643130354919115121445702997378248751231733489531476230321534943184797180409650573033436983842307037326486157181814604562272164224541741151562486824759012407598914877911791866230026790699516366809088847492884367518268888382808556814186784909585542863698663413842460047057263560490626673759337083703749700441894171112346833609660191327586613735677375671195189562420782949861748186706489476470868707255257997458343350096666141204530543323543289348386958379829145704864538143771245993041281336625630625469000090520051415384222658081852761415898524227943361074849957146705517291049668500917118526941912800047062721501928233021253121333537800764156084719612766224256029980109844209053703822574520110118052025430584406191206596221478476170504080107025696258701632516461795506293010284546554903180170862521192427410865413694239892286705223081542565764615055799649563628165140278620947578126066808096246153362856201123286390440224120224093188956620370633994682013285820942705149229300623273166649247979320728065380326138919207872017091947670467382159516522516617385000215623314681810320480980116840078478792564222917061581745870277098728838437535611120258047370736023950834864321564736165021695840233347958228007795774636594784582648522707718165046903928606435504445388666863416071787621420449254666665163304216246568777434494233305197328426706242199689072715828999306154130122655196788293555782682736126260863137784167147162579811240780240555315184247689958330792336513409828460073386839040136838628058417207529505863381527193369945816596591084987977418876721201309350490386162375090506233822616705216860544940178899613892859026167056274602575455725661594729795102977006316428357942063602980033825270400027200409668707793409194052000417915120218073162804501870601976774699083885648601279140307345810321288239992276986073269060009574245853080564048285060219772630943496383447128335625895575132825661505457599364098990549000456021027808164865535161584792422929260268944728148873512530570601736764716257743576711241564563139963760328482145932554583912527831159604445969659888185086284718676343494460026207624787742419470915737958035926339824568841699910316063727766531219610940381129986067869181797878907175951462534716025519222710649497494773923366843464612160327735056417473053776081604009845442338714535095851999892059536930049232595218781538416942756413685513878556630642809335532275961989658814095258457095371070311852288635617624215668942767832289616396076357147313512528331514673305432198075764926132706623152064009953128460667583044321457239883647443094931995981444012592733698066682498316573441195590631134500528598153780564021730776565940758099525866854040994612224824129212384722709453006978059810340846723927206185234686367217257364353310362800847530524475679683293936677501167807908800093837909759219125502128846067319399942160429700493668312527904770804761141724423515491771321727862090696934876355050610154224242132185635277841465301063982804552634966564998918617465890765515639361017681325719250107900041783392739306719481206715972832781424221378189650763794696422603477329957213303905540876180225117282119322494813556923309042779711000845783358032633508591111296041699283940730604821347025273516788051768230131105617585759026060302854571261043628814711099755497380818916766608104073462827680367625542728406376751937379049155661805346558861648796541656916742806786613990863580155464910782220278545794251477714575170167054048952432033050233159543108007012643184547675363683952558420794531626115908479923789667922865402898851125729850230750920617402485929490295774023441146826008069209187984397897790720078229310375883049849221298048209784968144273026142529493061963440947644659004934143164747579528537036730352986324413111688773717911771265341208655860135021884528400556221934279675514344512236962694403859940404306770981477069946980933999017244849526094820471036878547882268569151586194994020960288660637446960858854213211999418356502626657606561159052554888652280736900510115535811635026674075982060810373963282616031851655656866217884410526772213777955724073968659887554496031820490106791971778702293307274315594170455546890615759479300585099587609837337361596515180531879506512280185153613640800720118129457195147165857873182126298998992307499912462612604020048787036293872218154792350139987483526190408333524581254243046181053669500953879265303927994936382215480547414790683080701117810298590825725464471073378990292090737521812892896627221943445715433936303329501290063317835840182398899417534003065753774655299570400220205435113265344534458567142222836164852772173306957198164803096592305673525753004083363212991382372490699852585255719425493985538113079302302370393607458604047582160256047578481712145948196075195552745287838645872601963834620489092904264730992107333663568063130896660273905405953572089386562870975326257507840638750339697855918139665370503267238660040313059312233133212780344194201268393588261377942926278496360611168563071385010442146282063957347484129489113494948441719969467169313617192029288520136262795144050977255455310981384915367092104759679062018414539078473482088479367003118772027213184498457559072714039586198341838655057953700326517759219203684639206220858132572319330637974876366513955229032327976584313116696224891928205613476867438214896091747451895274929148508414689850799291623475013299121780732320171571960987198421249236212898007687450852925179532731236945477688874095018510385885549347941582052120738891209591578951023401172358768566699736823028328069900771869771871939699224351868128012520234818423062218329425331795481157734880814165797571860936904605394074839734596647364947154786371193143617853843319650704650572728019540508476366087441001360950438669152801714465823582768195675391029313710172876099561485862450287755954828808096506842781582279257876144684169701306422982184608455807003062810961403064444196343224191640756845198028904964130032857433076186830184016030296591999813332888906386695488778728190585456514748133669201348751420883706858845033125753224966515811031995810108924862416605585483748604781633722247863239334960837516734585349110248783605744800922996359272315736647022460602861081558852169824881286605084925863193161590268196076739282211679693123009621442045913485378190608622043587553850465885775080652252700859421670198213586672224631493789891751380580088241450864895224135412099719910790829349379030406631247544914818115627148871924565448185606723958920231000201074315785008281147508441860964341669436991593445100358935670597491179858969091359165252324422571737480383415470971310928521375420765104075695246663715477775008048196874959506016844816051951067464416293219424649875224719130020234339598754846938073899753427850499333459296151881230935842406261995697127422788894242305951297519824783143011820288716423468189400233881998168378737588644372151784384449913776253498820770014561077462902878831032541741078304307403978332448960926393857039628006591413080628365439951017109450086666209152692220267609315931266599079453726792836298224198053252192405273766365611789808681571941431842601535444009739882284242733489007471487679908806132558234086691291098340104211291376998016505192622072146533547005826588903399951530071433201092447977265520848306535941728429823939830065369851971345177912268966825278558866960602962380819079490919761835989600884648293486498588369371161523305123935365304294258298056975670597710605795300909653466149663037433480718081714712969186643175422619227901273025407877122916496895762673212265257451448204289958578381985717672129312814433408508217685994034134419228059377950293623460938571312102075453485603213780585435067449279692145618481549773894254215723798819499898957110606895446776595163317253157089869567109897046228088965307327375393386497760620803239229012509416724004966839972440360006606240971315393784424446557984441700850903704347357901016825776850633379604499072831062634294636152331299588561699116537931876188976082200352664608077794274040485589320628219331256821244531748933133108757706367970186551145853381254448647505827825605951040128040245741547385659157615232466519171442224081327312159840483030180811812004062161582409039301688960814363533744240011955249793621364792605641765510493341787575954046017281321480059636616640487386190183537081953078148701954448905689262015910898056006489158889336828889435675467777253058602541806139126953933730721655744544450405459471413542355841893758085651831698898416277988225630732120071143765981973083018630502949096619701131132568969387075027250984928018486323835123269198642243409548540948286646679431099244777697840311358275755659859014879277194478655268499569653701510814135920621448904694325861800117855408146721989621940367099364533531179749188882441351893660890998234557963493003197774379678511400022782530240341799407330839491078738432361658314442147206230323212904974328158793741169629268883899638124085876564985924377587556960824867952298978130202331696546076169891630483566185354648363307749661966773343457351666643138354051252634572943471846837832336450437344817449770580480789862641819148400601492695483716282790392808008627736075040305451471920028371374373629058308373201333206172570645460780509217523932922633795222540436280831637621569837698800563052271790071193284921861307065394447596831920433227178141648506959149542871028892352519577520891190460933164462229994453144612703250115852106948445794453115759122848822447470073528184094521487897009419174770718520440455460745900665565243453562924900661889763626219462890378965336317282286645678029709831253759957565027868145694671502307460459246474659265911003987260360067241309556175119557217169435098795841494625392453745167799282462944324406651315153521948444271858083341756727943234329937402735767848103076908037367702899477843872798363499562670737797213294441504137745856855527529209940595885749329126510727719773972615122726221021957369960680032834115435061567941668896223830283751507668930407667418181303627068404210130226081786244840633922492284905497109817200897132713072878540909886576722995413023339103574266217799173521165506976088248040274240480295190782042246516916985657958290814189376619117076929614682857459586044725839002182612006125745829925163675859751650675358121930366125251135006888255679301685928631841950021068660949982932772735395765482288477631423615966298892349221069982685846025056988032182694465224380128527815292932472344552992773228198750750802924410313750797608758040042036412678251300833563479075121007441335780553496619397683875910478421363725648008895562402846408086429915301285982091255480794749413274622774176962437958845500858536512730987102120039321532096911013151898413800605944962058203643297520578262008414484658328010611348723939069982119118254973081669512863672437993208592325002192202746376002187037318172452355679603514197407370070769163948164519922322862410996578811842818751056440223659447566855267085956069276613031466827641383776334033930320319353235706832725849253364256795837619029252800106440386436980929586728569637592546118829163421149375322891818640224301960089243024272402768562326340992641691628438968465106693666886714688790728726291544901448473786642587050324256017164441518077140543938813604683478466606193167319219490124649878607036817512196768710603109791004888245317553620438305686894823621984857030421966933995815095008647106630005317184726701260200643749061376841424119647993331046488559123879855083143618635988460715066325249540296243480284962389174546769422232398874723761489130100650906169297325459174741441376125736986910414690225160790936288030260972985539105792907930250773812098921879527361382775645918694788567126485436341109378179483441086316587770676440115223541851638065068491285171107710862990561099754037963484565511206232470439943083016086325581425489558795290402938873351388971272032566849909540342531671006324324060050315881987662602491638149533915234404274309929059371406728661256478186885917908075116312937397014028041563491988005067587849255961166083654053287036755497373729266088545422783531796294306863486779792905284415167919916837238567050994279256507520782747625596985471827390365079521795374925081797739691289957583918020400272813866951058568198292586345264478340180255350095820237563827634749956882168360114719452006773961298212348120096919952962534675981824071642871988557515434772831971295362420967800999371734268201015144102601062448392642205249076852082608709896788157943458501351929124646526398293255560390344415138301612528072089804821678162799351584083057366589859812909410941100912827862577103785567930983916536410099675648450444760419366762624520470450378089236764872091380179043496006181997322522731180033007663236047105662229140268781787945263205735625833170188503576995129361484433614328434054833878585415049149326256420076713437481038193274449885765012921781235822314516449509927141575142769853661445046530268963020881703194646106326024178703381605596156541768352195395055533157666979083173452797922474168908443611386267782431512251979529520549791987204463919662809762833215358298244344179012020133919684110573536628089365453555253171557708489893483837967817399482644044865512239329237370615936304065514879797490255930439001419319126696591742168896768213816739583662062343999249420373523600584336039895954737847974100549875905090778230345178906627768327825637004143279708573651559237236594876092575377992617462914941551383947270798153458581850990512584002626226166560465492345203081449869658500652537512063879861290509093230028069699301475184859593540418151695653395972084431303655451009955895656264322712736044874753789942194735861555523631654624352536500445668867850597487061252945445378533509695189180177204878108744011507608371906983903235873586373993946832647668924936095292818221097873642507663227721872565524701885366620418361097259856523109620293869617591066145753136896187219746787088844753501757988004659072964490333478255348143827387541487138945482149043561591298391558193711047274214999889909117479751806535573588907761437195617537203099120496710217120501305563592063501471054526619096181602472599077320639731941274751217226326707542531871872059573246528976719076968464986359212371782786929870692536093158028488316990035165353156814780878173512297359464077534649933276109488642200659428680385469451186131183785415466173464628027382687775700130237038675954304896487418880766992215788818218147978698772875429950957828729260410240173925601375367129372488692085329367002046026674637450926875576017646544858167966718819637777085799206624591268509328590341867675794565775295460259708389814728221475342314386514057193139056884408398548702027074286585070487837601124138630543645109341224273557131207574386481848624022641725541684697357238862821855468822300019622287415050608693875999816877896138738482731594860698517377070479989024709082728540053557303702037332799103186196272510176050386244223239297736439476634000353422820571444343827361750874988030003500164573659080889115088055243778033805540670130157940171858712032078687906533813460198401630489316013666006008339243334458093323273699890980855903557250791812091261686716946237203683513736908575901583074001608597569400605141844727247372997472351937040423725348677553151915647039556706525536850334326125123507259955033504754183888391542154638578086080299569109539502006938245339602949786298853361747263574558009318148289014083377050126973215482391878952839959562583599350298708512574263480164990542609379844287941027923727921413614666162026770483124748007004816753792906234543529247644751974307832666754833517649137138484242737031433652198135246675664407095888910224873553371260912095411072416846344286274943529011133835123816065447712435884680189972358001885405777022926026202321838111384463827906270520506976175238696585411298274381699185081835895018654823694359743934367212739334524280693474804844373590411186241333251405276975061008172701332446206849536478971817631816289551060256350984223526259269750665913055309908460548893467413742348742631128269198881188763255301967579903234611186122680475484962827697840236608954815494329930871791006914749116381256637090646164091966760896406945875904215709406975672949451088042173010455900792978049334076975134423402813124088417598705130662934017984890053033284897548820197910105902402913713026233905280031000920834836675543704675653484937390090388599660810634927982002729851975830827017043746067158341519314699492235719124881619835470150444794155666008397414983047826215520974540262599178612625528742202864247662215770925765833272819417236527401080967221816409577893224579212870314733177482664469575009344757206616118707913208893193854270626145289223042607562079081758994738193853760668667180532403457327097846040193275958245259417442100112054428763678155580715431334614489355714946999406018188151845390555602185240285566748410370273743127792807053394421451729994457827403308715352247062393744788259759491852077044264179156389452350921362336382257905279775177232525223987046663058325798253843553233954556548855951220290015449449440093056744779667008953219052185500002995450114709513948906313114212574542427072047124337456310617042673362076938824985708703109911431368171756215944128719563602437124584699750137361348375620622212098091147398663793167976766846889797622486518620306022561427473808458701915013943481289049622436197334899371559224158975264628145675754566222370748792834720237645053039887272270511235994405587950790839203937205963736984370424751138797645803029837513781912170896835717333249551385416344537394246211432204222808400322679398878802525038997894142443738713026364729925050774934968121646203061442419632185182023656890740693791466924363405779560472942542336598942815675377488509482716719343348445052536440111509054403994227057869970998198310788549847896984669778968671275313751193247928969769677433132016043996760310159911945008804645395911110128103843980430328143229316544189013593968004480133667810749635198622509084943132442261785723483823865133887425499828015353596469535861108182406797183962798483630496132942937894890273060281649206824396494512195311809329520271970875146185715190491860783100423883467388379314787612551831095388409085635127537740367492102797257341949580774955337825699045775030537360643988196468415877006287001073699943299146066364550872010218236237051588715959806655415333662219171561846674337102531412456502161829334637536973428846836234358366869889970956791412853328661826089337241513300329186863551236969692612252288653993111365289657438218038119873504721352681776116369042793475415139473911786542542023426006326852459645811136776722989574053311888468325741402895528318861863061041569266845054602218043566012313244203539336762148128946959900647036528651705931333644429820197495534469669361083532314008975045036873277336330300414523154453587575118553741274524273206933599088046423388922041469344769290983648010056370288743584518810468504788772082463713872816640039247975205111350808710039742082065193742873684654889085433090615585194101607610081299566580165616658928311926015571587146788205682883555594726600148113237878014957175297088139683168753086157318814606528929560591835675431913522477569720962947479110576460969897531520331781011071585996656250581866752271774555758037960316875093320324829373900541881409766835948112250750964455979230819778575817802930799885632352999466589561981025119498362743004734100526855872600771409136635511768108258113471838184084207567725391431351125924930381656354253094966227502261413011586198989229440130566922043587272938795853926449761259938630396280625112468191026696335273739010266888214005863327476976654575701180622988231477140176686321379963679614596228098950890064208953993364378003046301219497775511293909746037953849573085319557404972011505406777190729188661899235228790314223515989590045008366457529955647823756586242218719392337368465076753034529681853862457595475792585625665547485808585542786793097129711544201696074226746445365934749009673053460334246544431633941648244233479399421233771365104967949922348768111909181001849998914685674285485139481964786423904136609954994383875321972677156141561580327114676003564831343067515444862713615959622817940691463327277267670711803734035693455164678287462949118045814823783671112508028924685576168348286351528951970287578985276527473536886156000730965538116524691732558662360071544941943274007754510264241151697376749710640315739743348598762932505205554679505555031927815431533040378836592761567673054221751034153826346541330620924357639995083589799886225050282210494205497670078390709942781884461773103442978837826544663422796842138359980927827017862007342761725724273459164432306678656517713795344691567400805584625950516004779719329059508268187183676709205336799560028267372622637826028106978044349756814056187815538459431441649083882798794421135256690989499513808515652720561712860908906202833454436673027125003219971456176471579824514450014545638780027222565004201333221974051519244455903371622795682602224853541914870409095659838226268553717634811917088514686653199396749262819606656005714272975342862875658044597537394646722054199906629905526887120939259160423903216333597289819712514947874108922632517378408003258737363244425667876770126481082637133464331677262513696400218791050527235432215755582580406122001435042022017630643104067593941223231371549078004793316800507203326585327382094033442797732724182647350335593611395463973213283027719611473594952841728599435294455302251481600130546616676477209708791694013471659535033799214084622903117934371413958360449266143533630752547870775078480468738414081119160142747403988867630966607637122794579729440503547405943796784355891355935974665624986947218867566184770288153821234141534979436316782381991659764689859156224683467419288102087278611467940609150692696364534392227812717326879014732674984821574414702748288649244199274450467978825088925972973480206693807266158282614394828665339658482077986224327294608460705942124004212630363436614323577156913295523625903369847379648531124152117560896761195536372105996293264821744553795071814501741278930076373726253074827913981221319961980752016667017083257831606101416269284866685956010297479694370552867722556999910374468761810965646001019210068141980441697249150082611680727078947740489788301021418106230952720340073363078358841765125632986754605671526889504160548266364990856518959051788618849157374586510343854256145325333123665758608076819021456029069641369136286311801602241011959429310756749528659075268119760017239139064506933295247514609744920652705090067103526181184614143867780136936130238612940492741431945494368927143357409584128592335347779424084005035873197198421519120967941992732641005376046319347771996541166341638371778416467123777278455424360093985159601929014967277289140632997323624264826082908400545448560243590038360348420242594773358064930391400243370318758093636979958061999065338860952896573174015323816784297114949150216054851770643801658765379984721605125159748606306173153835870177349586440639374356721100272893664778958989645921678087655875636070344091608073109402543885305076459172122743321264532176329183976144197144216285465968038744723279515934431156498336857444080995850649493656407128874072583370081239191708149673159978022491301960959449269800136621003080123143966806417470118265660027311735750335919886673112633474569611176140546890573591441814034303244027956709443706929820089119462131339017046671373535963912703635205159695951432445388813964205595028176144930217828043783871376464695057741155849865499612176617458325731983057832507286529690904768317222297390743797040962668653751484892844458927776177990830552526136434436651519077733996741413099223347183934588299744477091772815368563306079388776095052157657537221698725764287213716874111557395231621161883850653736019755953583307308866234710386128301322412267300085817992745028801637801477438133827279396173330014200777829949072362909700000913607822827064642282206980281039637375360936069225518220582934823148197098023328353515487316119775892915468923944625396980079803763971962083426528718722129974545803451112941587575708636487319172632102716809889724240055996737241664514098125163672178146877351556863660975676092896070028799557523120706309057888366938407278338062078431846839824304884480263159535268741097542159515084569537677305752651749939070013172272934444088814995219837393655583706661439835467062927931144010308541557350550721876417778815774269810259498375835189438836261283003996738560971051818591826992507222419332894227733706550630759597355741344565127385196864506968445937460058581962162673584382391705665548167504910873634990605582521559164626244335010147664596873474730826669508816479963284887501584662829724086397987692331641048618459393213118389011755190204776526320359945047182628857768372577390811952695356582466901410762423641474671906994503979560579606447332282171956695318232918163550383289302909361061947820841727120475571014172833973249332707517449236709444435973201928626029434702650011691181120352672875702944231101818790024880733539411512529196984649233843950341908900793474420906279889388005905339635583441817433170843045419667147036343354265934397860141935563529272308858303859025680507893942974226902795743451521119958699813311712996412383918585050870313035910102714629777529858190702864222895406409336305648935039950139554359462608694895484221738407224339120987969359826763593236800767817170422052199567165015914349160247948296556355570066012546817109228282075610836456863044608000734582701232709143388326650410050595571836410390291561206992551960540883047407593506977785633893272961270212164589800257024351224593114437592779323209638632634288571786650670747114678312032967423913464370858312002669647776893691466924471488646497546685425371185555277641367248956973963062167523640741293555262123896830555827060173898671475594185734563688024246313905838033626616835031366375323205989439335627958445104901305023730857670777288704845430310845423275888994296556459909303902746604821270245465882067884751566626555591634550931611006225015147789894925742875415923285575884442407206200968902724700307981906371257034582694793479631198295051020105283331157771144796444832919636887036043992601552359541677292028703713211370082638314146658113796636818440610477497586177237828418014582774907362786532954195418137367122811786259877601698936588301626350239906580467141135723005257153336382619307280162612541155207880888622752240104474013069074712926208875257807079293535197966228628287276737532915848791734741830958327423683225708256607128193112570171355042780566132627447499255611651913282402085279042419186398222564275690899441841793287301933835356848791938182529718794834662751315048408712070844337031578753943171697472802424673118475271137891378935977343901647111969577606773056552053993584887460725398789496469541239271869228403534783555253687613139146763940090493739280103510075176142835580587012894261688389462369000917401221430998836861874571648761301878349755901384910231092793033725964057001694978050343727925897834399708558696927161111660039710326436363395477813545605273292004463532712905320414757557070179847133019946597591952101111747280990253989883917364189303484283047752798809649701171735797843913913018268214740998643395849301406413999777242998147645716190351714943656240549332563668728633022390350228306185295704724684480699436167970805860466279233979754732440525641251901907480589299499390181271352994003421555416422076505049290802155209226455278500516928919543754357038942109148410797398546864300901244699381314709525479242470422519564405818202038590246700698077538244633870114788911005435836802416490750141433550427507611692781646892110727239154583703091990238943415315588218610762396270296084192059642855181641671637732552463425268115147796484913510990215755776326744510426717383185296401420020519374362696126213692216126253093428346602653944418933574546495841048809381127121436424833131927345523077929458042304401236423609981858426003769397431519041221206092526980306632931827048471354163129989841244617198443929839821115856256640255515600768450072528524667471932301834605030359676751383295530359549438326627865830436718432567944121104221624736768758878322366349448972443024147166126207784513285617757673225312312388169705702329129962062749506662784982389001128482412722555778419075715663534388353872959348275522073886492386393186998957440268028682165715518405725241598042468249147647022972128486931756712934626808172660976466638917084237643214055397877742797083318767994707010346053989755470341616117621494142353145822430210971596713684370908466455966145256448041267147019745767459373085362301439993517711567266320436271147135335215411102198881075721087906151225424096612330687791448753154198322712843151988221908653654125559645679803965054152939973843565114085978264524722325572532098884777150053161669593649213030293147159604367894873178413475859153477154108653254814107105486402443258572382682737379555331508899248302944191234288388951902312211790593464874827299053873968788027598867748412468773760130595606783231011769705236508713180739100770636592420596022147059958332922073775944969389533434218379425836429831271969181158990713677369752848092986160151126540307082540343885691851855626373748375291331494798183908712635943433483552366780427608037224441050702130340359591751477651718501177400555179804261223405501269946758927469667681545430911116344438690784175828669363996244245774791797756538167952007200272933090507979608626103864961978313723836959073819609857672316640683863576845354923311436764907338230437056556126480204215241631835680840849778864507092253416270445213348873845100143812194055499091798200565324188690965588551163893660893542831780252290065923776589805222101522022749444034161495215573437171296347678162659287201353720209683015033288943943066289553034572244295947527644978572608662702667275696130708702313233195374613217127030870494401067024005285874774477169910382163412691651738228877707793659669554813152680145270018742545233968532371131157468903697441392628842869818653891147857681747725747548781095290264302558178998678174049769763274465257241460435394294759033058874152976375702597575317128085356758587902056766090196216221339855327981351481386420548114390777764020811049856059347370286157264987887251919310239996194878736227861159695117390963224638673809436919826366925930643229640696012737036820162890129220997889774630800707092318287872384421982714778388544219466779269086403690047683144015493082294937669409893348375188201069318805142219980551269446635190576226955339948844549541691135805837265852409848554940673918500843687777520600041543751317027731008940878933053780015742866526233379972484738992064395688587569551859365106816270006188846920290261677034535363728641211566321988956321486141931712090301983038773777791261342324283633705708763495606386820824228253188227672433667590660308251914970258216146288764442324402251954886440805258622002786524207568620413407237438678402462163995389397624755267512489740536200807562215587652523423244280180800777390304550856300902333605232504047467456938853857509688559622698714496929649795843891278752970331095107883799772304379031646447345128938639502368553327096823529212526945446315986569472003762540267608777374604894713880899745910706774761051868403667964852133805342198962029259897955765766038171796483343307518414242841749636702257619551031414413107070556187586378900266923083419911632570466393750789965285403785003070083395135845148113280881640826909072219484956816026218776321747000011742398455514506986735518895619862036056284787911702285055956611299135826055996357815751576987860955220191036330936887114916260090822633457532769800492349354605297372682705603963329672254569613812304400848155673973312161456608244479774127312571949989157670985590867106523895231605831336623741559428290503213863110045982741886922818181834444720814560544694403360072935212848370785916675717029598618815289465547875655454598288396341939661891905176993177907811161469607043174912057986865960107440941398208058337474851275393087431528715588581833129579641244957614749646160293553267927864429605655475010464047024602023322971244473649371836253947296531472509531107212407325951167620982095452994390623524750632298778799764571977224407912127970086364479971873761767525642507300908027829845610452744110431674593742493308162385362195414992392374347422721025904395914755767700724725435134800339292221689562460648337847682777634108954327375183896029709343186842087958019208987687862621125222860181063612207872980138082271257968553783522465061769305985829877801461852419111191329066897483676349459192162687958579963466652987627957102874104641208811292498428373250708701320267120444114806261276489178134297659358913758447612913892231608491665136652817344344389720424464280502907876431802142589673927197374476039282551336004534300515507403138489693918470962517879259589857170866302955101904411565239665313296182598504915102405262354135417148326762880955712515735932590130965233048360141553921483344825418845630551952233421622209772586288187221256545125443015418188819850198154150080817791807589574767309343400018037698456520637918696129239122704446936587536844961591769064911781728930625586748519512042449958708643758667362847418641602370196640246205116676545201709821478342294343934679601909086459064293518702196562830194282546908780489376712633975754365060412371547044702758346747346129145035274001868748002171682852722061287276170442924230444360173639558348707623513353783057458057202612900327337509811826438763869169302774979453440602929438328610928299394551887262450455361658412706287375390325077101673189217567248442568744955521199403268142482975354127682030566051549347902980173998215637118787026561166698733155666880733130361824208455470866869285026898303408025291238829642577593580413784572364366452918008207238820780182014765002627009863650212133370810963914305247619171308308710706189340004936475355492104549690073764943827667108825690543477554397121031772891789434521366464086315657850681861612843994385514890635005688039660955182953847083229720357634072049799088794489152456166709622357702513335836974952161763665828558004120119309721254679453395276745490533336742749713762828291242270500193506943426561744864253456545725396136676792402022055852524148332622814216761619858651896113320866531360198541782901245381858690662546488436956651865909181830517694247006620230777262958810715993149055763330531630337142791127065962613413876426922559325109459298281248028995079113204722112569904826326200487280513129360584294551167053402670001905982480131096740962799305396597719872179239128260069649113914429153040029371654584942422175740148521496377420138976097687105479748695689992708349399539662662937190076397004707914397899103633325805464390360488939464038365723417408395850140379585021140040605804608980113871884322011347578977857676100909740654087653928838602788144919518089651125500928962413333098924573894484675901808017173581685367910476815880840777171253102699296021762806935163180295294243272871270986969113074323775830310785850477753382255421509485178654600993426477194984908815309290084067869133282744648262746123601315809774619325841759722460021638272314281500723203770595268125301289482724730330857491369360356384796378681976670527794368388451166559185735785726112789531614833368245650632808366024393963752951656075598409123185526345703801340733099504446595312950020587918745424047809354320782947349938859665140091592463131513073544304093176231743325662170429984390950489354666954913828440698496519603875901444106539246041779880653464560775392787426183679267981039685207975705522417601430147563738807068970804132239716994632737779883692075277191350360090872432890061296869359564558472256542216014689199125090669304147988637860139465915184830527855758258098238084272953760694051412092969479086432389356829142101388244118217938459558055528575358225649425488356869282510935571965287739962553678391374809720396578724197205745570979046013345409647059660398424212948536979711761528493199531312457418020740031038139701426809359371563532906050342449379128365247469631029969097562561931883115692352778707912175454134534100712575552753597639270900621547862898157497135115567443022636266130981525362675894423314987634576426069767896598459796578445379041043353821922087043337261265214116635995404907082121816360877457657724923869376019772797950547920458962358290879347252155431669966918713453484458544291341721304661118644090770743564299344174442204971116911112579022738552545219247466686467581850381839031373000243630908692823935695547799654801120112409065477696804348886093977969378942274750755289189617207889573214126280815170797910577394814483166212313187785876518724222639046801229656582421422682084915389240170400207682546666440226723907363548741599155036571935838694883090843598280486647645947176434910816395589030228927658025360494540381391919706299943051540155930364767780404237968814834493329066693828796990961843958975751104772364914728661201382159463471984040850167802293703175325996583995232641809854712699319913199545926768436898339340734546114098495255714680877992380462227976987406493982444618863714847996059003047734531399833406633071576375288039974563055721421746431184357737581723290338338310642757186180808571788699022487184451090875690799310072727685245135768953709289766183564266180627884145949801112698568227808890441698203670722169852331473166285057042142282048180125564064057436724205802581668741677242813106615669601372206685154679206186785332570204653641633961818544889550835662352927989417293201386703317448074479514420821467158401363995378726626050859838197744131158100904351948199215575219560479755728932070763686857284487934189762039832737106937601302566609746433769422754561953546297768889762737611442447670381273021558524612681372015129350452424033810889317525843172600941038098098759796814231825814114924285508345768024103830986252263954602366795387937029840396792033785952189503575992872863995123080416175825811539797404084617519001238183844228969567668782252704088387758654444004385446894641615454903439291001342162055598721261784393553743859493765538026695708374035669241835051895409113870379352848793262071973401059706169889114192785234409253032514671586044079905955709199255792261867103809862721037055563494465491554012221978647119224032300619113265214376860055238478929093643135391664163633754426964581728544994682000946940770391145759717055273245537557548520034295461866669665313953916782488377673128137415969734589919252343362899772035529482032050244989607096272477304464901203820314156634272299542575693862295031050474664648238045424778979350410474071204221283075732949508681800685743706397401226395141737475029741794182966385286187652246500648438974621068783438688759973689004765535444187352647562866375447055527671676508858353604580704822921992540429114722745986609945511854981350738345407933039299096351487099631188269510720116501760868620289184286717009775720118388199462716629222148283177487900382767802923527250289811902984766994307810343737453449279374347074320770992380771110443825269852663979742427827283572235132458080337650814781974905115240439690349753191917674401834382928419743615571900914540745608956245411071127621913447149224693485208222370225639429960722983359941531662501193686585037783525114811490750471755390718484189146395742408116354648132751965007741483612012044057621809687446383687745961027798690150441520251615209656808713698555052690891425372828490605000080009150876075107172205313865855445615942301189362992305977226169563385078882918145348376540587912459272191784411532797042419173948118577239852739695798641981125306002366520823576185210435474241330983776127180066260163651220230632310144873037343295012775072947377816457059318358674738518827908652686583952685028617931383216673747721459698420856385801317704298002854639405493548503440790413512839103584286774950068796699392914960226327081462876215072168153732981968146488010938861552573545578908640424425057092030500292746035962521417383641426597444568824982080365134157390144685502568405780887779493446592587004017198119909696826301552406370269704505402142065685052847546736861827110505593780457187844762793036497557097797743847195287798455664382645037170453296923906508995075950612344566923153209607445184650276876221896209033590438730254394606582408174482186838846184570887207201673395812659871523607293977834454165364436016235365517159826315755106405344697168133872054905767413166805102373697421408087435578669379620599237954814198787247164668199325901791056860518650364537288514095695103105960998178720280232444677167085804176405498824168313967526506620022925110453009005278021003333537085813558713843977212889946716748089841134483004509939059712848516149437386712491403927342491928622625012194523940864080595756213477738334375220729837875893449594469015667762794152130065024144371018158296832306359377896116370632253788655430061402374120464062691042102617208377229694074021087964076178472974696953661504065699062073052194748911304436871533673349653099760878499338211331408651091964927946315762872216466867412043140542472921565420885316908910507725153514894292233318317092446430742120038414173958229480554582251065923097145657615342275394136078915746017871953248990370784522704798540243236233506828469808496463399988747022322526364150654540040001110943423942575807676817146824812161168711408090019974233456088603827334316343469122987652702834719807411846576915682047719185641165389230915910219976000110633631512957980982441033816461394903302261417758796618060002007748442898102930937831839251558519945004476169603741864032354190925058387790796973926804165770755718354126880488356800937278915408502971003188716389791066648570628412842843341188329126147295077867284906448628439667674372312481729157724151931686668984463178055024081542496344984291766504713849153125030382949063709695613412571681212810855024785254477115811151276359418346638970889190823201514772303537172260824188251746847192930060158678343735884638517259564950780781415432921891718311932867757700917398448432542973173079102067297592648223791278678260899935114182333592268831871875760100094551031631828315397264722054035775349070280215976936069232140991680944560763046210366642266561790012093610882116861136427766873669922198737758982929261311086968675774184729551212062411310442153056918476338955534381788438987091322350924210416864838360888031124423678229256480080234222313274859992911577278665261003361361006918131051677815752175258282525291361674084543386638996026699006183759099980145314461717493537918990722080918833476536961092060741524620359582268268013588233514617502831880076170226319434453520098081463480021471895216966219817260311477181368289071140621723171669523740622754034564712219056749405184770681695427778740882293642232713431043307739111232213518398489454970871481621666924412284286486060983725990687670055870603785403861813565636348749014058882501683482719505568124900600586636740700382763092481317615045454148737395722898945980479015676358413686426189250480085899844760412350383065181338502453441229515650643201513860234258626042549473325905963387873631717877913188018464678945434760944424490863838180529802591630030314271617255928893379583898174757747371977751339642314349933455611400389983714309293690514084094213792627841614255513114507558849588498774219228983358465578028387261456013044237597742281171003165013083928812504527907025069761489532627737111164762539821989852264650770661006833148105073378252379472657092232214730956777867145234078646376372087597712025895898551379839921855224403473482610327145914078044873548638640878466600928875529227852318681079199702610137022962249254329468191743365967777138873402236752296693533784952494222821919949644133013188585885607234345831498844406319919931387529835244659794649511272906648031735014655830613718572862045472685093563126180422037434007062658974987439365585703050419610804876403881195960601299750261275203073734443290666601098435053150437685336628767297641976361951403264235327594649625756931058590042907950308521012408569315370468694684489698119140475416182057298089801197447378315696605089873283743116600976434251616835132669482946378216329497147186547046440963880773491798557744220634313379951150090731020153781485934171215952060397820027120403828699793706683785280773549527550733234667028664683237845586342171090325823328328404539684987263547090776474573328189629709432199743490525790919611422185421806504212871928472425623922877982771946730477160364379555704364236340907968254612917403905557535794998488194688765685637751940024904756473946208213452899612519152729555591466007708662706726162807078930285014636761916934418085518091189846484991659146906751795385336019327486770442459261270183263787617278637508372536935605719436645975677255285290878066945188312619995489065206390950065935701529865768270050681878434199895417602532202145370060466640785828985284136095523895623869579288526726568925768219597493508965387339388911991279710087791825096213602741519860021116099294530449936154772331394740794795944389517699617972142454694824292671554024741331031655510820419153974740809958739042327535255331232635544053332381191073956289736072701887289288522051323318746335313128199311501967485370883928675178637793197942634320338138628301793960875871416734374919848763862093810887532881887775505886815199732555120143055823339884219019978394402531430346040114999943133984738520060623952249581414241980700038374466038673318112430013066741961792036745255493432691367585175254072745232149047897989084606305830981607740738753853743167731351278927506163965744359099689888109550503065937001537880944917416584165273748748110728100264201533429056074736376046863280351278169757253424809830774963857871199417102315060270590731041281607016113689309574550430834130564958807233573365715591596503196153040405370822672641098184867635551086113577204556530365327883038957325037241286555914209807988777422269143749488532337941227776076992544888626622422306791590372268737253494793747668441858115134587404976059399649916004361470423588959211286736130620727078882622065396934405772996269581482742222672779104940075875033431958396611991756142667799923907966342932233189651607679765160237995061244015199966332872577982247972526893547008149613886677656075509776597793908038904196963442135552371412468855701475567852668199923108351770397480537029427630198803930599466886092208524111831954886979314813798626213918279488514870067712353288936929924021812310815611003093393351633917311795877277218934781582595836639831612352608641365794067878227401731635297981751371928891288539176107616405887339300699291725837935320900564126957306315612685613248076967201634354668714227402818399452718096392907941009892424376780721668739712851057104552535944150394205943794503252153845069848831830303363667138671339274524200668369765740164963183462362409947794647123141580747645324478683653215552785066264201271226579069922530370811223425549420608137479227259239375045719093405644908898647574633376659370651825871506551029862181999011515530104168899096157999304086287764449821341087535574419276933843925177548088276755378737146471091800787322849931257421345010554577964628106628897886736855681311855303264529757190419662967531307584780857945933311521358220077000741512203248934280284391278558749073927023606551342337678884479486543170517911248967169434653247028224070917342818864937749736590051533603571157475446196905528103609395036759689850415453702182201246977753214732666233994134331415523930588511517137832349345819730103654525179405351050958296288416933159424864479855848313977452180161834308978475248095107089014454257748549695683213755577071596216323333684299423968730663798536819793337672471515406911878584135375172333790200421985887856113892514139677366742638388312040723518682030262184611564319345491102795196857660913199092848557371773955177797896337708833101373023178964547064688836552685159814782210981256903238248476647662326863668268757470405286996929075406756166473498140314793492485781584887912685957592465905830929785108091483570487422955046241499521139855472318562164327284292602519469227980555255037253574375072899091994414051151935202798865219820551596663721461481757059307586570817430348632038724037400805328982874077740124999098563370301806623633932941632257893618694401840452471282759648508100245749309599666834714465596110172210626911386633209633340713904528453136813565526550227782357265105540295148749646837601911709396186482749102122032486014266800172341932551153191709678602465636839467665192615567065401478870956600295855226269222753235106020564380606917492771975904335932471339811403345909713490954938147819353235298865466457593738234646072547510034527019657510650046527701593940831948552007750806757299178426319937232593231331479800408009167487536455919486205079325870611731645186928222689242252644375334002553315672262180266076914211528255584238370288894630185926541123083963885850382079326879197114848131892114017273174851661808396249052511300862776581709477711556287462930806164767664222710570792140437175152467704160939827641172790161020540523222687127613808678570555580490906628895571107847745099909009285651803159452125221699752382326631096435709588030712239418989021184605407011083296611774211857786561995713518959821119754314713794116337524877935702667211948182217177923289718408206527363752489563042803356949288756857173423203607116709618307941673956349611356934588053537658187444023703350387940592029035774053874985604435055775278988650605478349746747706474174278136038539007532691757457007499642855182440781872222657978209820103214600649773407909292727109785234152883049420910016512884269811285824648068058976568328649682128324218808756799484085415190420130191612981775416768396256889635881745503825249683180549844914643054197817638504520361412088117684294001564167238084100787329704006200953589712113613040631548480998447535165454084581372233380510749946132658663348301155341504499717376797736773748291652482917371723532050338460224872802049558514157699506342979711452744680663471302266327049833162675849011344777166125847648044001939918054244925477838256122112789170052097749579951057271774268449137576926894633217352651669672600615209935161843725212483391055439641961324427881520906217229607699690486975707460226186390843093996026021945799006847914413042758906582196239639745116707855345850497705207405963576596728731990412825381505213558762382567858602088115828324330958303482445183031052529185657848608088903371493927531854027673538820767971210109908054966635513879938167666342926684859151408898895079576902211159490583222152524835686220794393829821387965502559992129769790124588151647250727009091933892688799564023552099374716968324171311761260827734967591912287054925050332124272442722116098757370243597756698934020031061610921106204446279967313312445666964102303198447430651062838212862432268756635635326836739695055808356525136985057499933305203241701574266051345894174845406835697648168244902034877008961786193606317365333961016644962093785300326428741247726656433781299701977947385463048091906705914357853501396545657117535964091470255030308626276784521996805065975061613614532346531733791759960540074210268652067023244017273000062493727259396352827390528165168532633311954977574375554513552684222768433378882722126973818968567976169846399984336414418737940950611971365233655760131955616471103268926476441727785578939422699451141396750071853783916456195312745448144119129943664038805514077632627078589790312832479066041164927473231185026007374950850255215453880268136605744135918723859280742454159486540852902321053237448993228654509469508936503195349689709076815334731640123263485355886870450827224664284603720337239879883320847111356051327368625346825284324310154043890258126693404052566602492098810430484215582395284334869550741890976804491723295553943602704958680665572153471172596839669292693057752117849376783598249098934594539530078592080803422456052942533290392644426165482375470264491599300678861956220822530186806379487818160166473754267831842520776899498662261448238301016297459342898134277015693968497759062464584275402651327729440091266685750492092058558948044363253582312072270205596691041305501419390056228809296039787846939209478223294932556442116638294734563360582885167611726016762430521566734748259501833855943947164451499604935362647100556580364074992075746893816067564784327704870509314341234292385236439583659472466713511843501787624741328031874753947250871104561984310412869867432964334731488547922396130681517765338313469422283725011364729967043515770356043017090901810319293886219732239718530687416655961025234660670071169687370903174243249177078200396979023180433862444663261359259791608897393996663295657324450157354258886129457570623736010296377954427333726924536982333677123972000584922381952944513962026451299888372835125164029153211767398222676458435477386594752947657624751473046944354226996332630360444953284550184637836179890846396971433691150577739396161144249620448951725500682529832616782183043053243838077965799564632926581309938024196830420280778187669177216860345615632159485439134903306049199480557202811797585105100892435770014447846918129056867444801832579883255560864221803898693725398501909592499052080586808161767368776807353049887507658992433751444395365948157064966237513887808912387355692099070499174973087797086659125015508603043720685940992389670366863256586368456847429552534375627654257618938550479955519026854106829449308997874906523265575383572578917367959677073207879063620892670626063993115479983068443418199641467617103246492551714306993605563003035849093566266460608774210957081341000438607737866995765252309174735561065272793049933323569926980936114760853126936381183410292912268200004129504526920888584717368940815718515877487294278723395204351607126845788830328239426060911730067599929136100811795801457917421422548115096978432741565026695577182608557135624574478482813360941554035820609719649771937088267465376035980811128106235503110665073676204626271139195836181527696229792199331328212553932655814117011038648343892193069422937923463167637467378853070862252091359493215943520536936224810955375218742530117412391392240748343114625698409930979649111930084042391461466948330323141680831344153152091319169918062653103726469839504251349823478437992757069027697825836758176222880968134084795975337520219501290639056167099380253827083829165855111881200815261790750555302243905717093664388217225969757493204592936300622881370586556075736840043013794456660202904835449494968664471318087620387406868112951197471853388654802015694726102883544744910694007608962612688928878762394941353797692863651251392096284735240738787908284348474177224268085848909661141935003291108661785273185875768451330465410816314645229954776169344818020721115082966048907721141090108753732634784572554264307578243121825885640642435385950153838411735789472230785696785593585308129308402843550060588577834674447065233385999552891549188746041255766981979910524132278615081580206293730935741027912788682905128257531600789138772446596822966928044706082481580854174209824370708373986209095769077385963098180217541775739399228950065845981735144014523733126475364100454585459299889635393494691207235113784380680537644239132931150280816288091780877272239859583908240223762996176605464321996942397745992552855280654523849775845597377889343067759088035708770951117083629098812910626841237151626535557108889702136685069390721993333914820771752567809035068959570284243473445301666240357931665445495346209607953238737068336164285916946757896873105659121540658705627574116618450591140975860219534998764782579648577561870246947308464034887423376837828341849741997521123209729085187010849443547892362845850593834543914536534631138635361157301901899079548010669932730801289657506276457598286431172918864948346463297367656269786354254451417460636727030157300520000303291638403649929330137277534744296025016157840818341680529509750863812696761962137644419437088066142854713598561071893369541298250450323625122550967964481363581072614728845600725502550174286937437764373827689659730469834450831755414833311290026681708742897811715501659217383866682791435573313210820567009763453346154892777606329762920212629371633256057544062950512549306717332283931725789958818693268981605583986775954951122098728095483793930230461048562142222165965331687618226057083148294792678611877417449242572005244437996209720881068285317821393721815131671125453881132755483480458954437535147907903681377310276886931781927582570103968955905790781926501300180790692275811558461577055794598964334066827497194835768560292624759510057839470947070681481104686403117527061583646943988947076756138013557655976239479909574468925437072389630659281448097680103718382833957632796074095141170084221924094964655225077946489117741656385427366600155451755189026863055791524352917940448972606800546770286697082472502214210871524154636641615534981197785440526115576460627871575815053366786189917098348117751351397759419505818630062601270210330662710374651049991372686000420326124041636923710549178326841976021877201127676431069101306393931225876467884917498294113968146299471747994405504663542283586726743796299702285891592731555030838466516788468839200494813122816261633219658237721881289424097794653628651177198747905827623011568080150124824250828865691370204713993653923928079386413060717582889104540752445961910450271343336437498341544306899596055410009272746333307558314877196566936968855000151584696909812749210870620953663436104483651410732608785884689507483444430132868520245067071204495007392058191381880245304701631320029789578896599081474578911623692714209489418669928583967464924074440328878955464103913640439595524096488696005991955917683069909529901434090569041028702649301675160529708772701395943228355188064389531962400681659839701049696275227140424008240334580259940567518677114573236909753835888950208821510323812851070220544596978662728305390070472992040561842480187501183360626369604726447953011116744259988308688458543620802997536016461589369184347827841606246675806075660536938925452514016661612118182955399817784696192505150755324936986628756708354081816995005747611601426802705762260792754671969935919779550665231494291944497497864164714101791520614716413902112079099872550299181472110000384891441940669654843378400167078485611325622801275240420914342969111865411214662318744201685865678243880658302028072922635229170281117862336776962079318571346978664895577791564772627068331533069662253486922209153678413867851708265058792477138716797962817022336048512343045054160142211378677098170081526024890801328859118476739194677410906756776496255998357925050351567811759243356791725937575095837735875198965390754540763182557706071866818288424439584849805617472241538441679299095233116165194229760418369514035028199239875187883787844055250928622638844156204840336985237039880445438843591592981838622185263761665445942588432158344462068870343963824571257445387109339000695704713711628912832747653266551756499528561242861656161058611609581153448338918631059063860740805144993778601370631836569138716720868977402719686390870390769065887183263739853948460807833046766249205094041498027147678594522703878835755667690373297031978026567370289772217666599857780520452276031476899279760900881383848875716686709517018748970388743780796324170633580356847757168181928498448793538900688749932804429545496652107135911307887645063851579605024516028958771946240976618346527515010183459010078940755624726437478479599613835224351974747646520109084147830934433716072673490035835892024412850102370462805433253225784581406307851853633946444350386235761324428226973934373890035016996525409576432254405763047215263790957415372593103767527031986115273261666883626020726628010933889682248717490232025180110106369293345904679132666420365575066962395889133852497033131266092133862013109107134921226515621489777132179227185013829021012609157799251749769238757089615409801165941648718474112392198138123398717484732494790205864868008845946522942401791648612759621894158204221467672580744296015212161298648062309756283242153316234875834407706767961485073324228515223448025898702700531254572479061258193731358469648025673601446089341905812362323841996314968856672781897810918239501796732663725416175947072825329608151633131217925271811694017581091450494446916649039082639161049375378186456488362033182694619259789343768361519557869151995612966294166265733134958768606659838064465763534927287716789506297782331674861448201779840903974764790198872535797797234722734656888284251335419117824011976974066438696684149698449498349156541546102949286223434392391137787416102391235295169274476372533451741253249906461794658823842725754434084297966685620857644532030256700142726033145443541582222667896717603976946076160699362745490425236365175035739431625575162542079674513118512265074939422636856759228101124935206536094118688049922486393035950242960159950813917603604610000387234598778445179216633275089235630232966609990999448993036828055887806532177612716314104128314923169936774922218402801150444351231585343291155074907501430990087926085302227979941417076230015882127403038761292036188153417355334724936835166787011291143338968966029973549125026292583985683234791077998389905295865890721679443745996730853010363938727742264814695665036545184035957248652444587293105437512912387156599853906421839861320413162941183518308616386660544597189443538015291844996288538863045215152614479798129915696080647412873977191110115011146599531839857354763800677961739584795376617777366378644830765233040729468205338796823106193862797809267197175137625874829897226378293924236920424318506531959848337454920020442132188244065338570835230946781369515991487290018120514136104069479544960197396855805465833218429889220239934301848487750183837103531156830756975634928880211421971181923087405126232094839690968084423200780847887660417461524517563847871895411478258317700424459496182066038391927360690015401957970627041387197924461361518903860618400904709731522855533796572162176318827743248685261411312593589774764352776105587489376651879061990659884718890871531927565909755835815788050254122474378107045882637146125553409488422960725925232099394479986469604034202165284907104415904487209441409529853666354259370702838067798067202995104515242560107136613579623547502845920387508852242303080975276540191129455946285446279055215280126514328577860236230062479019899508139330545589582443014217065830296196849856170506940106510436751039260499074158945031937403196212860509968048149138724588288806580946172726194562988510566946420711275029363182941170426785327289317549877261642884458840856027939540354864869314065353218801509343288355723801680492756136583262607555295952368569858568458746012942422351601885062964855636439751233453381888449962197187021118171650134719395709637829964111924539045493336630201401224214017035169040436876226183537698191825819514194086368960964287821496099908743445160084851368602809862396998172005499839674918007502842645536204416292801469621152304794104853185538179984597424582288371416106405966698596299293228943151969138730618022238805335960402784331649744317958136078354660837951406667765119765839557684265705319567350549946427375794277914759079441196964598721624942314499674101577631214017281631269505788692436554913008089470208216007039914623561083167525244687076343928123779627616469648914935679860927061148529966806180965843684202578295741137673035442613243025509285633707303782802664396538009751687914310365869734592034474679040178451613203383669041619008620400412491934927626861200862662213587425361484631019305686809156338332927136422887328300366958263654144973107695772795836219911688867127404888262622169600213109046005081342492304157551439022824317064521622711856117043630691919647176328960914907015082164494377470969592153705165451165974938629663976371794505854596455800759330097924435083178128465800640905079878534653244907416293809301651182863101621498001484242321631517907714827600780201265850965288074184356514701905639979758488667887398451801989505009785147215358053496163855454515137467338340214193104486803952369939462291203582616170868099117727826122946619498415740146514677633804775709247391806356467243776820103991560887745539707099951164875190921556819881954844614352115696134362733716806173520594901830650557132976505956801558526825217489450629386693501797047122584040082763355519149036342312034138482253684787208673031574468944147604195233505344981389839958606833530644984799382305535133596682269966729603424727359701631065328151944862667892916316775077748028366076655350179224437554258518042716705192692363412141209939306530117024360686205740407921916992333401593464486465258898155993602962899792588825017729926794610868716408405637785531691161655000047249323268118184551844814127960247995111107791071089848381434498046754615155903708837305052940088495485568179949724870829491883004676032271861178372749339852843723349434354903051178687126271503772007776802541020475499486249463572626883438077889420634972993089977345133840980669090745968416506898048078611034183797893890210267427324929420891912764986869749358205903597317429819299491879320293272577618432127094913566628219462149783066841397952234884187313112880512350024307212793228992716515491581669435001106552617249186631425077590954702435431733933183228131386341809650698961334678638314700807527512669487662178976989431487784517081190363074188009508706727673783190819482046612472668796545552827380543621458089986334578006982242958383627589697812763728996199468325190066177891081675988065705170579983856438535043519166688040998053959712204947581242611618368894670547981500096579854059502083295933140700040078840728913429152038809701500434435653667941082303746335318094700256697386838780581023819087317377362180825444027266188054866706555769142997694069518757092007762611348290808706697085670046701727081225686157851103018412431270846383144118095027614886986315626845284795352976891533131948803798174287250122580429708590062139531362266262053831498474233986556915428649475476830581217869536420004399603757309194086144078535088276885341675956000495772131779283909310616415743571193736127382356530317619850247394602996852940166492272718310377912643114243697427629588201413690950726817393052249272898658378985322902070369109249534482587759076526947308361517485927471314627745037651697128561122064947050004582747302991925230998250773338547925087874786316542696792242039093966361896632369267298492351257478641296884454933363737246987219667322718446705940034387584038364334013838257637648233019216942951305497990640192779198899716491219966193021509202750145156387922450793201198076359871804364059339571360121135665249965973034990867119773344942731385408692834399689235092363884989412811542228080984810465951780620147597630441118768969789552182470527076958249765026790153236612884675156222586124735357146925105355420754558304214863401424752212976012378448105803944537407388557228481549874433151075428578827658892030038354336392483649738107632887307627503982418573325990574731237216788196798661574345022358202258607391619973540651883077430482776243314208008451150939827831604317238492809298271880726644601662090557714077674062628236890997822119271850733029148014329338982368264403972782190346807810087167516503778173648448251271934349536489080682541198538664484604914480405597119833121639916790402707339292486978900796850656018173406405951553853361525708350435379387029191120562743057484893237080329961692226262063002986281794938029479479130352237353916375033938634244447124234535325691679734198261645094253549105695345064044931651918752390730533306222830185973209284497368086393634968245784192950974129335483416861505529343759822592680247912104507105008815160030199208588001386918789181440003920777755079926230146272974596461766522673940376982749569293559158402427339865232513443021783954337093258159804419996327189098338802556195454473904607111923465483580198994248644079705499811250598879144312025258957165790689509114546059523819711619898247595193584177805499996572190081083871013190610923067434236163168994340632211039219643731278093627690152136853473882500862688245316173850207550050689091381826095655545648415167754650592960697635642632504402358206552485680305144140387612964555996745187620498098976797955071879218820459989306261839150044058766285960153977079765595870772088595507432647404953933852435102432878490904593300773781121891462259188962421976693725786678933582107232727151017865996118523852547491929428988583222355394039309969589691988568382748318232288198396343271966708204777226104995132967826109473733280975004721671335610028082653755963887367587059102989510378211285432936769872644066758596602869795519110355723888551664310599433662099988874893308418548167482472091415798847880391846515942155388340862383650628678459826549436903793644115499760242862381473359331916246779504038514785616660897004086272904947453358799477251154512265218533200374686877334623473752227695553219169635359953094940124540992995070388304726502697467456224969503428082129012279286193656293360162580961078061398682911195744760755140459413417242572393694694692504137642674253512342236446636882466622787613009998022491314402246003575020381341207758118572075429284036264915050686679123177711551268223952366143638784475169676296381240810190401774215432476428431872270511767322511088584824978579871528846165310207961086943675310528784926780064396705296747941519189354131816153351327919900450950696501663033329257882062205452023658380006809096146516009882106720175782403608926653824909789379058977968361110178897795732341173232945760172232663626970662458282125137952040393237131675420140484135349177669862249286231421094934725316735274096609981143396948708455851082595751846602137250838667716870924094681358948739940263492902543016819406041442705355084238706927822163112724251721691659675887665965706634598064797353387913481722397183970182254610287209246019696974876027708482479185754132100588608012900342262684711810309684494272033139115603887634690857196299858117147156909849763193488362790694180404015900378831249201531309341230475338694628910225163869753815283049702539341953278718672648422938977723625663829951137299864718330089474789286748250251629973072363796909033449243706742954973524775871771880763545575285848512856283154610535027928825207357884754162085287163791508894542823168536552121754093062983529834648413528716066201160956532087426125647806967449424443214771422095531677728233695060568274583265440063293134561718162999216630958183475321743091327955578270382935535256082388467785524896435516846972139930604625815050616634639549297328243210171938186162719958995977756470192651512051445308715434411875340174812347432157297647722565697332332584077123394941427925449809708200661178326817532188370603695575772696815714246848274166053793798368080660439356637484616658198265470250142262157081671336952183811360151748286911687672368874019787940428454714094103687004613251630277641589485351530056801137603518055656786623857854840580028943295951818735828790132613642163852418116956391483162485548325621907909795182555385588111264907762508566714416867921035965593293176235009843915116267831960769930819541222548849902810377390625369040817789473357442723545052651104748151528145773876316256444267473017115765420576622428748780505773253409724149524017539058861378424541354445184628594343452406531772779155457222767750220490464106712419156969295347865082091490474141711970871232359008297999947153242588085587920879353332781437445955758087696149820994393301821577744237363039173085514988227229438318500055694639443710920360226623531540920031418689110715976754764956134784193537767717492214312223008822216792622639582800736478891582831029353533087330893521869688627797571003505758670028480402441675977983934431699144336405217923698148475764320143176258893759331540115408684060062441934412064509359573998302950988029150389676096367262421549165300556915116614192942685544637904447020726646279020462807634133368433565265816489192831299192766731979118703840370078433494203782984455319390943984250434856535573266720294659166700018830284192988091503656179833931808125498426773864344885525919259233995664977399631836078589781895380527374171827444906370771988632175973994971653082557055806535572593660223489263764615737151227793617844799951572161535843315851535523134998202024173129296841461556148802154864760259845420735376692450917257164992982303590102422963244975855118148988639049492439644004134275089933101872013891848115957334169054905130283406525128796546012623151611015913595057005206143458749859084164558467798437268218467336668146724916529403007498503811390810732251586975952565886997934196287110047285776172344951098531291883488422744082085521983380351659324809744550112046327519057532865555585136723030467830421044274027613473556024757955416971217179865599911940339239836865226626225994055664491701706243997528309588888979362149265699310972824317768559382087576967046576576559609711976366686678766921947587584233172184262802518973305580274642113187624703847964359007008790601861258067743853537441384925729017433016237636056003919785376786503413284253968058053863696002069065204354953945168993357538079792451732937333388735180931155783382663415640852016084108373341759514568320076369592877016524429630962411140525123075858852234030008714223833777552474000677757093999228576688455850817729004852655925817438505534906461335849267708716790196757479450359807673432336632675139575583023415015543964713511706234159476984351847541046421474893398366061837708472902771807611448938264455266406980505402687183894520935323619746712702492353031291028810071470158016298604503542526351788359950003246844913882458465992150095202368913440191936950237902131860947556926469631349420201869159050853393227389728524827417320166472651294115703697711573202488537003767191649401825861530169920286766108886876729587304194873831376408765197711701765493695588298763002922497226597075108883278437873561969695892565716290966249888874564454195606764352080966572758059470294914818979976025905812678492631678959731162113500961592255222414743412943995357686393271892535129948280356133206380011272774470520400908630342125481304993969701720956231533922353816743299203971695167846960477477005506239720983751113409907728153927452504783822083048215792045374314501972448173478380710789310156501276239879246714245325427152450010120708804646660693167098169455591258520465794259609490697537770858459594686148611408319179630111904998314628853824766516570924588163144554553120156457865862849986796600831027305831658818108550600495335451096411137728246565069881866832736850947768163544444371157532836121295489579704028086172980425556006639337544875455665743612946653235744569728559984927144540135548499781578668794619131198597205999747734965080919249244754455260495293889389686179555059795848891886892494840792309768966589123786025923657061024749946129274459538114377981630123634179710966734529104376551193203433654868646327051131905814277904121041758250240312695371246522394785850209218436816261145807652305543221589034049196829761080759920757707035276809883517350341465627229850180216094137906483185356872351198624956239542458649501210215606781942692203568774888829803543674486718986770417853971044174920504962496164520595196558424704412014258009466885752143858554874362319855595768713815974143553671660714851252069816903574541709906996772650839342851389103607745249213909690305608586158216777667589589348800431454691678708052699765910675026607357208093910527132556025677896966793685463971090591174482004305035348357278028598155965427823045118516624594102022134654611508658712524241935500732069465999535641385574213568284862110461011422558997984964834864492762834675912147675952791152666627341417802450760060894372833887555676600233017405676320653100889151306468366950445625734842036963665429263578926667997460739685577250407201691298630662980815514980394812393085382539501720760535119729049824974256093748849964065611088682665719312545695371621025221492395389919054197448808587532550453766537120137956770905776575129322207780548942180241818933379322477093985825726246931287995373714746451732429670804921093762833928138260419349662630278950869248995380379674877373918348429131992512516918684149497648139740869143508377679793642964175103680972164446220452443879775193140042039391118881380938580573886592423125619683015488522114120127476361324647291147846760291000214289743518719637825251359734682064017641452064222488741501310500993382419220503580543162217900114902905748900559830321318733837998601096306218564330114806435738753258194482292271648915369624732873790949430258710403573926726526365778536100196125325245301884970866125416493902789778010379306814167394903665075790600009185343887073311544814721978809310038091987308485648345873157955930776725417241965663037071198313047085000452756500147807806565101461572810950600946581796645637253812450892545413268648271434332722971263668286950450425343502249968796181597161774054091519147154794454980898911200499268479855727499718460013024128122503565354121964786449398699292194405627901644209300140875906931034950134654362104101327167184701612934019176333013819130944074654026176466953838717341033772042303659182700658681395796090400478495753704131690313978597917167322793011124963337105641530636607328504457792947512670527595548440137345727609610935146377218907625082514392215593820796069409226297272889625393238753884835845704798986012670262343206836291079546382333788511406946728833395747067231311757947690693030359781443639020720732925672310728884028774393193007515440726178799070658694430205037153049495984028563939426616381618803996919481987365107342498974047928949347325040624436416559838286972231530301836025841187963929273630550351130899465196060276708337996104374536975875841498015151577236357767637495802348978733810865318084445220250203438596291918700746593863134326322469493161290041658002365643735635376651122561516730887919165267240252537876892183528967628310029413334259264914663356849423197108000942987891549858321120564360934150353321296517624192022489405314332853951156707987674486105034997661690368245244354814429927658289805477955085141138157650417074519483436000166949727541277870209267706882575823440194475968702802688692911593515302236295507223602993538105795661686934019540161229148410867720675024979184473794253535952004220646172273284027867582158617858623123654965723220547053521384780974020244311881934025179519785363399854278409504408892130857049245606735726033412703474407034973366597658291856558464879112450488818283713404009714415964572805285371206841952116441086507008827282418286078076413816167554182377007966324093682610165923909157060339728370027787914402337891466627685061233605950659633429152349636920749853473487716728990221800420983834052677340175606114351930271811795281009322683191367322214882408319406319668760064646139133205028269490312368437847449508209370675292626776702254048188899693297732159512694757769350483788367918476584677944794827248270654606410203471607834234457519491404038083095437487163609219844626263507185391143781923970016102704513310575094048467369713734837808718822626467790693303267462580669663508013148651865517946877634171104406397470113666517426620059245512701842467078582552351166592193766035486734620936775443457568204573761497972273439093974318358502432476168117908537794661303665356802232357705869462456450867628312673695266468188282979497622805496624312158784604559763393886855572396826659838557092235474231541965648051431425144568194553669660179778670727521039214666910436571895185004180768722913248066531511461437929353330393236608649089520724428531986333543283300451914936154306636243228194855439836002661649315440367937559597975444054219465105508484077527293678746451465122636031092851202012148190048455260708900149283806572018308789998393473019778648617765274616785667328511114291237470153982521092940559983020193084819964275814544182776709563616937386215884227230573838810699561631793657740724662189560973553895343602757096502570009351776372382723478986777925184844248649931037245891159642703007041666610274073419170743369366002609105285067658345083211169759352710749362626417006233402945988955470933783010260290651926893302956413544060524588232931149565138439755989732219693783676536695514194034616092160842931105124989612692439288222862360257445710566613247226388026215006959392022515297467332378686286648840675854993381819398499393983424840610626718682614793841396295916669246723703872901785139956168264707516500849381768926641609387274046042354896013546381356491608033839461236154083021916008082666439279553526055974869327697044526429036066845773958931140487549581667588571729878873558464744134487740247220541129544045280328721798804695365948497874418549820976516550576074823177950524316734808314343999203871131933927651312030049435786888436206158564119987643244623632456001984596210104494408657939877999642611895641562484243927530222127619049580433320189776300849757498381920677489260757039581107397824961446258978994323251994148598162720539235803971486151235554774431552346374486649415558734896467705422329738371437299878503419307555220693091093819113827834960957735646510052970281020652758620648494368860130683611140221859683380336564060701279213791786013367977752415292862745851466800063064680488958000685047817663309568502038345334771876459116983081991013785685764400889134134170571482955483369243008462551944395004304146404077323549267126890151826186016800728397386082908152649463734259216247074507420976979742692600300681298409709539554685525049208951009488759747717101549808689799490607392398488641866574310671226124111960084032013993978359612135660210172355397525447691730592041907813696900117330211457515941936689739855373857932266882970875734420936476361416726272981203095317747566050166314342794846879032186936932862374293332331834028417073146021712128955156443442646433350362743134115746931948201392165330093496548670998044975994832364946822148771456551512560831752050011022582184402465564424719329109397895298030790491884789545867980408703590868466276948382613813464913802268955815479541373008190376157270431041197459212190642357341936803235307698472845067690547977141464187835868239603358914472600747860097347259746099021332871948526370544372997213517631019350039771776965589896268097776680627362720619380101375807680696515436689926309808470963778216512706639486321604338170444918888752504893369831810894122550987459822871870271229385645006980323090741547255223128943215089905112840157539682808542283158585065160923721958378369364505628276664381830301000776871490877683160140083123240045262495975706346727479711886177687045599104902130335109543655745871383255043953699803203488823229147058399149137575247724783423542562189597270469809678867904419261485294872106175566730926448401260813610073670368401145341074822735888761625282355785796061271880726260546280574469662118363223679464280234131936297116003146420920409397713726720708798877889452503908669099069964882329823422316795968600877039279777988985962776133667802013039764208931327092585329302345628890204813697638979185662626948853429241032774884146266764117745878512637817149945347318724189085160743916319073117838325793914113962792142779858767440201828055920023651062694325812249127784253560254027984607620783664860767559168051458512530942078272631526342864499849414204212152038481355823670290823284980922218802870995209179011076704908701871768996246380067849613939498233876468822662241705494026741263542336111738149362782352750069554517696893599190756714635303911120240918059143593829263395109803945087925737851846200408069663045813792204155665004808602788422842292412978863817284033494968598525007086335657545655159390751285289401574176776427222977075552031978720469377084238721094995999904793719252428115431945207239782464276804091384410186993779913956908061887794863755839986205712829374831940697475384121491549323831761108289370783486282558570379672184303793518105466860282291716939406698839206116994902665700507181542687955594807767891714292021996761022147701517601417702368500351505316375805492305580996619136764387524055467461711473256339559222450336880551587812222209782575296509983194605177064449731363664057608302129178571204654054731967879469393228181120534063003655204118195932100916253133855169433371493344873607080157711631072979447681758875930599091067249402367214008033741456081731563280426108950641004246886584090713322361441388733285502453605472432779607954538613782481237782305119437626258203841513899718735129734436644287745041845438364954269997784002142075457225700718595783723422331077936785094672815886689955105336320957162779532787084633820361540685560156520189008105143399251411710044306743264503027326706614291843600032508415815751740834455128557446191156648331945136932960865492161490202678498269208248294277052581497850231365213228974150338322481619003250120661739781945487108530422280700437678662816062179509981100694496730979534639316213994218221957966265867899177267558026146954926997220911542917693906535145388049732170772078576096563737834679307493349096066620706727096319533008134926751026661250105106439390389684363659903742226970502348833766656142328731901008545652493416739315628891442152132925705730000567127961257221199060417920358760623012331311279840254555728213111822487188356616441601908494998447324129395097950457661441811339883062945618341890780567106728484822845101727129937169743823819162013399493453735092771912141417484813246244075231482310922272041109998357989128332768102284305919665750258127842411228849337500387947949504375614566489564428611445236096244103856999371220544224908465443954119206862570130323334546330936744248142463988680229493472374850996034825866466166022915958073740515828013055297819384672247701143739851210008863342186409171441680307809590543503064613043965641499671694396019256828536136278522722073949574855523748957276096116760118632296339457528722637362758973566149879166528596658871223028214552607370438442999580695479111085555253864931866426457155666400723162174812114176748860357624095455283092065667787424036551775968273781913023518875597003381432483807080678389682048856387713121588324866226536064187068522588810229066045164151467667646871679638951464466281172481381191224156049134419935258113950963122194099534423315861810534229910731020284568850288513223307911251552415462207079543594720929237326219449110776152999726453463492671591612190156152950207908559886740604074329153845013448942708171673412767741432369717657423449940547357072800617201741785005593877063501620332559482704520914355043820016475209297326719638261603873544242630321249012395371571945587377021653513660547512071420250370525873701498824217951902117165111571401208734927405709419965735903022872450025723072666788613347992933405952895648973337127097753003384497132145392543276150743234512873185360010844645521409548871627095056609840720801593239260107433318278743874566202530724905643494776240541116970321838811780546335720007049671075101127341495310551039209453424997428423749120513750246079100438102979839410422706529244227749116235997693666769360428260379024664695527283814417964873989705317695166650863439054840587106816809307448022079928247904526484293990347062985102724368132711301167321003423320048476450078994130555812248358684511453587132862296355590414147214784624165442450320495420721965183448136625609431750694599519647918381527929563734503486459980216795862703651138407940302692981833396790041684615687427083702494269402173106155812178932418453134751755430586767693663464379702799229549730465494570867075433278510339417573899215313927738230149098797146573181368539581890162867502305687089751818700046101740012836603109399570121795642142746005169353602862365762944831645589758030145273155340371068236518189598022071940808844400525541368666985825816027645352011801769350548933847831880243691824106043143227455777873951596042124411505418958250971359752845333988332637059882110283611387554730534704803368907068700032845977035553012226808852691391996118735387707117455286199281092465775915646725542781628890473593956958371067759981835650215720913108197819233079631333000781951113256612417895135053294871661579945621028675078500780797496585341511832313591603164013088886049810023651280564680411281328554642135089597414720064362893618238031032948469058488274555150266317737117831237882252184407662994068591915670002686309324612185841563165478216341136452792703217932269576777713961548161734744475646773275713812358793602814661223546954082559933911127402405038315051994773775609051491739471427066916974524772160984461707922379293332003883055901390360219914719001521773149014184999412627267654552175835032720465577379304035710029411200619925959936918986393122648619854257014022455097079249356984257322240131920631853912957473054658834489211609541061903300533542598415238655339741959807376315996626400717138471095950246719539676599930701130248738796868657576820684336032293705417595900989044341047711020128327014750695401972622688620734601114322086371651486865664337768935251804066258866173843730838463016964131151576072303867474294095248946720762197480841534962787187428301079087390373730326301953475756051542621989910208879254795737308552884861555660362765073856696372927837563737074794483864811838909482901979381963762221088864157849582699061213710130684659126237718424946762777934202516519452342788708482179639047275419530511772965618575200239609089139441794301785903853636110341725046283443665211873840437175929556722742757312877445118162995048377639746936777370459696819632009053487589749319341292006727827212760720094096526822088861589793357369193195157741100148562716737821383575907083925270134757147146433145600842212148591421526823979196712034826277501792144534083153962931698974702419516951571103715391878658973264970984627678299549473902311551927565007511433541931665019780271079344253600211131731393207371983711691361269078087848030765526792539614463796625451781889599245392368826546803409909375922125288949059502346434477826855880108234654585434981954670578855584041280013766227853229337290783272658963609617507234696294124579501524554631438362087700214305844775191009331283113414284993158951019153949469984131632625279710893328202319872733215557725694163534834595088557049021524181739206193870824931700766771647591481728902696363421773822715038083288241220572916474145517583933989695702958826791772506372981397235305427066955581021786378862889993071957631542896962345086154517473810607647100047427158772201172439093509173802850480816075013632355593555836845395881642146455531193410265863927522909491792006385860973708301057542772827411287610006968733026817470466537512300601415623237042116453433023640395033927395555298489026262696445072065186900323437138185679760547293837308407451291922411583966811768382455293524660382251335302275603505897758710510926527859126031882027733719189015455882628067504990499498182145069476551309652263397315963617787817198868061342894418176040209749939805777697172821531631660935698295388532127974547648764027221450204601886591968417024830755556326279512947981940138276741243000940488129610930725301476865042931051385381809846825348706561327405320410623077092110409988840728881337858637945510382779199714869067067882480208013538139103527427492204219628611768657321776643554109054800934816313389579255182539220760019332077872776912618029328300799160242138098776237632541893047949209833195950688493716077794737891697199215657965462211542628493469560662244630374091703855296062612536012430434941296908498187740271661950894492094520061920630801936597699988497740371357614018646848396779675987541770338614824586978241843278541845379390256572157757120322481442555233702683899269305157717900593141654377256942583462311862073641288284541218232305391478850027481352567189104013568819931569470845656987823419960544111338298579083272736964674202727495577448598413841090188078331942847464086123664941143705413562790900579955130220988861699713685662468283259445753813217679866396125483057599897650112778985070783960927072079206337685847667494807787269138597583368496844821246945583744338977476348657329988524718520096396480236810725761820905733184861489677136244442155124113894178345798444461455004187111248620051708556156140242637180175003574114119790572859514652912517907704824767456406575753607549164683763022328586889210498614944398100045321507002815856920423385149395306015171931462879107307560480420608903506268921654133876152141464613246300739027842337737150769023100784427405721151277270159701364848637168064021097793519389763895637685088730520426847366346840267992940745808054290106290850521196879525726428134464985328895164099716615281391223801748674223241623271698737637923400205777825744443016538996695055029643456594803051703729490146616616155065217941650614528200462108066828070934855615563172246967902283220426514415713336446169928082928377679421687881302148776500926577607326343419609081377943949562779642030227571832927535294040295042170276645465169601350910075802682707053348764878189445610859312953788651962096475540661557834211377436893538981757006764957365208364291482077128442782621788426614479996995595957113285557784445606772418416655183955564374979697594157238614707792257744224577764940323485147719751429897738302827133873078597346701018794782897115793006417851712494028254537950933507848871364136096185177550368161798848476500277014289201161430788942477873046279966710180797672044230085986752838744628518905091499751880097177677436809970905189886322586557881300670561374492448108005963388852687127601320832146557810770129374249207331952915443193900931859618536898738770791284623116155454295503651135141853518257511964279059051856978603449963293413907323062605196251364734535185141154459527083540077114800651253273508549624982574960960693285992257159310325537266001367216491746673782393986296111555506886500028289514851320543119549855073761025641900128166433216115992217753306481827172223558522691688083584532037541418835958230377295205107380557554088591701497039658794072033937825480563609202027178449139357549108716918144207691957812450206599533405752456559660101629982631571533672994828849017205685732070935897148585107142828969251289559758107897467723189946601802487923967360515184260655264134208310195714488796363747535623722262064215392267604292701539909553621214002459169087668208668237564519773638369087781060213115241176902165497539649891985392154977405835686279628039150213748169115135496481479128109683939328796145208107718400603981733418286666279117566532269743654510378138888075243843948643451465548704571141223664265953767622046501367269735488963679607774120182691315955245904789768548241518805360053297754707160518021717405035687632273755234010167342875256617380000247924838684183012792711961574591157283537016056765585180212066156771431445383986699583530431317444298788847407070076990823688608017518299687059166084310611404352301830147346588250784046071680723666587098807177318421963409732021398919163924150412045727436968122692819313936992849315502761944054435525977248552592580450988953365783875690257622203077254734563985050653969605216119788009648620095143872698255639705341288664907180975956722621955621543126821075954208413801086303806267706548736430882756884021575167701724270527206695712178931897941086533189293501755126696643122215146943172585857882326969287875484846030875824079422827623908548297293606804717359170261111196801474741433804304428996052295880032312320383930824350819349763609074161421583862257768455177846605763670262504236202789278700043620353415065296529461613593322904596818277167017083065758944864630360340271214871004771136123032687645673492318356780580630774632851148680950135679456815754460290719008561839652430495369600526070834401873512079875884374599540447524079180903485509883230317456545541543585025194810396471426373180311021387699191585850881136797097427244786432954342305429412979228329433202035296593189838530344747032690585328031433137712818301698548158452884246055945550486053030546733057716718933757906486039161592468788105854413972330991192209780251808953221094165295909219460649769744575430125608954391136772864091399586844228621079630137758032027530066974287101467220940436714292294506704917441108841820730494829297715776886151575893395303718783813641422681160555808461220113511232589687125466182808053183921320946896006355276345947615168190978375179842297921745127940506010474725303171882213127402539379494269734819248154484554882121554755107242442548035611780900910915707588464668443231182291615472134928816689768002869086039545123989176828801300005697010019391484494089326662072433188973242318076960744390981174714393215475080133027346692375105943098020935835066971536939542455689847255210159502836732603970018241840099322909351223536184613413451293839866640206809125862637892328889159244244199082733162801468083217138378400545646057660592535228610027562719773168693500893185791584017636683580972916222368447746978246940298108874429396597630035248563837023559209766595888491416063018946003963572696722511569150202070031101252341907813341455018056841615895627480371069300549459943351318126044253422283415003515245019714735312635168187066409314796028474344377910281522907033819759025392496941360480665827794047877918991954868723049098060290705002609014242374033431991458119040505862738785393096442376892949756996788234654080452920720864861387014805852634136244564409074302139729497905197241079275364694871172584802381832527835661943046941766331348737419907041319462466711724440171718277821733145673960165419877144133554542842520476126454266708694686804989892578484187282115424171616731726452813184553623775947496886165694403444083625006582495477355661892582582609337735275137711807432102794200500281194458971901839258585681703933475939642597574228558676877230093859256961815466910050661079348453769043644226855003329359359653714097750820029729486648895788388851370914387267381115454435972752786173150577947041881932075009108378909546887716794434357849995630700346524281931389670057085146177302994896014293454080030725610870161632288118114041160672772727257308639964372255940876118074130798775045601250739810036647130593905448206227956270300923958763204940167450528665750533535740211654232281205040786830575386156416489453666732690835540126464755250978502292838285127552080675016795861021261804523975445748245720477695516902575866397384126637738788423464290448456514222666135940999523907760274087532797931975244156776243586736342914423091330116383775898762928308144134473134099999841908529855121566637297395339375102198502591166301414186480966249941270413620088244057948656124117960795917448449387932034501623078861769601839473866335439265557830003960594647138625847426766664614017995473266977742337989484132428349974463729192794368423503327576105148309638739164065257791025417487894352838076668742540543192705688483431287776965510802155726476012550091420508261295652345014047771456834848913613730559864319822246276560470435554493439708914725090949959436125808221711776060299644284476212891834732380166635770175752743926374802697215238346621428446482840852096803059100334747736014483456978591888997897302414671976744915479658056171933717814701808931645582537558601822132527146583216267811475164341671368312562392984107879016305931908657054427020015701648878906717984389446984590454295954766654326965235471610058327359771821177201742467585836273698668870620179266519631849467817395662984295043168948626443799294933566825703982810282582431681663876503148659880454051784062010157563420921241136679945057517989344377006355226706875195346602298756197123556392828542432824789129146694581144153928675659872373717857815490801933432140684120250791923903084252393862038667795759512394502284421800427756303400622995921392424980976800087010010936552128877716265347644769234180935671065347072763095518834200026736686279497476353124094093557291120899166746180688648776542762569574590795745117242153352336550097536969914425319582334957757615319347200401605762594459065367241531077769321843815392558474583841836564174865698335196893143896660441335009703893271303813455160276678421284041039337306810168982959343583033304752203680974007355709256834296810464876734850166323346244698957621861561312667284344180613852907410582683322740982520241550273912184606057027757543832334295595075493368755524441761357385091112195864899015160379654531428658412842986767760527943121017281083760280384169519364279902481277524334184942173237315754730830445045581260852280715419796488569471687824179014217619261817950922325740556354858553071645896033517792127957671911028798477335842592018417348948426819220759916559514948301263724983273711454475342561138538562419322030782332274644488114940131347318063510173759665829950366734633910933322578499179333847275632649328984011128397877751806197901470207583514652231022571655785893010622896703969595556071641925329126210369452361740313803357750643572533265454300766062983086421372311210701663291112273539032068945928705736063310599164566001702539713664719630119378087036165474443036324880261870645563754963922992310529099382086519484947095517181571797451397631874038601928401544740026603546969719701936733448658079131249217522582106166188588086940783406002530751696708159631198533779017048483216904597042689602509771103693658499885274410759862993706222879411435626281805715055849525187409069515216128929256491333971127498992635131994336432748379651461526010728079354066802114945751545501847255426741661137056867693404241091972769268198635198857543040077251080412516308923392899618229440261585604102797856242218842794357405102818816041443801934175740241834630793472922480615750326817171164637453871761750738649938252287133140623677319494291792805531475782631567189490284239405277765135277249095725742271557986409043343477290102222012115184964478840781466286531986382022117727320162048300752136436034847641568262247158115274547901818537807941055560166523557051136364353927783665994789362660361749992542505860634649247044004678941001694244269472251794281055989129820054904672683943251103098748298012533928549429203785297121049185013473094493396098787058370483421949820081623484976335370617976901725477301546934070404607993829003426830427870209221231366614145947393830647843686472199459730034930491680886084603308358560627570787303488366815708578347970670559193524217579615254447051892497082029333649062045123364941279220108112923211841612280352395054493973411093064681013184310139467246539348206804999544191327624115386443002867680288081140616870028171151418310101847262482752487297850167473542460358670153943720817932235494796476916857343105209887320057638912163095886356272431962779678110744681845139930526005409978115512658129794351641735253690505882228037332158938185738108476392366017044910865235393880192927778488818186666881661717418142935800094958769008573884964459469356727113516674492956604643312459916175533168822144042965933043927007142057401582922665751363557745385267732920837233216805872376735725703326688127382887352872261155924567480246894991489916944793082234885159882865580108167321655107568466317820471344876682091621256619481811115288118553569717967909486300208005017733946649153866010152264501703891667626388453905164974585129561967214266419951442465245116707562865530221594082091345415893601487874756044354631463128057317185392097916451001683082717101069492236255913548880293463851845706636861717015415264439063619527107519060474725103856255625788972130928923278716933119802673010563069842730985705926727264082984958318974112425826191993690054728467208149924160015848660202968748170195752940928000958426170521059206844756567201468144230464032782920606470578158242766452174487975824903727458193980937705077051657388409293803601744265863053258350543049596249201665522872848370720182144869704796518044256064393044974518430311107118211247548341994850413795752760727350958839597620826733803216548003798720876860664028227954104674058211882295550488571508713400281145148851396072681639087851763178478979837364136598785114136272087484809884442116428432598616294916621154113581550805231078979716587325069630001483163364635395959987374685119139991380166013699156028308692836053506331259354220720118748551064750881755639145426481772407970762688833171217806984065950054359103116524339136765617536876351795531288612404309393788872164145233351543795501246215768921698596847839885896133900648216561231033256138140072123244775487913002938413968457119409860949086143022307577904588848097286412830725094247899486081304574770683529205319843487142177737720110740195429017875174626722619803000762414614226005447858143283541159027242522317263166898364889730650334866845324562928288299226792317834846810122719252371582949937530418468883576771630309586204360633979806975753716601986419937444776069127111861714443941082575586667686167210798332221303265443621878346138577097997730823817856952520299731119889425103298969455958510211933244931083106578368340797323838755874807560909760471835272858668905355634969056126286129278074063487661007074446274219306837142017827999865866151740691147975332581217929895858398359004159341861341989022346276274437884668987022082562459461266061003495897200897062542030950823267633518421490753313382771645932103394620749755421999094021287268767105071304355080460092915361928064608721742159794125692830073071664509574950846617611878913705128346090670353562031854755051771195818356216230020046504570871088024239389303693875783567573066030063020389006256645521594390731915175454175158779396373235369392927505655856668188335505068697626046302162327431243913260990136343245665275410405833990783604130060499792405954002339287110964305345122727776764146527639147384562648419835347648337394776595721893770115549971725190715965414659404443821472215553274213500423719030262012126066005536111596815941595576555175280456665582252748085772073886014169953102841744299559764573064294937005288437774542103908546193716653370055924560645010522277579940082224475673587825786284329002301460834928509889435574905670800489253312482330271314529163022630362618945338380526139154986623265532576992599297260458003451536908785635941080152345508776162776002946861078173169487661624574008495576666785343747502084757359703860428083857771731259205767788385369568639417093275910534879983917786590583018902818948175569666094547831462164505264865864632502347073766549382843562323467399335261691680063307376396071097612707318566824203863178196360878879782694792383611131899572385648260577794115739484241600390892945586963450392610697739828443868700034295157725044935546463138998876587459974250773474718861567429683541946591714185039187931871241549126068757843062137570484297584954534157194934738850563808355713176179650150976129441720099449649847156749700579038102321096004662247859916609290335549158145672585389749224436102555491344918338382459676937002624220819632209639721900895393659664911258021860676271392215509753922369575114110157577976205795745049057604170708534866071564973253438828116804626787019255188158748424368156535842470421355949235444806674210888371064424126804727733537217465038928152490353668797918515929500525433285164535402081966884372580011800757916683095950496520762583390070674200628084199582849046440296187075693663892647834662096570887780817938000948279525773608570309994857517212429484124067791660107912888680556524369113826196406359523238056794939943727640021388059092225580322786978402300420171912628926561607205924388773148220222738157623957530720832360160921862110347073072741662620638069373774426062091516439881530775854942595306132464690750220149366383416070342697005936371631294119716575711955213554559762402878965663456284608149783389841455094463801689731716802514097593385325495229403085955126833204189209671209902203797477124969509447833667827000769429449606994409251913167898325032618328599930459066212720382020258460365191510953904417059498298138812801709587692800291028094686826969232102627041003877382774245302226662072011674530571154652824530997510656877492464825324764368671186914831978827734781538768773678011365721631708438206756288224920539863381003962655096777357836246630296052231603716267220428096989461744855583804030282628827655131476778231081843039271122513174108300161521470974623199925081598880608014895035170175898642917644295465545324492105065553149750882594688084537323467089179875530122866933270480306488242045223329182125991437367811578644422687660693071795308847669451649322638893757329980263696120580522747964360635353500658272139000875941102326603440952357904575927033950992655289026992008688254241228010978945301404438961286064482056257497698612454000299976026101010801461759347420842982992349063513454773982861907280887709883917110147209263702563103580016691738289939178529437470062704410465855292599751728416108820773782310657218754386956444256554926982568668876152947435982239940215233821399633483933859370588346597652903442852763846744145324924527450952565384674346070179001725745061011225827927264847305113081962820424623368683379251830469774562287949581293048364373098128412435998791734616965645241398231261843228164560182480328430818104667018148913188755044831082712192788630578205831334146981856813608304451010930914415930102513678787970010209948667856286083794683370981340700703989963070004921674348384878870154504664535914432259797412648665003426730595736206376958111333082380315471561374744227254451102820998072902397766770496259195374678473366566439773143037135186956812951717883377651157036290121963291679775460535371826448130125484937974006645841035139256673591487040769717450540506442482246412239695428644194990661323561395799547885187449464275584307239566242752037921861861290264919376905322786777199249252488986802899762135272437333643179542343844769243959993978143046072299267067637298649812944790335562316686670559532115879783513927378996116057220037605298611492225425178972643431752083244529193895197707816695548200950233597518657252847347894732534337961031593885354234944788243146912526019279820935405291524694048422061251755392980826639107277147315350497588516107155496322835572825546201554593607721809670971134829974729628892648143924138600337307641401926530754483381784570737887653916134283256907033049475336285651335473089775990210322503310630254143263450415439674779339436334853218493159069946067600206740378425751408768791188943255233570244065646804532580926570803220023520319787933094241015572791130803950649007313262967118723394624164837904050443758209020240012642555875749763729844689400160013128477771679174366778692414466101588605309861806666418075571542094569798088336852497862599200103554801803888779826408349023976633206722460837344975807732715263041847262238989230260759521194947801444831761749855867882179884954815210523275139918163889332541047876902376291347681535539788953379533913619638089068756680627769526834560293682440168017207598990983750798432610160818990761931453729949996765692375229380547700610750548162496089681049257255417603467296467086237123089138774739416345076281457277764933209821461618424282067450207177440409855343252922479653596392514038172105841088282510022333995064879590249295510847065201104671721312570799802812145743233916485983931873445755293303711381611869639647061485072603797409635827703897939693056857605875578673370155579901979356312743702246235629735483922694785937378030839892934006939982015059724086718993549080641186578610397628398294162564245988016731741139812852042350224583868639053920517550781768085699532547454837778869603051491150265642751805632184970752993838662877759712444773307669937628078340628045297853201119729314888176303061230848366352002741830441001556938960000794756742536666496417402712152742597924204274127833040280539074681456085150995882335190897446427018768460633330221052665867151616204616122000376916831455227145850226314916736929278906934654971607457164139814541348950088345459839103799214238526947899662673809096453001836474194484863833603955556022242816848545945134741310899178377317359716586980745592593878202451791478386847527229627560518910570259577429768575588950575709637801773132992765370625034212643843657271058502807587109800959883415245001024115974809057413640515792872703010019472835238950448411640531680924930078124439879151525000907871054893568680285974568266182787151646427831876591960218334613688496350879608734656500788176275385240240321400522195462693771117440403994929034088887264856586719889203997034399493161107379608095293045083022506877036912614908115531393934334017316728773140396056910149110700368489825306046670603841621435546436479844557627562686416654927901643674455857397919513185205751020778945351217879092051637617740295995660858897443415355500653985480134342653490059637593267821031555643183956915047890080152018902615556194405364808928165824522378674325066675230799044005879095166902731679947196796969209355138322337653332765369408912417445060357822738918405471773146317515205787298960959918872153751493755343717886862022902764964862945521007985709699279005498841839098462449195058703149443753394938794464627050173495334286136556521213569651653567522095824282733964223025712804498724653478156251749599117525526144348768366656557909166100967429835813238167341406508802560877400294381819189729881883314277973080598005008739983199876604697308003935322504047726991221808190094960188724086679476478482299030030601963284005287261521324680954146074017691551028393994384655693547688977317875551621024326133139872615348102605513396109067095845518826049899608564587114390764806640710029442468470107034561478628628860033340572295287605102530985725773395106428099288529454363160852756587895573223641100878316859453624316908278288911430091181095778639156472822969244750229088169693317932158794334869423177463728189068662859526547571288875952638717797642801148335962583618370693422652324473962492996108403994125819032987661435940745910794975241386011276374667695013452973911760589696560327388862866684704464322496396853624255399071348002331530100359604800040243041147812987919394369369164462674207939484329832114493370976216412018349394124655211094250871352387776499966277739236100714146953848549953101127852131347687678537056783582239654008342574330750918095218270323109319886812731223063556322034737245336084097665143502128453851529406052781435208372857044034381155560307586809620740620296259264846607996433603525755168060218644495049022001473426941039885121862036236080799520781956548469347753043055185984634528885722840382143536835806514123901436416503409837379482171457782064910944041213195967637655971658558444543176903718116618330660074020796962181548253968510212785575839315572923225730219420207293605108845434734468610224393936331509164980667486724530548886281874584170523752938727818603270652822045950497559667597738428925558919181481165076661276787168726014164530574184820349893948070853956095792097840702699400968467007017718332601887662543063605300615681179639321068313331217644896835332942875773287463555464856158225517636009858054013604995845326901532140972688595081392583403328057811153267962061156833031333127411680143505571465128568236174416323562494753713880869708861340147220165633149208134043186221011803626542038103196404395228937172387583884701444786803155369289633335110949092700744415805969880414317828095323755052699938119227698990558608490205875307602851134686337265761942218568029904056483461538695116208215568145364887959819865598234492036976769752227895183960130466514917972865237879735480018951281988909559574960669959755449728866853207146879747352638414417061695356577707502522492202305443752910878373436592647814629209773729057426533898093979223280961814725055887384313261286803238895001641412498634600151581953373359758596605526541081101758776382851696507523982023925254839753632005234420612812849742854082930879830694223110245734637312127625198747475342167375948861792035557182511222153923797267307283996196844197865949702931029501955869058509534975175956327056315898543152733408786021161638049808944343683844976739262399283945633523367692459017517945384366971464850531811731401005945686563377944884851922959311508666932937200831779045516286749809655470610739461241538456001060555151217873110417439158345905757794991491860416426016871022256132178425005440970893040783688642498776208113976907889137427556730054953694797292902388430423255406593425353221216635968949033566686189719036178980220267692845436547781323184900929752711950471173532700250154259630447388332865322784580840243489629381130915672818282795462290017853745586658905719345710629874633349003870705976521313459841827577279853157773178159829557236098053164649250664131069223969597775628012403530544467536696659709487676165026495505241902491180001657141548672328131869332893762733374637779292701770988144650273595097677423383126403807015796325065352069872936427667649260669409644097934528704899691649314162824276001711246796751966228727749346240510078092279155366080354941943726669787689043961925965598833884228674087066086788044383732175732521347121031570601467840711941363887242607386711413854952479420587676465241749605695490972292987199259200996247510882011707469593973206349251328453933777965690802267158649594970070629177601120382375158216353375207327978916176843689908029184747540486098132211291720905185277915996690236019550857443848771503366226256411130096970885800992801453661750282335583834963289040229827184078652060227817429614060841387825677268717501769171066908322771739342362717554948396396521855382035666458826753868033510545359863030838737040766810245188947460287515001631895706048912536332423440900640149174135475134971464411540285213422733656579403337379029124792412321837909966729926407887901443801878667044081433632326450534933926928350523508330991431155537875294645895050776834915916072121747458975511731828050751882085975123063696764907212858717562481309600733548889638454894978108074006279824517682497867964968206539385276896061001645171315881695551326449743214393511776014301287240605490147339372901595379764523112526056545983763322470149530567971098771221569726080488594432348997109880162778978433838340759905952062566100861214555989018994698580261382156753843160694191926081759691826630180297153443371210521483596025493157001166387531758763359545099061855482317912311108215396059916387288150746274652322607968995488831778235599629810935850281434824897664593936305001099790797562524886307523315719114495572083173537708928676224648779177408915241230398692048543241448733526276006997174415639390365129212017218229699942436996687794334581828859304884980513682875806299151527024522690360695095809606343067531476703236982097794823739943869886059852123128278376214642783012899190291035060374412216080549879004444693560702193624096670652208339204079519111763722448949763608450394710998152595650645702924558054257559340531409700514695271603808476423637809461853426112686462380736131190786735847853577554433757921763703438042885454210599031736493168371922550016771158395535529085162881526113059876317520966538328216423013445435172122455358887320214499591733464487753878586040754633847481718740383046745132951844551148445050706555929822061803452915880920554963703545698626872564218162099238796905514239381057901323061755233661722635565962116914925093862708404172441176443947124576836437885589602026004134905464960136148091112452621677743106517465472115978903716886525476066687776614981988227050503621208595031615719053442714556827681952010570349308757626013538568111533677785447385817878197341011677014657006569909518263369211831554925512043900822256460636006380716004802577140353780189591103266621556161912038667841604602619884735929368017731346460496299915572985296355582337596262818130932904024093125688218142521701209679781505157846438983291583315939100280786977249678669723827906493501547694922276148855287501572250280551165159322550065001034411187289546992428239597338076959113352040646253603773997187036082423023256707974183708269739209797905636482082516743826618582459863831992132884924155368171623920685824535804174193868890614226429908844626849663309915615375920699622891716751799697054340840057612038301862240773864012369327636485900648455774229151752811840178272070558813280439908001093943996852672263167980928473665791328360781164391968278058993027113348092012436443694474741788801124849498410855856142755731841234604057264308809198583335313158582789926862655536128959440060695107536959134079177111794383326290268072788960764231640285091602246720193488411476644474615791345699417072827290094271948613798175201239058764049218725135049409591226925047837404891713919593454477220998948053825505627751508523846441471114170530943318816054303270111712515754778253803410460217111683255038606925913451470629369265741817838957972238609612262093710206809460138719387638127005048926890361853986713550108542549499688534386899445982954139426779054601748014195269360215681381499377474386396668594716109409917652191795693747247416018549879897660057482740543672147352554089351852271103796910777954797301612869449079198267080962935750089807135264954821787065060345016896766669684291926816684055057401525326400836343541439616618549725520499828615361575992344149794747506220849457198543849255236924233483966674224112383721529604294666964256457918535225187981744631943978701632223003647279566275965173977734110390479612100301975800098953977774646055640798860751167727153424424470671184990351751562049485015320825083282166542314608963463749709065771068057918994096642447152186182791100177728132949104803355667921825453847028883598771771610397318539012347644330054502536922626699113313669099878158655059814818262234183601928273849849164787928263762644643182207058192413542475632443653385015613910664553008785358233388588081831974039366924422745454369213770791469645248997812341297373312496628959008425819876245483353682391684378969749567692641817747532768596475416758800137562640443519826717540839493695114177854191737387707764610126552540752998851174928516386257554416099268266934812098894745776609101927547861011222065418940327068036642431553281895138852844062799901639583446124216071741091633164204748333401907576631190372374733269629009077926710114486481193512707270342522777427277099284546620599715861263839298744149440705188343155835233530496781581532179780110505057026633161737357117005172490496007387599794947120370262990968435448681027393816378014393300074840709807910267826509459604056282898465128913464136454772958808202640878759420192791282608595298441805432522586934113741291887021097107425663279646670431330973678348618053198021066345330444454543157203473538357293539565687712583266771650455647299370417585408796156806958917397665652533744392967331935607493090031244725028628826524338635677071088170334473078751869391062147470699571776119397772982717397276399657557655254364178805002033823016048431230707341125450103891728253642439668232382494674682467179380129089093155530507265447292920047035262424767412267613860994829525813386677495366941316371314311887925223825954213903109954352346940052570774594811717046102447393492864026784933944538181181122385858877602131399696037265626275590017589808378683075406744618840529293346695229100456876629478938064763846888696315324983072059015913065810045482953615213287057660664078848309669991383368505038232237928073687032592593361024849677854730094098300417581244130365768939294700750833012147988373163576784000226469612833704585366710526653121240999416690615354684730529910081890816486322806187892730542390259791676645372705215402385435385125524002500913308743859005337642949425646700251359645321248541854393399542088161136030768158215890493359107214757311863674390014103366061538064694020732820203437220444898776608734527236312383899506141994740492142655645941351297750140337542758896599723170125070996500199767818971113366421096876818979897016822797856040715006340229128779514884583721125846346683140966247033226977171032297494837852687510125217913914774585389738385948262002659709091172616653598085740355204730980610104262009254253295994506078688928843655480072127172275617197161251907627991742271959726598853750238611048542458520074586864751526703002089270131938374711593676999411318927924616752412973266967302121588647367631621102224613280014411922083169832705544700390242056970663915566315833638663833118259238291120384495704515954601526846349805450784503349785148491207075264936415478879396394198105627181062501214057143737716610067757310027657907737726860454260833507231263983065570649962117861080066419660704646538182524386305927274231651927650591838001056773616610135569081834256911008345714826278255182645567442501338025092401623883497817865871979657773157798650938795388885049670274412819807476925576783032352455290963442948523517273948315159048392400487603522972713526550421851147348085319116214269328768858301201675912524979170226031132768006111755827518781004278225148317820345219995028870879931281634557090645424790267195106893634253222735824581457511679588829133545917480724996554759225401059019061320219221509797414656697763453470859776537797400730299827243911600563784427564862968728753606161557537448072252113978880263793723804723956138385149533266712863637597742965886469288098492436873560001622000323371489873363466869877482817925839733403147778153641258954067179931029630964326371555066033762675773885711654148365083509344140153277792793640623263532939988879924853083350671373638717295639938847045343674531934875985267841720660622948856163887619974292037272578178554125396360420963472119030794537017494541832169257273961919898272407738235772389354798084057517286577799913686092105862582754853760070891172029881256530148598940318676352911731115799964746779641116107742773463583160511411639938034664444371802852998236380652779798678980966260504161004350884020834081891366956871686687913874166782079493704307181076821841635481066592562312219820305150490326299241927695903242962629182354012118596496437566389284393688490241418132998557227947959042318894718782867217423853870097751115739610975649109466008769687568915677072822992076620812479620202482005703505569211857027321500800402502176873384705790350051672022254582415495686607881720213062160377205927359275484692528817544850521709196802714242851922174189329604098053497403125472314650925537536151189127514390639145970517114725748659742912177539728645640540084815908543120009461558984037944443919579564635076644431109619342560390998047426479776395252430149697736607858517800365310916342360313920304078355529041567853860576771708602373710430530776748373200315836498787421084865534007545734539120677412675916785294789716009596871383832541948167437082504845916492237751994426070989419933811325558348217451151238713742926709081615130023057220980183324374565014497910114255205938133240225685123086642191783964060845794581869404279110213307033034357702989823534854728031722856290456141730909336079456494109703742853847769202927012812774552765446659457702845328336819637089998715723728552215857742600924341648722033987544714306090655574353072638497573236514976800336009060428759189280635032773635848493720780106457727719020880002960304839490703634468344121896698216029943342736628320134382897375342726823278742161259607202218594107521287925655770210747675820624029945567245612426154808861994406158102483442957144845490966625219084978047229996975855558724163300657090585385851582587762976274203420057232854549215287068926970598663027594255213907291862196739553325366243397594833603783818176677825976684926341803761176268648255612109994294056557992976233546468567004563471178783187652643838237068170114405877725737918984359048315872693040919900075862787556875729563579340993403815401154832514822703880136708110158284581622081948321498603892243772581065621851596448349311851566155092002442589875109973129350902910455192785652720697721757010784892432507625578876641029687068960599498972541566903510206942215784892930004654618412365859135135535862731768751376306403891889132799053446584941095979142267276472136976020992041188261095707737234897129098138171733201249522991904976624643622279803377681977026216960190594829041896496545032361028589482199629045556902984540501961414501476761706004041113587795527368675138377735573969909291646249092775763280085183616474776312697243405773462660022894485057340991545080362147015542962426947715534313379499300240015948841811521965649962755975041652744649497854858450362855896020476346877959736963675067791052506792891586651431389871558805735262395768897396393734903125521538040519685595238816430469595832277094461988861931031807892107072095508018638524500063014794593932219475534243907849394116107916872037072785923565104744007319514700917164779631286792702523123398530934451239151170420254592712799892301227172901256316665160691041538874636858882110844799969749200862337934330080610633737639903939299839279285927194255148373750924815017715709591193489356449120505965588191871932358290783516658576097171454501217652550029649891421141654262388591308789753895229323019013520443924625071649072751829579017352502572463908151507578713098716422800679288773820723397617290222733119738565205086580873563913228793718259192485813942472698604666384366035135829582932219911598450858240970862919453914256963861456924120475294760511381215777927731645411684525499605410183861775388675286055144938957448310950701348296576526758685385192893391764369207781255780381380781771660832673316316372486124893637751876138498202271492690136129320194220640803598562735349805689808560490303027932397216694789753269181576699470868211392710793316173519439478821214222360624115948004096673452353384603307648721308676612701136095426406603376952119402409963365413520198876922095653037014116873599614185500052026077801706330084545227158001431590829517271911581563396252094064276093882578094600976113446149752388031692505857751600585192218336983622245514428610452289448145596539751555361549959160150065297504234982247933420865900941882581535024127412183028022325822611793950463466201673818574377908626994728674661217304567428172924085048360316219080918971234116109697239096256945269172165546486942984867196406753542024239510473050346102007687672794248013539349953190063222180042915840181111014052406807189992945192545294939488909971842349700224551127771111915615518675815221538085616192666343738658376680576379123031079056792571198314332609860417079470418607368660150867680214242972681639311675293954528972810059729509160797149222828068200076911457133962083172581564366088611979076379349951298092024706941801941718785061399554970518590149851965453272505350012758275447063788902867137990531838006530598761041610643562279756832385120249741127865517903077605515445544171594492273302841145559394129735131214233228550715412616548677657720754558448405753032156493815158608080007594084374203571718995629465184293267398583255026846596696044849352635233802561968286267876412172534988428522237223775348591887176447225573227340244929308945048003886842002200487836597376906227529785738227814225444440933798441560559158511539872969892338982654460289597107860801707697279392859389791052470688827253679841313714366383937503448178343293063012167423174443092384277084314423796029398922562261569624941939325661870649870598638828933254040986229442076336249564051433421205097810894654477106231245614191380246925078742888515080051435382097003180064363890970204707097315820437699728846738722613444258480154346106870660976383154650622090270489869525406619560565988953590289749070703254568421456895132742003467516215932647821790680433358267394457978741458371035084117109453039022353490062990393660118578391662469980339365754082046871562337971115856688350552821016215758031065125987267999407708690210405987275987761183390324952609081738700630455744892457550436274903634767571376348550106783349488163471979194474475539939873985940672821015811606873469787907597029626199206788719871662344105514826988248096188263762686667168823727025591966682830732284336991560920567791234340834460174039104014086532872849299441497869784406688574678510715881011886777358861158411447285694946987512339356919464434828525700081126587699255612646572671890168927939192272095085715187378415826735355610454446328950039370286813137328402349416490724055349582333663623438452003294214133918188432769735826168088440500499458023443524500059728316876374516242230900294167592010600983049587696815854302633157055329886785773020378983669125316041511267045016634185387194145171135604410286311163117107079742877804664662148348253624656952123797920227858961458370903698026378928988370630155170011832544632112383663710731126393363726859414335812667157280776810569597422423544006815382596367484193889086626163612073736161920264232063851703533885315774351334351298198969446129086347894891224245107340692743787963973040078806922305348386857067209926665890108452705184536270995767651599311442879508975699702596823448448484887925684337971371904082879495139559443522663436123350389715771314090273160769488110002485268050125163494954220965352944434262351502496521552139154312351849394690727329885083209464110648627591677954475275351717953192442157743603669915420227150850725553239805522420666420740492778882234642002819713618831968189937192100952427335859100744696544633924975815626851140354565489129541922615327365808912372497392718015616546457846500355471392570123924901163145491064254584003604470907812649945876675603127529665644137147334921095421586150286858183589456281187463860866899145658443500565675909715801020308506431466825827046788569719833291179109665087241326146427912539430148796410365177845970099008789852932469507499419701104652315483639573440652480571304985611234094584532830665586788631518678375190945656123880529719273181619130574538031809515715646466302498543701621627572729207001675698399911323518458046756076549624135255357156860886360468630716114648415069185341798900353669645483047541094770332463599899465460686298830793636252972213677885401744912342123413904023806296712563020415359937677703038175835637521878656827984788814704169860800523945287267633682022819339747851225692288032341383042452375916490070363868513229046543045070211669069342437642418514587674174731222200282148191045930368707898961506853680254768893252833306196022484085432285426743249601435770479686841305533827505633695044433967805049050592923638690554431499510944346994921700731957065683012422707686960115744010060997408590706963041892953263495948599720211285324019105275800356527605411958255066913106351084237792760440611593001222376294335873571286266432461268371068292414941502531720805945504501886054414865753833762061931648276246248443617159130838918459885353437881848397021578140634871210595783719025948909497328449961117361679553774972522593504496003859647079708035068110292383776839292406130684585835562607168374354489888302584666325503871246897148051784891290041821518000649605791426055159225376392964852522471522224873302606676806892505906511749651237259716268306940898386926247777632146674789579191192235812319994004565924731129063219010046688802711087071166097215038078546498996838609544116465630753564358440223108502816309832552097370403574704955939277079934370841280195730624842995256587300206416216604208526849233338024446858930671247121951771344272232812902945112010968087531103774691132750285726278810434536166216561308374091909649034821141942674045572146427142053305731766569740125382656707251441921942499783899669132383125165463899007410398933668917369609372146890415907059954983586415340260775218822668385646927023787410950571811829526850492908351505897547531547448508276039956233384304656607568005543450165559457624231608709071686103499903483446453477234805642110828150422364955805782186725143229324821337374736725872378109241090397203602358064215898444753550108163055138978982611607275890255095273956166333178819862852148022452043762404026895025602991040615005317338881879436025202915078758196117939419489256533817294255379238973588448249274537774652594334731033031413404033963717732829908527207800107318056366292335980425147026530329183054326667111686465295415136230534101147278643395246458271299063950733398349158340738373313827849940078361998713786020907228880347669473898124284808499048121595036057878041924494292056849578951070523711007788908035001506858837559898119253078205130611777868984682946104541876048995757519830597582027559900249390095871358748190386674641410746181536131711906615352804976625229393509657573999753752051943893047552145178662471497960017770760856449802077379463728683334902099046703385494862933356373863020641648984195212001469480688687173389458788313290331839169820661541953510464799291947262702986864230546992553679215674479085294765754068499889696242654577763991622220608134034171992246371664782386790618080317035215616031070784475532379533707499767117523556273527318353162198757284696190842778430376613641482565269658483831877027502120283792073810893276417267721701679789445386451621973441427469950035732971492848729599785042994039931609271120290533729432926141663938604764005235972795766084807045194898859653566613363734127327751426343168601058145425834696792181441174532876574499721910974264321802352220195141345780101694380068766182260270396830290873518562561770877222906562006519164410545653000562132568392488793180285993066070455318677231498348448795046092672949673202937217896671804007300973581864180445519059083360942312632362401991280577117231524523527863565028977920447412229969516998477111236629810761306762043221597404753119407472133595605306632011986039664971357503807337997625887647829695405981180210307489292947593338223949120531441482090890059751386162660325880718122283257044524588170331100373085603866522292635797336052423890354560847802662088929928846521492807557397894324395008501785468366439120621761826282378095369237718426262918807248698774057861536027356207001421568674154196125310755239118243030866906681008341159786306040652516688247274704046359100320732093963317964480940782005469475060531300804647610962853209880084369649882193492686053476891369089006853787549964719920440359551410994376944151873549400265125174509826256215058909643313999775468844245665943270866351122399517233171097294850083024192386824982382504794007041094112542834137384550737470606131408718959832208260705661320220721557278903759975378671181188135818103491177486659089861636684860050832822484260360978456661944103966768539787577299450075984762199876741443864950523229712380805761882169707796947967062419738235270705622665829450806007993089506766735553468656995369262929955376460424590218597435562497142369575903745994971823116274773526135536721365635988873211342710441099599331937161918265221335659583269207331559043758471571698295362074348541599342069918576425183552954721889770463108278144554560166081811967286573018547726123354515935937819447549862322453777953769082380475818432484514292777175205105951409808156984995475516339723787367077313217287617507010091141845616813392092512701329805267130482910913149238342679674938690074380162809265660442309982028067868176689833522552123193210909438092326252072033289099708422762887614619348027548046787967788941475386301328527957719322425281314006362116875822371748798983641846946842311060323921574620732809736681344617127492769755775346814340681665789511484409591073490379078539197519496113071822779428148164328582261431679524081601217204112549407708159970630974787130666797023706788164413971915574732301004805541863245995019182928313590200653233404021061807933117418460361478734871112500183283617304326702583564134751006034206289220981320311633219401373058784382186743992343804181503272408212397339116324717786528587578664294305932650773270942732017493700090100761398988039166338269678659246407977912889968973193520186909609760771349303003421029465619534170722542753603368898260265334354521351855387876337683879145176014527137757963892233136853675613139443373762303772274461508218384931149992163045317996378739586760533692282436788647918858820746130982561177287274572950163409785216559953067501632684781495807164560517627188601566561095510107377996477453570053202202720747855969023531328205568016126202318858171701448726275339917646168599873817415455864914018899426176559329521102655373013743602709201722419106096990843872392928366144171618372831156030282512431951974878391598792924957362006502466662136882043213207886598326058110119418578661059385412390872847223489619989755481717793695039445745947914939041774740658704026653092711323694859271697518020887895603575198168109950506317181620026941956807257579152693432845915090310839383411697726770557405954381362812157923297367061695162881874784451889696580810896078612673212558386786669181087136768400553573147108194303748195216442071072098555629576816746901671567913637629706826063559142074917254958276989000890159091788722707225993499890150377825242180485365311113848691717415223048945654569478474975379535304256332105982440072678672417714786918929377256582165024159220485214436621315569653544340017981687572315600531933444565904939006816543191291406869561408679349711629714762288487535854541684260818395447478784083729881091736649155535194065605498860615108109525433512359561792857397968848263501448770007198964733451427564180782658782591096001502761815752858033659626554858658192634875955662174370472254534819266797404488307418283359328418109079181237459672744705063311644231085630854166666010623240358236544204484509446085170993417006882944325280996208109820154088307326087681284086876749875521058650813370461171483340558651127922551967035834772778178046850331693267134136113201299500292833844264531835872938115118996396937407519111821872791920549498915484344567211991780767691893053123769969801227266232482232105929477476472084310695288626774637673849460636480657721496143095290171198585855499258507922021312433789443899645203769205787657233651483733267155860829137174894210955688403740992619273343512200155592399967168643877113394061628733498570189112934814912648044709598732050489927125556454837247967055745744496570369593967468671542423625025219059212059874196437549976927723350842238069209487099833460702245755992281765404726841874577880856807846700574863080607802679610757652399499229295107212222745642032916731144441855099169492848633566697022272517811236428749499431735092922104749612309371213400055537415372966525292855460966791259793577677029426059448972371053517247184455046139552800526949071229340687765054341784519571656377406878123495790974046858129093431303752494207370193601372745466110099833435672920022280808838222483190090094995269315608776679759977303539297375450870404023749253340457996919657031154714828267855798834101652125934348973161878822922353246097845309712227466645627294800282356080221725900589445765674212842213790496715818270152691595992994046617432844326346783366857688689798022214305434448222160287600924977530346209972578673498537246664228581588007635761392970298032607623785837544711219884433075385667637402014078998564782105456990124758288286864263882569601071017112682968465709760393769829953677608365164183496381758493705199984638355617379552966858903615137650573825143014848538384169640105783051748629042043451251788764078252790948980349045644661908366485093233804569007594551452813418130336376185397516237486762960202960823728136049132555172198967610581000293603900426349725477225843652749501358466828105547311950593049068361636397230642560775017869888470904489110365391853235754954958709975312882238039846791378415559643375171061065022896342225996398562640005933731690119438227903082192114888061663325313473783981228274469201138753756489050861836692612263836070551684121278743808681156248374905139091669279083577592703349798679775409295450974836140864061686303899037280207438508367496532170781358316407140379080766634942422412992670593346147309492444818147609971464566819969373041322003435925947610486999035004382134057698839191555163824214025273684598880081663687847610087145612189454857022290342015163198202843447294563150963184856781103906852915871895919963393850073547166264804859231760207605553004565103179417956121492445439289901965366981162200388595356934512606088963793331417940666943790236182791466161515264802346256536616735670187912846589179515806775621730701795858829073550554729150475477292558511575109735822095472351204027921208547933230406923327082311425071048960571376809721587745103060815748499252921396728997945530073924286032904957725657304103278906620419283372998343337943334099882946094562026249980550479127477865489619424831931999416171615943355815093065140510116753562289700741033338728093503972309103327003623073013111214036981203150570391041680714027761198618676991373664429316313344935996871141168501369291997873221448600626729129529262572270767839980967285769637510931178384812519982480538213357218651038345565667789930794215550239053701015359700616882478053698901781733108383273356485817647599287892601365736331720125231234125525492779144482092121408355801192217014794268326368070363298400118272928621637879830401608548974315290135611037257939677635801345949888681494725583569055894230211923800441548392786606613613214930879960879251703854503298228352415672633878885791372360123755232832536821600591124270928483307722561877207305610747204551252785009608940167075438533524338321578975943784396041004320805970607460138234626974061636602659128691707174002298087245845290794067602975682494050852426031010837344756027596616068240482494756433144090636244428885022028769130110005961896309448774869028261956326443033714667246832227186511161364377376095005750692763520863815666175973218077619095184988042405999770135774622630275119445094663695182673673233268551303936953865476692588257181719464168197186852216814657351383922584136893329759290298697890900516635710778815429627203831607248487460009596701725619386559603938558774066392442783267444779263662838261948572357442810161679529687128685260416703404577686091512012657161167846423397994006724157722419188896360985924541335634222407482204701371446330902455776537664011863393812336227347021606515474426489522034303674817176093666273257337265479712603460666596239748143079509565242060531894014219956768717167276118724156012671920977565944903730334009941508863568977596794745711159581689534500096839512575253599063974648052936557187010322400703403202854271389238578462428162580191191885542117815043195741317467269070656061910434041932211789448348061492549246719081294188152528684580942223299754567526854828578013293938829901527714383916192326338588929886645720458517153414157630498950839391093801493151463703384628045918420666279527139729329277833881327719371577011531937322604730735380888949450941489231406890127381661842809494805008537063755325686453175148970060003470943932660041506144978142444286957540727159121091475771415772849066347320381579642580529510098835115225241220848239241923562764870734940765643099618678407254814068964172734780431390189344984516183940110802572678469727045547433259768405160153222537776238837890615453437105591798851246427878946484079205152623986500027579579775083130907502800984648478575014392940807611584909661311504477169190063491829558399697392143127797003951084486651056116720373594405386903586783735162433039200092032356556728277368554328130364364238766683670305372540255422583517496554316685019753921678804414258863456885020894398670604460665012587955537246638623384904520947366132498438871736810563214250038329975314317217974250558596500201457130114541000458775086379466919232767293138767509017694328400018217492240942464656242150073912603792669175732939260484272082164620371617199179004293955542591108421233357601195420859725886853381631109068459343945815884285500792088906223047340459985410423566751369525629815431273207903318533816283855918596863199593584304653674517749090163979397917363231172015546023803999664324018880519741428078077235166683519298707745411537454796390991093962482352782941678048667908273618640667940912159865622761405373971582280262012528873685989407543061524815842472655640949043590717533359310384911880890756080572810572108686448746354031715528734601850114566538921517183490918052520539490184525369997992731127308836136274172800451692198498215506400879730976635005704914301318891369873793078464359978114143534843947012381865684739086899546767376118652410642090361339788988432720364078473009018660681794537618630357990565229218460505228599829366982262137942834995993430046327531925274389824237074769036176213404466505829444250492786624179840269210732326555572482524043548375490958518001934392917750919807266059935155398691938819327315902061540218810177975939405954664108252464007558300607617667142578885756204834140897116532684025666812292084417938191195855383492915743262209458599203051466834205769449784040276142119866294002789630400019021038941150420415745887224302368904620250890683953500177037729691126406832475868743944187803235295907462571929407965866159641435194519844673211099340812783184453896268204511622882764945733620605084022825123345016742267073040286127724770612138189779612343569907490244743521852242429618277533083914797224999136483569904809749218495095385783056163458406349656169245906204051421387609082337654894032940421589090148987043801484715502405080221795948232419505474880545294714724287376905192789406447606302933239316516943610305152845926299729203463825365419258451029545274671483006867741717270279021608992136918463215017522419562509505726755086934259532337286496096621979747381381904114342164508215469578287918391788892859068889977701607117690543149404456327489867552206143579952710369566041772317778398010881700784176511033268963564673857701349803564727346708051918602822339437748671495900085931231973612843727934929436590100512826498431527541846436971840938260254546317010883853447760090034867491321501806667054595369259900575244119917093111774179652273622222078401145185215964181555747034274604000777766165067872668124760729578199790239516375082055844811544960628561473005380464139090393490596818196699604442349583415366863030735797470806643188478326459246674923240785239737833610437114942898957895264069209144767597734417087359653817474869541790727253758698178665664386412173503586471366762645363979378707780960909827046471034232967538308735895008910285690878178694622452340393138630413763617197228077993680247976811090030475621507501858684128534924480201752791074035090959702736327401308814000588943556487457960225893031162615795100986367420426837221514395123050857936186368303219032361381848906547722835255042784378870320143632542533508430387106641077522834334267315126348152219312759052193386777462269337224755781365258913410000881172936925193839489077972443678941339414963729663752885187658446700203976000760253946502227396991139631497861915050249034015114092756428858041823850050747982175968589383116606204703501797343573593673430512087236743126351893782810589137708817400893758967655610810953035870344622243385410760796639525198038490933781219826511613396155621015545493352865297460323616487668892607019832584419933829746140541600553717143794796248291951927256269658201694642109332658680670238336087243635416111436129022728481443845764957063331889896225214958364566443390515685366888197220578010035800288931214708216084410911251240808659124176461224575708103966194320942388228416016377062714621958008952638065636566191295214376723471456915633752647486264200514501081135348187615211507784040181017889580695166650257318381964731294464128550292011388648859084526980091891311111321144726385916947623130812993587401060295166051125492632679896899377775174976377233751103586588132500028878342380285086110334051929059573558758465383637668505948085374651887093840664758128559842196636542491215033786446732502968824251356531411677634517621883276532508530623180937497744655761107280752119202978252351167565908424463699930255877132090801083370634291981701101724821850459584218437054548337537765798170927824262681749742540487195232269758752758464163059319079495349266234957511179505558302217639638647797989546083901480579291444672563475500158003861948546109782526462149350039749484272629707064179726661686005493825594096460476852732725931107727523308703408076468276240306288384632098854255841051515586466326901666090716354181046670880990795638904263838796465938334893026094663097634450757778557308295915203708711652795667205553364875983497465105243350029087333198793014209095893363160482481544887844658438497958102209500364583933132639223472128104307735383740132084048763898636510877311686930601567331448101349637193702190997518448834045081777839500462150743336799702351610414302950625364255219265758180964480391422552271271351788124939947553383251662327042964639702100137317306461737060230989072422148742660441959160320619169631927520675533076268820485791041100808498033305794918840504670688874504886646849605966138106305215711071563064975995804546835185561753781243991746589666509713844971180138484181656064506532155221369941374944651791112435875567496690700783314433948121742649179813872131860695916807568052804365886924633476964574073381937438833209717609208980819121174446543338498219827232680261996517984181398566625126474261746423728417550393992701019647274534729712350784830901594089398463862681120920948826233536221058281886244581596967655449843204028444823873057007783657583467268364371653260829974194936776443408725052276548084927460244097838842329994493478628368582789729129158270938067478856270047275575168715300896003462316112486652994870106364832282344255758537399020338978710308857412502517914503595949424043151367551460621421275082057902653427404237785353544510308806635739931398705639471698662331860917463220449664853269301128034708427714571548217995460786992449409448654811378478393320018055586857797558078888101978686430125868969958320849123726324740897607326284440980178217886048268335064511863363616856338291258863341455774247679474752798354112965834813234417790756634811159769080307466035664311383571185450466103142112593405910552507895579005482928367985205924717842023389567562994240357267587754872600339206930041838982365731727813172318715256092940444602220277609407236900953619663306467048352775846573631795158256278742078633901130608753453797204035114425678405860850729603277228720469695545034610257899164828255373678291337432178977954278472520325680090464506707059155662735824046467392957735884422732559529308622463577496675141567413301808374779565550041871075903730864092346450737500666046757558384126814819664414107296090569716272838577323496001717225008277929046341539783821743074564062239332114595116298302527321788225846753279223508067508578353693447020330792445732376767711488069848779594453554718046188511499617978160642092099310325250512406891589508934397002746903886620065761887789698702716671600293060048192849124368293499248264694373114940516332842674224424497344466807571046049025172290131407430704807394669661554417141726403739876875081349798854307183868605937984226771651999047771503064171490971874671616264757126848668149413706608590164696364608343127635922525173308892436720627635990261619166090553417448275972055062462396673580026528013616441301833225218996536963211730044528343714878243161683427343714887649023628581095458634316761267556108800212355837019199824356386996134141893327146728966053763522703437144747665690208012172189393345400290360719826975426760000132981807501196242580490465318084322002986453991865048084413675350963336740755532354428779245326725623918208902813219147773740903312697331686260458543294695532206643369583590137316965703891428613274920322828905117704698443773953690606498970050116756798451646399401965978909761264501832085350001834781176875529693709613506659345226668583326450274923094413158156986477300031667522890214111060184356791189439397536191296464695123491041713192865785083287359296839107910912456134201994222634783293049324156341716283013890200136802727922020996457056550116504670883396911516044081667320787619838784274868027483456310866128717062504695533535851881071287914004164840670763624302980651281001162076279792639439432195303407644387715505135985914927342127227572571389057757296304017069836024942879530622509923173842792830282731526174807087260215204212216274245285911856132872647371410318616983898755737640048543489221355793029786087479544347839361565271117566870921750245543114782535394578768920495382304672643950425072840040586407246167973671577347207181625369024795305102269653136898671569364898516814656639676807940675809337368816685450908429668194907672455931157411542578863458473989135996368666710190699450635248813319713214757488051469026649845255184599962939237395757500960434774736374003409788478796755933865287550883140832401270100672786621957795111959082566630271223033475580304929526998880809207182775287746286345050227532120183255732930797103940893390005130889259810913225558374338043021451446796079326638071287409369556596722246673476008370200384773736304760048771554736785269809865078520699957774528024048824329140532831248704949419539169857316196622179002644222540035695572108685562788064083612222051588825379022197381529227931893798969104256745075677804412833373181638583539174533853315583734372290262869698222335821483455221310515182725819996320486615356381606381855752271498818255693199471246591755705899599497413589657113932594756816650675696066617778836657331870374481793339148677138538549627059892560188504180276255790827200016107541511370070052390485897521715512745380464702288042911217945507126083109595371527539603322295391576095486253203597613746652358225271039649118439227338626309328804092666062545802370010850165090620463803865395533183056768783004390904710636866591285519880342666583104529718884551220497669764667532927896488563264601595564525233211490023371139909672180545663419673240154325632433744174656417486654151216752553926934402787706327543246096116669939506746588606589148232696047565227562898726579210503457033786892279676811089732356532400797133380329481972487137333973233358609786151437338568725372325145943827038793063326620458487542989609577734085278469454761281073847246760609255379986585036161104258917720798607802743985858197647332223424480016891129590632877229528741478052605046270794514993087882915023581082501284459470101441621599458595998533452320033654529468747060061292143158655805770335126088727443598076463920936455549660933887700976017340235405489875070658051097383882034744443324033374810854596736287195332761150456097671577295553720370883085420212883164767783979348690928146381160859904214124186149410756047327175414963533862041165357494465641291200623058726900113257470648013125213667386655996846316325653066349105333609005696999582474999179295943205129151762682262998474898119474723847418626724541189038284679221196575965147608422070921474952334990106340633969901964479658270862999339149815025748602351851206582681753947366822137849571667133601876319343197566132239949477418015324567417292262061551818749604507405988220788050380064520264076635638547004121675949374768719643152478464123684275842842699068518040037175176999115362493030509162815992923097409343574033666016190110389117648389722428211894178577051778799547155406145026818289958547784538749909213556595595015637297556889533112055122133861166099082584244774934650504526037053165200442235816426902568943569925752189658829009746888116959914971340344852728512384108405624904339325468797795798061430088158496187735738777835606906274945329013659550216242230635710059130014656476321320693497947835409733052136356193364048883708420702095180739388867407857307897213521905627225340011125703574651865105894592154473390498007255255922839173035121655960828692124510318946748246541510519049333092904492688072960900049348112928219698434946229271324120510408709331131697668413981797977990495360318427967361507667994850617269244229701769530157387119432461136796665873067212591286627166719906929881092085625977675226994346742646517879429983016489174490813770259843274342265110800047461924278863785332904161219402441733691362024646116178386767616832627511721453416608957366593780658223787210217937938313401316590296536159816710121943921892777513585346998218257870538577555904550462772871732925494864676077132420666272304365886416362181509863304673771198109087112794376256906276019107198829311206032099703705274569839821974948355725424686272685146101956020783277909929411229360320611602735831826235885959042740452118484113136864169542868170051465366525014369616408667239899766181608650735848836655266874006838555180648419789477342908340385488729677137514841544168837781456376769323495458526082386378450216976129182438717477024890208807319031265370846930112567941314849122512991443119574334486104691613128029378878415078582302902851861961847074771083034007680129512969254311570122400076507820251300354665939368439557491412453113836901557125604121459864065141167768160574279336252873045522436664390767932067847216673469885891810419412808343197206153532380643998314190485578436434774547387458114738564783707946642464773330610258679294191139313952009690916367907093793109502140932937115863904994275024087435254433706647277157992156927550421930351702550114074262524269565556281381170324110039456496275802389806705873642127906911934514040121130727982517267264356453200928850291292646285417166467511208042101199729495581010115655172176076189718972313439640164736368458873102810457199914589833168859449558269637566169929623252299820537148896630234387570659326091653511835517829138473923592693524437263060493045118225470229791274682825944091608512458875882939671430597639085435091550628971899549029915549232162237904377981892787159289364780254929001133052464556452430667631940472090791319643070134495267378501357898694012797592732166724408111508055314461547542558569853967119878543516397583886132856985630600072533684062826968052949000460922439163071688407912305156584728651506828478763687926771881338538358181816403510434193148245656089459527079744056956754078136406769213728364570116883602760497725787117097220465266361563850897782656516508259201344658286290722747929465785379122462581980732964969730079066639159061459062614554852321259019684413066587175037939047874042168876462336491442809176058291830765041573545349459985270955578462140846970863368154807487340372151119859934805819680629125262404098464054995168032635239645254103054695514762331680670436913010188919355063769772841784648122323703033672570445649629902778974514725247216936734394328129763103748360053375395942465547198510342259814530526185260411601065155637637387377536645929032867579739760914869434273863236471810181199487312288472249125933508799834025033911753478593526224536765532942411338996794028334373958819611022663122789431985175587931464183236274276527372902356594895081707163089091536087940392900770399445512090488051771685128362525139833756181687860568478666477733155320535921249850574338458829111251704970512074794068797713502982730594835686228017413221984864293744198898033952647071035767656769638311506701612527529206371594451349299336980013702461746916525328963581427151291143221727998695549671527218270283460001346569295998598563248326617315759099125897226909578044415578216484342034815148833774004732102774808449771287453270909045872666297845531248397364158629360969011548533122599217470194454945840615133867501169527766799425797160924268565804430491352784840292381210320986467269659641264899494333198962244892901214902163753493893611304291520877540705624565102961570129941584255236907340537754627242251285355543705655222976833395680858321196973363395792051579785433877254974150791909150476394909338638549776478659608927493171669903828166960519066843991783070700071644689576557917758261310767215995727910857507910280559553398662349632207158285191990307621848100412504022634805105665029684856692871877591356901164977354202378038413383958573164047132334169325818871097841281677411676131746900536760599012530613321254826515967611626609326102493183031815816010724066591077378784515844290412334331106379472057837978433673078308623262854971196732514820519733653171463105456232576043563504252616809488435934499057112139745073545113915423098042528188243567342009342130406051493409375925796806784298658116145364541538717564178178524582981770551962325076477718603186133976937154802878665728733562522275936303839078829241739921697058856251698921315880629195182692517755772198164621394188974316411516190972307222542041185525584587205809755092276553639739024386657780270921871619435321319785322028206256405832571742262035148300635493235499706695630921292813353973258989414663748209207779350935512337814257199769380651828876820949095824817966384506111485425141952473956880696069666393298128237462845396961171632782254743874984987162831586205879205066676507875127098469695767058321083685950632524968251452426612182003083538890236870991082257614860231739779331205474467725150671713381824381806029675490498799028927797690836566798640991270510134549866664307695996805534436746557725073015806525290220049217287173295727502878180059657773761591378222529952941463200473556587465885103234093894322677638785147475064333258613480449609469998853627565198254955619662650734507780134977183748263831399549349602040088068057302846874093497922066913664610266672118674034285697031001077424343126110711737800621426681226455906580959373679810987582211571209845066364232205273760141971659086578007872917042116403052019750366750033675645198464616989450382671354815059584555487838718381124743670254210654684862831922772155095006805243773155411450611161477215837230045189640853029055160437367502756751500875514388778995668271768163453326422110242490927911038579671399496257239337345956803362053200910822110222735947117817600588336656145662759666410065484902987440437016157949725292809691178505084238436842795377199903916722879310131141459778628669304879570200195357577863365155656799201603905060484640417027574814300569499513765771086514204233674132385716085150148755259513809251941906346617761124447335334091780306918791369894916611743628713896532423234735050154652141934108599457351792909877546053385584428955902788187148807313323028664901383099843751005303708898470083748447969018770348904492522051022409465199623549291010979386191466566308401693649405830603393475825195429138105468618948553826559764957054284611802486435456997523674231280679050675387667456384188890373352950962965453328759776117606025214350734031544849052924274669571977069173525005425664891487874743852770731051061857728575179610312990463728265771244507099048248032831043532647165416473031388640480062857349780790310111594463311871436542542997085368049022720997814431303202327043223505203200565772547929164952399616810943194435233934147230461022409386451324000949797202455066533933021815545098392821604727337814191924115885495464441647455291189193255555093899019111919757229189802392590647051563568435242256118287677186030502604007511025885185701185193095557761400492193456318012757844152423931504388522252791536268235310841107156690505934765784315532780598638097585424191030018191332778943878262767090872001443868010442113252655791408057681978671636688326073114846704782203003099138966684179380312844489044361256547988911478447380367375997837888351226876339576284517864602841320085961945368134042544174518709682673202192597190029090847458836483524778651604638460488279043491247678561825828354818028761872787392341334523168391217267127004104919427579911373218258511378233313659620862283695162154672969160039731715834185910841049876422250599604890301097525587396121254043863932053747451727127558153066286939690598701295895076299239916124351748377284654847205921606207195814934104441695681417357679075964611936454070793116539385869683681793790820800443973073070970002389669721319073725575530354671475306375414010788644392604097286878388398854734246747600241658365667369650858104785183310752451565453057522814729365281586605314991165293117023551132593051900957995625552357918567462526057784093818747935196575095488145868490389790626157603680905788179336912215931185803897395668012329080106118501367725314941823234003684836028412552719678819310558069047663027045630112231778720758197767271771414803079860157401041624379039215414309029452544847179714469861590093247886407924027530152289681990852138348023226120850705715565732807612735786471265155939583284527525548696988075490767719421234482793848790432386441284684231022243171510433157118754067683406726474864309089779988382237278651293035752204179879504800300093710702050004939746552829392877289587107424727091872918047036203898315027213397009260416650953949072343995866048375605805767043912932471887287866578266845773879277273910646281218743521254351924268921418920047539265116492770327322131183593427663705475819335199484764289343876801900211175084352688101686541079806801432547312032976850180715354289359876041059651927790161809553046268928717553959970946694537481593019236487583101049495942334811142576165297041674057187326856107325358760505745684777395851873073948390383875610795837718384466291010347353486222867178552806681207861512125047212955140940399517689400200804129598170216189261935885581460316129346889287287638268136875909340860510802196115160892798105956634887671575546339876121552795721311220911702045436346401933308329598773213818475174269759808966470207226661282154250303920453703886884743663633580965864909666276554166213870323199966034882321806304793797732039588242000213446684820641339057326300574522321064593749731959498456393765086928589492772728549260229559616274289785866330280342711043273158717687591570252082419981427150075473747769743739335564235884404782678306945127901316314134929253481715142634801557943798173424322195577659312823626831432702003628760137139227730447911825549552422539763697735099014398151336178131845062132422358531434926901398787464902410945650700016831362809095267109340626309997798784743506315345264277240743776408876084196866474465850761533603249955787222618380298068472827714740325214172614314669609689454965771544851729062818438710917385463374300523490656181801550450439313498377373212582430864538815355248024071008221364174171508144391689953445693019119256741003854274325010729434610297172595585937354423126851017318553738010355105439023076798111648794795280283067468664214293454001810713883841569457851326271369656163948980401499977991472238731773657180482315504841365158370955618453907023581060769834625810900070312742158703429448101325642189609445734976350728482075023761815812922033437879745494875620828325482210157939987249716415093058797658102787236420678099642213573461090581414124713340968472862890749803656594507551716233565370165284490798434972266546556222134734208223233146959622893536649042075133412866929329187910720534314096407467352064832104432063175658414239053713366941885108415970542136363462349452539437610788365577984430598543735877318011973037200969483229785952930117257074360118322035771443316289423718256164480909605860814782538328212437660597646507515189371364872022021721221147519703253470359463380641825093431442579581645087107000104360066887244244217954169902761146613055967264492677948982379243540002693890738830549454869303944095356388857407895428072883818789249671957236883608603966950382129067260071851845218686650799233973103592135796919665471096293112918809050346333720864788609627111515711250161876717462082841309005290001519479225217131203726070055577390739302174465132567555635662108590691015801196195668920440819472275680008471907583237104847837533361143797025754419664820961030614491348194082402687146449666043437171701001709089486507582862621775031377978473298318192048137337132832520325659160691661801889485460999359743492349211700017507806188158987860215662526210813466900363398705762933783054684971833163207278767297221181452978432594454316571477766325388625062152665577379411723202046054328464586006050422718721767985410252912774109050443097634283472307612676939240121505330850471290078989370834132753876529150668232989345356025768658437960989023781904673518584541542656702127284661736319791505481162226783594013860887594594864114915222796080882284015435983847672732028252647064693508575896652150422313100834875398184963813554023578130536165108577968449768597470207910652986998478693641897731744674046566993238894211915591673025270694407343779070574517295851648386847781638623376167368102328841442541956026189439203446844446101002732370694742916332219208094455206979109887227627601585183944253449774382532418500952203208104329603542840876091850102423219441922423625759117779322418114892191394477891558334738489180205105024998390275382121988175922152151281755370852090586909223517667675470225622595975294068187408029723956732879776738828491648333060913941363808871434708517233508052697156171900381768736629977741879196728600042078322208347956588292141644660090824984299465722965970051982468879104403302776443593407137833745710526022272286922641941125101431805426393983535707604314595425787997616231977802218342255818745340723101446098827680159365638341212729275476805216171599508953549880765884902560337798961147199999114291720431160330107104030708417625761560066424614764978552880967355841810280926218067569116300735202994956774695383844422978125761031155457121790586102742226336783570566518270206004662070600499196592184905457341386854875014543099948000483887966609014131398088695964748100506837182078663608496526487913954040005503269078834338512705924655225568178792341237127821947123296100050980524033089506338907918963759701251124107081555382671823867308582176995670913129699871330760609148376177335218000439029573173178951026554281587962992742669070261370660266504731011363557313877795865130913431637598898383670999382433719357689593202785421030505274719735877531652997498186751314778834162100744263005944714143929353762556337069544848636083950400278332198035546315576400153931271493095402487838197246976338788582258596522355941096931027289236432893274911108925232668412231025138041242050497385260744526373172050331235301908161627226546807167479747255609420721110599348605102707313978466166662603839312491421895229496090875253081595051405039469435093869540189805736549169846957607559652535046853491269197164059560342742523078356979976479870122616102303937396366635886477861803346013358885895555941228577185597963738594655404586970764213407595499093820853940457540675101607116362688631296045505780494068121364549093280419831380060963532231979467614754005664973043138670356356176595019421174836729447455586647806624698727912068431625527741410195659152127409892147798056545048364674747446557116666509358312404901752733231335676365810984564338817567088623258678742530930750837143065251987433858844232414199130642247092487817426860976858875953565262144057989337019640817063058451444167464720317948726258002581122689459766099941455436437631556534663459819819454639787072671754359355847519562750156781881780541211882978867210310209305613474879798384927916728019284282918785075102659642515040353107515856824878550470799603385371760304409993289789817704357164214863095935517534774040820357959306631807764951842801387038827023830498149199737158465290704863801373918939529313202321122344168050674699828706358854002765596274538879923441570758000769581650740111694631598877906398609701974749823054311254772625202671727739940456774159769434214677097402457078573578855485490227845492622242259684098543335396416032539291933143626525914747097474265910254035378611256650616216936293266555356379020035000102160023233487948984767114305546936342095905017210458318384287808012226497752842097390752661091342772907116671598309135929669333181635924541388806446539361363097350441262981499853399338795744822956958355260070290524983727475712918029648512198987182361158235860664579235617912474487850206398349923362001995835447636676268816244617461725363389888677705058751946247068993960064734760044958275915518580574871415836794610109595940588876349912235485686869756713249785671831584084059328364132529878139274922959382086087805375268966197544618671234068843071237144015644436769277932647331954101309691169592443692037953360312864545551740806441442658838400631081684176765120250104205330349998625836945229332865836814930990840969888761117381866741906600131143546601377844776937083345977672580624226583751122595093072018203404009893201278598633235190876637739686278154411090520790902532247701660949494572183561894807510401246639266795753133830386604944699512316894939102501218030035412773255453334430118931481767976208637258402891229515965503959260222929034053900515443714424580263449771565007068285670498244730350390276318365101858411719777111982514370481065134942896922183713585722828350845100032233879040829784545344188105535612232116702576957791314520998553446926686680152809655290087761810671763422079180611339487821492129226124469446647934259322081092993348473533993662241506962944304928578715380117244060946532245280400151806606913166038986446477212624954670465698338744423448809066976235238864095715154511710522287153325767847147895893768635283284453626717767880379870696587450432834425321350276356207661930510074951882230259304397617461783991724203743533484474303270086619495523140108059951323276001103972946833615520725654707074274342194289165054070292055728952812895123899897335526395237146627489338530401296030731304210389381311283161687520623718978910688321066365391163698327922468252056022112626736038355523176984484341805321767178355998276268478551772714745801773294947043726822212133158622901248053805817399449388647998179446172500970574874669018292850754233129154961682095701433689475646248019073369112354218419171603035916848216635406569740812186849700456630572373916056561189543594605559423041873807728758374146875889977065725507740976735959528603392417462294667865194008508064439604100498089150578591943386375643272546132890659665958687314574243720970993346552918383488420958888707137372906642867787706311281037705584918582401123043489806982717368333136951825545869168648847722432376778520843350882901329340526494913297121344638231605723203190267096762020473582357447355313194085657022729571592973771434680175573068936121741116839732109146126863696358314314443215150576831177539533203735805880286266788309000189667960560101533158587012880098698199980689479319425801892937405608156643725758444410697159499581404757870864651981361489503713758089582908273093785671151487418463985625947739793003454721390403464028778212176525147018729644282859768012492408854360373122701755521894295420489117076300390193813191299215542520115831821916333627508947791970677888371748909286905219398161118080995697959063576961672936519537123235111990602783205510752827199644532261802083401351458011204226967714883782713868818699724067404643984830292503991534800051390795600827401443421753464137061367159785502864531211785369489763658706647872019502817484669476326042790537921885128568852767641580101242168871529094571618085566155272050470230575058170785506280516347403269545286290156180082351407399902894435220592672800328571154972550503681949984859926365015819778368466304156772175250669874965087041870810685549939298532963427045747745229207058293697387548111228352426481324771010428606013654630316193220807539132363978774141341206075173539789734867090258655842365752744417532372707947585294995187630708385228818789760683296894413459366033574647281759331246229673369337617616352654098017924495070440862064640918328106668354361986141471748446233823475483223393934947025828421281202203100189298619947577295199364523961405521931119284343433244994578713179694153813086059574707371401024906078576898486287222312573705700064336476511224022321777827392220440185699258339844580244968224171353226309711286033756476942830271871904558016158431656299521795640388922064179357776471217963785136620536898432579457524829667860885226269568582618237846846882794071071405206379640139532536252229911925929608886306143382825173755938894088072605594422939684078573449672532250432412829092230172829592003015087990922318930761106558544869221365730562270377031168007200690881995286885542892701948801150968829685554399497348954041458882630045322745210532044856351030769753713244726797830651990830406974977707706024567012732066400891935071761307939927254200605378690967366658481843251725098992914380948963720006210353659918712597033014268694925660576049508926624972949047667489809132410226012107425804204680587352639442182724936475926750242380438335657896195284163335750523123718000847494387352158152028164601813348068599098793377134504716364345281448935681630293860503996635291628193895553762534119647596239617213397136138589982640992027999916910752189134283429207469192490058816972627026386396357444685756932975987162168521412350674829871271455471607669460829796357206518884115611810073853443161788326370324253398984925583257197910362835671629524371931466252636704986111518344053402506038824128325753361882249437586205377364892925631802831030813845028156553509489355343457636665008540191718745807397998658468870712132569307022070077979742869174089701394717824552880957280138589437077708658924956884709522361926213486080642362029618732260025358263513284701147791521344016927451086871606745445516124545670790159501320457175686834697590008690986479535893177674179791171014812298972347578466446498534955004658214177425398994582408290797967638109442442461938675875874604546118682160565686746261035912106039486549587336214945874771446782895389213526292196254994590531332912450441626098306868666197315975817213953043672979229581238621316992848732449711848332042880090188828575775773680977573062010216213314019361198043998329623741516164685015550467365545799482301239047546868905481970024826210471526917865822200551262281937968899239469835275257797553335221690983223061003312934253200640606165663215518749943663464642966135678151910366250765483591537648428501400982510557860314494520809030946603760592617657053084857836495672645173914836373624874295572965575162467450452816265161112882539328006343030843050614444767897709141605678890429389442450374794922366923080751870948931501381449196175162475275299524795023167336411128547468248006886673027286405444912710158612257256164847566730613597122549569796880171552132862617360177083923043930771325206973022320653419602089459617123968536825287774355757452696756303741704163292055621120731641243988163652900038665584620960657688709871325020876283197601460356635734780368841245116009458810618892909404882239905861963451303828845335353006604605906752075793296660015834723818409883152325345899985435186054861646793070748747400255097877032453138937533371774851445503724420040927515089108970882399827090000410537465218293654487313383392389968383586542747254870379792161287307711698154621939364517866052692090773869361722091083634529807249598319823751372100921155073263140089473836610462725698943205080407573388478335614392183351922307752355219077892688424932640345606303471884193301725836895191032171696743758562203519744709606234701402770895781376771455068849118465834184095443472098651456226542314536352074558844382112140610505172209258335843005263652232128086791605920330029722577621881718778588306879922992450958087658941036278490854825282077251253452919029453485059259210569723382423663267571069138567643478055604188363526022271643947526299825411100210179017033936074483459994628838606184728705565288165905471366748004476142765294143972368454442880125237778867108998487173984827331961653052378872976388640638904543000896278509305117544460753679909140595283260606594562386080727459164257949487963012955912659425898909502313912253994497081979271886309383111542496949581020041296748110888648921754157737212014222429270040696381367990537875940862209442606900324997236832125029711780552031171763632368230797412514695771016108220127054366033116632020709590260372601391446629176599405061546855719418149147847852603373952438896590947596706818602561581998273785398784600887200748959419211125919706663042577051799504290617467476643052520259676947585369320515189656666669674864434768519771451123430678968731932964698200851935153593491920611751244726409623392708131954871825272134547104416496947132640369400329420819211707300634828663408549278605913575984750598572199793325829959111471410226968464650045305707427398600080442164669761996211215055990920936535849952467607116818610537249580171891074132196672586330109248867016930227128450809294658276797971332870129113376770209528729028413679891248140744390392452882343489802353074187186338911575432618801549368183180806278172440462865077689200442789888586522836392022272423918894627869888755986107061832981116087339319041300186066756143067790784672836313772873703999823024291674519103784091099172487612276128989161654517998718089055081488062812898208870391563627935250940732629196323557097840193099070440613073455104899483083370965929474311052919312179140079032794822872732210425531898631860896187696550540945559753587260795785431949710211767523411052553469366516735062929216085427753730452908133904454974633765036709224493998705607354279344107650312084293368798905056093265369770274904693467694059148614103237848453994911285305367930974233987731251046052875175129264204708418514744674078751809473608111840394924650083428663224238479891522001442720228038695716629406805688408304328657543032774451894843158238547012749863772983699681831356529933998538326681501420345438221232234085116682462262314036844376461500053878246282887113263035814583789071943426172751514463714214333218290093820711422780747347344056815124583709060973953441401353929176344887333537837623082339683951825855925960491741655211098887932877040344918967986842077869079771825443803019911238917407501472982258375471544473124460655328974768271958837114942879240281515164827912271755172697302587476954081947371701226397933085379294948633239939094047441077084528435944088822776610695173664798920314704039949816288754269250132023127265001080165970858106350684715264120129175259018652805758853915724452314392109293217182157086071713967111731716617734604500034635279348525111551796767126887324006935183993173081835683025669389257839212803810859291511452113910468748856081555372988732308615295105517043941668166467461085668081732924625934073429916881494308510670608425830406080264787263510756269438371828123327014810941463081902659960640125493121170630416575728461553103308279520109859189809057558271545109845851318660824375143528207056545499369493779523544181824427844353021172572248463297789672668352108847006759665755507468115333326440136961239636966769077602810421209162268236679439139032710625040612241026139008100304717176993813771114913843609715836833426229519342525994556731598409838654892391582255821237544160715206003872467076670465833312751007012190152051998117853106635613417134511071041749831164602546155139614746953618175215420708596011714791317336205219773871582437315523704081628678044796229804810029262256066826451198274076979189621441099346883977374526918082202276831958623206154400137807701655379019993923039614886423773784835647954674559434829430095790490566703704297467979936205531921431641449692884401091544338544471532170314242122516432858688019432649532322705877565921093543361827953369363052640785298108135761768863715059276961496688332642343944899647694254198639397476043881456577100198399911004054262205849673977505060603732951202408019767280383528621802814517807367393885480633242527708466948342159220825152652828612748506530964841736396582639139984687443332988118091305621450761972237116305981598557613868709264701686671649846977653036487206643581011193297049621416702491214953518721252431841615064428812386723929838894594521675649621671959158106176499845140920073864033447868289792386069628569906330675830200659631408509235450989810638524428811481231010312437744908266162367496549349022676191806985444830458876921099035075013079622392960507709157658532311729816116362603089199599376376025738253394824636475296163045833132906632721339644108460764927081249965956766967170261997118332734539526150425381817355943058116163916955079695138354070226563133953469578972204070627326995228362309228626639866859370710809350908997754326253817157977772538674285955563537101692373782915313932492918034712462574800118600420174665066323550498919864426732537896739967508021028167876678219428530822272196485111514515948895271358253028292641590682291501499524119960834650567296143545431125284021310443064357586688862555988026884945572278019508043266292525377731878374594885245332929596651503999723744443742365793348361418422728499399577522324691764409496448840227454283071742769382725872655308513506004602064741384561711091738628646556818498736722022216578383283534582953887694945722690907343593818083414365044787763702202411969775838020521339910976091461550121936943090215882532673310970402038855180520993046640473135032047392564406483387790525689414868608614226550020036848150242690055821464545490555752599062175407905315253012632820533461375441851699059058631502635460064706707815047942086756124345492356336709992827814349151523011934772413001064351713918882927882801177278969115730653339794489320905368507677122981177461194167139991608482960386096656398830471577729662798357750818831551644258252919587405204617386993625645295582305145584757699888201538431046143316375596651084775943562775582887369570533084812517071961609314403188194981979316595510237039629658113462908007843482364334299469831962705016462221368524675300970299150938366120460306703607598594247820332230058188449881661927490258571517707913146750481221487482881106788513828577327576928616680881372427457793388177299867275782770724296847005747138136664584068355944502834183299326118855594101833550366144358918303059520951700369305464561925820471463923744297395656949838371769912349604758797117748884741603446685995023473898804907630995890045549495282007180952430115973591954771441920986519473424110329108080060881610678293208169351172731352430529635645574286290498017460796343131355060973615509580812657847805086272191847056547424855062796084561054501563391173772996629834547581147178040083814882634460300000497265052356478165027929944564862368192934404809971778015183238006012803515067153802893562988634335602456230261564657469374185326475328580044945779622082447691364964100481434850712954906550254057702056722829471783813844828640215385472231655639893450027541348251800446875161384554344325424013645456513422368149410435337863788970362580133885939560694892433183687225071249590072816776311395872136753032997879944401629172287984347959561675321804217192077901816752469284358949883574547565116293961615732468481783836698794973566531434222853097403116755979624737349791000042678771817510906266356698527496765780986517885758614389267054246016638568510870518291943685289104700819584781512310997363504408804105698442949112828061173737841735483800616200258655411438113947143454411987585593417482291129441736184601896780419100100374819018446714369293863701823026445285637266774204853909530008408390953770793792934626746042416751562205336430602306824867527814895876554774034435292960366794563091857870187191815602853830381312658378636494063014968926281921001182088749152276993447301735856896248345371671924261891074633198260608066511587549523732251905531929777886349943940387822272872338065892924446303613901370199570974993134215991153962859867022488637026781316205923736993579129795328555924605028110067233661532883387666753181833776150868284185649101318214753129783590294301022482115995811395809371608202325148226547041495218727145990706702211037127941743832675417109529527169847694033033237757776961664466381721034795216299543580948302744305321693940481748957645342723864321729484828384068232702773274304763858354918295752358326856386120181218336674828792367148508934815183013896976636604696748986455408120355833801110637914285663606209213009983976055590984520790065244858767088198874037596822171387522650225580487512701113627481556810270153178348450608847662923698076715191350801667225636174459142018467532086042230717882663658162695551393816157910708856300850052870173821200273457037203754074270831760918441900129150717063703132542408478731356352867617620241965676986751872746445620536352103454853316609543478089763806913278235581803620386050169772812870517178571576248395822945100999788028613400101543733693863404251416755294977652768616317733044846727329394587459139529833187639214533933372752555524935125938595552243718620251715076276592082307590268805579878873801353755596024275050315108080329338574668433467033274072364278854673526364588985730600031135888187627850060998190567313414545656397046695216651704590900778194547018283724797792186082774939974230913309054008054814376348247356669727105124332763548383005115095803699474326971937782996259212921208534046423108218022903756025896042502433712687525591688838603730428286500468467734782638669763120710783584573530464217938345487946997767184220724900462251393389627676993981624034901848661258667746202112021195811173276805315126416470999490979131973014866993780773204630356906555426792691376686954327451743187896323335236609589852645359935009467629947115797983673378262104944829175105010979173893737419474386160006233468887883358454397536726189412060324165701672079013508019794360295590022478258685548740989453916780836109762198249433837912806224144546075803451569874818534673007815589601126810728366685185134650503884985016968894321983551824551764041655702784502330456877433562922478171175103372417225686104701425906290223699427048397948481878353273688717838514188005674815423018353079489266682052411141898521848057831031097576787354313377300595368204622776015998984038682923927840347916401436214047434091455159675782016784900977330791839079156054531564779592152685681989923631221092315638653600202076101527882934242682652143437274479856272334057421986359849837724208809068185293277781608713290606598345556360674746806634274621598991101233036068072265043233173140001792337362860742279598850162078466402369562429193403437677167219775739380098579084668936415273605252766703912055637270602033034547901395014030150918429407427509380914226773737790722498776246914935942255464039572770026912022848174129851566512182223434331994229712708715832466398538332256785167519055935894040336266340444952690580750404133116839588889170737807341303215064037695872515238762277746388278196199055615711827317045166769945294382797013644007324880974843955872971841654045023206060295625040978507115999594850547154004583587261625748520983227059778799613332467007906218929372585617148827678523182879017443155383613167147220448136217315619184649018509279527765667888275223670330782544363323318359920967468034979865191004772304840718769425715419258185580890576787295511037441777481900307143386619717010506427578807728021939473027027185614893542857521844630082012546251576313180371640422474787541349614600355228650706339458853855007950739187952778295348042524868776762926671892269484982252911690153790312556616773324405920347840687659693854823010337073138812433923231418906235736424044738676069970790603946254775658429564573073234915759526023862107066392962870325435328452140589947378720383131375476323078806289539804869291203983463671551987887220205763592499566941278262187388265407459029614439387911463307180681575810906283927307883538629289791945700923195665346030243362201733100992541254883524202802525412982114131523547400332363250508253846091370807971991872803175964377715714401268162575109164147690878622689752712905517830442920980662272895958303118333256631857856013119648934495886602661985739816253866450390843333313513451968536999410888818065369737695438635062285975930880777212534578820017941413616442237121296278179731899396061883649651622028604824238283306305944164711913949218939512111563757993993859487955177946099904061812177245883898056373665323568801719811034365772390083693034745387661454760051524040427854897156127774396273485106342976214130953471146166738510189028179033707383678308247692653662279820578526738609490090017929035106102490845526497650770552182159971446390856658847842760646924056345439306589091696937150464677969381389836795496543879304940467079669778567662753798841538903250715787463479013392032455604408112749722614713627214335714728234279487502684775323209749413898281109447469319588144873514196644545363559815172135730030335012720391808932314829220009509569465777284312539532339511876161766036629090948630184523888166416817076219412408600599675253597532149589936244448733433168565325975464935617991923286206547461931270568036958374344661325913287011018644883871889444999757715731049327578441115503783099454037730670477390779271744856947557773637547932325259060803301370776672362159933650179757974976401891290975420666001031654998455315633647485546462586667415372229734558581256976628457496327025895627213588733181909043636304068263995612107636284268887988371325495537641832769702403476503860502743286403563748189441824221261913843060733116041954790770181158306610891880219029068158132981874641122546163923471803649670493060146372108020412946676916253787489867199471575641355545420082416199240309846084111010360486602336313816150923381446878836236025750843781855134130566065025724308724564629703176432071017339771315916126027763650871744859513560543972721798481950114367254508865306709455797414280753087959514603559456461638313696543470106014411279996621019408617294757510439394471501101017495633468259454293864540190986866877970022959058416388428881556253516085459070172646099014751743675740438015370197149829068282538406456955643656534022184266461829698048928678178066360162896828131113038186857383925460933031252516499136784420915989580426915511777125794273338133868206731752385908002236114664750629249352516142751550097553726432992873793426594345560833797316822413833908995824745383067322194424339729700774760498783787672425052126158402186934975874727226349106353044732696027947310805651439163503557369903440913052108939544884133281448413943547091608635911992013730979327519790531022301839615657207161028590815237437540885623492547303495993577107841260992699906898291777741458924316022624678323282984222185240973886024036401415779708995453320354763441962741812444917742562777112705058727171793532810799019603863058619653078786391008451883274213607674911468346214871641062809912164252003232022594949337245080107158697467035128499568563465662196265918341467401680471531816447635967601961247602182126253405193903612016918782284955421467942852849014288267798385948447557760884542631349384978874839142367643552725511567761332678472768817108698335031610825316777899164730675919440687921631832280948168097409443752859088394544047694292699647139483713982577849197927801033743703073528650675329663812105413275212962684052726805650047701317103148059117542992495543256683090213130360477052799135425741081849669164402865024708923085750071274887978755656220520135502783953578580243372552501545241017686778562182090144340668113894120692042103812647622262676629643623760275910654431441148771391934179562317186129757730604305295726795745467574328506285683668724563455065125168274346663249786804912740295128652270779853201606316719064721280978523510233247316945692557009611170512250648387665426423436872137794798332125888165441773016816091911489304022544671508096166565096906744197677604771145824042825244047409534704004982479940127887254504495853440289313566610375012813294950729117256624370857030337190260845864770009206878459945704232730287237145999098968200030204532622165964037325949053177476763206934361325864134616615141797451564709332219884750378923857688782657488098341528391379335322554183593458491234312248837001783071930541676137169922589515239655022971978060863339994602443033789823475542616090089600172893677764643012317136752670402752260652094317912663816262341625197235510051362763842490940625006644100285766772434890285562396139649452706385379264010707079200690589960206399802380284907570867619518691607785385008897000938338275509752331557801948470462296609198683232825366063536685754306322775363130746961731256867310300555042945904214224821157693306445474714509111154025035725232608817643822364321072273498920413762251152873683501910047546208472501588182999490296958506255155063742565220788056549860488438046230702422768091086239971512105568344015626809385648957539357306037657362254900628789025978193931461937758329496468147204451377923008443856156260557484646434805405179162512131953353409457949511449095139742992330283287781521772287401112352051476279021519382096810297963192276508536929564100750496522562385861762659108543045597840202886096925111188191769866999013597212141361836755469016649040400529970999718096314696573148804257022137807462340042730997131017212763113413571007347170526980166155718974449416190098849696323716699206230457070170565032726233362677124875401355004903149709606473106633866407583830569984076417352622788359752357782524408533613975750700448985395833439902538705181033515971419392298144319299297106148985940954164753230128588811729745339754026149399771185689571436126155085446597828736635504232980243599361656507743413526584080675647343017927610930297905789373661910121524077813851045116199130051950299229839175103813172660342101023686577995870480269622002727139827622360382951747386251576898433440006474003056598774959936738282287778356669297167175629646598621836561240847542589038922491011949322380310771963650061677502992277934197626465655701926904434500493219751711594495466742257636648131225974098636982610679616356294159809794383756211580578438015681669624818643657670678143608903406707606054450643994513175805021966321105728619274684729434264147121849306417328398914522301232088719501877139674744616145139059043761876347200288451412247341399523118589495835355628606463619639746336635868477621666831046873445606727818433596517409137001328428283621348203411070359255388170815674386988625932209989439195074424842868547046787608310200279497304324343359310571488384048867382850332937005018351350688588161350605002249488975097694294057265190424847673841559723002971759748780486736722241687615245489096927147674251662190167674478500478494986700376353481206424074522992378323831935624888374872509288787253887837398908617716389479894625566733276742499096095453251393573122000710455381585316264904665693347197663632232080929588554179584436838827222111071766014898045398855085908026664049254189185380500036483063449698556261641994330353463176488460394424115796609015005124173559936640417227358396321520214518075561182093342505303921004095789655129581109598032654309718302833834263213170419570323368601290409736333178190258620966947839857430436812447186034135064257824940630509149796441546978886278188156699526632578901128977556652166769243654332323726432363050071188776718952164079348717825690225337778528232404492960225847358037912653863997629817167011512666399630603233937678059549316451947679386934821556879541879326064468341777530132826646061384836510387453028315797086817632829063162153717005470707440988549302581963450044686988129184579545487863174613933006821425747549313080201932140744401517886889643153955145719313265810247600276247846671997833613595771608558122029110854406436736340939933354646864860167915021642721098243329798551193552751078594770227051463452235408320453435250055333117235658207619920654519906814979446907462758001105533939111195102858847842052445008213914508337713704262510636916269624736041379862149116834442197286332766115111597806545479444661151553471322161432745597150994683023746167015696492726187267525455027810526163082124083974838271317747217588251143147315149146768709677672507293643358349155452921826623165478550729652015507038005060021135693614047415874498195913884526858333389901176477721827582464177171059348220462098455024708718226669841244305037713907070731455164865709971817723309813439965526223386820607691547443924703235218351969008608251573345276710008256403210160545232937252579955622711532138367486872766558375397744945876587414110951858616040459709715206158206337095054970863300358642235827765487507270247569067457757001128546570051013825792565631123534883473191021666284328294089683348697980108634071666944033178673672773581665913637731452552033270200663362824546007160474397112056270682276620190605739761482534571083563462096689308436151330420765253933546840737958729178539318038387202971293722642664641201718394841433420060872137963832283776135956420465167574379059060908151732629650651441241307560734838164665345920296348276624275881717910424819630032379429295072111214722739785510007662232908661819362254115759121902978324936047658723439349413368912761890652233417817037668026064678957069152046359441582481210584834649722981702372941083406633012282905666669317097285397329683334853300933696098930851516859842370089266284027003151068846306010431562768451878966888948196196970240998415198163293956870178060764475863597123027389897829876864455374803603272690816365582698971767413184039309736056860575284339016618490845157909887807914366765018492575752602543036289260444238886019217088218271911909633119578439958469776083924424276387525070177089906035128362582979500935056983437144760034127877206475875339908041105951694666144756581752973611777152971591740576639316970053715676551310935749127238571872305937102950517073252038080927428801250100269122773655330704612043324214500388621689218403864535781397577051970809603482259474616349413556543567426768151754483417923540947820041526909401213114433717682966481970522375987627796726776058741816224182432011161834365879227874378062641559207003251845682159119581945799912917485180243102484263971963325601697589807238942129537899824447236114820121312523260490974648091022298532896877936273167660772736094353775183191780789827791426883930649478338194399485515165868196571725170587898001546663725359349221496706557964880501435207464330042446571735182849072775968390888984469286362936597092920096424082866400878118496753507597192801427483711498071441214392222955366029285041491725617101697951558963345992533150333021258642107534674879904532718828719824162142333281263398245733961776475042761830111340958321059422111037078574814525903165805766096068073318191581376619189024565983430084490097275463372698921406957098823877619262875961967728824527890198300818679136704510514383945354789753491290755448909249873938596641911565875096306893088148481328290945100907119828811715690025090469508918460675965997123283318315990088650191588061799883274047685386486149046015224409630125675987592612685536085414081215021517331525154136027507222811472280632858295342518353537674024597312059365900120101104099823135321749019388381740976791041319660213055419499185845584645054747671626762966150627234816301015670234118535114828024925639981561903270193571295524484656172595068911731746297804972265352522791195463446545751220942432903810401900198421980399813732945639530647930455094930505278035679521155194334446917763661050387878438726038481117303844109029210426015982081633048766663346020422511316988370937107220007216927368385976848748856419139375521909203969206419483526066505097774001008933794581797174884949060750546414765089791696722236426125544077372554754139326186151805595187576404968243038701390305213870607945518033696973899180300941505910702984414316083396623548354237910826067863592898394889706152536701360862236726998112363346237973002498166324195080544734193428036922402239095538247900934025195880758918827130747785814983771011215160372733168858019464580508019683223235655492921043234647500144683940471750991600102363875757772421149738614536333638235813237763910022911856831119883861299366099229983038591207543924095631282771742069457254811324057274181714940471888701913255345007086503940199802139833385013594601746157655703106989957576552426512090455125418980602152907947470297916664806374955106421652396128049406648236835804745291470965988620151201407159486651268715786994170530791111517676053222658125492314642202347982693039066887108597183912431973655689894794148943819524193434390403420040126648532409199054811348396381385064184943536324588980534280465876286930467678357178784825877222252644451281223883383282059809622312527060220128121159006539130346692652232401232355040784249507716044338741211558952399961135695608454073157708889050718109624643688789005925149321734776239021504384895111073603826079054288934108094797062842907478960760098901857446273671244265731302524999034846581837988540729298882868012003970702192817375018766131142770013708160785080203449281298364575608775675024384808172762193675566432593956264603911807459803231109729559949568410658244941131780635782277908661935451337893008929929938783677909546696741907465575341600367857359677006064187218161808504976549157545027650767923254608390715056709943439622091790720583099376757919235193351438328736638800171258547182734425798852073088167684432999741568489489968004819366977227962723481366019593576513473526229824683446736394939365468441398144726665838189305750031096463697260677050089287499493754510453570959783034895709209006201144523128455386912090095929425293104083118317834989614896743956731648864424443572192756863004131098716552792806212668986203604975834533639291297506253669271702875664880914039021055230058696603940717752144249302884762118403508174557718698312709409486033093130776893435374744901247766040163053767854330744989222873750172850051816066208676900710826799347866579733412280772240631803052493378733881015753689985843239905300502287769460610362533600680822915020792592896838296485673649504988213378239856346112594572491367763193548997828494921131716121263591198893519891304701439935875501904097460192029436468620025361128204329423524127345167601976345358424027872892195087067499843920987067149965353457777962647916179509730836831820673739491974477829153038984506636754171996450852985742984549458720894693667981762450522172030088702596294802747521800690809765259426628567822029628172861258512938960991052319908273994138434406529618533589711558347213263133933773332330649502312358779874421663133341171750965738518496036578709026269528413053824865258027321478881367240059153416073035297283201042447700124263200012823171324309134003347642846382940325591595469394279254000105750972114647371246955716747083430785829685796587174993390347375009295936955223296807445178997007631251597255084832352729994807758289355971645020869693979521057628663077820524469866607578073696826797406529213286285328087216300457987382939060317217124025756805777370167502937385849844218689187120402458135677355585938232344903389947236176134901980535134085504513910230295064274293036901623448028935014777373047351552156764299854438480254673137920988458345418150376422137181499358091495152706459025118952171025824812290585816285583816257085069884963570356969433817592591378168866777032553268544813005121120851788774491594044280170238280325222808110795177543433272939555778696769033809922722716024380680410840269365139513422589358619907737263987296041075905058804644672337030705131270958559484221329889459540529056545122847226375005609769616762005860319033418169365084847774651279134138567971768133068630872854206343867238964474187935927136310584067095687061048415164853738895857684841368568833640298810295768905391640082176929748734597710574550181490013972544595828826695555152325221629459858665588736694708608765622330257484160546169230943265733515313883769407479386280135867196400517485192927059233357570427713601533611156713120747903518299286675079746062143559039648245373183274042267602873061818954627942703302103363127564364146175741788518770939573604968436047587177767390015202024318752894491510062789279439863987475373554864858476058315326775634547425032131930817150738878679012256180141200301604904236721709105449170423800129372071744979431980665553625405492812992129099664082777328202449465183668887889242874828903261458609567751242672754011995832097429938575868481668200894176730711882338014298400929100755106423788533262424054245878075888357326023868453645837991320866143548220701570782225443100209412539713566576970980245261705234603386043259262686747723840631048626335452620556643201363629491037685393215152711732307302762056356166845107440920909616875463360647306773058531589182523835959049227254193757108047116003695971105339588040343225181940937235402004164494430053988797174587339858639638097201910047871300465008593015273186627606818072784322155764043140670296330872352175450034781104392678437619878792098613769469052174697882468166671944157369280145721361087443975834938399106629476080072637452964320179504517711169181698387282132053165845024698382238690301958012966521021223675139741362393278718169895803479972253558774021058130011890493139286447527703995781425612609327815872599339955681110726549239386962925169251405672790814503989162174817733829113974714170197370522673575968018541739373297598992478531403968049913875879665429144338047240572225551570300130792701555293061908983058864071454019608228721041025497927521283807653675813864701292998937921001284590818248398063371544940121110168505141783513287460151457108270716685915760937919323553750212581193631928854995240512990761763839233199504865554635849267676516466388783261937298753059448791796634719954871165699255279530397414091458375224464388115243650175260564971193957989435349553502912767914120518548774265718778378147135046759547965271746670759718575101853404255928044370667855948717296006469794923181360798639535534097480969671842859357453821499946229765900614193815619543416960392566424365330928850420007193519104109957381788347891228039362262539610262964511208287604272094677408904535522090483665415447391333597112184961413247606996790953902826310243638264365844002045031629897475795149798131081363452051966513535637233665494690623442654999632923906423045150712019010396238058798182053047122357771068739191651056907860928546727441116628225412740147517662812505102822582559079238828838584670997476156579053977587506998992967768329763036102859811836432809463872959430717335447285572187357610574919759088067533199119178496250966677997385686583751001698514053900406453770557326574558869646891469794817597708035318818261045484492122866856417741673401334248782483811312712436868505025261509233795844571366971054220001733451431985293284908296512159404614455000245309742697197316708982919062946715839013674600307649849373397082986360310991878688335905236189596518789477009460257811747247306245628531848743034653140500864804560851085240152525093663318754554133355620770357884234062281546474750122682588244044932359254511774278289382782542040690970704176994360498789439786546183063895612570393098291594897068374246239826967577032570045199421599953626736219388329757705139553644411751136798105938227439369326651035908583452643656289220587608837566567757068967817877848055550417524958707326588565352101994967476796784246823856420308799848435858578546393617843652511679317314861156748115014234662356538035704726602830981855814496871224934866680239372340205028085217354391382716919482135656856117826524022108331370338788652664371570120342944146834212888915213631354751485078469009232132908264248832567444707737868598459881507001787240668660785276683976751892819467497616492680808459220777861649886662631382417385224640483527644780295379389107813006719958550833020551780769272148152326461925670713592629170634814378465648550480892244631000121583607241514720513704164998869344729078585970868553801436133675535766090862229161168849192939150056950024401123588819278823429429557524067215780158548716692191088934216288906696546086841571248489900252378303432647019304419936512432457231778085099234980349074314946854007783435542945976003966568689353797590185696031782658463372948207106578179742008137905760730309117738065795150245913078824971910602425482864774517066230532166747589770444688935052190444228069585874701741093665635017919079127073668733396258192216977670023731940872326155523028105360780712544938141513833916810758818949824579214802385531814469302870902553683884591842252273102140185653859929425071050700645375425589804039037677813389252630292712589981263818873945025779842179936789195705959377388926764211819581838954053908985229799818348100328428328202320265791631430582966540786677678558627380012279685672404891249324143087833329423771949488871332410267434218854840312592845862617139307432429221226749711792916464381729738274629449276740118695367567498208359592771394350251347001660717077518223313142076266854239430433713469858447272946078667845839771127641962457454100376648366005093713397569498532134690658051189462158521572538441324768175877815369697871756943806652690002736010246831836720821237254579869171190961365863090423398038651246684234853365949591153363096452427181249997487666467233442085353332038934257873409689100635301674710690388892951733874082262307449450735210345750303348851868273712775426272149657310633887439784719705398639460861858726657026753117201640918381072676004531813835746451436366579604876578916385762629505293195449621402047739313453164424535908127145796070236708770848702599935380200115008457147106868191530284380499677838784875481983013683948547050818711702914739410798367928302507898917736000022403916075204477107540193035222927608629410049091366454792243748448749306833091314529957732074940098206517096639179979970203015021842546789806511008329709838519188301469500215002059532244667020175984796322305450898161776412507770225649283420406711098139387171057509455754074816384123993382411635125834676553777117974010916305536218562405728088556227072579838584091122886867239174154947317317283099033180303070863039528075914030072617881533105324573803591374100301558694240091737917759644732323473340876957067436603927714982860073159399303684241147290231045654323723797079267773354767406352238490580260919350727769871422605940696826320541603685790301759230121870794326680344029699855506067483669668157425460828501886155089449202081969171724328650199502560351929107698719330280358756299699596075333729036726848480956621833483447489211114827230433919276542426843351181170251777178178982236666060790030132547550562927265565815337976488133973077048137370249056397379316187094459733296281770464551073553419793048350680162860590086005201601803390297879766828473780683565797204950642214562497816368574339695975597043882890485154865111501888861289981666966721640946550229393825314254717366420202964206001926956801736395239816910281525904835608377552301248367926933965785363861903250756358012588780669546716880382438601055068645714390660345173959567473733599164305886525454007510963186485376488457417097121788408294785352459846965476812430231484554712703421168924370805382831750744870251571757608315414287076410187665316672017005514571560239318567934201845263052619339385884226848663338712432567402930675535605860044803422308624019797415304905341136643250867814156715311425472029414680468899201309919432981865345403622875524872326184283735407258783201479761424167226166343559337090311993097897452818811555259405536257200784518791482499584106281690943638777313050368607961331247061936943537992018983193401436082924546236275202584850232378078351609215285845190679335946102751182755007110985709707423317547829760711675446640968364354252829500164981026994023955462413152467432640679894261327485259384800502227330831062503614836826743309459110047164037461962413141155677966211980465629391920568872983081715591819031573983757026319561170833412547670232668937277963058876997367914432265530396758044087848652415338883450973015076961114123115686863644312924896343573524697087029387888755301762132464924715754073964304257766211872048984839260107310476133206610595911404216946448051677062558917222620925619730428735184235453218311488476554930689332462983675943304830887981620245613171153799403183527841615563502689709967843141806033429893841064827633379952686955045865885179451217563511443631882751653199669902386097515989711845152761003589579456094455893391109402129237945226940498400273533475431341538191859780629597270439158737096545516266186822435675066901519712325197779617020466281483549439389753943300087306373155143013094151518282119459656599302619810255563493408263284277145899160928182771652062601746564697286578038712134920770973206568367214450741097060775477082320322598990955590145774145533454164918927977559822761616516103662689344872450916239448144922332241511517243944092778907968786658561442079491557148229670769041262878091864862557766288985925058053561166065003189556988290086074211998606397398498041836176457946409148841440318112850264122928909838500773163279174017030053749630057884976142444968050333086687982394658798031935574494526789465269801167461723508343031787551727589637686234408649396563614996163430447850980542970757734743715064189892120082230013773428575685394929528985048951762251253695498069321171997032165472426286326468158737466334390089782381276354270583663324391652422669194790469839721803334625503228378644838173448184380437629351944113729963043446972389521435949411604016982325980291884485035870730007652919412104463195255693312432262478893698284354014281440255562551515483251109179042389616692330612525631832288236067249931379147952492712427073450271253855073781197819456034561258035288919545312816373956014425307474642029324866424014167356203554031774458854195431828456813645564844269861640084846951068439888613686436717306958035416273291327281330105532856042635410040456111519686438076974942831305833875207710967804595696367421642481391846717025978357930353282593432391232890201789917160631328114607011466645422887716575443252134505907039882131291540776849676349555490703628095865032211645201869504062585397287867104938964989534356972166112268842423677081713428578475196300948198015338648193499115496908878130260865048935321425192063933090536784665258815914768585878498376068970141849401007209031708535427610005416994640681250999140911872261223271312015003796012925046161962715926558047437003939522871776855840632280286350891755390190463852454436185441716296035085778960599940606974599192823454874736365429603846293203567525432506616320183893873013917392694998833492865822179053789722762462168681245286951762727475494093938138980284293386667446818360487557379306793809298879702406012627847126641347408738026924846262853510557947708336341336399174069111840822326747991537963124654637363930131187437886097427416165585699971690466358211873390325914724677970704204120154462022750336316575534912797518308865842785002120159998932920537261641770118564149991239462330903476133563665222830199133531247278554887976083612971637341233792900690347734032924496874232239063277042878761561193559528636847018385591601084574285023612728327647056671203142977118760520741237145453711007499267351158499355797175642717329454786841887191949538739796508954348281494088194095607339503487377642570209743443897375563943266379425249807245171947913258518005768264699305729621460664036949310511664744136339979569349894499504062345061617625883051450676066733644202925804768746815171881913345459131678370522699665650865022714386872912314655089036271657281968664337934282371518731691302980312800665413174540567504080614834318463576760295736058624241746938417885473699275833315184250591990487895377675778514117969737361319757610919560906716413771528422494117695909779356298842443676307306244418810761479313361218340038694826841238437606753182378695116003610559315848570957625264764095879562138792240986713347659019868902255096743726746626497033413992646355565355599875990576431174340471482197470645855561130934893344089646745334260964210741005742411490186101865281596141663981648258736597953070763462768678493186864773815189353013442668239842851755017043714790398715647264672628067835127798463218575076884917935305318288411036992201755936637723909597192626529975942961592853637607722369449659665387214141945405577963925058034733039317727366749897243414665846431507945895582206113077431430084826735734599008002450457810492217100270969811301078487832547537578886813084923698154096756650938631759491592833110512708372728896625874615750574594321651322497963900851313410566650617277356148889349768810783953385138086793848165639905381955398359163870259758969073193781356178270320234062028346101840233123428798767482474231338740811841386294021030027617391366823733756947466087523731268673327929708455590591867348766827311923638745742632533751260121536967303400726684971046278691455419151898110897749478013641719443210807554582371530681325669147293241734773719902828943916490867629886905577723196667082424054627190436121835975970478525200402131584575494388996143893611118992014533867393902393814119620272508184273631500741005620992284846683409097312701264291004786217052982411562801693410284096947085341802315113067129848908396194657988462426030642966387429319117512186506555575165194820758192465823684674868349994145562247222454558399225741580394319224243791663356781103676533253679989842268164392985861576406603668724664521454361138557704987432367542915342575437782115742828688304397870761566476569169252077243244459101881058688944440622953185718107792172764595887894876056700802516232754240705853507280155403187991421790384611061831118725505836515836291678734437795581354764369016785183384150740248273917436366257334925825045857348082523723149470346758502533951223505560830066312082803454334720920837245704935431854901336456489919541274446226530399248566536543238023174342883903104430439589947150760307325745560421949941831805746747408657741280873221168141589720089375451083623056181242293312857766558433187442958593013292410592711122624779855929594611761912807589008511074351437109278050089119386343303666050162737276674329397031790819317687658513933416346352629577040881861197942774337338797196596263287476863375376425267587376500291968966379869112216839773423793345053924493848207360292249409380695066706636674465498456828008603874667288100329645764895282301581588665738858071587962303948965525356251634212259346836081719359001787139035977184477940348848051655287023044586510844542810329313095650281130851536382099730851984845375453131349473923563698937095641288026802965478610067427677844784611853164543821112980953384944191663249643526305974592642223324899575154394940161066967335832446950812629080955545938512336137232154085608524253446233937760991143601820559590205240677084594688923701309004231116193890073557771222975555534937093942393924329194976939563299435084893446701128783159693524577921057874167898967628738327584088493312789024728708615244024387802519573438638623517687769933841168594523683699701208963918015577637132046119616379423387536840309759770789779655865569446951049728134168047184019960279064092644657586886175358556528309624070326372980906868404745558879562825096352372663818484341996061994406815194669839839930657120934161777875639280091374996713588989258982021501621708708845672432620129071792227830729249648881443186243113043960018439578504126137335487593288480690558265666733348866048186603254154294694223798947996315009330656068481563328873485391365760582093864722553585364474986856554120701515641756111115959010097488149620103165844856678064507555479562230500821725188016998344609193626299494868575998825510005948405351966077624163145184856405527161595952617325123726042404960343353289754471596619850680417459485926613933971072867504243298101485061714218601797057579905984556580922368352025534954193016881910293671451599429425611522163538087127314032354395928289944817993535979935225887034695378465150758702104436434873901002912665485687715058404193757364892256193426578445946033694967221308563444808412624200811471929950079414000392611799140094693327484335508144144239630897328569557978468805053217352396574624095721380893499473010209285153085532037059939024716583069423966857219962512799805908768294649108214498110786014046573040667759945035918526546330633070644177146207323397964155401723763051191669873423951447196084056252346349354963711987123639238072421869900142895216903317205430347154590220320931099159024171850342676925040758454017705813838870431227491383153558297370090731415121596345842950671229401771024506047119699981360598426985411602479467813043952591009299281279820031180083525031215718240672768586619027226905637573373558618197361845987163269728125013017701965864274449428516134606275235162370104986057111983262912491639275870134197839529949325147228890868111935883500145233541977646007789685164666385077045737363135467676229849614108928021523955203531065821154046578721198506559848458581059466529664582157514800677393504154766187662822880206361851223174273679067132049492508576578446708314985874994353410815865852962282339876215018097894592646093697500954331768428337579775238187214354271180812446783352371014056347807508599606505170791489042556206341821796637399893839346840741165754682745543763037597890569267076446074840054357487772006615161687571650273174724005200603356830484070153636860832008001433317499620393929370910318652442179760204364202753994340681646830327777016958974278859534487762935414079730959292871457244165499652786293757408438315125872661434182266797478317992913036337452076463422248827620688596804141738128352728097559282778839591469318989341013466177510107780408774003080317385898264602603032114865281395826315016374928700246454619185327814295196040714528448155470145265275532779519853716412273005637769805371592211068495596974680832161989781534044804944512525528665567204989131918708544875533139425613343198798490842965887151496995152233456205767876420060844518004918060573768861380153616139590284145184344138625541267199679779034258891081790420813908406952237122855187380031611331761561615209952015834779561679199450865813923084276544866130094630001417331378913199162897735420917072973589480757138150804618578227300574835687676857566424924168696257828156539853098137569723376741103291234083696040254072661944015045161386119896882632280600936177261431639250902343898072250256114008080417795012525416389584389571195948399243220561800118350113241670947952871626952278888270415829781048550491469474721707889778600092639147251461290782308390676424421691859866409140652326748278525818034890922527748665221008421154401132267158114798821092065828395374502074019249908569198352035668918498325195498650073349309300371275374666563171091106842363272382742029148426746713102282913800679613545797877140041632934736676305848891470165860862451216160001514380575950889473225856532016414482137358789301395109369669486252035436703073586207858907225106011438747906562418399887983420519223983800150990298962809491539553670879126210340718578598710720593729908393957194378368935802908723709433648833666337362553985570585095333937519789554199276958598837880148559211816787122745370880592910469493410715200185291265196416492492075115944515073645072568040365623264548544605986945631331068502149651572123014483482256839764667672325244905299218551185929983990838252099417183887940111923077741210686555783382988608109538059646751553287716386369199660427820777759284417595177001890014785071186726253597141592450913721692875551190992111233012301077790367401015964028444035140911090929960441101939696918668357780369850593441858103706965346824378710595810019811845640321884543402453312774335694975103289450631003049028370377008919143155272727030982136435510704797663198943210525343346715042766409100579225251073591186478447505670767447748627325217877008045474026696782922849723996185335355111642188386661982148622810424314545206899202920068072478336559319507867285784908156939164005338935477283697247940373928124540189424358371466670703921166719075131257313828669267543188518409462031176256665657569561026874017703929525451841859399897079037134223142397702647062969954963680937725738829884596355476988021420878916101436207730908971707244226830454880050620351883938980230873680073194501936296497287946626238567579962959948826811401134805743100632746579889534163527097917920965279780807167926370701391543436110851870337385017659597419270395033640693380085786057083462894049770952768608064442599790417242373253098842959775712857589586906628268541998053535395619231367332067705023667977322980266642071176753273436891726072072441881840999082662390761553158712346950072326957072169676430899207916584431547738844439095592649706272672410566910075327136460501764327651350867636331421493264341599562449680800574897436242415908878541595076635244486244290547048433472998599071808055711979665918184583413207424058456285887800725174939698093577122614798864516851290140255199727700409099426758744140473529926693721287953869083378620698287998886894093131909862571244499331288585753022517265590178054649708009361329663161503090493278886827680322414086315210772635265639810650023327753601659857601127184337776384929404789897167357644299202055776490673042035174289440849749216760634908792085634058478701460862815579243877778914895842305297604597003916942822000937068963843424166853519896303791863295537792085933213344470638297345152603033484470101455150345388635801790845912975746750607569258650340721234919026666014492871414991630739404166984362137006793537768853626689850961435560084936577551629279432875710901738439939189222504111317297773332812530459974486415849649060122667217687556065281965127099565182395625890422186238739741503613372950429859872217278036345692792765535944593490470995573904111484963656808443659149564941672233385601784203057434494530484294445924760803816238858261033237464302407723145504463355087127002891618646626183278841699005873492312284489938563235201049972462555557128768660716156959207762373527226967412539061101514006634891563661075142816186043914622436228996523470888082939392540840881149289984173232793631885070682979958202563629519651225570861855765897251606240647296503342714479466479206250165458349103429147455989390098192541105790150915541210292894303093993826455442804592938163601547201903938910542229026732245767098001671919905110390390744039955377943983994697141827286041497983258088112053106457288688174122440468060322989822789269733441960555901591905264437355344421432626294671504368007407364895134696774725518892808498161140897968254152329534091689594555013812710322582416259385192092882643622114516084978817704123511600615244323959710547335094513193557904369003548453246568413012668411367097131889888868957843656309324812045276262118958035147941046119790825018440963316191984462730466788291856807526362103323043699872678007418263434956750733092239728037730545356732667166001896377141919225534761371553901782803361181330053598173804220622311675032920162154213372312252832051634652724450000656282170398972925540539643335612194030208306015573418317401950115470684963039614265212189593989215808927473994060973281736629058839813629752439846909458965801202436294564889722280514012074056098565137160971256445218667288753495006881326179290535373134678998201066740544682459661441565871996478998398582508690278277641150682901575286607829523401689593208140919778168910183281075909003755646142131742826829668750454345917015340484813710616033298974410644964411129281937126136336797492180081161334911987035202234724588704348566928601362610058101314960573316928254404444518300577647811099077503773941360854645209333150710951565359355793792862315700284704048969507471211501340362225464190595064198158116675576210068375568808450561402090495821899849985532204697555431882296124752470521262187728407365384527604805426271456169619757379969090558475246034492045629915918245304574409191050709995706540792374679782022078977236425312790495027460632733881721929919876094458267658629259952608991659899578578235542513143444944888898600592350655819068049972837607989225679699550821383106854448087146302810115717743550730606937102563163551038595682833392748839622259341995162935650141974792073759556423084621573375802258887517480664972123345104700064165635208486082562853008141662916996246775048523845971626144515833473310959705225173754059773203650525030904051398204334809676299074499837932170385842539569213352238088733658071944199071593853171484378767457353495184858903717028003689394393997200784914456283988667734941133423541940412239841844863835171501264014722855234088769355639507120474836513012103693807547516687208897530605711711382257996929700469469926220482904090840977916966040528589871510912768382767922003392517578063320958121442138807841914005856847050546756095824188921328424774678921917746770678915738476235057587851992300330166461321112278751159475565098162070694263500636919298892172369484021706245415989935981039567322428543213744031814620405500629449555389937739378068367037649043929135370984141955500940413878631537296977677846447752351178498375582584186072722814412464407006942392633261683306826402891275303594177629498815157424366523770355424938019046489350374196762983315251976244383688814645497912806104590538748605544903707078203522077137573085394797425003145237504668620632199633705259362641272930862156515550558580516238177450245636168153151645747320859734509907939715431792975886071600714301541370084005438146202805984002083259962377709934561652753243117047380390643332570326213560624503924676798860804149761909562190194139019802557850063542544080405074214715504463022879353873552645680615656132884047307895076008626703548221551518731011513714051198899966327139224340762709414725544526523275985315470452274372265381487699017786964220340356587586680647605759218958136049854063869001573450081618512784330447965405031714315644411935539945706107674870540035157603531957814556796630916641938482310668074620502840006221609356615508931991168726438880278539662876175231039059900223673726974853492931253847370991509205432036909222500347798563884527289384850175014681992001006714144764889897634433649354844910326130423539205882793948071073975195891643691870523748931573669788359902658386120614653295680818969069725986751070625388323235161813537259096898726249522096340447482395375353655643227220823498368926946480568517313200146647682314200525556886362807911074587544380473304609567369601714786442468417864943827647296518658758601664899145901290657369388523768423095341385272816749225984121784843415277125274947312301640214309443446079461380153116598866226709621676825897704255469607398719054558373310463934896270624583190834407148265177445210281241950697651546196086324409654446252177967704303052124052513291088537534086554935508412633956066743929845624564507358342204151451467767632118731601121079741349751036418951829938662105598788576232767450752756895785717308340710143106134722729062495013210518321747969759451914043664426081591885231893592885873357083505586231257619505565557085406599305233269517382348274304226159093192048414202856443836922575182544143153245947592287592250271891771160114116684805762148315697365441684396218090905484678316537872251649681192688507830799269112625455579356041469042666191971146726295299244801721094610185083444138977918435311493142947671936469874671513899972631353504809158136066333572619247428907549531315913906861730795630536862770229309058723747686357102657738359371602835531033070584755730050815321337218414374791756193683426509163594678570003956124174416202158903226820130814013225341076105625598855351260451445317511445883617207472123775513960276623229705927874764689818742320315901440442091037393328798524954250726593967089521134124224911356546231923172391898373993754920378911616794013076790002772399868150757152903384129281599601567398392713646718606097313634896508136798639412398509706487420917771130390136381119445965303876514471667176366619650454429582087720159623808882224955374198924087312573072515197737474344841936037531741642000284489155956222059838089743386223306661613081186017767384944548487224988541501180346988179645668818754622295761520408446330879285148048720691481754282352071419166998849917719509071277054654851416982847390928409913517906161042675649555323420428944056645189962933395921384387487316749880706032978277144059138909671380865888000549044971536138325778289428156009064188888607543064419181755241074772217043397927877762504093606599179714853024489364146636180416749723585374464296883828384312064880478840626052249747025906914887135644108808417862123823965350718999303617983431660198346816917772388165125713118117937578526194865874634146481892290828908791174009331301794556938670474665499480704904404661326264392652410501445072913863557158280207120515424272019435706072050430743417823516103198276196095190221000404953922023410800883998534151384100676498293211850143531199132149524180796074439861183910398288851765855682647834316784571275749730112048631860357033529291153630058831970043304728935121726212015984994058438579720273860785889514232952237096605336466415012722818433508016403188182115888791482650865353116463831477967151388453210274024310964884772458360843081308212871790736862304648959843505582736863522278328595716004041276123555339192619385967797278961353946345755239165126340406137569452957470160733815351704227674261652115034117961819406662718851238448236878134058730261164778549400324146827214355186205427440087008955538003959438848812135329022379442415339076446150189121706640536646373687388716271293703921139056421755686783655696503903795127224708926092956682258459435994637897486068151023805738779540235202247516338670501850661133338875402651450091141924700366995226975860252042807870108968924171825620492015049214811249779681371608593560215670033948272805311643636973761668346475517789186465895054909217628473494733028256402844657960123593945462195820753783420939787544731603694280303951171146529510120421541432787468960010347386938755127167316663627165994968770764342803563348598988969757570376290779588004184667230415329548414642800426804014216663000666913074970436128130595978249195453060089036429717318183564611397870237107593018445241599234448049119286919492628557077384600505676692655617768982227545992629049923598790858351779987177166871893039882551626670375911626145395376084480769617979733611363304512773763667747761491183521099130681875580656491940882200595742722290266475402096673493134028889447808300276748095315314805663576358327144886276620201758953159929327946800597039910083030290033972820311956137713265687123719129508182773710873554803148778412769132884093552514132276977645886854189545995195598360808340792490772062394912380834854166780394533708877966602633871623636622135352385470843714615421989560116411348459031422534158202429073304421250585844112075660206214592110658958472643932783697865364484643098496931510674997173218909163379781643852199661407382039228870203033360472446464766705213153738971469731809030678625994423260565035279049953218975940764742575589534055992658243281030820867188793459017121826402395735218665243085392891693083543763014876806116082865059445657688610446645305322784810314273846042923357097987727534293828905904484857679377306280695162193075938855889721848202338750219236653014601918416058010501781853591411498007203272770874792877710906024617848173379434665904558995625017379108520891574724703377268051185255400283692606072511705590383797843555707186218393489401140818600046224592188860154414352263579962435592746941012123483314148640389826355015159009950791860079925111989862070058692525558382244049251053060565391214676406161130805449677432011118589313771980749404422241488133182630670999630044954397065298644690135761665470933409273445948433649898847204090756921142567365653260690442306486225999913960813620730220320994005891902404816204275281041721923646363234281840626737341247207379117282501937327384663789359714949235722780447914865038904526739106374954708161065645005017383614048355406108640873101441737249607659605072313189051350613143906372238057433489849092221744202978538070975407368742763127543976233040160938594451856238029903796727562278230791299444207429535714423050829001427998817696237239149735921009748582552473148876898922709358287911137530593658186522789926502281587684920238439419931437058421555932991293125360271444317075893226129479390993930263205326084834264836776353898442182363217042644885098505568847220927468210864067490986635549247605602265255739131169494552962435561693825118534171048047105103996460963408943460290707411070416165033455291254584263521375123389488027741208190369593929970746903872676951414997069155935192185787672608905781046640155574557604830425283281601750153231537417904363449117449072343641533730133264274407878163512859164220429713883000258965078992962132361259276598272882227340308331892567186638323616147778574096813734722440597414978354790978963534645076835611054221512946862164609572219197152640626623680099984299569961114242109197392806678637390436551516734656439813219385842398737107811433061876143251545717911916024431197773227477765274395543666536424867887120675008353702200694818463312863443732686199785626683587177749516257872153735735923618608266912163190502857243691459485944234107868618175802352953397684622855125856329878144427250565008652518687375848098398484425286586493840159064336834345330348428988200039139121452396032616744900242640842937734009646098122656292611282174440955025889431808423511175840566202691616106829004704343771564080838193198217782426632192653291396006444687799920153787263391744252357667382003194123911652589127436109189918805594268827215472640235602569396431626015249841904484451905208145555873144656004303407308320900500165315102331190369557263440368603783445681098741285633463381443640174358335080753332233609874990964362339471055011825274405523630535687706832612897625581879542516846844153790822588683603801271104921032489954330602433929793927966156414603700982777716396784375312271523112534973177897866911957337950344839732473736979183951364622446548965474729962598546609263385395448560961283430066294351324011386906159185567648200508017379604299444977227276566138561736485710606052781320627601699636538959364880715755512062847104094442121846682701459843157919389812567315249144142156531575159313714775310126384853348850273002469411059284126366660322007629065055270247573219318788360300616751104449500136852627112461952571226688577426041714770194350623856004315591196108881339048868078640593692777351209386720607184699442098997550290796573664197949607926682412679566937809715253253179796458016230811553212229637210077587827111052643327800632255872857629664211553019388321434465017596762985977658677448961456917679577178212693260693536853387935686298218078021937149002864963363193815316317505711982595502501565938693810143611485699447276187329368863230540348570790785685354710941095891307655640991235976930351760265430431439674456853851954211682286867707463505522350473037150650291981911272893685799421314872894300764349174451349214121947892712021226377382682041266240926126841935655676211811565914444024115383681323925590417947122893210942172917054891707454400959250531217326311413749201693902047023817113564680073200646115200846303958356929953507113614988276618113727853769622685658427500327140408559494930080521980060024292620195845420111120229903624696895844059694246180990157133989545259504897469274773797130857854183544621155706477300153786633436021300020023818677659569932031341481784051074348889262976397432071810350654740298648936474739324178143842612951441373696875340266783465283855231358124135586245535991428683855980498824131051175490021992192561022743108538118217410734363706093535600022654726448321594928510592832631343938944173173647395456702919349950404105050679591000527173711396749533895210547566666785724076102284433798322484514453007948488180081984507013690423670497537646691812228890487174703826043357403810073540493941785890388629179327790920348622775306520816438400205172688177896891914540473101901981322165293563981636911207696825121440846117000761944190187740603031426660976845146146035369152926273697728626710771740891506095551264986667252639867220427416730490338538671753166422876642818424911500203946269453505870796730939491911315648197801876703099321937719724454614753096081434013404894545484105111702411768356386963209076885515948151773792549965932487491326739240442931555045046139579221656786646803945232890794762927515697419478684398437056640916267813664029616785627006993244538412443793028194017474112922079957668834564671958983481582308328915466068945930421473374049488024202753556731935267868730182852206876316283909297814290464865688726618037646855391379702384103093507586910767891947680862424765513841504684612267560410828434608729486788430163005294474702475688642373136170386855710483752542876710787436066104859728472561291352352272788567549385778380001362582624766189307449932453605293122517471207567470299156663763072157468349082978287976684214602101846570597964862397779994230450603472376370369020860699842282448021806688111804142397785466212564681387454849435800421457053943342296703218316462606881619318189623967464783007956861039213828714827976582240647603193968808254469495847924359101404655528940025063194557043125787844104812600872621006814497011192550609105616140927297212979731187894156629554196005002555377322728148414740827222315113596937626556324873939403842975066162824881061464363944608059493783707518420133998733382935568683661199305621057391709543443217318241644484080786597532379179398590858998119043137800245607601713835005904822555074156296105756015097375772003280985538492485639807089613068725991690755904092748924847194297471720679752005212087698174929810087512627118505623270738080548446139870132806855356930470153244045337962568569813734225638187022647701455849249817820588015317499588098272317371628131632465255409494019901161374991164132853403206694052437659812314703163152913050480077570987676176202638383441618650430565313455924191411932387295746564888596072692161666007442976855307240679297586920352298738319220668292710889410942745431727780854477076894872297542322264774905564656538897681713902533479376691730996100205712201986272867054951550747827005364742678881058337274550899246576080627289152243380334777166679959232620858762699035666080635749787328454145396481409731060883639993958853610613730538393183815845726349806444671300105011124270152036818281206208332255635360479318311167280248857713357249257531488287842551656140923521976236435274174356583422778972185142753810694595662774304757980084976079569672929674914761227940137751043246807376048493988269095775657465702545969187114360446058350127943788552097313591656101037145892463875683065132682223718436834713439093245208625842102149741522142011263878771842202543221280534395238278160314308754196716284775985481510220163862172423637300911499149017837088897701521371026146631052280241032908826793045659847187532929903332181190671869276945269500902380385622503800255012010362401702514770196228067274875523823081663995661045707672265751897353432461705388969701551471528484808616505879481624644861891576187464402385134943936068568128077976247582763718031000991706289273165525936712314433262905229561249891684023024995171080998905114682826968095992930276715382203381166987952443974278121879155474530549959208384582967108327654209665685641562233897482362161144523321546904245047356882755933905703280653485352222756906938318926206232715289219244573141780509596590213323381163613631692082460585309500847926467737870758100842595306031032309012137462250250637363638304662802067134686752991728540798427285684388469008619936444328113716187408268124906647048994382935795495405568376432133332413417309668478893894001025559774679610821293619806281225712971927367112613025857336685893430954858553210404044557888816162372995551042197657306925117502553060617923864692938248063706214087796439046481145177211092465717465948397979708615519799774502519121929391923014687267304188692541968895365574770903436403695529333990801930183989679286562268819166871269969994497635207848251030909742746001355668704195266271488254493705863744805165213278844814904153558068148487329730657817524831173799375281869602769250998962575697027110654511643737851654556501422528705889194726010741385258870607758289703076280037332340556876107542835941054040101909900140738655768952756512531171401128023802389154093223651852679723978882393885106550681975488067360731353018220292830984446169233692723446780169191469276219948811302297402170219737730629754815594705422364129156848440441882359810503545644185792402266382077585620059461878064505954517814886415952796881948151978963501633320747758008109001339766706698135716162098910988424832314062982468850659408810796586410955169158142084214130128879827912766386638831467028859510058348671567803525964136300359463099689147949039537661104339680647091251381507482481450376540158026949243137454834328441083753474063935265993337868343237302588709812081933714531001847108990812647857185585089063405651528586228948791091647120161716104735168962853298033555669211806268850891389554271841954430990452624297782097045985333919998771224773591844992136030075627227094465675921090932394036159436040849590463917515041318540429255660454212115376682729724175986116512846296174658257779987045372707287447814160503944178291261859567670168926624336397114524726169573197348521660184801380199829331381855806941544047248117855289682832643384397798544284466481666800541607766032573175878162148464501600136285222284367972700405841647104691358071285323955211106597407589134094546995375863419718395067141786555608755228576784972070102893096834058809892667605614540913607793833502947544239305996564878567140620468427256060511736655853687784607448692491498542181272497989007175859948523188591888454488099941768113452238103909019097262560692083571490729820541756117861527569710397410369858465722836808072965557668845651174109688025650959525849882035870839094261730706141594478336793341730823781562978397522965913911471298282762352656132356452529150097740967276824517202981061850517378278112453886077326199051824079125382756536243525814085908856837185199868650574906945727526173700456497812450665872867041347585152107630468609987332462050476126791282235434091188975034404283793095513639270109990022303620165422229408381545813523759486073539232494660408960933702348582214895833097300783255790920923938705804689115694090999547963454365837159106492372366225952315858797133595856388868452131164752637531587895726201167876815845511412242834010535589485204563416684905741555263171386504227263354730721624150551575467705459593541918992926858521521478857668124910282733946509041059355263769442417086269921949792377549702139589479530485240226773974330948439197531634827445629970664128415613659701207621691498838610435602420862022060366887193678945766871566330255097685859079127934613665387345912940233043568102674561919320126013831693177654981052176444677238744886949295951616069357835701034479022526693559868416999106714593612160480201087841733885896590509516218428835667765237374004749647283167720490093173746516034137089473018653639698512868524063572240332063412475344362266262528488470116201380446968145724140518638896740186322892412710015472377247598632033117579594795353232119502126926258570003120958670216473509618732373248159626764647719579690110079858740723987682883634629568478795707839256721897944884936713491273158060931987202028303528912401098014998145746007055543843488141363286215162529002296778741635800879160749948845429236067885298840382087807111253126072332002683723138288539587993233614832216692696597722868819994091745105700266803696830495456428909298970089244578369342002847412865963972981757861820699116922398176377263255625241220654657139514009422481721234402649372842888544859767582649421838951260248428421078802228424785471146913382484264136527115185609890600654295775734687239534774281910801581629742043799153461590742160687341942620116789457763074185118792648666653639966201791771165381563046214563532965558084611197796057289683101400280633858385659374987992318198278083815483399621992191264088436786958012164210146912709322914554825996409427303120718806599106480605926943186113174944632969890020615994524892133571058970021563977722961233189363713631450659239179808328684186970082343753383904358925106172394312990980577475020070979437899448597818928928275740755017593491016993461044206315143355752647195835491419591422237706693705936251825184007228323216727000207561384632456439651892056205530851931338253012696727638230807709943408851852047108849924452064855606496831902568237147700904083695472280242999978859655228226939904040528106957166340521996938867427132401443844039636976378126715915684318458685349435573398381044447514755855778598268968240907133536575979276418008122318144273745934145914764219268748005453231310764416793576056582379719481178763327763863140241134530887681533953850238003090562551289721029891076522167036970826103249618252966357132395598590160228572312619216003963289256230202961323955319307468969473233085659979738450658425458672501859976276654335554848173731641152597465969291967429538105986109668900814302327708595876205451542362375668809186209646011924355473775705349619205489257837318171792822635067669807685456826651837229638595780673648666889504424099127927914227174271725299311930025492763024348120087429248539934339607111902005429415394234766340290024986276904089546664554273379676592581250315593419925252301415601443984706631039906186081486956064099900576854528100837065077156562490179298260173322182843128908565953688686513942632909729741257801078789407270265270808907961425997018672978392480114511879026679980933127350197896055034550717439151782127820146444040047114919270348604762950191533476606651840872425689357238222600593416364464137413118882000450860813300903939549210674948464146402477482614716397104867727738742163119867116360512731367274100133075616508262760948899467654168168008971728647518271158891792985394549192178894401282842858686440361927760254144609486197156792546800169397189048136103349222274053516003901388647438224473341517577852451704117528923450956476207352365727578873668092631985917813554410136296214518881728459817141228109032175954219029134248053163094497423014375466884295053903776746586988626707289517793883722164427414718019732827900204507420111744689782830948622791206347840072499402173010882321535781860681888303019957483811593868444266560261776894545477393982951103714832860440666743317707499829056553719743281692486566986776169844947595537433394797876391531995767100869113693411987667131643896983091862285940707138076241600135199728967143259450470742311984326832787599818335065531436841913724680020220189521218857179921510475548679747270387630310956291436584486369390793925328662543986445474263958832846710538984293508695082720080349065575306778679516248141735577906659623159735740104959628469404987066616155238318802668251520519674026863543022775427199225187446803215618169559127774678106290066941710546374001854262060694002671892159917666833790064524863696965187046903909225805725946373320122455233367498444054619865974350540222352384465495789234356270783154243801477808855601958840149221712005998022014797789532060944823169170449668330310907193549320029598544702961268127995299060276707854829612567338737954971764498813208561440407561371746553348389293927106551116364339752580832308675121909205245546596611219501581917455932668830666639913006608798210481145990683228091641876823278342417596974587391936803438349001361017656044020522206731381445231625235355501485809117527842521872758330601542920997958433846316077167928920067815876067382021723085232461314684433270945346245590548332648313536195212658166547710600176011662476242010309919273516117002806185736125379344451486356250227772846101521681720785594874491510023067547439105421478087466933057766120826614376795650054427542011522929863515263245122125493228267691685082637432603647839111891522284867003015886650092159029170385030297726537428386344731792239758829804697472231756479989045286203464183510377774496791089334821220571997515135241611730558792663056362738254953800363530955814697643360958693241042285350364983688216154423731680954620998771325279839875878884223393212382199887651863234624897557555994191053347349410505660422452761754749304679175096231604617548998626281174298005036767835181873655014068613642805527054400357141214183841647107986615475473490945347390935799374092935118000385052274140575283488174759936334862089284518553228319365779160444627815535963172623227079446239333481716344687925634918000236955363481609936297868547776761883590604317922124246542832564981380392553569730966847971832980234291182669394703003411364915216454501121395999700199958618359820485488603024198040408836603928367088733147154319818323517464317962409260857501643428320201603533069280355136636221420162312477994937409983131749095877308515977360050112410021678313196891569153033286095731209321469326777733470273137917537320118826258896101743817917504990353474733553659264523453456515153619618734720523897065316289827211080492674308351352915715855790866073682910500728174059160522999928416583091627340654543744422595448458387216097006897132533118415328538901652351445406639866194346661780037114341567458840166596008247731630525375168943320807425074917787193108214130593949269621570283383609853966790640843628010055186832060388654379666021950165468870939684941141378848159603690048206141498364303450670879233673160900638829655915775925519723424078998409455906188486794101430868729272160395530262187261188014451582850343851868616041330361843344383566546338669846866063443231232052560806816277374579654652400923610768115969687657362078473852014592019578093114444579643856721662598093419219834846228795457128099026251790681309799728298022792247484600669726686648202003311879316762813344035208457465079589529441821773742303299100290043129492224189116134840438199893326418579102893157104200521844644206430009733392026952465731400020477699739679617890686404978176300605546507692069757978051409281460466803116524280219270385259467308021854622994984886375554273683456801518849657313650331101802504496732729393960136911874280866930090354034548967154932878305491300645970081237477368715123066265060122896262458556576994682042779847268041664515766192363473382282191668660519320443366345998347684383161549545420499555671076154031186412371101937760953746188855108710928788849986076194286217121458973896035237579582060394353429072854399130873872154824846192275310643601126825781963791398808397823292426620356248640646638780618776140765008340646109379870849637594971399928148771423483388944601490070232055837782377507096161397343791863525080042522233874673437638412390936781537226402661934867821090457840544157627331999892013942209905245636994368469747500084408458317388957747428005893645761500389226580575204991955200156627845266709198277489497170173715695142792715174191811269062555114164800202022898518456437153148485123297234493008366753315134970754833947020657664273529981994145032208476420213236441608946883518082137642205750900280695277369369452920143387800315475126915752759669358446836331981402455097025641293005194858940904306532509249767919151888055586103937556020587985942923957752843213903801102872968953150381308186338682012614192858432343844502710026577691281648575326643379223038993070453950068770862094421562388168698792796277590424986293698941034560297266510275351894422456291873665362842610462624663995957101862013117562101167201287801190209926682609230622656536905368028837803484691493884061151022721440549492560802692551663221702029016013643969394798900797506500835448956618912025435807002980808556129642610611279049598837147881458013859292142310903326458653433736361651007846909907869900850361401354223993573088431597861506187608197957126556295700546259110888381523782787421380268482314122372837013792544028210693359415695588286090954559685933007802355007632079552006309500766618633437263673476553326948063794816738287764631174886903335846764632343375729822350796047439093397594560318872881366055686947729467323391742867773205595933903031470847499388556278846592599129720219535763004913234126672511179705290373878413160617088923797063482181405190786962796872941492375663910864413209201123914853276636533283288066626543073803173682060103716742642971147555286661387709279616550695991907771900930643727769021385734325232727654612276670019972483996511242820540602776254798307484241244851757568762098355102970677268731245860469774858505014381517039253132280280486714513841719919300931248458194322009220971430823696733595376323590549259381193432972917014234380372635438935279110876236941520962993187135679860578485495571195083645874173380093687111578380250008582214381109372674543056399808514517567263520566725218939634553114011299266484014840794887810825599682826852708641624938710717782388566611035130514180067052476900384370986770363304121507598016328095122320351270823419048483072241868354997278174844082998412451633864204933035215086020988291413731865767952320771134955461165274139283688448875086639461244519306606062062438391063943828292046470090055071123487262702279696144538300616325678281510626008330093835838241162191063677123424497041638958900956107199256989147853870227479673347820191042962933656875290393718888516740649312463576479066919719025067471736592778515610472647958035775950307915717065949198942059466700133289163500674872700962650686765538526307672660308044646679091023645551303145497913547376088903616522049677478153345763810419159898473102554472952792801907178257239726035693884302149086543812554404078637759828371844421327539426635161380092362663124856251198618909057723455987217011747055422986986539990380736168338544281571413242426629509828098007056166349385864238453839461355200227066628049570300140109336653443461675269464300043000017776172725354792864167926773910041852133991157306294116920743901742325599936359517246739252828436226413192026496798900178801751127833822836372019531201351650745748936338980266423189362647618586883041251943444559193502934161083045364637626348861340416676540326631784120590151652069843014714724435715310188026873213891337482822500786491042653967537381011374443796442883627185240463491800621106268576939733448430867761677636871436104803154241908960949237137910189982186071723385424830547483542010076766657460178509044697897267922091643056800283214063160843854838812896342009983319022831546397724987591416290301416433423185205539382372252422375303399339231771474605766773286870183525896326502088171672986059179672999455020611116338124562972902268166016260557526814584785221417513149977070964959206202455459706849650119118800014917344333697308826150245774648094465215896631458965721071200741754470960056585140338494095227472520272467046403515317087416671903944791736781937155712309955904168403088660071655703219712941613850867465555393121483045213454982524762168491003571367248266513252772453089609209498848623288094810196918147099853682128144122564455114449639821746371405406016947481674260376165502912477020953527471933772971346773456003163320849563866455514865952913195144324349701867115979056289485955627770655673357007149584018104605888964809394041831617032935374395085082778678436973254527365946520018512369691696882402388537030040569204551210558945642112339125546399704378460919614729864577664169641809931125453337767949215329389429791815535701924698494948445861349867330948625584909681074587799116257057008871186332014000268659734629562750119907182759530466594059920787224289804488697266301076216425289990221551789459355263433603782954701300413407516303811011284988361430185594220192970564397073133902482049225707662952333129194169619066585221880529102830247867919830622686561895815194946664958516038783021808193894278538376661553229738746965984502421440160551078298290998523547852262475725760337595003366710259494275313720108297506052396821348313611729524636894624360146045321950808920553239281006102359698773819272480755209586456148545612865561224289629163261027278684750980172449980355722251080154787331698800617216879977868369033327377523301862823118086146782420079874858901132668029573369444928807579085796008050431410216790181480489180283233022406465043247305479067360227521809438594267556646223725721186717777786543350939015298980342396720981080689801242323661978213274375683313066378744851119313656822900715665802581954265501320312364681452854161643979465756448848211405512000033126294180249518424267392863533870668441289899052421888317932756085267412956778513289561764717846299194291223622986585026902942384657127126997566624509503222506480630946573968654034459657423773991385266082699031512529448980399272887842735849507870914794312335943940015803762137363520498618255127708625743656936806423997127472089012256402211834379352685624820721066149366827966868589386965396562915905956637801365026203358941444864240665027557234987959580703699608356011808419512137447334036889857864636694322318807014839660730583657984038946669738583948066208064074996175244776051762693648944737117516558193312633508836740862048366626427069249087260016270745511999780521215546151677723399243087580524295444254072465435822124203803926168267888328296379890613559071452230612862413246863331120168203984165791523220579881213938698203924708996756207855801311939241480123574079964881817621274254474750277743791406042232041699075298485576847614620404841879447039715722855244388274223546555852715414698890765844082187792525399516777419459932945675805399271838930195730561355534251996773815039560391777390059185072281083364866700619371658282947835615450233984542400683842626993796736711060433252610143663706478065815637430494710532729153930779340942015908136833144909460594291597008276038094771476507526758146780611809119426222610621256230232490283217493825653634430095708533193620526733377465160655881635167891442847034182191060277517012638392782316205993254769112635095823202596992614517232526007978256975768130905116493768332287292428751087946704037921320030186910337798304832768874861873463074570574029309985670207966662386678349312854179578767032038440165235646170400341221526434360544346589243295142602659436578145877469376384910950902766678520636322040591385212316218828404572405532540114692546188493868561194864205751563542520479213362756791987068394750035878719067063996848019945357824302144757289454911111609303951386439245323700848647454957994269830168875638063995395931892033175469952032089675725975466201072445883160226870050396045533137224442225760699285919704726085108824637806029599375090276075672863250364238347146192995991794712056980099230352324475439424554992341074109772448766400028050783037469267391930915067476020884269732074803703287849519905605365518664942329021877279075543828141182913705807007665569644096207386432684131342317773481171026214129378874192478554179228920472358005937032067287142908858374757484825180286480366642186319383601728531206483848532290255868574812491942089810963886786842238195164682539658997599200456302487672800883384007134129570093255916070709027182848905948349849480181093560948222752305160606898058517218323201696135055377726138229986973031362042583765331895118768486235109747327141640435822152533528002334328962022412513994603935295422533831694764789653403429927353933618402669618789667473028093696090130005190838767382419008752542371839828319299355692827807386811049044831268050945643282121528324863850849123300232005266589490457476939676013407377762076791708160589443212163450699979949755005428517484257556928411422726619080584760863786224837328248604317205007360322777417988543228191001333875344177133265810264402907534469469839687109741745757887407332261527662563044059029140374040799625069628040931276236653105277919360418721032307877539981374991572543177148484844202511738997378423035902088252516844287462076706050262184118437469878060643760227192346182140889632620411543782893075252340210308882912697722704570182928083520846209649406639317605457993800851554306038699873767207224424136840138929697951767933494649075725558773416268062237814078227052320746451323466847313574909261629299436307509289572807346795523718376206566822892095577548244337849936280165215707840904901972018125173930790521208900257695390340412446225978640893483816039170814050533953862371916784296726355311895232524000747585915336286881047711117488848733221193536720786837269982339731967240442131540347096547918793512029056833715269703444739034004098538120919770927989539495531741902641193222687801584957245484661761972040341659308746334184768021061020842138511380601493282575935923693612807257879454978380189527627264111716372527512793191958010526665710863519090737778821625590871297304449500316651136998083505244349490092876307788965497811719455985045988673066560876735422458783355729252317990238090861798319157714600083219370044797416078842357607207847244424233635177533170430192092387675901719192742609368537827421065977070030903698747525905002992815806989381362902730593411959326507827526761709858435237389936364858770316234182929288353948764972989398405669438607636691052055489146536988101678256749365222708098688224515711107200173695881121095803849091839368018351825344715776279962204012249469241355396471477568850825705558032339286201862701274231121645556829829067828914609243175029598899788188121765942391931223349263612972515166117534486315266848663905857301151702149517276808708063517840945470936819668924650204029267927761275575938282066757270244081904212877843274426284807318781857867923854743606695872917690273609431746343851747025894668115410167160159909916267214576443940192489681520546657444064577951628367584526078452870538480777457091533108399611519385226746302998051485087168950619738891644769467917347399366433766714128388592239716235994324273399947713870755388922822434797387112402243533228462102934678923523167392770701306039804863983498446429822644324214724476686816959584967865081852997569556756156124355332331885223459757136880841886647158138195015992199617961403250452819314664559913201202863271574147619312168126183983234834412639244129934182062236065625782314897156599699192670472713887599040291181614786622308782717423448626869502453514453506280477603445825148106219141820279371599400327258840191527487683329432062897186285835481763022489105556795751034392159650748775333313312732241914618040827039901505701677603554402105612654826623756531847249603002399181910390923800348123241949617459809228382386175870271997531610212811901697154568309803611111895335055038168114877916323468133495961435974876985610761193811500454963866310007518782795391349680899528639923471002137458170560922589541294708358236392003889478328221382873538673828275474432214496777879407800269398052571183807690607439979095809406107272277330756367129925455865371603035171197868893810186556493083502928162492521572543409767819664926449701817663917021041666086729632897011635477769930468676282852838247101144143936324589012270184557707933488470531176280402547764493359882098947599000153408647743655695959023755496903207083150818033556811048817295872969354848289818655732986246606530663590001214305834390602269687703019993031143117218304771345269449423237881234283753310627823819663450594814288102622152942859684937677051622330281220852522700708132388857084612141158956175609318892294261434129352523758107243991299627701419349049084083609967010224834438929124183289915894188239548481456508997600978373825907798784943644863658504758870490907379436041045479154746480002090245003605591038524714485575287996785697037179871927117743393460250909717363099848598785370634710340752065833204332981928701112391180630381221138631467303571721644598052997546068293950127295252352381473473457723592168055598632745150716130861218204018173830887562757535405472864661012514181053935230803594203668615339897953431079386490466305767206771701706948441726274342878017968599444425168433396929214236082637661875476129887540277550202493730651688367245137428967958092656358028731380319535029149471830890384197863454537038979819993139200453490581728427405606741962727328767577419969940036374524415394887652791672077899702714202963912924801089934251727253725963847307191350601941667572382432763622535715500688665218982386409665080587475597228175426341916769104411525091169656621525193848372895759747124863708328091664896883668619602266453537140990819234639261450983473552305369779234433240516763342158250876081129656396563721920754578263042068435713725761033750511305637071108999346462197480978550198351923075159302301270330470151023590185678789835289169576010202858283771342839789952287704850101478104561717285979016637604845537658399720914346880765951631462841565384182893248079121148761484219523035127665913000417832620458289450112553974182476380105447012170604107344756341109360875122602177832886832431456894954098074027953020920999298874810751391027699554828590013676051251580360907818720781482602589289312430690353337236761169303534229526351926887886118125722140667237134623819918526744243574168443633275941673835893822085392236525770014089568430367048776962885782337894601660340083733745106500948117037577844177699529232652412250493025348088756988509234669063204888844691879758819287875952404417635435154287394160581822117289634908960075239644149094253322930592236804927175634950568975281292512053241892645176285670173117666730646515883803827382247775496252818777028745861503935899883767933574312206251685909370964566454730522744062302196314764343011280855912807367357366667049017800722786240049940898648181662382046669314633460129771360421559917417272579389034440645124832087706607445301458169572900071077496033501284862038465682858974430065963550177029733002843968015720921346048840684959376370340904262295542313910709008196127142382346650902818442634410423197221152916773808643288784224206217452761953437925265787703594538360155056575780057415403013419519818333535862509081085774384304348087565908745506235769058682311828190729420753809074986254692417988822571797228691944780189651837304485761424164794385070042711321553874901980532054032693203424347163101865540802036496655242490689005944088244972459280785795979047028841812763168207995077502977654021506841097872012609411133703576922103355243017942078779798584310654738533798768050687517222760201856892838554115549989119445719961766935096414319651717632382070424497046430954434117021528191471520696026348930326821777094216679861884410900430967044814236167940398299067359430815034841225819337437383073071791115280939868367006831280593262281624172317500218188082258244366378044727275187395615095540619170373448849836184427951113887039595757840701074786406839213747211116288865714162444359113318413076864925467559262767215648328469477027557776161633103234940193353592559979304201781333872641695651545905637643118478060231640573976552093987028411392179915361254976304711852478363833344160064300032853785878279520773580551940242132830604974813079165694907667715539731969690654894276353135207259399210379093174374649003171223807038889967883358270770022294416282216074674626793414188046853702607866158884087804192663978503449322293732397075957972044169575584730916971477435368665633828912036397791715067267500185270478850354208882126540912606515367859290428041342040523449115089884286062960961139958747992971057300258732949090217323087576264556346032808077435257217748805622933498788608813451281220428508106445101577175040875767583876780137462068904763682817703768577994470320753375705613192325725300173148013859357066246148424774539806391254420849121560963895479852874927179561705978922624371635658212798847902595321657686997868748590351361490958114861676335038077375553656013920984911385123803702944993403975383847779913490621408121696082993845636503198821443986318380539875424661437531848156360412329602718748779110236816426952178786088872338799159884948599429461432239721264104346626264460488606751557928794900307048257915720180136120827538214575436819283271181592260918021416094052900963986975175698728954350223863143887769160812569323784946351521552094453660330611232791301700918023546049496179319264028433265145326098534331463892492875797060404307889047959419883387320571367412237012912790718356471084298051594502900064266831779704711369025883355047506379722712663406670334506023335284582846611614300878347535177514341552795375888203718440254355316251430067499265246206339736468023353625473944836627536529959495825116835705164744870257165717179919406714969410928479755486610106064992586978181537680761438171365093910858980445209379229746188951683082449300347816708123637918738297072638142548905577037690905633067904281965787360264937151728908226586414509732508427193514774181028918489180873599781223433669624944938927704616651350223852566678919779763324080558961829061604195707246577367139720995225988567427540019073449243605644138383435416501575474728892602808833041909137065607909766218556482480438468481897235538935467576844062443480677537169601968458552853696354053081399296766264884811961188708565843263325240726531738757117927878149607788055943909972181118771998684048697360620331958159394317884592644315793363331493373158988489344537608979747067161469942574086001094306203491349005921927763252775621962996899985719982105162969220384080551889821934154372580658021070649923669948411425372646358166431166697419455359463010762599654363200111359323628542352284238805437319027583206936311788931682043442123851393115290783067671530279018753696562597298625405633274391647410681609208974970090463058354674318121218216778652646846225992862717340939085263123287044158976970959585774335345202991480244025446467024262317154730882809511547796279214981288073411117084801183644893616265800080144013336305643185947336730403567047172622162268510064825455350538368718909220977271829508803638558958756396121837718432285685754144970223683483194697969068208140924788212801978417865323523028327670174330647738026113689923917095532056910370406333939928188366074389750518173606708062409034503048893855087217601424836857652751965056205744186958964715560244078030992908994733580677147817767275052660078257127220887991560829153033218308603750122971029836668463107209668794948300993769970838496700543944356548815204163011425702560861955926936135889360680143022828064757566505449472676652478001335810804031812936730508550509823680523593612748703598751238906020192809241430037730455097985542915155801174807685225661321202862553212864279983218659616407584153163689239868968662598197744289411875209645260497820491431247986024182169236288573899809337646360637872162652783626059775927023187874832363249141759499964161119790844696973119054258774785542857145602956172273843391469361445585222197934653703968480596115919902720936759332050445507619311876195560431261252442271312330868633921957150907920352167825368931239505681425468173685858758022717172258707585374771898196542094352053292986159532309756615408922795378042816403768226349947001898845392627805540823029721767471496506017726076542200478285383894877610340803927267195033557282220767896647099186065573884829689425707417425455615866157011330602393887722312217819096285430431473076985905338683296070153071611890076867497740036043446807511407946842244142429359031603961913002479193632603349332506822798461410154845196531592034691262637135248046087844505440360408272448403028169428156034471619454600561107514659500234016334235332038107616286089705354152006619850197278498009419129794951888712071719287330787280840833379923055550222288899339731336568140968061543643137310801208118592036202322192954694722629702119918338352214808577559321879772109720911024349945723891336478651472742519586796247213407326019131854678514233748634758979769286664471416604419436126640241657581913903270128988806708006932381036789664494085621963386568419007143302695532635049779508570357233085962977855687319187787571828861697602721630211768849493818410382195831822268566164549448074900694398000499915067162083688069384382321029062762045761232480035953326504986236159064364076394045824987262224261967654930335900802701692352422261630730085976096990741611490640856499612885863298359091583348637957999135293849785567674375600677517321394560357347031666115764455422536248114078614336454408829348949316342647848798729017822479217201379955793573854076094191854139443104576478142032930529820579244341849693654994851472458194415532837828896404810419490208705334341643003094157386870579915621640780824442210791988525696418237788703243274196537776334298854045710361189862202908940616439014162960579214742856686178166244991211515423399511337820940292098410321607192820791119212734294405828403716174105908816444175070417372406334286036168630408291717375153416791806402087517326457648737125240471060954642770136274662691348903589628413511922059951581240792872361011588036289807471077039629257917680732950358392001916812296181446693734404083889681936280030993034971674257315116604313695744395643543206762375047454753233463630739526491922148310144077295668102047071274060889879042420697214012472589273740626167200669135139987259519129972074847325792957641576755901086622833742372337652974941124466448685364358166680463455692802074659991875623679696926967837600899371188076253786870857611974687583274533764490067958877797509553575856425736652914636076385635231234657238479035239156423141426260274819062654833898597052982164129419127110484623572042749416135602160230814117719919732817513265573770261658728955547292489973356023030806724963240721659172627665160323898011125680781706918311991607332322703575555669446908496334431294904902764208143436720806603507528506006152851345607619352859174281851707805022596039435468114159068759356474006856885495493945426210832005440186750909700586648916334917366701294152135083345945138282758554490674785619218610073275147392328892304330557198008835056133712159835908384139710880756342715434366892161194591351033537148190589555354160523541739966229608800608651454814344408592831372203413235923916098743766965282334726783428777816732980823602378502836669608906980375258962498266011996532727614677593135175332994523177029374597359017446890904225458551162164605871547155774798729539258356389819396842095514039295590579189420669641866790409662917550215641576030484533480760780199428904060073496696252194277035810824488064694355999919313124638542335765644986798460922210629961783355011849638419832210042957200316159080905979352389430696424312883027126568744332857448076424309894828985090462552639225721946928463509086790599927954431606222081908164433188750959347546920240359451476392506138234450634461306266055182962434363243197825249328565319432912838055437473256252542714890454673567354541991381373975394480048092170199802213792444713156383702346728315990618442130786533534069901220558427845650513559755935774010558777156470736753718563108602298547726794952679420834303334901647695678568737618510227741645989809288577076692716781465144199992565408710639015318254785039639041714028057105782896936684355478460596607224384131392868056719973715265882307868836932168011793179602401835889288337559691443494856185237994783254926873241338233126221165850356017655971006674032963469609496265809058669257198966205155515636505626258399933076453090018406511683028150364345918508260829177141155399534382647194751233907992905446052163853735550241064680658310756004185662624632965861309913783104008121152538138402779765795555703350996843731353829544591430257106945659671617548471294649321855181324892034672142935309447373142596729455387589205750406414725435448902046315614982177216710977112115399484192805418949867088063990344159461750775915275358826227289856603065347444739893639673966261763058087982914084407987040407368076306860198079416938276949869778087055181360786768713664839267328608145895427351662891064720220861653246311855988180256914440581225175000850328478380588367169937639922174790192029446019392503044252998630126009961420057384011951623662177456527660703863633759580420749914003705325517718214018335512493809910969784975028063575637076723394269444195813310893266645954911416182445440295069419627028678923102522101917162045800626250600105884465679666283077674823728408266670232026339251948027705885037837231408353451481072368727026149766339688250613283065004060537476602586513106125200259183554067044560987627499900934523310048505603193901701852065940590843006983703617337530480371379517420631644772370715685640183344602769540316705433955232400942184084454667713474276109712811582587777735647725775122806861044195260767399427150901601722096877389627552257673804180711048980777309565503115620366818088599595022123972489737953275833903056266032938659066068286871630220766763658406564425964414422081874783396578345358765765499660560951200523016968357646464537943926560075156627737926583810321895324175603795938148922905306839701838152492473094952906609632293357475678133323993121148781926389521799239069587867704902254038768600510196177240708270577287712987733876249430315938925459219576026998564218085003521100309183519290544291903497585370313073758804975626321634491357015449623962975862507891748520240644836168184440660018876051108731770416082213417008283365768815467889242983783887651036664168205305862251406700612463412446638436818246826555074353178857513263862455312240876013777702136784273835313554523802711203962629350145261901536465602379254092967898081354539295545332368211087227732282852598440846104745852179445713844715945828578049699391532123212992028267110971828981326643825260430508374187834027288877735840546699455157530481910012838205930359355804376526390065788218033400274207582091013871004812085822001029028252681668784302720934624423048632146136795400604380295105844956058617268477138404298925752414249790412213892000761040167363147826335843808689237847191585547691712546420367438814713851707576872001307025955621590912602617768987842760522667648900838773530130090305211712092968227808839826575980673520094509313089769312795424777087075727928467386072441219610825959655187188247411409451069012637872929881674691159339096710833908682276657168170422181023084005703792959748797623113394239238663679234702876167622611988152865118347501988932034776313125202753761967380719235166329592278052086155257392372138944946147869252774100069075895866658744261002992834121970045376462599330055928023077301923372093915369624554039910632544537091395816935327115088784653593602303257354795003112595052458539797303689266137582057450837007276169754942345565803055265997030936272815455637452413198976924122724150433843665445431612921543183078411655017160047889190028442953093058364531856740229109848949682177772700793975043356115852964838005660365919259408445526591616182499585931611804565923255641023340825674480357247253102222004067795007010593044043776287022919598197872409509713687277355987365228264084093469045697861083543219817095828807318464749129702740234218041338691210032033837128561513980621771029503909801371683552930226711700418069621005814394054283021882417985095933035248861223964960928107814600430224283243355395484835797459547274867478357009398027888916008365154354416152392041967164668481877823477906893419912600627812880555432599373842118543545129168265632611443472867965022784634351174086075492297069492467190983579761424703735420730534986382127866337365642363073828394518294633488285827333911240653762491234223045489287189211382998787780861214621088546905406370596563748531585534330985460189983654336580563713186283655544332495735468347992080885015782094645219062298236240300984083617572453000961521707744581836216384211354068169350335761764856569772944234480401382745050753488462659887657073145323093872567316423019215145647421784403505284968100300718239081299403501551826748136808188416037860910603543540538130361203382980393945709589707140055990568820824923524746865169148621520962953648556973241691005582756621839669441089096012037277574561266051462649831541738997275414870848245747019116998716828641941843726204729324581137019631379276302370527137182120536142400284390395288056422607556575420587041007400942396753731422980741084214372510886327211271459887625928529211749950314820458951616722718274402742667252487151689709920850076564471794363497628504439164654061356461766241152291393735702268511610779838016974607964136954588829705553787346824152049049740286643406673287817213804433117277097628687667447416317401094379148593355535124313063972365800166973738817272905321324411089247838940850482498579845613157269927511442613574861282386209236756131414620018677415762428814725159402784766858703218273612387356936759680912844660332739530883473851128049250664613102150979869390459469314097919518413748045195119680401274483286304381246484257321228581317528060969043255300379062637905985278221365431098935524880041929950891156551094375380174814587340446422816203003351926039291618832839111377221576020955432473877557468410815451750152461356939220188897462192493391505035390732320100941078842459513987878588811314783796393156303072752270682209203650899526006084809705000927679530910975914560401115039466459198549121270135523112010998611407270366401834173880051868456200656363115184089118319668899260645697215245342008499552134678749608267165121641165891462397363872778350751834750402116594925277091084249574127576642363460789637748830253665224927413899587969505295577218639748028599270331893560879943117766634015515975852066970569893465841239892239774510800657264229876233186433009360640931077631672639875627314652562250397757872260629505893114045766590060183446736211710791691375491812244172288860026062520758943645071457422961425051632440738267916531010159463884993774280378910542538170094386201173350235353594934721491375436310553576932820438778269985374017914580190596461174326626919491992434657549907500734276337364581193546755167744228369796398270949357617767951033709641367495057873623428048373087454356520418406123677582509491411693855869847611117400947863079363130271005171806537679283248176176880573368254890953148758353217118335789086557352745094718027913178040411971373977246470823998450218634837698349999796446792809535632364731069643071888315043848108338760407393718629513333723654453531710982550054789548158385467907090265393437399053749810580372713214251155076075823211927388919069233337548278477422462046820237262089060454912510247314241484399065138841681712594307300876417872683440412757687559668140483529759267744352198480913439076752821290993847554631611634136526760385457711683880684716914322345448182436543546766553291452327110353532189716149734360829964722047188369243862140075948232477450857631665153136689032133103518182331893487322833258633236318501139196083432447319200520563061204976563893084056999906476657149722075011389039358045313960359825380607561371006962005643717190471443526590092552361472198670182466429666051917390533894495587794870367539164628788280705257641070577890573165281413585718351683898566056318834820773586550208543842543015644006596134138232523449378117536291020835377922118166513865834787282741289572382586066850833881321555093485135111696176578478917286973706042621505815140140181364169413128229441229445694444874900238781359934082359404880960821813727893788755806006536535177773497928151411258667531694502563967181917254178620007589883642658345099217635949062811548424222913094000544291916092058114993980336766271836026656006589395902283080589254720393245911360965935401617687638775600083036586182743452012930955595369421043773823458875517693533384389220219625971040260830581274794729470523753594636825887100683180882214990392569678715891384127619976838126355146198944430060342129332717013135474314677829357532047185058617489496640029186761561413507637450819907398868111055539012498699531321460885799511195252814546525195904702996109383607557285377297266266374799389464791247937924908743427939649502817174684346122434317307393199053902762418506996715877935655653076453860892450924708449966440902830564722141318255734363491550839643872165591701388955600880232555357643211152831398841631931349043181860457497219039650724914147436851170525956712522737137732105352976281197343824151017281056889369030204164378251207776031448962070643974308553588451882861057545352995838383289079701080632818565580791393621345747306349386407718569411023080954643694001625608022934904376286498905564235075149735047629836521832483019727259383983352034229317334648664447429025257563024331547974778964929652382080408089593530875471137034386807347224325464311572292689435395631507026664092623868615108852827955829701453742848238310449030102793827158313300188112568623992082033514177258770024541536571497986321661862150208791920700231684916805278945519919006373452675359535410164670623547228055642848707509639464595884674480761013298846714925697660735355045839423812356429069857984800518282608857247004165133255605546865235097192415841072889558988162026539948691902045364797314180865243382901653385656035542658058081737139843152660881355279695018103126498262260988675665409653030847177916180583916631692810559421002946161610277765060902629389542957632516769956440847928876460186666317748439275560501355955775665241543572742575871251952545907645780979505724829572521947617297687578722541880980813152016287917628509100014761181821652522494081247046990778272843206045978418929408889746893387670616076847679901591412752521046869694396096434465995942653421189044629754683732514468819543012194297096720035097139043632265882128064471820430672587190104464527144365189601412983051595345658025885453856781816809967364684983092316042428896781947036980555488224519180441591213219385808450978303525344325541342092483067825631610708607333348001483992398739525543682881712871582319302986211152066288777410573161327880578558491792127102617372477116181699107008368078710171720321634227202379692832747079296658839232001344053388885347306068639528058651482457430701211539915364384297375573934825492395944963133956532426325078815147976388515469827009473526042505463252692669456888974923464317418637118481762636162308817576293541582124438936288625241967348802652174883164259191850172956284077631504225155613591757103387272403299613174714728974344732512112383247595374320907981143090399407432592225500619629039431379147139223709146802903095124425983929093598856072773248805896758899552719601291717226744174578001056270827142080726748146476287978916600656402700928528570739372310892404634495840601368532601202201421766267775609461224878728379413544138663745743359196567402004668416021964019701610144346420620636751810014620383370378326403290811796023479188346445026087239142432603089538788971970390453904529673380880099061840827793926155048341108950909834522598774986392765134358351775438171535404533174910986372886228391985568935995926441485301012438124042717647251256294184560813087369106205338552555092893804066692041084089984291356337410887682353498820512721811305720750121575267790728753504923976569999462762248096180313689804919588319925260985998344017078109823688027686964886409834965757447078428819623280192588595527866677092256849539459150428227182743639410692492100377948190277267674213263993121116137799576275671518968634228908303788639840066530655147332429308923226712327883810997414026794006740350579126784398665674438556030579870872214203837647247988575910454402923408960473082679198848391583636662497691474070800535436273729424364302469452035250977843712331436364312984767051426204673262566118260069360874252359766896930966576942653233612678456868539757578140320553656534887196639182236419057098395822412045214255776283895350141250740163451610701808039788052991606979993723985406653734305792957806641425987947660309096361218336547369305792610568797940634103094246861002812112626581907583378485805547514053884495387972107597107423247180223525234900455640221921725099332657393798373754228153184893645050664803945273442490682971847278765286911402012628061409134715745740175403141382585419084724787163693102712408057912084963996713564731769859458769376118362231426544659254801218112251439343285385519413263034092213766267295224502654404655995909021485261647777278346285858457279584772737272021678963925829247897824870821975279009679812429646894760157042649568228249529252838749310868969073625882926334511270034410709236790300647005916488826488255252013369307049941862797264736630699572499086067889546700380117799828288216838129164525200148233508989710345445041849976263139950276874071901241656276843579807192592761733400293346354121650210454092284774620144293402190334574695670100335146669391564801596551916559367132505459047563765624136041481433680872092128043962170908215653731275414399143980373616490944247154977161579853767757313049893897554331590833992088324216223124504094834170946299662261307518325703108612160596630959679693598885449368846724615006469777441400756247569503699555526201924664259561535248593031808222082257928343483967264959652460290231857174774068308521078574907140074350831850795491041443618372408616651395127903789836777289116194339956130151073133890571619773060531841574366458065570385293676569865760381414693036665248328418539186926167047356961542663789275169732375869241363356437735311853653470775503487528554924513099632350628273991738283221605427636693880812969964446794390080756776290731754961868492996399622622451902818309544378992415181269581870782344083946699380874491996674892696437793940638865215723636015077158850295247806146782482919081107283296311809941625788852819023664732288809992713915574501236917338412100211837535977272566581567300475748586262491286377839451430759003229237601781135968510535950155060169280172458468127012194139751560762501994130934185500888578091985476174809964764681434799213092808687811411932736105061545955692231117853013374940717360616865143078942761686770565936527970584401576523233849769766295231959257625273981957381809876272089324648975129247339432138877291630188612162109194693577636483429244819048232885051286143076984507366294458523637527475003631877613933492096730183790656367343847573823780775152276607615651021003878946480708462412140404402345113358166153575514426260607459016999154741313721828961338405946071938772556724857868624860435191267418204021527252450978728185156772355396519272449226828850366162942009930780031624784063051542177621059426544850200129301095291189205769523407465175413940839062688649261270635114245193103456114645458707869632376511604085385331040539514033635550553271284042682500316780707758239631547916039381460960124830048385380145480260390486023131809597050732784609244164930572531438523455104376111968207440544145331588696982326315492549707784547647570968902336245890656102689915469521992353328390610957041136624282616539047584010210489200304421672216058407189423706441268831718530126116973977433241038100022005851389869590983751717013502584366135375321696324075971006452121787925660219142249151018845051519195927050733343456119266596213147083617694088390624704386817737519661238901204692417291689429607773392832761696510394015500827775458194374418652450285122861975399216566519256277063670711838704219702618702021606058221709628296790988688852688891909855526694845072244838009343628321008046493963897769466523739789355048964510553061475633940587060666014693021769888340494148006112393379334931670126799982087949751039030047914390564547105409922780887695542915637304687953660290996214501550548387204360589979395310183955446980637633385578232151710163635702886903054007746446622189548649040317238983709143923249082919914417825751725995628791204298122059698258206268788107390090740172343331990537344983981460378774284966028954769768671600817270185046137372828178861363417997174638463983395718376694247261531235233462593161568154509706742839079301641931806441411908540380031554080856533853760734428734998915670082287532042398902662663356426570097036572516422557649851433871778903590929241880421943608086858884351612076170342572388577831070650871486092304281248988554152590881360743520716892256316968846451380095636430137186772117238293338747384087800215375490666755042841155730347106165838472126033588446152437565529979580046883454455147324852028633320726456918941945308038931856313568810391468801372725263625580318500958869033763111565492320250781765078726020570190958160233423674928966804008966890396766629044767682211415913290713296334058306435314048471388152016520751299919359822099838900033892834556782273911689349636721248001443880803104996581084846487302880243175826303911569175001647299200786653708855075352408866935046392044972613198542187736956226548228224227301665266025791288501153880528803728297682443724607735202137517093718906035547493616047565086920206567398526602653155066483662155439209157161218344351046827559956528555696347279051686098675616998838371775431941929904685668345858767841833312187980042012155142650889969005886487116912223787365443156042511464795540473226409248156605464916714724264755845524815995314659031252639699475574625112490413290055919204975891071111876618165645855162052849069842609958271034360365855718986985901712359485460706066007311267129335094682788847690323203598465460092216849974270907073610678711856712897064359065836695663223236146958902123489185836150495015498063931986561389442293572609470537294597122436075948198895354264886783295055612392222910796234592972529668094398704245498379414643574680669195333523326031179184940119633674772016483528481448328666256259674692528724006323715572662527538566826654611507103938514440925032478147704973691974670581102722817046934928547347164506284458146991845424303007076230230909733430945566683827308152737941423628995550036665760624063828618720157658158401500796856575325567634134651994828059973883655122132874544923847749047840314726934399836340742703815547391537500026499961229851884144751226782801214029129154221902141384606708585309934370541145865494017297656612252518815571938989700690558389074877521545297912677506982907016202555950460651323563327453428939146254372001049686643062939176216871071119867645545504652063350012507669869326937269910640126342308292739330849982585690082429328440274800417291282570053910052724772952751542453416480594307176258121008156402593114474908219795848422948127114537263511390522160600430346781553429751376054916847183838645043642605226701962086203764809702449977966843811968710123515547791707183186509772836495443185490659471391960926541363235544424265409326767123216943106187475531318656160291432511425667497966449350385149886433520173518061864722500454362858793016566820954496953136310121828061767648793285217901763856512461682306885529318926740933635956147298613027036192702685925826452753650376901547520371699629158282381375748621921731244257906478417233518275757335919119711422827022854830680300004099611590563264827044694737924687935388392528440360807707594901977416588197783513773301706312732198586009486744628071413917978261445300387543375053239286916067017843746014675777871832335764921928505249485296388840150610179061469364102282898021269006516360421255955698093252922069679816394851162957110733777761918459256898845083901772159433054040850329226437358125604317561773202590721446113674710155627714287986135467925193259102522856818394323511064005261312794679071809655035684806104881661460226998880647029822367794932428239614252914399078996550136890673365845900131876985633163582534980306731477886833321065616111707278425052489580693630472338040121594924492215845209650648099982340208460615848231942560130041458145641034104290076907588603634853169241808402580372537329468212855547175257243328537453365356390445474181624345208028019525087421278539184664361486532141787410066618520778246614478064157226317967706347383247909378031807495863045357374439049445825447568420690892341066821450054384325398938539569026182593033862979675478681868361586179099671688382175460638872671629176757290653027816977552166223488378160780036767860063055120561191031895803100543915274462416518286161737135300294252163014521071155324425260504084094649053767553561933013478319534870671835266371388950107971963028687633264302395678805157074472582405649460389782654622182668838366069027943981414424639181863591340002386583375422912705845963019699856038002500571815184411383806655143438651246837459976806337453078109864652466113253396411190470829102969300614572244526754976420652895097405264080724743521622381826667300975948313248028171046994172426743777168612024126708420296203067205297577798113081724865033786915918603270857539048932650915321835935377911772773507401322595584202054809020934563035175556529706918218622984926292175456247300102478082289591259413135024433667528977106218437231267683528879047131220035188273799219680722808309942202980217071585034897922601372159423030900637802661598013870620977515064411524549774216400772679851910441228985601211886034289479302083021836055059693274769762523481644325888099250824780415940264888313118366753437754725778039239866691125626557131845108077382104392020335026956581950400820699382508211309422251205245063008641723830185141267373674193379425099773120619752825447046579107683930243028082307416603747918138612985357686368542661214640774827556766008397366227015732821243982167627910381428980811756254183657661848874910781529703811365495514520694559586279653328193448572899169012516701025103375971098047093991724891070637087985966652301875099507322771436245115587777284793218907433803178241533600881570006167336442797789223964108162676642730168445353663940901310269033837206321393323333185468649578871172025870943714639785856485447845718216872830798538376535084286407050299747816066510892967572433862311230283710859378107173560768493870381881526726370854022939257987679836670960481631715107753085915360471599422981397894362286567062965131344935683816516342769611799264451804755164976998825314727307980214785278765903840267563261380204944985131594935507214255826891156224705702271298309426422387770539299471866928606178887422245611229006739026647670227322024696805457507957511534824404582572045419860016283064778145900060635524006346065130494246353828965737240606783646415807852913442401739723368520057836939926153131617041324942055123288527500646584578696889167561006156197467883031448989048406249600293923485421328171222213957582853752907790286507034591719401311517505785310216276831195048584999216846043606525566289681152482382866751648543732458530728592021604130754321379782560131087003340501739185832762638530448724815949125032671988890358571814339963576287030172860827883168838368663219500816348256557586155288324593555267433512136052524338853066232422939137380040581462576499959899111275323195511890468308888343465739251527589578610946244756040195883295535989381990179173720808917937726385161517832977035219361129075965961557658886805349116761522880651331259843772833965955481154103287240771902105643213799990227650493544608110284741832694421264951693689079878473705693550732208562131919090846258494874883202472778332025804828254843858167421292612880887735994517935185207800938971649422213478115064939843092531262821874419768067969416513021363526210785121273146698181679038742623083272132352275363968173392870248874605351272897891779391475014385839350114151121202697941264129289994606817112072174818583343481928195498191235989324975524028730254609693369831761089335454519610758238676383411176699686697910101690909777049640543417226833497081774435242772035863796830523199443993949316129146791862098711290656191631314761086529673551828255381248311743818039694669148302339949787537101062888804779549652358389423853713894163944351283102678299235641358423097930279924092894850594452248704859787849562951857641227953048427750736137567058197731086308724187271250453723342859793043108361979360819009871460707609612469499649246483151446925251163811186688749038355187377973184974167768920580778007749165512485510094116872974057497557438305032747669211013869341992963367713272884612800728580810835227670199675446729666007383488066379573696527036518370447923960204421148159679331021618928285929252254950037445020259748560662376480884584751828128130814727929515668259186740996301201174350702836280358214771374645492075778814704560741212281101549995720776891069128088608884678576011232773091835873327889164120920265856111448571832765680773206011990585432246882502286874630635338734781254563674904581914832621375951224555162542902558425502092613902226086242762376667947406553078118708703324805498113504484524759132150482321596449527781102378637073924370054407113968713605877384691652882592016808491997424650443727717422819773275736729605749310022000589841700134967957055628484887042357588356211264520875833009357369899666734916890567158839669485577200057593438742627413106176379814200149835701372205312572060787714030889753350870790305734863757096079974154515421341282014282628935981639395998710230536902715849177039479069379205657417299022083892709576505907120783198628435064234664242699739291578598712891161004860628487371822045924214950516865618989461908577499411240446716087293342116592552999316188182187571204064710969153713809663831261058325247033128876619396838589378179092752093890154691183517540907193754955465540429971340707374987968672103282826650344880922540481277820433830978170602379787012859632273716444165758540852102252375328086835853566899078693234339947459845741087699376432189390395655972655811476756010295307116518159689033315621329266383310771155731900864032460849094303965106683443095814867349884127163759178872499523216947092881888583704481710048825441930865461793708931660685767003359743774803403035540940908171824431484289367275690755543996791710793087595253739472017821841754879382797806086738526676106302730573977081153212190861109435994769748882767521440722007548463660179411772794307959052551860826406277682294673473924426751639560963990756080193320793238506094410187187674680714943320141567572201633472807106382011500921710081719104614756170106779470973836282902006243187824945315577135358026808179352303099206201249198597078921194075223288541099909988621772212214407438136240821133733043396178920592105076428225287556534728805388015682199982529113499753412594977812783707288602745053084387599327959161763903004398009136248922099120103084393020461882267909579195306071528618683604995020433208442016142181099985182031002693870661034214056610231655978063813736968766560189696416440826602946294442894979565520999122019649010088119702840346669643547255251006481249088271504237287159935083255057839788409362708227659045118215856998762577319621132199518000625436001123040103895399331151454370407986021549802158408169228356776308059824655055601692087582414677168220431650719796218744718258173822017353004958301501376054559337610177286794210505926108319578322411168755859727713344695071147602704682287325140720078858580102152383692948576060576935889940538126956283626800461813740541013649869829817672742733373242143081147364768861278914305101788049664741410902316556809773927650607968533889215926742565984735187035611790829671770354548180513761008975583767961407132594369097397441864994211342716107534526852587149342800335098675240445297413778816470918894661705071499786007158481413820537124440767667216479117069626305899489184895920736855190271691799036535689267851046166258852876452810986203017129313747360952559241904931123725094854526399848765627641975147635869411988873831830473658143914513935678790062722809136748663178995761175272847111031154107257021695148616823973619150250725103442560665668696783425233344797387200338296556543934366183105202404055333664913633774828136173448582105054239139084877095611422635787539707406864622978583660384923015310071552277604455400546613359511792577942052843194440215665717814752885391988147057232308513732807402078562899625274199267347822183376471732475471157619002757120788464791794575145125457078524623363893524896585286690306282231587148085989435181733141397143972900657545972171707187340339077997254708322951378010153415137343189027868797956226404843077528371767082899941348648975827128259319531435586900146922999142371520929923505937233719683818616248372720590079679824226304153521134901012587213421637211750340696176812792955857859871194518789874963315545898964665037153702596740186549994884832159584126832724013443295823325485203388046021643819759569359023663279210119990043129716950182910953561215649757625860964370579971797976738658429548813205006700462645490672245337655120437811336444328647121078725439853472652453622660041264439879976727157151310385562038156648555933126624983380110080576168060698109984065515645946744770864479593098592910028388185972375773581984781760547112771307695919279219979569833446126405917190653517253009370707473433243620992556683664397067396563428123741300331325135710091644253788395810115677973168001941890018365296329439339420406927209652505889814846704349871599902305363309170466694551553061640369970019310280011584480688230967927506728500533967388944810555764058527012076107806444845302139929490019055286612685787800027895713372552976206915129046551860344093333491674042936813747422236011647448931926500873703895740902473523414405666111348096798299605287303215908506484721412535915622997783283471229644706737498362854050856820731626108624797840208393035582609946943430821975679960645806724542233711178251547927073346113598531184640353541589623803201374377153335317471942133441536378949814689004245659544780394669945304113278145035185751857269343857256387886711335218597788705325628840570437237437040469239185562905564727883702220054839977921030838266614868721961798902003773312345013470913943798403650378278356418347999188117054569812346811652845173515569448221169946987963615556540456464305754249238606211553953881445168572100646872387770408173312669214139493894636488239655791731314032133743896379431106283676083292667132393748435363133793345513589165951689310289998676812005183357896194894169263529993019773333855265188410203774735310169038710807478471134016235069755540772966277436231707722651242847126448819962455818114866609818856563602772146466162394738424444019758315291756652311902429634107061293563384349035407278582224782877431464858597520000906516800052335865396568792257886073099178209093592517905416566825981881250017045331293873905552988773324426720902134937926733624890886951337842183234296098806255498621527958438271260835062693388489127350711445368590209856380784062388149722606899533732671787829061936930433867055432805138889260313797562055066135640287749515080166318174169616763349154317646332431289530446219148941977415559498559881635402611942631992181659260920394537313196111803132079914276914337363415695724387191915133527831873278398481418414766911757457444084500287946997452669909304637900539775088491015802670194535360305838344202618023168508409201536790435094096010690535853989389648243781653677150899245417441191891735460634481748393990941811646460813535047883893220613173756689720801871327073065683234618193795423976565271785213584219546871014027228631680852986294091423574011888711816267538769850767399733200666429664877393228181948112635780150446285502984415743310022044570596586291855729320393207891760827171607575427758189232896806329182015053028303049098853584497577319027817734631884852454157835090993830452268608581592087149987864678034163369043506133272784213744934012632007169697072964318508306258149532900995201291132786879725380129129391981367045395223278564122733868515207671367134999092549966677816083120028548825327334187602644318041716974816323120427852830210051042432608136688388866806656599872143705427818055907714060561081621215407667031719926743403242912524771653389746807435250781268010015655286585478239317661847842122593849129475039939415447911338551968291245236742215510518277651922335927750298310608306740250356271903512715266458339006033003504795540189938718938765164958583157679429537517166299257700706385981419250168792011257810344888468060910428090543231684465230286366784661314804344148215467475181444951761449018287001535779691613612562694947733783068283770703624359757452540343709386464739327161474805656387705861211330789983127766937595931584546428410653445068523428843250970645834132655626302920068501884330368787635906633837819724460181577499993673924676818024260969135750767739147621748062798105292559892819250996909059595645129954286689577847695216531471988711612059967834014683007780894550929734301990924997854694865876428984537557474904576201144532318063172028193387741810037814008382659449281113765285159365137154257778771868725388743174634095774289735014570943043256930384591304769224752392534328710962272196498985984309983554708678348716971187817213675143462779039808804612833776973085777643297132485429906116713663379694250597751807897936587067958806303593966708504829441013342378662876825689505713224737786543290120079926929652965341547171969715319394688181344836051434414099376639720389420332749730100169287025119584409644472897911215775326801057094709192837543146266464068565539805767984382720243488941998670501327809699081569964713724452431131303704237687092236562692476772332356014964772765507935608686365748445189762831023173625385071268326204523306843329337944815348009246756986776121975983802396224527889048215869065035871999174623826516525982107113456491030966324624188233853520498528504863302404915157691077742916880224717148650776711568505660545655115875934722798967062799286223086604432394260553924737559604603368147513371086241253612027158660131360122364294566283354596360626218747121743213610190239271511342758859271495139000398789661065134610707422868377536797922932263415546221410742673838831666451870027223536530703450681799127304728663059071406641744774938909105191510000121074426936963306517841402722424187796917353130175717131786279959129993908764509172219329952246752138910394917036858774565632145375525999974098810947843339269412786369575692883093493289258441838049786432910430071619351156778026622386943906740716076666758394056312310783564008669768540761395987669453105370910359558252735307408025115485429450174583408645061574659074895527429029932002676631410996416560461985416007967156718790793644556467314217627060588091221086011938005323703354728539674117655923372349632160061182869868570689842805991438537088687341999348450506846481061707287535798041282435050923666041400911341797556664617644927882558143580528097573234153024749617071538317605916733396879754088258105610951659356109555295583532729049715111805084000619072316257534661778559547801741334736177144351328090675154129348104946768473617750555867115746574448994980609724037782711447111865290759720827747779908739772727221664129620371670113209603879341017160133952857833023603650261797710893251345719387194700772711662643887032548312336846928838236962489122550514924057985675716662839266610512945947669598896693731541171788408398928127978865461784447601678695657602904655166908161425991072969098743825254987760252955708761211973445799038167473519748651439890682536716114560525050673008997512511767805125096719717750378504339808501302660129239066750948149004385381882771049044803939284869158629116458621115443900016692972499697605561130041983178711899172619504489523858268491874788762927519445323989300158657691749991313719752281961394127546880132099168873231345961812645658786606905272001546625715550316879487874537683723055502902293458370219067917257225666467211921697511831246407032350560589628685698303005083482840065625026120017056329040774899860204511632948976970865818206236451890467724976956041445349220622214737251245265165418762572175275952316287353350648137770869738758895248322364655028981017363224825095110456239255072754798293803660941465371674999112050487910242262965835678084323338278920257169573782512989873704861646393505713031844807686061350207249509143662613155433124028731039147013571294953278885389779724826105459332184837723193768804622413599053433347053013385530015819441703199555667851733182021197661640302116208598568836649650459641365996854517288694342477304623153433984877156460581930578242161613826173932558918555745708452483080383506522185718802300974299080475460327023710365703680060008317428914509232388847550529852811600295091890544536671278859201885036506748145626115320445186136288037469299330948526520140669566915188353470801547865674156684592164413307653164845683076931191457806212232896750063061280285641923494575506582443052289078597986379906672441065754491605719750692801585398048329972508058570086361675957524607371247084987954336827693568497045335271312792613535596284615101813895739307800278506352445441576947847361641627033891701790556674869981372571203127265298131694849960565427947730944481979634107461935564517725323201452651936349980348142097072467351592362400666148255711370598771742298448665696635864065591765578858850710168821654372931695675151592062938095194687874774869395002009250308831830575087948501733176922546957496663044793085147052620688985880683840164165200354857343166997769363481086831480236806799803730765706085770908542120050677288156545942349646990000399133258486138891502577257178650809445711167159797054727368224072030423936019284182197234104888986510145807680615774549226766278575741347699101566188093969301832352759261304523487340589602551420925146138600958519448253798911265479992178626949357238449546447981745956825428715973297187120248212416594753655624057141217688535150503867404932496936299683610842899276033110335278829185693073389221424898313933089852221849837689464878998583372805278175315375396528907576519266142597101290239286792389289943567035260221508014149292303389203119753986855445088980647908721558525735575972752316290403435897515351097862367391171963938967920802807371499917659678507625736055716191479696331445057337573557355677063251011942754807695782727851026895293978589279475870426609833280032087172639551547286496105607552364322213549487923650716339521164879863495382507747683670620800497420759398280493395277833162290844146600294806453448789280285071789451972566924750713923053343121833589163418463389895417807298048343732719545091868841620384446446224101794323733191899056076502489126349864232474412907666167357501752322941870807936526413851068518594784226108702831932110969099927524314229078782162757583889684280156572540858411897084798304665897044969619338281403721883089225040180742321246268462706231443866555310257653857999707216102075638038497539404172051287763559156635410437826975700646943465756121954759944573517494715212254813359397602998544178500960408492563348591394829868921370692154015345109669475431585594318660182665207938002960140462579138790598312592039723422085160949968554555435847291606178725063336760726240534499120892706348647269161092015255307097852269430873633276888841408660294428377475989519528152584786108039479658597875872136658713143258467016613737782767173324174880216057063245462429247516492548359700499957124183696189312623878548446705506342228524707964346618302982764114075977104413245600210835322304080943464378952193644943100872797120818238591569734308933916985197735917395933039058682172246593943516256934982037890519570317914748608847193241085982398642781113385298781579132512614396725412422607961152102297135880043645895997544783391121845830126980156825307884341841335232640647331319368972457143317849325206287430779891691106747599188562686946194732567175696420044208423651549428410160049299126546799141050929900993692084948813151147670834727324740648929980019893749086151818378446101225241208099244033144143963634285897051166510284608465669451065741752629942249844874928241676643928087077709790107575142288047824315871701028865325986994850584858396190818382130162590509119109738369887302972197481043674722838491399201601604250294878148654102269790277173014046819056196250581948472505649424892682984046358142033279161094218286788726185562276393085547017062772350951968308937108026253959507056965156908159266793274123721261703130606759909489635484866362716001671684727197007832408153855635647695558225967071636994292427533234243673543724010673875716871656030385246940256464365922560051233493879441260126110833040072411358872928407587267197980639323767373657500796823155554582718390419033317228845441561511498188877080573978195434964906393769263896050811486230589786021376280812468267808425489736083234778809821439924221264025145238634725093262240177586017212769939598255628312690970504928635113718214125035032915054953049788729689460739588157658777933142742180197342195310528062995057348302962054764152155022708871152476796535693928021811876978881481841806025646244959308704384515122352145413105541030317075085994518523794243275993759554092262636990802356607728231388219014334385703933413242949175993798068836873631887022880471908191495957370860176843015885502159988944785052778111488430478481894324826469749707023838003287437732619908813826251185133355010666768405149244584679656970615722409620596255267618110052414578951929740962454677549772328643673888270299485466376601754256873620996032057741846699953661815733015045592623356581208454859504766067147641246521137685102420648644860817538187088761315307933205149475718054100374525262569967658789647834590747805868997001270517045857318054390419017039640649090189538985874845509336491016899079070032884673318425540855757813731020731386191260658195172013666323772156140445244646173922667459701454223503747971091560915270982996164023034374299166878156899097249800036833464009857635435832707632416554876488055299337276294545179693804953128599893645320036046026327292591948372663446019368282784847429500584096568775771983083013640390394148880940985943404277660488933368403510023734075948320715739454557114858882295019062472048390719780850647511095864171438736176592164471898199145522502195615919619449737575882175094920523958317474841897140582668531953237439638119671361550724054611033530743025425054499194093271700067693793963572187946011999608906729726720418659021135312315139730662135767725579796423669174392593911783368832017928506806561001653518253505280472103553924807044013020820377108371487526921636068098311304634365344813346877096568713917224831896981878320395661913151131034042560264084134546299946570008622401780873734515854806747747484741333998491140387789965107741659655021273954013615796011733169290614390727859569488982426949134247969683324328770750380221142387911797448659110546813177111141988242648453524476154844851293227752932547193867486623812692561401205325954907312827875373030829442065137512644438145677117518569976650732324627205927877516065677075280279809735491886020201030401542523155062056915956311125391040942541817133081967389379704578375251194270333144566163173580932107185076024756651635550597142246455735952763326071486848861500072668452565237698927690703143647084734544326914457961012559917754213365468183162688365741536833392462415301679038671259852490362566384285652346937961903985770554795980457982602701273873281977652734256028085148231948807207202426971939482995895057315223978820959184309850465927977667104304196735928213629154183159834830230637811866251752992431374383353089228267494881577237658429420808529804707031041213514526125613421255505158209837920927775404129118292810768752354958267698493116470634224155148069935947190872252840688674261952225608367058230357443932175784974624025846025648788902318211234950151516430376039404409249760603162915109450669491400190402811272797081636158781271454320378109269082418067972972185446959593377007600411364524902897138522621204717720740477575983285876495940684658794107089786860128099153709096899204316377746893762544818504445318838313309691572194537162892167971956064681815887585620052523998891849282505537165707043716029466686250063125334726001501753722685075254675596216435551035126951118399438648447394172662300306578127986402266272864111417911346295142065462578856600458347747234102585524719024325280915009584163315638061080014286221376649787848897108056497175397881554643604573766270516648395958423950299456327183105278605473578025375327417550493342844031967051225327596735333088411878555748954992140187153126364725397041407336374538065953168484569574461082734982437046437732600012709511893369916463559263419134780878095503523759792175434299206350648153967314072776846785697187905335466115467935536480573804560437339553733710101299473595756309703183377975421718616797851990863449788412239168607965857514672107370458811362590270539754416990557358934294430442746659465928272834499109967146280401081762954940962160272340288519499873389436397319645100688224631360585980551646074568024790561725320868877212934720822361026159921610871249964639111541321310637310821165403331152847346785392100626248766565158949621022470927013625997033945895725065464037100404670042898417468479531540954340103834365790174157454089508113236376665087568172910216937379451002885438187297343332064175870966681792892764298103954698891257984828406469960754034142033020426511472654005312904996978316413399746361036170993892968658285305670786740172341110829531742188356965862418239508745930544755570307487920595349844916312096719474636724005288473631938808398361375319442716889668028841279322483856837305464422695230226676591443408796256634779035143384669850900494991667418281418710168180044423082315518596694649409591901752743960446975289811210912326177746940507556919109581722833759976099776141724689205429174814340380268307697212472485688713909196579719028157386690259823057138062099034651262313578403082943966534236551041612917693197121598625696949676215560638048991874427596684499981854026024510685020801300888683334319745787842300612726237944131371229354612102622983224272236309417088709470396968224217661402956757601137379105011105100074505698653166225525875305216452418358925495643748394473637308369282731943910349606866965374529857137807343362130856423939986196050016379806058377016865637247235782998443971567334819104311891822251230073381599840845771338951993604372936687420011995466973469830074232972892277691220314613831727985710411394667251201577075604249684843152237919644647264850513203761761037498072717430975602618395295695238363585763953296176035382067987080280470990411690912152370933687848904863827866211356772826598611593273510134413574063086065864627573463661578680752921461011531637596957639006382325620798848867404744726819355380761185768997782189893796842093613507967357030547875423066098717552423829323036140931499722328630601330706291587314685057583473537944105799271389535956675282829689847113085887881228381637222732155910795503367258821030774493149800790646312238127754831131519019660282612866741689999413177220381379897330483811848217246299138977961533233429861674164518706213291125983265762090398388914323194227152991092378209248239235933892353830235824377219959418688878010504776172394891033112546107598284306382091264661767233716922681570666883685850838643372394189761396959591231117359507297446715629304121437899341508678879229429593772489605116243594178462123213934064960890753943439705788363691870292076653743394639694223151427482660267371660470519231558201527048453877807357112331072399416259827737011389564127277419669016957218036835054122464817892148523865257229063577082886433538220752507972664006351399041542614907885056825208643648429557749933358931454862833627170208772551843481780945932019989569978051767460583691272426929914326581464160845433848637334630562125290980653768410994237914314732307305673978839540283903901397492142733750517446565660483520726248313123479923441159208021701769781042992996634370405396269567662604213785625864710492592758546255558378116016075661330574510054049056463343589136459813481771721410203490648423517962962097425220279141835636556747505529759713430493918686288524125955417027661362370077759657508119783269922668445319317666675270619188085242401556927687914890233807193409534064494948198817485151657680429445045711336137480425836826277938658211664194983666843014611501499801973501148507679971405225130200255924938937980690505823161455863074919363929207617400886460273700194246110146694643259808970903083898815402108071483263536029737097077929451338555017544574800215835089436426455504395614206235836270535454896653827440504812053461672504442775910774815358656632291641460435426117908744493282277325947068617796425959131369782237438546012232007515491581165647950998122487458481330205062531802019402260394761307426571575934102322142397678205110841040642011253946858457918288509029180168159343447099024025727221171507340716504794393070023722206747140756855628761131094950903513473110558287835443161842182825908372565375252954772084026135429044626410168395170340174984528363617024146514444692659329355731402107996623440970937056456077693840787325572468435792278590495582658802850197944664720488500845282838710319980771970364905676546384238477639701743496485227455928972721441368915263618662902042477944859441764368343302142778498567130538725968585171254852687975825842017949471637996759445493265883309769875577976157571897604541957610771484734120999808887694463070431706195100769793842257754434866553696844815426718722804661178405981277497184223487561517590540808882099459349369153070490393856898081973831146827714833433832429838408458646656228809719204590173121251661056635611750521652050068347504712571732474342971446815028454235196737233306495720235588607015838644194755216936926730915283507533827355478786583558170199518287409938221342767356586825022195073932377097591416014552089165143696561368558824185512576536588957288732258207234928579835728414945287726403327180379464617891581944946312642501871947392698473233589078976824901342172267840255620286467865973435605198022785625103910025032596301522435744365286543932062731990663251164220669027647275457833315274465013846404493084980119453722847530568101652659597956471314382774340567260079438251703509522364876788849183918344770905962592607845363718991166778381093959588587377693595844945831239183881659478391077826714897329833723888105766363720293215230204710477990656479048775255725950977660882898847952045661586580146874304880568346410742288413743464841820517209542304973012020424264443832938205147342087988368008452653817415258949775252871596768861609760167311707568052118395265347655974047109186178195835082731892298963179927055612277018151470145069380759285701406799215415223320087571798880921572590010662926681981021154605780844202371223001136015254923582543643170024788900322628768422407784848051536105757682175284918209899257257641925341563965515282293941577185450214242228496794977035893525433456277891449466333579997238278527583868515229058939807886535574445624137200254909504585215474172207241104578056367310561085985799922272713542587758856216933288080356221821715143262538525410360470403035711243140830885061702689100703979552735987976716582821773777733606494098600269494717684168295771688895651388100645760278022751886754597270414215384864058389943760378331948120694444156601616803672326973940927946979063818609659404583989738295563197275506065498519496929721692126519674476593332453140197820568576269224101895922055447890779607746923542328534197019704054333229463566501549207271470063667518845395078432419481780641154657736725221606195236128642577187540156154085590057141389624816151188861717862357021963990279598241108582091062567233919589081739239095393090150941350856860233956706733420305279063772244142763174120219672141192097601599955263763674304052310096899039789194897728268116869658195457075446231962084828772807360821986692210252735809072524735242003667347880704279577842990673930095102615188549190383595920701418022670800495995409171266249873365941864147757784058577951443070142861743223083193473702982271312216583881994318135011087091621451992196977066839858386854714307414177653272533805594633698078882088325092572097032100702077044907295987291919322238331930015037010052380326527419091324907996571786546833475670770440230526307396990358580641556244364282807338806033530374234924776544447599782670920422168107910821238625270619448229649383772358683636226046488334019076288082720175398362324196710001273007797965870686033328777636882656369582982629749487723841384292969417396433225135297282892964062932901304121238764937176333330471663624310876547802421705679920126088570707103350502149587577119601916686154134286067914546467636126833375520649063296099339649141722626698038752545546942632242640930820007942843187883559078218554634686145814449957207919970037415232304801160219369350701657320107292813790901678897354444555069321459216023845720697806243971989614620135751702916633185333423785553052276004286556218041166107049529441934095978492953771580023771440009554793595524775889719670177245300198205910274463421599782081573335480819262387128880517925634130405031917190800776732455803525223268546020399436939577445113122279889364254858784115442509437310017508263890878265337560433038511322263520365652233010103988434613761110196702758300060655026785478649887859289268290103690766272301434449401085941616479291382034346396707545561617263819317666708507090456425094461590815965964739367438277386798045540845356635667316142090638210682110192509781877274033954476831545494295709255719306294682725567559535395548694813795692626169060804168266917045588728493235434967727182999793726814081348676674278981610222895927504435147623004582784350949496827037480638310902656263239237489809464292365113656814117007445566698311438951873029884787150546714515014616724528825305503329552017738786716654414374295746678005052361071044143118625730936691768254572701496627287810161676054810368394603340918110246465349825095329772186584220103152794848764827968309705298394676232410898709937915503871347493215796212885404480637461515620453381044459831681412687221628787692566272397728320787348491018904052340376618785881207971569928897333182820127156070085683285897626678455129588492825918373313679981265837084984321239929010469114939336604714152132578801595446265482836562648661155567704723783079684848005829345342090590984146905140439916403235588919591430193223386620158973322989516932516871994787057367465896264405968206425364414895531764897359769339837700343272148602735518014211010723928390008158881611743949323653220030993858719589092163975722670965157425063069496947765841876789143480898443443768930767030304994093707599793546705172601644406324199564857579044914853903170712018319152499307521168726159819757822779616829489427602081587475987463934713349031231340799467163232771337364856837167710030192242421020563289255847221571351202859033383740785073544579265546202798506243995691957451242889080754644698089461648319195084355061447101506914555751237316218575526898470899256631897293841148124004012211313605908954379540507431046013621544705191291977766251681520640772495423759130762146752867022324635398848165683060391749868659989215095132929323294447118234030286470277839123775556899065585946982044839760958129843486202140541827502447257758655874885674453398901311343998081232350232154481169252354377579664033064648385506624684462557786034721534761763519537865295357479701373010690724310859403832335502575533942713973374775284712669397818366458329386402162278417968782864769084504606818395186569922076006517914710166934045616655426899759821246101835089354321361272431201314501680473304094536739501857946097978772740694694971162576460741219391706486752188625241423150619884466713781839473840477572326641810147985441405643352660270032816903842201044739437755451116033160398686152545616753261934974698929514676068285607531114496334011785061637325730296431203544061864827483461808696648977921858332871088727820062255520951421263898116896360823032793671050524997236331335299536181509888965299146714816704144476583773216430369840702348003516448008775928116750469141349805121127098768842087617856155348035561061078391015634642424393188464021722181104952358209161255889868776960205455777068156366852567590114721724240057889258323344445107564625281712364174800947099484107459941254798337557461850895823751210487331262717133395520156277702414871350730578048711554515020879739862455292083711296238550305624437946802350129908771140669477029203645739753242884301042611810319423418259700883832653358841856783033560084674343060120042258721101674624777698385413095065864010976923025989331579009449625701814907768519334950527997027866438836072393987561555321933281841514893459224990069389076206187743840897403942222488357371164649408423827081590539736698315953523944661956884742315934089050210787828543247373668500647888387821186863888077048338081059268557945592224758910208061202570178357522307308497137934794177333075048931959958526145260015582011704724838106067210064920192868179734429168842747507756108879547027228961539809037326112126517881811799546290440961310788458108538533332017079054091085062995367928626151719595379996226548151019802371834536401134516610893196983058120246532342365099566244948012450436535502374291137170843027328818884850757530840470405099971771653341009765567223805669351037454167710745467952074746365520872147619570374965174144351424854139201923072162983112164261637463257684450709245167139928069817411777003652559796066923678614287757349199583956622301323924740644798539218667855886665976622560891813211510218752343039905471077594732224543719400741869872367947098452790443250705873163020465131760197491840495305461597453233796500895943594169655048081588895218216082116695676332051473868928662048282182556204674824701670941772738488019029232012280647877658643009090311010782403538065309205746280866984310471564584023746776760005407519624366676905908731142842001627003186223458068021182653843332657052038255467306224240958818077927844057038380863282849024477367658123913668068134767186881675167831530468144991554608123910379613813485665774477921627859125713200562153896556469167873004474914084784007465742359635933091588332717531043564904662771229859060448333974247136258336147001305262959000909492042074813506641657090078219405989800375574297466763916000623949451204773563855430090721396797355162031600002287416560249530837607287718888642213050945516100148944350638035795960473327883353594670598951043303338036047514575147780640490850762738243074216532002165538944266686626267901509142458964414402406798462629939830438462242073529032051191719342092758156257359032461100541616993919643720927193592658296123161273691990305577781119350538885816322253069998267092399183097846241167738491624678737024606784070136398817629928617154975615484383905611247878910715920011278754723170502869851524101258129635079540630637728376029200132119918873601392048722133871216404702534816830852537233415481945372365531970906138976471648711851543413977633997040263959921680248912726436442741122248933655278855499290709972474352703213446141818419686052265695816196791246028721336350244903353225720652705041890526874141678926234846103576728583954710030587137602663564238345729248897264907015971389467519479464572880905351061284357103023633598002965444134208695417081647602312488776743011040075607602554999470640540372763318454347593941008834956267096596813589441170740269552841544902445766308512214788248488618386725468658865343359865697247800464039463758952955888435652625730945544107996668906227321602972147742599762907429447687106338171720749813493351820956877252827051040710217766868302248390811245527440742702992934531506908631353248644426093811658615495699272762300649481152263403156481717172067032270447050142392517276060692862004002921401054023752602531981544957434992436999384265007599260187094545984713409548597856986397139714764446838795598251636448967080809889899493268756251196135925472762053098441389846041368570072592167071906594610563657714109075716072631664280763284901390124581517849447836474182937810059821226409822718729239940246175249624203619637194780481187852625900065664168938209533559425812232486563756550942158669277437038292278497522039999020116336802409001754028016625226680290308292264804605208013045071643617922430085542009588866473442324264879573495358545878397393240404125836869131094217409845823404284042221158398103629195365765493662823385850293909099529807622476040538816981024890522609791171896111125002982321431636222692065026378179069701825288053220512017776903842800072723996998277219890472404881970452394415419020792183580671011435637746438746476991276474015319382252066236869963790000402445813339227547089495171084275167036538214037327912954174912001192612238951033149571841830811925726513329865949707316957400052155726325552705958952159132859534709906120610671558452477212742127594916780472676104378000359869001183791784569332476556244522364674649137719444742229119690121945135223480901084739230487973676629772504975673976191914934199853179681631644227649931940688002049309112762892135738207142700619900357724385469716114720823507065210471486689730928537452268987339609070948447209618591420577844385242219946629132492106598752408870412913054358848236169933314063969477836754663086057173304096254164361122668047756510024389214093355144309883697766522992456647210249731378818212964883555519956006035260804262076233357794625695879590264703952923018812533015996150822490911150744441180215904525409787248176872647003134775419281583738376794019578115769016783570873314717974558027839516011692095011875026453062135901756010181078141262268065511020525303113694484386186922055194695049812194281703109384649274005314012497990057180980823419342205883417559345266893677535463612267787704625677011683208664348079343322185695137009187807023140551561612429026375549910709073767930206675347415186058933994572092881389250813119658614695241183452139742120911844355600103052171594020201788899092504146288521713355967019993953156993787531008066590774179300655642476992968176562532213588670812282637338500370878349883796190974499344973469297582304266133741496992260780212061008868933151237555339419295146645414178499649951489871714955744044752865096073175432300476457250369716462867964069211484915802796396121145239054126341633883379134709410503908909900230902776913100752931033306919668798670998621637739177227504287773474054456492839088999625092191423489210068585007579279073437386759371016825991205435698299833558398673855321366145929169486029266287105845404630372917301624217314403549324294180715392562530919449340421677189751093657130802764511452192425442074617774231032633928844425666559470911914566535800135183338034847389172722231648603587198098894176321362986268924692227535108632014278269288399016423820472041526642573274375826484255105813633087198923625089259019229172223816897341647732999041902011400442590137968931993010198419796132497943914571073530955947573576645235432853497110596789241238877259545564733287215290749309410633849868735202731543820226875698661132140020922161606069289115399811054151243002069986675977253019191666846034928269161719681381105201574814109418770045911615143650854048021734463621804022222985937017961671291735138641598868309697803489201336566356362016862868554345347223083248615708559347968671692755772877676169442688043556145421814972511949740184458076524517285489382833321443920910030638861097239192018171479014132789540661641029717020813094612530224253073401098575566958461060571033812019870704470496749768526429613368086867613125995499534939975043761332932797793290497736262305646445480780483264140965053432574097364002139119487015128936192556972385598170152925757158733664026255886224135884982053957555658868466947846885469775465673126354822000005506632534904371806373306855406097112658673014264673706308356570138535174485339532017699539561201030971893074681021887152924259050048151837846176758887182998911422927814653500822808541506232739616094541625935841364486440573016688276007548560727431555006442808152443537126675438361353271107356127900622406237224662335324623648425503386337748593468937551544323210445553995261744373524618800419005904608349384717692689265644628440988583749044542468821323871778096566937678510609380168197020788538719742618260032351188899967493618299957393189493497605175319682198204295313537752768439747504626482639134401385393528646264741871152309317964678370911473986221487380801725821614243506197807877919763394538134783521798752336670466282460236338068781143339487837779147502756625398607125915403085560780410493687556265450765334342826034988187919261478801586689330819198447432293056942760982080211085547369128263160393607994024979825595910232423182620651599661212720987096917483174803304506320573808970453290298480575473067946227709521175760368216837401076734942419684309999720018936101284067975671790626848986005792614520161876705112656614780439867472670112358558019502132307020968282396749971631837847213863031153701867411705364715285783090247785609012052060990141254679635774064626562002252405811364964217554311982836801796972422601791891318800855013294839500403743209033445382243009462133710381034910611698638077697042352498660197973315754479939435094371876717868760340172196002495423346494714862612804057135069573766393184455430205563271469657862953993445393532541411981408835481940604537196208306841396477446396292649422930954319352269427593116142909665423793636588212384722530223766624029432287702161409661744926383911248716307344965412662998547835952789490100506700292358360780071215802099067708599711814754529249931578976521892779499816471800417744963931531597030476887761983991890423120257341755705462658419309962901728626492336560399415108780454747982596508986759969794218726567201872872686903140251536890434136023893646617235417091941711797621671739606564698459854091237481014743375672014697226084666998204350464099481376279878318865241420086591647644006533939303492857786528120925962981483689090277304787522937744357056450974575382008469385543434674005831302687658115041889163218703719734878854239063880714406049736051763132197239704063230164161584760052068201951045753460375783531701769115056547983507836073628553870287794100388495280782663026852955844946429977832890432121392545547065259888187201187406483185696544590667502313181085930536767449669914129160847958624068025485671422288874737852781466866261994967308898459680029076184784958957113862611290091510328306792757821225325388883241119388005149333466534390853399120290860199137747076770507613039705701968128201833929120929580519293829043115319573875582962216866616408946165595356780370148449624021998366430803185963610905396148975467735893029871906590183176604383532651308936629072256353418462311706744410731467261518237658575319431873960296647819048194400203510943415592787609269313785377440341208674315218839795876230665305324579626124478244731540163736072843332505629806041412799801842911524678859561021886610669895882627821662204828388603825234974567398702663905563520505790184706183948066401346685940074071554717928920628848654957400797591134843456992647988271425202751071035682766042377713319623541865505374515992411118755367488746652017373385702882425837964762330715501117394988448359727949260073002448289051263352807249771133493238983445291450280297538258524181303171279825555336269176769805870863278631862943250864927947128309515060246620291262629483710915306304926641741701427583442805669151136580763405670783306391874844323224582857327236834185940093723090227906156516230006406552696280076406316561402754681134907290941259014217012453131676573238832950634946417637958343552120247086538946895208722659630305462777875191009419777508081596197032951035194011239904756023682364280784221389660131121902758039604198178173108552054390818682792643010019216526279644355873936259969714444411931350754691459288643274884170591949587100063501224499390223107151762329892619368533167090944716521313958241807821282277810375734137404563813672465477676837564676048711338578947360182392991211186471948146936630995684318383180336453999674671229440105840990134586860632290849363515290046603187071473901913515338573276327514603693126856742410192099303193146025718046068405720712483084326329820637754635283030661518096151985528615272412442189848381883125765815723271367052922337874140230312847890689738748021653519005477491247746732279747823003305916855826134220442057376847766602709632706531571341775658413190532151807130065443650422782676238383244911194652537533961977618350832532251665874619178541562211926683465043084272812182074681733350075397080641792169767991878222084170897267778776161567913606850793094072435941722173961623158462048961311389109512187388314309313374855956481440294234720545001092698711669893331337046420583719537954212904472202501763882960187709724661018620943412790704809853616722498918116023975918775620743309512560081215232168584802594301662971442209170271825286970033394371236399492900669473034311261007023494243946102417763569666108297996791941167474217299301423960016059148313591695119412553038087832383193036980890683121988454945949546167922974102067179806366624453976260197258034573728933008139071155239726894344809379868783636024575069671852223010381195854455423179911493512445521941538826534816768399103361127062250574865203375069059304975553785175484490688942670760658895000429503847764080940242338929964792492709427757077337216914248022111972856042345641545404364563474197978857119934092794908827666642958402842022216173251093467632404021569988738352212147298121050542373670762987650929890921444669306835703850441486550484442431497446087404005455757402578506935646800140837422321933369847632922035534424021803935252042349492692331849492003972409538224657718066203122578672705145648012556416242607741566279417754938345201360672272219177048855314513509388966470781434575855433379340114326847689062163410066118149311353435228465075634215258282450606362059426801396910984163762275238890348343695471738169657475433254650699552245184821881538673792448602106379021603479517383611380561052804695155528482042691975203090017626279122988410765773703037037867516864308356874795810609609775052480684736106724797125232369891316327256138253212383640557028141221347936432776066193222103822127217375653337310785974880517728792624649406305550512866485458445804953427754844918305149569071898898644459849758583963862306843183209452985830738637152630109520665851173027497446764782247858714653553873882964446324756456704251374404818109281832445230250903295445056033766302215021740897844384472303013273383896815821038559109892705103933075279026479806446548315393140686680476745265656317262120041582486670810669611815537327845497821333147264521065698164316321674850973364821557301596574482029384295537006011884779032752330264223704880654565202251395828208072659864989485369020026474575861215053489654126156544599786695067086194593538237695291059243137934624564702098376521776300123060966982698107880669238964853081966540696335008220041132903760726214403199294105727842131202534141305804505049362405476122707580839931959428846992301889378002082981397322343612843651760998802452509054134797420148868774056437327673986193875098390756874851670908507650339706374317987560204597819238745330389090059818995585612380843350580275209688183798089025601755354605228348597836271490028007348137821691414589169529814117109075512479577026946218859172442268199445112261029898003670230871543126058328991750384126330078946905888488815112551024447357301832481946391223992630177101080432823068994668123061494001590665912925483220918116061411156993451217783151670912154494302197374353816385512832788783066734718043238606613543913271428028754309026438308095005788986689058167450904862975246974003412454533386969345399414857256527779440493916959800026217889952959995775259024149860056924984222723375631778793960696242684819434972981225261327473399269501862083151713498164905665323073761088676068222393508213617880004774353759524049742234668575351025761981609990363401904023440566351892224918676068134430035081126154611809213606896674163529427393052805723325128449145365319512440537152144503726500856872926273335266944095378314518495698975521917673288843049854493319528049806544494410875237575273588732316885012346190080687047952234791286111657123550462812255946445290349206498754700895900160906467661371485507548764251723026933531063005568184856911215612286306254954831064574770064808568483839984879583809478935952130032246332894429333748358204060458962199589577411538721482980748355502094058992408628442704948870367847448217447076922531854066685173753511418447223060762881137022713539234395238311238180217454730041338133880809071223180180476650948321275559842362621835674294925726870301303374892290453588292231638744719724734117808086774125319797859546332967799101419868849309390906184401582420225999763369899360582125663520596996694796126763732361773097225103597597975824672586026165693375148772624325069272694255485849376707017250896604812433686330297144970085485327584971570558897783371693918308763050411234144167652154033201255565244347843695736175102247529431865879053157093418226550231043465063025850924537395804767937669273764058208731524323476955581922079937144804316294554079532565897754685156383603371656101074054264616930580857379828605432163978051689087180483156337416593638654066543233805983360710959027746898686307394898020534712282446070134286561441442391809989013972471772164206113473839276061011964002095312508350903833711572097331997992792253379468729652777180439556872619240317422649503152509922759257733573642934092386040832738529856986682629950934988833211209137519491220217527691397109066689027818164744311624546575479382264942049851521197462446542885558637728081596720110750937555725012191265035950920843705021241082563891047796896364659259080435890818452612229362892883045524299683353514045442489462450933398182736313217882994126149651598053163189430093910724602705382029447080598092009196333360891300802676928819772024750950612458622490449907520140100684612160334746334498354292705153030711236821032144415568822417419295367127608084256207748279903293928089480396626835108144416830170954559731186482577177461534657339782455998062055971476852905761082003949631686831311986894344500729397525078044012229373016328419886756498039978158983217852382509744574276721676128026955190002080546881277080155677915821337881022254241196891309973744307913081624707102137592917885924097286771385715695437026650671119173399727339880218710991201246695613389957520414561263697360982283923433826474773242134171759136889512909206111887204670165679674193443847596508613531485503888628706835264002703615055278387072844696609865690380329635092784418399893823927897795734600332341094869994343227509762959016056140808978146493152273016031171959731912756378247722070802953565339491643800823649573145964056666111065418593824336307477316707237103728483520154906499117109361269913544069986899092069900421719595614639056088858023042870010529803451752636411967335184158012186150450383568871514860702879517022472176155637482247163274009949547458655093464172642507656489793381633456443255186828024558336319713391002660807705411004546111699488754765380423146751610077182911123346751156375885537112373962097894828805670345402050585785526875749381028593254102726280586447453990330424598042616490540226195598480069983145494384669911221184229269362105939124329695640885868561831016299235399324082250891382406647341265988911875685216160733939046192358717113718119545445277784763625934347162820387661166444598804007594258056390400074792991610682607895218135113867728387620024447451924291784418621681742989193053008182664303287117568934940822935716912956504949913824272939894658338665788497849442093208312244568211414658485334780216387449651603752435832172120504784755825849632929220497929529512521253355856964665767356527388629507384575599228347349837611794558282823052019554418683668691009700978034933849035503199764878582316641955579369130739026221909574269150330938361183183752956228154538598914458313255409212925541010658590906097970859866641147244448667661566274820329891733426954634828550719469669493420758788298894964992410846944741545239718131909357578810126882398502984877901964720936367491724962186289352120476482575594459977616249343419089633985687842644089735726383782350309780795160302634828905394174744959581155812462088158986934588661672718679830044321496130339873868600341968467389488993380945412189403598767002039545877040271379182069047067794183007579115232605040402583412616092392556792276438716540278257963005505103063652011875574156899284401365149197235305027943078678027826645740392742109488861131895100718789284793553563084852545446963599198155445756280588050255348437734025643475810579316064922084834148795785739246577661679318090163114414821036012983452261969429423193707027812029227062220629452886623530762335332048906578144347423409329479200048129106989677692662061549225094132724339751629437090559026042129431286029653964187989268295863031631447981208202427256797539042083417038109051810298238851804084583066112832795051327104027104250228808710071410625854679786009796238096533619687210534074588066209448096676727515775637144532662440787339494347189208710060285117327852594364261780521976472379761845701839396077094475848220570598154527849099012753218473601366755149979634477862943266828698306840182412673599112127624643790063253423204965200164691763595168662938038643240773278011541014857965719979239877994398541446335726689910119450884498887712909581114452241778376582507977241395480681932885379644869994064080561136777367887002324463585016455837500425283057565862437865225357089602633131129405643984830917183296845179264963770123141444747618217361013454234349714773763988143292390415628410065916826029225947739803661243346464059645898157407211477740897995420828116805999004184149653176175616659577992430328459180133303321843988339392435889641812655088838675702643002014449956291201573181567697657549552970526449929064408312150756648660525022330884267419726351063827585609998692952565781313953327364692195887330391612019287277280781196127474446711096257409780919519494628714793298781598094030768564954849754517482317288159695554500908745901954146497954618538901879645313774129311860103539715443759250940544445136708089045674067205161681009074101017899107778100166030826251335649919938800038185668373227122480088182562861516846439678959007715224351218231835951994967645503177596474025180723252333069319171537273989290172987789797645855052040436397551861272829991393354919040760955666683365271307898743251260485738469820226085049585146060593200853047721199320647588814803808280133497829291105711915907117289678699590075359089305682825074313576154462355143592501335621548874543420183930236904341616125535806599262244155015719772081847536134825062611673314800415409326122255171417373911169747261948459392252494047381708990316902323237754508761675620486567806329948116594667498912400538937485011027795539481572763204761648368929594011050954807371443420181065217964423532354597470513605499012363197898389222581568516724838530177260930196446715497320579043279449568667746611203189972858479258573579391968524422423659684515268202508980932189278298176088940600677743221186418215926169734355491701186513299529271995927863162627447384956197464431382211518719737245080951256574478035711763391650899233268176732738740510745237883640671926173244178311734134358900134233207665793999741094904853311964853654823441510533162845020521818237571849345639673978621017079146891996426331899950124816339256272176763964760640297272359654158185172810207569135157162434835689470418261541549465017994467254254234058444839545801716150610779711398564776974127948666167636867070060134604371978700451869418923711735785661651939177705954629361845741541270066809476169166058938813680537616529561239469359819632376198223661597507406296615857003274827052872026212863996790975005976520060920022332920909957040887568798595447147430565481489838694544835545097064887136460495283063269329714715040616757184646836232066205535045408324060591977110818575608871047273150644200473038805586468575677955108444694536130627949852198494970441577131539528706648772515298398451351726748009464364280163895619479656334863293944434567174108978346577360069079326206236748018542805916957152273754268338516488539086953364354519879529127137922375153065121292344610638326758694127190560076838486190543251730806221487397220856259284842623470353710872371763346017957692773587073165788951058449419251794597695594187599790768771673209226222178168801442560808374553344739300173432650002431318783026290307602058163798915050347157725536997711594146243489797056346695611580291810649785804453624377353852917885641102774359895882027360604655843165170333842643227912213253755059118780926706037885227990066326418073383863664525348576948024659558111535077323215104644898145806218958684469161657275320884612517947754518274519994125919740913113464464826107610966416841038286340502779576144228686886666625590719716915188759147327425912851236727965193894702907619290571144135713368792962348742869502251498104089596218914925855642736979364389890923958012239745416383729611490302458648503938114665758459583041786096707681334401972178652239795559879727910824424227636982501191034280899346677746029155406416672036356754870908029150332098263558854360243974837084730401625441101159072670509278788576303701440322396096366816665237321251921387566658411448325109091892184915415090793305543989996719141256075401958291563869081789136523846734329038158734696770933238882293359566501788391705427097407643402511330943383568719703811680313629321934543612091636360594378896538589256878441706043256924641585414160554547313430313742092424934219287373972053032272647165998692657137742726365845424973521652075209975454587117824724783248974200825523075855123953278844531128327626443343553393145316888791442375034405553358102480067063327885685209656624451767515790175097072988009307734379348395126524624700426895027280351398893994695395970456294077760938430322736139580443636281231934891808653159820258805373627722523605863444942377845703521229224836188790689730390941922052766967630522676094778711477058337665786325544571927601374736255152809395400862546794747650222394136663536454028829453092297372771959886124390041539034751130159733501125066982921169054244904681020249674891683026298199084643526252870178686221926016883026221196645879767218839840267201833760800930636443175525615415491934631528489053503204562661701435824431593382769092793262048095532742213777542654687577204655959588251655443729630652868110493644871419076614378427671900866715561694333584837354638172029615400344777250593044456458008542708109326900005335703412558107941725531284851482858367364559282086181945971652081274498592987001817485516211888641549889584950541606338743498991941832843550680979316659406900347714870030472611131427118873025654645161638919710778755824740363747203941035557987701412215476307083955460920914691775334811807360804316187222326145445336046139217074491797143044700359153880042996769068969071313166565377309163962479090180568481680745147818805664407652153172634826708742547840686221449973251276160976395858364687340857615782252479449209009037842202780901558374895272369083130317800630695228302038271297506068515287697657376933423001219368837727058543287309076659162725405968006344380418378600696979431357997551182391732370660525442864596039135221018079070207894249324608147482119019463852831723229305646102285935190778964794168735989835789140940134116100141121081437498637256855766970080329437423869757571230757698719000153496653702921634499115365964366512892627041017805626284106583443975618925963105137952478917419717702588852912304933269300715966192247316723094738141618571130955019278087217257087273034158081952237471066573994076449089265250828203315389697967906495792173782603318624774936045380228268964184415530454075937080663381889942580258198508820851684967677767795924303832212324463161434418396909903076526234487442742177191909906859921217367014072919847483419222446811586919658008099928015386537651031500514325482662413126892019888743807535565258824868430523446101706013867726720148185471656837304691839151212776766941812478254389613076751773255720867741396128192198078604863939299330979330449426945350104150597071384997933482359499461764069796580117372383183166628330170523549080717485534067766033826766936749971676481650404090214606717008151804819268532255399446337944475857452066368448004547941133963516469658269030109263947845944480289176047849646151994390022182631984833738184721793929704999865979001800277784390033875117639428232952297622394832980625768234681081947143536070810218007040487045468372028388151622363880001209267192684851350734718040479478151113117340745795476966817195148440375061920181432535573342353575022707960292656867052311224267037425123265078237736301597692129980621385233055113058168684218703490057845864973402957977876950716068441714332463514466217343920491799004697798639066520009549327012548432932219133996906103880837303644026954331384918630273821501534592157029178339043035457771645355504024428174792667255619907726306534360020248779440266117248370486650931119151947822924472797198745678396550891045328220447977610462882845008956447789905026596277931503900594725098700343138231228166473990733314786607552159386515921473485907734318602788541833132019837670343174227893731673472826332030523002802715181369570942741969792293733797571920872917808256159643941054566036048429606400846829485478584843772655958071980305074332349965164530838685863281025887900713381802781623817991185663532472269636770846157523983252352693725591029621303561950213924448946837807743830384886928587154504846459834510311047858823734739617676049219753621771676234969428328555533825456296672815844082004347601314031146294543930430776244486195757648780844950876563836083281367753186721880425795137488203320703066813337940872905701537025349544050829286810126922612936493959235376480648585948821929846208131658523148924121521487172855887930460171890880526108260594322635867141477332402145275749763912764028855351985017920064775137726978422441528747441359888281968603535836169820595378954883515738367912421670897392500466619953119314536427773794576047502862331654007350034924117360830181928910647429997683003647989808221066650391673645065269749837628489117366658232568676511391148157229398874892654085446127306069494395103195635586790722699518393431234573583487367692005624434031384306291655901984253293254259663507583255900060794834025967343079661063294960639626024512755413525014201117965292054217024132822523053262591640313086291764517178310192723722594632290370286565701525937026803689485490274038960950454221133754848907641134823855455896339566691652691668950326285802851143014462123417099203557118166164619285949666817218877069104690232250255901736473440380913888658120146706503561108174082695223926350555287729679151198713758332635479503287230763909452766386420287459436790735610158776184979485203905084290884466059035504127735066361080451721801064690564329192696395826374971447773586571012898795067662084781516128036103393888472719505714976892503296939714860117348878518478074163491774133693162153333441031879916735872317213833720877692825789726798563704729418176482867997276136268958581212369775742976726029279264710164048334527813186757586129123266783097938508520214241328906688263375013803099732285692451609793878305600892346259937930203609886313906149329532715926155405454753362013129864210725581070161015448672871018452729176058276297872928956367437111449391485061124791380933757755059785250634616507065431372484971114689760431432304813712287081452951840177527932712897765952159439552687393043976148740583393695573248487754369434962248145411808320675864366190029482718976822726536687810800007557924052153620611080980628422419559652732799246330938015692408593008326813738906985108480259776102815321188860042727046968696737606259938517057947121588142378529893048086903246571817231196598490064087462592830828378560859491579718301408421988585746300693482181656751933335156255664939823228358852014872622578146620772650632466415562255478741225638792247431627978060886768182176538901925451476576607877537578757300994090074760626552128607561306130704579977245833382199226788661958683578945775052201024844463401377353956793870526307703439567781103837144332839070949124794581125105977926388228924863737533788836915036237880410949338782927629636458688669017974550312895829953735888774174985734067526132060009649916623170549939282263193947573571836743501300806571685803082222381251418126832678404086302909161517683096897251689045805463802768100309879376208505102382893639171630908789598051804307699516510518551928174502780595314983382966717440315209283069732935532705975778474346290888485544833297873837939812736826304191350572321031500160002882306078846957099112883795316964224440388019234843612424737511200005357607045955408445208468758689279426810043243165502467000176136065673672818310185815547120598936968636933667461472548820024279032534043497580440795311615352262058070092948977616027017678374427622667662588176733877829221745117985848246337974173448793069851933479322056875870726820243544747762191985237802229561484072377815415712076603608075289608340377015957768789841993218518412090497098040155498811484444065554373652306287391386525794793924511567487386825618920445323526858588250905818656058615990731790522916458478116475849440165610026442784610909588321096494987733062770044491965350382900310031983034561647791472235021545662939206296299717694432514641650146776200367724921990628371811136211161838876570555765594412618757714084776285111052785001483785123440356384423270557737272887876560949379539139290950345076685864580200232030049726765619649736764092511756478912657936432588726509348021581248309138364990448270879207001500445995804456344578293182567549584629614574308532632079460795956206832160174128878180101413427624086127120443315385315744247124265159371122331585600097966902065681001117346571288462290559699372658159074549655065191968039722462661274577394210862809672624794949602861775756847322256302555079179032003124127910911402548882640709629883745890247558490946030259838049059152448715547979963810777683711670312217959359075646819132611957138992347276775270469751344562703825010653632722393330196087088441420745450064815637258372414291830817421297298939806095638044832989892120767626163598639236516194476984263630332689229161911875111883181333335521566552024773951176878596500464673600846325459266238322696881202315392837566357854090755171901541505768632096904321702092112873932347844434498147702550307981146972887640834508091133210494570794592866102139995275768532475350033575232496913828654076324307344540275826641803866785662967003354295097638536419451277987089234188190601385674432940371602781765451792830923573727427779535184707360576038231771150444226460797952630823136020162591276705239641602190607351095773426040367112174745445067197260019659764290963814872717742443898279821397796656473545056498013790910098309875652807803553986296926894334692877754335170863768644554608797255146835569412497211846150599687750397791033526806997621042834355537323160908758614898157315327743463949357072705580490122065533035931014966417929122785735592396222650174408449569555937365187782698581792570372627957362547183552768065674662929093806122571917822018860378862991634344390756192884046628966837003516659221399417435035608626591062729261939555159010260669891379687119245305530674277231553148160501844845692360151601652940817143943879346900644976584793139690218347399907867866090123108909770302555937985447304943892787855693931297740173595254083376257449967628560977806842937420539875284580670937643877144095626690860951666881528139943450286488397877729144095524089958472244524697141055384930682202183917707807427262398183105318387592146167162961254951800469984112746704472901368857304072910881594157820205106614907924135282258268880739201941071229968201431110831255768198652742636803777223888230290203818885452477088075357581433010573667010001253847726675244635346401808801396862608301960548852982512257685348064649449236511260017564720932000963124546976803365729140663254913475923772621843338691968070389850953855899894783191120676310125071557089089034301080372223835320095339852518250735323864575719350818451696446178413455370823603028108090720088052552175168174143231658144077074144506009104761774605419172656034714710715882291640528629245418846960903949438669930042371028604780312623716590849921801753427155505328379019850837828646969876680340533795626032834345372242927125433783451831115690150175132505878544895394744971279390843344039999677405464288140563829247308055406013949501326759651962667210357031755052941041450149731347921627378225851681717176805108935846073463466270293409860867032300231672194221747386888681161201645439753716984314132850457072040599644016049875126126107139693018439486241193340133360147269528075949498135516284818940696186866705601344362687833432830864920750138746836460663724488180689207986034829527112201547858999192141008879104603327543246973896669774894977933041202400126134394311230059690877093179370299921768958979857677073735482516666797549610286644193360234579852751823742266903639566677568501182609579454308048618951129098067133707695323937497496580436366078813429879396928724742174019053980511577008980898800468877724810659688311032166877641510838339411381141162963957656834916315335248226498151785588569848530874922028211030400672194734798576884191554902426730959234840886031666246998351848126402862546235800244885505899350101971939794256675205074730145920559889316305340878145879264237321757132256876581956727510080999206760839936208524291514740539530435974137414279808619056517886284125571938086745896893357942127508534441134993789681699410174110340292403483628210509694516116432553908597305969488290915752539797393328031809882947021545352776751918504428828418419196803093427198127072467283068237806323202791645469854721882433447926596947285978408533626354441300012417297222479048832434033250702348350728101615193368560262585453480483751680837689427199892360872434005733455068989891261959233916986088620094754946755999666732031671613995942282383448919196443365031562314390473239755564779166191467252736698649066520684360121600088833158683704857093121982203607088676483974358976382321503567966213145768057005301038362002729845093219455867031503143621814862933109790754694315876430709324409668214706325616133583300107482892525625806549053240913516354563928183443002602926309965138831368215550442927644971171140127391659231818386998028172620405537935515622210586355818258045692453972744228380632014945201818515880881953117383543622342680047338028751357316331819226003054497927004220870302050805119306131087227482482356185645902207908868093754916791214418073584725531373058874855158563841029768898701756036454523863808196139359189409633958717045577168173411747927162909385710109993353678402614668808196153092427432811481217208758503377677799748709101813537185686885372429471588147353679823658410720610842214720776743526607089772959598993362307187114324691538704234323768363683008131480663771200421451648599547394110645068356018122809421903681502094389960323552280993738687868256494363078212410044040537636325555692215196831995384885771982386975964858532526546130228536679397716167741867099153907849834014341869038502889102395364604865313186015071726965004894021902850090689468449815249358366559656079309291516913189606311031904573511550330483994237066697239855657005393933128442385818134839821385351892973378286784410356149999883452889638771365190247133975418225664872092520674364976743866289336980860269177798777977195265669792543616742920394043929055808082811566554729684523756758532190758842154048497643815477579593814709467645085016935659473967475255867771305949308654710245644309533671133316272174147673807234987115322381435936163599567404891028593112985274052585952588644152519266470202383685946615185371845583116218682583535331142586493993309252008852299755950791222721110942972724950507131755184402857395782341273613627277624459804654137307278111722126239038045829624511895802545583948538414339127672761806976422325040710727115562882926201275024843277101463985029302400969278554389460038705278047397461012681636372760204135499348432836156250075140682988532452905593565360961731282320601612022542908687364388528857835272504283870154117672539886935365412670006755851495921941724387608800906205419455734304399007278673945248809039304986127337942975109280713527139305373259151695592539363383200982284054541856661038559000945923394684039469132468290666669042317658327337548974387609653346267918555664135692951558137910430807801515862192645795808673308221449754510421808851744165386009019430092327591021811187903619308406460247889931183867088901558643785782395367021295519575676840309501259070410934402546867958329586604691495669497556920952011478509908775908120824722853944314090742820195492366692458333675278805717728315318082090771669661883053804555319858087291001173042137117345354051837814649701026190576286644888929005844729471836857811004267045352478723523667292627483694319813858466311806179607879955194044540131330429179792188705669254871738086351976926370833914575573508194015827750748049227743969802105385905907833848670584463905149988087837522927983202251753550355003877406714172635956162486683026869640327082684082933471837631226856820834680676665981604398431173249844073366811083776379050087718302212212508158832522725050350302304130614085560306632442863972493660550290014874949028128401982217060498341853218845447778070204637376474202586863574809419977818726309343385558090635979541573333897925563510419861069881573556080589281423213875861979091114356147168695593007745765351159289671866804165494908536526281657936850401143853072017513496651510536100790886582648846429405661299513445338251834184245279031924632760356965742912900844249249256840351072316913336639424172324311430567611759645322991772573885457625360037280042353111323945428185181629313386448860331703845289537435829685060727480219620106976206460916180559865929961917229960437937215389823802981864809424789022292805446131262716726513379563328374696702967515857245582403932044883466853827541527049896286034145294272290028953326046654112732967020808363059796819815135777623492254311745378375300590643716878462545458977154941842073243949528307419294253987187599449247991549747304735338228270784989921439634981002145155432523857676825602170959991402737982836044176078369618430674768908641572704187723482363177154435913918665445578018270645347961638237740559687162404799789602370390631004167703101729693759297804822616921399876273640739867180498878834391401898563758106054500567631393225934909550290192511509099977095937968142869080166983926302935923081350888641607885351703285200019796165243579695918195224047425638211399127240588594477693690454875391371316180846725106796196836082817832331238607689278221419999106138403282136107120306545577929071774226661738006006888453717071272414415457867157609073624206188275982054821712062524628334444847490416603048407253786737339911144417105306374904480666404126557374619476023414701084599514237056466308162778025255492431064156115258010390489170228461438914520561033615920822149573708729468004690010202432727415267598787207748881019921773647677066851683631875893440921564294474165350721827473637980297502448599294823516411956327063627113311223744684821146366922892556592203791968368700439674560656583303111439368088427794318168947580317396582830920294047077302418886760836717235519888886357577400065418685656863891134813400632482544029165005313410233185509997858366196393776332686310186432014525174485651469087598318888911348676102873201200658798516644184519611430796382693675075886436715868633822104185680753581756566392441050543526821858429680937915266145248924715605334043401433417976869073201345486795696397454803391974827532418399818663349536090678286036699999268317983037363937177491422613905539539758525568643705731583303345738205521868303544366957246349112094893561531747555518218877064875578798956893062470767930420191557572375713682281136177327316439293302298903348939202038579184367755128086021014973614654228487374209302683159313624527980134047200277327071415020331738270576915562728383650802103540726169410850169284610295973426620649602605208887336636601138189175047918692689827974681791850636575802315343306139506203528496951982524021458681335274314431885777317930868177716696404524481224015089386040818669268585725225145674524801470058762782856382508978765077498679139192593703878299363050089586735946065102279212158173103911223629369094894085285844205525591846971123067460159148273786292701111256159453478573414463719462415321070426206906653518412351141957643323909413279681088828009617742089934287707323637143521016149882110712885380447470123317403097568732130957665206791861077263377783351853037443556023525716575227315622296788820103223633330470619107040122453777306649332014092376187137120138791532886660675716922515922019327153170313203767633268401122431854738331764036118531150533476549340795734740653853075221923591409813001799959510665871858717121809257149021536170114118611436486846973464144974348316899148486575895916063861543889374971923477671650859420259784815306581102425716532291060900820770992869166680798612008295528807371580580546736402558515818085356695646017557069889318751816654902474927362000985606448741344794832771621236450737507474234548307531188492060426590913537790726963509143672148012559652831084765083484964499571700775109412166157287457889208315636437912772670767346897703665696346799928988918816456260710605168989153928439966562298614727564760857570157591125867151454374935455061642009434223920596464674007072006120152968950186432417172577594250598618547307510905952878126784010706224406511624284020859883481555580230372425969786701416995100746866412535363077884458602073269241357838808258225883531824994690949404962342241682547412740825354834345433301951149418770204860705518973423726338863148300762670687618676756424121561121328311566767078930956657865296179963673236886577620143310633978229685060309614273325302209658291703435868037491801143448911045316818314462429450327467159783355597796659279899847102244546590276087026712410303244891373425388385839927791815547841408359781068131105844770276547676594120909765885081459551762618204555839749484753267835890934991358083550852405050360845519703885011091263440885952931760163613100950076634219874573634993876564790641093435031522235987206942823326132405727207559608725575139498314630118446503559802647673599751067230510818017789752137337527521508735605956792178884548070783431501087498974473393684556618191135339416634480448074944465584131074150811762006713566161702853543390149584575914508789044342401978896686473475221462025663362761054296734304519209545380505160127747447659108330087963320087000369777600184299813592710072193323460254458352152271017240959755840090075829018233537063900142236885455034999770084018155537497443528253637420039402709952948434308508834276099121727708911926967085808366720125210618220154871517934356898011923429546488800372254022006362806990797304041240714688446936055541071140495299263246993573366807667517566916324181268793655525955710032628051633221113872827555449988925428480112339023339841937515732045662753944859513300500598377054892939590163357396423466063286999537827329100333048672513737995588039847888722501175363173561776949783330682170072899253487957659014742338295553261532823859453488106331327992922158896533926985391481279016527009649867831274815079793175044056285006013987429860617436183355945777164528292500554456504568595573689318989095484090667221511088702978434264656793048204334699270037552436259230732250845347409293391250155800701782290960119859187004157548129245618422102081547614549308514591262506851507028808783327092734521075364980025019817582222870004964071291401192342964423651458056634997439353255856741073086705257490989805185212458876071458911718602283529155996080475317989971904037567836692838342995328954862808023570163698484700030466446615620129037653943049450343924985157046666383144925880236624359137808148725481838215186380414210486794320152757035961090123952065685470480760292443611195817086990123238843759670528822993910335053305721348995384769766799669379143349943939837741146019174893430972751298510130593991897670529050240792869591354642979042250696867690280409901222248586670427866345048369954978523035411777123469277938157762540520783911112061522635380179497765867571968517117555120582355193596693816200605857150250231216631471937635022758724132636232337161893623746726532007164321832221037857437571359936068520956259477407877365096384238652851480220728992272840774812935594716995699155577511858960643906670253130629905490877726913402426652554101101517521296227383995707574198220906578419473715946044059532190139107978786532125289746635861131886622698692464010861684945527661000358626463217350066255108966393588758555814057911440474663837202851590268305197289698843666634438934038615045775371065510827508595808606583484387268762099409394136945405233630449955267351274488341860644926515902823918216380862790550157589420669664395204913085975413689978852496936121581409159628583312323296540116032650111300943307043852957714465033171120435087158867409730311684161287614717779927002112719624192868987556866687032853478324945193748736037734323365227963349604411600672874483160923984594587331954092218926448640121470004375207617052377757030847366618414693883291028033008324527274059433245674804594868369106720844622322012313616964271753040361592369383017726438356078643060247416240179062034293921514550974182198654872882973586156901042276992889928064753414280885363000522500798532772233755634353135420634409154087026856883983870017439057865998472166365555193874942711731534186987793880591610305653592563499149137782574888594529131011595896899971865919871298635168373628777797565008643606035801251901633322703179240038860025926759092001898817564878162208010562252313253976210188568272223484467185000286876957123058445771912079804346648442296339896376408111275206739115928663328036786386315979060151494350382265242389426013697773640773102565304371642616268064845059205016738088759362508536591615532511664468498498791414836985484349373365722527741187746129370288007358518069689235493626733844012161492460625719799767259054233546989089353798856657521753395021073507964817817668630772172896686018155131115575210199569869059308429616580046915346772274161515956815866487032297619243581588037179575484552663802805954801176946290385510936424694451396705676751403353248717211802226123109167668707057771994760525082156836235747054054015172802932225974033491308466489511754730314683273879563185167528074522109853592915400262712426096062806446715988315604526910299105008597104177315869179239597944037132834719530603587732569652070211525047091178134256320227007291974465290919080586525718331974525390176456699644972797579057569027125449287159869685758171702335652999621548507534997673566306274732052293152450211076879939308417263872825480020411673980398418557043889095298622211281571978955533287693541905450228762401110120709910259218115492964796294594051563839261455171107287914117567968284953600127431591108300136772085511288721628684292864464374477664115317032062801167106762465647612786400757182058740617313915113313481176512843412204404911032649486945254528909302392921862949587961893990095711941328707323656449856790114938698791320255945846375447677448810915254467435622628868838076579025869456405407704596272269323921717438734163787942945841640335680610938404459971385799050894441565953746137398091801594468912099112821560956541382499434208818329067595223679728094047946900348135095602315077228154067529296462139759081170572041510629127689334728340934429564847581468511148411342423081014328289798512601665729833538547552858503117785277831525932528891544827040623163561286976783737158643030641616668433295845237443737267527256569729177837582109404224200915498778328238867221246914444853255192235176959271402909806875694552220423640714874229107244426595328427708830612118750150383378516156752741138001477123364824548655500677346749198303046463497235031354747433752969728538649933508568030774078310298194539120131672174052503640255873128881453090833201037326747081580259937593741643524722927765228640253546298023980393023847622908021278653375285968119107211775819562088197181068561945316345275104500837468743238035911867926795960103292629226141392193181206142223638660378950872269199443976525728041524498415140094469754967413611674502839245751111765612095405479186221803607688465846935409418001472619180144048031929803002587613239861416725296383716940976967400199442578377873051740868204350866469944254821457528819128095958741847507213440059342744365830177215433308418768132265605480923807233597352902542742555661271602468978170901472495775040094251661105219147581025212237334940508882504647196476793976338845263105764112245758101528572287707960293465235821175754330016638379250994061653156741661116288822530970182181313629503460680795519018187451170435168766112684256380430733136787593998065950853387836260930741868958773514862034273918043111660038333158439689115312228440574722113808492026138088806869018980140419155631258764159598509819806278165956945761678445752210956531971339264311398696855537507630871727886214460088892881598674415726018928284157569653710448966178912796928211365177803317155477599215850486871882210251242543553474880764977729477532457714242764849276462889683708770426990135216321143087415917998061318630017057704106193703643333188503222649792626955418666623281765860247277532019604891085167075295743080869806349152731372248674132088880477194438416354009416871004693509571186801680055136849147707079658509702504125851645746862449646750010251758916300502329728889698841573400685390507389620494100070535165829011218017213541183620688407035000685724527621309846585145501817590527312844261589740131053997657406727824188882997572141878388300175431244384005461884723762396640006837794512605235385566665255423136683443102332603353758335219343929696463964779273714670949372890274228947214377159957418137960725149057379320936408762211360445460839768809993954797149184291197603213301807463731006225084676837526523160803754501060842039474209490239519931681182178895149006637045893088734474110961078425619527726416458242859381140291078117866723152318241948604993131648746719198175282690154737550564771740066285974133233498601314852766455784198338637836427584079588189993026258952635410835027829026300544243626888086757121032587264823026130641857140611487754732438691727055354587492018460976695101267496472000469059847938333242958429856549227871461109580612530761710574200084976230742754923281226356487006270980114981192612746796919455662388394151366075749843798323081591574259829010477493322178790384594165839273726936232282394422168684056674078470541337644188373465490862723743969371108224856951265354116940867553865804011003895130160680645103579891013114377083540921275011570263751562365433393984249618280421327967784584302408620801604447119890216425136323642695132299221134810003546858579078842788110284317627021366213634837965183053028770698363348104513104011256033387546481139730451513932317730631284019525581781653923309527280498644840808220445870332653542216412955402625833664043386165966670378291906017087368712733037748947822819875635392509099417828908446586627818183340098289976260333561764309493227792209297017401027807178191704743592166368734796089868884451576362829802215293133486411587482696189477187297661841863877749430377203280620323162731854414538685088537519456957213347384609961528486421762271128671769108582924401404542056841027091426783261706331915175272772837973264626112229888718472823271261130722442685609792553882457703144139460371282645236640665934208064201118443057524889644101522502289691225235529896090892855168367318223387371082948493169880730303758063208762066999906704888803738763051733781396393783290080840823286358818810589180745223442565406532874710334391283205175409975460684302304125814981074806993432983566854077452852846995481942123061887496708580626139801140849864586055254781102428401072970107978827510218900294595926399168963399413192685438887176532410677781604871521254190507968458293080552316219037700561186876285844137965302259456756266231608391252892850792215016894225265865670284859594625200928721621071672847834788496999433697880643536402768570103029872318666806163452514914912595938446367433140088662013853970717449633501524170944394523158831531094973400867369188130782799913468454460505016733626175904011629424584580250342589343459021220597742127465262886376303174562375729160670627010062874998022930782668186690627000764643512525538905905930397544214720363844058434916140768446790994452788802389068953900270455283763259170350395133154117042480667159231283951603293247626611354644749296082007414089620044687179422370422901524123675677748011283865777145159282486462530983051099482970625384707212274300908219852830430643554533781490815428277741210980946292118997399766014649463514297893418028191973934733723073762068841361125137051012307512956340859019147274596079318173181272476104615194526628921576117437393286201039066652283251336721444776103541668615777078916496931127468593230147383779657639446493333398344175081224549955402605697429984344614874242613616932192926036823916992408796180721413411385552336616448395622005684054027327442983710942530510588321699612682070899473711674489555519216743546915109022971087328510102979043715394134404402380985269414377739215736740165279376343471372738562440147518013620435557934705145515355182014197330833676397084937430901449781636285549250297931800863735986435741939133058154704967749869911107729816256599638263424904277908948525311840256022583851187637952245111971150222380780807750105861657698666591439855678344400187976453979530322671221227175947186662248543456654207860824360582014749328754734003147419903961276684369129477487663406648154758743112182732562488939550577913010419462899894724392870738422994204885159301033919897782743263466988379418971333502842048932508519462185160481369710142766773624835101227646706720157199982035194220147210256842842820308085401692044100383586707215314603836448948410310370840876598998538756955779740169279720806063789579788594383668924762702646878424212687730736506671469309571622702085368514845364687311966194969405944889748324570590132462555361239899257886139218048059822428727064951092774096574632750005090233814262544731443916415603309969137303604423560623540801047507872873697870736564070376660986580191585793372798179152429131163089191313875934552113821935302001915221471036204796995516540263356600072567621518592730837221101411754108596886442498165296669658078859724265024082954518729420184175089806554600867647520083264637975887307748719838478642453453031624921697974979919020637356666352795036512330081771324211280997293196828266323267092852957707042392608741398852263293828514979470066096095205678274208942219070948277007061505467897782341253994718643658927909652584396314426075933896319371715913068799796081339283765843713696887959046385946371619829693790230808569768559168155439495892495919032298765749823629932820372939140405980255473972693769887297929885889699837275867525358313945893147235908313140822140666043445700964862723001389807255011387107091789694859412034648923247620652754163574753502736342210274433044791723152456401593296857375939936143103423724064142695921147092870846291959951442696579904808209803279307593994932687425345638855950077184555380355839307296190415152836060826478306646578137172004833682551773956615161420449290976065687008543753522020389828472583742913334793460309838314662841427509608406352976929368511760681444568359294433921412733491721971252826152863494760880353264813391188240004816974044544254890114879815342326443161280323674423355311686229786315054009120756753058382159530396814761515143877440043416894716870214293521615684450210322805559079237540399727938645330292279134330622168413271420006180449006106512354927734759283654373646450351896032175918712516535683781192968710434335716497370198398731732925665845838706718551266629215276242455702496560814786467781695830343003563086592134296531164310959817630505048055953105265937653799378147001664355003973082311701985371463240476594245762232981451570929459356792108863070483368429972070886133302823177755090279429524428021962942095997689224006518433443625000448134778982592227392774514062110461419434789445230927244874873915668704856270163489081891332844094867752343569966445788229665077119216802042524576256324994450266789583899714112424848929900641876964778257280589022015410221148979345787236537372639540999042098934461856053861178751278125359650012524533254036143870845450642402633355274514125708518107177386543705593417135436609649456801196202964979614619087418479821164930652718061636314159043251063770121360852131289188797542796206016107719565686208986061177586417545263234502380574239857582269728810262123166551365726368281713184918910683596314561969741588279132095733140079009439958665515203461778398990546132189412534789615077241858779489867311323159319340174905998605714664665517186145830903908721813922694414757792775201429786106097546689633153880426450463890357943667677964306462080325595621436768086585420668937208976042035093972535490138786742840859159206200750907087561377383257355129602453442254488290125972554735712320739818372199553121756400755992349876849738696617992036996219804810167177343489003628766111205017730744788626884187277174421257462251320040412486035231102763563421475509749959481964500001130398696451484335497409791548325157146718363488389902971281961268308932579315014226667160383433548583470918104890827409133885493481394856283545949053742578752494349896686648077715046670348482298062010523166127234797545712098006801776120869874492930622571661731186226376177942830514318221714847407036183720789477992435121545116497118111255607258992337970027276761682907273940168936094550477038004802195621272601303429158059408280770889187356382105588407179219809228005007783703979145489106312703788404512505282811081994256234258132418107799770427467315049223386269915801921115590931625161897160051009473927896668510252095556521020826433911956189535333875231857720646734590964020523608326374770582699541024816488076277901599547764072154368456621253580028217905801085462530033802182029806686746129250165495305699091380585152567769256258505949242682646910091340285797585283776894766974621537738751160096488746145986272186739915202044845157296741203491394515711423246198999545668932461199487866771608505739752179029753009856811041554945254204341689755854645389654127833719450254820285736787691505386524607805096700165779392225270678473388709744299211659923881337976529412692622724597190895701858246216180333311320835817292866779310401405987604435977084036667078280078033095632834266663461111157719445926383245146791464412731176507914780588352834389372051150238466391972117969560928757718478969928015445159653715801919659264317730952309209089194471242798043935020049098707038942667696374809607553960473359126269373317046573265032666012008494342989150646954664607501969493121985141081354000580602338529622363023918693709202126907772956166606149910488346804769671214757311224606650876869175806733562566616337182692852899687783106138855557500077065141213273907256413796203477083106752932653608876331565730734126089297813259140616661608717691753171064652175335908839810733715110224466654930526484449265510512324225659009642438113513423931796633247466157960106602004184728848905073305506432798470210966575328051613233475716845165198154254454250814956805590574055875842694400840870442242846928669264264751196090336868881084090271133786624476929739168532756649480926459158422425384619946286953063033798664011784062938175115784191054018079409134909354461270658541391228571764747553711326814528369038275666785289941820580633920668634629539528551716957889315073183761902051280885894973995428404741534783607959919147996926234107844204248148571254415457114081402986070548237847320574070653683281384455545981971336277093653606440015190192639187382672311203025137569643834080974091458709773345925607560878389544609627832719959939791491711081329577235133044934294689136555583325820645331071634984449154479421551318151829820812550847890972690736622944641867955383280145100634439466213313903969004088422882970074250419710002722101036440673949216165974758205870497072461578296629281849573730274723075536027046959338980403956745601917071772765509621675960836475052638814052635055361099255053250402154390485127887958448463171098222540098935592029855853240087416028583099953145102174130275982379829700189291768354876647472032833057802551896524132295550279899732625909520914927860237147956632213867679091671234204916773773957882189922656420967975891382992134876500519160956776924182446633425148639005929794973477083341067763089013657179356797396321752534012026004100809017428652585176970728896667195807415041083336114493120092635083781582599281918436265386604916203938982639607514617188988835157423265107501547434367347536280374468988209178993410723036993374147043217782629631767277278869292108418227166981896978393131332590526780758883858335981581860048354653922139902947696047959442381759882528926902465068043194973817747499492391079109727999074197550484594722080376853231617868259116450708297197443407664133946038713155662595924880901765488226810469718209031075144762925276624984150639507822642585386022276556501276625331781730134103879644298502413216060296064143540801266602886154886703690346654411846689808513720321732276137934454733640971370143706318844949624452131301899325095942330217236936291378470723941114653220448768556100373428348706039809336846584793620847209964265157916999840739113178641349683140226848177499509619331396330556116808439208606350845819329162211870306540836265668880429335045518989554815241577440560570892143409970139102599898315649342899543249033995963587859350747239079255187439566912816823348853812840016962308634418883944973199610466421683928830928305000913367478424004712425463888364059649752534783345344513216364359026475378779837068381061461869780072160546936688189264163644462104268723555558825729053653994699790840456752902941859566872070911327255454434735917115127221737124681490478736588741078935239857819100633468017686616066666467105462498932059139052461671319259489147801834121270428788074181754703146266240307206539244865762477278470992689777081282705343488152044922608262873165208045923232915293157657197274018458623768666771434345868953971475867678702053183535812817149141884699994409711346653061198149854503447727522972940662899769403316983958861977347393184606596830448224394910005827686907326016207515726011545150335910791528729045453423187989143131131225173557064640484758461168387906243995815565008734899700139779976946426708407227624408699173132587223330127276214725342416294136745633610908415742562138844341066384560547819113521735672030643529607434147692970239684923580576058985290702458921702746989258785031986766196235239955947881068122223114033252005180038102710455964900856905238214392582648262108956424735827341650062534611341730941506199230957391706353263055489138737851663439382881362665191661154169457506727933639117177609220432253280734365420389376800921353558463783006904930608588850937574259237841768420923493628082901744166082833548212972221919800912124057495653454700070007121498417319053097808591055552775337531524578850009583772424901206628452391114155363245845251881380151363688850937713804467474138011781690440306345462898622023115128581816661221238281497364163586457896919631520217767709200804368380469914670801315478363354512575190087379872223253727755364873850477686690404621270172909937053566627794608467077486230597194338023029659247428755775806614086508273116766786987798893488242806101487570069850418128607991782266954880265936053808942753083324581016184111478465226767696822669094140997755292942850169770101692580801060694315360337265285566085054587949552396414760213004192908828648349160960394498902283548206867243488122440266801896311611442607299142636655677751721376754192333652480217636769640487364046401903991193646730339398276679681958695075051029477463737640760327389398317390190340324890756137251092239830902428818185856771197975927637391643742436861441181123081070093797544483636455337153996559808125421930962210698152286588441348055570060157858870396358211023311623411214157391159508708100981341267619149653649594338929413396311878155149806958951758274519021601283011279800141785064020271317081453540009475528048539470633185172241882685660230055064995768509408404319922923121290151300884368199269440253686168320446156434583321464687156394947621097118078016832711372955599003224372356438487789468644088769141898886926020193857144288422152877332227040803166875073331632858791682103937520134677092990771847996625865473215942583290020116755262135954350544330168755842094599331559997840090190553019812089095225583027961089110013897858201128197627318161885698008082416014213206089173962192982945517451707281239458054566152405762380412378997006531734738125406025789110916772008432787866316662007725416096364672200713827720128316316129894281432819959527408532104112257586965990121197123310083464558425105246191300666664423444965312477594733778901470793536909404770554515845493372725250151907383589800639914612253747300412117186572412556014879584004537531565327507170805565408146560177866348652482174424495723865791489747722366665273453539889943255560389153235136518753352875319116723591455823937805265379342878223277790599733272682955492840968367052915752348554764902456125903459232635709778699929592301885501425625875096217463570090026312787598459746818086253561995917818132346309947611969501092451483366785416402229437515790165457658550388206498637391189206405699533171208125315921024000379816430632877688546365385063671822761088439373313054692725829513402015642292629605971264862273490955447991231090151591260605098533288947395348608872421118086584412952667711890028587468598635540893771043719542155409376514544434757680693363403291136438673507158717205231347623083862845852544328019624622472349099216768933754526594676186895487744435839970954120273574336988844044813514960914670732174548021143202621500321622217234118474023844156038370534325065242587241028122369574823639722417778842590809800680539684803169833788143863170836570130965778401667446764782555260251118852883793120664395849025634822483408783181926499770101614691936373010869165323509433961580996117365527326745554367488720656430315542061823234948214851026143341784850337590745145871227770302386898265226145612323697041815598541132050234260691383261504164572013277359694560552333359075661661464377508103647003634739799368113897524752817745288929785955279120901956808850261375575515033287169857896283908537815962259544133538005743588454182148989135878296310421472712821452849020243678478962312260524560595767354222847909419877349807909312870596496758890593348257646019272162321898940681239810383132948895525901244561279380082719035742806503765083233110893531420271070924989998937631729031383980517125970484953434506933842225379196062582778020330700834946946938857453325138256339066626154769046839952230505022004181106974834680752771016014703187834152337688810971651329191229513415140310858723968329080355558228790721158057508530046963563929804762127099312764443708387049402099479079037800577242593500203615368286459175922372990111577179427992026621588724924072204014092764861149217308158110313534508000558808559243271569035718589905381782907532706917252931316485568250723363906241592681984865664131900286572863613322022661568934345300824260948874755382683139280900194575371582405945676442142176036361404166458742087863409630048793825153724199101166138425860707694018203462415497899280774401924631705290303561519583893999719231283956952039925006594809994451733983134131055095601150745624083473067175796753649182562256220326460012729204219994217110242727817161929807216378976893734309301784485701533880101960418814399015570782704195780182893890832649093778060568750421331147388461019100915005424299218993874734863476343525410882378062019932827833109862832709959890484639874651056181187245269074927556697321183937463569423029715859245319726644802466133235757842819518249444538087447434458992792156179157118983252437354359680627100651043720215454590142126308661042909791492246779803783023227505388851248393514481496669451947265075666669753084875927725405466809207097442496877697952139277156877530192344318014582210324845685135857350424216286045944012919979115727087302305735062487705610652949318853474845401743018590609652322183365979426166619631580570712220805460235509934018554929531619606460545840929403492312317613797983714117623874093628685778336977619990245965432142597226343646800092505778857256574385164530499722192403315485469168737289507841114978072296004552143611058422803702048571986706682152898986021256100753031458041397550284633458461115528236141316953815016392323064642548245665541446881311657340054524491585039048122677811084386744517555888562450347559666731485930481544584890665614762718401832567510909759821038061235584099141627369435175737990736847209435149023647174425385071227585225765055406206256142669468487413394060430753733430622034452064149225209846556626218611640590561775077973117925037266967825744891621793310587431691057829541536755889441764129543803161020544554531132208262921359399148310870467357078256473846287266562575639039909849662469465537411588857590924058344703479339275966287069391445757500793000787853115819226345135726956279535677675689576449967203279766572285363032270481167347368831797896012770590502498204125608785044506785066819427327574975668211145012804704147588917048909782419916442078082001424507139824675196262460660767808865687807366212770913144586022797975353400395323400697427305592160874944400338346613078039379362829229676153443249040256729965789300436081153353822309257691531155453719905679348650222741896568485784778505525215896013274440836272601999306650877065485153596348856588267484100744754047296923262508697304943572842431478759585997624005731650848246568306238180410597191980225382740037409036369844627528109976049544348841240714999187294392539758170089657573408569139328627394733460785609833549089016822680199594016146906054843536305322259122805279084239568735005691681580908360739794131513073584411604224423394698212527862097362846429432799499311601810855388707946675000966440935699417515013719507295098828154211053264768602574597905126587736087887837105525646684401739131465202474981018383693899195665642777705077620113062127032505208691919465074598735015118857368873249624860992031191783385360897432900962674690333863094530100229871768058612390220923702231824761595215688761221998718021218311351456104510334055428427790448922685724681005222736510341830230463653598527015967293339784428238127086363047589213184709462730953761621149453506448133584628659791780354375400071625736031503748512593876367156839913465635860638924717078971813399698984297097529492521144965612759330857116330936442759175442974612686493547039454733921659764754051888403777968466550642044927940703596466985710895053203060587633166666748920906815912963349518024488037660371587606685735270264338777065423620483492892320256317612650102742795091572307541713834233011220503513594352951611267938281524883121529280984186989316506720853193946483457420495410616411396836745732459288557800265250901843346402608060323457796108329831594202818349339026718740969821883727111417831735247683771384575634680479042092913482286233538098525372146772993800996193798481916286897466899287552492604851682093585049616410919890637211385120682594550687382045927225696785910671705397321880735719231376672960143278248758597170739197244002027234492625166176492024441575146735600919343186653661164216372843396538229537392413286832191996962699516468378619101311873499762011749945747105617391508836272110564906429878370513913996671669175761982608031764443891308363798928317595698035797230164888575513383539237295502201858713441533056916591809617149225117475944185378662987439835996841698690124546304996986694569277203260297477412044034996789215610155523286672612483772416550635731837926628289574909140831291388700195475717871856869131951569374944662331301705568089308617500488175416833767657700427883939597304925407461091314044335082360799488236163545643641346493768631488917581147473053360054908221612659237024113019090893290747102172072891594115836234074077269604699500563894590827545249373349847986714340695785124825984637654791977232908206750025674152943794964661981557812395573115295560840177410903108253482963901232250149532723283646549063855757899065167551365018460295167404154975896880318483767459873088295425155611018370434175958361357105928175975490587838041206485289339007595307599831885422892105149684799011001347884102201216059027424718997216856089879275726983260157710178903895718793525801084905658481385707509140504194357195561621522038250972456354018577716124444396442570959093650079370206112808585764521275619676354971099271173114483241886619517695438370164223384844324624015964366219137119969791405467654258849168432955021254634687703801763847022836814825900002620292274262178968486844791637306815262381715106288040730896955225888227492440471011379756141232487714911731658840333950383062570122601359582840551686851663698052685093649761912429400486109225339322331603377957562596367845631679429064138723687701126614162846707527645409291918879193338904154804333533520486292019049056997913427620080406891630588164576279859485994478097375366651770564613221181883559684479825856996598841895062482537883782600098475277311195036586376167434696793467679059093285764442515382276942744700499956119572645496792984212585630672060336890677003121037385944563573017182573806139431635843600413559770312206210288202484697280620193676915340849366150669400137285597190188185420852233837894094125056807215284710190077760298517283373215620194043529252849251436412742210211199895151382643115812153276330621959468415013748885054683807624330258458532727715397842356743048830853556470780921849416030066810815068892538292107374433463266444838688759331957795564961808917469738186074718687697900178327001158830700523602648070617765035321572723520614617108254606760823454491107648203219978821744470725682493654438483785949298811222593167477983084320570957280900988295658463383469388613858087950757489582158803258132676384937918621119008484084024379840164817709550411469800473329788171689089979758232010900670270874628678558974766436891634913072382410162419020743102607995830578546388246419711280693674679024678950772148264146624368119520778225646384379402539479249152103881818486604565815600111674894469138539149092470714353816782795016499157856343661956085001222398590164224966179468710573526877719925996713984375976769228204632228143481697503911975648738642815423726417075386042491386949230072757532326650019819213425093157791113411493238940257237533403991499261362050222823744055284899556368868171929658074202967899749609585699416258823915799165540552422343693467391150805554217607885861447111846613251809363974280911045427464770761814929712637723405883243758491776769081902448799286235179197275776588855878699873763205866184319419563340505261789238900993470791210007776912187248997376619824700264249349808293703374225619973796127814439213577915774821458159013732120418332853990749185986726581997139593216887093984385363612031946332038037887253363580491774360513614495656995101815870234289577809175702185920816539941649475401916339557382513227016045230117858513773252417000546885648366683378260047235178516529774375645405666804375650027502307095361297168156411673501504506676147760625683560387774756875168081196354411682880354052619040466274751121768806301230742379193170069973967399167715179864323036157720938160013214871386640712355015681091210508734464732698593343835559044717706944582810159293529019951822049045534289184025957774040526560593938871787387090882756822921763084894235829545572898325931843433826847509233252300071209952678572387302542458759409124544759189095633933430748275306991063935535219286302071054742938767652536875301561245538189960696312510969909328603492811144668212868687425140715948241247226963584721507820584661963589150080195218964282347252093155233206642541899060857394456153759827331775969003867037331482236969963324466450692238269896632221589012020221555156345473847687518686687526403278439212663119155253510174551238726113066712680743535900512131516738603314157272901698885335448818749981034626822321156499624337611245925317707791887376719303222551101907073065361464685885464748829940699391538487982960548804367025722402364861054593495242174908436367734247950956563420945482099436598984915669655185357657827782177387613628567593724188688417688224896979377867762619240270059329900487685259796878342383951015145807285662658475105699139295495970701599999504042692400267921643459312645052884271562073592956418353019123960361941311757037251440184739763519959849774335537191445394502258825573958145706088693119685581371174542720570165308909345710624223949847234506489443929949900981600916799271032414184781927128936891139209512909222769012964358099501439033726632095400890393152959665681075014877859070651416943137478584393226021327460253667594023884401611600901841311671767727605780573034791527515675224751140009045881003536020119328464786875547735580184286389801682164570705004200978672582153562045753013969048577919436551620865396633669022133585407455432047570170783025909242620868313900512064863151457812243556368154480810597053018196965934709593140729818112668795356247152729107983093280838261290776915411312228919594060842455652469367662884653283704486660919471347379523147422518175207707880705605521190148870564696120323117294803148508514361927052900524739462028067934702087386194570280223082324497609285263532202795320119243384316297774531250240583651216445609769491772163719062983638952527907980366055151373990907064782146820645644772383617612758958848602902834389274368055822705341045256449540087968019309243611009471765482622336180145701786232171917224257874314445836986073217103383566526045965596467089286444194640184321299385105812770669495559581179523158837287347479106305261325206637723179417772222886080833953383803336737858415513409274781934508396685277036358629131969371875831614949718664744164753393832215448759014128498989570194739119525139248420609449011444673794523245228120403701228571424094699632061895571716774087767936016647024652375217659047910523105757303590847456041533330030276652135490423979914901930623282624621583406974940939866601008497717678857971066312355946500094701381061415367183859559166199460044631385787534653133156720193539671092345508088015971158181222361890929864504223743286583071870472229132100021888190227162123724342380347730146831270143267358323508181700869430383657273232299275656407375549231462683240703767982746905150281760531453623751869482776201985294694447593653467257759423973045343801707449693602798351170248335818813873592199831937400358873503219850466721444019326496076595846747425755222405452401857353260555308065333402630036112365007300172914643839093279701651974806478798610498806061614628202359150403293485728114594476098458237971994055979102968100280175319836549398669576428100942173519744853561586594036867398358945958420300645433324632318180677022275785419383019633351303077933714731581520677132911282189901539739220668615108185475420119873241794332483746263156567837825165082883596891609841689511358860759556088850331172895753763994887522885457395014001121738024102339465006824763980201035677747053548378416406597828911427287235289495804054427719101089327283714335514326684076180461467448027710146322205174113596255708495678029478334575751372818669862056064342234469782559811933049214220206366902371569094422329359058203663585654649613322402797597081587319923703645928948194847322518566678874808386022834451727933720511541169440045549252124504489125134004948565127102908132500402985803216733151077801509536523550874022465178648730292449260072281056744438654905902278409768531825745313928918597472366209457745302015588415520724335559556997639511289673295222500825881976300621870983307670175591744329124993548762723132753761786857036522954709044934398449455261836166830433804893186865265894739317458421657622947941800168444251695467830884361966718959431372913705361525336997995599630842593430339357752710241788283964457069569427754647738889616712587047694430104651709935195399469997124763549847049860114031551558950596444736782458672457770738414910865468542235318058965385229766357722429571241695337085627920078323017775308653584443274768456744714119755914726604941416335786576947243906561988337904519878087903093778059875863770692035588585774046849618773372088208205193763300783625694558602684442379719487996149543497512354539713941307583335912912126205936258142451580195523512600214726256021711938487382880515217727511051243706894662118146055009937033829644619094735060388910020779943894332067725329107806430352973253331572684190028465273425853226138684283057850197551158968472253248629995163816545900813422932621287734982943764315002157413124497399883222993390231534266302560850225807054740335470652594316158998780898790457794606124126483563073603288082784773719703870378993673767994702188229650806770020344547869928960793663078552490304445816824335300476359642708135764812620535490865429249567112063351328736180759887571977989359626961077836897337102056710176303795778607950108106263840760082937045616574237551902171504747380935392733231180667220993247642393698433145243315403384414684049381364900012046618748477828911897968679093097376057026001006480295662862425285558398963773906392107378841369695292915825949488059963710134346948360667101700789572570636806370485606347026840189168461948351983348712084611840662711100645655997887104174607935163504976920621923487590593398886521142549335042064098163915628815468192020770368356607245394390986592204700125485816349576408399497931045128319080142691442704956629240498624573547763581571497522383486065996230901451452699523185910573293928489675743308703373745547097220943853424867561998706784318865992132462917566507551175716729691585166199456623098998666563046248264380642169696116276922927898138762623359337631226136246931421909271836308706742283390260456037690996757989105030736718335249506034025262852629270948129423766982195140086665479336350226736657508469464798472071650705588449082210678269147786146248830884363468034252789583476413682839177188122577746051373700769039378921385931716118307209753741009216681555595235429263585820965651996774148699111657075717921780729576046521128796075727786816518226324276836032837279617986296570496099151714990266889524135725822542962904426117556423203308667237603946762657537376621193193151331022183064775462794177269741982786173341430446018156593716228100236497592786869421972952416837213665687839569182225820796144397285866336269976991038394694391258394020665891368172057338608493468773975154033968418820801772013081125853161559646938629757425968361458514864953381066034481670504419145593934648918066517605036823533026783118023476144700205791477001438467120503453022941877117572677971287711096113032957149956731627408202935690325674066118826100099112872700311615555871351501768829886700970302017207072719619493393125449964745176251675458290031472381058699449778186943678967859201820562116601065246228244758054878100896765300311344880791639424587257222106064204202009119722261812153119539788475166526464364635372346901993440362655978860632530041899506700546309412276331956497494236496657776540259967297469310162695102420416673090105964547567554844179284040391817301437693800160727082844890390559719688423681532506846032058307469114271071115857610151469590540380343205761219319698706821242863462093629132707343236279295823757420680269337020579461289267128361420314893333021337812959384647167134804162881817717203764007152019982397486641722729831409159521573542791118462378993409769704415271995816163811352876700213345231366240567843348260673456391110544151081898901381956581139034883870137352265422187139341039338496861925304513040993001393733214259539812366199652389482903535770320538833900969040436865052505414725180526203072417329828066015135555254070033633530992778706937466132058836647717546789603684432175708565159257350469690777491249130609029883908542446586466102488147888735908153628774276956341497237941322031878329624703162165067935715876121281250659389493097753458900506364252088543855463454369784232835003658316280341122842563489413982539656038672379939360085413125125145329377681111602360173644634389944831135380850685018895015005536956629913367594503814190386237286421162624934729130265555506702676170705468200522954220721449183751855013101190841465592243897601416734027515200952566730640616855250993497758372804894868665626035757627682904631327063967815454099653286200814075632280643927469366652821498399364041637264518369548640001460764254159766285073282048313837747851073724852399108371873894776658148940320681085109632497289822654673728875907115796502944101074679963272971938893067620984171753397022723013578251125140075523952466874019236181747543859927215664762308443583676576016367717159993160006924697762042507290443866470740165468116935244672816355389097626238119075776250722206333520105790172627764820441411389009344781142334294372012346864718188176121576467959811774357404347868094155633098320873807624608662862542882969429523991145338529944841525420541854401263839012438515036012255371324639093684941384600060301483820412624632687416318954745222772476207096938938881919535324171873628018873979522951937545795168074080402662818803109987626750267107761610996479122924399760973382472373829519061508130167564171540414737077560733952468790213192537667257738111141913608511022287064060175744804034151258895689273733309932907682041773606960650688289809769950982302112672225275996607742260178620606698173301216356572505821623508778548734607247285250577795945056607432820246076396274306692892033782576943072589177502581364351148178788466879984119989431649870975943452015261764668558247531385988992681262844376132184628606097393482729402782554983109201341444194347294190951144170482276183705603904253451656873023606695572188847003710642026750290683144688002746466889590610614528262476083517462103177250179587968146877830697507174503945424116456736488177608605400477515519948112546761548919111061363851769923939325478713523881377826006280563201011264992193405316260704079732328300972896690817780599445672369191540960247313868542943725164842218983051704261690155308714015365260239929445282386084682922554647696264827539857438728417882026760454464995167436221373586450249896729412375973979258809448435632574443927453308426818646846068105989456171579057259703969755305048591798168735178534951372786789538997986962752571344070567659763488464125984300865904508331875061008588219997383721641293960864177028516195037051830148476685956258781233399391997640441535884957979750607130560128209866886664876846476047609763472534633236565889996536127532146822746996113132483747320501402281529024643154264942784597579652016459416882799393195761124417642674287145950434548552405440622871693480360198499035040669962376061983828551596257500250205916060008386622536830927497015990801391603391738670423888894085296466886462514064174805562608174336416397861838394356738731842484510929826788782406170791345997970593458186731673763766201648008800259058588245460262907591478866169805337829376219085862161130986794308968805003376360094735836217051153804631917749154429883475936398120904525033650594948976275849495606508224889071382282429255462721636527945611041234343925297355518892749782314932882928965811509722943544242987294475051501219514653126951976469174442678742401290039237251675735093114496490667082654212414648162620745056371637099828466790584882027122162975122612213464971421801091005269078780658638404551482082622753940848842408635302855663259986989091459603676546695158941230717016705539188645241420650473558265549263291365995290861705159355953738260274382086315383632581715691501623536282931408924748517950801453748329882212396409155407394913627205432450533128747788541101788273176595561943190369440746114220242367824627920599905396288461811603484781340199977820914730787363895356493684213161517763774552874733836129271606010622837429259986543099604904613834689193473508819483051414096970450472729730752394684419175071774150414407984027945610336223608689724353768840823801006861667020425453565893752773690442249557703306930736375322374970812885620032811538660227931988598417248986586643598235741887488653920373423651502091992295853165845658998765821523369194935676205683564319523807880572124587425487564018740762318229461890379454918843006688568531022387440639942280116338046147034666151706200480494753697855731249183796646485297723156111354271215850332551917886508723787234688560101799340626700301652302207202005197827344599654921999083477864441550008476228511307566047113235883650942796773911352207323360032781706258844710567038442900655220784973004025548605267946633266097009251158017899723868939370372111462642785515212891714127746927665813708861752027728017295146489541265477354533842914211237581662873411794036170294807265883684383351488479296403826989297296487033953227910406470400552948171401861516259405877200433336273278440281917935936924272454153853552429102355764372396763063550308183046882747813815015474000607255570763321799012034843395696942908313302579956260347782096809636843296676264955917668116220256303892160541064858886673694367886859844084260281298727578935215660865219350166316762295924243251051757190419268854404044010581151434844945709669232246234825407430722991659125457409032093352107918500018291969562953459743163950026626660870157272102678238784976733130305258170829064096054776872669163844393816804456382492627968635247556875168525373499170710566121792859373453389802951352437742635357524419504309088884670280482944539343735410798425227733628601564746535460863935718383898376430239837373368278625910061114556875649349415271579649499094507808166754859783293535130966201199638785165543201972805242628819494638793840890650023450029221365310284146121675580157128303251048646236153229889420502589631433360940445534182312952558042052066363406435144044000450638114657242993891081384958331266876921675504117703868482187643430385651132989585753889415369511699935424060913295943652845526818129583426964084967025186085820052058159534309110367263967561874689923714165739331546889153526113890735817895015898405992216890937837293595779635225917822938230612147321769324912740237685405360406888634503802576344753287548651156098565476239238716454457562623599551149391256997553213776729675620100334097119678696235718111130495853318801052969857420866902642425541509707486673649904823825215824667347541458385364594182243103200719520696394420819764009238910189709491781229428138332494884403385563404601169840546843082613085101445556913831178394092411502577274321757647686656825427841181035031807207106725971759619194341149278516620632903584556397806793670413446994105496761291134293892800357750720306351439269730223460392070251496205443688499181959988511210068732490831177089206887136288217440588006982243633133095191724508116993388972475406740433612966006248244872206984454875014970988056787485943205246976485806444356061852377524431265091521290843347449735803699387431632669006578771280349294896448602570658653068061285414518988450101242436692657197056895479388904606965688894165609518791029135202436440367425104780072825234678936221909141723150671322044334488045556151109686343070940497594547345473098202237941142622427733937032079158174301215883046753477686213676632069938967539492290398320267205642827518519039584684980997161414757490691303748356653253848831354056452419345247268456507205969792837406843106985605619694971598119282770728475657032976300024903245585708407397456769459215187393353256225230138271873205668947336474596705965001763694667612130640239508585709107234780099527294563715464927084383663783477053864400906368313515447455120701149485037577962322485072474838911719036257630292797889089595264808588248474798223312741056591852206772051680883333729281405770432945777571427440679555480693203347914455775020168322008801727350571994816876655138755007777442186608756642237995298858318044183247510973147234757807037760854934044376200242853598218572052066946691310599919413017153682723122277662679961936095537668632408878045309764028987763885552057764096533388534197854240669050474964705294826200544387506224701722467067567461281651034292545998149508217705150062076984439088837568079092152953003060345308488025159695218553760638360061947405558636687470578479769198161236844576900165216474283142434679397037629960294777424409346181945094041076177319313491509601328515953363738529837874048272613942076386233062819514925941188356860171126491894178602272892570740232880610612765787453577369530668756656175451516365239051897605856206866063558041966562682693915721056377480163320192738790201970754581929948230699684830872442124418937888955353694430242260614260849434150420168431247464352620564123827649399699720529873688198710994002995297566143200163432438873392738748955261101607548098919888611973609299045130524925725328980709736727065124257158917558417611051429260867842395702857273218019705699502963252413170460242767993877427837893656561356553843777324414012857828293157022692283637102996069187976260660794420933415621233982606384203292022133022212250590276738535201926340400498194683122077457499795583100970363942108039641008108394480294078953156421574279604611737866657317809775257549799652216846654892384176938308609124847360045968884333397228726163590786629712023800430364723722126095583606478220955915495171936728478530975301518830228065637566751114509034216861162863900147117896673126615255180045744250055801666804251301598821540300303362213382548661930236052800850286094261427645455391181757921590132646849380735096283478453708234826252321484115926393058641312771252607074090007338991533352003282101747370192925215685252143786434892817627728478122905876558254451869685881513681342726993864536626612546093701091570463183669831024932984186033563073143732263762852584009232765154806950232361441671809501445806104135889327270974265555436236598972891616171254645926892903433351970676443120725156874742968338718375688938030122791736996419547136208803013040845565989268168650714092394519692950311295013123609487776775625048668730060352099164791040098456099798151379791701383003411434898026768027994752728493689289722308279034859412469559718914062195080969893823063425510302967875569663591731347954903559262526945602866623178562529107775043844185725422723393548169737809885071067972537366984498001553112606415462601344339563210138036230949313148910985947373119873343066555253376270655006452270576950909491667066401997565403443274899782787153657014732897953450156772317307106654552236823972700285759818058336817848035379977859995920999450626673093032928596183498687022450130233854093009537485190491259874673239790674370409368842054636450710585486135506741676677345677803499352904086696715015380528709866834479649300916738538127961021769190155539097059012380417734240769716503413008202821876695038209407119792158553933614127003352211033419310538131687557614559297183507425989688412908095050424837241788143473341277439133695269939825431046819627751139388322295141303673641808472912020545645334128256307014193408600010568250821192725634164293529742120078091094820210349165722857212966387618203685962665404380855192624870138710930688163079516041027239806699009815908909825222890761112272590579030533264273620487138140771625081838778767122409557733820595446338923197045212040041565477485865415825335664757663857615184578691452548872384362038083085348990067314649553921325744829078707601369399890354984995340112942952352247498373851985420826265910540729369349414045927482874213775223458817800314645960945464621775674748087238979504998715169516789348452730734293319097345704677113583586747604490183216296363688567212315730473978246155536092572766939113061198856012960612965811225477242908149912884482066033660819978177996318494121999306853824135322304837411528365725455927796440894153188686026103459874653384870295089816129800306509190775710290779082718309310059147662427428138946200652716959378925962757325773282365261857222820772236073394675084601868729371780959353877810529035146011309611138475993092170107520782898468334526474401391636459632350354112834991258308267436969811358601423848412296120126297959572535247360832751060830735300533928286093093004871961732372650118460790804023874042448448242424138968553363376139804693656238188503396104152954221665074258000996142193548921300578049961948634218641043096475398467589026047255224331712021058273439571818895695657176456588970677073424442817531015030158149659932146740153984514901277147784238000967908516324474800114921916635714167934654440902518219236375631038787563543218605631647052265270186693714654220447217454185994147382593820911235846837954739980313814595712048149573710726517735291699129351996962631741905890103043454983608031894400644537887602648045466566508461137679137280276471791864767154574843515371528734108410273803533103029252861875678182075185069669133268199782391136868437833741702959432254698241058607609577082100035733561306002336532424595378312586053116928684887167270953252590511979233365615161661834868647279347048017704828810204089323637144384567822838528032716272144021360166453864931917853904450826463089386344478106102086167915710224209702467674630905943314888142516210575845528345649283280747440281767533636607341921788135106619304269426934150851135945882760562445755299928990187891526731374512909441074517058046735658192329249531649952628926409072274495110810840097568626309003156754109498976556473392318631480818551474643852195951418565030452354780863976291013446294950489343363652982274505640547920267794135151686921298640285601013224883583221635057228319095684753112689413313060747753335537198949466281752439542282001602387902098378982942678422301536098680324043012913446176080695176655334008400610826580131092827620318649379388883759251046511619024534219181620839119197390281498455745070013766995663020791844940170563292538986267798757310558902154220718542546031969336851117980441302970041477806149680882478386354983174557245475421679530598809756623114846752903675468523445258011182927969605098703862345038144108067238309444913518320020724562964672837152746380271647270480379245761884715646073195891296741254440306555709116181721323424027202773463843975730592129848065170792473974654592028356556723211447607070804618759053315300147796687434764591668767039953384164788982152840966403524844695397428156320595275667160810498584703480410591860545430941105636292965188720280850444148476280861177563847364359632504294691184082428225362731606133671672064007256892693061074539528082429113103342437181897041922827173108495685456635478644184525443910232946678629416358668666328223928894627699505063706296524603554376554919756240714814689855966622711704859719453936076309766088807776289981091276942308841311905589967397725848138194532097946701551438562869655531807276020164678714652178039148735549059900801323799362486304585815899135640565511298227401415526395237801278918409415519773825321396318746152975816073496805734854785579823684831732486284363339012099983443820638568066931921998272693451813993818215778622223479491020768160663481807050546946935885389204690592601975472485974051124323155140698913024485214464210519936074727171191795164285798841789750692098589447952829661018585771128454406745362390281628784592376203605777988386669413223913376016571927027735253981795821365529074670993859350658500031818036626697325664301270313538455299809610268996446406509856212140353848461563658461485576468546719186819292867152134261766276196865600900032224555943297724215104968013206934470157705782823042964299921530480601337831055932642478303069533215074272443521481809915970288532346656520005435151726248181608979741707055723736986394505840499640701226365132195551556166378415458453674548084950045921227295794151635122929612305255447267837308815497201908173038245957396673111641672866937439892451369248044542509371274954020114295395941869040393455611076694350183117695831878118790346658589948024254504706233528487543706882734074583746439463161808064153238976301312928949754456799472454878303990228083407457513056875865585996879318577657728045757364045395874300580801376525413099020158994457188880149333037142822929991391762379640957786824087297524917625848148330090549231712188063187680364987816306265062653486609403213194673108123263006153490486384907143688565622045245647608432297084766505589411829611128510986807957887109201335999181948600706748642785355737478768767134485162985363116914208666880906407391077962026857380141462230254130870450314745751886633917334134379747290581862705028167798275978735627398691616300656503579074077068788862576970510667840144319019445697787598302697204283301549542577601582062740101888492626748658356974285987172932691846781894611367957441926034330544654677721870543286669618217702208156328662865448713655588060701157859061438524719608214490140123748968706166908073129098460642431740346468093620846971659515337983235174088565067099270988978230718874250314342805519746059689630024489498598971450111883096632729191324256631374800326372303800239318636968100678997390865300649968544439768130303840110544458707138137628475456244089682681469344903316583046711290586967965441711519309762332559740897120759904080511352428503441455590408630506211955177828875668765620320981989536256298975121015234319203715154309556197543967134180246309683717900655891333220397142109501786319318272286236535884338779169276859397101985232905666144327917321408953470010036143961470074140913829980754548949541036121052331821843252991891612613424675833417549618538784165898131798315067055042500191963894251123418513046664322381380016639132565837691842471877891688004303267101424682719575026471578843693001963204082313662926783943802810503082650667888082202170832305909799556536267964295980082234224324084083521881427563449380593159541270379402728372657968960528368354403675162896427858144596388705775666716208562509427625177391217821987904488375824638543364292867605071198244570099581603038378258800783948741851306653497079859370933600299343079553273159684105637632451010790826514951955770098193160452743456518195736656860110863862296792722444233787788537256036103190908233347612545459298209714063134462471156163339523611023102349630088997276285175740064659356435340722296196420368192340942760636916568102494507619329664764530966334543989588375921503280916822382755583554528000194058843670696247669065625639073647668529200915567391625244244441772465924048146783615052708066731732704364139640454919933037463582742854358107411047753023213089126287116577671496277491410370954779790982039698019112877708593153012155953884088208046404021445272112037811263121799106751325143149351270764991672281158857057435673467594490138634549816332176110788436389921621083670019436452979038083536079315240812598869204011668441421242573171694967117174978402564241719497741679459212575671032035207523375945333379202312825086150708084550361576724374448836529418211095607311446008179769455593125738370378023270533103964505817633099555526130027995122695683086250143362767045073323228895512803403850515390748467098510491648240043073250407705336258786518351663391471281105986962002054997955151734570272919705327865261875306824484771668733381664817233433182550808404470982406929816451776459311204848262787364382170558344129814540979399162847373658569406579880703923435730013868970751398983855739872866598655366883952232205870625353339723310089939090759334184394428372059193331008626810519639254710127968315856564428644206936747673038363041890960063337262743496134030069412302437922695633316522550312813106397374395826343804526536342969637909059675121065573577833486724326085606667112236225039995743608622001816102122708425907501519652744305635762592533609351138688383512338090103696335165199453163822280477314757832298617672580625200712893805006220443449325757475002577610621526438923061349800135513568869473454359169528337660211670572422101821631084579339123722777233395560624020287907005986561236808038013444212015558759697800332712374391507538121118611158146372028172713424311979761113326040360026755604355395147024735058760078782518515990480276032228609846209645605678769859085312452905173822966553609233361890702028656925388476605240249381033631343711086219033746992287998016686816480211159546302101818972392426272042052205552510023860086682954362334022216181035254623798149583262900073887254394841042424867967297088991542617304913456756304486913063006717853342211083691278631466861355692374737189723731543891288327966246551848105176742227890738742966075722531962516680638370896821898087027564263400206415995297031872212025049555178131069348099711871956978782580934595316735220303488239087696651348661146031234349113258508852830587286338022153825485860318591668505881898078333980869243110187724092809872340094653337360034227267676723879331900521451918618428274136008762834860655004544082851991569203262915457617773179056814054045243750297404169906280608489719556343962788987062157813747253293976811299921490404660575170096240626114446112761416302232907731158415941026344899964914304991313700439150681497740002186075387306343723861941323165834255473669333515018267018452376819366934640587389269773597293119327623882110526936928081213606913199741471901244930650278534705406670024749914321032677293195816126968402680164138322804823054262367566089284385078021789571974832302219388865292206377665359682541727352615126574057381828170105061836055142349631214403547431309175387243137452376544151224116390372040082888746965502093606096884648601734617925777090953189049435774883213424249274856009735180968652082975595253216884871957586039043577162564962994827546510233533161906622651027450020690889059963162844604671787692777385140500185980906031054074551372008674440361836087747906579853656307101941630097932601404183563947988674380204233261140899860129894990771497255367672580771774753839164003726318318178257815599434885034843319706228293070991547361901193949829793964822459256703086610512814578877213688189338757473738465274258152775228971971233582762786396924405494365178268730129641621935981968259783577638282348204199307361575690793540530221608129687305247496968496064562420858859255442166397645518286257783066396196424070362762517087607097574502386055993576890809036606209792969022806509972257224200991879846884973347220772176983945390157557538531064312637205052300377244928843262435653098101507459880940376932406644928997920892889683875095513616533998462328781751577603967442849310471268711374225123625858701522630468465376703666854148610332597656063288456862282228733911256984448155978167769526552077181181293283538180450255234242080859323912239338673951154491819202973364950838754952612329158553331974365208664610247230420581886874293837806156900294075057494292106374527261953424410040555789961596078506094349822515334395024342519342301291787575322170989832719520596162492380424556101010701959019043516148666160157572349662087475801377867873295136805217656237851362436428245128162041501635204997711903420188199640215136780852158802409737300618047902746561898960391280163197081804584928742891017521341504898774839534615818505431024370525657033927160449405700586450041140986749764091095016080991957119384783805899591634533857269293264782353414475643143486270932299481291750554583455031626194623945937472629162972371775566128906463438202949038818073679902623468590580282512125471713432983662745053150326467562107386309331402647032626177944443673186062223558027678546577181137301004141846374460637118728515854336867529186550058832908217468882240344820888176698094534688151408212275537668168212887169709893040256177685776432837120107334163180732516090683013497989682033435604408642659501653254137659446710125218513913187030479330961108368980883290398323623131010283911290852121506013953170833856652262278094115400182208221935324233432866538122547994769916533186142926500009687093675567948992201011832522522386096378081426857687491989221987729030365907937139470985329173971737917147637852278686604547314544357704053468423672409661775904848249283122769795954651069393764903949018721066546559009825321033230339014348194380196750086183571681663532697235752115684796342569768077846101406657440556396336420275294421121795015382883409633999161675556307272084129898013133628986679178390711054504230737597946644542470855827668883379718654246309076682041431216380625268308544751810886659970443682467272428298168483444627454081111615609222497877726765686311902575759423635597170584062422821054825345175651266242119563919500700725727563862296373103792442610188837765738282182385511544216892597131189322286430176221959698047152042158749772179604942625656300604609135790851234297526131604909593766091107237851892213702134869654592349826596960767225430435017702646091095420241529834411355203270733153920767720798916556593707047388373956840181429401188200526662172684527403200990035918894102217662860734662595829407569540605444368299170780134408842083168784417923978899110787488976991022860225266538571458754795153485368963004461750068511278747507203091616871958636876990691363330867518029873764931566510802572941789423859255318250419872854711467679873517774644985379729061174433150236135735530394489001797192455404617320568169622303433175681334991929118017873094297737978105846979216752958679904754478347198497407550017655740734042205377776941062269554727715550008952209162907976798570983387642215729493657025607205875445216648660280763690625349200468965116052470241437669070467977498988393870257484660271639944553097883117793332782371072536965756723020873096667113261540945625371777565073108100404104318663771291213230454752276031208955248939704543838318176644857795949029078280076644086223459837148219877093996441291263492337543581385913381534938539159195692109999362339997684542204871849085937495456819660359338433404475492524371155879501718624765743744780955727142567023234768793217741138011273544132113917591741775208174290256550765236971372015598898251151565875293839837775661684732058283136006426384947181302694107631452533122754682248264413447321646621130207997300825659787473880837770055494055791492638335911216885298731525161131600665266039780031385754457626269730609750040960352670615235034305977275287993809815600158306084728169154542320586922307479083444816697163265643281577949492295995978355793465829211588597263587140715411933956457871261786552906328946857929468167986295852155779361875856780051560566063994528097841306851578727641464477253861511989502944233781051647343416065564242019036181279736698221386893179590056385866620482613345368397834419685385541390408810549386272922442105275702372674051250217632165043451386928383022925482929178895202726234112757366219065397949697750148525624383265980649692293667137525819037129548939825873355297314923397583389675189263057211863959327257456251474025818035237434324714055656277486035305032148826042978038250594557587478271675963356799781133342962518059966569400284866660464722679630936673184882454489712215784266218069712806137789563287533495278068068716254924418178607475372967008244741274650196915790316329628082287499316191149425971892529077257417923564675781665055508491699942751983396369560005973613423621256167909248367420132756341790724012643500716569882014964001036338513976919409136064633180076036832691798014582980355239036726639159506520203567731871840990958747792061990145274836781907541053536418143467356154685685609519122201336572503269610306978976774696515676231235495229225106440444412656942507922661466595701643779415097179922256916390100777825186351694288887248592966879951843800228018291746442165848823554034589561523574492730810012264967482873738371317333777769152206301674175240346195047984053316688556216921338657011107265217834601605661795750544495056873841067718077050734464709410615801566126608446177472685072083472217741622935135514279175900067738892992772455630061536644190024162874128444349347814414144885183494822942954788401938940799280577557882198613554186213159120437450043993538115016177504175788723378117348385907034452524143669018397059548482034371504188076352313208096801934183088986871334832207743132569899704874413793527067571836427708107548845863020657460030305094818964861503668023921490987218293959286178439621669303159600183573049832001734219538006982128556739445913935720422299856633512288462500705483837406550106162107315478851928226579437749010863483198848966866897348957680156142564226223132639279155181855069276991506921546348503235595276738990690723206209557212128335099800277668044367315811005043295237565366111988747534774896717773833039538240380388320578900063250211842339842373713077267541882357819999518664588173610236525666283411107570211973641975847537337520619995351917465374096443939399821765937348362815626601273342590596384246615298180136743328863893771704269957294557817759949224527231104047285051722868663409269510670497749254465804650701434459939316393277844780217960582530748312196459511279401281989406152853788738189401332595210786431606572758982073659356876128412313524320695145368618776193727604047207454874655229185130128874679225524749953110518871568799185625801272586046470251234992499642945398792769543273298611092781348689467899046738235010333127772217979486226394426927686037791908237294876956099765334681906362152884513610929740187640949317503019298211558527729108436531756893810574470410806542618974272958022126592644745102035803771928364620676308335586421531810715961516656173909112374898750601544043492449359541218250359976383645852024048322126886031194410161046206392973667116344061439987250678779249748177107132789508459925156208217556986543432053961736669553373124178404898273135468040718365275018648300309087785160326606564766620131080271613259122090987441142983219690527705287329886615399174183013755259684852541710107416287756321529071290932405907343488918427752935119944292119977151502394810965413416086371916603779365191612546326307670752655035190205383224800734588667838080969907319856885999239872832504369686722233225248453515674235327552251667758933510021112008729795527742790167557269845808412033985446328621116959599764264678288624242665129683691841041870823963010584346571621646108558774760612984486960655467850787073302742379749748492007480680884796364923383323509183075660364908235084658345765377689396875476680195066951315693000728063774927789677047225687337251378821840048489612556151522615144252340428271181732934677106832100170443242116664432631319646353931795628736259400220827338768802245464600380796511575262271255410348548493004975598872591314278258346019879420127862509254328213362447593877431840818205179537898821696283861145937779374427273064331028670992411951168134752626473809277578658263379238213060555988285091270760793837054641388178449071344356132756558152720129854791592235679461353831041564262954030116937265991272603146505355117471568773089769368577168859978065790322329175091179675966510542024960307506121694852313806027121053541970995429490040379069385495147571936802953125646504479794773282830793425230706414276958786904663513139529937440272967396450607494940381891698657231817952865623005197852321328382786502993163525215714540677329876470071431483199861560304699531193795974224371635214728847550068213936977760934232670975755647658447663519493551432258550342215037917335341383523872833367262986010993752152193455200143935253731353990729366773763582163637623865341721714129189782960570333728741590960831400978910278475140327068423842246551710285550914842171632899036588944940492039217102171190011883410409689150122720195114606097279761981522106508693087526105474854608446335342400491425790631884179812608743629465123600076285318773242247582299762979038452218482987578099949580479982273993509086101901972688508112379676361503562240837301599201756533473594044924623753250299207554129240965171197952602594662522616732012579897033327356288319577274020759404861504175401835337025483980476120131994789104734435008264108687073486531752690615388804530761345103604609716094830182160697990495943290961848730796392430105475969193023407956374391650220875495450850577515300315594401008635213679306756381868209320762345688811189475286915099445565285929910278790139367808235650829143934283828965211491306631748284259062283495496793290891215104034422720303452481565646351016817909387240470464262395954906662545456413816050776611349340847718039866246975864992965503777222237012794275191848194609621274256614938601908516337395279726985267173746840995440705933506885863935626444554127519257529061903032498136101366901488807120103614494778687919918783061447179790825351964542716985748491239240992558406725908851469697943087554416453438009352854951902794516714446852701855442655230539880602243398783644871835866258573895829236441050292042625868515053835538730584125788109357216590424800013658045715791784727174882961965682300552683597792175226471680206603362990354511251358128433693368698718414017370112912216804290838928133969738075798696847924123230466178721733282020732312448474709446958389547811980061523322755795623177187911575191410598736956296978444218305710643407548364133562657362633794695464839614114422186545498833298725921586380493522694583931264906118789997066044622511939386759140621035287883537430532972345964554121354869724818936010700512712250084299255681175968532944440958858015870777201758443027534454724508646633082003624442409033826544974564559218653762857069565267712554672495176416625898241511929029460634004346769464823509486270073293981922023153791347960228972547876396445423406312492585581508344473022606492515572351002637667144738204926697926927477930421994830354027858821058294756454332019487868333412920281821484062782359626363377379441006682568859857419363321657228859821030198762260673628989386177631538733558366289254597561989744186243800008384339138376934369869224321492055289093741367089575576829785240575327768974910270120726085516010649156366458491071196354661780385521538509394922432141581747773867045846097711476082505961117720290166526775938004212982968324383735114895161240893512445599058267819137434226320631080522556159623995678966804143846442437941944428681102710444039576188031478024454468060101749438750736210795644974991324079392556711919600150639155385271455699845597147514182102163893194687788331284148306008991963462103051177893778385103036624317445315280861691030144586478245320786127744769562930994500923472691835947530813991563871720516364652106190220686371996704522346105353860077002042237718094029998830143424903076571962884299349619628922468937578488221420941111450195330309596589019393651423628379336135633287306026931993889401089891773013688425358334571409618916433063053147727297621126242616112838415077928817387984239824665375030971807182499003358104209718501932129003537382848476713478977715957425952847521173007673357933210367642441665439050121604720858185964413256670105691044788356197238440293346921286596939192634961475146075922804125257517788171919365655993570126541498709905458539714050272930201469183350424861504340634687272295410732615530517271323899444427531621473643811376189476925480064513192594653817868461330260254512803096785757805475578110857036350952357811953413432024984510893936342906196098050821385418799356595901973190443083921283732433515872824907001487085158954205541223633726025807717257304408926327576661421315923441665686892598374422536668713466252595176883411706652527237960795059756746370363060404951498751233958300368513124663480549219688280184894753672702951177445285753884979498948974375452444732337671547382884822376595117671731750554556096210550152124631242930868008824789904067620508163026649243392784934444859347104533766404789998935783072034639889348960275517207250402392748125905258092170796251651677305939514760567950942972672574880335440046502015980904383012916210214770381083258745915869813486451746979682168462946406307936704519162234973667249511529899557803461973307029675987617636027735532959450069790450241967627722429992218833901511908855894861733576848451333105930703306160632737726939752136280056209053336607345719947364756066654050418632037785737231720710970237377156108842729104140259999431692923921380846980960949392108092364643322888301548168425962239137362718230961877903135294875070282765203172588000198961849801609992101634851273211073578095572613545045727444735283731334741732885770959075968252725889386316820192129142939527151026508791178594039261933658908018627783587997760258256156688354277399590370684531997137978476990045254467706050640372991657167643798843911433033151490833179445516275870657636995615066564323868421886815863981014392056684810858751149931834553360279606137744288777081506551072968222585344457923773345870711289003259279336525142298915719931219548244296210213330434373127511035993903099656413779866002147102301212043516218452591652624496717470221579183907208260910981990739512503036202706677712326755044751825579043081575171937046686803881467637667557263769561946328656629884489832422774780326947018824441830848056899033798456418621639765420168042976458631972012172252040261825695443363299264203022738703443824183177197850895067742366550914445791644705378753721838697192036749811387570979744388027455749445155519186869234081810118564513338930690420123548425812568435548866821048418229371916395682836487490282521808433841158792332568256467154492510881006963956763958704488325959847418120700966559786614249534761156631516413161144696724311729710168003615581375941562582178812393102480801392377804595605379219591863844048926545434610930999985269172271412736276929203873274502150474305179008249036549352484684751325036339781083512115400344147305684461295287032930812920686010668810364263552946028389405523372161471612632183054857158641643616154036673543696381778436748271603171147400005448250782360704109836556209392141052773186264581692310569207651094431789394921202531696451851923643636908161541487659464754550712021686005585498562665295325859946276796324479317684274353577464894270579131570423567066176024546941854258482621075869028674930507185299589923679051854538921202203821772519667365823950394758491500726029483022176699096871278838438819861740497667945208529346140009127263237828615141033912994281919902190224319720912827208505170963464274254759063956089993933569410347275829001146535535442665753706147421616856799862056941878961576815897552954642012998600061468920500393259525019073184451003363632889837043693879912708312326427328347829797450671799710802909107584904289311282567578298960335050194707278376861973263410991435372986469353581065503857836749285547124085190315912280035759236409820428680370914962106728960436665502562801611149236968153910915469700922828735640767017331356522777394529803253861563988343464441558695904318224987712868581342594468450145193617980193833951855979141107483087468173689380700927139471007498116225308829164610331746203999031111017876341585143303407376847542749210027732780558118920606937318774238719150355252155266583029252359738613838258751215193031403079130214457443628928655396830541173378356356099446803372876185579723131818304406296865238385884630726888676273816371940563859353637451605795477027656300625036148295899302400427625889732185955525133858679017771800326432841483624769198576391893476756563719662271738605335229763066764216846085851799821643405557348534304270613670603621742557766097520798906468762093775241546151278355859565999602279395856712052233939483097446560048435840885509581057451308594915508419159242059542080187197525333123723968375937136531179228676548515296298648576236385835729726667813560244976612858698462552728355349828370018114526476127371068947946050312839353204995173156711741618490831030484808884545473131866514615156578852389413168135741508433280054864755492107529157155090551154401104421743024920505905899238550205331001436623898274646114784095954644222924469193401586148588553283416191471839179121657687054979627987411891294813994574288661327215077911257333495580151103348219262714735699794998595099334033077401625237654138409879699753243007017004593686627513893187496668035681110846776118296126947046518884572117462413929259783582218344446858687690209409196351245680886011425352861626992695858473176607305763505151421908371319831043970319994580807051699234292276199559941328165941111947640761258142190280220771524876002495869770476743859694077186497653784273969277118064380589277033745724665439667517869686654170645390647267079274510143619060032642830540884258426886817964979730616645197937738965275310285186442812005778065482658973258389223122922671731612363783699447515613157523405376203918359507219394133206796562541859918758809941479935692860979673865622420194063991695007664336670365729598986621481399831653619065078176706474743000186933752556885495516294158074359791067437312010919413740191581893679096827330900893235245949220805418513562396051916740229955187820569860442376467372515051090696929883789595250010090786125647457946682621626205512513943515266467462858205090691004998488753361380108473919480593399633798235284269394668746685520597101007083374914708037227609616275734042133468700227011831408611696101902052530097433319432871873333067446481666709073500521510787967684309299475193148290359579725367086729142504607620771075777825953687380511548248500308099774213420162398722147387020083867532263752865467791757730284676416046546927810499657631729593934859871897988934554027263233255690642286117621114454847435266521876808599691728208102319958736359983108220199672129046561489782433583540532302344253154318705296142442140352970594837921457896246609459709314811603265239387074551165490895606885453027160039983075676901966921685310564032693421871358282592492827991620240283717650931303725726150596003759503526790799108251963815572123702417753268840782066306743095578093583141917029495085291480115343279442605696505336277804763178003786911776561824561731573725700654762970730176931601239795803668076480888249762932600520398199564429561135075509367780794303017846282220150465226878483345792935142277508559433940851213658820768003642983813065662971856541201562470427743827381184554556609770711958856420351404405542221916886826711410086967350866272261727859215545664162169442813852318406146232914487577914030963076283529291900765773781122648704737380677918666269664545955644203236981715952112091362969979641706130808249068130473589392240419119939244272824599628940042079264274025527299518080790081394547775277153992323914402916168135264407689527316051799591948704286688403869832335236105511504249130110799359273937194041125107889892654620694639749488637964146120093090996039251491995347293088546874018733176677665733481406271466961498361539380746142160447051426126445049134599776687092268950651762599034664083432846844103308393656381046253788149121993036058856727617896648616937725743158105975744568884549013297602661732641033767435464661684695736860695646776416290749296737489475782052476995947557349690226082316454178898426853137387299696366659150227427807071600753700177490641043739677678781792458572614210110319780191498949547762889213073667074614780459595342736187682865049829504668917158803274949028562991641248945600911413777765109758897842879589399329918004465951858657241144667125803084092031142086971755052228457490904877390500603073507870471894677594097230330732924166942218891850020914128575355954415724671411643078291487978535473462488013595465365289786921032983730590064858278041545071057551319232899928946389443847683447521543301125956391145248171260962018121653637922773876165456818652137409133727157495138553809806825993379281695326873243386425514183385517099752653597587823959763797203245785106755677756002241940731676553024112085203477905666109225437218750437771367227653575403480650553642821938303900784303272962020472888570699759992329652362392009648178352980980891191717141215926975676081860376839511002549863721078338079820681807613210722530986813242761646315564829007095205543134533299797757471872578980736593990176678491088887194149275725963031031318042649863698956142568765410315239661173192169115522293095846833652422648060703440438899622895482807771555325873194264353092518657437446041890558888827115437541950538412141465545337736908419789525611496980385984318439805531968684861890413794533841951945706437791376953235785411106050343880451541156481424228465617493177300046057474111062855445904994412326372099069463578897209449265809283964190983664387364704373261333652024015231886308361865360337872966616281684533563280130107368348683593364641747871850927743818712865171674070636831572982060934275600568761887185097194352538495442592780749750403053678048225321095475673763811825073158556698493346843579068355590277876462825091980882110162882194516966804791409667306891260482397037750619579825321678500772550479477559585577444055722994839055847015689589278606668817707025220647519712783084827738677439782620627933641608971765713049195759867400499743116212616101220303750115499287008307956660476840581781004326634605387241591149013683032539634023659247118661015503320024161249093800930914066304876697606258114145716173382729710475147099656066095896300838309570215295098456963509947114119998586363984021628164196756014944186054238853958360428934844520749802967508461979883490198623624381299751811674155576244555110822380155835857445125241720902299396833935530762772219647703600405723767429364835094413986639641678920922193184907718857294322038120876789464829568783135353956952678870346423870645353504809693173402225621212923079637713787125406623797559584550003268213337954838583672427448546428689512446419819270700660202040277578927643022543261199477322190230660441952894952365305523634570878672044635321927921934929847944953649834030036401112024847074084600080653441277408785066966228545073324282863704370277435138327981887814285676057657954957798725885911332496874211720501525361508934104643526869722942633634542713573556784575597360308746661127995359963116491481932885409903664223371960408805960745204975698924444027414102334499073388085027727642451820114534588113002627533642119695364419217862942220904479926063018013408703048478320507405932399122356350364402988789764787368989207250393738992021095915328679509444578485259591844222854595853427096615181832041825513334871064555626224939265351058639390791254354881097050671773034490565998724552020916455325449224374833836514192362281284840220788242097845472941664941254379746870027374454623055806108153134220429570984898587750004996779713434970924725467572131473849094090403618720980926306963867278654691404314235076674013136547218878720184039965039561444984467939788092332062327063866760446228341987861388876505602166303012285110014694714945202753309005491126908898374203781654207836383502343311675883125146492063131173146564814522396791273900645462853737430634720518084875073433240140783173651083847935374710810901090876629562619767524173048239750532378628815276516287625495518493725724140074445787792408072109205941497416046933939314497318247319862565608690837988715841645803661734687951610347264185614681354928577725437895738923705245916032819125325735823901670328472428067484725981421855828683034639604075800163017326867155670527307962814066104742751915238869366543570604233437964364236258813153794774303723722778226228440930014523227186102926266839765846109129906600920232159018070214712553485193305913452305689311020353138152783325439458770898589275737897928207915500671642472211674475261713483777670826893249219522419180332305661845848121313998328074433026831980348697682036635905644156766809847264622770293010622786235703217248492841759539092125218446850788628974343178348832581280269683016614905340517355635348193196989235650428748464053986486067582263896074809133969107235863545064206786715861479168475473870536651075938263065125521348078529817501807594207398557609426632725022910654899835599292377747794179901510910068786318006413085998602890455522090083319925433542355389390240978741002862690289732840500745669567639932784253212501370072525197171511083334382504672227603970715106049357144499408455887711613432820247307362916478678677734176327199930224349504856937726048122624862112589285311194247402747516126247143959150037574850143923815378002185238530312156648194513447976485380138695801404624461677059019258653191836160448659436939340388554308144166037530523862652340581875106073247597371395705959129059045672355617665500147467586492970364211209916633878926152750933382800006839462560443883942414806466175012500044123807038360907589827446378320061815100116043489225190267056274669809998346450304121086974516737248229025449231609074464191194006676076789108842519115440315520366754744908503729559327979613002283252389200214113290643654644526803423525164821478862434863068938724148621554001715148530182788879040091878530454095446465746891353344500053291375216989744642136563971187290514670941282843480506738600698056927299668833633269448026772345141749013523331640731571777337534657764168069352672362708755955853401080342889459286471796655382635410827920018914459767774651385244265969778616473130746165403203710067016039456056701931854392614803263467056058871607381060162857474689612869273370935459290727386119332710093227481213609032937870715560323927905545763860310007502382895528818156332424977085080080878359754265147264001257207002808251079221618352265409823662927219597924832673618056125643376562458159799658276897008478592492921685608289156546377450161449070764609328070847100431385101955381909557779797882731251110561210311997652962146672231652251520103184401929687283275487778709901405082219881639540288979448428828803741269329042860692615706623757358826949628648335678051586115439701917514135764586504815585961583581049871282232250775344675644894111343437502814746758589202489804641999865172767236430554174015046021352662278106146731378242645191913655969599955663599080553673397829274551584867591791922199482716214151874231788846998638284904341209665398297920327489056761890583231936025879066779751084495997829428703438674845019415755153947538851615784541833913500522571312550265314376521864088541023171232943478931576321794114792113648723639807956106712117017216903142659412728817992453286311766684130778415092704533658773873527254503196782388218155116782457474099069511004533529527248609430015513141127515830324095325720948507970333990181238402846242277300424650505366315353619424129052610208525940735977282222567197332755992035117185996343360695282319721331378413772712318679177155986749295911201413988024051871880607702116675922116736446003421920324947374582004781431464885159517932461453868047453780404441251550480249453162062583232805714639758043963580820308521485149062191780098157150159001666676904540055117153384260266592061463108503192275342522515178520204364450246807252803540151806645203007968343506389993272718296036481906184351626331924936573644693168016342970126090574774464546598569019018752874811892632997911140561277198429951890766658595772721564447243364878192813827500007406920342643196396186688925555139034643854648827448382079927956302737177788661727617908634613014529432808230301321759052683645310140308387326147350431971690724529179684977458602837966697447490190154445800396919516875507780862406037965349263724094468154037021992634959910088921064962588236412456613287970212839680714024883806671020643930947277794471760388375810536857128978357168969794750939689884676517119631803491718007406385453056448033068605878787284132783736735487552075403372859975240625293814087519488816529769079314550057339648464234119552286886012434950429021433319749726959730333797203067575733580233180969167723234300807177296927612080148177581639669454492070721062330025607477570043292871006187833474153713015030606000377952317075125882147080333412445633941234998871656336864491034495364803149649739089134852532015749158918930813603046694998832315675539366911209385711490314978844512412671941061543500969856870014333031587578087602985072686485450415612847521156417677919171833077131330740846365361086682449253178499596803011361705154668960299029273697576892710089436662783850528279442706056968268080496836007165143706405275992398408125686752833339043941496789014753718704822296950334215511743138905201895099253617114754026634390279878715171207449558251232436096288058985600510271909995799309220039969894483650560940601594891500183188299790043444779636256354099406521541070623671319622268290437909436166757948904108626875985588387407946377567885523423493741232182236628121989902960758452808162690986807825393368777599537539004408555888433753286669876966771202909354844970453804396321555093054206645360331384604569245471415162224127806565475489370991948284505945849986788419736502504680996653561247449167603729082705237952417008719316864028695976308003330411637829873423330758149237602543420907800713729707042258754167209528501327652112893631579599586443862983693814255169172634039362502051303113096442822404003648044526972045708070355792886531631481499117593811607584374930923769699000613800273253074139280651492355078559110909164709462084128622620849244153121399990744626339877698479682375914599182046840699820050145465103428385100769257278099021105153341769201668761788338982534183252843162901966301553887217061672014616625360948543539755717416006330708285861893799559071609145646645532006191283965666018456845606478541346124962937927241249986924351619360488314033147782946988715326332419546016316663242763558918122055117331727026499312499525217939106801230823918673252742280872545048300268687558103846908453673988305803783527089645603347847964896169779961247837430279938489112779457090585065166147754728006559802982799622451366966223283670269053267776769108415372784173614701891773467018903931569045208645419436002048615755458103034801981474165823694131887221435368865599506488868817591335553964235598178302393907477328388748595696601586571662062890929680746613298230751595443796762727725528031099826932376413608704191575830547005541395341134022843616404861754957730378360286258358573518990132132684788053875770623116597738803848039386758147548993563996721393380608758835065767857925251515865236608890636862069825880761163816328468188201152943062150886024516064216887913562238135462161526890609297020276889006792486380147949515834095252079006025775016637712093906713581301580433425427068537366788869826077251114896101336336721571133225245206811751909564077944462700952497964778761471543143913336381252888089208791924895941460680251264167200104769106529996148807030370421558019955849734436324004941785265946560674653939077718848441995926520471200274306842176598382729450339411562246059671620645597726572301634708769386568468431068935358445398180213512572716334832269454582729037305542596956899520365194436236305303007080839492719050305211500311195182799896385607220371116061852399538684235497483875426301404755581690484317813457746624019071375432514024313242697716425659069730196109761622934242583461806491136740125656495201138027371225704063978768490458774566685264031677467962684160667765964524628542592760198876021656259336099972772050835627183972902492417113675676841472424643253399431947687394404377806920789522061543931571965251857777937540699764108828685594781995782096501204033253481312547200218723618097776770403456831762329809268797787275452693204660849048258856948436539617103904477827137863595789938987738918802094481170200337901159206198755377350512919749985505657431381540194429470012709046959399840776400419362676920198664087136869570651544836364768093494451463324437308664353510489476998068724348099855300400170846870846738693025393652713775770587013691285222178251375549021938791062276334450809447086701341111209850890188218310155912581867949676354364390558847154797002415880147375457831124287394814016958056909255028254155523720880539683642828228539330233734141834755123424903710233375034300453106551296323815985513810381681562290354362850140774333047366718559616000571239012051500939992303571487657397389927997466853989229944635328696187034425529542610258614356347831789106149840596637273473596853266741492223408097407019924868481909890444853471490513873055829639724527942822061730098619919402158198781453460608772021211081726931787759145767501360173357418072358169336346293078430669926986995398238108193157365918702752245292340626340744636565681857459064745514852681526031004823402339707494224762660548464340903325754034722519918087012343443883202584662698021849025916331118915791626017490552225055703147145989247798378506097897905604457468583731686464273439007604363690973608316548012310335770507790268043937245494533885108773228824187995373449630522926513313363240372282709156283744222269105178447748330265941662597348744215283786173687230584696458402287235206083661827234591616088975484062192802875903492630531362371422940553938672212636343180917267543678059579583962829109132533913442966034897219251549985611706648567308172261881013177685848504863601339056100766321754095108398305296275700571496153315669206461178485722266750136370727713639805546556414745064874974330203756573546993268970312322429554536583322603275148296839499488890339530101990402955902212308886586329135313713776386222343453121550332439330396952840335296637915482326961136359645197496950195861080644088172353774293702950845379900494951928935040037302906339409631562971854457628869994616317364257024495948284936662813491313248939886583349255787979157706621213988613154595201811521040745619115931275929756305121643396842440017555713506903803124161792685095824440381431999744274303275380159709900651827790554812788422137381535649432053285178794392280723188374356537291665085950910085575337382180672771605042217117293609265949937033072077469815084006496642604519561782543926583737432604532855753616601587785419916113763713057320092663283401050134323120286535634481772071530145790195269594239765475024975490628229335291984437272912844564860755885461032646629667466368441989424424904568875704285045537858547102791816582501412413854546170929164290095088406764882674164163502510993706082766971228767359991381639007680008553806400492176140621640277274768875486652725464222540027262837827468998799400389521647692375181987649668511144359680260706458190791690981297911492504703482183230821648302343779287313597731132848366554778491454382267787480840262367548194647139005912206050236431320319709888729324797895465150328026445679147515824585002494915272350016591246468131448476010445471728250023567833497110697289165100260269593714373407136630014722254203340224850197493563683527397109064293258970518000310691844011131015423082795158047900078482884226064620943800133234030137329592187655604584315985588725637735406228468117985485793233567600824525269797454394580781368376898358731418281125712227829691891894685287954053236071067025504625100389407685428460134292205832623895127915145306900423980634781817686142534281524472409734206236459171149619716842545452986693846585064910058956208084761930710023426765641786715309441260494912799896960575227593970388561224930471641934893465201715872767434901339580473955305644010024819367697233126775372392097899547240288367213933179909043158979063874397756174506831519412368564485838526539832903751769655924576029293252716239061525950293637185379238820607422732819721919181661374457853669695829806570915557629316880768924161043130780748886951007504976032557474311110759888772560738375631283203372199598386574496911794979740718635654971389248530121582838015137838703746297569148077621686285993083487023427492270124735272633244085523337181642614651507824295589688841705082082933544791571164459600777387330212978420496375583932153094273906641038852098223322523466305962089539661169407688535265134458867104604293566747588338760499648195676669742615136596404566789855373933580901224043937895963535098129328137105262164329321362609600825926005421052808999579184758332137882968317877882052191898526103788763927658388091302100967489954896843271539789686530701028787099496535354974327363711869535163713726928036925176993735664244405417332155138085484745872910323315740378914670278114921503756366488547374517544103865403120315971257600784149570650885278081216913543291479819869663230003402429215470964160314606730605094693655053433566731074012683846023959885468658387202339685650747392619085310322396159562202733211213553061608509905652916358285918271001539716351030261040830939031684260763373751953876024763901757336430208827795951829675512359964283300105180461807950705515171226910463914299085460991358684969951811300509358797654183607322603285828998155420311927430704131299550546463714571185128581140728071278244645801222063189560376862335427396926683529788453186121379610504302271074860730296575478741807361565269193102844490995628709488102468811340756576923252315508444805930639166607659604821965126675980830593528719456385282071641893493099279352016754473863517924154912240613699180097506294960196932217070092258650740345343252390260942803411102439282646077087029916808169397707458310907921814219058699654197025882830456108497287080982916133870766582460919497421815941670824705260415581986471842344005648082686136690685869466833229796595667163843013578619199388897170543459013371144255315277517676000448427324430550696356939030907594032615201091384965420061969974649892602611280200804160331942887951749618054124410433751983627377221230580856507106963551002834779826140935203645662455470396516609872910000811697294411944434584773219687394066190302425080833410648642990320464233122058782080761763432867633210013244152932737560982176292961574908273389637288498761690778546586622162655109115576082602524836917530338260069681246121255699936720661709174754553005976500257798330710931721916061276023810986731133022693681119368693276145390860282246290875901410886725209823217858886533226979787424723820900840389610367108573845159179019442124172806639429710236251337946980910657048220581502151230322869631285648737002305205702324543644657530019341971385763010153025425127893837469715456332940119738688606587662911367012939667405319719705977173369005840381716007735747388930601116844005338901076802421299554008475237782480551353757715702851085582345598669620607043672393653342882284158232454551323273890636160488647601871939733412428647826408722823138671072419090689212256073861774233506055446902255045264753196377783077373243617489835305506857772131757485252387816551333917686898740154522338212860862249214686871271367061373974968028930007732778605179398859266505261077956467744717822112423442054995392947757936830441838695104380409320022950170383211059302090353725669242346627065288242125574322730122601757571353829392328089705227862125893944369960200369540644367397478582538967347953938859042717681650893353686158871051468176073172264454614590804834171907948759811595335888700527944148431767514789577711080102340976403293076294936258889909764742545579537445648059371502127225216507263007998506899858714084504626508865383926449375020147678066118398469871959035291826474168866262309943907127287494038080283616982049254931034593596482975653818850565974433275178118416496798068243612888530663151051461485195148603788291402028559505412799380379205846429586496394685478661594685584738798668873038569177615629343254634112919185054164100519376204156527169641047091433562878212751477146679139255836527228210715617879043032874977407825208845530670858043159760616781331205632039504532988785337554507052427875353615566214417267424597068833979963363063847640787873868596379569375129621421112293020385621985870132395437493325415126299595621442035188213340933535168022193870078755015838159693833969902134268603194426287775893130443702593898920245190067978166792569732120324543431963071256748148960831524758996459652201751636330097162162815557256061144704693344180493007598229447215111291536758739094603196501036663282872966325745120946829365004418961003882105676134692113913068303831342055544177229284553770159585252973218404473554856151348401926575070340012098540618352912581763768858363563660127304086374749025300968417248713334201336976034406539132168063423648302105464970748655885595773913676435102100696016206098470836969948186033068807805524285722211356009918347783777578668866362395711681845422742384151520006400004521632689513955376059641948309580606691085218854376997599166952454385031248697455277415430804362670687174990090019460524987825961162826297533704314198737713683197929599382159656010810469637317585702699959252975411318424230208651273982339361340996539381851863321564176392967842228916673136562641024440099930298733099412607117282477052870167089681658853211353411401932586490926891658237288926765427203915241952526673236632679504732224367750983308563773780937950172501723885531894900074310783641773298228758110849189304764705817199170313849289465754041627469807655632552753192536021834944157722112417303230456327311201939442890463989901270794231810201006867766865645447558423367185272690598051389546582628094673353063142120926012754622470005635803911599514324102303840661408837947845534801223431398210701185406543447303241971751226206766800652955587864024070211465750942321878678071838215332497971810454828214191361883954935302685673571627603061136328720902873044968857293201485805405138173912933162227080663392905950494307775033042011815789845387139527473588944141921652878062992726524901037503359975029723853855175830896718979055444267784168514546078031477574892529733369732957562576559738375156094148113701575221552835853914536779666586101806193242953305488217524224236786056073137326341201813961007679071182921411891703786492701621258823530213925230432011051409726412188449001547160479311342499114190139329596858423542691250770005974560970852184328416750396545742294542369038803623741865131661619573458468076226545587677309752722868098181771153185738879117424350578149533929606058387423835883201455688824566558444998647895424060892851870595102540910293130505926307679358167689175781055293327233095080525734424808540271496424466381840187547699642983012555831825031929662597854753295452067688970455232579681239932227662214810518610030836135376128897629106733175927699424734409091192908236743876961433062927604935587946366460918410612869136456769226554587416285073304966642182718613972830345632562013552949487408830958486904335354907955691674460624079282716891724358377763288708929180264919798175543909276230005132208666893293315337105958099176695806906204930027597476190704910717207561532282253581999332798513599788570846063351032318582631727922100584796610922488961357094053443828196067024028368035430426226281234662521890427761632024411564653243246024512033405175431166630967404002046804869793436248853183342922222968599081559773053178401076234728198692906078648397225128444791546212485611979217033811351047450633204091079658420869101693113229382780288335057495381834846236751300656742987496298313542974438726182425918957524524520669530840551818846504287117301961199365230930709735398606925111057601234984216223351025612153768393260991429311997635044585784395361838992468441412056560025782232644839049561846812541805667430470676520576158887820573324030245227636822867281119224362650092145062089043952967546894014414440956555776274343846149832110021745317225235858793099252405910161088161962592402088832729785612475271644397028304066713990942486278181066737688211099927288663196675470416165162300298337441652307858828572835858561642526806788649069499124135053967588739386456989234490576327625473257844602542481535469138061587565354931364724575501714490199950267135663812761249095384448571254896855495710918044889584351843792593038901064673646091474516150379310473488213660703042878690326684837636708633025295580742606395777997685125438448620397631009849185309705877072112711157769099700951529828714210217463529058423794302520751989225343920254224007382948359624421819704346577259973637908064054969461720077273573404277777207933833312095617718278920275013772752732506466458977868044710148950642439807279665311706416675498487690464297172640200758117248966045445117559044201157164783746672249876355448478849827653234168462686753565763521930614910192686735425356384876774714763916408335026425946069425277442737224118933677076028897646739112384091691110388756972086469136283507172769847959086360008814849932914654078008598943939544781926926297700452787221574116458154557778492568264860566103215408586946739942808971086557111358017463584095448778754298302244666892091132518192806258518205946073244634591583852567560361668998276203994381534055189955194518419961094469804538427753218835671134103162017212659982201028735142986656875620233233793325888620529699383241233091843648114139990807336757192513570047778583823181274127529511345132319009060792204673042405347882192781129552564147738380226728949560760319331327381749072946507843769889719877659703551669480025425941556656447738494809075993129319484028846090423862557417016844439559396852657360306142452845302861672912821585727713110002206121875641390993230795371491759850285446739675012840103286216527511216631847033103106493621653413173602990754741881189530304362038225557496509520775561347993986155316954633155315990487457930255678282038059360803360457927887666932703289055186528198229947267802547763004244777528724302519040832254310807393921009028948851995510324492158356997035296276712893866203521799474031600087900995889622001303915650820779564789429710963817400872786845068481935967460564568283705556827351473204190650752552964915880111244731167953857977687556016836188121242140489420088691443778485452662505816602738027444167285978410505156518546879268407294714308641092217848945801818652030066688159882108242991174279500670474528219740233601783294581200098932044109530277469825174344451852574443905050315873628849344186798954801125940748785603968711452491489363441695911176705978043713105023255571878694696111498289299177650011198653058881894718880790677332380703560860824164181348623230425849306741939677118895832550022432164600087185536819809144982132148245270261349569975511457633016089389368618929678387567643928511624987474688189141972162830339311367152644158917819015523054171091162723156173287304655147271086112561589259151428121698986128721127533293173835545116920399599538304859937011457026353029121508477796826181910025468812716380965032073095688240546177690488652893054233929699641164779858242956128120641143408840460650116511485533716308350829712444248991067941798163550194772010763436995496483257405071179545427803954818571192632732857820989442261408346083759344837724693128715594431979965118378731595540574617574930913108833148267934083193490542055215821112114947542815559110630758574711688667557145115180802569596375488250322982451280194817858596910934324920858128077240702395711623560934261052770451736746328075561770758103137279594282510827174786220606832371899699285579648464860123281287707337947597840024677186839659286690046386416218443070699554462927859082651451417077410051908415761483386052702923238025436908284896551212488320806871150569969231945690341223077777956876686263696903956850368636841533662139832784915944835656080021404709997908992768954939380948493080187901140620595849228086823661982175430968036590289258301762239356263226105800574666765853445726454443426110848688574888007024730184570027924261487113701780073000360892679165780634508150813586213631781722636196472299953953387288448120690138867585740706637887794015403439963847205723621341862645017272731277088311401274759058330993932698655057234826147073881769022468521125038806712627119714892832969634258941761625085598683882377386069368923154975192307592256311635598777702433407332529015216982241489379734198484941540694200039098406842424115890698497789072800393321968462577326952437049486790790779699758400355203360155966565889806446430146855451156977002218902009206852847426301277394985121942108988247405970915987378102958975642277844042740906378707833853082863318126647611873564676319191303959179863363936357498968933620554976746220059075795409895803205853264405964652992435028350501496743575314201556626913807627768449315625377758448209752687921376764831537266235912016682796156121186604277248393593127158938720100683832399164882980318050202542271728493625537571887273291657159765951873277765916397817292163172273395178789700731233543243461090485204610885061274943028834798577606075281055639892214226134310449469909178812997919358390432328260228429445903084722639854859539653804508265242873837722200832778786981834537957303924836876614132633709015199276603297011114322699664499521150806103682339846746919290828380491946918481302777368942090681582891587594539653663609424624147975656851247526102845390962355537373919703466402885037445789327793633054030251328590999299826269488700796262005925984772463207885507097583498877207717219510582888862801560257215637918675159638968915612191965406484550529619217274313121463150035269773597201769278597716074306256675505997959219605989562957272655254426505859437892961403817586089389560254803439579447180256360798177104683558068326988179724746365299230285346897148869701623147045766469585852821213485457748658057371345620557092689473325743482554457326879811005256641819080613905848394020423407012659205770646203166346709962953552182178225865517451895751817676815935112042480473392271555209978410054940697082177811305380302745242966085482234196243911193241098730660971409527739421497185540693568326474477965380454670549960282365243270161276438687670850828299994889542608643326005729443780930470713185823029637662828671759982133843121903961700857244796560367251998968326254508737439806716841008009261378893370746665888878968803463009875392226584995048473934787872808121634220130936013804522433870394828177415624391994784035603900206293574549825143693346281499905115518364253556086155559454419053064900964993219519793183994473929379114764140891085894242994156607975652636865091576891242202185770130601558642405088562943323179539648338255793721888820447448114826576028290109922568761572461704398156884944872611311724811145784855075031788396705413226590715498170890305300428461514848396492762024087144298253196214390434871387232275180177972862444899801924356846219847416335047800096940309989967816069982101083374241973912589428974260260585322067666491126915907726088158226715887641130165563291962506540338950237838953816984825191742194109717033446365772415937236144556388988657541174923471437895521137615861879820409477245769440148614755590917902688172052378670175056282681919825797982324015970787160596266690379053868838942524184309913387373496641519301063086919664124783341720023904005067394754411775054698895105257869149852267611967423201925768609450604579294927447691904453332257165954854715443374760844020075464547935689284714169568091090084764416049904976912362048774631590818144369573814257884214270306294302915176717620294702516456419521962682201085218867489296871899362134099602832239184661645563248187439558113545537210895072489834394756651310009377389679583914450453371787794568336398339193299545818418436740779142257319393768911870976834779476990468461312877168701097391027750315213471564365116660516221852815636098125017027811751799590891775363662552934971901680514052083978215382087290540075384543543082500091965529997351353255421155995521831509979917367189916722585003625774819130758412556458531237489610218356697610603269442653226814038489438335205595151803761139599586533494969929397231137048950803721759039920869185154709359595108448301898243047044275298660784849691253974808787295773516888792898465699265272145748267155688508323352597938506833000541309366715042723308222368720217233527321969023436638648564209671541792994270647372836046533768481052858134337997125831174271516474063137190138922070991789729243371513409793182095488458272373217659928332079471201127744401240600589107036947272986034951348505015644273915064817135366802745149546112035706652313247996701312219859382066412431513083469245641466961041155747711695191567612765733307889247649349752583363501752147525957423942374991322539352091905838370061229438584843541754277086338410977334818133480313986499004476497084429532513148424625610697736137868557603603057810944922740108643544906110210179379245363706106641698298826749426987999296066706051740670520137539354696825738666509893830494067601922952450969814734692929511290739071299098268240339849511159824865396805560418932970636415462927832709679438658484974506359360931915202205280848588027385380613552084022932000641309676558960334492565925289656284508756368013820655427225212694445170638482543684455588592085250739009092079758272240708195095771508796664462602934171018576231763222605754892694864349668367531809514736435586513430807993163297168808655285591951390534226468999405708039046769541458093248695245650007594998003345220173792724617636149138389324369496634113999654275979704799643659309028815877030756190185305361795182466689071294376991435172976483215427704493516801035143615708513298738567704226567881353403258244500004250982755967134304850768554971380898053422119004453164077592373823168699760621886922398946766581335132224123218524694165598651166010952305689233062783727678300612599493048606910589893413879734359047856470151355235090513638807871383105632257274056153130217427102116635103036515254658119386083628532516971805390326303964555071359447931415963371053723669158994262397058573987644424381903077801863633913517155756043742875856607679238789645311262317700721391549809685471212518553005217770952165698508818395984483708421623163602866499661142875506610624099997092603259801506839944710153558037998309047469036882439137750995718857575053460192603211412998759134958215573209165273045065026851525322128937651526706562187014235251413301124513661023257580173657855281889471217972398834225277224402230576989501934861841229975173193940052601155366317165270936386794596104039438602353981681075227890806771629065415657032706433120229938279622191850504251927971817960949585975384518880371788189963621478732148761845203739327225017354554784495391536081484444717638709437125225308272481390177416728232863770141063337245727744331946774937412354902418492623596644592974135444525818808424377875010639286953055132712436493108281559800448874791320719682100670715082786161835333520101814426563260416259003182617897443428310237834746346438353865359915414742958147400435586491340790328471999461617492460485496338123835255754919097110223793376823546017777894321989305357365261845167258611218100433897984174756376436539449871032765060739409135492628778703058588956822874423816466869319186883870402646800702568715633821157227180625550007454145806961517780841791868082419994913544237704847898831000735679402506633768223612630554850096862674720103211474142522104935038219340513363384033173383615673590183196598226099831190829010456080145523047864666664826895384486273763729392450538787563202309770907573447738340087255974032783366085569768562968214222031675240464292793107177015952204791436793058043785421434832583326724893475208979987252402769050268765465016744009884368195420522726723991316328655279014423559899065312961562828133819291791609504761596464791066585532076705478509656484420011290059767541128780396205557042986516518522323541485656323912950109644252673233842102348063406962040640219799313658490923781154515563435159087887407050381843925963031371796507064597256189130229257039031164539175091249750231164336173923465563860377333809296434796483970596675564178718912493245850639512137286391069829564097761133908473537694800038571825490377129014644304541330079552290380638339758856922704034006941337954619151537128440287559354111446115584393240065567786531940509793943466288109316293537784888082551684443280310600676510613825877915814503295547475526509933598741315161268714589738698870451804632340763568609896950206365055538050098560893642357105488349564546405532850899337735706938288872135381973238232005895163642942956451711739403645116194736775440349643063788308770277875149046135244704301031754586955597015452788174836015869198472721581579627878865785163482821141218975314622499635477791991554618464613269384820993250519238808498090168215430678255670101010260964592506325673113621660816458683275108036585154541372037431946339443844784641470841344906257091609141205032834919268665405040392583491140369203687402131681898120249131569008193395108109637950433727893123348080930481753670171466779442680029130349992825301991726366735610775660868192683303971605289918776284461102317892368400540426563573914787663349856148946730209469803135121410880938306061888665012894557835448937795922253514467440612452334912334192794055624938879188804837958123595669225454028576968487815630741874839162271705314432976694749205475940950751883775187780040978712871723673978793850253873683710630261191383969356615852574418394763885777432104888263575398254889241485089930815059745992924661357861661333024535196542694738104719596763287572623891805443677914453060234964022805523583231497528051522671167127843232657128459716581310008273539712228230897557679002025581179654452241243340382750211976814744123171387270800677981066587231609443623715946832495043886605482050743566526656762682625412684259148866534085943099032977143325584662806648547277649992646662684354537484253287962261331695742611084236091944388478986184859786117900832205692894373467325114981346642373358076227733864182706835992763619848669759839995053645976202570903788400901306637154687726681498169483537572968247280356685874032187919803870541601283550870372697004016049951026845113745634960007899254604574905234634573289248522643231296583232291730337198326429318701268045233321772391733508175846888290216045318086308609754305938482253428231950962755729868799325382563428693687673464038229344704078242916287717633828512926606302330438870397371680769431249251949968996219226688134369448584889592422393273083866961191079689923215627816301543994645734526924233417730106295884003852392177901338350731202120880755668568253292139300881724722679250066479152034800661308581338868114353120923252309817703138739722647345426288458783518208699353154450241364760557077461298775974709337250905738499900071390543641834120287173928300070829856296176464858653090674164335094419778797365271337992641068298465923123385307555872324876558294539382624877596606920542605598914586268244120948345715522783826019416679999653757806088133499606683443701985307160834078210149563932840552678443016316013754459406646664456702160389965179018861050546487706680909440727995842319203156982022140877219660791708993808271020213588838074984875675134056906398539924757918764107645669599243166826027415097708330251593981097708968487681978658941101442875219693536762643380490955374421540560843717214447368442643955195781778593254968561760679256728364755951501881590269309062721108973037518675423256956072579904696036549079334210125947297903778160136339456605316591940180487062172388242109945268073148118875931145067429133360975210392799363886031697665971748600071886696918006955539293773101521051602249183718420022330628461561714597503271787344405664583684223016895233582942055138796790084901418394891171288624693365244289282700095090495399423836865226346841077758145787504080497484144334995298731075224101382873269151676397583397083776102759180102984497095073424095534998750064574567527065713738619619286184366315667989435673089522701613433475052861620480553683228259877573286683833896738893305802773484426703808627209714372767688287221561102797048738857515320712068531269861004754281750183862772881868901423937400527041764019535209185272303657304750652697756865432077580468566256332959614572630037789298418892244682715671259082332631949210149038466303993238800255098817076233015712894443528506522914881765740876273750229740164642881811283251905694583603590524912433663743844443126844288108473509926009830546202390403797889251070951284025796070672795593537703613842965408560049058024286751561383994042508794090680646929004894971464425637123082128854793740507201861232333366207283005020043907161149660905310425786255881142885061018125269977080634749794978682425763105039249765817250020107096344976116859165868313629787933010252924744201045796631674610764524478887714436897389609860842898562723956950743500077262032716451405699280220208230763524939257982299746772815682237645109724189051923568864260833290934739305952507267470359884086479888980848709470643295228509447141139521497959652371230947533723163556315761602899364086472417205490175392206526415342733122235999480243707145906530114475885512177436450571634301631436242458306717443065186348627047478460685302532710571149707482351413260216349114214052200065025994143661750198361987107778196243957938700118587846543922789008332979252067308184804203843956699882511710338648598419103507987947167780230438562996374028592191540451053158761004241232231293528222778034416995927619323887414203718331944895330260253421936448915896950183685576760729620356578887019888971332166380190307185069533499605438155551405808151025479160088965417141837690408993688651746671712727720098326684748569586339231018390707843143292286352668642653535064662027209853255152451898602801584730275132119226427459252054401618501810481784836228428222662207181753475022044277113656901189619374380201647022581166096505042050342872543984070285752638386929628756091494979245717717961312917717685687037418154258975451377870757127013021915425165653913926585415062538726191832471236390905411776717108180705605521296561443499693021537597924593550484469022559931721145658225934323522202311626018103452212687731816836069198019551939273072284855799630080580065216729619382904478500299140460939982963827100480658546812030023151571127512854830783895597612095778961297418011861949540246844037991497160252393251840263178358567022210380126053140270112522594264943505454903275166745512928085963095386540348229076783683349573017343413459915802168649736100071129165494407333526078858958069614691944957087514211683451524657633859779340182862551396698995535419107322614018765587451744726906829410101784432099888575420050666397986006130091231490417764974225918280632960583720744472822496935847345542810670370115860319892362153395648314172226170549001623959676540715222183405426957954742555391343051881300047304840913585986280334350632273681951251945502103325099894934544884369054917703565770996499978460874992823581255835649534803476197687726709906311532545572764163948749385449481040218467710189220268266448320736762442120541589477858972730384257405616002453546458195139796920375323600363691689834847783696686006752782898743656269123294463842278749448066175863448412309071294036329178724492603845370603698977179531440754422862658202754922907186981602158857833218476096667550250858069770818038672894509641461531104723881573561595022398031808406337076684442764764581615416129673945278889243537907664074809779021455540344041746977206719698030486008212195598370042357764100226771546093352693969278335363954553299953944381810422658029631447925988532381221014181242495045914807130599797002365650696313178512359671944672961328537491711843290185138420938481541284942655576512529605489308886135552124710906090408794902475195174183739456095499720613002173160481443071151731590992136468950659288410415323192706247127842183489173044071600875991180931693174769378938299622929992496495512889876286674527251294086654987410492704316461722440490899107506933582803768267414288282893570722263587629933138342588580941934716638817885439450208092941138116908533172033770533272528480435784432972183544123457500096395599025674960261334145940532136524269997318216354203206860991704154161002908607851394436217975986839678137035707207720918441060975629154179157783929856704085017611827205284806671514515063758925732112490165561243622462731860886302654209766028907783952800744909766113987370039341304190147988983898167148399428648780155953403769783872360395044501638668309816879047574116583480416997647530990696376937124521526379310837409900833410380310397755741080496021085824449878357560472242031503403468965782366552444337290278067900919362913386737210481316475440476979158749045335719290485948089018154658014282800884889659522346739994334271533316587013794816703902646696617155174927461793063947386651172208267424582836399892797297925955876501814313294060999405669227229085550521372513161065083720651015956580724655287288814707160969641609657191463752910453058183170235481467943174542706553921944721011731189502023830215994019322469696669040675007218064457221938086943771381793587641730379122763540058422549942776686732550495078771427040061224994976916828514254578483974840251224119645306514720611042339354363437927742954718457410029738677516788166109053204505940346824865846409262386613511988428531769453895428800932109797569919929577846839229574254288314316894957467588878989145331946090362956280420475062653667508769251005783053699726515020112987833637980856253877132532572974819035788791979639075718037357696107086845956451528153476676224620151621000726449088779617115093235459284738441162973339748889506444865652985326078185922726109166492360071672206739329560686666369735314214388250350585149590496684030933844430800378661387503672565945272303150621583959344799974551408033816449019435059502660628879731751599926020982615520259717322917589300893995945749913874550756838727693874106903288399385437763044634038339844181900923700390576276428636959046932944556503374361825322702932463339646381626153061626405551961822795864880001883540719363569113718307017331697040161636605381924132610818220937962352266352411690748762631419762905102020991296849580276392837575724666316413403389067435530457728937201654981513610435027579644062354381713048306996807793031625198101025142362115712021339111960719141828055336449344667758510269710653265050776808827385077605361806763765325444851496079532334023054265012776158808195243704727796599376627952373575402330202894230719745433065016102959069727800208233007188471159771561243102510629241840662085921512461229816084433259172316772448360070201968654162471667837891296893604097570828898765272364811976909653628165873668972837229252441253340473152720312942889220488816984784097021545439075848345181013138091782634239264749082914263398192773444877933691219913998030374618034769270276687601735562405649699307469946050409801443547152962245270660491574600053784915245268669869625581470874534988981556608648442233955985966759443395005880464723479437906756806268725327388118583104116398895037853419431195796472841056835836917563611846725751648094600616389869856748815135011137295760759194784239862329151524995011355413205601618635931509455908466844092204166975907945219015589428764209348435339703621950379360895412764858670198368492758111037389364093449517550186641298842437040821609935237430186015003128451226082407672309285556954697031541833613812855547631023780509226347750783491710284498771516089909361292366541466309528769996466640794891341798675421048179521770213955554712433432814110453299538360439187075378221133057563720749818476599134243345409254876970941106976813678753670858517653764937174187966561213418575112112127995870238386516456177029648120330868557719149442630668340684973502773178986261095539418418398161498930658459391693463463763698176653968626628677215020803295822015366926727757823091996100349622070450408583796842788435264014839143284835807484553908718072961923246159749109129908132725357726245621800362597289188373139272990780855372790964852741497975133270329078527354388260393064924770845510947792525151840512127647885903924999403557949502475667614789727627280522119376341955155817888978214424071645502630751389930831427011796044291554943094412100935194390602629668138995704320219030035690911162532118085273832038076114924730729319392641655729786323387323064464175099637114591767864334409024144954223767366592593862260284074076095631736289664117775869223637542196484538816844063057526025607607711523829532865000495691432157993018412550674334204406325002697841410072037995778552342917330401840408740031468020500631240811388514742700361887461133186984300222525155991986660251278690585477970520366934435465907139519566695438805965202843771837963525482307697002783744601675260287425040998745612503144586232885774981556835040820438412000158295746220910554101097233137175700462099864309785296128129774613302873940679818921010474654599207125604019781440241824342208738821872540823229551957387564151739234982003186325567725504852036105313755070293226405645460393970265018986976518423735188849346877855078370443900611132739864912930065316460236433672967736675979728592476987909620967063732265351751509647701732628720771446711348626052528496440173697087523749689125609718628276116144325419523529714201508209552831014313308441132160446959653286652736125570946206292382614046507365643972772897263028681762432707947539000776225070529373001511732546559250392055094583879090801821943242075184606221570816487051672077775308538944654048016974546467642359507735700981311283150049213065102897749146308132245077586017539508471604483233690244966626203729021187699187809471450868712656357960394458372616356633256865362390959672916514232996310846938617918677873976604744164726015524371616592288821798537828845434234928262522388902782238783899898390747977476477512782202895812094710993956309759628463462971994304724850927680649902330365813036035347388660357101691152214892820476188264396326262118032395509735026733740888026854006248828976532738836283398809264894262338962963534031480131651554730878961291819355773721819039576904984365775254886363971232733294174627582555941990449471090533307846378821254248556168405603428622425386453932331971289580448697487830475894535893974545705013561497935738850191786955236318530349865825123239163855965145106017669208203854891995621192891253671355237482964285731251494171116201265952966725550706819713495244738494827689314008897821974703401087642280199305581486249132682883969020296272281276641035227789568602833550126069569606450614912156244573595112126053960412143731855585411968290105885345339757907811059872956650778166149687071409267533350542480638947155410483027085816604276317254176268053972366902573767934456707203413346274514468077968555449745816038047972492372445146820058246309208167624264914240727452970001598225719944544178747540132256631183234408811851663499934677739568920508338801661452942847654995735307022947099377607157626218773814468889318806136621638646850792993920233380250825525831501312130288496082990259742765497029473635182121294886303680341056719635506888350502652515382208480477283242367057545380310669070645827049224633904038382099062034767629544139980751068791808843948885288486552864959287850399535074162673476833503834427133975559134831024122774787250571364052903785646966644293034825184970079170982368639139561332673355677107159886012805371861240164584276365589667158481573786678265343869022227330432666130711719282777159071882335103691797763062538168031945059752678531195654517765029060549912460364276841566075522994334396995728776201965308722164640059158521340523839794112575089893874812246682765491021494785432571761778102668913238466231363376465497233010372829754926188634184176228987332348280377256927156446922835272557619291931569772443957035124199154010450624982513338226502875288887428003227481292855751653075036318662778671510743377671275762420211728637079313565540293280241301309084984333714086417634370969630539310470961835059553061042349421748798586892844191414231296508806675648150155341638742527960612641627476630042519875212080685493952416001008124744499431013198715569615971988575938827087513642493599815404965958384736984964961195642186694912970063723529187989613350776188956807478425875445621235975960163479133120392832438323062694014492061867941281322318771754992992063681961293709647338991209019848114748671305471833492023158808888600801325047045515865363270732339907037203719333851698372467506178290850707786332660883051628004407886689211673191088867239304478771229524239782773951496076720833037720116948859878182804559502121962616270668248957480704155512374124931123554910771874800938726451743635240711239611516141997932452047578576441966218567485827019765961187888326766951512417119514097579460000223059673656341617098266354378655340259098398050587563147548641957487223119990062434697457896336544650016415354435612537414161418168466567618649215998951477625208105857902785358670162786272584169500344869369700965226240290628512147911225294959018568097736836655563661436385002855829291288505059704958130779526273509616281109075419217563878264645352679113538046830082867463801942604249345347957260250868768689023464796441622753040094045767732399148843923266079256470693250167657826553595325136311237636922862501928067891484407071866875696018971659963585439336463664772391135292671406554747942705368091637729679915521560380083153388089917790007746982761066682437551448720342602305581153064558176380435761062466972076884392067346111558485774918654920061208065093575328681778586933356047069690265378941204386012910026119546147825884861238601473405957925430615035147495207123482808606575645132276577122777717758810631092101977699987503668591993826924138496541290787242525738438189377163390294474962392611513371270306359846070453777902450606683286036491669087701023980645334682668695964642517979177710120927623635072290933134365948157732505136983521704474919315580089346598938881879998822816988849464306406776949323837024617978154717268902660354815582360965110541453052986411855776620751033629242957102625066366813888361559041614835471907428576352305119654186928903066448098263505356704585434003689653106194951755542120198861627376317229590415383199021187666787097551116863739529533352007713324604745980764520236912406017857193293469564889306254316577531603316522473025717581324267389758612040452587034617471580156654264995773750523593012950416689021513262396490180525864775084548376332634830324257673757522595634543369096552418468921777886366281464830048915140841587351367222805391795496720588311948096702437513692817819669153454635445637075261267681717032398358574536698982859317844404533583776432068144525949679393408808187845520270221697753475263025464670405011440236164471864069926376861276189455985964705953169749307002353721800854756488122508284360734737031574636579219502148349714180148606746242060661958408045831967500072058357263560020905436981985000372231578585444854972288643545233363256509626241681164447179839793158554301751366996871322860230912275736705399385194527393502428152330576175281169206462191976644026509535916490382545055693581308483464699720425346774874388952996222524074453387955743883686188195541297718460429095593823490208890999713944641294286555456836369218583316997721146052625199485490586638348091589503369498587153493803512038506351995873539785498910804378154304575463760227153078764813409806931440395031648929048501002045259398319872382458878684232848135621988095026172288241460365991238121405767831334529158839186343747838181162213550689157641742567471978288425529896218299519960663507049960129131529424644152649804494431565042180425254197735348152759799403833093234748465345281240297471303841532249836983630567944182100154219570104361928862467647876832353029457726163309103298481056157889704464381024172663703791289773073178766451812966417188764336671342894941167529751962837811419482011933700950807032978470056158685371894746321463952060775137231078998223755892438545719249258257801074741228483800043239341338432337087920828434245841152949034238920207294909138607450244956553027236430692599053011260974342103245894538801963833274827636383587548691461286392065298857085986492836738147852622454461058755883525267464484944183011271028676501084696929071409403607541131026937526466582799930003431071429485401622309936029720638414574021118693647036882219325221758291763148558450201627787111208419911138810422448093492456345768323094189152568817694348268349471850167647895278231306329473776452056435898992406579835346246944736935376981009224215207624217250430933611163849082251074192345273209063293597614150478376966727121859652411025927235588826863480735479620747215600131938256882069088574315240734254595649186912272649929878224522828908824947673225745301785619629016428738395017440316901833597679833086028769118589888816628337832709161672607364016824362136686405753786105318135688072766866153356763159266910705548297783589869064980044116134646010263173994601138497292205573805836817121351678371556316694507606469199144220392980283369491874590052177535493724197112830719496424862743305834855055354398155742779560086896810707594849672247525670739439153011310693933299233587737420022175026405558646989506696018396162035294827165166123720346856979577913303647983578468009095651055059221592685260574321701620950786551211598038439902811507619448818268082147669657472953697144928859616917661870984694531053277200065226870946998093610658489963263981799207768898813964110535808628573635182569492719306209746396136206915009798217695701285343134409648292481857972812596877465844742306512309774896419025844449971147942493200618229911366631522819925537306114282279577149293902355151936960185883737564808989171694472665692639270288365553310323044245361518186680632800898176159975822081863342479013049311664989324883324155864240857709222020606324058651192139467457827613549448742036950135123564505128818090599349002540606207828514053223113569179931898621328135604533886294293015302873322666896537885012721087576344408341354943725818123361031167314178615263773456479892400545121467123458416842156958877828509675906931529483909621994328680032683354022637211125628255831651325977378616434514999604166230661594690907748232541844077564598885931503606697366639533371730731362941927619082650280616422595707186295178527631818558214885372197725811105057637116295788007190809707084206595184651182991795094458462823395215276400244163039201483782231899538663108015182067124707743245895672534073720828505773500028900225578333286091664772658115963745950901995019078179195272895878475863411926959224598482608362118104379719549505447375010745555954065829489399234340051985940669380060537916008567739554302014553519569002312081419020535782112232566651484315409889526066846923153225868640190139454171660814372880584396849760508473985085418004269834530508378662050248791181285763504767819387443721940843413930524835059038126447618083865931733808573861459586508119373459292580212555637954249159216164034798071474743977021528190078170690532714603903018165701469301148647633954006686780180557249708676617964128423960326148564784529015480623049353055533032384159549259031627941466227644674422197338854395106501605375937972946878056198153655527517245078553370476568694645889357270732789000432129568833951356097980939101855001461745877110448540958712087939047898517773447915464243420583648976562318445263673686831392274945491542404968837135281966106251727069599981091611466668843360536077104425308433780862661551326602619457497469756360693230905294069851322695417773896946129460147895447468070048777736742184161488684343552764154030233457626219920425974136677537194181591351001943548560056028221294801549534177521656763924752366785216187366020698884450825824105433229565286834097639941379245910542856638823664297763948736651027546787862066098406774823422331097828723994467069872408257217561297543995112570716648449802510775170834998995727383381674196100612639102766328345663803398900396396799498919388811756353069736829589362453135226180080806791245545452664422100551213466636844600067888706632098825277637745265430542428010357798521699264919714721979756956973757194535248317953607910956922720317728362455729986612797708394274739887847556488502469406800321459885350533598515385472299359511250162018537971563437296877719866108468921475261552191299936297273757769809839722035344017998671798622620720694926183150590898902008552523640401566119229031457790933665545642222031971647963399870547069611876118471149829184300158162203559116847772378271813183072993736828184416249752184761924345261440243177519607384160830725256296542481931971103544270528852107262282025019639340259678539352801859446654976807662955197461937975233196703450333147203980293537138696541940349752915344422272767107572792768277100473553852210272794740156628770406557755891028464303607026452056034378030313098367372599812735056347487831690127119707804859458721896697538917580740506900108409304547372130479573108190775047855834445624826366973692579786661695201430428492237747493983607431016132392908535793538009633883844795741236175604345361209725772158929544288191682877618013493992814320260519164700073903608975758006582862184898570054166226654431075616747876153331133449246946986121143774227247997145099353114828343068389454241892258628293264268921483019396431970913891430812882213237113979454578141461028560128823663072491180389941603549901338807708806810365470436008291556807996620533064075926218166781855658878680562260164010373469888324744955691030654507289451506064778321804951997390801814269057146105255782560023946723398969349854040646684931851190894442058649092013092334260909788021487015260613102046934890027311157826091292628023643870989720931600932128030750078136715670915898733983556621895853733285378830593762556441519102194704478674296549073632582933880890253790648046450809226485988819328058086230929639505283205266453881424928605257599782145409036042521431054369419466740390542028513708549288692779746901214996330494453100013022824915388355136446074179377352480947481818479239782094428338396050886310736560509215382856241316669709889331600111113796148933471021658000341508776293301877341155743291754958335943831252452076919792561918137701192708104111375405884716067888639140588002723731732288754419886140381981132140552399338323316200168813812387561963852950931355993217506383897234935232023947628024763345635227725698966257559240314673159759121799428065013430688207983830644419362779673548129698112399888028451147618825304022923749699750984912912743911662721375811267861462989831564067145793244548417900869909214248206717815123140094304938695892695510472330114453069687292216706829923446077118260324043418083618500814201645969481301345287359126206857102965334257418798199275554909634572266724072064562650209543458890350278852907219520220836464032860090039303888179610494406229452059980541232866776987740357649022668136999544941844447683845434527168809902004223957791537106237245516843358053673440785823898231724600834721657418645044916045255613230530840227885417744789502917027502478312350612110530735390325872919480599292027045270613586449259637601916462947258676954716406652406509279333798713474154315019566942413272509980556977644757017654980248853325489537223780961310913338345061954607777390676259360940021605671893024124062799984018476107721189307573797220895772940088366485639527964149113306683120309680784776046798052815067712828739269529731938935092020719444000738147293791858213881068234662967252627391646679166749114158621135068778094098938718818510534200926853056695524277783717918269023693544081230538344837838179550996943584444998983981577306007017249816215980862193904664689403212694767064431471806293298033485498320044666870095957056746207536698936858116268908977278028160626006724109686981308014590102346876077228981378777179828403267632950302928865238245746085684639184052189606313292824914349157134644134596019216520162479266802647278606471222081124654788585099245061247492496226599102418173988770846449931817414133556139834880262791948090673147383612157632694368616439457905694282352329825533148395383690522061140947956447135793078513627635226719781186566452568316041965819703229164078263024701463223499110125790749451682411365151175160411372933875857368053750894951621922052427287354813930948403137586251743773224329887869729360537166933554230235754459512851720976806828895576800799280997192077383832786136205565992209601385772363361786357759461723526914014924494230967172604201644739538269259648782467918835221202058717633207629363540517415540334681999535064058550403362976364985799108808415931594431500588134037791708849316069568198592436210624874820110034396116686217413193290716368591082631147311573200596868868646103331929807486984111478747588151455405050260160042313981491323444281959894890331957147242037197080983879273377078279357906201125514582194666169388457250527287402275457974069107722125119843302245436278771223421457946731113685439329253943871347849211370125862874156850181796110245715342869890207780668369975159426584812493683278826509452553441387938335178501303757834069551651693236018597435550032496565420408811805280955180639058301386168303063610509822447207188831721244252573973472172517517818115446035213269665267971052150029388663246916564262641677008791170663283420310739607934530978709487460288979334661215393798524646089668776460374752912005584418945034638788471462446824440254757693993699903616202168506263596562174304004146096161915653975865838563808800515981768993481336744853155421355190186454562788467541666449409884277534219498654633280479307295302994017507631353823608315914005077331678274523551450691207760349837072851332998102464252665861373406313332045102036674215709371060654993475883957126366130317546366638246940677071136961081468209749349920407285155754772546714957769182846802160580191335051535466456602480069714331601442366816956559827514639790118947024985800489636831688331778895167349541949032445154961667712642976828018662916668182663021834477306097512139101097629895904099384743135524064140905801625973559128218232859487795579666423786390239649727273197133834945608073706310625454807613680562789356415046467189077516451575482468033852716858451339358771692035470550680334351160741775444238073852432408169312745151701069529505826607214482709616292072478464330375454438561609981784654060154381016721268357080742807268602431408100464573703396545943313256762285711792786712891740059241888121706831069193374699252449468169631389027637909174582273772228960932770392193529135416364101563632690178699921216498790047246087778572057879091251292727915049500414588463045820523636962663771080489700072655814152085939040442223809972815349437880142567539093456402565490645094634676709439604167321231928507564957243714400304525905940786608175083358365811755953618223865790337157565408766689198474024501505330270673584358937885621040634259603812366792928604110003817885240783172968533442819705440633530805861077848513248233109561241406409679109310653818976135251166728941002005700057525421833296472442961591808379874214551194695385963693741908945431745465854994071412264228509876396485324346677579009288597044338089324231428012675353349190038614876652367274689745970601880466312253540442138592511209555202250704168221081978878547466495222163572784555809991791201112870907896270071209875163421188412163269376799666999355609991047422369100742422281245129671193515927392609069837526344143245377095312123473855397025944041581756487788755576909565000030192740733688998774040030642553530963347760065825027511929381329421656608029402713072586851946189943037099188988367679170764602051412158493829368231229515317001021516966853949435388586259239918830680520542512808839825294639014647444719062329187088291007870581854841034400729396133067587887690972580369281775872662170248728102454685969819041469683072974203193018750670968589797404204624024786138141274428388092189001423564540518560411686044759326452910988652345550216499859108621044329359339698706997608779339730714942805515860772307072113925314136032814633316273845248293562517636329598954834653014788336321720742145477943561617801952593643162184946700112738020757192254712521917940608222278111496275109885515506582521925384888604612399414239660766251280544809497480029694090912498961035864185480435924155258619287585033486108583383617586539202508531380463610757388368717269837640433497736294095012659359938868167288138756224108519225178262340915991553947936530165245320517886925295249192106523922548214510492946220109576455097878652663521921974359150280575246939224263380800325856803190299721483626818988532874150805769362038823176497500834471123893189422427350450120599344380553872992484143804246370329052678220223157343038996317412898798104690548227983280415091757209202791793626286273275147527911130766121928681145130454253800590923548851249374530389239322346993320021298362199721459906342092891206573377750945431734012085890085816326291612085895229360425703917755416655756751143415618238350947092159080828205051031058666633696810929656309980463813016826166780386630854550393067969459250238468354051869006787765489478560191202649470679187581760337695068377332712705234172768640067794748000628608853827497642568020945798815364840627897300416171674841655772021097323877168293979151067177735361953260091122940643345494156909346268274526945247358772103497244743820817897252509242394302621254877489686677467777699913989908280766921695948853646366947390958603520491680610299948641919783927833514591906519368185516458727866308910311440397463686132582138524452595696788706618691916161805615263874795420807737447975930075185554528691920397867729572644255469795271723464472567485561936704578339953992224760822838828104864871518649453518222910838260079542061219769936286855833139751541178123598854140849425047721237201738937223142395620971489280456650113250011287154956481981546915696761467425413764065730757011266673190404678361182678523431676087059950770674153016911228070420340865794260202563940102443190866090026492054149615851105637415333129319240702881385984505573840642576434707504932197364908002363340267001851719644578994292534342575929818353827503691955227648688532840057322888471104804992005003963329556791283144799683477357001698594711702313801069829113225313722485105328342373922565887201561157673421803562364832861570899331852105286475044353084085877068600896487514332021391395585830550277021539841817770749844223856645671906612976062101158112385946786598266076324188739861158015776857038071689042762765642363988018362761228312821822196560450307756662273207521431110952450031783726963451297445430114084790969396999032477188232495968339221139337661884719204337901963048024911983215315382027729432727680859739231572109387485831468661203599571239458896205388732742545805548573898282803787739798505599658295379951165352874490866665226722239804248792984777294035519723701892044991577703823723292432422248793175530083905762661580286067399943775573163996967105764128441559525347539269179511469966128177032583958270318023880082172214077157813797104360604267969821593032383712992068734253773455405894666918375149358801930014686785584435143963206505107934538590361007711928769067832476001961447507079770420901403584154755863909038072336313258734136543872755832403758873476459650434209147637328604448876649035624417963297784622460926553279240970547551116948706901816686517421205949538106445150431931828974373139149188531378489299657137990306106504222270588225391371514004541368566412985372922212848336205677525516707710614946479817201812420116020979282925138441711794041546209285552592458439899123200815262023747481289752113021007500961807631931889170171560442395332944637894356265949970450380979410676991345254673890679811832845924538573608104710448545588921781793375713943210638956870002155706398342565564203411206165349969397106001456901141088438326127106387205793726191669740806979595986567920163350275287800987013268200066987277940778431940830743175280386963318630615994782181105382016226007200180613791386618586257435298038411379349173536293892008414127942006560078097103660019411680218004384219089980611619028799856895133873408728368543810510404755947894413956681953220045231402902722760079922173650626404940672193049194587936680157347173294144945694876033013173893668193494008622013692324811443074030830182051709613676616386341861888908027042905226288598485394423351692307627848345990774674919468344182432514167343799871268400869356657919536948263850160619331523171430602470754337128799377241765718774990252637921916924684742233876769140142261088872673577783926283531926419683890767809747992579925795753572399923691103176903473652906272843876541322319372972369631574201831171768513676714536068426389028678454859772749241944832817514608237725672200074372659084450913708873341487668784646164247650921470971680665926926998718589100783432448179405036239754840858769743044098885203632674081750586504728439898612495226287012876921608641466983800054599949798955673010232915053566001437755338650673729683676184114984190303720723035535480338573734456998679556573463476885017915423968135746817789724354348273440299176367655252547564756187530145995477013295235552889088700015563142078528834207139927304794294014416168017681898720022096640170031490243838866402703243428839645936437904886861834550758622878401133477953741413186259373038466462222778399958464779364798942958638084028726079035990091913429377442870406656481950926378738349221056655360901206242549092991605627642633547345574373237993101769416668769127288552864941512865929313505002495431104342615590919933335244007983366097155781091965556588778611254302530037935637738139930725717323627616615479824838562635578070695838541893015841733073524507625053548392715170565499519748524197869676165386666225727840171907861406237703508906080150232266638868836337171381665542835073701700333975020248665130847537415376104787060023331790262829696617667682127755366638721914604462315276589776500430955295443324552622976962708711692161249722133910554284291226421358296675088921770687976724923092689212463074084667948761539022787052069778204084720666250374649834040801561340993643622670818165703008254987437847985145033742751808379450878572889808691208620213237654275567484406386938516888556332700483031062821309918208141333796973455896779879979998369499518854966429021640585576524330036740884966358620035904928527896843474441019038625744213971736055953267726066674706426264523269839971148573113349313335801614619762856097320979096392165535539001513691718887888614992738105283440529153499790210438923027049663151953661245242932226134004679564966421900895017239339006153595362196027208956211882272059450832896449123755493613669722427082114880684762688825856974842691833543218598757066963245013606340297736520404569702160866758857011232129120308782915928282967546488559151308670821691527056357875653619273450714057289217841275282608358247919246751656501537200130669825653170592605830779369899665373735351795580704769825079214030753162678553830934650872900319920851433970078486669419316520393391533757993188182875648884308421626614600038172704796890873098916002902696562101894307005204235320762675164227416985779286386567420565456882538224181221240081406811562435944968098285088272262974213686161468853279607614017289835858746902823099597494519996556538382006699265361799918262079889267432808156724410336369241293240905439014794444544198262136660404337378577132240152407641094844363280634189610531432287677773396623576869305957784107496392664332785274694805469662330713408636347670982931653120128436735645664256989130602039492437151163166874691688616650177544517190939900487225837471980340672592394584185786183903282713330754852093954571902442645651483162770601850102138231173312119551995440981110689745091174203589207316126596302816839666829324105831322587595072194020320534660700500321785086212660800385898858893719365069951337588034103277690085951261865364533011737679236152713110498746772636339022073724557071629101657705855560893743082320651170409118007559571456070707262913614554969687950564056773363522865978090058696465607237285375206921890134069713160247171009253167278302668839625730038956644208680353076308889028883112228066408713249412691270053097183507997977102907401807382501949697249286631632352910926466870803293990074769755898000504525724748630426574765056942133601137525650458458580422241186230526219508088516157962569343168080610353267582392589051018605211666666335106090384555002104681525563893879948260977195556757990567681845985228644021181897641460055203276877590384221628454789697022447730340773931030029715733189408006665101449001570996535436876784976886022171935736426176274634160274366532515440001385440007138357567340623082264117243188018065920841760712778685341668320178273233066501123705832434577860605212138404567040839583555380162137135505510481406126909285176048988216968238667661646556815266544438215909325275187735716368246767167211505533443880355213700303762107122479484986916620853804721392701769625866277816053435768605285246022439630037524504297388344629568242361321062383418846927365927026399948771826869851449369630765335618921931645953047497916737488631994654862057009364846894672681513500513396614912360708212159660820915873695584484447727991823803799179797043548241785152888538413456814601443071819942277970974370874502468948416873636984827915882682018700332776850302489754477353776408180493285006190418025104571818972015333210243732128812966559537973853194164888911966433121239281286598142792492886827048583529313256344242375159835421421729617125305027562010041024219997529252089908376974287919235068301534564032936018165492169678592795583550006852620211275203636867213400289074545020921204631957533831338075576491305625180509976697473085909782929008280326932464506729228783464203382949179405698176971604205382270165529394152284836080193972026869675231372873118413377092950666117818411840675016476483178073921179762180599751244705102672189334826613043303369931222284891170915016413340959960187171758387702067549367844483777367056268703168121262010829884783760794951998370829025797998119570971093285041468617826810120258448835415412730511207851966699396496167367464795163657169489847065938329666131575290455945505070049758963304569471086467920625070857332899914786048855226753762802833890377432180806918153265981925213275749842072774417193763753645757570222180620512462449053945143377145356525040781243270582335193683264866016885608034747009114668558483519075942050447774521166965866916450407663834003144155065745783587523354032040438083517536077785047057170715697971031402165853148051845750940158890527047616738964118213853731499929873495833777261291831113470827027819687019027743040200221595571589236085868747375419251632734084963124224564203014872715174060840563059964129691229697035465552416802816167926649826133779925334242160960169380945311310597741835719618906586382470267133207104378551008334404731496386580669548059750264847835649555196676576038185677053437748331606183947069426138999497483230071271140370405240414888236833010147238796155246048828721181462375711997477705377119252469310223875304142002369652109401637563408578028382593599234405268822899631477159970226409207432341437635469779037930718546473102512097492705196193554626639340835487347558549513666586195125608988256703205992128077984730952342189642933364187360451203980951927786162158973697376926144615288351288947624905516120035631505686803430248600972164306880353347437544436131002152348633944186885141251572690627973378247759960001055611202215325498639099338494534226346429416411331792654980005958448200394642223399003007209610059386721254520602038501793785392432994214918518310183789260469006586411765337919466683579027017980295350984866054357828887879344068226924588589663405409381357509368436321359911732601407811414045911705527723072700028933254163450832840313899676696930130649802970547404412913614917134997793508378522913919735621378725277393021060726711952425505796123899188050302654215916602062279827411880417284507764523329137584442050079284370078155244898508409628875121902391237767964883436753924828885906783547105689394880007788549350805824606296881075227074648582646284344536185941824152949796332840014525170681853089567868901761968493480262120986116379650946806379687330951229421246973189541254329921635980282349552103023503660868586366728175524509768214082956272458742301155856479849242160446213211263517222430318857494345070088084607886790504329242125462511577371137484829598708132754860502648418365393538577414850755732829504918428322459338674486080444184658551514398725282461570670054377591941436111604109473169994360263484076962522787919627898907142988302435329188144497229515513404111842947576501462761934361815632108325590965962770524132655938673111209992673671943492356573535945437047642417357890739804274336218375397991181315768521717600600468639922208278074301245971675065912027252561647202524900540238609491996880128197480538519978618166602352963602916292967402611685026711375817468807295557232925023305775039165175957541855151348798234085539357674402169978413619117324261708568864182287754836694568609893826840400719642965922232496276845786412296487555466155645006015149613061862532287240478035158275473661996099720920010397776716094174817155382855518100618047542667524284656563730821592634375280287322010949685390569253348472237793201208029775253232225830344938343587584132444979277845592808406853749546056034311046063626456730947283860817174425522341885590140110056193467340940276176317226600398633757232126837128536384280039682480464722687372572499257930375124168360687169728326877091294930663167987760568761336936894171841090673954032976245491884956396071624346381837296200960297503694130414137511373487051953027046132216883471896068777648663514784069882049867105146896144606710988140067710835162380706147197910278517327572799656873266150139019031794605103670484096497370561180973462218919025454149388555222171551718531836798056865066287241101071393401631372306626010353423088323767375959957502612964433096687482523935646716543033890888290894612795190177189596695702058035985890329823221876765128195992630292773090351850895558564312017349294252419395147212338366480841361847119842534324202233420334146797834767196174503201782885071318088198087098403380697305997725196780813692562801234496114941987174659350808550390939681518250611560836637972084023215929409949787504479267036087290814259654934612616368673933531153199795101500128183717149574318741262455703193833088938882988224712713387643970733420496051826169795712866902415534505879858744955518430112989167437940399232976318445696608540193530431859419762525359480585046944143717327531621581325200270275726508731854674496322420528037032859884825120154733064204993930114847885808053859616622570439535674848905343106102239058621980091130654871478476160939556807072105430964380693629905010386039769985232238367935831504104569791856872622557736365058496234153754711325032638536163650924788171662198578497084184569934138381636617881729772914594852566469555908218385151657711322386937321594724427434819253307734050166710284606383669128922439808331304152429827734685413437345539365473005994671432999197497652244216036320100798221170998846225541725621121101828131674419178863550815579055616684798015497155692359758783854693725638457437152063256311439197739794908316539765702686849174768303841437914657949343215675975589326271796915347889478783029074730210934213765700903242582001678948270898971740661103083970811907781273468459417656560322463250982889254342345847686783409526682114515018543674400158651543667039991375753990755254999201743234717167303313161817366486675357476419639097712294148061058636380586896688064300512556960636531002790409932676026866750131004306833307842676199993347570547004088700995424684021656768249497360016644896732981576227955006285989647121249427835322406270373259730086352903503099355073279757218446812796307066198566610451187171658977365062239237266126932136596010454111274293976249563305229191012967452240409329756538543470412754248612193788961321669697489452444037793506750937070164835178420127321711252059696243792095040978662320383745473002657626156505270859003619727518476941258429938421951538562257534942340111935152193940263959984486526823085667927062374446230429366642109393407090626322995429387668502287251029051838361902271319838503265212368211842176446831409699377501432729190607690303392205471806653337486761347034654709875271634380868547121950081806069270834938693559412009322988600936360985813833346055629265798832273629601068325059521612392023717036461927670485884927272655697171253452132566079228234674691961157656189447870485137180064965873944546459254688989876457223590249065607630692367124640215088487570860341058409661580710949197565762656588671127134051065584362486631120789751165667336444843014771573419954398631395208532538932504682517585026914814500879161335041009663390578321230964703928667867717644362626192697968586698849101136161113042068928832898285217024200304286274249826064314615474275767995327001637013767246566827266788323787582335084311649012264357450737573392602510585833633449162008621557922971624619566235851353450104744123398837494118937957760078224291612410410591311144755606252468669944445412953466228585874177403445617551837615145847359311474812971277747158272971102028162557213509173071898160251402502382923580921542444732812694536120037037190322130056790022703300096130355024525626247173051321909245914534180615928942249419956609629509605043999612375859053530191353576332718745042341702509924141532877277002795034613323628558585911094086467276087775559084034208209844163707043075656315636606177318331491994816155780478630164882651746629903256646373733383489892487044322904927513215582341119832007302941855782429138710132671929366869590725737755922809990656398839599769406362644490713891303440825084792172755591461411368869418084725637486634954897385740831168511579680117384992257664356570919631485987439379591166597482393676283115426400548073258064447976723711144810887569820935901140554924551538586197975643743363452271028574563169648955262457097231424723695467031084567438193222935104181601087112253720256631141880818829630702775826236456181183084950378060520305922066815696596613777120641493763868734805813158312652533536053557893391885607738091989454122799231886084202497151580559717423126255318555536705720090169330565448653082199880858796516720622406887426064773196615806780943064090470250982558406519197116229283540249860439792038520957905307775583878669159813253786314293380462850902382219237146285577315942741393164846532956320346254388959297379217753939195261128453469014865990525228283388808211376424595235149778515071364134058143480511414946832734587546308484899302192848696283496358393288117273140272674013408619762219087376412729319975226774864501056237677788737648309570463019686563867509630617631547829504408792325179147476053573747228214578611456427985196052938809896538094395016007487022554165406992448593070937339841181404023550274609024924414662181989837942902480763587129045643618785625942842628976216691939237747923318897385500938771967232970919468552091751650093497630833835721065440757440420402054862109019876037924510350169197008876900707078447891285816215772211402806647176010598793426585657417305672013687674822786276903489872902489570301257316889411904080938102336983042110354949824572762424768781726679698315055128730946323754490964828469048289817930917309667449859581713521006586187990220935731103622422364836760051636899781512114199582682619513346995378565098076122071261056265190108915984589064972248190421200297590362693429986540697658144495246993709535966656698361267658992971767183384838483807683700316837257645407689262993804851910046368172353748150831779235367285905988525306556399862271928694251886785817880496466790178682455193250455942643963121800027076399374873813219517877133361911703877722129349398991943681919602413813271725278392778263552160308475475096782301208097972897344506614667306598014067127618907027400079295199755267447050515678084571375412183893830185467719592203002114277841326950154043630333600656023271508696053720656491437902013874057849407346261241694076055674229284282610149732424470898544157752185933963487430526609069857068339514661563215182222641419232286042106838288832904073914247323645018677801328659774307359593206330781601151670278843821866060444503561994023855365393886638373047715337845143098956252805292649299076920979937171376427972627321185746516018748619256968641769115059609627838284742561572771466065972934796335819710056583998817545811731761952773988170926352782279411349965996567276095889113478963663370616244751449253455701605447903568994533604514164968080073561448957254136183504242824049712033414005848811308524875893304422375500304340765974530913774811568487530838090976764336578315083355028283617983174386832931764469615461414232831481063145412971775716981357416671228433646870836647973795137309651033080182228013799738244492273295782547970627990702096076429958135430775945497332178632635381598920964255384423581688589552068201658328852545648150583059089818466708895579507827052912409972106903251189407509809930986873652151435741889836322582429216524879136260960097992138381712851605994951900032539705340261015057290209325720695987068187084848032443651616470013603493515770067085983322636602494743803568403274928224624329305489705057196861127502166190527702098412788656381008620390013083208743258022122215342645319818837073396031174708864780832585837244249165862455664992277132243944377755117785959017511259784829176055074209993937754158261775615861037649248955798975131147279951264715544464965960806064726714129320085388196977082881807497317763490994495456334757362644371670784275182823948178952833771311328454188031843582074506474249322162350342046908956717255561331094161631982169750801361231849061754547090965181285972368829426181100357005773517069220421644948907572373431116165630189201042470682585505439305787263066171403857218419672531662915805946003954934892033553852664522093674202955291123149493331785855239241456883290749828981663393663461275665474963172946044066631128807849982990986253321317865401361821133852560195588030847812010043077311283856030406041132824964175171135368069232434553345366155450547236765682630509904238516204936003351697090976149271698533590066077247846023645918512848061510521694378619483572798890935768823247234060404706291531887986031911906210586011901411729272780094910902062890394681262781698737655055397164172982329900091983457793621690270871892899071061323000315487205771293585502492216681921279858081486615930747907850071259725705368274154881997053907407909192237342720468854281270179236639468533973670590493294826208134839467810552707338848695917412525710777816478274792659332788893677133867673375669766458495795959870139397315587363744741791056795430100138146059494684013973598654476303020043545001287491266561384615621952625798928489027385437065037545365830692978586537452869563790451454619504434698064229627243206867146969518756485513875244999240872482773004300540337731610263810285245770399837517415470997232708034570474128763231005467148572186024125398954730553280548520009141793410066755184938927051800722413616024844359761388422326014404005165970994788380119590057035979173473284093749111435216370002286012842300408306221832049046277883396198234505409841891264677207028728082821322776467028453175689488707852991813561495634242504863479099077315865016117187174766950322786174859076994300549646066450201599475730278426137312318220704767627081750046407430778631603538101166534018674663567463096899026436289209308049838968745126914068375570466361835137627255151356187100745382446308787871346372956970083447387743551187169267817775067087800031812268252196930741014203355898441951155352805178503011687449525395809310931492544077941194458714502646767393233806950472444692077087558773074064756686618449450525780321504956648053486042318638293557081831902575749520103636750951061356285288984392715669749948370500460459082212642028308068031325662789641272726546022253330373556768933551991132834347129420375776237885281865561035764856926565523291430354405871530553461475454412920832638264078287729005570841738177049567428759149927753353690716819691195967045135647415153453496354266829293177682392761093352799586721884791238388665729732082977638128649844486950201273633003553403219797880583930015677730265895364389885832624642937214810638637172675246539580839944383101657869144615143146327148365559300557935851339386985951606532470318326138841112475792632283779339066303322200550259219634858727848379307435387720923620999326759048532910554666473861670902136389690191836466453351950600363303434054885649996683657222391844365745030355872155531485179454144092598928826303226180932600469835531125092868931769559709811762585150941074038736556404044762650494833848614650361432942943955298337573062037279364938192562664602713048063806752345796914544239813852041498145801829683612013975311876128628691860339754409826229858788138590147506887244387899180956700803756047051680668269178782337165540849530579605290777964145161870198648577058652293857186561012813462951418245969295611633215873502358549106916703940259016237101085822872330322913689904672368808615094532986650447996578819254625827393742923730303760369543265491442999003502343930104841562480052094549026628132467818959657555253918761514839575275659490991146013986582482615928641774334573694695898221078463967964274416624471510542826995931575271829362166974560625441975334606609713269411258099206143209899936253341553110663593344900774876092917834998415520370100193954285338363983294359531263538665589438039142330833917750367839792954061046082696684874753221929334921332894113954476083227033086754838491873200465056295806921552962414782227104611533649847162001286512678247536165856505517094728040496090566656233234565457483494285995408772840470951582739779230159320304764548277123158666486564851835290524857699611423202776670846290268237084015777038633353494029082413239883438159485260579046722175242218231922784529479399673463043026698983441905549214480115742902128664167919553999481247679537393663486675857567653746197755091641784646075941994403760375813397559344847387589993807874877967495668581377063792327284347254377097052798796518427334135923278368852588805371202162212841418029456460262830932668876452866344910334405894041527364109699062076474253657665080327126845645841461653941929580716468378917257266240433776628440889193983251580862169174763265724551797029128498320211219196689384002027744465746500237353796451807185832630272641939067854086604130171120227388279749833879530596569445232189032864722908033073395689510693647814609450466115283460060430471106751117617078290944179057110420594148683284024826003834856627818789492279266007100551202024249450593416757722462578977895480065589155362054802022638797434400402008389028987310277607625062966019431126717263085613157233646452463587607299708394948871632831485378353178423170641174094045670076376907880543324989024379151575765224513723784432477472873283536319171385486624267478288426216342877056025509712109593430220546428644067782922775955226573062410960745510819140769039188892640400243770853276757756723226352857106572541563062845776333688437162541530801633179718746347278031376617475408729609536291971089743744742473507421784487536912155894227065125255653422889070315250255427140715772088952533345598964104935578328183113936509750777962813538893688639843763710772922624620132439159022711534533846561663736813948569534264989900020879956453324250526219241840485481767729660600883060917515815649327381344300616614644623927024217481715271815568406042590818220378815132959179449711698004607523454255497723965500340293681197685856701917915907033461338448739630457051119061157526402472701630623125212126464555733065189970004276580577085087526575615697624276254180858616548915354538830951580664228347164487732101796040641700926217688632528874363614106369580593772215393783145741840031089555955453945260466106812323445924557268283229669752042944006285042966927593316799128423613516122833446865368344819053609089243479959530667753622747322261243103215748852191306607310239905048874418179672753089601604868612784323117784084410610290758567542132117223323872229696783693981914939440700083521744705345703925533485111595882399708057265278974309178680570253848044873297363556942556814789030698754178051792337648356263706680258761322594176104278015850538106727183333282114888385456146622365981616891212079432069670516907942427444342578534331068784565796965937055413238737176561368237193928501326066386744455050721007498814520249882384573391853809055583638287686387821747335981472808150160479748752328267169752587056864971139779481999449528665361082104901467872261592549175443505146814063100303590029069536234919488735580890548970662933792299346535326328211335218902250310930556959276825918998334819159728088948307824960613121471497514652800992743953464463044062823055128282320159553615241231225689086183988014514761916585657723008872248633480629023663622518976216287394223903292137886701581306361461208116836237010585804323391617111365655836770141403835320341525916710054225097131706081229545391219706899409065004417584750115674897400707075991268978716772134853588000799214815449530696071449479955840359530587020816954963046040148280932458590457476872016931759965326786555618844697380036025595393026251531114837302724268499661477125360123983639264955758385164783723833623273699497660761257895593103032573493919547560925881687985662070955557197216962054941187544030357975693206853250246158935400245623275358092715414513240991361368124297090124449238795314594001053163212374776602312724663110547922590329277963339019164033973727680628258469478553213180609683427857204669160944211567012586044008912982494858420506122163956479261911752919143948468607725150287583222555734378618397624838138430899732564723218846262777500723568316359014789105545616609313198862305430647097017081702023006145129145916897400019856316396020820366680661698292338545452753892694493090059377472766727636081106483848416329832703817906089413701269549974120387604814415197200937439160101611046243309117289811192048064655909474054885210244920345391558418740351327575009535103237111604252049370466303539665344174415877894061640219696231348405533783664899280130885132921824048392227439249055799355370981838899511355625197512193194717165438700232424623214959535911756275004114345075266898463137164523659283779340776380266265344423112281643781429841363227129973663982841793291115949710040382256402368750860930925822776803540952960881183622721303957862933144758720415983042197255770058003205818564329008882216289757634979841349945309978505360575337249921801333042705740831310328635726724658773522489683054396646192627219558679375510160663754571294054933237447989397398831060784580796470825310194121960218749339960050350594941076146946085713647754555059146534019230876947867998405617055976383356430328857809353404946292298474544833336067222675149722933827073370848664277601056339787130306948230409977049461563415582062705255947556740339486208688561527559034049145720705966500939572353802543633896203711761777764433826358451809134287446792860086212864108640941832382838542390276379707658785760793375682750852846138462716034413390171725993245777445225829957770201185851078532772567383826233533619449375605990496334900035534296262750216393530134883864972883554841424945284732844842574682335766663009390937224852483473207261294681274826733649203975538892250078284255650692291796168191828952478498038994367126113578352536034065292292724789971625544927151385438677149308089648700192604932643364450822847793308521230436873279651334118035120204072670042767987812852541935744889234295445093155191407570841795990894869572052640817057555196530903197244661964033342830037932699581393362897353192296494348167327631620522632116227217913425596486385961839347152419046353254769135862780796585702065060680987706528521502433358765482111691510990549958340049221462323857086287202444027434966700699481161380849581253909157524990014752639326229977618553611636399004983966873520075438298093684130239797974593759578455086601865595171052465506801306022294445298571903248504658413164953553121416127595895997175774464407979872673972539277379581031129376671612224623511053562184683144036640614874839114331948724998897301765559283641400124502027184105881575391848627021510507828891364800762249449052951527014919901315592198871591759742247112258072851747515676059042112601141908591329654443507011383607601322702096160725755250879390336249971051590106837197493243814577369302265127930380702730487722554195008635671250007343087043871349240376251443799558540810469212218673160953881728328934716729711455861132848242916296899664262135613049969392788157777106126154772938031444029728570113188869481391518540074175211889927680991504250311856227736197123299212275399163708244340382856361161331391197596200670133268791651755725246923915692176218669547768261962994836329979266505854396400910878094675235524440348477275949829383346314042469370883126544816101628511487228053253722742659638247354152349026672109981020055866440167047375951249628688769038073626511693448055125013403526896319266947371502919786146485663457183449874334739782428882769110936351950552846971435267163140006542970056421761649624878498863651244717213250015613932032961722011909660085942672834716705676106525713895722806410456824019027547933230904676169973947072584096297387698573457881044628143154557618001475049137303177892524141712070699291497650132599520325428019128172481367237051061031172268667482443175156532209091008897935595896685097700261137940672546929942524359043930654328868503227241522385960194718201055434079234304623757055172968939893239904148999190511363607462402582082663860220904976172395821144187941909022622974365591447213652820241886618581921851047802702632457828811625048631417827818890974051280713011390385594755906363590008317548738747673245760575482979930958642879371601043960707908615750703669055556519223095891400788185873268626792230268328401242018951542949512922235773670016697102756663081690830314248179687655676862940089558890041001053793009526432107243132447434636259774258086687264209169331953904850360934845407985441683615529204089663108417857408890896993376549423353594435234992092837260832125167709607884229653994694561420478101842907765858125581238901546832548251111466089840051213581266904602007598758724187630594657579970790519956083866497642206679024769290474876254685540334737376201772278544914753639458083216300718406194922926569059099856286730220988524565324568669430968047686504427901456184962917221820958142890851123712724677155496184256238763261990394340059739682261960153785820170479921787853279776795779484418326636763860170754388608033801642020144992525145654941217341700357926093719991210732245753563883427628375206832195110727465038975140541753014109722263374304989793693012092454531088533386525679519352825600538377073353845528850158855064387305730286323430682461039064241831755594013965557104559728242464099621452718245522046634377547180568227319687419295152772992061933896909363521010762193566324513099384148058057231250963835425136869359889515853471671868030031711955379939923876986140204940295721101864164224875956402062205811190110303638056739439446160848967569821746747819859432070503647886229875317888535242711166470582161243112478694948018282051223526550072345747117936496223912290865968233795037656441047385410308610141538190330589737945045095913423943622664177573054964625831174274406133830748037487698200396148322771112939512602599397970708466373141211032821519385981336910089215723220757498937408981983488664855124031969988372639908775900580739669937060485362629452278825542021167048925097467939779432105881904843100349920095178119717077264681538545654799639706919077879441274914963583738825919467971774287438453838375944644593907791171514958662247538849833252560630125591669452191352304775021792307046183583218199670607078832732795119452416296450170718974072151135671075410794082075945710247653442382377457186744034114635291150368080741718495372511190835647140843577005008032621978144121746583185268967342664745618654881865825153130937134112161982219121063232988288879241074574657603787483865386147905887432005137176202326487650704823962205310624645240657336969638835205315304462889098599146919943033248687369482975863383089990930669601288182179194740126947522098090238876385038881935895842572312429355147590309515994894637501748089604103475966264328939702808491622638942908630100583759925103957772327142119307299263848232727046090671405438491350261579912670801531019933687394701728459811251383720267376758578042955088406845438503521238657789176605905306203469411211766103204141079942246248699485118449317181174721341643283535604418958659167450082316204292815830238025347116814959523430119103458535013313732224342981736967824291317001346041591064959168858790103745813855962618812284931021535541137954871283532111958661150945993552179459548507815219201886290124600678300820178142685733887058325401576822317346391983286465772642297048298008133562915849084431213818672520862574808327188599355045153392651452946990374959486470591759428097130246832162397437207434666948075628854245123574059558380910620732894058602153601898001485407703491868874234831426919123201183430170319307582282965453612610222454416513671913633401417542835707784704663997740621222946565690443931869575304659246218373993385181421162249210292452954632448919970388629486262581426157898064772276473053893395842726261866778919299252165157038027994819142994056468702674963793858016516757415829279564577613373268428335301320891052591921858956732149858700282343941205630896563158006694305943590679324081808768478729882567093800330276937454129667739075877073843369329757590738805313694173990339080004590152235632050778286981229997979068089567215602227244980589236772558084873911790956889017622007448180196293682467767230811056591138808973606238472748572458143140712466216249468327834004992029645570952994086917691046437478445583492410111027611217000499476416450769820337855950752705846628619588551886748785496271248834290719789346058202990835137801205619405050057953552277781485831148054207070814615502794698221688411108364191795016686930796391829973875655309316883131185594032961926113654001891685797373891686863658868380386117310319082736652622828051728456314517433411737014912083884373562345331587517570975667159602771513805533662899122568517432986867886032205438498193155067917593305636169435031432842189590653569752988446317631493773186381609303455611333509023026685349781292163901424092868803416343318480097765009867854483797600785654159794152750973234228449869174263611679108866819498815462240443953944222354413509296340879590111908720574621176782482210201695411949354156365310547402816370658604729024550085466571329545417245065661138205149238525322441662854191530295933004391228349718477804334123019236235189661997601580566772462149279194078889319400586316678810442632769160374333905257436777449217033077968055173593503627697477520516495280310068980407325635224782333778481126100780562239960593533691632917181809421022579412498653256215109319321300646365563284052172149529497968731648427852868807182266375019634995759670703198004571284771157752058900790369546106834590305113881056347733241638157514549398353159297112962106902631761167801237100953858784975986724212063387129083756455478249684998722805658210363875164743700671098289495944839008118365802683379742084693375718628940944926767366029168267636126448514517437417839643712976150485594845670440401463710476902025044142943297811016153829809044863166793075064607923002886194423997085567351990060480077107471461588625439167014843113576032915478467109157081010783363873332122684501905477661978961755235985605347548063274393985916265683785277598615684525859767846982695958463908388217579981523060347083604072211507731842589954514749952087243557141217277751141562281499993764545754637505208940763771709265338800566881133577484731048170793053029026444734840499941306220342081408498446984442667412427599641912757121079946377997127497593073897919414349325594087581706270619375018614321383868436789589525168269480210091441425690073180003008486927391472249438977586184623287099270958170884713117966448365737251974824137777948841598836643554456477094676931711740451998220681969894582307803496172081845504460468268911775357920002655037217174749338456025364051004188121031542807554309107135978928591659339648268823574550991572501407422629992972318494375015745296151565992937128986962671255170483144848607563824347081589051375999702836548728433668649312235987278158421848664597211331215573829728843753880603145228607800579676530587512667336370495547446744976975796282939992564502032001687823439716840864873341002626785008507510047442858638734158498538388357184409216910616727684532534927883536216137263448386364211271762632697184285762788977990966754939412901505466162525941030769220810771070401354822415952592350704527981761918253811191580459787037790160318852788135608471384927935820170757460601297529091417876852745745203699588547813585019121180095047526291261637043381470105859703498040034888810348408067702766690195806194776172642267203381693440506167152350920266816718798212002222473405596374277927220919628884421148192787436859109639021995245226740283592950816699173979867380323873949271128165448826083067346403988056681427240320276912400216635263747370074225347962892430261648210053936963858813692382941168822032703532082983780351555442543631981827780162059184003046364012139388499693417147703701596808970730117054113933094770151797414915040472188154163613968971244288876429279479461473196007494774353813447276865722298996073845132555848708024215736156254968259827741213818355250286749030319124470590131214262970727536594080573716839234951007775033522125940949187929136150474018178561725011689471335482144055040736865563259410289235283137726807711480959271915748332667754728782265887663877067220181771185531919455161953999765050636711220296693983214553791213649851300760157207610179227589530951865159731256217589310482986470713853739141001541236588289091755762175683408966129231060795289053944479606890763639324769540596217152611900220192812649293963678365663943829378132434806833289419806129285462686707597183144221818948242783111017199707689184996699814483059772463671867885456848756698399323086258007149299107924854822689808898257320038227109349253002224079102711571790072116807177177012994460293898141583808241380089122049968767915919467501747455963687837052198946278064878624358614491316542278988143216728259159523834077023811199318123224996661566552043893354164971966077180662994519771615679322505809615167494958611650705581215041285975509385946892365529265219056738257251364088639001804308663686766386888764462958291131019409217822785188012916869662907035446229454881123303209975948168075732739794126215334692054075369879356353405173324667857983204256735453138144837809524399048391754822285421175270266639712722375260214173787103057815671605404555482714014417974772441852894993778959317401412852425463228480382955101618703879471777770773353615385476852725241073806763286492824571843052525508011578245981287199980279832294120267020568058166983661116878378118807678378670025952567324631439059592868265401983315450462023862400611018518796601039165305984160138025564864224550927022507322062909129167088257485234476820891211618364636397262734177014755012740558732700500166755231865066929756514577275289149000825336481491092304372804615015689598763204099948743039725267185436614399770681626282710308001596943581729349478466161369509715368426987704211133234749918579257634936811613637522013971564939141308492566099983046132965868908605194791387769838495580633439220780971229385124608076460455499222704995394484794627795096250792710408028979881748505749542899182103036996665806035100042126505884372267843824101007635170720976577262023945845296460970126381833219568794948514024514767293934341959703595711984681561749879585032045766154407751529867905927191814844598836578533884986834651465452713337398131615572252671904059880858880088650738342743729465245449490544501111337601599534413770719845280394580616063404591418205061249426111512597747989307350552024080721527778818097920815246794486009071044078700239086789078918654711886268911615880521798593350334872543209962242535705436032263715619265983252755774222818469809375597176773861244231191095271399649889345809508213378105824369812901534426521862842190671144192535576318381366355901463808238531513243605837307359725890674583811983214336430050041526601487588047956265221983408119734443350894092245224764254709031147042816361936223338605205116555383594353006353020560730300672618799194492171502539422344268793543608835445706623440949009280660818370759813664776816535059111558256914320283792808509833098611809090274904540517378867569082612415160047531517585356336069852162353204189921321789628484842915172517139906270308384605020435284867454115683192819739696470567817003390798330212344804375051874399192750223627884235350558186102245899151020123613805917765829007671283317993483376655174274583203589196083914841366333407164369563474133765726291759870958482494097571060746030920713279838584936268615968306941238760515721259407073520383815632762807940308328691616506787966440071839701368395184921430839046131089647130420791646771503296921584944607194589068611114298630426361507113796375761349058179359822998688629020800516456480470375316606163194616880034642427148078089495960367448036380097970652187282118078351266273720663926826127656317569474695857673730578654181130522596668441785694456288687809933525001495738169022125268443597454427503799689183285760206642890186185476175679356480288570743937006260501118949788317908213089556704421179410811906684160614833804780529424881653719455162348430243604323998941819333900876231051617062376871698533627009847734238596659321293955309745238624711934660191745844589940527203316139475510780316536753823457561259393493107550520229594819153169652336146868745471828407070780543064840496879312326869205368112038848967432049196936376863217164310501830207819567221334128703191552690213706067377487011043906772087257429778123076536033782645191330290560307547152777940984582736919754037371037516191737619237886471901955803753330184333593944500950403591971692504590603023429825885173120142673649971449577914758974805396636656435824344660957425690446270635560696399160920841552982395318086044406119399881348547068660882600964645066593734013587447467572204201449974940269641075532995631994241805757411267324259922479094935854645909504049960087894406592171746310386353994627228456702138495955339798340571479025398871468063132322199550758109044639827997970238662749617597219673416184957147259864535087947666408355900598803211314636477437652405734235399927593996569179516445960932318961445834884236852444180063463711530396799087150739207160067348802488147324481387161035005245401379636266472858482745930364981565162022640752640853308301233365910823562563332703155269985263895089723968049623258757249798363753604510046292113868262400126256638463854040243137104384411694184104057715894878019366823023737817567939210671583950262371225264017347557777129114990031176862551862631805210053769976351923600246264985694990690124008419530638213554054959275375309859945034398463034149601327982633966633270952408489993214052372241352236497212169272490218180350956326373158242178506457192593686717559657466418790595711910332609079055686353567868754844429478040283282066505524057463895477155768283516937220688014451156172990293143136020226376799835305777692695756624341793076520515505432839743643398234256889998729634213314058890098531569606563554144135987051482122463084892334868149918838751323932931370226070647598618717875715762927820436906641143564960854935834118841581553728656177691089806162654978585951056951923471773398744037445756095058758641949883959999082167452810067467624982217135149714090959801269647148669827724900430275965639185203043418115547609497718427490102292243596462140552119284767482911370486686826810066792647654774125195009718216312431908324316936144830440933006045838596721154972664126314835398586123015621969482075946500494178762693779016960408095667985152195366691195870289169861362800008209008141690874899591177335236159271107073136846585370466936473741179845645115849383722925000185179290350170228763384223158888858189028599915905220301029267631818905421258836455083528737252932183835915251931827859906096614158879606383779875425694348691977861490358991808902675646139706563685503713434333661188420922755409790364231620975303881688516677759307947730933880425512025416526361827834331793414233800160462706286567352250453357694927305706567913224271262230230575184330981883531998742102688438714147677308758326407976146760086652651545222769344223702329547885434241610505526620767730563651184466814377042448343069829304639438352018844412735975681454842809754677413901988406335896393061253542971580932700183494935258247069025687093762443797852191739120228598910892036938952784778909970363394405969899345610438872463339299348836438989099248588561947166579003467553841069785331601639823419790337048450643511477161866953622287568604706456184348808853962343619307264581991564802030073014298729180173663788282775724788137494628311677916593512898339102127865419498763048284671171438933763260501563376967802831189797830500097412342067987064474419182590008500595010469308898826632672212353734708217688034314393129105513321285225686897656650857479424370294118644757859418779985213697582845330803425336285601145158159164466632416919155567077391081347680230434541684423757285189333378216819338544089768462199583004103389244450605582405658852419446642735386115850271253787795280660194074525372098143706031384605209248005780793055090811981661506544381024891027839714268085613857378194659130763266879057920238480468405169426656937353168518923455777280960768887764728932193542985791381485084133678161469697339324902950086350211228860846949803693811085514775125752106792550633365423808824085230799157339318639243674400304285284853011702782808415060293839868843022783463002940955720425585463852801982493867091039665707511725218643020063276201757081039896339971009525507620110930068328470132452041905496325063047059631832201728176956730648454636645012580852984336041357230994949619383791785678510915913322626029844100927967519453265601922069337889656243985625946792769613979168068182403001286789220322029405363916218150931206726288967881395166607712489015333042414506848328836737696444427589462397317067839886071615828010965236508093588655994454757887264114461413175800083214973445730520164697792609469158498665678887537048384640149521917570743445710093912832440678370345110251181209692090868540416920825921942350822413829906170517799686071575005055308220391786253284027263804498695998573826838822171180261672679427854212608899560633460269756317940580995875116373021390445360606390553460783399057210981500225551075109014563944094325999308615059624352389082345612462744816066578426247333524127729079531597941687806449858492030575985732796085695616013923815693880553342779149111345926672434876505351843869228789044442996720138040394006369591619162337683560726268757468803687215504763601682389656036220471165078261977660248276044536827484063041561817488777815344539542330592550014264302889100700709609386932818561914798651069693595058749993045104158565929889289353992622428908853392584960597878417540271405538472171119620537187557740814725368984312556947657475747077119354330753102708960699497758805839387773145523459423018732570804743797644355918663688803408489059294338807352204682781823023012361076004526461463485068438117889411733902354465948267718645890621460016078718305359486483165376839629415905327973146853173119700835768842035741462514425885450482110406017454975657800697766175103106361099255056512785176175450384346583448482851893937938544976663735946541880987797902742532608376012737724281940460862235958417323077128615181365363544764925102265313776863407060462352864765003479361143053481648128501309981669003027868287702151046585665996540099721225282272368074199342806532663827740003904368366354027461955019526360541932767541556003385871176488917547112707095848406735484163183303875223291276887697147995811623637659169618750563801842872051477500966584887339671700205656478869468049494482205349636813920119045395961100871334996593792236062156731116086590120524193622699236661742973280484148891655713485569542705520671080460371617992581559295894260951941899443227626789276729820776565558974061803629139422809649044791835488281832140402350308029800025038547798648200039875173341524554928571289272215286059166457858960757585026771170673830480743555710333330863384815099248418704101702476657172980041930269394104537628889849271867639255766601858722835318091793439234710682582578018167400603620744037462259074560662322090396131078076218567846025156934665058569025715487004343262088961876405503916748336381917097911643764686945613593055299733805327243204803603747030821120163399971444275838564738602296822849999370297121616150599093328928975234426170049425961833444584635639212023306792678850371430369506278157062689515829727677279363725628189291947325512773704991894950614109716729584272352554663888667831093766052606367728144040484506986905054101548053610469871978765721126437783820846946650570887019789475593634811913297402043002458889999596576770976730744155320669001307242879967429494945256530318053867338947232514685579877107241469099921100142569984808047311272465269304541588903203322071350637693397003701219557025281434694143655766210419139973438560145983725789399072427505286772597082211197763284541508266327785921753127117898653764070709553550293966277903070109397577484539147327997018527087344537906638706623383752772592170524349477740759111410838688556394116409954565947833534814034718700170955477131632659356382115998888642483119413850609305218677990368379216490044635758075478077505706314078375115115771516212255634871774170999117030967346643370935522192226361462315192360961433181854854841118499434826695193549668157426562440212261823484455330915029220365701711783625639482428024374190383511169165355055442892805989279521739084133339510968541923348963159935919339799301360939247733588082239607455806698512605659908327890385396819375186114791405626004615115522248498075791005287659715489068952125201052267028436298784214546457600165209293232179908544001152421712508750438123716210371421284230800967500034062928591000740263772773119681696223169250212995836040015711507830738035190623971290289947705839711404121965672856484799002399601298069142982420117158918102804418675523221202241036810622705688068402845321941484064045315237635121955166756922799336492546737219130366591229946484800746991755043940711872165441177341674102455983528213913806499442098215138613300269243465609867016033653647657882923252207373800768099636297339832092204714254546633502231922025291963288839228496454579294105208321202734466719419653191284695633537839888216344428493993340864458311509967173406413195843073002911825794013280716539952712806285895234974429351465562851367638037554001314243462950321376151799393889835200791292411202984411930096793968752073384178591908298673682690579513837145079017865158226724408576512910340401729026609919124661718286166530677233898525281219032192805619932633544068645405837717056763828854128024684855668008781492616858916284479881673687783688039249324992921937906090306023282014321183652595888780244570103352469515681620711627601717295673791159517915440162571643360043831345491724023082379208967405893719743848152112702259236071644942460200903772628738500233708299843094370522911541695038433778732983823525725287838952841425949956462231640703900411221985467059708467027023404794938899415969772028593043598289063545010111238505238086021289883855708942656293714983485698435455224601390328005986233639263890262315009132477002515808443801266601741865135414424695965147705135668905110345536744146347179098903411683090600502120825195736094840148056986425434847244468029891779573326334671952341260730936456173692096918422891498017997958772336057218621685464474235271056410644824307721066588011339955559218457047271178357046966669845493537321419621105073267041563980956604035605272262034630491549758270015994905549317291650184907473514923121716770943080865872499790057975279162597194322762971370705594484715671984596255929930308028720879035680920772085413923265027663034797268605812291582727154054274347098108534184479946982219287918487967573307609239247277575551565782474931527063423648341570764975915692744075871428593536098217593852582651251873140773326613807228985117374366742636637125060899498636706728208819495466958445145486466664086596095083616359826381720316685082727595732676536660977558520606177073377887433747379920323401488033708964716666579337712590951692681820378640837671792645703776985563696991020055160170667007985547895838980320262389389390416609670338277771602412570110476364751368664580361910102241882414230173235837798329046207918579320526641710201628364151929367813243153600980073612009670288738111655479737330406230774400462400707051569409117244967563158085873906512898366807293328277281723039562324522511290770412042096636076475276361334923817828937056345664998935857009440217819789189570780258544804679797379852962263508556761001512458094548792166644947107815450866811615852276032344322340712242916151886494475142181395715137552983433681792503526395575710405859939135848623854371620500878436376281884498744418601459461740058499957719355174374007802345329521137337216597359656673192133210307542255915076392442663731346750393625042989843852759271724386168356287338015954420893217780445513996195865004862425205184083751950309913520944161930483671394022910020757274191796748066410489424052738429929850555385246789142130825318535041414370864221189908872740096522624344639156955784884484871000144056240722983349696507422634993119774129373851242954311122465573962655752305044899958694787776377196938371465943347603698135165482819535651197391209329823804530410508464470780134731296917886094238158961613164329928011277909982013020106486687892901514706736035947184712049552061070273824174877388237384557219659365775858710019713842972342332435584726651785891958344789506598225223952797604780417446751535161312712109888453855888918952237065759143518210261059496398450840781241275794169630756589006871696889322382100079526289062548697808132045546074221843137206378373357545523566261963850867617974830494488158427816552525150635714377237703425556042773886674529798936736316188405678962629580531577022009738220244191711719842485067663334433157967332470643225256889067534949336164489567746167019427991135580646028756675190490290901529016225521522992929143988217601035739797225249267091895418314710617269040984747270989266008737148391783715870575278358183019978305998314223900406983297896183397179151696900691464852455711978864548912981354537237651370147302584194758186685385078887984288938789247518941238343891270928054630221022273388894744757724627758897043768200341192557499260490510892505992094433411913984560409669834089881486565258699597951132141581527121092249562113925911321647204311419315203423190227109817048383936265643945395032445825971011257349008290149822679984044022163929785467993195526097425768634685076976015055716165377476511764491702974899191582525545164420192489925160735575131577696520124665632959002643393926662852795622301708415436216937344148897771815924825753703822915931540093721554791694134957306771275326498102118788514729282252036154322968772463435511523273625467511656334294873382296513539062074708372500653875673182776169952384931254074887018253409815674250880665566933075072061089978252422281757455544649914073168547405855332708639409877762593039878406629096568376514719127780782855655685737836234158901743332794545421605274142598374455543174913979948377957897870482250397953886522237941984832456923193369870761227439103421638799149725113196649053238536733946299030881916559743823594122294235100975090913905166981420527375833871510307454325108650985196053283994965357645880952915406783551082279114214722994296687290857823642180207713190623360889146922968882838613368315326319252346758845764177618461915792559913900721479012958721054105407701529008810759206607768468957214259382925986099424963972407711320333560943041590725580957039508909167580893641194665569633711759207085806704053778510709302666289125265510650991169549277719083928270866654169942545666929842959101254735780100646194854438120012957389749972531222902950875544948572179922676821273868396611404998692544369259930366565333466396028718609683935112914862600639502689736127474595776639903340071789344271390819117668600048827728501018717820015338401779135687678742877271983169137148492424635486668387142413119441666308605882574190126984496269546840168736858397343196187823592607934857218659848964946804405841159848916007898262640209824660886096329637771935726269921704098879263089667390111163903254782909591294662455588310431745614778776090064769268340780688380276636350890414880885797385870176368644898749963205863717357307872306562151544838401136193860700748255164269877822882676198393979373184018306787923721593314229041932643400139333994294275901893659443544230473851397676974643076469965332506841040089478314692363954336609317498957277893837627326751517674422715833495828244208933302084743551623962656278369348233045965281184664918234240288435223600869820924381351525593212945426292540157349356623923556145095038858457622239894321656701940835903045460878692999650007542162072732264043023387396134611782192561055957877911299633129996642034117466378141255804466425485216465279061999702155621960047297080258599493681846654530166870843519317375760287545494193948520727841351283368633289973577145146024460993743625437255353891139415544998692862690070607393653509658329022467944322719699544217098938183462444979023137302047816737243183098923945483505059721318819455569248299333107521301824057099703656688103933186686225261948206732996749688413499453042212786890192960552414342141791153297128288350411232963998533407977085879256228525483083741138873832307531783209498979716178940413508717889995564472526996901798533521407445904599525194265126829104013365617143326521848190536781370150674187708849092115175760256513927883408278013852586443573104530217766161833970672279452508804648628478622921256460201371813914650286302099395416387398180739605705417049055532196271765873424919749598498463553902419923352312531219879548536497267098197866472314357367564599976534651393577548996411530878366450028765349110640247846692847164101895909772721817466635209614216928581248575578107005724784713984703773459540101984915387646425664079167524272386368096635316609420812739877768219323042773500225528286748209834498648967868307322354742040118642713620428310729345141152448508765533784846558143180902776062031578769832766555866613930626040184087940915466241042270154623728437099874694344194556700600898195540670156524346921016212385180129786096142639427622712601248306178007008908629129771958521418510014330911994799427663774982477935053485052951590872014836253250939978959485617605718975645293293019777614019854172452688143738743786157755778076538990069055660218957310421696449859286015372969113037155405005836244562897315910241440171027352903751732755941304417678470621346996457212073271856275380479142458728756854100065184710832453373649749783093902057970436450107011297306437857606137410894001450678452949982515372455575443025858948045882905637082478118247944557543855511623128726256557639189604049073906987401665927179544094777499577761984236216236969689586754026567907708791512596435967640925018501396959440767314668603153515781383328662999154744083238275816331024714728784145050152047689817407634555354693284046712516476574434272368728499265831858203237835132882458069252637942972035014134623556801933959693832155400618761097171339327013776390039579338476681678076622537745828231293986662583697337855601402759180008948752797280572710470832936826730325451056951396041284839216029370492473356177254363757072137203995909637024272063702533827831504521436483305674738611315515277638643361636441732502010559662725537005046713421230809012829772737658676328189992564324667558463414075555462231482432015467908229256949251265056304934280242893259199804901409919585688584288549595405214259199954870376780373284063103122786323156229948941109536048556079623076197042248725313205298047764652201131109743171419870541997219708682513067146425880148295806653015992743381490849988549859468011919807932637591250739908061734791055428206985032131844759205604612027905223738370701030520623223574539325232230320666303701572512531154028497991698814347075829672499988988328002112371873548881627314522056252574960957733837708429399706310240874979327485288277652427736562258079784024035715740151465166907882523746120773933122736518487690921776780948441083480187802760172563379908994170680063712376111256970502744391776565623996420194900661241824503054476333545055251302653355349427638959829554706936104803023854439802469559983850485529413494880542377806228537832645653497312328024837515074625424173742950812407048234905350172230313194909741958815562505971219023162678544649009514314128284839936266980167397482376649377843113540004508307820791207360579198208579278630866237042831498317679470232938039791114699887697085485469647568749425700092654506449031424062290673227096980405238037647004946328935382771518204977950551284103420008378104743371254101009071243350338494864556350687481132850770060905704202897166343534225516780204802242126595285067220265422460122547275543201229124312574627250847591338466160105672979554124880920894093387183232989606480574412623426376809029840833178028964389973933977351838063594551710891207976880833680442198323962950199213232322937066821250164979711241598051559637270246946795328993942455584287509535641225456274758059232059657620133802003643414137910064901929797116159187588536354019888553961982284529561705701314911119628423338388774768426953787359690807765852809882488295633974834411458412075122875021637521112276879156468220797922977318158739999461122961848205516239866397265577460700988954888186032371662381979817486867709315681990438484356613287739453417361236788623952565115962762773545351257531377136315498224314283316246055229179692848366686780740412595985528434111803499875556429676303178697590432663361412143060112773341225039862782870354957408340402701236445762130953864498673495884241975661114848480110663595020473173339889522855415128679387622436700604568502077323212441256527840605717785165332089611325006669383168506193693559992103571163637982511535917487668309463714806900867194957100571692763971578414259577443141402988239136955315531165381309880289244283218126391664483790911326519478065468749846556747526570276336565395360205593633061396941380876124233688543981390505766259022936597987230619574912020067711430119649448716119846716544010429896965476841939998075423316798405408773385785891118476224159358990081572343286390091827171643173992622623288617263393467897195147773113737654680495403774454258808152954730685988214142735710220880087362881339689741433596856272111874522916770834895072596652562851156785986639474032058462905905301422619969011343249787747922147071498330162017346563036942731457405088629009263785253173329117653773375811909458660739194873915659634181223356970621021967538239005861562585012452334134689660480635659153013786112400451463319466755929411050031801252641387742375807256237561644322999786542892085753233739592586650410242721864959891440894006212918668440172436313936927545211258787029584740150224741457669278452708497957202218239390974639293614546763279763942742108634892089832078953689688606038551760118633205595452658758873757086611269688129311476617328007005338288092758504610840688446171140557794162814133222331475936334657393860023414434091881944552685384192497896497577883626333740940261251255973151700810621207043779900546503272310502032110880724344941447621221178139707915965457545882109187898017559763230072816589649216655349249069897869240256186751101933664061560261967474806373133398266881341176482839494027920410929226216022190558828178294345720959229268977418945533008094772883245757699215107887763943895740344462084925820353339942776115615174511418986280441471122134387538377926804130646682122561564160250147545746359057676220045468877370629028346170506224061667175359901270720101168782147589120447575979723360681142714524327538064621934674631113470469268174841112049628191362646204949473086707013589768951661098032008530776259865477741050238593078447147764595489302284460620405775975686620647107289212796680468620186051258836510082066640283082860270015749004922595731468419856962793552418512636873027632799436905512715378286322147364063518562123134580971591909709128060433770911001230764292689762174822404336483869321973162842932535311371424867950915907249964119808253283626680837213087424031761888190051965959652749718263395933422526340156175494817877997841592932996084997366589469260324209803734120968549395395862601823956486183265957896287639410886715005544313875562105792666323332327761105720647376993941836477921159431762734704934438024939648262342422097320373876570150656117756708032834014934311149234481839214585660103856200453725725783124957916600522724269207623266755432558944486899061808483023704353463253180417895057849960571775050016196557767126018625546866193070390612395335217818342116694619737907875065115863264915998855365099537684544571929398711427364313508799634241617091226677852563839131197698666090568320679351134289120602972388983246052267610336292272414207568116630404182167132647134089295104685392028119148934872638831287517973845975548119288726419676652833797941335824606313502771995720686560985040236286015219038131607506362964732014389114800854484585684384256415650528424569654765046319141537707071504367269137212943225275710262505451764187514537209377248908345938548202657534418828398182602176039973482302513605041018077906847821461260257733061749515190213792376954542418517255419948415547318445477741827452421673831386031008430412789937847996898831976133673453708010851906497220784880876022727470648610034157425416281028283576424469899508507517588291662702129867037777589780396020748117789652939194229630368312866663082211592602644077426213102175175822924844732417564459574013390114667416123204987746111784770452764314691047049263905116638518868300181110440451152427148606108842611432364969113636966705057112641670165174198852863249229531990457332927681075003448920252896026091164776625244570051130565181904531733262763661035817037301285251020907121808928734486145539271302444661088553486752815951932658610003318217563477622689551792235611258161217655391390218288139557034708245828263967502752908977025093204408359048837608302187241101701185762776782533646350480283788215069887031446017427539081007777037498518420067153400033491926572993939305684919384987034734574572114269492216263868901784778214818192679368739636585916698153899262105694069064281882959713413059454060501312201250864026117545504779980192400531255634954308354152148667148733063207696097358865612478372633484620625881927659809916416824794760966429346439502134769570634126928527207292535863855561236292304439705741835126137808994010910151142085833325878567621161002875623171791663820882052186489909690004878327912992642565688448131183956775580122269894527865384714525934043165546866358107488895571184614252012101540640727000870052543922614270271010871991380557252398201297585279015920857665648815738938840754982094358159904936214513615299694761780022075445882024247995587998342835455360001708561060791385224887204567231847297737488481449861089418363206505608275677078336988700306905383609622943099812480020090817062196314315965225862874766370769602006898159441021189686043865269230831285643423520092782971479395845902264302662459052928486541863996935833270155591852055982649406525809153369687169494626850322013998625924316456115184191795486188872255526629655735353728175317907554196408923135824769385001499896748376280734534377039847735684270563359164772265989698905416281004940049394750671319481067594603630220274585401700701845141586452386832443823259034762706157655793059006363114250379006293539840142729017407035712422395086736137703642986570078308599376428787773583219107600990755571100677423795122074735563367006006399087969081470007369190072483875004400227407358479357971093064911253691028892090333581320848822659522836941887973831933753392302199427326576480174537694674311038795925470109694073410424869098111633375954747237159297659959996410339061009474674177634194303273359203873606262842148460030996455010855517767298454629920689939457641212887948702329059002622773272095670493953940428190793033186359073274070017827731368395792999666318969722969783368011808981904437457288372637235491174825362717715267966183155411333840441097739221691328596703083727327509047757629620137602086755952637723523257212712221425868643389080355274934118180635142866556541123311274765241788754964546935975487705388973469929132328396554448271743873239885828257307263408217701714104746750406094043109138418113380636025939881345794611837409635753513222662388476438454837623448487857727460767636801514187864748497264823187562065788302115441782200671639651898832233327059169636739637730942154609309884426776657063625048755610528880822145331545677934927801000420465538346308531290783400844035316101759861429299718989228256118192548699611980988303968532883390486430666183238826043353512933259876140333515222285001316386283313883641225722980324595959224694157233546033084554311177020468726677499173554054860285852330265602159777783372521729155649891378552884800733859550762001396151472023763093400840839361520918278185372172041887994070473611708279605051120703238243136392848194887822509488609295321112691826019555866667383548447752254504596673491795439506799568118092751406604314065225547967246131474248153392034428809016021802605966962553336777135876307425331158617708462897251830418841562824094286609241321505530512642901424864183422215546580394742132733547493214709319231811294074772636752751747655988258849317139830362061856221914853114299544537283098928149999656765640075790542212450819564300068763870222424886609063077594492126292397813229780364919151897333650668792703954087875646473109647484759662325034966614697934267927803788813625119916106748718478081125281911522620613447185235338786464589206564312790933132821719842284277117329208754441769906830040948967356529623733495183945867607529897374187019477255325896221733389140917103803108304087407753875283162159205280787405276278917723005409614426034890523112903302372974826754967231712387695167389764597937090690892293793112603766128978627082204927411078426326378865714992393566722112999401015936382981645157081234585428447104411744357423229361456670259620586538328110445465158738628886223971184858508048363136965954381003207300016244425495129691391641747394414877434187390534036988743800713476343104649232190082478500358615936256209120477638437071360775905826055079020538137594835296241531262213224729116394743587933625743175764994220106165188939524781499099200046001096432961320793658988465673137259612068228372659522743456120782552261174413087569023399321202932102535524492035767994200243658598573814644688517172271012507645159056057819104874295812686028104571677703122224733835442631502359517397096799378509908445456624502440979327969670639977488963575714566614217753401979268192753964280053454660907903478915998106905072094260345252718602182664451433607567786324127753852154930411771265785487059766311850901560068661542001892728442189673922327699180373041349344499167868097622943472622449884455574670451696351463729716465010403176802138338319271561956045310737984828532056827554920702458461968480297055647347797492641121153794099055563322121017795990035040259229699210308540347551719227926226101485830488349364706433119710639548854438464841149131893430331980737442344428576457804639955732581575349754761456604465872456648706369909511371196129382121094490572060152060970216849419897782444304851805516003586885532890893445926503341507679302851118820245211304654904919583056923564904727458790945907720371049551513386678435153021299579196013094464302981784804024754097437021616239994832732096228888628375583444700641535920472907430706293272046930773885187991962358363642825275438402559184208506539433326954147320675936341713133942749003264292081410838105361915426808748770737306915792602093266044809578256510606831114397214887001030972820774666749430707394795129962803184594840664712276989773768010404171589216602739839104943362138425591854517230466224149817878182485628080765037498860250799199221955061373769546111658902712292669399529845088642207755467208349792518817861454735813970850078241928354903151546659114764338881470350496239685389826568022354261929496623141933454075284934126203553205202906383851624616609490940631180060099865801674833570708311009166728102685054514616985598684288813486679005482972070176565825624827924846850845698692763296813755189432739762839353435176177431415650875902532963865011301965311092241438734537899721661012212023888963602808618108920126256703941222688372242762374670049691060920418054829342883991197477832271080334867590298921303878443023876368201233956491254110598524801203937495132761055673430390244319028265021506619109522851637805518508742075681061446086151391784435807412026855050217276965473374699387237032242775783448949335431513598297175465811554411481295415516774339865064865799101927908294182450426501946603982656868118918504788082441497357273954756028240444841399874336570654507949397587913633963420097421481511469931901516418113698443089277539718924518201070502170760981192120849378107920923166521772279704732057723773580292643399014782641530624250032170129955466762797283359483508741189753647600426393644145419534424633429284675190305907560479618465282734267586490333417474322203400918964322906752534784085731344954902425467660255370404105716988717114081415236325821900239791058280093041226014678212130109481302721903919491705392689734769522795589259715597654974136698057322038027257896699294105764053213662252974568925222145750005639778759833263537007282695257677950886234911722765014528616072272691647316990399266142244630287302334199798724256535243521871931763957228620081557531990435049400381470982445394753694975793303654357589726728802471063271054323567542564839656524498285081746765271500295609993735835213320018169859245018166116119814802273199043206370945842879027497412999529640276177054892003677331510609959629643467097901952895277344278301506811242024909519549452720199394898866730798452319429004822184367748733160611737311291212968101642835357458536532925659363081307323954986685087502671168277638879557272641313225055340364834466850626205990143791817475227462337656152800839025007558493707825837941467442944513118307311751925916271817063876265149248518882767430045861681586818312447923171759613207260097246615255579763455988572246802433253889167021447454636234087236807439488850347671832120885697093426339185094882309862244102334136070758141116803329799477122016907237623671045764678582907908748835546255258291760389298315442003941863752242463721200331125075647591978806305844117617644034472477236736838461775078577187801724496777544243549564198863883219774752445082187161640384188209814407975384819322330334257214491240111061765121862937252682734256205688263079695401517315282502525984918825408679006516330703975193422534288101418296329314136612294232573675931721443465970067682950912962909619785898656434663516256775661605945133553593455972105783109039766284608138279665453682105400170665471107693793473202470605707038118342486166914174637883759192252266244378630247941908313036518731942152013359441140879870483162942750334436582223714389054496792655955820172194332233472430975173789136828614928955149908935736580719778326774484426141434688432392052368279818889111792677914454390869115675880471822040938670292542504606615766467611064279034695869814949477901874603385392286707888887869587934069347800982040183144207179406283542746245681862358432622200393304041730911959245134546146004929941809231228859902932953673481617052106268740316873590916394924943909873877690285168994094871932201012109834110845650258522552196649240905912025843314636629447412979616210383473006942451743787904006354662438236268749572391824500618538102049959317341723859274446010753641500192313042482318044712024294017508579395305977931468315873813328959345772491766773427890112336889673375497532160624375898085422033979706996834467106291374020432971187593563391544565834690589957968572338200398958191478512131914549652020143946543675016721641312948262094979969831795034257550429633418308189481152790268703577736645499497702728222867267948267578406306079940487934438124357131252848746873652879395798410244123089732386761746849403336584771231954264969798093777102355339062929339820770767861091833967423830640004933811297034991558039537816503191761840567531820093613260123326641081587673755520247105176182527176869967306041268757305904893125146244755314865593568658828355564944520090343580710497554276425654834260865294614037822403716611922558894927646167345730551263689216216399051679828240672361899759459185820266868088081288896733749230989406847232426372195568602603929039306105734834215298747799438769479223023312996916299509180880518650374599569141803383688777239072890554362035979659136271857994874276486805915579742951605477659745150106316970858319909877983863284716316460885750170900468772015471491847977689645087659928335654200661911097459573589646772739347661596171804349036720707192863705984526367201827903046689013281679337698326573405893629745885026283665213911008698438238459989902491640535904500542502719009573795496859567589667952429083391411712431516590787240600431731924539312132134218835396998398425549104049240653715149696542491885719967717091059740966750649785412776215710153018136171472894627232713050619691927544967896572906216460720512700788945419695225858586188265185654772001211065187171381372566081364178651857012684441158046876881143467449149565423934776076126160331636700845951401256073755693944975894486196320723558136436656018750279364786354137736609552144724317495907055978363243684430806650974669574527505246961974487103278589211343318285332408043490288115369318903728096162134882238489600841172844848938411212353737422520131691692677425767495395828669854819747707495910078309795351351794326873271774731245584875411831087046647052076963442246614403749219421260817126916022904854645533221050701390576890897872583428091460291541150629203257866236227117118392063259717831476157259184109822757557479397976027275950971112895006118494707154021313109039164721638503689947148937966872089083343021053262312905951736920880442603299198785783779942898080257309518945831319630518764637418491720499917249893648781405353320932471305347841229480565857859710526272791141661125376012379544400619428127463374927869296708449468987362990177667355150079407303237183433086861813532725331661951931683922481844807150154012309688402748227259803790741236712871127348925270155983634124886433000396349777308445855242029495237236110490876610722340208954037563355729770562667625939806025441926995780717311116326391828488746220375198912127028850980126100372162445485691505735954420559142966806717797497132460109849746441356576869048983827228081138950066326836093449199184155827467065023633229556764560465540564567805398192218340383629204616062979753696905004338180576241756225692523541675651338056739361218779935419287891399660338548544272875794757855228292147121434439098257300550804053334133353403782869721953527829308002010447259538804892234557659619541648133050137813616277707190518725170229910919010236688768223355405144285329436705328188151045516411174346554136792863199660206561302343110585430426005615740172714204219344002617591459026415775284450015000160532430731735418399485361108729603371529385780447335657536289262783877049861898626422510960822626987294282695639515319955977662628740628890699711727732498783229687124577808284752289783246987954762334462292763329979590400945694245950761320646759204984572298317118059317008868267737040086004025107538270723705105723800977278237074903823071135442378362844343919906954678567229727287328651914573424609025558506067110605967730693919063778811256659983036991005986868929856305941496990627750173500058151555463530729213530765140824739352838863888326595596885778810973729967372312272896183050262231424299149750687270055497260188029376169810183301972968411748524474050639154560458138732618101306328451751203612754410762919088638804337567372848149905783831846019185920990751595715371695188855303983769180703864704657660294223736107683398245290877565156982101906507870524131985474201657868800612552580153025025489476543808890502817036124333013760424910387558118414833791143665172900808748871482928660226291577484797527613606508920625774441776092040397543475589070873891466076130611343907072818601024157809934683431340546384789866991742623147745853867491520115006009809772815088904029143180563979877017522256766380710946843201169362737829983267630172673902078363655770038243190054529013771545496512012962809159909330612151751246580735518597043664733966502049965888032174429328545077098178518188192378747578894568632242119914962162780135807095552318959192508304837436289208628136010019678155623201947928364259095698644131308640138251661454020499437869969275351064605352317259789599905745820692289249578387666687940005441818618315747169458134515393263012578875922013574281005749363425996689232003847811848521282910429261250911425289350934979721454864095270242828496779999271404310579666710079832047718837459249638214108094339724130986341898519285763863831159221226140039780508400516125702958396657630363552224948541093368896941289140430527665152325979288234700860011344212822829356024166313679818554038655218618166942794706482611204561899554256335505562939257988332674547969117312664224217021570352584625161891518445522354877987578929636075894941241841163047158945624632272283942732109242534757497356999145281792399461041588234550482570502100866802020573701569146411851344718111279831807897432103478427841145261249788159350818676031842771295693599781179860796275989250270607855077437389545645774889054993268454954696476350165361325613015240713949158004445989288159138837278205273934117174207848434464577505867008615879067532316151907693703591033046010815358101576714636720899799949175906474284818079002617145822864319220293971825826266720378957117059889500500415782904723491329223372781431929321186035477557347429888098711929637924373688940593474306098705570971183112795399362182598480420276186271617777687697438339184916762621862838000394516746828086365928073467018747746526273958940359189762256779550001053171797677233048555800220551123584540284012818215162207435784798743082793134122144030730042241824223622747882427738509041197288670276072057910754732670073600160282330724074042604293340674301568909306191485988003454409825651865774270839560261715202885194906332383406697845578658433584924300321184962019220040263667954627361901016881866026720715504372403468876775890014322970935061662801961726441396276662445156900502827076949523616349103020041896368695180577495659204592401337952330387391376841824162642450034165985915353153418974939271643238247068077503621139469099682344840873305311894414886251244390391073931314163164409088840404373316117834031377348885813717325063019197357125670868776420277639559736654874783146629856852495672777967566045246316998731647769150090852129039619486965851482034561903852192936814707786614815867636083830717944923153538422788796402688084195022758760880039857297257858116416547764729986130001143070294024721304417342495652025413324340533852816185778270370773542102226444936875375204457644631125114425015698068552837352780320132167872383487669424961976661460580791538875574234892070742870208816347437016361971109106766300042985094951464584589889578167593119680785021504422879850255130904239090469009061274093112325301764467602740437795848122561346994076977005038828271353113362063590623496210649364126071685330090366463472335741396651323307040387763360753499328341641940761483740323032515316122653254907165758330334577339759168009010595524513712240730890257880588053396001495672845210748596519028380831462154828841900148177232810616687514280774859880946954814373650184104998256083375614448940642085910094971278761155409839018597758964097048497506583571263501744889066752627107755784210642779446778391817506804530393972948408651843044943936859617658409411951804025667766068122857967838898035581412511510547498261888743193877215422041424617586798240057806910284298574467503859784752816957531112573885844645676951980464066701631124819516035448617652557404877546264818958269896733080353496304584860627122735961313066022796826711130982195126938571691522796583252837379894888980737688641742789132040839547807553562391941538309706174322567015359390435171289664663796772637442159036060520267807130753468311954958311659738184159623740495337594892834873100428828712435842120788932734942557517104792706649650642801363936408763055803512128754258363200472318781629155030962210956171528167079877116165696543602653701043062395591014965519962387516173087897641815341950338345730538644423853651767891903512199289638215288332610437541923430201847515229850129016719923341309938847878289881111999506822103736721293567739415083660353207876815911546268477543357463029275046600683662077621189211851849522355648896130523442857927519087030035657701211856380208881184469453737714386871640087294277391992456302917520662889144632487493519357659253412241761533033889192783276976986324167415623234114017396769143499707319371032471791383892373087129081028272899110669302485653792840575283630824718729007954024259339467614214651668648869628071389033413594197585013591601909774535191649098600745641410725580885072161975597878963062853865930400422252024099576355969424517782954283284639821102852633785391407371086011804114778742013969427534678022297161592400148661472146445902517761683873806253238178616039175829914382871948762822997179829522498588346054594534578337502393178628341278710834645344901020695050037436177367381202435371254760193379896941444169374709713342143556731820625036385019002383112533186527122110199449919939709328388842677185074039115946693088597014619762006715889686655516242472377341195634418822793149130016036159530264800646206132516166501130644231672051890728292879768804343241569875712617131107871940524362300998763394207384881174101076932243208624889498219980822397154261459718474070657631233256967462407077484524068678293835938405904503045856236888938012653755703816301215231664711019237506804684629902707629328900205176690478834041513812285646778143143038641598372771464372586811637755362766956518317864920757798525622676372560663605372281086964844048785692324730181593665571505460172930795919055229241128973787942887205667696170305682875581587408506263859501893455944415804532703039538229400155155966416542615341468427443288220249425100395067698243515946171939563756707573190429679944455982872429220159535391506518890359562906237938320186729700558687663052515453001823220913383795452018016194263233484093992302970616355900676200775558662127775882383169646662423805552560023347294360773102783487373196145043026980081390079496604836277751076937275761919448066276726991744699301176901325920531102575507785349583899977094625405113289378645257933166552435317908625892479252363277546668423872176192239063018712184813140480461859621729746580356612671342190332154347055145168420159292751662392882148471248959155410841350748392621339443556956122152364639916167161973868097771216626401025076065774857598691206261713197863911911971623040814798736333055143213109987196628793546865209028911328104058920531514267015048651807843112537238841025013578201526152471875419452661968436373851123921662985462396125979022887850591567754608800785081761125866696483134259584429395710140391992916779940010277363155583962977539072165888982749504624529436452610966314712129945264517624626233920788442991141453332325655571421092231360839091444652625689204021018597830643710266904823808506534657976045367181106788867699555154053386750526605126049222930639880009497242395531416006142071524070337171205567617904469763458933542641590647774219445852043921081319325169320442780289696980141124274771633885891478636092113458446850538299039548102880437614754320175593215942791720771748986049394402078506586096145003970637318263707763679618962977363512592725804331111598707630322147448514029834545421897598542565689483661481416913022121203228256905835702798201359394848901605603148130316095061079864973116860908823556263323104435679908197883179766461177923807223078368199010976256324541616346215768501838500097621594003378025129722237719602292451082736123343851613736933745623939492013860680470859348581806211219191112148267322250778057937107249834880422009753683134250417622854445204490662114968080202168827448310373112961307802335572812428761363690991933172333967954495948470036976192856088734763562058410987433873959896228704897086414994953222426892992166294294722315548115915771927226703714879212537205238284616217448884430112397209397396315149138529210680564949935474327143799339972726915320979435966565249162554420429438167283139863765175151539535432044087033550983464893079300815692261237878914671212527219311263202261387637004011268216560352776075965597398950800711949600509672203316081161128251137703399015698893404526270655423891677858870307335593960830507950839393472680304301101593284212334716823196357694144843333504852585160586754147529015131773839732115460214045641141310282112531733994797657639946623529130152675646124181924119202361973825288811382524038645543712110772184116812917234841813318562474780609938194752046557064094809952007168856479896084962209569616423272214910458040269955364155567999358466560567001648067310940971694701785893650618365301668403181788715434858927089651665860709072542506217454285336880622350576724160601417386339058735533877325817539004709532146271026467964194832792830811838161181604249762028637190448639663835086057667296237750104175036587416551070970569673815429212112268141713734199601650171933788461595334949456765347701987487046033510009120512574385207180244001149288755349172079705894871400922069500190005300840623882481692200002915155469099308193129721400366967329548530653347040619599621445370947180201132615630367809226771820820362071625122961399375998541883723211830550382069655464868667283766835278710285054083388018307905260553508652016735305105538222325309228494990027568527164790631428262546556000809895987198759610588258509371202958680987445918684150882714224429348200150416535138232499480889756593602830470015495637493522631993670619132577590412734141968516361161498717476077395816427023490152017444496732038776516905137626336529090012091716529475316652964665226748249055861459050262756785896854521799665562900346611900392191112343436894235641011748670285816693608859324146084627628551057627753889556440443963162408359713994950396285253825078112701306988393934385322828501866408794709955522658051500956781405865912589792237317550787742613735259090965015178721215437667226108787868904179795413893848263346283715664121911759409763430585605465093935540599339938220218211241913006998258170620399638458783481318582868402167961082155605431740131732687187733111851994622217462470652431435933874395694749355147107813580286465933847584163682646204123824175189954794016312670458979317933130846488584950917755105076023228795642463768227547560356794669574931412751311248047700722834967436201041064155907849435259559276355533285904766457118102454450026539805501088923354348942293657127625855647633501503432504556548373303850770892583315002464856623461532517360269852946837868296567731400151674872965940556496890652058286066203066252928392327048823772060277148570620349641152255354725069879582169023893895085446323915771073584401606774215760326737990476102876948274560160829799857972942856582881540519275253482452310832368832951226157140836234128044526665756716012930096351083514697805312324777291048195269404341495390928382101910063767519286611137617214099711593169949193106154630152505317931939120045203961349559485612543523300643368240751116226060876460363687787390638000384367245415057517758657676469059920888372706248585418331571455150601843723076593407275084396550588645740800112004962174400114529974851008273191350883147644630642466921617818058384285406780262797921265549195267727992885664466238274886795233187098985223819904958058390197807237471306567293651235040730708568598570175899327373319106865015715813379270238732389303075287175395780048830188630427242219195149910885792647077161796790370292101772746675297371876564615578971911622484233461385228261903176267826569383682789683901361772335208723242905786412183536490334172840980411031013269721973333377077267499216984416620268943706902996557418590365059312621679059828015689102566509335886819262486781536369282679545869960101555614041158874804850671077703991878783905916429694531068772801676898069487207449010320971340875636322968143169843788061263739117901513953945878219571278478306848763227720806971688583169269528814045386832852902093610310373957740318777444608154252877210373064671434479776966673555264835090002164383882049619476278008367492749241299700199767170831109508482931758691154667939713911196937121340874225279854797000123747933111839931775608316666701339589991856547572714954611319444319461665402590197598358944162954397150397728555588646977762249876009595033776775034841184305697829470432713169533666778694904950961744768964617877180627827527841900861981742359230015548595052983597846659130462895590441347662645267590488003213728017241859610837540484037746271263590990257504213444524178926048908796337049967985455091076963865941272936897515113783516016307437836090112966829212567516184557963971326782588727282484410814714008654313916458176181276164682753754407531951598870561667887445249873919588493677320631391427513189021545290690855509183915196141398526383938786078630950422865743544177762632113742353264667988670457315234986363217693535044961888725978764938658822869310559309320749975979121501220029706603576045392161159939848414507901599791988376574884558277032958269782235958173069546684362825765714208901615467177854198349371621204914621091133127165722470512570136719237301861189683939032357890110435093854772408790550382270066213993966621610994964475943074824577460058970701641315382580950034969928198668209059398007810899023804419902938055160106608224643822055422547299160748273696306787826776753677098074557615081132480376506450858497358654530451403904865571841746674744214148977041847232617649305031339981857639541020521049669803427051419313048540775436919842263105383479019083627850364615458597076053900848622238825245450974935472151000748395032510640202273586973103886937680139446654683318251895367252897680788243741539369590421635104549985859712555127731778509687732434364467132393168976757853220245805707248260827210126899980507649734387862546555517902616306188834970000625341217387441005538128251754435312143479854028660523593943736570582833983777395849046630853029967485611751023330033446842062490642966642664114447531789956962057299424032442073493146782936059052582262048870827308222458394167543860966396568654939013046395492841229963160347373004220704206611338068995632372245265790649952256522298478232115633220192120812576505070978669461203989757902972120441418874680471536571608675619513411250902422994288853246975336467288782615337943359778179546682136934520842833234353058149911281481106137403946064831556005810539288098371383686419360704390963296879232651809527809058345009222030318704103430887109064986535990026664955303142015110294206883665936120658998269240756785353619701632436813142454264062594407174599520442655873228367410114135000573297889805230859016751613378590247407812004469015501967149012542427457775619653616335703430156900340262906229432305967546112339600304246764727176644657911545619078614467610333818746521192382587814966484734148078443826083897129695077727504243604843398457076449540836582545178917782050720186607955248725305421536559473579599469304427330231285734475934263201807975302081850843218311286356950936894344748864232661714956373827061363983533282809359740162551986912033028492966735066654870822379260432276654584552126421034324202047417462654811211883783180498408541269939155806970481867739398480594543866841240103995831407979162324102864008933551794097368462275394364004295563746867695833136289639519616138764950099650226306353559141797190661999256388140382586063243308441642834410595102026708731728949370123399322858274887910352525177980358331168471119434729492917691206813330954062220515626907275923678828749700176562498095124640964290582417901049748970696910282491370912302417174292001408336831641073829375524467395972456183281407145524351982850910831365791499611427433646465635701100879218911251607193930983030665629594128699344152013067862518987173306161928428250731370523534885799867378252745824374870692410877393043477030950298676842918822053809530616856346506464603318442556906754119843069742238099020104528627347767521857497312957859506027732706540806104071366472555229809995944385862409039390271072365976736692893265214140344342331443515336608656560216594144993292468413012120590807917788571703843158557479658460252229013235040294067143467334216885539054323006729505152039026411176102683939108510197433480037335867617636152752639738635946934944040287550657537017760121221387616995927201994485095506448924541522682780307567086966457110004503739401198723307930161026402071743508704092985343189048197404520365905172245974404227937117629661103146607386983223199513502296268617683568652557039246809785612464350422032289207359671635692362238661424346628570295552867096203964631665961589244573447466491930973635572233553884569418829869809880036707714624257593279467488829947509255572370972867862468128999695242455599888254900666743038975095423699400094284242992599285679005421665320624916957182825196698511508279132347123932746974367708124889533797984148738471175708043706347697936774967845855487561912346371397112538557563762563644314351317586945991140411299567598957710557952726643921600589163000226616354700376649071093376864106520418102446698352440243107948899412512625933967972251837618848753863646091423991016163261020495011529613819232665934823565733314178298116949086473624122829607313898307471883006614753980724561602743427247900946038962272960230858454500483592820036878284417087005046910830658532822365480784721133569120898641192225113014532303310634530690545815723506338336904241188182523718798546683646170551421358897607564068137569584311298418717252734529605554364251088966194081448514106586492456499508398275795942540983811954250148169557979491484635567759066171062365062151941638983513799959567695829826911880779220388963428928744020155136639195034315156648044850989065942908535638011511612633165475432627654065903263127335149887196708992663381916630988806262183973837369911090285384004860112902697401961626287844948758969174164176751132845639683510606727447557904058950424990939648062405360785028498620477734550465068160156757302163965513433337797776483466011688434693963752075842807084893824282637547399622899950590451578123337809982734096138836492702256440754743809784671624763508790258403285612320854116772137391809357880585396126183680950162046615457787376297917725407772696344606563112903305815266582895113321191588314795761576097784772742598738944544140548025856583813346495477128507437558384799904541334497269606945223630825935461969435339484328501180741624302981212788973706637953923445832391602253431384741363793002672356166154103373874657270579447762180849924342842440110428868233378174358404972552879899328283578011426554482518826907470645067884620483028513162885502426491490704491689007959887763357636960485412592895678134743693466401450070132805097322845892867095398084001853240743530799545902121070750397375615491468646814897765091220119671042849921281836192668689385840808159226395044879243405678056971136894927758502817738532762493585544030469809248480085736497199029399942838250017753521777531457470572575305311160440440560545704434991966945478764983173645789224925750014475270467365918110323370048835065255864457890078817671956713781998440574757506969835401194132476004228497431501225156864533143385020683714536771895648500055041230558954569631151900459608322689213150610753134309908959981779390335748787803800583958594741109093512873718354152019042613880740290373869286223129567717593504154344173762359557186960300168602319544235092107263549555450997649889416941176941374898149084204444734466650002237774940118250458071830126627751792143875987273996235870065180532941803092196749868163332857278779433335682087346028065833261905029797191155783112627360203581077939052840458404948178003662952535867165385388325343200722024396900026085828697770416933560651971487734068544752229047452797311961706816383614451741509703218379376023022937600748212759698148926157557800465733715011606513145321223127286341435504228362032633333854662035198876690668220840919991316019559568315443806702192792921178607781479646440920480932343985245603655905022038755333735035219844251694701491520469909725115122751995578278723146491539260391368922105990461816257942137192417492766339179161881110247971130460637247721464961031463813894467900051588926191652383679267030940149808621411949228077315804489187977842547914684343497951894037611730054250779133766813538429475613744720687526757889455222069357248787400774113304773568479587000200694226928568233812901025393315343289865168361055542085237826075332908557044530442689657429843352247170329551233227039649097910203949008267344771073147655145221815564499307888461964268821096238747660318676171266402219174185163731959411568358226064116549126747759079818609217298837622116721255184624433685065907312269839331541410670751199555391192079053448411171293885962655214058786834062884347674536740448230384162090251527399370540783010813071734179099006728221369233711521803984562119012596006168967324790126280448808049611978361769915333561206323845912793611938575287288501590504888171335352748026946692351858158426969482807424452622277524289221221857378235685025803391550242939468599535557251545033677148909399735279588488164427836341415106253887857869851739903273309776126797614663413832804079412762308957691515604492409872587418433558605108870422668271216404502211584067324706501409404778213066937455498809223210266594167735714241760443284308966934171615641033189798172158923112312189494760448533335937561193004310654514447080882848781099566012096360465268335507583053435765955870900347150562341899146555585973968782655386036862605839852221451433898508387556116971526691326232001527407590441406609686943283060590827574309324815357975036101840102556330423971908744983653601402692804696580861878838960601354126054083362272679685960100628951067592861836593517415618629931641177428618616993489402086923591790288411938932206733644388031013457317014155365679532461867691571338413961734226234161414776373757228701836823225876178793247916770511000227912816152670407425648649725454639802468328095426461999978562097198923605904180897216316564285437359470693637752826325646090113473506457204995112801265443998179238995913429499999596032742117093460775927390441856624256370770179603572848242519917965727223421530005482101220270014158340687619450054760898276514516186312996823829920632458830078391076687109590443265506063341276455290630671300301988167713169090234148035122176082351879969068252888014773964511527141531950565676736689331920637277325853890235022724360673729523327211515709261516516499121381142535569465767817049351799236020493523080210715731905722627488857178636413083470019700118015652310693698953451689014005313869684952653240693808572230975362603356053218509729497240290685452304235998209518772597080062911796455096599960674324009941500078523753361293779694968702223816936664807124696846462584312620497580974611912156866028077748501650765470090284525638232957230356041303008763904550617491820358441286267460944582636201906572869598989109555423632707491569563567693624401522013049664903573552664668363781217240717583607684228430702211839029676809875843567711817155932212760429919849089718981059635441984678041527149612437836200431262410499135364832959476052508811871145449127406202652058950271558800062114447686815326616491607740043154745365416954103889526924011670989532846623685927350544023985324301610837181851856580857232539204463444447545093417864334809261874529500398590326353584817575392513235354521735982022885201209399263981876104022491627169861457434264036324636935449672265673089340881982130848765938615208768779785883923937026805556180973753992061139024671630209880448999559845411240484043181948579071841627840847482001222200643671696315784202994162898541066382433256537872929662523785093739887911490280661801554763961183593604725696123132224554193499831770240320541770094074393031257971575221377565857903632835723587024887755354187480499324774629707740765683908095979532681668827629671232929296340605802623642857480731203801420034193272851043784023006897678255349421193872036688598114484212151271376153885634713941527039693378900021156440699791445544934524847350955377615888046915372206744750253362067820684560941519257904998905651022046989629625050763968871137750240071284195634937236999613110364809290532696943663435286059002986982288305403432697718561079207955475645661706132225478789872668357749446863548539719175583703266953038785328740614550616729427093639811053265961097016913199030011372099271428608838175869558750795952012247826598151731434610145693746020586754269423824933513287644505674300131508997351982458463396741752892742373719568769032618239345278684376727239347823141859438348522817095385466293079870846147502276418703468794323159903737401290201457267040625486991536379941051838920769986456537565018737592971186380544378166151518072183875434159586400817130565455675787077739656293086271640336885219004904014414924388578325708501775651756175853684470070700404426451890488571069029556591159001856679556428632968280991640455640788487560836251761843220859313609982013727311788687373302704394216883543844664066071214701032857357379449471661222782280009259162753477921982965981011442838135317417438902687860015955173640411432178086488873250583074583907047308844853105948121932973752537630245890861341850462586414928611608278987752054419309668062532229596341885294716496611361131315561301317905487947358545460126515450271221322422529969711883042081408722913474492740397975549671961071921538714650138018672186003613511405941113821701334821997473207223803841090253779180059045386104029145037154723539180285603583015798036489948950102428409404890919861587993754843558245130956332785816076376688746992444818493272165891941924389319406954157170640152585085667773192328961446238465528604619886075455458669968268719092375624596687613700477201693738437946216142188239666837720735192163738916054857884023562941937586202913818472877333636786012442984897300950767308830301743377014828342083589090452836975431951740080351537352628619297980687521834782731570988982595721310764432492890108124482551442021095892890576783451788701442371135603929441494467822348517532942053135654484436279986462129020624938598566186570516417972343352701174017481440747803433607373746761698722985872142277203624053852694254097589091460667632248790417731353849444581901532586739552090192098472730115391895434862331733839215529863167885466258583024670763081951754276857726786018334674771817032615343672128998163161857611847653494823425303268269713172297829311929570676766453608343276103353772354341250582488035878673556537498174516910884414913822259768645690126767940027223254228491033372623080520676153700604198249966038629211074059093509047090454544498673843739770445684965064343556816978356807958901325841547493219760019149599391213122983688130662320019145023003459726833104060976284257866842536117952221562206546346340428069670264573367804589491954055053711993056135605899249267256375711972156819472163210978951903339098186940441415036362071577011042312725372284406118113126268322835483289103673624595124964205859376325971618376201676192247886198977883524353467155782849757505069295962094322890548522935971862531720666308603908873311202693696336504796159800319898215141001681017341148895422106979469197752868254545661790241052575347628978354827891197393057788353978874659777537604783695345565003510521292438661572412936590633011669228125165226084878513455058912735695926045319198809152626540422531073162925483378173207713535677630560521055896941780102262904850571710388325675718027851872450460663272791834806814747558387954497557268098583530161921697493128449004409501753209977700502381112162942897571791863532790442313722665009334499018142162969660169657068906039797359658979198093934926532243528203752414956637679432654322977712506088808391140297112723176599846125830403832806024372229766255491922624777481287028929907233134166307563084570907062658637310383886206691700936306843364999249856162418271034173892408639903188461025422589627725418164066928482014879931778278396073219581920844916660691434600521868332849478073664218321469208844429739757536076415947274556416820456913128732123837614859085400115602112833153844910122504383009745967819226878619118707993620294115441999141513260059926243787471895803934636884903537213980421129958966425718068941428048874742894522130496771286283399356967475602805982285168869779560957471459132575080838401466870222327155412676676326946755426848523293332629316307810368916378469634834036013329040074979931197545257033775410571426034884287458493524185673340921854547647924138591911330255228820060280119128319461401966119185632792390913889482301110911323811895745957795572934509066583508488597485639929952155872591615299361335474871785125899080942510020529049559450313224268650777351276076841775972933832860191992867767976642023391694842703237896151292539606498950134575383529161104399277682153082835921595704549474365595547430107767820310090516546335918735741639468604718718369517826131805335542934252420979076143187087857725653584946281845248698678367061907286137888962307402445935328049901511244547030560125675089149579230718480579751170795087984330976625474087912224671696703585162881832319569718465227632546108629658929453559765988729891472168168054078691730329236896531678299620731356122527255813413935443232347168877978736188576149552218191531511360926281777996499712978231858842598861434290928704397335419158758582020427618788684380547473769795170471097226526052198081241128170312562631907694519933565972681634261664158379667497793673498962263580093365651263787810295306837253475585784212117015891189053304175446217019291555734766989650829986485076656635828633500602371883499438986866223012207146163593673952184468936437739125329655495551386495829114715292988735016950254531699217352449528092101714740796300420570070337499024988925198740091457520311114299235544405641829195385806980039262171535739805869568995176970202832895524958910087561144748471467731584537455191867281820098649126354583976520974291933540391149792206103711577880135836183657527794551265423933403116580117893498061627257498625827502877196659788106665223213206326006492161123074835147123722908789662031162447431218687406895689122491842853257032577116281298824906942951307058647443038329173985103777262635644062874254391740486378770974113205597270608605276384036539614083385353850258377673054272175766879035534649299936398046888409556575719193655533166049661854458344013363701112271811777953506932047296943748435976905148114637789050227207405596886484963859692360154776164310640899012736383201623701430075112939553152538888476389413069381049346291910379056414663991644512936747581995120232538815969704952590121574658512357317410804058837423962135858182553636025870647512381299955116938583741685371037252150124951961584833699034289753248536604475318053847843089090276338212132194320460225284042185204485217485474937299882441531274329842697997060382715803568584486459752725935139683419482516123073686562678155947189785938020487058232850255710940466148444861268280889372079239179993470912618258488352714122486432745127698263169549843869564579932479654252097298065820961802847852900026070608105170168183211354891720475544841897054610389418425814293591836321604468169486044959112815614462885537597752419074438358220830163815855141742185095664001818111310715451191432785432976255056927731285700409213056462875559681970212457577959400743492565014339435560344034573351152333265420014604068231102956312456640457284940588920818225624946475475171830923677861871035519149365487540352099049249782867273594689851771730050987604587821143680311347564146656270009012983609483405324851470304954866919626589657350672009181477216316000309142786011942988521332206807406330796303186782404853467460439187395498088154215594958913917584127120514566263467091648194422692797318544210292137575198763939484631323237555681180300042283325298477443182064401711733692653573136297657242222869464187654408802161207773412022576701209508508831900956424561265785363510926728698845523568243653640023444323043737915952458491565208848976594962697195844745102153296491577615639318028562286712623246849723703418974176348146416348505272885549565474858269458558023460941150185007142969053321026424096618977280035378028248493951774177551188908597229002731645352387529877874822152135927732566443975145812914187744370959021278607527848075580874533511900710189634912830508400722990859373661662144081046476379120820483986693836162974153956522159162514570007387485252165773024221340006000130145273590532387431460306064860013815313582010803193681648916962565290924585887226291572476790911126480754468183355739594991119529437760478837633204440816664132122833061928376796733864792509133841109623833475030753884008490792363466687478205278107368234589644777496091467828328534267439502867594820611923514312335342456211840856430598155095534383684835671864129873045192629664725120683736305608708330602347317606665379742476377953021694881311512260055844282901546379768954806292107739162212102720032062556835503589827068852396312607966754848699637608937795896907749625545864584172948268370349999204879182829273652581760683029338132357679813279658595452645468357392217312772644961818656897471195923675146557156317376255674093946632295171963673488498901573075404212477308027920249357941623792132288683528665447056415434206604052282890088573219405515457870808224249749116828985072515728418727631274244015712414003387539757417024183506554536416046791230801902881487838534972131732088992676315049227191419767487885799406050349288367866298958293695741433749104343158221751197669267450983303277484291009106171897658909376607954181106258417318791079776850738911409923949704568075356630584778678268966355751647842165521477923447541415970838679199682241730533549260558609212867512533874350090277682678706858694030810544033774112088719215299704730784171128960759190203392864421265737083962212609254441918901720465780327028819524943877199766982189676920786594024464737782187570563023519141250278456382843012825185255572878487916830363885486121015005560124209851907579268710313496065443221890993857893706424043345261498476939880674747424894265994386457469880024270280694776742661714478671740137429695785730955243902139310731743730772481064405281619820400020888915038281165570091369232796277303260265179904188112692666987050770777704933472945295419199450571250524366032823562808204970117897143702248344649129143794058263990419694835203095039884731289871243775397157141820451302226040163314541419502579247038298160084173641296130025677639689004201241173925233577006407414843120473141401277513327440235978766721648960348098425063822791133352706036639831515799525131487371620461090785188300203324892251795522706521453639347151347746889589762891615802096137907411685371508212551122949136582903253458744343667526797028287759239586983853593428278330864848407212191762899645121726713683435827618762799354784992799402905469986485878395520313090152930031343876241024340717522551522609712304461260448228441673997891527580238774523632198264538339333099127784150371337068807435150848542797094912942940173658851105707229538808083906379488598091780179844157591550946976342268285852310355665273947949980637320101849310775856478908187824724497425400643731807394624569168827358892109294246033979998241278547412274455864805843783743884773390754402099419030347276906014081507353459077144659780494450728168944914605764198396400292082985471348408756776204215330363613329596229531484083240172995617108951407204366849455622236215984933568970711861381363903150166747136106140089202269033563274363293719586411929695204698379423447779614258537089066480247324438196108817247575264296283608083025831949835763168658624099324873368395546241038317693696450663592359084484344711127920688596375284639067745530275834703377512883510802082579548246490445523263883962781551612357468068029903403857936654937200816297420430374927466477591490942313610767592039934931679187465676597050520184565715544276842198303652923975022348684221625068042523731868460398610032273185524514703206901600456345981971948906986039618290588900349240780646913929354475322198558737239919888177995008374421498861491330035749944712825659935780271785795944667596898168336278268885919312097102625285192886466586558990289158727557886963555118342124323258617460558904475133440609109739294208490585708387006756343585452312039794076355627715269473686938010480269630289812534055289902537329653350876553595292962595513621342861612894225659664876747863928451151627260352257754432846665800380710005420003340901766720191256701691115205604552399228658195600506964155857778176144092686366238818986744500414560812493208996554164147660609883654282316067494730122073281400081791715011980669608620526083003151398514129263329109167866980434473903800372645831828123143302731485591543075970414193219461931152158103467249801021714500091468546175197372956297527637566812249514309738162363002816187766764588550165710174277158725392085133186372463825486606155573557113938399757903175451066733693613116580601958626688502268913029382468503991720922725769733062343656060725913175924426425347533781659853867064669558697795625224200557764720229928868924361357358785791270139633981701192479106465407794077398859982922179528425868348303460930420027806127791104936550850645661728655756117415773581207395448908286898439718394394716120875678422849848669642533948258110437561113892318795996482417277549990641526085007207192850336122759217313714127283125390151275627518534830111780478011910226359414194627452421682951789170096096276453578308967744855819739322257974186011827068843882216987204657371846766853693176395252995004037361929906146304261694528049433528049804667466700757774424871028381396485244382533339668019383600714281292196468508070482471704095221222206214663134949250664607877302029317300200321939813778209272582425576948655728718174300614792014793058529788314164066571799979751533342462468845962584718795279936472139719178825606237140293466087469505627386455772665521963745876051069520276938041309366942388575117426292053547001713565589938822077501147564712781575565771999010593397555403585421570164362894054584125761602836903823069725776775311339188093664861979179500377167967929396267192590723239317631066861854784046509498894372386185303654967102752978432297218470580948683316341621325768156956268306264923742796635432257755813459478419720805150388449413646653614778751889058089715266559325904084710653743303322047600957127798050453470767932362947546804262428737046068959335862981415410443371156825410965410219490589149181129610419521650851490751807626967518395788130658577117680568433948724841842396450389400836978405370917523942376359902157321224807388982274294140771697188702660438773196811381594549271907386781700691902699620686689828600687382648161896604610412145094731947322256921321953470314564201692071292318831176857852344064978806613943264221334925796197576094890428273284623309758914082525077334228139903944604437306530226625040761062868785317897023233700044058868938087241612958456526801300941008491830886503664794426594165614176034481198878506150151554444955440481182047397113347566703419191933418293186731099416626683361052765872093122822535976691958825907773546127776190916381527431871453150744034478603981324411227677105917110042602800686765804146883034213175408671094762634021930563402883299352060849316665031482571103565563737201089998276721233086726598592802099111574344877352852097701199219625291570541678687141450534009648875755951515933422211406425213449977958549196560541704101953866122990415810202385124005640135944273460203942398619043360602013402460709515373321042106356276066470388482620080124068674485083698252271420617078662135769726256610773843034452912852554118627906721534564261171709623927135639892024965495200878605093615197648039977149152849680860894933130427959576492125103697422529804690789582910354269630004138817879868095747515306890571363461695871311652301285786227999715264244957867308617587152829654538595306443637810369423617403441988498158977533396220148648014470562175925626327013698148904579021370809112039056318952956042560337789630080648943329778510617918673601713355463006178832442224526849131713071937652424138814985808756081965533923480557749652226065238440161015286487981869221151266558855977226102958131324856688011738049036202674306955140823107781654628811695942690071584949918642936008108590390500995873718710515593432910765036733013278834974055387009227965832552893625233289932369998613684518560135565443471664494579194652468666573718812958908152110882405571538592042010260492118811341152602571898187640054595642913317821252524948137694700928918545024724220062484208878328202232906019197390758273460794485996387284031689654130181730432962325230693352493207218151447569651293829342359883622854618339675561235327794900494469053468932600008415287482842539273598104689433838384463156513776920446242233470986517963411825947650266335109428718641021308283475191325687800915724425057847962086794720793913606575106206252690937673377396474070468556620408334926902120562195675261354409013385683802298051086883276818177432546517279663497755999179491156297982801703862588369274248123674943603644975723702195598445753201694629445310385306032725420843262175565667281534631731791948073694364062986342944083700277530801571181290358837232710021138341496239912789460975281271264946436706464704524038915232118772169276739887740763348903618053568849142184389379467047904507225972100913155714380322938456420407069746347478113899121211012405146767964838543015497586926751424539160933163587731647558110701958869356294790495963719913552146026130949298790363020127341233030615145475869063014644571653496198052972337179577549605283808822859260359408603523457746841415196064003225689495373738995116841464820361776056182445718987927166016732917088766801385232303863702304919250857799556981830740705538265554967432896063800703773658181114345967421817763277127637504619179968090274587261230634216520714087605799445019529624561485283470271590595077765622583369982831571435496381277444963225664284249445581029893896233248602154376325173737896167793242615108848750508390655499204645695120821370946455021996523860894731578191007381495245864311790017750613262311444002575278950809210553112119591640158476496220652431772478025136059910149169616068014310926140519290647662893105527676739892525842726516428442435181584563161635554429592605894403925470386856114061276179760400454347905506962053316119613075208083731039110241349544216554918498865160470781168938199592368682101059791735595867369040436949650572671135342534854387459756244298680569275729776974746901356667786512373436036680632577831314421616651366640658811263061142660093005546790341675680918124851951288124341549500036164214588338603390422345055319186999847120840798156420864105403797341698657240449320214684304644925882107163804256958025399153219710202116352807817317303079505081762152199671339853258472168045513966349359727963036619134146793116362834658139843967170357999703016429529673369448951605686554061772389598300968985168931904437121708698402738337880627257512964835224350686385182652100181681817331575380076095298869837324265785527830656333946866557774592701808703274607913545577971592341236824066197214962677832500704483976664513232724337885789353899452219400759174837019836202131657517342944228014451105927668385271307597439936051237866998306372212846584952952689452278794040175511576030367002347263928792910729019955591317126715883163738444823897753964463001004744562054376805257057313594619579393722724643322693082184420957317824756256455561523348144576178668588652757886285653641902290447714831740851602841329481233813428354725967363051965852694475840793610801697275177024744500123258897983889578356301022820966385338418323620138786218473906084192386039806329560475693438412403382002091669100112108927720807207834272494406463471708203779491440047087732233267940294300197981528443892015287857094544557029059194807473838198085118234211786807037253755316227839175397852860189861910543622589867065711784827027903063821470864645204971470333788888028908679925277862956443388785326760130960707089505936205654607746699661084649340575300523551393891461999174771278137993142198633827742923571310570135956887650489285368184189893712260473794989580405689033619857921772359539029964304080453668332975629290947085495866325170973203987518460494196140839213292154807958535517363687878505681410816349366368378801809305259439011942167033296103889670568767089489086630883394758042312826144867142840716190709203868891513886875502146955152258097007818567119043746659779951578803821718173272151985799194717633167577170678748226756884734710430700198934680327396813416136764977221418427365303724319699327577885778202686372938875884419157207883973697585740844860845646276430897189121849482658093735996015191086714181555958339352846554885678999000344344773669161962762501550543784493616217809124104440741995683545737424323794153233943988197780014937564226741556564076195007518484838651712761870957673017302398838212334906010257963695812976293946852108771435793312515634918372144704597426003011588825842735885820104323023674329092950108793488377643038933654661253513049942313917141732330898317543448193666174836742599932867627397430058102626189249269942548333714527721377622039814977433987191261325134403329368194086567442773252955173700635918092923717334461226136429540109284233359631581271141380687590094484809801678645045618521016713565914025978394267399934415913302245127787393463109514601095171242469667820937918362203193449901352414981353766294095931993176268347656579324653299047808359489016668858812317342889420155479103904498209296552613661238686649193159179410412121981965108084798098797921415334585221407606912648387518567465017468603134608022078373528349534442921095349635020536720400654766118821574791669125446109083772477033363659940519107915097356506656127636773799025458777221628761843932187099380830619171221675315929508437207636330398804325528654844676871068070723038866497279356545912625397625850833268904087363696227417799540347747311580402919385548409103985038670819666548626094993697193663650987033498418771197916292597533363950527386753447705703551472545823421452646689654430645671960086288013005971187158593879802469950674453223659152529707681506889460137821843667285376553178689904191814747901006168624983532298075513710605159804893642440787303241065948763272380534336709115060255788997375006415143931182301614040763034117751967316981187833669977259571552548677940137145722078200486142601979183454726042077142528343899712623708312453624008921282039629546648023101575288562464010296990675813623117041117463362042153965496649620959183731827826943669581566150519089271566217264411171790451172122646349125665384591884160777490473546393865752021698800043154761608305490144374327021280632222674234028808995079125915114831848193985310912882655740611246958851318166056715562706354313890684650443009901816326516369104625438099531818264690357427476493705060168105016164537886309797785413630579937973695347916575988839390354521442745881565836252243770062089331211619069545572904370419343171722089128028774480987979111473467886175736207742791739619159391058388925336947979243093436707634962668085188106030299234346491269071370552921343224692141118513803212787760972590799903073477788223443912473518213805670076874987104880432327271665744148458990889633010237944832474781890249862158439424033111952802078286943601567379370822416104128214963213967523960218204968218235027677654832609809590892831033301090224669771016637526547793470609540799798461696005888532701593955012581190096944884962927410050502285767824026959838655513454053999595821769327862206926459403990260782375576517227276336106203208621044958222104970288101471665486338485868513745927645230416359156920683196560242532278136340690711465651556300474887564183841761680174442230823412741301820829256742445463586283523146517845873422811437156344973698684631546894739628441012960236956520936590588243257042971099741974652026566407067056148696166699246544290660695406738499326003010874482994527769523682762836916454519723437891028285574058309012042936269040469088293753428015673173008642738859493139648187731428034120788069142848681815473450378758605538318966757535131131385851840247959006062960738529643690428765622300466310193515186795689692424404952265642170781768270207817033364833531536557647354376144257056331440747037676176006909516298069736492075074306179151055658279947534051433444788495748274000319690201108215954377560496824875317013393563516899175784573345012650160529987077484298385693182335980923557474159544172329816115453083951547588721019622940395915033756132315520296691538626840935388749138679682916153097952024174612406612874639328574047757918576856442223506697531015630441999302650646542250178083800663521428122348617643565461108591995992614613375408398201063732583973229662921427092428271643261108727914237113983998353162300635057872098596272473997118038076074031166845684285303062715199022108094646486685922667271718026337294802394638120048322804930719741259450434975626699435913715672959939115150928068976199448730843763496434056531661925039000863433069117016060300580270630166659103737199665201368225671278510037375855709224289694552626173873416660057315176076201984883665970143581131605187126921934301929965981251816579833693418705098115185099913357186660450250746623492861460620570270681231565984840280478443834054079074049125778294556335199600430302291347445397500093470058180221806571336558806704321989961041984963733348442369817613084263879027577928014822188044578370126702678725411199565818355079518282202093139309849260109687202936649007669463097387253211143014414651182018779349837044697357924934794477457329107191164714215201403900380981740516544660811429876977649302054845323154454102682507287156617298005535534249338825465376305021574122551997991747004185174000003056776505068227377850624706487752125921713909336415323798025884606856734835279793137479008570707545609670253038438679345643235047088919530940662786400627736280705133830659594145129839713991457727119669292413026823492283387259973661772532336660106243609521221073440120940611131602766039764651474370000724914050879578910147933152127676895838166654882245705525780756532133828343141538284633379569584122966446596372566650398467868500394785210905187201602884068638177418682499017729422255478036822380454576004000285681880678778632218183038889979152550628888027359536733901317015560032292453002863578874360349732362760373043682885956327150119757319201641697951323078537210589110646619401780184986266725587441410935847347280706072693278650451412510996742217721398406561672941654872065333830989624146277005221026530178842605206801542233665613015746494057351768959324352550494291679943109987411103838642887612221665237911930914407319867360031425071002482867607266557810102255996614035719741679049826611353547505834911786860766605115220721435688077232063270327639273451705186313014827232870373782018239221372882717845294361786067138381503419658698993675906125877795493769578024947325699561429781409687728435580352427653751539716673327318491519716012514287301689900699859898646818486081691675322630697767421174154506329821377334377281517486767003069036779819197389971792256110197602592592283702754792936406757071570635325240063393092067022638629845265321265657573453617321263590562633084239344759945966261974118854096897702589748454139043872365847636311816379655660691939270597098117736378497119027039518370728098006469703964404490928706674610192275411928563527650961885593110253388381707094318780737813941797389007431691426739874482769372332795700065082758975662729141315186688327662503222578742649112419933062665269772701709398401228356688523379719325721893383451667181990005260463549384057465915564593181264116760634481162902901255421258254052515561297666220253069359990283781120225175653436028423793531064999051020674969566676533455544419370192549071181325136505439239684624044034677627150478443366105532291901641162306133077081033492658125565931038414759746990639588312496853649781332160459422778464874020653198927426381447805164804070616179881470325730216482511799214865342189139923923166163081955784940176300048791744908397496164652045827873926987664746598209964592236897777398634537552448248025541316357564252463879504856333238033849503345968330835237810924030883570820749541925740368199191049715419419020907100209955547025059977034432412376382014364934154387898156326774386752240160717147682439458087040235551934956377115622634080869705506602710651714699191624569247719764321979564128993507703182853202367436049757197440965982062571210269634746487643507305641756918490676056650896602727068680970047292766225077633828831059475455927910188162599062233070352146330365658224600367452000819403984578443798967009968137235243056219177490184821832182853904156448579186202787848699273301172784522095106426174213435651752639361574265320085458711053228457715314214823850711764254624116550585061803127365738567626148098152632062892052578678232879682375335481001968038633611515280454448622708439960130498686911009570818207593376475567804923950585024551622784666732529683817813702169154968908208759870114179189248211161290416752806960978295705996945826921518517530863097210750935792928095957621967718734559271267951645657553022270526086736678356760414905400057088743484770621214161455475286479687286349460230114856618015526980167557705452714617391426918299390787689608678431170978111686921314360446290540640950665360259867804664985498340962353813450631048360221057425603763274690773196876162375802042623189981651661726936709482252475408480054594527442230561156584755695571804869493418615139580023421847731426041680090381695355669565281508386735364873349043776953953580483679866494350237162687477671471409175027150089256211746075207502635480838228840162336116520923917898280582251769528707951687452338030503072389669527650241574337584922350126020676952332962241321714452767553470151059253825854085557260332297739199876250101814037675743033362394547245455816925741337365452992618641311203935521410764173927252949372044438945630977249457219302099790750656147749624062198292991341519570590647793295297767415505293124000661737106408091499523170735882555628099772224649997504113391788937958868600517452413295463238406860070651398147925234341790180732837515823503819893935464423392078532817344512738357502904626997158977902246154099814370334034619899199607436825010603314419806400650585186416623223311406850099597374124574529557022725849983955218813336516260126253176799598580677313811585285953331426748286971139633276843021952637549135107455188235651130428899230724725445456487252172197202923550637874164516041393844693919892593000447476593952976070915954696556479984535394174705181333480849221509303186364419490171468584300654740304051317796053361748959990603396811290530513286175230933656772562746964614595243784679358800885235649699556741735074658159184986789320149615826592747980326100054458036810557226276433477107215945778368499825475728724113996528771656629432648963031610992555331400338648015988007364029688603220628581022784802597724445077012071989233030994943679918037136111615721964139745373666062522361813768038157174408989910651340861557706505598706741514046192128209412852632404186832247094643243679565813200615283341172855569822534591438165428242343693737232599112438670109260095543842865642535886587025255930809263864212517148369652676207288663612986774866341308081635205292621591003012151659464214888731879925112282793301342942976381854711864326821587577212086762671433265143405601545129173560630017516457578989772932048688432240095521741994465850986616168518566170212962531860649984230276309663161905749914001125351874012744875222521192018738995325381554200690945877589425426301293961158436890678180685022326002794709432627849823355850470700188413548486262217548440780339798486861386582266748465709366065586567403428704248854681905497914854793943176962101540664270514574980840465028605627345465499805605302086765377928505112086674876894154650569285647094138598162966924875600693836966180078005563982693735482567064377225665194105394355290572614537553117281193834464125194836818375149487048475798618514499037641160184177663909894282565511021694311217515685227956953143894079789356825692074101851180347660727444492853153310289515924683885380123655074543986167970184327293332222430212997489875327202070051751487076166245291171958205576644087257467926972503427211244613959288871110895425081625357578452476904069131529108616108321558289113409866927795700576182831114852417247376628657622104507725208931344920212024168209424977317263942991495931961439927825239638406002025504952302105351811301325071450439468002996265136674947092221775263972718574269254060294050421747185490975278405171517579647967003654635092996659651015483468890826303110330502272018679449156441829412419860298323513337957752630558215169759797848122572614382379391181130730193279331425456210170786030371994150640278369175306242794885682361387913922567224324200051818758487984365471221762883193506832061692357469850683729264307319696302196474970037513871223959107207391870469175544748547480390533327956241731840230404011559728667826280208893199545831466982327049261792726559344421480145856007890652437789948466536997014778054300100177515042507643335300871676471956749617587909663499421789337200541999476419346670521382169125100728653678305013080596446096182063159392295305103338709526804093408019026065859083468486358374558580693664616226017604666202798647971430053491172186169947426328587553632778785969372984852054749266271300170310490000910452129461211131847630901420415985537480362288660060573610236107381285836468789962252112340698133680369760003777634789898990579591834683016509625798762843060417857406720312548082108445760896356890811333552893895494399109574324142608195003243690565816854635146008015168683720132674781429035217530229919148724055649022832137976174332259402931269935523933198347734915851600167784237727817182693226852525634338030748667515491723525963234000023038829045504851840516225619123798938304325593883348175413905647100494404750243137706908389091811688313333836791730813329087420655008348963997085952561031029923314080176617099692684496390748455160271978724033698104553097831754819334882817453766865814104799100570055011981393290311485832380202635223950477020550411135446669649292821316614648941309273406091625681203211730819317591736039931736577353581297802942667931894383030525063902701954747395495918688919969119791192288375522529792025803250232967588579916172815113721942395696641186298315982994095821591779865562733361509137985459817653710132944479198015172495865855634997503317847710038535698236668134392387843725434329654476913295743331473685629597029087408837876765522629013785227886312605504454053321686713925328401284376035243409113348805423669384375609853091743956375810504477993882829288512354880961321788625623881820354253143097273108477517542179659165013053046838773621092979776915387156667936393027533387367680908104827503500192675870388004947913130589537880429084102926279829717194161230299898151841189653870665422379016313558019844196513275758071364939790055334944568207726181919956311930056443929285928476902170267499924571259817037420613888103217795274745690279360370994682470613251596972151702084798336707274107011002907621437702703958270468946332065925957001542038005541765945507195325016321060689306217450531984336410384487176127071576930686175707904392432707969477794235134130742612444556256937056873553596587249111007232151789483564408655306920804342216822695323431125356346150951663133356853296759840296285720763774481981879902214818286596887739889092492750250057808023874538048622158434298594296386016099811258463326388411280534496248905964071038394850583356902569155467066121353924750744172261542281892752888073298026734020760205249844004139659634500161119691284957509224671433774211365146732634275782588054521647920768875804360394974906111603279568551484786366449697870458470749823871534140495962540104292916449116193552188384746442674616353339485859924932686225884128110659135025136131442679010625436551936374715007924702635335000402924439263564969567603284828258610010946731735455773661251558534216139241904774425446754177526525704530412408302186415143429139202169325768568753270017218993537658995188229044753133037683783833721388697908718147585677446728799240954104657085124687618819883328300252343305883917607861364097182623699516778309844214655224320378282266171997845442719298111294035593851062323348910594193673689526947062688134696038402660809946569836136017593451246397586598357364795618744219619784178542723666102794379108155365487681378254941339034088116756905416589692817865865458205773663013858645819434538907640331933245089591567119053121959889076897949965272655899428579790175107458370396661452100210286020036142488923181501339451452216566992563247244635895739103257133690663386917278036503787821042512911623159193809889564477645098378564014672357816720599917061810987096480956429791846518759036125087497887561012910501267670727002216461999585030129916632220275930065087378695993634174277111223384238257271859429716011462908214159444291449586013752547363199286599541865764991589690124868503145231240512048844030698989296506905279441957639073011847652152753873953410406056274372892860136683634703586586540854501097787564942812173611947875871485683116957021936883066028601191931150188293862112773294730837454850367671669747743842242756824236671589158622037936492737840644717121401861658949303660850399890560373161146741965314504443924758772917138860707601458766972913142515486977712418078300858245534655971005012225880875221907838719385484725582602412614085948956243111182199035161319147526717601010592180925343248282020061060730474356854987803108624653208583413387472976762998911273304051444230669476814591295166601069292629973567678508404205686760480812580467470261701404481248791783038405757927385868602352727304914027667815707688877282100139507202949360169329792159887445673434762789112176516106056688408004755350697195850741865814050338244952966646059793147155173000859584461745523495773330398842004068687074499255095738357326416826388833303032256747684000211801577791282314617919891269245180397989659382660886283326194354183859095658829691540557812410357119503931823557413945433383623226045137766933937274359379127535627167211245298505924677217823775269731845176696950036479734736529539194407144997295107877457118782170362497131686238470386730053944114861784020709032216662371926192089672528013402223059875280123427740157569871762267671726975055565670942660723606059414818686884325339789716494249566199696342214066987607215581838605466507456361069608938649668086999545694202459792847591940686711960908337507253449739261179497710165594117100472220423110501963132665887692431806614738225839195710667262817784285378658581466114763688863039584788155071536059760291992238004281802922138328235531923813425861564002693054660287506123462942652133044559005300989897318745661275545072321257032623664941800429533315235632265458390515656578493016525341700121293864240047441952330765694759493280460351183867354022389950163750649371790514923554987071696526739109528906364536406012803619555416121820435849030629907955952534011310099648541066178418621954388456308574855112532435956359670513882591227409424905581774225394302136904932740423997825567131254243207485750239511815416141147614487914866397836116139255250192412030521361810534056687508411954239572437698971540923813586419527395853652492837638153871650590204712144801477171340429054234659202225338223387941284612143392662461368535145487366366934928572189892456750731474062647029746186590882959928749370539873283467640692561133874992474972164900242563223369609534230019582083813623406031892284029864719185071761328788237575218029682465919044746570492099814076619800319176611187272322013402810382169288709313052583045268412520562505222677704654841476125095500167633238309956737379158635885731000295025786065157212582297524802054446301880768952071212137915506212927280576506768942960450958729356096227601387783724299934073097926792784412799360255678495880079348259434692298519991781843575079080166146492834729313217969580657976521693000508430552420003598672474845874866216909917750170247625238221946565329902318869322250711434321499368891186751740174491543948854236701933599515211485915522862960873962330146280390091747259760080530389838712097162179857200254874201659030995920058133401233949028557723122482114253013257501638974049400588958477795843454627998735528771877023999039147866698118529005276145100985713347656840650561204639572640179722059676220274730635746863081542460693890322057657009905791696708931719507045428967971637299518773324128993187550054287490039017372131937928461438446596834837738890216641296291431709808399752760762615458059523550652881500131318365935152593614187200366889375013486849143658454422870635650271151693411217753091341367160134521873444881086756071782985596428791647758971567139613961221097186511969324128411074792645082996618578837869085215950563047151256526195485385200742514954809013031986978166404821505009271675652131181560051446739026536721403299874352858771250678444292464018508242876938768659174086625631953661695706473307989292520072697302661631541872080674755431633992582738653891598509132206882117084947000175471804911506850274283685372151164782815375643331527738062147233463138403555781285856336349167494869792203066056869692689360118157950182425623410386914314025165349100391237275796000706243504624388808926834818163199430856257395325800740979005805933285909106107826505266993486805443764437959242245853022043687162533780601748782940146195936760885387310392943753658836251056283537464376205760315100285701456849492679470132845256659126930931034880883211326108995555570990746102171594917776956928405102694314463074141857726835549186511159098316548825452503404433782920318984090517079814453963665921149892958292212726201946707276561598249318063825070938140392446372063095222632472305305616278737993468644282130460213232738665477258755925056591254403869396429361379686227835815779713054405353679586777699690914361959536986607848111470485945185512322480290501587313953532918940644908622550412901634678822571883205189235237204421286131542359759382705014581743222656957383302761025476031680536228088572698204618455364720154675833795095244950104090502078206376133659629724297579221984853408238049413792033672126719900530864637451347099296200712997092281849396105252949886941006558262894775521952394767808517814797134957701358182168109474532962801113553675954641307336153778947242410252907723418381838020484173039609638957258339577399896707789571248917387852908126884987315458712718912575845099581461671857849246241456478485471429216883392358205546799018361789208322342154447346034259530213452985081166564926854783601384248854709943476804044549971345871383792093414883430589093902386213972979162344288952759365006595214745659766117802394576971991123870152348202845216645401785119256442618747409873224181891461687819078689621218246407999782592542999746589958964172730627936284960021404577805871390622602668073735851976704118101924127709968603566074295914976297896801813952783154690608615583900739867440796897016715040556148759846976372408958846400266025691845028530341123286897045744986224557064207439700135704568649287891695768636409250051666170639325158878344077840706495090934175474453866603721790914012154880802288840211282906538948847314910491569982340021148560137747281100099459272205627226466560624778907525486148202262151714135320110822869553621204333691694667223025149918723611848193372678980506847053986818609302754906799532806735685933026856938392969271453339257758147285769786349283997443420125418779538735392088705604401135345324233722386058335844745765039856401916756275070128027466694458007820335062281645115008392440305752614527747696935794102748599682937799618515024183404718480258448202981649804860005997212851548452238960286016439311194994772481749150810169114198374379292049016794243457871826294059109437533235245887170440656816816092010059003330772714426978039556806251357700339914312194513456019934410405855902374707709033697544345751705468161152308273230136492304128256542326313740281691803103250708281985698431106592517870876473356113046027804195447592901816119327428455025414001398848425902341909802887548852386008115275803251920507485731499412862561463324070568011840176919121595861737197605371883934912876357879359047543952678024722030054571753247175306883363228986887983609792291422476052859279473497764171258579891776069752967760669299021624335259499401219903215191894500018587163040712686265076513023672050197783570314166165286982284718247438304077217814217677138769294339036402637432857054747465982326673437017143606641397433577369330660719805918428510624633388087437121508676348883615467688345562270649103635430664804184874205586376621807726271244378945349790541443861873207657045370942140484299008733887818635191118014126690660812867101044080769864128717422713370838729993528350442965708278413136010472109145641947616222752573851500471265679088471384006257303267946048051734973110425774567263536678479541727901677567115481606821902105237463547202720557214561196279183403469738956436297401630475008501567724834920353264968906647501526356885683469557334571454878708293489187392666335509555707974271826009385722084130189491613379090989214599171946497224432007538883379826628380547278515847786088461872508913898962028482325295719845853040434908378367822280258184724746601502912454820325299597098749092858254807137634628448947072437253594435192950503609317987241316041516242830880609232792857964918607317398323456885765336343326905398272757272853198556899694523785382751960385955715779197390090960422281351264718743333616103615773086128904043062139000989286029423520081635067632774575546331255295057867552081396411843458039829485372335657183652931747113839260341513657968200738199037397100714783315880443155893872627034836846892791664587785526304238137516879447558427919123089717289171232253958513576576910658830753142764502180910566479127526994803060938250476718979359393951680534648984565397223891755884668416319118451975213602332790462993104787747607655534734567096571456721108605125112686873341604687503476268520232099701043454541603384853057111214278899426924564451838103342415590050365177640789707767567808047699932225478783830548646409575358992723887238356243629486031809226715703246358181684564764742238149225520514463454473728760747365886342700306284128106491338898389782759407197948993629350524585811861937158133541380886065827964600344016485120282117388275059058986365461851247442888596381302755031918176211873672764962553417394012920604260114738679347529246759631942937983188801807915412875826708960890528605657203529355972940825413018405667306575471749698904473955109950260545003298720030880845434519959516159844023208665200875903999669070995919005906985144177052107739087671730153908710547344867855791462541141764227431889738722092714385418669391047838116152485000005086952542001703787490662802555587705952518074072062069733352414259578764033275423450644671582916913792585902057384849005242560035279763944048594547140500552168816730196078268742159974792475301292681484861710371631681440489819831334076240776357743262503192164265565205046056671550429016868534606860289769982758710973398080697914560172803745865166920471553493288135728109342875272508537475725746770102725093914447068242818011394789531251292688853431546130852177739724069223419304529724199794943174742942649727072522844283871641055578059468193542152047494927874980816621159108709823297361326621173275317402958986100135470136494700128944134660710565705960407503541350480064878139415045291725736427725755550381148475469548649518365816330649146696781239186371556734286106489862759140456698924329048353462814935114871171481126319674791130831623367572915098426639744715049358468500570475003583894296061440023259811910558686435063544394503644660770898229595693814004978696519994509562265753639509932217497417022099972654605980541873656198767270084226145450532576893897889025381924631359228805681459442968053757994982208835780535270949017746698889845423147843180985750958706723283376143424228907283786412450903364511977787421829098972683321582532161131607715601951121019675362844563127822813626435743945101521719088005974950549616080054975006460858026495760836459134103553329103297309120630589775570565645758840510154369352353759948789476702642000116275186768460705976806312499303197124691825980386650727537133938841221486784674129919591367657318971540389332220796940207521311560131396982787150536481587461881207322929334568534519521508673878685846482061130161051205989407635300348389181419086839502480611801797251057585163997560442487116187961428512382832685328598388743571346717548894466388346940984171585039050607099105502260217811262019080832851485803853656870985240224125927273166364370959073617374229973069298441064611503354227935354536366986384142365137511952139851627616576523782779991975937472994017940814713345975416362455380911821680162908412640544354172126476582901372249173608645395087979695923387678729327949745737742058019969996387698426991924053146303506164147437741250703283218994123369947586447052223240186387811170978392908802574805269284177961106714686758591744625062307911453099679465365834812716836669901820273581107119544808824162833794216065867776830769555543108737674335782537655214453482519967133663718283618228169141973997711483915654185870499028943104780382498322048536767470119072888651017910937982283410987205628219348819914358068309736325635232917283090505322016064285764335475049646521527986432651043857992038931864759001739853780943571542501389882910063782992191746481965103108139654327818243885233583031008779512395946219268307808380028063550750204517319223323961017890767379961573648370973525951959375675629300802991227487763930971394687589494122341721812978222817459343194858969588147132099043432906862798197747786385202734630047915073257204080316601815499537781122318664527428426244415838968263147726362896010190167606708093722741849171533359275648132771305582403912722183365698130266195888647029362979167582968883899455401831430944158602764199552972239369615287258161980628759330063019925650473105918968515569327148914286909809261932724291321822392556355117166317718534544380323817874016639490960082101108090086840776308416317616261256461437360081870079837049165882331539005813702189917903842066477303502806568168693686328134197312183005351720994533626285642792742937203293745246204653772328103287454799938113529339155684366141732227492147265907192920312129910856502848967421328074405654189637817487597079797463657684252465139376879279020024882527654029353235047526045475147390851833234602471243511495566698194850488564418927006919541954174257823205420006771654174653801847286147751737751562414080974254268028758594673071875374434473292088911233574454676042700570093033118456925357518505893930376983764626332331116400383225062134396868150469297403232241263869024176626850576276528002428266908734373576046052717412088243150177137248952387636768968303564212333197290250182658253344331211776897329841409087658124865061119819283502200971941213640460469116742458291304773899287746307399121863835668705621940479302510771503226603035307953848875274775832302844175290069296053379702586585725331363450393278658071819104396926583380446014474582069798121676763818458786925857339310386920906533107952784208201017035121646504478244976945056368939343738574473765978686388047723890069967259968711282277550908337458937911070947570964053764141569028901815750323662632280361896748884320861474990411510815418503034182536366778718156563061490009806114339808417797596531520327617624821538879025594943205338419415411966506467121487373039627101845212214761375682314517281986254104749481280406611170051874803834022381191972525118512835011537138757517747014255886641848332855322533771780622106204230326165892102677509735647950316967869013849761568117020842781457653931223367074423925914678195000312764872610781667201232119906695865827778963266642858701925195962083339803958608911785514303577440503035110961400410817911482131791595289345177235104831561226416730289877926175577451185613864840354457679558312072798621677249337176965992085648551079448760185689635913663165254301358397918749544189306418972142319991511951285339879861486240790515517865278895683235734121960703179191773790324869416906743085750735934675559227353055119745793703775694039681645694829713162991465474315206905131791706452339850561159149436221848974014241113665863383517260330972899262501787178252028185047843691830913724726789860426293569693234031775067882158516028253101629792636283356494097775153893069317349927164541852729604381137580090291728271647006761943415557364067254830232381004261441894222878424348485790429004150686665868571196328744846783834026249352556078195947325931969346958244545518529239676522079133391847470057621605782131882504735058074992884042661032690861141067964158449792571804051748077808223212113185692775421277461759854690912967944686936009200213345259400196176727176133760145795004903351943685638384979319482319526967939460207652742505471065971747851616499065803519280357393400005615324772132250956724659702480363351199736042334593354053463950820160466288936123753776100153765421038634000050502132053012260310677806771309872001501593478283085586797307893071748728848378454636936471250919176408466437416134799676726485852823645550831958196740496758008197086596739067824790401035826225754011181182342291685813128509374949018872930646192225663756615701409300881928722960369800500915452006180547713110783934249684774841996705185529268316146891372024529654786619174840884012998505918401641977879365313741865888278899458412019610415378370018094189435699358158413802238863058188139683874618736183086993395318312739582198583789834225493300019164893902075419746343092399796050736820883840763859047970853041781726874468136081461233533597261466314779096400013261669810709519188261985982690076827558991867346542280904583949186779086396931200059116816042332483349215538599862491933797438575691426946309073248813605047328922689864553035890071526709983155800345506713989077729145637125046130658696232664193397497975009143396750277334062244010055551720534532160445321488322086588497196175263822215503203044742190458677341859048867229801530994859916535790225305514101417631395108476300033450055260067192410653148012803417022373361698438628532483365778257379647041688093493988637508759951151978348399155712351028100549997798839071565144266178024515925321210701090330636891558982160073570156390941618286329185940606613703660652497121643356064746146641719510890180305938287911962417481969596346295154945607833261950546949937975100621745521948402846891612234593604511636401392391779265646282267432550811569257170745882997555235225405192448038329722709204723444166921455469248147589920028229923643963792028755106472167596451757262114835346066361640648152018093190132411431180234437089919482631530231862086861945388012556447485563670257041766446132388627652188959068944298343763972657003742045997376693788275299549939743007235753260000684570838000871694040787970621022676334521564583715310061093299843070740680416899958702558326456264733535620633746414746096337716637763069733348870889725634818391252037937908256213842565573848763892076632523875214613303695339374297442196048007025972221085376096935059621352305403553594645043575377784340088355851024108590010428140141517289132626927678541993155328392674699411886259315104892254727712499290105852668665908148352815275121771876478582890630580285380225910620604879789128423007132695456586778018149120927603097831361180857102380043128405908931896174307892772840643863741828853624564455772122933143164644844679740599200236326743402361055874239946790727284242357488478921381100447336343717113239568440428314203322157804083527097050709278416005962451164056507279244629938071064598339081044256179039590846152317093546970373545948757415297259005573056897110846734138372972274822297205604811931322318373986977546841193218414880831201359248824295208328106621167201189116903131612462322583819419121121625988057806560811587227094535926566017544311813904242701460792251648411504528756697230843975447820042894300569788377576573884972994992665026711311033712430161931197312884684869229544033259749830548489910787838641906918952514045871966197409900961149800789836626619550771106812892208452283297499342333619042442284655214824224550437290647109066766731567900336499753619713987567092480319687354556657373245239828235871989312174302123024411000277052411470428108218013443963137410557537878270798323844551098609621089826069154828537137666468494817503323100901153083866788128394105910094557817214820310977200642784133727801014492036676712077631391642511758368305571038856304346968827615094198731476840816463213166424609509797423614391211317879319132012187307524028160685858686425611100194899322081045131225548077246759264611530001198627630877509835445456367149076734627137782209401611717897774894339684131821124082233103225351979689272438350615669206796894120529049011161508577995698807449401752994659364232042456279713474388746031460405215154951317963743800378032525865399796816974189265782969518506656206291891647885717478297786813068768415899750320822190288979148397947895063781416794594950866924305482511384093457691056331697509164186672682460969128126053938779411632015399033810519987739114202354984247824292333427756330330220666477975229776411603583648874195686043696971297587184399677680864855073768726648649116369601014750336361183484065887627522433517947211087455822260763875273515145976769928764462965084526878991468687080244849291337813962319143092192961368739630510483241147816550249618721390317708259478955216397112630741043428048123993619390464133446611152520724413820755299254965477774758553971050566751722831886246485185975536876311678593495161127731571264583574647099597815514307648837548300319083223416141048978937816945794818764550509204527636187125289248120253584382142956200845949458392289800415275071587742054284618648129184131837558670284709324269260505938081800997232918002281595630350865518879606566032438591619236484323588077449522080434620250085160282753046045594565527266817706693749156265774512182512822373923587773364734009883153300176229345894924170297399724508856201441483377410121420291840545038893903177384899721123229303800533376139107310649204562622833317381465050384289409880863297849937862524890577116721581379169297024787365002858948616997597154216002822166251956177992661037288746031280163860891564385939971140797823031166538874160293545160153796035486917178545268889260811615953478783182781576041975017704972391248482027186101423068849461931120688425346841208101045289534694983981537564491203575602834486953752579626116171051037460148584769926006618209538116670161702085810336043875963217263268956579895793145426661080235724117251524885741220687510656690371853147147333357611495533896926004695159292270368762366966757907477462392711799531427610302361552894342875856015540924697176772618004020593606776921620969485139624475233217079015780450436711855696987139822210117226780295833281675509832601947365763272624317910240789338593868548964876494524821179290032446323772134366039095020269538671303616179981101566948864904788622666179959332228185042787835271842655977438214774465654850943699020627396253528587063200306851568142121558630517320648412193642461333958287404041763423832325185336238878887929020110303331122912907057793766183811101366176003901909502431634781110835676499807301170986650837342288314357025243237993046219275621337704720833407582672617608701541022308598743067100906133066999036510822392022152018933172061517135562692775677500781106384972144310692097758414794497000129859406145470882269493365061112276940982435569465886663701312949142046739495632461345153685605714649034737543280808267466183865502763697218777343713373777832991761111535798717810489408250909735289540179959907188689192603457978355842779046959815019268780600592413982525620721209000716540339792134282482220254535894878953450778126514491433644164727084317884590627632753437352031096061829920185217996799846125091023728990209470228949975072896072271478628347243923618850702096263141504143418441462937427995182146719650474617750682914751815510565266601234021841717028085828289160458303026934381505476187397584595554178613736849066678277782489785417437111106982542068584213968998275572874264417301161557003705017881687284367101421834738817602675289254158762854003332846620599074611504911907266139364150659001045825653555361221475538392304304710306104119328898650898388248128608992120569994356337107093062218741399259174783023922641227534964781701914057670454917677883200274591243246588716125373232166852229499496068074673181352684784383385155005575002107991229661494246442685089752345327128803664718644672959529010956760582019748997127288029307648260698687672138097243529979988147462383349848404220762595313705069103845236507926908339994284385523344304510554404519087424482445475913792386285942562978941445166084823701611181257699974522021133448488338908297694680433111093855774349684364007993825969891029218271946987874028593279694953220281986772991698789013175710685108589500592843664879280473946551110588741531543686750862441271738648518080891648122971823961430065150602635548619775284648147594502663004019984759407779736638805092489940092707722885340981418163786845951748760051957037493520840028155797259056642038540154965683051847618927748686006985324264694760115253735227913072460012067108086988627786632199921496123535458311047199824325998413469821537265823618924384196313529090596931140447057367427866120866824977278143880555825790214839458254369001913470301284649473631098839674588119620538270628356777567661465885718927302819872004245064720451204132947689035853217944463902130849991592657846303898632637141543577834027987459458388866484363357431652440969829167528185912067639228703619954753534526264873441493074020149194504176277226678430631407370475775514881505215617203276625541811324859006036005015724933796489237374539807143566708515338798960703782792068894556074393835388927167140151454425950261834634763518912903873966535782223398000670166496613904962208949747201893928684740887289084760144672804081814972741043161512798411200803999947593255047235629956755229098311531854736315937271728623366995158619055308707904990811555713911756812572587313039937599816750236349471433803445730138371390623829991813692699040878826937686573028278588628358428342918855315362657066615846649959046067366413621214653665161750145692113488830833449443418055198169826445899634126449362281052019190585922034371951286541002981365015001076675839693165753440745706119554251367787773924211824454287477930785311805380173576297236872245245492303521955180818803551142066585992463734890898069567755465472800222204424281036827309926557626804327542232489246625583874636861380413352897248200475349804123263244073394485436750885040436361101913391403045277525432514676097173306651908059178719423908058835474270222343934303645616883800700751218288895528212848235214533696010817590609583110841285419417391064307478749260545401585782284518260509630861206699405201446109697531945042784041608109181347671649807118903840173731434060193815547660595710196463195897657283823172407674548548454875100098649308035422735276981912166755196421107292126758438239483280125383893719970710902273549100415921178032315073268770695749278495004378397608822368799748352608741107964254143295210090832801992536825198444909522435447497318207818955894629702996585216605847923221395791525935054427361791483727154568833819191514019658230222148332987758612323770387666052091038082927865097885878757184533376750924197124076809592750971377397772395348689065965059256495150383467906457294630182775265399961162356380470420802313149281076135051285491843228742893767220817998942476198466707250694801312741954537757517980892280134305955965276249702556108347149402151291834469171066531221328316291735723262078482779782273778462960895360877428868166140399378341019769773677514100790617364502910807669627087145143400056384377991926292864980833348278771341240616013458923826632904567239085033710248329901721242500494497447728692635414522331426749842862849963523616055954274692229164169258296030118290861197173991650095215038227749147713489238137802631057153885547762947091273008268715601256236702798879165811889492544172633911701885325373648256244527121262264292045928279084016797208087876698021176938615635786147310077872248788373034206275582649733788310264647935980879803374216193570243076040433451024710820843435984583519462567380005748323319303823297719240379792338448040643807893470422414776963062655658399489702010364692980429875107460745703968308869841194343641308090561031036240508842766232547937421012151529285797911329014296353236392535587512921900926833144997641342861069328414373583635270429407194022968114078037887161857581315866939804558719603405501045859991186078893832968202793067637329898680194394399853534471445528649362544972996554386983697771294779073423008375336238662381130594433825140459496303685330923653145484491211875499208478215511051906258402364261345153642308549004603484654327734420473456327706945862082631781871860628608895184253413846467715041672388045518662847484227479094947401039217121360208396109139610491401477009507365178889255245115193899694891462164801706477047313597378326614626077323305880871260994919388794408574380559023963124068631135697866568706539684344403462509925915513226993737009163310343207975246872009549036158255314694249766268701104038219471406990261964602188317966421291826332607511021521823990654086402937425693734407100252240853884714492395362883934169779619869672562435632047123698063270652516679348618009853126270122462323855969973452778823346885992393425795798239452217452283197494113904121687459910867051983547272956939363951611049739177266021235879357655407320863835002136439700374551399847484707492941505826463157584762866399628251643499246551046262944731267975049573989918497239691471505058136167811275442622359442160591925185788162158799607126076793645139293285216972715173521748658934689624985817169708019950922962906082081805343761909549619125010764295152846168846755306371158663662175422914828656276179882719072344597483377869602309970534790421353253114040502731237966073366190322228516671415257733335555763848431209505956265401185474482239330821235989250229125796511790879278784570824746975414612434852549007140234243601458248637083445899464244962304388100398847968367072831951550842077241120002595601936182857305002898877067685356439853659013671165335805206837616438433428977255168471722369046188184423432001911532898444635535572884426581367462214949688594286279347034506752529781430313932372940680201218503930968557340558332146521347858486954656596268936249494137793211538759562418690096391528194711454477972629195617653789258786574639290818114541509709160720857726838003673932460953737905102104128924423358864777929995037415534736732054317556219245893113182864838770788164967948837224372372448903034515431310580010260080747886494993989652645142801957392662056421128893903735060779997167551033850410672303042152815407266460520541608328664516977072087454062350874280116010142270904780104583358638185293798058756316456065492275378589371953242237292045484829950820464429610700863219956180654808355757924060716592484927020376451507575627937249323799966375470974681044896173902372276701107079389072995470185069799601976420291129108676312016377365347769395471390858072367174742742807409479789526370268127813410394224749487193173324797423695714022606087526470147525985671424536865271337707857899618552039611312806212857761539904079068656637134296119428816878799526137315710682537925950192192724766558700940969687043894409768203587564438081964722840570686287252698938688567331015652486399993185413423748818377522784673575930869148449630856401080597346396140704535746579381082284351251787996714750510755312915120415534910792877593978190617278610099127496419098007353725329238348164150963629287067313893077780657880974395898108399024087671970136271078905108031460350388215121790682898571643724288327526363983703572301286183261806361225675137388526594773288742694635940178592425810724781915157940496146961394843420881538794831732474795820213820879192507043272104206885327506769608139382283278132522542812370923654699100628218329319038270328901402780024040232431030089242784106789783156943884089946786487367089757071590024342773120619535020987632765970907467903221233551840757853529457065144736657946654456465288245538098807414327170165914070446202060969991773573229391632251860846338334503193064538723117449679678642930124919414522838730303713271670279150921649828637575652795405966556127396492284348779834445878881182832609764704829394300661148063849470225720294308566626423633627280401558390052301300012912235118996548422680524579776326677820625725448334214815615474760294440424086434151726680160334528933890367638010831253729170779187038315676303957219828192434637245829846966561544206500384328549236883481501397136896851383350495887936304826985562917151572537419481403307104353478296717264405593980920331342830186868780065344333381173047901327187222326660895380683889283190448342678064563908707392369318274400194493236305071276842887076607005284387992849990903993256482592639525342907338714712671965105388606535009041201977203109063177929076839587150970600548655479783820442252697885446807457345429169998498665541612223607669956553392153068366610975335618731218761066434842340277600469846512260243904136549717281590075765825029252152070845332306056045386268915161771096227220500553523991604217320040896814532798061136817828780376028836223049984376226732219833627686208955472890541419092134155602562071306335118268105513356834848886542723757649916359234158628483394109824450075970234700544471343094421641163190385436169420890709238631187803983530048980862555967199751638173307755457882821908325608822265748497017100223536261360645808498562945682003729448644253959440232731320064655524641672534352272384213182072207356415193752679629349879631673854165191115110132173456251533131716322927505422852295613679290640768280007546734847586427953865058904232244831410098190799936710627527643025295153869284526640719509706607716587903046942181597021813349308799954906567329123832789951572579251227733514591475009612648063350886339135880413416121691347193510752182891607614828505710490748096418811401143912779216280929091009764570484851142887928248452662586715722734989962272858357469262088232722090255080559351762422640059638175867290298905741451954718812124352714692103392714075693508652674322066212173935984966224295260211455796643349024194498516049182694194034806367581294878533296592537154365670431464939251415174247739444590317444809541947057041599712097971608509841963533241265055541221006434366888589401954843009630416206379096492790389612257782095936790253207402327165092905376385901598854321320930093315086767649893036702687677375268074921060221614522115805732652737329832802995964421091716294271918612202686348856613385458385262094927900339152853217148133792306191149902764734125008775854379313277665131264433991189927147390532578604548350455003709882791627146309337054755690773559743322553656876856047221260622624468116719805731784041728816111425849734676547662752547268607636216075848336840380459371424694981692308184923736458977430345659032234309530462039639449870348493231818791281961762981343447411973066533085030316118710053808975476217276056472276180970675100161256201416316479049058282856071152805849755421020854564096792354106772174234351546030079012761773405979041712382442710357972011823884967963135860808325113618639325038019554684227647077404885356563908175955775429958507864164405933643326979215935129879109574872094664309632109161309782170720156440351260542660555463881306934160472182677508876881402351564463062842878568514723179546622447150944594934048214115109655724081340639598534557642080037995774714449627836603783877079280019591017968417276821661009685929878638995968536160739390938101656155711611070813671951917630067261627534571104509064585482095624186473329249783998575137926409456321236308354687494054509545891059998237813599415532276854261325662192033772397225618066929740508283625619156349535372084856715044088700942256786065448260870325534730508665968687535571921511536022869930300258170616155495846414531973522303059814355735415208654227938027102689702550965920723074507641948043393524194460657794553072262843342423123880385076558740304417290760779021369719815561934998475378916474699171528715444587800420809620026938253307516276135474888202026800763808225668230588942572168826627176936604422488876978671683489817948637792480577291809208847261351668212430458030458316634156872982220297535328091380951119943810828828605700235024721399106262520561991498973927787490999307654959491970005467820026581193923220177926266257453139289258726033496712944866902297917129755832767565853519407450253090856562848228208893315600141777286557082047716396097379173350106044045786584531807159466367378875239957212854494405233279349088106106888132247994726588417539987944072887017230005330694693579867180126222385917392182803604026439569204984067189445279421930677166779512251317138083713553564721505117514509426555265525479909064864054175894574723394848352495678446575531896668211003444331092907765604562232009047573169436333894652043202896345100355547535744653651772853840032894162162516513034402038150215089798664089533550432929358335531338651892831170729992345855010265690996080963546336157410085996378407150260144948771118871603203411924139368223063438992680429661517812679834680441235619732175250071480639506722889093559317119075322756827243524053956624087206639785046993790384052898223739524956547138474839622880734444130524823970762117905365834731581916753119728273804273634958814203340371065557655495617830147895878605633330187334429026135366114639187281129669447224343149796878239349025117928987166048502853585070783513284910260089076985158265825187457378370859836650681824609245139024322966897237624601586279401218196826236161984896979605731026519963273087197208748613209019255443693842626722877408441818504720914430049463166194135106254880803090237487860108666880214130013378775332670638830543858260021630834816873930152797258555522450658066946671379632642045356659357686934668339903017139577767141098162793549965860710489851648255517979202018077702114526254362742909068363473273436663063014828554173320117379798441959363739927758133027925989884493028443816694844096366928505554658352510978977454415910418561087351218613607887581569537363627716930873835952319690752988110359979893822716597059258795682046113303448264697024424126153475261496614021989261385892283329515851321558047568571759793170900752712601684764922220267089336860304003079811849390898677472494567539412864556379646401886328654759865552150749147577436105522401705043419865678273558890235948842716167132028929990076095194398422886918496439018116007061878603275401728637541240607859828735735959190903792809409926029470269237313294578517686959930289691881835091743402166268263989421566456001235312819658668673588348821629822822555677583140323964477627951098271368704241304526599250401380152773854515034607801192643457924468698176159487341321593276636550447113731723205411104453436726500205456086749327693929877318095379850369713429902540867463451910448076929120424258995899179910641309450382661537098013721145741225241008962143173193820993346337923172293547144085680283903606956805875056928902225040529718223096712194581935661443492690864085397020631673077591224657511408716794652227699331449580565773019668676695768443982427052383946945669519525658985608071156916204627501763969039644161271508669262882567684453856362202667171012382078847128124683061529980837955766498852287856787788024522332928271721055051669592361270671299157761326723074079524538077713746876349007439628894596512915482782556086119238882544492732763840558351306180583660305557944410158346976277460667505304973283040756058767851090547296757329295518552019244194783692278664322944169502054116407402322933140521549079411252330728704826734663191009482101284883294820531584203115776543699273937400582997000224211705320597878282558765125784882759926689577949490934880323508599265421542452519729000417276049703307044537538102975015505646949533724221605157078769401734519122352903412719950172104153756270190603617482718105341843600131839750117604442750006589861266947551764475563488351844985706460546651942431577532899015169690454064541764014317070041787452383781379457063170226528182825827366792105532977284610077303653289128290371649386818803973150919700453811257035880968560496222648466535896391821520305415185490229122410469805649397396118991357088675122663789741116597906634389460053592819963818259871512746955854321883867412032452533952735272093082429220970519132937908717301793932294955034745563819208962864396745439534523424154936268008984837437037387124330965953432113574207457936234837149161441969985609249769040022624162048041184340299512002351571966914557316590839342256562850169812957025536918476372293525196347998549648433049032530032064639450584871459936866614770952855478679313822925723824210719682140596414358145939869987233327863665247370486490751867870263330653439828985786397908042952521381941868185396629328180594764902319888560973442774971305202841066703552325842879901918623052948613536273556812527853550045591445539067393976066536811180920638760982406489045167140531288767746548437362258660233072546607818007809356276848810790892300181786919125394155612833786512158449179461878129597847196037097251665991633767735004838108944085209882565086490681681502066552194491150528582031350831831875233071019391190741351071089027229884111800830233208555012108786025288507470208160743383174361559139377239109384767745720002960991325771658413236015005172837271316164959651127128146805716243927268779460351162518729428871328693818099192381257551371374396112748655782956885578115687060173256661219457893205742989903751603522059724772174975281449309758095003291099798148610927917375566450541529691388979721373363308589284546213542762855937818009235752256725060826417599975206686734609508524967388649719857442479397517379138604571379707576271730276573401233896704772289494639800101051031051654370336475104584710819006518027884069294934102301394313297293378029004951611876157125712939017198471640270481103534009107520881553419440421382108696198396143445342160367403584766242248341527115550771390436577626651172199790652265537094765843540439207230045595179049524971495505260692891876336174997133366197629407008523497853465558450644506115076124819492698852141073667420518901781022288529505472545239584502226882874603784130947052765403497509832408810412290339645694011597450758071357637522017520062069444378742404379033520305418020127661407586481675684243808555511466545361192225817903479427378466874490707961599320957309663960157070335703920635970400875869421903218591786253085081738453713488501819924666177781799429929106242540360904212605603459743306640573390971476025316964790709894451383600064580580138870207777256057966439446406409166728716708646887110492901768117195237784025317753271618173684309766727250993053622276381389308255061037567959600153165828925239000564515478710674448509683068267117665541751456166101208042286510573496628423100360997882344621935889921184699210433308795692452099691741071498003825368754449085895658281215665484432559263426025286832752399538184456772952787021351749676968169758181627006151654680420751027114259376869423256452263476762895893298169275182132614707470829328433152585611735585916866922665057257164294471554162730649281035138152069824681724812779993965170698568594563510613558706011226081014338867506967485975124674176653755123658643812922624963480088480422781545727475743531418793528297162971632572537529988086430027955221939707308826846976711836962307053823551361737378677778529086258797716807640292596932489131708780657681567333708631123917158465898321976022300531433698998459312659049998551301883964907003787385926906711318323122613278284994952593608087228595724239427054923409810004305536267120747226634081953124601492041856356074006252815959235704697154725306967869998786770540894275122895053963137112049766766469670427357771664132295386060864916400970841998792984252669001871642665146544384472724111077508132089226734814313102382515264015199650757843597973424528321899008805185538586975011162782372856544912937690570592045151075340232984713538958241286812034334864645214293013353911649556908857817344339917354648042136245222126094907032151593724026121531535993567685988637987301581455711090735814471488808695181450916307199268409489610530131726739425065366823150913178930043590955319282265556324975966881746371202921993084304982680605320587222672045938406875813184039514538516304687839504656391173719191530964663770363469157398253325246732335971022257802081738866642399881405832645528003369483747116332804682505062157538464205240756384949858754838667508853151589395466212804140099143538469514385260069285753599994058214630952901210433174365332735891860255017159270683228303844410452570791408378619695305330581683346983324914625893203730058806047270222569035902501000260969367074196691468399488654542167667041528622894479327586309021910196239997288124054580065175128962044506688335978304482564652578978039137287123956542789713107929424136521397852077258715419154199162106603905781669352208233335255503362884300955154043532016149293750684110349484313487954492274220394290819374659860290671116098007408380571268092911966306971081519567712261041968586686036451504220630174631593603021864380448223686319690964274103037332662560835019687076333743510419202835130726890957279566338087290681465924012304609519047652784519108969381276810284020317115577287857881909754679344295830917321409368415212370759907665855420067879522317182396180495048054116398796678617789655733931312276578572002131493312210991988299363206440793764049539608761338805916224422926208064159172385266036074716340294873100225209626894259485770914046278845077438211201553909727209337518032562427185430503469612124727046585771837245063731185109935968877730566846702665988886197693494742129801340595614446948242020150078354702326771390211226168558064481069710551052128932313774627924875146701377463907981176774263401798512270589296290806341939679058225958061153449037587391441928536323626208300971046051772740039606892946552780451235036150588528692440790478953515909960696309880740480448238755963399706838096675314084442715366787664719072406367737438551660790640018940445673723107242347353469658403633584199835670550143447670696439637677882933587957500468080350684925933034152131770743719838149972596164383441565267780608121663121468195276003547652341903152907258678106638580234074662048483675196777441275367407766200719848070661132159190163108208409965632009454499290481363368910535446010246153616440791026023353350256211628759474598025032332295328021325297186528706947319401360153058588248415754430535169899102596348263138957884565087237237016191174153264298008311568910113121418236585212712554145662634673385477878335308572125845006507038713569223702292547701489271655535510356397658335771253487892543447135510475369272195523186291834316355954832290897828489167504129935355072814217483146343109360429691981627723031587790453154349655584560328874992434250382880779034540700833815313855112435601600826912409406640858551273025354618831562010057315313933279300145395215239574914269973664875725227516157551116864498533766911957157131280402100763797582696429465360668556706526005417105107829508655098606873901830259183931176702398607553567538367004262691579053157143381371873154678123780428419928213090088763207447256647776506307476503538088382392626468803766536914829977349324718008447868049579219282985589543736736983870415107917234278526324017984585649409131458446570295025271473858226688093380063243733586943738206559077805591534766169645418354162847244113342246458802721214962562208905382174521996313423383088305762895602711229633767226237872186604348240261848448414869721084900465318278211773526202315747909163629608613102493821954507497524861932198070965079944273199169886329930866239927588496623633485276004673082013939316581351105806224840649739561170477795822007124245461808956492874102965980415539610757956791902644784726891012504313765279909327123344760945964445484502925075033232115620176916665787372639513998173715816096667094223480206003661870598978790497501295467798979808824840219157570088157058030654286302900823687221279363493283424328605180783229393466697783038578504688022005101194557991822352358028692719709901987213118793539480592956590617121036856697126605190396356910122650903235168568476014497508448356452664140424686645224097511317044949803412982085431792026706686674665067952966155745070759833061428456962755101131023271537646677134596417059942029376024351633783718658597554509284738647356984544713472468607145607769222338132078381920097770418771781180645324873133889437854723912142303501069581564935451424819879349816299388746675675532472207904471191913299305080646583060538787659201063453940490899117862795216431480844369051403056567767890397977379177969860279616201438555064949118275512692010809251762187194689096522790503571825968061036825624383005218668471354041803760161629924463967819055312932432891865695155857314328647862890137604600941291776002121762826114924500426503699894663885900820342908622483326160502183733773044378140564575424887612907671391845188839315554391875492088343656772513392257882377372077832640580155793730075876762971994821743432247733179034863764113207109537492026564226978178184664765802717917420812219199661968602073769041366715045848914248426903402337568821281857337997750271272016170833908954646054941489474783100811978720529620280074666369780796402639650995297204211936344188838307831346490425720311378580398776603875114891004106204560628084930007845119803935178979671712929928081031747476104543730829794687967597849951645401483965698186648467943007305304578018358318135471511347100782076286455608179535039965881396551853204351364394989215154458842752726417408273374055238588070543637607220092297301738558568667887870303671944897978656918552340747828268563112474229845660434972726179669396539649798673501685812534885718356430789723793356325107019342763976118082555516847281356629025433272319304313794539814126311730483716701327661311097173823760544844344501518230396135041994382234969842520061554404461271969130917148245641020441244573560899427824439045907356513366831258876250885127735618459801930092607006451242459985572044458082669988180758125252734027789461620445469719403568720979561747527000876916623315870549457118827343943617737670973500591822072671362080036671658349555732026575337821736033903339809581442258251638885616512556085325465386892745643096711022646085429028523124825146260040146224577304527816102112383422439052394817238796137138461455226378751059881307144770614550647586675362117803636122576937284921166339646398871604336121757842013220597473124760055547217719613294151155896410455296781552247939665258480779088211469214139169603979279219300753443495987129969175289240158878636819093212193914176987670748773626538120254717494202395967750458142339913928263752888812959476924302164097185872743588186376687157399293378724145218052917288706466007005345958011172295770217110307280619364949318406930824700616205170297779454891618121239209031844374182188425088547441044986703066794621193332502030905967347464252219640547719112098420504313943251674331997181728189934082016030676127155326755135347314664360579767008605141981413670200416720939459653157197986412389073747725137370660035015603097443361778978889431985777525600434093818340502159069060505202312425434626526357324295341448087392708941207808614907485114121770716060940518166716785876849512491383693738986930830780441120340337177409411546259315617579424022373765904320662757320377000794528914927930965014463236648004702341675184241105339478114108111824921457442103082784175972341945214000017192300659145718325053568578043586090123173194319665784824576580596062996887392831091772204630401279915648724198137570407755595454055619019593632836680402943164633119890792146350650173670906403793773422784372791061495523971195641657107518775793451116704106454555058423316882016968876427501705587165132502252614847214259079672774735727645544465138391301526657753365854284073943290555108777585677454561920189741660061034008765730270993432074122596572885897050215795267232089650106918552652544885258820348160891217887242697196445315612683809617568100606511294994154886689855984193280044360120578569710101600447571608028816482718037880423859207738963173539819671997656997195579206667563221725056046609827592754733899932146577949033162360310253311744168381501983914185900527810093983152882737596498426019988097242179483651809371418203835392778879995887099956105303747634201834357164003785512685123948827786599261117583879997373691444671646175688080591988002544604016101325176695681105576118713287249414357333093175609732571888290286168625965489040826696190445067051630311242927550432448513983518442404306858131287879234899732734303056212611337971796938051150645785524304260153979609900662996504194750492797721965784950688151802472494049295361704928472963486014883453000043681608663843983524416791651110503519075894787804519463777169600448520311327902915491720853877889683879689703504140315200967778899744996533595511739895591601027311397034753119360188482711869844089922090908439476156068431015263626941669090970452542692138709905764559260287348829446400599252193505967297744192708365770186143131709457138485892022237110558029190373411459698903720611419039466871786501301491166662249333705106614765855582636950377144327820402703003289971332420610360380942612984448282669528112305589699526864688067306688207290252437150148169403694106729280834405067994625983402926524477839794913663405758176546765643799644186329794910723599039530230115095333298400072564060538595455677814502712680082237924831271391840719670939576309964262667977644898103295605940632709435054055558442977477277716231682363343937801978858889059874356641851933350233344350873372269418293091731648018907183787679468328741475389019125889961418083941976693264694678923010089122848177600780124888075089129470682608580652797769462731423067027638089080081166254797592372493874666903624766140426658316790364968454068280406338253004448212008289228272761813293820825310285865597529858889909807438252185485119478208426114668643127553014231717901614850097532502292992958315605426891132492258866028176107418037219054711065899278260976536963175672570275654464306247730428918594705331510214273249126432473013301714592997496138333816439146753101099737419119209117182324231711689960398106406747196157206628714550731225041755866410683707539005773153825981661924437934810849422681355000926261393319374394343584718234254881993160360063792328771493462094318030203532764065636171124689147766648422463800100706466832111483170964436963209923468681426908013950517237183749120779782273754777892782969255333744563924346784464804506250931113887163113081327920045547862325245997358063537306312068664724813913752251366084521591274137634858663395341109853322007245886357046621734690357260947824998735573613009041664040179224267947299588133793375932405983287228305605144421639849180688062804605813992275571852409489652224712025121338580503774576120645734238275183060901969779166161522453617356031916051430557689811874020457392929958628633037393348361800564449702395046860395706053043761990607691915143236738774507367902871175507495692181305820881658127975667708191179915760742971994539079249192049967249489848534950469158035158495702142590753002491050519087709026143365387266671555785340404690696245699665909160502923239320813796133688657692370726624957404869947052855511453703622924732815718764840710962533062762485758938692249855113014070137165746232618582759628140985279768887039356655852418209620605255395787742716508551767410997827012342613694874846652768918579768327824586978038464188602418060327868219975399126407695524032912333697996047027420866934213401102670008935239824456075867463293937977344871488532703094265827122928436989950428201246550501110985525934730680307013666213346018030236787132445361114999208339529642563869835723597967066960412278516652429895810806410112473631791434282976170211588602277866638440062947437223962649294148601680302903020953524071428764563317282196685532628819764651211346323781109325222366288760928099198877881648189736328503314601860233663992889212377965840764336991537072877453501034591918239652802076323919261053321371993360283389151550214075754165949993655752185476716435390516165214967632805901911536624946315050556893225542268120293767253604496039092087307421678219864341412142134794697861795404603878910168934208338593827517954591439227281243893906010961438110884608668789818933479958232945729806780269108984099992945409181700212216784818055552745995529759133917159339258422433860039039847581046311160040136938072528048516730073452219282314954031598513016540812128318139741416518340986881776471926186122295732066855005123151632594246414306536780000233995623162516210311048675937969549431286130812732871730026319031453466422375939580920803882169086637872870227519395890669656032096887596372317067602374840781913554316323370899272340906547495669828998762084220676507905143956669199259243296100006786934552205635680963266117084802680783385534781569619899743254461510451453707412382514440195974476376244517909800194672038350427684388419811410583372787669121515641762329626904851132998772648474532134004397493057955998198284338402168855871374279985082881522581470942165586910508876409850119497068648409587693779250906210156500302765658136618359235623728424132859258752036140432162698735486309853772862490143950391254006125776699876513003523533011762955491562452214921857108673848601223920766395450764903748497159262228133329450143334069841637867487909257756699310466901396252858884987956961681729618464897549930692932563482885110882256440360966202473855298063156335239203199902620150762538675388781631390440981942687364575880650116193668540624380774903135014230981290935960740204753903202995506037740977287997356468910986617837454399019798484581470880432287644369392103427976063074821447164881789846280209755316505434231454412805799753548414512911765041736443542646395917998144459681026812997206795197501946761184706642037381506937751533150617262655345184926216750959394623499759700917856369986373921518534571601803825043940754782135935333326589932338928769512363373372993094076253355691959129312775922107971248362266604362700465636817802137254519596095295581694185113904589399102181466765759456495804988956004416724754598987423619149933005065061117787627773349468456873247774122555660910201527022766854442184873720591584911753310038284039334783105296715338646451360356602971853603250280705874936316524647854464006833762825524079425228731241487103791336590663380858066919952666377133089075507794802720793989716848342847949056717070806830702463336382278409868251542934323801953522863220115565683898165542821465640152453308437116130639897443038849233596885760822308725018116142343160499281838846119943018863350124884665255383284814208109741206791737112709917265166117881557824516722519615954420108556542596027813099007055275427450821232590349078492886116040976295309178408128284827312375021536160217049704950513658141292770334415467668469698537746988953257013127350624935873920516311111502713758647944524475040442439765027345988435823560202120740523199558838810939012172665275610232794994859848401914197864102266702992125135976141113720677100451295089578235323668672099639823810640178474920845735961536824827144780067951043859876286225244809385592953972966524296494884677684603190775581143142770276720763953100798458323736587731058235942807652686184101193656364495256683431645294396447018901139827471874718576498782551192078671260966073688349001333537178513329499013853553223087895379002520411304106784376692250717691681036043328712647902101780196735496057597238125764207396521295930385219717388336139039698128846576433129206136792659135465081886715863691486066892048508466164446186678717258288121152761027335004904259694387805762947767147061509268485083108916771390452650692887647626113763748093327532643409564064031159888217260749858585954004679742908410819357309379168749527392967670635434040592424608520146458525597745860611699135402488719905522594919133322212556896108282643485968878350769303523709759424978291544354132570012774358224992412080808563580952178234724005887815967104737870645029664191663357451271359488142410778673511946358693301985848104387915649213065120319953825559286234413983813001509123410155089454176757230417644719748229992351549606105071753792895653122863217691617139491997145568256169078559123772343523307755637809504445947413618595773561833746385078872298259918997936134993795480375060646602107152931447107544575995101769289996004818768714909610903543561151582767391607479755451338575139288394561645432685145864722901914903946473833790471313587289320307664611519456859645511088369739754972873908350154797606209744320214559469396625600007042634937570491703592986510109509039464813258484218687936451676521655701832697705371240855164107021847041589485436503027296593917042735725062351657055084204122625880172372013566165838061472902204725565661343178882041811384815768643073299153820696030999679811307110843611975111023194842367203218019435553161650531438202095942250437146845405966511825907569003074632515250796987085929720180766604340930513108534670348677756773237404739323791758897083190449813612535771969527532396272940325975943161434569287449782324101519763293010692112444032556699438107226915382292543623521086842990003616192266968634268163600466878286443296473902560006170938647614491801726073339502192546924947483656836606309188109924311848224280369049325129624620186336858395960136001733718625018208167558512018324259909759236539784302673058084225962462786745478806479466281552820695143900695606442890024988101080340607898303329499673856006928799278952567318102329504941007887540523920390694309779433277807289683488197891085869575891383005019522389702162937087548648152433293422463179658009083213021297735632053354467949543129199344361241490786142503556954704610294782611743587671774306939714430112931818810362530886958610521151773201453904069023840669586805113259944505542019235647293644212587572758936851705249168214986523787651442111364650427542204242674472115272506918703150244754503809767100559046546572879580431179910236992909082665334090528093851441613305594232512111878894879400238800754062980578969550956993162625863970600656135410766471467793513386337506563736545911642002848405638328546626261282297186480570952464178067364856911633171044916543087981718318849231166829528686184524743347874277256352140627314261849608554172123825723375276844435456429627486714343033637168778132503690186641706769111712879671990506359675246871122713520627673517468233014444605887111832664788340719977752077597882487153314985865354845416728678172987294562688769042616781553868921713624912652523823409363715185116134545248522173222038119677781276645964251979994512987660657085126895690692904921864089600933113919462310830525101003970113269695241447118884413424451746377981925306265395774967233136229626135230947983711399044253294097929036053467140540512795857366767311741248576343451702833305128626964089408830645106816012612178776253541150386795671975812575836642984423964765808552847095306073007153001731526412959586128138228308199795655255353619511739790620958800165381762620342783184630233206088779432546742225278094556723788548671390165943431090241931644862256515725766140446294927769758913955385659095236232773928566425231305424956469666142755931821252578282158038860720027290166732193961897960070554678912853223245718332776315410475115484894833180319472978330024213847233825181443843197717796460965417508457984262491206038321958188274638017250981533668522439773952644673249317272749142541493135498369208825029416038116145506515543401192795563337042276904975037463118913412056421744003843226321018955489340206714226872457639898476599827059076501580691950536114883989099904728766278518823202076614987427165549710492120111028651635880960682127413527223076255391811885669096332300019608896539792458119168976067499809350628007875533196275007236292845586299128785404498542481826704408133764229855662321105982218383893075181305999195850883057832190362557513312750581963391972135298360818134604287916654780342913537583375333689392999522390979171492007714689858040485861030015280547098479016430945939206813204927350753755778725395911800471019708304140276034398228464274753867969713548698441308178800007311728238655786488440951462860031096669913146306694826874499133110454579799213492853998784197190412505044086734663748138348513839485649460953101031540258918736254975088280284887179477878508063042213168877252677062721123412768855505484499035207905634181469655214619135586935728136490950095446969516491410547912896334860806610828715480677844156723621560367923288884611020235046006039618631584929594729937244016312510792213890478516808853895253914936971431279327700374204060789531749089841358674451622883456863663962338308807191719596428519742168693168220814980168196687597860817075778759175835779641112761601019526845948789932875976540749933054819180262511799364980939887179948305061160643290378211708009519955014448616113694064760031985000467152703118224792590001863813690049542774446738960043417316416546582803615622179311919305413029323145069569622650881154029057114000854498128118594704440067021060060900652231866128819886959261055755084326100622638776850028695255760472812813161160963348377514036353440271773760903077768978228976377561403849800963053304707563470651522143103812917502845383133406442600705318956349735386184663152954127735563319527115108284095089676487378327597730806062890798309159457870455490697146005419672881384782195409315349765062672108723200646389457170310238769196412506261917449837702414436138403318236292772997207977564402049378885613269908780472538134397659981698017326827992904975379504444459490933432435167960934817831621970435357110478350968606761623820698320275065398385342009920125983538977385068758990661697628272018467805152634089123166825610130886932372965613041994865909575843122978312143185791569294158788594400983256867235696790162156635705528085179731061890216862833825651284451421280183839656452572544295723196837400633512259174715047792513817901796982638912767708775478142834111674317996052770786611033234035845792356587136832849459755241164090709537376050973886102977461029662428787708810641749293837690003919120644252143125335338163485039002377989632303713569487079731032110569347767498002675663083978569394082933408818367341351573002364139454098745064171987586307443657241146437659261045072817300633999600984586725302879717574346931418892627868245497056516856328166668973042050609889187900062467710739738040172904107422861137719685307818520847704337307533481536209679215807953564823758413380137553887433443834103911910005334936691046681314624676285616603803822766907988247715791559806967666866859521875076469910726172095722052136003097828927359435272752476404810392388834676940797359640736272551941097604513630084581994755352300997028063799054527771388312678262081992686792601336099689806883213208658844727931765917327874518580693249895887354259405169595227041433453832486877180097498969771022835454274973841097465716014576508675186838464757319463104867325071986752737735228348798857676331194840061233874388556582351547593534354349311112822473601237275036950399638730007182289544806112728626278344513674768580942731165970236266778924719826718710991950861128358341620327574616925800297580635282580740098890489340607681132982389146045674812433398015899311440339348817835635769747197881054481721431405732470072576134971779147808639425433168166054939090512292176699935417390649285315723185198219177162501148038862257925881323008061735820554868840952587735315537591847081807847975077299146401901282195130348756817756049343961946642124551847588624203379286583349616737980402149153262655805188100523741022078944354922428207534869681377388612850750388066150019866854274387573737012739301429048894421956827895519949416478004486649907621461394068930135583304654660159245266339344849921313278678916419215324282396712525822457427985888214398692302549182138063802332149368018196639210400875128550590560693268462285962489106131860731320913812079506975543582054195571676143872629185672051815633196755268317787559177971126963169667385553640820077115636316191256071873631001906967008529042450343720340209168833100843100257281720705081207645091493846364751878085211286787422900658637879524568159744138012546790037465278133209236511302959101589977678340825289896096300530917988286442744215092405524495667938330546058098870285003189987152865097668572297331845936222296344622346054595755511323528301307285123456757844869450360628377711029809402583436367750307327903509152781665036414322588448243955178495187003446838402354625954173047965055524782654425106482759772572186753002037768612401376411162964839029933872255722344882343532740196610068844055626936786456435313626844217850770339694728518753792734047500923885749202353170782112853654470710827935679822363186268299110598300982483353409612525574923280749824760619862183479831788558709386753505993036297396700557478005438168668563090295736012193633998559684403062573755154917281877753658296687807905951127156624358518825215871302992322832654293097056054931163757599661815246152887550131728281936883125682885935761839242696178320946366030735862896459999049345049150739453617638822758677237103683420370679516969278967856500610017801061453448645453426566015567992661890342882687215235089578742436177468634872588539872679684842124400886565336193218326166516210839215612811632121927854796738252162303700046622585197463942378441289211456896306840229873820487567520811944307856166904649375226807867246796929240524094776127537802388836835423286817710438433101023752872684005125324581130059578742166857219760895729326224442350787737140423926964441536653719657491903818310226364022714060108730435333831430456876178805466719427177717460700298620680886718915448423962306071480815994690424129117249475633892392618035741997287210002108442444202555567868570201480829929018809458444974542107943496079878156489860107721293296411315379628699323891127999665373936156907333929599275321982448139747598610099987229115138380676844309930414981404475306766643129962050260834054186317121784191921470233922370439503579464528106417369066716241324804913175545844894760623957479646359763146967514806320813702768294013354231174194761816623484281794910129223833471150823931244075871018813080968897688341875463556217771745017215624613428498863177346001754240276817510474766281263483400233840423885765226166584738711575406254478174730380072720338613523285922668114600211781537525194627649380265267075058671964548018489419491904985553448223134532710415406313946749477603313258435946633947056900584018986108999686827287661172274089266150215961784122269968239761793012565468882935970617082346067817772500413019294538774793225401804478835179725338800612441122996628866263122102393688531856302356420550328451884183839357176724076705233036949116125079463032445327697509302874428515203512892135496789224554824057880692352445064082472958981750747779102457618764041552575573570598248975860389943846406837275472826544490806610007495903164482051510247200570066104326932227115333181770119671325102010645775528894747769502270646745696928469800687597597341562036140798632568469366793483740885349134823661103513931385191296214647667544708961632023224346065172796297513017806826814953020259071502420858606273945836562376826476876546196252038471472241241429385001064893038985056463044651624340541405681269252196212667335549232558619510377038497630137569048563102534358231388655687616278108976188293356993220928817382113928880926715858593113073176498770058656379996142915972078216674875095197261878770269813345576751399180652680660156835918742234644136335969754122908491460154752853616684027906999465896874435376623008568198133291892932859458936008850212166577951081040467121251821918161472466102189089287658403113081354125720639744382737999671730970182867428207268427408616584178926397581028464204063018173572157538176691537696607642237515671057214370619079790124845374193913498025056046568560970572316672360263613558332606715808375260362337174657084576410622237523736478681545574439399553541751941402167114159294986474515072911230327654377132135988078825369697544656798752836812757738663991923459754654476626539534030226817116396706273424668270918798586426861223445500442694467383350077074876107745953075625973595690707543475385029504064534329148366554036413671868654072154411049572589099373006805898114564970196740065809855775566024193764535611089068796418340946660263593230965357109929332776837965795976832889022886492828926985933263775020514494121451154675102221579571748802034594403876993021914674126483868429383625619050010818372860971954282196995521954957139313573689621582328195872591035617532255435921942023347416057459917729276811183900195490647195155374175440491941351250609918518125231741069667904048458047327581790159805324776868553950734182325700236236393272280171360046378758940034624700391376326927989450610785194851487900505496689624971047158187761266834959012922077446337544887894861583796931123849946043337678583434446905114593514049104834112286926212911091128032125401908127435644358201191758869381829246016721812769439596389622163838420683610505535900450924947543234629218569917400080545969575172552016139130065558305005036880820132567178481883142745352213460778815384812290220331518512415424444249665021814533939250396131020650548676842692354825449325872045522087109609589655330113275688237517490382817804842401556244901530255025891686064578000167893332595488560552780242621565068675179854438537631821004997975881932868427107570022078112470266225518397437527702419368235656165458004450266138730629689010095910670844252620747677089378662061833430295957241539986563310459583243136167328129922512969919111972313866538957094214913172440603713447674146079853427664356168309710873177861924640332215130061659107126377466309576646671259245529661628400074356984422953257938104576536583827343206181470228374740962302812975476847815448549053426562110603340598329960619559292529106377956064982087083803990521290115838935526970023977058127966517762131840516219262768818375593598258723465683663033375540869128929844823066933389696153370227048877796373954376708185854264915663066836786804196611440025882968230808213457453884211710057506896255295920415417288168622167564279770368732191611088351160851422888453971162666397657162605301899040427511495344331495837771221512740180419912510699701787656161127052685996670260967158335727772522713712300597907146433645935980355270692504303760773990729628044472790147726644295703985279670285514353179379365020647198706465984006445524336309434749347571523302601481635369764361699428897457674503062722354788760930733503149528947994177746877375609522018393256761108074224440476051332806173795074576967935489794398803075484773722830652593591384383661396196817762604328087541808061276968574722802275430284784505185267682165470622005319713210057347041730893553497110188843090584984219275643699655908906362499349472200776075242015171565757073826435675758525620633687552694654917318117578021202279118727785059938193395523739719992902675926154427632273250460757369293142827823105726531715717251860831262133474364739564489232443636821721652484894966388097740285263279852165426684439098832168274003940704371435186996171510061399085023958509393755783051186647458730295645385041843738898876001300143062512298131168178515517634043009332502750526208689335842524025239273325819180299753931097860388817563321613990349534359041185765052046180368901398811675219763649982181883584955878378091271359807013004248697329468017731686995494679740010866113816716064183725793859419475000403750423903083650860179549887711318073768886879611261125703274222987377724028729103298695187751973482440299558110195900456239047963868097719816738228787642659887302657069330394953417333727667641803313052099070658314394719282182315320784449117300477031452638727609582334731755326521169648368432467658001809618810457499935691612240664350829069820478204807570011783429834064928053551012747742826796126750522119063604046819931333328917765343859280522253721647191587201422116593345765961975978562289599203406371805716133897432869421707064336341647800008958097829114624224340612310767059523011187252907432414940546634230854544625000384209361635450991181747888082677798636107659532486389932115890619555364007370278528260739143082632269236589120202998288499639830833349150367214789276577480015315047209346947359777898291140866195463067514818222578711719850734278929792910492248985129309342637557110328552401731937917133239180953107681110139543679425975341209166974609303550205728479122612472962262484830280671101398216282258248252652275678893090167934693575008316063568023534868398055004344463272116601290328644722673892908713555417100976234246014290958162643887493439004292622171376142329958363726342393822204533249275368812516492852505248569124431428951834611933897259184591612260953982800610174165712005461617629209960074320867128438466088503716341273503795644143921853450219752687221673717039725885374186190163249263029338796603009560053429671394319322504717257317565454003963186934767026381807165009647206209438894221717709946386288814280627177936061522279340431838203697532487425401983732682565117012925586845850484478093234695044975705508669319009739216638071170601350446044239890403261946803810219979702425644121255012675357314511202543311048533655005493218135317211088636351880210336218090594959252212098774695141283356526534586280690003647749596956644567663102658273791241990640509442555073451547767268054869197463660939221031013651217543228688900908015096228189793282176983684460404611954513548459898341756597037197051218062926970657428976507460900529018006847766521860215461498833709509641933386536473908852563603414751292812353122314861704068972692905793547063462133327223624323534165512233789380752362232792562363744261149791844728554985403325946262800207653695547978501913053867169139092670216657744394712921521322450271627536309992908067750434699235080244800254657536066468035170283675232128932845172728809156737192040785050698237013602808337251144237450565885815173920563477642163934525294265816419172900745631461717958816271789261404474344620273341979529560266263000876768950160562355981971745787439190543509515397928709401255901772928530636075559507529289155585437627887091737255420627264877536236344535356589133129994793643849177117679544665495970002273014009899479207194804717791564980064954719271873251603914790808461043215798044148367135899494746319974113552349950461948965250708950570345514827627602667905175135210265500953719594586702242572437987670133274149810562878250809521591046995763421724352168879173788152810205656596803287670725533202419569080850532294340447345516783313836288250467170370017362883490221206280615981687592937837267731960053450611351301792665536260731531515299477299487484959305317379875260600918761679326933402528494012037397351635733174030129274936948181500395918160562623528905513074509776340247028071391404990539334483666266414173118214921953828323461757565909798416308379035830271727158467753954318075218524642774494790743464792096476656725157843263673519266640058209720548624315824243430390081218358378814651222164075890439293174518132094406375672930951840039760202824054298281977174595686360027992939600289462813634244949861837471272841228470445000995718418814230086625198939403746786841045752927695754134228426190297592626954409322552591764451011596960917269431637770129121653939644903658509906174974898037690086111510390009965464684936196396186610457177949383335101438933754082300984892272858413797169005108249086693380191742613620135297616822210434981412659362710878984794545726558930419144233050169061046949865340176958429665822847456473401619514052506050017759957514269342100033212197688689843835617440139487483389428946978026571860382432277098627983640081226998053893771902782343697292959725859425966135010965062624546734614814637734949395523113110796908325493058853483354905261853936158045905137631988057375075227895033432961925109303172218080670874429839864333557235753242006277786736988625891964407002196725303339590278802704771595741018801617047654835632972344204096837551135741481937466141341950725028720111836686532225008444611968878898184467270658462117428153200563038752870092110183962463730929926551454670874442311336984138705791968672900674455653752065479116853835609946219833939051514974197393838024979054506900224433167691784202514797300832436771023784880824620836744018345597053060672460332950127050959524679050797037520292564584982595130897000167994703674737002034450193766998686694508174059270058201247208804486826463012835318230033136787529326728185432738197440555323200108092251801457512936337304898049600871926466255961595852483511395655799662699346309168291177376321529871065442073543156391100443143652610322938259883530737324846457419902207429255547059640104878585447593951095376435034877596630933668220245914200429486826611676859082245201096797740299137851057832772347407713981372547119828903240319039755778996214261053036245944025191428998099137339055551896508184358943162237753665838867199302260543010192191303216698743769549457874049840442288452348208763662675888038683252039240708729869208178194967685860768619324752902248188308273367856235886205372779749887159660658054896981312306019775062490321347073357536902277171510661284973736603726495377934012882126572331796658966055370799468722000153136722011903951129575771627442789136572094178036683621377554035119643558723420454347720758370028141075561631289177928241637363701018811332731141976287216276880704534585544046662622210881077576678745450856876658475270196442727804077830603391525303398089304542987199675468420879182118465736465412619650289755526661325844487981463771665042338643707902754451660971045794024995858579645416543810201538571939617469591189532926296813180134458083943389420772032947941946295666811637096471617520796250802693052841249033118044161794285665671060321182100439963782357752015434670389591671822022413219705523136356335674157749471968261754117764396405449014083683054055738603412427358168044401176413432375269496185161692633011598615066807421469966707664992877049827766755449632686930925727528112281314095773801320224296265333794759099791354223814261313269045274737051093684618054581984125762599411938253397709589306208958805795181685706022974361207090646998507052346889131254863988667388068644186712739585678505643440331064712999999758914110430882853031509713969383813586807957126096386461432266470040420409828721263522367973312640041724217597613823439906906997252455829494711491291718411895075084519839025875266204137018513866287008790410639086410812646111090941768183098539731622938533451310108768244647991579596767758015999367866744273235987868564775902899196013729409408624869202959314821246085873320284749475032881595369608925724884828660096402962949153274974633889312989933027113615874627337832789272729012908517050581380995564409261588030050872484549786497087641353439326543979183461321658962565091547965934680632859369576821338128705689908921764680720252735803821149097587209283474760290033005506552312149049668964272694634557017457013131151963012383110752068299565816100096661827243620973288802892300401998160931389229398968229267445774090780324185648190589368726584089974474416456909245692966781606698296782242176784357112612892739462305285624561094803974437558783722114632769701960541962381339265542176248373567989824056780704583090273182415007479144582096439150610068631626339120206877290170326271592170014877145299641830136938795545878348108911197470029390039396234387766902777400320414945696472826035651819481394550382020500560014696099853252141115430609957065587135012237609112135524104156090408508190015173079191557343992474564269448994716695657351266949480857163637233583361532677563828733909570071877163718949172885527630057112387226545819926970244636102087795323685274944093457586502740321719877241688486263391059613842750263841636975118178959845955714262011081567902152045675155904939214945425053407619905844539171426132318521584703256077436068830828330980865118642245665941819384495226259540104335188436053393084424422684739883851190949852911366427721994321623482532151399466029931680830864425984321922129662897691555760469364506581234579183296618164158437125227574383903835324546418418385602344758606314409710230772878984349762754362026201090330428738877176017759098462247495237658658980807999132978838146994801236730906860691786052246226306066006290889347629376687960866042563674222428983888045349420067169315906290894035940985040360762461632765846163867038051434218994307167806613755709979379481222367815943916481148390588537951834525901111784751214452152101151083661476723513363287904223145975171355973685861789891915378467022213494815908822908433573551621371043445944055888012822974611962348750951994192102276710989248795925925845596647396624760728821186913832616344897723049980531601920507989476439919607074317757609763222814524272980598007512745257465911307002724568678472072469456480050668526845677223779926247206957356178065486188223788857108062208138061107056807522166434014915160598535530422671209688289219493587970576959864719059960437408708696497264322968086148521690286433310380004492982824883240392382891374944694473136347871829777482709200071699463795728133987191779506379002419286725970661912641136692757441432321556827303594619934005631199940118064503014868382094575556019775049253649919738670037823419960935244372799105197395305443599105851734576850443688050287801948627091826224601176486221884146085505589325036514173157737796015661972955447304310345620997537316339321581672931882155902277532404550742558242801737837313305812422554345053422474549274782180606409709927800769675344543486374493996889346119743132770558088959578496700458403350513803127028862329380763420275758126410048738863094525752179643513576670774314718734226977421842727128018670255669430747249643561066010012729567672888569937091117094122228767562181231634941740684736534672278448993943912626339564370110324027108314606882703187975655461283950601831248425425856635493801864641116137455278051986079665945362071332946088540656312003746388273871860610469660325442955151808506363176865497218309262022800988460759581554161503770672368485598437051060707087276135395881530138740122268560160243457758089908627427574725113348101953439024999870117701906820747702034919982050890263275557603284008848807822391077399265558947796080248247284276544640024582694410574905349343504926577403329321642569075218155379045820454976637842169919240769023187635321778719209607041462205055651256778371070044323724497727139460817505448989622474063161278561707326837511407574946315674420170714842279656932297195518679254298602265770716928405884521472463261306783407766359899494633179431112444731583595133192162705981616874255338871055628848706771596586054119872770246476777597225005765413506831005071692168485698299368383646070614169870497322580084481056088995131889209534310055628974804314998422498473234367379163387165865923442948218756348855272691846005899362506728041023541558040596254907688779526691631505410696527544363202617523606927419257042973198503062093178246645150151113663159782358537166457930453130921061578459035327535298137523842996136751750648705729058224401178933956340598417038409003028662949143555285823403471244933428110092553955033866830118050519196948258132560028542155380304243128907056501329274429528129173647253908435767201557003371938354109839929933590751817913770576132247548243145871089129347977020869336334562142645614023691056423221370534806432997412886637453895111817094502902635794752525329849961476142382548387030182578284955912683520488713005451133135545503294522245536550605495940073568432750405158961496546759153767999214088188195933930434307430725072492408290913589121819438347602648738708883213906142429802094665238767746612040968275984199892036298078892213481981913004357621174425290316126077411182394155096442309988618485680415902568981942226506309625853682621427262075142077250479772559153635073563374171823965116533979367832064588383204849469798536125933457746158362684970373322590862398490843244546841439995118164111650100783345958883254371313618115596792674661386293126985020432415048752790562356024179232473335044822103286918520883848006609150535703269012099856477863476373293447446867002635020532877304436951554955756111606073095253629327388772281478643337399117793873905498683910105678996652345345477082492927383874133628669110708435303239847013849853909948662769253361976468928476480731281621556109401707013581403333345221017133436980683763049977958322042846772007876446889899166788495476210186344078308551900132390895676792087334104941229448869310596568427109620444845710416984764658960021433655643403394454070636795998627392716109738324976398206341697381289548255006960088550350573593027632051119131221360346763237031290669595056421744931942861158063592086198873581639696374123021276530042585847630637998317766851149065004413863334932413522862564751989207789928627625211084241587705432774664465044064678925845622650445377422271937364674854827461641827050244146446672910383726729892021230656174924840382737812218108689447458490926366052450200603437971053513292488746522110264823000883078175312991298969998430656721999281530068950101315223805631941095870038963957875290846735116203771509113851010257585252182933789648886895667560468232611685052876960157235348537479996783944722609316931247769715975861283624662210556093400805187820823073213162916955739392809638163538057080801859250697479025894292053001368847093788270836476763004470130964709438287375207243977366432860075285764517563062347436195260921850216389544680104561885442444299312517188938285380568737644443438666831861995740277363907449152504969604369545186249625867192889306249675238226787664992039173011833167403828631522280115338398718656709152854093045729976512902387740734383945122932773280611992510649535505118808833498917440731651375446998085336585928524832983040391121063192723449800016598598522808986398502133873961126794787065034086960943713026732649115157535500748785030476766553113895456763097938337436284834282156353174642151674876365991043606490927763999965632307114382560412595714408660349947023906464381993722430165330550215061165796501281566914735591800313376948958704471717764810102159940132589635663066174454786014227138097475269888967798373225959644602920766901143410113773702664990712930317220606237184393723553769229342706441739249027188537202990878173696044432205337110352248379556543944025361178241759225103273813597284558132884549847499872224176560910249847133273748969209565097693218221633860333935426481187850390273900681324497035483878083907686252445665810446248991726653467898418787305549840102062877255331814891517031837933941228050483363856661796413038944514148094613776568130419292547479030130295602946856096811683835029618741080069405565647506256452231272299250812199098546154753493658132498432115237721733712058055801166984678656569199090348421035607832814483786357344373687471172036701155797377954607067982530002131381404356932762109928281870257063776677629655939734413326375693794741318833231240126577099549511715996215656218658719016801509818324337995063344046439126003338736755933440074384610681402410691261303570845851102111865766075537390259892742361984700212843800241750005180332806033466460041057419870644592599791602869179749967239283772459654697939746265081253017758571254804985987625517385252627057904581014361191561022378227197568227130565806786516465198592993465237553189360591853748536190828168194489936041429228761357268515201446031160643948176570537551974552115990058713876099357891937133360767451863584501127564768215042021495361399412545965078060952502218144774143398502413644428718728668938799931176356043196736776131515933999983720760126177812912994772475559902592066284067500315933516663804636529709393202990835031891486722491327406359862675207354396458601822738256864205311591989204326785254922230051709159012208957898193625235002747653940039025722678410833640008919407661984393343936554213301511329637451117956978604725086758405381022026117304964584472313561664526417980082862209787883017738561348615352894596857068487198342117361307708460545128967858761343243709154929868091412335280767253984214676555089576125475117323730180760197311298394841199877899172792445977973037165420864523893113454925613424657586804651335290215300073851673908633474391916051776061496917655406835776039714887762780625021503681633062139551875808143974466496896445421981328571893890004198981972971706999041336351637000258065079481828855759261713700274229778167620385208629054555264140053440818187207560425006110933289866947406986531842675767200375869659750958886353245168944368476719291581459985146428647579215223481726759207250690347030125205733271837924344160213131802440171522732480034424376616509887140157581755413027875733373578570918545218321559594180481925376703158349734817241200148557507336853469836229620419073986894116785122863169006112418636725725952719352302456778506912737120423627100287335339971032080698475554657722855669420601530565249029560866979585709619055694446590650692332694455804207045969344076736047037881000602915539451024176920340855992996582724010445930151478548758452296252233143406432266084954894191788193476019989110110068628909031314172063151703610800293477584629711296385587986445116153810988640619686232977223131433235483219648970818073695186279190791179843277625183057114973939812429321291352000268187870569522588341023803531813218200709333538742560695061350469371845101084970970756524110651713798502616615400140372824766008346249037181537649145302978443978248047347625272833865032420292558672002910675250332592289324343585246282231774550565671291314773861844040729417969729595690542168895567679181311417822216166415042024121150954799092385433274960588424613998183849073629246740219932464742383844830238582015760586519334839904970651429625702028107830161544428091836563859596628443010808176113737801074936172148999697636858034192850633884261898801304539825257510738418509705306891086051165314668757022674366741652406928182943973238551925465597863561365688668896359050076917266042854627091930371622162478313815079000315333530092787038069063468941910593165348730486808704453500341579879869429218109021396365001248227236509417492082992607361361014572059782148763110364715304920401357335958855174040132056236977125608078644764557976214437875772136531935297243914846659060409567897017880620447400726711883793892627677547727593455679277765951744081830001823466115046909856894002796748933037530972078559527827889329498220603404315670463850327530217818879115288198320764621323625146556550577595293861165400718949446064525537807749181900029391836799894875758408539812148155696111113702544557213536092204777572114124312995292686637368017715747271604832137660243028117571049926499531711459982247193621499669397865615199682014953383910196282029123397289359754587585799203188540512561215540362396792071528711383458899096451687666174335162870183864599362977075412102753537696017335836765998687665361900441535912990690577833114630020228367179988980620160767240924447642281057427246667420759186813151627028088734913733766898060753062989148753985439015094673259056385172536877721912367881349672949719674813315129849713440429851763322505290003628216972674403623671242827894969865515079346844669143322160273362927224745887151711446430810469623525711991511857763667455540761393636334588625371847090102153599630398360817335849457668658013578456177726132367725138268750572972409165058568385187133661495751018300492647669511861782826920211513289028369601029600003681419328857304321816610034716189685537481992644342041472822795873358029804178460957291068547763586928761006256162113805156297998664337926612408298816360407239274260960841338032497006961545777801672621736557512620575901300973489971092009520989033685763833978509265679443096601068489837055693520483528714641159758354682985652376756152520065536543112629058548890455398961757280563242871423126531350459983438867648569208423336231141848289135355896007347584736725541821140310144832771777515831024054069306255595082084800586367437333712853451882497948542543755523611606813753866447226585611998398835962672943674786628742499003031887520478462968325748642235062262683580390952092264031720725702998867254572447839555563456201815147336237789763487540692535239283786683638771816589113875476630222116146249391006907887713659633264007952191679599529332397423395862990321849660447166241692886311250543767221590043844478784509987347153703281253198129101139601671221992456356140710419390235889326976382594895780941441573266480064223279011253707476137057505184724254399554668189726658164359425557800624563553098159030027097600324849595176188084809810456929443329763806327373040274059188012488307793387750214497950982357927212816734756783781809223502897102422833062228780561409599302377038446159216219257646778798645916730628641237444140721648797258941156158002196812479764369222472345581141282476954267326764029933645104415793427625040161401325463847814945497622677998796824201631929172196804790912555891136049673527440541474501777184475983171007599609061948028636777818228232192803528557118532664964468409755431982211600940654206846948735063083465766750388258878387228474533768059386827362632481852899133188115011431870924953511305251165993290374036460441824462188890519592274442436596820330406899420995255899755740604304959781547696409444789682918677648703168503152822316353492066746921829238874505857330680860992302567318205602245757770910923935349894074795087952848538654476528298019823491341515624405177484448446479056678392484855802688926461277162581882457347174854680450126325560811642946159054229514611842117631951998288808694548565908197162554787728905363979855142001754809442452837375562846059119328149654323028742088071740007745988138741680476324291595504370289384269896179426243547988671446824841668772476858837063762336965354848223880146236567807593293744667115813085688356137989179737919545070474949434216198701009326498839699172836100401459795289273716090286117866840506363844971030398230258132573976999425153592019391185783911420719475899371144951116623332877292002139697314050788061168536577191083769314885323997234461625127271548432008618254744488652863868447767262149394032898746109340392047423437105109442292685975979126336131964471305504926785337120688910794473943360828576701230553171436664797586712667614781368260132980787466444580937639885800456206099952502589952216785350787416585386366888197385176834930871591672565604338222523262820571234411099593567297856878278366419731032566888668364227535496017219039346043136084868632929390653909408823940277368317235640160229990506973332582685090952185594574774306327880556940701481403551729528516088911778989486511502031645256058698125067999131653392474721958302755807208414753586880781457061545443030404994153637519681147628222308414807747309016837975027306925828200360642322559067949372788257207604481850803422940571771122516872927173812605476684517699427808668200499024090558687369196960488406900438128311393511578376836490201855025003178318933121457929317189679471479910477021249793550200344140041428916739484037827826683693356108766990463170408624574186659649159779880522903156886171480848158101184935247409078113680447253575713237388509975077150902968116237714505304170278690920521453368064267614153517778089784200598990297441361506460535830031060579739930471020164357224384929630504049136101188566137781052267364464915605605496318029286823272257273764209019846610541037394446863699808945337310345421749591384809051625280718440166062499085853951604495079140654324118772717742797411290395860481829797078725186737496483821390542956405245598602267462000905230051058288388031694362958038763965126235846041579579615502193261306218050012003580349799274758327818725355277425640168396287535283240993074041991294411602107440463303933548026396711987761665941434181944833680400715221964087281331940970479832539392531030536821818297452650073873456512836341683614452555841084895476718324794381477068531303444579195861047389756540393363288292851434161365783631264210430974863411484640890176807973025220497000276786188608059937977917294666797375536927968059215558467282353167212955513192307969300498549137589048903270189714491872615184967270161006320828643058231958254169941738837289073385070274288611826995989996596547209446522598194771734494957076807185051956634272931116020669858464159727182816873268763390968442250130513436232239159542223677170328612840440813676219632069833285268622994293343449138727325242487092457765340849118162787359136551737715255832073584826120706738595456230540476798942674041863558163722508424467251396361730066813202359051943356739861357364973213039543573289115828457134197104167696909966040318546823052277121534936485553801562213017109618267163566611221084962232862361490528150513961625458871340126374700679228566492936210749809771222904398228098687804419108414068779636752186820045797511693335327849014054435443582942963884303169532055065571010591222424739161480383730552062020588588952285743429451349278795037722727545263287844914148696824389818085405405664629406178967722788555713601089063402624041910010366838702319030087738896166830786683150785922156749577241016945037232462285090056104395404192198752996752070675507285713263215859508719048923674123025383441465199540215133987725719512099080987345904576237524807926474557216234377265312837010924992825830932269922330840181535556983323789130119971184260678324876326327203776319084842396538742035212487002985576546788910472688551422777974244672775114072092669650019560614120987027110111657186335703807609927761317578811581872984740691733167884721998179544143416989543982180819912984193536284479682234904612855164575518870413860855094787945712062387193315607290698135025785784949074365785305161601824792920114995111364345217273174066086609731335483806855744601287379817627118178564002123958879018420734198895869342623905479334106586333849329164990764515506442949117928797791185749517924545999180674046239010958089271340772790838450144726023367287765966389242198908022526061787475584324568884100042929269567413467002011587049751098504732588384951172508107097403637123526379535804608747788282391762268454086888316478926461195860723001221814896132580331262782886323960746763236571947438850437697315653929300953000328814818510783824032542221189351217465831600644708803198337394165420743402282292637255271811989735809327590576042920730616521829709142329253700535597260701187316741956373601672298980423716317113481575739130101138193012804661538542106037597169514824871675908000170883486898293803332918449357377230838368539261407964380833165206708983230303274951903943071674622916103704504111285692466924857018657462164314816172456172065278889960942910423507058124645097968893397113511528672491425126981510264167017394117392791500819689019234647974214687996625362794791993906671688629736459273236420957281427625757642483611108647338820769041313340948568562494933638164482708577114533219530314222428926299130332567151126699981497396093778074544584661334684501432876332803498203688334460522054512941869140622661497660156613335489103796127603219399439211787864773419738348147258982007860470577861227142489026722620744235526757911550262543848496917637257372097461940695757203262258708524226968275123072077481862957921539147469052280179880571595785213002935877687031799418262787863079214137681572915668575355189990243062218857908409970560051131987757023421072590723620027898822460024089865585557333669071258700927084611546837555960779438083686144429735672420468335618665704556339420937825917270462589307930715251387378220882089611879027689005089743975354016665037402403303139155810053345250790520367164867332677890605461732454555547018112662420357778455058256859627088122745596343089903589792146288443142922266728660405084991869730823816725960908600155643528438075530400955042306747646912916704115922744414565839873367151012467912122026082143873562844690475003354230915402975365852638502399766757259952830335819131951020298666000754946921655280762389973077811273153970495744435866060185374958109081098427227732263928416539212804935610295072306743439437626826072511931845331875796915468203853236441409068346765850855636451211557472786811896518598433605071716327911852968488222718522643122306356106692905801959799114082711412860723852423284597711641031563360798954636602765675002975664440176851100861866221494907854725007769411620859333833216298487534098985575416495656195738920999967476803889566432624464854158996436948210523437902267662309754234222447084036424571544571358828447166407355994093729982424281829563170571931271151069709260554671648423456950983944442232607929253805554925564271209588417743871708464945697946241213526825431062585389991624522386916059955480448003832756971378194412341387400833176134160748979504520325139176157286920775693304473816960365185305714169286623104345016671086241834022312235817347566297578542940269130795151408675806847224445508803434425520028256492988351195064965181888769196561321436998554459779092963598929494730506812333195053218130491949843774771518316316518107771611292376370704641099636246523697503914460850467642916358015935346141728510448321989749610090382221649632803014423308649664038290424742101192046125290467057829011816361424668236502779359198426037654217109131061975878720714722178989496914274282351143803401627781551584641925267734299641196153725913110638066315143373840869576810284275239216168082515348542180323999939589837476493249529212347823388826444882003871504521650428354629274491757392003709195788142054380411368750187701384583781400972136630972841568208287442041291413651729886629832240387753956985214500526597617749449813191201317733122327424014994854280506545425144837126840758009743514447508070354298883669717045990540377034370210747686912304623419079869646083397749580868704853408648527535032934326407044224067066127635433058063543631342741354115813089849302967315706678951471423898610250633711760539262298216576593646613905473771973656703848248723731942335148012830795842491232471309172387530062571479150129263047089809728244230988878219424114072244526625315898711200486212169821490087502160597209277985295032256156571275276864641755427947450689326481575942602862973654304511176768544996578317844878292046519174574961912232946838989227714872319416080167876370935916237884799886500693096213486345884219436569230760363700649200403359057244375499496352170976540266818458470869539490973177423981318451111841197578639782247752933773169217341937863609392011817699569501325238982831703462931919427705494171383460727406753327660364203780693790607620227465777521070699827448129444652231898176698339775671130212870332805479851024688321986206171032403306353310577795522211530435514072241048722887249253772026264599779787609108248949395577891468186049535819586890833511199661506600685774729703054623375096621647068489177255024206192115528187328144815589245935717267578086717938244014500508668906916744615475967289739125076030049068360167957863500787229987009297393572738222493092448460516381819423587474955017212167764618737583787840988218113414570086453378083562188561238596476952630258288277116646196091732732204279848917444254935858015922857255940506451068671310234007079330997022324295240505350580081767280547570486016086739527122881986122916363118082356341191551843678405585767496211441820696925427014557473261075871008588683273348189548161314674799636709566265372027023004472291037048940406161642621714432583840451384986083957650304673348368400656128506357261528846113479524365845129782819115558599379303795753654385093731834560463184081639434416003482441620219843148871654694068068739996397525259567755925518180822303541136210683175283167829284748984497625812732050508694143040360448865755150269920272371613944751275205962424762337174071747095252838693979316514903444155647156989455058328153213965268507687857805908474988095905208888923177322019233924153213529300137635384918246592185757368239253183220657227772913735289257902971578511057206582906679836624361633978227822202502615656530196165509739315933869662701622881292641414943424169416055687429499044093157315687670224316770675750022219069031272253705393883378446449743072733976671745356022998516612931446421174087282707036607172117063919894406186514605394559350643309145752354022743809533833073022998363637784230716068075736272215184747062801069847313640623058786332866348408518456927022617560454122283483923383038134121561950639960684761642611952814430013374800893727910364743448438526113041976898570829789350511465309106881170146135732779800145415721936233459039945818851273226581734117134984579924041255466068295402926790047048377746707604534647042661559769192650540506740424488443826184570929089875764901585121704981364977236568661726257741560611553366292667991224708762341453750638377800372238634656466531852609968990376025272054001772068178483028198584626300054421694457743198012487953686914625168007454583535263375055582422266300704033895584254248747737021511627260220587817498313240654702604184798817863528741214169595154194417320585672501218749602774907605367350794012433362181169401477824787059456315559905292936903805951850799783098789662932981452256440870250571175942445907051367490277673885829461942430401924449842526853117898242069503771850533365581410189428049377605779892741057117361393138472143467351216916220049555019660601200117605839132952906264842097351641124164408252270907670319869723220837092585008918645747888089414132690389726686154314837766163563566947114306440486521593827803739637088896780670160699865721702697598275473164390772109188577654618500024995898171905677298926866413108703175587285141155266320702884649815953797699366306032252374553802318245828424361361090483583499069688285591815917248784384489847071522880142396444497784243886836351572486396892467537972946923574638717600689801537335892390813920216465103168604018024467772161419537764550466542963626791973317598267065650722639097530653057558366897060848096475986389392107750434835929253795436366834187802997048467092610587108300250178947833093587503540285801405283965014309764477738517232567205091369177681762636578685139823636084987750231088055341764509548870705204244593302928969856591879281157597820737817779670809440711672010368980611502862519374073818393218415185505898686280666449860069030711431245157324490882515504360641805573817341609180085860060680639560992704711914747150368567362742851807189176730434619000887480205219537398340595835423210132180005400757221986084918880990714056483511952063880058724557427896818453155222633387826912998878620937146291377343351997631634598398592170794786403008868532305250725428730849285313363630756566678203549361916881155101857540604424585420226949214270530598340959273962540547661842767940310084760023918307471942643290776654592116154952126899149032535638144795499124336964576484771762181242607741178704274156064742152761967866136216554616500611365860709399280279451130228036465555465717631433739989997209373566141440434058206528649760519118073649263590141026969335601387148003657051831423957547745844375484444867740037348838990032057548330190770045022743510427071828624084763662267016601890064147222202284211641660987985974225678753913471356870240851929830563517704279103265368338873432166155208553270467832623158326712843935591742836283498313800257068411983117347593502107663205386347652399649875134351148096427778886136092492725733431535119391059929837634701965521993631780611253540713374547294239714662466202688304761753622473881155483648958032739815154136942580517643903956614956994171109532623446347230895982253247905500435155389566217883822782805330722139049763641231328428096518419095487133621977441554889733466720312705625023433895587253975494255589579150554541263108348088432639209099881691000589235252569221167710138397267322685882887782223969499270250419086926222318020602794661958442455233766602143814442836086466256570244016985961032171550623732642504904448851556270107562696531340390644998893916022790421714937905836403501851358253641419820039436640203694334318387946155575346457415860618569101338594781898254970034448479390055851018278885216574473879392924040726728148195125976570857564050375396529801766802752326918084458583864214848874722900078301696418919786292009608727571274219508416094497349451685162287532675634574310192715143774889488389404835975730052657020232258413169114033712980418890092241030112575754263414414728447372270891265759380052037973515645719270855373187599596063042951422582524424268326178490231291691974645371757623775780614246560006120361654561392143720501605327074253413446610141104834467524893624186818486282506407353209692152301499742724171086221268823009170879106394230205055173968709529605509777552963302459038581328337247564492820692430442761054418006958209703923518719790192585241917063016896328612947741036278005122263190630126054085751578809671737390031252736319063954304107862307276006771075073434186337371040810618503104465452955381722563153888107399102823160650028200741584711209429484582895176664101928367739464852662553555043508890763889888186385077840635676191544904909739264910429775062191590764884788308607654393649931421217589727118640385595243020184871283442669196327439005301216114889277971975256175064526088454147395795836623582743429698193499584578995002615121979718428513482459645943000810768110930564935077763817025373152755963796535307238306939994233243452070036124087647059049009830803157658664741365928351188283088227361687233093556803966679750561196132551943711728555566766156470454561538730674433472875322382892161403327858176508423230031109475726578056433594908237684510642314649822364754245803578919901894054669570719973222410653191175602873261468729785519947865857283698848984142222182719862716438879576415764605377674374275130696310543115355389643161030416963790084594192583011422450387077632852482005691472996898917292163718758670449211765314675972644113182948687279370257307154115640888889204931429005164275098565345528428493260394785014254016546149382545375576836396684855743474667292580440976640109940560405438940534044815229299240887618176413840924532396036330353327641566690059512534248524007353541633609337654761141257019773864670925809926217228937882934536720736752462628227539435298295134552053596392918082503341507414015253488488959200788979527856315227265503051952126361515688439190032822817680033773962386642430505111168528443969999383954594222883426993425106439423229313822565254330062925761110593808021808262131884295212293232404347417245848007050242786728599313149598829793128500605085350659546448247056495634839818893141831089219359100586761581909495323868517284517075230259615071263899765599937535428876619967142052635986613591599521888380823964785258572206706146658629152412038001533860837990712282506870682088047892103772051274948490921945323625828536943029477494299538152943954027417531740154124449264193497471211761080489789402184355529215722163335345374158792703537034342701833491123390348970575334245596649367271124264686163533883913992351624520856196267292084875699466101060286130774307836752150405057787605737545290432086955016981480727675604391414628372794346134921875594689565927691472210209795494396940258694608393525845391824751959666611494036976944393844319876796078261080944213178532925990397959873350712444487606364002190312528953171781434358504103555577389767042323908520670450525211024631765636868643487083287882580934712436756559453233941100769612976190461112812884608946612071017810123758337766670080609954184203671053570680495168385543009902270250581660248597255399975591884554497311343098931551349376317188625807116349438925909760585448527244195730491976304930958380670938953874510954093508267117086689106972639469446409183011074666570503448829604977292112945583432174264035430195908744809471283048344620296410713197249632385239542575315218968944585858083591557603933157286830528999905788394227784711978401079193943585741018225041429762569026132120774079029413028024964747019967464120249948536494962382404363348650981257424873283547609937170516330642131920963571954307860301654702118518839998176715935707623298064298131119015275081801998705940057558032978629124199969229737480481891846714664716663550139451637008756661308287634926019898054691643883759702783072932754793165957969055027706670222929912998885600158162877660666399104090831799202441405761773747670577277315985052639579512109578762235935856165932465407366091998299599689199679022345299678457296733140392202601275654282709500687433541521144037674135354751198541615998678141412935976302643290897123684945367227281647042351008913714026390600349414722746836869606320999232219044034848324895949484027527281763030361697459360928641124133582734165173484669658097530697842461104716850614452277682552069798638985501271864526296424301871285163456889169523388155409992857658873802028764171896157414284918874436117650368855216734927527324987641934341452999683697624339158679833545619564514906346196217567452754959469341672265417372763734261010900382853252331940931210764116382274914266501319899238443028571382549480860243862430201621987675564342641090312043019131353342397658170194509803188364597612191373533304718696473849410854459368298783582937903632161532435490452853790617399868520684216234108265869642071005289540743079240911849746397516688738174141439815309998082858472952035097054353780641736884673832812734729122224552119164013534484872013159221586419397005896688246119671822496032415342148393311903588858207420150330218880562208493578540203402148205921775020675337549788463052326461052735670546960567629003378470886775298415676773739825923750107552179053901234727897959413895929189233808946631614467305372530037910352209117460646095843605774979103028340345079772317501637157631477173093532471880546996256148721993702474275065507731410691525116782214666461240522155983698503323632608856003989721721628295322326001119414765648911294321535030193543150161620698485365655201163783177929093637282695244998065881551281048146267016601456365279518326960307155115593758545274904199888539230154793827938916900334973769426232200276628743853700940445528542193524920871995011395720833141411171319149682952583267169054354858231901938583706660345605246806337041339463197306587051765181328177748722165933610494033318376709422421699621873744301015808277325512531839982783779701835548299934239576539773902849364397594721352507966382431941817789477350882907258542980168259953396346441007142657798503733849698609422563153676448317268089311892956470917533283019242853402423045418585275999674410341680326502030421825775609163981813230699668099153846341065755988359007393706960139767004298485959103987423521195457167921334323283648231909304534013743493632545493567523342426731132686660049264483237442921946789786785155894076078455102220639451225407035042320155197717042347636406092573425489346303984608057576667421829675392980164161606667146783872220453221746598792773993943020264361034254818263397989728589444915985170537510233678723378729586273576140828258340257687399758562770899955506864668669072066785020504020546211719911468133306835089673283637863536357415180993571348619199083948635700838662756909697769397315405666192854156256515766812264005546530211291650850718094708318129129016447585883911518549540498096286548317545163668774921925230355759746594914331430595893245059393183765779936130683836259440567872901957850766883833608858858720673526132464858239276596011247795722506471569372700397659114740832506546524516904178657284299530210229243732875441505486120620609299770345699716248934028671002461538331537758476725394840955400287971539432681514870844258267131830753905528657479968290258250919248418268640591899373988868838008284862243693245218292951273659731543156899826469247860215588407920062433428866114778393504318614528631076669029636010495115210834955261861548154731586093861884765764971656043752598981870294062797627891329947087877478542047605819738317057550902020180766900540761214798699805423917265404252587028942827535771500868118069690680098800262153247308075627682700984923422496559207862679503827828708486984887370507157108364891876813112039516800593968239386707509940380049527840726535521879228018195812686213110852005059117015252030662636469472577147796444006116219436734827702436739443377077974784862707221710902559759693682967876984663289295321298874763798195760003979541904420849224872301555050273129259606918757492543952967744957607625163052486738540913097088060736167258468223858984360712649956450426345250004362202853620686293074193820331095055032455727222950451999696329907680249021492563858902101765907575943987393571218453052750582440385826180769570016063268172026280819012780431995282494264968539857188310155480797828851251834620648332333198121096371534857948257225095568092678503757972216100445316008957593776913940081082705600907752884213822000509264740618096271949958512396888325118297748237711441260416193091660920502619867742042405411693555210716769019884173659356352228876489496231046445289115731742751845258350725434373495695056213153664428695258874764949286708883184726962567164442711664736672855976543258870010762248634022142916748412941775306857470917283754768190669108485106939573709071896745092812138844113265156018916729502773344458667704827307966659298446340211442784485629981136792682015319846697076787978568093607061107497224741817823518798360574791468521000629215342963960778576371668526155379987548998829027439250807340745265514329385550190926554936894599375379757157907057858189979090922696118357741730923150568991500099988295041558650016627374591059676757200481270594196949434208150013329804815639315164523798093287792200592677983322854756002222878915989550804875465177754953112545449659372514093712449947099558885366606062514469553780225728790771581554184047589068249654740777923677507850939636610663659376052383289791631870298494328022925725268451686406678501732301680837748435384556712181828860751293055150700825378625419287933288115323251796201995180362730239472252970555868440674263369802187479081414774278082088444613278504480945085412112879179370445332034173411239236243789210250532584761201499701664327877916058953721854737839525245768733683028696124439973787986058379244289688911238237804379463989299600078670743366533876737099342900311421812116123249493297487188960271608412681349242603609001569841806076442861268106316469863003491432805624800847640042569082943297453906731176018683917449502057705308064804636635045341224125453104529715326938711681563256714254331121592086921100909529523073791996980531954476782829432478329134765996548491443075130901404994755879619780813544491447429153508097566138522584147991169401845765851905251798585307397896329020952041946169598562256445794734070817354516643708625771005544042882824405328981085153091327516049023564394169458748812125454520281429740295649931358603737987912634799786220276639563809192730319911312364446412979669380013054327902010709559442126399889303374117049091177124602420896097978851519676306383318068596568591680569568533049459324519261126759998880217072290012144799767072054787827505188265101538551671674359355469541803602765843055952934301391839386062139602123125508343234843535833944804473485310079993181692696253128349752629891383934822009111721479300511870439703291429561359260181502939698622214309420987165636978491798489189588824533048730622696185872713484069282105716581910393166993241316575060730866437699092307944709964827008787736932978546539246429009008203801315865457573487659141367591410511931741396351366188005722931949430318098155059945297335717716062480457189676641648143977654058416473896795497436697116277679317257040776911125584202165809833294582736138102987754303117061626781027953900406650274694370788344837582681903422587752990238818950736124252513979922908539498718932236822056940905234602640764107571844478912836195099528917770906363978984514505434838611864329616347853086401671042518505937001542762266339032447746653383956892321072773854290129422046114321440101118202338616537683181137152030658370948690224139652377179013913323884097228978455821093149758370380146710043672234250196113397142266932334509183950625526012061172166761313447194093328517478858208522526879854767118988844653514129027875358759690154109287330162972019547556919540253869571646047107196690263507611019691686036676110749412331761942717588133655507349605471240351675421990556421400520896788886412905294588761497656121914465980996175881383663427477745620781343582862428464961546076877386116262252881257118260209205352908781851452760519555432987913471758650240429005260538641172088207520935741905984097213612802437283576179092121157008981147813596811437310546367252049677048589496163715485689472972305027982554545557066225697959631604354464790893353735104830787246686869942697701356577848476561953735080873740501563664991706032728013799685506716599752114786642255079693062121217415191410199998059257004240256619392166063271619085688309476473235169952821249804465266275448296095233081339755194742179512346024218146669205409301245900140059503960620578362587810214560490955092118935616189910687687148672322167099771293454281585695253198557357260226844381160985019746028551743609279592460686395765402208042356690121456247182080176057415984514800622105811130438516560964849718738602752069231908005377951486433459575594494845529009939383599740266771813524877927919797666052487158245290009918420505131487548291941449790258672890295793152295184310896404752323985716936361428241199618163236894550831355097058682756218622414243906840218648796363468628924632355378437319623054116027250280621723350675567205801312373131802087970858180180359367282014357725036122064784809551046260633387056660479689057696323298714491518548359729981982451570863395851468934240361171836797320471873120265713239404767442170262952332416291617098100891667130531966204227686588682136037077457439069972117861854324005686623571567013180652655065836500255852625133011299368175381218247788088590889084365150836621268507726419804519894317571964361252331260625888892473289594691073950269459511596897201906392168015770715057948540906491576334394255186185881143272817028155665254949007332184184223342139349628062741143947485271484980416903421394492852490144892597643171821617835740085162204427387850396306439316302391327858974069192867423571679446337395576679012539373148050825509985089199352065441971540644781391274471728662979838982766173340311487297825560161928851053530805346768433508952823195211223618776255564029802823870421390133410760358838731759598077415155993472432725776776104249390956128836241687043533760750085406258816557943470330339455211648493917115317301235770400567150371990884799478439199530037865497395465552169329585346184649388919413458924745724941249299762361286927347524787323210172009055368188349143026510324846172018059930364193205727970983239319118278175258584152839428094611956562907048006578094329071214195262182734140988429691230950443255993297503262853170204217787867138808912743922332770786182899192741015143811238109787816488102566816199963655676791193684914106691583630415916208372335762289673270747099731732689889126640198014169635895205576569334690331479100081677631010850013963877479885124393131433561974609027396668689792455648316564242036962477907454898055424367457513450156088706252749647479257212758680909469041721967516784731766953973389326093139051518839000115712055671565779624193341747139412659129603321392321558916566751668716330495106765095708028740835648950607411668721859607605439808634413313358941274950178693922216454670751735209499736117264475589200924954278412169013363502208119496168462015356331659953810902178633652386536361667437631315104413340463021510390404137667260092052486281578781842194372335599348648464172632239524744511608904609254184671531445693936810272689156243401163400720003214294911148251048723005233112463413716872285019773676025272665502114922876805741482937632877229746887863600859926511849315626824888138268199794329387973148987618540707711939627473192631041930163505635108220402315839210279537836555432251844692936587074155165123600403717680348030266497537448443044860414347331984959687486658036000247842624899806290704826581899434006473837044354225350313690526517364959173455981002460582323229889332205345467581778185952228592035619019789726835202775018949560228071544054993990729185878975344806670523269155903276585728682159909526380573277180819863002930121299384096266532075997013561134155595517213408225097829193533020320735158254383195320475681111033902892763522262943056870399195950474567013934914774621517875355184041725189186307746533341273482036618576287987947434816938443791646308975726421229184239354841004430763457363297234528909654379954903979923257930306182925035416679517703993732539508183087875222165136300643006392349080156252292137683498313829652350524744614856171624757964064884504592248600283261798506681644512255877836749042721495541186960654060128356589792897483533928374848605709553649838228030286892786946309754431006637069264585249817892916109410936848661506276915248216076143439602672620689321356020157360615784694802347163294961996694706162512964427220451199948293740678350511072429059341104471789625699929690634163231223017698491794156828934441002765440697389647485018197825703294306348400480139796465948200842927311762830743556626856381545534680044881310673327895213289983781781998314244123862059295759940095898740456199681862322288917543700307465015809378438789934062938714249454670740139739334350671504812790614154398446152194413269160133710427166571128121626354088015277302632199516324782063713683010554628850210073171187117712019198937380405376374424305583120127231709768675062671978785675348105534630256190773184507669149699095925481297619857858210873590420346473477075647471799503500878785259674157516835477876621244820275026353776964565248732137151272529900599768022340538555088406350138421135350514189050010778397614484594050433494928253034126794466811179595454256515207211589785261370224611665729820035385424353489440748801790203558373041114580874579390584074387706969269568361172875947689045171856324552669545037341863059477938486565547504256531917535106621975006257476820911797158240018413236104960897557424128118272526492804411258688322620779339960349061081841974990507618719370112810196764718574911711771741013811526595749858129607610149235110232555061254856632970891767589316889748320683468001727833718669755838545247146075356399914940332914862751774131724114672823447520769787665050287101508053922613382839086507992158379129711196904039812750676438512564322715995631405832518332290554561531835038537616442145464001302188975748916649727074201006900463006870003299103773543467324643378025674602292350948244788107159806198897375161360300498695100277466828283063744415348540414960728445686698690567815807459358681143045849138474240475445382923289673437870843816562487019070159094098852592028457527639560981288928477919710100142228035917458775455451407697979840406114591389890602073927360184271883726024128711924159810364567524558300104821041393324309515626684433341482835913579284512035546428023398786326841920302841282167505399920526388298326215182315689476623020295091634554235401771123495060138451530887027846934680736462985421142878346586872956353235760609559133282087389160588236610615394971020401414006246345045593775934767260382219600491749228415611968915457197976523455758361340304245271659397819367008871228095564002700523135062197623211230138625798471205609867695894694979187122119420173668817066703423100143944016050907632433076560200428708188637113984664948158689742377097492357096422699583049564852622576600510010068344792481929888031323941338848626406347772697269355445755923896544050172946746732077747629343916604573197964846006699344261084515708353800744563795791054726737773437177456166898148367340959697076891112355630205246111359069501736640415281736936190709146440615180664543062684800075662550644801833466046786775301035070340572010904962903488090347989205695382424343421997319235866013160898951977969797517414582058801761427465699070057681949368887421784956204889126727442493587753992980575863051692736031198131894786476703874820573048277471131121110162488371429288077172556922547243968019808115855011835305830135213734940466826033141123347144078627887076977093569676800711758547062181174323039675059642571535074278379021613698121838418915506679604223537086842441600469719498903706080790049220857118457666755221477120013763230370936081616667381458283720369945990938578672226658562231087457541105935688338166260612227537268411600306404641513298890324660389405358985412593879355224611685487330150133559022191928476173938412830020269186145252390932388895696433504497571251643106355393070333428965979637404038877395888371749757758087506227838477031796911318700402096127646698567219539992572752238870471762966725244449266201955070490283181929647791752890174781028448739149257254686971936911339684038741669310014355026444046782600643404547859695069834230967798893181097745284959676206007659258747652332306033199040649787559153472472823758275430958907611366384066837199088604861963594414236723375779317867989855848521607459680626666146390571099755680509761442927464814437743315009364254764259566497014093356024523656716790542426150308916402501818669930641969847177707913138671127991386283037980686959860052427205364557059698414297353544825046376736680878759502431069836260597200893169242029262940845001384970982898679553358326204618575897988856547203083359853053487995619451145062705763169160105645831275937770047114917689161666221118932709652339291914238320764024317637587476362280998614068200747304597952770533695224249845212215867130599684882479641227492949880890915234412102521059856835362991059421449217173079008414732897480452953824234482920305052237988095898354449849619958559568628238419108007666732412777292803297073728063889201138571855202913081545420909286605653850129891577694984438085620457338775399467054048769982903333009442880020450567916627030637132285920792182906752598317168600326666990765834527152548598444126591125587879306819047991705505693477220370582897877456663274774760795761700187433079919805187960986563828113272055201286086594272851833238387062237785553572116977179276553328284319022324878440457664285703833536653212143239936607886192831618854816907618184569889145889594554095169146605559278136071875099685676162344814323816459682093124336301609046600237526486161642013072179242958818739991035210512431766519102173020423481239890764423032677316619975398893536643968546213117986243655471906350239352251886547255703752159229114528121585354674706716411051943892013404244789774642367074237248454509903971798217003597650286118239675864173042175003273282981127790598677905741322504724782163366092575407154536391606672559197052626076672785484459130506175559576489671577359394701023605073938149356162586160345183749141440700981078153591723224091544407463191959488810518815936304502779523981945070538265486199938855932938138928666752170035466956849683210947046678247578671960845517584670846421352073282040795656470347034240239247678886895221976054488253068933121164084968697108239354668326346615265352636914451266770553565159513830468812988923028996758500511734926937694983956910637881889611239962422772000920883001933150550812288750062789007678234651537502343159351873779257596020034941059066074706671083294267351441988596464817821145696372807495635417461726477432362833960979722609344095602698690201332675148577898417813857073917011735545914234147244812219767336284231792939926899762766462338883092452585439986535473469632210985055903842135139438590885535033245746271463902954950914305131470059757334323309920280058180109485647786755125541066591934019678821627030969467388642298161125542312406020626953747767376370625405893727593327101058562009068121017123035302881183954030893869483547750413600295895998493956960305020723264939464490901507196678905662731136686897345150796851521580275861314079820272830747700140908277082571746719004301632139121856708090448358913512059440445139538597888447262401042720435987970395718576510426817494678466238153254901888433005644012148631395044187181677276175599839188120854135992263581288720218458489332286954469236951914207703572252611204017302455473125557983212609315396692222985613653008382360256589172292648530772871772162699589632745841718306454534225821918594882072043666948077274237160620841436483334961395784067796930277726522100058455790085043141275804275920831329862300784859128596167971595247850973630935358887791186079065236818113095130728805106118074529574835882870814088113964300629373802662608061836476927922113892036699099320153392766817542526766221166302138406166415840260863848200332651054898277590111023282009664741337567937549104392291765659025233646690397624721323817578731758510460069701553682726790858909992991540097018279337751771183967009706507000642982884518983208251152772117016174334445873558798100680685893601321408275077024681965586402689905994706253615355658310030194779831098593478174415163064624156132724554396655618703172477936479448017298953676863427311761531255180731714953587954933925774748854654891442638835160247742060965632747309885163316202037706690301959581498560761656082458719157644225146533374915150968065756829191643224778751391966173498025354395507072901661562018695957865031343582134254250097134274716356236051231290912078314298500432785551390773797674145327069685347312419551819896897083903339711511941090684287280117522542305456119178730986370836544120600415966308517156713912362251827211819622460812711186079505852382860629571029753882435328419736684730504285709630502564218657661247235424831636189086944539614137864654964733962865317357941939009582525422859613975331638499169312964937628304011921997826233398357225211545035772305010272957028851171553997107234647157263885379922271271117179473184508819125247582190139036624767018924515280843789800558769610337665558277251998746030751358003525543709748317083580282642760898272431561359243160274411584389659636352855356843104010806440898063397135252480013635354510187343406227834058011306532559809016945079962550201946962808932323848907790078757388618549542036935204272059296864303487395590749475421665249231447641956987662136969636105363094353720602665796692768202768820899564431134908766339675228214527283451353728234550674450583189325321494716297129776004640702989799747313993085799696345550143702375400425440419441525024630820843303698546139399262601268841461609969732301941478718703830688186355697530832258553525650330945037003051527127149160992477946908225324898196466597492644903704736552112969782319345341197983748546076955577991832427874471802156043120784544264209112527076304426256998492570756554520385249344715164386223024167289489663341172186011212586095935386040819052569719861738590775649999563011639673381248561187773548678147140820065096709266881605526816658570043633408704688193361174904046398677064839464473846973095318268475521104709981471340895383539852276786743725613060784633997766842934532921416085502472245120892875026036988123161968233732271913596818203758422887715573689771174477497951243518968098153556961011471010893007947402125514104380586451319387178376173563690933647581907284271475892183407823619401964867072177767420788074621119644422397013976126886314552662702912431359136548632604528343975821545501764179016385333126671711840649593451285339166437765755353982530527253163446846195332292832209219913273982697894066875827994257373255690543766447697292482335431802524481685329213907556726408293002087842565146066719457796354284106637320555501084639197043921424456014900306437949001835023223644069874910586571466915734310098016514048831757755582871851397017556843602193485852330818860393344703816987707963531549662546464487142703839771775811186052159306475931895213241838303872706576597720765956726107175330519963884888187192100354483798403319934450735881162879548248752180495476779409728829036297262308619119083390367726385599923726124613597210698298970647349104187711817913703961168212369314037990658283881233373958623978147627136071982516445293862504898675489078845310842863700677928646009502754720008458592576197641973248483127906616827318156230657761963934595141590216190477407676897893255692733858030036196573031837397120714023036120869149362253482511779204510113227901788969743140192573682465366942054205615197029035225818303066511713592793693954524744344790693706817995136207577428696625133758311378078694913925559963833836283402654657042991100494922371490095961309533741873633532977693543950964944902360919793130985735032673795146933424743245749171676997222547132690411471308631538046776381188637663078621450856495323868912737784726567865200776393619831922627737678925908146346117881949483611030971134411011513751348161047738911746621822506318109305062033054977220507477826269441332634255063515743169144745785970718217543890801334338964086841662443366432018022333809328889587628019644806638987980422877339906458077431586447666033567294177833820907512238447947430136560829946265071994760873098777239882376864076857808894005139469073660760730251572978902662728706477082920847997022621247066659841907407069636159236315146216896241564686735083002104655068413544946252918370903820624852443864642514394559046735274964790987652834156531069580603127583469111179297971642631275856836772563873297655419562167439192601382688437597428239020238518974071804810215547967905677662308747999753084796284732944655202164960215182750953651851951851715645691130271957144919917980208404646044370513284604723436116031999838707893042796011397051175837282569582002303916428620255474552059433096230335634929628080560378235216810184504657155538546925807618717923955792326419128141994267282341883964501624357813513393136940599840109866349624063466444288281085299539347843421485491795434024843290275619314181340341582321885699871773064075900532696457472911041222253190273312078062657789970245093151699924416151330809338718804370125334115444270974870045593417816574217469262601133726764694403663966963375569179906026248355902109729465645991990607595656243200970176922558544326887953254106998325055897900960927533929981350193532082997410862431973314558008552152710392700223132312768652631007073655734868217610030316402025521593466886843445695251766661934981888142175842453032416134364314432425562469593369173386470184048099579923335752043108770037617398258451310776581573059285404781460839827718428516714328706793730904738927516867441041646526983532324497360309676318732268040790854280177419693295239559133995173433853205645240648251301131855883278519661036432568458537562669052292878444946601245484582820497319051516639927903942064835083506569750516002837894142101645237071443928265532379641350787759014642748830681951695528780599401828789429257242698778137657510853913413326823408190444650140949235257700007558873696373446272141736134015711997345358169438760215000233646782862441589881508371937229578885413153955663341253609153540506276721276220128351855772947725019343384291289632595122550967153312350285631641565972935235546783513526629615999841152086096035597554457423394094877264572064704098755900264957394862520177270552376972950522671908251622160529242577858712898525444522216941027585379445285825530491202622390602761456196008160675065785936209452607204007203410294701150434184112332976419455375080359776706334936681028035254863861297508632741327692683978462024455951289305777148700367096849376649220974869667723601517481301246502349364539648056977909257788285715266659502906088179334014522696830359557912042625372787114041197582062493851138706814511420174948158019474393466150822368241387942597968444418022782854145782314217827801654116594176820022210685699363867015797353673077623465297912677172750438307979546706871173249500009712603560550664940810055139237274223178373609473569160329786391504005855608798937441724624522544798116695634025815283825382388278857820471480569766882255299824809640733051074517745620157536541701931653491610430331195666820556537635493640876737839914153733986637281364994162014512617861495469259438962211167188300005393577204115678311176505701360786362953227938127926452339238248480250468391689278555201349188992295217510872484453969683128586939452580719328533533812194927692186511043842111750960540263978921499659031028783138095313363758033484199595531883828339790005569725532021226503038186589506171210897896400266744778707116126076822491673451205951196297703022852255217393223132829175420049182095993840259676632924695957932587615699718805562281025809187779887063812700475357016819503270419733584869718919717407975743201802395342926751015890105071059086089274523965670532403064545317080365270021099854748494415814348227587395092012186546888088878292215069873231600499933212759292521376913172330169568396509055281271867037095356328713052985335890521606082954305631371610888700573381766527286806676461201391286955187742202324487812468799148625695723421798040550789852726954399949121972469135228830973062294831572729900197634880969857511842150365886738864836271092532525130206755118183430798611016573855495917188284598492296309540989787019486020098685426312832836578207771763140019834263808635822161614830981540899641438665166213033757214101353447741963385149465503537752579378764778627403222608863993092741374382072180116134468926039944397486969719217150650979259736379789219551945624557358880978995515065000681445449452634659705370958950720742677394182667669748841800620889338946493320632869815058641447840091487517408139550817225364440065278176127688410634959201916520836102304835347842271435588288671024456515412678754590918610633518767294175358597457101444401486658304900689413152660120436740584830361346983379591689964747714221868631066705668270607946385051897515099323814948031877415667178148208664828809658587476623684708845592806151615485043776130011885218495816735873341006741474334523102677831527120447038983815255901856839365498291505372286480652896020186750130972488280982220743978041171079227906299622494189720274700950148106040512697377529824808952778757300614067991157312217051348785062390942266460504732897091432994557499384010978751624632519413020669883406206431984898442731446156246478625537049779673852230610329605675660195737754548440597965829419449642886727893102143243464078205521491051982948029090032974699766301850256299209865296893813217734038136366088927168784710982703913014009356124617539027701889957176066096516405144388895830856426360138585287271629729298919180979142368634034933757893225866922415286191008037918619027600277158213582928521154186651082020552732193766220088674548485667987279599028048211820842475242828348889029657792032300799470512050126468487496859615370786853859746835119205248766830227413242225675437915656730274060982282344128832154722128303690359664073953191022390556368773398626795587452786674951983857489085217857783987112387180130906717586441822288753442654556322163273589039687348450364179788479823467822240281000692274697604015259660323705092524874597959186037723982136483428473939786741625568259543594013413116324400140272534136510687726367381033017059214785074337860428981267007633466277490468793379096349193167753175301172252505797714793025228470446836816378329925374845801717686536578889807405219623538416120323361924746798727057790360109000984757226477344786696389974156163714210340046005794434795991304415497667820218048568176765147654071126870538807193136704137998075581548166052515171369837070607636313073348757603603735278032341584719150654054093260526401060973235127059812816024156147876501372943569131547381929662563405887859228709988113439371020119496915435130240597462296194036700053481279956542145926379968066903033510252810902942593084468127023271964572128498932525588560576215149525635441574626922901789756530240525365632422783586589438787983046402548811553164907772974604929449215305240954355283612832921595897710696658824904398983375093835535439433766872494584895636386244786130530396788731455977276991083209167618654164692401682508796947930601388729377557394372050165268975198460784968892380828018647004762785927300835392065398602260213772992036464849193116434292292930898638250335301146979805137060479541823214868222467561127074142154645600587522826750493440150676982639799167054927500496236534018168138087746308085066462240314722656578942879055656750416277389704280511378008282003493752080682839526093462049182108591334290092000488853000913378678333721076927318704118375494761453323891038657378077256082675833575610777871701097401239577059757605478933084936106345845122618955266771304641972310472650407031007401486110012216786363191216985707382919313624136026040523458991547074550134962755535236187327233654008940910260864410512283692118733434820133581026687005364379180216332098155423652600172219784500918075212981683817895287077580912647129073771943674583796805455483415934099266896770154484550705140797091436544994069154184457379138210207344225751676426718855103471789610635100953896007412183442830685792532736938988640445942646105461855102639352972916926810052886288157018739150610707054930672794726004631857564039883866791650674113193165787703270594061985519948288008084470712873272812574629023574327450481426877966657018638308880994719283081497800020667746398862822920768773842626952715677381457125445546733578289339473006367052494777741264303446949810697198087117984116336042860011681146995077519197521921534033735312353644167429885231803425656626093319928371254063019082168615833939339818988582971573602844016250292606452157862581515556074534187484339370482091823249795840873548274621895598616639402968837382111806829773673310889177751405764831922108953293490687193696117114115194219529134039460626477902057915457570448023478280713298136826626283634006231641604555890152916266735816308031761536693671349284851606109110059251799655354692576357849412126045230800857837503012828291870651526787311695559191524752780100696254509919033908726031651583807169483853824618502741368830151234994253473267888802112722331059747471233388925703000545495193951698461421267753368999407357936097157053139441076658560723681423102804135065927641912798677307037726289417365384098232403585417932281281142702798091792938159726000079921704499093413086287176189357967786711729612740213535558866740655048025737113823994252151499773820768069596889252276712784270662376029317828958266273531838932968951427257505170260277208607468639342815349804666886118147699915564700900094703596444625537761245703186365251843655975455548948304530576590658578577330801483242634833509634021508225527732094104104002767672111196369355035466447283545938260237745016857734918569025614997101894194517540315910584316046839089339679412621498794241681307982164187684037112459671769755079177723072235706762902086787329625725758077522731956178104548639935697688549631674094171109463895565283497688271585231126669043959147437867414054089123806319619326274807480613124121519607712655864959547077020687816957332235714163668527347827169980179737297546604664859228482630937514095991270182850796767780987935413717977808584813624519205463920858070421725441033584659954508108251501971218683888158283611279887498364715230042784951037901045557655675706166013049009207968903799785164385847329597990603531644608547871003699382885229992535678828653134134157052102842289866407957439220757898426321726112934753956322282504391352554398765568109457148277399825181590870800908898014958091781246432963839028261172489121301745161702390575622679166616323808959269100339856399753339977377396640622940497765719765473940093664635834044193747841132017734908648312122577961248732301670143436943634468506956355605747445817043443537414782900551141002555154724291207324078116297756035541368437065614803826001593675118956211394946281415569035033444189423469121686778219343905346157375612523281341453818035408342694793226333176756078071103503892293967535389670416934140338292176541260397121826736612198406625547949352732369912630955550314612909881518433719497253457980439571238960375755925184669695718227691861633662557045973751876905642768556192851661662154590315016982013183551732095677108519405242825790119963756705426178361703642463877394352006170954313911952588807569569808301143798803995521212533025696460072899321794357541808187181395946655971335983977056170553246715385559542359900374884818454290843873556244027575860174938434540800284130487108215434266536983424835802461075220695314450254431251972037349120433455497261154675465241773592769126808831026790542991496628277678990588149892954010306775612605753466632415871017245729196899992023056987528193192609308414289002616784467123742184858090686353841088107786804437128831904659853395344066598800558948611407342994222155127665251906139315336847699385032897518395042798162815281436471499531138644961981081350681580815624017130348965501263649028108891485122480935824830616388861134398344598454643185707836638637974382470930321811014541056270044038718077894759209690254534972906137474042036897445396028887141683530610255754496722505796731128460425479591221608292306629880978927299072557205556892829148231499301531607552301110239447387510961512989028527515689122577074481271146435765992472111577007966763066333273159856334058489842843029792551268943523345680002703450997079189771946128159140183191346267783910423118639314959332046092528935436277660613404564071933115494315788556715899571147197503201165474493544962530500885337146393199631473102248506267135106871458051470669198859649303702531339801791695824279780287619149622090741556745063189150259998325038642566328884395540326677528718842863818839300623951939005388366908931197337340562783303807014643117106643400938991039762013972822858844946944465977947479229099903864574248647249105657796831291652499427342979032003485291255295208831752295459668801874833430126536386889736832826197479331504967995857750458412919906984130473334641286728365667703091815581114596290307170423862519072722274431365589862862366388083555310912429551988181702908463630238814566591926540922114082941544917684483520199010761142538804816096023124341868179031412041432374595379317794845492841878551992041392921493293566132877584397884584229216139898301317048826924593577426250982031796303684805928376383353121006254934475936391395468066652463313147397267177818005030885188197983645571494365211771817514168663394796738129549204172104335113337735237866587901734399052389115578857479311946439377981270090460700289215545520061624682822824910199114261836569165584132674824965519504751949394156435864203673428445296049157514546733321129435324009315895611289670113423787874515431792781933875475204712073771908350063545779759684701264239945405525687614575633167895333902487630223265723207881027370332865073189124574681770835567206274171137676901984852445338875807391555960632065293485065332937769007427471610073004059543568134251355016655514711915247565805600321375497062293863389845416169645085712397791582591416843327626705045272899372176900594915899677273005817493461733073760939815495181069320210184036982830236054182707655454692361006025214509448388427744089761584856605894675775673241398827013057746337638340531921541646573626282644477194004375449245535637441909815256025346460605078187931183736161645973401594732207446492584832971670002096096961200893275720348015372234584821386833259499593452698350124085701489141561676995082053930558123388022674283262249341926221591965748052081566089732999094126456034271195448546868751401989846581365138493298415117583099797479339127165598085473813041211113759113397533125182689750237947841042881435924133805945657971193961049279202692465873910744209715100143164140197486902496453438268393650458127488824642421444492305447579251383838062008384476330867854325259082455514126358796576551050325917265446703706752913999815026370507610549721407860837297276776627609222655533744239834433933422568177366505088431267061748036052847604126852623277035200810639377385292282381525143042969183519666011169817158085685612769106818595916686639301870432601915987821615870244179557168464016710331814428350604754002995678252041891608667180647383478558937189739834485006106379413051000658382021678714801374073097697920319869456174535074691705399571321431780082489980757887292589189839731542832122821831248639171002412912179343659214777794293695563499936675530787877668649415177117042228737242646014423293770321230024163507312016125454587134347874592650779681819123095263919443600749113341008308319626190654970961314566328179498284119708166740537321276880643792932624431896870464973918649397263267864286601996629185107224286410489359082395770014432226364658468595292922687949381832348080826569896599392033520764579635231046005569183215005411604792943703169167190935405459775499913544183250145654613588466530564880377975845557497380328051955361925515297832302826682382856302453287794581460139937356148768984138280557306192772514328050295070178342592769856349601908974896804237365874480922198863846573337167953618666735479899761905658905869081590215037877395274273600860990853468205494146156148238400617384374981864037480785641140983677066050612921585839355279008208781100146453765943426276823566380326003906505983009200903849983178134556662301607596233127617982976438836219843185651777847865870427172381752573546945308862539565946672614627653856297100064927995898037996905206115486840782456844645017821910084571508392860438075132012051341252817022439116118431223454483500000433289151123377626688179525698654780396963574948863081369791353627263326554943743371872738825442959539822117618850614635263369603820366149736479116709311731489669450139382293624493820195470016531813249834539008576844408342441670825140214532531629829275014859710558496083302725362973750541120443004355876246554384742979754780753110763991044436631822671690078607805694796375463264011684619049027474403576276059412098455384975532173857277203313432341344969984807579298228006809397352717731128885080074875879863390205622261265256072181614872212077648674661431065842656230563295308546526644410356024083745485432647867017975044560797644216842536725212474958425948739661128071322777991926718378574267881687099612353603641866841515050658679572060264970618067736513890905859831151953849920475906586446865319042992752886945209309931974128479784265630295164460811976815157750118791064351941064459964313860423139374565583087559980432756395587162999566160907566824241531829922988458680980203722356203128273399219592097043819843941430425459458251616109586564053403042751504051761414253004088535095475811923128482965536558719939398949550183192129177199856400810465164857054858871690434697070033273509046554404072002623844386405583131390150839086660391923120827847147853413342029452778247148788164486629838803371233069754950056378622717551637159316687839675795865587445710800475504180431407652107424462317073686444055692678451000524087102582267614397026907837843707901145999515178263355161074706646289469961885251111140386445805933533098984264902093250900386370723097045883409489545187145129409541284593169238034324697315483223658118459536130537368738589020410608884535191390369772716563701747688638429642221167823256729995161163911300669025543470228230303080762219418487163457640800854371510226421267258744659232641713765198668571611679067804736924021096641878860869799538855810212363820372314399459135130650116806373654298869761952986523216522453871566138116068822771830039875502034425759754789176834564230625789226172548442571492549609318880865265891049042477100857653467954843184414585029899373628706511732855756817453381563027941304033140874603251114382817027273398681063921939148533720212487948275859882648833961766101737316063505813055470636194677247675021508737385997131191992514765029601985810024513495252352611495476710392181079124598516981287953437709109556647218366769674230651290922295528203433346668911382565668135533662481763214657767372033729027147921599659255031110310714952409282333875873108087947264462462617986088657079875840019413099884111475068887448219351691894696793123367869854939645326083070081065261510272119134188675494721318319786312199279469244195228889591146738415223398079353911160267190977914068384507279847961150213160844358263348622715881029120465538740073328090672373190389824949135522403402663267902208651779194502587860905445720711882945290824392105692904121943911271621233860749033121640695315074858403802554112869072643030247259024350204307835624808029122381440430871997961263303240401296940275674351508234042670563982183859610198452946364632943270971495005855382921626075035900150495148678272462173455712967739091888039805140960617878586905232688073133441479535867546396567837628472818284780781592095037749063560746124192130953455162279794801273945330295991086574195093979641899805196387839950514640163019479430862135387880313223113455410150371789627955080627303105897811355725149163097863817570459864346208722222231535609073314792973958409746303144868028534742153453496558307900589176421483683353119151192414490115816354749648108044941088647366735118624406378598665662516240454531604943741884833326434259165265068997944681205615623709673558589636425784764201675596743951858661944914411107069303972034640061193252241132418711430482282898535075622343049640429928909973209666753634460984908153301887951318849923252512262473842972158947196494599849993524778227299893871085918821130735901292382149287928736921289607703838464224366535283926793180720914267959723153857964168435292674251729972199760436411246687535925948751373253532493746796069968976618177701345251030595709197934844201523394955224251089041880934081941549782729712300806150324613940270394812655582562578233831853660634730158099246616987342515672501181117974788348219078966594198195033361603617327231420930596608946392253720837808352706971149057308231350786163098418371866468520049578151932560550474644471503812307044562848481149682511966668429815286218797482147006354352856729476542572773507764065191122463205713226174274565829935890381751571348845628827347531890302586190442964534563775114478264610213679024971766851284461912360078693246088178601172803143363617782421512082002652104262293750238342094636708896582259653319091409946668861810339773183716019184338685033659489979390780790064827622075994791543423686976429783357658703021368162178829390011615389400536922784171541434916807251363787901836570698239761942235472948708550820109131755308883596216465792331617392754076275022898106128515749310216792462459054905728249848752190234156395187871765074773797627724591675755358377863771611182956552914910501423553169478399644546093522045799157467465763774560113493565965150450142749105752219007597772838749543565725027746663608247110640146418696683322416279471851312163355399487323158938491593814164982550468585403802124239049345549601659191604132619675827206674178976263301931592160187778002206862014530766718892645266208108202132076602862690196600193588112934067059489572613940017592702968715105587387756905350536835088448824933998458402450275009119979772701379068343761661899754769324430709699944702364008903911530493174698249807823476851867974894961822827046836504818661194769990557060787569829021776023034361612585913778204553014730521487630901709305195910756965983057832420541108721655567795516723553610316178948210907320105680630190330441436376717413931917425668647383751393695959102063782834693583775380026216321952153884843242710985389513286354201578404346405430141269034597473369609137927166301863426954863028636300299610890124446184990897529822786717259986136678838313138505837019109365799863486988056754525006618795272776850218974756646601131548497145585866940130780657623979987966404052588775807341261478400013871534264855122512780888765809927619529251129933216949966669686714043079596832540516234654255263912279271639552883798974556649223328941071794098889425753349883060255746307835374784337123983977423030139525488814805550111908886601300979348803038178447694045175009127278857596441148467773398969557798971942208814931775705417236512323746177251344934584627293598564842568470138977520804895079542040517369988968256849536097542229600194399665787329687810156197793883042934914551241663272157424963158158832846090934291828305525709966469119985079127307707758679653352205104516688089684276964131086859401642287484592593420436587457916691539397400170839207134283744129354865655194705160821957719111532588608812023457346450183577410326395106994630169806700424082538162140638147462049458278452497396487223787128254930296941302538523355750916057660883945978761725381034745349399871906809072607901378012034938501817943430640828388434727406201467508500472276853502954002626128787257637753169942425544168515825607332710562391462378465239008683641480993018002796943526784156939608551754069842609210613238559971497734486115580848389456507964980433082922366314200604338390994391559175043116077413358347659589517227274022737077712432871349000105945463895552269998028235669275955204344755507478815681031844971831373411484643035241170085307531733740286106360400359775774234285296111662283659327107008242048842049888410023692640735459779130842309149401136296167285352116530443891386804693634641680645001535483831700033768835329396815941501527709648809477559155458056791468399648406567205328590934024108374041635172233201685918995915616992875030467406619188259698238314428414624837450530729504691401241027687877551305514265545579871476154465075623246497169364499380112584033329942678588139359943167752291637602128975282749172353573860743088508613866558454010564310284311880632897168001228520389488770339674159532810684727736344460956924152448645952836251540717688932419984356955821040105878076807677409616608836192937355680328502716492345293837998494594451503076309494012564502846790492300561161490658420687617084512215234216915018776191227587163428105045877412861109667052495828220363289814656607278202602432818656289937370080551626741905429616783188638547925497983028350498454477842994705718324675397561684619600382626999119609973475031172195790285957507557266437923585622190119004581696556257349181195958794935329206723098907376517961019681273682370632100322352469272489332428696556163252937919488785745825377854859757582247486290948023810196360497141536199301590750621463255669812252049413548640358804634982061654721464797123910301210323384600707315580478797117726740094760402263684064795860527776344506526074825762165754531768442727843140868477121691588324814289815614210638174379200332195874404267210548931023460780321121886087385097344790706080260410722759469054474845755984776928052752927701989599292014650882615989881087899634259337907985632134794377561799370229880309460383737747392607402469297654147462458807635270435075010248142885558334671365715105798195532777654552619415571275651387157517960547900721880951663736607653696436241481729929469174597856552259949876824114945668270046653284151465810208425948419294846267228966648536485598712953195547916571300686819844844730304127836361533986518052113050643332065800957318393850395117004102670001263931526250721701631332289422135908852378719212099401248210008544837595296194534613980953300167545888077985840453227312591926833411219984658446465711130424112536624972289367164786523708220017631397770425708918825160542329928290842501978414304924029804291359417093842747994408580497756821591590100707382533242750965777650476766051118881267235580333624754906868838762683373794965661019303212348530506166305399197788546113910294940254680378855564023344152003709752312309229981848014553982357935865159793745359693254013961564191081504181198375801113160137572933464694617727293455281417464039480416776246579408973123915406268666396203414698198613665533939187205469681257544026605255634907967778771347596759721305055213491951449674578684669163631465544430968818124240947881265277926796111713483019214109716864751542929174561433046280545304273203737634446095656235819998165037393818213065256083519514963909637854272948520012886847195963812301811455860802580396577331134232360719711569678564193788209135059000928110441843004880684183998336384584406417157024185111650107476075549275765411686469189033705373032950908654594867740217988884229309335822053076077834399967609040664711701332790894257824200802637661574304596723971511461149119023418661959755303955794609362337089604147221455261105317833695759259199208072825684210341195835238431172525622467730660154331733456200283750125922881237260854564306853678459529209113271817501846507697293095094491471676874765571059894748055412813197721430234511942991303678095798441533008495951480173152777925425160065654568285235213312567077474668165850732144426870476750710503181753175178113031455146808920644066062591749730864147900710589857154431223443404500423313402134176344564807588531292720327015122818424247178525309957515648713035844577630221449660175144680207481790772791245691411550319100736674881936760994353010392589275276635367969914709284174775784127422705095674120580495880626829768496335717347516508366628338231902709633138717692613987421708788091628840989847933706450080800646789434318498436232128839723846002023254590778074378044831120108521968031339353576303537995398935552842159690082442915442316858833173821560073040025354654862654515284598995255334085259906479289463578662677325186242260641814636405797588331599725764626349406366344028084138268957514197937168348694474022605975416625662386294338858848686790051242761684272089441985561434315756693421400506985031174926452688616223165652110790181912974162752211545754866055382227392870520509667617062921206703204347395455159517228783237614304293776818435200550444259604447191063013111517977438406863046735114689913319622829297594203130535964567855888896521250744455424955895209873697084265201474965932136794522909319598246828135792930625111736002245421873663076509622950006715177486801370630737104458241736550956404998649071800889854181825135130785604262133808397862494517926576646002259164434863548355549513940307734442536906590594654492206777151030910724993771692904727292724729902275899434722367751872553900355428889454286174032233214567177106644229799753790876133355382909844940340717066901331680229321728005864709906946255447189892126225474735748802682596793539425245941231236060345635013697612806509978390442645833694854249151777260067731978632330750769424181984100346032353137704727772838716211054224691443302420538058731818270100694562800941418169252140917805427456240361816089414116261222783426062573260377006881796881172414202705176560181821872842952333906641420013131927343312305529658054952118881020466822242740980111272220381659243076475784715247006833797435748620673000498206429350418588996596799039676203504460269888227192814495800553091414493898210958027872328494465037665272205948815618367340859890788156019758326577483524435963729110528586581767716452538182279923802266006656675453227074194230935223334665815240350532800622917909027920301140373107658948703019275747912412154181569022123220909238987152247072842699103039028613514786204154181939732206808608520201079256788956879258865694639575666681292286020633862673234822583074753582801704749986989324641325920974492440793304620745501071511834252904464844070833786739572267493883304031220201283873105635413332581309419283644694320617354208675885320738589432029897715524253891987409919446756918141245367366267308260765924271849641398559292987387586677153867135656978761376337700754287056482059554221509530862573119205801280441875332954091719562645179026146786040852699934699508045480578459350104706124759969670805810910199048868412924896728022613379253531700200867092880564304697509725149497642639071691779247223145209852383391065751679813900661231940637366033589976538069681329252226992462027754876195358100416162590839104657638354950254370492683418923626231608015782779430019435667840202218065264552181084812851579614519587669754971511606216098109384058964677921823002086341964865171310739957672453597899745865459217893780883504241020193955974569472319569873992135701116764491979092737671281307143590207274721234372769112421519036768455890531178531430613475583925678824576243808556340091343843561708672989978995109426485346162466375418227472070187137074041298820916388736520344841764237337350977112116348398826286614472832016725799305056345968863801310919925529969024491210798481570607990043736585395480792824807263506666450991914550076208841432632337932430315141058501996265959701915400394662395039411868445982818980851280765452429617956763657146179100556325406437357529019602530941582803041813269081437528467891650278842037163854168963649466653104793163624890862725170603842602558667203177512790505767318929637604767334425924585844349767990869820049116275840898359713602161667776342586237664356778159767160405748063421406935919909997993064513201334536157768609096907679534761603135192737734867916310470083965108783004572780806715364405981890223555370996876313498683773101824266782810851713954869945669956678551115989432136113071761891618430262498096632665623418294936418074223626510787770185416408979695948455455346135874787245397091553121750401661216406078609272895270746638086107900779575725827505649737822876774101129451739737345174162020768457676843334963801692866501804951385806507915984605414459661476266320257914841907017402535312226046084425991647477925271386310586826838335116005084908740137160930006422094278580699005578392785966847996879347715759861121110945183851666023666815852501840782138168345423004890683852695822712056871835790334718241699371985565121819759009647709149047291583298271376339809273433388805387055635730128310631160823355697047158686173485979719124560630768025982511602826382487542057664292987550292497540071400339615127807232490335257040965004562856802060254627496251984443067095469042781937675099973446013944209516490401951019428979594294007769139117305246334278996958211154415389899688265598133607653239459840847729804481146876420906341014727701461363928206525556825632877458030534768905722704352599866364705402276605360083076071641541288814465060007736722188169877849681439594972475816255241865228000260241152762125661450305945263524530267954113133389518560288543383515123911313054261446064609277342582621173297468488890916326948569037207808301480953323595147681523261575360153232282668112968425906336580066851564231610879571563407801039467155641903806520738800237930315738826916918579243142422400943424446348195896550065605228546467950257866875319467829090422901197098505492454469239026625640517734480009029119362779546056193059739211119411272581991098297685256740639419465352140820492704827596045825941568321118418656132580216095353706497276165414861209713508240169645783534793337508866601414158000751928201235614840100284640493345985252035741403524352074403540455637951911396883226703278348655400477478753771899313147541836401474311557758808258385832902013369301706478496462561515673702033856836322393213418227752754119145678471518204414101754414144306262447439154531269823615429916648875490315002004045458855206802378969646803229727182071702185502487610482285147212074602962448513291751359509217338943637794836523632171324122161374849201871464899764864194213637576663918473217061606046035159661285145078410677339143417517395600977239179968161135745027302281619794212567260972530183702313900453990402089062108762236030447488337563823627642236489115015822215796988923224058063094361929996593447264282202817696202726618347836282996409143705930031323082340668706434064054726029734088772524608482120344295570177914072489427086310518267751365169082392330815628691655249589101608599087583101141163796392952526641080938134538916553033569014915708488630782863753763815520436989598581338128003567775652546344800067222046197372004649771765681643629482903522760426708991860552606048311203135622731050470546707026623876803703614548010588954419877472044957429916932736948131084683352353606848582655123405575272166885506959642279389203269367631477849907899755836475436900255323100920455733974631903275197363172363159813961469804861172544960677326015889201617541737461514051854300535183711078579486796645672472898571799801978364088994272484438966660690059070479449383615659644817994995808958910211553306281618460075415585332371166137292290809852557980244815153654107653977439732650463297238989718969531093258655301734327664807216682758625851584670852414232330977991298612663247134119317106647950639246240314020520873929153038313580193095998899489047381679785985382902996072724661111432020438865195833263299449814158771023428763815931472317553123277638836744269672545267277733555093387497675561304763140353188377225594556514191986831226701700799816075281711591543321258251373774860544135258222885451933994168654123280458640666662804186693644354733910646261115385883146388031686854162958312063277366698770244699508086000871065590781027355974046161383592305041972479063378336041640617419753403004162714419813846621673281452139022147621159001658716690848565275541274046891303422561666197260306353889277579998899285715441511377082487177538466406769947732032936197186619043360705194909071974439006994562341378323155856638583446959153782417784822132838570128372257219451816624809797600696222752136891329976463164033756850459191549707329316575274131095384066738240289167935457855579168275805988062745456938842274426314620704660350027821998087755620161265793969743581629923099629051237191115918692120771052713442681674169799685606046788747501190218579418849562410018267989098135157691801544994302787916548752306637730107531173708917136714776415414337837365225644580517518502843963530826915555253866059869284091739050467071074095120030170750352444512191452165763825232103819178810842645139168288375284011005829705714649679602686832154471932168827092869127866642835063620742467927882378719454729915063584317905351269745005825998942422420814469973381480474405578599786122841871611649489333227886619504055787643829647371385455600817560123066668590965138038881306587005771464230576694213267863276463947747769230263803294682397028651910420574548748327819092423866883295663794952489437632809966396805075571046239398842062645078338967290073288301921598268737037515089056383108367737303477375336986699011032425090655736193761270523224372332921566012278903526181279909504512010253811761855994491979341000292121136877372803399940586114444217541184780669193305966288269354904838724022450027912358046344098693362062559220387885905587916376400859548117538308371069714352403974558453693869857286396726227595279793473638640461603055955736470436893091990499160177949340621955856430756667101228794518258327804576835403825090553174706018341912504887233281255714259674407222350738516018085217725576328820002887339230971409276903475665783388458868067410580616131182464095433797044690751494729801943818787678453372367458073925073393698577721657592946761571388118471616044561005289932884807452164560939806971960389351382115053456517139615073911368670195582250045402325035545901773668839009072868985305576800682740642658009992059185986702377644104780145532588390677531293276391759373742885607060839565511386723581489119775436422485031769582859037476161648038274487224145949565579055175757679686642897418896873395944236814074655648132463177638876355848983099146926056963023540358692189189830311839629171375780658291426745219295655809471254555900826338185056644507031456559170810773485797966428858445654448563468723188216334810932343260937562034940498071578890615225050376254394714863138075373121225691643173778271059049486522713138147224915362160327794990731998808413424596963928936214382498614554467782598711198659034690614519365933245383169359351287433025561625643225172219177006243589609237300695116304269404510805928907512082305210567782241920344836767476903455943183279669220714970621437941387748824277967866305057597872339218856429764197700657245369039468489711696987283986080630579374037729749790027504994413897560319344052779489276450217360799532932290386981282020105253862253761329958686066588441590686316918236255844533212415027063779399070589080176760152348055296304922566484106774365432359017009192048469404240761406918213026784176858247116600633114701840581241145640871602946273654696935109954105871376624625858127782030114615749383438341568202488481046508411727959818740340603645576760711041075458730255943556529941770446700084321166987359278108515217109273400782339818601822591164058693553435141021532039474291390351406173443895857169877159733715484207302778103110333290485920407519655547194993353093116184119783949947718572764493743891163112784156812831451087093859308091584428881279321168331224845911082380682143662039097527506151201798352294527061265162537682837660325802146620831847704858434767447338579650239531974175156399336851384582015809426955780188016740200159495439242242847676466098794196951505276618502178699755910399111273332234301417884755742175791458902073413937219634505502455571186199046709977322441961562403663554990340096268574961524368521019867293871084016062635927590099548168440460436278129522197074275266663137012427910365230990439634467486004939427524415214337038097729290891570643308194487982881244132871639559386604705867511042135283560971282176972841332465825136385514779340135735543407948322247431308438654390534866245779129742867608886883842184138327255294474470576453945391885527590129340011159167707976235628110389508621821163504454509301846905972021990965449391363206792099888804741316844497295181808032116971768131350360164911614716899495990998791243954743337471395263503321983223357925692924084302318804623566848372472441845076617049907891037013411393672748381236042971277261441992447772536596121574136341351895056943562797702510672055506654314920501158990436907500321859882404366444093779302649855064636545749840238651386832827400370293981500844790115993524713221639540862590370010309533572351001355073088316748709467846928232868076186080344002956545105258417881433332566753542154948759189004559008299848410409205290674541905245073006523592613536774728611920068654676916136226828541998297791959378360897123165707989100645634667225035129002854655836586406487128419877933250050750277021217097016573447836933203447245634271322041267114608530462782760066345352740508192461752970767554571921420866563128481446799451844419650365165492969976533591155428076612001048181481202227387571223402191568130749615726938613643331743256820266785499186410157048254567078228456004663567748167860165310648743989656798843385820933912350510711663292256183026562749192043997472375559738241754811826773016907657477757432633462673446668601797368960593665359116833381165550471990109015038113728547375210870470365686310121350666693560300286910819990116249792625040243679683906256913889251938278436680055037438613364406671237783344754027978217854903134214440591496785598311629034683101670536093059071065230546903972615992453113498620590402049257632669456007619368907978786522957293298244484111029892504000287559992966294442812934516999856961862535231135463299149369746975677523177366751660946914724187335090170197973629720953328727691335455426751341840040914652939082837245680038733982119888235338636137247582704849391060795728351909461823906515476372810385610499964718423319936177332419347356912138754173251787799520502609545902218862414007937966287588841606947191880681037109853940153820283048219811248763355721028740534117671441629226158674173901319579910614018806597961576130486448824464766822077589506960301601690699241922103784618005073065087519120187244604154491713851496204729611021084683226658759306914706312490243170795361185828136151094885670590814110575356035092481825607233614203271673853608358191133995681855807314607971796113745440209800912510739675899989772147862674479730236864540085521298707701209947092595817424757747770294519095491905595169409005239924130258866963572130827132837722210778694630359340601787716697395843525737406842559166615753564799913369971745428785156253382879435422453757864891305163608512278527125979068470380181486427050349923130603024994823440572462275339661517609752495512064817196708128313254147196777931402988215957374570183145459226090222890000765618333777882264272820455805350194656145174284884336574814620348166745617102310891439864747935124128707987692209512408538726700564491160501390674995984130012177181425872473096177627053831173482959341453714662143140297654855458215684429665104405627079177051189066316062933470659298289835811024880002995063420080817370156584706445243778359445703386600308006664885231200705240291646169142732175759626444598375997041013052705148351027475706227482522486391223551371847352507892838618173865913009495444609877791286536570709733664598017083760514522834213765225870512822686835112279992040592352986246827857391329199151380478385250333691273609483395033260405539003233817698932774438893382633368466578384182519039918408596448370315396612086866688833483728657445967577499992020738183250776411755239712269260226867871591983743938766915010278535827394135206878637858215144421894027703970558903802065120118117834317199347871964622511763205843170328170237381801363827685633585054433595630473660581809650079498064487284024500052641613182067655240000706744526771151602947232875351055445413301149137022288884275932470166778262867178561761516666869763215742927117226723287050727190984818274793903494266466508509967999492382540783459007444934383845002601900530550982646140948915781697360330645798895821214252773576300721234939969222658902421266125982858020110913607141743839233025610409731126371962819334192729985468921225961602701055728090585571881226408468380064496443563718855065664180790116941257232804579680115435855673673902784804782528570511584147737834851946081804149328154370619027157707240370266023978891024313825436382934275367005943190115008259740719108827976324575522600725559115627797024759705774279209825579760319192645439518297163147325179591973668951485509402158323790516740135370869228272580331413202364078928307242298529055253581938881800231185751565213875043950006883247199475732928771627370383184979957299825772639791529258129907601532382438337976309543759557335769951571737029186747827289155069976133906507919369153766319536631048298031771855249727485841665860122797932836662638385412961813967159994867573766804159762911716914728461103683771532358565594151017898800266383539967627684027567852718136804152095563039304476273380029736638482372373491600716107915374530528592435933586176954280165786190116803034756425663173259878205480797879651858502365449602601653412847131028764332566755861711985881473427699816600479795870256653351371916833357210947536813287911843691220952128073625938346035100747401537912099438540034487013358403128996890146186239466202330111725269684827165667254131293034577091066182096380984266006982298369852971969267851705879396806304378930064423411325086588446977937722245979684410920281830419760902309272654004039908497551936330860604067482400783149751207119805209457212790493806686411247606385056260194738900977299009767656529962485887198320844098178744993153184682937849957791566732555112476441816537321181088358493359657039515251305849449947671534123320159500343424006264934380057535071912096532596309808384321424859376698191309782096709841409638076962718407889958606521939991009102253551345212360898038750289986872178128380658050222647369513058984626498647867727738068535097010560206099212894630587901008728111878724111022950918129218585040814511333751573818072262925799487292433522741289373736448860357448986278714674878032565724873963346653382040203544161638941450794119813945215632702284591933492918838866453485503881083075956199425477401687258339180630142893862850246420348558398337106341492376502312845139786900323673932080116607263220880997004024915305691031856197416748037830278019102348628613839588641047644762133705362096270867928331192846278122608495589031119978011818625537915777178889145754841500853973948451503309864167188513751482998440228401418935290443796154290439738310764482901405910105339942453843860331115722983461695151783078288226869950283925508161785381741375354515468648293653949043580987921564378939526299317533228344949538414881148779503290297316131646117605160413355023995236947302597900898732887124483325083654996288262379541733221370681042909261708444360433515169336039094050833067374730007353483519393212904007589113816335780566902636138601004959592659844617499900014299566963812539599189852503143099661633988643268465767313381372721929936348388678988938617059388506085176194466874172387227788104759210375162269121747105054526680154166630840360687210016954564121365445479492289559561545414294455858513890999907958277582121694151334584614699890749485712426232067062481589145819999768819917420212255066201985407585969998875365846839573345838822921248976350946696278704431258292666892222998125294705695433187889431260208863874328169878669095892798766450815994389381204427903683175924668335688354512830618262651126736460466923847308036724884745248124087924424633310609343247808474498237747134099056529791157476429945572450628652140136885386347687414328672440298705038221904377012771401656046451201096750144400135580682287335772966736425706606647271055585773968431777695322524632952991778667110834446321852167120647735556901628189383499470969095157994275901883314743040362982315752945767223230779023555899603247895154291201801337867167753213052548720399847540266360188868133710471051139722122930742318609830814901422152141862246344753758615566670704906563513748866309552558748210051318826323816963277835449548748267391514951379463663671361842965570248811699801567464274429884340001467349705575593507587078883410140697925801389979079506455464848296811634242289907334650351891567114455100003145193156988817315735103203313579733152195582265532254976947866752983671853515279702606789615040558522624467028654780538089782712224988721400957232732943209680790342543173413158459609555444179207460220611362158268695650602692791401634238956968465999650735802312013152398842194211509256557995553046339993161096905797856592297874411499313009807682399746994466037189166974325379041872129848450247225102274717770930518501965038602766296823033183803897841557808302437282429365741403470729691761251620070556420360082180084695264787145800028905681832170928885544631179598895273954210247507060965308479924870602570824842813375346838942591592277437701592077426011897433347572939606451323203875209319666848597599366904194373680935379227833709937389367475012831603334465493166219701480198552143980817878071717342434809239201734644241364097900519516798233316743100482647385699070470389146434469716762565308781146564210764692202272073930366080558370403827476067626305843732319642431159097927774226745731988183644134225518552690862662164368872084020160330010094537017838685383232705500546765954352905911891294249241935078351817783166143562798344291133710999076691162831274722114542465120787572522187840701738884797373900821282606239420845521641726421644060749605908705100671986250642471404862729036001772477561233536333482948636096902946097548224251148848243084218065713285966035256938431523310111218718344256494638827881228003548278716531034692997737698824052568597051626881127313579215895859000550134564998593273293637349782515961609331255059630587692597488450325337020599053818008103149112899972840542235634247268939174594811254551227023949264400878568350513288412575331562302579785986064024729144469538706404383156038128216280576566631823316957600524769392735243090840035297961357855194498684130128686178859516606710758334205131824382368584895100530556748805264151687398801209536291655698980032273160280399489270528141009857367089782413354628379165575332475422745605216852814687447137599889385802206141248102877821380729449835836428133484360306544042436396795772962995395545337532463967913774275298294922899897239885838948191170859208208971409065309136898672339570676002270330107194542943758938663008950654215693642712868061024096545495760679261398520279138142983769360898019826237718162679257493987241528155609692928168292069353874506723689079058410977146618414855492782283920301116575596948666049317712779628519051754955250320900688073009806105941623424284760782558804242197471527739591654652393159502893376992885494343737853697303836890889006433286914092452005645035703730252975815399163107911026937401866593108484828403536634161745958458793191029392848440834537483782896216379720450981626372279843161574888595371847982942905429403929505180894444997043023372992057099549760972261611873484514065205575507735379021374619268635508511336987431245552361947157265831195714111956822355050660254152783797851594304189717397933455742762310398664497349375392940924939899459466000194337185459445856069315533458430781911749932993463217616900969038110477699286617004655942679254116654913485976033451686489940638705274538405673449068894677881819741031766456252901078194452876079486567431210784222307398483480403828377539523746696364470055769248078248207848278879692802505209739347738233425009490586843590718611566204757432218434642350503468168549563361518409398185361612261347366924080548080669740326173129442569797118510247824990650898776642281158368643043747603929274734219789810321842790259548422189695882135576236495824641776475875091070553839682393752409316854352884287971380378343435065459776806654929732463355407818859424560278894555407922442690670840150689643161909974036549381332110143810199696994418158136993087101067417986143262144006119608170325228059959595865784527230884563312763504721176704192864424157976243785201574281270707018266365411430110684091214672272002358393659190013009686418274709009680360124733014719020014717291612170556250430157401074347640667208995954262045694311208693412214552787654170067936227844287752371698477946175201183223597401917668699516542081029211952979077549161511724324734350877843273315704295021862512952954990740399261919644540172240023105581412618851716505236553531377032073561538702398852537678160240462936505281455752357449922686456474929113517639408273282841190534468461123039252309611160695361577535169847305532617550061715906799998960252174963841173756391797688430443368552872711727652475570983900828943878451315591676989362856434096935603740728696970010955443755253632682251413752873414914399737627170226150237982710952882064177084241015526767694793193372345862344333038302125228628441063860927462373650185464302919340799620274476475988322722283964900724473491835983848653820000392288849802223325951043038875546227974080762793400054098293107976339771173822096316741876143527376301651219829449109944099831433140432826492702288916375618676604686686288336566255001229032428670748843561807645109769296621245402736584568225407148060684189963497691656561408357859372794841540760444783174524141723005990852706566769918059796974681213612738921146062962342713656801020458413866935090888921752326650703793730511429252270154693631414899982138713476401429299896520840507122034118206324856201436787848822718873082742803891972028032485475525687646885980456486190849428431600653078442110357877791932432133671815330883608518925864412023262160014658976107426033684142153569136088296480184926765398244751858208189026619363909032883707745420929939867236899325922351098268212273198459169866309571519811900441676307745912341090046670457235408661363985202107821963648760949929273259427295344486898248229894400657536260303574800948889272853858415068111179566700000220044683913480040880371531330604530743809866671213798888114260363116086488559258710498238157710239528718523474318028113354541789560602786387432227641977628871962950187177048887278873974921761760874102814397315139982986046697644528381150516596273954133249327764339180837180950840416077445816593099862668854861538514836015819790715018850585663574969999604539322667422967407912492703897822725398165883939281099587198514506569278991168852063353514628225634190269804679332310443868593292615312701730464363984731636630878917449086527275982625206485100456799232158113416028107660421555956909993525245036286502039111047113716575229511748310758019178152826101598452628527836288142281960293555725841041514782676163518138061329268018114259126675950970136718547492832006044737893665652577390159260677249862828689552726137569110472348579103029716856597716791253060470067449387895197333133712426749053478392199081725242246990494476277127232185276190931232390322138398545603907130096874173377401900137973678137573049786624507895709131485375777593714870424769386221318515484997144739186057024683744972450888260450419562449222503247747188146860853425164442000055871327547613987690112732881392483122588824254683119233227305570596915809316780930462307500908876323625169724667040984035030447530912836833298910261098176136630758110773021210042555023621487467195897266595867607296615005634657202714255936186208719972998623759239512501782414035676947689551709760399049476064607833673718660104232152993543293326247034139465047909773827368091917994251372079943994417928961345481549723669546543535570845310016425901769032585515976259636391521833081387388026514545654977187755152279552807893867813142962067919719824788137163859439205900692861158911486960342955782625940857162262813249538504983242657824971359915905302265308214394442341988335507813171687698068371752276295659766978961504385269168450469585130485397044276808631193305966100315616726689602290597364417352508979550709177881407220372433573363805413891775813771861077860570070589376980458380412348239390039412228774917289362333186328494112203423395121947901811295106973405015352614318844289609586453311360987401351029478948536784828050374911910998666663100068134057035661220072825115288825681012302771336674299710580604660985264739993213425112720311650810865326787812843472815081530644789283743189017646313430841588107473706820002139530905216584124339507499503009238911445739322284129221488319326572226399519884232402357347334924713942084004054936812375426168381394129492072368895050009337612554887128901470224361939743778021828252287759962398711727059331913050815330575132998623933616723481453626078370694791749732216293620636324754834323141010579434623685221861572206673268826143974001270535323912820619113135301799584366302703333204839374325319866602995095567531745559763420153254448793617931253146901645009799458472871851608426575601425048708449965896735904935210200655265162195431351752341056980958403768516502230995462382124951403028558652449690863598675136941635174704670945122994048832179831775810693283372932603029550230046204987280605514458201062262173790276911228083179324646942784293958245304324980186792602298531230172144210215291297302804888391279254389054355722979627160038568269156253422164379915263987110961673955622926823731474983396437995719528994833145224738032586470484820516290144578367061098678970828049747994312016477815692576950506079201437194828916500078219061993397035902644686267533055000864945468963405883151135685250654763625493988671803029453570695573916258853214332289944855233296704922568540857639086953082416814467982359771792641306592615042417597553861125422220357602120002399118726650607149787618176545637301885321194375891044256874391999896094414367123041369482923642966159242707778237188808604855255615777224465614650698432162608454182542956075814031898270657845965813139803489924947110350048657589457145407858871915785782543035549857047727346353703291818797143542175553606623536440828958927557314644328717939684328715097097559437477045403566076231724164880062610996338730008825969824953316291704542033028837358615251971351739207181653564760008413370054795711464663574295938671754331366253820572264859059101566212881459626083947966023031553551186822591873123375129984743213570341063274642296269459871130943044749019471439367290502795483054545349135781264907559862023740104746968859809640691709954915658491615368327400193933351358926005060754189182111762848089440315936346923433900458147084549234704519378223697400662667104117742156342108636917882742343958495936211239744721422372239885020451925991713553660231114949698937234297461922338545482673413104148810644702129350485339850605195637590056890922365650506201917235709892389881929204036890254452492203613904365001419113592295225258331587337502925938930570694806256966893235865604302402596325967480594181109796549175391281037949919132040112190060196875583037344217457410351525773137795035236902789079572365021593676588565328054476531162328628554291489432688017529940490734547749478529441570592109358027077680050819315067382396226879285461017728828910998254412746167968949515705319578239342505489317782102457836259265515841293624898269815855488193763278392496108127313212710655912827874389229921673266018200225364317686164811168594486318711942267578840822504391131719735444795049670321082978567924510038067830578010388308208493962167241393197661059244640008034225267362243504559661865241503466144909444155569980710608529964856479905659844271189645301325401167847154492399052704841319460257225465394181485609405212246599757404535623887847936878488104352048417812147653128876841078450429350478636701687656734718984235843075175441889419065551011141907531768669790282966523615387157502586085196214018959175657396320947499074228225880515928068888780276625862195496793537740387811845273939387825830651546601287983192977035242492092538003276245191767766302891983031232503954158673812912836424627402858512354479865101474915844556293735389854544844458337588672619828455135748096396433134457588824480402440243310909881004656874957677708623047477614412862814796613475253939274987415038948598204771571111943498634567689863176746003598298364716805913557834008497934740221424990797260497006890448353555661870612469929927654803593915922142111443010027331600402728009013510269501771367841580702021848784054098922639919835556920016895443047999869652404415702983496735361293722289946482844266705716487998643212390114368072864161580431842369415075767790723756453095798757130294468958693509948271749364969608533756674235696388981245715335996262085190200077914695912705940747439337109644405706768476649920232798213449159997478406933857991424939064119160113363475165861685729292413180855649601924314300736588871764977410690951662863672407187737638123337667262338133749966575264688941481710782943597587686456561717294606199502532601281045439032946512092780918163833442945144933975629406596729923031437915955150427294397226242669389568999819002168239525197691934960039180818122437229539545564731912241019870969355358409224471152160398109382962938119659455953856003898679246503808131895538434531701453776615045108708363772396681728755511670946561358142319649824056665444009335084040952282063198658861839841202422394008685896529518176640952456509243470785867349367215885924269569611329797629085041669422793764655840645853258795276626504922110663019119525134278016898351206463126222533673190571740483634028350252424895135619955921595003007292432325732644977396324711844746805442100948944797671541455112582454056929294511422138475289781513803894653013669977989823673547086356458163413078473108383546768948653903182361262626377640741670365322999437149745113461641279760591576975707110594201492683163500706391182324446791003066318947950293596170906803686702783111940903690740988324931879138517438377420406782617907438948418945525173219558168043295761555877260896771109210578750780414514514158240463844216467658563286863247235610709181622001666484258082202901630390804420928842838061396720927384022575739599214703265125145794823069191891808017440621487232115406167845704189310931288936917912272297279551774259396877533450553442092417758872603927855580510085600666071816263219493002084187587694697883757318968319479390911820818509328199628792239939227290213956953430382422530944955506215251618076693005377690367824978681962344489950328075464218318375926066807130984874866845482648281697303545904951591479159150055661578183065699503598552419642118200874790498604683155498565240453623828619487139255783005085357724685181799890363403429940624430422570286853005531089026112081323874131648995413884614440601425737628499607019018319794850476603987461607211618672240378693555106117178679655403319433458350884057318462049564427357175539968235736899767833243663513309384789857029154274690116174817284124269995415917330135958152238906550632054850190863193468718826474344013068692779061978057012185944555569351002466224481273800904022401602433162562253764649306632487902240127050674280601469246969743167235517148840999313198513999175737931089484234796192907918585081120657756127941521772933522051689748892378016712915931467114139397260663462904590612734289833194592500225318112131576685249679058595602355466512817525320481036939287922827790045666247920651824765088664514420336197027935272829585719675449369588105720247612494809604221822499173771632496786644673553080791066857102927362148644732102223996113665184724907722746140870623120501608481353268520506287149305498398968778135779730183604523127658968996739446137436204857362655363524716476827049698191099373732870154613096133133382416293940572451998890645411813641802277220063283110754212737202176545943449703817487457711997642408643390952247023499801177986043342087743221728118965734735272908173058375741995341239478308002014201502446289291752000876115335801439948901884113311919161464881975157884922811698899105780841307338728179650057896821260480210223788674804377272403948214074168335904565726908183272914306290520841489385134981440440818476418806561885291975266823882680253127577306795753874029055255119476723742077939550104544537978801699492776005551328733111147072086981739701068337540230583321407788733235414197287284327826924087666983429111227346962356080410688643174559632352423393396420710692107040305085433452671269869927281398564851386419894392341083941049792618098851983383761271238723999880278991665739980880906595382561651179180243423980081180515950559430000007239370480553844234956527376683913117628666173098407977824224369259576185672808866790518940936098321160274062848728635319171858624560255443597763679361984401367843254440570143289872112608236217257268979540715045921183071319707415127356864410743664767534850776515270374224201370821517040900187553136017980445094681476559898821602722989416014212260978592941122273528985983036393163709588416519531454539114266770532602227312818672663244904137160114728511269470117309237076068690176521701176758848642247971244001919019593292968079041927165189699681737952255616809973605587740880366454212825248608532264257820707223328477501145404003141796037442277974672069165306760763843511459716432578039901024497696873832986143019484187139452111153244094603261014337290357037450813342255446259897447350742452445614811863317188695841212130913322094328268649294338197799216792898087085330892911408874462290999930218157691692359309493138509893397556643522564398064373497696506785858899197884200491557849416389910475527291091960927241662031727114229912311900149374302438986934479441846940075248282668651695997661517052307336583394256078133061637176482151652271248430460120450105090245043163145771260769328453435567386183377145827415379760604256526558643522464266123053149760701121757814144448232313484275856038453446308255445925599633031780496279713183605488760001371911272748058438263386409499798035749090688987139784331264904235040860633446497532379996642959101722581003016036681145709980141583704682968274870311008222826854753760171442874115584463186251380668210272120552289426324612270999876653653242993865184416767394826053733944543362920882347519064726049753598341721414839637210037154336513377614338615287263019749572323006615697260134840208408908055819873052885778054358047112584083746929022614767068947457450854264743371841691548397210796833869567948543069248731660771858242191916598750314950800066517020340932438622164705132222084664888659970402725851941065038768940279760900619071635635605600330685094259684188447507335247865807363396615086257045658137356792555474233881974480841596321257718823415318722101072719810802150004357993730012749511488638754936077888777864616867869213288263911365778352018685574297188586297317957442133676345591669353507504098990933682419013699885114914359740092588776455140333891939272238857443577524191825273101267902229368534374879962182179837583406713543112608908420244633351174551873491243490564754130191491190482630834120172909833427340103837106094750256862633636770773855292389309551506506815638236999060231697687563048180276939410309747997129656064005466104822200820776012890440750572121934028596336937773168699052686326532777176512102933427991039805384437970123233271976293625083451332990207082188632400887531477265889246488049296827667726578270251951708210713182400847814151143259654793265879753510314743245630708826183780046311532247388321354422636144749832665905952834703954976403604405261688374781073853219040520724701160321105643699844585344182201653575501779346811051590757913778365021898497806628269896302474594223271923718999296453164322075252849438098095211939514770760507628934438172045687407882287820412388571887629490010113214874489561413993162996378172965744620387345685511083942080811621079335443642097053372124714655274641234091343333616684669058920979278556366877211589530753762474605250326489892204909640925007179208472050786788969789442013882970001713563454203320577957410676639696721128411564112471392432577386355765808266156770461491924786522502991084245351986265462652188656828870423378639018059674272417280677657010602188582935016472260049077909670662140999400342554033466768820834484048705128004149693307529702546205876252578137190496747084510396928405305145256383548321613021643823859238824059988754475384760653451350011242056974439790259681069546978249087992788827140685562131611641392693568307089060306955066854503573629927738835588922213771327977421605661016617083447826361430101555655337539640610871984253606418385604899559684315597560365638039200454314653735335954112359534596980871651398787198416053008912518205819701994211959910823216069952379245859182657144417465597671584636342944673703656522867001133994420289945651179085198837447745191295077963392038826616743790736887213574483739684025641674574058255919268346684349105253976559094462898266918982642801752529794633231215209266194524995756354680800197068829278630768186853563909795875513696857309640438275835170438984152112825051523284452138220940928706746385630559297861662473916642460491072702070178196949330542241936847253149424593849540432301884577467081290192338224912826329755405724616544612512335807528388682060398809918890700867686417583345648143291149469292926463354620447601746528831204538374304409451967146485441983965809986034344594709735452890071451307459149340818605115444521519903333232753528199227173017973853245501488696540554333701175743538169244132714691313685122641772550689992741034519806404728491468485654905537287326758137801814801416080494553563312912777997995697835957746614612194757512198834554427465446293673224508888127128137600635580641776356521664965738608431501306439567612506460784868048235856887880445387637519937203835169625162388118185567799337342528272974986884599029571400892956015500844731054716732396268284624962698209307304919056451926337181727621687484183781269231782817797243371774835987578512545889812091033984675975827925304624663618502315955321306974190405686608736553880449392512950482238924546567279557879754305667652257370304335751596563537301297039964715984645977482637212637768282725784074721546017935091448797277065392070825349785508252082150905673925904790638146127688435254146111912333067802206498189234717852993797043262691769215220031532275273196247019224254562683318535933688501288573662767568845639221711320756994385136854739247616772843050161255811593388934074980603174969756389590555674213055699114996622381660729960683717971845981348533565696197191467578595548034533619464887500386560350812682467269310940391029487916493413788654369967570771435034820903664505830152607783128896369527098943366027776731576575301878061132907047632305498317728232091631186712605519875409917471043098289648647904249396148183987124796080400535452911987533209774809993846068676206157706202153520078408667604142149187156068478201376082352532743549594965046504069960032427043345550256405749966301410699337054596841361988103649176904213874523402014589723863005794229822922006769632730370374542696902271139218123624328879060085713685238151287720866164485256338079472286220402303158037291455194215254086805249859407492040663663047688355638279986912082618655693350823323410754557797406376056686801591544810294169214426616287726359205222169263510143855598742466757260451752403995136684865526960966068304307954494018669354808518761644153178927247111514319724970666397888765482350282942208194214204942788459688637606910220121690428845824003846886932717464396478697723160513975693071934398000162557660259948872185483958069365472783350875098749483969251932523033224519260035151678244743667620591495222418253348947166207947113449797948865435673561885655483067897141322577791383610863281289241924870570393909109856777595869678353816561690454069091819894376700365397450228306917118962300441759890869285195509751369883278133330714131320958825296265050520123052284798078877980939664315559641577024290339177936593673087918353284434914040096298792363635811667908043604926382077819962626652370860022031736122621386072424457583182595259537194555289356640200509367967538889059218089045276267565141612753018867762716830269085251338148767759148213379071168373786442036411484543072971773777597421867522362566160446959928198566349922851367543833162926600673962960453165547468803436484069148919349424805283908761667245809276258352915240403598262131182909207015039281076910641154561141850028748483841831376098406736906837240508853093039596087840786116777475679477545045103394957348372432703035117200210198821476670453521261747788182465606325303402800630466600690137119677204748751682992361317414338366314788088105212709260408266061372982190413210180743356309579170531723603476873279453012785619798162560525041567708205985668723131995941956313234119445236852231781007828192377057516802321068530902930159903959213080488598659581687952663414318376878279713473866054683610359816685028297576385977896696987333520097269930046590537349161572378342153183972376374585591144801964125440986692243895624810857640104122247161363154550803244435042722704024024643359848831101574595369103401861705366251385654790733856417969633190600130432202143047999393629012429635108106827474300065943048740831138114720351895596067365520686333763593516210358620020427024888550377978360732747203866788933323909848041170521317590661402149984693903363736151657410570713321412375065227715790185693767947834273606281943303606377070841815599047361455119563643749241775826107940024282372146364651639842823546603340757130162247546150934068428426991194797497267100333287790554125233116230303883443054541208927748088402740693981316191206805163775849769618346928532361746464066540904445353766798548234322485019549618319212617422678853112015290494610955643771092985761572255223721526451921704338870372624253047576131855953201031591051017904670290455779394813159454687527555465932058208766965585760040617107488879182249882325172148431635394934618331001235554116263633441209028879806620235987214210605265465105165506676784125352212244445457533714439684617229534521964757097237620864474549014595392983549586184892577476332981215249660861110256276101758599645071256300998710780188586527176968532718046473668776299221571896006964667322988063654545162999284884437317027231461054142381025957598762717079850707486877529573945297171072651829591281989952938680496080579773811205118030258390544569771928436553510829621382338929806638052693083196231990236545392241786948927010865175821494907416387754723640514756966398327743724977775468571114224026232385329270456884974499380424161479716788549495525560772688022324175511725176930068005338540351774005087485081907209757649196903199709097611407556704821707464329579321913639741553723266139445113861298811935470766012100208001635224831721906004775407179621927926188911922368858067234178980739892380753177078872171238976954167755016241495069012806352053843206935496928418015248708511924863523975939301903804242776388076541934522090772284723897090084489243595595594228998949951490651521953838592891065637808830723606662759288278990115297184974242246167718655190941342291866673357935024087511931728931792785780249458614261331043999457446475253435319339129694304262314885741139137808549452209162638058383928295401223499041849127880008846580971478327963418493124620495729184826147021803808719888398834662452342567915856939652927741234874341361765568892052876391827389537576860480049465211887179277785535466168041804092799394094948825448592920899994922808774181515803067803298816073741916290631880534299307885317000431416253609385159365715843201131433539808915581799445672575897248039838137180482069770528390541586499367259311226226227040768195570506651641559051936632611187317680410576111961433316179295096741019121267336764371884023769604259309883844121112213749705565644820047465118106638519380170003877422273729940770954791611564568141653810816383128505485393901707180225227993587406589591846602259635232919770848669980354671463636311724419599370496494824711871965724949382098971202932771790055791403583170067423981132804258886912162231965982781568527823587261639600114512502920475858045440900257283989157652830664581177731123194547078583100791675108920691296447286569326553411158265882928846428977552207508856640552130609200616334925854203073605286923646431898041393227173670735954671634862426081968937992821573057343476759853987766671354775851089283192297831974983372282893088650258361785755024318096128606963688023787009551679384431538298842784344818927935121240255322154386500773142295310865532271908311773845462995784537185960510373656530324691038103832263225838427952026161283655188279685515021390597924462446054186798126298506543086295621314306871072196074318530801461104245074187504152766437185388327227657683892969245073893648716408669766623437807916004380420633966157164035199394587143608406389942112628698537448244673533354153223948058582627944696294548715642531242997961218678347781563347652692444073066048102691164045610495914729811912927474829144992141140817662808396036635085302663208449369349838671728781037825890143731289141212146699435397904582795158668395455140488579387030390097677752672811000537024792250366968653642965581779511558052200561995068742057263359876451028885273328962348337938811380428465326595088975906302648260487366041913805581708691851526436608171606054942355239563648604202188319407430598401904577860143342955500700659841439410969916327896944570955315060704562124415065479388361660913426734883836097175674877944677252360095565280419921958761036100794442394818132490876870637960025094316057079232827912399980061253761933841856081630814103245160658960782771714966499212087784595330630078349064992428931014921211868407786958206867706033282559698374387308585259340019467864233938325326018674200294970325184851970192995669296478041493641724644592430202634271716516800300844128416236261673977378518311946436911758309123893587276178905524789133315738590860557073856484397598520101933164226252111991288576561868115437109097505715820025642033000520648472652837711540959325797785108517472687216511890858872790475259090677653268709214324795179119319457941256649987233791708269575641387980002704129629875156425310151920392243335564183247336164798923931073494506223100919971366425838025261801192738145599408845045900738026918810999231662719600788016510736827599524730025208974756259068672813809939568687262717059880419560990277710918310847492931627788827656679403408628778910981140340312476606080577522362432932514957567548552392782708562932659748660769799353140982281367052548029635078435007545949393667576573285996955535207209850046542231878585955995516810144174209192579072836198636402436348433288572357697780541112975965777747262511247185657747780045721202150433642683367110487156054956965191491182442107385321730479064216132305897743623279848129546487744740452304680344396651499310543341436203329224541345252452268910005029159035332396118329440028964238748303537217635368968935792859398521494290632332883487289247865567477690642195244273517294486787842747029615255385311031736333049472001667115923039291821433418148993587056181793248917592507595161848603041463869127178250824861326612962342505653250095804800872434706015388556465015839356154304629541277971692942818189519766900316161351753927513145870456078540256802096422783198381433331174603074541528740652409714962328401143972048816659125258157920344491550080367281474994118590331667875762685957840132132948931534264445546879500883716517109783351628508396387934505302857938087951515628912496577675640077108812130014318559521711219796997001367183592065469375529647308288757450047430805440833463588223530991410819639001976482903733860353814564636267331097773661624164013594481003280170127956042977195947227409653502943380862162108683500238530489555010984603823291520297946387901498167053103457170348324618762222656950826722681643042025234530118761348739618404660837637060560364151806018338206237756742932212887029519560862430643085626761835179874657990718663811929661999164009497525173178532011704845352511513585615277229423088497051652068325673177998987073473602753919942441198562547601317053200446529513083783137334680288933056897646296300084218852036315178353091221586325371312060992023328336189947933125789805848772130075208527455182767217722973255360684473463110647955657156841234230826860544023389511144445882229418401129681963793268972101827243075086631114188066495838883617694406651501778027538475613343469521579898260143624585448958424468579369441011540857398128100400043051367548786390419859232407770044235346168973823182660311959065392056535792620513024455838839769562208973070753192529909109806013062986067906699721550037395121750730844348302677553141379672107642650129915681036915288800553590610655653427138926255315828546199708025851902764875072369836303758033928256479097875769722784750671569007758740808709085546340396978258443112935969058642381924247843589277442989029385386926542103875205247155460032613403340741005065475044524065237018723739505921020992637240836647622192404146384720521012186686012740951876630165928166072017950913542019964374183602776779112962908233315548287207694258243261164768672135931814731239615724509820912918234111372522088606216040583399623690000041490850393679837917184138998455863596709528437408563216837120548738938925694132607748572225797439147001472145999605363636257427178408139046030012935000594427901331917598090776173282624017240262554840954311755711913859724789556399550701927984700396571252372359528790729778200974149677878835323075198082170907189065970509150475593466670120231736535724544261910770983987306014888631253306045739562508131683158468284640318151452389462734595891838850622434203301155475232946738931510572409971955634692023302750551436535872858808365717837605740179958849121166602993423057193897300388370411599670760875508868634357652014761917582811940865487559448307183943496702225971014530823065442700014545208214488026533908206488603874029956247733563638511928391871037323453338716240128089050261997096453160681010513102947932109085909121079918454380357959532039291966321178299233501636817400171064930666303300249893481380839166629961236807920807553802091456843248994652393228406124505610374649445405115066279311064516586861308164802846481026000606440287503958635327884407037956233157264742942819265732901786583965086505078276377407113599052799634805971126960100401555578895112016718606153402688277942900448592690847178065794216284425545859645529886079142049476956650157322944950199279597642514079093443541176996343202100194892333596814175857454402215121736075213308515440577480113625124589016854716679506727046689645798969543545522186421998996738613904314750091801956281007288518190799578689026018803372629040646086281113762363732529435434990141525220166870944916668019384415780770898802880444064138745671238262450265148724422054711407166060843517789710332773750975700916790875858651722795472580398910893829706244320544970305725296243567823042289239834715259835890321596376487045242112594812290694344115501593826428646064490962296548475475601907298208268387547364095407767045699802032510919329882582737555828605031778073605228266748069326382696686698821321231994462162771666243162414391608682382001874324759731986557249615552705400407391601215637427373284374622935074768756329432175043883952503379462282186290429227045084635423040348491530997527525029345994614450327852480142642464823124375602788201928696915835172642575387307427250277129448239824768790296485611595523744049062104654879291457702025085788583804181638653766523057776292268397217924026957903120235516715174583917959532221471407424131590074272213245104547993056938374802382578673915954840147465352158031106351639313944279029292270738425193509876511527288831706999119292256796702504236023912327787979577434580598668304893938266655437393938088779163591028295874101212344997345984921794188773397699495459661754681188230115347854874974288960178792742780447539865221075729890511298434693648893260291636456948278852470088041695888280345240008588405876192772394835093547472931955324710431722242318138139354622502413976332923671231793418544577991930908089799401311944057843083339847035363658414762653483891494944963216894091659154287623872675466531349298031518958046477537351738543917047323925956648840658574423130768849467536122896189066786591476079254847937884230153650251810589764956401437771952892269309802349786059914748864672966791343456930458475911037859122199766298793358216421525118677882823539660236790570609660773204700491021662077293711792835457270088731165794804271617572567880986524057641094264155481289206101397108301114822784345856207716052773560700570331204781452899540290717573092604158084000702195621324715411133525585724326589458072681055809326958594468916647552702446926126096998656590004962300819149427323951049992692077361180246522639226878754699485045457433771121654837970670713754750079750599029323200709767273922476631021140937713155451964941089519230260544305447708045926730983635180327645625273239658310382956180992589172844031162237065062684067174220966137205083256121919644037708653769938136343767355760231193982554461571286683481340454444221368574930233337405578357620845803965741198012867297731194293763037007322791577176149606128897204422020410161704056176428868081504567638082927266860554125889864889194349810945881134807218587211873542696231085395872967118266910627288981098768147572959011990226265547271685270936663045528790504922030531945128017162333686783709952951919962385644670612282339211333121721683158929846108003396602040944464200965999652659321165983793203057041015115740947017583459911132711456260771042914061944202073028858908276239502231260943788676696185150802168893265600266205196915850398005317344566561656975523006820983796136222782840185453413176785273241723207643441210668727558124258013972908369699847815255792242975086991050965542091159894623026010893985482221246020802195339444010095839969278296444691127153222514037127858599283680727987029682220069810811725145959562305377547384848330912462192105877822820916836638839446250095386983808811008778646970236075335936108686374533941753560520708586455817728104858996932167383934482387287680126852071509833248683776077460221107513052722233511112631088960278407782411289136429005001894634501561422678195353050552486968817484557978336138843130008298391581239172189247059381460739651762580710758025986719790278056511269593935737488602729600713438624766145009998760640850329384111186571661050754865518936569276559982946063210443768897281915530889981791952256230801195912418471761901950505719844159839502706165812299470466589936318172241814073737038105941019888456915155015328412159684605941587977885627536372308631900838628041876679931949223168908575436672987772886690246197596568290171984616978475735349471026177467711945304537592364244551036118371145704309189752676343243004169328603992528987722397927311473202329409689574318927263180751852476267487865553411041015894272757111459814266635191917614853241473012610277487118835089246494920649907265144426233568573485857658737868540282482609325200771547464913227849623760875397305423658736605069445408634253752346810889308360559983722542807390424072200810031931774715878783269928647500539334588681313589605796796631442919047760653620631281858775192711719732018600736601120856068005092533838563417738383473876237991504750654216673232080706267610305671841918430104874864155499891859078840228796206899709534788083444055700413934585077408847074322359957412246409078327842403389381289403287235767656408322369682837298208170000730129405769803057421605016001143303543327392863526744354014503145925437369895257547580751097261142223002089039585383087791137325901246779686760331219335571533665696638369807863832137533362980427509961349806327270823283339339129523058050452260491199188180431214407550090305600716948032357256220064468032915324733659572852347803002709075307596958082378108130004460861875371796969003472313854897720650218096771016131389000965138272770246301153165749165930640123605016331647041203083843070996667328845921244624107454296689018096430273800237039151454355879858089033948386175459682229609218988291964750500680606595951856102258811503301087743851109229955642777213029875952324862832350755639733976116039900958897893823824246973775948372241981085236750186941306770680084651369522430033538131899121840379305170174495602039488103748320258619532447943341988906891316998275445326464049414769741050115384838221021084273332878362061155197818158565486940600481759274926565393253881678984551313537032842750210211965974955103376424935971910034986707464312994979713456418340904001162457348268181767657248969340353859292821389516295191050194803982843971689302537548499537538042231180694191973727266802824240169917761609601843046245739170983720098961492020249717727474343070888649514999061985645897666269872172491523688414188722619947170883098510067018940373815216970677817522854051793539279973100089693190971103440662623703972260176511436990654937039734641143123971352914209128624193607131816673528121599478839726423582906005631745189957654429225581572543497619881421170260374053959759757050116349068669434249323614813942953186461050998007060913972556347619934161523734602670956197220319933478062684804920042843041449393611173011551773423808584939849148421780496127822825412376098031648589743005324934978322055066259092936586060689914342251973344646886128688520373826500747962763513803114462984011006772027097938944942516092142792483872583706514695968737733288162960230327079206628989302258903915127438855926823865458997205340838308273864497733131138765269541863049231070413875262073274295231509229188189710109448014344145256705320462258156611867717576689993909862189554497066265302366907208808376479744874234906683245483018534918118560133360043355072438441988962471108659559117259495303450861505896891044138763665459011435839219630089699129739766830084341260598309808009294658270470945105473400659099126769617094977906164000048329149339561945414902313644393141635855266110556387231876760312829001252065303383723556247357530331886124278122096078730177689224992680449083928055381461862620011091233935275285234639724249470579565757373170402403227076182874055424934967286021985032399331652803688500857244395201743018175495154173535896809368260066257204453388587225582834467956236327374116747345794537678130946251603398882852384553868920531461700527364740861947895288328505353692102822779264893056471755150008302709246468819379003347285029265226250867442163390468395777828778722929633064014875926468528510942628229761227488019306217429044012718533709724713054232749732244112860535260268562359630735242962227639632650711726735037063235207755504899343514277605649599872237883680120385827102586485087622688228913175954542008729693425914458204815275833195833966241634219858982390927213586083102430663607878161440338363128332827556756210970036882418150869766052242941056066760382094513482972520137446802650303347396197800938177870508474597637199710787546455336670218523197829809509313962164737515396690196227135112516528787495512422298817836862221468408792159162641968276214168882398880914829742747930047626662422001596003550611610078055563940941803444405865812214800854728528178111820488995445129905576844074039904349066136813839749269501508856998059872146174205717965150200114052255707665838274209416258951802708693272324415698324223680136392143797301803351775521552316645501559760274572022034498916249688693261813576438297900674714585588920732742669331674119482498654754839491427160408315517416582412734261757714760714963085094151447716238670432537959052080554780192320961187476807457222095280607430717014195614094796330804336414538290484784032917302033605861776809087309336063430854612684917845188354449218502714874585688545863358448576873453402114756634893782851693699956119519406869830754942451268046446036772544653119873977774589188826729789723460650418879218273652101581102317964431570379383903641439305532974383805043613605491730880947703846344752782687037266094878034565717413382356935262627759571971663351224323829239566372178694563014934512389886013504335166146847839205739435517009977771344467843432188502816877789701120295969111553864897317955240604339511920196486914488157549212786925812448886431454402677334468510405468144406096587514905058103471755310937779837743255250865953806061353626680505380540154983567690779335745517237152587632161519061869172929462461348952295481629678809922035193187430617336682259403821539795388643380444557147338767038275061669871763445871256197100044826023413158525686983130489270957025267573359083431229138705467266932706836354263845928064910047842786093131737705638656160476161013523562410459844937542612964254623942715235802157376213266037090613773373724897884097396596118966866273391994483740411772891218352643972627987841537882164357036016717972867961375633401863134001463085495872418820120248576351489420569025580319331188894757454801742891953795641611667520291070646840352263235659215596575395056914392289744723315079534583943942498919307942208437345013609434088026683672966579176977463078570867042286420073855337549490663967614194367474500937898414333912863944338582729297797472741045702674592394620835466345537504666991148987610887481981114897325874713225241674304691806005694229514996590951675759992526767376203941606873884664349407967725687698038469191031713378316701960459485545315057979671168921763555261788471007561862099538545060542478736736277796592844568108546279966678744492383143142849888367809481870524659818713717381845163416090834453862308524200659037361974492576853612247305973425068249237959833960831036518949912164024618299878110746745101938954017463252430685282181783529249695890659434133015961010423882422502149070763460404539468540167425052604551369742788004736944555155176955257768871753157988436999586305226446945589759178623248002549862672951118272052122346701740944530048644305602458266929010411350048637243887927833854527881971692979969514695795333679568151561832677075790277998679639687233518183508339425583296091699240829911166202686667433912893825433885977503028930494373529818442501116355166180456714143966329756812942309914918200593144443561030546471805898883523179254648509469320846356663878757263273724516536505247120369163039357381056870175703033469940975901141549319140185540291955458358308242531440504807439700204484935606996498410401471305721100416651619180099431876119212057125813423602043834459022025125317628468331689117313351240039538303164448992712886960480592176996654246592126652279386246496693537167669429228985382504857666139593806961838552393057557957470491037698722257809963843954913166476996774804362413564972301959465925421324386999161777149246226186869419620733106353723075315862296366718086795508838883569011747544509338868037546856384111045044470127023727559924567022433162384818657248869031117273086571344746678797303439251619440045931596504314013788676148489102990145764427102657342462849300363218560099594026698227935411207407034743445966374951584428480749246236996272325756720449893688638316530452669804483512666490558364259825978703045629956077429031558004035692292044113280701182676491909537982950567354691859372244035541710071334479101397191290666811147568388162196003080247079743315562202479681861831852190796765777347987472623148916268776228303285434956145648745579498880999784074002601981384766852437554632890726630224627506688128048232881673268417400682222665664416477127147719093169390238354448322069470946831429899689965893230848924484845913254230463122837840077501261348661395613059350950381304316885171871388717404477180776477129745127216567945767334519790961694916736130756160188651304759776901089957903481084632416189658759210979062610310955391023592831270303411560713895442460874658220052735073821865690052902704448083982877428000834609681695520888730686346456879599528575403700315440062065419073212461559389586381174237863103884422063470676649435562258029901543030321701405479782567146673755877185389039885234969872904697941520172993310701797961395766770961862929069154011723063353828402794821724018714698686516156972900461445112210070290911298409953954287262901463990548449648785470229078060997902129373344881083138899831632551583661520938593380237037441653577175262621355349058248681878217547162570546232416648197894823535330013224555294305828780234363513541120519730913847972714328200462066991887291982665005809416246746786597437026223867864445868580121994767367252129931918034362167578488924873060373999683564283401565899048523933609041736523811597896671242844678153117671614618981205642899833821376358095005852059481639443095506775955138756309733171959807123101419989577322232151912962136125811377967521989945684228152148490976005270266499449912298403802068666095542390655976105894555354961519364942103947616408579870276764720993619062825020673429131036420081088827519380337202823735869670957245156067502675617831110455597409802939926397651943067548929320174780466989617755324409848281576997915592348101856429176657219091880832533358950998794748194822515435471118429485484609265230315133772398761182329384227411616395582519975460109039381556951503451123988878465217004992380732083335787811464666861036452148029345966225857702364225747253365522842405643048377927779665231159677797957221971259214971360716039638105027205480736244760724721586182755444704755138966320674819024063478930793746668730559941914762870338662816942607394490782634746036580998562886697250582206220290240356230953535766690746651796102647632687604001459075875989052637225010673856801419936702514555814843565883237828762198420020545378425171564137636099847623334336478481393681687123429140228173405349963353264624512778990630473541237993920039840652383081296965033411400086444105858222476460254333806600302334728231648586733988368888171931215275326520329647791585004458985254634835988086710455260646217048791025635972994629041965215566849007896595434353997410082776125650544512807812747838042960491899049052748963482422601930368329876212205231517847242901017992308335008166401158394384909769525235293853454371971576014005856318633292505708257952137126193936124081204018845104942820458801547070494599556719287648914004540002664218114321414837198944699519061703286028286499998455951463757892073696429132976836604708279410938476876782837463349476404395795814357840278544998297686014343625942749359891776282775396495087881299831079378030140480562638913694328479655177657811039459986806333450364232039007089093421282321086521437260853141895748821773332037472845915039462651859350665877495228012884988325718828427532325988546739429368694959995020060471457880501371652815017675202260808635390175065622188436773258133658827297307097520317019452747748113314135278562816156119188033030315557510200525833509205528917375618324282537126956173397122145762848873653609073519170258228457253193678630572383583519163744269412107242378505943342857704072910936671244424524595119056809672064775588033728440235325662538611250855739412516730851596767309582367868270828754609767490076735506695011457684651998301119102096982213748538331816550272910680795688120340946328183821999823879497265760275707997250904310705932358219990310841147064584934897575666163688679873002149632798092132031747966189105705128000999951236879274689542463105042148102589445182651043081136755316066645685641262469378348982160079641654496624579974809884944027202488434584281119122352244455435323485484572303635947612010023739228701270522223900594512934806954692204208488530507049863976821703978731834246012186069215338793769477058347094889384547141235175616150990954269647050959151381764409028335656259696775485422548172172407101860405938937574927380031607520532566404338809619942396285962455370693207339099579610938670936791002540052385022396034982329063712205275094619593944851551051628539810078687986983236181442663264045174159229896397787258889272828331205027550908624385565445250118593587257402671503689839053916464027490896330353359708240121618906576553120485324445108935782158150349558847573301297359579351355620919591103429337620881687339615836071246811666068839745322407979868936050888782537510446427383549520588183904516384481432499966356678679319711409725649191504694743574213104485636170142276153809467175820724291801456546766702542407508815016765089737772954686146539233573703808860397880935450851063228054633268993577404856359345877300939578387965976340232143553235619695919025344781566451451767487136080187053961404968872030542195070596709412282147924639460121938543167574962279792976089576588869177352633992866883794928890341674508747121189452187986385022178769898854013635055724680736794185022762274991369754696374991635475899013421878823958500209328795236654456155756713063227568866887125248890436860486579590059482622036474448053152976404854172550095464211017908907908464204851539068042776344532065778292476140239624391743073685019475281725335371722973399834221566910733041328109307009713582768295712870158921088780094269783462384595818369870513021114539879931816385873232605948260773576226448960653472412079934544387857085091648865871109960743659745025836568363120041111492557118293195239761132775859268070225921228946958616607037130922170197852933043866005720302286865521195374816549506845527868341748325537030755663375722184701295652026205109673093722489295011114856189240584334265103288914447008185719392059561219366181483068099863560132514476162925281303198001233324656416351756157292651143552733486695135520105659852899667267461760202694016986242133599302625450215170947813771898055151393407158008834626201753368203137886615754445917181828534833587850951228600615829938266881477353025158718161508486474751988051523671638173834411158903193193904176767502945860604581994272357288939247242777398387305935425661260327030832847145228846503154719626572638730223257305451016845244343787332050949109385381184790926583186837579136589296544942585662007300969253316959321104199975020417703525937754163116259255825908374448224842774369220540331678200043846562528320570727775956842127865179990097555276692124928783771599877097134620299063188259760583388700714248506617574844730970585861532162732034717440748881743475906693063364240439917057600919009363726888220325439395660949692289328978893442562558356552997967770550339321612217112852998909968389404662130549979639271841719282628019369286756791986624969119398242942706220611550310696368571780092144705643978851325814625618243569958878911135499534017659308694951651735544842596201015307530244925130376306528096053446012449382033580135346658457378990406029210724603656374627293316528598314426385588955051745103829782747802466259452212415149332597752180120521952330556323616950190822272692710462825807455503500317052548236031473861201328886232604097255422488600653305573278046779945532384157290179736039834736924092444133927501443454322626192528288364818870064533900813859892318056295289285153246779584095684495159556507068376405844045926660696134519027266999909468366122709622895381362653081883751720471217877464911341156466566430557914196897733753774041614118930604423330829974997030437987233653252723884094774413542491150653922487167027227401811946625987560923731046168909689542165223434296734547722117774778031555007889689786110898978957118704016325291322107446226573928588909034529232445123115046689908950775516419870187315513750850677164122381535687915681403737713850935131693458875361405238307346455020531839287290436671291045733823981347165134949473015090231154402500575600751136427259198835765964045400593347976850282222142687117468491207272090394918755132291199006603137467171830278208688633056312125665434627625846688857342967248288363571252399000386593546341676199125484504237365859445744776860381637774910799896086454558190754102463957503713318001742621893681324697782852292703229414746325042124241311762150999364552855659244960992056329470158537662201006881471087533858338144641880245200689285229028173325354239531193414289557628184456069418375728096520530303053066153130792336562839862106356779803696548163285657958229117606186370665852765018257614138281380602958543986748351944970901651460494425271303278294726568380924268259706898297876450606801493680916263718889743997469805172682448483972945084142888675333948052856643853867150839259777935441302651761788609497382509538735457916295323874466806693382888971473234097129570997796764217218549835398060185040739217330717661925456334898678067204034963869668603832516937596031580007827646350710200517138699247053664540470921148482731372241999857409988636604797524339473784006723477917784695609174773451346383067712158104007160041152107018355582739684236484048454390193792375758790122179937833350434617297836084045224110242026617596548173653129193826400820858374933216819154794617805957080803309873597511418719443697907938837990753124665365586395253498084790462331563082935205424258724143556328278082416907779259099792513209947191483659691674744136333328688008227921055845351396047223045394465396589865168114466010063329799752370971011098335820320702716191783003945225005746059552324065158536544503123852564365859127073473357677317215361652601100599116003906259202165225343058659083450387300343093331041611760034106158064451082567325361953372707575280179907892499215969001174993910307180111443523678621542573915500195773441140044187124601852691815875001824342098059881115719314589449162568769094686351138684670778173855985580824552069936955353510814393440388864967950411131358608759187555739257352126547098571098516347986405931984191992313627689974222468174854407938553305987003615255032859771258072878270341462596648917749630253478132194121169319912494258168474296798790047097687937095283279582468784984675067814400988140185842247110489612311751444656106668005316809067123026956633162095018808121616069960679027147760190683003104710686674100170531797115226604642105397651664779207144184056016062217260913046252960919899284252548599422519608890771609153856960892075486024754792776136856068944779588891029451840020710901770351554916291330241940165902236320645632737627874958872606532696146866460512824254281684228665325347647807677325535792672115644301256892962273417754152848482238744061891834692034825108871907532027740366259000011706493616101554541821800175639798246785526248839577544593625868925548246938934581119278561977751582766627404165077503794950267835935245346541451630601807624187554589972650692317502645675979181363887874835437742960023794968416195977994044606370962270389774018932235349367304503700757108327844148346264862696931664595860241044472592882961515760935600450617046814243535681837954481695361144026822758951765532208785886188339689827457120673803489913693263358363366564542658511981363226920792111314322002253886599945851731634148058236065825448309100034631408182192985862939280621670057270144399213887429958932570789526636396025577509862600669345812823730353111817052351430292247312078396572228230859964170354950614830976517142451890070150067214316340880027024453739673422369856029132779260494251781917913864264473125878977085773981067524478573005450073773820547932542025213694352201545393861564744384615965960600806442558749021058797281953658263103206711633774204979538733982103435762301240737853217009024108611543415418075833144346123477691090650896010635368323765953334301005178305824530426944234766552419555851190223017400028567454246695956417343415952519823555546062956292820646299026098752147842010944990991238501750715449240920621448982911977232196053935635196983441206254986799757839738027375893416825346999547634117798196673113862325872260160239240648160162098678725539694818580310212588206804128096195261493691887776500051225992427030320080071737769136266856401092021415226365488908019667943036871352042276825614185832374644545114699443400596881786511921144354321751068079915581376835015109881081154549635948567600335526295537910380169184672427754045367755421084409954341838199664206615756415415445262336356680126865772157705301375254637754199360960247156997089413966299842461398358729654375684140697299684823678623797434700350857137067238077054664802034501243705837500498337285913728198922444947116017459477917574532419737615550506799404000421736765373933447387728811063331656379772833598302241130302121360924527702059553349835332542263474931760530573858840398683680041266348390812505392637999893426612483278293842913071103707122211057102319890385327116680440624040304383001245865755006876882291611752429351333093609640282127639622957112619440996489132259301163936861298536865893148276995564460584976322406133520845546145205880165933837986733035082018343348399922643328109130704734883501956995941937673218694578879106677058318323943730576165935689573440086415604266545051944474254588441674890148585066749826810206882979151566080443782824121341674809164869822971235379539629675938329938988240076647017706360598214245361295635898391559261755196456367627896700091876313218356394530207660088667837365282558220001104072701854154467861454627700095151868454003445483729490402079205802861258414248351039729664222513335085631681601619919727568615620293671852950921469053839332899059987124349276512348222691779692422373486799787534363824374469274922355207860973321292612246449685218820683083459677648085647126309316226058870719332960591369277629643269196026057297325224652544910484411701755503885756085425564456502899243260151864570045477976719000786836561373421910758203142399582015736144442288680014718933620656239871320179330160614093006840789540194594553016481075233703070610523060957724185924293809187201487409509369286579470499847105155873074011193999980044248769211199841908544727477522263767426845569683372992111256481284514922966984259189704150578792286703144798190092650479307313333307519081819662956768114719650348856652543416736693352288810882539876807047178536125569786061362511689460518447045185911847348503858430494607812632911908637912323672447367456293601093377982904068890932723906680584169036179687250688272554572544608448084762816378969065084259602449498463406697658282269967501830187968542202672178018835562987675440243951860672702028749281882600958495223667227702335663728421643644156683458132292983548780577839463740875485904048224439768045842307402268122029155117758067165806334333258539501452800916696339105241248749518566388585562351008657401851836829231600192152842924966725343522847927485195181164025788518084278980117993932243602915366867847967443624971797461205241189979920484287302218715194097938471809412954589215170325627688781546833539586634619831633683834978855103226237000059187853136423469562024077154162125895156935272040284153057032504500752081863050717297572113770292226652459993216242652227935655908608875271148641043498821339446626385634390907122468001160440104383143993407231908934309705312839103015157625138207888022366109047867928852925702021229861642782252104725366725748971381577498852215078167620047746982840316444499964625885057620328312048525423972549398332002132197096356483516886710393238047041632109026662635045491395485676626838067339651296473411928989914579852016477011039685022086690030161772279532678881869610327932948609463512783869847861855012563147483536211635920834504680512390675248298948339641531629684781288909364278803005651415564405468636096774164680733131197108143984552592750255010603926072560150241244009745997781058949552369466509455739421832252088380961890992641556531414990681503985083231024057865122689945139008693651577612195790783778482601553659957515424523869427870601513000227156960928811973140533281398370748753601041515613281074948357468203834325449660365276678305292893085981881330339910832719279976757019691248889017047035347062205146543125390523670726693968327456812506618922652268010921666788323845674142746670039613430179806062356910763758855622729298624535254197100487668457540076357520635622232974037311549002946518912704689820448200202401541315761370784433233331965250159734978672803181985900209618099011808688401038921384006233728829627066286233792451149735472008833810356755286958024466727392335006275274514202968229663016354619187607021034148949453894919234170410496391901799167686612325211256304104759145344001201628211732629265763771635883587421503890835695518970213453296649002646988641809057566649479606415582877049207019440501829876651337657264927671643431020224706031142683970517587575627559723235927407740550293911857080931345480016317408256932444328553430333580959233833092681103765468672979810701130681339019799590737666859275971829270417432668717205180373033568087360056460881134141421935181635060312360735922623066197720031594950051144632603745487637766194604773902330996158649972517385899871298894909232271184456344503835655637934904349338158750000319037800308955242923778928936466688872697232065653968593842263519140453666712201372625893841997916082396062036241572738546686178695573802562207124823245686555287041903705504417978828347238599488585006523933557815168396901771534896319096708068868589223019953850097957789711162806540279899636286889570276509124716228111449515813619167057207463811412158141718694601873436210411449658968535139265370468238432422679332468334938262596021224932713232289062660940353545122824730701665882182557323050985764400073923439762142701204234516567649325397372541166217211169232603686755015931454320657394116454008029631408365992033808746498555032093489244061293506841120918943656459950872472928219722861029675640650144720527567374012856429817643311323021951024400703490446458879016602845242712979900875679769354165193181529276337784913877376000669225888894500484165735777059169464942298929450915619354908257228574064740125296071653296101358827037947025673772260125244601109691065027709224537550010197819912610158147941830931807780166617280934379821760737609960327277144153640518907149400481774532999470428060382555111089005668370018131645672636621515470350624969190256747075403339304619365876187158532780376603170221357752194994237131436680559397860661200318219564744563333023921929158436153576446851641385546756978180335508532966366581142832861072040516043983226801565996559472141301425817086336692953971906353940661512202502529446712570032944805382191607444233864338301127474625745357460044503515377951651062237196516867449822116235467548738592470083621580458324001362695902424268302115999194330640847966258799407713145583735923657718052421178606157401683535262627252382569293494382364265332977257600008538718309879860473025631487737014978709276578919668984871971823920865837506441938056156742736233326617136864285288636015183259300845967977466821879797569977907338758180010209699190738866272432720132005473179454522353402569261651186934150064028108562884513894877263432501501734136195802504023935627109036129072004604626302018821029023001696935480869111730105572512026501764076517324147949563897989893256314902550372085497049947562372225111077028581631406239351396657077238420632404357974939201191234817113762715609293260429926382762298964869738739637958112899069651756816503038551256244696256796266888187930758798576942060904656235478992049673260762048224317059567159575681996100625990941208909366429131091485269377056623091318188849348996231027902650892744129636714841719818251621192778256360320723868730158981259652335710958308213707083286484692933638493379715424118681435837720662012817401985154777516200818143840091487340371278310602074961009994643191133157127182865147940639333256645351656632930727905716542234155741485426306217356711744206408027611462262056959242585847278068086629379841512079318599255341243338960655784412938495137980961303935952365934125841471687077912701793454356736334212371043085653854145284301262830705443427496544178136639681543131509440762186831836146407889107489062621741923558105243495802997340156737557315297038499288724486325842240832826252409774388947648078469907095548405454878923180543191049701614069664988460612966182318138169487578595172912794707964977044329436960272731874027417565366608006271500147609957263492513943585868303620824948062276942318889353748589868558385337722039383105712772959754856339773337070848224617268045754736510710630912973264043270789655139469676966118328206905185435601686572915005598113212365878987789025888138617282855899227150412462099833354371506559200066243726382889822895214174398509525394096405283060953681108831158561698658114089787226218345422348278909397919353213257961118032973199170238327953179470987542168253591568960875671410600566411743265591702472490642951252804603563906372637771678302426754076938851063126685400810790045273461925924418545021156418176634220461735212852561716747424782074357118471816369327999029652579594765207729372659432866931092724910260563617804931892350991656587379118686539378864689112609210048779378322906325125173779287121578214133344809627220239693466134503385871998366138982750586402444071731312635262879859917980654999292315960673236897583551434607937666534581964395447754686868643386791677789434221241060333107596852504956864141168561047942299717150821834280434613750216834213837678932159616963048558332953023700314763471520507053564342286413068273116497429747059325594267869568450241478147978603420902735930722954472239648714432959267304223562981107340823462694481636956495834847721145795434004146936821979326869024300893599167660495308147380545812451652248749933654774681941258024594976949236019382259839187883649062049619791002899872384704321442359458458014439612739951619326806318357908729151329627651162243607607044954146406789632669931264693474260108277739899156704886844692787187619332308723842167504838308239446932312695444024560908060009301750553127133587028574804203145628377933401649114724009254744079887085926435922605422241329028631076271428723118475626907553894281244668127829870798419958209555094923668031540058916820254400263148351358285703998118518517828701165825366476570438957532998296349593122937382109423969372516502432247619397991096097349277912185758528922510908142431846000194639796911859362265778614393316262422684254870095707313968643102975280617333360745550469804921266481363021713943418070332246095248197884111521118620116073591773668589553806228402483967147143066136846050704618808106903299283037179244113087983764211980065301715232369087958378045916329359646242067343774773005018476581615251765540589690657890907512536630841971906674078784273985380825213196664930548490878814289130373997771669925920154484974379102784537395672910766445001002074441542868335260981095942897665535506385071998307759919373728597209093562680184819976422132413980004946271909292581104181480673385073321977086370896708047773967047913973692587073673424801052396312328595292270048805219172379960691477764112709982131120582666012583533276644789221415414377929780012138199094054990997737755013640507011739441348403292929995839583595157920737692455854500849076210158060334643255896759404429321081735269339257131077668379238358257699612938900138391890862463591632996870555066685850895983709328691277960590346242349841561591382424046512349109260725158784704197165882884881810925291338875197365497070026127276354400420762611256433670649318703817173125565955211765125257339541758557171706836496843561618337521127386105029022960219913284495997553247311087576883794170030872329565920071930471694735516552083175300291253062884060442005498865397047885065943419254167102593397483372372471961211613837085899576889458710678786537338755665609908962485254844127642827500752603799626502813850402853723984521727688599877244927023046933710873954444454248849307831880849833394368799496700578994047175739109265595118156221124229599902516909904545666057513225103980274430743737285991609659236350758313164813750970924663829466862973621409541634173989659191347095094038501687833449385948108741895830947625353321145331383004788054029414989513841140903046682222356582292759470666797348557752000044454355773727674917225150158534282069307788711617371849324363114973131969073544465337986385029880874450395623926855002096568436627289144357072301758141347642934036937501862286797374084591011876481261727556016562718105830403595609711226051921219749288063263628756404378321844106042738923602400153365241394180711187338326186300526511418044979295240681881724850090700491819304383529274569683241954566149812278843375322195568075819857628312500840735292968637150177340061806873519138771243652957629765649303444257269390360706366327493332346139735174570338372733880959064756179814026086400291470417069821802946470300261450234797588757087852535716920183293170647760020650958061413731632426722410725257582523395084857166246515439878086565351462389482823540470382826623682165299890286744937471597947492896004315355508481818377598868136916390531341711141699836818493825208234480532961008315425017588414305963471941977556065565433270122118090241728699581183743978299570198116258647069510246111823873476083261250832964177629394034859785506397297925782556686355201667800352406177934089779422650168184816945602759438121632125313289689596650249124389509290466577874167521395899596058709743337633601828111123982722680936493039821901089845479832053087587839121905999884966308732430660617488061223333719919452946936857516853389627590830721119011339234102304831322686554921988561865020585517172522310649248729245422899906149776231603954804067459864586026664850428468682565973271840408434819491515004861051673966874478605108837620727983154761697984153021422290445611078127104142524326506694037716341651007098201693954786390085394118323342340766780652815722931957481461169950788829514052794818655508255744579295126477066433588613847340386335917661352879143496873983032198685382700200532119421803759236370605120707854706784378394515905160218438220830616761921066181829467425945269577003216170298596133055950316313621381809560392165628434674858205096129216481463023729666223844374231823397513404194769895865554493221258781649834051940525637971122067316349353134362774392806091963718514357038953622069675900719076991954305473164817145314038149639917510262688505235166157535671672121351194489346506992721169182462855609415071194302203519113737036196930255143324567803219002573025332415324487089812912140323587333184345189984267153498263754804480241864211265017789871080137038701644152667951811040394934040156290706380218711941119354826603033788746174920942472544500018703207746623993169296620582119093181168896201584357403553112190413061469464489548020085119255297802883995578451689742524907625304919081916219365465870626918111046300201897159711295392614698250462149756648889851128416628835203882472654275501671099616248170812793823180719801045243385109652630433610582498708711991730950479575872601001540610347965249419913550149516369126035683549061899880267912381497235963941911955037720832092976584068618105280610006819865467362599327495971636410848060936019488666332548075446660567289675992322209480632292038520712038945355769792148148610992913271558392479309484866628039609900453757127089150996018530788111453279473217731032453767815098979619419160062120910739713004358428466425227681130660892574855732703509571162547646749955595110805785541831036093084789073265288083926152751439786836053374626300957899742936149530001381561821887617723593877101727081547831030320593476102961001867400232118802774869394695036497765016338582767728241620392748240611382468063918750888369654141110205131062552066054935484938192346668918742701430766819430266154133649129732599326663889390083769257757068159098854506981142948567251178557973888262158629799514299128265800039733658316666875205129696714767997939878970199558950928401888610697154962433425882627525422131923020424402160719335538395489386017771861891601946891825700779473766383671371025974466963985849424223790665980307091746680782359305691353339569804001798654728102843849708586394268526181953029488941458844528895267803091671453909725041862494734711496244686515584570116253112237652642804691021415644879018998067492881174703743590864145631001766951628811736740949050646442662316618955360425362244240097013977679425475925560512862225038361432211591533306378888995882687251161016505181894459859756852719638972786371448417014539666552930008993426641494091129044260863160861222050793308231259578928180837054585003586237460118652723821812230397036837445770591272631317629473616927181525388440714131044035628896262259819415522957359867710263005105717863625072386013046248919271833406970297547230418612938242498014139750061470937350434106668258518303616792378235923476252477119744585261751506773914613334659162419618720308802479758793391423856310426324938592222047612964303466396407934390187043128676609529192249640449108368893171026896279142719398137559616899443196577599517727862751623894106035862161348875793612323371861190782321915090909263799777256754574362265099509310583493630757504608106382802157354676517587959805544290558475962123585987823382695608378150621939087552906075039382892353781669493590865071992334792447829125450437975549649701978051341714094411263277315820123286115903088008272861239138431498475435344676145738090716743748119925230915559079513037159843365305175062882111844168032537210804468916688932230682536597384189314273174837260853606580491868581347576340490599697466350866802255719560573943605201326175461295759299006162840751874780462013498798314118618378820502885305445233639672399413169765044703817228374233023958264767855174151836612083015384381096866161535650400801267733671306510768029903795756471528258148878371810308425633665916782490685843850002431517514067910428677153770267907827197822465502876683720159746847232284428681217939918892359568785750333186214719835986857259369611567304483669473218993421402306346727325942559687788865808471226884580221769710967559678242987182341548062447463721498419476873921277711036921283983787190507930328819929226046714402374499512401346210417218369169402170408491249755685810822065138480777536525347815995857970992987279966512447695482323617449042932906782310342302933318867807910914102010409488481389691237876548158684769434796734116349255277873017352330335947404974941524863428180932592605712599917524895311497547836458658544545314288285613941567529482881475342854565636003516951229023870610590660205734588507639673701713469417429419785000749795111725523334204332277779050162871524430873230739520482621220267987475690505680537350162089676844562068555904665241794450805110621939377078205216568139653720430260170209452765181361170752854816029664921672256065163458874719743368996160411449958216964205843750363144863620943170467664062266377709003321422569875017855014649954940401734435943641087823010971819081665655160888383847850774425307647082072799384072765662931737339836796971138327826813028139465638493311747284636406934974795705744916085230195450434389566962158640397759813764649569129404040468466877012910351764833362172283665269989902172966820764199799971646100622168854736307697016726305481509139904064170800372454507443634518769003239286497170570351425655680854897634247205277970950084203395445398779796610633287100744515456399751379394851636119968401483325428482207569924225311551667307566792136463686696230633420816713822159051293258862113135686210002744839756158647227510387520939753297732111056038784057687521159717905535688253469035231700141954500032757328085495948607388454747172800113274300920902308182398661739298960851146289574038637190133529271934610931571972779605959003690084431579054368155676688758117343127840832623569700726775026491014379626185988192342832618229209459524530025296084531324677192703490446693797835993456485225001355917727213825080574629256733256785933912166708059401819852845225817983538402898136733478666037875371571650446158321249810738595595031761683270856628132279888543872839117370776940744446086971343808450026958454342001139467984904569668225155868505969016455687041289158628708476290070058629415767687168860031962017940265977798440114871656095637421788776025339056760925561456133076749142173978472653376469907403304740521238288852031640502817639241899888585748405163034309832418471838024260969620367928795653608219549012768459587992922445399036687325330157603417487051552999221649178878142317867122096391725635276983091504223340147496493501516990132364954567371455986215544391149542268381856941419671965138081565548598420367941711709988003016883392201254727444438762844037655983062878991450990943615348544115107668821116022893763374893160525621096075993417611174948462662063231398049030766095817280259504522552467812898348955597486114791001353013418294201266449015320698753799127207532777910110205848873579134633756737736935594565803284463625965225738723358003574154647731155069966934591392968807418944129171507430511984784650583949262756170538022340103710383479835753885993624440228060133019649334084383878187471320470477377403799787800747046360636488458775405764732905174033735621111013171871933324320476807052818313075914299512062709669032506501149521015969537196079972786354369229665382763996902840293331189974038328938015922008606086632521716268233240923857072824395657414663356995208416260449374308844294605573268945455361451005654320423297496447814724972552278005051271386400012684703217750162094105488543508309576315840205498717521063556277216780327021505935914784778497816071411567172608960994314899033845891552035422729586787321445968366490389474649295471612444573841463579920753713442491038518549755846244368435505812634132099204245730077669516967919429227688670306674944720510709951877094489441204060361503044746376171811718271909040068639889294978194017737633154505842390428172943519613638992647227339555137919868261310024298977617489366314740123200713744103020393228826866235381304588884615220843084876443811480127081845258895864926457066160333324260859313993416519615357886273750522908860144677942746146560619908916816475898091741566863232306460768463123114767275113616474040804098141945832993292301495703127276884378306624315406782341485025345382217003921303492673377607466614027294269552488794072194728779236726695571803919702366709294289991812229979665985671508992357629969760512724924426526361174883057895712111556348735768801052976094139362491231355288424862076663443345511589032270664641152311399182066728650610660291442388715840336488341246503578953932934022760719662409080185741081517195489147329727108377641722498201462694803960390932007484693905314972432681363603439017003053316648837606076882128860316537767576258068696681321220562238048410770942423093830055451114076577949738061598811430338092133570590305080494834146927541265422364880359859878922449984768146227016840041699523850724454824830649362954501273682570696315247564987790316186561413939853241578325071371366675633951613906736783301953804582860376411061503369044532173061231608909555062715004027039445794085414329364216226204705534615623609723117498098558810476358559803333641684623283088571030570020033641103447542687980012296828467929354659742198011069098715068769508393433297850682530715837477092127692436032527844980676383445461376825964479894411246376700122297850098302841213948182544670817939264320098631333156325697554240263902423492557977777897106573141508898235428963283719713451644238035411438016831247846351859784410299002807646114651388069432083652811706108254667053263459603369009329631796840646303900163174608873090175376311063805479967952420224506680379379806552267101846924741860654040117243880278190995037471469749879899132531749327851846499675854120743938068534550118596032801425106278508083077619875566594818769655652357944512256891231796002167248120807247556772610602501820643520774555464965708935405350616731098045911877886257468380525196141473222030550070131339551373223776881599736358937898944352516765445030230352792294919875898606968816459348812574932250005863098935786153302671080189894358294039600180129283235850208027938721014349982376976991097309438086383144707785639476126039173448270148178672287859258933409746821886727537754762611639264718927847793726899046352836368132232740481525660974299687901390216033357992678051037463378562682188206382116192230854189368470007463001360164428565214987907939022122824334859153613973537179136658059841054922736275718063268961689519999081594360891835334547703984435721403828289908616613798741999245730179455201259465761472186552745421396341432838867556388259119929197262075611457245210114861883301194599466985833715648902175301683742761408481817999932536571132529505907587863172555526415378186738263842742759398769032702406705914804690835556638205800018351638820500340913971353540589422396014790466376377596830443444279223655129061465293475127160409589399558180475195265575439379934161752284366147357483820859958380788704896878352371201769265201770525511117429584989713837463610153963805226993761706269720548388755184029331078319949240498507821160797289763161706506620420208058165272600256373425258627716431238179335828821552919726481543734560405317135103801903438561543037638226458693827782639578263973956814741641554930722568815842134670473919037124663677168121339939695660065994511258495947264816144130641966207587133431450776971358078738536442830932501032622503639590100188527978557019835451287186119872629721033071046442685406235872113145536859633441148061043793592037171984090447121915944376159771514730242591946094562059858410308494119605862265407729857666207575852986150743321254247259368345652837456396381302821219057998909183519907777678993030320829342117804629178800978209725157710986126550601334791300578644060311411566260330597064321757336601317949932312903875221071255132612831481939057931806542613362780988661579805361454562938315374452451714482767819346839556393404024316026375212047223722407699127123050590206904943652228584261208495466003992914415972348372683397150547086170029500162700825029475016924464609617819606463921430534597127958947817316618261416882327379877135273541651727980856139209307666203850861873419770728285999245636376175998508216716828542807021366853408810637839963016631242974881041486881459273153475012474718707913989359604258580258426523811672328109893659070400942785610587414315870451928617906657214732723559513746718755055972206914158708905056300174212106785976316071123519306992801358905329068718650153215908162352306466316381284607808007076438944773817797415608554928355866514764783489205692375079175431372190053133985045325781029550460447037327842630446291810001852427196290576570465978206620641285070189046829072247768807370504458854504233099745079669345660317972757309808626420665677909425478127984801902917170281277500998965829575275326727215809907686860150502112924152276364690002611908633016510755099297571554248948394521572006233899408641164791708689654346186425914387000391186061620562743276371062448603543016019937545858620827877403170808813774083915712900600184379198013799017232782651516867964704228587039320114322236926152353959080225154755050302221809231247254140885742726117104343537671563145295825209644542150126503004407757839136319790306732000880842145704004920020552696999721244541883454257637938086544143841155380422402759675662917993096152107227035844726426042425973316144271898655321726811378505484016782652751119092400045408987024767893053183847364070791260839049669265440494738320375898583646734365736602779375692984820652451363955591457271833686246145774513797244919611171364864035866046073215384423665771363106989530443082818546856282659663802345242759117576068837306813671317144735599633050573799003712568255026799161301553386056510104977853496373645283066306453077255178821702118035470424724956493722306545635353482540257745493593024992877320967976856254566316687574976134523973620828774989046063502288072785725771892583201188560280883140937332667609782491603888719047853647447914171316220365894317269078126459975524762488254529108036708630787444819236458482443512279304924679862907781091510236259409474416015318269558697659493541483287866657193038916556559620485574032131912379105168056661756224979510209012227396972747810243988078885052303991206177882771876102744615213676063926119810736361563038102583127034685658105311460727807475127039015628568882237004546580533629665647434249119500761011790312891277719219186252063267984873275746436078689634990583595996492627688914983045285553114454506770285684310679440414635238127021434928842958690366919381948229110432368984115829974325072978167828165090208233508607458326341195656552805536370493301636095930033377803047427937321634112315290626476078309982977040240913838897107599832774052357366227124826364431724206262739368550729473739348334639760921883002830728615758954000644784775919543336612427615770665556327440151739530551332253509979563661457959313198748324573666022977515105518623742167465808924702840084456370452765863137930285808155467938743347074252162081416915330933205528451595442955082299746961731199035366725783585646513039386216215130188660200903605244445640819839493238727421707611043335371326120090479907288846829385388789245840078202245979500210917110928521898823829747567041670132496827820426478155818092495004623382169159700268237563249567531275597892020316730199338504290901441344089109410996853643007475994018215600952904986118204527084429506549477212650981592298392382474768376179570089809238404393843578936245794705666760945603599056665369127074031021095994070744658320863465999114330518316681458839634097453555618485441279385813434264150474030889537102827315890230639966144031800420096449142764868629331274756430047055111473490109981403151534983458758796865672404817244447935615161979639067348097433612395561772884946632243769381974053488467764717294330226141227144395439720766639411320532660945445982299675293955002031032750196717661899418226974714749618693739344269627798026007127767364286146559193391921384052784584933051444630126012065932955960376969961562571596422407229438159237665925619456306114806338329746822017452723897942755515755207289614696279500030151578069661336865864273314284965936470593956387693029216683565346831191879407270430643174283026326768021368763497016664417590019650524752212239413868837626627515036164558358573056910008680583646296339606098463952679038901615420176450315931785905512924424106237081384198662434443133949343316318860231846169405199032035944894448632253639003524525087431477267620960561592320387442253273500146426529303275653323957647630634563639371508456261816532416434286537214323257533457826175048695254056812760240846354478664127915504427644816289554819311549646752185980316249266138304097874486387994253460924052212210372942348403514766201140683705337502292507284933055984709303285998356624610231688605106414969730791701019478322305686138960528289918015175889881265761370246786793858986589351740844972177718389859693719359733626708784136977028836296252337129610063508767135749385357917436666933854570066621106059716372851862425041975333927310727100860488558889864024516410338242427179369524405442064599645101999427214804006262005018533749029211985670120014204719645783083565689598310980122246183713763975818323091313336833334485126797982199735594504216183172429023272579655453097560274918434749367510351497165205959438876650135739181999026186065539639609356751790406727190725585501809908863446591298989721641791741773120742505077020379985807122193255729925271513349737643671837916814164785240190659185365112047375934234301829077902730296259887200260561187506852370639603545293595057440663557143385703456892065322200376717162904878765787443521070178359475379031152881144976578700622299016663784099281414961926874238863624677612739255858526073812556124635492032877227412509798169854283467952227070334824778624576894190266216281741841805607867369683982381416225495582062749576369506020370656010713234297513106494451724713311269949710577107930780756292542023420526191640505775103604357158380008230273065957414807998060043408288738397257723458761976267406380069846982147101669621917575976005672970465260733113337981704788907575914880941876940787711953524798827088886004039473733664863948430835580901738937561239114157127957825181280838591338247826136020651018602011839314813457593964125277540728712793812693553810869676817201738922184911126949360639394076601372436096534736983432212121629502690039243988523172160321305826369197682813622961653678665288670225796273393059087003797775103231014063622103948190329054047043843264336644704920103286452547408685805213270922165529671171105882004994365575991613840672120275120079243654436226898492395483337111410724344950882192987412338591674333234963764517368883634781474390200834060388139370646215440875780328633436536369370280410786244119154828196985839597829411384485323276532985321858150427442705203814416166403425187633733406840183708927452313365297663943572628687411953482615307272099179690342179787211512088367764698622563757385490019431169184815484555152354412660388475752627487269771337203810388194310388026738605295882253303300371320664718063965973840911566011672322607501259807865969057717518743236737734751574540347512790030157051237828665615750471556552414518723816592372489818235504418385934511464091552748253020838372549810620799319026256937634393461024887250774423745190498704239904975151770330729740079727150504385101947409188090786964706418929968673237971947827466978581844985695833710184139265777654278183837817691209989388693239218019484692687100888811828459575632922312260372411279493616092271193348373467275373238572263235606850235749127970569197881947304767723021751581201819430896900668983461005325960581532837864330590856988525838225656444242812811555728801624720436222089934679640810170104651610762913011744099467833089799520108849805874789638750324758896228626702083291029152040716909931188645531208420835298206534147224424383128190324344510989155060540482543251315666134634743188145456657572405063941350205828319740190366178582408778034153552175770005179067462548564697507202097759140061832736119765911468334097485516306679097969319425720439701179627208840252814035348645851382607673833839307952965822009322040494289196820039143524747730039817316836301840727582911276401038941250561478573018564677751808909976809811837280150089569921763682082781777518323312612273676365199787088386580405823122182385906618167341491740947112949533422156984957023928357754285517407752992786007597004563165446968014570587605113044183782582145506166130477740070760300894483477936261556989624330215085168512491765413037802556343159654577634894775075059973278810999745554898277664669369651943739594381553509752063890757164845837937451275345386356570283283862613620048512230080252339606714777606220546940677699793592712190221173656656314226849114794977219672020098898099179723384889316973206364937343148582974163299591108728640709073666753485898439521015323042280803336294254580426733170255281269207433441737044827279450802382348054811581791863646485709764134315405713445807564009462730280977938199299336042206230647924673819867688231367088800037290716736882081170493132935806196869906712930404658386359503642344441812218624399486576708883618180689490089977440657102469996137743671215171553077048851006231623253260637362224653422909776323039485750276770785329267383419843911471985883241413641739807997135262305046665872109928587408934370358821484753273750693517050885880703510860501561462131050653759608752862262791134957183309402302527151244023740940651221211767614230620093879349867344400678014752853919167129524124842675447433132947457063663355974545676193935710936654623916629415615437352768612089047346754247271288973062483359561842688474037526276850292757530519129712599443475661634224920913461586238199048581537940763136179438069067517077110398773399987949064872683747503185443220481667775252415343879244601350648096074313215856078303060171451659187709400880853618940969937538952901425978503055618260944992323057523011671660120024211180228891190978415853051828675942573800749275931624001427294974161211323287115193161147593893294909147462780155812716537475090322167132684601421861812015974372059857219830560112437353917810838954967521647697710478895544982047214528047861216421256748547284717228565904251985086904638940010168053321010416971973746206424325063697799685147173267687308165144555888412780950943683456928852700442947952904469580283333492585400612259898839285769131571622830542330281881532429872509872608178033025232163596432015506255561262670868246790466128827684336009439604216188409264998778063199512315870833307468254045970223399684132787781390232122453010688267836698193714840519609168770901459723731878008504532008841270363026210541014101924794143515431329446675343517813603146365419244030252028191108665212461225534372052204804952372602405553790325044952126003153065551839152488640962199788167891875799708106513159745116496042497481408602373938608105627193231848129099321088411363385648986643196915180338853512306943192610238314394131711953413819230745505471325072545662829119993377973872934109944079117766115108378344843946212140901808680391039650545719483054093357293216354123485066877731449916656140858759999425154280360730321587661600054448078940459763103324685139194960479945068020137586950700396284596678050816260476788686413710928856128322718825385484353067600228505914710316897064577657929344155097020528841062045285978992679856072043033433587562696212505324750319253647003255662724653608367737119377022375380364615254044759420020567029943947102623676213399650082219881052803667169275420392924309726862815211721510317696699736147162873961269856800585181261972158303649956497212002698957248045419914288818086987436635209487918685877437706894505770950439840176255632246188831775740866231770611645412575162697026719330508443750311555733648033569190466396652585233962880661316197226499808199693200690876345734763094368084190635430593765163480049975829877703708733039386071541862266775248130045175777097804770832738364384293921008950567833462268333005686673570784633135797772177546475680242014609312801149578865549906134693566477214340055139511283153049150370238000636032457932549329826576998640348625140957941041953406385939304351289548043253573596178820320124192440909495109357230241003143233443265918346895883464715041241201880942775656972322357804185927762601093429677368803380154078782567556579958533420103936975991880787167782598812850368628458076077141186019555166004047254998055023257818138793119894704777147214485710602714300869882789530291877219285693982468355436732718105863313143672003259927942591050243728004504713683835295479238484290614958012998884218929979074193992447982349412886293748221502799728188176942184500647375892772153223031825097472968047581484022902078345853994519732436754450722114083041974260664406061234667390358470267792099438027197144973476318469449629505579178913059325424322846047089362898011351075897854854209118115710568899825331489489136121683373685232580086615772434244605668237974410546799896878964608908110250096765823693747449836542207780521242272275157812675915710619220481625133223854239306217973370006279991129118925085765744652446362753925705059492789462724307971976865333731368913184168076400864700847073314772393170834881566974029994238824884282381408347387147696656249626663143368442855724399892618237604095596170918037476197979837875956666164851791776418266040145151496294595852641925521237817675743400930856331320661713435232157066891711029297517998093585197886846041674416124843262745668617455474920700619458237101641966760702795072186614123335278903162830055266500378171999939065786215624424767718679291424261591004131943969597221326947372305694755791717088464730357301632520268056541959948928937039753791900092109020328126823105306082532387524547174594687225338297463116294986934951953880739838968187789859582556838553647434969311274880905848561663164294605795105179047316994841707401088204298481264772453006377067507145552585898945048222719507364595415750725594074633620239487324008736128139965344688709449674692398272351009342601212349525407546728583284307488874551935427326077965414021550898170797972790466508471570788969531640765128143840509609785322473761369352050664442476912484105614264775490867158190927745665514146921506642368740927312663088216120238704139787068712426535430492963927319233504222235408497006878843412661187328601309635834616547452135408518307186188922853389751767896033332477725388770178274215801537871784728634649509951258523167737296775237622988276737777143190027534274203920712393342645479110326401639097086950076125471103930230001041468992734362790647199490823312648590327552119347259800526559089025206798792334023950394879890258246373975903128459166097546693472107603582028402383077957855817364564969647812696539061573583777093264734260615654402560960474841286137604268352904756186192839105317567084082622847916357578726464048212483481817581108375421004900038505138706322354588342092154078434899499352101102645963947716632805128629976291212081746711140203660983414879307451462579071570908186251569891215279064525807406516433126506886160272448926552291073850402589989637264797070948525921961573126315259626828956701078075467596282352602818432781165093196497762287259564154617482301528465731725222267305373150434797181631435096583822786734434458127256619813110094349013591888262518799962439690251294664746638548678531697808797604098805545938622544789098584878698737308919521901085223477422173222658207027250054851183675213447305234794041059065316012108320419151870394410057036891689509162636046693439922864612116001465612967349721940454616844823666724716453707574260121359563951215684742355993362722408877710842557166292671719663044272141695234291226867639664713442299426958724141786513236020263551929020689206157079227564203055181104970677803647623664582972295003016512917774439118037539706554295164208559095746480738288216041162326704008717838549803668504045574064850483471715377648205339568409725893838437814479755095213717708224429973044004227239216379160423956934716248688382130699988170995389030897410231886639097928414053643124859641095686373782802541766382786086477191732526099408871345175039701900991358180257336099611692250769273067316924301080200105990725307361693919419719362615416205395997534815307967745232339368853472083933434625618672747743260787668862165057950516180948625886603071725053159169521353799552802759697670618608686049976140590150923233674764255147382953531618926188754794022801227685657003782271825413719555991067974106543795323133669207542613466836759828619607188651851193331217334284670121507093715654867847356011197981498190472789700857357130927144831315020858910291438197346006068789813124803236049966103745418556204716810187524834931634992335101887962675990131543419698642838524836716456910541704551029533881647301137043784277996478646025274740788808342329950267667957688392194563458311109805283928318186570547071923740414769125309367215546085035380735055905364413243147869748026477167491812907739340222644518919490443150025817831571475870780667950961822468390713524742410298343717899361918566236839643649918644507681387541187367657931855407685531222819895957174139421198536603302011189701257583042175567962311972043032486129234922515166337473254006618554017674696662239427910310045160179895694558055937833555826679435543539998245698008959271270042109437628976468125040577985245366268163956539988382399792958980703956610987504692415879765438484802705565304682522960194798719805379959550347401999136149313859692293937052259615835328063694851273307893478481832784545248975867430518442240193223043726129373313282649928976284740263688842288244403390838774715630756258546347469549977618930691936244464487893677153069942725009123406126621253715247991796358709875239449684152798056412985659959682837479039122516427858921060927411784935539711620193009172286913947792922223840007378269316104052024728341791280845815806743506148107115700830758747848682718609232243903379513065042593730877469737711073573643963784146831041824410763781309601917154871324082445096456598639606827534756416389458534321130981178513134023500101687840856998494937145890133382348766965092663173608695713768773086612136654132678788246801853123716340963167541892107226052684338592358570057648962085541806522058280221386191195406509977318486053908265668695853667976428033226077270396845800535329454708470795762485457319856777890977870630788663470750758192030928262815043209837146051754553442036259483871438606458781785440417361480751058667576769138849293299165369617059821084698836815500479952931278885302040554819561086022957497220757165307879655466394676588471877461474342986171193142114925151435658431231256388302149693473866182674212571103238891912799684404923496439266217008688485958448863781538233913370835110614694689511052200844614432301004832504928174086929298106081094651237163488147606347099651292901065329683201529663144288270806483977198582160381529196615909962282331629160353934533582185304565544270468830734133452317661343042614909995835278354932720811944171474035041925669932218931116416186695857039662874878619292201447782567360084225801814498448821059442831391965608901072182704718462526209250973759191025735527272151055642493942643407006266972148345295885312285565222945902099630437375999824429551614725461795893387693361213345515932990883854952887374765086820421987326080087185247513581464104975356597803576111001710836398913080060095415004408612658486955654824380016667137802472967889290481606537797405231263965704938062251278920067356996262050796734832556758918900168518201059528057167553066831486552145181086884610590022299149915474315708633223719068739958186082608818858083540036077095787180719429404774038410111362064666596557320155417717663081902140057357968426194253374176822560922803888685367820368720126909729186807194593225030997944528932320344167216665368306748964597247798174644584239340487556090674122340929539087275271887597805754000996529716839342409963299848935383058997533129570898477503323492067025992343349280983872362755821628287873039514352740909968299104803234021635715356964777473779798336008229291201034114718230799807376870193073733994534135369190683570159776305879046261406413991797800232874571039090151558084028211647365882482171204653839250616316610633014984835049833158378150051918429783271394292285362081951341695154738708267806588078334443579612337350156239340586198036270285144187819790971422855426296737429685854122030747697430250902349859682189349298766676016299553310110465753484563730339732447882524281520164612968942940733695562771736041930253197713431305428185133126163308575990526917308885087253680427644649078819651071142976740705908892571366103401521364559697544474814226647093099423033177590777707487274014280306893145031511132350771717085236410392316577213701042479193390077501740139714075292616644465128625507563303923932474887853323707374548307384803697209290314432483237117060914633514536168534019566219566998515417004013119438919717480955030932688339918751083334537810705777387639658820926682840507608958380458174431018509154568289190420579544406159790087316657064258576591635992251381981342887648823121029856909499665662539610804772618509257368308777391441062318042997433591957925449816026266363716733097714205712132928240131117502889817182035000962639043019449758666651564501751075038134617338707902838410677184040086803665952555439165607660710260860835974631935932416278216461419994278062965356121198217736072649605944285313399736967975653074383850600253110978128306735606937961303199612539680980093863322707492631408635673174118485942994294034348230639591428270667378951854274916545819785148086634462538704769372188551588624955338960227189666400245239569319213454089740966214774262043998961398050262151002407353354052369836489119295331433440498535105473167642869223421873925194543502154815713177458835126566452288087475246370924647145548700176624018953431141170422719402507723764638425987005283114392910979734568215954833204588594862665086930203533360527130146405050537538840251476724487536795803326211782478057054649233123285613494370218431663868568487407872532917778166917948388495721035233008909969151211358293064424277290158428410770696359201065482127721918951836076718214506310731527894193456774122380622367514697660654619471641761411130287565541197235645906536547554117184476797717686541839816296505401891586388557047642734292753911504211324042417129301171464254001786840712799576802013287417992387809134869088535204460360499124592762549443894423910816211414124836019332126389014453979294256207474548453388384613953744945421511846415611703621678696059730101433157337744255235974614991589629749093046571803667293037318008238028034622255338322372256069773498165331135001954868714052697933680508628971429649621315906054930164804888992609779593745038969151824290763676587469341130011460636281619681661130299956308936263049800683371018804784075739979655336248171434639571605576051909136006219788859604831486131763576237650353243716519993885713257533634027641620707046717099128659884933879847345499707497802805133407092971526734612615521777018811119940737455791416983922856411024575111713714462107697626045968661494946588761519922380530606889697962648354131119674302567145054049230288409627101900925225417999299328571762352216206393453308280908814891187607103558701810723192958872210672840307737732265434393642280741455513320368203543582072567696122209629253993245542141963504077816361927587308833773499744769288666164668727896392008311763785564388886674998854124664598601933847076808274278706307465455181591694152028840009445782412406974308156659834027008358565590149234298216137546649091403370079790823324325346282701934752698820237183466654780044424654323548930124530051052845370939780806862859548568715162427221079510335836926362409916826171896533897738386131646513459469815727121468395469348270142492129914781537506361585591682776770220571791678062311717141540986716874089756107978436172850716037370994803600077811142367777057003893735753585007429395385856483134278345855623327461835991776254865706706352940121109951189489079348857192997342602823655790151767603930719662695166587783838965337633267429134325633918073916979298553282216072928202632784360033434762782641903265344198234990846799812089032333600441131890116355053940172539782395884873329532178794279513132981521210626583714391706099049007902262946330565697335609348885252467284137415672740247571551164352797676274828340818864045229787754725189176988507227685734661948104773123528541940133061456648605478043341470705029810287625014821311630190104536240408597248282279962477226554251454747787496276258126666621032251427078011826541492586046020010737159318441634948272972822004322579151299409518841481423934846793698912776974415313938936286254717489416823097749657390312694182422946153151867610108434713492183525873695657517452299266134180035200670255120015634402749280982406138673266694226571913630113431760824539660756849897311052983983001873899511364968696838013056185811498491278126280213597833906987646373619595480028424921879157848957211950997977630699206379075916064901103583981160926103595817484749550182870392595670692795069184095135969879559474593984958564157614261746098576459461850330976258477816695383882865967463316538229718869156622077030066609528842505525645434660688017165466357825439490296903794315488575719096979735345611689032009578909671265886515855782726462748935527759589316416278448594262051512482231218453526276673790706432206875477015007082880272789774010230395726386790107167259559916236350281943672258014797753843643380842054731628129843390701097436655002028144833808541496817853217065284305404668102549668774095570839835575946038638474640628928108462722139064924642225395383349833872105630798820575800890361796637520645478719929862808335721518519962611094613968906905093258055380865300466950675219486195046766853748174063785564206849992932837324817643773452022172722841702460837273932945126278830956628590778248309109128326097619727080295309455891793747426480261713172326047940003762940024272761499662930838641173266805937556333935935523845966086615103290468037972737964187815228743949300014163964418739522360471691958681805861516864927445229010118995096909856769452252570004527816399074157913404490892157270672944853021425828855832694394517555881157344859351370273419728555170574153377440613129803163352901094457995240853003689248637933177005413316920010994412192066274012598878929169459427793891009262135633066637264860247857512709978931624771786731799258612979389728073963566749821760733673489109535356354308097809347541494373339066993881898479210386291316143817473410748928096079965058967113744332783763894789415154859248981443050762512383274513711177683468070855091805209240041799313846375150980417026620178301336796410580557344372409409190112849278990284158258563748202756175453977414087674472853059400429872354353760658703246173458206111298003789944469558701199959267879566307432891490110797673651349068113480845532341214233902459247529492160095536979824875136378488966294177190772882478523418787430888392188872285329588118589417816484566913895789872062062857992393306050264372326159869577808324371734653673244475064539441730279336570103703258134187703830493455562380735648851208581269237133644889678464449932478628733071701916835796714530545496551366804696485394050532104968729159472488276228929647860244832055448489865390655894399347683446005834807754620689988726522196267549732188753469716461156838191792861606694031170377516646370571797291887028737637331463914858287296405224037726537419647384127130359907297880775735328494348169468219452462340595159686317400863469796957720599972134011825051893793720362591143581691661715891116059773759381327148047191825412617992644684665801111970508861758378510818142724192237686428846421189144029363268352748844410732342916558789223965260077951762842696759874877405752574753282768011215395540350842732771227224755625727024560383311899870695758206706038299534855869805453125847754953347095952267468446127474389755113124226483112729426917280691162996035164125020289974120777341083740483648375279867650328040750516402389031351057116727153517769282504558150689389541407148601032375020968716277773172766702719579864663326823267917255680461722517561189463098418951965741132676664771891562161362820711603105874127746728556663664375210197378447912481769079787239589408594960901445121885039544799860912445470543412253345536449417148562909995757051805365946564568256483293886433925602659548125663144827268872666338421195869202273080222336018990194466349528894484594594232701562082019842495181760024665759797372271526185505535069727378307606659815128306880161123406885383291062582538799912137053259416669853130672940583914949864321625230378023678695411468769415259087132925868307162958861615444275633803429351136307158324430930649688923109413050517794811902002544540486033594820369593426246942531555203715008569129493494412244513613982075605695532436173509255743283007212610636895997124959720469171145946894259573405983298026252309525928164222995917444145730227493650026130430985812136349241048068296381445202806273857388512787822068446566266242925014831617965350811577469424912420130982455792466771191787002415546479387209103242586510296815896505042108602466124147858130195700032826475506719355277943135380826712274432867685873964653479064150574647994859436043440674231128338871455512869901115713698099645676697381296019258623729308849845528566055311122697272249787988744197577275143884488175758169945023371145373687514162099088567227141285246736476132792503802589786577727353461456637350680514548203652558771586167602940952371306171265753177629222851369272165425429339830427669045899809339368184881578130009741621757172046102120087606605260027317540432162453086300067573713461458312663617711689637373103594458117049735110044059421103901586106698446774071642000564433768454711325090652542212313659747611949490252850328474767771416255020063722783097127172179363752437784109219462163031944929901388551187788557321086076517640823106307215606828725942148722004319538099470622473265663993796604826552077054475489544039357690144992889766902381466444854079155856987971780809888669610916036739164590554582991539899852714148916973489304588372122988752437668844920728562628606877122276511267508420229887697142485079672026866255048074725275545047914041456469269531896235816760691362794523842850154656432003419205384877820414673540703813043430875187368568511872693681979442208237442934251548473993377357929751383934480694090204934874938947042665880605369300008906167552340162915141672718561658963193805991171679250242494861335158578593406693517450005028517033620006873255880577080061013299162849522383113658982610824962416685192332526652088261995682734059653963443945765710426650716841151153217012569678426970290537000877390970549562819257457382009098620109156910111589340235255657540465573092485062334129220371406727207364507997960752102844329930400699432954996143033341545141542251905904768319824169340041545438122626955151693661010531159281396936605969311682592832079085107701844717333488808061865959225027478981911138829677675017753872403890477407978326741745417775039520273334601782812514553803189699747075055502064788506540814185908305015267315820914059386789607143861172907800074443624757549671713342273039890559912178340160846405997655000906075379427603539985881868264500830481830713735455840697035081119557068149752832059778247534225120898992392374923039900542790982571857085470784355973522442874910501503063496044916703432526619586675625374330876014745726521971988486308802912797624398415979631432931247530452313667813309245987732793308623445453829168146954396417211214311998557955765479958463116119926321720806401581104943098800241018643943669960859230226592214678198309557923796408981091730144902093302566339728653925828966256434378446652407441431324799172581082505320109460711603708281418001042968386204813818220754517065808958219086308574534411835533404334912080484122073871112621155172055183083626807314674201081499684272851768963223625401706235493744437324128104114203415402526951318345652941729505214826973914541572163227356968941153749426764683670011328612620291008065022246535653674538192431220013507453992582569595844799935241616373975622792298882238183365571885488508124664232898987776904879786398778823336812603097155666391847596942096609779850157594051061852077169609021075913234407859759525684797732480013837647430764797262927544986213407806360831894213353357163530080842384890145885061737432671471063728350484107092692430017767665425914963563436503611484037741356155855396390480534483272604710019657214313118212939592618960839997275861636242203809132933525234239842955627804553194994678882519693095852054923837042501182682857781221714768379318085068860619342553699568486553886015256864453755157061050363680487879191003355660894643005723431260155859997960396421882377703457967308024815838675145895622129729001553466895083083252429551355711092245471746061260228607489342477764474381848339570878030673759687439512436863395876537614334608575133390442675638665049635222004355942528292920812387165944241188243261740111485014914254663517920008360703508839666950151007005558423618590520762630960206297132611969952042146536827022475242882927361994669605480414349899093246287223228831694111440258623053605063709186359339608828253946820933182723480359355551906688173597272504433021862342102110830832121803213754851900303774561674123057263820468179418367329532785901821382778868760307063730885643519496504003888507433345614878299522138773961005568491691297504300487687029151375216004882107718116454244925281762342412517488341445385801194017727182165486752323955598070405328020191012795250723380242389475331848450621183737330932573707337627917859285227739374955398593938584587303345522866714769992431472317567152947688624948259260942884162589274572559955049016367390174684678057600145657478654838934557976389865331638989840956160269594311190857207811676171384828835492572082719682599220812145335490698624188714383723271913454006567855620785717146928258725751167383776811026387589020289814403814670514791431831804780803340816866320702662299292360201638657109993554128640737162344711474796623457448050830325466441486994762884774741289347192907064440750409365601059223480771849230500515567733048602629709723209705059383063459687006170083287518871592116951536759794038027294429473649899934786405101717499163776042392868202140527223952181487436916113134642858399804861234004340720487285844394749666386341342089919303843500650787361696229559175941065837239497144389522896513349787832995450604616149050699567667445055101522843564706543990879473367651730311373136512403001394829920904244051064373612957672658342169232009582807095764816091311572984652118420291371417616682604313043153683829501799334808313088175229449493988031380917606049284984512032120367615107182322650072456149585145176462277888484924440582509597462681464842527702651621421262207568693232995855027225368324302628050427215232140260989230975511337609249831097282969696616650413968490538469984571407072851335464470149982506176138441630654699300139788821425807096592877218247618805318570168452988594809230999945646324228982511433597762686025471278530210294356816570709935991371359397162380663456226958471291504189515790147680223321958960026971780732369247314033525098025139547431496261408042315647583092540252075473150196205065592560409404633587154423149314659420468877127675600424428856386802222762535963911737101781907825951075811045928941517663898296187561538746157600085687970267141920144258708389733531336201581822603198303967115127177725854811388814841620271675231904727000386192794554615252087077503396274675755115163447127950747734445504278522806869856671553391887609425663740555018245458351835258068783812837719559831545390104534851349783685937684757246404156306662724884543016948385945817008264228633719089685625707413599654318550869892248604852759003938647660101059032801830258203338166011625544804105144930947065693488073498430979278096476822113042392628419166403386256064208396130702568707436909123309946447390564771064791379880531315004486490555344310585513958148119806501145765565833353683221185236446650533543806413038254951112511517466640745447336328797270912237732226927231995571384398637688288602110549392651977971806170195843658538190685040191665132688256633296087862868902070287430505867130921592321107902534891116295450045127962710749140907167608448901727990337478199940066820267534444897581083878360927069876654376341182927919851114249062944424362141058091791177906339159927183799256700519922149708382512596375618383074135795749673009961242601029544672672185009608596082578637349210390134441758982724616566219732413451962508492935152841960669034300216622142345559332553438200235309387023571433559137036629714394420786817751871242324031850933741579515870076290321161301494633186657267684788105335421942192113949782426771415065732554455713655399836630467742342214329630656984906359398615111277288646202258524685298274762344780465747524305862878679100280900423448290614482703817077033934372721915871058811437393364101216907127347173094234641013472741304549341742623074052798806990334700441904002798019775802376520477657186575318247032278889357653515712800394308116229433307016626633711920441788022142919928166177183856054838637589192542100398495925316976782980000236124319360042034436837299128465305706592971514624182253712387036626120971933694933027926558402947347785004189600224948778193528677015127457272930382357028626736719803672297038901877792527459484116893873254665668481085110890313218497793897915191773628255065057169950260752085280050753061128753612833104712529685015105162408070425701083091061794822848072148991365526659568538435632817344020733605521870732872469217344530713925478894161491959322727757352641686688629764739204807966807762496467795479914995849237755733948606513676890580331233827063572548413520137467157656649741674766250906436529677761004061747444637049137217650430085054233197833613029919625654990485393523500243738082670081284883646749080813047006017205589336614232914569076304505028741193540741880465294460494163648183039704037826029082178768524356196659768612971129813271349030598238672588651055323930517868417575847067833761817110160610749617082632064345404337649739973414916396086006111710878854366283800970447030078985791737371318155255704927125872111538135909223303341088164163215383048231419612467596322931486801930636351299450985454299656845219987857210433699690791220508583266288001979112630769632036036192404704403618061749831000592487328948231305426760055052455054893553617289109127040339159803213573511108927540206904491439842177778380606466515588618798730369377465702826134688795970080921140400015485284057676653193541613212526750914663355357180914409739717654518589934782511874588858351906426031147873910816193643782801654786814229802874965963652072806749271957768572660890058285812768636935262236869135462497402570980050277552746365823954767169370121958679168675953309721446720668165854876106394305272018914599080226850372713037271051094321398230964773190761899155158425479274146522017722975894795948361287654377107913045432351247583479731703273415737507020003042712819413184020401272923945177189115836685313211268706578805924823231883562885178435345402287287306756226896988187992262561026508840449172727921368918574972673087642870219109187586763759803081031729442233327798863087395289728871519975443358694009565352600161841954625777541655345348179599772352134600924459873464302904612895984132221870607615766633300659577835153184610720560445959418537303738465004135736924507727293758776337192702366690718832835042618573039565347418082153542895329594028199125093250368056269965168770442900832735967531512226835089411374149034939233353967232172824114839841415680445601188962662140126651980552348513995633490164798500643155022173350961619803920075519927261897408859880696630080840689227282452821129070152481023398609272228775168931391293169219923585263981266939610083553085949137707603095372487995210643958078107359122526969140606580971797241325466292413087453376006413849300805457857668325836094148917095862537822555978785382177328840486398617861086157372820914884228234050122852894013899510321825151210084280005436266266283662299463988290288503549417436618181110912016233688026578839757127822915048467965261837873749208222432036419981479380843591760145128212968729200623029924692215057725580737674719358599868983197104955248527742205969125135224470233770408856562679526901385421658567522151618379392965426615965861621820177353431663789693844015693259476128589979203093341058217961781479942513767807284340277553378685953791327660734926543906091668941147240093679702482192354436703434155428329022193968079919406026228123146642337835895236522538099760512559949625510540239024479030065868645184769029170516109356806167371810388319751400495039829748370625517788486526080061096596843905917231502291554402739365310230332605258025789627805834113702089600691597449095723128658039966458795174136924744654335904265688715330103075448593029953378105303577846980749298015739309318902748840386929628467847653903614964463172710389013804222534811239965425445148426020669533173549572363528705507432829793966610387424551278899408114437290957014203113411054839936902110121339983667661011128382058019509776030903048905266789856549859647963378694976351747227165426167379772813421032233939244742446504364304048250142531226780505091959713124667897362164047400682658565878659548684332235404156134886677334111434580645933528574323027427075370522515595832242025035055801204388618761159763257131684261801002344897242042246876796216553737968349567128078474038048204473719364872990417514174142435372960715816723367407544555888817928353814715075682626524302504490966179708452089324978421301346335843378258535227572135302164036082281292699848958368530450889821984427076581156820337274229709826088424900686855011257140380714121840735427679729660929193226844040498219390568407492446017167552519137893886830106507619217706409184489045146733434500500908191887941800044732300247103851285325222185841336622020741152171171107905885123456343317768445439066003618032972558570559318801961537435737829252596461680233287103221849613107639761873922571646213385568112537620910615312232723576341436467806313100755769375531616495448377671056746154092057182135424048524602086935459381244964227886311416492726505187566607823965195184540617162852464238947064269990370919916050188952829764600959634215409008443756318645701048040157080168143134823971590415251111749469477738744607591454414575549973068755519709761245563421570208771505475568387293934339122779029370937973700231090032392042950018639263003119340140049601631982519402737514569159717598021454066166873561929658698769802615343994641688289019925166670379334286627054578697189021778035112501117935349137257136206392275475886854666996264755867843948311515913884473347716800014377339569549897212377506061658141735010198098104887872968409153812866823415297535407572481240314780885732971329158081799753672242900861238776717254388210221316185036785704513455303382522293270793370969636267253519690031234858034842445434579658979460435336769051658406213534461117172187005918720974635550165966278569964549884439993038351784990708088504300392177615496773646738534041348517549086032453253222183814626478754559076832918615675926593068734153464959676950765352116122636544353320666778942881486983433943047885519824856867940952880458727310697745696133967979398196809609261658709762782581523328331141405282510481701288412280292193035454404807152688120650710969524073192613905499755176698862266835037231722692496813665760379971893885052805904092443523889485755415035964078651760427945735804761520021591165683283454111795669739565618291739052198395665597393546898982437244849097235531883941666116438688437318429090970672004143285868377758887999899788788659434633140260314413659638908026870359815416550616864490286421197411170234816916143747068599153800590968750882847248762114892921688508405321147249720907930171169015318041485549624090155288684490751970389037117826312472055073270536769478267854237268336720781132156307219141309120603388570180210822983975592072045653195420026603890497385281663807533111909755216518959502253592368502923068858750860377467103699446321992437996440586341006329094010889794072851150960563444345657529068644186382049652396304039036585090420558357159377213845811947302558111270737611771536964701889620645267361212934948086234756464358044441117897652096287294837682484036141278804965707710777732223744849755075430684556606407824732690795080198987411448400417146516512228528233678310597951675903350497793845496600848251979781374337929497451608509768705171230157376895433989698571602811378193615383591219540035810189562349902354475569249684758155890003032717826952651277547981887876249364420129536556795783788368814443473675549686584667480569886257262126105903807972210787096705343181006950432274758247600747648986333272214064981085013991324455227424307768574370853852880861196193780709179003076231246518432507037749609209841553299479695865929117767625131083236024677927204685292733417116487416781268672360529240552424271969074700467718397335052460877673979321365799677795027163865439726054213558674312669434169741084447402798922171398294433080269446035626665379096813782189201851517222061399236166179454566657727922030796440914202283658214725043916039844542045555891347133189115548796329390119581182365409361260586909496629245312364995529064631729179676464699316944161427612633088731549448500447471839630145150122328059163393688308182920358632106438261468583780302710567396883295673300252958206659507685130032060250038273107507901003201151346626724062227578191368711509363247327306499257215334899298484657852790160834555232085071023827610982874342782381557490574994007124003681987965174885222596884574240416722340367126418665519412686545292167434464345918702354104650764046645099398720682029613722981795913029787570487802646831892352420144730946455438966035000071349342152770911687913373123903603045741327230756993780192219357831318936199428686054990000057336567064832691405375222803723259022292788191254131458710876212161186966278236128005295626118464710781683901765509053127872554398451996442583728651951305755134230300858149126822090994560844328823787622956930042909806011667287291040227211610575866261369261607305905839035280338169773189934180496049403882286817591397754902744639857572874853433460314949537616454545297218307101841546806347062133945381970409111746951164406033352119799952280008960280232972089489936379490021164640902025552585777317704760630820187546756776103032308639972284143614047366240261176867433599259218314688141979918204128154033785902004496081516713083312053926318086385630979417700889583649367601110481790325832032434967376407860359928571961878520562646767720983575835505161783112351209212999560672421309676259741307598053053553521648065268523008223434944628825475919940084108647233282412719329709863923442127856078143590177270082936484535673317831399033920826776847104989235739612148830249820776893872801876060217968571421240257648558055490207504862103582618939496002444572178147630746586536303767484787114180077287503576939539360509858607049659537207859894212968018537203667773046296330035988957029549405081004216801497479745060469338265245485731196224435651027218321588512994180459665453039965901087826321320434743856701435463989265350922647150908408413981729021721191539420194850092153795968730187288681455653065396880458395484619227724263304431171286029311129900250106839310167663216830982336444261373459064580373722994312117943916048386982088683148279677431698367327459611748203276266467567802602507988612784444920901962335200707579838462297690368703064176586494554306109651451264720741446289953344916252430228666631611103105105132521664442302500371661612460414279332936067432986224078460556398353803882703601503079480655190380991953261536044055562486580106204271607739338871052458558146876699853148050694944012233043884333079840125577924787708622069932082104163740250134593072890530273080206063830845891547151677433313526342348651911089735144543871261720169978891741286541074170509324276635706893294864837456703203143146582424420318919573827299364771111537795049288846152976810039651716611340908098118644626794268911577006533948146258011814789775525505146155746483295290867815547253498757333752649150171144504039170145999856550185464158965926712725162890983862120181607061226299276120443876455943950398415439178654394983245398786963598527855242466227370353060897679208643062632441543386397406886998339634242014093086859171119906795310367471467098319463456148979018018699749705975033015267464656956054557131158944900299574243246065098222984678604047158269568282338928693690339666918685836546246534188562611880446631431865070393524419293161981974630814098929802057698945881113095164257239897865538139149778737862285594724092966594532951624525728669843256414302951495686745936962618620388616533620619345238504438952940476099744171667288701234775058343228567909000553161238132803670283258170795711378683985792784370088463082357938874367446288139395559323172348378225826871170508267150524797349554106400585729330222031643670620860218248854196633692697579725412677446265518795474271068207497685102803080872143202599841497902170318626878095344249566420723705211530281174053076587079083897924799228703278413396604445351480889993239548483265254082165072016719015038831179698976182972737467534172016850296891665184025614431700733398503729905819763504947594764516373927667981074882082121937449121659069266457942447615474361601071857049227680944746470603748145926587586849330608062411094651104232882890019452876878797404479700363773926225373736550882297930728667745794893145755687318165250740950507743299323670013257735894480179599979252098879319899279849284336653544258373986893313858916995330715302145593103163038243538114761696972656862134812024482998225110763589994271616596061418909233583143047885775296846649201913824035334728550982011093022482720584355222114550479071938405328747369059086221630533278843693120517847620221310196579162281429677323170413298359053328707565171334745978616407164162810144197630624654828929828515477249616309705852559720113548637034335979598833570186386951030643341334411508970812123281185107864136231679271187012579429675052847217946922448777568720678641490208109993865078968678602289245726266473932395796579711451805941309786978110761800873588340022296057877298412623263956678163591235304584764975601581207796684902473402786937967217293224732696868941556609768023147783583313360380656509199921383575378680075752751130843836555989585166570354380361681084641999613484667294336794054252042340217887681519850613256403762539052741736861899600945444888690149630538634305921774954896584740782168134340693200448942757103645508206011872012597158672593369687094922019012181655740429325782339589658328292430743739290562767389603840585361859214101312827869646222177760236520211094889620343031290500786074003664181786145007816855835599611787732518940473547188329707650114904319310378980085221594649454838645594231881776570250282405659945489755065784271292071590740110568012987232973704332689298206835820431892884075559531554248457210510089454653215091715546775929718368167761678896681238151630211358735656299912269807784277123800744222412641226526267557062650337389000783005535558357752785555841095736563344907806023250177758606805525081631236444778698165957938563824638364239080564810671968802546401838041487577469597569402796452060124327506498444409732771734703703810634861674729775791470152467793748332600989324263976635182147721529892124945727324771287430775975915848793032314067440348256976953294231867714107637143395073373291241479558679062565085683418789238810213240174645439876154762037841340480192016579398482294906579850844965612605013114697405407772437606846035022763204170196989534845828165265171483714263522587733804026322647250856944989862149007653239391107608479454371349268190516404603418996123482989323627618987643976772619111932955644809864535295181906403195514294871977385541941678410083311614815186434855375382980104923697153448563101144399203319400354007008018691660451921662923985657499094819321481385481425594602256121775138653826623701910134683028808001001419059075713395293465777241504418374192633653451554194294540244702388805709260995535457475253228726570981282955530251908333670085360831267660059310582966931749100503630040248371554124251560795389915179979463502896519811084824378430301958998726618791556717892074471322915729794256302895133548862704343651780791800998861655773316555239432717541752795248297262727595557759895639650608198225880369710882915351965057590530190265408872691198904436827452768162761892361260385663231616840594077762824944507431146354440075000135772525381352655584862172849419545086889919367988484879216018957471102757979913370261040768290182128819649807708320288150792351259100543339565064524047841255734668786248384838775314116744420270662186621240482045988584575680347584195099350050160422174147573886100747498870663778449541747696372584525441881747679223016758745617528878689236054615211190261058019925618065333086895340158818299881478640994170850030281877624277588112350768981216979361808721753671206140118496435824154006900895250133681297795109933574733813921925951124852632689886348036700978200076534268766393444902566555270611800903735796142491241960100409810240503480239574206458042518864002403278003339021879105127930363420265972026008999904651683941412872510259836865348240567454823318018716910539255312094179098577070004634397588438330276324921848845310904648272171143286689293311833769099956090023036029134578870712224477202291159962369390827806245750203311200935030946952933315298204228144508683383891731014649886652177209543221739946933662345678436203528430704192278279298142963605388994442059575901469394184445063696339015596558065509469275428940406630080791781036900806955595357362603154363159113772976165234682328921949634607111895157470812721566695813619362076739512357641918489142818827920878924335658733432133700409621827112540783300037940189756449723745549006657266870749871926519280009151884588499034445659749056862928505085612823439353890014553565606674762941467754904841481120638424411650950847880313182703374877989720629004459814646819741014198550839682343366533861461084987477035435991402681318896354779478161698315813189264995291622307395681533034664082046655150801920956019779333369032492914596525306420350122832752599406240004535544648709099436229412428273872974416704808372467827665017591344549213288421987385033516194381804658872658034634757061941196729414102480292505583654358420633353917625908003487400209749392517213612977992303236787865979138672358818627359961907678026173811248571029670904334489726040515793365136687317179632637509421159107395622506807051530869580747782755531308724659704999827198136263743299509385863154925873382395260597099612145861520425994665597752963091693683105387966214999830932363655395487063555139971558582209767602545818330854306438361974376648797041471900382749910785735400692492314759173414970338789401027160182518332809766263707324614333626920600333468490923296722080622560350429320039688603685489495608429175332891666048427526015522858891859980419248421422990175541333962023550584492271562404817031331001247648861628713427643416778122780598482602413138934448223778059891896283098073575923369586838488554906636431868125292273527863318878902290553556387566934821608996253499521242280337384081363923229120853234450058219820161990004585857787953670365485615434085840250120136618714881731184056149474942902057024430421583148747632083054284443547166404271217838643229125140314839986485397360859358758251791558805647584527124248690759944995054553350868570427392426669542888409348298560954475202419254304265530571033064037601833608600740642002556524771467362047973787020641147727739583882591630946310158634578846168073049031912284175361668428646088452038489597515746338910290083990008457163483654378360516731951861496003980121957528373553518060844164041591499169795290862128363276121886274264219592829775768800577878161583744097445098627526467300326811448840398705721027428917397824361177236405076534115533984313475065114816720426119233845578615926902852340472710282017405538974410428540259564449228236106325385791726793261994418353495907212331843281675095015042103299941599417547132601249321991970879730590952135582695920352912376535980322891447577888860854973074987647869039067675171461710852806587076656758239970464137924039171921890635732788429352953357351547401001715662676439558658632745555818951045659505364544223465545106155644135748661053728231071725677517633795525483336698423070451844639908023003759514648631739281633914592960480171414047222623931592828307770878780370840850655892703900594959422513883108214007177354393837060635215623965898479549167150969338778651048957988604420021847208643359704949371290979993562106089906500539927530612768053773775768231967284613711660039848412632953083334723740111722666099468635886147169704258780757396106340174584271590232584278529304351355329146843318811540342006352253568043099072474156466416987008912522278145639696161436805928173383890723157826669819230065146094855831922465464041671322521414386276073875802418709826608484735423994566461119143560137909780252627772118155863103303427088543852117942637935262818001228186218237293888256034894568811335562612828551735713299525676170273272053040892887098364968354030498166439358629982126732114724696159307980356325563106034280583709618139361432824290799775534075550860252408435065568022824233659848944819429938115736560753675764717622155046435426794078582883376192860173991796485659632998046385333956678804907787360891377597084004090680139745789139717376423454871325577209167192485980350601651624623788925960832610088370581571772398649654280124357771346984418079720925370228303798482974968669710830715484819795260358395186860393072354904213246748431564265952048921726584433916605456227954000268498079605855423288867946852734050224445272898106682634319312072631797643543898016311019538563638172440437463395530038309991126265272870623979143058709985260251288591894642392382148358594337988662222206429097325569738078177917675538420251909426173377968576080920924564171061216725088227634976809305847699092439244819631564728898875709122622474490676272114612236723176817778285376404861853995044478511289469086868291459010770750975008669942080817883509169295956548134850901872428225958895786048847365325897735101583386301388256960903520876168838837571763888861788331110367144639608351391861677459258885499550214252064942140495307591321561943668221977537015030805633206707781991914363422507547808586049843119690679320856541868688651870614923133170245771031191773828800709591682733227426121565874984002704760880904166112483469139651805792230277604381826210001753983446665102962180216580972012318149166333184564433466615383128317545999293735563113353141442591570282968810885135109674637366235720225554280124402732813634103455336847784861443524980180526036730287037288527913153890624163091909774105273688190633525895787743758301984603854958171768165615774089537435234341001690227631155866294417063334629956184055559321482886055243892785560616560348938201057662144025415484566141906986887739424952122859406641261900185340411503534945900647876759267451792611725479512017872916906609508238632152921006122601720135035447099160663052008596261624594527443347450513312986898197806691624476201660878099588925521320494455929745010550868586988172717333094022532685558659685171794025091072320780577440979579693447329000131229260372839164808793172933271524503927855087119791211463414719904936872836266199448966150366298748148362596433086311535362186665831665030348091506884337629638789722357903580801559893848169722216898496506795825515925225601404080000318366335215099306237579995360939767356840376623321497789560231398461243700586899661022431127864590089056854794482609869589487470170541851814694978418655477476804620485325657793674067099151197275417907199866309332391689341175491696259667281253793773197811723305286415348966665106274674345437075128002457899186563611976737226015228136934796522182007931179842517993634535417629945663415070874965036585063905167359020596348446360148111380458441191378482178086122081045746642010751424324011007488713734087904733381119788474492332769660707319459894476351943980713355467196919255756555494182140422877905740224955496472896737054654008320840962497493714984065850179314272825424742170311364303615452953977348455016990818179469197245839286863226392020749200288843677968957716744835628877995938838382957202513622835316698095711242824898918778351457659659731837053082377161635157646694276150497605760691096558486451231309685706885186212894648294042259758927902600221857145895668687026812470006866994766228946908060380193377089512056874321025416429340218126783644119981607408969361742808056206446230123822998645514638967950128077396419598565743397784622587815849949145505037651306209189276513933295436929395115235921470041420701498260703726826769089236824633951587605489729688680842552316519887739942904609855998737296768410321857344016199083368341878191336734232902891788415104222467828539608382720297183530083610364677948648194269507231874419604435850955852994375250138034313796255128789334127740716012567863709301068880478146048211630538706190858741794095373586288458478613773528242147182080065021075667913546343231825048631279704573950436241147147649063082150427308075853622556661176108249701207739168620944307159679788652909869972403499259904659597285815684332305583272809132919505128153670384402901100120916037481613486693352247281942870518404633152730386335654337331394390798050224305715001909667158808011870891412111124710592159445974323187219646597839364635656923761391780244346288387179621052736268922682504380705531533154991930176184467485653425787109798717441990019361351552696639047244236924164392025312709986385185075425157534666188441841505490842964234290278725375218474526848450026747011985184340789404165716802057856785275654911264054527792430199490003386595337267129982480090921902268339371033212404275912568782614142146906240520052226924337528429410225818767872773882891270192168582016300331575167802101112664852125362906347166256516180575378102456641357573517577617772576565105567557721022425004817905348332538291720937317786299581822005543974587790018786359514339512719602688561399239234024980010474605394502839813603740659338005008498524808201975153781983364405524889724959768051290739396027894643962613874336875768507558651722855090626256699422646647955649483253569447363339443272446998752640360768870421700151204545757636765336661349402390890724764566735290531637646579318996066152819514723299391065410976954374556891340720623672059651060283248138432285643392340211793671575655017532232948765781017070902634551686981368340045088110299981295224075953937716238964099311194488452701397989786257252568582369346320557113540900888397784906056775328086549566014664469987791586705034848865499832337602182527783016386536054757670373621913411653572753923937467497484494159898541888747066361538428976539950979419672330626290188592702871420748240149904058092017339537714380594258427261168292447428906067549190136820462759093284454073554594764163025779320245884484320693106508106781844294654383170868077497504486290062174942080621166665401216380570652314047812126898801520933839555800290444520596101086674924062005319498554750645568030275943889785674198516039343836798818218689642022859337743980035888790035528197542944714091063236867374423352004647803003329662367945488501585391905816468849303439799822790726830417418507624502694036560084207732361986804101437575215920899037126507911085904981915627929483690907659965980923090104598711819588174455625930743660806191163574887736936120500623990453656913630891478800599534074423079350861515839282798004718097867808331545295785031844394828498239430703957796127380017036680503023190713144734552369783334199143511858826841598837837067312296088471624033653993125969953894938925995597623631979420663240355808615742303132439466053091871040074560404036866142608448292881367007844519083245764271437375450572620418294093582280536800997703801514239750909572890457699627288469111568297185198473797683598644940523409676181187337414689811657232671387480174583319121063657354662545626450483558067340216706281068876147124820975181409256446711715374345967430962114442933433899646431525866672273307195524473664295803454289305859215664460339541890017470837228302472387841808252627721611903748863787367938538490619959277488268435308203332423312633401439890048688108938263902118977974445614613708476263693968060675399044759686958600160172157720570956118164508898062236392124312916236019552386232993739899346383588835563751239230281177054334158102948317905822746194504492066897897028330454266333237699021839351564056204649974825481067024341859613111246707103491682760991942227759247360149696021184722696285652711057583297851074311098401586944237046180686187276684157836555886847137213933180246441821722071026003095030046578890752434033926873139786597198060840010500698844661334279944424090046758154093376927058597279391806233687269126236417940166337944680998328863578419575332230888899785239828742003205213032351439935589559563613594784796755272948452413508324706508533993643366986195931008718421384745873141290163017983044296290818343892328692651242416807239534606648749800177304458374422066442474894936454272813423076720875238712672889955350841706832541790892874252670454645998110792469462842875279287799985067500606123684284748369267846415438738888414083164644051533032521658569385816429559632029836313048656786037684657192266076180107514897393877716243430936245147933788367457050388582892014726058752923722498453245976728287782347870851612699156888158257487838400492235792863821957352313978338401268835274098593273046510210523511538854713056245811937174649475581514992318793723408821427649372708407814700631358100237358478660721331210547564855470549628454973037877348868112349742721924311733680183596672981673259101052068689395279892227655293469139560573994297062415190925915234748399038561727514608330557614457986492356554232371260591063039916607456406243327473043871530048825957793323272948169186961574728698907189343698747461125090745346713217137133118278515051645929380061427577137416497197537285456534337285994812212441599629682659183184688840218432880308050536463743256771853944529168994931212205497570996076525054375664984550469477073646991497979094489439113487887203509237442733766855261615236831912711553851338258944369346427621835946173458364543128692263009887597133518577742665088057932262514748713722574947820444262695090548921663899014141931320841098299614489043523783982551185219882274503813344857004799007389135737924619881888745719522413620934032817809287970111754712795417585850613004183679420890046616737340204080622345345484001845680095168537953228418879954913065140630928874476004751560112159614434182684783619255877174531645023337529433624929704069125093396881459069273498457109703423951829946759735771196835517467767357042227303173625332832522973201131515483862785309648758992966109212974877717071412815531832016314456082211400831873082222166810248580407718248561980951815854566004655947875334198857070999841410600264809101528467992296796176089228922456682023826727977624225734646745071047424161617800517849695289790201359913323746832898544684180890847713525674648936974731210397198510380681602768588388700788824611028823489016854464948197673850856331540319526689740500168627413742254794710715181906253103974755856018051592865949196255526643953323411379968321993580490580159239755246164656758640604167768004128184670881421993573858992166497870095979807469936852231602933467904478817849754272606381750794581094632925566381459066186257875238609772606471948474552684593818279606305880850797510458191310357201831245678179052513535651600684414739622789176602357494682072354424967301004714791970449871777519625564076373274817749773217415958204918923070259219353150691776453495528362158477307551092457450749874176575497424693264088736690763583721765288675136924541442739279450824596136193967651834375212282131556779892705491515589050845115806444965845443608800809299771109168260341581092474636623363532004649769945974291511060498050219711441277395066966510070001615503919792368609498036553516291718597440898436096087029988651146668925799938875990567470583873574612242541503795521088241203147595884259444914601559364807597045471416721462386323273272733198740193540129456673504399841865953146110193215139204176964278004943609389995469487177556232889103832902886274632009508399059212399130194148276464466531964425811567834091813037292265481474374146795105250133086539020256690777245916019531581396213333221953955157889105988978295905798682987671993352845929089379887652784128531778240742249760423515903672565313840653668726908246354403011664956342729465163459917502320882629806345157120705921286691629028410053808882385369983502048899423281382078629337742616099061948696671866258399402602736779721615737639006270956917419510877789014417972186724598903386298754351536453068734721555179388474531995640882406182012276445177106149243951415096335542507210434669735690527605384149928949280107857052288345001775554975957047571370628244333300075177055425929977279630831804935718114204565400384668609200142596196815426252861981033142835113120817571095420854318154930518430200504484711349505353022088321604436025396607006107921680521418951557701928636058946781253559850859514402809612678293555794588603165371111788198301301021691133228700988447456061721453551490336569460438017553195229957722822751554889157122099284801767432170390853009500289591561611152741754627905657094795348642391195203952666959027091781904444159290820163529794013546679312728968974390532455764997028407279684395883903353609112747809762948014275594024774741280938172191782217862534260645129276815312626268554577406783203971082955111066719490298670076196809322713328358311870828785224732686817417538485680303360838684047345714093767486308269062876635355255969324143832505250108945251867008816349644627134790190596114338914089456635095584866958933355225701518742060492755161975436911398400718874497302749937177105103757883309106312608464203602250392321730113148502782668976523696683014789129242314764413591813732375704963030847092825352105354427877892182036860385387258314316850666124450166552922995641661486162048331024331599887100329380847303614085602445294839947210360091869650719082779963242420138037162972357884917572082354386007809184255878338852546074406867508120242153421601565777619515937280760410329860381760561856281633496861774798726160147339544901262458269410772633687050124301484246076922972129023853564467784241634288487493423166721795391203548878453940885293550251481765481893548832713278130263095302776396970186780809740949198479074213689906693230915318591521618300123797207791195907220264183351324051874576935815471210978364313512838289651062424763305202331923585278480877870228057402982968763334580039384229120958207945928391153341985999863409582932358340052193619994634422446369981330885943978400279463900172453454308820371626972855741047224620723913687978960895418645874718719813571640487119124097145109057174089886432123889366776950241624809903584066335822908661131620154745853576063867036688805049820292984834926855354299384292916592732936686953017328878870167645545124259691492752110810936274639258182863325411154968639412490762752333414755804784592270080507177601752728486753397465097201170150544738942801185957811628654090096258088092549913651259799208701898163508880853836535639681196690556935410440789044084645285702684368636538862550505098510698396241311101052462946003521812035769481373718257251154047187535597894218021209637290090229313155513441114980644201913132546574434083635308471730327017114961039744902390193191421583442775998400223292846414219828207478241758121471237840721040505903140702977610506399947285079258279717329591759809391583909293816196182301044730581825608199210036484354307362534269313615801199213901005850355841704891785819935413796403846793436059367447616221829008833039152761347505476718714141402316853820312767245885145274803939125379526041302301354885892777569833284682455977207992955847081376807301040852581312377176720992082409739072923285497582134743077249383156405922307813720138584822288985368225323545663829634522413854186386263276415110242462250615289109541995104852386058468813109334579528854621400542984323489724594494358923729218829617594571910500314304422484854127383233450265250646386744217766180000707361022563070239662835753438987632326628975444306464483519522957811615043844599546670573635675713962185239942537557600275936138992438787250404416397484330312894643085992388432261004155080044925846253962541249913393538235642388658131077946164253147825653228864414391724314622788806598226324238992444070718287885761325394395424642361364272050616147936490241290654448495041276053864898228205085179853922966434891690234039424018564121236231723628589981182515767906585497351031344268315690597811275501912712693923178014986855245880147712789563070897292768998477649273220033850956676449192295820258830306490975128754271795787890401392413624578658497160334222231631712597550698935909485634225940245127634150816898521455115158264655495621963059446941646383402793898842940472622418600713545933357890419192272400267970852181315655079539473273018357795938239225862670561494619925650463469762103632954207921122987178972142124354311539221925167038852010862541316273232689768324792426740129155124003168918335917697813066738923688922583031895642533825569303117365677044970852712975785687282411720221266969099662835130957243221199922918086271791681436306790755705708168729237647071661623766763253682988947383311876102924574109351261311044615015756600443694544278682567321821546068875274053784544058825186077684666724267555341845898055595231785172209089115785945529180761526171077074858920175456618617002888264892238255934037174160369643671729097350337639389204406614316068273430612630114222674187526689220884022386709242371220449645672130207635997808355611898806250540894748868994726545065788342098588352876948782398133719544745571209822758739559319727468591568192929977941292796899680626057610231909372327345409560558310271865794363700192203694068276599800305582586240441471418854583587367805218310864295626138810054175917628177455561086659574484185912876318136427125174211910566168862761933571567303016543399727534050760338526001507006074298031189449156409964000934687500786723931446090692995166299433182600501075942537353872778681975822829033696559957540605269257166276648074579326043693825810941541011607932290878935984826357667080482971379738789790770260025000497468036292405804382319893822865696916010289758304665871148012263290451881618118212931007380901976357864448585109560146790661312947367988720682938955208449916339156891805021538896598323641177627787134237298010612672267637095305749807225559929094094311089202931073197761487262737738366048151656614530653469470418553535896101903634990324012252819765360050392714281054921405883758629611399919059487885139088973327970514627477128871170088546761466067626115606351983857621207737694200638874321203697947596594537677058568207796467061919743391918458202826779696978963808392407881144090480731118185098618297735966683568327307130037063912664690374506538686503520452676484914485585871566862837584339243711884790172138552279340650096554609662801758537510808529873403108937772030784222538382124283405065546748074985705637979388117281548947539344231027929576809685130451661395895086944274252107137770805468264436454583964049056635430621675240483522665477793893496576057909159718552070969562557142395984239125972628893302595788462182592636203502124581985113065390597090775759722559128912717938620261879262040395706375117000101991106752988107183337716102541430812414397823569125933936705502672446045642685568858507844332925812289331527664821810775330281498453704823153760492415488858044058162926543778569597898091793829565072071060648346444325831041241991319332335699402542468314876771346986141359138051005214760666258125001433609104238008498387251793628705509909450968954484698856958157475239200777818635490709777075517918093344931665976588848470389623013170584991367669709775906106124321921772380522303972623630321679120238452023361185907010370058622793045474051720515160518320669840017127561403402981561741852598720078430144150383075750622480277630254895545475945301673041936075318913247690836679588932005623758177268326247197419563372791650551997644578261989076188698064022955593161012814205404816125341192289103366042347600144842929092743585694995635852220459146716143022644235176262522841392748362396583830440868987510677504346061434678396966576152518496613317850741143594857160011389342224007779876920378670598457913425926330210940258649021427542170091064997815285954965240600458595183725670872625322054944159144929869829885903040129123294887918531635264646936174419639698148370189626010180362308718312695164959490968567020818782576682999397503677261893241369301925612189249627669912058152042737943661545341358908284164736370676731508952821355479732416459014988008177540834133276285885687123093748476057987218534759406593243346429343144314662257841213641258437990804679476257257514201743668180151710574328258630215191886440031306211097299665628581829960566322745225897087437304394653405639037510370849445426766930657087275365034612676037904484692113397285723769663397735042183162312279026032191591307625605020556226002304027086806803473361160912659227124762936131514175097318079478970366442743193524279961338553308436170574845241004897057495799616015187515912381298810151026578712699434495532880786728480196164061261080631087988298312814772457772036376961780687865576985095595493016893317106860484392211069011463029333639615960444222984887655487480952630714911103390672094006857912507702044548902755342366177131348915390183586601031273874912401002341542867526790611091001859798981141005330987986363674993271375856019079671996910436732696376895329149506104783363019778681836203695119539867166825286736013100848846701292813006721532404553847007809027587945605794793859731285572870862411752138771859332148007082263309276695913802941919197995216546410086369889882424801938595949407084017795190559693557230702255523697706996644603557903065607430293505031175334177642274303339766871736416915389535446352126537388062826111408228140090669826450887858683688148937603572083543269259871843709462420038362806362130520358983921117923455449044727065789315150981497467549090525071407930371073567141587299002412002528883118178460111086673015941272669326224232730518477368155635978244053161900457192034740791965247992245237487375157262201539647735756555908178713298364197584308126304426309452246702535802608699978767576109093949005344932536770095040677278332410634149930372081958571110591317365415944780821338222755128686831337077850646365430852613346106691804340258779785322193144509605762370225895758453033357931614398875324378561992669155550311940220230176168750167962894250613492637636403098229192867461992958457708321093449690894460201039569885749584015185815022488834860638186151911580850985689959249493542483563995657727978295237196626237632580311008300258277283005115669736210936847384953050592777142741465308193117048522025764226603309586166818031821323916243771755337736200878520468627053256182559405813112942650269891385238751278569960597667242138518100915142663654856131886897885722901488261744271961504625231777259497314684252900445399350265099117639912596720730042719539833091345428806707009398117891182232439152330858702232618088506094998231009890650413861295009588815636516061523430313497935337744089467724820564866907289073287962458818811461528069613308028704442266244322372668039445150254564655839630855025251171389934370585030389764163618657232356985803512918150972948298140586992361067222064904273937930133501942966887117928002180438866678066152628285204909440534891767571443640853692367674734090053877936268240154506456357520228712289226184965993138144680615174269948983955619425250283263372018829433964167829108256286595406410243150683474015309323024287802772466283064956119981439610585511932548222942820426392017069172575076603542942514642593704161801540380441545687284304573919538090050691806264562997784486778380599156847795132089355055964067203434449717053217925460828621587867317114558362799895337198321615280540775871892867913676559870061724310313561783929510067029869575552224519586306699721084377900210816283970750363147862120386612573091189015625406596573066875867728897904886739579210569933154692826219403327746917872100623530827681871746555119494860208585633889240871478694832376771307568339212785460972469525904114208833427775022462981032519315325458841742250989921609853961676145495726480644311499787261667974742531370773222744064636758075042574107092502666107861056650011429878420134383893482302642068819697835306444463077945974190541796734543390811678688602463641539627833926575966539442957515397551451066309522641397459131003220008979573224880631075290506395269991016344180113096514536034785770748633427664429705376390182215610055176260420339882949629293633531445470860340127661173607121140582655303042487699393580949251427231958052381659378822294286059395128248473059186420185771705857585281144125885773359453430142763283624317822903276722356741891210545893072990041530625560932483554800036170687357770833488676055660311004362080211959203746090837913115336299954744346647844060380195489900911376174142184921284685097671318659394160764638183374418434141198766873889638537632935250811823922345143725950539941384673492444310922040303756733495366631457805001946451028470566481697602017471275712291092330917672161937964012575715354295276625375146260763619323523005554492803252761678006360631327874770002235241146276105638700888292889729272127370763383652163926951624417225266308367111400622157027503630842500836443177163847718313356717384124577677662021494561813265048241029644906994456036639665675343094090370878806079715809993680940032528922104352056360375041633549607235832862954105255063217554808452471501845103901161684738949686250997555403352713572404657435341587928804960028116992990801940551765105422236240687143743607897360569194091772208127100409003877924548953593195048956325484413856360793185523321241688929402034644376707933069461168562005634897198436532056009871883838476634353024163780381129583315530835685385563647412386520451872626195793962067098763503672894991589936722805994458502174807259642004430067714690037216978557628386023459908276202987637543269920611403133069136104905587948672687222866804550814413487358691479866784791879116872636909017365077401330856924780042886322094133205643728069678108323551355968941834492702852130183872875270155535741110542019030635966976785247461947514387026911658715462563745308844844506206374821819474714828994526718801319836680195896862543562435623007606196694660683220244507026021331901847714087755612343626262386085746724168111141511289970560936744185633046551648662225048762322158230910303879093323558615551495553126319565075062674644235770072947581080993513763628056952648224215127344770489996834208835363371857390048435098518291543240220499985416648693912649533499930319389210699151458316455211749370109715757362138801828916636414503839680798642092758119246627956353000903977191727207879820208855995061132605135601312749661739327802127056583864345861761426818069789896816769809228816926578711071570670229723641591801998465857861162656671709912202423821545705705902918738185626570247218095149273878766226902352656297206423958011448257520532874123269326525557992189414421654251021712272118330367715782478387965437181016795834214129461029748263135367410274535902512035775938262642038322085802149327395752621397690309118541943597982151391556172015265401291075258893259309887697998601344348100085325460961620873927508243070967918437027034919853925898527175274648829678155699049726141687852672042722956794189510469484983273448368225349517931474253480609713985571586283900239700253679126528095339921904020405601240542934376064552937235697301626506468339780653950396988991719715746729400653261292250416661549164186453235491597439883394519083483450537047228050034596593594997569684659607448608586674126302497501590970808719863676768165760194784219340431947920030090125442881839292381011776397222886132534465805398579800551031731606146928548117455821360005226279735216974485370098287376673320634943353258678255733535213428314384887695599056736760941965701170458049489846462450648780153367862284320377363706158851497109566599511254482573698219577970299497172645473804759177452869022602152355483189650584726961828247970053693748505792544687444170950960010822658605941631993839792238360658398812788643288080481627863414673686682742231297888790921716342782372733089847130154649966306853489881503296922132441512806216693867183979580554298474203410909615249181693030235307623228456252805156937946855442653601974469397747401665217471828148229095743532756969811746177151634197596517482157690093720549911329612110558908238746074469110056730065089170666006864602811495737205883791571443549818703518694632997999146574141077501263883105845001407422047999574621052647536603049006788046929572877519966905201751651253734559208874772930167604211751943716091814714009808476916453741180911833132009185756688618987373151468554527821282389781434907505822851348123913244887045844455912901045635823088277746678645608076182422334755934136122830746941443731681386277982377458326651598012355162258044040343968548832003186820153694517860557250976165933053741049820857863991588857036663911781236348622536514383416032783507891757005687721099625909091810594362117842737195899742039745992685179003691937695421530065268089324018455736559461432033548253928372520603564419688427208404229433997255761286913216600470518917907534757661308043390652713172846074182367329140598562974156606983246439802799526892318443999152495690589305059014564863414087265338562965741936625351689610700832305263706549375535967904620757826243449216614730132079293128774614838045888468510571364300560839012832554864496360330413373894796359036672196745701596205123757963876545968346762804846056507696419738022850414999199558507030305411783765555430711246198849660816473722920970903731262711366923186603120163125153191968522886626987942852826988151339038445193057247755022683770471208637821345580794752756358960851499859904394923583965787884608489664258612719810010068702349575755444549991558908189570166068933639039993960084199920491201119814929710417769582344017469635094800524206435882154607911565770444715976707177524801428901837213541045088467825123649171852261451928207501482282537892182695762948857517637972793593582801895295011051509585496564540543711045603806617115231602146655058014204001157670627519566937492810565594922587367678908195568578636069135604252046489353266694946532820306231851006602502566372884398611925816748767073011852682501806978436073432489294297012998110802057648431654852467664287028177570096220051381929056936500726985535970210296484114275517143426036447113127398140574882140603202350712906467767150599368028297916317712345193376483564773599761533224035262904916466577490117591937329645222182535001857352858096086524308112546390851569588467068196691800303412237468627867808574623760144425035328586221734475276255645447436760870576854088712630117298970051374355321793670535878307473775746841435334817765307938102094927506219101871496585897142960620768066306775017870582569067967749780756620417227919490633370265508671967312374419944103445816165025932738607010372980326364428289437388761137568153968556470312376172059200346951982038132167671295330312261553131712419639212081910979906322874795622816936456496273243458346235618752077732424324426680147998982712024018671645199283618219156816557257339158912796558455338537246827409343812853998619274305339040547377775494750610112109045113576682080280688472307210199516862284824407074258974659529966601780999340803043471482964671490714050169424816811161988336551566957925925962612606891393246139899120189827580706610126836337510342132901514863320342163038336508855406405296676787336183921832826172383116359563782332414204177387719496033021721631955363244723763314240046048170818916175202075626719761704047720649132075506335829852733267310270194212244877403172404310987699589297838056786553782034795414043010774321339821270070012514395942892332130530288659959340908588085421929189430540189450434972534817230681341700223867545987630298027901478298015644728232273144045115497213178629305728315637803623278619088817246295823946199235137800231697528852664220066120574848118503386142984704689507501842078730992079231276314256808588568376181907141208829636081772975150531180808588960808544718067841211601931856738167014203851270645672289231235185118930522110753204746914519370179600617074290698069311468177672452448809535979154182461469597415748791175638721901182196143363280466331554523396086971841691294817572874916601186195387861601669515951132873728835163910078547955455402672958089551930636611701615528286524637331637735470024450533343819760009915783626889253851801286663424579016718493871381282084576929238707145285717518354526748596935759057890962508523952910315643399222168988249421340850880264962599378996309371319754399872578797935479612401269203271030664516772656701493103567890892153497642261989843058079057367242405511927415506074837951154127007818652245101247984934377689746903718769603802723973429661361104190362494803463402728147858674107788792395927168535628945907134432302498316260142330340547588883238134803603093314720454759732526094073932393052558987579102888050242016931419452550709564310142595639488603438915995755149697605632125977861389308535997177800545555773841848881214525883634421633310499168350193094767186429937289013471174482971989760553969033717092742078029287691182332517909610129748515672532109194907815343434159798015573242145683079369416396491340913051169597004441722029223684520561567577504180834388057388341561819967102555599879130039937800536134205678930140643106737231802955108460064972537310910784559493536451596893091961509344466602999848347008736614650513044517321952622273777471333997307176646417584151720635723561837594149420539551840945454396349584697999648569410253279002718411858115487488459541005186629294595781477554544424969840850475693659557262083633452902433663901865896416513925821377234124825337690329647537893987329849270780891403117302915777360714999652588292275197406544460430955084970257001085439318952481273049242018427555255280948916630937281291061597870926746227000597640962325363252934368608544590384573166438218479050948958581101194056825629446658075808616380678508582178624898397538472996885896717283541634867467785801460375108885762269538954155412505471125006682339144362249377538627158990485361344406138141584109167110637207563560095876474558730737522089269390594948570578588702249152755196099278234595978351222861497636203785743826617814016960703206063891999531118928409317401118936119538764771980953878480341950900488982856916575171526386126529247099436114683202758151874308039598168624204068759035710617995985986115599929358735786637824575720132039570616303237241965104832713251417969616498486837770121992157866044051721204433990959877307815839818143070795215111168493006350538320720254880673032615510548444084274797067549372881337876993123341100098049896866625509917704760985014186251758563391883608513529870459572913423309990900595185843938032416442484538518914422057378751014373438630082979025679107297294331042223096825995579363254172172682123912758061706573417554000001706963902763150749587239161216580213273988190184686242152317279607544195018353689715409054760026650504746025123559315050969254895421836612886984460819559056508614420198565462596240164389480002843504487395525903759061043789750552731175083921703929288137836276273518716205674681817239136696140749685815918320902271960161750964135928850652651530294577359255746188400464435935635355169730277419019458787503947263740402327709841363399440408174216132512650344956798815029483333655925700724108894171120819947208407881470576152559913820471972946457707449502587277908103807778302923296166973366881832631937431164969665944817371922988070365911353011352193442512127465110214748603282077715308155174209980669321878971894699421478135546005978540644751845919937985379017835921032058869313558159294819286367779582341624225171445766361418800232211005030594161429602746316020112895654754209199629107431311223243171350645405839816987158568423644362344754420689506375018376705219957241968562879042686066791966768276506173528895812867939772095030588228608493427505084269315886485455730365901631036378916329955916718025934004584937632263054034764488261890703428886569662775706428121183954323627431331634488757758319547214095587775731128113576245700013177397506537952678052477388116202128974401101339188437044281879043725295311422543194333083420103594435497304090936040830237206334268994773268227274100677556264888094341546747020719424450128109435459940887089037883363690679528803530712829742686659730384168201713304901329934331877724777347456195032612234409238048534636459042966835890595119190911892858973114166210621632836070212195466100234133779731516952765952412742549806649288365004670552506340982186946331710119474834623443038383370288356497120470055513350762883038753708183099777856216515916130911442428084028137081691065073626110901156188550444311136968175864148248646638372525881860966076802489597758893031203954679105113840871147919171945449986924373954700567718621347152766531300274578717908954933491683552198825303152041862787783954367835702210102970076262518969078194804601638991345896930911292076671673238751074664082000480815124091918945068101248324524478308829363183205175936867212070199127382233776060703133298549552696647591312685470098907593936282943396425648993834240123446542531545707119766764389052693385666583838480001085824745828239191882474756830891801215867083975316159173834654689538771491736988938761051459999373279688860175822341869466051177511387561970857029670808421217520477697031332791611779766083718176027647575297130320422146785651148150757114703731526600364487786796246064255030799059349549259972902184176983221654730916022033860028392026186203972434041259578873905546408901496394888539725828720149582602110976762444909194336555741575877246906633835224166571257576069667663924331104072072893838467111125382623923092725010361123378468433565950055919561020911579693534390775292236703533972333237475667528753702109197265220257536039438457740833300936961082451085302564243431095379462901734758228319346176666003687682241848802926445639859105923389105880937420700239018625592528206437019841963889505812979849534621120723654823033277952153876914258138595148113354244004677645439856664315515089237651773235509468786982933649620417085629994389922943649868811056196554999387385751971219072645577882309533258854446557670994287648617896197099834883734336993636201375892065572022654579873454299134628990516394440497436860119952489675710483564143652258151915840768078398398156167295518530438312567217048440163114057924971750303224744759542078556096526383417436390939362461910231938424738922488409598053790722103100761623701349802882921723440451941118234141447693508042864510042225613276935750769097383133272358187096745139007016456983189618771896973848958492316768117294873198552223319868864923980426690336057860884779912864675460198474867699250127871919353636309906652664242113522664043851676198347788878963578671899501697312620000739530304688791626947729811778526199911166693778686275882806551998303119443930932561072145172842356072295463353769841301021050170794554219814164000531988611643676513483531915091800336541583079709159393041363504078683533304466449083806505039794225073885718841305218045090689924012710770822876453078618065359442201023927795165551117535537191236815622766457162521898270133693590429298868142785091569168884096955311703920166929101604580788431679690706667594531433029265227928110761783668349572016404853368926010703144748285754964132684837455909775621358908012011880929394876206514304440669129555383024684401737614420873941814938242190205529426333860492115658466760637963923206105618402439202911204567557194261915574000759965387962635940238013859390192389695861678215559959276362256055565024660207690387324762339388671142499702577143110548336363009509588610027891771131470580025283870648790922769283394419986080894582815220547182852966879425917922249343580542168241249492020091723249537447413855161060544127410163126843766991730438434279469566049592846921763757142422819395402619550232431096826382368524520990405132937999918006617101499054982503431656488826099357719139682125697017889497149149335233232516856164816416836384891311070286586263586470239292514175517894182300288080257944304241240732853308341808206776148047608315557230426512008239732242691725504189682394982658001670577719467377443627236639017255284979256934688306443782509809195243004983849275055865646491699791246247801176402791160216118681689000731072717716561492569330745632859364473849442078510154961842451643978198943611998975794961251042218442321008311216514302055001186485436739497128375625856317548523040858126528411279926028729053779948082452656244569951901963720291260648747869034560661691492280253430050344655334844540597777752164776001381276445096383405105261651067222188257375163561743321663393346821766452248961202263145750311897313699952341328007700334764778420830706827218656947878667593197237590698161219586917082718622326963199569587733452638400521689905983768870480889053178829362195519369546783979221385960832827568007931217836932129451873237487288972260346530174606786232174287951735170794479279052684218309425470356167368113378524512941205929903355787730408515327830426731334897217353935038640327494438189200845593822204168861634464659696089093842344400636235867224690778588839600098407287350769704736490292251675883709409195601174661195258497871493194005434077576512492796151791399521786371654322433575295841987976993326136458181474983442632277148483545651678926880591059645248428512154139064409789322226147063323188274645986042150401505519082769195087518040454052421048793419493266163100704733366105373709620497945144396681210484476115468252468519762274230705972738367747225270409113055237001225965578171292282147979644335479611185150774109342365476313855411526504590355718938502534885587300938712579345017821060883651627158266887028292027858016779243784040403889551356350894377141374394933706502255547426208143995141019852161894962205834768779828190611950176293853235310698728201532455821047817110694708014560546849492646288641516943448896113275112001802835486206149348042695193738081257478507606596500785410300259403496723743016842497426093721450957272624146449029740230644797782439888624845934363511865156239174533454059239692456006517755903266473091282868791915992384453107755909132692055367671979076730011735294809774202580194685158929755493852601175948179176968710773097009719012413017699847505626857598128758359760896535020844410270488827352091133065142813881434630214748503876708956034718331363135688816940480659205811134304625984610088074757118857879789070832420373899949935840172491834701607906478618444847675677252732551130879932482419956969312993061549606899055642644223100360167847162233742020615385256527374824241579761641749582545235478356615008405413643770764153508246380994160198573481056171745804822008167216044931507699928082579512625035458666384023335394431958674877076603632397019599323626407244218854738604734284977225629156795467996523649048925901270868587168517073337682342885907392187787241748321692694590954880102278433597637944985236423220326576270323200777297745483081531476109843171989678273347299220953410963368794007312784207506271618828537714187820461911418217551763580795989041372684362826665838232923016521148518282853072151537543876242719817381783285328790778174846659979652565262997384005835935002260815780276659222935904507040012766378852756737695600267797818495249225789712262741963527643959163188372152530795920699683021499128458512206164341179107494145411078219711056034601445814762555220600662323103787075281100296432969512703312842924692116288455425532679204609162583071337894789139701055528539069218415525020485329556963929438711520333756714936662014302656160207693936884197981988790706783879417324027696751949573855625945421066959176825966320879054631645048176093529075018805021796071931525188137599468240968676373337318485871750650501234956651329189251116079645589488197346007867594581561675311668288650246687497393319818149899498111038016078973059311153099592042969258841820900307851556152326376762864311492327415849349920721272124862012572431018195219625546033056888034247890010146573538255297745244779717308152094180092389136612419464264479136291508581336362901203230580098516383729752815020947081742927902517986644907495417953830391374569825388100455964193810914890451462821811789699883095478623871620061303091247140232723386192129326121676923306408490675141083334822941976862931149023741250130463066582834352323437916794090264564285338481439993837805828938586508993810231659692800557452260023413747880528739151298801632377641007903629318570577645638148308178200722519803705632834440887463433048055417596905318382161369250316938550296097016649790371364727443872134533531106419831313904376652419584660445231678519763176977768995462089454224486299167943476594761646051641063484329224679451793882138752295656349664500218314273632643296063710543036878769653640150325894178264477694141644522330965694576914353762761540156410950886966517719716580584904818488152405023098607193211781717219691197375554506617574924891459279201730033067050400352608977151756906106986372338186192617147541160908595869196505226847996151801631035992996805570546502197339430369322296325977606291006744249438784373969374352231125531952929508396168933274800536564904813280733516101294623936445405658174799140291421159930691544444363874428798072291689988514826714599139217387619076600438585185481073620178136799318676121526580440330015906909610358387483724352902171985874674489544352443360806798401659056289238762837499135267739031866358331655489092332544934540687162827601082597318498217258871145412025933433728376573059827070527884372601746802809349014641253798492370923249560257225311874193659803403016337965295849662536636132401541396548266278820932888163702650227165151856440518919742010084501703341175543480385876568388603057694573873410984013937212226469792965106054148253239394773500043841232248055676018639744879567332046216363088499086564075960701509134446348419225114320451811742022080235978296903006023253221308464121524889943563404928321709716073761872889301287725825562871283542309072524366941334827835347743143652530854945250937437908673839225421214089281150181950776769969969202376695207641042555159655445862009746464956727080521773336765633355513060053264099410684637748664335407705675007797823291182155693079476641704987115130439153829027263353951256621383604458574336017548731067954578844466071517332966511389314072269482773749352019721450538453424565821863171194393661360501243988232318893702498957217736706757735837571970250839542367659367215246085383162698269753690415745175396416957436351363510747092010541541994678722544549439900040603909625511963722899859644575669773926897597781717397609325402638889520889141215206935193035365240792564768188288668440872323514367733146985757189799402353359802596244369185061481502550184260085239758353458498099688732239288046669701371314134098171473201912275577602177969489453180951142393519391169359273030394749668901570583180576807164497455665989413462975848751295603266505247276458119378180698842814342458640843188022368577353913799676473798666125759074028726193453672077569028610280891047328176812817180596418325864726340853944030124577947436481870281808870269627632810371844061408368030432236246625519763025814549508529841958108875784988734913780068596827986205615955836726586636805753089371900235678170578709435063802196930029106711907225450945234209480570957674291549493226294979308381868477854023912907614889109565012218883904299153306944939887825013252573692581311866638518061382255849056637234527154486270018816642271831516119733267217684623544563648008664310535490562102943476879410508937500860411220752795339963229593262865252520836317917697470560508306211263262867578412211555425019408140365622435771934478726894577926748022791344075215191366343026170843239804004732665701317422105642295401614542289570321817479398820800908880091112960264048092065583252470327263941947278049696660596545264439138525946061083671720702512267138792948932367780112576981699891700849590485234591156661606225854637473403418319149029919604858006967799040387160685472122585780116750430213410972420349312001997464371864765790614042993173173911756714551712349090062718467230932942414673080399554012280625536060088263133194751049035968605397576438898340884916568971383477597924262744422510961591657715216131583435740662549184701153128307799732385310091679793162886618079327895364577574794301040798659578436528273767072054564094234239742533050875861567152903594746122282973573602859914031521451958524974280683171929486112144769361091385677731162056122501943287650785407602192507282963967678688949977408568661098404025199437348363496043479001585836273822400434456267458109634135834779123068990716558884460914552821722054145096837767642975988061756540102555602657525699338194554665384149851490210118474784443000201847350249667866326903238742351135437931916880158142165556001398669773608171621926503400151044949690710214919413732649444597840162280000820738491545733064650373050516618555962845506272261130127786944410895643173135744450985308712558734845773454153911828249310858658151442741136716592315252064670274927276992015758961063376383703432528746847890272983825087782807998150118374433064718109171661719047009364964306035487482638376242638944064940155336862887553905361189149722919259720317809036792042192471026955828080944339536796416529918371771070785629832688019950971059739355178275923364118010880595625885759079580225413749438949676125373124666741922184545544457432741337220021650022972282145028172389407459890427117047616573160945474317817651565352515834518356435838162445390421525065966124777339922203321540778459560919734227310858984191408967181606430980936305841802094609255258316295950157463275204035194294778723239390241609308915470723521703090333061250014919409604346831032183203541455964853650845061402066039812444261563976194372139042901022420297095458383741366380763636484958736669332767184405385740384694695071178183426295307360555932280861789899326762876678172424657873367327201393558713571714476830132463744809624397244123703970656208925666697231795303403512811651647107481855551211304268042496898485292629754351312801266881716866118839130874412815909897173213121742251092521307030570774961623567843397290073577025238918713369037585013483911235540736853369925085580301363053795083757854558583715854389744130666298292402943084689211108724508499763929007326359504052544408279760484597466955510349684115323923580240694588795230141785740961417226801009542986411533943376296959926501937366486365547995619925313162403707813142728224292187766174138122882914923069023695242755771813103141787224713598124399096229068893819814496252290774077367504699212630336043121447334761283994748512809187699018082184921785447515540175399736653642418338540448504046162805676639165532830932812279414686839355428523027773975326405465872904883972748142838598048928043590296488938630144950131331717822693736236597808150699405025010361791152335776130744533105477488219648273702002591654594831266885672587999639578494874714353091568259047952807381647600135783775098509382388353354511668255853679636472243530198033442972764484117406670224652314130998850119766610223318994373189733029918944147612716344969306567350446131761293182485603346055299006632375470845324207059949485924636333813198652507025760274408244476381419085797546638635114361820272272263985065021603972089780068822819736830554726520030761672145211038182548230660173607633389818448715013354366449427464543505620389767015560244562754939379696991738378716629106512232213000867167134674987738598867144322465959194461179365175793751928752506219346854021515186052363585860491914840473720730615220933449469095847948731274832979169603720423804860900467520318142334865355909946976546384921341664086180080340380391277623760638841790890425038349591292255895389458869074450065314099251843344585634744808648699189231667226259336786460304444660264518702322142948936440109190878579199367303473913518177412400284421126856564661513645973250953986087442067876868853709235311281862241642946622325286972430965780476896622565492530936527923705539619600224901618281511784903678503256988060982110110939755426047261817686878787164695254904882421462901317875147793837562032038777275332629550432524181066853870487191061161658941485617210931677437008502150892747535228165391616533753641681417893341653849036361189482750194513308000177937879154641558425141799071573621660554864085110595713494973572744545138055048477483967740035359887856556071394524889238863595825080550574400695359411013293630106534945797724548409028956531236716149038563646781045183809943555713523767824349962464655349041868955995311749359447368307924617752745125722300159205937315001445297030573829895493574889609708760860742457577510659502981025942468183072648242453544237138197177100682245594897333209655247436673753864910765374225368906594975492186697757224065741831209402626612081834134146609619620488593959021221189979070336052096344953717983486815528591103410894292916139891067832589720113020548607259358478582816325018703524687283348781892484666523419653854197229325287205643975839939734400099850232698560850754424635870151722975963414762741594183503044943317608799360388306103967102145324683276614812110476785825264711196870082052795534487122621232418576821759194058941565422742380925876647144883576564711896224787177240614920114871784088502174431774395014975040679553332655674034047577205673535570625800333806530415131526101613026738362631683079252417971584142486077872750013760120396312515309186130144698263616113773818180837835652200204570825496931303639543139847681477279190736157071845112326669558965932612766567972307162453398526820844763165202286478723674145507455994154240471043074654037933464964481294300034746186415870742263470821285498562161274584037976725680572889491975217268993707433495331797754504269874422201795890107485740518969381328517297679081032104424262858934463261451206120468214118276905223424580280156831852935666992463537971046565151812247946365926574795241518049079085399191421449152638063657084302072723571246692636908195083232057634257248149443903368050191292466170899547828406443709255752549088991752384283783083194462185815957800233898986529627948041770352885972302210727499403334805806100829320345935136972143434821916684202360045048337762474814823026708332417634350475827203461998393397528652928001048865933512790287563695972350470958276721778986317713790488642143444395314090013022001700036719542716245121609596391301460808071499985858716294597222579034652696870570645801705098968421855828312981878848618219373551975112854601686907503105486295348716569580287501628739450009111152939010225332757012002288071083963707830499925732757115037349040603024078042090494343511074256265426553258849450661837421308248201832412784521905390737826167835713008131128283037769240953877522475002889569754493655504140266311771689548243579301620423968662288560876127724431643969374967713617526159180045879115005048103856853724578170006165036698591479968234856352146785576229120554564249982458867817687973091062487285465132652016957764146057096862905906013634168799592454980920611095365711098451575056902760126581436222617016221213252989678364211102412874380979693387458925017995323084049825600170305784456294231155607585142293291183746750242767368129775641079814323608583168561135299640833083347706518351511881940646013326848768093160527347780210646356537058036212042461659833023240888707524930815257864090856150125194049408607266943348402936906610028745125358570342595912317623074817573928874034988705389108955598016155188595990601939103442076170628734242474312560672000674015260169710866825097458522795313623940830820532474961143613500672892503778546743267903205338674598021724017492145183895329905457340062170376567882774015245969767120886383597602700456575993731415919395895137604645079062665120602080671599134576618899805468733954555083476295880219724702677373940694334867294032565776506967634307646887181891133428986800362807238742618746572760767547751045581517151768453038057367132510258517266142167211153512104098792929222358800800982359997315200059910616927517760877720243446316084767645530716312528451784352335425278533516923790795649558614235479804781284929915675542392876200841373256303633633144559894025998449540491013035993977403722395216587002753745599631544597043527917187027306678629655220409610145416355632111451078303543009435016223993795470884826500903856138275008967608964864534874280407128736022850533482943645854384642469584978863888649014580868799063708935094130132745536230092148628249720780736086570858992776415113193032560860480605585644387535491129897806604179840549846248106715800062945612217154171505291622289942901964966039542186114878771225001767972247783739652201192005955378920011545293522229266371470271804147527385219323257738701331475360176142720575869971514903902704914141348151814809694033320941406993929668580333612825842187459503049708327319000793546210570052757892378448370459005992812530198100178076520152487387576082266936580190964549088620813371715509278454268243118975138475296031632334650684407984787786178134071751889138330807426617835811212687190530722277668198743154867819210395651146537731956174049691536584258285366807479871621906982897915972183679812834778043245731564136423347361037723352462580288658246776875687494889244846315496219556048909578713183964497346345410231307724531074662460270671408280727091463782374888683507715381044490076594668158291863454988745093481903983360847501719277141654551589537410489982407145076405430156631954136027130171205979992560231474687877555714582361565926482986278348537401079970818822924654629389197247590026214073690535730602102712209823271281711112852469231417822723921130605574105399529275306271317037547028358614960877297411284391480699369577996208589667008482158643665660749851625963730585243004965428228351497190590514335054548335321506505261909768771168056091925113380222002730993485007184821317052509044545168037175035028269261961301441128868442923975486680298202561974099321612270268727916172601869588725939545145546635953233538607150581568685399783288891970510598618235152383300165146492655900615216966747811692445052393966806377298102798588148643949452372546199110409461248415695245470136630716580296138083844785627119864456061510849360162683311207912506670243099805370359983164649190226147571918662726610837360111979747212019017384118402809105404375762140878583032738016526059793087628339623085336638909525150276634784320367923703951148313923782941149327474228246043964964007095719379663509393177061984897104637202452662347567333660159696806882391249272895363746898967118206346506394605669369824473720856011054802681012090571159914983869920322284834242020993070871043824751238323540146750956917273235620861779606159978316715416345585424602017643973264518128106628554009299420247066009786095550872318041570852543241226778950982830215101674690261406956988968851032191520557111671666260600827635029516163515276332483728139281016800445150419541273046208645696077464780701682674968284653036295777387693629697071981039771005266473736922800628526172595524991771065950324121926802003596582027154526370209660535142178111979694100808068752892403433308135364939486504304413977344979435271384548207936123492300787161997871129226961706975104658799252761986594373668407766153539102449020715399781835667855352408368496645051768120496951163748254539747555359350904675279129215223473765500421153747206770971662269746559397616215914104675201499978236029799077927286112068365982519030360926699895676943666634841873514235744279437224851557725847451100756517030590261843485446752931996307724217874475386163338750436829644742328283146618569623946385633124983804503504535309197902252820758046366711907912715876609199267984149274187221290925570734573099707330466819178160672646256164890839086946924718750306286088274868141996297727583704600398153430817174889021201289459794070290654739477628894712979256243090384509614858242597483966864222864951468167380231221160535174485337270389044303691771271931701564382443350949824069674858460899681980667836205745548563718213821431147936962740016838999959197406652556051485947587673045009120333785343084213629476188906965460614193869148559851346429603424231966582616650408457715623440567621243662976591979909941275529111751965473202399341269941373528857510396421535993701681089828716270433806734718119683171071499262812642075624676394335432169008741248856563965564659646274600340680345245087098734739018373537252597507854685043366788042422380287181496728982929924076860903141191787069913598057785323471952202715401283838410317640653679487846864241446800073822254607214276144431899125781058185270933772844063830196774064690275411083709588824995342244465224273409500914379678927700941863736766493484075832477765152901503772857634595297751474860464065361993251808328204005499389819009775282236596711166144979192680835421455293500166774222399899116784325888819189999660575650883683033612365058939575561663293173199966395576763262520673388981350321000854177566083868059017677204879004714507704761647918498764009327388076325534545321626515525969103935323371275522035163839701924361818734783456033940079079360873848392481311210161185414351887584389015127777589292132744236617635139410640733831126659134300504168312918824121161941959654377923595182172097702444939623149969864457999261854662287599750973115599870731285223799156519846197896654198828087553083575347414796067564591371275556036150887597360687373639489312228516300742167639201729685608809665373042810109204768131928002534791793264505159106686614408763309013905110378071532063415057546694384828565721403616540007350000156648176059875707851873771169502976066216902679076589864697257279278932210257430959345686254345352373586335915383722294487826434635840799464868500170213478038007298306120056521308962646476271852063937049870156001808818035847584422118170816614798406046618402361918736342474402971299554394417833381055882865919403928513670699256488552083983582870207167318970224899602977630325067036109978421965009409245595721512852343941867126754501789169171644957805804224038910481235671481997812307383449143292893685244770912692245458394767418814460095971630705445263391210149842924287639746859623222900397692459815162493867189202220537114958419492250276491301963430806512380219272709230145981574212511341362132061211278498912344107325836907968752485456399194057497978332757147821110967018103648244928287159723743137744427927533618235010257592830668927233680349219503645072857859983658484757684637500645580768149497541162744686355974679553633705260935333223205533409321713775482808056292425623841973087662013588701282771475593442926525520212425661932290258978463034286356509921609391981590816196308246733679310625955686383600362084020879138145730807577887399361245494978331844173828491276252934986735158468375630166595586613911345243297142207502339427481133345067570135810146507836210720643889927691880773138267357342653930097304245415400594076409076983282951703203448369445684315074468171467701071168854770296322484902857801329189040284580607062907364031582576086756545970261910838754870198817345388150902358852142317536072100296883506551829092279408292554180904390114094157052159313215911864560926642693537234610050900829216451567100715908692227222363702128579714467634789414831375276596683272431196399095902545816985667162924265025986596446630034801426995803663322926879102023647321554172030242107022246338806957996607283030041204313191729651234991228425283615689145543092060346180985949056066316238428931420538233874988433798058504386792434263882175201975852724711133804732408447405126726218014176126568443691921565124942114381850710834344669704559886020619493165853688699580506991955959631016220597902019475794083801214008065275190023253577865128346024724035190185208670702287017327610543472201473496400344021238729779444587745047542687733622682031981425555468195594155723238563430326609959358168082533410702578438590339128325949233354369672947128299386464211736202228186047982593965749383014852019320304796726513218310314898188728291561008284585887941695613350034779938832560116332842671961003526831367597839905822325890426395372006666713145705051101882873217456729601467359518265811809061566677358852810123989467863156040652262613851002989459720756652350245896582893354687654291193796467399285021848430532636124124405899344366880116124475624918146646572428587099377717013364711205611649128035704818768907913844793421002052296990897745219335843386799585342413095724835332207364255728021245825871639786910845662911562353266573013726346433902376984010216646585886934104352073266685747522294483476357319929799596130637360079322615207034181808258734019996204649997794999826101069112294612291532926507779766286545908129975022167833990291083963919122684167554152094921825309586061890436954527707520411282498833575413771442365055412772222065139394828679247671897102974635190715503061051729709514795525334509516474676221034136732645416238342608221932222029614341598184479460025831703254079445097319983195797251060262341411144718666129366131212967560841237269360885398478746911548061661454028661518947263353775631971862403616169472834316552557503517748028679026295874732210958972751238735780721267667850777994182781525126313719193238438412292986384559489481907682373249626237892807048408909435017093156360426569908513625981444099980482922392346434391629242684599137553304183929513110681620045003780003406567391127661787580545203836391407292346856225726461009160897055644461713183868810901145744854001038537262499796432056186158263831122544810985449711928471852639054355321825959528090810536327114355113302452885074844618035211372814099031636383944104429486484742298771881551151351020071137305966356085251016883256007247353888245822746719154439457501207103812885706907337259153417843229554023360903803572376470727111045129730185350418472601221419891967909094699774825156780582230753459992284625197560146665422461612476475313812575152557138189751979579074928363646969362433631172544538548331987667079242779883957527986562716947675052154759087228521105149765484961009370381276375699780528365211510348845001646950606821341887418803742070325648264724920496728628871392144410068770541623015356639227611945724821015057763441333689224999535326398813610944954357791315908262330675793204110862145048035237638600838295878629647312561835738179675863423201956479889220176134236578731999277949221636146484093546714988671439704215001667733033731890946959715542157564852501097990495673083760074888888929676474731174962309522890211595096245128064679265710502469260328160592157899995461028611443009573919849148728147094384263449001947325527399912052431375299772628985889959070709144263154003967864324017341798728679833597074866266535582027779489435344109081244235026102222898177199722768656155280658055450293794232359132924800079683150512000861509710825755693194840318083739744339190501538633566680035357009853553454165833527538009041971500470406209680226965214412335703174549226295169821509752892652648082411453586212228828343687107027944420277127087322951209547445914041490262386439606199370980123015907100512810788467559948917782570122657641880981614869919087864986465250243895797749688596723542225861101140852005209251144414008252056544046741510598449575996187372700630596805446007557063121974849603769332824209831913686614124798422957914938247674590056950319711561318821045914392164804465172840723268038108153299502673529278175924173444650753404092656698564436062826981121507888232967999895713391109190430384436771218807620368440987731243902695403585730369825669173280586408321100513242205656600913800530384659674674035174417359319037368956755070355560537767017214291058925622420640250796157229274345778607559797256138739894659047217722239584088232655111290184697931237122168154410337743436977539214866030259124692485583776806404308955109377698567734954388754068317826309829083211027641467751769644850017423064074240540856391712261007391830006201057493551441450678548352546471562820364657556342409462988223313551177899856923339923617220498878154768735229050760469779191070138449913206643641347095402946887089237186339209996453677897277098988981720835015156987429793474732390737706068141491561209021148381167419191034123503826623420885180347195882736229579085555449594598815620393038194969560577904169546717167833145659466519911231866771686956080592489577211137744926198778688482850332139114002092007842079924751234880373058203684763110769752144068693254276811383571357914482521425515040909516564578116705818179104056262161242771873579213992021133020446326217717756965818262130035678926634469442149916691437817369241391488066382686858868994484242562670010965917626123472598684663142914391021085915595842234803624724970719238267637205244232428357427419175006084430444680786481716626436807977226996661493963988376590705097612175415355003887035773690296216879962501346959951828630970238116290636179997333050962777891801824680657971595406621649858929652913014569439152279458326309364797116320596303761423968125771519893698237328307068721416759605312087442438046145385506305212429538831944025737901183215870798634727088127209637903862188905583824375409960222892022646899428429408544238753815648068861092820471338140128015402113532054745397392070126636643332220996638554434759544826930706297999372590450968572740538463607614273095195422841511483287235120374392953743214348549811862257854282493291597040418497601068416685883374764909768491640862993336876606618619773361713798380290180414078812688082952417400954624927937720544925272166229292580873290265045343940228890543139693452656812017944918909189393165640604009695827355844882640158629765576569962434037923584643561159499772518771455642663372876867545807937651653653810680510350606814002180824802687906434612722207038001825468019623518080749729625385720043313730970625790716258313063099946109144520763985041018417648970044925112823796791666645974441798073061031633370097154573566028577779874562961149022162862832069021635917487498195444071798155361320293123942013646582031810396841549833043856824850441049854267062475299495347365426094117836783164463411037185223184243320529209851007866369356752953088928527449512886623377985459790760847067895497435091939148060275443879013313783710986745777125903047753132669013205790522730415182929612229457896598952383944445985168556959836915549570627473235511749026322003315744175572168986956188465718914841338264749597758427772706398757266740244661185845309434555318957000195921613686072444189619177458453820396010155133127157719445133851223834410163976268502841422023385881325679804540818674912448121215179272558741373778986729380555828644274891659347901380476578229939895457717313300192236450113893891130228206207645969043428353506803740528975775147438142580919453354256633766512024826812806027982184700399582108252168269917556278814962621921551710420010886183411623064278780942882324100309376407842425007649489351800313288378302969121971985506670218563165311170062516260229280519299578766751824597159129055868384432046693546915956452041830316510349859202307491125550653950442782539901354050812379158731215084556002848664634285098711223636086555976101452635593438334875814378810817088833822360444656820531781602887272400454577032333385619901844475595712956149981409905175805002776274485604627819778198956995989676695116856444379970398674900826155071798419499502760936305126409910666364781650697195200358212042964409467836337817513601239599194155623058760668999651079083765714300924437962238872023811451179170084702875121956524078958706396203361811270187506837757374930693838318671830033136008003181539290771538265543835294933864679930037816850937012963420021699935085607929714411707346929208786819541522674845064735041415331512433019795645972616065143549937329913833057784066755484277775382468237117753685346729568507701412991001610387047869482557089079084082750965771677482514865144602147686256952354994307416914435478629692442948850222858406486022135371600663899961181764883692699251226966809388106560284473897806958419401040575798605451427305894135978838584418245650995563802858268216030715064564276132131393566422649001634532843776223909086585020681039784659639851420273323290959257381354160726589418581334318503362374155162109484032560756172386529123829151084658108580871969326486361392080008488906021775901990673292651910356715347868089138945923701254046936875358075494242451012389020675755931567097606168832198793881267788647693521272246415584299083687152775353917901755665048304765174918583742339229188202600186646303085176986446323890681898425143566403731998545059912690829541709897423814741351362964936215148115002799832163459195053206305373513108626295069668189659531949271855692873332679385392641931714922930985269283534750889405574966231405428954286575201536023122935023094027574686488884650615810585970255885898807120188304495620310696669255209308849795396106170431231799791980346786159572544644351515919668982985924807491946907392796256242130516869089849629458230723536188156919797364484470654123737918742346147649155131891332778552172814900213398533431120627674689279739187888983849225780514942484124108867670123527814380100954001869148283931786214267653615793660710427441067934466228088516205321582286076962831780833588502751581991393977448304985871074854966706795252698253846670714440709508851055063612966711466980102976637802829584554029641259448435016436107771669830842524647572037792986631153461770742750162456920667028632294859267747431145593263515790148535677403618121613642791491407912135806744973542771420491412124830371518718892931794728818196821708925090119365402878334643467848391987336751661200943049512956658846649515114830771040271664978374189279690509008416541676390112751762473116919464709209002293666451414560276077543752874167316610694519790347030604387439749543015214821716873340761036677389398466261938985433431643992191132544403055062255088427324331224943798914866445631960088370364231460656244858897686460800923494498394493768094947840611257762806784648655525151095896489127830510875351502744783279810190386421861990907224581406578382757184410943821847531424981825305310204797430677429362801576728288607468564671894170696041891173150628112997184286867605694887505891556762799782005106859108322355534914080527671522593457016728095811942702901793825233086807390317905625547054158925374074773754219903547447766828531837349984386378428834425795788435858793225564538399876929530211347079745245674561343478055234881216197759744836011599013648462625757755935571369545713011645254612831223415845986989592266859715412898988178524901860233366756361915005860607503405657537640768838250741369750409763022923780158764178636221665208037152264398418561986197442338650283408914328999160415052210778303393496050587397941611135750329986744326602295340201066838241735904491875582804597811424301412694543726226555206486596774459429110009775785286961168542351871579660273922638880668389025462600102990782619776526322182798674647477353014633916539251390361130463386253072707983159524996863015634650085365972774024194057841760703824511142736763996834647626489466864238065569174859513085949005812075292360628236887277447719930301772118756050181861501116047761959684268234180659039649961037338398048723598768434806650637238578163085778639018820484701049239773629009330027055419300865555134552206821720452110177805222856164552662565300923011620674556899342449740088919750373564427421803089724040463599811643087422824785793480244526268171409506893742106328329472413905387530196803751889421486232135632840233883999742761754963951489606567729817364055592744250281836191340485429519561155174614831111791929757246980157556865887074677139739572846509428996203686640595833533425704075504705820335937791840064372765610935860020855061689747677260663620812862392820592328212829688415646730296833570852832212392633390179612216962727650481750821831428475444035024366754582360914976804532178010292876528847155978437001339926812667161247019644534074262776459242875672013660997478384702697748547103072579538097716922022109972671961838976698726036171426401278417049946104576559446759993766076176373579123291580310780361131034034189886932316975142424346526501188285866077905308226456442262326974157716567427672512653500004359925682935043575045202689964749996562685261059572669779272714070245745027662867731086933114743141965338256061559079049816973633982131773818849796401122550771787604458553804366150542833052587297569594313052410074950046074814375015215091610862537811203348638658646118606202508600669438913442707945754347296346056167232328189791132258337958409119893708053107554012436336126371313355273516890187832825054457759119449660816618494582892488794048239009182283530924392749977774228791271501570452369442297667659718554642299238975821236412431439154746511488458291212756426564299944409675562679824617685072628598600009753487654301244500411808808185647829392481511700101665456895590023134583010886736896418065169089141516862456837054853145251961838456576125483882452782735125653094266028500092424478621228903713865541257106535702347353555321582066247881871154802791539407957728623479346722634378697415486477811383871309777325730288683091121952819254610298615533212500152450562724433605315196040709844842430099105151998604753279326850433546172426761068045491377009754944863573672979569678647335730020365700320338946064986405269644322242515288443783555197973952508587869421250773755716521901999893341809137287538875545682874889110166537140794400248308313089337425772477935832462633730446134064790180757544775561199532410419890894728521660535279362014854213956977985255838669665260840568282267041259504059500097280425352122629773542192423507550776950456779244628531229606517682200551942567123676493294756443333716286480464808225989691498492650975963524119271410716839017277863810520485961854392953262679802395386048184476771954736042769270592466874275390439945572013580511990076297946948608117399976494350385426927257688991106407879454613368707396633842851302557364690703484467478812695336034888285069872871518814765630699873724885113819229604828001932202643531647109237910080195200987762399856058277399449357094393021483269889139564790486696581753078493874336815210767431515072727849092628576357190513667193961180886762309984525059458208191983089229273652013192749572784598295400767992335975867648551473456008971997922510629177925731994533842525605998094510686251195795577224322089041013833096113144746926468467442361009439588339401482259465626386713004772407487209981531672735560155096619759054493343907004499935103116957068524278175689328460280048961422946801816944335444385598077187383354923644200330294949578750155781079757467912829681336908997501653381442797847243666324385557886907045250333665027311717742765154979507762774427080498049848327649661775231079028323563585727013354510893425629051659531184849229354951754840807734585080650489935421717742201230308916026405058757107070745205186760887952665275721367340547346012009996943498005869558989728967518243989806753954943311394111981126648042281540338931691079460119688416298990269375573325474216196417560248589444924800899703037665542767653678189930400558939007173221373536173114342998086022507424038947933597813825450400251623339592817489060373942831679338346707555823612878118549287428959859295476731291919335883560146488256259909327194528293014639051978886536107106267510711941824732769570816702561166473969807039951772505061916805528908573876057514439873080410345144370553545416993089246732815804962658618649048767257696954841591208491817929473854957107852996304354305653743715958962459611272513313171766593401844306224929748057972299415979623185238252661617237121812833843644371773799659604633662818780875801761107160055581338661830239328951356315634843812966826822720768063887422037814205775488045041455022307519297034235844531097830792574969113516707035475289658984947395692646390618584019074275200972770251662623489848908091332507743685850056914309411362279539418890201776076938897847826883348911284637721868037045045526007087398692157795429752840167210577672358525198733138806532453562940034569569720764288159212720817228103589126590457394575438362925051560376343477592882181171197620370685780374947377654501939471661527275097412642277653986092879425801168905539970441248115958525793641390267635305332688875272145694448524959632335266217820967411815774753747964540158837142598571151590205028112124225063873859455874800013337574743953087882721978683626952828581463949481611572823070574686106324847962555279441884933932911638439624012829219353037378189188456397223657572149453031107950544433158497614062926724087717961951454672020495812241858665049259950068002373285088545622302744034456844892534498711587681421264475694103639080391444909417223632216952474596565800010555342486196598764808084427048890664932583850899449388326168046385145479722447483045525200413768371106097351535383923530071922442087539167927114347159117645561601344130507362320803458366040687588169212829782489957814059624434759439577549886891792422346353136681194639373867463167558131587007188508324626933296352570825593265994496658967093341150843970274675048291788656747666279983560985987466714260123128732742820708302515184686296507999603632453633756690874450217936474728839880735845661730882469680014584813216550890660248397350694286051984712873428446218247542288727402061737835668322733704786778994433024477350577967071465900398280401149146664347527923739587594875323939479562521351784622463333032358296066541673784186813580222516158032042760043126024538859782878395156907227632874295069060240452549247125425215569728789982190282668921969578711565548276090142631392752945351502534043834366554624574859545086124753916154171404976735324535119362479816224522177914141908924965364761724698652892862770590820683414262275592323397879126593563244607284595407977076370864189528184601942030873062452622078512598870677736250179293727256769795100638183308987205506829368576900113304255958345382086775823958129223289924868490915949255980683452682669007837799360589597501841895011299523978518394891841972241805844984985046278622880083147946538165645751303062915247224522241221536763445527498559734849289768293334678754378441351579067451636311138908120294153449985344374166289620355185934377307953423963267511069627019469434463169078040438754656097649380519200107728359870481329593369351187895254239608620443672128276317193906764265360012946399718944901954606604771462671103803525554507183102903554959827630166080311010919589936471173115953830290065261342759188129732616893662852127090346205145297461099316876187555287559655531151316006468494717257315880124168159291055948206002933291311157174898520145125130286977487727221744977685952197066994115077645211041159001659353433574857681341616479543851411278517926104916556492884253154848340482517870592534108872739575609450333642991177140929268765220847639934612287916766659647404589994994980517705022059976526016038020244326688728083033739926246932695643941913262553813796373755997389247328610582661570043310349427797622219013393677227673230618809606959684893567137348242847910496227970094165961634481653495469150701750797633171525915627518854192193106602298891683467389223864634292561141816317126600325741523974275639297200222991666219195300265407857530977479448030994650789014232343517628581802910698502094943927474493856899650463840223664493973787282249965110012520141725148085594025500705681997258058959729562958615641351923466016322716418452410291636517060510073167312127995768117656033962292055513985749325034962528778940695565196517091062938710229399078724931119678925434109914119442892421715430096439080090167299293260775741291017064819542294575259362643204538194429688689502898319320477638290587404414172920527462393617530785343606326387333869582679568721357084594341993021687743515597160372967032261426123685574970020060580099766826797450061086363247295337563071148454383516405824536067326265023334874807697091854024581670880756338497736576478363038514658094915125166244325258945976210780836286935206762194422278118471773598177233622615055681669737543446645406162718067112089504804781578492774098830539851563269039067243780648430582509517198996073239144369342227809759824874769954120291236019988949281171390193076989310599031645359567356195250635608531735039121512380281861351990996157781898334533537135787694883909439613048225303791123443225485511731481509370915000577287037107119593595676446643589764813596340786323415980901636979035892976631591957854927548668819343853277263262442611389900171980390020495304748249151326691361915070213373481351456890605691293151834800514326949162371020519729095893923424387314124397232365618739199864423713075996430117882419671273870474812057745297951229524672806921075749078898217253638439114894708337784016396846393191741842101588326140486072623984656668005200527900470913169690299052166462284661651297991464280476506687097894406970892501528178864576457103652147530432654405872191587945583157284166516495399782190061438976597828764651930521820615806865281562103149703748822472420017260099917528796680300938714522614168278637125757546561446195049503107325381467630555110319162843384523818156492404991632284469535137596315105847969885430585594517227096401402375069902918583223299530547140058294964552963514117701489066801718581937750294184106170467317303979644412588143291854983876045650077020680385525780870843527167706221452582026201889435528757681819846425597578142849711747110034430309480586913512010632716481261446344608440445756113386308823576227920226242926088480827915183888891129737221935166640405836213618420267320832691469632324485814120356721151796063306028794444351966679532032063180929020000160622240363384151382548349533642941187208123975158423541431421604354718127133039794240172323706888260498747291126152698555895819446177281326414872023837088399493912936054544323463446587870308648159159814344495736328839960345246137364565837077815965532289258374585525896713325331768792554739788170252602737073380082168661755768546099606337035072345009041006147955303868063081340781729546095008728960734176023886275010458215932957105315078970732844697174505884660450846433419455819998575391618212602371616294413271570342893247916453714599242220293827717535475260066489171148577108625563583758893666363886448815131132517885556648272159535699813919865796214146259512086284264647363699172049842051833299106576748185791941724296714315020346356002371206573900858984200601661559105531165509731749679678711637271319287740654999737568136842464250186268486196696009956667000626715527792427052469049981176938801991183087895850640313629155156732458118126072046510647845217495812581067141296520628877962556710525307841175219747754798853403176401147696360970863007532417776428742248942620553669570944893331957587670885804038150871532603433907221422036075040902951504001026069636900250204134891311493139516064216988960823130618703319235018510762089302546246023736310810741542059435401969512308247593334442385812604161405034094260439579818402052937199757732891178756667917824409637281938755213079274105398045565358195779688059397576710883710822457012752595196184787813337289438102009804891254367432019558701887881395295346547388086067776859139519493050392190808778001821276056294639108152426736732355214518553314724080279924932288979157939021299888932060282132573754315380453929715094550965088340977923683833811220410449018829371708425549523311443080714673080885206244179523073901860098639183465386951216771870267992780693896131552421801921611369477324045573923373970300833387383630934763460149914056254227412273742636044369972584729268237196073246402554886723855932846736361764020505783871213538950042809890880103557982421071343197932343256717420683230088140400502089682922103813081364118283745726027963738407414967057449131120447944543924735587331301395064068498233183026075611639264307656139441587435754183522017284361824613341959612951412726093583595735887951851875325180200042710117277568926849957948695474108659693865856733987873688425230197730004486774458190507870112928835555015877568857519873789471150128395339718714591375060864460437981863273956026225017096998180781183164865393989717406239194582438873835325197324325579416963381005700352807209706513794527118118802441473817575174619082530406326673038452551003087480303349136859563828867699733288628262719315402774543860482622961582522542258395507142611383660684640219463148150951466282449498131372563964611562319018198614403727886662743904432811120290401433349496175095162108213814295189840713348680620523909935807237538756934537365244840508746524506767295037844746801201015608541916697923731195882059305654908987960969187881834226901215383838147518960821343111717313513829367496709091115556082208618843751402309889479446171954467897565249251882299944075559242869388514760724634834123429225142893024844563684749289857794499474943064892728099365724641259387903848064320872584004015615054548476670460262750704527039038385665409135093278579899377506359676728226768853408799574237602237520224717660002849831439495989286395112298425873028728983347222937829787221917238501568934563901446158279027461964486339098228286430870118550085918439611013444530695804370217399562159052895027320442388988624621898290383733202334984291287771689956369052824048231253786294138954704938082817434935325938990553059458048801872590072899552882509722672953070839845222619015280103444903548532630532583723849385261835077985915072536148801860677618104807170990854032918699927183590168909065739888521297474552551117046838119994512440802697571923054241251258587133364824866622204620568200421379689222209566775783998846005696668845603965146149478171993967183430415648100187225328503120044652681103360072110974081020370492230586628610643463634669907929041274885870340166943734960555374798541368747826063130823350763558117606745629393041109911536589142660839118711753131097931625458954762554041694798032551402339651731833661474648145221072446422043393728821295913282022642985540730568959496675276157041483219908802022657741400853665640144530867556127866545928402345415846288830196461384698634675600482876597250079558016495458841405198158394857796705468403373086062526586464076041450327993735967210817785777633283748515416417391450011797121853955688765650343691612453870446458371374798636478591211266735519660710586884924090349951480709811853222325958148859154100245784330991813297957585115824171893725065173876020405477678111816917027774197549256316229919165024192414688695967640977608247497692158102381448940268879454473335073264963229817685983803360119651500529589859493612479508619411714157071822811250546073135133219668399136970221078961260043254014589557820496046936886666971670502293596251139943790165760432816464551896093281293506468896441304532143585459825594485091843864162994283626522820949167997572663727838805183727112794054140309755269083935146746231804497071765845504903443002955376704260016400720549535147205915836641085268531640208995887350705785670126778804371791049812240636900651809702157144994058767131841754637810039619716834079536895266011172195135244059208234941729048226419146748264860834773062751166663926331325591601912609935339355953759985948601022806072766026812873854691237388503302685583786829968906094735025976416286765732485183314004685028791193209113452668112073860943369461345676803487633810685721926414076440491804708853454530206747654842898249401463834334114480410168845173771286897822196522312528784729693269973562166118642241162093830162210061743333996011817714311428771573193144096077571625030744597385622025822873207824458360333744394047346596014092698342949617753658749039404331431737624164909126408715185108243948002492698274129571276904063729119909508589308914084441501396971591017391834287393197807704679072238571981276938960754848672310636255537104275486162803208374439033136043166813950287458524580398108261938537602534616609815187840510821818041302625313324837062838883969278523651628580063786486096810353176557401920755373458304094646843637843787534674149373446224237764214503467420327862090044312209418802315454998874645912554897353136598420562082190734053477847270552537153960246259737817600659124723404145303060136040097605460537068465598875422600095271819843168610467032369260922410413518926301427499293433384732903297600952728205764196185332276718271383866317321310461285374697236340683371382377407765583018117099623008785229775410394116571843866473947642151016967419134953107716217229354934265504765451227390369770040696481953872731637905199535091487110653619673494800948563830906191578872340982065371147158348631935562860795833092790610304524602589707753290730269649567457508932664185190604821937825724077040610987251387653335019549880313849031316494193666645621763364447175140497393332047723941234560474555869624898904947496048649908174650950688298622023951614356410845125883086073323764367087943508207490158086468180823252666170428333823763589189862418615737921877927786106704760906245957028807539720805977713790673781046918450585563771302113187595496776147512630485818534838950293241222324001651615401497226633001552076723591255460868333267508906039861453677551589839978562427401908204804039388020659273046552078246451959589338861611913949173715420011453834140592572994255876580348513923659456527299868158951028845388964114311682028664195896765027884275746627811008492537667491289003811221301895696207448368053728292503032184801500982075957592293695580252716426611410673228427879863617935830631433363548711199552502890802809459372798727463974654289315107009800281470437221255170598772103254882576212360288784548616262577210090989698116326174101114665139061878600947527192713614530536941040647285441085162970415829834720694857994523929177270065247348951865291711314124218993953035634175600295767085900837086467673603277422743814763953653772245220897754130448852763071920076747650587476948011527681183977943226786986069607596283146745098947524162187479170085521465618422627035627859478124283105244542682623284563145078985035141514038898281642463403446136958430199925794082961478143226393397985301954726134612062605659581344801579380448771072291429878085702574557929828525811732711581209981569034693609654721829393184035921353943360739772958271213752476536350783721184590556005343589583247908088296051026613854669661178154625186112773090745537359143848080997859588971333088041814254928806485569141618422244283972203790372352931258836241643841334954306851902119080817631625856790446222822452645052473499426281725731199686766960378612506161682123387326715071089820524836090742262808928339458903969440092204751327745940914738868754786785719717986724949011776409115505634273364837099407887028121143727863160515396991849484171473421148812899261521799130896276882235340859618975219421418152804861740441912252707373820631324527318147202612002635469769795653059347175626205055425374099039844130201722057634561213048265856511748127337704458035880497335183874012642909503870976468292143914664712177265083216302632144722031455563264136762421722614233842143516680113883886190223518583246189982371646200294998414402792194078662981149061722337294747762217633051430634973703020228324042033360706879196744624041808734848496104297750534085346933972535197825422878551863602950364399569170769943779787887999885965142974684808120584299588157971507767028829248914934108645389327691775855941334790014205778201107089402124626943715251925067971549716169733144456787968148701967766465470319805294951756070399715983978047379993777165814726465712462952522441176144328537078144606212829245603873639292192866913717776508275511719152926985146846726054092889412081547327492863323595088546603719669342550548211155307726886232010706825714474088500027733977620563674285166671841504919926443412117625823507119635276524266230483320564422597813986887475980663982156157738925399905330057334722296798797508051012996082789294079976434879173186722616154372464124660529097197220939522292878633844670225218873157783598999302798681970036602489841172724174632536080479335303774888776569509767389477273235494545375599331933237781584048492620376253204880223148265239085211696868249243497113288199334792107763085228574058602243480229402405875792621396860782858044618057359061873010816351954295052494386423741745242728938462879044106028719100741756600941289316337481535698935532036953673376173564441435230670097286441842330161879474104912320278779829735197653126448851032432102730008931477770617981926527222590827642508391886232043011200477747819339950782448276154622792278886999541267370037992687736524371087778166777836512046545740936687216916169933383509781745781737989986536455954379294261631927539350993785781389456375320101109139084761811579451002962831045860988111282831817345110350536099917034560924550770954102273260161973015682489032685202458398805895930905771722037233583114941327487497993837756787914758977379359735903549856454069382361425357934824722068569929384529552999739761540464826982113634608042128082489190602877546042374551012588903804288342312942447218516065463917525732568808076270248459448706308791108961678256859293010391947117811935723858516106981142511306229999206860510458553326938459521134336476483168130040781293767168594960769688558285839430936578717567833843883966168274515357336552913835447317427876305067500936022858998108114043437256060499818872081663270988106945395096565736753823998196160178924134095474481171875514818662840430955572982358701325555399311154919801680108803193070084740953038052134291190113357485868655454055381306973364952198199017463272902517105478810761085944610538624241120719030551030104943816330292159927502711549840330097295483236072996575818118730515418561227912999676412266933430077819895320936895600396650462634108322352057349596714683953621234375051414032735841628256999440145797685315029868767123102785926759831132812947895471318269732023051036970371786012565258892315934854937871226838908529875098391641934707836836489204292516753019791691794252459892833557382848248796301752722980153203855737964115628837546842881371883786434706991648631726425837871525815152125766101403478874112450660114329059147632085302688529475509438727389230986963283724364770733933571492291309106099905511043114614541705536553214778907630981059275580460902786963194275446019450602768585089147139214076776988284695630623449073466958739064066954007362791080568774717409642827751649130930447819146341680374056952389365825379652905397116601702235096312205327893115614347190635485147457853432180124061829632734268600401885060943027892625898722603569653853711824572737006589273728637147405347699462258973428118502017006341724172688122411338836804010461032124680290949326493352702670418696961403475864951348806758228387330277911394993077258509150065823559732282127767181467452702664542999324598693115081972911901249891560753415921291693306037981948046784150015970472019779425525340913162044732343537596739460244629372753300862002479252635958360291520337636493250432829619717614992888254948215474901582557923623272390425349378687283736066415457532932963406090509873803846228583078986680479242058329858152488760773489728586438679084202199376831191939316560294167525780465245950621575236153939242467146359311933990926897061621152534549843463837564227837528473488604803874196714928292846485917214007572851663909858874987720749149828344262062018959935344565663208430866605380441527931176077414162507911870799163430345340724965050587183843319672124309642660312246273350211866553923255325557254360121299783894089303950720080991639033176684648562841241697755749511939806858454898641659257368028345583736016567041240478162665180799711082017835315856063623279356422179464416556897548206002600758733720523226463525960064480040605050378214874208901962366796080410967640073669254615438419493860422388156895267609999392754751309148533868830399178370658486171358232753072981575919235188565283331215414786274430953553021588818936357679984648888884392841439946634296977422682798845463757436672025116154446502917169285436698618151596881321834934536375710338893640841922928129587117461481943426548515647708208391846050079827307096469149188520636357774610764183424105781239601212916892401655661228853648809860512456749460875389245885601885502451418276141135918421705330196260828091059702307885271964784230441383633764697883598927409236251283725147712718556928985330762934350745478894278225305156865414779853729467804831988569629126067838135629644519726984494484564377946595996260603756320267386718475698589881122627170270093238558005497956252788080929908774906588190774214382255722618917168759084517599198696538062671663404041380320642280684132997686106048975916009784357608894166944842982989664513457851286120508702771150026207258787982607696186058552393464832907648677042698222254086509250294515746647172645964935926345695857215977556280842330957281537959744615126650391081682443480318846599197787040879691688322927364372498763696223028414301249381247443572808883735895735568326020755665963452121562121146710505416514925345222455063895768061013269267716005640870176282795022849193821973694966611155165769826852327779790262539422292262161475609254320529610832349027157964411269174245950148731061996847844082036531420081934770093819007191682589925896323629121242110845233500504498709291783773998852750115675649097973360253080221053342214335210096257282132253201020430816212414951900380379559555449353604804248502884295832693772677105894756034766191564784311303178447110473646218922849164634140556055759394723255343421095305932400250787698902464457047766205312870843944218163358356771057195729126069456102194254291342890428465233178156743861814401056467882182840565576346117423017568559903757920547836512831665945974365395997329981648991270005980119478098007119173934543760188776118720632186578596753582766703431144959968648645523995437950866352164961328430844598347636613711337240973338944282779995892344438036722079881513400610228647415611660728409132088863860100757803173901859268773164631275139945763774901023019558346816239901283239195738081544725641834416857745234212222255613332875959234192800890260956710863363290520048859466169019766716602594424042359917293358257585955683168923835642681516740269693387794761394215214066228016021857255114155478214747975458464196012076310160218135681836957444430049140240457819526693307157510993875845591902668884740723679870433262035274438892725929543136002810258152195472724412140937329447692926032775176157608481574178844796215687029703714084000341695873639463617701971884743474695496513371260240650488418470402354930663434909519114237758678499701639176538486896389079431849828996128996357698141190271961612456699649675669459663564892506040713485158274415102162619157086994673647938752380440897282658731049023428153833660488591632808302949964384844426592909259511995683240684749650107166089637392129943263420364466682656143161155810267486987847837655759900545841926234335187516321751330328848913315666777668853235265932969891356060808445356700558723544563766825275910814639060431881358848526532006865096465448399203153806708064441441470217942584569002839265208953947659734091081251814759063502089518738121429540303427903864364213978069748064470554079313366147042766367089448756002736585536110552046507353080963853873346343025460194863032737453602452628550568019018011228032316847600779545617483156856976027381679300933266077978063168559755480826920865479517404992546950799634446853994835510994076752462008127189762525570926913490725780164993388088726557783105720461093282349875230455602565644414151032481485794145065670538072879630983454796199086019779766726496251130903230182663628857287393911963752722536073830307655988904053348845007990337456742536033053525865470986539859306746969830766276812329632629978051727671567178169509791715520729934681877983881203277676018451326957998122259212295195634356399948615086543485931749220692360526773411101552977473171171985064769463947913472571536792979186350904458499665159302911412284190470321186899251889363123126777525772898530119204475064523050614525813438720382038808674324636775216295480870909177406735451091146888221621360120694861941276342754310985319846854293357402924046295598026456705831744113281022763465998158559720962345433407993211748173476076321113302118626224254857097067498105024992085943514574428202137874749759346568372647125102183192990957239497624903273689039533560941527439504399764987152298018946138151043037720255501168230769789220714442759930818110209672923106383259630787256025026891942651759344316137453474303716694888683652972361441391356306370404122972261039650159533516207909463940900681271733051083774962397256587820289911774688057388891638550033730457352828026125814436709637006122203204483936809810937649871375365262093297692955322383934702390746310310572985823191143263030885037965071617005468707871613121737949952880078058532989236575659588342001662289891186619979315966342672398997033906847078967398011934275268264362727190427901921500465362913680894587913581865944423586913855850777800079557211546161835242661571273043609329474698275490197713323433720555824765108644176808519715408746661901321373107225130974676704075922150838476602181482466949308788707047111899441367414609611602881995960875256810423242394101917414931295146084504948936196044707237093349228439739750889976742875432106439768555921222355885274325563388692029119805377058308700931537725009591182513726831667737896995673032904496022069589900162492369892563605582472532490289587579718611084724510680663913047590266593212104028732573433866906843291228023648548342898902870196610905019363895149731365245296505973513608880143657677084435681860794400676272604074381809788192916489792781491778025904576351462542336162172921032400613266533274513132123586956907326254993377168368784283485544978493207502058216238510367118836001452318638795419603072143769972823221095923861138832929838425382236452132312746098208478817501346698215232072418332446211477011980658474240721754033069163996057633293366904109252375325595362511001131174461263252373538697440847243411412542290468201143111733319278761530164200617481677173956612273757989312895737421490816651579475151325025247451790000031533221440864355248058066481383336598465817350650543954267297491257812644105930049579811842297045235213509091225393339156803176513942526758222387915194143079743791083655122949876790565458584736334963175080883779203636259019232080268649652455533225477280822679506060128305495657361903864530092992280789096487464252517914565700359285259079987765960649490192648809708360512994543694006180234607447136749765052107457084431547282453303454644303562519001368683465155574876215086707332517189575659735665097329497579899465985023893432247798407426184725601662928384996257683737581752166285721912014184722526981445260061242732825087366746265783676479581125939704926285012813923169404254294542056144451004143290678151686070089514831963811832066022060984083532620449267041621532318955384590450704974160544923042514836107182717314884747357815168748716919063903649510720473911264515953395347921728186324333482749494682281439093048623843718804368945681481310786545098383514936763273159025926934298848073506288918232953836508068560073086181871954820112806918397102739698070612125143640923728764478240057257516392108810889443339254129881465579222877186676018837600061606897979765595455317006406127932757366690265825819914528378525668669076318851569794348075055337954527665339158224643656084443435376088728593248931345658651164836686076516346353433902343905001418298363808768531250386700773723575547535413669336547230884635520765957659504816360148684489104408008317091007700637609840117584539438800351331052012195556074590422542115447279980745658683068096109875332404285201150234215717648776870897954410065673494698884672574304035485147856712975495228060897264804231005115425219000249573048389694085922537474408590955545020254236379262266602075367256140346204179223291667731614782670174645662890837760416434009993380667142382571638170322844473475532225329921034520167609056114080972736495029885714851832503617483959177877657854588050375977333778176669986760792154315729757690062812810561410961230297282602867236202175889513783971003242520941358205177331969697534245774533445865908527168805111838389612430646712624456880294358936883427197069758989657576414950857679713200483647967175587890358505966943289825030918167895987880891971302347426204171340606374877419928951005402143857466883979466530177912102284403986203007700188701518838212738157923574354228935306954765318981195899625993263743354030456778152166493791940302484632268761754087638609482861902518390199456721967511930477522014845333022941715593683411278731588969272325201794327759695811558322792903819943390171498696410381526593654649525086279667974306143075993111620127103437720628719021078225198826571958136866863116215438284766994191323832843445372591933513819876611643109222378569823043340738644894512610905093393554445269679379336086247203258631251826012016873965922729419210091713733599064228992728113245920414838783835204319367207949948826743182824049084994810010306298292366368032682959740754395284674244381648661738714335226998879604425438735477959657083254719643641253762199657211622550643312776516529952587013363460658972068608624201933704326143089617471607539063667602159670959493724242256692329157273998667871539038382089276594234921924340763019171112227167086406041044808937510950796490810298021698301196373716299827647602007841233825099194525371949053714757254943454601446246954096916732115828217348183036384232603502953620040010549756078088132289994995891572689792770456354553722861713526746799091053843804367554749954994875069190507887294467215679357180862801591854354337619107767105955001457064389173974158127073293670229987437116853908662489454921724071862731694012436314848367704344336708155776863183608393676050201185450836817142640813342759556068094357553687361688673504925571578480494563035353444917043913000776784944606947417627108243724358477268380815301604090122989426087946030176280487039814224771081079214708777320007663681822003882267092475624391746885228509878471461464131378175119884887264197994735232469681130761060288104547617997386736037307277409254205639472113596168943981864369215257367710325582855181532391426407459278887568785548069381108058419496542823116251829983100036129797068344014523480072691516426452821697931908397060564657208692536313584889842248659357613036992467247063471417496432438397063777943992255681783083110052829698102453477089331840722910379035844666606732755712587801523670301547505493357368198977952245654157069497726574733696358141256745495428621074876765464583232423355231509597091894222882976400236562539170983464638024061157622144679915126131702440621875152610939627357705657782957435811811782147407880214331418153962268608307693245555254244422035965588779350174557650295908350633859757217944016887509649054335737491099522310098405183457998382628202755950513321445697550889049317838111636432887361487875274931038085170650830555140817127578017492581113685874113152130923580718847221558115009876184231197362312256816687413281800968732545042616168548468571506994051800967716251317106788459879925910477058200678050690250335287301750971064977454466827671313860244646396649651192932849155023811993702071905677679829634504252492041805055195753469506662102421876664740164122666293268561775853488273257195424534618549539728498137190829281921591149139306165870734569686448056362865014087225361739917158845579184206304266433225428496301425460082508971495146653650524306266034099463419959062095727918643166250444858828210120748587012352014759121445980470108929951867504268899980232239365119042312642808167714861863633583257833855314955479106237953632235399892964172989674228667097074157209434628669141956533369262646181601176022882984499331940788783387152196492090095366070773743130243287375068178318237163356369262865606217277718172795714903764991421508318641748868735983500784963472832817608023498727959564549959982404486371713011910640359080846634432901750505650596299882705492044415625973289430396799461588869672411984371000374166541318077814498000790229804638183985964893329583835362890300262194926406139611599114432407305599655058344564473264317673778369765158362798568735893830374155086363841211053041977285891537234045368328714303435002819327078579517363053250917703237207469723687471215961274357204964777378254981441509870687728986826228742832582958808416959021738119330967759500800714383548168515808282561445188392895539063198109150282986226485060359479781791024144723887580783139383387596701719678646319444957768210628111675759240525724962159714145414706707550537529790699297215830157175359633467474512218157316445993816634177521857312154747817274086142133770171008147196584978285794320454264628143082438416242086408133737575574460301551363615630616307549187370012833621451559135278311329637403073744611117676393379641739381642750886054153867498236743051112548138867262843693016820559072012014235883355352165510580142311186841629811221441105379524312223586323642028626373986641771695841837998078331731352852440260579739302749799595693744836701067711487105914700154657425482110342693890668649028815768562097348106804726314716964091813269062629447386955343864171786504227826205546070229909823228304111764859711034739357589272416643011474754245307200953569305099153440321755612577199245147480248577799205051303106840701080624300268629558593900676785789169088106218780537402013407605437982340418302312741091681934726907504269906737856568546325477201325793188367986588877755083269471018686189173758378036695065650637672498646637087638852850988105383526051299827983562932778003752071511652297088558122417474599967722861885807065215953770670682796210659749530317090489366498572500685482259394407680806486573587797085312153140788753640129350624913393932815564507937154609105713599818705484828955320027297810313517476319960789108696050862035124058268494175184224636062413268550004703151001968637222582117538434952792978019804198949067419254452724535718504773854767827405021317138473276564391266669346065065716929211920033496899039898150439698597789285333223714497722052594790609339756426230002296450791990284973032861374952640190123750183567135422508664217768637900251253162249314724168516493681571831371240277550952060962753961113919445844656723647037862758956326246769346946044941689868434364378142486287676753618767404415482112407795580060966915995770694647337379273627227324814239600092918924650041421228089342765035395375121096773742051610414387395080323393428376893772712259464785896467530755709550110555529131013746271949338633624404250984942855591782897530364958775844994230143893611296127983574853368959190565214264591126270546884485530880944713813589473782630881166000990865491149494180770618713354031462678230232714665293000900574937886961586922925698261741147597611017027623843864247924450786599990788626506556850308723752821224751656423124635581433389318407628912023458153660925361385805389701943423671519129045652600564758046448028220338412146530084231377685603888137460995548440917875104501865846403212153782756469175098246238355988806735200944563127574090950311955650423882329568850666274692833922761277891037998475043922536451767830193358324139356889391067197193637273180225942832007958761336064592915195170217809171744529388294373474283438008845059682348165070362818073527027050164941449672150206736696023977826542078975526919199279894124909092334417535791529363875070110953472145404008176387069232110898593777897508336454735813174208357199464413218115443755740659855750814433803545399180466116635116997141732654270670395266769938099492259082583226941386577063754043480185512883747754069553546288255212495533860159992820021484868252068528049628256318419652968989190626912535617808130433977195418992765537400275522193760762082141010326708903322950761454812628474516417371352286932796941071085441534066198743042346008362277746267408383149922236635490062371584503507681563393002205373203334266527514908916366784524420626108734637606420014808588774590698436259945032316843522218906264880852470651218111557955858853749393820451892704732894919781317599804791540994327014396079178348043885660860645685359515272180479136316206569585011666453237332465985924640059562685785041497098811242293811570240256036764572250727437967495410851612494575952464834326617173477291331498638770074161664358748050800835594071364411774264325296974257380289008857342100903939771161275729936721948027624722066880131877951651914967170479080586826763641018404666815546036617222104098909784660411274237475857369444312792615053169005269778090318594014957954805533729758870582893330035168935957154122977438711834521665983818547664506538838142320979291993743987031953568667896792910967034347543728743699691996778359035314097841311685332227419544793233567359943574898343863407931109293605687560366535582654662863009771774316118370159489402809465240567238055740944656270532638235962005967295006207594381997983411428651437299992941795586564622059861863760513742623736097881740597731891848567583684939531631042534314927484074332445335108601876717064112667980744958421114025994259319407727362040057108784523712045137822994965613340750963124442627122472808964912834448033487268667229453671892505791238320107952849974268995892197049410411012112280878501305247271650988498090561769455242914481992104441504088619404656404138748839342872944578860197992600174660989000691929018820036830131865503836575752482851961683457459823033332117196492567531147482453220229474562277604487773014411329668348908267731270735220884136559387252244824594861357632973017555372528396363027201323789311144727107678874837283896208290786403577970050601411022110998378009329872520128135094981892149326271942133644197030723251490865144608214768861901871613107643989158104241593720298646962383527144833248454065119529583796612280131151736890637182556982928564540144934598113068647156000884929982364275648153224341612218165056187317324443630037112424725408799523853341869365865529101074746875261849298583676537309340758487603693882697954049580918990426820508569957211142232212734489226493101610700177514550268657712327182522915055661165160749071699850004593206724404641501702835750422957104288968539044456644939580439810611046475027962267834527866108314941455653613980681311744282604597921348536675651283544387522260356900159663073084716910093800781867567118631616945926101264351858522299372311349672627012874044378734440428444105532068115426317304971646429474608389378398277049445783482526023131708195655827875154528638562366130940795425355919151946944763125368553472020214076274760817594564195467710985176499379226397371164830819772196547603106138096754155191352372200614187097725007857542230416640047128850923910355751818555320511321737712243901907429917173412255555431219353916054997529281290328969452036954637846285075668115586786539726941489789388378141648857569680518405352644390596689727388263414135528405922852773767729702153547039361844235605586550878117297852067549532417786062915231456641244934945073802058288635997537576924081624694174170764255159843564854533636181725525306073936421333221427033960101801756671993242260311640286069037569310487976118895608001948809304384131934608321649890688741741016009848063872753996929382331107969730523852600457132479157110833569486567692851254480332144335359535011660286252834453713884846040144598521668708446601133540118171157203906858836996034062593615222177185640156129978688083936421317630227659412988553697737790635871440511205527034105749659671628716720523273912929237932482605929133097026308747784153386398673357966353197784823065065062029848917324398139677508227732702246773855234869738246155256157921911421566847332101770178542564596606249357405840186202407353526592681548181239507781208054761572883223804513743517133604161594996137455632484488099583536013031730841423674590308080584328794569441847814439352264890042663931301760577830282284256918902302324737495948737320539247234314845851243169383528090634672449299367481049094655049539936180393993338915829062948580787648361992007121386955432722785928728391601138073014313923818568127438918524870532405724902249711768854465001765045152110151396417609512622079750429565026365879933360648260135727337228395421764687848466960820329926508811450251359610862515834548292466375484523667495712904060124977331842256208446310970303995895196762210144934949475961806246611693967463532450350772338903581528896591222599792272698227250783735841080854896132385170188520622344823265987419377545486466016126138353163968522910039836448902535105487425693613268842856709998591079911902830217878602288910830364712308938769569004001958422617424842121028337751363660272813284265169585618810790930317388260794085516394696183842010194695980800052255610752895283160604536432656902856213499619347170106200334196466181806204590023342203014108845789189202992104413926860179659693974131405744780315166553336206300575060443291850816799676423255072805804704166446449559982635360868473936217030730254917333608328579814021316814508253505677484841927328005224102780511642093787001773180309068934467678846736912373271887850524927445536722021967651557112931265735254136321625675348436847396460449909105231926778555124428229962116690979005702496060816801160362152442206200159680269175942678341475104058744136954996447252818769038434938206422744684354754229759621586477512572077876456399158506964260252044434712142087437894875594207441080860356433308111237437921893036201779515734986304504811101261984627287996940743354165117981461193828523740318124999353233863085390955622749295007658645017886319520404337900347471585317429862442369567660495161803160108758549708909220983923298279368609359006924422216818385455318968341379994251524418350486947317641075352097686107640140477488076112479639693783963069217847655723343207900703044825172376541081410845591811158965777518546702907912680561757450920945835661735088110436446872899978791502003430630411843001019372435927142846146156290702508685582374966404015451312244371159513401489713342427244020471714513651789181554887339423645557512582204690209625299874064214200337960946501735174070214765706613966403238173136609772261267835323175716080884437809252578123240942783838063057666079284395239582293869484723959504106966640045248424896122517976862199617671226320832535039688674118047012247490867271414206347117645816436376060320447023884843359590738083410983505518195447835425885490456458260627665584922758311100711463971707445459141903804073128008383927295281524885105071157067744603717956485069202368805638178342354634023548191320056186347188639409461270678985883657138656389150798451249896947483690749123959084888186582683979061354986487534685747919636157841606798032371119185939296217196246292369105539196758337536063660485285875927023286997842279693050940370627724472092689260587070621865981798291781542953037152282666306385062168491398692913541867378882013921983585054128225603397293754086825996975321604038702972648005854475264298583557103915208238866080428409609023672333148292931230562602035454152240623285137256591141038227810411190945780590454312099183439241792387483047467131647016814551514743096367319018353709975870544403540795907795103760193690766722618310154639682633206492709908035774571782981372158815529216882004515694909573548722230372977607295791416869508789468485102301357080438922675075861675984745157388909326339328538026127381266491062462114296576960997452601048417398328012907531777744968750727252997207208199822398916610600404274252980684515103936717652869084958918046790665705658042114483382768068436006011671965316842180628396624824531210694965937772313292813661876525895726606369146812357236008522415215921013649545444200446834855217467979272051801372890966864815875085763433619356252197630730675263159412647120602428707847672090789094558190384779848636084826793229220002047323440917317598092249257370465896417700672138755584218469229642000031445039445634402963173508860000533066438565007559372007723983096238201888632403151462247504565133504479831853162780477182668031014161449512194494006772232043746620642698822798436700130951400741191048523371388421427141190238801432346819580741612211457216824846194991337231312265583771998537538201669658892683414049716649430977124480212033964869107942862207690853484996004905631656504799256646278832589259060174575859671548295074129996877313432694622761344536071983704982072108397580453341481038478964709550415959869046042325916768703466666201421106477811271241621153305961270551968008999642713637080145550316557608877461606851203678383375748407721776649006626917763915390173327828368990066288116697824941309946121839712224772272664166855858439753439855319601427726462050365753038933731184004597901318159097196986771521260989266929562819154738140168792776181887072719596704414788603199681525639723574276486136292951877714032149331997396424202513317699521208100643003378176566560459600095681575190281770931370454366709258563476793765658491437875924064791387597142473158175655010832593693213327356960369120293562451360725530805301147053175358174246981520779023000850991900726495687080558565989942849514368159825501702509593111325644239047800341768084239268217105401593944052839895008445566708892821385823370194127399305815135579937735388280382118403578022490693225519133698011315613878308344847693646099774415567263275480376008178060432762242026885380083974190013312384588100386833393164770404403066580109890297459114313727552362428726873609890627638110097890479605352753455486237145430524001597482542671710230224105345862904061157666063160289512261055011398380904339017093485808129719073509957417019395756764706227891207154095955894220199781169634802502187795157025502712685708955371130315193706530534308283075855374667167399967765387955260082102148897509551370367992463018297386376865785229211495115558944868514697312573897396100910414117501925777419128518732100958491565497209732441580370303877430887377286809378277985456827957142070751178563077527225063662667088448733676806687850072293854528735025585556467019271621372917357312839120875723502485798535789182074336009698975482420857116065830698164900079414421679124611285403815556933101929122493961378351777307691398614814582544981529644344558114558497640809527169984909643496919943336552224220022280042233320060477222839369363282025265166045326231250102728545963317153075104435596119247958811058882830223373350832620880362477317156554125744196110674523188514593444085230073882164830908364181842625059740911270076486181439833032420923295520870889798780563358640157847449574530407846816035009498659808966228914262170839025919809221786967581511390727207501784897166097881380550262974896877348536937905901356895102109683458683128216080675887237219978685596680031361963448513526744817068004459447463070884072420514937084963067394717995122079751833062658506867048520581752576892337285659591123820941142563211079798253370024691046831291789832215826738846350435577516220994845703971250187190487706688854619289321313058453464458067419223523565949482377468954309026880030871268126293656051701788715314362566503764124416691306545376054421397242035796533433064681516528460520795928180878367342201944431088396758395396329394429830520467846690302934872714181733035042871859651497107716311788968783205084148415317466278722927226683336759682758247562287071915875277274291418280289314731833526886817990967766334446401347010299066098823515042956849227436555195385555609017713807404793028015044689407763177757239694473198774937798850107965229246600472127099059774891925042961200326666476331391755844223091055500399916000531399794377511950432217193071568841500995724115913266723235976541513964413399379040075137899462567263005148539552565367322106778755834034157461805205745126304854929655236681764899807534391653705982708007142231456094066484915094237964721788473465214555761402871886087495766318964980993334878815097987052494703155864945103871212418906493163127797099104737997186212913361565838141176213509651650366713657134248439032832256388575315688369420102519746191287246855044284187402383436879376531784852682379859708079500454752502352394010320480192314893941687696165630795450560011516280007018870114782175822855488019898546672999392636893700487225279710213611023026088967406998070991979750856638836297478035975330757754353542691689272167555317323552371405852078015358456148108576897954818882014817827225613493807629328627294242873433145107577235276531174877906162399093356825316817908078158872368575270389820131049542283378991781725644770435029423881898839508572739152474472742294338152751423640722665813547539520328197353563491633446269149950052379285901876460718111372483929890418370994319100030328522204881311200732758848209098334965759698833752195355020897826654332311027701498563218022917179294524176654292673473384661712917888238395612219319337340361524200353092443695251301408994944760107777303355367211005029152120546174613866482807642077749558272974683514773932523696169225880116234043989138808281728572048958097726290303114034033366381811734124950387499162530074521941595326319655696832032486664900163706944218592032374854836672821145653181439442845229916798394139014221076721170628778952305120052649645707575940818965372936046698161563487983179470538894116451954169192692390236795046376238677547282390906362897489796264070188932718121920436641324649798242582826028040156297653217855865450160513733421970421530503787614605557134252972910660558672559306603652665043159946390764483702739214717684924193038636578099077626872384442623386213032971273517875167845581608716224723130860913065477055993876509552709681916271134732630024578717821541486917187803453917387133525311712387355511273969338100415329874498408691116483519489024819465038078970148242037545338664387368953257957942638173292532806800004275783140618590641519665872210836943926292566559342743225816958435634517002077690767548434255429687161654585820408752551185097858073582236416935861512976102044877991084919385760906775480387103970016826832324153140751309620347831033773812420546948122268351060309996065608048640547710594459377316865877132774211020448013160583837406215961771545984025250426569302870410966674186605928149810192775759098593629692689002093129635338539312195106811434552519844685622915513742259291289783818154198717526068606217849039452705211162912646319336606131507947212473817292280141776502143475243626455699133314109617195514982456554652435274942104200573008728978669638719152051776656300582507991214953380050083003599114601097382552532657968927842721254702562989078768269937445647073056164275570105023780669311696706680385962843659606319190420347991131672272562718622702810189877449075591215689983289415649398402889537259984924156511309770651733204028140643923331316109400882326437374060711167859498768281537511182031141168790552729687722662657889501221315419031730728147237861973000503387280371051364074313265621949563645621481969644687099431249368626515734878306353888363381638286549440853022218052925163364568731441427916224836211567595010108653613403890708970453116965363280576747466982884865808243820162580515851904308105191869061542122234126156775880225354677592242600745539494344070085768377090364075710832295575555000712014008195385341761891633317591710484286922689563172153212264700276723230995922619593214050180429547567174061003776439180248624081893892747303346915438126562432018200464839739103516742947684734144225648765333957010820960536678594238548139807111566978970109461701732796877435569317771987932294749274486633064275497481419692006376479031110685395283475772380519831918127065744317077249373971562253348980412289493079296347646807865018862209903621127019135854744751171291259548217756798687047583653381857351868504626031904553476468452081529248296908184066405066291182933690477038733020043645163799417813679829861781396320849061228558787460729391233682831605928718282525640283110224280395055703946332439751277375503139388008361411641237896576661718593128546421921315905739175303933709341941941003029168325835481533222944425736385177288858485218073466750457344017972858091206592212200366004295954296729810677804256139305101697971495739434364649806238253094547665890597749784897644532720596104466977102440709940728951244200324499272021590142899152982065187245749822681572558832468497805470263870829077799897557933479650541454368325702894850930198673503737693624934621119307914364504262015146495927922825478725390245441161437680969134424264021065690062836900283031567975011880892735050645784970683586040243959483218114130582789872081151023282474830204254792508297352307903656631418614957405231733353173090569510516537104121503720766941972166801941019230620385420694436087948103846981443619012474493241824152614203081431325473703924555215784667087826780341229444770117368378736396942425821811108636112929274687724088174329669847460606456584894986530260710249224815766478265799965094588987432178173071256336872479269299139872013274549800729398312008411398623382339917107494805304315045102742223627409917698715225390780620384172027883691764705525340665132630475091693002267350880369385375458324079454628490125021641159266896508865146351421066560660749449921072815359151139233459798712027121558188210518341260192757502913870066712744861446792791599183532444658007790671636671995278369122356142732307802750441247383777817213100895071865045286813885930422682331119989449241894365176130680617792397198181096020645893962928915500883688857799187387604852726542680362115268511037834851600994692403602675898049532320972604810674308537032849261015224424655737823477717615093258215948667507014806421973012146206010313151731697220765997803557986921465167887304201310313228618494869777268326274685500599774490387689871746659708253163561949416870479082965221486103911370191409187862709293014323474108696842346276309516113263546713113000632484289182369877714878762096748637813284690098107090758754321239812225836941838472800898851775705480403431869420729549836388483293578183786085025021214587907746427713633766481035279798671885676877593359013798682044524550740123962898956373597293586320469883968963255646765544065104046065058074799535696145000859417893827321859082665503041273167124337422661476752138254077812185839030789512749140353642966789042875202904985400994438416186940365976565516713573311574296830538419667016673254381201275294018750412986019648806700264612378453229875133625114332961134507906164010085085319336355125329359904436554514939868491552996251639667173288254808723692406874433436015095982485407836683509176511235631234004763900949471330620607572874645181727519359467982577039170743005953262374564484790060465862375786389680057701222500933666389171218289531087133751648178570781755137610676761959842060946855931199024894527768474875867121395422121512381443382378785613486983536916971529879459683729341560696315215996637146331036506169311225389484065578122905467995917256956894106411115447417373023404188144413915819069656596960979988685611892702221269639927269393359212363021113252733700863656166039450003776904331960244713478750741648638246739032881799078370242435973753752406063252705717012077983948806010512433353482088720146253497727424218414076682151462426685516832965533970081463503195166059250773206233728185375077527516781138738020076212884917345098265984778045071724512735100549447879736075737369687009334195038277094433192657221612750899420420803161715258097979650799017169735385222876321312050352652563747682377206084698188286094998594779973311854578864138122442702961827073378080151818045357587334302488646171201572710657120782459446695202687377230463714876391987993828300132274378655485793755545435270810432799242435685546136735961556183966448603388753770501688641629045913321830649951468459353408169316302743525438811685126152629962194271464699377489518671221724531696350798265666051105132530979380190626883291770635099552297352116763277650309607279565778589858336137669319511495161841975922204213844529891573935073404252988881369643270578562699508981253438366978741880092887545201574553586892652735751213965533830148347943157236829784810436777676294312099123752290400477739904099356958168842644197641753948060007785742273296710103656944156679931277181063233493923141094737615151235278599671547718107649592402215593939256813486759041419463714426249399442608691731908638925131243017693083965302841991890754901277796518221012003463989452436412808399087428270284816149283132972126319510717658855086273926504074322566324635961216794059276876509764429505442547489868530265108944058754702079420951813613083374454444071727577031421983553519602427318719678304642242260601845142419226114783683818088389738602346020655658960179525686372278468578303107380929920490506349226593987738827767248951111681707886560732992854310183483099344851846895930230204751670510778169488449909647176963747122148949156621845069048848215395950711704025343670093081892667703299623161175230309349608887714642592111472734369309722594656216801049140147026538565933546239489219745615744466460067323299418290323154579167828502157396181092334245644144031515480958342957590812635187639859278146971704163668797694461843981113672356208864657843533574765915102268312923497110183298450234799419276094740566013528419814073509629203013656285367670595237484094500517539109959376276672381460620713912839754190837306013077079525894737882357331515736497723155235838728295243634801822215456828373521025410910212723907914994473001896822437987147557040842801600391270766603522106600954127881398842133770444007646820584296216731619586372735999818746368643748995840693558604138518024727456164514375267264944830746844536279589748411761237761307880781926249886264078097293246626554264649595382884781753275428679013108388463713238477587897083332963986913704099061386128037602156043120222381991008023006128887910331062762432748901027432128642973177810156604880939531622386520424657010134402830824100160694990674083807297344241994361194737008392084009290296174916836721808109484502780667035537686363968048938487220097385199833676920140752164304744821984221412093992477573297733158131816718412165389777197319326352644841968060703434831666166047935542164954567258289686708985353235326776054392580034630690781441218085365638775041691369330544768343537236043539133888599547663428348690996039012733550259134553392241636147973132387879266627440852099898565531794024094391290128073950387953405293623834264511213742064926240750905936662974222721008799311854570473274965008705921828976354340493208403232699276438909331828459599800411773320604328331540253442779203986030137547091766755480158151748289730931987286893548690220217982016029369337435716351438484315489251768344102787961054877350182589027646962248104329404374394939795454838048963841984339740586368381717269392558882932891478792093485549580896402328472199743388262682962660549635206991654854386154445575899639436137754824412059456301436422437565834430094060947991233559032989422465388084981120226044338185864880886518736308332095273160625340956286837074307033138414110724146915462829581553495983192793689051980834141405073984790019573037330923678127428377933124168046790909441963681745453946906476040640764978322816773720644949431296877699178608276976670115123760849322876940789278491961043298297006400686204293314686715045860568173241315309612636806907021512014698466486461060107770577171927073263733620933890545368906277968463755320826225275421420680305847657894068145542129638140690618291529654653894156946659158975719248922497923175758518956255678413745138638762286324506578733758255647272582440275419647436369287836616317447401406109595598828343295539260676403682464485591119705776238764117881195969962146674779801384695351728617193009383277514911167888873515489968607715353972112399853358596972542766923905749416553649449921548983871859648271186824103106870417691331376913963021408277481333249244574838839200239518467234948023164405893989263869895425114447737672225069971597282559515597510492636485040209482782998087418933556713796795057865691604301584039134395205390236399407901203689696083393528161155306873943771558685398269580494355658921676004629481110134983694610621372288774921800535340338341050352178615905905340323442016358640464107669672880468302442205966951569218554278426766816877612586241792567555451071582187716726043136575859255001471132508813348469495706345460708653720551459662356841717616466516354803596133312106769311817110858292376545388822769832736682053134991873696483687763847673847020596525361589722424686204961638025683217445409786556803467012958308610515501080517700822012942070355172761904181584778561421448084919379907708135537245550660951587218854326658082862902789200841642686590377044259996335065777198620591784250810890077854578814085935876067592295701481808815792537744966855860570936751363943671280022102117069715061621246621538191554817049655332968243473719293777410487450339829790894934276659334694810682831067221856327049651493755485402091069497007369493568718236541647759709387977724459741389688584612976737187122073936516200838142902763555194602951436678940642835560736261972848097404845256381887839183290089516635346337052180720463385466810113974638478028081422561368479468201504647993871984555711813571230133945340202300946965154732388549635246383035267806567264913775874396121043200251622054227738564194775022829150844804457035460676334650186287132223496446241897330006213413588071921532209312757160493219468989767165942838114367736470952923393559016184400577518491319934608915494892017620438630707263724813557590793875160846540181106615481201193412604993519558709706516570213699047800827567652405722495958335859634085418092067779414873212159360580518710567379395941469099881528109699993983786104226689820888561029661674623309746383734710431160379430719649255880791907737409208150079712768799329543733495488716192689807384881863864088370958903087108469080731254783831115893511711975032039602966822296308414117099894532178657589193713924784565009970214621223265664325039816726850363382855332861728550362757418731408861600983439128531708263028986969547608567403240912643659042534946720965687367907063912960774125890200568044696715180128760451654994044029693677646730501569726814776462247572828079577430635849174400052756186997396284054104992969530864205885223358066340293096842145302079576836452950458096704678058735937473299010530315023731348893494699386187342122947696445131199767494533617909093103488794633108056333351144929545569438051420690442252430599844471810793802213438937448700166155499336207507455270460472674786178814866584758220821298535309083804088159847773640096345629371090397962282996637281649888458003426252533906541924560470568132091526574298108174158095620825707543531215890535886043507568820482599981904341363883240096504861807135150179287174528475520568337745768612474391554558822050598240635553633429593196677476482648646507882137842838046346112491717498902775832265028615190969126082381814274012113715470861701720677180708369504195472331611949950935874395227273460657678383317291651477197542024963483071580881743159730115700736469955125702509314254264615570760429144804881586915211818292527389735355903071561145315276710531460763866974930437044791388604567739333644617405183149245308881221144855113576820203199608255136667346182475620733421163552303536213259060622447697243238804655588633618465884904669597925405831135853871073947026002093133013247628232914869413743223209091301129434120065376388653121604294520677117467075046961459147882132840390824937418369499969683227849530540719092778910803218893807967873675015690304888616045128356849501354052061449554835375229721298512543025235738794535853399400914586836175566324702570382489976315144426754192526898797354071489699582737371264382434606106217187210411935405419166180551057478764501615716489227215850001997178536053709374085042487544052967825413171844263659426147757532047029956582587298984477056621922982481540283238177925431342368569191331860273030821441756633175686847492836842504613004705569212777317807907149897204039244058609877706797572548391924968455981706316932527830956771463050873085693614205559871747236468606289812294291674754506554986154163190975568616991156357253056027518085093029204907865559746866441757878417560892825315487588424778760651878831705822293894903784670552306761901001692946507516569064522480104329202209942776362904534313967952233625878327607750074746982575595165435045084266470659384600165082678760198919341173174874335414385173390418938871352847433125523179980005842243189360075724929537683787755183427122143583614192431947153781952178082346834646929620709305629397493525736268118947219779256372819654390338515357924079081309054747291504021020071097996743391990946528910906037917107597359037876370693567480025765750907764896921555619031228557835258482841228395612522096510667300803586222495307351433965171305614199539223774601056626805854220257206997804585658832270939467823249757016284764953638211652357283508099358515146909216196262333145539867267060879472588295454172693269180931041864193431161223937915420738469713451450450425983970502539727751116390765881980533428556155371222312793866896478941497125178035480557281514737397971306251511649675723454616761299797483592677799317263992228680283686260388923051021202663823452055980384707153439897872094377226732911972550334984006631721311995090663714219665746494473460559570127251294415764026341500952290658355745159265132782293844774736410081917239938327690577224597864815121633374341661036490871679248464409305743253649779540494711561370053318779642173030770638515090562159187835125395085565680377944874838493653082669810812967316280683610872639981526317848255604419923860865828467842895442118699057745071053279277188479499827343136127590569972641805727301338869831596811057968139448168844395218638357246580940523009219469660953856324300331862366834826087002290504967422863384357940835948510041980728953294571969470011736356110458678665168621779832382569816116039109738542052129001467981079116122065324904895175408943445208872694048760395735227584153986772910186541860340825424517524621807284008390916718933053565536971445718551455079949716753715201119855708176036671592629902974013382370904656492610413167537645712947604112880364914066153525411596135215245525245090853083487651191870680757436849406160063513964640539146788390352250226715719858965530301681364370585306185617374490605923303162532653624034165705066502616405946622569565770979941072225718613644482098670228028663441083092808163356597407667465435605566953980785666850654152674571374430423818390446393796129278388998796768813054412997987054685053924026368254251210323524372209978406462545161171191698415483575287145101942553626907587141691478774593362358543917471259489871565585895137798229099724153645040890382806563214759324040327721983220893331235803578785204602776959458555642750484647918583750467238962928777055422291786144562523020955413186226877887292451650413699121586332028567355055916367654651933225743645278836617292582891245151210346541279131968920318745068124951125700191382098311027017696415954308122660239803308204303452388433016548194801025112068395985016290462588877303055255423275422604926416049338970772876424266600402419363856654564837764494682798367541324145941612361156832212764122897102493700466714401416391874076555503834402352877164903483636138349624164401894854562661660780952681548735583951280165073422941757283839515984675785489423370226660618708818502595671206670311964267842791470984387304390457132623258010216576409202346300118548106037077465150487383623521553331540088734922097227416698919347937826293346186187239898684417573337631549180077692983992271179628481484992121597775804886336394760334919772274238136595421758548294080290814630279625346205304814387554605019492713309725884259003520185865847286553429467490638440186330769293243807951582783954315823442533846964646381098421116899216324589463999649901928594123471107387167841545460967343899433718052006232510492278790850824911601552295668250580568450572941677015188446961702041859710609633642965053732196284441587028488362952527147393145779979740813151805727469038569093060831780207464714536300416770795109956778138160510988324399850062623233677060804148626976510653142693958190226904287171277031178554897627229414252964681292267273094678373872547597406491317123955465042099814004501225966311192277770890194114699646244517592491240774171592987125324362729337998112899520766903483173688119862946628962557857113327331726447142503657430302646517722645636625706644042712971074197058407507085122987823358541739454118886907439270640731929354637421623677731903711560543064205898899809834219007992700132698152365356245888849901156360030216126548043840546585813769062572161128991266430566458462409414017717280324075696943448303992213062055879281379670943569544640399085209734461290055397161103324842375759492861236086878466665775401313601292809659559859677967260219641519842685419270763009618595014780647542206560673255040842789441086794824691267508355239111756196028593785082484965008942335469487588405511102989614897701824340667075394186628524263475727668914724662395503794013814612457427331330530971736317768045263212145502019241602007135618921595839253440610838262707510847055034383377565379598161858897473299877900081657620035836873137878214160969206367383184076193273721061681971410131774381369992302973935731104317629317592747838715731023610320307931249018478335828441709452217300710594890446541246178094402642883634842947214989671028765455683342248589618981985591676915983754002679437360926362101687583518821087396916920212521308935487216209015794534565749569819721722248319129813552818094239043743446431770769565061258033923448453915497439874497819453435671644271935412815913535854065433365885689065754713319974675205510788059375951132236286525754281204328328915860240886423135973067910959605225494891312911122819870463740442618462181389136472840906259102798796539393295853986951306325988053795668059743517704140443393096549647374118572683580039755831995163502967714959142275468370504787363808468785027188532526861282938015322803981259664609017686036692686730595861561467413002747903683169662047114937352191248823636231283036175597725061958093919092918642856524931752462650650845736481001717785654600112514593758081292179482281493684158254420648775053408863640059837876208229261175592794846665626516932305539479451325064022890978999457952428534266050986586023657315702538754416560770114538399730860811900695744334916004973350036919476385751773476261839044839058582918834977074853688681184929438944527711866227826011889397310600877094779916489497954872673385892696011541304556358536512498878490860039660007699433516322770163451878139648031930680530692304826949864589542181811252748177727703357171492055401877390976959117662165596768932064968228893037665032190846582823428129218131721480620430465547667036486061117207170152926013498171783545513307478459227931541373532747983689252502333149937509568091789505616874036825509727322921324837335237182962524925686382335505689851615696509199486165200431809024757664447347301143084656642910357053835077998252882681340498613171562309648281727929200217057750792620223996574272525602053707510233171850429653104851455651362462492817335502890339846020883212891696691105260757588077243499534626503063452463404314069214343872557184545334566820660679204783134358269344397750235225641736372886870426781545021656606858662906439069124053983847267837292469243372427630135734681047580215072173673431359607833385186865399842030988707564623151094851897326259322052823904192488446276168350483871481688862032197729754434529526678395471207905809284908805799094589881343614382838649435245216088022987371344945258644921721602847578642882352309845286828535313701214057910918073128820529288896971827578650155192108308364591269216891717970458702780667045708636143113512561787555469735596239627095517390350132083746602737377250011217433740646904637858151389142324084807272331192304488139815655384881086113080634301193686796315830322654296970129465960560236929102693185929886013012057012373689906578011966691232044122799469443555685389653995285423120681534956439215965296867097473811820130416406659897941369707053520427335213372249615542088403534400710248354134826239242531419153260508235005667530747383430881203346577067413337266567852698743804302506056235400191735065803359311708407251476691095027603930736901272996145298902114735378643387478899703176234199696517882638869301956357545862217311172676144848646955689468061398596781792809324195526896711335303501161428001377949973583605753007410011582536078440035127766162628176410353453080612104350438348076129958882472550231432109720290581276658270501061197020453221526558651020561442326110298522347736842310321587164074462040473144264924023661635257892881658724529489869873555804886162491202185819596256921875124170027900378362062154417804263858872337088861849707212021807657852022865572104934767723118160781625365328647282933305747276665723031809750205601470519566304101675023056998885505753574857695239037595146727239659724344383034903085178978974030695734091097874136073341755878749137300962210311444119692507290721065309188111295874986811383050903495694588563298825967758008510891761921241185793130994921032778764172069900439777752547299157862346613702692514542074342743363682938238990505217771144562097748070752222333051939237682089350202434517319380912377364061813027757153245866206222759778966822347017070101208067141557497081457589163641111597324887159481841652335827263181352557419035487034422456063545997575966530797910408207591144744369773286182081861551265606453157346907611905680992728549763438069962427167857126307471916404573809210625126308195147952834218900944534267772297162946216128341954241619649321545310336838230006307376539229761798591898378132027058899827733833443210736319887148280190386646457922817593936780458796273421186383914705300425222496194189023857639457876209667650598129005582763017573695839599017905833184633757499288559670140143187791031126973410735593431240179167832946649397442136047996891179004795191235853402907030434189200339857540555956929805783845752501860519324644089176708530729659836898777672112541575523089085771333890075205697398406981186649573612275247141788384723660459094958042700076438313550465741640589146972754923663988039636343528445988236799746389369290598320832537230332911651449715431229605151343768033640775393381688462360613354582236338917940545044793183770568024324784424172882937210823349701911209310604230729242332779374173345396543109922103952322175192602866995237016242091347687197315317373052941651382526932039282188992656993572282660293562858950634551827466345655459047269110354989084675958045244908818446327587560432958464612667687187967157910012252963223896207453887251639346228072597111868654021412951882745606938757338719611668946533991312153548153331034069371620873063661803677371794082884186657142618211563598829200159601690549889213831896580722195503064289869743094607513943848635448555233381418350205732817687179456141581604104668691455138146587664916472753762647797773638111296894852302809352291969220344585826188635916598582246210596944232052497734684453566027205138393263469274168308069441725992283910987537947120531354432995735937579043265489080803527214348161522890517724508350379290813468132093082180975553207855680204279598146186507137301035655434409003733204978310562025926392502581957160296548759711219380163535233738654983953344869816751093948336380306829376810415831757364468027754243341970224039725331223891079923082321653066688602233011693997241486960009242864338971096671395707150147840974373256618430249620794265508823417269877354898633787858841547328378108906879981864398022033361891617334921021006278443624798944138970620991120000799560139469747692224030378964345241038726158718863243467967441348835614941438260483674351117918880632537368521437412225032742701055342273930898779070577804397324077378878657217946465826564336440126199897020778417563347891856477932413602569070047180455870687474292399181022673287066517408841348667763826850132701870654716862939302809676919204087411484288640684034728425799719883049235049254455933965858084423175370591479252076714122338912621927936834937206236378990040879993750604947118741704350344127650305562851636559562487295497609426023877145144707022050270339696891888790971833186444584358539087202953761762202259775102786357561781554599632362857118419881717138418031426459285478381942655108042020003862792642823439226632205809047624376449723403517462131515254647826205038466579207681090711227382686286519173097783747015556758718726740570161613283917763727928734473729980922854287317827613304686025630939155923751469368110447403072379908782282123173702342189266370939845850665880082250083425723493635152914484720562740928662996500201099762322001836716691163229630032478834609297282037012265742023306546551559046976918496887683875014167795102457791267002861339602238068316534906081112905543481039533664424161450096520102570636175166822485028877356481166170554429158739885755827409829596839228765447490229710292840986196984729008525826442120675585850350298518619810424782848089208934404652906637277016046140106383852793779395702707789128762680049144794155740528082030489850399791652797128117785823353790699720937453471074644044398864931684622352376981173388997933546100171980911814024583478804280885266113108575908416912585710711582046961476977021169877965763864513950981340908288802457269878254173178103890577497575684774836293900465121286157934982238576435437512739727084985354097400357066590468370119427717011244969386283688243879820148335741424513730675012390814469712977718561708147045962671575077281089139333236636447513036365209771551875179821774941512681367068360285715436583708296843358716866729034658434812838505272357213207924221424086757881968154918826185459019973993590590650181478716985096232560858835568449444452948064832944428201535132128681215964329616287731868607920747164656249892883428878950010900539545137642092649572887638018267558026060938071490148769276629512263072841181033048428760984740720019614812921974757371872111120218775938122920739725615660086347695575106025088683588837288583650550558040715588924340165853827493277852445241203192080623471562189292286071334378351291023470643241224321389839986038456868550728445661642114547038791578255861865725559057980677035558870682383670480215807378327287093877239858688814495312786153847653990500315176429375250050476390608014089062173119780684776333415724527317010721438751358701090625934082517250555311953309188992504943575582663439022632203732944983568688578010480769228341185596867080591991352598529990115082109026365959546967859582211829702066818978492062107330609334278544992323510622304578969692780152377586532759092345417637527189609302287588577720410883443523182310124924596405260623381206848061416219346547876917400027850934207065817373421896504962719407160442175815948593842729244780925517650562410037169554190274232182583277591602028187455045342155890074192777228871721956072381553911659148062475387391457884312572123416952071427109144073139316950183142736263906658506219457775844126312274107226336058616288317086598898090887172787469024118896106201598130369464746813466142840050345519081107423648579526870971099046468822705885357984304424985115346301631529397475482393607816350231083427759707434763444466730840759798717759197280941045902886329213427232763504744940770203025395305888629910091872307120685722609847408579156298732929343205749293204277475369756445889653019300182380749568351392268318126051620658723440055689635717465915725726932027391131660238569427257764952533613403824498949381979527040566804997693410734913686833667856717150612469610996090217491921777907141702102826646377279669557691284458274634084108934090524204041686014625862586454949096248318336581174417816497286337126845990883515223024241300832833255544154094753281902619965255263751880741770087177867290737868123524987220757781263396863558987033023200900013040541360229552711976034824284737353916677301714203947352009387252512708827449492922843909220381800123246249390249835581982868044524857561252050815995955244914187521506623866825476133409201284805059471197884034343136373257233264417344417004277164602151356862735020824623077440855026514780467511200351753160252026964514928376811083434069284441334285872101304914153029625845407131061821990701437324962569062295482133607909623532972704223364719151946195021861157908697048589199953807489666530795994707681708006986982155069617508982915418651984072979452391515391743628192140629711841681812403369895877277431992306094082937202609325498343457206024693922515814619746208480947749978475225334435547530738010809340940319091832869483278454571427571884394324885204440571337909435306564386870587354211236293807469796842728742882511215335326846246771630317197833095048345503962376527935288436842011822527335896091635442462342315834722325570043491011613455999166801937528772020695578159328767307548598241096492238016994108106677891623767617497645482235373364540416373185348646791798352447600010455802705949691524759972232503504780776602299527358279592727419632189748010759026402613750074645179611025716066536477677324586257984283379164646171771490110675115119740716062858980287032129812727952898177626926994894850543413208874685678441596786558311049034848619321642071967915406084681732850546144686054412556889751965958974189455524901410023490785713387917425102159143467983710992574267277826498992232841562275615501485923457123419386299458581740770283288793230573702016565727024016669562085880433672408575355538124421832856729409851730199912152195940319956250756813758689787844752250087294485199457561692252562223156894603849578731889739664928811310546431024312495230295332908636537204793029819807526411587003414278054491812962835813170334872430083662623087424230089735540601644327204354808723337604749038732814786242499003363865483326567636014050411184061041607067389225145469670226238901546465696226026965856034013755230723889869131764490306054136857375589358188953592857794538060841741224358619658594885312655314524184838862074819851697178979526229412104452920776698857238338281271553079491222052348636235971528743719765441009022371333907596589360826382180052105079680274060710933302837051108127778231490761229425405241942190530140859962688534842632130159030528637826229989801618931868360665761030855205141399028521012173640964132761033581221286966006047337478320633572137784551967611198959074096877696488479482444445710598746614263164998346338550672870646756798391965904709048124423632481995798286312871563361777905661098950238529490180038924288378459378700946965507179948294060337928827363569927635416821895951133443831040393939116091700475574176631710289701496034270175366212329581170765573142846600558697502574901566446287648593944720700046040712503636415815073664772739750056298697926711313165288541741306588870597865117896908472640163541761808152159545754678466075911551671907026988914786892836732882545386169270345966718361277426257476171782074238666766323502990476233862141366509632967706786678605030833216927904766703853911753668739693855383882401440984519830214656536916143844466240013370412998848031819586992387478491591071260002141368094270640698244921727635579291509291311358992014111916344018649969521562104536300659896135625338271336808733989096872109300720256987148542228984231709062531783853587636286232645211935674087649667712153870209268201786849472591793296929889960783583128401592534545068962479834961353149016857243578476392095236897284310226380049215736259929348210722071002286170480306743946014329025445644310154198999639865811178768608960625033955034668501742999307914653646139301654144037560298707879499824861951993189005183237848685681664657827063874279989220442477612783591293992022811792726355458859512887111641962101803820172055034133260087894464365589896450682196521558620901601073410757507340502171677686980377910142467148852324102025036122020273680660168024169083293229694633545959413655205076806151819963948286726226380214780607129576774132170726391810367905325644937759612230062055827884946589890322591379366546246587137644708851175965640315958454285124731311977515730465049335712660828379467941994479064721705540281620878978817483353882289505469016540984185837308534122449443569240827679233132108608863752247729291581750613906915062567825906772708041638689523404912244897516980122600933423837811868125724010719468043003092990810923751419610033620183649477977983222141969252370878178321835243568193001051339966399246175099197426476019719284565678250517973375162796392077232839387883199521811480130893830914971489596998744976381896824301039942493844425643016400775129524886314956070267988988892953906843625243423622908114742780371304737474320102883668280533095825103828642642923797613174771397271120277671524126467622525653130609439520442182115269541704482565847700418561380511475318732688849773626227423267203179726368152114651157464137401070812019434439207958179409418851431093124804548792798683022106598610493115297165340976437652808799409885795858769785014194819560222043727865934615177059054408420016015739324543238211450263772022443974868600056116957931571556684177865865553522108422957162214851638043202633234771431519173621230993002056693923033394422053323831719710310206134033375463372206743751019469697147613843950061743101976990694506392388333894009319638327883144869988427836545671574061449464283791720223743107848102036917353351784666465067967781659660745745231020108906144345613729368254535144517250020271126170260186630950994390603216729163038990670085105228954163004526028511583752671036818962613668071643545695087069591748782735674888743050256183513197332037065625372888095724976918417181373684882732670767951970630027357492059663794955411259301051829629039826209860252484455718541022540357340210139706152492395646399857734218208288491181188544408507443461491674375619419034503604212920272522551813670759107768801299501499956167345041044817654668681207072769813995548672048088489664212472487091970122633412834257394921633840586890728841316910470242068150089525732619823548149220518196850750790488543591060628089964710768471000009172730699135118661944910603018523811139968817610763829401273839169036369122246799743451929676826803194779035452643609739382567102664805718662870891723947432025484645801931987249900312763047024863751695307951638747964329854122217334918999767396879442225143959649847029195598185289591034865659659152944399563696101285414052932310150336120992441365039086177791680939965148400047651635710397098547532909676797665870075363214120181069457802124142526060998796915205587799998498264353293773053142229251090525943321485765592054707822620656520806367358119156141115510147917928376081826256470320855520957613962512359478327328314748627661223529856106925243610660835767228096088301905873945262632909959677003672119346337928617887478480470584734695565026823773650019885748323077530937225216573680687749361758315589910916467505667883772864222499311475352383178092997194643999943263651770689428929663866029272943176075883375223167020048753414122124114543515780564795867610150044810149197760949665322110240632497069351125846679533043114223952638359465125458068894679507376748590476389638327261058764674641833622347706852059952594794085188565848695008465826531386304264610080174663243601969150562351381311874905827772481895128372139816639290670259405447277054397210957777924221351401374694863365492302945933839775717801339509415232509366444133145605318867358589578482118419393635451875505714383950962596927094510700271513022013135745407175706903564961984847249845487929813576735471817418047557416229582681940623717715016463751011192027894299328005798379766774436386614664214624342810805015348147768649762024278266744510562625672554433532458387524991526362045480526315900321487330907508615216515058029043776194443130178193015311370159439923926510665379526279447786873567339030128885679564416449882227281122947187524224092580780615063699285530503898816627477923844672093442411406642857459718863230560089455097058510404546880495051439580123417854100035834045628484171212344240670546916575215690687977634578592983023356800530708945682336981562074819766771614195834633468717035773716558324280354105349587636522784479001185925708227537625074096495520503729363581920410131844904977987512773811192814911558563158057606295587086562158347882061089556109482241824756575042310837610412498726692827826104347298347744222973780736007780007738404882765982449920133796043853402726055160157654510022741137740156755246332088648374390569914898328084471581970157203750154851803166239316370218951157109417535503858961425761982325812739865726424578370763435278737711658177776342714484314434283078453056876665476707204144227915746074631928249093218109838833347896578762070578498117262844062370830362841395910576883709124202512101811025403796764940045466907990509593884310743069632396676792342687815624484539885474112183822528540587993339649486701638847949663789365490896432713443178673432016962981026100274307741862267106124998208304341848348129213810363178809699393444080879505243703917417290161398087548282952916709764783985874957789048636287427820142067692203943596926147286025074206549858827553650471462907147166881910469421024639214818142242197564569264139243498405717749376005545629965588831651562475476344734533794993736388631744646924321334348330163775174354631601000461016258133133435995384582520439888255543864222448373214328910602395885074665202402064108910265297015935140413076091102118337419433215563927790620889458189937066891238887032202629547084346248137574914353716567978304045098028208653571928229649725049316019953364879582939340581160494511007968172346972143422966981583481318452039072807719202433550505335391960991057922085136504865593224698945797783825768762471710363380132767531886624041297802948148096220769704016196690995323178732378154539940412224597922065321858053860034031734214039652555014637097649495917507319681066142575217580842201559058661313929134595481184020715712042687319304069375209372189168705180606893697783372942230291766450638300319512587558170601978277380661498885097090805080594398768309681289553864076009441266528155040813555090983646280772682582516319514203794777289867880388821539280849547025133980698257520922187775823419185576046927132586357294879995095659619033867252429472700413954061037831371110660236623064368052159292126764673256623119384375737430054196024338642806433203479370418834604125895963373753994767284956524384606490459428746255256490910432098494308573631808913341637508363853521746012824650617642086338069458288369437484873242737028655435299042976852676381208900877227176210116806281247181429094877322745987513876326658322630426381548809644397633490428065702949665177164835037304891079135032769188259826468794837904487082284692311388100841235615510379944577732453815035935587870748653321492661148748635183182273855595528066245122382598729402223471410636659147986502079116889223063572416240372615611351232520791901277127511514639440970314234611853870522815597645445843177407446234038053480599021169731600462041536123263655702086616685217622280088222362906995816598546909467253594226428018292741002935044243418996528355189311635085641810174855907436611194487296886219353203260131178742795242281958738918442112716513922999851996399879841521635436956083609997467272549708288984138702153759401067375352219701877826211975605710123081619599208574670576354630249336854254136606495635991505409644327648661377587032843404295985030310644413971970845693970584532678356598884809178332879186926014022609156348057191882434307527895945335224254797222744158986599100321537758648122172698624463817263416030021098747093275303759425636274247147618266826298826750656300990225989315130763202726769556383127798260734581773763861432478040060930829082085316544307206525819502703164798905305291475903650469700041063964728714468417132132748836194002101106646022810262849310522727254248240017129612458196001194260673441601586303253141868587305791644161246239297830932826683536783322027015082468550842686213847610841296927571233494152690797342014557419692534426274093799284436627277650777872485163141431618672533379206927779921534867091180722059978792515976360124747460623684151484285603445897303588027715583102828567720943176157690570472657606023889019131336636278454051065154752585979545419128659996097787892735489831324699828647138077001822011452754291248006252706978351560974736538717845998545919662306466847465683825475119207494727591914601527484960405332916129945189555814635118637138990520588295800574077730043440902526232598663559630721284392353228380383032969503204674907758368094151337014093090159037587223836135987210116216907096888867860138426764315050532495809055238333586373094979061140645774730837588896208564305913875259432703782688511009839418205298303218801409229057573505038496024930949028556099524803360720866540860291339250561359703530869710367142316089594880873316546556858606615832353319687211946678848260575311169617995498256528768659934287556877029192465989083737611528598175959338689037358309207964539008273083532742979150927021965035653554568692320208368793562883991559171730357343169459105393381948567639182733217304927661059905316430431236518483691976723999119692537051545455621764783710559227668452148756545328134252638735763821281207692793087646058884845364349804137155386932824542662256005492082748555853128761332913620372426820010791871072819111491618917404160673719553396222740157997064794456809726980575948378695407023838163319820838014743100017705161877445982343501011834935868405553251210934276587402314893348259188197384402839570801285489794274176199124124479062272958181128069311866233266174645857554234398693711466579721134517204441816472270613907853956199103753585867689280179248753916532078400161457022718338503820014231020899262506291064836378266262685973521421908015374540765503696769350452595913765664763036947372520229144472224936201823392218152302946380761450388248588601868788486239086521209543196671198634396742668208709857230509088625584903647939354643566983555207142406238310662009757028120587801717674159618738201049367159356869269330920330004064353947619414172580083158417119607780599538659244213868038444948569025412178032356239099803431593400124287430750833062262945211949309363494871023841375715830592662840616172249450633930867422152015750820969453994510807793339785524248499014348021037312670375902467004745811959420645089377500092214548144461137645243105127268795770046369058574574001450278635866427787000027536672713320865316804375936037262553163287062702205950865090609530284159386443518982922547619376466266978305149394498963850406617208996144235447340949388999601115410478735922376500584626719949500983980337867552255162768918591276155633251059318307847378968871617066243812251802172103291847215436127486502666173358504846045140458186951124728806809662922629271547700818973518171793005408841449456977193534829328314365437930366027675131281207871572482429796219875937845352786811790772715436999769957512555432541041522011370268952469814783020898488400644071315090553617567323441905115239963703420089160925112812623157909098808856601986253041699899167690630765647913003062304043649143754466818725645915158161945728094195967453509061328449001237296003297815857440776984996908346951847353886089614069462893906429619014170213927323476405282338718227932040383790218094034726923070702193412306382726263227867099003056091930086102991318684401666017053102591030376588394258655797564587283082187011557320338009738065815749188337085721124356611006579216423135940766651762347855168229520710904189304185461029143833943393721345144374563210021915869135338568183459240451472486165690415533140714263069532239048021470717248741681890443561143946645649032357984417991390155328840175774350635739647998797695753674378505817633113741658790010340909948181756435708871751284071062456233000384819547052237805064293349709912500089807924273912846373239154863684593443994641193347208970736222395800858821017126783430054690217427597605971262237024509821795734682882079774090066777695639288261258218519970602381690305445334911516016813142075185011632599188370246340100749257164119491578623189032990727919700995556307224942495722917362018836779152656193387352399734264139914870795478701454578066320983111042306402898075122786172063952294877707821491295335405909709189046351074538263009191084275771027164445786413477912436934547110735056956172809140213418401757703961103080696587877378714453551140705055845729098179285423257631505103267351355647159083264222772542877822079451765529710887840250583090244039483119615787421979398160771287215665689150565136882073040793177345769393181936794575620263409826444629244205955036372018164204878333634138346308969882048939009633021050887438224199489177251794592389045990629050514177227431079175856254241215911170491406821231100113573769863667879656551721029401898419622641155711453856109815496652981772871143652799127577813288326379719407082057036762575915585053714383542422777147707355782388647758282603399602435368447007586657846784581245366047806471116711600270574252120513316764375450627668546331685404534212486969367708145804246677501501099761831629394057508114991810278485256375215338960277702657466069145885313481314910170473067092959560817895116410603038060778190268278551194765406908082357267073342631415435487231676801172981994629059175754609676317843149987617786294290141873234767728205956766379678466221102364249611017589263552432238618541753827474158464822049689650167508549487454571654480794110087565238515335738300907136444100930884759686932383598605134774725613876877793253984348854721970277360059247012584557714083440076581044917402472085201285160368441566909577136164723544884156767576065001289142421500201268192144283899177212435978594906342740408634550251673817881122757549565660013469469448764331640406384816824096364424364075922123059508159330252616287695836700778579414459123113545061522242080154259285210493308620324643925012474449584842447766822970302701441781885419173864342084534955393986270772599148273426007855501361338102384445545157432534201412048001096138059859343590827827705188308399248326320690906291333713159922869406388719603020696263035912389957968223282653853565577122143725655064945215187344614814254994351983989863831776024785150928255223914048132794166082872713083587795357445122824552150256457721865566711334054544786860674187430479459879045507132393597660921830214691926760912476752295935998584431016990317212881408585621591175559218346131609997077541250217865421666316397060303853008275334074761140085254133021806304980166476658722931974889204555493665755222714500707970071024633802823498450172815306619910748991987785681064443945000797505233476276510211398698860754279630374840244749714394918681538824619844211515138714179182757493628234984967878949765121103296886706404661129879999045482533504063463427099626844896354126215283618687891071830872152403671796823689823878742818457338530500398140675532914909280391239992768262578770417146269438216316173047086244116198086153113081756679681545309233903674398366159652943971638769749747927160919033098404530770121019996714137448208935170077695034969618915514522209015847025721025247942179652491565332139365855399719691634659271011923839570484525952111358767871577787325034267511253196386602568554256030462325685781584648200053488212712891083310885673957028013512420788401705232774135987987925057421763623613441383886635856268930168759987989838820884422722987395678564075413021610671623188964449082855000619901700135221980420696816718078192370517046203997584507098026209891398370468040762517028260255386872130940866409304071096071899700741099028989040942357179968368894468088340220622887828616403333075980956669039640949318694422895964254678058825415616561406150191000450271883175297242730864358882080145348862616632451517262420437856771026395274130981333143355831418984094488210612252340246708794946568816599716468539244097485517029724991358530095359384787121321234891240847406858429770120392876875960825419083660427397795130696185457876808110516435282213075743880902783633819438897874305191682064931082979486331448984311710042620977371494623172122581867001841743089895742673146615003146479893284916778750021021311939352921240784976519263676912821460908677413181729663464526093560748361851623836383404016708967073458913963289730737965541276115192885785945835944004008112145122667351246777672490315556172218843524934108415013514868898757059715302063571813372998991653723825746165992838646747907166230603213436554008012253763722265302035176603782004596570484085778369342398095317108134102887606231241996981169461281206443290568044235418469898610628508706319711693485223761648417287221330522279916456181799413464516663838949962564569296748138392508401723782612909152058327597978532611220892538250042130867539582657007855203286903753309753040558646943320639972920453300775790579119773505108883810384564828749092460732538566163703177908888903193604064239775075263383544344063116346232776101828594251520848509568691222096356391241609358764268903570814925166218145695317686271605014325776245287465566771289805369561440544494223884571859265743698162331224248047930567440004939735484797048841222540049386048252172435372556193766529019947556547133133177050034038408338582652025204190726141422621858940586434863675067807994717935829641013222934285647146669017843384875966601430073568011814809376695076063690463716458098177991516762190507724355575745103978599815251717414661088839112287548776266775279344200723806428924402806321851153198757311706082806122755769325676315841684803708712439311349020945633600067958139525222584447591347774694700018219154746833755272719064560467774384444366775425392604722385364793235417838803103697166603830078219987784321865497833054127848328986252952980645089971302096401423366260975815317621243645766849113082509694709400677681512977457929743143351806047025220132145754600670722891667881151877311158383371854986554049606496111221062685632547815596671799471468241528812282590072387063398889063031626073467855276411318321552214913118609461951995716860046953933426289375671674454467450019616299593798684230821018084651677346431061101251692597105356690603127575256142114793470952961033467837170191617395429032989655783189477133923300244261422488154685012329512706204558915017794067419131946765367733902781845622182990053981536500163785194387791796709384205733785759537762059542435520966183101924753348245388676991395360620118927819454005927819167882828467098972029173064328228801472584326482663102773485289660510352879147613726829413655554171682938048350030244385383059481428997447461719121781009945261614755195183277651665745921607750444008639622550262696585898944260581199155354119110437483049811620160847606445598630852391403363474755385877558389959979975963405427416599643026846128047550386624482566114448592758833754279125113763593293738135125748152616142434070948138791939194504337752439618678720240798087654701203454000093752773818711601210753249992399339221535151703413191126427717723037054540903219421490098060267344793287981332730558517465190598096079596673473290512759638903410793990003154875137368509723700215344734846516313426111174980474622144995744014779828067086753659169261878115067608714236767763120423011565979337418729114801852100161230899966180536788180142343943165503463385639592047977397686188745562522612457772799697889912790631585433021600357503140031125111046603258875048755278861432010662841129183785828268471545910732804199187185035536336151229637677930021674602416420980396779715824501114716999176942400473593965983552539193904902096772812639327907725417733731222833845407447977204649623002419769337043538120381936354931075339346037538950182598200787610604630224692348917481871635813496687107870060715199475964216378830834169179285910187902758916802560003198770634707352214234491204089800988077602458858937614844117592693326953924781342556432228554447797245003216275999402486964587591846710070464533652111322004726418032265520106396513865081775514735261648058146938712780545922070278847941222981924526457941425763633906450351727415587470383871959799164579218499535964755792783287630965799568989939622506722031196561571961476095910457812208671845779460615017012301172025152106820060601583114988454030364534385800861240220292860105067439077711999493795758332731989535409400753904847457792747504901903453467414271193668255361947753505464757541752795688323207431335977030505548820058295692424185232823612070828940003189706467935878087484113224077595554623353096907629778101912142248723395031356200437233499023728933821461478661663957185339754579974500284770740466461410612392671110580236143572170699888661077205369253792290560692639421657087687539435496251337201996503797835262745928099693450602169758437232618461357856748598666984612874045747810161955737340899058919422564155427967914274321248099493288578903359564097941213326906558313185313639185825620578871244469705941570209025680138784448665550743057841048590981402629810393931203420640534023428999984334384026899425865041133541624616586992835894256814947572549711285026871671697642358400620647764878238756664348975124350948499113100691761323702752099038736706685322954004959513936336938692001478813735047883865521650892302747326428368881636497186886436176868281338275311719457425542688699441993815682165647402792322971060224727980558941519071284039561794993487118702567137196868741374345867740955568743543546993686399593226407788027202478801326712665800844354638618508636563074431278386287814816265795570731275071412784019558615601630663564488967515017491214880657118533857133581371494345742907269780436093021266271073395809291260900938509030201336715524454790451878253017498407364931718414016571307833269145044225662281169311773934997976605837339767528235468197747169050343540811929347920230077282369829653292725760425075094670046183791076493452101907892646189932388798034921794779349798221722244609222366861406216325545326365216677412812306986332722558760423538607628416584091993214238235778484364051619508093329616781347333220974674693890496633770951673885584013473194679955579535652038551397905711839299364057015450019784067745893241552413671085169287174450025358824711658451762448829854199506609896335471586352147627523505658973369388501595223155449709498387567036999311834185233051835461620747705965608928399567070419848333456005461798214671308181365517800988709172004582326179652874342222458456299157369068705317222893679057712230141356878574669200897711019703038607319791535120129804541980462047462856156013440463437919830700357617003888980510591608051040316300520679435138177098076350170205028460105016385963422589981427602273915772575709165367260813591964875754744999758979504147329780518841887887385219704162941257901559584508968550036574037213486979875755860363361267638297507569185587151161679988472108804222286829047296323501279090057375272708828794335743345244104662511736229474636119250350415921871573101561817147151942603277159756545013189951675944828292718348666813803522633821173727285225332674713291150213417499423663756002149551186663891784025477881622710688488416587373076614586838055321056347169460941935924030118124960423325669599073194841028698311152053455416267467963789136990924338243293982107088697053245217275576694139895598324705945797929612593917335699736713866894056406947273899759090984983259247010826310014696337477873854132128363148867897187816186949953165016181125782249931057569435799756710534341982217730489093059349507186345764523219322012797958006118074197823518858453410128534142959371940573685276841872662129151783135954991516786497733647902881300637254508683619636587608266848903228242675950820681309202697670752925887138382858250943479597752417295869176431555023304946336570226601170754718161741749783813346740909397650411847770633421973929268598077042463512902962397338568568049401820949180425580228861013173062307898389284985253278282293633579391422123939899744867174645854289725734663433703543073613604497451653313677211286752758940320998348867025378305896644908228947086305601034976342937499503070680239633906125351900461151229803365721533431126312645225174638622626381582976710919825627784949672900599972944405204336516484771099602390095678879862329263796102625474915779502760584111276445055529717095197617200294403636489986917078173475689786638308372941105653455827439961046889025952475889851470981914758321794613829326936121029760979736404127962084896748905744374217992007199907228276546340820672385801012741037153287849164920637614440698711983343799885560738152615376544537892396312962815045672333748441949046790506017857181806331975892996931943582912727505114542649601179894401892906215951656062550995210238864007388814699224628797692551000138352183161377128955800003621123254328515069901315202354065492657638030956169396987251668700286196340353299024931595432715948624737715800242414856388464158221929314973630439023953586845891318113281104034607751518896302554962275258333995408043250880302151718700751254461575626274185845884149705113633034973320317977056168337681862651574119236976255691716653660067957399275344506782364816145596182093716619714617517522570479580955596033949561811350089856114513166326568778145608592375684069246322151176526690553854944502584744033623828326815293780505097844705999527542541143968440934254840775940504261006448274291640240198620861990152512629411966923432505926959782954077742740899359826676579180887294096389056051724134585148434597270651020953998339772723525146607536945739197147736878256890743186400528067529550348958197957293517682037739439519184937361590611222058523783557523905053379739021614255804744346384814560885783415403137802085588676979526751918347994311147030979971536367886002114673355148376123116094005128835890257891783496848044706089859292990756646245099073140847531609936470863404786278020158525846665319713699121495990866720765958726661103208708932434765761330682973172920459931239462246410850958038748285228317674234060272675674380693096842280505840212307352031241004006090634818939028374863748526836991997247071601569661521114433974379346664226174587128180674184710065224952254142121323531097533543377887033137063246268954580564838507197904777753380369795518784472102974435656066678633060913117768272178150871220971051283215652432764868771400202399824122683113515076864032969049358530493522836236802638618424788244963294977880118847266696495226131593817213510389494021498171540030488667553346639718305313464976152351961130937491968691329131823982075039947561951144527712629597500332786711933866462151522832247326556218475022444624481803493361316522191915695787686001126667861285867458500594389270136745775745656556477171891511922164158343526609595770908629003358734678640350237390603275134608794048383443863037820462040534253419637889508379299213140037942004768631678224435459510357929760852484921543735273913621828339663590609418490790469625006480830938203509263080318649177175867595108674332691149744980532014172300119747065437263412101549352952540011943849053737554185443087967856850067997500508143663222535360505473503810103425825790983015169942477887200281203949388606255791207922144019612580657522754639356593810756105594098674047195442026317959350082698012040736895339810623345962158414248716748174228019846088703711955664080303239136158842714028424853205928386664209994613622908595321411164438072654897045499478492418658564902668102147381022155556854938579033420558748712655096551237474175472537330588628591982810824471636002224511409121930322335343440408510211354293554272067932425668201282843471343610741145497509655778953859776790486041029893770374741247941598372809456969196018511244521695169444447806740182676993159284351120982002477967570978585037384557702312677547828606614159776507652245576237936005188152113995668232658110234199641500205354430666416669940564214376880673533855019973312887389577454629428534504208979910782590867057572016437964518008572724903053549740628135645482159760231849836302272908695023210926731107243941854850271488164934676625440680851802522763138633251273676875200708196970249400534998781269802535071536398015580556901135510528156123456590966595766399080917454644591477093357389651249678005376689970460114132382266365036194423359650944326583950352584088097778645982930197380063178063641684746185362370543127681938971503986075766116249281648695128987830008851871069508947806007915136196156708383373100487782679603813871992555901915049543436814390052223902464947180105807815456778137450779088800139156694473690292405835184763616393782688133628687565919059448323690155044960157544881772448661906892604859809225990093535138628108595358415787462646801875200946355365493717604307310535134534304337455579613715673596294518317071616011962509512787706063696142922934830432738034058336632856101418670573732778577266466603254557091090837123471000769968719748273573412479126908460536599620746415165953254678784495660878927647833985341911663940570664825742881500064934734816055532791358397661287948885722214813636954653928220926646309379582710868881277099200649520982375937990003620623075519994551158601305583786201307546159436830809879763394737033112253463684947455605089881286191306943927710775114450932773906364935579161549094158466960048545963174299663706188779526039155307840990079321695657016702379062997430087285405740084373588094493276848021910777817978285784417978137043632814806434778801285796068599678976281750638760925545904085484211263462871926901371684198661308611090261740347289637333168347201561293114942309574038026636089043624081480635477960630058144229529625290997126705982462308878965307461503545280382358566422706775218858043042043074984630696177400707675250004826215332143799226968592114064706833479640605580986776905029751917560631826418076927402260067186899030326831264748479257557649887715239395684494443947523002667025950036511451713139471640882494583073666808842766983436462214477098335666058992938724378000781769692100425940908556014174767995351096607817276872216428555758980604010144891898023995339638583963428144286439457623315438409595170256697975315936343334491643591759981778627974908161324348386945959341928375913852137154151296886286093316541489106049493875385617514722635614381715939052210404538560524652160971680342337069003092189818783986542834251081272953494286768956735448176639771702882635429593579919814598609459874808544309669136922529532956168518193151885142668640050169535209308894498717889956309294693925939959676009004984991303430187875314926274675440164083739695696608796545913846947174488620639932381652180904038244154299496667798469037233463206623515612457508456032523614179469692636476132638104758412742249030024648592120887702084008683378866876757962318930956493457383845657994655538197151428542152371622787859651601583843897376905605599620788747376811706874472154228334501808841886223196277834926647716297413318791026856182876507570289547915436709126355090110982992568752226552661794288415721989996216728724383775163349778431260449063944994301688595749291034296626451775980848501956211823553184601609219658572457306894052765693736222015616134964756797654749761204867695061035390612052509455325457255837853505210338783446380806827811443673869238531778826239678689397672871325934608005543358459564779901549038452247174078282838114655273394183563177823425625862107055613852242479331881382029416029276175150278405877666633292480608240075701874979739039455051905942685689682486632360086717270953121691128622782071894109949625341850259334175269962826076083247528240749026444048093014032805000921094348798336892865594161137819621264234090508868524874033613582450608822378230854122229146422796437018635083883007235609649081124072456911517482291637651920235918971218557872601781483491369456992781060066076919246729408062143468997037645903232180450497328536251732281494043203041672263406604721940678520496381812719871665400248732548721775539427266169176031278773438256772302374409713345232367168769304927976789486998793054252683144691405912345687298467917794724875996233917415874444760829087379267894035762931193311449786991461975474123666590108803968292779118323732368708491742253925462179718622795637064740048592125304206261238146403005542111519824941470610273493910811076909754466971748087095721215963727808541877536070524716861109369896960588557808528352899653163706426869614762704658706184340295396160879170440271579956909817915299405329694915470985956278284209949506901921626461842999719030518999786749221392010136654204559609668261313700966882745782374623776731873713116092046568165735106831705434103578661173731403904885773338570362143105330905601143071076151264673779598057457324881698829902293032322746776787316830463702925911080399408490176752450037866298047855546556430707086413254531263964361372052419198584113328188555337925363337910784545003895026849669865477340088433592370091475785920887312345417157803485707226530618544478968171552062477081039324703433555397766675312753505019407455582181089939105301584221577926784459310158461176880223801975268765367467823448685175572367327168143273130378746866752331833095353455491266796070712762928348834568119686746956324145574511544342629259864624298025982391032333895571765916444091069362766420438668261785322562776145586652432575894753063630466051843259219831547585666066317521408158779663420578223231347335254232519210993036492728285262244878668348374699405338904300193072755051283822649999602577921803740404908540035694431505397088370811756540748392562210549866416746354448142926872679496253536245047808358273060750997815013084682971697433222315051007221709926279312835524397558232057689561989644578364370804762302110123701012139344202172252498913651445005541175013151335165849505208633356539406214176602487019944366196288358050650851813536240744756562800020251838587609048454346259145041886442851108854260650892942194843421971117107703626249879074451938067882140915536417642292526681802877826440621804345517209507651413466710782159089842363685481871418043856159424465671933853826690006350310951131104516107866295137669387319964849129440618798886070981204506294312202681225886215239536275802858569517348894570234169314666991780987690255658818794979998573259791476318541325604051081707975524157325655518687642468173315608323310114246407373841209026781562596980006134187716431588279942737911761364887411042076076952329462664945802181411562048156392441132458944150040447274339004438156816238568228587227518977183009157992088340684402238570405988816830088197577213427600050361480131307132095806286492200981423621690962118490636662067173987283899539394967801962928969839510310490565499293100968737497664820884605919230563742292191355750500661725966640631614504216630340881028698427814154080749372149107083142442101429225962133377181736237731960850042647769995628067492694681845814045514801481117246727047734957583535931859255391290632098429989738532812742831578553597907087179468719819598166677562869346254524175515687933478678312280614779531661074267576978737492918075001986488195410688900943956507675714197209940425210546494345409422840562148137216397634246172933121711257624700317820948128317215714876450673913978383391459079181484591895361240385450867096515727567940393531346748263679522832734422556455982881084158704779517101297525990611902747422200499258562868769993861115727780008430228560423698855245982033283216573058541771007271282798412067139202964330166456892913696772484681259219973264428443954791353112753591764601592521164108187269610678733490470023109225032361807257754761571567778195393200634471965714578422453333369044501121731521055148892198801247925249132988680832901248518969815905586482728449079213509912599488643556335113008735538144799348433158844501424689284570453209521873977512129084050638599145027187386704090459308173252772663306228483937299878186614083858191452855739858368458064518377472133907524435058041863015677583072192754225566345659359900887396780765954543132934251629205823999778623052163822032395942175353593905503772780330560178455577084480755960400088600714159581422753123614145840028000669695850536826715130873562624380949704444867754398373184115752711537654939879342319923667087114457578581409338441808461032432676781159236480445948154689538131856623823745873256478359979969291250262584157580213559439851810774410848211349693448448228924600364110532747453741107147946703601945407037376398770165717656988536656952133324203365091584411338554166459644775619273721552917071956201518961010266479587818302070981602172853608874973813825026106731821331756499127713300110106102747550916862138939635614064921923354799846190304543062789824341281229706472407656903889157445150008476126448558692402456542547652394112313194781672674530887805582216038713426063453094764262671164390696845330096364571947838564176276766335294779357373114720806643688842626026712103583430023188055207481391854979479129246298125893439926424464209982439380490613974553476936239813101939708485119995377312387873489361036406628034610111751075769962865494502020500613365308163279115996986946901975156518604095366074573996612754234078748739990099239564225027710268909510119646396547081565907149843869443239307279688189427029372024375925083301311314084118548197823245587193238671765369438202018784793682791983788264815401119242212392665319750321089848067615401102373918788664611004566732176899396564636669208029959637938916054659639528812773747425098988597557488103178190398408616123651765421551214073061425682736457783339185503835160490376728548735598973490228474276238855691928394641920871768688148291286206139739630233320892491452668960115673967915405055834514290540284717489575108644596004238082785755749810233963347831276150655760293516503524714530130531991685229643588384796417407154307387822515657798101222812246341538638510453954321067016710312998118340998462983725385421284095672470906691896696560108267136102148958753417046984891438990562855096306213146067012044672034468194055275631299476905425336953502474545111056801051604465099622233720599343263952647956205112858255715950965745690919561843043248169911564537041814000184786029889465566435202110245316237473197439398103127908252386337531143352811308878550101588091050418031424955833394553176548655119633934440148521170051404021721422098100710212081718282736123387668069926778693939487706809170277893333922177828295904090245814154832207739581350472687591835598330647118583088751521335201495491216917550107692817387337151416229247411559413194274758528546482814043355733624248578733062137322380911171199503133120715535812799766442450058823620029672668374315592114070529741958304502322139414803361951830520755405176293736251674233822750329853755763660472290178278526763578345125163925385530221712637107771757559547842903848687938287352617055366937402156011187799223480147991806691554903712112659110904879212563248934956543981113439906895644805712689963964079949131978308901658270753652804826249842701993469859605670491978293047069717926519131645915074150119154455102644218718864296024493321832019726172551678408328010776810109198463512297873001527237617212008201980560726906793949360913490886328418772992177438664225654758136917081469648690702469006889825804071083986028537188568087968223758864095405626069153629268402448389044318796061624034408907537213488971357262309036709970403778948471960873175690796076522522523061651454590003659936338292399252965403314793264634644804547700736410944939588747804330915134695486558570909506009602194043292567543607240224880790023954094913724045881632478664240241619429599697689858616013863884694848773078688743479459623014556152068122880716216493875674881762502298544772386712049032761297333427644469275760760567757433168288720168218894883239396892118875877859064284436065246069243941836252715362810386046392694915460905255212706113021459808818741520783855575605909975212062896549999053594727671846389722684027475792848596860865790572126961409008426170579577493083662746635129577050811391889482319846402529652923757940495635694406380977670757016439845181575321398589887574806232456547665515479235077731846519349377741946891959106098924354422726050085056846480144642950716045951715946527610395380392685856686813469770892019625538120760003284350714902693543867283725157169935678630861246212695644715675924359622244913373350467749947066545096416988958129543412009434486958596813529616807687310763023730609477427216530261957206832474008955422819057298648796901599619389103304174936338994926950364883651321542222755773059494541264176942971235717679154738430650705547149168750151436438252690993153534853077051636947256611150537312642298318720155297899013873934750229699333613658096685954465328942352521545097386821864387818506988365943099949843226917344333026158285392268116131388674089430667135677771607297769900306615760196350514139822322669503554139818387715299673108672166922148082982928132418127035800426475857456476270837293440583667019170708250925328374262472772795062993982614185531881714150612001543928331369842957535873991582171066276503581283212008511226369534627818861982755495539190565468045013911787040852415024479923886702357795419778980774470159626709203582630922858857569445976933895306515534777295790334021035619876090191554335684649663688902739235353914841343847795370468768379328936266435966870653928130605218576315286732410067117402238973172740839358435783111738200762362142619604923836415011739261758586035004920418695580789466630220970681559063606445339981747718701351902508290103313033239542931988305414535703078128951496491009859182168893203345777389684763729872536530073241967638915789679130715287488383400634658728890518597248789641265884947224298795041592710389523616465771555367659308757105230583664227715038951050417149833847760063852625615596159913200207056959379012505638026746481113812208522011028201739305234121925748793623955180521689820622736839740685605720195371441955075309971823377512186623374922827761048526615145287301893009879197476842601579473291700733139791416456586084327659824843874913390064665473967474884240545860626644566530568402501493844178913857801105053733996875824054447101915783681706216549826147772735192942904225156503168009340252145910689047179302073879527121443869993413402711690118134315802326876634739206697674445625589232031752079128466149528132946510077719000416861298854447812307879013787216882509839260438284007968863278074283101277009352890242583485390699562752237500227184103742883082722646405969335610559249237415015702456548245957465118677040585670205756827090276727211172432467532905148305212066373364043930452650959446561692947925167221198775419510637448250206571220088715627553170342448369587255638880576998218724526069036402807562580843965223481562822460926861832058913167175548059769247769206588259708352984865225452932548269879324847851442916094795349386934272235346874053395014341919522034374968396421808840444974552281113524182540413710549746065123288252733075566226073636575095225492882320907653945251229160002205778649057960978868609436051449944246154940871535953305855033027888991487311116954602913910562293931931491264999086145915155786172117772334202115864210032638174676412716078874837565350068887553544315836645688625733232124693359923864281908472084963075976824061848823847947420483323550360745087326348840436625063332887215194409032602315834743045561492004312441431626156832588091393125712959981510888833640334263105037412489003399485186283918847304990003229887725121075859760401198310758067943627678206996442658477862097822088143843192579461483317085058927841382672205494362220639291162722304317189650242453815534525311743544126724533781407044913725753067715521971979638012617811953355516029458671639390679751896099951667217390971072278322813204751342678972512860470932159720712984819304697652099798182385067939579104459928255108311994108179542388401031442642699137013134887021035746299844061930176502854009679999871435159864224956338806605011443879159072420640916373788441104986484723169813509540180981325275224108785490575288512497084239324263817222467243631092543034659607017014738571640085520757605147390950119696972773737111056603082054320815602279982529363031542956156673879944092841650281755081256258551169034183251424471508118872505050934053397452873718334670813111014731038799860611555598100358702721960238118835015029897908838236637981916622969896622852019985686644706668648336368537902273533713235997133801796460038636903298024205003945223972701929368927750977957753716719513254850636433105837824869605038530643666826906969984545701551727212938544569854614758733632134539831640805537000624326896467244147166124860573023467105372324309183924199792293784234309836413610608265127607541080986256646195987338986702465291647892122151809102803695590788272630771337804653211805267682231843626946617339578043627765846162713256266793435089939521963252300257826463028469381981790768981024784779226214444964035231799185787276048991499645683563973526036214668566398741171075216905054098067191838662528129649934078243372466057503442919046414969681556741503422562504936143427194981226140138890539600668781136027097307204915839996897616061133264784227913585280320654269626957756789742787009612029518742755794500798922384625957572052752900775707837710450013327591408645359304866910051464029946576012344995102750667266898571523908768034427105794386196253923437519152428873177442293597101279399307527264812776212756784754258555280968044138546518176065889210293399607778433075573498505574820297923661171010921593593208649987549729636370339934133037012634025127733444144061588859897078352290947427987188241103744013964276117695072902340607331181922821025546523981563850606000568611740304397974673752906649356162795811499598149437573952633281107010816777624080336773794016511916303695209425876082850595451934670241331596894125987468472028215665410473044635838573192816043406413804445936201484059249750683050287373826189136564740238162248703590661199625923801649491019596039685170590297423399427097380986700852570531762902904203369485767505913303016136272837701909152599312817706928603047782369021571919539076077017066411119509779049281795806058387480157178795516894648903405982957536067178471550129853993994492896965457511757539785203915960085418893109078348360000108154809074825395928177589132202309291306342418207243127902178648821555039662305466630987901777817510808012371390123676037700573941459248505119509218884635826597926535024992165362584691628551995886415861165436505878434292191404601333749606486575004052338126380084250034927326889765483281614741966889219357832192004270953788283236831971892895809016839952334391887335946600663040172584020215080286986891564024385972618464197758500896762430949650160118497762481354282258650896114547933472824278981167878681306684931654062858526614708885025733226162201741791817430491447036679808683345277761792832809708905250284235957086436770389266100612478596675879030637148487427642205744557468527534859030726410275529147628529421945960982364446589331432824922186744326717319885582425300643109619485013307907256346798857967606528646635069442897140267350060122450187057758864129531613526394888768652768811430755275252389702581284694509125726430429704318005003282070454971659291618101241467968664593692853163942997561457011856761441877265766156439274999422335768310925024763165280406465409780418000265837793615167474989227223414228310529396157688113384402650102832034751403776175300179118159367536754670222007535497423661222582022727630032759324787392083301053470989099669036958938394481315292489943638523979396658373539023210879840168988294041098412904232799259840814796284903555199241748820200895536050843568768751323536793843675473527737108234175387086880294521929187886894013658799093588864347813436052285185391036495915709944871129020806706747834953849281115873931632204849402926896028386949954040123902656457887181590879157605151252297166430679409206486484875610372419935337318188388263585598231479876439186149901300977600172198729453069085487421414526897308064107936937905852554402264722056269614640931067478639648520285304981649249211464885882753851473922644970452366537193136201036738813745273646475281336735107217194855792488265196177878476686031890434654939076088619580424963223936203299122360608063102661881229770545705607323611009702750132536118423649570534618291039488998354956363687974742555892070070115099915145941342368996702889504645658550213760374154389493989016760553935970999025422471892968469791507970296173923089936824825214308363258546914747418006153944662195633299019384964793776282665781994947547551116389424328417257015524292434652451677332575468214829329748768707015621654305834527713027241738588584617782626887929830907492592954152634618625350428128052632966378682664811021718795791588358906251588966106398349481263321419077915845455287758234067329249573952223740179083013333234351671584910583335300137949511477234745241164415287782712595753727799811931315859949547848656359397841184467068511067160135010292941418175124858884789736805763768767477080678064236964832318325525413719988086822254814938136761041701212895773009638805050247579258275036421278304928518727876734429516944364486793229497802704408537604253366428366727614826990936696393851071414072682729622825515490912422777307908107029232815170754114201302800346558538664220643879137771897392417298568632175729917448679366253720058304942764502646804021965131934379912773483917695145083962127933693212795764079789574433306621829842677781611937886730191556005370273207482019176715299387903823995897345084447756333883611676411023337692158418324777420798195574514876267240338108023828627421329196412757112128117929894996986822733217932467650348970762216484735754636866941794493974380373639046030461808301291908734929930945887626094779635683174695530748054349649764181914990853954856752183675392117969016115765663946438828750792086413983174876010134098376021463017048916428864705545140859018439206440592592293923246826339342872214308379586527044524037618254880685715938539445639416754394333021031825093847755386055906762760632858419176301503931207807017014564777763909910492380272857827073390464864696509204277267484939092725833632229487569030503365893878799815627245180778773361763275476443148113302002081125996278676381902584700922693487756362782038139422150395560831273593230853140085021139728767628760843755269526852136687947363918923782481019283093967926833576665203185968292341751703394558968773579253875990174290529912569715701530031107351254614269723451698779700616233554981012272242597094349137858598315355537420723827433752472641518671569502726045471065236825694590871722227251678525685184752489999421576955961515657471283009953069671036679842518105985042414395141315138730167561650792808056473536474240559361914913209770005069892479555997810877984578775065584837679407069609750331168512390970186610421570132500136804168907050618152607433318487084031952000048548945588866082953150697898501182672445042810200297714661287502850295820292831848664049677596175823027318214428790282271471081922570916388835436267788880829564444990621656718566152366551556598662428657287952633466207850530118686339687900682046748614312944818558465245416933884294429932700389927416530798388990087538299971471755238375242300805266550260759165572939873137936776125552535269494124345619660232849878060550909878376516004844139101007972064030070198436235275173791549362323113749683511096987532980163542571560818263881035780415650421843779036409747510254078193128893882715871577122841044269839409369798044705671693704213378921021063647513414542427849086742620545631461010993595522351867263789039176136713998561058533333538292586510558055759048497251731996422903634264457280185744717362136973632237089084728835161581081275373329574477922374949801212711152862806237184040105770716917001230737798178482591501233586639131195995536640639793621990563640056848117072988238622280334113836769471695332311754047685045371735173904812475405973743268314947701212032843279405630119812719317491028492025736602493736721616039691694142233805273084433519842276286907242890558172303239658143516057739494944066614142898472690994069710048396757961194922335048454607213653571524016240564687940075335637899696368719347503833543541384930904099156142930533748901677459697923923016255023127914969432453821726144103133619559061683535308686781771219157541270250045288696112396184126317075835048853919246335674310659570146873852444838905302707618818386476036123005445202113728286764589162096948273890047375898332507288837938598263166279220988909076099364474440752620671557652937808947905625285171314477560199122639789079877079670666667583644695440644055477173182181577220381704443437728399358395571752760383373040136548600697292488988186744561994065681509842843203294533074535029641220457107468911251440494254119514665390336714031142001004273936047334852308743609633728446593113947379136867019104940784005964010992694123226830206803720207646834553227041165233412915409087188555892482742931138361350410484175197942400588053988467362948208219633618405464974454155369543374917981327209421392654974527649433265067288122948885468115017428080921444665671421213954092983550533757323307716645665521523107473594606109798897743688013859373574531172481350107873206156880705110026763979439999447810330281405118088783826485833019533159826503416066498895733076904962492044655086909541732063259370702740590114671346719429074641775715280765156664745568792340169402700762255515325435922060158052117178607917292995664596292000050237197502176190982000851332125722442769522002616814537178548081753307660767327222602753058486044985218234724544939488518053865016417008259767264158332773443579295336453116318352257431921114373112349405820850945797469092235863969789687485302191102785330518613698861207690998432687702198213649442637883774401604405895586966390234076944081510236303792814270241938860206584591638047497270560723822497038570927839151586927587546348600470473746142984005978462168845162994152289883924040861001748178360233403024316161172113646272093382747804306356050123840035085007422351366991242648818400434895868768184533181606488801930320235824222998104020391444532733327758765666287875048564480889027596603761964766372066059040668244691817612863090272071100089786851980398101832510800119430257709299656299495189828906193017300807893701543480354169648987857925822409079077044401248220561807668705435600091311553251922042758689817440349804387287920580795593664530256162272405963667006368329102445483801214657947086214630474396579919491751869251012380248884169751597223789924582887211460011948296829086631842733859685694737187451521185871594995853062677716619279987558518602076891366091294627848272431412628726409776303656795598756268332036390751942877815399192715429414345972768769076010569273485624906297414792764486516160678260849191565213366704936566589509810505779352479304094797196730125114324428938661522129710793864442311529675040248710159239266136301001372685077622605571488764152076088191973853971854096294816032783068750584854411465281583963790219388164136988282635891798483795919367546013040175718488172335564898581194072809259879942528740671843464636938847759583568123829244357086286629288927923291279867303144059133122957851254732520647671894857310956668537317390308863058321159606380020233598172469206881314639283879668658242761928537153430214469674899018007193818065261050197089905635923617516681389129441205191525328241413808501047957001214601595915257724758708458631042145780527209055739059603485510290617195848232014482951489173938900231737970022833426280637177481270268217864490220301199504739540663191454724495836489436980393571114747384939386446219957189117019452112274982832643867280628701274829523439746213304427266152711508129913400441765102650682538586313505850682175345856134386050380740168380884430208945356592096412887536726132016397379745611601497182843980882083318349868802930547839739119280145522429642723214447913221119825601103396907141013626866271888943746972334815541469901765849875141983996221637850815454647146562695889116809334665577267886675125939419109415877502473000726018725146090771126955549084254856304705929660068033379930645873059058871438409983141653963503540041115920622855217134786039029350991183892177757003502720316696194490729476673049062075851386777853870999825841838291661185858827125141391258039554089416306029580947268902986712532640900798330470092719540039757484063468184677745838007283774015885480343970636045964638516736969844036175977452822940914341924389183201912525757307230249138482026901050894374020000727616042352318440801938591819598724748812078642914331843436433832249856818541172299807140890720181163391426515994647268123021145435752805643453490753226803556460078183862556627228904388544573884283363500053527832035328152710300638839440254956019473873865597256086423602078053603872913918189691911298253127927339935021471918446817940118217994125706860457311654295527278628500552387145531412114271210734059130199916505260630377714663482697264044015938518363275725816473278534020151966764130860925812314706371823968516459484620899290680804391579479862189449374555863553497090495497361038315241616681194069794824619002456187576355889797813914868160912536001011634926998685884568623356428513764842985960719110521328947548273806963349202168767217701283035521294016791173171862376055128159410491328964227122958775599495316485371784388760502963804593105883394596819665923560295990316511394411616541832451302869357290288297892498298279354388030694343868011080752789043546047490966897134334653765262731679331477973503445865066721045814133700859282726874871576803986178870540215446817630953569547328496547173473252202927051589601848809030622328734575671924812686785164062843209256527490503872581600180669996434730173950112244169992498761671997556741357058087903720453094496532094025125305919664023857870865707407168083261193547982426944502420629559584653834015622733334887618226734232796245844164088212123705606557414744339576638136170303136092323734333907424555943771468131685279892838451157464600699771667865621778231858878496617332277473614734208718502331586124959984737206288556863131366025815150520087222948219478323767468952413782179475125997158933550242325007173366486562932585737464688581899298521089370629430347240688269585072506068810525099055654448447284622493107401232252658615072015098737320357362402302991684840637309050455429537639293058751815745418011987458036509120171296253769774907514146076860762316107318944518044478628330491158487065850469906621489969358669427925320410719566078339650820250565275925962311323894946150885373735022480756498559641055480500881577550504419484265787232838591042493932164677625733102082951175288806680635115027183322409571938908679909938687732686081265346560800655297550262962288003106094719546410134401597743158657636829737579571517488695935859042613892675538851894485006334140446457787121920139937348460623348519845927574321496138194302201327096764464113509201752543015281492600659958813470420575640948253270093368154775708799268115018156689835649971625693403323886879588653557340283908322316553002070769640404737904417535245287198107691079501883033624472653925143896936650180365929794296889539399292582736914193721526053835754378085073500426034922486564108321947008898152851521430334111073332146778183325946389864483870247726570604671862114200257765900852657168390850034239250967889537671505550963241665780015737139203344480013548112711826766538288733645838507066878983992331436336833435747133145582861748550025802294752509402737854630447540177329395026696797364201571968453216568341811476716462200348541218051263189550309692028397724854685299228876924740104018736049168272331564242235502228539300696152472982942025993114208811045618863595130677681629243511543640588358718699489422790897787696045053694805693405651926515837070464138134409342144925824308851892923973489234476799905807031839811216721201944343763382222073784767428466978229181752208419485108892174725354490243858473221923834679394290340905822467504268950590813914086252962223325204105494018141240237215109299267667654859803922216274290734996036455399034979463096692713582019940288975941361670910346732688810962278615570459684824904406047866070666683449138344601329664089715409123999166465013181115836074449791558378292842749118505437731322847649487180113219027112551151653999190760316231292263457837022115116930417450332796146893815335956497492484653901073186326561667665172572421426678452403408287319266312727903540440007570745029988689576464845857930003799108368737698120319090103702142679594860105253211917885425345232839274348208004769473031863661531778999549493335823722245693065370307735845831415918385024220393520841554371048413075298738618449232488165797689489618455826293618128270312548404606661722755312167666345338345364660550548279667267628456834434606631796906482101026287303978545296763844367570219047332577517637851661264209993251266422678785194856077259815854436480098378219550542122141486326204678556191217985505241028126211090599547497108468368329075497922236478734348646392986944096226805740634301253115403786832774460682550477512296683227312507901314273911877010555395588234219880715629730517402833400473084532463922929455885028902041027677498200742486358646079363807339946023547240921609979649757492289289637834079698227616707241947160347901096227165841029601054477589815242285121628665178000998665115715488788769622547833414662796432813573178871371329243025468774852799963708402689438528104719757748543345156872448594197722000441833241712942186674616643258508782397720740025936866750432462869075111707280122961836022805718030516985900929928010946975014803436002896081235170658739205569727631149142820421080406254527026936872005067486496592198897627972047624423745342268042053129572119641090254861507990376683959208933452450804944997778846705257480729946833784095561483921570464213562816002090122005458763949554162221901932105634988806526154492867651550351790613057686672760585511535742332432305005410168722004797963491301567094483891355042554017695543201537692235623761051709709134409760269791857384143950873774170304189221555759722986169573414885689513164966517009486007045021398922228126578914533801283544598258847470902405564024182846705675782371805624904702951135767763127610601704533114590782068899665027728438231600416199878298753475983761571508933498890991686339794637882246514694057503751005252809329208380825070184591735488943263868557449200370004775741501198970168265450350430247952329920513939480908302832602624606867788748084836104456901259383897834848720738262314661849499010905466895779562948367937374396732839683719726191885749069420555881273502894100077554634860845832003691669838739290204151227922432363520942087350147642417015874050272357732499626552309584230460029064217767357440857089682562730812113661443533656171875945079626791129324203666899526556019121600832872557029861737299613392683116522864690477079442450850497200296231337401698746446948566231540201937573101873154510532964666838294078443854535475541878926400398897034864076495916130274777735500275343149690178317742991205150510194280303877824623413518479165555205312010413228471420229687779313829343722878379806760055853994866817957879185458358271926740820366342585660242121662978304379353053163187999308079724365085049020486035341803341655048533022966384552857519937630675784452694481106298950780262035995912759375375500411714573668196485302527879319315738074670677309839975910040786482560482494328131653521101510857340001019957957836377422915315289466285001747425841624546091811687983784100481335882479596235817650707760842820391102086553241974062515710326579606160656730696752363524414792316111833023661103877719399963113326110207851464014740225237322730489191142911874631317157626643675269123753343008090863850808936739307025803940147896929604862207937260557440822210095010593624920075315579136825997623932088377656588018722319143962538769075291308475325942599335301901621743810308302815912609174220194850692102055728532052444467103330468515169750288543634850484619005281761591687731448959258094237663745408580880246255428589136210919140563293741066944491176918177252126302041502584303272210939315828864723875491614320136304120600264190526518818082113990601742074149924737177774736712086337872097074264774791316595818239451172834708706890049140351741157191667110099300734266901573684368608334383029311962494466739063210191853286511592660056492541460525256211100527998522171439298285418420089794277569607213526853882523752739950045109786144425465890233109224393063817846429091157619698269758937760341966236740891188736882929949202177099358309137635672117677318236846350264942892107292377366198973788105998507519790445999045302127860035727980395147131507109298983137867666183034198099173402716377074578229816350772874590480159361634829857469505196559297274813882484310827141029806739510842771373025437155419540837789863090856226325385542534921541448711839785134838722927917036340728498956572770657216336288043279334044533634974216012653962408557255919571701908337618207888000310978810238008441220442909555274969015913211903085281163820850332871868036729199248117923607181272629736226463721875696615163608657712573173364536341292039528522732677180616162821574527281106529131677382265673835498358219590096424287873773766271843355291896342213381848033364306667182586570955512173681496850656908990228325080831430421932881992728530362038423284723275149891133175218804979133998711736810075319086332358558017080393478896792892376727897976334834502621676947735379207093687189218416426634495055016691033517095480450431736205617174456243125918851200742988735169398982532270037984271229566748960822426162603452791739083153512177210456146656179185118302496196436946942031324883055286390512107506714467545597793730567400190532721591544237887103207246354847907434867614571655870695028778421221592794237594505733122974440989052141792148076542406505788381701556280004869250634641159436302830984383543278241305468014899368896096054664272355634018885878970726600470021188317458021534052961028486714780194617854073318923665016082344224708563868763162124769768733260058518322821612235395122561050610016022436356985464024424894733249509688913811157433632405106390436749001162518149118086846472900628587646656148447656187461755427320454360971449537791178974313488025766235432693525207201730141286721618053444649384907020787317218426634531556676611183025504511109818619619536930101970899097040638528833479810240605466955973070289169382604669820667252213875699352092336502749950441363318216200236795557846967149632673102344667322148887378806777398294151690087909220247814006980251606103634045058000082744267619337642383291276563403451043970102107036961059054121808479043012087712688474676552834571620937704704839790427815821098887481756342881987290504176041629379786247905549973807704623710854086436200977768367127044962043703691049545686068794740403232730006137640021459352701300745902547134444129218720848221684160031959563726950495690589320203561214836249751242478495595053181589310576831186751030444558955732463668724684739546697766754801908192507238162183576502735131875783279661803615790784148519340624055721655403320163382876383348431472771478365830307622175888986970987170758082075440816050950831269451106253436017456029146906710969748840314438279991119682136490688858356112585537703789223168983007360087830245401399943859199680260265296896265887644590312592603944025873555004646933845922258312981476543214390648064812099310692107765552330492002892576187175597304964330206795644974909073301235902355632448774121858321433956208367324300326267450246211554714716396690087883621829241986704651745177053427490637111870083861097992951862949636566271419191292937803527084419233503842084885512505502444076611019545808562816666884461256876113603187123907700487279090855274366074410666859694694754838185479168911963140416912597993007393200204949062699367534875017529010743116160228788346387268459000354372082349324756111802478028697946252391555870316039704810783457738824555494592590035836385242886444262181504359496899771528329248342255458221144630035412645974455140604950047307305627302513151888502950218194880629934192183874033136454360279363036216668804509433376706747693296298563752145977398463473153888280778675229565629904394890183989486899089413155761144223641516742246733189922835755666046001776090531234014781880025900688151243399054648692496814443150267115561827074483634859461819761017436035323732198890886280034366120969937780058471141154343208182788610453051201247068056514198787920581992958553515872093430703678483339986841180997078451843655489208164051056610807476481843879493381269009332245996329855195207843931775436616535140022562169735241291296069187972944919744740534702970043378327110451346042743369047807929996520652487830405038607404024010260882466151279046816545559114967277408549599448265204216828171936093102176315210249996654345188552930271090753501870841648839047568081036224133186218096987665903656521992478888410963500420056219489036023731314279952401021680156117221455539655279406840406663806480778615108297408224944316217166022772746323086894776906658248578538299751278762305180097853787617907351978547818261546086204303745662854360490620939466053166027900262916917213038787146181324445961308533695938370049815670973244655604132968370198399867549290337921298608608711225506804368734926450656466438479871478453586674366608304728795559514523814999064326494655765820513262334062038588118153793383690808460194078272886387584021731972113688911919681392394373347068258787289633741657825589024005188832609102855333583928436396587451714802050737948893650141567106271967759723919224481901047644990830826828775954852761390218543946894342246449881420066108997190637017035982619070889673269340285080133605011003020037989407556213288976810826824482204692437037725815279105491352946498910406986462931022621500012960509349436209910252039908448818112405644103924612884611052852925357028603731142283574900994900362247801851799397197004847433529712666608632749193076187397791808900987610737125493243921180144820816991681296271922150919843196984355149499878568792066837365735929233093039164642347169121565950992215810396814707296957248697164333271544682925443919055567803719612627924045087014567034245739031195475878398602052689310357211626182642672896593226282456024353256542293147617328514999194267713344437002538833975617111568314065385297465753269541932958211831653905447958001895033632654502985719890552240278758317776050356373711341127319940157569047926609269679313482497537889637968361289663969032735421492246171029917425303084638535408729286084699584897806018209319752237786720068379991992053662802546425193403576388883668523862786131551385513562887442738525787631018168784734214716065058745392539074453780846795554290893485849674708802419197796160567189400808877588758920035378101752145857614916617032768283532533570052159858023337322430971090605990788876615719646552459765789904575700785825346456928782705204844876589314946209973580519097670699646604861617631970715807493492921058656032595625276543226649398331812290432206902157022642050926467282607505328325922934042799124741890687201022634510023489399780496515283501920122355539758756437756223928185915575559649683825601228621355268541443281030422542620430863516137203657707567739136082039596522616895038963785583219270455175044492613454154924135817855663639594202342405628628632238676530792670660828310961786551522764399801976984973689362061464458106732887980469744476297947268268073423502556714753416814260418453620882481471851811112923909709024544745508575251699184272344382048363891010121737636071654934038516435183408520229788653275840819609922145739182437803207143418994779116216784715606708291773067676837315727585002379812613481448836234244948185528667384206503175877066026505358402134457674870765969249963050419267546883474272139473878352086944797395111720828131641311694911411268774078720903484625975321922093377183229114458768953191027452892232422808340102288920689013186588944326928534630707137822787308353865104343584969583116556177300349134088095707985506931288875707399224187423949906163245657781090719004952228936769172380996402635434085285928300471667977069127269878772679404384322947361257980753031636130367991591375034900228590536486605626304948113757333632915692916319501338004699217434877089620650854428609230329058797996400448290252207902511368774655681050281762806514323785526764880247947978057109332770737359508585325483207857061160596766314672616016999531776460188217944500039897726728551586681864658149986457270891378523422933025420313922861323249240037004766863034119568161939613306259564164681652266124787566234215959175835519998118537291502906991437353957405736092842796375614279556011101969152135711959601897573598923728390725215927273477856903533320711225379497667643731723260511712153168911823909407087211243212009802628455964570281274661923865394556130113884427539335501194172283795252430652293009216753317254468320638809431306047332282737001834819022086492702860996668238376949505213735742100556695959286322754055701680922599794730273913160746512368683762479681178228570546161783049265934388481140142323783799014598406504909993030832553260917827936766121841110496665403860005189951658047568189057357272122292385931265431659413105172169475266091549825518477834558985387758065623136077339872918750286959773382555214477207364460178359313944939933743692806130074338315320719494456946173579230195343379599123484137437019023084264054887885802382839562427081939165179315259021912710680623004513927914702901652871713662957326785933396216355995879031562906957202995588415940840827670126119797139812238356427877134642341376114543355914758497314175094796810385331837849230661627495715798020450690064461856685939294517918946923550824414787707094290837217044174428254135202032716197171130804539613450894918450220055864344755546449735996426798056516490198647199091264611229085694909268749923868864317806945444158048490246073679447010661344139041624741427906665545392311115911865518011736324058089425783846231858575105800261842894534504249857011409055315728772801479272090329298613236307711410614569625102632855676803863752231030460695165596952694391922749093819719355493680449093584443971166770676490147674740771808339868576992886289532418772362232257337171972308820662952387911914888332383280091942275880738797686232679784906862128466230674892342477641912646572112506878811111921416743393552902277900689606670842270691710416223944924174149703900238939014622806849764675981758228371158606172856970798028903818477549645486891196557097650343079889427170784596145098623461753894091860094664272937204628956909476489843593284495105400735204746573484407607770871158586029095660906086021659995042340700885393155706819958045265831907582381579549255380410560245217759786632956669892862804381912223074018578451180568821863346225439661719173574776960994702822718933736013495951072624802013066100485882187627127721817723875328612160842947994260844390078410573210538635176256674268418064224123534732808085313474194299728974323324631543769860924131603457734789495489880747047756410091876016029707549579127054306202614528851067014018464358573097127567372016870099801078146090521626223388222226310905121864409495843578413109562375149485701650588152984031058658607948747312659170905424191729000967776124785193805955402633271070459533650241380109333577407783518479814967626740783287708649216461519502083673671874057997231785194379549539642341677230322658581521340420531767689734333249974882108134750497006020183447836474416626297483817019994789672115256960423389158504267819906050710636417643267200405945490915216434246102314299724880509344810697457281413107979153232415057753642122847551756896668410613748548261026620182216866784470394364854038349380138812279155160777281585506461315712290030734974116609823768466834377320979597197819689839129099379212678399015965529579613696495757619831418874214366774420165243127626997134052389481989812328326735723297270874445899399133730764784462979485720453648454453939080328793371275540930504550117162028711459131770555523598896678362467033693442920300749907105895747452912463136623986741617292278739250360068101261264434531019166511474227768631192331573154003605472158013497548187398959779926644020423843440992128930056791043995653856257089289350869399751491578964936405403423880937416011829876254241974361284012667001076138772074334585107665584398456678983926036312407967844057141432304061610784244560503836040694313981922306235463920013694527756018833705093802205508282076539339492012411523211776116116121156182037899271138288385748831037126726074528374178846696205484414655812665915934001869341065250602042513590926601799106270350886679052458260099039686231567407183761357229994273874802258369151698255025794496452780024616584150665797424538223074984457349603912998107383957949908500095658371160258251151072485802578672120368951508722416172730927359056183556588057778125066385757068020472293080558562515533091752812832540986170718861211664276569694166423226541359013229661763354500149334977649802599118975687491766462446764547099724989754201466050908169410274053615245735829403008871031525025332625209777415332859203195930748612351023614068447698907681436781429996722294480733698487582982298281612198216859760117253510360484744569687423864693424714587317916723572285287750481999721049841878541346303862672410555029352264386713939756735953271003057269759608563705149579046772327459769417504125565702652615038695765740441139345312853243495333045511606892715824614351419032546541855761072114382995781222944294037421116066944031740494880330780411392552604192261722018903413572573503974238790005345085751466548452274494443353108276859397618134850388582556048779576575674704201457289238326683182970986741111804579664639390175900444258496051190979684185371532116322052644611460534836782527215283285352845039851174946760584005976994347478573687814016287003601529332302539962159060390370116299652036398458993429380620031341433632806095588324826021357429713733885645603055504282346912177800408383124126188318518529124800822206481870697626627547821361303808386876398912268939836758912795757175862896444436243082020127509484654477595691476295067670485696549252701513790652747924313728955681627274737268741716543848981559602823863370707486088937989566454209337999779101865324257602147677046755633129903975038861525892230066231104289242314735373667111509845500619295689008501302464737883698546216795944035168426416735146120502395863758568943351185291302568325571825942048285701827617519688177621266112913138606239115780803027420966562157196469538199511468600844356677023820306284056215131523084751359669790086025365369943041439361484404625529626088742690554145262472889861398175705254707492348378359846344077753474465426194458305628384408045190410689891239138043105350614805751581116465673814695987094445256910894204037877708410636197330625163817617414600525916983950989024933383718967558274884899454256120950051803857895110820505703675720926466337710121284647415665457470811829641670760188849015314442849802153204728883849780445397070694420537889854488088279862371278548908316819526698218704029078287531774118876408602702148165788434586264592108468469616941005091998792971961700537247897419256322599264666961957329294673932748934770470800254833300143501487217496149724194796016453572185792600173823768236717424138738637370435400883778139627553078704932265816597766232715209512061985357427235561995732001301292349053337856814972832498604896104411738205307433388549600928606910565274906359517912210111005577466915562024051374117778851328640220132473550218391102212400459440163390964573899630945751462683487414773952364921752882507284709735930115595441042169438789929458534143048417846100743494408211807442422501241881610810829897776550381622424828790238081837733163352757142558130929425423108162062568040016184691690678017596044738564484445016966829621828908990228349655441762621305954390381787247516088286555659759904965223091613088730020363857807272146879499905019469990727793165607277347046539189048291016307596294396819062391607815016295049614240487944723043181598698863030788777051795042734568557765842325451119797120406615074195053494599240237372531075385687216809983556998455537554084217002445311050748178787770868702868462279891487603654323962587067678668865118882962146071829450489767867397500281363177714800804553712478489574422340491413409093090943085573072099633762068195603051139126728566237733254416435394026252403336405547715862223973128880231250525146508253055074408496291636039420891834997409026554045182872704348702132784689506529125300743170306196258806154024616544730758387467628812368570849550093358389155183924678722528497201886493966736294596750470828189034895740631777863896388291251453243030941775756022309486296863948543602491967168043952469156193909942051648838199032788744223129932849080064845229320670632302882112769266002063185598911974312142420432798208455452245333485886899922460828006315298655221442599481879988379916201955991531523338052077387147069854303451985621428017529732160812859917902873002552316544502633139018459102893646648560320041560061648599557182330066329414430581900476884294098263126602047751985146732530511773205310604089997922222724183871437914892748731404599162183853702386044160710461387107239141590942254243818406559000957000930440971193631371961128811946337528926252865128522729278481407231923812317350809037279836695678729349897832050530465210446261233962343469704975202105368842841250995107336085019666969347256757653468630680078455344976701739800000152139640726888780593508883596218008393456096762446440423123114497651554531320587418038683266186705032938419820889999003713133216512859534902393995977887260212277573931255142119792519149916263300186973690433818650301492286359092536566743159630846349796690865376185142152810899382000310381517564222574196877844159052994086450186879050534050084889136228432933452332767051533462806101161265240002641131762268751354084332509837439476704886852894652996183715214008627044390190124766183029607456084004180058842133388043915338593481160206066625683224679031772830097327606076073770192985271681933506752288671211925225370616325538680647654961997576508385792128872095878356334461211793455956502740701300892975326523662527190161890525871011508580165188073697123218965565240571580275052162524137279902510072426545283620540510363026820501636250020706063280007197710634491329542776332766441780228316304305076459276826947582197324735602968540179460920791330845860737604919325295052715819103824548542473040660224286576008220312165270594015298964749689625166092037056210861253188021236706146747573015961849945841479617654129207598674530468945216676424190011514771016774576655927168557390388522591306831182221494365138621752975807132860949921939814071397575336605718748782314771107415148846664931467626147258292921335143778029652184172619960638298926506424847300301409140828188875261078574441910994070411394892387870922359655601622451583893490431706695718204463605499082629434698538636973643141559237999346610995545509486692674957527799819105834017047245592636286633964571413680986770716826335033255506761570145068521865693313528583920445781458327735144425435640769678901920303722191033783902124786364915397284920444766198160760658380358123106721214996574352079536591974507515950413546647865449733645321687893346473886918463717133993940909503571048751810497312752306112132360419402304485397036666267587573275003889510727324814108805686590387554954525975278704382659246915865168957696999602754505741153674466517137578888500191076648735758153216685025147183221710611604574999102393038878167207751916499678269859797468874753626159897932491622995545488031369380883260075076142600087265025989695689835613922452593509135240854555764190186308117027406806593715403814796847873512000403614119412432897029885393122760319011392883013413221406251326704687752963604903158040989675206166299842799869009142175077624653235040759092695497929783434159007902473177557575380810444955202090945671817093243967797137655436658650213574413333464401968768492546062453990001825388977910892461628075637526769949824792456324717896247326366560166092240062130845470140341214188351816843467402030800018192198426599350550538890096323303859222673529195817479656694536190847401572317315949351154428282369149100336389806116359971272184109486417258350229116548391583718157709920924882415771443848367399137882896616043436477098374274036313448481083869947416263272081064123154565104700899549049471163112241888266545190587308499036209831172845623151787214269836564999488896407511779307430407289731604908092983144212532918163473285029795438627060839401476948098355534061380449865034505568506138562272120399873955743262304491292363472019988293610977887824852783245518015971368170984796323212821868388228498691002555561649860170279934946187843266285587919870399460094848519447054486076588115868589056064532412070446818815714403384893663816501767749293646666649102934486800791285451640483561518627214381550752197795410281116361987972733498252586031353360796205053650309429332946416772144460013630485691085386160101879191805098675009552286384378408495206642648821426622680369492644330135054295903797352780909744300358521077020480097830332125176861310346039874770457459677912260288905413221544975045400745141832461060076067727820853163582088886314426107945250757018106546297114789845770009613712001032660586057284695044577921815557483744451091395061992586220204023092096338194073385080907519672855627985426145818365689216086744015756723537125874555600809237251481586146414822294860467099154439152498509068872136733727589592716763802975651041632684133861120853405741508593879875778328990072761900598166005569106579964816717712558319266805993403364732244660587416535904174308404303022160596349573268161268531584973826138331428926826124784055576653830156464155056892120105628377639716996689920034210340707396338527740602725792898152863980924494121014356774871419990849989854386002513962885410493670071983195700420689682805981699323736238108330744733067166856220738852673313091795488426274692662231370701306271490040740329705766616005932346911548177873139200514280338826188705288082907210349979475184455079929215820182237976035472160700891775527011681797644943451483690656114654271242758445517244630005933191704617015748552662191268637172808791299405530724171531126713990518146870557607178725530185812241606329380109266557652290299288472916325833668159202475754491929661861021591026622265879275456519716954724599020358102928310710715408682829243102313784584257836489968832098080086068770745979256231025790735572716740141034064639703863487660267195504974088261505816214651196110802973179156804576552137992877402830376971830101123613819693231469122123729172653768831869614501095483475672124375053496726569250569099008673682713599583437633075181471604922262204809037335334436782689945185385596138845033068056243872455769531706738526314866394511694050132983225940333703252695198421966754511522240734478293178045418870842870336980601511592262062135726026772260390065012303876207393332179849429087726774209460073524320091090709655882655405614050851655974264549570028468899907807872040212568593979073615193626753584643792080846056249097746614825575585348722627565517287457045348669278087498011569660140674339521027902168963899984549711612935786288491452429452570818668453260318796585509757513689507809030429960821630170263882401885467878779086612800727831438630127341939965012355989514775781081129436274936061530137774971191188749174889857819841686778538207572148323895528652114682203826564489727581985367974218227668252716566991339938272229054885858934744539734648349855398884395462492792482638314106261983623757508767107269217552963365334544495055966112378481537519269141284426764421296969767147906417458751201430418984405758149405976353047695384955653629546196067045865997524218697931347127081748323359471493839650547481686265955324672159629636370169068337665820812843236737489521861823880152603292537863495975654264992307211869425164135597009675624793919540053528334026072425597812218910085714710034312593436981036632231562359982687951633747311932120305418454146243432456167198331986179003400417009453542052522343819058078495282522742685667225952890466569430732051210166989488653296048062834756825719867573193725726634282729298063586423429092942733682360176813370134378588171883421597092658571780371523234702922671632188969750708696062418436898985304553642220657339863674169548807164563799720478805809238918435644001182066655135410646223953458496861307042097256721635150667994112697337828166174994724497283039464426106371877791497599467369137918734594810428493139140943936295103923004870850508357989497543190166018825680128676912898540178760851939818024944839390475191691361352605302325000488987185716144706031823152870351881105604160677812592154664830437863936960609494825048953514191510205927020801880330988475306233403530241453609859185197371686165384992508814399524303125816249379734788824449640271934497202953989352456220376628243771809715589723692441355354563821519690343645845352205900992548793536977074090904497095287062121745729688763173916811438734643953161732209364407323973920247404589276303947170306269035675499525070057620314166510441922031738776354909967483918743861160302151999983397988903424101702492009673939709007101861393863929391032873914400736660884087259443101153217145409017465923922478186627111736223269689440049404895631153052298187522881607617151472750013052201230915932348301718620683621985332959045830117151244414974838887618334846703692063920981349868069808979975922183172329587990040902658003268605583240800294628533020851970026284341640358252323467737556594244277464198508990188917471371552901178767177599127331272094475868447688030311660244790580751824414257626880737342774094445595587633333855039614466338858912546040697720218546093760703156540941496497643117446260617484753640395818652881105059762081360699738533841864391302680387040866833346617910698413067579323658472756374104651364341632237075203801674645775718142961307289156372280201238033096691126398995580877043731035630156583378870029933500800302137241794620264774290123374689710365110723864311426169058155973660938881644330785607329939626601177327318242615443061204614958658027223994336847528583310131918520776276038820357267352019992314015426810076843498252270962829305063296753173482147359168618856343819139823489959473296368854192857687110346354721471472812803291086171393334465844490833784697040831893558041644860784795552947672499719314499060184494624663185938918737253183135886478194751903044850941025284048055839611618841593663039998188330592226731295697769566761819138334669321513692735187288451527062550267742057282879947070580117569094819320333141854669740445697189508757285283169571093909828871329762838805641165381172684006684664378721927884792439869766607954870128629529327402049960601362441053370890701812913058877606989188107415130765104736373162954878684593707252403022654959904861967028152328013686758284053778887488236345136915498510559940223645718123770781539898401471057960648267339651175009985908852199070789878575395192833609883417387507874959686306208043558998613146938139585076698613362811187040005370455972563518613157521688677618724141838888962739887541962869435098262662514681484435721192555658414156850799777224260073731980701639037188637420391221820803067549817435441766084820417654434881668107880179670010878350548494408960530745016827845934549682756574546894645900761019414336137924259994871182305910712706270151936938841803397714947662858505946392120628161280863940799653422652055980574859380756475920607001899059831858654454195900478511260089554546075808227510965714603627731878817555066312371822209423520130096430928986197025858014785173287279158058298809467473536332733078294199137700697304807912619322479699861069128607301145591882387505250845030558988253924344087323020093066594994690381541700919047339178785257123686847545748413953222523304075469888877342295255276586890981003597848911845856677277435917057554623647193936032649430933041657531416160419245376780420658547818230412774216696698093688678105292056445158683717131059285941040455721423344778177096700025740132480953393747694552673439775564842807317345202189945614487423221230554153922338282025263041338367021198627909290423994497783084887054605437210329389505710675954898654347220415734205212298148135318734487713197615968437534149363730952084963016861052835505198045859769559030673936172133476426749986450895129599776155706163943645535385943285441967106046528098541002194973481922575251772739320620548998898632901285361494545020948325287120735234760817969336555643839029112510049941744309500505112781816070758913243022139914395573431623155796930546616371281312112194601712573285869048920815922424788144708918222630502948271772932689716488362529477538988811130434831643971433529125255581957345025618490242239776355645344026520092057159107796379221533878751169425976995772544251864252930413677839798294222167164873930600970009653216488581830235756432631593133516998290716703171961131228107236570282238838621745884696057709593908772815298907063858244729531770349828554514490579356210853217430706491494234505579683092934099902428308908055353614133426951395662781771744920576686716992173244435799801695616008242136187897068042167117886227804936464696054021051323797833884512327392320869039390395854642980073649504378558911897101025302293996458911722947158088395579518770790590311884135039622598460393851658961789732539601599872634312801362587700902013594119658676165949034667332704838460700173371879802486315621063909823690526720732776365046987935561667563290095456353280789106094330949132382284154053738962321349626158847544626033271508926884431503918235798468364018112620278890152177907888901168784995606553092968055216781873015614516309190698393336150580577913271117080281598373937942743157023447024178024178520464898591090801155621152286346646208240218094736947276770175998701506193321044685046937347384680311647948750969943004484323645318923803226188389511141884171026421003845205325479533804417025520015448497797857523663008869863383899232014580173568975378076552519094229481553085193269817011174678974487825646919246125353285961539862119565199146135009148715661484477445666992612988213002842512859205948052398248342180981788504173350039093790687793862395759345368371358004162695509971551931172160166240298401828435824180858999142864421831646437104527056213920155964529742526181943459303386414461895792958701566163815018034923390556671114474287782373471832568759688434343441990155709064990429039207205512654850923240059874275295474205263064820750446211428632878339403881521905044972380378343889509840164218153341838534123377600281861915042327489008833760029795643526373397809486136490152339849988015707710977330573366072779196327585002364420579157969560943088727492776686609146490315541850380079488602516805827567332529582037033159028253596067679646799167351509449593651317495542284610068335822291913282589458379747018121234261553064871237965303333622036874037401077665469867465641102555838748666289257363369089193161603775722356520434357734542424304889370746858990096620585349430347278990673182950927047302826448094813341233173415555930120894891058234790159591197063131720379052912491157544696888161856760036751004477262411260972313045579737080334151307740141806582900149201076809180392198211091235214613559415844998804405481984415841044163440459458384957899104271091598701917453035619090869967073661770051510539006191070230443852885488874020346985467706760364142668396506238695975347231976322493368661700901714959169438543426900471220161598332636638320553285882429520434306743494450316151131581589667147470150892090573135376379135517377136501552752315822265330607669959332756856179849659135744693971089603113921929505249349871350421603630369503543456465006551468755521411953044385804489537621309235662721930151305813683893390842056775612208512628628991816004439552724804474943395524056133575141564169444200324267105187704553051725060801055360223788146976992213144114374182605943049687397297587306356921294861974636986270135889348521905515925681213761004671792243614390414582776255351125400685180524048013088735324319166663449256916217724119752077354273278424332677163878075448636232097156537770136035869118704352205744604531213885801108193345912881400253836463845189971714717820782837225624673484094580527559605440403561826445879746808362271990708258370304869849167598348012697750589598549643611325374468195831388384835994050884834852172583496405803069745940290232618811037129920711377109642452337393975478534187442331297581865409604750999442252552341861814660612646201308038241325523499580320672208542297350266691046770826963209211192428477408553705051847079340549574688225320180398237363171994512142950325676454015835991478301392852861185117442252334289181479158203691865078260034396290227041318903572461670211027867171193797077871009940274525201931147478074642616913241237962064967302155278224664168286478057237620918787765843023443184257876702612248520321117860984067256368043325873000121508830522095593342496472929735639444143086280083186773861173341794226784462358221516503519464358657024473413737631352481234686884759975072059275692575325819419200925418001610457216896178614652513444463483114549144808081775214112642150470955923274383385711968206615585404956863769325378496604105180926982553409716043685359061603809064271361614083398743458465626147996541282596625545621598036963319662846323876324489745625172506076329809476035335952274480345127578247686941343119463718960213005402107052218147037275429180888095303622032327891628659569640344110874640003430360794844153711658821635010534807845217253054596435543909999347972652660736949988583014501447569888811060579523246537308856644301313962954164579121102494385824260880960321934904961479834701789428026070240089491220732295401720760296052029116976612517672275004819210687367066318425257406551961862859105668902537506233884499907641016964697259193727090243188421480891938983677959704170293522981216774542844092522614307518603540060883946591227870222989250910657808971912283849614153367841955786969427917352832116537254975199820152249660926721608957920605648191428121241066162780068630382502641791179921747514105378955237737443275847579238744064914878272890080764112612650404507482967777453861628029401227174460442807586713072553662444501233504627769081963798561857903975978876309217970729881103593873086826856310480507193526050100757236314311733848530355440939953680141961401250854572314751026396652269213885183791843258964096071329632875985621499575061856266015484993204160559668747649392393561618194621995975930481954380108361021364677629525257717348135760354396247147832174694172948925202976913380931524567377699396074546570114732997210654305046435761071671012147177657455479951408074061283629896225038021329774155211419708941468041224487409739490885367993837153922188705101437722056948622854160354536851474350317805721946333929609056253578232717155489914729663594250611599981415614915860970152673346806717768016366278855872500470499011419819411105079116829895652117873553826008207724094437428509565631697952542903934668754225122146959383049501034499291451650821010905517101322446166803727675101693546433522191749668491773803525998744925677796382750869508853450395309458028114193396898038248638321851483058251379605816552495554429986264895090411353984624746468006982942436091746392615999160538217426446910563707380002438988981591408322172043990658407688477722783180420795375271487217281009963846228290822004385367812249715215212045965190337245587867298152261838780178393590851077769744908500232084156156187199961820778751903170493950239088950896874045501891069685302885726623586032201514095967825109731626761771466786879299719603833402953575653147114374122813140003606250419627470703728351312395632745746506914558345719477349411654745417115143106510637801887068117391449492969151865120944847531473943317954231474796460682386933261350514447891646491299696999625458569836571077172213544734597676808728531618221620476511152098065582278137206660813283611545283878615171054231178724280898992234654994206583335787485656981511609248003815901130053404282831823631307512648568863116671806288033636588598142517898532735760017515940853431899253163745509247790578839966538745978288039915609150362760130622089151685472200577708088017704267272780319259952144667622248239529192848924876039587438669512283374684574778524284865548667899668992334664360821874426255388478079836391886422470821965481115907004182512275802955480616664994860251562837192398236398971877296635054534208727422883054869708515322995383418168511725438980101607159266369982571708095564514149578500739332954551578937995155372092717158421810776664157275268242030867113100806547235752493766965300367914358096397525569160595944537873098190178462276747232424446532566665250930604590978117811759889843433399827101557032943902248178285780905476313355432692276771612731202394440886527931718328982395772770185796940418704052010142229162048415279505985859590132432674738452730653592475806960857776850094504998319702958649420286974719852295929006449738880502158105513111883056206277245232515860894900944998576744482401410453086052161579645305147578846579555067586082496525440841461758992863913312754139211834058805647137271219463432432995078583283426785953361478417145026730791257351996246570878669085844896010248759345184959797648825332531697443755819217928283075451232230260709915574726863851899159276298259908561068185207996865758987034133897471850264554343811473575498380906788204548429867988458089195301879200288234311087192170997055426141501742695144485554244928948602416027459481162027506497583677014333093025069493652240258556444542239313627845625678220905050196435068806237955093199101262049634791566922036173602114776844099201352597400562525612158934079859832541393897305918993332798290533638156362689737468090336075282302779125807360415099658033570504715138613700760951776798190736900167853488129174889644570530993176277327902114132579458418805485111704184586838160756198099460086217606497894772780286966979340403686531255633737290755770278546805594478549752628689356983148451241533179337439405969840910708295589452805569317728749622899687349370077749833241113137416518867284263219315664829510306869245772599642187425930607274885750626929969756205794480093161338979665904401569068080285012140433697041563125957560229934170339050313830386972169760517538476388416782868626332793435163504680972704658601648418003817552433828261896203278584220437286989111959450337466439653829071283745720229342887478294714850844325821157928544339986209466813087856742427953670715472033289218591179670058664915158577262456081464226747228021719736186427535568015137579886157744142132460658975487830750497691742219095116514419152444619045507762768168217704954298914519583465617961333929087186490141391382956453039070129000984062495768463323183680572343369772067366600238801620757697459239965924713290262052179618556737300259871629971562032335912693257076822662678259482065625882755479593433034450299001180653952634210587032719208427925575475270101791690474034556416686160235539452365152727678928273221924221995805719498124246685707805662856580535602857475249154279408825146663031384217839775415752070035266111592856550597842320954461289118320007187931369314157581471208486300637814034848017025788005988199250354292130586108570902389771083524873789225089430605977480321784332379824886326687165775131873862413642342017636846207917708044580878008575695549081558092328665687023611766947909497469904716523834721608721197916314832286662889389624783945384288711525453125109270623197739518831801605182660279810570992674626831987894611738526356450917541348058087325690669033853103283867889557198940776045889776786977387646171542135869720316325663883766212513074923526128638620557264909274857717951212228884459865495980226606864488010618385208775930171457982981459837082537016022402740663334939452403257635440393989574334057367374352221737690446805418957236587879623184573474374396898749623639976091132974829877870790208586993306682620541441927629462619328859341812637665099516232881429011834741230508988007879663810066414379435952216354581121344439648091506129779874521009209358707935132635098032923104551721756291542679009221356550755692361062180391962160409501632369289446260422421369840725262743441140377447966801467167237222452573174609487458693162006006402148701073958200220216780333340183086385091629344759923070595164556772997761918388517935783542823310941228486227257059881952679650914730781002337945731711798554406510505458803992304323977447879134755922337852965067657043334429206806159088321494695177374174867357224784570071613516234085495219365700548472547715192272854342551928180903969838281927278241793543905934134271241763804145473640239657639403453395803794157326866285105758752874690512684056033201103005588316400054932067801121841826252035979117137622068211243107051249894177605936640155853389693123485659852203054658075821332436837594541484420566573137858835279399348781195384670792128490364751617192498956294617023524380607431671408770090398282180546717997248669377795605099713368595912911086992916434612804773238253410254083987551368685306475328717263385928441650579418350244003776718782488347588001604378632037216916172559894445069551050978205635463940362557302053664768779530074931971607971888000442928942622578573345103538960506561490589062182078683971432477659744151639945272940385449388118741874670673474328749767870560514671522274102273555038805806145821018849641502300719344326154810564382495136788746618145173604917472412642404274376684755534692258341916433964921916817710441659152534444809342241989180283364918528436365151666164728584025031474424066883607356011408492563714571565520041128180992197306696204869227817958497627233379570494496677377734384516163445139463558649571667155777160044516265610138033416317569148521322844786840470433919204177265763785819214629505213670425811616309324376179053084515907825922927970087517657995499025412470527712277655082524656507244631090043862006469584867842594686701372274127975877679299524295495713319905469980337699423935384907615625777882016171121500389320379139427534585727909215273027417399539306771588368126454017394787494293268215857073427785092224817934155716880915568817654447141370858386918853944564179387119330721875029407320836522234814321662786768082062142489985849724817618821940156120437751470874562156730252920336421580116562817340722680249642441120222061635779246215674495422488647416333185700984477679377990452849848183800669536025126683226604966610405080216003360720053717423508864253361678167652524914192803513270148868522238965834332451949927406663786608611607486062034436783275151430184725682315780604433510230773528738174702861957830446608870136059109157316286965736311385732936006423882956597819574999874492278432290710349468326695048844734163653483239439327092513379031803430006523624021431518737416274737186114501545558322124521223756360540962825206503200129240063849135618522370962042480289188755887177114344800455062861544319442338261133714056588645737746652152614807769928125610970006274664746808418713600135762034864728942412162725027753115141625352894460797339996777146919024424224648019577840139988203062861013639141118529822415523009794826554291593635997807512016144737770316427582908502044539687369813272570849013812812420709738670015657288574540429110785383680431239216727536991708247202813331804012838826561613964406250427167012730446863759622556448105153195893240178632750634819781936103891906499722800007359854320083904715254222145894831427408295425250907167708748420952624711994749705860957729759522789375335971532098755889335421048974707163499848034682239062286715724297022057133436361486894599164542723876772699134279804996613806443024441158252560092811622052928336865591896248409731761205567690785406446839627646867695093112706979000013867427946686527183911812382173996940913489744957009878541904971167674595394799927457620702945387660529505666685947929063346251665737851570629898582880939788094772068736139489424470342916661591621192122862179687603330312310425727516016425234858454792025502688212923142083574254104728813056136170392155811059939709037953219965904364752613093298276109523580836231714627045434547126947858172261988105899812197353749687943068423074477557585501164919729782013098933499196809021146789538053308320324828215144110376028948909657999529445770370102746732705324386955283876906641260229738424120758751212488791247874809202011242752998416139005221607806552995376252547374191336800796706729961319686664095049323215705924703171694156467002781031893582575536147744082381649166748637421861146362928602852557803925460813168913503115671086771543016383594622367413852126559677272748703650416439372069250222593212889150123688452314381626714931488410100011366507925207460052935620881965066135623920698062711495575541505546830139706261428588544693584066019099496200232423162464707209510304934669590234755007617436042888965221622500903308382254467792028903921143512180413066861839821118702960690494573565705853916129922954820064988493520091143325566847011025376099899222089791050897249809429315169989987917896891315418738660908103532274941378026547438216223452867358923134725171012683055750486083472121940631396083540256172813970572672417605644004114048758127162111113870171051524837044941826358824343600235730871883050461245834676344827299925110313282090157604592252977831623318523110606826901766752574158919760845540817516538000046505749951937054756318378905740585698993833927653589282348533221673242375012066843327764569098969755519256155708131404380761337088594481998978404214114728895878617835073297466917422323645011538468338869722175316692050724285690895732281788765504919961039595609609114321550475910361207544595161825481344340196171935276119417645755900306747335184287073020548556782300597911156364360336031165715969565354523525518100759524435497260218880663475480398011519433307341866996703167252977942104389481123987812069744397442036526721978061240704807933839197822631162790998251553201421606079185612778953831435721392450575883845852471406968252022030535591438094168852723430164115184345805568223704916791179109595260373953419017256450370367414870609151570110555429130718676289503242571952233287493878757036135533677449099221010366507112161631457517103291344202180428930545029745171485213027559114526598001659934646937905813723861136529015314359373326505554032742820644818907578892041237166847707042228868041261546537577753834264697404070526457557765268998949341845975197781793464565403344838174092620385463816527965058096722835850627767458685550882639041294978974745429295871304619512437125540450914893787690106986181615191077742295987856569852852436849947463381616854194103620928684623934998604310707816770951612233473498788733474071900517326676359107802214505638281361411031452737576684942086700609911836932174339935323777403186418614009509837634193881126876661809336093722502247229640895546895045136124706467357488122279336279096269509650317110619866359666941850106445676720644444471411388709365051610907782742819994876487808853782343251673213579360954530827126968229312171343256619946100216271546263658494255655267913818743404147817674984749092007604130611081542469313526879070262063336944846021433721523080814043481537559556008051771308097586737241685929277960449928471709631832514561372975400228100899369428095250076337136013841680994182640851139078257888068599696701126829681564633250607124842338473247855638443779611886870261069746156706108013213237631762879062811529933530724665950004114185145501970635689761195183894500358907521428433858583092538475605125618711878829933759393398702035928787256222957410881333043244802412096353005731625441499512547980402113633322606587073640154801997422960191284434360741602206182747214586107858168793958320872224414505534716940708134773720989763151127015946758828966247736477280597105926183432965082777665502158472114725667763927822016195721582291992527118215516262203036264491912317260119003478138170943309562329551694426286658018528566158356149033961266013299179074361664018365881691132340542456939261900102648244282010071757287251827964391051397970120730742819217304476830488244741992731974830115540587068572792744736815957524609289700197774799608354589478884537991196388804112413441112134362353000493469766906051450153600177455209667740732784106783643237484485035682721693225404666473895230590321864771072288566258504518511081408718557298136034786653771254571385986919413363416303374242900369571015456984756259318397742603093745991937543499403250226623277472453621616274333915970889780315085485072620408395675575645540084684145698227208896048308476913296437599279040674110693514642335599131881426099569522064141242397619661161558195177532835021495196213504281605220348713973004231096593342244618792782725109873170399341024052177586917680043236015791145947359720083491485737551129223996811527868340120205624019420492135949097903987920409469710436440900291255955471169607712335614842562375732501821561597912382575611209519127944835574597013801512845233524534924259670616140311418869765305820068341012023812090678483407729651985759950478401923111729255858786246653421571345646304979572493420251350389466745827863083779176995889049849360057362455027021726313300519350444303383659676383336509747917807255301641909145642335050837062563985460211703978354280620414167632699017083707934038451761788780620917204073452664942334799798124952161912937455542191765901059264434339984413353554601195526042027522519219482523780078842452722950155727990097166985778566726573917894433732989999557437893358800148516173883780619383333016801586849192238639314071676093135287693312653605785132561124254649072367480561178300277207826301035669772340763103503256104604445873278630873419475247714247446858094704652023453999971249858154015096961241041355764175069061484443922870882263163514961006213044697492727982681615569557529833101452907983029184996391348456430841142038704557935052241584166827375899527502475304777907790667278037838267634939606201966090136084205823529986201647258882814367616581584469746802019848963071546429390231742780247063076131831570227933524726947413234963183163027789554056368906775323434708429857068039505132419548615679682051755403734174552002864953693035473399161222085097230749474810187298432008221040016455042792997223390506136058892127189220848443473102661729093647580047901407980726175301288375917216416539272589846610705454710754841356723360896768521044305690984431945830961772778686735115819259921342695770342354200825449449691452273837366527235383862047474921679490906266870960547112305714925837017822478685185395669778542332701842848906298627459575758393815851498937101601901878659976854379779524703407630463699106371819134518272593480516132405279716216956001428633677212704975983037359443837578036314996400936565823832707370935192733392594137885191935181597371250784786992362558957533415417774583575787517252710645640581919367864633500368680391162861982409920489978173123630606794332512491665088868409734577202073060397957525168094141047913705897218788178453174519614168865968682742109841721169658164373243756716983686382482206832432672184776423385172172579679967938087258990985565270738848539306853095724066253554349007498746837913519555085609540155552714723052976211054760162805959548334063320098800128089225268175649775911441879839520649018328726484405298525983424628765852667842229735464337217296617912498472611432374648526217708738309970075880274001689772904781959435177670873460188419428542344363734807076542409564460127232440566063118278073438464929352994480434281771966172351206083725357062022360841895125721063477338489470552625624978201404227073671856545525391705990966624827604783067560121487240632900399711526297598399531199435708527435345860514133566767250209124950164561105787848239229727261845251174178958438585198057215570112598753413130601067777329183485208693704080942360603721560269859879535309953903971962144544972183923415495559321017576337418760131775573288249528087751427428274695844156209486161846529128148354543063744526741257608893312591194893303105049195432797535778576776652529771925879877628623623435442239478823913614300256194592712316192710793561496018745750920456557452183510709263881677793804601927914824304952696092574575198547870406148835033248879090852966598588865136633558645415642775145089653857673815703773648091226841470294410816040652578836378044229952542764675253496775541123320517067755748594724620798461516416593988357397065171136966966344219156244578156644923179847600594742010039115896961459454004529708300206876540503615836289004735286492688876387473344419026219887042917879223572435223192752980086685830688941036831848671119012943342191901494814689206632859959821236562849657978333620437583736370768978051875615035492084766632083143295215290885459725725811525494856654083942241271273682541656520237089604632776016851481721611615386543990633894202357506774174696540315997125293265051387968346339924667933930399387747462754312258329773425557336207914195459340461609354537564791870862776590898195353233908696971483501580442660627153714514423998168781217405097113535977393696695607249307830820623294032131539341421689078686135642185861321558847585337036563670494624043174340321451908890860412724766706609265783849634503188958489958992845925600239848523427972573008316779815540763507829208266008310331000099833541585501583552105044390218244544624641198700450718377968864713730090993600036383591996099894718646690604739590721161185631272298744348797312023403033359929336504832441041430061819914228723317835670931695343091798330376786970521558750271303762594882354798189518492577378538002123513412864703681204567350953671573982255606683231761167031975759164549596666389620049967715277548286658025249376019924380832749097091417651035630653780162379608686312666649927115394781009461083287017907516593355551599313076514803555119714534601084909349029446117512239326982886530450681395337804958530930490046392757862412564608776522806751371250582655756977323841567702181085299510014786620487184191692209924808170225490066580770833091102141024039091276415659850459828285649253298717351616317912280586451176496867014597604608187121312823135039694661219292853125361160260593421380067500284754787641500194315257216725707409887705071044768611830947022537314361525438084341095667733167641976860545936818604149657178951134471004545689041301185269813797730532436634736423867531185869536566871948963343954670545399708478046268890133554560898051075655143147178493395534716345409488566106948982098281127365426947861559639810969078370375531998875436372454914055160955196028179916262705405250004405872495339082244854763845063385215283058461511275125274504074981111417541982125438077935928958495640839767616412608980559355239204449519631019340635987767623429217947780726251292089391165540576134693813410532570506760691849987069057316626997985084931992826699223149232959964967753817756091156799184316137365778507632707434799968737390655378352999409317861031283269745324252091599841149767948924478455825399655530332513078205975318758426397875273810216998721522098973330049878483763517598198030385094164047395000963126695268967527885235953140489230000428455839827158104373315032185083641984294557926449283056201800704115049396137304504480862243078075630405754046400217069552508435193834600702719640378023475615374454619730000043045237539317557480186351421265491388721980872076865380783955897104552360856597087400527354525608150088872189780446057996667161113914226394143973445382435725533009207499652666925296407674692764697384877714272863771934374713902921641171790573418670735956641025265948517743168612804601544919935009476032394604139279390237020012014219648222987462972064062152683258501131792939723146040906029165942744459873164116681992863642532356682733144810585510972995493375608777150295222076993393648105100878389531914154601107138225676883610043953147497348011637118323306947431918086341723816597425352554154280808105180371032037821636809946780637900406007045704707523799007759406644053039704436311070129731837040281410769481462760144517125292028272924535536557952812109558819781647760632324388632587863213757476008060225235568055926973167927003490323423053865709028182452626745790027400318437684298823100797811106632658811985949432116839935959992048036834205914214324005439400180404442030168111469791844161374969292377176722893577123404235233439319864327163282766706392729047899466505531141237768500963375994753629790141731729014897368904739853534373666650643266047438220146156879899206538768347102260173980905209466323660830310287359634628193346602713842429830567995245896464783451812639340351680987348139259962354813479233076094616717018963382762738325828059422810640528173869998236248603497443268170222878106839436395908431728662528981729919725895724178150908959487458590654118857446790851769756836698054887260551045229918374563097428165099296614851633432234591089627898808648088833413557626580956553083143944714678883175995476837570513677766869277429109646374733924284456465481388657568159321638596629200931229491930893736512514726536882408783116333238022084656851021202151726431470859129404760970661228492680456737608708327920377937677252417467222035496441225872725237389070054824903883164027873467395958880594828395102889412642170232874190370241126146874602301048136313531963980852107679738366582147285697897236427301610204784611378835476491571183485355510468182175258413687127846122829501239383968805282071289569804035305537365478276449354721102339668801560710387160618897942578861945591515790247887493781843013262773931526887765645661106678363190556766330870880541605208761416083997318917897142872947409183145841755873621415078814210790340598959809028812163870512655660004426161321094776252163048368133432052082786937138041166222693705063100150557382804816077794512123971760718986109359505390872600914561275629559660365082995571681865945928750051789262519268372131049860522924953863799813862072776303089503690837437281411881335242271159678348513733736311026472336351069902563524964741062242492445339840870444480909269586849582697806527487998393204671751801514060709856781020865020337872508819426967685966026187257082725155473300713040058121792909961096188785766021195777807651591020000303055279005687513995607835335100042341640905982522939123670828337015842991584624472461284608261178558953388505202097109679973127445463600683733787136733502807472592058002675638811989738852392557542964091466215641526233179505769064956432795093181375932000643727338675362641848800698785364602969133470187087432360252456785717433976351019179433813592349792079271596397565448029711761051308489025284857945523596229303568904752263081758500213579692371135685912920631404979020833925513622271752656642049603087271154205520824160111537955648630570564281543123375140377526698404421785845876475822887412712276490788702108011826590685795163103037773877904150141623145460322495962281060269022794865010902885887014994630605531882566839699685603126949037732811035646183823033810381842497849244160956124619703305726871426657845413309596308363513034991264330838694743281147122625821947979428397220906200282099878133322187013289105094339575778410523707676098136212030744477726472146948186910896567258095180320850608278457534095533672898729507968936783587285063695387501839863245797664032298345477531536539068624541343378305182535311695631866221790525617449748473380171162340897106654009766888131641768463632326569627750100231272461133091845876862936662636061797689919784574724527921948895858353033328933096021053988979123167660666338678911886979805330514261903142038988697699705093914286536992865963127528650873445277444904887446160630366020032844858504004300288580677839670609199616355374483908073339300722133310354108100225793818308045156513858909747579495086542518904975996922797460070010007569647500018024843574282785592949572265170057888749290307829986543603558900518439216236984844785018268266708465360647130718935941958193808689217871052713326227637488370499899754144424444947996113526491553116768351099663535485626157297115708463521095949724950056262385535587602685965347494355922426505117320944143772086537763968437791081662649185975700126822673579080081755162901167848440928598885160672696071628475889951794946833541457411789641354210903673128098745246711690455577364439613820736400780547819195041673732524027742968485809919270268398619533366635165357385955080168637463103607581606615790306037667547689790743819966543291728987430535707985738417579455764751991793762731858961450217184547234310153631477368095453387559240946761144072696475350504649181298005365213721906230226878058842481207884472087783661593161328472020297180000294276802528677139086790248322338412652939110374543505036661386914988889595275435484744047044897679515553829337914654647098243166197707555516803729605657937194286693916287819590470582427180820749513932138759063611704621032180997119579347566190580920262186190171103399970000007175072093260873832032366826301258203412519287590133255735425853919023085350985651202990926356703405460624834020052191386848986081717557123424936838788204152464308047346216914907142986223625531272775783647517709805594742972143997544992847973509116636306445085681013018889636679595600482366281069618110374930652481947749780593492885328079414898207913690301436002101258738373640372305787273968019946000074182374696699785579377589358725151124921903918329179060444016149350806703511347735418518080111692376139554495570157670823533921081073622246547472021987270331550755732224738096453922723754133529159097302429240092710895321120545942125719792691539811050282287321225705527779017624624545856923410056172603198177545519057664001544027913038000558428157794343878154434809615165660489417712206484086507316016152956140833244593656946575584368982369904929990613823591812026731064490146905877253935703611357615587938891956700963299013408344275005311075080905038435291188299149723607674440473095562411528696896120275253008328491342593491960023784825523966324931019036822899051804255505870410636369444696691798953902852036752292949184545174765227668523486254657588102854156197194152627038407148225771620050778886690892920229116186961641849198862482640292759032982930816141157335586313273500680228179307427414083800676446491936514813010808513841422646572478541362354642630313959495631616519630559221333469361846463879540563402421528756517893805090052438087575178843554977099449930278743376822479509063715394730716810552740574709805488054368995948956155001766814547405071071765168221650075436212022415326165922759881757977106291345246100930859167796803779272915506567064117306783470527672770153840005336078396723153694297910796935565685354933519196652803194534206310432691245482004129284317909217440161329337985301491848769566777039766375182359625621541841553008398423271191850320338861133131052219028838391720925932665716264154207147852896624630370044252728996029996149463887608907362658817620033624638223411129711189505897421416429465536010932593871178539157162234449624221062439579702721619855194681586218155173360487689875496036850383116503291166638152610869864805401089276833835810520761014172470102306763016728971025579515016095722809537432037624190421228174869873586836524448919891573823747674549386296502309857981195894387873417092289567097554897284906973829046605340435433820389026529594425707878985336125167502295481748467681592538307330050819377731190004833296468957805637925359489607054449416060841326325414015343960591772908450373333192700084201462586581647281222166423915990119618582325144064053549663144105668050904242890806935205356439192769079851995153790631298335624394145466928411142841777761622292494916964357913520093440243929455094345441299592854486714551404922012860835424449044913080825999841903875403259313112896983405565176452207741681389678013279242890412266791482878813656806342860440880138987985087066653095412941531218464561590614256956160831712758345430148624441535575265898277622441803257929410708117508098437905960391742900732588300135162448960549331842156547176124322903352766735249419950136483181034576226847198734781205236187083769816665378415696971147765261935753307288208315525266940951876469746368913241370647086261470635300959223857168191537345106754449602650215206493100957426925229430608228573926636015613551274275114915444672298065142533399096490144682335476822668784866975085588086527014321148753252539150576367987906954722835355609182935042295160937880239619413443942711883073754152212971198496597856883390078993734259788495531432064454437481703963003266598381688858225609959515557470708527526938287570977148092982145987737089015226852500328197811399096227829737698633181802768461808557240180777090104386343250358604103462223899129378897639083402534815909292638293327525619118738441636801627244759360093381184646217097824284157745923382050014093031559735347777838260155139518793031228042269087992152802262176144068358484692441023922116295162236700501638682752889373540245918222231631046920435006507180940501252768613832066015338024535747809937557956161336104861748379678206890418272809933534403261553189803826223837986475138275604267513461607458162373149724573216651915039618084706105829606809108398650452433992835718259934930389139272899160381242456495013277948781586689573417718342088711120950940887286826735757527503427568471834769309301186296361476604119443513886898705585505697135619830672118854713927685982796309407596496934283331666812780745769360485141476986545746555452363463802654183101667836116095342829347102090948241759400165806691938392590591566653495905761790769232065600544037033247676015863688233558723146241217050227729096038091355464662664750214799730767327213752735454560271490887662562050014641456800826658556874205257960931644604850328854283894266353254642742115938617312913915668293747005799069942373279956501868859079277746459270563688338325692246616601701284743463284896356585866761366322278031158953338555779007319816917962766021165208127028347202163814725883122652257430399239050642693643949017915926449193301764098479382513017299163764712299981055850624078902039870688133098617384387812108020405158713542190504421481301351487010508065070847251090770973859135003768196923437139340725951347193789402001288316219892159161402263874954167036423235245192900588085027576325940496765570755218024497939032174699221135507121758555315586303733816395988472966358081566905901754590284578025704904122569647458523698121316650584368695584853197833330205273466931736811232946975347519044272246665198689691385254714337325719823373503858166088733208186952524778110963893884411379797699653442259408985090766293479644207485732709186599449632612469293563459033495871500536518582843830851347415394965725442813622608372099244653686151066274339168511849751789908197248040234904574270861407757655817256856697432244678074103903594162025918328025248324320525307926445412997245723163052720043687070664993090231169254309008229259503515204340603267069418439091919650686602629942853324232031279877037741169435337314592963442908745782993719599658087867162323879358094865336066091199607543866108688771878337766805505143033237697279407388840176383360750434524249730223886559039684785832816650796124814842023716007863438030937706397289440230172950788735474160357858629772312259539756934447717806208661390133264894049888524738284266814772650724194478096786948505112266582338856909867162480468973039371817338406389058457188025164135025407036558320676305109052700565139812496483475117747384268349503415633860606066777330502095096993132304281352078896975142548434489708600991753667189826314072432210947619379602656097230778729981486163328916785592260360199427573810010417080836596603314741763254756432745753861056530886632346487775015154277701644037991077350372350883584158963115333625348996740463106407854626919743197955380053740294410255383889501536673745811535959276699564058964093841755551354064287814082301606982773516225524865655783031539148285986730497547807724274202088354060780862381418808505758530955925501108848211530750162257573195633227530812042219483326891177377964641284778469993848957043792348571154055079110221926860737660064622409208276345174818559928689079004771497797299007730239608214027092862244539440623701701650139712859882364217171123433161500834845089150107700875376344569595789308729534979059305306163784951707552408056610989574348558060605556623907734013400264389071169451718050563363838336586366262137392639687245110771620477665815043082300743302110832529136124544246067091668891002074453547788141586724313056878505730759826120048984852501034907494006783784872103988821364077882875171991432629998477273309014923632384998379880212144500214697691856303912652575657115887506779884179828695455780079403943923066284679656751126052762162408846911186452144650007336016570045555087671064530621845002915461553492507101989484836235580872675745316114263199044394399270258474272930794656749108177199110224367770322231199342210891148209162087744538361983958892457599579365085892220289197243176946788930743254793798355414062390728961133612193307146756948538070627773651005783906944286744761996876493382534863573519577562215817098262211056402969200669585149253950321110965743530872951514918944777125775492755187306092019991817450760620229098897584489530866437618384735524648166633083822674880596990552174910321430492212870802651145136179781376772468622639467546798936417894589229645418658312341429461143428172861106670395659357876773487567721083109611287678527591376851094409545797989686265351624550756570387319337880402218279028208458137888456060534938567959983978155643505183129747804706808128739419346497395201843627408244720021004610909450410776516256997481425214031501070356420184501853815514886943088732801753334176938744950657729730647783539594921722769982966826036171425604931599176020382694319562674546503888442829109524039096763296718042095912129007695703749905594385979211731099968575385896677533343553882628686852811770017124970662773394781428613785825350844194632368649920360713999999038910551377403022660351176874990550430656141139768103941604031117734752924158912412255624228874355873757157045442700719644824883695110186744839727606903586220065184121669001166822819299607303920845510633552078201588504490443258838580055294448834807728850454558675228426128093116522955522423551820163703166614681662451467862353909410181573763729415820438041818264436392090301843624391700007506535664890266825600810768962694578782854035422200435199762494426677541445355677651675474588671152299586819408898696239039229584401989272678100694532380505960628066794445402059774429073971914084756438629498137752743815908745361183119655365158134015242427659893048382856674437971211287903373358656782056718041742422594814687139936252082864693402752688302560548887017062573739517007729632066632696390450416415537638116822714045276940565762123580568065521323064132034547668530180315391351155487446898513869005853324735904438022648537685064564140306129451650104863729545939457675071445765272835998164563468562628220106112693729009185427974388539622850055761022774861356603344560003237946858426298778215638656648135961850586418580234140762313825052283413316077488625863195294091056095561402537177863032629620080458094695638172891904961335133172295211585955392115382418600749818031612881073717662145163292527809720171864612658332645276096183075017690782299170943831949933701609502575197592931780446601135412040898863101336562207175895579121285176353481202285160051508905214358110505634288093996298040888683833999048429446078139992879158194650311057982653810253579578137689844134003331962086495644814604585056231002780559437127250677538461338862766247387452977349964969541384603304984197610123237080240347967513777393936640291687498511630500829828753278098663170198021102304070542314024583012171628643454588558753746655667413306770343516783290271863240738750153671471554183012311804396813538565917641640161231505273248871190725411425426857967555518127631491214740654263798982707739830819817043578436900675880558127220478321921555359695775469951070891943484237314178502661837810339826771731298675259904881243568209501982962557625376852179035507191847428508176594084398317252545521843409395786721158510161834990759271473623502923263364577321873914050879447989294137742626525192071771756801647635300467364553465899782194945814746790876414882156301770850536470633780258648014321022433079150113336231131425593387320242656578017169834582493034237870315888351639433553945642864605213010532707418739597742083627614903620639909836601987151227392067284266795613575852045994472319842095449356869307013798851940526989892702584739524601305755005569801646315235769928541393304477158219394222662318445947546475893456625402289964094457921109008655732181893988724920179980377010659562542394774011215025420001546571419336743234714062462753449214776928699689494845915369462702727088802488895650478571452794284344035637256199784210732968109384016745534010777167901068189263791317317269180352790855502327078396747586175464959206907949112307098974881026605372389230820381714525589840523007117107337161065808384427876386301252165456647163717454895444355068122594819211985372411917763495530044319238748959206950169121971123085234292190933821426399340391883156881512538067076888707008193239895388526970496199749016369683953911939974722204874510643409507405866940175683727818388853489434125009171409104493891151374639835280778219493313093417173736858966390303839517589564948544684233502133133699526131704123527135633134582369026101270340751196087149285407492500446644755679370079106437621007801135537340516134142868000892598489652009690458512893321756977724342205180978890026355561504235063992314993808993171099031141406550993081083405298188018572697799777977902270285127085188027883597808443368128512971191174702871160184381404380819956350177008034503729173842678732799863133188074819423431878174299998772509689925807087899274120441073739486128729553813555630967995939288120288793034161346487221946998193754715315376518480923364224330837165441860237972738612594003092417221648336540498658521737267814316930463806744131938071448706823838786083137705091316741788579921685473228715127455405463858170941273241948447354544717509145694328365388347220209523752556707099457976447069483702421721801584312439228205471164863300362881718948517746117520630645480413832067050572335238665025424110394283407179810635724831584030982882897783495973208796867236006437750968515138077137637122380584573897787491922793347051212536989320568854027105537759214147464154092487750269508029427708730124756071761138593971253313227523895035685000240228057744381366965865045876643350920765742692219096031521954699742831177530977886028620169176582064567260230813802190872572924975198717917758020777273999480446944946970333815608907972430796150832489606381773548050395910905552228884358280577452323538434684219267949641892267521427737813990726006481333255467906407406614002608602982853888464537866316965682326433600769444503380361168104916639628918134741164465236454840744970691885169813512266913411077708594166120737629985661530277483809960976286119636761488674809454434398465795738133089695106747275242685646581402253298227199770894663266412904791814606419839788774442835337581281064661233420569257486101081109726222383774997311875182853970788700031534201126991442133038217002614944945131314318083085314253952562826850149755961534230854715522891552359090799346702926873488163954732986656517141936297494500446361600217240979745472391589510376593956297029556509472631408979112325379954338182408141808041025215981065554885937755032450024614004438654539312659357675262822827795265749227340917630807715578625733560230236692021364509928376656244399425634061321900211452666703037874875176380734092650010440244099916133162771479304867123308827406431897196264830248670626335151315361625882485877988953373884912714925969374698101586204602344777612625725578387250418079577238033281304977566991224355593141481873682876440636282008393410055990052363242161930258536920743272373942271374409810880087493966436628996006027378610967385835672522037533071409282642003160558550279769522868428600806950343526317157557473659513298717557186214035786783157689332067443613858796979954836800270680892201642770743899920784143076456835445625500612656332033735390305223703340851248418370907113607951190115569587394559942302727381220551126898509820564133381522139153282214742496400995887745108681183054754952323123646954565631305229314839888514965141955684162663441702877425499435926752068609263461855027881922592973897527231984159116909949638377779125071280887144722886598920240087192399883950528821822842433106967326557531688316788260248815113545259320691965734678235325376551821025310018601009806898305246021024006048603676578599287758770678290028951655522668056454704882029539762011780876585285632836388230801054133269002688615903876945229991239681063342480226589717456145646685876393348563726048619557087546884829186953678188462149345379528711717572885831504488236796812127094153966441442598295375299335198218388631889390807217298254905474763165259633808498008802197892699191043763146947124274092672061240508918565399352967923205265379729363880658404848632650643729851375805221812314554562331813581882765277155379123016819442012924312162518101012732935637487342560671356965962650459830876562486143413218623385377926280030145702958813340973993095094513085922586475540048507889086378650617387991466713309590569877205221115661261643886947795614459671488615056140502132412810678110115002064537754637410639420270097971349821870638930095009460039622292047291944982355430199489768223083808025704239522464244500077078080635632549793812604563389023375869243715731721970155799856526864083217811593174691328591674956710711293582528482798741811992737055477773121914749478147817506337638076486259676536940381904764808201206506332208570892506521953146892498593899021798981082794979659068526321118430228519455364405132539246020200899261763490932440830563575698265066485599285477216096743967178400190185021688424448900384345493599160014174250666630947001666626775308466517602575848728798242629314787780118929333901002575800017920339152573572162690549732615292687634197920673152537991933945337647228518151924187895978061686984014287596512845873720100405396683149777037743769366816679238003136509536744096168261106404025481258933835150111175860262516264148966199825274599140261458975465900641181222172621732436587087381324567107051137472007372114881428298450092538994843845482215396668439783211897018771166176955716157737943450247032176792970985149591662806192243424977107560982174250243105368583814696885081096866485287244630924145788377508189009594003571274694577077893099300977486263679674906995939912466235438909589940622155859917606193098278920711803702881808758095994677498595089327172755634958888079471156630738682222566966821174198856107816988147432519677537845051099972289763497717737820365692996964389051689364629316111186705504974025724039640552290737198805800474599107737459075697675831615991724274364907085510698243753568132690883251094472419046116047819748817194820995674562680203355967180397334293239572833559522702467532479227868186717610078641468742259774731782990184543877041902597476401643413805556499617418652951378393605898547273634520696599519441649950108882371986557969426118830614573751543627316851777516128004530952501392412412913374631157135262063653241744739574892009038788402423482118321465644838214253003350712740499109877729286323564364737302177403488328242079350892979261583507792373855283568861948744607505258809886859365880992924773648107686822208052870163017239293392264418914502850185115351343122902301050611326876105327142158986631998661432234371668470731917272916594641197572785368252737851699144688760362751381881387999888506186831293146348829995283807888621274424504946585243533720426555217930436769612815302075099615156140153080631521112090588545883858385368468535102503920065831338467742392587781834955356259264509416193780116177881094028959826177156174239998943942050741197867797232927458054277301223521413393051309199178162756856109589171494946615488462245316230516437177809972996540067041779707115191021120138116043314226720985881470663960173903313432980278933815115639545699864964267791409239983735181008739026595027090189485450093944438140920534798615454767537727158448602311489133560300173536199876930369097306923868666088950033532053131018067484989022454130147072070559006150936108102838205855756628357533981073660913368863114744755661194019130712511412097838561674321881779644345218422071488920564719191905553267168241621717527627444769979606428159352095022788374187234038092038681806220761141864699475707163750119785263756983352081049741339900981148464154184235568846351055524630320613697644994790528514341086409796612369182107915144040196288710573934988550143942735550241686374001946841392131936731738844419554846038988796479312472324113091973439417539465085180584477056054826830537479413672874651186570352182265412275204415838227581024656796228796520019862642941341670453176144778254382069323003042144547747638449047077885207806930885027601691554095571949109899393472221759418204155579060496522658928387618245874313734674323266320197639059330731023957669442803309098334986113120871121576792978405216158984907685121075153534428083881692186359266739158836469591020832213219648508804280935086687657979078157486136461140454147005479862512204140396082607872557104027113947965255288625533926217631818494034986666694153098004283864564332323212406104808367554810765868602318842482768699170613817441354520861290585019765597222168253688483252198153104065720498932977402754251892180974400654189651147216409186531778840018781372502253131634112617760091543497703005637498064612596771370539069070284532366894838397616786872320628826594278574395563294800392736784070076997286709554056586152930768240757057948934634208955115590008655653270579107715627914782101365128896511482720906814086499617798174993232195134762409202059618033308225076321297823331483990783333394833716583233268267993689755016229243382426373228557347741785724268721870697519839578727313850935841013622667487320320544888958363563065510677373325329508252976070103669469047947413890956573303367579908638111488053714726361948407278266432230563124415772061194511570937711962110649046664800414674173736724298920603675911358438430122214628554609188809618263276859143736191870495464081696695784693505710796177712422868816910308104184864472256859880369385261319241761020915735879068823532493974996505476569023284443737942731378516455967270481683044246183654813385120788937967192502919041817554423927470377685614542424212254889615945158771558276821653300873012247363574233147696615448309254968075311846475846103928304055852067784311868239771077886123775572200334344735394390423759362507535345290488979528564442282028242649108121477536481263965928176780143543013975992335944051746526606033797383005903371429903023810225022223022770009771189608183755759757288981227490453791082713907691205969886685670403195536947469446572437985063747963613054081700234225024439905579957986080947955493156583174063732421679075776720678700016648315363871810710861702219593822380293690388845527420492442488275267132873952324288670312307331345796853162819186291704596936031024824415672936954434959082185636862223043497825735946176624766365602197909459085486330416454032474570642463103209953504609737828522610698727710407192657894353876866493805921379650565689393864344651301027636376184115974608087271203226317339206615189191972890594310254842307991711372810771178056132319044239960664089936938802799214593011595609786458016698337222792627399740603093595591639448793557215666063075792955981578961381580274304190369165211293470081742641648309102826125477417029051737856709700676028909066445120832378617911186895839130323867992574947098830760318243056742296820482373187829757467067452081102038524763532201073627965938740562558844027965588202809331682019937756236820557248440525062743136021560773740054757939616653630139428535848704970713874087844780836256978747520054029364434898007662006290599467478275900403588277622101578578866710928681623512136279211626950887913500747888452708049078420766654360440080584132819838858640144852079094670127201273641632707206285789022000084033701109722379652193274288815606376724683255020491665403367033187612639960534068764659661979572030327984914096640050701247903232753593780200952769953840101800544665467972901199805989499340408339174460497779485826244374334517974516866179350172633833984555301436825682383265141462760883147658822756548094702905796252713948334975681350574332264636514889104028136500020712189882173340261937890577695572952520888592141341808448304498554895895603614200698514292826302610037140779094233798116953659876144139449750698107177329553819097606775170359586664798860357328240062249409551946948418633066517008917059253355116087942355740841516618811594851809192585212537625290184096459972424680359250649463982943453585519996317363797908380225353554899260563710245239007030007569204036509327505172883405260628070819060969072878020030099436486979276030214747633881460902667082168177357587154702572948924814889352529023849530616869018265484502644555468652896606387809704095020075025566390358924091665626410767755237887660384412841545300749306307459058542414809844425443165152108079412137230643468922382128626371764537090354623501258908563023770488042228327688544791716672189435720768956389133092170283695112073570125934646605825106805826184136627771980299476480736756556971337141352358176898679450657551483228442182206756850367480314719243491056674234348925255354204435937295770369702468926211612746094747882067151405681662848361485662735031264872223225695111652034174130422101565347318712701278262372868559938780326431872657092380256323157306917931557980113048368348651495695489351429897266582356508629264337374018468879865593984099688573696098488877008872435346563468287947974548285489534284448825093593264566274239761281889442828661692945564900011669929331450642728253419157827787598361999689457463231368696154200560597748940284176945288800458262293916229962176712126122520248278083768296610912464425223266467715027797873735351491435142725109654764980026178376621728661957398357945053146348101955946105806541740807251239465146697661439881823130392307325317020883737645308332276883613275410074605869779730316642507867687394179636841936152861090862968404786817274435348423323468006955815496574828435815965458542946520887542772924394817367955609799733586785689741897720542566194631419161102742040697709235510102959903094477530012282012404579257921448773328329352945956730298922642883165403701694920915097605561350089414338940651922043456458208658527539123112411177516687814407422726314551255238179073429276399071114079136114644880541886020752942321809413082789343408460290813694643311940765154118341591014720782237302661759415137109910235833929267194133503427588212769647801034340271396875387833014534365794306039042031494825103108667922106823940935954364556585962373898030473541304973208825426374559390501155459352917171806851777596672198946502591920838982034621807373263124830856514552731189959590494008162136269471656103904355127150507109278789369533328886722354337038710043312163147378835045805755597463536616370543173885169581436307017344588133151258792174116409096726841652255905658305191817709949719311270454854609457429388501308713979273098572005509108363006227978551343475183401382525317005654425401159508186753946945132098965017402069812840574587581645785884729420319675768418182304748420844798867136705975954799150596081913481559495782758565492465565255622903588167939575098208886037848521896323447203536093849812989709725749591998441617256483563151975370944780720053083914558274745529413294585691226849364580070246306759977270504170999841746123053328096676695986218723956203948115763419694898906449712488671357870757100030230341244928076775331739158253692248901312982281517825395724330752289847123124959450071595679983737399013498898409726574342662994655074372204727965644908740863287867083793707289170757798855722050008386249489163082836566795368150877324261497207698617357759238409727269562287769188420146670841497528392062303726564788624316625107811982663421557634909250381402534607054160489927229692210718143547260572014825777302263447851137023088557733879686389235130440052080789689275013387117909787791452901144638729845013612333621450098883185305116529297487422417402269270456115185887833888750291174983058436245353877164651900920678761762671649856092337081281449346241019764498607037533179448543925713419348762204485640240621988440273119101990298724007443829686482847888249986194772913911412737741942522888874133593974249708880007159705937828120526973167254835211423929607591009410286337125821086170935033646012492036663102086899166327882610166562853081071306138967454211325493206263919443389874430494153339915034756287105707147043951918672225904259384273938906851754104279077465643030046725442714641822222735712789295269962618713680927770955786130553030543347660067711589153643117181015846364421641659695878572192175993934152104983750069340558521122963284356053629767240311814343128592659137169334418601030045663720470841490039941085511375615788122660500515266872230297522623636295318634172755952240260438568645212533153306697579667412034252497884825970067955567819092707091545803216006750361469984261193228591075990475830094667744286500588075053538405536568875437487009629330816089807477208984556858361200519375554780360452367937116165548197467930732712420124477137809786233401797416170474806831536169338665927398416558549396314400257556544709742588253083724520226355624814452999946307079999534523296843236055044303125395148342909980878497547234386818493900838098567368230954590449855341945335661054262512833608288250418874145602809284299308169764952094059443939386912146584679219516989635895547639161549983364163718104487869234091723988327474548003125867098317372358124821275314751183878612056688271980559717746949904666892668698618605320067801937024106730521437450858167101733514845020845930916541874871550968511658052241480977515645001578659635275149533984414645350009985483026426786740669415062286243300762925468787011889177698372068570589985386345836328050104312752477704947309089707206750351285016753239709775077817779337095933660848304292641151565404884828152363714088398870904974182068085875593814488729763939894459893667822714530099210838469430040325939881895485352119644005540583815154174858514600307916562989237169785845807200211041858308798484955557895937487937425171165493735091754941461296164396237957047596929183102174344726534681979535113265321158829346120728502879442702908530856792555545417202210378365870827434623162238542871834789165324895908858342998054588276829241448982450561959114525316270452839264718322223038357996200595191266292135671161335397701615432855007698708112830449213672203272717912733554171204183336183125537606938226136248073934774254585164322841958180074532690586178593164669165559418629260403117059220550473049709890919152293815620427312783787961170055063079550911974988052460341223445279668475417113863489644528772428993381368406040474949659228400898184921045361485106996608142014711415237818070173929616988294010088739087481100594779873914617726259416122765798291401649897835079213736338089352313540465061391743646395470065403017530552110506589613950297254113369930925415607201770593612500394765211885877805657330975216685769301745568110435745666919140572402342206217959263904950574252315045122198377972927655771569387155000396479619242227141564474725026928640466685707437020411782656835444663213778273940498199548246236905922252709393900619656320376796326173336780569965965791132265143644697142975804715101966249234970118057697020931264720052488973007193003818792677709413201395690784879248711409521564217447816908941108849187381880559874226308208332393821857616505194697838475675691889982021534547559629870278748687202343785157403141660989540710413597328271281662763965971649397158041055721679642588295832690005435364036080742128653657772350749460687768359538410869844010070079996274707967828154781920346288836717460479562308471795458773369987230214035118326382781730772505434511985600156265895098682654681808539974422329681309882116769886627228773714725885247226940968926618730953776077948543607706764677419557922842805671644581519911456607708020848449933481048256643303431652223024493088359888463389133334266095510946123605555548460648066704451894898300608211916562232776834936113819407122996344368639004757847993937103676077936476954672868298425790218378215134075897381547073538267485832800845493611691010080340010359233205483417570994200203330803468371219977060359654858509988036889042751720180035559845143237272849652516002628569879253832965902628936428251182022656536853510885030752834814468013716119918139506828777387977134394504140519623538145515112417387956894075591589548512384611490991043438236271819807476604859115000737594167254882953822155682002184599938554829991761030389928835042894355977747271301968488303020662898820080582509903029317426508935855409500502557665914185511481907915766432713528834469037137395916765901464218370591073361471944338882915362761312888621767806455966696656266672987825013141695490957533087734513254616977127848462173381932632541584184310658187327317541526544473381641206073648028881353101410127594692768057425890675825337474432880742848619452309195177202445177266219755974122760042289157629907877420386770426691404809623756017534748130710224308934225636714670638313851707771095743540902970005247147697065503958583814468068434661169695558540414260060282660328263733897336308191802851708256103185861336916080227417468968968250493997260823808879795469302277830083116508467729000208635385127242429439661684254835885755267085813877568009451601663829804150557676434434094720308983305953823666870042809946236411905375497828743869666663810900162705374808494343273495897366724016584182158345790619904118858608780624581623728472732607190744818317148936846663822375088143487306952559918279576924397220252208650988241710547642277206479782146797460537685076765394395338828279147294115266427163833735462749699789475430684993406739404422222700102688740333977351694436756567915022902266225596511156445001863183057994040959153002840697625560947942187593083560114980141673156722432631305171787203274506262064293302643902225348261369541358482556715987643872079413067887944189649195463963756236889262087372442401132862393200303753454570713835921642276056221003603147908981797598809654199603896497658537938904139653225105896920838309893885850837754042749943352815260088879661102993523703083956186946969672519626507905686823979674758882679725128986682567412426834994467536056281024756834135584069917069152362183382568786151883265431785129653784678537529175181484387593908401192258081654133194471442817109004734484471109931378095497271324144577371405358764941902855347679000146842372925322333919538204975250818540828691423957514997715936675680798788879013493197354555783328490008737182767936875749485112156990596559957793735418576289042128277859893589489769114435917786210545335665778342569214766335097432920424199843217816535852924691675632916904795832120986805700064498082824494631048778789816714510314502975000642554072643067463241547277369365787552593737219521205775482787989492769052650493176457695855540688746494591309075284550718952448574761799815924330397921350493523583471032494736617160482082086855686901831827158566098577250363694630010376867784889572170395482511247031631005554784570328016822499871832501926530586702260108986823358784635707583827688335611407343671819400220882042229441669933942599942028644388045754575606490115923049621868429370732458006025856992093934897805811219167243481189647273960801276014170703094171096999363335002069872880730497668256641048797792403310192849245386598580600976984603563083577519550797672376543026611484301813423769878705456021609793688143788400297444127151971376887800859858162290731057182295525930201314301647241011788933066855818579411545431504736912556126636222681030269756040701950785122169462468856107707050934355440636187610811774024378602080795900226692812091276017671867166988998468511435785336515425837675717629150936992411678063099763474656944461197933304666313766187349474575160491026644834748771376737549266592375845024659732863818387083025960575003845733652902757034576375974223078598117523368079888907827805500511040712370275863220647587780546719503069108894486434567425294739622353268994168312805019161266489145669151433946371358978618616012041506347412435062141322171384278264668019834514063905989422266362444350821639437565402718292747934095279599534643539401726208799707755585115021876167503888706313938869075559537698716050114354481951872242628755413259621257427618266843537971943645042222644584086624947248237237929591844519293944923949148873242034049621753995410607957610480828734375770658555763918031446427201911344155337030325818652016328530257771491163812259598943126353730300860592582069018140657947695970959945290506036285486534719143108480023742758387611687191099443948315625211752925674802419274150947958502722201241652394818798825190321201399771738835661563235155734831226586603961797575588689251468185835083428556489658034173617553830871248060601159650552276042345536068226168776518262438361523665834426499609681220119127247994838046994836039820001386321563465994263525566363109437892963980906817699515778290790671635407705996943131059450534490849753705751565699047221934510524964151762221394865400095939711967271804658129487308501934651368051167039148595838873751301214076363019081095808440079923178697319156846081181563188738838747805603003022608202787399237726842815289425659031322527298456831119833036226541460833476735795149738801778241165861632966245125397142114933446654842468909530195531039823815415859480449016362568489648865096775540514212549065055200663832976206409230430218785553108440324366209613063422501400810925658342493293406925584672257279935439482280809995635647907486434952092001995061287343881044782115238269718683321910888208423515712959981626759570350132812225839067158536296245456255754019955846598306281814204705621295291087077954970995033688328726489231898829264658410416578995424054863658416792927233559919058775536019211152998817512761179430432597834216951835751584499923259877844671792947785955325736145150834426607364323316128242751526238680938978693667691111250401717828507196878615538034256218329863265590453874612544592509437375123028416620955373118740043387031239603618938364597343297335681247527480842528425065988389837806065715801190224940783196438792621315343700692887103657415733162536901133811311864757315769496018025056530562889155662092664005671950872996311296902187205940616961338461492627378104765319493560929323381383435897845970349172075094144294349912842833338067809744696001833541738758142509817944576972112838154786120200165256579886010318617448108150167813880330680933028747328532168529243114968192000060728942901579212207822601547160075916514534963866410493974403014577835563409613682196634686939642622851612885776506195606119570466394351785930062656893339908791606369058580491517511290034176195524186738074928765342028870584962633867074310365730943117072417245491181909724138526296034644133250624586119433692256087598783055400318375181683719664235717757625567389427237743617597426048733501680875765373765435904747220088627758331597910939230607749125647683980138790772241258682683731765698664541362494467094293458384552588387155680789664151454225516867009496754783318882485750150964660953488368896444632997649585070977286090409167638334333051024275903084547588538325216337047642697563762882816462479075827690164852725758054096620532174694776883157294164105135908646094793581204829554834161448593291869381940339167837907023847498176540315017697438885889784781338746969436367936008834295348577775509006835178412804765527515503549904785628859380836071912252370758248825114433311900809423097546633903386976071478459607216005570727139815887035112039725810922288816053892586060429652609423539276977185126301886535634616968779700296062284491898698143268004819152934306951266865678490020434817540750697550835479417755726421830327155801989239048552713536368676971607930356627937834140325946782326606687776815521565443136462077856243610063965643284502505420036792275270829294164258707748735882531441419603807917826130303181351278542272875381052834839682918529557731686448491450842446967242795614705004294344238513770692927108691449273831156345143728843695306892930932637947656489140170463075774546209195564689819531686671892064799684153231391392305006980527284425553014801308180775038452330053538770385865456702770318537495617098189573334145686592212768038042878472689298480852799049050572522863699602674459912623367695144728183915434850383500384791316320014864731852431893114270211588035981356148678288796699580253630571023901748072074965142701102034788924935207495793497696383401855861891300858745784745577769146103405867001234270591802125984830129374950188142720288936963433036060103257213162937713034023466227848979209918601944504100091832596519848038515090294424614194132265290469627178981940059889932550405443553504101214405678070230241600288466693328369742211065148755243933903683562534303338175279632551321241158516380239036617480624747362306775140796725140966927358961106012832181343903500130482080271987828892228972840242885401775768882001804271186082285868153521190510525399812444057857079578276311937151049577613077350389162901643796657614340557630958867160983985080330598082875103612907561955002688870667845702422007852933397603510985396277588783637465569436019741117241482086517153453629525878703888854798063549937717173112462005493878741109586631361218044623931118246983045108262658698538848433496151153523824865170466301593095256093513897530718635593870648941949428016349961382478874361839745728263892388773658046070329178602589682398998376693405683936050735789742228441649715547355814333621975011109013390747739487704653538150107279673588069476399107933453926993576613066833424404586899412251924189342517817139507672070916591242802072127162571593246377878211267473703584823344877469461855185920286802832793573211776414618873639353531083192937582648975559753681781055534483610314249998851956789672104051073837425886684735071610204101341215636046505585081328912687754204272684584733159426623676580300673900305931943050620173075985014438019979959539611061831025795548741917845257191892570834365706583956782161665757570446410613138957301353070641999390148289943505402191420573371964271980912502163269116892762936819936378617733026843800236704695712912953969179362432825965516927856398548879006053717144625775961525411249038731273244148973071838667338189298798006104681412545685427354249196653821318542112339328036430846603715192089270970353243555893105363315780860543144675681896120701719903446393742325005351510530627190185115030754680581745425882308974379661985855308525702305263538812950349050610293333812068305862275413589494402193054380357643593306256893769788700940913986762340125942969487946587281893119004042470810987095047737493687974474861628794333278431455522836960471488253180614111227079013805827110432059718843872454962370088431266200670878738489301348757509075059748041555924588580232612888448183522761243385867391629165895245511790806699884683664407842642161038116957151103341305563658128562566950062552369900663444123831258139178205952940372199284877365366135462619611989394869259733657085643700095288234430024518662977206349695301395555160099425342342875139833982910014272368775538194146138141181917492010071648817930907351860650963084496761506397452935918549362025070287815042761482557896792687110693846874948275237993430180994812771909805692854531204959439900654865711925359303642885962630058616859706625576333384834395092731646535298911253300197821852371884442110516842188158159976992686519503716163034797910506969168773601502698429580860129822808333584782530729762530069680977607785326311951352542867076396458598415265299023296814677323726315027795878664012599613738826389004130208780294317825222280768098853846261705538440897588095912202232201145742955507235844486152322110970484328749141384835640014687043556889866212704325701894986652294946359784738760696332909607047633804444696517613174646412587619894077392035585750039502970216858022537453693796421972564228046541146139107670209813861100159914507798332304579655228982504115725334867384634320453814572867392830776153368305393531874357057882665820706345354607259736988623520735859427362636422785472053828740821115132273866169056631009875900972486026587780899228530688253225118028867281314798227144736177203371589637004764870222719424601900052510015677264606320057776637254048864831027185211572869170815748434087314627263934223676026234628109556991774291916793907977917284511484283540330336000133050907577448374800652279997944189036969072153353874360103298252160386665655063906110562695346035166261639677510594082073374938127772497990273986720271570401440250541237699358551743195776447962240158902286818597876061076645003969592941653653286628959844975349487442436972183407563799311541508869633070078487552076970600260619155409183823763843873368148492577182686826354397516423494469885728090942359337529439109782480910173662449393458350588590378629046992647332990524911130442043989304042641190590432432489801385022605857987957145438278180876088477985358927504498430673328601461886596032247765679148701556720814548377081862225271517394862958784558879641026514459077718703257167025907538826879405071006995890173442917267892374703785571679186374771270732176267924985725547187676835162630280753777753246959486885817579449789968072248960796631048239874007115346738769474086670821454817754458373745686906265786498086456646809706457124109803415004616679400113459419241361625309284326214657148158521781283641117295563170012275786793340183839602518202762553463542451397848599808329379558316366254651254792043399433421878819806108873723896688627630750127996664423855730202965293580415876939574948909983151176525037582257130639143199212800189274280548606178328292352872683570895119720545318929322474749286990804476628656059315072473469664728483267428954062837679536876434138443868253983712066771861089291934097244039224059495072402025573842301785156221852918853064528914436668955693523050264009843959130556533302426472672687140827651509028142360955512077135599200254540810990532830026539202315530632163222934545004911156508719450480495330266208710517573530137170329153630046529643479973612959546502570609523930702839165809278024506512404128410440570512340988352891062824424248500106289172121909464081626070355616027009445463730335278863351366753222336647200134369258763075096634055645363431361316094975341893900734468942750537596820119460608918059656013750835634306390831261696191500825035002909676392999261928114536500382303278031811381574946657512880647391170990694771371203674270167721538342024138607668269828967704563469290122455634161605814766384018488596427284220002235655996457362761291214784445127777459128596578528818961507222555885575937542348439163376648921095612772332626246984805325845790420680539000047877808267876088699560210944422431175534152073119299011650503719896411563872037111900611099105218137497609141570701882235261536738342212871328790110461895040119927747682440929609405714640518264704162052475338172599009121806674016628017191644594160328542957021354628768871321291255556007765771877422194452830344180570044895463011995780884594354681112645500604365365707456359686057580807522383427916928211710176835595066126637498479774013596026839348383179540548168453966254717557489491044918547968197935543364950151209172362879915808638010435886994967638901798383996571537842614215554831458329577993835665576465241345089812049453036757634988065697983488173203920739045163652737504429572091380528408609440932155089023944083588812232681097386690932221853810301416266394932431774978466986948652659630889746580013420058352015213472604156789657290113879829451130955221893458253064732751357050001505901277024174375668398559040121376401341660110718050671539963170628470487500494930985240599499183205575854353073194229016455473095611688792424506281682711329664604111561678724889127011534964382209426887555466825477948920416926520453278591993150171671705791939631291542592047004637242563486977492300935500677466320237348856534063687767384985983139076049288177590838436459131866267280914715578760904381728209008030093669797550969917181786008620053505228831048715085063565333627090934879520766923992552954494839350868771781699412547146178610753144838066176130240910401365026291049294401794713583339630272686815697624688120407727295758651899195565745792469647752250007899941740389272470326844685060152020748737487314106457028040351448822099619694399189484962429251865839818224011659202282222147703899201600475392285442107166168870624907669185506545784491949786697974693039720252203728425548211666417061117578237033095630606647598778193235131635819830509703559880575297999096556787836758512846531030526469656645122501647726244972863321479266258289874408613736276206285344011868911940702961642653082157341201659190848758737351740553574992294287228676702702638196701766627740041011677407865929296856089768450507414037007593283214706419025724489904272693478772620766654173863832789814304686212069669838871451302697938659810321489826355657332884616107133084925031794909918113775371809907073995441393105257206058358502381674077673166879063819683493956230784666711203146088494470096370422653930683461635109880518238811028541575234327115470678532189630377387723462289774250843005570118347412077053372415328002430150619168929762299556688513644566869363246984462514759746525873060059668055736557524618686188122621641813047083754521690018644722959374290142672047556697211771296492419101554521661418382457499220586614231348569656987212235999005707166969399944816233450879509770275688974773255701500419509381289921155562111375500109485640751162653571746563231660187311704235473586815826713262011968852148364140385121460008862355319441745361444938000457091004037573283900665185323899377253371896617002108903931861675181940600975535472258059330797113311616933417151579989117951340790107939572085380470322580277507893789875336461760866639427319189785743932065953915039848594431160195260585469986334326594278174927998258475758589280469714569308201941439080719524361888808958377150746765143933130457113498839752148056508182820402317602694091932214001176525527945639262071256554357671545253252749722051567701090793755174511051523259021739228312560323025321634836504674228071677185383694575503611377998635727991444166564330142392027497386433485083950194806340246858341595434063335626229697497345077332935014007128575240240253559100289007361680576484137159059297856114669305091304489714342234607752986728642969210636844429214297899555957304969291269652734454547510371098262245448447607510629065953391757815470199537400861988539850782194820960018646498649491386073740591574673454705527516706977534720151219732077766749836123862460255126149974412888638229553650959298960692601228911186233741626237390919930769060268432096254170495219723256577617959936771559097696219899462733529345201195212945074614923125093295652246163929050119305741251951567696071001985954861845161323029461540040978117260675712903702463977913550931358272982217429003224754815002948408012859458033523825067329071963417475935290513152312867236996189983517787014336086134219950521276004330592319921550277940808110016415243758213509246140859100495869816878163978458201123624460924019064451466560738101162194083473689512873936297998128178898193439602976025592376079744564390978693437094238061276381500971219392944465739084232189097299343709752560326635013468166900299180483960962703828953214042011479171869883283406624548648697349737584179575163501686825926237925469336423435932838908769841116970250851321823655502287913022064642275180108592546608043970056965355450284922227500134595575905065957452397536602156142998988221055418481270784687179826752239688480857306459806726253585144086854798966557889161033492709008296385489764933003119635961190896954028096168918354129144047220976981961659110206886037549983076041217320957143053211235188295136689339240518961553603237440259859877922037573553481196050128090805540766450687227673219221319249682636483178369521239144696880667569593726329493891065277245158049878143216103355095112644128955745660114588513462163141200761451677353337461209548632839188641447796920883136043094407485400939235365645558869712074069168294676650375261127235681078648254626356327852513452142916680641726990570808621836575674539319846560624819703263544796840764955292600794533269830694737102030325616551653259040954384821174432175938787075929164484429759718464752956647433819845378800816288355217204501109009488744011586648325428979816756829271136550072242604649668580651795966402041959796033761350008861404429910351969457514914540880243969175957600422217315872822385870872645309692531586154442138876766057881921962686171957200640458476110158876577927786588492024031255039342776392623843806455838813975577556120650173911468713801924425262886217252504766628995680520044811970936843458392754920700655845401531833629161688306871058333530174523670100129301418607641577173715604478621823786096179725232894171473960258890738736960996448045774063032640952402062542236616268244060237675592337620494242329001022826897736265634051991322740039911400794304802886147426554933956936037496933920862057381243189893864585336160418398900146802514377685368688211046975836455129180578641200817535763188950429524911735511749380666956888379535880093721336602016063740861736739223968342066892863922576536864410456362518578499729397889767793238655018603469411380802515783136560368763689177413160513114830829961459895578019858991802547674694107618578438871505060952771610479430631251723552161306602167688915627747675584038435394088433012444890302676112627499942227960719412997077255394981999562637374772134429003218195817589209475208666773756960494348884116435248587183022717511441339708388115170070048589532318420450720227379754424992119334462416223761205450456585579795967519353430462864738906747211509098701320030858118788103676038557640225222980530795029849704146099261051139826814397642613663460564808407620401632435713480662355476156661556958391320663391143130190503845963019517175930897463062862250582481187938917758281817793233980221740110826857581161932497920541895345146307155481932950629686532449606773517043543556264450090738529509184043510369289065120400612127525144255675227523775754306901607340291130050039635010188245674277868814151969088791908357631563577515644513339917791096184368524252827810289515447648937162586016339488288890467364511946464992597957863416096482328328002607994791575437509649327421220145385649032648598696600471423767184084053250433576919928756916185768597285419406686551924435259489244179671702643678282902743571369341408561663515610038367585689803482339342552200100154577927718412529283039372501850967936922503234242833192924376741256841279808879383675570695045993081193285058843203530371965214081007843130588780114302202874234187083070740649798827976709098346420916132831135649110594161344591700293530506810876715898320199506460018514266918938522279560687323648849545189771572499781739174014160956117147298180933940174059324942213046560055717137679939275254872689740814693221266124739655379030971811142573631688321199002579874268098850800781317206272217993228224721017653917259870394892628186739648235965415427770882775385782397806810538505822096221353346869323425235055439229998564120229713523472787922163427729025018012743086433759115780304533046275689578746140981217320134604090686645310619753031749797018626337310090782384955980774564410017348226433677908401679166367526663285294875053301272658481138446188505408855705816879877392356334573109418994445117478115048702092079473559089054164947191786984079830362772978079385484815986733903809793711959922778937973651218330171631998743913072304506643566762042453974282172236282443323145061109350037703965226377089149983672426145004088477773317063031619981355065199713673323027822896421884138287213855811788482238044886514791596097952195472797003644291383047914962347521334944109748645140927526769953873661071769285677835719263588978009482508826473158279693978007602232777042673191422537765458471234731347168417411061493571789177335356722718202368357251234762534267697861614639383815576823697106986662847116589584953049814808898038569352186821893279741710972262887011439755749379579379859662713922602835295216937894995179814422122704199453593855234646173420608109411257063236373060074647248253465261678371485547963607174008293812811463052150056842104075455202495139407417577027986623845344832607671004606406206096834933699329276841846858049019692701652924747702869480575567135988320770433273170225981854454888826538616213484720383300120821052342352865764092693181933391640098939590096377246312140106529483686290615788804904049510068636586036567525835131503216307179774478269952320601400984612772285645373844968404495629807305034278239686666341648257595615034672283261841367972950436072144302655854418376813414520154413883422566702070850125048084593813201407935486348925678298045469364817545031770405998229729798223652364376401359901688355429864867385596938422419618837585758437981307187255702559715172355068425012091595064175551168768729709856997001099628422012940231873710042052485800197957646289427080593112034729294014735020685577972671344199311013639183904530534930008782577224323377349948965154547694897353732969981759259363629883143349361333073861430974596135857799905612689509056526679202495806388754623601130528981848324503402700204468792222030832224177143990595928798555936857613467855337096233127621902078996608136549722937311600148772540742010412343873509810285137570030442796137836274951219878448808488549132028664708489358382118434992146533784472687610999959480440227175219176222818322273739114093048366530420223449662020432367673537736676700779845283216475710818130005144240151351899940875546348406141472336313879610692783779340530362418987882052103859628032624283475046391309742520692426258292960480625359293307722945821399123028237017434730802063794460948089735943918117883941887553607532567034009032765914596274781797898905353704120242198248091751741442210264805217789698697999171245131695554154297355869080200293948487895414333618618265766134077789545153108737467026858529719923251814115012644109895759911216217414122515148807981325768804788819783136086553986433642157173405688157515648396217678921332280986070860262303626220129597766960684058065430237444279252586603334955146915174556348465015216742310505831979353576828427112222673327349896069242603808173554699027287718814416897557026340520351410413393627015481724724166181672300890802973901140145413446347290533871347056677129435490940332739939102781794290713607023791222829225874266085274176622369504812173454837373379097211591752047018914499812226553754854692643340393817064560877242691502638880911068816673569002065314537104167517729421601358849223508297771060641780469353652690917790356536748964099232736495752627230867997798154512541931735695073993530113596863691426739471285830285065122363090788876897702081330280899957326747802520057387895805590454532146503763467437058817285837986970841899450183966445858544851473190008502091840770408791750642495893541114672045171111587122988851817448333268201800816690313863502893731236429744431301460781315398287407960037680786839577764186799487218530001013615959948931724606488639562063554090252034124406440857707296975676893418793951001319932200826366076437753472368572918423840903321522548395326949187037527076948116962652621598200059571693747827410792880759630810393279840903038275361089757560067587844559785978492289336666448919090775138794471182550494514703898228774021869074660752414746877357957723931457802238702198258128611787689427137189806203205137411690405234481736748451649251055268574747090842915863135540755210329851525692340290413897250148566345631391071186237705468354226673688044149145210705668520265372433533859773833488783392429562682433427612754552998128211683219446565862969183010831759920579506917328434916516850160772702776782119209301476817784841877191295292592827045987768955725579785531586988321780564677859648700176327444884524835956103646333922502453391646950468675296458730493312699890745267258465910489617521482284682251247381995528609495172234392424833627074298710839790564376261819083796200500760142742995462131280050691379191818166344970590632628233701047605303847370139839560786255212566408765302531184570734564658033691791332109139025579953121225109951608082847534674606494842260603165949491598067304204616829340222117447601973809179547945750302542457285646556290878844612435063775404454579659346556635022295435965527479777450476355714534858106548541208979759753042337597021408002075090576347277913082839464213447927751799920524167147864427955454354623078318906631844603822857906555637082170526382953470268850403096097563985301301223162760939841126843353579250747733415521417076401785060584640472978085229219427138540066026451877999482097504495375123525245393600910998683403896654640084547948923123648278970064830470717391894422772125354729042994587038872917002287636152837863967913117311795661709973145936801500575298701948335288816969297816602062602593434350473630946250120971708816424046996907354944998793812830536646773119623134482526515270075111525400396045608436952794468432749671285568036462096154518667639005535615886377433019853411480591398312270091927269817819120830543546300483923622303588702530670632129202463535234623159842070500013104707111658208550131042439721828769866476999618274920595707552983381413709887184249896681860270347341657548269748185770616658178068376816284712619547081399518364213048402997738242231630285187593502275158361373337643543788292637448628111493197750728318995953886064880681132739504483988769531105224074461710632879572200092518510069530511068999433962549197925019798088254596260270292242663082863353407852463772929190976519984807664239388169181846875992524616468439686293755526933317951839182516838962383313574873165973478210041741537094025969568178531423281544331060826987556762695136582699824871415190045797233290013032490249807970351265526557198124720624679140490290325450961971672540214986806056693349394297705012334653995342964088435764750280900520382178675473935108549235613558808809052564876184276466430222961628651726250014690404751116114103621709830254042629772387764434242963987106461055515626408172395922818834858506716398487200999080134590661513562064853502137102962449286144752186458042035155486470985182469000495360189040635570355993935027882531720789974430986184914437918822612467484811074299498533407299679860324594072353299696477662408425663873792306752129117278874828374355658436963699900109942631555172857680895425695999735387054138394374118971532064049366046421840702666487709288294063151665411510678875612567069858653485043526821504071599238079342772710741869482645153949795488954012125572769274982431004740730050832303292184463851595828106828276418075880290221183583572006667458692982574723469115730876561989956630326631754592767815936932025792542412562021772222665018211001152046915076993357606596162374245302498921333451535589956910308983899851845420246831371213831844990694958390281318543571685008275510832536027105026681360212525400152456173207571230839782357906826219661784576387695769688311481690646427599562014746700709412857843257614227486142280626423792360059077465666436111944138267524133126673732705052787509689444541410015207784701647574782385182077081572705738854922334666013802366370060721792421364380632842853106802306926339831622178807907697047462687007242735980931659626869337138006087104932249683628114586770515564346581423526881543551412965098713748240972803237163702902664469927424975528752022927232800546458277211501949069546463748782275998153691482325080599877798812203295161876641774317793348269106072304552722306803302479972038847826670319099448149004102441292319199666077725916548074925497382166724787669703019360217275340517470278599646376840451691345769505067194519541269807999722782496817346213165635541925711065152761652054041427383193801141848682656688225520848114278781692271963126536941426247925574528892605508600316339959695881907866662509998802029723016071774716916796807008087395026060619197120279861189053233152295776629135173882590655592991434895024635356639589846995035871400866817819384072568411839990724118896622115503544200058044369822505484440066111412990702208142361438472605013204857267772934981728124016364312586499492609660762555970306572071432988644778790773533123742218818119212589016309335439446396073624499995180727611462544037543886346771281633196281766954187254182619205910202796890070873081425853713307958804284876402921767993858680050775637149493146724961819131538390527478802761176145774199000750160829441351111198289316452759993076922207702374269978290638959530371634773518233989805207410517144667137961220270694650787153490224658769075936473113774574202461193679269434562667917315789824442627176311271559698325143936281793236291237455227461047128542069003631620999201778430275035477456164310257549462156407785869570655098185192083513625144710985496727487507558104555447646760388441616608734785347811375104871023364754866548650026642395847523286011561824767379599202777861828454795527035684368883212676896097844843623211499146583899539787241899251180196813086715366755364052665405568096592800283693964597824791186856074797062543264377800879784576057505354945115466719854334644093966011664099405290066037727110653241928151930906179860561883910926962660041682784654144207486569528586680843724758496734582778415122850729603972533164180974836492825780603167908791336026345706102625525235055128765395286550180862613074082547569309493291032532420409910591607951568068407668634534043459970246398564200558391407280104954237616430355306994206256848650981585298106855284303265412736615972513166360648060093888787067376928592872767474972990063675132914565745531293955162537125923978586133048751692125759050501593993074676721856093298189802508685268371903907953342405437528639804378847900352853829839472618100408907562411531237100461363581569992010360359135267137348503276586561321510898680835517102877796041241740495627190221840247025136575152079060458812974707663048337007004995337495951742095201747185044158128230110944361661352608220621828166815022778685345443719687525462863290968345603464961597988559984879185038891951045780228861077502708597550773807780503769328894117457433447198157216553787186242109303788186750569246738889608213160083692740757668977857014246054509520589698528494914841379615571020850807003473773793559114722979872451359672363413101338657706149860758407920073231776584477437621713590413440411268106422146265165519740860846069402396274181080135578723145727604461498302047728998988768141775028420395201029005591512321650696334865381985243980489253940836864744544889693916306671838039555820793501783839039576983348475187248323336382464972255743082075461403305509113195042276036233376048389454168600634822218684351111581732905458582707245255776994503224078762328513755758856726410177164539401703438036268712868255559497547038425916136168996573368278943000426240797217148089037350078616556282074666288429024077501497053696972170126643865686917717538738770017291507550909947330260824996151631022956130846974318758189370587576792360262957410944584666207150334154318788683785095949806571544097052642020683953352564142834952857798768873215802821452474647208930917866187062546234040632626167912823363378137887457878409391164455182374451871292035492766756816008382921352345657095989751991636633430714266833556352613483445502311702236761275612144878991571714092950479069351705162653692547436769211265222219303698435524358164096336874599221561587140025363688688884739598448419039978708969565682430445811271706532486587249952273585332182845126980115454223548971352442638123737028037203941878206990450261905847900787622748570562398883039024668433843041246684831522018005303858763199816534459603144850444194519840433337717865000378324495769854771285704367919646564263151475118070557914580554605556146558729817455368191362963639220459446681202487445687835292786688044315944320186936683238417770181521338051643931057987066762761240773789017266345880940839669193676842534482714788459626211211676691848555564099161571136482974307735995708044049944724724982643638330747183360561875505158820487262896241970343725415548857767329946927965346778815474845969382830744630815026510090317851338546767796798627898786226270878712507482877496646869386794202252835449305097875254272837651170058019231907294463514261053307342046452539870111847600290601054630137567721959573654621026814007295606264851249358847269093687895886494678125091437125250372715486032436872321897636598921753445960284456690918046265176203088923315840697219695938229927575742369891125067764588930589372928579481530773813444285695434709261508906499929885831431075587396555901976186091351344837051366355816208721167244689013869596270217778673038572044221481392331126125427825357888767295180426543781050769391554402965389309045086328601811694571750709374277486544194680190107296779701281189861337243235832076841837399070350587194042351315533097066039270011528598184408860897643949593294939927219698668973330654101036863578582361206453644407751273893512372751459456503700660481682215211629347468225512659782672386198674356168608010022368268124784058135806871606478372942489354664555132117487794942094612883789350686957966226252040222496014104609045640843992617827397663626461278704922414201675261736459437502863362850491970499132765434195793306855219449578086505438564422184563210986533742435209841015871085097070373981109131976819812079667479421032475331772341925109797419242536889522410257117136029726066175966356408785301179161289746484677026254937023418599871913877422490584175023245590584442349336768159602582273114552831723703125087197346062200075743043709753424035992915106316153701396300996225820880971979967374027702784470161410114250065638686031435118696211777444155892849651716002150127236316660601889485419857893347688595598416330726875743227216919948802178586178857171367418911321147759749211574024046500587807373913368692887005077633327156745849255797210291109254792417509249588362129033493935094256887214822545556468896632364885696210193217064514048206368058203488248801231141170482802497072437062168792169362518138680970957006695217927365506502666561574826135359693499790889697448683443794937985550978034245325347519086365427141152023417422710178493330725102119788002065103292036193762172597849881989245521693682827395444384068356849846426650462089815720770799421224327528319374225114810699683777247785508201314337786302530326295866839632185326312953851678369931379157548182073913330371671895478194208060198936220206609773919251235945614569724935921895082350183933357800021294223805553187322319848269368690942274425413044267055257275234189840689156617393122235993215231495604229147470605006152153513698921251628648951484626510977144337831783045079159478680182500940396283234851467059651926506142880539997103258046105068314700486122446044101593291595724044597348403148617690103252495208465778566124013813835139003086058775168983035480800848397390507452118578175929302520767345816576179376212434355708468720646635643358099430813451389279182053217520739444296790748507740529835243290414696222489123762908534276359827310364563181297651678735298395810544599653436153246198741703538109864617430837610917387671753473698696124632651765827346383546713815019023182497363475693935002749792847344704395217740360437818095769233916135338045341616630375404390483995214693333848011680077510578664132003777265974976894489244766503492057456608874732003002988397914348955148595859438816755691737664211644653703788553129335832800902353994706097607544274853222674961945346938932008746003662937446426367436928537040189889550874512725506290983180351698024357203941494775068765904204222535260754467695181662495513776963052064592386686720540071485768397329010846731068780884712421186849988537341150505223642666078300325268643347442823734288650894185538053210348980382731361642674601832059053588977215147202601553054645022699598614736429327328430665920141269519803148731533383053342734083575131272329286320877858575613167167573572270112694164232583134433825161792035368099358544271077232938515761080863241611450946526688385984505781005319965082961125799117650313541185779071347673310662139411857780023144161571943961747352729253172677505392562778815410956281015104680725725049636797469359271322246453435391823516047794277862236002005237075477604373226853601718485503700863828921582206193959755523110085728713482953847983316798024933939804520904872605221932315999439724588418370257842650171856780640583283590711858530778608584293601539911696189611098721189725893994347482476257508060116836959361400846742242346623045160583500518568682211488961478426371398289116423214872272109462582002450434716043047313834639962835613554529829990300284634291006790267646937507985900592107662421363750527324725737814858363952984632708029482217209950616410729465739977916325399384426515005339670504022065677504769315528541238280168252782143490679278110810578877684357809212391619659975452479037245881032356688871583545874252654351011744844135010278885520250400431855205421279941830247196312793221315955252471821909786667710148361246716440988385592436338088805942898537384380861889868479384884573887036553740216582306428532664988053240017600805909138205042979577202718253118969491088412549462302112377257040491484952302083036566061790984541773216694493639464068865945275333883088935751212957336351312232201190036620718562616215242503223504169148122511589316483251031971971841260641075526421678913747093100282501819767002950000664716354322177975225762056928910422953311158399928273857760528554806862814779874449026102585267529088959259802472695496544707746323005143368390375464764410470077867559639167495914141786966215336763490123923206160510188670339031127196339026355394346268191258879540379028775419144703576115003225485874860788849021387088106978889968739161332938169237936580718807940473118781611758336372154747059751885316914225839650677811408657943281390158836701139352960675257734189511369312345360266812389599083590068802067509957441157392036598039974850422982818131587563771226944030621449400237328575167577288966826347991369891304615276475004749931538768716310609515460639237174272808275469781068147805507339830139928579988753252123990043894872915886544279174162763244001321864323541163283032243403984862881362694191163670804221971905151602363623608443023771790011027546869521695454659152220983966730061496381122140805640763666064934022880742694186496314181587157156154820138228297003992319120320228342129908465285189981285590190488214590735617597922245532448936137559454691468065700681166944110235266315443861577414233176160683767424075650921864901479235931119086247798002665185007613619212787591485692563835148856518504166344474552351623896319229502981639058907856155871445252576726079745997931508851443239483936176030530068116999533532520278313483140353753573950371237470858911329447857958468687926009208789465222410030243519189282761867719561970479285818623128064991711420784096649507815791474347611249361241896997062178278855037832217053668569529325783222132714153610108501282403061090970003277778693230008440812000305531965891470175197885832471739387622820334063139860471134818474604077906704164561891427995583147082632441643723170755458579402970731637061685274680599695595034829418353756194407049790699703542315213881721346733695681384998887461943455702082280266643231411478148073980033956239610283002597993969834823141084054791104537403917424017625166362795885329983463761275126395994238947117984098278828711007723656656019504614320837006063590840387047365222414463380357183070962783505429771459235297316556354469939047407899151581834176505921321737590254300905869793788182509747644241713476346812476051379713440401703736829272749699495162535681271630250951095975685833178427111394432066060418134539470726190526208580388638606487975770262881317207087548933888873737026739576252241671950675345911833368926198882905757889689990089093441763433998958419757831828473308269059711247798016277031164642780086989066656421371026902827726424640513432485887900784632033641762412151764738544013369913739595979932691912733589512042603873090049959683118138371975566067252035470360181537127613535817677973278802908932726144542677523661689564353278641714124211501494384413055761908583582827654804962766603307404401973405126710597792730435733036339506215650082493402858418699827332841591934311675021352883430697873642267283130463998413159151049908305779152176213627607420327736146170985358200390307749854681212274426698507651734472662369718146389976346897756988816977250668981267696230705048952415777016417986119806198741198332988720431845653632469556024848021057883123563932764840453752504070718089367160510654038974151496018882806353130280172303243994157299991549348170198013656939063944733406186265946227680222530175868634152902850799798774598380791104057803854917150142074071958823585221868261030557784702370791331580828001835935546403842969984558214833841839912199422081899865930717918093608600946574800384328758132948670548631190424408280255143319613542257057234739620553524012209995705437642504871116236885506683310395965329354798916749391814940980130758363497118208259585783419438554211122154376729735778904553859386238389415169522297445664237348664321511733876264448479215408147293685371097777548254888654991019920127177311557860365949185934932819464457623026896395559102529893717910046226454952798217970683848861671889875171990405398310789192675585079700367497526317790815766599825578148101380904723885088830862906630735373598341162899173389669407050847281405019526016963773700692657200979325782742874553454908397173653264737851427234238094341154081125330073114934733083395238494171066378403813124403189487363440312054127398991870557867787017829452320322821009360085912554696085015686284923200274412624707159561781851583016613917035134829027381662380267157329152376089573747637821743309171375425689779420438728783472727590679691378341464015324669066906532922048050276163370802801728715612647061035740140259873331924212122016413231732412914959204205575714892242273930477033674947783983613078558717934261320248352768853199886241414345853349962806822155140850254669525980222449105597626423107980668755842242319993786100212822662338797392842021769136403186698091231388030045298012489263121706036387177366257746378103783257090167537896896562100282754757260896883412727337084486920687783952861119084324109058379231902431497746620878809845856249310309362505890365107988739902052551288833238184738681686509018892920656583062064137937269594636160049520185736223462962992068957061438934019714400285824623809821601226617866221797405799408283754580862025763164260982023644333868625592453165514033679863839467487562798757899776655688102192515585455315224909051511519487005484277911780542392345526826090512381844948671361514675125732900649216581946793334336145995320734778720677348192996304414801807175964742636648690967459138171265870897520481553080247890457995683026697458221117220756366839996721203247620431472980668568105373745657713330339436998976196086174603683392661935528899172446702615964503721088750760813340901301088164731690270683729457162890633992489924325404626768595588267883666286735097194881699012299728479820451908032575386080117381931047995410260303985504405656744215091908417510723620101078796477651387763354056669477446896709074002539815057867190489303575227932645774175721309248306420653643805338211659628120525816738132320109027483847993302232907525154437815362582246248259375131244968119574560334042212823892619855126871842041483377843889157913304801719537303648098277240832010621312274426775079335925327474090337982064125551783043900251844785590883850046133112445519212122020662672849023030363098034333079817474467832589108470199543188264880500458091829569093034537556508585290942272134473318196664436534046171178522694945474581698839086959938728127039417095551121713214389698430294731208987864762911061209646591902906159987699521904796837420935179384729447918429704662625081271684242209335732196823701765778852153748094483004531956530296924134601192818505983952883385638051902724269536441520777748895012043090855703203740093493728578226378001632467335153972527801457894397065978541370874518304059705830254375240028188409176247841389323612999312051150013776389522580573039797870361603308944700911335006458980507287541459844497652974806568086266791962585939534517583376372796821083719071110929161462816067157978516167541351364234519323914810153454097037732899197228857799254033405413836503019852921282828383830428323728058600501434285397228452290978374483363726619087339520316907561878364530568224940509255299675390158943322367013463607461670921387350347791193295894206368718358020392951138968432637896826523558651095812694337503242037633824897751779693361672919572842805738547157667052404054426516945248680422617406261006288892641011265093212065663341096083687680682946192048297907047834094589035345790169622920484875458921817955020118558915167890183261677524312793184221471099148845363421148147623162903927094363138496714171049433883887927238187290726115567449358446765797909417252160361266477764964911713718432842509774194893086900926516444798580969440074927970280487749383325556300949409866079385315008791295404405088134219579762869774863356636991830315769805473889933133964529217013511846526748143050355406693320418638993163641165504486751641285562497696629881532795863649778836246465683585179903018088509295614018202488800690813237243635242602251625038596801458559492289822176952283958069381388560071303584018481030699156621956202855809372659622231695394131456285773735875203627609315857738840605583932975900587587098111621799477436271939619856844664817056584595753198919317110447168645391400163433583854568499035687540544752928258194499512674777436974137918581014580783520035964456298332835295888297157754647645266663457891546320864588975861514269530799498356230735957635655382095169660680318599862144490764103554529060300763960580553395041568186946256122220036883028993301226035089735830358185218919138400856587296180467820471736451869908792188223655682319848391125569912794982269036456509987617520620609358872910071917652466733278571288947739568214735506369150638865285299414908985841400171874718280903419361981444261476348823761366776980106830433770242735558514403790315733114893801709368790161579030339646217999083716365359834110707915766184857562541847640470418051821535897555743135110281839717635203113511257941185384410768635304139493022664109359919749162700649230857179895196726864371211530758649365306823084057965606417976226398647147294751714996635485144342446555935088284122032031482640819846449316275507884579356033671670565537166352324081453305120725051759827930415924219435442843622449268774122550842610934317484976047085632875719500445185859610867430671952609184019945194301429989460554057539628356480149865711321687627564146564088721872284909816613639638264359678679688376772113024537451121576577208234084063429267256631437919885999293057829207923263088081995174889097498639830107549105302987043090553768891064883729629009154187319061557603161913319380918091768731669132448824496335639741783249530056363311549049599348869414813827456202853451243003287206006694929188552067169750978471114003702103864357814851362851006896223324765480229933487997461756904490330544415030312036401689573678632540084825259620362237840506899024384704544490193302348924439426078929805562317245406042928618222149253751075746319769825000030544930547279260049280413220050285243110368800447292774520597739054575046881473001049764367417115719481671421015083530651021060422226974866317834584755044928603545837215136748248480590379699494098266432701489145212975658832450230855480769320304018014055783326796049932486957337622625415223252084058904341440678564569134916947283414833047195394307701274375612856516685980427169520331980318071676094743735241845287748443286569913520102994611928595845236818009073710011664568351736287601569980983162838267786380936820567610086363870246661196006016570763947264739528907056039233728808060624710738966468098752348537930159475867919246716549332915846733719535984865839860989620933695900159664616838007643875590201563773980383397785961990666956143166020194293830724053695163840021145470147044929089765101673875928786804249299344329418516409046758870421956779471097414583872439930467417385163127110489997169518789385511729115029864361091286838966246498033252622289320813045533903627462518012651272444774429081815095691964815061505033574656366742739489910622953360708092479706536652738989733446595904504121891429360585252810789997335804193033505296912525476488734667812350555091809781514629014692721514246441911059663910084771499363630833011678659019114930434494069774185817873636567512703663338739852715467139099791126316492332265192548199394662532672035129085414581842950132511075445287807604096130097419025779991247604115070067511413880612845828984193927333315881237087686097340175081674444117406121528316200718876595254190396842672159422449254432436468173980799729254729876305205711982892569675343638739022691568999961953133739186634271673090321368281289224854908469901399227068721074898694444235262266555265171427594917134507345167648113236969230922090826968175311477796696246938838360150750668635614131172152708310791390487828030464595304050414523364926327205382434409768551790388956112213745087607025482277807096247159655415016905273891899510164135094122292011386276613314119156685371331123832527832008780014914261355603328009787251293970202784938500102077312943086833093149898809096984747537164787663310753194561858766049981670386864763010101160720131721015468582805651599501317049528466974760743245061660446718606046229747865974668473476325392441609558924031144148296497117571893607996860015354613844478637616109912607527420182899754812217508458317822871680641281224717154074798255739477981390224655977107377882427830719768685125430143194373818119202358702884323016766448123482543814453916116111992092301282244053910556460035311518800109624081113709076713098664483357853090622892095105531502944049399699123098484661897172577910836290172860881804260141725070667120305184392592640976092380384113160782340663454188221694440010897877331838733776568172453904488870832171571712869432830011776366177853347122447089763112045410002061245461240416920928175078028775357300348030042135252814082487946975272010990135625765393430520735514676280397345900134579582881834077930583396666319690951549332452765504322889787535744122045953832587869926547006078192441868586864204392287497151650794709856304882503639145137505186722823406503681190021750468829705029268798511164771476794502184047344738506527935286183466893363595221859655979012349780037073687972691063813845345724038377263919384244886411569116532592908921023028457983194379749365238993638108670289427638159263967558100188531443012623720399243635916372831121630300496701070406971241824085800844837222536744544497044479846494356334453524406852387018418846433184410426725316255760726942283914489858944161717967358614109820490585323935200912118782781234002063361343648980238218217137106400555555060808186653134276564096531272420556899765123733175562676820507602627009740075254245968874980354301156575581508658456982522323292197390946102663296202320961960163237091835471842385996379341515107747681658092821378888047409790638803269607980347556577697417432397928218149286174533158853237333255444257678134192845000224020423463692496790198194528659233519351287177137948607581265519453239521008063761815364903407996033809073932434269441466930812279146487873892475530995228499624887417017968808970740462263685941533097048541681913742590687559785799573039152253434517987443179686735307606219818926596206728068358821348855256517904057803663544199511135661459552870924805482173498829131651634141662821208221050360714265913008748269951548494538040182626916629657116194248393712932472815790279671914156886804282040823442421584938400155023532100699834883409672095418501603529821317907132041618462076642915343572972995225401462444813244073345181639773219982437537446241693757001744046806611776029632808388400974320088832686289657438606469293019532541510960925340470520643113593564924756879771747317772384041013105037318230349879788820342065144741365630062369730361345208894224400525550120636199826600759891153790366167887221745028397725314488567033894841301120090632666526541257424589954940587220252762557870380936220292667047287233922875100334743991257551803677251014475316915289700963182788767343757855452219925794467607600154344029046613747706595881960308319962645312211823026668956692651104089841743274978334317106938373916676379833057032264062595929808790839692259630445038019191762116192897874423997945916249199850059838125613854208260727324348342260479616422913507317107209071585015500560028840109263765106953802641867264391273367274763800282659462708302174988097179192924845489835654912543469102926187348507935319706862060820531052896885009341631029766147716395368134218280528952618330237767744012630790729971564285137855190760369258892775040202972683473887416842502379550586755479627118360181722747644881345354106634619981385891899914471796277846320234334759884841657356453997190923634986701572636859239265689340521601023559281979884455662349766785859857651043119874632536421587784310488557234984505005993351902713037779100602273961126413911089199191417575175365298652532892826816637593018271600630534756509101586106230188730498781599730147865863731985558411461248212071879511088335064082840072881473443469596573165626241049177647353708280328852820479505717245715393372975676339723506055885301297565182628511263652976517788994467973724754436959930028256380603239570114382748343713876730672507491049483267175788214352161291682571744539181405222634961070993543250247727998991868739206576809771361691649263989893609308173427823650678389744239633590953146621544957418430055747782838773123153623593697250497211062730872045448942339326375590087531763738278710840552996446715356128999506941501333721424168277166702676152945059629215110171756143229609087648837604623549174720512222445351058060394850263165235870870042200083905086486079311557709542891032655269980578019288431784462422438207524210850192202597189430126572121912270235834783817330765024567716128736253995918718259502156326230026118726213615398966865833615937708543868096133028867959335751944562331204831659275258270023797302194987705904964830323260490735475597566148597989876922859385844046709906377205491803144764276378963254132411333760849729542968301910408708995544714722852399887664146383645563352346373193686842154377506499405639431571670434700978281314229208755036618677228911062566322053436682576753885563681903408804559929759933610100385157552123539103592010371953888602608018165722746844357709598958179540831780059410432374759657438232867471105988438458050960153066364057377410263684074914833771948791884008104474715834124209099927684041779038787294323817245010804253696996405382250726978344936726696040694838012691895817131732650576151435713536306093999543302849458172952552926330784257371641069300229187075354930610585992899085169828843144103788012450932219506717903990311451146587369913031351623888714977603423508291131541293628772791258281148783261445905480691870200564596810829304849212608808500087484395835148417152151623797867388426083933459721717584363842867523993584201696263514021758685407045293339442459913947066147732484078180580852527475897637089674697351306627841435193633171292334429007929385206530356469049305197177744449354835206967490555228475798796534486951174020498134708326171352107770241587260546390037465814655165767459328432934659699406232441158263313277997209606985624973126042746836811872354151433994199769358463137353694648178779212741593024609145178149420868480951010038507743157834474938365091214335192192840378075187166003045671467908416172397896980061437495460683525944952125091650417963491341884761571034543449658448915306702814544485362554536677076187975312497569029433974517518927823030198633227273806264329901953368382076507459328496514165331519367662664306936324518940912879362038191499843818959665555471400275582608712414944399204128010362097590142226574005310746131775430208443637167213400333163360147197718160528921685412935746652570003853795088265724575861997810944899531852686699351636627114618723706095790768012761895244655471449266119722261385691771210041627078761318396147222852459257159262548908875652797288585538148285317663823814631626234034864630895863392697283585759276207373679018886202906840562658692551255260036984394611463395771360468554960677559685874837673351217320873210549811820880266619860177482744465624455532011493440239134792988880456853586955096695332845655484324336417966806621513081085555108676112404327022303007678046256738407314158735368840123386063308792360988462824091023346231111600198946133937188648673099834694218426611383542873908002956781191106680595620099507506996332333977835662511293923857851601285994649862251165613899109088905730737712598095117323416033217420649932942708926869956584473360076737484077125389646081412998155927033507018428332411164689218482381032544441590767876632669886365652756967941546209895035114424830591437139542492481539035288773011061881059831556407199757771307530324731345893826673998960197897038824974095835029570413371118435305134548931893359324941839284996224132558417424408028387856028324362131503886753482323887308691208190152163859152011399888295850125712910463475494850202167124340558776564885079732787476690935289114532110644940059994817892545090942877343151545676578221456853925388743740509127868927724814678419373026944160584505747618027124486174165692220691152215046348949171315211766831955020957819654262846660456695422627220833040219822179180376215159146135165391397626394479968745199400435331359476076811349779378630607961239533492617812424152609995980028296155713940095058966659867004845117170893204502466623215463494498937690497989621625980856933008327483088476570291906088701588563499120000779129318470855551509199338573073673966065449902769956372859939181138385482475332420087115890452843582581892922873875593609115894285055994743460859989560451645802196947750744207259670844581820966727792088335976232767807161134615874779588527270283079766183011035114408500886220049964786815932996272747446987321136237538765324569966076529061316950954949277759421533264228256102367926995391606955285898069242048856148118530903475173677936448992455371680977652626652132852299810993340106047544834492214965842423703302162126272017623310532848892190570709235604643001791316684440392827440024400250812257057520471194533536399367753525025589754507535921963487506765410482672793408452533469450744908847248468165997998635505415068342938899384308955217370627574241680266463941903278523441724377079437572477956616419400952637774190923888162920924236630814108092831332131034047725532557972698600093706376926057462058084340060410744901640305723934487337297423951582204905458375729331817322613644328912768133277933873665528667244641525114348227434791987683906384643450705499454179135547867539359559734567857549712700330917207338074021302796656392864404571962554252893949868202584446645736009750410097508028517954864765550321960751094634986761857084555356832583223125417957222606252279038268848349452181681702392013074537664112146202448472874137803486338686698105293375705626976610588454670117105308365064671659037416433319426324511187996123547860035072530688051720827297398147128924982135739570284903166884153856253082570023888245068973818732853566250663730087418671090903054328612080963463375515969725882863946422231925500578754966380237105395690887374159388799763783705901072550535755063440878780502086420972662902372885587728198802090166423878166965636721312283332143637884552356901572803756644270635003556946895362519105619004340943964306317926115443113312491835159948015398467452439373345435498649377878073632169966853479469481690569140737022557985818583403356000382680758386970920448900131921977015298585906788356278932099600210484455077926428257546223570411825463825410649254261175352937359998186970829216530156387702064354402704278713122053671500433555117242730639803426440281771101524906484187332511301423668961072217087014711656086053549119443471127569229927806641839480169209568214395760560216994759646349049632556024026403849115660861242774947517232300972712181319148567175814303952551446015044685577246877465829338417085341753894292878072474129791095960942205391989606351469333305766644302747359959461049450996070784808226308222116598267410978790119914647137823706368445615522081651387833221251398074143099132544209939290349915164750991953559885813436158372074452047466217385889793269291937119594111652196135881368490067979934656986878779546084804121626927537701438422847703875360720519121922333691886579400317577269301796312581047906963716329266928792820435481105535307436232966885867607486272765788349628372469654324874227775094331752869864620603321360562601721911650751918384803766542134813987702807177862955893979356118439869784255730204031153170631833442040165362756005653098832337358257224515126184597013330654683345344632800735548710465219566578821968674537319556837843111628013512008236961982516479616984444953142475080966805713007577569073901744091461971839929872427045418403310069682674395875514873202916006818299056261578763547140720378336783311636947700194996056585706675847586729926163572434369200012087249198573045282029290696647193869531292607561168104946915959530611928754346318493235277443608452361862557174372101222869249897343660398040261814074003947711575174989327601947393953208996761253394920839034888399590014140985595816594888737784062420112442546489026700871742713463229293495061613776299720129725483418344808735376984906207003594929075631537752525942194254917035806120351165143967515984364853994572917078086434990253373475550930293984022678581222836688503665191316366405543038648890808965786601410705119312637065006645454771609372046417369360718779203141966084265970576829118592234943002419518691824793652742969088148629770512635787508837946704538989725196947752803514419905931526674094759441878711481157102734194742175891469827619669739785357951638726395583959480772436197326486406202905409833853663608509696638399691843917193606485664387616593365686440730972021036779687820739363478026022814764549686738154714752863604664305344887292821715734944955503703163599042131737213085649714382785100844133191821007318380187286713790224842977943741333250479663422490039454480145734170815228391389105258879387938448478781416958093999802934827302958509588295023332686721747316537720265300798410310276674844383452790932732468091253904914805318788943688894914378038871254203015272212440314861187287855076369358970513776510061002085900539410208873493429112727957798025749823254162127213865153094742979377484530748799384685951412847728299897593416537546160329089279189261818125804016825129468954874399769207272687950022365562664876612341753997303684862989811599793679356270692190886163159536987499203343674758582687731725609919219902465438435264082251759263214146970738367040576890556144485377950371966464932467585598849176800898915591623191260214692196632076905740720398826331810653819836928702992324372449105913217921707059664638084490181495061528918609760662011663733660119730716480981884826516371441947186588659862501192907342867335695329823124251971995310369813652026384561195565465280414871197115871597482447477002643050440891511822162822035327854663614147954322226254471379379311387673304297760204934899007321550495656185994665348806422617958515003483567486994337375579317412370953548948712298048091805083531403664082186076872121443575572226346911573580153446072416696021946544158455377296077237308209775446571893707698821432624248988402449259463867531600591737437977520182206877171155171413590495140437246495470979698406562072974719665580885990391156597741528386210925299757331175812680048091323535436671963453682073100442712741926575861289252220701083137046636401650121618749864545807985895126008747697891444434498310490359566394945012570599768150389255245158903495342778517493421902442272669348055886574292692561018978501144910600343938243770341626624183603505351274245300673644047940238869989886847096377112571150184544106924185231335085152188560320612881227768816583218146809131714710668101934598735315270200733905664962281205427451831958124500145089677986982043224620240171928122271776216438675606468853569235854663867867562486969690063673857695294111767745364762499235595568377897869880466051968033447323919583652204888376247226344528581026599553883623454216321505345649880620915162677632504907669323313279463881485836680894677376291487467096108884492981121983076840842512893379005948639627657560746337505121255638029351442219460479601437127349503897134301405821712898622203585436550237071639335415263460259414411795845080774848962815915960905536996588820818785391319638385917302722343875544280343572510304673969135827772006286462338747936639273557149097632018956918102818408088605445142375444477751071907948366546741767973326341970609565931149841427361655525554005940141697523637008245754033840704760763361780936687847163668257645514953127781125070558250412603878510295154716538315682574456654440106134670532311084010855289753732570663945508545928652101899380211523680633229590667892958621438668645708307768843470795665783363277930336795466228276902088275054923153335101473216061478577191517809040858973190361463660270285382044953441902490443973340989952644874573497305766588437679336154766336977233840545621935458827866697217905418044110456333023718369502257059969968769106661784133056312558785438770618030226873077773133049402947077000383951592674110653274385308149612873888448677819960796637851342589888876458739107631012129478728917217173110520863100908128952832988169807816225669595124726180723149232495268429413963989387325211867594989095468133655745264154432839107616521001732259701207309518513759395577244292242790275732501231019890855035265487312110965081577276745351823385755917690862737031291999697472810656771974464936283253388339065445712610332293126141521426275396631192853462231261591182850633858543997922995409355059409542078552815038076421189749552459088065993347032218589886083009205370816382346232517209083628274256456454933148479061536840131854235712378936926906054831508169090073829315248779158128480253209566042530130928077407655065159674365561847593703124387340649999442986663325240468368498709500348161864260415227593924101648297056318211180677158747243125671339808231675125608994848836248428308043904200253218271172773806072382245456486978500534922295356548941846539121535615128326518717949681941740679675768129410082472891981608248926502163597976010634640912110807616914926303062900767461501465153123092044946007366022341320500234002113017090349880258668804470632069312480203065392400923754418739836792610039430774585434698631394674008187536157500247239825491207151090218695444508625575969933947821846190319873930335691487757011479117919727804749031522396366958398467834882710254505299472773826551988245440008680216522466052795518574924603139867957166066416450254217517701452722090818927259115817956606361664013466009030201386193424010398999904919968000456806106618806546000062160490606220155846708487715809917155046742276748727331273765295542189434153760050022973456924143164095166201914860250646368633347262222767250636960294853341347978466250494882136220626124878075595428113404811561102151270772286573656899307518536484127812538598083468239126668612149354742134663252486556670904992248309031711165339841252070653954239433697735135170883916686408993158892284541839173780503931174871406205367017422976830965252952475041463396996545430346204313744958396886839905065680123739408176688831761819778574251458696656739828364730779542083533916198050202437202857589100982352719538122957376081255412311326661608063287694338472943454028697110310794613417983126782371288899798894635688502495606826862951485447867009084487603055480374897266157749569381052563233812188785791661228596708596065102121860023096815488269532818419844858260757290107493279566364461126544919827157592794880534182726835004741421582788995857991635582720656713527023349207975145676122326142569215431938334892510512497280678026941588092512044535376029386742294108833125969761641232027483500349695932050452072728647933074541256555639804208095918949480761565258811758068512396542418696526811058387894035050459182273613431849604571904587630908874899197390070203405156807930463856888935251137435290794970688553709642985624498720266368512778916219067111762873791334963333477206304188192951431723659823455198332487539163652463565097248185459003567434986347193464957562680641098215529508288514861577897234142523388129232640999828787554063040151960805040872178138675374721084568206198300619075695493843809028089712887911039852376855653154006403780664704789949322560730668843513033254462568739782006748494494595246401037950066769769129042586203503395885174288574851500266327368383341633041993249149705226007253759776283469207717332331389446335489564432324732602002501113436194634742534861464771502076345355124238413637114996554399895281821030916515481109258211134134252329071726441376154602751643873370709886504711162039557703541489450318536382708599167996361723425939248097883501199261326673089078455350664399944321345715372137921543334425677775869843872762925354657990245353767927196587950079169908659078208139737733336932562740080431384525922360687791439273377968153804572458072064157339219452163391687045459146704373666325280578853579067374884771215201851405615231791949798197425939218995762124698784226424593310054000125706567490812039798229551615972528439917427200278802807461467591105310079691392757883073475120131058974235019703283651725674371552062358163344903411412588996140370439472202573755708453159628066315077369514275871373701859256610506455708023221913262393170580641658098811281394603967660140344543925057110302853702762875024785646804668308450022053048564773411221190795047246369234761549787063436760050664149918893667340481814030655654476465765906455283103807522778209482414934749675666654646852305010187059769563887019327339245317048344484386998983084534141398592287737468092459955786003197258183649820813317888429242605216870732603465262944671510561476703595388949165416110090454110225017567234962825564708752438471825340563767233984915114618287464767200965016718947852845497579951643899123499271209328244398176478212323529871501716888047781307927389111113340143288997784979963121083295331115233280933325501445433769995418538905871188691942187272260558406295095660726582891461855556192564194501432951006403025613311792634684970209842245584776427193581633047084707904084570350182648942788077819708011766782974652598029265083252901636995891655064903527586459701305440817970988746197629016351791173323505260777389945652735190097632533848004251334697640370973590994850760890709131196446915707811148558026091818085297497084912916242227063732950562675828451249287824154294509834601166013768077377548297482399516197970948718293632980553505790558626827678760896934845967152920651144725021408369843269387170479039672720819662313025418075601572425705728900436408821265464458858777891437794715606004775424768669961872295812568559725958772138576263139250497405424046433029338151279808474577313463332164657054073055230607491691604749935314443462371341066403326329218643785636111188821125350868572332902791182605688530622896178286713971928753024319794722353589112192272144011999674068559534553782248916826012281053493035728517702806986405229635418388290355020031641021858351630892899800334483727281590369232800573747564466424125345012340933137493650181978927037237653695645089563155877051417575683990701878151931617576173288689689967183496074232991788570085284443161541737095971823103158171345388575142289067228344103114181419474049139028876849438152093560882770818641214130206703111337091902031227374951734745883008598969113508823839926342869736128277547284558179922905997834738262787308880137583714245590364533875823935915275278939536702756718062450234362140466290818492839498593305884923554488181743550583837830955272211562192111898858814313256221137697769489603915378700676512774713583337187738153619939565453106208577658824482139665234611210856967555158079345498321721461151071041800932525070456553734767642332424744489957966309249463454233543419039472738034800187817537929459556107121319035122888254806201614123911705229918672134151541089040233122640297516196152867896087533835844306316789157191235728527762304355256638634894248929337928629743087332432691054271952329302516115156152554298676459611776958986103695937036545424184921664355691018890454482728965502919503643424985804989243673375581530346709071810539437389759201267255253831590002799067777864209247677188285700437929106077210040995323756526783009571936908331918022205090448416417047973117872536195916389119582362201251800123930516571631934185242249377926835610303966195001903089573391825742289194507469604509804344139599471557794410097014132541144729113901798077543024877206119425910781837635904297634571391877474323101927580835342256976406335856471869486997870101648894062033569839504287325574059184371528568737646798176928584704391951292642871922425778602874009534171351236453077331960925332936540009575439328594121028946343365684513092515483612437403862315390773234545302828100199298199354579580483050164151770852805156337493375238887183904371288811659426396899500451125728546045361259937973454044623269318137488342526060443619148448661407248754324891505408950138472875563772542995763687461959127361556182976875997192435818998184233646625654923156627995858597770111406459122883884383852459098967114412995869272398980201871946852016110818058767863194513579283269883270886900815897109089237533756505413337637849486453237516150071034245616302010674685981083781174012769394903114353497090495796158069154274166655526209446919214012197768935374978522208910335473644320068370656922893621204978703300464406395616583842786901860911901522024764965157099058427660549117668265568465455278613789697577802641063461965097640390932147840968154348579623489242026913637257673600032242703737345446886845123750011995363666943616243882308238273303713476636712014920859910534599124008455604631707150513012719157252269217076391201244960303737684190561343281115879591318244828640269466371649916831459339267459571426652541453506438807876227306196017702577337114883929299055189033797225773699629975309785551600281752751874742731756346427068649615401346102767080306236209266163896656498754770392574252521997080642084220163205678386012555902439417985249413992840368164712659070519659803363163004767223881669252903104021922205661593475073172573221907274057500811219290353853992163992921535458739699848111886549018566538621922103179248701988909519310165472121403251840961525343740506078014141324926910986579476257125082942708785581806142107263582245059721731239507916903601710615861050409046501073977910060161569224234679008571876257049449957975805957361479016944018908738478058341385276000151802432362365379125762740914636781265150845161015742061220013068170416963777871986462712333573066239747166174371540523970752675908270198142336795989205370633356541417728656967871502012363691816523144172838460905237129700513699526120722952204294489785160389360233108519153800501624571603842612546964956686961887589398513191091047063336576992239824390668279679411587652152788009369908699729282247896158943681442448245816240456194504132760537171806472077851613477243536901217462292806307673658980458216359522289955987153569612247062495662146504898655021438137639143209933633800764452658619949009258764146023721282734609505883105540311243850751269101512733973371194932713934264016734402085939411379322592195469804350251873939076562562778811173756424325594195471663745538364825748730570695485864865086178436634283230941799166604779476033043642397423042003664098191001652158307818460369625305267140534941827344719721325740897682142071901521739705911275948555370785253100425376552055309893789017860709396956158512779342071523646613598189886096581746065992366332795439829846973237792898801706393574840962166392591400576208276847735025313722992952164920691411279427289379047207073574168131736333260351693571582571226719571500636200153083845717082595955687508012947788403413260900431172636450784593362274123857484046798758553758939838651696691975553285660370200968838005902807005678579545908460989899736532724561030186286246391922706830554628435101402700234635035003454812543029572695024447894515906436940676175787911929743706965293628652684300797257445718842315749787844868545945307881137634145763634083790342551568248691039625815215792427550085014940000899520005460978413057285219998402642750820758677990805581721440218418193231398546923002736337459746115707108268214062194510741523539825035389735591597021116365435758358350174646096755421510854622769248815266808170872146526536983805048925051178686343636108128219144204187383434093291555211317863844445000113476507433538072036308796657433287716343310562511499623620563366009861293990501016029784370643229179241819600987189824653676591217464847889555270874436422669924857303470410410791745904704657366642188328884652591088392283788126739103832243846901355243603888159870747539889192857855665481304061613084237165876657252674577194733866397039520210120025859553276475209817138438037708866016640001281601888655002894302503256088004439009414369156252766545834324675677925742744606024992439213226557135741379861395772413217244919650782350148468619417952824835584204219692042789170592542945418268773143217918239417641301807372359630507366800629420652132947904436155262885767653803055248155574276799949365315319285595587904363372795609751867541912648784567535717705532662502308517849877078189117353392612864777526259254385439109922314153073040428469837344323186656287987984638616158539009794549581517105848779382466496994376166774901104010657044923096919995225430130150585071410827612393009054683146810522114519004106727135971501725599189113279574854395036812393439698638233869667382429755104142490337009567456118309004905785437653737876102204389006353695892403920696166668416951003674278700547986135142042641687956962954503688081843372717786684620649896600078800880508135203218055488860444193880125449861794750902402078205799550014279121421734654101005460315607386897108919221097135933689081368809824577852729479520679979528953447145468995810580959885789002495484668185532272634578176881468267738120441211481326595993188068142302624270843750626945427309621503832747255107028194946785535335202669019276721514443462042450461305175777070163364768167433292130510404999318725091446756410637699563052607945349057216938240400235854421058264220603272200193563736768694769194281198627469382908992542583780780684732467214417524890017807448645331386922694273436223355142438271980587840592637394942269941515576986212545938012430464818799280431472972321906637546246588275138112075994317699381321984404981197446775664827938805661016415230264145519078241338887989742080588745347997758533015466075784669934370347313900118068908824476898819392379086805122955194069139537725346135493643804700100172977326725035401470568254233668096916304569044970918819055597878822016100266815700467902895238946684978221434170928922399593575097437416319429869373468101917384732833412169811639294906807534193060906091323424737943812138057284479927737504163454221307581360567217045960363390384670565028577808808214952877189000673552734215827952268432033452247464020670526823932346896371455280533033125110863737042613962878317487248955076245337397669197427383200546831123798042211547423120971794361322366111255611620719394668488597403231534624634459593594786019514850709347972865849469036517788436655384150993761750552980953690506751340858743345808324371361048897918789848770576483060007891090548330117604981747140506895792214002716070539547714482976399846160558767766201554819755442176604156926022132991603079188368337391496098336338896915618220207424656105599056449905638478807889301564703200162931283306595425382572952325351819537976441344579798907793006800274825711993571704826321036441861628787329345228474114899402480881040021570735880472172690508205035624705651426253131374139192895208196761664898620635749621887257954615566832843393294241830061629098254593507311768149373530427602076759884091497255755842366898608542735620297588356437094924121323417135275508199496814378774748007798035950070489459528705959023153538569347422946626163097335255377911030021457815824021905322350932522024220884914728270538778386444991415091910880790476828072538902763973803237237613533680488673226370183185700174628528626292875163839630859258823945519988150024291023626952097961572580967448275683462218429184475124131430144040173431411961401761328866232320620538336761720301554662211550967480198196147773279214948590634268779193696980722696127941190042677330926799662274437548509941949467844389864617694693595428341750999889456668327778925630841116441036430673267243780381637762300842387455010360393804399020084731015633805668077937844768927855222614334339673535144271046501196048126657016924332690870999164422505818770333272144578360088138763898656060601240284911605335792615726381818992979139328102898698457800208590809775397600519887276937776589997951791742089129606313475948471404466089688780644820294024476624110682773110401886367942642024811616266004245159043564982726701895252402766513746984996709382534904580580185277896078492300179944912109106901472376733602909225385958012660435017158567599585835432097412456756612414605026035761268255299609308066674175377760829921538248041875410578851560423626169917805787469523875952646274382937516588001426246720931282339107911919809785073728361407706505161032480689959067589782306294188256531160795426832387006851565590737900049134919105174710303782986249577577864073736815761910293896699562526246890729518014335829317009684022555670390347475997969654053853037554557477666518467496143398653877613553100941062473382103344082308681436796623193042975811676443477421383824752932188196762782205931558606161442404133058990202768195665790744646459071833044234330465650424901607046218205225049729705663259986159140536109100958541599808096704814885299615350281872325246533195602580659548793417053010905100681833909748765053480935160384775338409988321919550147594769932416880985205927688990435273235682375476161044784645682654521971715404604835699223982580465958669010887318697670964227918811870116521319965401641810212613020356873030368976639941656503121701069023454532265111826997098768638454444667867779313252625818327246903571157309582356396612701127368794391116244404474362260170413042735302029874192642415279527938401086103630820724903846199056047295745062806467841250610571058910929148028243651279910978734135304461329356701840538754817348058968896608064020440083391273104023362309967584508105414981468364453341516899457007937897782647793918267779889787549671981819148432120750782406653287364624405327017508631626076061193980886700612465962615336324187643236923595354098897314354969410246390497781115926359717399075060575348911111989199360385393891106427407911800909820838300834652403879974065529717073326384305484323235711676492851548223550232591671460911184955692721646249786035854137088433156294262479607226236969935619147039557878707548360868227614850849123820487132379438842872410301015631695261008260588556749871589189484629273104250313458832119265606760024402666781243418719747116069726451699322293785962957464413981863451407826084333943326932216028025782569841755336255948687330923501165505218540860212087880454391578360463247387860007000696683912591524910498411631595738563551913535273840376743794971163113094714807659440310661914585333377092418486935998466798790730905742853558648325427528501120680490798888134457948957326399213204543927267624940639222009757828827767211491895793649543779515459946886043029345904499963664044282740509565645294207144113594978790172725217393870832987596298921380460698239453059047185347967530305355646009353114405114641906812977833493251805406900493419008671798674986371876640361000720421254255836440730788148538453216956488758762165712218912047832996171001413937174144826678386055018104749316227865439713913235738056304304813052705863159967299140353603738956199070175621415388709632134714217364585354830331514619035215137849073841203782256440728362969870209363989151317792328221701979866633741032900606328129313924106166582068169137911365884242409155635034873184918769919092918313826633305810680703316359414065487401502547132287890326225033798709305893572509376402116012439929639517942626430644291538846404188692410100386810655077977173593671974311360485898189126736161704172686945640429196236072190130179732455254374520140624031009906234323603205545011144691570540743852265809101554742743772634070603367120920395441990890951086328632167574107211922358902053863382250305261646913544342258383615234404425899178633094831517787878281873131103930788137661957737946383287377696188670612477422858744623263080653246448771948855782455036456453690884683426179010659002113395141695804891411337147579902278441447073416345799279057788315149846964799602859561720096925088910703140356962910921953407968297662417813619185001376046081864295349523885875447738348376686060262205487531704252575062254288040513303521930098672682064380187653788382837669530860908332140904671830200206102802385933660198911898965206714628557411680764282428847562626839131092659758496085047720428393193608931464971334929634475346903820711049299253313764475515956065089331528591046293936786933900151088360731988276912844464149774827605166196868741301771441145115192548571168983430278346035080088204672888202965692741444403164541266396415986227832488043741193989824178504141252344611749548767010424222273638638795666854406321064464909428771586360608462225453995490153719656727179536333699550872660471013242334275183902136883922359999937665540378666111499824835168498257761433579000372434925807274448742247090563485721232172157761256594532931931584934785590522035321863927107716004892316292637585760575388039531014436300150651442124199642153387856945927854022738860487920333902562668499967204496023686270587658005782127305817359620407076945055275623486706358677171495063531484261657312756361553574524402406178236442593769029165394941312378693301661669234081764924391479790072165840997482976457059822814086662904647360356485298072215860495413972939581271117198272582148967602775067374319747924831054560639038271214226671498481090615210037703825120248931066142412100744927654001317959806674666693187817760432709381375091178624879145684292227197189895848311176422885445846310895229422920440863920510677383937123741036348404376700067146329915693242552223607881619480088354425800791348274618094880379648234002153427693756861432845730177465429145861959413893679215609686104002244300054120804900263570492812553435376512814885386362837278984013744351084765444324639782862522340243231161596594905616875157543068413596397265087190074427042918565614411628731494022214259180103869355014060536489450522203482506833933687766136583470278423129141036489986755117116617816116219367235132523342092745508980216261990772621032871743418783598137821112252497317671401534992042590398371926109432492371847919617220514097372013888608974286087344337789406927420481968821218372513492369749265747328496215042249885946226908891840066990648515021061443772625498844053337622389774471956554689705278391688695628271636802605586418607545447794266325601427205626625149609342119419000058328877014391038246047585034640329201929984367471062398478667137952251353812171355354148736911783219534402553920429153894489998921251824189510819618543798024855251525542253078284841496344246498521004067359912345395467253229927876222200947337999256330970543828995654661765584246514531949787354673420670676829168509593160801526830709212736291803472560749723861051528566041303161303274794013339212301873346690642236928650207183566247313449503151463329950182837639550787848083069086697512510658350917351467569193471010623309937027689850983388333304540006559059585553178949095044197224997843922587364250309443673936544957838830955986421655383596170315934647483751034909376192646358872326630400336782689506929797477393663596895228172618403677670646385515491292404860916480269337486429152445870890743441180720227885378266435557318477635782732048274381486019956457936599918266656372069713178448196821943991670743796415294149077855313760365405660129743804736503128877091310731375390158091245228384307810311373851293911490869590585420826208425847335647495970726233777609990832349558496248014392353928842496375751005551828923187930624862423040616378821564855392405929778745877621452067297209515987113458750194042326987937497375698354816914398996214638583465184450575261154363251103195829815233278625190411044153101734524306427645236248805671064342632295869862413849751642445961160139773080796358954456231519689083690262101294001587337413714796465519445290546397728814050864466765124600733398005423346566872015641159063091315708814096153326111278175051156359971388586729504798184233497769740504594621839244967168945868605881653612627863681784987371400274364335758110388162388103098768431309755086840632094528825704248589752836619832278198908164012208698982533250328380513975220259661505590540300184963602661215230246996160991333110505833500295445069500389180437089862593958615541014658058168552061816258079460857234128674396435296651000834594211015289442766319711441778003818167384230750798277702953318261016000435277377876414605900175947240454830321569906283612512538770166456404949273492631446591583526534208213267743365733644284138138478175514023698152154415906673939826508904580617820965455991350195519227366844439227300082362798122022151291753704222589138515957292260207660368312870642008155573483905347416791743504633964847437837380479608994989917735704413360746373742006435089719783327836906240477914246936180244030960159402825250284909148460679713222048869328747135508390054902992051796476396792102589926706603552235126889502541682599538969527453987900789806200645469237097913772057837159934657016793302832093243561153970991318682274291278811934556650469292856456652756026302433543768409823230322761574631817431225739271910101160611474224615199415174945378125340434709159370069467683477771365044022610879849676604322128155166089061199442371246591115946157841613087692695248657945603310373952308262772121904655000637699445724292285552963294682432569574588548601628545907643018717044861799764741547081325460822394307873170615633009373113697387176948762296051787017134108635662738206394303980157302764785460592048947631189606813171889342768637961926027574353280919694420186542448469664205997645881152089553447678045463135650748197731775564647886557639213123592760754938933135628039323224167287249381929458688109804219785853550077892675088936333718063534313974868817060391548766155855109245028821006320743674860014332254720610174021835705654944101960910263468679388559301129520353907573284866223181442428045399680872202295680185731059168590890359208852911842127481006737227837318317003321357404981406942398881266789527437780057642140985073962253897928206854189965223942802278350947578527592704824293721502804650989075284792732447031036507611618543167659738324178442678021468653756467200704513024878706380079244816718698857315785714226480782805399385195573409468076709190874999855759197062269903729188940039112558150469961354999109684707077130655909099868775617357595146293693989009271316860761437647763185978920953288967013408082977929468739418844801534860441138340035266962229621491784598964574991352130879754323881188323044776120326645750499181016217189510240121136606068933761786043892798827736762872947519983894558298219039476834159801579829056854590246105751828357594900296047996956743783156214780198142307497186923139490041725032758501145796807619032312259865280038731077627373795122684549314793511243911678315952340111213400727896300747022367677130024379880333645536882519546894094815074905040592744266768189650032194274780985677721935982486256351118210061612978330091315068014167497594801093967644884459530667178464699785794941063738888032699651839640760287165526278439098218236764718366795307851903962797052022774019237744155406009475799202854914946767333157659929213374628084500457105722774032102946448752041056281038131990227667348294891340810004898955187227148212778640893485987794483447255659155342352248361454217573087669547377739459341643929595422246872493824454642592376287385381904200097218215361317412390825254597540337355924062196776805954670520651924139130585522661199078489267775634750270381956546279368342008278003563754000459955247884000457706392556039651920378116055267054026573894703656145098896491744779707837200010419266213311483300279614245820179721241798666318304847263164748322211769553003493090057634220647482315673417522148690186798657034496103217126593598890097861712278823568754526591779313403398517455110214581456495928228862900405288528635821468229565553801829512453957958515098992520052801501206077100646979839740229404505765109732066343415775195959197683340784522050205391884767142426471001425615870518783559052634234467466199355595999268896458656567411195293831210540289672502668732695371700665748203362407736590736655944670504520089219207353452431336930293806185174445093356214204563203119013824801830308164630236187232380701628976812551774293397845681692844337192695426543543757180323218936603405967965264104209750485762541764123088013731441826469452772767347992611047885707960026724175015672740346144732870212042092020232020868980300057277369172231525103812404591345458660795098928165659205396487115135819374785712464945974294106529204769960376384781291651615871617951050903852154641320677507339077625496697548997754861631377775207055488244630531817747155575728942205789849497416915074612169298098603248853697645059255095887550458710036651460346153470354222075321455946165745620698164292145860119573315300426447861079261539058576015872704636777614235459103703722801204975899121684901767710364975639292767785495250110775309363509086866199682098801181451481787550339134482982746317813353693371466094504082127136419447442770359580017704177651506192677703691846885422807852717847712147460980376336357808188995739540764364620068114964181469374499596275122791962335561000970141546519149253128331468411886868636652072446518298809889333021078870312068701390055983036707200287127481663130254177883526064952554310564556691677706604365685704992883266063987857333581277686749090668857132647565170241788770678309075583345715345754245320430072213583347296000273273878558313350260039603242464637249780938519498238854376225960375360786601033191897380888657693036794160058596531211707373026869049332095796663368580605853698183883509752568512470102020171000046290151861098740073792201111278540602229708162766199794324465703892210150078998430554965735515180816249053589938659356617409920268592620102132799656367784286490361734839382253467144081540412528669280075479152526857949895940244481655117143484262707116949743093163751783895217351820582280492068667800384679736141318551746267105041060931476501549122920694001339919659674377417064650413204788670948135558745589354637419665595218796683056929695690958789080081330676046910979900607933550495807266613796593401339048087304490499743962729161639068195208463176957425229402373912545560385873600595408725467054619613998258318507617434722764433409919769270434607423089501657718022187741069645520375536760011746574775276684294020334487864060103321369268401743126296080275625127759728993538725036976455963867304629351775063433597344931514609516308219847021711306039623182661581477521457590625831885198746328680218096099408013669477947746203045311338929895511863024513941495178842861988355159467986206630776366579117330728063789801320724948455969618561019432664328869095336589278256091832738579439815860994220771810464859229317107791965338673612501032042403154960172863319827263988933602003820305689523840639061778688460730098250762641479737836678588830881631895274725527162653892988098953986233885836453956321221437295122716325394825377510859001166613128562214790851878082348093434912785501772637053143639994202776658927457537476906753159083923949785981579769214263913289701840855989933569829636619423132109486784532128464615288466831576041156388204534250876306612300518009471008919125945205787561618194770158442082002985348188425506031185498625524999947350578089769927446268402648219967944128176493670053634753959776223557417226170293331696416026585232898304460246947145465340540818040184130078124903567981379350970741605576638946908414409272404339514594837623245592896499428307920188975776562523173179891697360892977570621159836009654191568985302433299950410258340287370453916610126955381513875060943340471942711691489723512995244602915179383219403397012940241685206460709065026058925792187426845384338515458844986201634008025060690985812010665522886054179933603606632351158377628530773476345599440066785504992123998348005086898004811126505886795685017113912100284968642786591059029045998661769540204383911392290885205227857906459001535931251499627724405919848143039614706843728289749856900909531108131717847546212098442601792559632734284276650489778545572790217510130376638123438935225408060895357937346468545368087994814285910927732430648852488336701414923120144981257162084606846039085852593071425072765818466911933502825620352381303831610597025880300714977468485954149952417706588885714408671215680963235843684008327703569368939999987995445523309588700913304257345245230963359644566940477958454841522286226714556436096293915471595651668879184809790807074774180712894817176080274852225523512874986859244694667350853995510501695420649204031339392115918251797622436913143050665173337116524707362863495703325015208327339190988738179592138483669335792107667295526076128124562586217123874655405135709998511376907332738012045633054849861011494479243623301599022140256653996974538001173867484869423911667032416031727834043472169386835438836862576082588168144770070464716804724652992437577552850419149585923148870798182096372398019285879157559988820034144178518038629970223724319601141993364909281783516210249724654417286098541347982400862890466641506499464440697604538049107912130599200281697797829523583824291372230780888204004307897039412383534082698200135912607784333497067270274283793325894193304131163145397417603426007134296533883705200560110945525202078396622137214499986626977860635472254710881954223100153355568475855881352477725960677817934178583537083613771336680214669409856247338066669932294866363400428786442285708606439248972889185834817953271662193314336086122269462559385303052184896183128315065126917043922475115658421157869520871146787393119035555215969075030929595709106509990212661204613719556018144666981490735448890596744667054455351955845515788616269308482432685796044386302940377400430383352524241002782412652247224052926408759631157755230528938051905634310516335519536316295960342335199152415740801974663269138113710828429719167912860068519044619431929960079103717076082066445117587962618168287700126711064237700527220909008130945191166998207810151078811340383470633728862364394207089894545341729170240575941594190769956408933662739007950770072721382538187937434833683957212001021227764617526440309563482834500887416363454563438285935537012709178646549227350912630341684430870900265046005281107156548850271161150002741766829608587645474950775777933879603960810961262542614129042840731461595891499416852307172330219124447069455783025984364107394736436787227262375210966127115795163819867521958308161759752878212730597602736774151792275316581771516375161947888702115636540512053037991159771050418525357673956905578548864630340003080175170211280802664640338359170137889141933726071874645581408228514379808755654455602415291469115675679826013204308982415894173735307699180321645937947916116766891530918156214885902288279628060706696685287623751196812592778320732393640594334429355460042915147253665375277311386982269776507372982877897553635396373879571336934063675087255355984255693200702773261912354065200144538388307140959864192573594106631132788259429441305855571911917621201155175160165920529233800180496920652950071390653152774150749834216915085563346361174479792268229816045068568096267558187880568161169403325741393359618141870656439623200652791571007464328590180735435157656686411287926980146241031365334522655037952604329591015330829526087759957921845913046620713495679609086947129829969619719051525006332334819351263770440212091336618045803494782490189000079181432583776384893885621893528457054812896777581515747081105640158697303153430524143699485775440645989182161165397432731852878831787897603525567291568129944611799283949740702303184253252684912953512951206914036793516514856408078382867218132234286397730755390028069573560897559386297558318903835294651472733393961042317140363822831118563477807268681651767235106164050316143987866635759573214813727711291868095069402332848098632099155040052146902613075269515509656688169209387193301308097664282769471910026309035958893849643715246787077934168465511489506239616642032704172682566578582304735420157531984744640055517852071455223650820802377697780812168599069243651184292238016967631397956020451311631200455703119471075821391180349120408069770161751282578360852327986639379496668929418011632744459539981153163399062325774432326438701825593886080173320094774483069544345496574665548836513838371682154134904794858233447317753686849440420068625601170811910883604895068425528087496531399734138114453014827542384196544351725939253810730328710560179120277910733641183692629460093147208600602932089203644367187088939487040459349055047122834894844938476203978064497680808337131017504461255264138289483132352900212918722377020953737782187478661992295791126148111222683092728147270338568321634730732137210891954697431375245983080461232212654581578519778012174627447308910743482600773520359747320204936202350439328178827445999541731767704987905398194023269529223443368094402135123693141448325228284219916216663697647889490510397934542085835771764167798376412615275536464207822068011718905839278366021959878701002006321069740266106701596788002140533618780877396291269887763297212686758998136981140437233134642462513927185623438816254587816240590507438487812650736306243973775421268388939883868276066729530492430091600195764866043027364349301247263844753905161353507613193046726035737947362593893344185789492761641784295126703213028761242102797672532097959830070396438152875883218883888559678894690241484942680899212357307599774319722267915085523823103987007735362900069867372180533497550500991674625496662127098228404155848078436494672137097908793120218005295533496155827733981131086179760360410830428432390355999581033749522403187286911930067554855940291494862349191865865617575362319987157480780205992657529363615777611100007817935729721812630846706530828143700715605958206521803963828434975173034486532908390639196001919322387985210504928348558572264077309346784094275897277720665172918562754095181863844010032442797193158652184767234429408817731127955749261410572532449864178648111142820607610226273010518265303773241393240543748943858979380937592076927573597240627533882485041579301690934496536472675627012198898491099986433747262088346989259182414799094604542764906247074859743475260525202691720441949588100335561866949873056794937720107504771130177547740725236017503036565544423156338979795371240093649747011482442710346936341076096251148609980100396793164773750286785804504102416638430978287443473317420716127828394846782585491107283806124206390676198344086787103494796071270626292787177402956817540935143687510177419590257689825219716318450802795281381472312801469340566323408042907654357073130181079501992467934199867613090560733542615146829526966469538362961531155031739542962463248506009381572604932906502960383991464838345180483855993115701510376541679662078629478868386109172373846131130433282046998963111431084957769323311623062594866374229620941808994039131069806452958706195786705803765711051636622785829022314938498760145839943018876759258366229692322075736115569089792308976331946687077779949170418482280659909391615901714330328113284259918795787527707202143149390435435322834417677557910648983316218340420410364283685269633017667040745556683364372928857964244922424774103879833075159092421403230793855625904140377749299376523468062817636847817158559376515618685957692965355871009567763564335372589052546658030154049389689210840465288805879057458264107324442207766035859962665655063878148600095393968255314537306347845800796706353472742041308391815092799800732668743509738252122806465132375171403294257364424073039472178295504624045946275676394734609300890163734975953248572857814306501904919268331753308755703291909062958928851213443075363968334370831109626380054398280660097161413535670726064478498478693751671695952531354733363467652716230341977529105370567481772513206443852501733064776009514727798607893408012101558413441387010418751461758975970388763957978439044624554106394004233972307637682555031374830870122637047659136164478102752490802913051446859577184256787935818501382532337278430058516122256785777992535900270649920180018168423339092659916070926185339670720372254875607626468313360185670703398652774047724669871197563244022161008322632398585628816163183906711836751128397709749589748965916461613727901993696071504288234082404898912586461045937481120560832601660198935883909154700876350045218826953258971522723680700078902863884476960939703104084688647798653729940356827588567459810380055509519333796216075250720292347088815292439153944598081940230014147398996997638793632816203838510572087158474334965196341764870896073580280200463791097812910319091831800221323636734905329071908965146536961453471866733818043120341561282592856897723952691282095930152962814336591903692230849836690682855966960183211384898099008646761533417659687104396156485895305912338929370166093554065465875457858531475156079034863927145996404033443356174277952517173536418177329080641821674621546243951491928650509944877820033255906526505209916388771383318304768301022019969530572367744771483336518053505653500104676152651644986266018214477758501568471693028117301727702727033355506293783166125765978995195453328412364358378483971559922336780060008705472087279244827951906137418338328328844450285104353484762550306415459596549340305469309125912406584187345074005085375431927417203321371480777962196431267854560902608098400278491761309191429214639401851647802540783228842115462608435053976786781762770542184016144667485434117532782235097835582363308242335217574870608929622300634205856929114135435606052988556752994319772911031938377971642033298754687369193233188182905257375174985234600190722510084077959431538407252131192378009996064729490886707426110139186251585135567765323363499381712675952102040601853358287369793756647789566215703608230493622261693192950336399875872785269044215878457779235610860607539622223826339513452263695060750736253382959617514512542292362367387794347005732721404927220573074959075773893778940107547557067869654998564351633449989088252395502006637275399647961671576262486388640803580646717302452418228267213581474822842803072267668259384896257539224529097578539327045653051680003293442895070587036193091903717425966328679390912276510003914326462512772722564912430824531161364492825434595913452309732566276647140843139771783151956454886385902303029891532666116322730484762279266496233598991396957225470669154412328172309267587079006432887273901582675962782126474624957626610394833372038618439107513847511710451407261652069646044227579722556278110754574016028047124073189482906381221530744095744828312931192822689283970504140265124486436780461746233931526035331147862547244608142114701086151364520616737159366693288017006188877117020675939678276273477878645882954389476000339444876147647300105973358303204426742598446958858021610921693757686287279799611240725938446102164774315309299475232634893950537617842191513509647371895422166234441013663319370781062801063308253288514041305687205366534324633689643589355856023400098950317425537522773166932561360685014659834635978386751374999168942573494784865738864768322402663878563280104992030362408154469793755352368009327875933349021091983556384838622246474329528097034099407051971519628156731784927135908501435787566317256706509982099241580137438917696006059130328866104387746796014010461617122799962568522698214773732462505082772247058515128953611684132592744867504662420888943916714520713065570065287123099562231991252707193031384739325260667806730462770726150015100200401655205013998812437298445117162403564634114658443388114900751799980762797233932143652907660272833464550844116509438397867200679941367036038512685314299168482174274943358193089102592587502964421817275214130929062442769576473753206567127947533330020839507588670721861220078033961949700432016870286378679106987439587268676150318206701743080986022015680544955221258565827573843714027602716402383482562030667216617175252687776165880375476788601116411897983350789568617941945262093542000279258927624649989469319233661517138469496375345665101676249339476135770882904191743941925511741610933339490716866850353451034415803021384528622223294444144788194718178503520116578767962376269572717718146468728480056106857848208876403254823607741677136579602476759178548905235942309628872541690403590970631319535877743507394591531140084760412870413686247671903303856713780617269194793882295787219500378566511005971043957100739607829324904004045641537245013039912242932214511128385131485979792311857002869538682807834116663426977141590062643697103925457643947143413975702376706429655539179254487533063235380594718797786814668636505079419570412696323844696266623496677573725370198953826989894508436058151083749275662086688709531445476007524917845412091626026208176791589035004846045914090500302512817725424401584513837285931776254088630720347191886128919271387096334982325838770597818306461535476023119762563569769290766048253465058616423600417977116588359089452764274465311411719540020464540881045289007568615744011947554520210571871001556258239650170188750713086498493026049327008712512849048346507545005821365035325011490818849361408854667380909556512329520867705945112571200608058439266230947668906500636663763096673625461251082174140540891882776109926075692133882494370580192361122305758473735961291952745423376853026640354091895339677268906701621743914653702433577093087855776915956366920618830276810444243612195608106289756828727346256864492550440176234651238192429754017798667272357510464884443826504791863795942267724049028405989048175843805493656152644335922589931665784623510947729441992308035667049596636101226276722194955936918500374217937703875675273074114575080028233192050803900320391398893813036432552394041116935348600514540743222822809445756557764896582155601628584275731893247896124875656314012713797832896197457388861869068501015635130471684941077184491456505131981881495898881476969259488586182559863231004269204791568208935279477719988286871281400098278644186975169695568757023002692160946403057325254829301940804121599773714615551696901989795073805280077235312846169540799536843393448999047359116709958138894503249707879297606182710785848556377641251365776384478978065206448559687410906153453375665563503039321462713737174636843796436418963256434840532730496520902296338454534541176205915081544425499715993580696659378607860246409526854555313567512154331764237395174188334627292330949411700170073463578544036227569267552002507966087716591921336804430051210830333843389809440831032469199139490364318271074744203654665745043176861946649001905107138560239206308074737352256412418175272265166574789279727389192991945923049922372898027452615263233562408743860379973822942414495222196489051650182287544634390003172063996505506467092748306335413283849357484894413886351999682100783573369447909363817160517711043035870509313689331934732086666061811060247973762675494171002435530371891471398445164772402441622550825533094477254918702878993552441889043833863670495060284914087191409548704419719058414650660832337643285970535398984387899267435306342913609276034349400533851629745632061247619387336193838270572046617118780791654231302420484490217483500318209457209721896663020924635217006872451568979367417205394997649054703351714680235562831488541994278050962565635762525713702519914543753647989649587480160784993629033736952434881871509622378258005402619654630091505688592417399316171138584417172652680412484573966412057431181025008841552838138166465068298077607333514311034802913569267479929283576424260956590724625373670502421322925835925146280579185406519878320486405512724643949001658946161020314579846236840774658877870073774136914325547947100345742241426216013958888227061360897149291025874856261525658710089117285210115200226731075108594758855319657595702954393862311185168373906686998083567286088955697753963092239811560766194788186384164288680632099680811275496242147862130696605874509831738259504674343714407668695197537647825731760153931004551127123432268385396726105666398106823449935889650947736185663332614058483403381256802488188774887858064790742575670466820235431207459819272629249726808288843603991809818469015736549525758878171765560032134579614780315656021744534209979620577569196519103036743631817346304842747785031071667986699210786004831580938804201026665967027428133043584798925912493826072714295371016210759317258183176917670670458987684976413348690946033425966034446343390816593147154748709009264743935061639708019985407887682802751046836731571312041642407485407160516764273096879624170434127647913838549227897114698994605836949802937439871176353296698023187404833602462838744276522585513496754187160818845030215237227503809890171231023171180506869844422438622595835867523013633200034493702276879376618097255663045483684074605798755150435177479930329290334182541667300355326865453624859412746815852286722449068373684347050064993672115600703133305182185873198044528035448379408043229773126575462795265807822319326925485442297924362251319978005563457567429437634889157354283969304132541626179745703152585917630878425047660362250519499778837535461733829054097663475401683123397217864465616941925280778603443624435619984798812070694799446988981085451260945826913532037161511086541180091092127327834753097262287093301650246031432636334814293245138984703475498142571426341730026110970853784226349838522946558108630079305790159946186840055300953520118403482067350587938784815875625463265825317094216282782030636277944404082826662203152306196858208571582429523667598509616807351862112915986742109665277392337600475176694290981323717204088789928162246842170101520671112499625707329882503268252598794463861742305736569421508987482536776283603087464216485249591851708104541245119247719094853963611692001543638836601266871190862380781691959641351737884070671402056490309337838262434631306695199834334677904912130406496960152008678378604336358473164301372997349659324313853393883159186599633199643331523064685843607815505979460699815395411521093517143695869369505599631524791750128032003826334527466922728375058473993767974279051429359683817309232373278830621075393099726704076924404173160946243854683960611767564602206193782582492079380019962736384687971441163494466095184123830850698767361052543086743638338470708626679476567907902977261199811919682277061549563740495137877180269784953061330330702711316440879302970526763294205737901867176002938753305491359269000641792788084068323845321241010606822040520130719754021055067097737051775920644181030212271128004097753401837471283528005527337866430477458788611556431610391468735000892808512920166196760146672638920428434497782880350214781366738268275965879640300463291058244123753193520629721093205978090771634451356653244945035268541137135690618510650495280333654560515089484361253882214070132223235043792732858238100465967170413433821811161772792374134296554421203193669295651379843001626028836739268990129392705663925964568739097706597717319208213580709144883041656756926048660521650386902618119943560603216621436637797886358675963954773931229776759193307028849914718460982009830855199995126086513305936683258483267367659035896998916956762508426284356104493359707593743033173235471166698347677007617053266894878355542544110040655728239538095115764528016574389692446668769371959961713286761848852571033749742354203367061054302564404941127437949779286788404462850166340058681302112944864396879821263942935822376602319229230079328816599488676279129586913877110953273528355209511976210312754971930775681585174768964095193820070966994091832465921685599834483677496956468692590650633486524429671742620542890000016291641908888566229249676292963676347370133916257676046611871664876990130792015298255148449892860098446676671101711662742445616082476676340478390208279893735417231762947077821808655940614142688606391989016359850720138293688190697953492076108278596517987960773475515597956485049996508854674887837095969374144651423400832327984896605149165546458439826529039994224977592274148025454893129843101625343226394925166271659230549205950826145857966594682523168446490454655848360306773969427617338921694097986987229573700772991458028040622498784068678570500493245705026528195388428018937521161254633459049124312601657623622433855863489471467176141575132493316230678444692433278704710731685621543635402005717765039518260876462262912857647966042375950876280829667646761708721615967078878571562302209881057759816189327684554194770714105623383096116805651972289662451349336415027735642816222918411734193797911387258603285375320908456360423052199820817722686757816722576859124424928051653876964813227628565660996519712376429560975975926914394264586470195651165084507829376630895588022190307807770589121395982979644010117388276624812647744517510644981699672983522301287797837607062753252811848687028220731334482711130245951169645754729650485886466936021970997880451165412586553480397359970762826160874746271488522694730772129282859694704499011285384714227255191401154917915431555143755231490501982321214664648102656384132790446704287962180572967865989005218992288388591858388094109800565816900364342798241491432551660617250813998053933998292831074662976434320448903725106457393854284447650672088443588572383398540106960599753412471568090981910841175475355168681593616795783358597065603185244589822175399451190870218427763240940165793322250030023793375562295178769777085655028958982733065820785735074761242627361521944117904208738474594096361682313603329305190096762571294545072769664137199312168320113018879502046266099633032906278630629975807416159774888348527087319718194819829300913627756585597233264281335391452791031503988868206132799031231478100391100680868638970316366404906111005896097932408415231573758181048200793094720074961437746264901710057527076888961284172391884142120908933674087410561798664093284704982374435586530929989645888191693968515036678930476428125203271218967457115702471747690196299775718839835515686450265418342306397713799881941775019563267295196648573533313359166985502630676903866225989048697453849945027563796056591273267637018063431131639500742271235611378272470056388888961389623388460546157858276389905200977760524486919481437812759880093759736528250720655954783546331616747111320562507036572750171379634094136861698003707716104653841854178946184148166907791664313202675493688600005056238348812015285185503799081887694395990835797582663141997563493149996818551201749962303964141185267972337239399845717591862928649100882198399524082597082888848816733245756590960764710136812162738512548054319437815137048645641190290351530095913415576237481916088163873899793155393836509933738991648795468557187995517277605490643138088489930274693183390880308073864451966070651776338437825462772232644233784373149580911635392989345932181921482920107803248417485637051819490100893217280654957921482799123710873517444898304007587869286882061898453811201180247536225378008733633121705506222233135489318800710126382783277019926080843135550567032469264880848042599641523780766863642584507973867584611683871336922054717770838718154641191012928142250822326009746585983239986322774393034724717150093941979755558158210635318417188419872686594879131536825386346004928320640238877221720358183559324597965680778631925900358524277651548718284085048186283264353280708583081986497898836466038943786157454805267779718262173158027835414465103336879267606415526969550189525152167399929699912352429477288599618949405404391753781961560663111094804821540355022192614513754354938362002144524136593611712118084820144234421948186782891298734530837707527000093069896695888096312553301763663575351928810283064343914745396857484351829368332965017145209241540065148494323130657711127360114493183760210087176349160954879328141780659758900870453643977863855489641307384420523618718394195504629306184141566131148745195348936840366912466088619318554495276098570273704336345943751102871203219768470613871374413052882802585143831042042352003150543079362580360917980087530175375627878177921976049088666156241723907472086821745310882278167540891138443907911948272586833855957266714371832729716457119315004540704399350108491896391495702902905064079452991474482081139363915791617258557331630935169494658467150131323906581516293451069345129345003544008486292905706988880721095114846908969980650102241804120344765768774333949695317808823279649260574503475244176569606575532965293372290454789708982239062631019910172804408286550910614131137002366433377315593699939999973213358318469563659764050149289191338972324626872948079995832746645348476381806585654872211553323103750099601353496104179628750093632136271645937633156631550418844480568300193478754619627471953432835203529686693095196752910426083202513601029273966865866077619038098673552126896766391755972495038799525143076764424672588112995547116698774684049168340285541909911016684124656423129815911778827032306158682019280994077615155731468055585309795231436662884586323939043613081726485098828879103638843433421174656198461731629167303615215771336230456401215371994464810491595982884267562182512522600989229521522058082820621552075443942006254793698794088373446974343825673606775987177085111331380005814634829211941324665604235862550641718312555152669998827234158233017429971644578259752058719077785129485156514083579526098798399441269604558636425839035954136090473329853789074440706632011536454002211824565734240103894061552448717413050291037119878801947634353231337594031853655563959265941142208535207537835428864504845733381452265063575301070531337399263586574659005374798509862337227272799251490607588898351783240415313869835461720866998511145703981352207882993161410804154157596262070581635464672570936045851503853248572617442005784726123450924836278824810721225785515179277849838732226436518262957530882272434129468360683148848215668472650312913167458501618259814885897641495381271743424242153129061488783347422026710777250158006059363670357832758893610840199919906778868205958476180368013596837902626104044728316156394559580113645162474356066935623542894254179973096764075817040764423566377461749681270708980185710037871366626771967447435989670357503192334478481015791074305418446075938845964517396574691294149158281656191457320872519951364600470046069375756048737570366010147230463554380807897827950334222859370063761592346546966669092104450390579858154263312193629772001333186769252809477405664942137153279368708864697227579119503517527724852830079854738523053087340886863682108088180799410826473810310368271422892537295237325023114943950149157317277907052434140124768859815583080977600908724096651695286550297250588034753322056754283310110382210642790162645555881020211656456387773612101919665223345063437013906327685178286775798504352876169623506087074996795756598490443328524728136559339428363667628319587616705654134218425542926002784978563169625357377182059053153601236164378870710100989906938765726106809213323635828185354642259391240393381392903572236186966213885747461473044670034207102320429323266954291364977770153145740328871789098745529389882609696419930305482382683732959013098161640757699699245832360218507868604092137582689824187248301938780505262739260751860174492737641513557633976672528951377321253224737377540198738258991507459811036514149653650834783934685596315759889412964987015684300094637740958352773107600719833596107628391525319989931579851129030172036495919405139661526375572498822913334527349285036363380001542061088398013513355684447561741619522846345634139746704051197028262518085022085674267192829731309626331994821358303168629611740798820295324046910194730236699784719125038344640650404434897213237353533683106257534523090929669234365167273726458824014922240708493646184726674040684193989545610994758538893153384186516287993375032861467939032669918451589439010868342599511945319304379158534972946487123005185559677792616107934987673258322393989184493506847962738409625538308656981759218612085159661631156211232576110672928148654054508795576839697175256701917736639900779196059872781716870525068914030337409438243029839146012830401807071053465380164368277815846562287212657233701466363103551088159091451924722701943138654369578402964210646272174880269548530946463897608069304882823365495291748824785400939310559136685634875604826100114433495760462283065863547615318433320162327525528194879788764445717631569883875024202698174356367230031239909743463783970967618775525436928883074782480690447632236698593381599991479232919945706216388250554731621966805998441109187233437232305438821153739297118500479268221407946722607470750847987416280552380261147951918754079679225836932950926932145924949438620837769660068839152610867165672952170890028404514429398684710543236630906628002945013700274487140834476383667534305276107606327907160626450323406149037187401414281441605108728416538900773543977473063159429369819933245551328967236176522011717517993754210358004932270505478458443691272751697444271198475067795875462864076698933947727336069267103842739056982555832917345985368357521287514877562100609016038745145643631148646220884344833627643109731176803177209754987854537783335398566793076569662750913701045670863933214506517490187553375703138534156002795676699100698395589336365767749617068057650480561644204325351928127389942178921265540430213921829997899229781204956745583366232465726049888066956148380135793556087807025427420825230276433766019113935546767866848781892519500488215318732070141686561656264226695424467952301438573462038654894900299736546220205110376646682509423375177305857430850315986670682619740848800879283831898408188143441189708052597317335481819412151956771864318845988936730542527422001601096958800423211209193572512206663137711176653592095411291015477394475514871732914290223251463945428683278857231092675830850081398822310273646413579005498057599702352407390582811031678801508879377096492019593121828901777262277472724396919922383715627005800592112990397362866140587156821925870199071578190724366548734370574693215024287267381791970573515211363185915028283015194343951312128708486143728272244590903649295805028317708626290841033768011754807106165081152652235787657239587457868672526574642575162607762952914141161140376584349201172227095827110248893859205015132278666808165145634535402241668091001599184312770877035086308688149904740591134260307358432079836249122418187694502192453106614360615551560979608155848281438448636145235525139723316897747650166870845035852711111473474994591463378469293356252326787200617966449209971711703192664986258876079399178512416426165117748830636186119357232211056785219743062153216246181618979966365912027274693560049512525047260798860061249346790580042215029877201474764067469654185075678045055318015260541953694715430066824171447156554595864624255227084559564996138848916274066489031644815660248324492471626082951352056534214285500053414776310026945653323182992324179035258408104612720220586224100486838275831543718111363846535593785417298294451278730159439920463181485711469844363140852833361205997037125188581518515336714517745117521586539106535304101814549501772765716469803879702664661559307410136059871737290190632609664680793534571001441300432056936074642040767396319438533782509710072240222831315434282653121353609889022408038385124626422866473233302358883972195174670290913586748990883445543543289750926205894032861711837327684986212609540760384614802509314208109922813141818203505804413390100262719571418364318288972271750143603855380137484726565514436828871082142703959304300469987263165494923429096595749491525431789820881543513800246942349678644739234865975553251668631192870867088283404703292815088180123127449819424737107894739947510716310745002219603042721970152912811913712717055745418181184056833300031728210216267671264604296503102292431686451386319543900472799021905964364486745593010155498321517658655195619911470085013794878539584941488119356681650754582554223799586949290602677233729524006843493182814460810974181276601682373732044795219695066036801811285956281923951563035798909713283254734366309982485256510830437917628298102404963915830398647625976529203188706641897964448669562534431622854981763612330519219577955744717464342610090747117354604464488238173985871536867427187583526788409483722417200141552324673374331212131199559127649909043693794311867183741068194962410908299144567279377599878867905635851666903800948921888306740700795089124459054410784761253077671109430301134496504145312922229113833237477155176466813683750408104402895139072784926248057127225965571665793352112083272965762140647652231338191918228200245847955471736527883507961230210575529559085716197991281943305647092516161714012620342043647031346543594321687199765373336864098080850764885544577926959945012315896484739661398132643943610735366128506014260997536954670732628377660203329696596911865066499190778604781822556062145516597906650281404083947215185817639173003309366068043474000731350458556368253183968376004309094129073289567632753959027346558272946161736834876279159981765810615487392253576263602863408286293796823266694534938180483630986659313643903116854512998741840460212750686621284590736314354997659807969150056369045004964605523993581274651515988242504586345372958967406384990803085769661205933256545079382753240923844033349851231845921107548945972861565708472268062318101106682126655847844432221576301720582756694257893268924194242305174481628134568779410338220549673835367703137957229573836668255606531738775029087616171367459284220675230377456964906674824373260476262693434200224678336495225685807876346802451293814185474772434215907953132128961959991184275214808710493132174787794466969452208084758810936851416974074436376092628262851950535843396882122807319938941912534060364906275142717322562370208626366570429571836780918180275545736066222423322911092173272951863332170188366399309788631303847147930280438158176779292734302728836361695792965964344297704010681314928421234551478064764010866738860963209055601549476022509775658436348632620519608491384375674137946682518367823586483502654753166939099942310727732171826081864827682902248757916135955215502343823942945330391414330663196896144003429019254389899998678360486296566468735745340253492403154962985597425278067174560870604123850718336480340604100949054732726886636833626074248710325107982771813334118143538947809839016634028563936179540205670542894068396882270202996899210834720586651202542176450770702680127509486749792471299053800729087066409740644475481836870533230957295156605818417892806721485871276551558014358461078888068421645806659382716373452154196116715230974807408369034036917346119648687618484245606734049487326822759786898799065483132855777929663010388059595006147903188422396099630597538447139316366030301334386719809021732998911017060328297196475825393832951567780354072669431143738952674053889289131789858010158577251865757607300365401508527356192742319347480298968683689482290619824918672014933223503953622914154590109879413558345800820538068399481388415879454039635677539056019597021011429700103713709638203280565962270090431923303035342264976309876521033121436696031770007627495074878941322410468240964726717275580912098800440381901743346653880072786647387675997168982194013501293756163373842288699890590449441823207595948249166909726489535343044293518600092272422159311676383117755315076701802763755413464053696685229841053206160809079395915306025126028975047548354518029527172852199735006120760013844221471838631077415814985720943790258448469264999601935357549775667003228508279628061979123536934732415315457814079239572894461490655932719258451463116718179456435710728288878059773628196847475038998842429652091400230051006449111776437670244761749820555429842367501917150084509164514628405048134229254422550960072947131365344039203087781485170198617457268166109855993733053136386955261497695626581518596601793646378215727104105460907966414001341076642312284281854437795747747211763858102532071272684467925960076479652654579923359169344903696168757541114944368938973865990796288149794766008675832598661590045250668060311467464803195839936093821729152830053959037297868458620073922444966215805653718373899086203788465358617865916440285130418119511387833515534580046185812295852657067910270261150096694897118540580036576204216669595302015463070884203752238885482845461225623271369720784390500437902375339711153974092933692494422922408446747849971425866469921857151338335076166635598553156085244681380676163878703264822232337241402118314932159272563084099376173220287834169065774835663129248258725548527911194410399121422152080556858872103811612852108480676381410592048151951153709786175658103687237735223664404740004846976276816656394184768211490199841201140369394592406132012136632623331875357641543093276882558631292962788990754758966609840539582702322288479545734386388282035599629652680259200652035706204293112181075690380275983814237953921162475207344366456177766776963366704184287159895555233191766928676621945687145209781883568641643195312206348673478981023710126101861467951346310803039596482851996933249365396853510262150134658677161628764948005398478058160450128732399731966978850039800261051740142929627157206325252286478759402314318168273896246940282623635213953737215128906537065205509877732191451897759392451653025807615732209886822933413228175616491164799243713549382154500779739726961714292616050393199814218465867162776985620733471938703477374289806125967083310696112825947668011815614526806519029993916750963481387286132087563870391287327294309269593939692388510918521983658521117191840914749043297739408407465654717166137385754320235453003696780561483701925600828892041788733537411950539903396312828840043497051361961438674762295606130681756379442054068186275507101453757933306628016302894426922979899947127322765566200127456827558597320480840134823940788255966402572995389482306724917288769949992639381110533575714905760968419034314556637667411780130717519153018154700297848243127374500580016988448094731552958833312933048023971891590687909526817383428818514420009754612457237425114761613721621457716990328007948657646739658487868523075385856732421399780504625410856918999146054693573254044563769939690215070071649338256647630652298966774941822409790567018318915117681473504957661693067976615838020463654578005614276679533825227022062028225410708695118600599041787380467360896771704540962312525662594073999990162516996709170994334606586508287188909182348086673746869330518683413745937063975110754353731113343069137477377156183398752097069495949568664842695394260727050617301965727829896366417518771571414730236873822519237949464657754494906035386599504044164337887841749668174877820574672430074444117753937320478004438907456777330527536637092148058217647039990592694737017166999103176732873703651538661079866558921658956514556592605655197265538133981566033727589875937014627475723185683708272696937918932203947695857481232805043775442642891274678247149929486871149851528143668188534159193746182402324305538480227342031137188534672263031200143756392587396001246008139244358971303650247803349367302709982753799832660306504145607306291455935184991636771140018458683871986044198326842046996341542675621274603882774647463279172435837410912922968072515118851734361773542734666876615867071083293394329320382814755878522609545584862693566653688848388692803959939344138036136474999538458525508664336125768633700121486979138933643570142734025372261261316341695562084374591794790813810297307850485676394420993396564990672822554057005254855904770102872340930073653720181784502475181908874439027973221253117724754665650257988368009284599058111009186209499851942859523115547872112972732799112395503113060189286217604358154711380225467072979362579797416664968310624988940718799530661553781010211036730681101170897988163534733373299031037115062764053148780650533767966280449454482318410706951681823656636252179597613144418519550272008368981454358356058602341304793286978138919259789842378804041591530311127693900958985187576949500013319548201499096468751633169022440941940056546347544431354325086544018587317513751989150316316694990041643869019034383563395745185885320946496157964319563862100796814767681944505901389267322723253629545903904512764296168008277462579419977918486459327927177948096446251874306554819316651800857572215036296969435290459909035666758929807603645193162321023714067229839820545321119089238899534020166483454448549999005419208128853105703715191852232236832364748884047972497408125592028224262258106406437234205406980456300211686244026342896285279231279042234271764019049423850242656852670623807450847337182675473592888287436984724760979972217427479896318082903326089320133905873864747124739826444330656145108137811827385031814790526843475323087963818248483788983707085508141368909597958859983414765879975456468875087805235406534332122115495266358385904170143112009323850347564639635751505231761858367972348932645293077001861008890018078372477126430835328654179809789227390670018611985109360466279270430597870635744943091283443566421180409236194334003263338726815008861038175446222787745235954580809794699991479577100035158535837423095512543566233081656035908518650688871573061561746501986355282154948052873631010786697541966024292519016181504610808444771081764803716363306297076299271136460375744091888317878782989121923792519947526469500792973048330455091125908752621612172220376464762325804575588160874402224483225979332761375572922308042926235040557301929406609862192063914062472878091891603353302448690701463878698082051596055577135607162341226087024682946092474717589586693916615822214768648387338701610942876693332712227839900154966921246054811934896436080004410656191368704716876300113689016359615982672427970094378579233218535555329917343416018766065543300313656829952002965140490369152732421668393885247220594416025582445661601334551433510294009578725070003062073745779686822607081036285336292180110868627706602844240058096535017333740985194533255309782539374950287080053253295748706848691458606852380931811766875708130862189346494298521499057738606634192240015862619050537306828032664536142351596820391839279751498267275238691900521817485876763082928727039027533780130408478591931641803513300372947796891170428159558932911085047728791451463932485919057766946730832800356381839033881560158584090908527358692963591817875304249788824682525355960498306636617819601650275422894392502088276412531137599436588973204180299504664010605809372583531721713149667300741384603995162001409306774123342554716048622381379551103863457514045964845546702633372350970328055581526245048769972702714877740893928986949287832461255121022034666410902420860357345640762418769734342669349868860373848470746855316258458789253085019591272844375927866470512482232252329538668503341783779054591086265394791029201084672151435419724121524378095579212055345546316635106379002447019732810013439222683656730484859690027226224847043734946930691644113435462008726980812589841900765920637275297907183745400145240240781625127217028678682575451265460084990840718094622452481753362262315115539074062854505312240489469184741198496502556913403265895899337234208201255748685000223971463760335570155640691098257531436606406288318824366306891568380945992593309374267461295331224694189595442398066534143963034199494336986714816230543295474548253515863951801744665117095508670507166393738353761301303044083835822868166216367846444816391169709947882259664907043774838839748220413515888305117665628787612337471361938704053980839401837532890700249178013625730200678781959602672576604366617341836339209613049919945376098977344704769241624235957862776035506733170405064389091169536964594064312943265667292877115210767575788283813466944263963043041405170762361811429071588180456060093958864008125284773617590523547308244002603867980897313356789874564137528382818489173055641419919338386168792176343094178672550968345171685274052279311707873384603995076273563325791684927954313063390336374496041597749930562912866493413461976045803312061513210225831836903008032909254021749477680382029119854570054285675887345116875022910904281974733424211746086427251615518416490892648577509301003266261533084802432687822038136867474611825143737528986112690169298940556444772577260515515609293974776897473037183693406777021997792478014685031334505292779126181941189285537792180777021555743839642184801182390489892179749537371289585501426578814406745499316177809789423556501817210022746846943251986169750441629591539372607699612281838669315890762235184308659076765427449620716195129713190741585335968998404249154039733268777682244573892180152943270683406947991609164933216796266365281799868865838299394431134945080753447544467407817646563650484700920181249530241955098931617990447510525155321585415886370423870653175532095532979836387022438385911609695985738748841130885149632135982758082356834918616246371367410185486221230634219946308295440264386966000216037593975651622051055426490031369760142083262838156192588229566622742575016108739715297797237026646632866659660508933081083257385544210513652754521255456132245944953356509599391675296386336393189491477993344981660977845743525525678537741818290475161219139325374946551214810079432056872567646378237046205936261619256283080234682063891283883136093499345390000692667536666291820737134339630295167951482891848980100337250755228672038962578345400330222262319968754828965075707933899033983669234986244759576072287110359005667588654324810080190456556649654231894148225994780349134705721436715835265203279244526168278026837553263216551005311427747660343783779366104545774178224541873669086589897683702186260066376495455158306010829350339071338236472290744700856917606520717503276107811958914442092985481144419266772353605658012068908131870836617143114277201127998837964572886705693860009997858426997509945864262473624965055682305937093492789127786879341467911399470120772072512272309942052021344383800357459940668474386339129017693243944653994186138973541119585575760270856617185403573941644238755189754103239135605988568144583765238229776498419615581495462849431438310027670366230488667405749090254253949576230841343288165915651424101246244277896701795327701565787953059024910935611063085611374034901741364181709417196252777131687205163392886791986131053282955009332820246936747865613846945731646033028868994007315488393481931218622392286555967967170331250142511745467931829106869543736812739932216991445199709434869080556733608995497401521716026794953380344451158044627626425861956139026762628274952524134326960254432852826105657091863388061322821096947992018557974391436519488202547876735974715369368201117572395887677966046386287197524652879566702673542605195061614515383742293504858288501985212017801729471140154792879322130337356634543463033069767230851926561313492400122830072036870784105803384238969813963030197272293272089466625290049145412361244957421576158449065615671045983541101685803997981052642257840176104423700520923826320752045821001979330788479098887715238375119557782074390923353149097620693603968698894172135143550064312870687262417987992669298668240064969691651952668530609527201396940336859599025164359940242651963716990027983133385866471904566134954206522520691404572964443273424055956526279933686659452735527047912776238000058203767969787445904272593209617766983401976164000133942175842434676759108542718019240854029226635412787455709909574465355875374818733114047167519852161886647012456357815223825006686620223609952590024052970985745315136254547345035498893185006368604447674683421759112926465155464535428565926911330662564780965530389762382865029388069458261269199809038107890279773115746048147482641273011754844656550281936928999738457775134878807303093341226687227711959642890038578105236961963068241723310342907151460669715342487595464069846866471036345501040524697242319017296796093852753911219873427816211377039737673677891260943001827680624008092143392062681255636193549541520230562680428138671041067181360235920105809149591608422786006068844163130591995142458302211221616303589285315228352151362707513010375446393816587699343553121393310182525361124230032260868245882526984111419756231436525576001685539847502213327642191808891863570436943903224077859692514914026863825538538892173658395835056125350503097351123548726852721887088670875339567155695099699298810471301272220526506877130601088753675778579759654264238464717001588766672009493619426520493544105721822316668964307822637051904449220246922884169731040048889308127551694555685716929241111299201963243867845073668001876426282334914751172357993308564573719627902404219625719516419617553478610362299307810757151046864653302066044126459706895313017883698720626456984814015541471919112669383133613953038671867534312037998517579726835077412810362958310063730355860155466412261628300710910766085208734236895577082106863426803446211637253042964029596495638597187104745252744221719245210940482246840690135612462077291650302703840228054948443265730722002989232124916667495439839905438213856275097947457027299406680408566847335330448334284247519512514337873001165860570755886265536021301432556888422097738565174901709691540625970410923756110601035380465065800596119878592347480965661029839390808513954783482714346954975950519210754918102324728454968197582659237839823787673485843995499838176952862668872217438068384632621782092925599986487079591526454673711840452952815414089359851369813707740473773970619922130471439999099407916385802605536643935103066596448844430787606719776001706474263938840712355720412395844887562065483969938049672417429940193618750331825982439776129833879595667017977203556992439304699776727182366983553635996348366670806435998255489174131904532716687048215958739910592116445608866433199315795656177973927922369963458280297174692238499733992711964128071536368005091064983025021672068504107990004215402936623399716886331138183343440673276260378561946636777767661846323981043076203154208746915428910438131458402215959392548535763878340268655008136148283320665790648157246835052952924573705993427147241264616883987647446707391520138683359262077267342891550453806827184867985088371273511312689858708693529723936402248332832463999164419729810338054064908565861956871252657589379506469494136526399894111691380011781804348318572763986121938835609798306813539357127129661105696068317475755455510008090944719343257182531628639593734639073829129458926770588695113262416013952290689801958487262802542515463806455140935205937590840387903188206454242908780779848150380052772809444799133675498536543857407446010492474954009701147324528752432889574035788304378327164442164628570787354353730914651370079585196166868459256374254144502467983299612899611020358154694194624234266636560097011616287098109091840682871251959664045512055842565389803580404180545024330479180525726156348140217004412458444737696512328619460748976513282109528239760788700195344901040617899883493072682441337883854765009242750425032451285201126040606691964420948961022135610270887585330217192285489048058360281237351526445437992666630724856697734090121522280132158991596775478094782526811774587730745071972940175962896881174982434673896374327222427954612287260448694177055274489340874625742538264769875196613564797911103099825315240124870226068106933977320139186361047345552900736112391499843735060612296045279274136041347043246438705594351120918623263990358637956431673736311482080113587723209057700090627158538300305949992307402829923326049218076930198091463733841624442963810017229648872465864463552173473261537553917880165787205150093635384466838604484244873242909152423068224784436616695546861074879964775231339247282208162390416665940131704118652898586769090626613064940563158805820860762609955431303817927844604577156790154571637115044385767573500201842603521890055951540944238988131836063891696702141713632213439708608065257166717745753487062919490695725749638367097169797801850200639172703569617394193840939132176137752541432721988249384920266860585697775365922971862051454788885293090145290408458029160696024072165156239195417938107033196952610092373506806225131609251871450779023335425625213962431885311026680069455568119940303312679337328931877431741844703637442908124336516747987535486662037622022809592844360188437633197264366135408914597107095222766235935573993940978459968028362526237833238255148458035388045641611780598563961419617449590968206419981463201273631393215800802552932298873383060905152120009979291886086782811202198312950185385376851471950565036539588478102673395243070934436392066288874600110684378841793435220978326693069697948658715356261972761291883621421790090068703782778407175906890640383609195332259732566680374282490615473765338861674230194385693874795092748811145571036062852310579349346663012390360786836983645890731195311929828306494063703024125649942849262624112498752309543332683120483526256797936505232171913491233649654922100721685036157470579640877930748821631365070485917076608345201681684706342818565353366876325963491082942943943363785989958907780042475767508215815801607793643623699910730069402225643431838092855882964769394535536775277203749158965623682461087563049586476253532690272554384846492000286802329664596620049384218630738562879551863040793454205935653526156041989015940571891912498346940380762907484701428883704050890295905058696202224767843138231263607125261927957276855816728897600875348315778965924069203004574583562128354278236353585675569482098045221776717049691413784381156968830559104404711482402164998237979412127416506121273173495191396174380762181104978834421221383109203912871807434014798074987451515111254515462183815365607825721508742744198483813170876926898952403066401451165898236904590027910914455379457899571845208107325933817767843937713277492565845395165558155008358381996341643074876251586520748021321929829170522382188061460458361639050542416668497083925326298903938436373964670989191930173149902379968665398892655643229909234485789575818818335698582406092773414581217706295678104098041866664654501137891975477120505626052796699483107237881580574036445760428900711323781323874773567312672997343233066364654144805193708232164232830825340977531496287054585365515141985461471476175590555698013253976805897532486847547435107194613476203534799861057473094175115324226590856753265471223527432302147190050732580795742239856180769921394406302214555260902440522083284338949532209792817311735134882184990682410714713489289911951185950004992344020734295214709561770423661384573147603344142637948179316025480749956080782274751075777108796892321847945619311096937937473757118956864877289976334576925450881290188589836193387444728181309648569100401518249200969228829174128065601151958101474592543111789426265606461237615236408798717952357314238146766645734440436604890867663081214930942061070843633626083292256643973607097641012598827472989240932995883731284838916905588646471080603382540520456889357472313502841471909250920773765076833151558019977908091152521063306185139688139335058337231286551324298886032795846998255147774373566632789091964610920684371207663031110839971028576542625872310137742123671070188705619363344371444209431061202409656576737082906107531165619759235488978494699066655969912749718425471842409359133541216921044249128380899685736532082434313101979455751957125043323443111408180511993149046987928235910219931819563236804193492042196387479111582894520200256756021873450837281710042390465537334175258169853269462589762468654631123004849954009981021925727486520561805918455981219212540475041449157316910480677098440456910470726482576525858779692837112292448469748345749201602608509819333044935974739867317638858137506978242252240117288275682548992119306051597417977220527326743100053563544266611246299918053932724527238600383897434527592851786826150913401549167755171269884923174464099315321596594602357488027877569306363461731365713192499433527368250519488107309406269477071213309457073074467876101482345217246537481742730624727747355861322168371632480308059355447406433881953249795037134270277866639437124452156436775819897613444823390585011275008492590770627014266380053990579270283913459890952133443739588547935747525836817260507656805742604800880057498441024354442836889642755892557903397048005952362171374677933607918272890718766561595606484731409972378231719783097256536858035666207561848396896563666975742802979581828367753435946860786092025207816632243962058730990827165596831504915352274348358056141052412426141608166292886645123561225218894677433845238987119699540745384703851490111082414077658755014862088140486414674359070894335924059994770362130700113003670530009556142502088939767731483826915656878319989658306572466318445587894897612783155539127410390796692110237392720665566752928663714292901785407252447755411856881408016796731859867062188817828178727210348341650545806545461507735428983368892554015442139719780988010268573036879869287880771062396958908643986808572500492425466182981808707236793654350046936174917605307458458879123300947819594171065366176426339249057241505098598218442328869757185649742086031278664743822976795666605969301504491547460687304701764168877313872024393768807753196079423381055391125914181574694421643668115449348286653050175841135105819943460444577784895956855351360173932988443818666304974615121840608908372735648459765064737415587143657673858113604770920124214253949168247939628892770553790369733484979958686294394679347626788240603687449071040203224081480978222003794460895582091787365945581525813724617333642619602908179453158088556804963347987442693404042295621641432911615916841248444223534948225601567682998446220471579885062191283706943701333956628272027184222242566068600438588162603297064974214052013545369062740674851535426573624805833860861610922345979830561984269151999909890350222503695994271766540204957115603621686648447310999007694238613331555072171789979398504954787829779882495539385445629296403213088485345518577135007906844428089753913167657187614504515469529057960813896075160198232263607383146287205260824375584533256946532678712937438382994989082718835235042024538107440612839328245084958972034971296507971701188680749770006798099868517680425931263305715192216017168099966935729169532594725409188159787472866622164686803514099382927741228559144232094261035293611975422513002473808088123130626971909608582460906659522575242047299675663571737240079065899635162341043605588829428645453781822280439024346504233295948103542976644186555938919722014174972091182249346755263247071352063189001396053271046136967386955432814387469484929495468045583429727605123285412976942145156350799197133365579969661180101131106346374401195586481564473153151782464040207900202771063621214712717405656497957774082129841337934224096709483532528917020846837062303450712437922138542797093103993396466340492625108612123057333436912043571444819961126234911697730469060701286875762449140103793764111722060659592045693643281973189696212294460871782675188767132659874105295397093525497968012529947141460849832871596108005670207255790465439746680642074594859043277310708784458259113756214035583569860363297505454103218861283562383218446347896109646583325187700242006845830133414335252891342001523866727485290916790026575318870943877905483300067270179521632799173961802409842398859593242372080309397641054014248811269735516856182602796970112014543922241984801012588229008114489479915958039052710159119974985379521346027226790547177429828101658156188555786669377789221871195419296094035546003987024894287154232167092736246973933020650195951367229522792263659640868642956481770665233200288308583475461914383207095431953399236586338798800551682913446703484069407543954506324253910929431591440314261003823074180674313156972690789768499709535697479829303885727863652412183834150179058225185155365806473841177569010722454879783787323571465659615505748236452735619467519427409557256554815487545993944337005481628430404038911218058811220206349974891488361376265815935124463179702602393381978816613566971269178320942471237116416377928553226323565366789940922471803063340739046218345367596576249277098655696403759802850159930390741224099274459591211744242434830493305274307130059681116046670198392706358950286374262778064227436765950009309095449625774531141412912058348555048732554182395641355558710371988709643267081122113421811795022315912738379530977078656294314247830586534237711287547346850953881228498773739052828416037439118262255449758950856822642823400993015195702786457560723807138963920000182747975334054199988455141680274508382045894619700909018504860015442318916890945359265454933948789066265645861918463215526986693666250137964347196510899369936278914947133411217298013950736209894956907447259392937835333511174395030913534044195246648444858845827622295222858978765388594354176049464172729588651320682431570489297439899738040683502686889160493665207188266110807834294300072976459903378646899832166758756787744252739752569860601702035251613853809210532995422272598703683060323172295804615524939977981307306514939781905449456709109909618339509954203747765164667543567269709260730700746811567216828399149884076488806629383551345190765460108718641877547688449323259900142173630063557807254880944906911513639443200987527641303673116814109423847876358330188100863526566369847047361400130246339331172710394378046328835714300415766796763255207668698703644846494004502309836822113424905915411086390960850201934816005382227578246432944885421209612124639680949388310612895133730079368659776774885320629197687229970617939309726662706241274527764995769648556205820316540401223886609606767682746488784466340033696989856472989672185847307750720730949134110502700620608435181810804240490226346599473603866954774797434583907809693646683777274927708473217854741415058705623272447616452489422483681020825894768849904366676531182249106674524514980798700970173228158750551357991275877106882554975425610707951449288470407771265238935889429771202843788266388982855350787989139439948777780037514150321287787529826691270801050098255582015096970674332133370648817701183382645404710085114538334209291526445395299531805809270881081255371920322723885217699054405453552052929893923167494048044806732804377988660897431302764916639693611178405975554943198984673682682908029746300739740003825889435113097061160166616311712769019995552464635855217273892189311516282475557437670333314527094549671471393505012270721445130144968853400187175699491324937442080377404830168291332599781695413647470857577164046798787522747812639939377751588315342629229458181689076513809654836586151665270127531739064913666936718339263617882944251196910540708612278903743399704478595698384127580004801169936884354374263068657792026810043734397132811138480061947692673591858082520671062427604056103187771216596362514608936966529669754066072927972519162685232880712614663932340103040636711821648085841324029503340592702397391373120959384224103644719336206529571621995248823251579755628739947834243404470847980998748939291009125962454395948823250601873438211085702678304250154218567665330679706463284785892847840524826227484941051656488705285140814299969718585158855853685106890785131406514980317767211047292214649343648549719401983189658510140002263155077440721050142750661814769998044211879507689404673607819875809494866361836072403483486667033163166809955363843091355090307205916047447225934873931010960283973789115665794562665985619959871305590373449958253203273551537009268128013116739007365464891352164083705522588021988240810494329593761546166896851989717010260047887157744008158889420934904430589170146330812310697581042022092118552367923682789725513566293938745929213055313981600736809288457250524109560337782915094764839862932620793769593368299800087435632794962092927728581954870320667883676315606457520329447871581685070949826296249506090726948161801848235967486345060122782458302616642581661388067185851214603428508205960308306930528868278984037840314434649757768617378561538697258094204402911294552498728902896421644370113517399021243060589920594143199276111205933606159340390008007680731225891049208558576614067308287592845555508344070803520038367299914038896095245177472588925975968755912211226514240536775642764410991246868932537738238856787051706937044225278973897041870677678323995395804738772026201297456337274505514844747267215998489134349568407939004412688900273960629707589917471626592787431954666294192424958601957463240366288336596395258137519407593107624592268703438952283538542434290823991791210687351542568570850241308353714400085014363699837365576889878801545597911557646489066633521702532457110017367859653908257765543972337365165255696264566037290175544166482006007131444342548211411088500405523476497217153484310420980141083815782536620345162866166643764612284495365855878251747134638126083996198820015821829408204603171874647243710986378164707412244036006899010249015275819066399478229276459717585916921537951976358961586104640925264909799496390040893910421074914656858637083834519098126633741300090605098990462340233225978840329177856991574004150316623416699889509085214094215747556078196425174300438768633278763357715750964321103027129170132074226895159203891829719182926774412465440163961115790119647123717964614540029399259259300280962558116528175509890217539293465993388017561920257976821619217665556722055423483151356598648108143212254933196097109076421217573523442674859751267288989462820863063401037304615977605572126514564950789296455988587526019458316386599614427158654567470488693553906826960417512932480541930546127831463607052247303594004725781002839727528163053613728098938234125389159544965418403166306771048169714856143864854903936267104398098721532867266336027234842885287351808304739423320485996450660674485790765322833398989379411033503993337878277967254494836649911428545958025598269709521546574189665129338524468424589886647056361554887310820571155773989338392520769733981518569816382893957395121516986907143644053926943534545152539984084761548969241424161049580093915290899691992256540380651303435714483830015681511368627104405254253362328039605714666982035978222582500527505734487876451652461834197557353649908284590770315428560187731353396672891935311698528886498782124026338225565986895021380668932174703285999414941373215664540767572593804853491688284248282351371463762137215400160456856932075903108310674587774504975229534400749787765659393965931737305729669124109631410287803289291165054991616299114925360510912124495136785396230088849130277020013089676792967875443881849342207585752281218266652170080029849613115386231205549366675859595440317268891964305950060204903709286808779549463378527744979665575693915445079799104237546370080244294076325588744716156578944301579917168348313809999335002070530615844944948556862114811821061603683587704008192605630626468364633884027353583365893698523297121391381669658040827265791366050383925655555749420183535406043712781290271232137819305251801641299855165629524801600805641291648829152393154457832357141932876873770753819743705465035314455017796782363877273024533788396783383732199778637091599388576142698393788250652778242988230401290255145839852619050920355021929914449706233589868274766105019014645410102909838601736088531902549071061958399003080477534000814778723150096885408795891632601192917131053428652878452544209411640755122701821251415550206565902986719009394537304493345077450699554767851372247401263578708337271769123711352494586552669567305483959828513635371339125012686883983417433333167415533271871901206927520463136983085305334653091428320490843521149132311883543109036390066510549281224276609847703950935818436090360001235846981907914549557784205159168769851691456757530094464096958360329119228769966846570495534035499844332992448417861778307567382491161434902161139907744752411323196528058156316354508288403090084650244772806298665917478625217478931103828376127685588695425674002790603641326796342551360475879139329700060637346800987125760545698011650223203942726971369676234374692900969937851625617323732027784825011002147201539556390233106417789704735526510539989245069585688302823011999523987821311479058556783688380376512085266232802672673838561121332660487283744818251398271150584510167863839972234992283368007581136365798476722317910343717109774672394169582443195796248558101080012530705822266430006171839604831767332274647760765881735130524268911221711644607423843093301687094316976641043756799603448394861445007752501681704803688763209858220402421637529215339450368301676815242040554691780110811362101642594461987715559525884008674461420691412548554292701890209432652435522147124479651955774826378186850958583218039607252139730998358962578043229532369214231312193936312825049485811246232280523904544585889568786193357305225334209403087667283175190417841034484737821584713130612327975070871800122849437069853298065794536383529617806689996489663001310336337016008722486086956951777993114420421337518091621086735689364243086077983750562645040980665572693922646807508150303274405783439860099467104320574746376898910349453734231178670094333006323226576924770435904659514726606520693059301080139606575520048500253830445989666140961219348709146773837036623631308898848689353196189181864273406118615000385666642125249986706195241196013085671229826368944447696181640072383497857461065692504601926974138843437740050256510311778018818094112953828591225996140647239278061502405186998649436298030896628466370441019927535977341851546796983843038507064783987024607450626911270002473721260217932689923024032901458959008445719302891006912096116082279989047614510251235271805581878177468109085603553505255099552312817989646943458175947985283932060804036295810236657101158404170428124982404170456995321951227860633352256494747716018498383718246392603992494822219209270352247351071514096930280968191208618037670074132192840890403816784305063077069012712203648180911538123842663093535679793842199767288136908702512547645281144112491578334397535372203204918752733236595323108905755359885963719853502799865479083609672130623292177020663266127802906577809314972273770401342687056115043652292109476760430947527027369747817192242179429297067244545749851661268233164083093644545148990512668290541141739686374898365264254429163303900984204431575240110465842109980768151639747470362036319437090027617440823647710402400205136407527656999212023871584040577753331480263705523761949097646392458798086568396394675983256234722534741192227151649073324578997693497574715681839317012966204690968882757946547684514266704714632968548436097783939903132927453413177222574999994082355056440472428560391929394955693250184444287310643718981487230703177603585221724150217657596071669000815555859415287813496136352904133301076340040124752913579608888488999242424222308602641578126327914403450150221131053300645379023090291155544332995392424358408000376660849290748651554545658468395300386739241177511729283170863299657672267031865525310622364930706528786462947451368863868921056278660863186910361334521950149236787128344499275215394332993091381512201332679431165189206501329131557385396413518977274335738905020163583955608377090600205014620606673956539285152065048170371341506089456955431932714834808975729978194310872945778457280279250893218221720857647522649212948718447313516776895941357040844409342556181755983681923488870559714962810342111059288841553214015857536492303405531854138051792182723640049807762438755953462837846325266665434105134437491446579215650207260959914418980266899831762831968049344043042058908359719072056485537834030164393235386065017157827458280453512676911302434567591280384680001230474498114776418485945605177986964405282582176032146568606014873475195553579061307504834464672661323177393577464970987321510394641522454802313446573159215980772188614794554539262455724036441178915131443628518984766749884413273160530903872323258660777516465126878518657672949511158918468009895309463127229630368655671049104296857207038719623944815834252382878731325600151725139598919023133046198315712063588439670657918882083326257299846217903944108009995000829314075908276388159044594540954938399429680985084100028485473693334083449832059783871366211858390085823349128505178853739635275814849319355773226378015081353954213105497915220882988840550541475891254479400463469497707647155862122854471486679227441590292831249303806200063264405210464725131562149835704345826068959609445170480992794905648145510425588904446705590397689636466470399905133607342542525335366210247906587861151346761753735244986100486641131152417596846384571825183934053706928808453121577091911037114611734686480103734429621927668209334277537820064998659776599134186368394238947378748808110816797533207094858813425616360750149410937995484843370874740237476270445381450958150086542575998244913507308062482976249859818563822355976704424711852805594430962500348652595666491825790597848462588715948020424786435105410053502391807583527582555712444628063574577228383695144102128531544514634726773813215855134846186909275273133329478795818638712287889744362573117141395698301426268803813265425865957648176854957565323223956820607267331746793138794857339673391801684350738412455941254458276180427312798997304902083164820308356834695845082481360963729739797474409917318039525993088648576100922023921536143372850830898864397922783649404583231303395687387946840078831383065729998636228546623939663476207791805850542733115158331884962475997353386417339409800916104781129106615422047878366641985429307155063114540857506713384981755102699361350177475851845990965643408689370987816346275550122709701889433434032545070612883398463759639884867758642550072511120776557634151143729820129538266495059173572201014623933192302735200405320981142963483363307052906434236542931055947046319130098711321570713766108910462756915394293090988538117108843035216241693481337200747651846474095898004260039045424281086046269764995256849569212080628485710742986694283240983070997169476373267984737395941936166439805520166911765847344916584197667341743179641646037004926066013597315023782748100266286302783340166678160842069531722170735442445705263681039383843559766211988265159048070440824371930398437103555584923076696621712491293703642715208513699257367031083935220414788698497578449113417602527850069750364886331696314181680641977261315448392379685677458918725071793438703473529620316470547884748198786537279364994492879785829260214013360457320755130703575828594346002009144784105144458452730159964867048475468753564982508247204413815214609357074097202269734205838907022655681083799578578823210773331630989913099215934297343181688508974857272906271785068884986183873165611415830171311717031608933393642063153848991460843371221873173445266600992111199880873216145702960423557945084001725643747438696564590411600969494755934480990185931248231407420415686845708896138998564699906093318520598945151454729900885588369687466024872251319916176317317588847104182905103394086084446410712968031547634924239744258524962937519193103578363817134042406061233956859811553689653728882180416300228053936233887611068733967237358350705279601577571169949810076728515965631860112918621244086463122316646487662026610594372335220091661286900377373009359456793397964600404796234616900509048689022430009673081824302586562508990077035563549532795234994617287333024694336141746314090831619044654217655171088820304175832210584768423792889765545817315329799389147347657017004550553710576605307978135656201062214022370118797302612098832694789049546793603042105111535574241774826420665960500457279306461788729391430354684213488000517545285450824725221162138974669308190155761620843281042612233154816496093513108718737695893175759179620573376547114222011515820397473913627101990776213597646640770920572001274658959373571212988373009019675855497206551430458891902157378609142351599763613340787357319145111631132508240039127565137226135120747663042752358223538065518040482089053574462382065509727846670533918148757640233426191590636275803775243753842544869094405217242707480630919243429411703566416148395852451436319924456364993173094138436399358066969183507136960401612944331532400167644131340257535518242696068762953087764802416535229366333437894241238096860485538872878674250775850289784949481767769867673515609377352140103826723366655041144142905144629836346092131978110460501985541504512366591262091493768524782504699479370903465604095691432014275589867771085658908951511810366239435621094349091943207984576284502477446476933582303188927570955117656181582877454142564264693094727446524866993972399478546240638822140167256704134311904748749766895109529526530119526952206034739260181341596301930370394340614042367238245693360256012806432717360118818449337882546401973643488066761631926400295368788895408424656877118651456828520311088976956941255451356595176999916665852742069735543544502993213930184485096687554289944580768224045394195980898093496228464519811858969404647733733455467323515595158032867498162434789960097468549963244201169038164848514300452065500555923223765200021228644954245074689786747889609444777293224874837810535609116797539900962321553363388694138331882638936517313620154267470821286288031224757574777802898179528222187400284491092779996649932981533457434340906601642747512268813886333683752039640513434399900595991785939521299077659919928772677397983217100606918757070211252454677934175388231167611349900640535698996818955906476445594938645179499534081502207145315771087717445067844048217153044551392948188924623044850150840797645861203144014749975422544899985547701848241673200679452096851121138594749068005009331681934262118036266826644590384772361196636821827042360280862808380832760362230198815504848727595427710354317283626746928691680681973991615517083671861350516216303787764237395780331527109700520491045833720813071763277558817051985391659863362317191239888892901963675939939854251585398578791352638290071960336109795490140962477393266343868612826127068316001900806455353484295795977946754173744412856630324664064105091809225351627660165917092803454004567851805289727190614741289574336334473256448038957021218123021788482485148425329165674110250306054960180338876992150429223247526291598099556417285566129440175963981152680555729327060659949945240085561280642088469560309582486207622838085946021111065199374723432748717197979327479651877715485528302139416488414793756462360566562251005501963229199010914319488695283291122746674752615247656212710970611765403423543180172375246483688170206909308103063259468503530869180847173800329678368634030339041332956381687069559329104806262176737900072385107330802651509572253267925275545697293182972103504923319128805046174111083400689594912661919539958272068987894757448381837586036720332340261681939652945488997868582078073318589680445692387758834025352325516798236962674061884818655548206181206724090549540515423167423653818832335208768766247925197239063567295465152770812915146116303625405901981437640268850608309604857363526988560712218782352077052248624889751260801176920530948259376775813597671020713008285308688638361896976610175914575584527343261506119128020106268542835224047667284030276501343837507929688091209307342691467807343637491293133487265729642877670435331906872586825822867633028544069911365060408883811612390471560619741760799124894042516147609750993327053671214659912531186378246056380206922397523903226806678527366101543505440316939764147062705664528990055258136797805256427381755230426151527632446286804180985740496353533827175244457757495700881431260391252282840675971668161735033508233578160715670474110798109119578333592324325245631010477109320379011512612137182582773391688312283235896200199918838232291174150928907416000718704090044558655824767476878184037909006950065561643847979951371739843847888259868128883292419112218032635833813379982297616982033194766450314407251524436872853671568385348402839576567358103488509582397925362250654180157912999944104967458008728044203344361294888140781362542661623854292248484544332077016947905950780205859796417121893605737004154359327255193440277466278058757540558969926486972843164326549282802162558871719926629321048761087734773270444378084145881388971835462129361242973234721692886019737625195015780685414889146339262198607232500139990564329585252067680750121115850558426073813493883678536565829277519185700100477393224558398173274929541307424984645022254446975760731178113788905126086226821190727952043186901537413227175219823799528074094265441139213275499860112122795191769338991290987070491997932667564946575831486605703515311017117202167794804298815133837554671722367633087816155482106885506992748067571049899333718208146772886223913964869516944105620132369973244267438421125577046614448702408273617575857248894087127777334055791479352676977730868522370165029625831281444834552024331233896840091616028084578177894699973899797852724688399155949641089188044946652846570398334197907453400572469547661213506379055645476799655556731071841413203618233474648469034944894428205586327435355983097932679311200594591825159979991073406533756466348728911516800683080452378768183411470335897761157664741019029525424154526393581041446810562607128119660398940539224674755567189967932919457525836794730757897154830034385005951536579844840543508768253602848968999126497714131289293611172288070006057304117169965286847088723502348228115063478174508198102562458093595865161734573463805147161925469735057574298864470925778152488996315645883954600407205052984040819211021497144391047441241764297205123915461138831462156372193698346436214893063644591605866380516642428850166156986859856963242931462401479582581022835998222617545306753286430703808891729289335063325264659506005210797103888742141762531547046594522444958495159290972685348696701427789389187216620678856338248928388040752592801352137233154985204461272690653142409641023732507654635526923676115827341651662781670462826397660778637450454343568351761846888841031820277704235288343845963410585958186372880511573605805625919242969573521877847542487226123323032770631700543921272070101542081327624793805515821561191253103074330884322352640646788003412868602525003293701519675057612177255294901419640151383118476883947171216477843170936992367842260830703708092889120398179515228809081907216838012745683278115620684820844058277993717142949219918207947725219682973544200723006505297483216229640383327264005278754289683053974018362647905251985694840298335223300478605096457609189366854591668441678713719382229156707286244764404951042860062528980881621220620330557454902711426210885961117762005600434390276501050610560782233433518620099990639429562262490901706750567644909932490489553224621496283642944152897416560344842938668010987558156489808409502467138038806221438362626881987675248991594171630493612949554308728520408769878375204276574036550690730711529012769716743870971041773264248283597902419503354996672035093919112750066304185434116896636628802421813613274187703861605637030715378344343140777371228645546787413224809715356261534749932656635978570503401067463253647972816759388110813399134949299464767164048024624271026863408799168947611310360247158705718569145638554937757012414617428636541188136492765144146318056381216650592429647135283191193615629108177129010476948890795598611412939993831561160901210814837778198419094884533376542103896076794706577295129129302740089262460673246967385712262536455983141802904938487501043049433090304290996355336623129948161678273838274569114826979946319855265485428721103686991146774169544178965852175901920570568764751224146484428865234340102142755219651752447084148108457290811739277844816435188646946290481191852262476471677792176642441637339819228469851601249259861676104367547624124180829388799614318397537548901754984571466476781633944738480623720507725200640496049634609132922514584379294095694345354055725282867525271419773343092093000839855170783016841778065761058544124534803086106796925843277008918150043011206621802148919131782719558467535571915109963922662650597976379844377014745027051720380515073837038273634726572685953596418324545196507459249976422319940704417556602577853075762133536217264633875184251586559124853318650137745460043472479713032596668109098650442558175114412841601724805770217228717035736392300948196230907156099347056116438176749827560891237078341015224889862230198962458333916407366717162846952464630323687083384332531041705115689143935763422443263996108696961319638665791825776223460618018730070798511416359219059476487289500217853277935043306628173666584378331865376096548338556126579565857500947273055290921398125573571638992343589496113797698338077540519038984345341819578854218750830078496801836107198874533640538573082702559764238517367921630955340359236072224789789247140703625992004760055591195293480199135507541507007982298218082996363597253170010037360753429041150220643943379478981134036502507932420060344064009457723825638168759609781274133743840464016299662273062999713219055753953183661512490873174953076406269033755801915283980619083217264894125492112802861182364549126661413720268954764158151548170780872233105124099183912225698921617100369596197520064357831365522726159266298666878790509586969816746558950021019730409705453260116913787326194091485991466873270633003912225569943623461802084628830401981946712833538960359396890055713581001587578145705224225200822931577091677097079966189206220528356946865051567463092384070089615190431947139107503300562606960461971569855990409304021248837088504953860901035168631037463144635779740244343196231248488719407840842098743297814724027737772333078441464411806869954548468035046576279907221687706293009523212866662783083173351459563846944838948674034158560578413861208198649634061865234043781836318860001736395593898644529408886464293809337733227055997607164343137271780719442362943171360214927856120931320739288059691331136233153858173064644502774924322939814736973929098548929746327735615863717923713562774858376085977034425272313070359638668823115532949319344185724039160391253847312184309756883597655069112784168275727380910515754850947221966266934531526304712569843255468665318597120689474500621401593122845813791402044747749359194706736448676137394379733403915981416696157896423216881874154943376462844579316875019145836648861571603147892491676129431416334651391212728734777814550243566555071556959565634453649999187460475416375975519117067353925686048213607227522094264258751610345152709481752897435106150124166090689989440336487932959252427420334626408245063022906305522865480346677643940072618573933678158935602591722475060897296103413808975813631038470109670766651661246622682737231966691240154064406402867001916314073894385536835090283247330965204842535732741464449739933041028200731020604813909870954037673075378216061011043950137318983026809434516224983768396017906169071236660484223687313299454934797003864775287607415537517870675160427812714412174850946356854443117573440488148314758873524197097181915552330140244410584195546087389795211772682069596488275230098739955481488332229889134452497569189089781133448630268962870956423229482043018026035021718287542473433547505517441265324203305614647736991104190084099074654185706429491049382970856811684460795849124434877179218759524730078153746693220652706516982731564425779592366726254563515299994942815326644069249525823510793549370405330178242626737895460493377613941505291119659686186832789350591904551990392348429626425378343882457948499302968627504428146128877154084087632828662832180298613984634143951800156653815120730088575876438861125358810701456990522587865507517025879489937598453672169510644240830698011033382687450298785259654625146097401188317616959727734029793836708053276905598656392312465212342912688692358180335959431155287394615064986925211973234458880395880274080504607471350694788641279957280717924733233181460260574419723309793749133952254374203011727500310488404811350053947277393951073326564773417067114093357024829179214178831693386551229286687129732817632319566905727493467752655446565889346882563654556757307476655103301107440368233904477274888115008203281753044887914429149924958458462564430081377055677032589943592432308687249531282686623131454762498066595564984965226205308123586278750966580791622967354348268584508718331777692372005292131876602037562810689100272337797032482360900394929078171860657625215111919261381301870001912372509380302330841869854417067342760737526420290301125586706347292325564891696110151299142368433521500227548641472415220197943218079149594674531596801266355054117209538777981665009015094562417035640591552878651371285695477088687633636948168619696985801923087026246942238537720504486241277989283284164905958980030520191102493697501075386219159461693525546060594159000166556737403536409659608492498047970401056323677239119643813421187415605516353285741063780537058149620207794281308871339267939597978837343623701586794258328229676394636846640122291913213019128666705692799132309257612222759827596087368519196323289674352588695436697624360804376927639095161003714290350114561841430734402569514258083105505053746566927706231162212968837103261517811223556609549828744577628634736973665659833060457009033086799730117301528900365971179396258012957780538709584830849956214728525264140230034073669541754627351142405641932025381764946631087840646114654107271684627586109435697851559141715132915112581364848659055724108088931400544351892767331961791335274382040800749744873335486122162766762669313449799091421466465269861382803678131540624342827473683312503962977978332599748056383570420823358790539359409378683745178628740538932788518827509851356473209710817982546874773206934603606576093699743636430905437059035399794347847588318298184408008932214004786230888233725088963430483488760201162762101335845534345624093059012598355301843402369245175967431458956824037469905013553235388246675856405880085159214667727777482764886051546182308278497486916173228395666893757531111394428717317348389867946996775173022033212686745669533940802900691924161252695319208077054312497977214873667785339874662707080683720015428598964082876330449969009949752613833198705923092284001644880524896026855706557727018002936536770714508062482438316695264730503100231645456921538859373630924634342686487225779531274714960636462681779962593240253656845124979469037161103915829151581215494243116111860112162167161249340301673003880256281930046330322834237048096009963665973982362333139476380267387959470944396434496027806618064357266510518933218435316157638011537811676414861255673581876623647529563051657983545611825718061591219354292994518111040568307812295126530600228743350058960536139975028008888070040539106597559069445112530776045352749945151478714075367629582624878767873093087324514208819727759798437022938796230579442080958086769111992744235824012827674309333123386522031669530169611800558491922254340315628466469770527574732064660411074832263453984514477487497071570278345815408217051264671368778741137559904164400104728593323152468991187636736746528127096980276439341009366728455290188444222142679440315382165254806002499183222937611456430680933640270121626248279296473313913296781881333261512393363938420712481416543402872372557595859566568529846345826942340577155715397170613857525088644548944286930583616409752823055936502484726509979318035209972639216001666317632317386765971815572749369822645102537918222847639397371856096767486661945134461689709427833430964167868896756023577507905705409098334591440876039370891284625017286006453867114710694459137484034999782195462681867855398157413019179186930699422392251370448968622290088254912394030143959196397838821070773806765652292525276446649119487049452581865364881417785971836361971348050450318755089309360015364538382801053388314859417793347581925292032914309711138192388428631374324197152634163765500828594904177479113982588043055568868992075661186801297973879434236219388936175147420449282133871785849533413479683622571966899610290925327078034300947708409936293316723726523917519153852232888522211172873483108195988601630003186487736582648873585587425740092865282981589388290282491361447633119688747550478603038503266379174649602437954411263288648143406930552225808524999984186373751373655853808808848432967422172990324448668490599668916076167590635308725962737001699861387745988767081298603412435660038124696877190850173083427149340244049328784809302773054485764017859814335708099240456078413387846464530982237718122780527271887500879285317234132623414398607610956963863636422354247593009690068031546972025030878460613053699643187847548795037084243666990200391754712529029641308970384503616042963490584984720517906988016697436017106480491511187061253843108718494960527189306528588479716095977444319468256754586015640359133296159493219519970053293076172172467011008241833688221087765454733368579829840591783333096548426824156907698085946256909613468290284695071288827806288253753255006382776217257386359749243196513411321573770965248667263678094397570002526767766359103392981074685838576995612438581507434980177197975696089392689998821618278006449476489068364340490852069026786655223611088574071846259354930538400989985178759721349179658947976950823298561173688702312194701743601317581318935499283987606613653532680000455693959410629526502201423336434273588002844558183772191806393860175128739570112954137443735725400035266084107678752505971291804852773194505056791788316397223888833550086271052047704289974574911848541172400712160902817255006226856945019488149729959749972689087804285575167256791944224446454838742806237011348754005461169487020385621990723482430395892554272991750227440506896554063075073295090374728588640610643952655811445206623706518450969494867141959711119226607189335404425375586130719951232370123654491860932208992548427196309189805459905816568053478862640792401859950652526633929068237816660935254327791182726992489204469636937922152176312833175232736665184631369915901826167860801094856965883941222693876609485758842216996918196101635582360542209956485579896229884122715822088898251804183741366933594825910799122790756330709741970681414724124773565358192691750804156840584858379277676221486128871636208765660472621043391441974119540805172616383502320667323362276342595375609583194627202094271511137797876260914306967229712599115328539941852000335562160595696227339304659466330690782279681776387180688503478605142633804620609911122203727945175187376675555756930006872192568399484973147110059243561190460396380895697827628839536518928560911351180399433041066566925413788176629289655092495597761035641515948693084053266933768781758636746728482050774116907806921278342889288195536842581779828944444747419944673801289871730770273408458597700480149931328313368182393128716193931586500381001020567724594610530514168169485029426586269090738857694042250692872596103430518236943982069025090551709040869565965330172189031289402085097774476821615768948822473228868511173869166335384847870442243772610893015039104962040217912614897702388531899961178626311918184077449027251908554917799359306778212821828147462981673192619580275014233550451476758701358608455463464572196637722478019885432146500583273429873008003320464310814930534726643943385145573653008834689539777509621196725504382111243634742433235308541491822051533240308802762161331996375484519031676322440600888053439009922214808903513360678300471120569572636710944186447733690998437976126780517063088670903668443962735972236829004279320183692473725083742838896660052002029484100412867152886633112118442268720051658696787972529190866531004506043529369870016004120248705532881778336640549207746276683636400327831449305467917496610408320577804095754016631690833213725450965900222888515333971558346539950148707591916876015213578890365324291449082202347087906891989542827702615472007676433706054962279973294713526353245773304869814442163928112447312145373691216688488405835354793373198683002936428639722944344090748655822504876511678765171737739626417731869945273985538181591096832813014555410361524904057094302057403466068552296793611858459269632455382555066229630500685326867738918847807882221215947727757266346654487324997244503387822169011208963582961399897579278647538423528590367031373007321038939708556191595877494019007983080720984810508366027043961789287190709199727942914526110782523433988819062286445922831280783648717050913535638139409933827340461007934248061873088432597491132837056546340090205872593840048911849820907200111129429256876177361354943360016346651305792552775614716055310773704816072447504841981380390062243669107281756594765773742297440625479010224321894257079496353458993930097944100070925237891121609230859018812103245331212215973248303299478819709402886208429466582431731197517261652882663559033835867479552301891310919053171934753027418226641958988025175297356379699617624577461372796952393854808937059958600062159571129074864816605768506603053678236704881639638473266908200810728504136607750449604186083488755811093596304827753475302532418072797344172929854360079773247500047308511745257159081232337302070350603141418080821107272605205729301896086934170825380903394905459568299818691879656249301533826530169560181736445500462421625289107683809267680230861472096710078656651333346554551927567207098402822538916311800289060200116444093011460066176997841993799129818291973505318644463400993975719467540564534106322640856268982128681693744976739503394977914954944761919836592185503422011576844492236694308630563642974711638423898141380477469331562315540136545937444598936556189506308646603230894869124020086259594353555196835773591271679508599501519958932409797650595395484186610119803791533861426482630647091229852686307467511057073445210007460634875130143306505176867859519020837311569258517265589865055177094994360191327847904794706894427441644073067327893814826501393479593753467590540679266811166321067287447531268796955854128855652049306532325922810667664461097644991499816845821245111388504896912306269568787013019480192748710951615627491011164559414221330956566831634515036051775175291575534032223918041572119338540041946035305247063579970479005930646085951203140198945543669304900839583833790436584971255454566498754862901623289096524296698189413992753499561078257926039191406984690842191854438335377103709803343981870317008110395371269173299307952527107155394116598318192021695517569660487337293557131030399584873033801855463104992986505061352671584701468608644557539835188276223504429452730801166337068430285956546546009800002737228316181816241305663866389072929107134733778126559965582229817142894060653999476323553100564202525028139593636025208896587392629725680120940576558269263927565650537510436359563460708087964112591400727665891474273430326852557677909869356821470975733348559157341384354991453460709955657056390123549392145342867573973920992514455656669391712853278903957030120402902635775446268581492639147204780378420140717645869845445711287914933245949284504985172268939795763648624813123088364902710196028001144781513532645635012112996386793068243909702965652996502195322474166756818219244673921822004982889280754699870814986262676766235420350691346725079437972725843940236507146173956825652898015548776344041924639072658285176575155199714045068933737767737856143079460642758805113964828049223868555882452666543306273892938941435860088488260508634251443983216989932376728839517945410762477110427191952588631503003827420112445327017909557801860523661050903870294814025072592258863548494777523766285260557458439502053562014038009361300782167734502390433073952566983400574216381980301363608963066957706343656158987007959347615143550618156751870824608073775339558131955852758156815695590443049354367783023996711616705708433746487457928128599619550381784943981625269769095308848792884951153849200821720232955763540919662522988645570889535114948473139186736604819755868134311099702289377240942478967912057562274156787355728316229454430799660745077223923604093780881769751748948782861736292237072720752769062067795133499889557398619147050286079059720701938995067025128530277642617060620750932932047396472641313002923654783093440678202825792636873312790173821777187731895505568850124431663420708778231642643367825423663018579959973252142938888298892883188714510623706703240442017540395788844889778367457457846763929872129938430251779881155561916872859709449274574597328579014650593999773598777905647285609233317973510724949369739979501996703795094706637946366681252641302747173802437142882777239287432671270477850329630804322344941582052921362189052623253301387596752246598422239132005428451318314037979385367412082146372849911907376217462754247662850899769879815094291151434593077375420692794024448178369954011476059096646038823461621185621103013634196808813951191903996515575325861157429421206947409216845932557602737144958208731762152230105460074858098684387275307310584245400030195311242371858334191927435734808259944213722181660633795694867806501814927181287354325366179124526369177007023257871239723147303994250458331053166383465445201644834629943049611790829295317028484273803310344644985453140776442166352046018165808887545353762042217323003676621392970211033246299336805466891095790349194406540128488383423991137588779678789752609097864340752827421852088257468510154985583402595468721113997117934285246995019223689619774928929563930166547474977117712912355922045669485131931869434293671789412238839784527195191556268495313416379354571376212526156818644062316152191789247641985878094971710667776630981053444679198924368079769080412553694024689347404194050463193582734790230125219453826012822993469318647559538964021499123261332511095472842233401091173939099776488506421049245589631042928023330252209789377402455237470247120706009616725436756566923428853726537682124000466740018473918348850626211790581256796030174433556063302774585663477941170784645683262654363912727859223059038138204704793999383059207692372545379380049907304809461730545058595696891094571063149805041070737185958336114721474882026038064631440828281250896122926297787730184140179167381507735370362838451243773926756393875314389325658514057429130577916981460812781077226778757221756321354748719235813008109909135888586053316722058837524237119068707437055761845425715323420325386332976466360125115010246582385969977116075161517381625704551147032909611468307403116883513374785512690266742374272811013096126556763774549622988690120611625764813847200750219569890308201762093190438465901742110347024007759137874280643044380873517381916645127614819016314627035216744472378923396282089293159773473733405551331743538872172764650040086789099993751584629810796013221824199031994028256013607728387202403968869516120919320898296167585680491483252020989628258119477324233640185020885087191508062260882701099578729082555011307347997362735444141388626382552329529201138492724250678167882046233658239423589881211326304069065175510192142425525553449995768987899596273111505151108136411785034687917217074198113592629503159243721721806381714970481919154420494720165328008418889024938572820000129905178897225840932011136566280264032443465344815584451966518511009269999284703624501544827586072626359110370012389695024149995442934125843012640413899480322078842499900690978311271258480458975169188237176352462665231675390336753015927322249390662713281657398326367992282992950791231426093701048079946184771197986415286218274572889488063221643074944438945994260671944212033285477995720735728884201208741986595784951493964777007808359729789770736330471205114718135694518101431388354068954829924746059555524881345589514844100367345159034270987146117648626810580523379489800487612118236297083539919575698868792353439109179524160438229488023343238972737548614542177881055952545709768700771191279380520556088103420067207003123501458430432165477340377017307697539077518713527534706514373219140147341903749958404816389284309543749571571251649187714751183116116661153457238356612941058096025075081908351735668748789524839817357320377987449978756895245531487598741971731912102552645486052006300709746321123813649812293251242790375328837479525897881973657762704665640579312885003474898773895178923593478499752536514662299039386582637184455600007241555317093444151360385367804278746221792589334321711621298043015065356726966121497503323781230472817763805539543265205982052538484700519829771689988392307837651433337758316912397857286780740840734202266359329299206257899630553288893797696818147128738805603341825713803863725115553199242321016049623011371095264661545643954790914497651364203667227859071763122240346269176280271909538021752699524517638806007617242134393547625964728214603919462447549103873787671044514533585619742246647022353381115280420779207081113742372198633843768262891936965568287939075524665244262401386597209444847404680629150574847794669780567395317890844619811660012683964942460034998074919616699393940765415249890006785515029276743299650556716996159850149726760756150643693955786279162441968097158374821547641048204580777521695310967591589984591857366086804984939522601579661135119038187085552324048049203897013526249240705392408027082519717070682496778293210221774568753311001591892017018060087554579419838700728168422735537228253837421311368712584656142014025325213573524147684197423202248434611739372259148838060801837125342978171365922257027251141915609518676046841607987996592545422949747591389187652096472289720999135829322550681182469844440093185540340674756046181347980475548400693651745079310084860829598016947066396026183999065712217704854367996811177359767325818744024003682014490542537713987858413282828950708247819869365686690482959920492989243374442849659559217488172138819324257123282315839612524735424804896626662006596328150266586718010775267802077691587017437069256745914765099628876925934107730651462342426426153362194436337635312288219988632552773997838137164595559067390748321773231609582672641375324145212800511126026399113677837161742324099824277596997087649689535357675569403065761057971864380866808987523891529555106789940646357506679360051349949154047924943839476347873177783037885228241233622714300229921251954885535927655523509457121606416007469872248750435488818569455248756661420030367724678720467463850158961977489070945467250995722687747251765667403246902125501342591830816971218793257576981940819115238291325248741446966648132032524634340910641638870971294928084781126569752861513697321175974873803766763028499557600084781735257372262246554517155170920051772148895485813443699951464829956539369074649225818508098464418543972489836339528918931063433134118695424902674617119136288529955637765861958376533634496048447814920548679771413485823906720806683521577303269682563624797920336901296886328475089681850887719502574872823200864207833367328782404164931503636157037806258176801960493383935289174498052885915992001949245361636863569444141327229662996501327299183575861747806078358681374616536336784882329897915626464931792226304635567581886593133878802218436842647878741331605795092878493247826398001561818792660173366492729663541086927826459808319908853128394235657476372884505086215575139784329118679943182842043117883172149552743748933280493513568226242542907409394726816877700932561450710405770677572632003468331763030552271075829027884652166863000551878157008186902253568061892259275276787337334113631793530799664701142210651464256505348638216378928501974832555239182715587364901753309170708879836088654958257352860770071431700963718077314060912751362026755882005548892418313898972831347256729340152789616012554415062695149236823667773712552994959264012343385301701163089631313373885805154217320644333066711848582791032046177983553889886931497079433520498831961607101768001902617623849596749592592277379729926789143293623221021654516769154204195819298647209331346563885705611191820292036144784884883054838773573050588534500194225217551627114132761829213490103978373846807372740420290797919533724567842982652688845428625886106508300810621662150679264755781741604637635777063046031121039362274642450116103892045788453441838739184269539597675567669416986669002851652842248926233425445301875332559968341179693079336942242558199263455723503164801375873578873956785442057026264902497039517377748077905002989020305377960976309837053383022070232483359963349477120602116455045451513919051866994559024059633865941845928320403040476668496598308532822456021286921569185625316088550337155843850788079908074575286956433853260694438945986879625994026153465480459406783247334711231195924336356251687066623882999337509506297276074594809167846159315679869416721635463833962495775604425664602702643605236260398336063111670848548683175357236528492581324465052755440775985804681508865670130298371479241723985825190658121831685192094231722995950408686214455942808789328358455321824935761977038417594998053169940639674862039931208484503220450846346612182120004522942601283765718068488907054808984527280508502522443284013128303605860925422762689816177541150747388598780381640596340666616524587834060526846172279624460876772775098564395104335290753741580779657428824177879280742654688291652681993770367533765450400747566331392302807975635043324664183709689296251278584871808391198232136934154416810441274736865242612604002278998879395870817091842802868252322873288316096881899033168632765802142145286328178809657745138469397377004082114429689953849249534167657434735263526337101135543631173519201945473396037353887841429172878840044690961811397235021938744518038770545126615327190060365411019443884592588035782007029425474539445329712029825353218126256341158572923419863446403958081993450825577363905051911986120375536818854221615629172346406746350237022676048548255218665746797151495605365429256018121462113727875021166147380700254898079721156620663342255513744329059092811399475397217609358122272107630212159138326767267247967652460101402099494620674212922519881126271207688118233804947436314316076833333641858762914125984506106114719037615546743573302114514531432462284989029053858024658793698745267359918424581414822336552730652469106210901746437623192557074102307918185512952694176605285613776905008594520308794985917268305199021024609974696186775468560821295860965357736262135419229933102833481630841403621131028916432703550673732571297080182454302562327789208125740884281207602257230887622825095592410057949630137295064795030215631128845566201657234857750747769896734029851271342661799612493999752533588561271422586440080859475532158737645356602535040806438011830680731794356203709053864618203720332445059389278833450340427070406893299688195135818607782363929733020295515249148370134158071959751530409167708082495221793720846758394938458024180469272674094097547218827438622209647618790370639502373086320985542544945189834951121503204964126663419198510174644876164573639042663380692475082917898345981155435612496701379894813256120597266016057728299463605994728435978356409175009257525277426794272357334591319693363641959140499205957556618951111340183560147815456680045419820537886033637408128327301205200205260266480310239692100355229438063620372885656524132622676455923968206060742758215405824248816917834615561323587561953805727001187759815230344883030555922892246348732629987848906030310786979137575244543474320679571597805886767107330520792844504986649455427293178901699646557424451569811552638894893827961659616242141929831756699633569069543424001084202747025307172827332180373050588903506531769002586251653936069599704076394237783512126152619740080291070746257939040470621065691708300016226042750639232072574452778646251155152778054561068651815448935230538685306423650352115852039021114918580269735331582213125498165528136890049664552370402440212006414135189647848385656775920482427947678227238551306215650966837710964341193527467395194704384304345517068038830327000234602346537928137858810768676252040098246599842841713657463409438427786882381239343869334385941512231632290253296270708476001172247717263181304140852662424121626809587761842862763586467296238944799589794841660896659937224631338515597346115683310655390628952422112698527769725563485623540719813639591513149412916455927757489239236635444082864354388510427052472307030996375991669483806828233818130322564360067069939024868751058462463878798356654592488882731749391199628001019206100827346374462245994619214316406125456012186128760507964660013853297285484718803607991465992616507828655863853398879058523825529152537845719052728119886097319571725631273317242274352610189591629219324738794064987049967773866350067997857841370374485655855428478846990620710085696893729674150166599015996472892468823754412014782162435242289573024798246085096210722527189635207042694993117641030491322038078664710931920937455922404108327468068338305987699028288868706485122422342361983533093787273166792934393037462527529393680443301193532093199493254934083397673281027282771659843352240240783998608203376648951241580739942834116569626425613804143276165250108367999026538543564393588528051863321136754871931069702022510843900715274070892571684082832278129182729517082678711524389618002954126770082216535072613414944276282475839839260262337360408633108307862471502908462117555808040303296610665099962941974539196783103327981829368991890201044268012948013629880875007537452460602094497931973643037677463067402802804681940875757175859789778765931505674392754678239386694063617002443925263993031212883282283570888974757419789401350944469097964742708783483229873716041680117023846454696899709362285322390082601638378975920345287692423543590905795289359595871248361021569878583447733276122761685666757779994822864390072541694584789084458412900218782383626484164148660441992647453013312215178593040068627364463642051585704000956109543177333537157297243202635459999312002390296255350075289113124326475134154516275338522601150297534363251425359583154125197889274797377366868277271894700650848166205684772992057020873698517126364724321309660929547096857486411363021371080641752325558360098180837480433664066096706052815375114912477808515228785572353560555017198625291735150710020681896253677411464788065785572851226517712409339799670778639375364340184458954962318362177805817293629089441971515549316263561763446238104278461402033306164883168408271263425884091430417491015138744013172188767987240642822346558370638697042443549248490047176476926052612250918275101570674978756579503268081948144478658971201011498810858307965123436668453930069045396138530131825677399095938521388852813181978486067695589351989132793313476077620864985966879512537109225009361742325368375647665962529604584070778295672999555324038076007468789521200995032549636836518654885019860087622990768508368135608802280942215146775483770446916627215466667804967541242047353901905434609523405949883317422372985292359454061775221411205793147856223670114626648542894431383267493364374416914614858853044567611334211642336753198601313299467370590884154498512449189538456357209304490166704774543243867959703527657445046351523419116163636049577277014920389823944101458910689181376561504359465340784062485519377695322702150006477637478079565391325394705299558248061407085148773227649754039355524578953321050118598804301596310484553498870992112442904444108124372730219625279805818718154383461062974193123993042977437872905928735755081765865625847569520435044614212111090667625575717246673547088466838444644539159421996228449579632150806102970008843037775708598309487136902586468102433665944316122548236637587018351977204811510646759182112689411556018111447343586537033094633504117420223222784104545471646805335781975361606221905740821475103806143958535652689411771612019100693168280151270282904382477400135006436777470116747942711381927817517073750384742470620908208918949404113020474783652994912988678887246968495225847029863488838261831350244100667342575809492176453524420563585522432076880996777225050261651118631521793316863421262334245853396991408418739041454315619498501493432239243584054342446068528385061456861243859482854115357778598614323101048937258407360008218967791848922931233526719152242947477894000880896595029128561653514315871776131312346808256162593371624405069475131825932077306962621903451361733690950359694535000461565431906832200379234562675610800005812011247275331553646520097443145367467521051253131246418319232818949315100908308840730102121561579377187849581912622090012246216059911996184838006284006105648982893934070771735482421257142030443522498966460595001544061654471397252832304710514169263509947717351433425920331428358402292017243364202277032944130334113243787897260614978148661654492061138259214267791803107815555865448208618274824920437704801172446488464702454263641889545938863737745108311496075743061182265209649305373584427584044082121689936925752093064782403527473092991629487296663275568893267117933856913209633363917358343553782424624583546603432355387809556820555836110575289348467638946763221443316821049558609394516821394965398202892298090218023299250788436340421767787596573387854208633292088201776727749852106520932843332417730126777240156011142219718798341514512319415266602999083668529468693259934418438003679713267628365125002842757269144701979758038845005302060404574202595016283744555212119985486647444965387905503092657378589777720919406705378463827843211052839319619187972710926181003710045957231470466495265329886346862968597095845507189777109767390865018123638048290875919212212433483009988229410460493071112482990425309597103362025039185615181324422784933080832326991268081521376567509696753821754138062601851859550135467619803261991994668494948191925630127706886413975584619415557722796145853056239612001621781864974528694507837784883260030598961206151605361907624363243345532683709982591988104332864521681113551265896087046551392425769185503531879423501466383225634126352459781903631459504684909587620279302301818533197644985728540332575019136432151908996401362727421959945224624012596099992936829333991897300708520396988591743188662566091663376678022243936629401733506508797970605190675662637627086430012207538467212181014979506844593209747452463447919247938849404828521230017415735574690074251088806208826140813720985622587614587690111795377680308633406624554627866169175024700568176963273971287980791010835528934707668421973739450382931765512398587014453219570332884053424624447142123857565831054915011215515154079217841266505254093065097868488149311509847064430601458443197649512391124530683227169158268209029807208843901640301534998598605343531734558823799079728547263589151383064338527752302806794822613613731426141077850910751904298044342935057001462393014546485263003167301886406101647884602975581673360439127192168509544151172395107133870016349898685535884919489632134750828482279371258237401040545608847870509376948492030798794297919240541736896354894723049573115125823245705703544646353495561744392979820843814861686875071682306537830216942486678033888904510927245401829056864865783153116292790048638065481751017694037349533561402557247983351841716088870575926535296659265982675987206809352074777061366920915967516476047367597645879136081985149311823458737543916965143488898803095635622708592683929626896160819836149339219036156499363731204565562679391864161144746073364475330436002853236376162463640394572859395316410824288990722646335613885097023623065768103828106029138094446390689633555137490131022550915297842814529118617757917438050421160321061426228366688299406371981466747429951076385158745178564678263794139929922241493090845636990608091745480041095590227811054221331550038089941182072614256496498395929050783405425239915486425386763779800908769829082036578067367925971438111635800524751229091000972275711427425428287716777430246707575140235756532179190951111419371376103682463928517519653101625108619589051717484097300496604506441503708559079150135266364720248267443047296979113325706776674164434557872139396619411688745740685178048019642227996598588072632779793257098001713942615258308676889087337636416467662138649284973975177314416667325223411092332478986243188952712445268518533461407703099380148065868803030007517090662097050555123484037699004284704022141692001084179358700192838902806839273101474160415930069198998397846156288342988349588332347508811555323097671719743320696958128982667717608371695737052546047401313107678795036639716332861835907287959933666327849833212639978012709528001551852432227578938736395449116816311943632648292991215338978751564018436679109628809656797977395351335241258579616108793600561398326148936054944879361393677659933131953948289429888023738731680871004301817665536893069158292148930900266057457723527327347411958206518268911215268176094093575175667829746651042401679250474694741230555941772581196076178166386486342476222573741992583403895932147078670422746453467804719090093342107901112090386932605648464676082672066797440624277294553703531119806264538667782114588942076021406577673250228546363512390234342124693738786427077953308001216614698128261127885283922280750691795830782687915376662916637549782237478018778898317305305432899851046857294378004118420774353604985675636617659637286085748021457194286778184020023996582265579666923895252992778387137319387554664169411435059436946483764132026886387939300435127284983251811698858014235235597803645140869468405161218413320228248405752152290784505635765443095180988851277377133359889584024493394493406528014735867646918313989368651744183576288216480311516050554988161865105206074372718021300114559235335769838053440786080773350728330908629479196167362057212659905461949046011102219082160969224483124116357298058244985547084386718091344660261539447524882144382065702488660449942801925485500999946648807081225106250478918696262568641310955797214262271149809265522464670562775620707203168275953198024955295233189357162342814628045414986276453100960725004787749202599269285567941048656446441179977266555321244988084400623652089296982872602704802675930655746178329253196908190409899108837663313200741761318121635931643316808730081195972861246793348623211763410518579131047189578144746223989513173010741138097024764707968147373573375474802582050041231312701224803619118867489360671293214546393964319813872002980687680069374248587520042587676913459631774861947329701568638355178725424613075382772580593962933599022175952479575598465247963281477368530982006845481762613447418385924705744656446910224250156856177400416432980980052920681092298354440528129723847226203529524401531289906452244362403777855978223350578310330170467577685959429207662326341051927140759429957875959146667837580390860289472968086408594133333988477195253281695045247317437414973337612691877860235618370637669996634990324619344363082800056352797303380820153988342616334103737147251294805934624864353261734104171861413168561715361476754340505219232233477751489350165159494622951926733852611708132942247197744190672262177614014761204223196537442065819875794304263055774982747162924636231810632892984048956324040886338898207917495762982548705216630536405970874017918663700544216801557065799001028448808250674947305600552528895694408861798241504667819062011608239624996649612161365321900154024282941248527385178165363739516385351877001796534217013714933257251119111429285435138673252069352886752272215979954838807519445948624044544369227828189834807639409490621256687259691807219937281640308125127607829167555181950928625114693190794160618090831096245939537705889972314656551611614140116183813922483638630827239726764480637352800994175755756380767921295830757582313134848419310953464268468555898253750476016057505047408724495230670749237782916966676328774757036084185353120499985734616425280028021916881495891096437183893051174548475591596497051791131835905684128666312623500676472218181975188224854551657605048800403247679702612994890070657765448600774838173557280205873861564909007836315164576569390398223396997353132684156506463222660660257493272404633578501292843119229675956469582762859284799831732618704966578630288966909563659708569207076731818755268160237401616566968018170312888410599532451506641185476368493126094176782040198737021579881865200121199590492385348592188452917061489964577967127950363682215692803593992865610989519999706222651788753332480037152625857657389224291213086501026146113872556200231190853914550393610894383960982191479040327107378629203030899702794238314232924987254839306835677442000400145987814398605387212410077075314881400644749384348858125160106122537104200600837021791211391219319565989753379493419962352438682816121015249623038295373557737587252103776886317333568905075034268316060225695525161044325814741314474734599581775772984724126968940203020494048360954518946987371139144716102797430914837993007816366392902094286603657977557472268921516896519844911170787539692102314676259829141719106853301660909593676424262871653655158987568507750982758557746172652461169370516738395545101051934770938615595056184284796434113323442843370763789607801968432505038640039608271519416363619362356104225466713631431438295599693005559454196601965514005819179219902505184132291257624447233654619357158823815743669198204231575726634690584134353631899716083938536088309738593871882611807049157241895641227386657234370428156011658858253720313002279073475287544914329336225991710630908969733108574680554905370601610099993159048161304072745898101928162013707553532153378179548341596364264774267548710452940720195048951265364756201755498258997780002226016912385630536528224198507120957935627910408516301423053865998740663880323789517809044291241643990340747293347698494281256004101853603102696101521434596373813141409071771819279606830297096048641265003197092540217513664444413419162234975038850087939773475625807893231608503114114034910520638598083680267372892944504035094997776466265737262646420789393545830463272862432853671203999880711712537017663810479851138096082856774672634913811040029102086955016459045700665063274327326304094330969156530436289535432811715486845840381243303576280139592114469161153451496686941220489235429182811348442178848065218635111756074047088529491935897723325891535244628414377670401661798976283454397326713658504927526620081053898827379323531258500325975363485734260668120866963397493431890285266090039039355748966675310981676250113317027140798133731022348001584613339929715322450107863362668363467849910789097769269470192900857482578754294367139117992092356797414023380346515768706051008142055238319882239674027483994711742293066061138268832551094781710197945828973839681272013349470056837483497632493035216875024043753510010248815259786989147255775570191019189743230618158249418884669689813673498362809262658483264503436286686020797567668483050939617635296979683990022877879786600412320907765142761362031805736388169048349542924599238560836569501542920566214854173673367966297182397311121664996417956692221567370474149027604218917671625456228762747131594186614217987938831249291749420072977754348997221778907878374385111251146350164676703530846373183889552981434851683059485639301834206916119450277793849915063356019954046328043211883373781962722428733941824030901156827081840873146809830683081676455340087159382353295383781479425546042421533128131045693057914578301381421617215370192561334181216963214453869614721821722436808007896916657748508371175675953206091135854434467471548806517629021230988842526104949300252911298428236554667427553145362590260587148085077811858145433696146290177877558870119410129419061730421526487167088269306649192468265861421731963587212702221794172810833419003474410418310178355099880169982420244890222883504723090254749877627998472342261066316134114466384285226217087150494886398169381484262063907740710509244262458716418034893373703166382488980721576729415342209217647605287761178226379624012526554875490969034507037186273406913507386377772571579212210401224666391921888081260574183034495995311125141757770823419320877691773571321628488290324626348486862791104542493884021409617025182653641869962226281734471977187196018870091624045379928204320320825400650082145692509947468316802433461891983351837799324515842451052657757469708513512430737262990115534568026585469404489629051673802236997422419202264520564804711281179249265105490527369408217474077705156488478326617989123724751382065726051547090439738541895352057214713313161056751171921893842439835313186165766355367575099156442195514547768749140237448668296087321157991370505988429037695499731333776294504140659415896423316995077842447190898895450773782125314841921526731484552825235450885235670990463315528142964203128688016793463502769515056962240031903194853267528981196477847515019203647959423076425097862558792046410625841138570259276287760258914968259330016790634147185917876072516388611540626570415944698591116406259155459376686222208474712039963294839049706896774955578044744469472334256753728343616245133933214866167681230597423974279091533804817628361132455367752389996374266977700692561458576080164264777119667672909942844581510882904196853300136758925970196815960514174238439991610599955127467592899767157507212346910701442018129348888235544137765064291410960034812319613699607313210795897286248036868048812662454041893547027437729867126987838704847934430201437655522880631668993773075740929364504314926703192163926337899345268076247706132774982148989903854719118460622365283927283795680705620180549532283837625949779605882922159116298220251727835715765415003967991919376992554638731918466568627733420885178374320416182452861082125663801819169142820371357854168250312746553618053085241007380889678136647937830682531932077356152949708311766597600107856487184652952038957267334374538219863281638405370037020564202007635767577600845150300859656150225282227706743095009987313797063723710997671058747702668927366911866596202262803566137174499417817741476534357874803365634582962096045905708819019204654200360430168538557744444978883694021332175570238543028842665774677122333644565203644627060788170642973713179258860148996740096039207082600117791001201759370785530672592811046116010173590485336264563649194696319390501052104470779045268877302061319102356325719316214056718438584785564254930386834614403348871641819169750664795876595374771750775732887979944894145008164696873113915981297427380438670589372386197985771970812149135214341984440398218658055878515632312792614189847102908193770839910768326589166523363839787883966723468489040024462899774115216849208983047401510608462868307499043612774557783153054097671654384107093503149350845823751405529978514132257356836198919102605660918885439951731083793623235556864236951933201075590909086119692363428281965629136498048026243651711992098009819960421864810795579280989780263872640855746600329937643907678744678766758604890764359162403269543894551740458516387841351860541280941205942849723576322423040218050599221812031646588670374726933964070231434260830767325778769643028440298012526814431554310071389348199317047437400696341871109527518323618532458427185160983792972123006838378581999415116635386111837445010551905539339269029760197341696543180043743622536473682976085637379081476830018817823237973495367082535805171548150562779090186041625229553439118832476848072124465030146962578345191960400564573582648395188044867258126578309277595606458829975398381117157417355106781285531025895798918692539161653595161259186050298486960823241437122969038389713647725033999342564919960667208790624805453846866930708895490229119139605902165219029978490020994119870870285391883395036868846375370242264175476088049612701679178539494994175586061651556704167014100857807114122786438717582869579516625981586785756985215948806522026875049388738296602833473077679889803046966015562400316676758103527255636061978749808291545207988034777132698877581734833292940271831036874706599371899904970248219441796035491922119616172696844618364282893293702112832619905588747268355378490904479312227082127850897699404428557269411378229008639325703953389625594946647499134743804649948289084997530506688579804237454872723411819575084738470834879899464356786104404609403009076811421029399123944244187153202910287647500679204469184562911426308026624725477326383674680287301578359746121607680718053773558726646757754517125198638830023740525681153666372203363601107866517639602099041047662188836369821557103052849906680155795915341490755450862345002715937801506019112515993991971911901617064159435488826601738313711174008096696133666041173559582080217529404035832022580484578026321295695013589668793041586969700528721929012883825419578540959619396702270196476936604679112698162324857661899756579283392943369867531060054827049709896538952121545639088039371727754279377482630226431039389961844324901618319832424839387789423298027728674603168664030409613321841136622270839352399638319771419810188288999058111223544985889514496390093685476360093172277691711587357426783150220112596262484915649189914230828952710970193856998050931905079593380485796397682029463558451040086651950706579680044467734377810788716590996398755827390581943286202365370059462390835058680702630834100542643846765311279278122264508278905090379902848864380398577588823719070461124170736817319789613309650605143012604019557506813426177164950034156401730973107393036492702342954571460968666464528883788053102801678160518179165415030587182093495749327719109834010053526214722377600662639493568013178843958142787914638455361991552911970676230399288534586313350114266413425667880516827113470511825422142507633754653188385161713352573574776417374721838585729335986266676569300228138327737395006511183840772191356563591907571468161701578240403496914094211647541887883761491302011003323780936791966496242404864488079796339989889188583862470618626578689636918257060910378881607154195359065848696758085598341008414774461307232828763226464082125178611833924423823443093280246227630723676377502904613358285476257453632266262171517795208837001943835024948421692044668920740808039343386914722315246413989710815689158018172934716484518601053544544505668136647329849493509457440988257367118303764226083038293411144312857257138434317503602194143693363369494889626511255545533114083034581102427927257006097643681928914733298499940558055636848612066412609964881149088768543254605319240896536712974493877694359514932034868577793439062433834131986790753023429514670158373453455621526812646760283803674522115685160507477422693590434222362005935425439423097450313352085892915115236724739388952619166772069716727685908612856025593057250547466746645378308417476977411301557936679487846271240661139409937100668329907754887457255771684619438924131120894355235689253846302645895500750736729451950533539612010258539480888264731440432483860631056718475975984569687289906621181530626415265679571012355896039645058166534346131705604928394946740085453875087953303293645006389168066191931288248368961540674329631460222477745877758441688978641346207487784096236353643642286101460502494402280423755335502166050803150979381839059487399702313982375261228388922408774719578678618876913479761984792930484562680550868750031087648436150476879464943315514165709762990709277242993319839489956825560988757062895630599060353168469519303324698274759360722122689895715316661216538412530483797255140054506223827854032837968591474729465624859712362376584678807809728638486699405353412018185728617682217247883066086709289241540461574147565831568012481478966869591889506498505149676242662702492923252650779446524901316918797695307630873292216365829683868589731873560980313968117381787114923009505417675553252760069742682540078003781789469884159372531986996877982428334573500790236180861613854504024870136895693318481583246190801294180753381092890503487125126271078660620162523932764342295473552697013214081433350308867673473175269045088174894412857252029291864827498424561233399396157076440885623723239934323876534832131008602662863344811947113444527677380366410579664933840890075205905150341282570228324143938336247079545487812951385333960922551814129796958475140719068951121208937659870749030406603395546759729676515931146521624364117320732743240587372107340353729928606988120880087585693482198325493265470910496055635360103370991134509048325972577731770710887246414404007228850618509646720385191197037984940186026832133139744801742721439188223117999114003601860155390495415347621484154757616431988423498072494318642983074325149391564328035508686688751907029827582227359711402423678621287759569574059345698303852761163710972646956632877970100574450504406000645910735045036344826435580057737886510618570301354881703508547128860724337928738579349965748183033825896220215177702986504801465671325945738155420466403545244215877210352647594059112206187117578922585614036517474948621916555301060460591431573130674919140810978530650879194269574676012043688685930935166937847918925876096709711182405902456840638778081119130466296659590078609464203733200387231031972961770648462781706952536105452346995328551674042282235504876758018165324078687646795219072805828232521846505163721780799887597437020893536176409066435394866234428917320676074059373596063594801645402661717436160725796299206297296715769146173764037780153695497997507723950747583695908656347042987185704308850621629904947364109545364626153572919503371431885636696840188305237693014033260210318730284202149766131433944019307219949457575817444822705217842926581870001202515490395556568914950929568263636906215170507908693132296220031190201202819565274379506994069985727066626527507676623832576286838721573736881026044124534984730554283207620655927550163710260417651917785256940965246132437349271046272211730857470905981011039231078982946642739198155593731527321500454720403945293693003365631787830294002690626820444804592622166956553813532606796994454641847324435523908725585528050278603267496228705505304524306672363414427695211122137452827821082881951911436803194421607528739043923333559359772838816501394888030935425915977417322616195279287054609567249798653047580599896741042501133458528801376862693161684295262103378360752369985951324662568810857096361606926586339759636200575868495386588152290341104936567614244324081956182409274597051620333715694652433382141362377080907148917992172998992717178236201484638082742516018685806777677269756638597426332892943236372244230942122287916920179963510875452798924291744555149115775889333048734850192853607465144927168649929832593166449214653397336733338299943111161688302430783694024535450996712888422094600108650306200807048362551019112771745809107534316206393683091789582137843407056672459344116470596821251266837862607854129212005657921327031070747998781684499956594916724604198042621747685974385742718192123481185035441138397662671354441371633460690825633013428701486559243637170394553255255631490077283684125007268943919185130018544048354874836104211964365551788727605866792051851243567196059842001989414239428071299207821442570660391541066231928890234582401714318840413728629003688055746695294423091967213140332252114532210874377142632554421076777771743095805909795975561814854124395198376938954505987909019856396892653845601947237315800098533392578112206078192371044396042949879301027956247244418725564756857858116572481166018462617566724580982094454992431424428450188811723984607254682453600731165362376486805701913712909067534964632481407297995118110735296863109093135063102627914379914195508602437917440435592185684253737833540415694278642821488597172946496693416220482264103230228890456666606702777822820362632827529263307238618687420849339492651797553259809666678825028044906434941912466636850970906577626659979314976479360021417909649902771658343215435428030791427916814272296409856526572922400333276094360308134618058718005330737546917886331644443295019383413113144234589878087721706129453212524022067467511249709351708772196825979854956339714840939247096608511428234558004716099914082666175844369087600114724836806651417167107703237208121101971823696511582589295278893725322983050260902632555256945360573194524612195354175842040849759917665871404685089273437009769413834381559504321163743970121684440965763194266859087594048727306768493939084206404943180597844605832872401893085523650791547012814129827220678321210624746749410442024431103752921741464624484673883896397340521160774079428256442146377275908361966473804019369435999822274730361889324435525979559468375586983134670882782607764974404558450270574934311057221303216803306025870200327362311770901750491384685643789334086116342624822502513866475386456002296849895769177345721724218986832410113256560034308598959663589202002667668693796890281883386971616561046982662094208859455142331793529469140101547144952296839528753306758966208118851223679598668020202897509980576744354709126489347878463534634990209328628790599237487778018327349668924357718626531581217816941014821044028963341138146386198763681242371662953508170704880478737235736336105740307444628154519735744060862782645496841377699099627154420101038986542412235094196875609701138291662359796057509044908508237818002056252380781319658285900950511603892849391173212734861893911352945717206663061033141213935650467192540943490047876795846172878441155378823647515011111871388394818153488834769806742836556451190809273312246639851983803389617672778478491055065966142207262775540536457824057338106493144481459658987738630909323339368077563331134556828068884176577967978882408545303369326391005471044278174586680994975659187778537357986895223104724111668348628367512019377795809593211813141929266201950761721081413646021653585627538319740041870331626018785136386530893677007096302232211980520004734956721286799341598933478680576611771217496002973886334057424349938436963822355531413061278216082929960671439368055437767435677918049641819249858162329070507316729841912102139897984246334702950420080312379362526315152943905926165927898239739990868261429851754965530764192657152956243947043044703803242714207623909856606811570864070018540702453505915462978443006412011058735956043322007545448357807657452054955670487510671032173339825630711289300489401217166595544514638376805191275833874704511685462177458179737141202280931915990985167476114539120526749796476862664603685350145383328817511099536454711192256929442420076890912376622970490996262773059304693197460389759460719026824768174970557904669480652459117844009360594950116069249733025379516327541463615380534869285361658314005356654170227628331543042714238099281774025595620810866999027365382416018478582996542338352116184343037861764342472386460657962878246369708424763421288137340950380095239554139261466402801340211997949954284550264465981294169362281118797251067867089258547815117968047966373867520565924012992247054249021073355429920293665343952672066006891087755295281786358689796943342216179831096579209939436580512099915289300023061679961817983985035183453761040384951218203143514385953528439228048484396043731940358421154830349527780817386892369219650627038125582531456412120449393624952311193783950602916126639241876326172554276008397287927432982559908062443297351596979884715891865111022871613425015663996433432377565756015826094972856903214331271970491065137633381068282442540930600654865159988841271297992633652660503273892011645828152241483067301986805669396988687757701700414154502754047230492874133291351153169921360601978614749078478720274726785177729414510792498732304000863771869667623109725164377557416328470338808408549224705004676060091037070057523527814787700322144932331381327066646784919120408029897099884684187993223621030733562727299231443633043930530460583994480478487065928798797682174392602169083841936056931169314128603441459456754880867341455577468240534688971773342157551241137204780683927256065750358431817556517680828194258233465559295542289812960913500281105077807307785969111366436818260969246990668086031362661119721861201517375685003745525178612404718573565941417742561757231793794765059201612834478365994259491589444837228602079376025220338641697408543453272207209856501137127637788485275078606710995059432843801352368148271215357180764952553665419440963715387394648998231072092440369045677203950517989451606970313286794218426484956170088135740235731788446595763255123644799222366508451762569619599315248840283917501268010832726274148203675328455572575148594060209026988394054782000445638224751265892488475410208719344115463075938678277178239363605251189308891004599674585392697771509009179849220141911145255647770696344977693811029603005160058904315350294927232318102204296196003704996616501291914895671188017854881279706587264083639000731515087705927623642762603825310919346545805755374444573660000850215016948022547099906694314527579326907910297933307779253946063440818172422142431887851248028075244568500041514706790966778243083403230023202433342674236467577304381220854911796902935514772319867635220714414093183752892920704946278888128719638715152090992879175525726599150577902474362165823856500899789340913679949718826065167869580121889467174723358323165016600856144317066637699794315494105107425017930457318089563798762762908736787747572898421685829312550910326247734115971823900384657541035570834267899307381381934216545973182428187275257856849560121686349701150967663955716907195161723793854148162204872056973024878300639676115505676187575477628225950764923824473508991246891225274744826024339711255586259580872297531455494728627911269080663147325135486911267034200246378575549265228527723693299305580445776814056115494522383965375807630330333262534117105199449823549563000735145376816182813166984535318654791220625015239222046238075142279038357797653074058730950151436450040340306502320170501244025465977325372847332310080672546055711200886717311001460199847828055766829285284181116389297272699408060119898350582313752621477393590454917231217919115387917857200581268139717165728443823298813348993379698841264900683427460968120969328548516856324418744114868012653614317534028850036159369935938135217394687538296082711154890578240906142163005285065773267770859712612956918048218941916812676538940020297516305859965887794997358704817093340721533937886459841167951298812014679392885656905284765893582848359220608138362156699137290428726891189907868477817822232414466282863097835056005564364624221984530410545762029121513284263323329797506828759314469125844476631776757351951838900320130831522951393403106877127057404614906746619673767163678748885331299685781492421804517539281452308903634037587089692057908746298297073882658918078443014238453210034772032752055893457598127395327937091046950119204198689504852896033156981248624584229965368304286652340832628145362122979316556786275371550051295567495184775771130419789772151900415635198124315278929384510396567256067456286136654242309084235271822480156235163249150380296929445947410956291661150051589689484313444063045686628954087192393133833095525673727000664617781445172443738698939076721160933585215644541376594546267876482521914376109898461921055440609428173359319764911300980181236890451476933369597024347987680193212624123667741054782297378549553148953880042723549488149500779180503044918107465922792247450617947948043746442013552186228687438436091999501803670657013495617064730225165643037060567194926127523562840663556215420840755432013442016452757267210281089904657645898479907539046104363037990462181511143569737958784762618358581170668944882695493219697311408018687279140096391523247751933282630697918656574587781899726263021161341017777618363896996631078673919434302065495090988845755885252446719004431158039617713143807505553030407790373348630796221075582481394392533004353501805036965356280597275017496145352488658744367506868337995155976992485458520339058335321894437632469305348738350149588601195607470226902843181296512162090846779149461209481140485989154554765291709701025907921572929231196691600435005529533160373502135074086089447341005289227383738280926338814357591538987006148701112190100769604325583120165534671908437408904493471219343377568332886257809185576977722832047643402286166877266747354839608021518127006011656780766143136746169895837819682515703171833004427707851943422167698939783022233048818355713148789264402220127659210879006268962616057484838640679140968482032910294725995756650097619652011914087240138267862733942100952729959120862652010847805083551672543360214303952460223427118410025314677818033708866336211410647033620701070329584287173921466030669257455550757831486720751622972705141803693280447109064025220512929951041978306743090474807295653747240265440026474098142021995678357416023948161922920976296696829787005648536444007969803218082163515488043951808147744332776839187357956637781503631135413503946995899394365434458195697362389832583297791194886905086585251294860057817439467495768054645604491846317389124260638581923159293863800180378910782465118588146737158209189531614224004715296271871005292357689651333298683237269531394568617181199180303855863653590340667445427245893317890956941023953723869239672249142064654333928943630753354227292460464873770391699666334446592776587603141058520938010847233027718461282898695831373455233351380732719458566444619129917775993583550993971196693595840487955191124794790241478505298506206128009629769044298073833254450278004608201738196657526791226256629672636120469078035236961956457783306086950556630014469646765643809843165554297894708201001297139447053913961380834497823732957706415292093900268004816015375961833204853847814860765161466959694133550489998080741852286026746908550832131583696770321742915919606676232667414677699219015202842774670753132463019785767393893738414378434016234388257008668019383618182185938426059478274769220798438240844008243815572291216801480347982936080743803925003153156772987567753845465985051737560005524099803309605503396144471315684988300220693948034272795555325071393208300396261969172479029510786510630300816935080686224447823799337122550554268173449824505374700532955381554431154610977048536961094814950115308952764448720290789657608686990480306483700864560835489952907445701108390164077473231224797501055900065153812546313561213177333692949206247300767387075865655812417378190088816070067933843336055608585188720502656771591540892831664468469568993837158530836025473615643228967669000288603574719468869196479405712430136488435611283004381072929421000469936066093632106007130519472178553060457959811844458205336958284345863677692022895885766364788472802191302402182190161262309607889872272756308337612902130947187781869229800090549218570991210367861351823123996194918780373559488411939842883120927858064320453707895006205096192309215566909799317378487381025130837164437817238210885996163043542212038415177453618964308825340274068045561212361510884339876872459641514495331600133217837506956567869441056357381589624368017569636382834269579189302253846457764707909528854011302745419763811834219940340171447492364932099975679409742687412937530171332450995545263668506038598687222897905605473857706001470428777890586196835998485662262423078511430772699083172258284929598179371709126036989268029286529291026955756177545337743065586281807603594886555362964177801544944049987461001994613630138365597483567409248728904151345430840859056254280297393538894598145697162199157146100226694878562944570320261620005744904775349615598829935960665592032838946416242793600484436554432912589846273817594925787366144570011171768702609705020427431454597083814417949707902428372011154196945395539368741969821574206177046318018349210772954558946436311637045048822065483343288297199949933290757816847763629961763112942590144393662324785747566821235476800332018190853791157304818004033942211791838052204134982002102510253475485630092089546002114270358674658110612187022878733170625005820497130658975456723075949992262944865256345193911612689433606461699371216015671914202128048374988632788356431448622455762280364444207047497776182585794851092848185160268977321455613629364437501064427380699876756044048333028752169997295170422122542943843982952402635571608406932884665728932445655816013104439116321141341465166053967183955148883963007208600482116306132032219248540462771267991667484060970212101818463603843113092837626012087969320790669419032051727815920139122435240773946557863680779375706412250897263206264425626053321431953898219429389128985878347765027458138007971179822228127173224411511153521790727065263811569242925585614056823124776938625179930525166769579767961207686266012913734284252284974032988283834334821811063294421350087520795519512608629896403231533434100069056811325834613299026990776768468465244240824715637550237005379711421228451971254449518872812440057565925663436221660407095419304790602550770729408590058999750026565262169644118635852584606973498811934660459677818973597295441205351233628193182988970190641544492521414525524602502627211931290810309132086847612523568983647131607630325316398539466222644307219377233708648044019404048971183324384883805629020963240971505879768652945607511774993512273021114384004943664327975341357706670044933708122850184101054859667796668477556773141634789657179909411773670056490672782692720272490488275229604478167752779283076821803782562085028271857969162953612649711789335667900064495507753255115327125447639725889787186819307779353643229866440360864085930955662727862308682263455254066007672776947791144095942283735013382403257036553474106362910872211083150229014546523866710390453865643258847346765399144444570773283931614233951748123566016941368147233842609547398284140316784841137742426834421784829038589407428504932535531431214002538202066061895829210274702166010775508119565789016777961656281638753447904845028468294928914225682550151167927699776090224319820126587120428795065127789954786773705744520035903475139268627084383386503239725920148291053776506243612009900849223019156957620054676855911511590454041889117770598038993676382177014028019075706034783311968462278808471035243953241178952817250209025766549391332946298329012949050350199479838832361627437906780747022786985118295728635607622314379094732998348620899995537655794333026389262391415959559969611421995386888650453292498680480473665483608624217246512144166786344879291912346838001017805591875712850627181070814670525646221364313448816933221601250526105867705498621664138721637448109590763613709255825593015825156769668868938667032020666003648675761034107399883808865371814300286885318697818216297525278352703023414855759064823452933496560478767527627566527221908325002475159941324678858837820270955614857507863110293598930386045689464979096115964755211578792215172965788241625336770153363073266411005490359983360890373346177132218979344050304982872222096165172711541362957935484586225311231769656691450299926058387417456228489862423875554480626273693336852298246203930167399116840827906784644057381913882501952028399074181194098858524328272050889618640570729276790867094151768432605816540998962858153640458740027316773305202951183801265358435524777948595617241484100612213780878260429069093695852050383709488236081041483322520968236449869264011200512543337715610010104282475467911743349173947278447352401419127012982467649891412383679602542596370273206660544516147835748614987533153331279300736669718448807347649738369192373918939795213965750956048334852735225566155827923620759912276112188891398211030550866003688875371697492920805370446917559587182636969226147645567765618593229585169176002613455849972495487815982887579841808402235232785946617036303101384112890801228218000549361414229996937598963082021248531451382776728113154843714316114776982576478802203888644665297817420265058133414117061482092399695483207431500444502607668846756230248385441133078814521380848264445334410525477399853013810459915424654985619216393394657948991116024156887160026684058611331078602637689468094944177187004478968482676186788851447665849323942512140185304076363236039865281312975513718565856728618269039511160446310085646470553522769455390258413814302834737655703660121659826552535718877413323236033978222820991686180179070236549041673939348611666086349451384553294970608341140854442512411958579894078457087664595232299318564210117848927279363440034286391653097650358605530829126072284631933599385725261677118104018401776542153887469638367871843437678522677475899771862985108257822838255935216002671379081497718191345386241408499156684729393260579879131850171894417871781912306705769466369213190614731484546843517870305429245725326274518165638031003302591862890274254965529114290984091367161883581827965717473694914234275572350576861562107371847074723907917458326561616754211551289851890835705421161078666946713545315726581285630342045866862747157041400649785443706192531369877104151340781561279029973754836267817370907340518035570690187468330506219174401938719806488080067805401635989130036298641461620868841518365198214204118510576200259500584229693362891190517154275316938187444477713169781222565274989210086640823301890790739780303723777992116894144835745885202395572934995833443371067887982090893197140966929155102342342533356604390002565002703191526543846482647013351130536859003378619685497192807627899392688585535991848504237563576324074416204337652834608998858115079654326917695887766610673611343340074130327490004974691796657462769365121038352800436572026133841551367398223472092106698415377507129784051655559241842016594149039091370411110599471767993475556117387273497075675508023408020484637602028227535386449125242671987529688632456633955075181989168232032044007443072541535558361843634704062359402671054562929416184102301120381999225901480495318424826440976654903612852239876146599029453641894196109943072447377591248151704107620768298354172247420632743437479634147663602178184965980243674891805574098053042396015907396538046586147909714730765077947765788070622363077542492213196720565747873501281282578884911851369159689589845098857411429380680945706502619451007004312622883675318832532803406609945534695912012219767326662428339872714158671995745534394253023016048139390818830281930132462150381193719530972632532201055560793489344295744658710558392672855869557306901007268840017508896493442116238818089947976572597175564850870605723017016233664196345061383991052570166467655715902182431191717523316424308684583672529301292198295501622234754258818472369335599194384734301115911913983695298214177543699097683863828556579513643520324912195370711670542230917410238525283530806018379831219378186048984275194266907139283253269281275241904002513420216210230618887086045169529457534501090116005507608082757372628858926088213684908483354938570421963387597046496110293357537770066171191726596994453187128334252235690817467559615798855834070439409505984702527746752719608956740832635057521480045423452065149823465099373902300506627049233763298539427396691237658516630608469821544122569756135101644534571555053530794132305424277168539712306902679865778327621784579925373176911907256685613974625206771575474794783013950222990500951246727084729605508880874078171132604671401604519159794746428058062140009109857218766599373531034527012150121005134712282717053614941572678001668146616078214723329309835652818870618416192130871764387470770279641468097889343747650322223318445526820752484413322183726018519006425857260890731312554735266552114539475771296117338081905675185502014468374962735597254998393879403571080722818107595663805738480206904247353333982841528426148403581320847832129798642863382499542834759077599220773803113314722669628400058370207500596742500549947698634204671664538525595343089932651595351460449008122419792652618464121723638293252976550036442867132566258866946470536519545154217303288127721723232912847840007411959441106954721431848802666138699118634680255731838127893495010932876152755887964178202909537863537976156308970840218330225632657231616347179400501893189176832314364408074727794293459910283683337383813974767299428506006053374368556426262607791035686854939392295527607828925959707312244879480740483906237018121584254162087567495023411992564360625800200357100475683682223932161734687513126676045651693931831489001672636435111516733710427199259404836408057406680846838675567896019972751418389182703845529081556493395959226843968483900010081265342585794772045408625244129270820797499168318221603453006168229932288751945444300275894800337693944168975887341331709970295517213908090602619586466597549133879124216238729833343884142589153245998726777986956325443962392993203404162015803861683301124440121958307961499947431973412789103963751704540360112488585216014861245567022745765953125523405586870665285551572962063339183086933160735743153884699022574149705004497992026065449359617744848968289674811937453485909270612641211842440808293025794749633106955265741625401682586305997686041939071812400006365639254399369537922575748910635217964714538669432595836216453081212872996439297053065737202688975402207817765835294580584789858529474159503737490965602324735936418736271969432457333494428159071789438529114011866721678968543085856742434638629088789918242967614318303930571299438539915847059308501823210975769356158258520063991271995820024299363417832777240598025504415856673601700114926750927318626819852215117140329517527755987066534453101666041580857502202458862340460090229330833875375645728143312049944533512677548657289883121264072180880264609733892534829089671929981396615117168911251604083308523092944251047249867261708936125737313297898415978527726033876062922561171926050773458073283442728276098993786033098507469257864539903413897445881725332146131908380005885484280519034664698784615208069201163636157141094104490883151077143602679974113006914554394206144288760934060387058048747816981366550453081858509434766699617157521812021909199674547610856856000201924224495672341982533282050937793236771078176979756856084344487932549110073521901449566299864387363817481548895331119907595836543933108632375053146039127615698348352253180645083185406263777795511329931995454128668988000319875148436511616169860781206542834750971092947647876510417948335511564291722885757416044522322231162504116225468647934486785445207291750341812639897687436978672327756029327936501995549587456284357679282354555537346875811183660484535004110449895073204405851566865032213587509524324260015164668722852157265013239428282199222630436226856971734068837453357731033928236126022099773444341277841177116832840985479311446533645426824028977471122662451229147313580259732278044904893197622554793388115603565443029981242561604821248610767511531363438652952911323006686822447915875832977830789236684420740629567035853230988784419929436622353322679177704478722077599903003906410103646032101673710051688198314433778102410831324939315283305519547796218973713130518863079273331235553109048155081100217959344382817496226421857277317694845494360930085787280213071140070106280188016896596013265367848306934520223244095620296248077056498159963725467388775932714121932923927967429154578832389155612543915007088852406991503711492002798895651219697225654934262809821087862880387073355588926996691279044159427873353765239464659402556211886349626556297413688605876672347858367169287488541925942668180803703563636013683433263046802530757048183576783243178578142538628728439123046250909768680509051769740608154880872198035984058272100412730917179636643582698602034018751899103903830004954636460794588200456755520682685540052208932108934348628602237147981366618063284095093219531975757260501647395132225661149689122509679255007548744666724889754090581104423052344018335636517204115471857156915972577712632925587828993009169028787372079158962879449297028093437645929794606785632216732069724661188005266090535068712274825352294650502038805368609315751457687370642082029764079002562412359126527566432660571311693938138257418192903501069061188244806846183032161294079755120035615729505789573307497656082708852601273031702802135191664905450197363734328097022040221744481610777830901306655960762935177385405147291204770693252341531908069334920821046912947994920653980321347904704792939102743013667665097962775664124404677835421241993060748031649200859971747087198171669193335301605489048431365238534475505072313289188443546855493870246740010830714949061964688183209157459811014563239531117027957255723154008862190085978006628536484187950802055894294006400030884123670303639078886181911292092225023273894448492086454788717711971821946482428340299288776517051768900177964972541297520587937935524187630789735030928395690515594775888461264629941575347688067535665095208424558475046169703797464117447000370058229005962002011547280723256384157798211453789958370197854334637314463948898045595936307306594274931768240507513536366236237492189186841842919365173408855145963434626740125941801418287398210474458296261232155981396000827744334851868555693617149402758208276827884724484899945579991720413121133801739438188311346836274850130078410398323866090910973553462903052560719687859911996112933973250131643361515990451878024628560484329217844168048043445644676698439755102541162768587470842442865871415553149029832601646623888968431491425900358322872250325439893399830364551244500013023744761190966100165264187140746031604734390905684537289950205678522983008908151723836350774687074906390298850129669590969641211208534754472942040534388661681591295096795491319310829193441928320454710452082441944094289732494635291380280763556220573820015458410759825239780046334875766599423845866013882713233445068811303983946905743982394023718512901643155080368665117761235471329216844712369137907557515068418067709622715983483570766635566255235022978651698203727127939299880524409370251656499898697404709175312587941103259720715558277237405301706406049025322177803890350014142719700196403070078866854926827814475048936079502667018452288360258440936637504082078067069393107567945304318721145976287332670212043418899048353572193832787710781535349836672859404573788580147691754362408881354575555544341763401078830939695106636458886194133240435173705607774391781845036419974163597980530491753633246319004181511168238832033921363526243854606845263112056053716215415190582290452599757329635112048709565329273078846972643274448561278501696073701115998523650616330846801714632828586537924346966175730293079131771663122858274355234211608756669819618942838958950672826315064153613217931235317479343556485317263152255600871660269601570570957447413443497421124143754689276989900474109139787238876784935463600295201102349273672600195161018978030236528172136960589530182663586174043212566584883731541813856734267941304916534570581410075183774653313922788773713368575562899009711674916931847207187713717504559783888273110156640992617508462715912750341761686570152743082051833523252967512886825461804219211054821382111592667690605725682208495266196340620761815086237071378669199077725173202625810270103204918434678389072820785395747383024225146227461107298020379212557749468305525548035480016731754668915528475477492318699396196405244832690814343019160543917408678776846857175409101174370961456311181673453247624164180748174764770855530148609875632616266094422518179284461970938129672493614193290061337998782649273581505465930901973148663276225706234711313342148714743215014702267038276373540714255788869105125282142179788287889783627675683815170723770323542257160428496383836661969690694870829410392196357794564940785208826640562419506159146632228857855655261873698795663381887301713202086452417347736872379814796014837545111233020988436720848847996907339391491059932840160523433780898804977855898939508216217541679550576293442318269428683274578415702337695532368934985221172152948153485915453137511252483799125745511185056068505157252716006135148012517388291197188689757496612153954423854452998220976620614178984397349679483255140592780747284142133965841965160528067782588514237701595489314413239193106014714613782553546257617652176766141100035640087875329748995650858105007293328380019617949736972818000672432716575335104925697724243040579898104149281529388604467256945547853944402900195857177582180813736346454371436131067043575906506474096728444991965075371000798227504140723913625576549213172253722969616847439291239358335205749544703951616683560851547198131787736483025876690967345239834373971554212937968156455553833090963011805376932856861356985490242984675282810560326239225717930127700331582829790492658254165927572287827545974955822235258404424697840510981406884870423581713403909622480455475493411703756442039241986378075101429782163707063277662708051529253777890908589296570162357478097188012852039431186449785633513192554577493449888667611302443257079500142544566121236122392079121786196650847177367563082735012296161547812435842992550037915539147632112374780047312147032757774753330162738793726678604918493470887471494313416339650775776478180875116908490190624186537639109534606335810110765455919703701600364011738702453111600385929695650282585434411830251181561814526647142253936747006977306253427151731108138130388482039701816628336488124185178689500575885961307637684998692217349917546949278791728736267163133985133951003163224966760344777174924211756614510031899948493375868594774400110455102551910204787072527940753980367005886877621352909986689681729211004771795611896877866976235933131968666533405456063060631902767920639437417246036247206263119773180104106724326132036236216520922951986523961903806936624827187292930244478331085793551763089992261674833939361197747394497250765436216489829164342233493416486109543892584173354578144824833647267422944929763553424883316098793569153937249638099152469710061842769956493256882095530719421371855128027666703614268086314150746611038664715167821397110284286297636077709266049055275515191166880043165166573235561965363860859703927413805313035873573703880118213862536252301363582475930446887808829510649800214331097698774991770321152360890901622986621045329446722827855029740819852288652771422614383756263637577531735193752330169408174710131710860130453274645371956624301143673846774011618437009349013346756512595539490045000193175781707123691684649529297043572327947027787789131352272000105413825296067588410462351620102315888996566195228503355281376093189824298522930723694131925216877013645481112437271473137144811967288600823764276731725468833794069228694330423227791230771948350293740518914200149980116434269780590997756851014042570724194892960251918173242332201214535582822022625861224616120410160281273489008551813987690143086363688641049068959312297696479098801470890611004992833034842913910732890636238029247755299133216360024161708544126528951497222775261156782507307853929196580973692233174378293391981483227064153062182535375055269200858844903205423685454590514644358310440164005935683596833812286768116858514106482956111735602497771326302058680664507041838040182134648699416062048289667298970530979301931864728067614657936706537951746736676513285489420937962385109451272487567791299457033608760112916765087168301241715328298118976909001821664316227222074706314375747751514101405580146665973469146378192578518073459652653391917314371251268248974128247059903096761382421737909050702175074780875555368756332565497705039184787832787663875689056458663720673605405261115568144022162168001320664522171572913567855097095939549804721179703262562186562082221363264955867050196961047742863583972634833800579888112899155424188826736396415529344111015953147231152309275130826634731133411634400776038150985931837656757616601104906209653451725881150988348045440906565872634042086378798663213946202942472865853285439191933453578488929494165748707477590431017710050684484644016985298623451201457166423245556391247035705295513422916958406367790577973212283693559777871579342118694029524158474119805208841519850168896379082067027578747187738479227535655856846168945610391545569071540854546565261377800557629226815215467391219878721177832206304279112704976877031024563487689618786495921759531584053415331171222277152161501596792249345507679851165577215926677539039386365023637181004216414222036740495664684593253416411168953056608422971281957342769309172700561992124695996960805898134511913141264995548890914848197157633994842395130966832240359926819861009735086630787216845732138386647213245286222774293434944554071973046263202148946988759220543079612441145044532866345725978804862299662502102504129334854191130844363553882806138938077140536367989012345019538304860082094904923358581987763950657052787755946378198892386928300935956855365766057996831545074448342348447112570493862474912919384114816548661784913386931572532724367642703794414576450681899811147170953801468133610959305819239570568144751185020544568133388555657244633371994942401165394461684662818865813274074685669176910587188823262962712964637589523195869367022857150656518206338140957112035350650743686130952897096339389374141077585353222370556243328356623077535442668079496898094035718003303671563795253537999703779600790021214753803643656215007876189948316838398475888915165727263246508658283369196524666754964694690118114755728573950072198674309318889771163768650417743874080013682841323490718377258492943661309436054123680893542298607658761290716243672645328289518276882888440402950428337893621506797307988410958597856247503077144579767714367934042593041165854302552336760707002259832858855987402687744576123301623535779797891309591253960129850561811030478876228897402703640330585949940126627130296683067839937076469695228224227332456510992781788460103783756291377383835435106280205372793027560025239712081655428331055949670052706685949786787892556615714314145692595173313427923800475181776527285098136632059316976216246128026378948174382199181642160523839951499356291810671823298460364436528440991789129506531877440589411925147255137187890989220437104328843137253576201009194282019044134992885984371894369930626664878254236961478157947839191174673477261479596785107069900166564869825174291309226497546377674754419740043730069875718460232280934182598108265377524907597361433612581974600055860177750824972088696861068990053035998360020251716344047552458537069496875546622573091337769163089945658069046924995954127657724407388757731778125042051821722396977352510516907964577834393083002952298184064930995614999982262479177997990970536669537412071209735229173944417154383267484670803959187836784934037614631330915940851766268532287639189360013903122885194660037477164089097050729489343490091144949988254670172814991613143114102460975097313360800640589379949586092022797709007795237012952947307140072905321960842584230696483356954384260258065689725482248029457868983485675319070305912287639654251311610090804265245107999224881617638361232237548702667408022618249943629160725994654656925801359077047609241962123532645989678906753834661995887619880336533907828059943170843674042630755033318644866756728427086953655093253707564483289428865939463946116023758801268706630707658985666786164762024239934616043794252469663203160262067568407328652128200198392046975526384049028856589219290610622655222808243037177450245556924818963116868796673813086667797689757751895585087560460396497057305482797145805652918500001283501653874514343165074104782792454475125627771275569896825882255694559849314051575466943972433084918610150474006158124142109274733681999892094455264022743636230472908987896706991332306627507843743950496635697302700351586874477797356141200343979578088358130939391755816430322533878378357294504103018092745295797836870510696662350305789561075762718089092856279413836361259502189912643331433075881543371084477340384139053018192994106910117627105302641458417340546973345323076581988625111253033531867066073193752705329590391961293708182707860265268609945825564601312400707593712817398039361029839790400148363518851506911061971907355044910163504002453334904126230619927402569065378290129049755292528110127472737616009101914893693536355945353926618686673427279109671369293396339912065101718682828137626034133349301830327170118266987537184889970056214717790734311300968450989603601410935215502964804714378954925784933923046406217515222921077508889907199386498723227306628071705598039282958122466354510620497523430276977455674521204228834732650064130599881896354769648434516753438369866432006237320206355601662411172228495923389945110201908133601153183137945570089341268711477707390715643088912332973577602829901484583476930676209071067914911306788549823365469223304112024536794750713762281786937525843835732354400633693422525169035940775129958875583913548733119453753274564075875449592986536160815360960166698903571826711464263540114469658852277479714863379518715874602180430827699841734956225247476970051283244952133860691737531516663909603716343887589967585497522197745198280531897730502158611880222624677430634502669381900293704329754377596831616230289795633968223728769798524011696198067313361699055537354428936288777665357103154857234598485731048988486043154042345641350555802465840151953192408900173133607540418813855126910050554445271767085929208390826837851026238959804254377552275573675744432925262784928823181806001595763263971909624191136250004480579462202591028374936439708135660061704348221312361881016964570947065984119135834344317348813961506310158052125318075713318430491525345099953607702667035463233848293966882665892946120947795594284397494951099459962861392982546180300622257393384592463630709827800249736501579387642264163240696408531493516777040728694204014112538159590041036563553363511596072946739212360365525093498349541142094509343752556040891635794672189335427549730427421331717844200282916377247771343805378534528746429056206711854971623878917776590964684583551564525304025590665614440425974212143625702284619271064090621559197284665377908959760937376535456218240990974331803674651716300439882485774431933296310318231710431881027025895341935063721899124054474924540272378633605145230837380079134514770828395365627688359195350741059197762474199717256835111414633660982074746268593732708604758472875498946653443185455841079987583174159415924523621720617710866599503868640165364898096647544433928969503784554930314042441865771689601674673547856936715789677335674173956392955672991555333589445072617367714444668233450678305838052654203055901496159212604804026432857870843289789590567101295367181401376151476130291680088389184280763358856805760861099615377425379337943063756405084300937953011860033115018183771004487209852731893012398356570256074589850116463313019371788305989479757084867438232880107423435409074446537211616235800980219327055668462405824108894244744813763422652454782196901513461768211716314906316223399092610976539844638704910551761989004927378397758844831042087125238792853472105420424982990980155646978945833435902795226462891815359806635257533534560542338998257690618170803612327794588850649540861476150455669056366612164026686325009992407721392963825883169257582001297769616549260393533930224284096857585135709377141732301628512415988432250012136646165517413156977651976958984678554981448533974794383103701117427323974341401494487014654715924180805297257458780096658371435154197184518882535788613158728849163908357830039502545157249471290290077439225469259165910634344204263905106338408948490856527693066030737914473631691697912581789086181415908723877925104745224635373629182967871770558611453133486334258228088275234845905586827457665945051576001672011941236547110301930807768732730201589604568008510658304342660923366133403508630576470784142095204315530374060457401718607834755730209636876477304666905688537115383221998956834568550067721396718031469071667370057494748359624901401221843329291602790088006338440123043478325711352222876897443564555945927949159383941474868694461600957321996596831382783357557649056312979198160707182922033887554722606972224381860129259158142622111940908875646293341874709685204254084858576355496436171061089351885561042118758689323795502865151434137448311674355211018492712795820623365154891169624675000717742922349753081797612038868457092199775064324519451575101577240836508728107652944536167142468557666575994113768285236824459264024633599293703678710835425064674239112772485345562570767732027249652867295768943704702558871918443895243047819696143740159755496982388362744026320339461285580698235840337249087422533449458861096286082262492220159530636052082642171266962164692493106188008521174913787367655870507635137450176415428367729474786951507375491480087449405378094448482794895863782201245226777133508649578430981235443781951252129318109067151930973624117152540209896347647073211066605990793979637986696540926539460229267100329076577359519635283590235231343147852132551070196952461972695951008053595885497591328433520328083652916277394367814106763368201228119235901309998401943651090271992021887910420739875929424559444781923735082207359247273032107853017798942891308338804526254241784254800538694699058016082955104148764430705787870773213149637568532651197539735142396332759667638467331760153790028612592129043358134580360058417267841655165241486278994530741393427459194023921995006611860941936855543213378674075211047326619536158019336694476529907782400552801374472240222980707447198374504888446898186477152996855111062741107197352437333462338952954682221489069005573270386266603297848604926573885921620572594508553432979189536728796900716271616497016554368411626582212777353963745866210945385830171460721004278111085794547106669122178892407784523238113418817310138805315785642084653347157332139409804745457915461052103575976718415784706366800453554873752960779190848899491964407349641276618428480170767527954879484617282286028185075627171609726101993074847055649335786310118537753141066146846340347762642793534100874116714445448623094506623468866410873497153400867761549946873878432393039026665050803615877927597574335749717347217216474853654811509193858057073005018421970845542526253201756656530312191128271377293429552921038591782647312961184477083009069419967096862621479741134789493202288597097433941974704830781060161920405045631852534679226523445860725749837519924324592729310483650798034538028700717702693244531486357711745087958441743740816991879333767663972995100546846797036523922727300895772237190756520573154653666099163591746109737499983854107151880117314509581056920596001090576475131142365440537830487903442088888417988130954802512049442725965897753648970271743526163334668005095417754446615423366729871999793236005098922779908188720260721912983151762431065627858608222072399496683120938294891819020881414328770466726718506684459263459164975890601811322444189588714680144358957065578354865191697143941415071257783113921853403968603178460827511691117989139685995402517465504666195703948732529788983628801632477126518762029149168319788386181694283554559074491120158136029074419653625891657360057470511631767639458769505164997771884457382922816830198745257167793686337010157608153589725741073689013562921762232400495433083955521614051531414802153046318404867522155306735451965688032402828919297921752510882143425873049235980883213852147696084574126188701125947784742848065893045193781775818776362478015874346272093481341967435712199148227886888051647963095642961388295562167482573420872774071389261963901729269951967504945312208251067377643356811610692488524437688050365788674093691810267656411685472295210292125355169115768029614188450711135941502181182342991908529791506115445690386998219196159086754171944952535119793916943106140974892310726927011435244415635254886306350576043063223057073848878419715124299712964259701931897125596959886401712016201417943549641028572097878116993528996260624754199309518632694544703221551151453934806767206594150218558171216126017520212242352626077105447912703180121647800200254316202025677716011476337509414107713003830765301408514274669810126619841747214082673046216234096071423892041618777076012970511546024118992594036388543397967833950550951489805326937056182811375050993866054225035659771311273775695741875825943276130378671741004906396964162105072353874660469719934460794347222156619296536147137011058366516618970779177402764305309664009040806831943130305962799981086584353339229734040206132576332033174840256995996795605975103582463152731005424875388161546225203151159269677092646643564316512436155035554779989268086383185464715422978200884883642930711584519320661625088064692381182011823730397739133682163507083343165742308077878190082270165144729985419774705129773130654889906276008772188740124994138525963897503862442908632859773796377408415165565266380867232123152735251899017026360329839548814713845411437635528352166545905388170479193327743250429364412184388216340606151843823866743224062124095767842811713535717676428568642010052183900881277492911131275240432760920655846767714285751543554262402551495292103315130837582017739282087631286940399814848946047997147847827033266317048127367131417051732787433034476644052569517629493063615579921170146281208048192838389908148171424384895587896143970410345307225643397322126646852715994319255996648921194491644970384349573746556587088047137876845382325274102311198942475284963613051581518451357826874717274589745136586388897040634138255010523331113183632238234204339096676451467246251298830353964037966429087900626603625929471569907430486550908971728614716503107170584962666920650485706002537711263620216808310818702581900398891739751137329629668684546796185574189733513945635406768631899820954315684357090549040936729033068015330721000889782146049579008443288978509879879963656692861796829622557664671498331699946894172574221458256217872156933808075900781612313200464825800059241856818630396415280607976164873981844693815686901153341763529029430306690663598636074269262239584483512205916106279213223681243618487759923743200254306626683194429939700885383405892471947901445603910507300062603990919725081966077398983505537580701522497071041720774277393030415600831269510339025460163098355591260023889568593846325008617574162822837693726443915229705172356443946815830117789654468737280931554796810904019537789764075272133279174788599944920972173564285702404921504443027547223562491263117279707940047336999012806379405362331370111821714710194499061891025411359311262015171895136807841835766356967044876427840678652641650372614827987268140589983711523624768512092764393451788287171880318240895052143586324442372807860924133537174931254481176415377513385992378494071637537014919900143456097995562018590283182698115054045397591962990161863215397326143318652624605477472162184527563664964499285066159349827506743917363426837251551414222023003699248315091748429036564789582059729668594602178615800603989303967377267123614675115858284008423489537729211770149313769351196523840393781244822183693759662142236969931505874816981233059539180660239351663433019727591278212984188224228570046610780694157273503722738404923622649218881780386522395091212768381059153406320836497533505995974955832267838683675602023121977472710788603693549322755812802516666357865721907078399251065627748790186346549550363313653866069455092389215014585483288023470107910121432134250370291480319551054750324794133196435664083684312738899337699172341307506381870794440188152758948135963894076442319313151298337635862266316145980987337775651061803096052006025519919092930211149912135301587034246409251994061209883318568365157072716763450598135668220236233317238482198116094381666716433444700658526351586980759140318222820038981789316907841763593241795010681701076344247444998382019592156453529949241837405348748929445301793856843615839517292983022950847787488796042153898759230112452442431229158636227976531433793186658275998402377244050801889651363528585269904676987343027159426002001201487252304576607661736322561642738878954103772493546016214154145129496666307600099856530799030423464165803654773396777379303805194371943380503878177768746285491484767413375436969402716930404280851586260680887030246869693295762925057914936135063135495425553177716638535016121592274912095917322638284686553196398304990629304558777814664478516809261910758424720120669101462958863210709011977565387626339328230201734355359120414207272870680028825546295563717491359906179673606834381444998242395230726688282245416735966870213417485782413112895975046062141813617553506613965998372056661486690966954305418799874836611599404991145325831375507286381065397325506546532717662903090097032143177445681893460126481101877901911236785451554320264271846352838117933900098420353538562291815065143209477361453445346548762041932656344117831736358630664921872280702970763325110833955641872494499745633160272575652532089186135692856528735374623731397967618228168847769030951083739468717060539112277579221650867172846534842364218130342263120553294068732312955215073843710595428525170531039697712235717090484413669521923427986777428064238508226619063964146268726573614686056034650017699239955841319122956031643566625657819658059750014054427174892806310413670593062795204947053592857000090697661667589483512798301243792685871096077241903478095466636884622102871746073563541172353833962675798571010671740347040946697847447966744199640682907868780345803927003873693843914090529592663340886303818693056167027900856792017180079158702485497914209913004286330309976940397675446535342011537552809765145085490175793949634356518099017571242307822228381989823389968536045881827236377903942702512669656287852090466558383324780737498655282373988017568639349121726169758108068476866372883670677924848425314311523911211796860708787778180968610822773120747028324077320899493942507077104469698750254251396860174477243755770204650930473746605905498566393662270597288943086423331277670068614309480427587523887034393763482003619540271551235455879265599325958530652927241629259844142361265654884809251285270237211277314005147491815940079174669815466296489316249508818636208145389418185704449240035513618646656658131885080620091566815550004876570865186389089000981085841233394846897974946533067569306752520309868381656414080184130536133926407765851211627536927537818741011462622081652001547626103199061376353933699301552162441730370504328279261460566471439931214973567582270424104758949254183098636908905557932564677421502579513313282437279121679668311202617139687610662105435197742905198519243554652299001387758200055721210376150534133234601240242561030892889077732170146202032998145142352412830024036400579221855988578850743628056575614356968111366257986094638899661768457768584808041633340038585679036251252891406441613829393334025903399602016597793740946027233386844569645450828677276079232756138118478691829879801759087791933943398804362668605449825827162961851700628030191423551891306346747651810474255477365686086111606487462487588426168122156434199410412166670638487744558162897487893697869406114516269063210058891210137514697874437920316068870108484027705839142573110978707492414643170546393917769771573311188325302075441737228493686347776213346914300080873154692106043639475071244512138264436556074034600025948952491167732809825659431057306517861206551040280774377236180409892794613971915060686421923398482232893867458107302561403808754397256777763097183785477141186267869099469362151437389813764565931878679015045753365930502852948200906994705562885847448784459093905778181032050676988651410570609002292109311381111784873713683198772005515471460542779948541176973160989912794733298377700650104054995520547837167493420765354170164441776846809727462804632252767834656601490701370551512237169761508022329968844274096258857610112282652432123129199105744177463529776768480568514753517969610491532118486325805352173601009816916582923756188270689593051569399361056103538312493289732301541911962069320153512894802647787804076848877660860696063921187207386531790291681976959586199879356794477802225551613261387754942360230846172259309235412482443165760277650691488313390207928038164443832994967332012640196217420367641320546943787424224499029690526358299676183603504715719832958365692165147613909656808129462624624976564431951107738230574652021922913728425205542241185520487993278799163726959936203504277277701090069883027004719026844968581851467813584504376220183221733834190776181778962995442505015366909388726158252768461501095819962791829387405991154139037417323897135699140818079912383867144897395692865638790566492383047270749162294483582229025181502240215881357940057747787736856807099795817117322621342090649791454043189854606604355967598047323862682306966692257087237098189140261233489312257557770711879118860167741768774243393287720208750622092054872956553295491690121881426226924459781022216111906942741511047816650991077329427750099077028110782477359538756569285114609557534541524400638965029517976900819429806302702724187357665356254444073882596228443680033684681443965582656243850230057426492742932358234249913054789111613123501331041996629591755302702047670873064465100182683367957404878850971925178985747683195838931682017347184789967828459950324722956901393750553345908456711609336109322933600577913507576409565446742970703702934200646161641468448844648466922046017034707835856111662728548761990250165246720968162526493362774333542313050909283459052323415891898486179332428269381616307191722241694993321098756429488623332235942294020561696859240740882292799413424909260297257546869600270355995891376498533974115549452931847539015439793530910329578955167804072284000154876498761580836649745644865451024958484438725613511534721016457245382745969125338914063346502625802740869927357988391318848132279179171555700860431683115837451900213131663804511104286590894897373307919713248637692164270285015539433499483460049290913647474782030009567954425671313986563052768466433854329985752762612661393839781170720299346547309244674769282785807252824012363666383148672926176151332597845513801584326369766644402395863549757739704550123947979872609387077348648483394219555762419036077020707121701098177326929631509603574052018434714302634123824535093167492447378066692885474399320502735567834619052400170009060021965001925096335965410542002004278304049321836320717192273495587680111174210676505379989329339116136543647487464758956763149959406955673760606924470149843764602765694523175985357034353488651916625026208485279547628577128661917953901514337065388313554626998759606273733809839299218759498816351728842144946035965979479298233037025401053887699436571259057343281137457706164891163234679341019325907364213168823955786665837150869121617627064098333498156324176667122864827028732567469075855347747389330908063321247138923620954256028138679222420103774473263046773139340771796711320832221824694369289086243210158863115915509613556316110733489867825141935988162505152744415150379760086611893369122150009032122738575225899318379936292844739932392095595848727552349236991965015900437231564863725921715268324473551232222031339722900736380446212391501107525217853908657039916730776044731998807584885352709320783514961785814714611450842560814359743277544030431701749920168703309281063749046358542021928078131575365185020218098763971272908538897627639190040585859358769058195973916248760353089933745574337570231407885427817650190075379269578407487319297294497380450685620992903237855815331444890774812075187930691316228638847850750193105434745513418167389848563945630335787559071016108517674170633484002771881774017308283206337780004699516328659395873123661421411142987619209070144903176056090563936082863194095111387630073804160939003551665988000651013208876599672280658197158594216659814559429005066109114105878804313313344989252311858196704989642733712546781846240916311193021501770852049560308522889359094234905336422949512148693946661649503214626426908558102114843443790272783500181085007270140937083997904515932494469344309526871251491851556387069091043735990696926005793850729957913598597978602382775482748518546081033933323017076148394890573527989822988311383215904780642758484575121439035378847868376353964807540170334996274290376295513778594154447495432531481743861996660655468939230190332205154229967451410653645309520961748936372080670276773703402010476511239665739851748653327363920064198435471822022487194178201701421023721210915406552940022579845651632880711040766283007215455402960012803653832619529189895214835775175625951036804587664117446744781623796717757645766609444689687095256169828124183200876798582340302018095245260496921890163092501607062678903713163855399028266449705232736415291276691586819363269068571226258803738363114445086514393608941797879569876349184547213790747320208813966440556477574258837514394126227152250543093554863789094368061484622597966904730748072519360893343353770102117836330006245760781059443983823138385086845079967348311471478911687863116960692663446425697558032082285999649930301883855510456943327426455904262704578288319910894627239509103611959811518486184878073497148974514744166900997270050251715374200085237840334923794495217933213294538664528436019621073252359506712506812400918611248965426740980324763765425002516226076161249466465256120862177785129632952288224333966356455896912530907140601488772541619232306378429479182179424222641092473210378487719574579990062720444628141692246053265079241824263267886825021208151479986527466844473946241343457889345416267495402871350567178629455318807886572123820480684910117347486299803925808590652934444324064620624469674256861418928313173381862926067904295921848137543517990789399895847584576965743913316157360618393813379888407235489321165064035410328872142725363263087701265459422564207475326084196780923152467738503399096863592966620994614606783020648082785958829456646636490887795297733874955024193434496355529582144887784457998617248067607045466155684419168065445252434070173963011554429947984570355519104800291335863425684390137604134841977442077510756880242581429683751106394518778120409963408799630721372481182744783621894152425046810982998891823181398380591967577456455744899918164974266577598951288085469614554442649208104859691890643573741185810275018602774166917868941149668072553285342653671228175792015792778655441261133432761667067490573476739277032550273536765592754087484862351291857907291370946450445575649415071105921308178298658319895676106000604147115399444936207152324326547175125558542220543496024354825644259771049462001100694250809126701619793866958655348941047622541248610353979729733099668857290894076471071833188558002980416661980023675560253239014604210335986087140962184404584040394544362885034977832485535976051674654935346020383418674289601042697454440370361466206632554756390944130582215770187058276131830586102699091074741258122819585567353853656596228003207076485019573426687191015195938471979037921071379247030930531835045463876993671682649298513596730633187980197231043965876547986698253608893648039376373905576623465784286420955788710366058943260479114518251913593426477043820171291004291315057276122788929687431495330867906131010269290710804686008894441947973258530085324540244637088185579681757479328678811213876945431842039536604086865652984348960189148354362233630709006377807742844644533845784245507886744367991125734871401165864976582787638358250850999289170854232113155826257162270372863950297346697969267171127278023764449778340506453292015023471657681475619019923968748941728428359928906286321182905768496183648188053815103270663762029349970421137794774252276036377632471632242156979255824811105986839346365384511414325939519605076343333959181037161511414154061574764300896730993406048160133590874600535715425119297266100479859299587472605244405830116085551963814210689688019606219270840072611735199210323431536737374207066348298104997212677216188216220309347968493083787339926185342518532244759070949900732872298129595713681754592612056110138759790854266630201279520833023483974448389468463336285897933654178639425872281389500318533917053263840854387420413324202739507607478455163925545422388608652699765873010951543957690105555024133752228936534821114627203070403166338648495662914442179219844108716582662326546012468137096226130378330758185529696464380321980867675206342273185985132468130521189993346524793940430940050511762433960278006157736709409967443476195177315244909712255805826140899299466271750047504367341677657737718261851203567482486801008590366451127135022216958293533857282527032066118552567488428457013033712133403717399920278844315035981977544196939918380529907562985975138046416170976949863996783833452779347452960749545608057244401819153810422432599357718282334515952415085102881779981360090325039074404020179903587999701834313517090743250852973370291787165160188166788867998248744198288451258964422968941461818862745710385515743533320880031312401084428083003240094307275889899038235562290397479748026476097885564406574378264482636935648286051086681787291844971039471160464300985360329555560476440328018164427208033004239525331177942919859826092093311751631280267684848721064833791079650399295303253185775206244992538321882605435661979921068773700428141031666032953466196095895671109386770033703828368512956686992236412659082846406890693646617492077304950406737905218173646269089831186588220913808889924813851563679193753643402414575256805073283963959626699721871824525440015381319437136819704095475839374489824863834860906406754870172001175441172220122731152426215822332067029284541773553505384418742908140884887726778481830691100277866229295356554768729572161264599135427855596124857456520421711637372440227236683824005525118515937206489586786516676985432454859961946705395423370442139710281669248742444322016003788642566862618755893139932285263865734133185219012406385650176888288633015849635328229244966889435383697449681053075956158694255870618329167352079565245933232579416717646866551288562417669877752860477645370782711383110461465618553332590014589791055992610383393580920441235862036540818507318721790120951271076502091395537634358579506193345972722121534805606683972421197896432128516976949527036392009698307370129747652605831581712588638273010198554811657044070766799575883305044837112023417710976014046042034727210314558936672590523067639492962114119035188979723648422790775405942876866962688227073107808545478106257976920324410918246401735051464221862242914751280197984609762829077549378932966749593382403769235424209520133874684389822162466965453338326530949196511662200439860156915891633943661352954370387820445071877477026131629550113026544971860172321242094266872165985525910960287962872222336450685240757889983641669867008278169694988392142074816445383336639994585763630489715222067694353464362429661963831313009641121475363732993359206388500523250816906607106672163203457738326913668517649654346847795647048155071043980304426382452776690986924308430315441275948454698314157701725746034981648094580577516706746039887397315588672786154074800166583812884612993914476541773989422370430545335087827071196714638397326478704627622197218634739088032365280280443643278651746963383402106042843669396540372779056060827217864696628534983606901946447302613917243757353605446898110418351481336355238454281334991015118429835412233228715298665122948339795828761728879967910227193303697424678775951602414990572600649235531826569035908636457352920310069165298157928517112293389848818422885351616035441171243353073997301336340756599252834580637479191775840543608234863190519704465042158162594724636508291035905048879398413411850248190529866784432937533130325262464765985647015710608955180867055515340893478226681322070469643164805658588600055600641501431859813702639913549047505259610984684360819204196740177589774402521969535571635250931328556774180050934471537721189608299183921514212756301842660212569189414647770683081661502340937214010058637444639114133059644842891247777386021138272742401990182959811637858088177882857972241414000393906470525575268355031998878126879519891828527146185583359472563321720457066732597980148060810345586969029964059369690126156241980929640561259562560450643100930314109422660577605881847256870644599238825230851727912413360103560400541366989446620507106218601044441761415308963485019610720982270683691333518113206128976785583127570030501105595798344519613086790877276467593677441412519994248312150790079566865542219100886895991013073498934906096483589763414908473383043134856644326592930387779487278500415164518243416786499951410655991247340279098092615030893582140782628367765423930697072741931256053355015059687950192349678912629948010295610103266928057036318892001279117854168035083374825365266458999406808097532485733751298643219764399050871100027600713887916331002590647916816468254761246782726216038294788491265383791074382987248651241553724319590589534125294260018422369506214639853980525551359097844587040324011108057947405851867544490579243393796865630999923913678732529936696396313027899122641391232458969358594182912965256856872262803456748607222200952625177625851374162845144809534138835342395283588229851640588902814600934841192233505220514503537162395237729292307340095536211160834602303419234566115569052748307840751268857179440092337581055642911077931349045013817313057042944711038747169582197476983611732421532864763475481430720915411166268984002266247951286464284071111182927879978927236974024880246520788486745993834396385057288143721915033351042348319359282915084886943873919391731948340956451593891882143724231867478238575016602101354814964039920266502294094493103491071215292254035871333326490834151991244768858553775672021611055878247143952011685191888179504886846990099182612966176460048575997220570107346773178088327229989717788484974713176204972443269248247938566741444769758345889474992791159481445121467039022955878211407528926683237990119724837326653933096157934427155589413764887636251909965234736024554145665164673160285520595241534101728088370283837535174144907675248597154951788000851263998653433843990915823249753535403143570330176001750027487033064493418124416905697983442665997213607945186085196909195600811430229522765484774852455529356798588345004713395425395113001565982792710060263764688747457909719749117996350532638360332496300209421400650506770689849336566786585544672697644946653432600531547838496861341138003525941950534171104748829735378065033427408799569865925502908215826161993017391756330587889247560506801107752678512916711112645227072893113730497715016238617015619951484909443639860660716439072085182850957656183877585674157300258182205269501155662832749106494029170417697370634259909831283864308783181162986138236065528606008289216916143270331861281457620137425074754346125194560616702891135682830351393277542107205641602707753043734864997612901324624413100315425777005442401212880048511161050039625640580418932479808358462512542614268449099957603500038474286733989825568179006219745594414553862079361820186847263230868540338036180875578742131320904964662783435334656779251738002677102061935296280974464032298364294799578971980462433783664907149884456338416007385623295663835949679333994654782441981693686529719490257324995097195110963110478896938215493936281594804709367592171304074357933986024453085835945779294592261325282771297124494883237658196874486482242060504978167952574544150650525692919141359869534504804517294369042859410803857426571109765825486287192078006265666425939162169091411818368379668366983083241104127800637654714637208741341095173783601423036643965222226210163212812328613519959861216340906386103960053932206295564732848318133899444422428967193794381836830732939420823418096430149120504470301349285575294107035533583901261216681361565641081002114223738137270799171287794660353869878952311190589005705778683737047060867204034540442886807513490258185681258665230929445263859531758172089185656122291851221873128504802102001034137672742880962503427446192506942655104868536096332472847949736451295724229698276007278023031713027813377971703191400454107203032606200297863820836681495040243353036071124376665932193929674944951364884030731755235145187243976136529184051746566771355276061526367204525226113574217662054224882320833740782955666328927684758504000897202397379592400492476879403000717724092216613863155710793304936692474236608110828633840769165715376219954790555174218410648485498318653662225028384149634565296459755638109425348812136243035990252457544152170985880854224573647892992257357053281619040837946555586064181822720318708547541874231309389141668042278971964005582454557977836809747516862054282336931320887561793281642847551322494596695457719986206966098664330721132004351377664729930489086955182664481499567183495858053295215714571181888509487489869980513669986303153542002442163885120545559802489073891738100347564863567069548339252107243837345607886166860451781715136006071085791296325018681642339197633770660778536704290263816421735586089236056202657111854005012784082806538852086922376387552840017988990283239840647205230052685032890040462653763977719186171392917994523064090155878883444487113148488338840683878663625661784635832710747906298011029252145858422802786947869509679400973345475174792963936587420150714343421931206051613793291054861508147403298456090804770997637774717205372313700997807953520770982886316901152964818212083934676948197262115368639670875585237558075100667988979294537752952960688869437842060969432181451978071582826340333170497389797611135481339325080587938777434363343183090616524981898811845100184621108034441815945896236225565429725728641927979371806238593603642049963917726255466783428508885363881569061218662551969255554541172075492986287978031868434949377870164824674347203404794793451149929097079041231004536002556794853644363104227639388921971691401867221352436689395374567458635352948295863647665542630053922704209621853121138045928520494175684768569292918784064712185020316484835911160709429782000883168035086326390970879497888421107338763374580932008606482244258576304550095369468266266525944592607732166355154343354627451747749068286333310735669898138385039915810603535536367644009808929596143981445512506264900724634535526981398810802351062476564950374344322224058273497857284390980212210113316006080093898737104755339337970536263820012531315127380153949660796092020443339974213404840430563153525490561419041528929625649325702855364835943521466074752210648547133134945464932604769701350159111617456361848386785327714036067823966399471388324247242571795795132991273585698292597274229349573549780194545255522101319274158978946933468974909866836516963218270259279081359367979784112652638780145014025323720237497620635089748612320652678271264511300416868336463082567972553851975960845960024125330756010141057150034063767018202077500949535891319280063008690548878382462870137248366625220249495154885676201526027736333399345517615793462948345883291850528030530213896875684872218224832483081809567056987625385339933397677399566063789788387672269388924758490507990322143781981400108362185667693855208278089023238531609117081386436715465943431539185325522244588344264501406010447148776341077398841959146458226334170600982775641733731806790278293892755475229255689879808461591561678547046906839264885661590246356601008777002079727883559104404474149631865535609259210039859638771132886609666131835599665558495863881728435642280662971936643090543315949413407180377299751536861775325962866795354840349898394184557561394313881486636157974492695100047951372359213749308579780047521880867925250207116998385567748276566280293211518474237444942972040016964932275110270238868651784707088349919014566979819173878180872784616101030317028596373746396035932812414633687792129425896674935899993536208015523597254636569989782742801288355180737640293855249341130995958805978504499843630531278074367693438778779322842831068090198021998245774741881748732942155259610147150585693828319244081547022062250441513002287826168818834862648890257288136260865358857621755583657932525316932072829570729173122532424929633029285842900224489393907420358647835215593624073321117646515157098750074484086403559659379663399208264105072134393896814335652602116544850646194268040190801265519891665788872548704543182106627871756035956316916767007608336651777703240601660818873852584801989433486290331695995419703809669666955024873158790835696689205514839040170604894038362209260595511731142844359314327679196489905643059063032222116710566847400528403629220326858794967206584944909775578750985638390126481473688108428404079313639128213047740965554629472528149105732714206174863525621334896872350022675424600227312069496144283763597653753152453273151526577527403177695941820088840872963377508405804715813217436543890844784068072332433842673127597873913777310256544801228123198564932174076467361580917161972274470065766141676215996016348781959831743610148789795605782640837073662033819591222357286582308978116159946694027773293643758887078192089348659490262131375065484393784467755503596309793861122042193398796839391589259196851623122488857699464791675305163711696668641692793312302001517928671655037640232340847363567825621886191175229633715136901915881726107432495963726609354985440487568238281966927573787359760832064698982365281083546605738457184185338784966617335841487060579849636356458942734248053230795586225693638327398159106478690897217834410044002459771696295688282832335624925710124539736795739701798203723637314084311372555543882680734868332553506249432759644134222301322777470265080116934400372850452954286812161240106586706134578651301917349697089074930486726989195644669070861358392837066856340957388152783323345749191195746263208867643218426220634790032600181667809518112344962811357953602397234927190968644834441083466316818849926549332201288994622887069420867431142078556577653222339674608301677371106718802209108211131941288376907282174392793243717629829061944877135596742242614376040168238014093477751130106985000222524553838949034314159850368419828192520430659902852032192628367634803762212445879940317435840128501256634445012340487830733785997128820525153036441554499021309723265486523683594157169292981316786238679895927373823862661392027856666174116328993291424390238307093815208676040991053766371883623621542464200119570400352433232446807793496456371921428751980374827771965356738629241702543381217156536311902668186847227235554968261882009668259126453753642873751729523284105457884291655344638689144607516633368735236946628329391001831964651585595628559221568240290042353854271708825310149943384030751746379177829562245049783922434298050254645796204692069918736735431391311430616383249122396870040105220472543305656047397701974591289699061409441266975532809044445711774372999755980213532722930542912489179837004846475493036894041553702719133473720342883084258171774607608542649857021616987661323578359949329264537471703782701405268462733328287232791186638341934380589094654195136368916841393390618548383570003437517713432607177956901440160475426739858362372049225493782238634579635922051481610442407884138709754614327137497498893456870168842566004596473158874616261154659851553581919991424312329604219895970905742941174028459770590804070664154107545232613966655940637966590088407353403397853602673815256396982454373452408059491789443412672605114956682799677356378586499497167235336963628108824489374771703409498208777551429238346343656433825835944288505403109136522456409130706408871879226796144477264997133810158569222392685974979113670928430152626829043145695211307831379457227700644331232139305564793849559776002609856740152584782444201690359174726139747831775483483666597006387164195113507413718222540625897334837564857443058201762703016063611671500401954222615872611183550920624881914855584357898287145810098326150937595967765608983812105490908658640828863961811976125295587819625708839507148248033648411100328730225200036147946751350651253515164819793723563667104617840348537007374769468910656118033345754685859999071488862080061002939040814822500079568779584055511375470838651549389274001583708537629007657812299969034088225727353664425488212246665711206335211959558057474628158886937010758782256401969532032463975507836701998718029762394155152082165306203499061698339713332335134752671508086326739793828116439150380283271598871227531764816907231227879540975100893902774189722334082215334952144842291648452686984909270857502608675907838111733134452466039174586948272551114522254773905502417315562419174837303874623421020896239821074906849470907652384079255587897350923364484054468225238768845287486734115475541209274654279162928505764410995997627383862974436527159162049918120593459830437799706926278759443173549442762793763518078885164691798025036328398083357681450272455347615132362515677622431583070480833930912132901803519434578986922719726241742708682340817735575935663475958787515316185763375033516385018888403914789598199927322424199509647378328011598630181410393981265070572891116846856898447839388156354419336109151809466653323067452552951848620383769609942567867594169042506396571059365729237792032487480919295906937789609422771270439208956143668826071900744473015736414019647493170449081337952741782822806845845250899091843226593598672327329076799448351659994956178480366644795035171741315567455142936161338014985984156482749112464020055206521188008644513019066593429410112226166492181749612506838715202290860420328022240421367067090830349968436087890929035023008082578301826197015542439040909685399023969260899541497164245886298530850834518273259273673150497064422348217662268366642133678239456761163925780834882609177518527914478247819162750455587144424907597420693302276985788314590058816198938681040602233218625211981731614021161394051210329176498701815409802677003576601856029300951683351086777951037902783554175701709256652873809886746712693197742993029143651420074087621260706489441980351394532961596846443689831399495836236720989678215603917421003071139967274583277488329451904909977207589987654366950938216724604284091135232978815623568660296127443481365161783218952999565855391288016891910891907023362360295098038907531906112498940538811797394557946289685597428457295076792990473001364269503054674689920899899523609966007910653165400775287151442657622124650753766722628539564178324700927440106910760550418718771603907346741916793598594018008965452645244020345667990331060797554356392797268224975254703871061470402047186754619712019847490562061188709183178257864809873318282364790777823149663465626357234009044622219355692458562881035710768765109923505504311370210275711987323357227317218862850622396198198763871751221485292505605210479813935867054538432207001832689997945225028406584508109312748297462951389884744288388509002498214398597946846947432892575368297689130112886158059262330022454652271541285780579414665116528267399190230202247771340460018856801927098845223750435838251499324518761296573261979269390867299192912646792325313029356992138082376940109667327730039306848300848191672476705743952046233727786735935004787773624563440611925840341884367724750744082740695304577091595377688329733458041428401951183935014281904837195459877477177724830556060079933483558721093740952300122214973897049061464686346732351146199418011064469842895073176717530696606124402001535324310554368021384261236305894794757680050683823734468886386075041649748363305805070699096482927329962306166515262581044327221525331554017870161128922086890104656292905116207023249124819691720567622289694008440515528456538123033695790963355503654483953761235783687756049470059101998914246018668772827644558563361150049804080447718855584649070433498722826303698039569201495821857867653379578158371288661146353024810707803466618923460552029194053313746268871953810950273570535394348597887818708455016327503702228049674767303167977579681591615934098277051764076073468056603105936850903176499825608953416918391004689330949223844608812188898840390973373271182505003423659372441785846902668225427803035232581359697223417193965660900942812440304782191668623353662486780656741838356690846512797271071330875429513318667013287342946655011128732174715310897402988108318443119212872698895994583213782801661920804879905935466750282884485188572401486585639311632604356330034952212352985930814439260205908727592691392434679057252844151473565357519976595156933698107394132009305707345810511966544023027489387435746620036182746945421075811828479248865589215438324035918132502675116830128722410731991535456646322533276516908048715720397708309382336316357053008417051904288949051997536272420821109491109478732309720226270368776377518230337497258611886244478114589232553089404336842679482987503217813942678618943962612580581012383811846465418341185239121232736962537278698238767644312957774843862651943584215229638872115137188879658263360355850063128588308350167812991226693133533030731303569862078856047721820431474999393213810623561633283390764269050675258898338647925392779603702884529671888904426993365801720372862569978992261516040775723192065010124777888117396070800926329353024158273466576982067896510555010913875377237140363661330447008667396823936990869886831325138587292981814181202609706549950658027369511203537966462538754684604371732390835898634304718904445762170508156145851521866817484094800041999653751486310891975800898193041535884192601178955406538297956787383476440167743010441271058055470698487757829315443116081284876462703981182841884079652865471901844802816020848164057727610498696569940404675575509425275837254626762117937724428905235154724734185692801355678701623087151390579612194316451511176325104840588724352275002170039757074690632228571279328099889414190990840483424638064436003134181897028336288832332885478411042996214085876371677287396065749940944664155240462098839438031271852091711606438795570127118582444651395166308065445028310467405619677477276319466086857999703202164912137783389245865257359894720608451998936395426349533860370188827938094539089760729882336030680804422611252952228364688914881858412323813846817599390504936426745834265330767545884326064403339407809008721709196063255077423945262204489807618896152588146020906389157057800671600742517840250444243290328889876715000128785454845180330878526594594980063020551608821892456978945401941903077532553436486577227098882049127666399207420632459127017917391007438036232444095922016515688089225736326555471738130767401045797439271175738610011322350193586109744996315731245172785495874758521645822989269624569398612115138405910952204632063095255393204637618422630374659823737959871459866691891605038723137790090005245230546199803142927393844239311362327790090764481374253711334196221721617314388799625052862839118763352033250090975748344299301721259523472144123713453824403256279316254460178819015934222905287406930953471436293451647426724792024300442972308119317708430068609627194793223323509307697203569064463768246732950289008456488243997230731122221164531522986997183801530168673940415392889502698585073178875727377805733584575293492744414348836164246200420965748741736783818427743977427058732856431197245663348010346462435562911042414480537061285841359882960061586738601374259168150886714391825180048944273689920463909585690743922527043927690211772167882635969297208447789471857142280981370392294896569444582063136540210925128892519255973309335712044115557203249992771948405019472242527523649910350109881724381593658466418480410881685266990446761860004070498463438241304829921608886545178173405551979650170663126118800055823389047330940928038579041380445048768099533165329394009263072029434686820031696149801301468062904855172896868033768121330201467594748076657316592601698384657697213002115676571651694562821427164787640532338136525708302962160247753005791569980863533961744494515670487527952827887001860667628659071165762189693500392237932351494009306022360690958190456365206839454898302436476406532910427862395334935632641421808567402415050317262996441732318290746156660859175156969177798612964610603140108122036671857700375275879368422303443205611809271525721010967910881030537670397541025535788018192559493936616575655050930842377853801392713235120252876401168220914481737042003869056792377203191381835526726457274755616559393717227902353935615565626663819051813199017768707894453231662173272591111972514166404645994820602879012973506466102353799713046143314575985677236083852020999066989810373042851414296775413858268425667216888066372093207316118685758351082517761849810862606212846845732934788885678890079711676151354164349534075539735704178785094187814751284942076720802074882866792683764490842186429009250920393062537054609594712990095400021594579876736261767105635438778415317958927705257606085405559042095707128993972020106575939667929263050672140675132341593096452049228261315708787722674277880151363672773845045046934105881603837236580303542841075238498248067970164418183412176051455562482860993050513489535856070853181337061954560761142769624987424552828574662202834224935222676508564529704785354445145836756540158196820649929453494052573967777172981967144719393801796497622768445895248634885984745073222850829471354125272861813868202436596848078805647385362171146533815099998347743858443617077212442910070967811553918386363329394171176996300708802779916512304024761641897929764570152343579441668222600581624414423893260459564031070945519204507527869006583167034350296796201683667912280995328851086434111681585933565240891608592606321749508711338518520495818134368109816241596940411900218138975062724101369382147584128566868500054962263198357941479361626060840725523845109700333978507422584286420435614137674041135871823613991520356929165184851615827470386184955791792588931907199487378300113994200830110278543373018506309342787708898948588393177753890046479290709002681651036873822564581736295651876997736998831351945844692308206616307195603776401944173957928734927427370156277252804889647820431010758173856805179453820153158612981781401544577950347426882827216259558180121222978825439096731471702173520861767613402392371997398363176434351382407543138704425814245356035891722464355352175155983782025435368116707414456947650460478213515581309642963390684072876423508206715824090630312117068095302345370380687182387752262656072997431797068215872625859576133185096993795885755769413083691020077691137811946543413101853208223023976625747875891347484007273144311804967653096343086694605768303891735945505624823901846350827432231754375842775167437510251835341301069602916445654254936340317937074709215186401058053147098809288454478900976325679906241994814599290007451181852303137178643884741980180014784293209741629897623334005414172134030840672998277661817381956007578069209149327972587592738108393534358003868626709014436361722737945295753367813082620464473390818846983315044573591257135586426009026667129821939803539603466767637135739498399699853045016720443087920676789817567360432157893108183621181194678226932018533734958882477826110863256382632607788855941693438806942760325231129336214498635554823279277136240954947663076812900290659483444446121469342871025101961634153175075570569368122556593104968387133827134410384873178731821588194051444419065135462632115376613886701845837082014548390319536268873082664509391483433167552986950187600011081670171040936961973983696679096762192674717160182304398614578017867235147074730762906153542823923663228986571991435402678284428687788475943328744402067930014792289545733326075963558466064059877108211978067045394773544380642478875396401238461861235093577209962247732599852558280446039199949152727283169646275084067420400264861200640744490509589047651366760697486044399568802044165784761440415868494759378112001802861994228335300395630350013286696491337025138187761327466235670523515352675478282539547777375117284764020843688420432467624526240811845225823312812794116659536977753004118504526000745269826217035687866388839750514015259945010122380489571286925637663697235247652054855743468124733864688182720056553506514647625905189875201406915376392597850935917995913172319101490914952786170712204912041537250599736872319394099770757634604913714117560662785601523592201755862034702999290431702539394757244726347394826848153480833250937891557676998906368072506367328488329018579402659137292425811681142266764905304770362116175490602286358397038459322391323299131545047922911576492042098517325197526227106606119777907821624623314740013925975352521858785939744141086204065868429606681887635926737874323679339494077472684614381498000391413620198328933813583219069532287380900784827595411993586549274601208192279297859578640784519988958192618560337703860149100315154587169912919422931675877791170408391046686280310830216014424757136636673405235609293674149591918544358505289828027055510240693009573962512880350331129631832878711843582621336992910528069059267541780935004636646327315326891575717935448544342714951448782944802574525906605013448549380983747142548895837895754148077815323174467262404409751787851963527291065740146162281422541191627346105130852515363229510885918529645612938507076943360998045055979791513350609747728107046464984018271192712314358033663666532037342847987925170959923185204205717880606603200529004245843200751005627881069875960969962202784506080903234089992356942820129499670884010673131439602996582295907638607488286180024782685106927763434495296903298594865824717094964688030367224406703035357544696073012486207629794618459864944776354943497389027275646917469070236483873848319992543237545434576309915521671566024040536922359373257041711992551631182795486905273734636819901101191473813032847701726008775122687794333272697810286706983584070946897398193909181206987355285189501174664535683798954081701568396365716313092972907412944198842098857900948550413896566534825172783541346307601418173799169838819683534884022899909296898263692315374157224428209414840697012053227020689688648384033893672368927442376689999504785182618923276072318244289938569462693600413468326136762901364818674505051070266326398564364952274633740801174308306576721398179958640769160532414548817568959385605878450022776972549016185279393512586867506880728742129174368247720952231288165505708543272583441362633163408509809636045774932412006868941618621428617346814060971613074040170319526543172431184963544227006983504342256649339965554909402118656926640774138994864258548811028771056679982626739489453607585733938971390189259839436982567897758469130181028578057001269185804311280814445394213459049448645270754505852726007945560451192302623073630171878785031985111662642888013668464165391188605927690964824784999970180555590052031511734401088090041758623331227679691287000557894806630484652427096336374125733753524051927225822523222408649483234071771024139778051454208107724811765485998325057405430343759578020546134127231467210850438840294825850825606015928160973451915315741504801382403475517458387677638460798950155378587722836444577540174962919205204615073861329067636128074685218406710783841495300395272433278120490222067480044929647666110798134667310909398432849767250703050274108287622297240139107782181601447080632454426172934550984780252626033701892715458478671888577775616320170758269625746658062074275417178198846012764864531153646214560384781336654294476665150046105898502499349403238689290243397570020717138769602686281099973335317081711865674959242461496564987399041098470635765376480234990710210074937542460620443050489720581804935664940117614573611986003332606386833671825858687027556453523890794926120108758679454004646943038047237187681592782578878131268859641081721464716602992066946724269043043533517501964485417690429425746714087930024676583540377835517790509174892923574999720844680101707502513974284574579589073906241338937842478258072990938546271847268359440419731004921963970510137886148455904483787356271438791562037009241112213299488168542806984799617985555697792531645055509918756435885661511270708110563554732436078621010298068933884673837001095542817371175135848162647953225779631777177481524534612310238635290559508677688579655178601470977826338229735769637972940195904668140817159912364431515551083387642335841627200544188902777350443399509009954483999640812050911012648276453191688546283016577511831537750177837141791206944035874849101682188880370231798530473990685146054796286389109053829364165514362482343320285789010602597386402907859037875735894954784592477018720708276410933511091603435248179412124347715897115878182586169743982256434220274605583324495128888985262427475959534661317145793646594967657556950910171877576269747822574523183397546790089820950678266178458306876852110918974744011133889859196711366282053973444686446433954515324059467180193939367817443000420596387145710135506062721799118900508637760006043436584096993312839571725535579626213471456855815776624259328423170908946635323042695379202943417396048176861172085447990478930160815011832046609603585520793926391383814989978063213309379740499121327210552261839173375948321787996448304836551375594255025114964567878166543337257157263106042597088123008828070793329267832047115754538978785150134439762419520543534020137927002910741879721861295851001099170317883118823962357256567534329443681215188493086771692838996205616626475016935475303655794440715491399886553007647617089472890309517343311727838419517919638478456014099975305713465779914677161426073797128380065482748282517023590114197530610371658542493026475001803182243188003473335419535349234622838964387268669592552776080040793978663240424122165411141241738190463991622275019748448035349691511119132781083786274827368948779880545300816120226740881920713893241666391074812769818328677112058744502153916321173921705280044172600435617325578699047606413305238356244698289213763615513537095918581313236870954629233921518510874388755349875108616789565364384004634426857815892932898584637689296192949540316777192449486134552295389537412923728317972368055324275011471941434100453306145873306916945383873472212819063800529270407303610416898489812658888611435890702989544623275226571539547180074456384610510505042175642763314756568645664853680499278035796180573852264476462880378444207942767363324337044916925276884134315922471989243880512312110504921755369585575351571043944568282085477607574221523844973643050921212769512875517847446219340786313550313128036885081601721693468887612530643164317992500654082352205587437503481905609905067821914659342299444474519245310480758197664476497823348800685996527925057437998058019888841257299653145641510212861960705888767182308352958011378569945735618381887486006980030041386237014200028949844041088025976595894092418948130866163636003708618038589569132085853377386454217199411863843797337606979307277633750028196882670232093113432834229243784870892790559324239792003479693055672824327445418693204740267705253357437117415246042459107238978159774100811195479776411639784289634884458275635919467916402515098126071199534833713799927456105662578558968745796810803515360301184547331351631895217034953746253954485964762010892863610657718493617328604729668845545883857908574612839506874565302043031141114329500928014883717418751926167983469593797209728829108150571636732264937285790900813978868569715949076054773652362397384937178411879820473916011397127691745844393719394977629469008451821879434484727627103867656796584185982075635559445001116830656968081461034104816151273460173248976304412845706515851259754422986559681362718802871331835858758286560652527027064415860858701292112567748202755654679332547387442184298011624031786058806304744624402585233777445534550824018243232123502527837305118602837779838200931413531910077915895477617924974427386129112660857341540937990496222981724603350505216489502929855985445216737629960440160147357310077746483016900205100617875297028300823002577550424621664514665410187682651124014745990204567828977483179029866177577075055214525200705295047214532756032324273978717167461347366983008055697269782741148289760193270155835276556063856328111527304497223367261589648527316214604211780998841485485650351787834327565082226270933635251048192964417308205151948755082884762126996165876749583275968225409191710672970005918558384870632154477174162161690393096467799881430446244898041699228506641886260320349160629406439170858152474407568706104021741881980869976691400540656589442603203454842212926619162507353356318778852562468329225790865159280767456797247558364942587483677193151097091112396235527182878250045933469251882272471210077979382978989221524094695380880009531703269577716919891205650914665260523224368108061530081942311429044001388393656768374592922600562242630802104068539967931757815021331657937655144538397525683897199149490932030515729454433321878081758967071561560988412492265281041023090334290327645835398382203299529347636054596238912611724340693810094651793691389015148952768001519947348434207917624127869653853036236922982073285874217249886651863836542260870539894220378100414018865602480630517550851430041811425549177882901082539995986109919368932251698735684396644162519912410398036943868598060932974320040794417060337361991863214918416458397432536221885593007469295068963797422994262483961864638808008814624596284935111007934051513699670299228330390744689121133701462148271104149597989370975018010368294175998402462118718434033721635382091554752304602674923123296630970033951153182719139637045552435809207842933367440828746500573829783684501570512303806271976722402949901624604055534727746187470637885810288075187432817226615808947797448152301313481097496691951894842830721449850218364871579772722077281132104503450427778427854873587668428969818585315394170068506911064755987345702195150245611138251635326026764155441081308672630196528801050630208838409144767350540224785636693076121245025720988427258398646509871740848003315534038480716863217919884638954367441150069349697072187560011762677259063993269149638954757053846429821384778522012026722439629886648111462414729465323500443285262683839589069853561163386678630796045253237477467403877970330937138549753043909554919273649778450918691843741881932392169622296646345680307375074784617935087051831634026857460276546315387591665578355064176916388197015848566948326115699270055547631189036970859426219908869550264100992551068520251185345245791931019335229197548984760450572593130154093523201512372842681812627785129492746232620743262153107708566095144415089589436601888208427252000178387923503778351633965320861205035634444599211502489612634997693288089308532287797476371190998803135768074357735923458293751459345943612132961353014458840338388228467449141728402041074749143125362550382060797388535858952174835576664427720925572260372813962110190945425747757380000464258392594396417253092452009849565692533769222130504645036119547654383940717046487966261067377318794950636731147284243388782018490235259613686642653443993534261863287449281083936544113966441429403351059904890293312125894950438203111980460629355933847296998013750812405512027833571762627559182117366146890293778386089026007518451130265384274413774779163833951762967293689038429880917467594801168438305785866379716083235332627341032615523039830670218846652839798069206833833607582303179740912478877744400148156814637955830681347104536109986386038922154393268498077528071854002256113963138489931367385454868177081993275515643018485198236950718749717972838726326069413543088198517363165147485703531482251459698893193561256914006124275017373414005116168835986284872532574506361662177684583522905479941683525523777211890817483865504463413433574385698241342971849852197395715624157246362352934364494565496768673189857220781779610571742737069694268583939500686561748503731117955116191506308164118712684180000624675338132123956923164869067849945403505593560886011023392337292606316800628290832289286492822185024844329866620355601798929729017353407784487814793322326953087209774670387478649831928868774904230870731711374323289954393654736444812495998266593099523864488041187433924441847609335838240442365435693389135115791215207425609157104307567764583507968947069920479446698352424773128154034822519546100499799102839852745653339236428355752626133440897481506694090150161126661388117822129034840364125334565141687566050277532163911894220457873680204878611780788231934619483280902398581495533518810683796346916086744907587522990279199013120099011183196421076829711809423865692269893878332483504904177061022763795558431551891585599255841546359047888113352422389952759519774518912030701841769796314418474590821783618271405714754323425384745968502089243187899722340578024020703015802338177529598139371186204305335306015348854170342599619452249333475573911740569898987022031725361014668604971619560008761966323331938115123767320007300767597739693171765979605163205894335203644567988022717574837398296461996049983878362637242790544179786403624859263014688365868629060422424757229010656875332010874562635083825813056297725883955592116353986636163952599694926071926263678567034239407758120961165737919343384493953589615316901265180420293626791506011751765869278381726423577202860542425319563183050653696458660211761347549560688622565881887107004074119070621718332187564668033108299713538301840681936160251194571148915087577170177618168194039245331082767345922308022827944465338702434651253306817385738350030646459797390203470371265508719915980523908488613351143233410148440638428015746517409600839343505828777006522437341692223592253862724094643606083538442220913171317040320753879761120499366794538523763804869094780933789208459338928224754442919925342363867995597024276694413437446423003565567071937551111998359187824789664886872954953250268384794059827663419942473885386677219573320923589702215201587456130041664765136006745060323932869502433980937669037117695877633327242557477956087502502768152308096579004504866555948133650042976092337658352482763155251479226513959473472770452909035094323298940884159567093762937608071334591405145048308384034161566790046099232639533673747916478701607412819092482513596597551108227388138525512218981647362361799845542720699454931654126692903420802498849366956170501855675975467793915588958222676262438254942661835913871279376027908438522763115945704637982664122475251186546371471518144695291565531092845980174256807487214353078457961814969733899934496205314721012691890060564958987140418946211969350861683086655319479692848884989835279734797946549856802193525728486263817616840298118335108272348463650201608217069051089608546531586969044536195247010426893738115515751906339865474879662718193044558494807326814048408287356888317187311822873403561874582389350946370390245402991496641494941043908158435910856215882581773604188107434008939665580768256250734807948965815233921001026833132077258931952142107481220318056094314996632677451538335860711361810937579267632827085788909308994928343095395618350765557883135094860679584684385252475677068335497815736445855633004557857772444730878473348714831989195100831810462585966732641605328740693366483103569976168541497967868369913030486888934593868636760951962417639063040493249379821779558968183751767098498392947012194185041529962095719483960050815000198206224910259621051822576801512552523821005403937879659221511699258145855675140539442398568925000648776398024493027594503441733493972669092211486598347240198391340729637488033968612593624650222030280580948747362925451531536644722428373666131581704881010593446819027152680499505819406574316059175815173588349860457995969500771986341528560874881959919302875166942552377744239770141456453909639617688218382755779877425933162375455037636702634932631415138890276385709844229099865383871356978793667870666196850023258792470929313093483899275643233038806852475796359498768400416999589947191145912057231890368110036163596972749370080432504447964903784743969867214873637901446174069903385128071365253454678669847525864247439284510193539824764816479503263448897555713646112754775800936570720190702234364647946360351404436187979166834156378599631434392682289090740195441810732324237535309236861969591204302053236159358939199497102829137631568489993463877693141327611857312139160168666951895662788338917579108700279469693680179047337616271654470055227047418958642341000273544071770766972989012499145625577857103785486150643006566220170571067336430800432733360877484567068271186118354798434979966130092283646500628624795167727265729332810469327570941920461555068568368998869228077334998358801996758134150386351487373562430613473257564047975560721045621586798399340014789089563064892718433457519658247991207085712533493431669746843171922836102226649209397484116350235316130765765205110733300756454050257443733220928845714895691641088046398756568246624685893937245979691296773355193400997940556476640539850849462964618635337354529922702660474593786091814846112170116385135267841750055710104466334544155821596858236507796167258393119537986996112179501620760035876346281107850857590106441353678718517427764592670893901327214274447126721748794884205643056738040807582235173131922643871409276739726116351996356118513561476029982601825294778064441766211265447371917614263605538160704963367669719660801426944550864803359837439199106353769028557262281716362117411744318976875463024601069996790932132786231400515729772163187104401402595958776265198144906796345358718605770249687089774732433526220133433045112208299103165083540405055801880284592113731404114312382282888977907220176786275106673960283618238820682974660631927455805508393697274796055939753011423534274701581406846618235896634102268490309569205709492417794440741967697147504295382847022763595079003175342016385132239942982107356349862642913747899735564538381098669105522874472284375975668688785871608938462779080023552189301124562677195224459828111284208562240701426425386404793110164453223726606127168324714721110865617135867815499090296322323637892816426515640365855035646489952305593793290237463295839419083041004956160073911723799085477610895968745016235040354705828077652634765571781602757512978618477228994373256020648521443501706671423368814188183499439644263539573816209855429967020582502195815259452958861317023943360816005032419040451079946823246334907375475577050911826066637149639106187305794621868689031716560173452947469206193819030428732442793833361896491464372249645555652792696388750782818606263755451026631023759879238049307470729481070579487635895346626712882726376956963060081265145054977999616034733758498343391414367229289116398283782427193313449623776590979563398062277668522253571378477437820026562084326020637357999203887537735269442112517423361095167958480432302299975371366770203673890688959570082429874556208288883978940199432858393902394777401236491477657680411238760996732810975366322483389563603522154648001572452352889121395102789284597248525581364812164297778058432449480267061209751411149722139244728702388022058646031964269953473711769521131025740546830165436090212476991933554693747411177752137194848939801760156074009222926562028992688620550581193349475343998210796404840037250595457811033959310245510124241312729615003968080222708841999707531869860962346714976589844386996807185024546608238092970756339258990363872877218776312306743254245122312080891174079321263179332453157615087993256960194677748778615688813529673674493124589687591197452164812888853442819762745741115160217687912822763473722041670528783630667760210584450317738487814831052501811626655996728548977076350738577013767624400956930615711434956768979172883183000184733854769788286084568324302153784556177233915090238339900758289197404645088736477410001685992414342617400057469869375532480127603446486651350410500778154636950454949935718692427898135088530653652507617249884039397996043716977125460344067829338220446746649195788464617462685958726692264263552724480687743058449890437670651678504218328605833023688727237861271855960583746511071893389599343907077344850981386367320643098717064511994004827100755975517384306159613937250921742578207616041560121989448387385392865290379196000689682821896844153957232190168414641856037443693947263172042084455805012070768213860786176398300305386033772951099493904799045351160662546202284912321924023658095078876401363497374883745687800584100483752532091233156786799926046072195695586703987814424828712220105658923950552539095906410548880465215518599630557945449276612004480071483128478346807504804191822191445906922823365882141950804329048785251250407400631444398061080147273563247016461974423896501347956635116565691975629146438355215243576100630642485185228202127641202911009007404077705918158280968027561708333381811720243042020897194696384697397658022105578653363722418991699817187568288314857147498019577004987274209923004603578711199265517786276668827837214439278510774544875202871448529677903714491869354921141648527579084768025049873239339093760052897339883211086573385911662076994531324493602145209786201376725270508283366310168653636561014702356676152434785693188079271429098416324193965512435895226609627096725055305619610545319222383061883660085528440397487656451464053476321237388804941341476253404178661395147260764712569525404911098706336988115787969772361646223296542864040970153645238836327961196635451623066866560366469209584868049840021341377399733679696205624630240479451519684362645607668984704078563844151233606758688370716272491638701340835230056118420858371577931262083341789774266262518141177893608860187043194835791346482095188730941699927385687368280231812910934431709716262572561096344948562351026762756475642627830583300581905364182995714005903800502636781272120436059803032502046810186882911057916318026395527712754266478467274298719592919613386686567761057550993064380967116408384109023513567552793886134861204348383132527998363823762564970299455609802724922010978117565111050351725069020959273100635924049124214102628828793361722153149663882820449871298773790101014156312653421307395021847418975196890833809705150138260407150640261614339159180149576430504670033810796912335674101767452106429667084182243076094262446536364141910897136980941723347600684632663449880355705584036363610350734883926244232375954481164030628392076718993184158946633944440176511257215593697636183078827573394610533943365075802294251558313457609456621588541138334915302623195566850949525677432115191776537754065317205218010186981045219295099319811286195459254040746612023028664237818753936694751540396162072726775487293549375649840709819985121517990654051275842916513509924588151692903527441932282559057352884428218244560091329142124149874493113188683445553988228490924792385365420002877495654388966787291034885201142286513235321892599842798380253697680195295560791338108878348807102359485865294880952774210995571305259531379268294824376364315021906456078674127527885888947719245848595879383474650592658753469925681221336267869414483050003029183758698846495463688493394799540070441343942434543072637280366303427872785405910430949535500265020492592220776275279529226771949803525567344781737427521132768348703106763034374950069164890240576742133381120054718872717765831290346229144233939229081919458529232658824021944603982928567362935479159260151282273666132718783039585891738633967780457955675249244692884949603897942475339683001838635502270964033684027330332497936144394320114589095210686903428752216492040158239004521750926218117944702538400298454300685318098756401234703885905616673708703194464954454263001250726185992911009109470737824644731445724189066422731991669407726064114925685480040556498146130560978873099765044005507136232855404215739681476819966651401967022811351571600624561525058394355795083541834033584593767180284750121899375336671456707640569604923157140665594917320468811899566317685165076149974781235593992939632279016410020679693137888588891050409549219663891425274996805294383158942720233336510181339603596572558196572196557638316850293214747798297313354246248356643830004673724946056255507093794808549852171631802165701364178023693058206836084934585358159698300942721826250124809581074086875510262976045639542159957152188995097875726857789759123896249387883015237528261739581614436155286376752713301425689835154901277260148083777716350810799152054758586583408624147047719427854870236978425695040497677524778453960691375758501418900589205801877382839959762933851273890456406082567514259835443890724438644395159600338181947711847218386060165265058895388717932782005732299456301566457479830431067446609143913962340324523086269581445758622073791158215471447122893537731047829886845325404996980407177996486664081178462648754603547478006412848371078417145368030607511813701210913437175273088889407714204725189591593409693901529713658428067776240705663970063181778937930958867891245168782627628642807237454083454514525316267967587237378318237684790973477081411581356320288321472114715760119244218275119267239613814370946003907093397996340278931738336959694075993072096939911130910031780121776206359829619176771726563404957066446186133668036847559834693411892931545749107216150225318332904721244372416472341774318967764319704934298176117127945585899335902525013849013764344900175579605483698672567297322678637990063309699644218628098054746442033025497195589243301529882725814532841593527578728329953454725557868929812735186094717359226742733631625754021707003632662859750506562713903763790741619176179882645568459298180058339340204729158789300488588113686593890094406383108124747433083874131382780215206510178483883767657747040029803340471451015423222370443778829433288093942943077918731918669064632052537210101635664795080835961923828817758384251800769581071730607357016779920494048470797079873784284522986802459976745257714131830664324309534970765417698708481097972371902836725245691456054539037984427163668301909145672868628152830836526790765240325008037201761990066425563548895721892645356717267846583056580869022731163457873588810178288158620491187561650751083675283628728750794634538574578187198219276457747281662256547520336834061161990523795629485538286733598264066460205069356308570113138946757192711818923721259258460742438939905398097084020919518729230004398557392682120954567207474294101990407013007975639670943321352505040962070260559109861607097997974096378534981632520219160408289718979381158413549807817993767766668604530176959057974108489601963016017595866092802645885729993149761644975656645378628315323138827676465178194790233754406903591305497950514814526521737209258151995555060493714302274172826258407557690055037642497116020209301548705284893818734918815122726116462835244498016376635644937731837414331222644267257734452378654438724225698317644828588991290154245778046425477029749425667015951238410083001880328984208924648268169366211981583751796233026932700472901646625907993831734431809017095689696769518790915930479142361526659078797897164664112295952742486409866940714218516066382842547839021089765174296611566619629003492954956135890022251997839069731171668345185332388814074371002519290222421128479643723730610081006857217603663195509719318639932170349460905745497019956111077161992633885119153245729778413753741523049921247544174325635602976819391673074200839957619076060085977717966401204589812203686280502284835901254555106303258180801269639712451780811254745045196375534870082098944912849464199430989125497071571203832270861935417106844199578044151738216268675380001459834522826683652775395967213004325709588044661143680414802203699417975253666064914489788953633975168038522413698683007187918141153158216579078343376360854439718160770802501082840071568776204231727773462254317569448040911198531398687841581258334478423272920331455994125013685404150012438484279609717066064315176504891831637640451372903647078011936333217314145048766744664449941328500895613029055410972500386491331686260157035304573619324156515459653897806845098510306956392759612688689867932407182575605423597459964055975426015596970149590041662740447583939540134662665246259663756029379623148470269026948744453937330381431802007330394759306534654436581655710907851269870425500968172132970173175916986058162239448797345438922456839446430642973893817614501269067698804958630206762660742530321434386144636220466913364480520596958181372536758790021688537487175494066698766537393953423740104351510122297016425842099428294159742110474771812605989405164563521468355009775637966459692217037069593335458982195914534701862576607787305128430714958177305356410965893116009975585515275926732386098701662065457091078088497435354829379298916849564890896387010770654422848783432966998231934360913282943208114299561185900023657271025124855022318836237958292965060382179719454831720778767607395570852163393704896634675666852252563699995600150428790803517413369070006773803595482167314740103856355543617037235591101229901660894160716361358460895361733804114917684169822150474574969049489191106702210792073741124691658627747430296699289037522957913359520812197989406705848746010192602216498397856629218998282527342196287322975374287761765970196733122958213058243721661985572231472287607812268866201300003413927230325803595529512195194783457449809097214942766205074017298144336659975855540902226578772868092390417642661756434328709170991836407846269403459498401055086968762494192809766285409459304873515498482900369076792343911368027287779271358835635085010709891443687735165426017119943255650704571292649118462107067554119716230840108033285310878408955775554041498021247413421218103318733346563466461137031185251369961010526564689758017867683986857799250714049345721523030756213678910905452760837002086327552524102983821494231336420067417260152846342808539263267082966758458908389793349586585670081314229804293234130519715776890910717217135545834862837358440995963230507762206615750489497659687693695481696331130526856331055752322674562498794847992860848767460792243377604443749467303975285603436067133763974147468168232722016180677434565686289942130804201104588520812671673330530528272773841354091830531747306057219015871174976584195875273303922372186988473434879511120972099366550765226995449206370780169432782775066036182537738855118461288903759216060083908690084404341068825262032160329059184370481883225342465054862814811672338983403347786022373013230599227608309937928296213692888329970895579703883491491556074143103547103726182743854173554391610645867238265882257967934917451761003851975777097772879714348515139323015801175694930836646606735260318891285342654785383186105213559900271552938821898298222284657307817933574845682090298236388897166480949781888305238950349628606419971873055586883020094193752074849352505471385217742169252666847495138351314053395847926852717116952757087629032525530756522536883907638347441195950424514901339111434698652893949814488706228847986929050895739263657147857982147695509772962714036545914702656089392431317467514226793001773965961167287793800454500350543928989567572036079925910328148781790640276512358911096012033006767590333509557656872393888183285647876875842784753736385625262737401430300893245093952371901034023475509100320204591759665682686670509001121199868071814370972064764433452156535964567304241732752885843888833724081146963918364375128806487390163266702294087360865257764330918855418013038475444784340745991566279331975914101558221516291438019287397857706527388364984859286935288174983426750294707659588713280828878638436917220699482640881819233828659630576239949056666308622313469763342159652417753353895987291023780777261381054341014588502294902443965597503556188219246576282956272721262678576211654081543873183228150902053674543136548110823582184473469513490348467941282664660587836472069509738520175110732812261311724919573320517215687773265978095797870276354016479586347020917857621043975053678396397428736816509696900105740095201610705013009422387528994781689192949156623200196068956245648039770440653500686982999809950034459063648786392260330770443049978536788101674804673761467469717845521209551417361994964402941028388521010914600498302156512366948070514533539836694026212535641509512831580962339201392449704976368943404209685426341401907748719794093637512713769048092949888697191199316851392518062472550344546091866473044068455079500555783250639034961282295194222138669607763425293383018021312885447721378241998233080389728685056631074049609427196877561367980277766915262468297365933037173138186929659879822316505952821520990205110544535744915920222807349177071575948728349705974788920003672050234850976266085633571080023571791994278470701533147926026999336731396553243068902513375836584113865905364306006059338086371252014913988155444878471791118846698564753153464843327481605130458468748378646286082320851559020058608459469042497370847292464511294061135075779507492562014505004434450806915817811576354842590875266109632249229927560316811755630548820378340666028985415474879407824401125638230212134954956904634967470444422673111411884386220667849140378011800558092126513649922022713044181738919277103368643587438735887113649270979172769968472518033725060100988134539420096640024841050397816096914454932557040103955121470834968587593823461450948006121782778716206288060050863377031912474449598607654101062256115538362843745618325931813994285852273559132862074303874702889465449975631121024307611909580387761767625160728048223076816692537961375404752173120701484823687571541040630701886204877786257346245066387837869822607767128249828782629433585326561154654498961842115024164157231215347033636478351839484528749694695455497603724059699852374961348990548314448158079225018437366370318474579006366590024816762200464070050286003297895045632278295004820167904758002527051303839114607216347362145541701966058929659209651005668559145677224109067731035760727805133359854419755564703515062685788195044511495482477020193843044211622515831731989765923460486540585695317975833147912108329494924458504092840545785684057677822953841639691576420094258072373384278285918989172225321075514891127196827362479717898141889407116830625149373231270350710380516528308859020727030030996017934756666695188471632835095120120917986150580946656122930557532523390881187221342505364743116670090320963385112163933712684619710695698864382525556951822330284734688822028536836905422214664494728611473916603560547144565525553737413385492877958555106605134464643467598848748705761934096519056394767944580480460011516025410939809502694987145852608888405729141145256744062271034202198904959307306146605113871833774064807691974243859358910901293974785916708075203620651852341341866478085867354272446238764679318819647407123035856412872699558522761251951239262178256640239288467965957734063268693053192702990842870370251447032739068838676098745442318753768541281049676166889385059862209452805863671074134903194215846942698876309933457096668662811608054888830660092777739634652696284509234944846125363840749832075882649088303597028901005019885081320823161589648028043431299441528440788266320305303043549171389402747748038005012735640047359294752112434909228620664018365110507563943434515105638157857159575029069019360625062170033638610547085134865058229728848656490266993970777680161179665831681005632485087477248848382843660387522488416093573789083728386646046142647672374788645622819211523916789547106364533811641520983140828891550492520642562123033505439796382518280149333593258257717427847581814775316604175766793072219943495665930509126561801050132704507366614737861187378943397213095740968163648741269531067746588182063435831037546385942965891455892063305388492253089409596136676096004929856735904218197332475271591363927268023072722303166171269861673681453548827062255782247797314591016435037643878015055219791859740031816034911525081073311980118270739360723326415467822518168127482115434019720610184440736668478212215063606980283449144276856205601447697246612867582426656310457090668407908950468835898880925550168478008206486162862728207788411968772693777465124478345827318765482542917462344209498991555051830348619704520238231149713739631071312376856646116836168512519393957355482827887973128578293211456338152148131950494449874949197410587982720495381312233327722050861097293375016921532845593347931256851832447807752003086715936105836550216143448370044045845972707478263687141704631225085136074401177635103480155200593483245603056156775727106242852597331562847661585323309000456143951120426435648845944659560853705542394918157614712627057224814664229634722325852040907109928888238281946749156797144885608746348589051915110166899219749688894976305559616634371756521899842022710997549178267021031053055189664697434107040923719138600624086300935630496820493363971222420667285733419266215428373376619442530832200904630852986596467515628994902414964943735309338346827340443669737976709886336575761189498244574309210358887505262874438518592874828759750757147411149556308291076211374226249130872156294105765371593933588840390809680501511111227667497274670945611293196160516677803925804490327428345204745344366506660359467784642654734808188438706282127994365116419820300276019066434062703761726920394128031292012714326106252931868275193647704957390021643301971309822441339274344872575108276270392605217859488554434843039733677851311742854419794554444907535883654680187765009560696493052443727551442846203612906776219412880146678721051016263239955646999239433827107276678451265408391036060468129623279520737195726581278543125198308409953913978264676460466101379477842263708572814285158484225461847003531380981510019096584168294708563898986000870247449973335003125221885303712864237606688830553680188681750509327304837530433792279705041430966068959457812482194756016961637727531744928957421215018427363278117802836285790636888057264949806722532452981691132471303984027078054345645979105750721552248426651612614247286171717650386990082105753630595104359413173752186531248978832575013923638073286143751978757716165489428350123028163261340989349253829644344767120515495140442305932288553192871472190940038499873468900704525078217938380928527226474808626660802622764007866906960070070381102452803965414846955689664945270514028250696988935645826402789795860703283355072388133155131625698918680040072378863245451857249166807533163790202900239052873482670831245916748533169184657524674660854736974987605198543884525163314080542371491464249091085674226323314638474253184301310091943772377219327462375796405759082791697365720934928267524150884001245349421615525485294789647131465167881198983869092955506280292925150146744581821844020757238106982918544064340992278352238959096150854279382976556070932833545562832901136953115677273325195417620654083179622815071280052475948085235444565830099446209727321317786606582643458454223131202778546856794476933974512222617564272251608914699625314350202399900843646711007446550347419783562913896314313686107523815552790297754326573887190423889433625165715384594659462340345583190790501292479372517486657795376798320606197461091617989919988912543031386601995355586410005572256678885673747204046154884875658183744751075320087469074979335541632754265707116008532293139248188318426008366529779502498823156709241738856010152420391011592876690158780644968636869384486185839073471858686097569540266921310449365352150941725201821218175471008585331310858031663702318207932527844180078177789747954671810428493091373045421097440894206481075398251025368140697443948181419989460212268579691385900665180741336601239008517156484824142171977576731493032041622417972655583746924700072836102965719512745976550325617171314558819042740796681720270005619713346010592559122422066534235746847818890854644212287890053441677320761659143738752871138413111294748261788073293140897221034205588085006667398288925360955534219033334936735842682541757878573458066952991068160209256136562890662154099468491483632278440580911499234035310853984058056713650956566164762460104322323947681499686906743639575013765421667773367338293850281404309441679026769804631358333414637485873664608544972563795547034051578807123033069425608103943750987584002864038175197453747351942622451020875202125288458692382627958033725105771883112756620512182936284653113166762409755809235409843371078178963756666402479262130861358456618903603262763619451246268068457804989143139488157448597808724493590305483197835765387294655718544645675502618190632936720304568908737400045727317420878277940297453027193241554135214036024525549601464520735221900814760029400693308678204045863493512724254787381483499688162218804010931953980195197945393597329319568847938837158673250932349845092691104106387961759071355630586817856396018699916764042525985262041025493810960691547237741180298806731753458949824076835139336352921114510551448482938605812627038580951322376925358793473453231161728983242018603437142331068152453100124034180935351003570117628021562041903804153141404872522429894453467595096313018197036122806109379815431306324320066360616723480934907057040148481398342055504704794699271997742044582850545515984237542036417015243791939856237863262155247871744325413614573053250530210492675799120450179665242753742311311222483189113857819081669888138843776623051021504243227497912679272965083189851817444587473138772287838834733919444756216753905994201687063469266933527921515605994909791317628763014078265781759007241447157896291387356246049157063678230656153565130507686762581604968775614648770754016758698768995065470994401279333415314629568942664062206073249773703065309926712344938027635899759371478303787352049515996674753827175844998450880954377247564228179850449250375639077483675143223966498730005441763174843748936670361998547073526670633667288688746214707220356972901265993542311178150741214150127934079565730077485796467510327636477247203288123635418315289748299376541182943187133372838074405000855428753702059490456355944656104064721491190088970415855618780774716185277423764975506269864601735430742158814108883213300433603656612605136788624766227547814887268947222850809136192765643702197055433302441023319067429062765295273456838783468832349549278999721046795223643800925021711001762020750135300072464330778471032972814461886039203360970371917660645878918326950521534146539318747958922930006650310666585546867241323706981610597782300916227319701420791111564780311840611022810815087073779483559982795112997682246457627578673987416244423817790043787678269703819675206884992069994158555261091693101034291698380093009912623410946414452881309519366279583903973628759580725891438306367932382089486337638944157020778893606694589706157445793738973325963904007478103373138241523424847207981526191336140108825614227861057870298100611412897341660704014407130650603700468098345451089382162782108245422732963456600125053292677218400815838430749643035641059031206100815196449227213428261257937190798456197413192654848261730632868671373982875697420145317988667801780924280415536529007048463799496802758498961963705967119557003854292617509794767129208878213575797315525194468085159859094880270160028767014154948927629445138134119205950349361816497072182659800179721661958818260391586777431644493388453362362568632616721099585507928806715146601863855228087200616531291266592941829104495780806313453744542520485787522494638693928879616799422598447606183810044376647125503238294913470959033782974378607902337083848486425633590201397456514459199701848813310447806735745216092421731960463658927018843379135044810948369011875745911154120030461078602332885595873019249650440103452300649570946037012800549909009487876435956741755956600195847058443313882001818687474620434590299123365316456322938192906818376614014159540581960444379082998589684968883642860452136500863804432301470059257495782040190242959256341799219446807296102047259641994355276812454814469769824639331636699906558504436685182156011351517609606238104957638190199614397014714053659756777970933792925130857479214144453089748089290706852098890362692913817003846809653379253925590731585743631434391296780620971025699592901215410617476461017319572302164578399447297549953751131975882189915462181149559845191015112366560392367390877768838689024202576187032971978560516445841586857856247690684403042049623508055453717333928962332016130537159432294596518871138571796856479881784143572362754918095288902079625254499658312524489328153922454863696160178385283261077822309595569316009220405906065884071204263523261399374542970451707771927018734967734771808162364170827070116341681628195087447494480913648602019709650266044065470736798100175397000404492772541009879169932452854017455176288339137995984023153908448317761608549943458119455267786215762764142782611854985200180134149012934406784455659843887109914046388360183820850012387894916298376197282657349066070510980113443401065776071406061541323559551604083685427173075628846716381149331750345096942015334444648149498600112474523118386738288523234991414429356863994033552875146497783394093780582609990221171783601664932091298934071691341202521830247815839265889640880061557728485025002138548116311952171022311718903808548908059299113209335028931581719295388885489739221352746424261794452198537686556008627282666726459078952658377499485778426535118957659052559304028485036258744738572808028897702746522883977213333275214631179119292291027806286496874237897062876296644553460914419656850083098623340656705322394601979414204634026397210624317942310940250750840570426649296537039790276342617623837960201120388512578194375354499878579005141619126824509805027474663323558433994640226845972936622309894413614397823434947297185793332700085076913302346804465934015103502527029394057486369811072613961758713229032018057702132929014108480487469859476181970463380400001900240319400266165075838171576660617415020096336961875473728474319543905631329926499679069503040686667722500777930094112559838868527797385235596438620490331373750409641535364703492459997700937459731772845916048043800307466977985612264097084572343121768421997036844444859250606586738200413692569228376621310375818884660147008436292454344367652067008288259390611210854984199861373885318960318343316170260835951446929122688528332768709476193479739516805007235789860607410417600692845848042566830985014281150128152338741147556843483515187141992802098000329530291544186726075862949015929556745403904733040826977451772711131870236033880319640740373391199464122870044809913590112493071323266777181987905862992996612306424389507534941464460777656938519334064085957709693091458170508864686068948143851464696379615698468933135645405673047272852910145380335227745676617416861803842362886094449680726977921049097869951165616604449226912266066319126723893184608286021854037544339289487016794492274644758712936925492030393022807489756628085393288853262773457575407409053092684806481924738232976791266623696540153654773085025179351660588916503147942926485156982064368496250589068389128823911414548551667272217076056061586543527883295123453533518658129657195188129835164058445566238842284173374268126079889228190935598788984869941865740800275650127935939945808979390023335223153023806832812644374807734290237566822378973545881185255069984281724011946589610937783257395507599922797412764991045182357571445259935535724888678337380429295657182665916411802101415412019018074849164056618637041090291858538987940626477982630774634968967582192438808689663673314712742632552095198451758285065296523384153560277825326334484293773405064013246563103118767439526123258037419843362484500705181348221471336662604808237289678112865302917922900171884666265598566018435929073358030939427333915323235763626162154081147088876385250579306686430546480826803299515282308917061845542094714282769181033666687231672637343728056835274218225612238493978420010649127498244514141382402458843333282440488011265392004825055870900383754313953652300739826950993708792231305499120517395124653596276879117513168656428709081737534270459393235408072025134119601944700724125675484046003407764299055415206436729894310774045654992028647858414166662396547162127791591914123634017699353534225415406402069427491439371992900049397361433413529731469108887049442556535880649622268556340723944066282880416201547441560436669424616576043956872771456791542562178018785245615925429315846021335986393368981469119157454235154561107213151314860844023472636603936693830477508117389876831466508749997571147007294518638138505593105786474724554945783771770684730535235139042223271813749958095314086915181047250465828632674212438206279826443911119150797428287971897139161048489691964978525671996345462201462509979437512675914216173451954228561903798425997005550456745333186329806288869302576626207224177794981077107142235518885022320354421098497131302340592001292939227994485234698347283939395412462928838638648516872208380793646751099279231554187187609219749780918984841656471325322144289999341674743979912875411800063446080847923709575132631624983929878265464065922311861406062130541643652093012364263820171334857753918612377105780322271509402610883064461409924840288121674725030839515466896447671450182224645161283260328811380336396537000974431011730113915561661974571678617603521554351542113551350586882250616229206213949720409662914358987231659102935725723243057927235974065506539039502699691959391673346464217850053543817266334688108312686382352292465358707760359123473278795893270260343002480853501418961559893842041061817398756151438074043984231558185910862060058039413006932265723152592764085930709944879647140855134589295819037741724659428938251498860141825769846383697109109156233285035405398854845532568534664806433688612084945997439335584312155300818411114653799119483461197804174389739724741333879846700042873755789919604343117670725191343666625925861947227962848519420387806818509194998564220847666291431886046338500656201763417590484237871497555404389031937786292251542243902968043473747694474939576498439113653543861202827436009149641452847374133587085270232803508999536610344414648472652370446677019433944169768102625878600552576269243464384047318529657452016761381392709900185827743858013971470624365912463340437000455827496232681972685076292248371728625268100722552651286364663432177302905873186604052747147227269701807809077958580064294415226870102209469571804163949100776934275509824515032397172026572774282351046965617607303807081124925490038319895302971039551372059880923062161506359976116857636163407858569591535727884612570811602947695155765710622401692833543444558071279363110544981944730121292013775281606027453993739076000091736861919241404269221242381504797319711916758845501998309100377491352936335356768553265198280229391096499026110271462789002569031636225192976688942954485911028994032964115617545477522768487006935137135603039512070246881426651870591131231542855797000544496063057537012813966727012992921910589477836902834669628888062579584975320555239176976391854997427515290654331145313376005136046051820029233047127347985524432611072085705493183989174656327640749531335630567817810202867757507542675712511499027315191186774870122788336603572235062614753033268268127261724196201280887245352191915258397231251552119448397232113339298498278293622546661682392055142696447022026120544221740941841498668628906198412403857736246857846967224968830477613332698178752311969416054939707150618739657462002749297473361946788093281624689134090643049159331775369704181786237452763404936550901994781554197304770534122604277950184695995718379129428783101187921706934813280254075154073817187284271990825720776416843651648370555600002965203588653835564285846934424715010085935102289979396093532709987167816081460702474911246045964412053122006273322303765045476492455942094694776656506629734802796788840145601660988684908787392615616956382950550590170147670449703511556730360219069386725075787094402253044632907717257134457561308399522968340577608113815579781056636540295212654236002626173009864336662082231561046664305724877196633723031113228330329665182066097047364332259957125564680256285242023445418315381814042586328982093474237423838050308960142883172595250899724803095982461447694130952064362585467142865687301963922579430780107833315652876810351955392910161902262708965281979652391994255766880140241091467032207961071151222975261727078854040221711477863359647362254602745423243503496230759840102531314159790397463085358955211843144113330843909462891237459831381121324271792471343384388639495040747149103311692782292528966838566338290907752944910991774011665242908265610485056989320508105299487717910880146899798168021823304278173331444814304707762461493651882956945777011114716346784469196222575192462612220332192638183378217235255548029111076662645094451949125195195398452838588928597811386986741895335194242004765828315195620532326681103803853749449710537860409467949296280431818785904840804558103067074777534938580790750534138760841291065139060464950153460733758541855027824459660898181107096853305179572595795814058925618878206657659674432206652123031968150856617643544787430103575672363230516611067521599119404655835808374304752220439896862464154624943410347772925852592164727877402388887613407004775085468202564470182112777962798750517977000685258781079638663180402238398213584499390766962645228256625894011687237064621568546670825934454877494359155061808416105040119070793006781827482157101127727568289247812485608873511794226274129292095130828999227097835164251302969263629142286704996806937873835029327903341778040682693646271751150733290306340111586852134327983751388178791153814500939746592642695113043263511589469638694557937098516120060241538700296332166332363273000327416144301741648238980998344573678747699845239917334888107771327804090823835486798963285417677435367311210845181037279759220843661679558422398730604339175433718359226553713487925206571533930195371947564732765563394308757187280369381350075372523926806726806922991323283806458990830593308039768445914393409240478626139422858582188963799934891146034834103823518153971922680464448481226906901369790370651839067680820530339074671114805825206894093429288123480699858871522263012921739344071287708811251609901775195429305752220882807578604123680232710086212717637185570632366168440486243132553000066429341927190648110155104182009906103457444759083269638054513823516926673650565217156424592427994141869692562537691972449021568460081670438713237173938706928850776315854424038245039761019692921935966065020726946827789942168218286026008922709277069079165059078156342320874958447456832699310899199160409207671633625894664231259483617879266365589095947401515695285868831285497281278151411026213714355983367675243680677796978220622724366267649324979170477592380147544114862601365458901288078534904732575334582309466234054269360419271754261387003732229582075858092946957407383359855161803677128442246154118515771461363697076723163376084045051393967998715729796800172004813957775684983401268717242072672247458233706281987601370764590224912814907086067036628324923113051452366639118637964240298673400115533780401439622222717616984615674648699616820538645386953801826386159199247838648556705239477534870666760989114799862719772150423784741671798034585424198637280985748272157301334257079277358708923280640977886309957433502894950011638902187647902577369309638684117637706075505449251266293779077062695044216833698127731935239546891731896658614891975251058750918581535790824208223595446116024376956024682889783510183528764745977751683284386466862604337454886719849140888398705022853900117445555521313866204666769556346131933135747012202714288675287405295840000394024820098917492833820224043302013880567771145067107884115111548420662851336045121085232990333716271700629617137525698008027867872980300523554012281030606261087493611093850021114311435593891420324811515127050988983308730281432431289901487287310962850305453856966311226365486681903891637058938340350713967866359616751345637802094890032724804634810764515021534694892706564780675405153053395024280345709194356602592344199900228133738728750760101036203572742861126845162858253539880326382294798285129409879739396832023130846544110440855207663569228640929845462227554783709587396201924998612822029736244260174967031605619001147358476045922185573412870093977438098172343318717964246497619178413308049609600092421019049396896225255868277501522632805837081058771665646357834028105278184673135548372175164808803086223322185544858794271829002361504053853687172586033824688408602801676805356670279479332126327837182062440698700270635780244522336556187679308407501812545138981289901795970444352215231535841742342248881774261755749778792158250959862112305758313796015769959921189021967746983259739629488944538734775373403335529689199202543376055843244642245941399723955199652946971392175164380172717564888574908285012486132911298402344947447939414514429389549387878383994851072309123730632809672232434053751856380128639162557678284170912990717060345287595712976069588025737016249811852108281377019856423160936273384360216839866045856291583208973850320664010331971024886370675419292759583969477072725746010636053542156972183182962258871479845896305219105106989760822531667573163302554831387856856638453488563924065872358370040754992111627934845016242082475793232263129012835350805746334706024370084678986482392015005638682883706211762903958229106270564368369588707088476417342731297464507937694748984873855104428943349983222319555023866989263614621243326520637826707536064482762443363084089897840223036796326638161360310226204374075842224118401729004384017429107047594186288296342241038021912594901055996996978403849771241316768126051898732817843043512950536135197027800006699108711141004402856056863075416977635074984576378840634611861400548611867021892679589280657842137899484363292858234713070318041136665802051580651517663016309622963321607870648891049907242704886431407034093577902437041268297848634029013782700959269934185590654628411035129193173487344138918479734752391671376167641834349277584251839708572661738406760868650336619708224935571618825328132251427873186460735352608656553052035011687180110091000818836509327268515930177536879186823766363581335860160292470615056270339640187477473874473621381684796239822109543529942775362637841842012230198288935021541607745927722847192826656068642517865696858778627821107338195436517150067633225814298406194174932186061682924480947784316313454476422422649039988922053534781149289083959541664787607335026029945672621469084481688525687393381966603415705924410440989232965358332877602752853217526678505986596399957793099798649197672421182482789099611454643202903104662147074199340685265897569253221484923999430969465312652112359770622356485338594568265571810227862847523265436518072265329374052425862580460804305733793304714907447237302439501371030355086081712125235257253682356564365285135091472142005579404487762134823587829950060733991207794821267975052954201723390892396722025229059915779558521446419832928594949871303951686254686090811570993738111188766048078321313041558136423496915302253489097203607919975599079059270568855443644673282608481844278742846743322530640680952423887669156267081313209687035049632286720322108988544845432433085501474039932444446590771315031828271864799655041520226106543954948898315488008693013180643527551368921421710362079101607982201518071649426527564117422843544634696414800819633029679907331281783528390040240379578695576289750729060091617658353014393282483672912250918674026052278826524184791698986613290846589990255613727182108529141496023364081266333461894374860404157096596517531464221424152074770627073452366019703721805410704964046333810295046778901230231194521338650220110682410741230426266579860253378564879316175103447879858529005790181699945658057614647214218593709672469656477269820472877614665933455502560715548591680889741214668478300053581167814722177919807749110440104846700105703279636165802057945853355248159180528376754667615621141405260812671458021874040654537169455901518070439663511563073217001561757824025206566338616994285431118488298008083189593436385792438391542731705471303743934472780397658948227729621536422000146412259282186681601266854666360393254052719068482333317847046595421980542142174403609083538234140113920237765262240785699618711591899134903713656290056417642829263120866445275442743213160969611841214604459943636263283263198440061384529115428674505900872306537068412296311308255184169619910812985043321310706209758060890012294049759393386115402788227478480867477042750036447973476228921842556025324874668734910369781490954512205468498673911628144779345021705375392471524974452865949095886528256425342919088959198198914041190501355498132567303421926296501883998586276307718227003957740398799093887689231348729611428931654413742440162095005289849453495255778077772977096313502311934545334088809169158433992031151487473419538942580479886418898148910407518216884694508878496789961550935291291350671729417018454605943904816872886625247124619055098824565959438348497618737446697029344311077478162827442844396650922110372294358698517640386118519457408487175700531966791610584153837793981058582109569231608011167637951954411717547196128708262783889459109338372081397247661131446078458937100611030584797291372709603030918596794786382412624658549197159763214843179044839136547626727694561151237925689276617929306686574038878047309344720639718616051800713732942758963355737300961296650247095769220963936794019647842915511705072116554316659383807093337313729360014120405584806196460165948410128252111011618716009021253629797735261861975638522637285158500986084783940684074237247807945027015481894872429401123766758534409272666024419731103483773551028674396932551088925825525196348905353291382201453338172149895999530074568186754366144063548922733024511957490873864989170241804459693008364464262158856506927563771241521821960662636471987177625783627800765338118251338706157426118748388338950167286548536902992870815901874381239265976430856130533864457484769903522008711601722794753951154729517930752283979625943719829610340251089181217099588306420719634526340272247403365518031204077207072312987671522313221551393707436995257312133869694962520520716710735278308623764014207635982691401898637607117582754152192855078100280548570530823387253281710371789789992074531230167305412969003663188946440607216452402486257472762436276497234071809078549823061820569890011774413846012647230636033449296498437471679105232816746359041973552155123352930881756003256138801719356655578219221171487316704771138496090678179646686169079810364221053141996910401653388056975352632505942201521387842660528440552371555060969925454846751633230477924082103733828317998518455555753467748502493026640959359003930790173392455821962466492843215689741239657111510142735274176212804584701319450992815476134393238968993476290864697974576450982808990799828463351404299867645491593567482057154779816071115160434862369382094553201629837655895843227573862974275571622544373905724601608914958015158901144600950233145618059552169781661055889695303240318448716534167116460387659296181988978593800516496689611574989506675423785010167300476982006838540696451606181088365449676504387006011109778359915270134877261072074600004874227774450813454455183858067490681318277776766084860291735889164147258183023955851010905112509023469358386507320961709929959530216899992067273597890846663619242521858051582148207259030256777477259693049187521620899994815405376893060378114755348610007031982914483765073436316711258717387480074201665672345831791264474802474346444833128025597263502918361461770746317201643230845307925689282428072803281742531804494249122481425844557102382499370607656802544676010215231578051910666172349275669786589466580558211276687801535427582451469945793767378289510493623179109972761204479893008810835572852205051352325574558206019782704597578626076479187246943374321971512650390950595664831594210738474095401572565200992314227260483306740139406944760751033688997630809968167587531808514708443537384680370480160206357012750651376395806608087547273167898574734607055177105976395847919638075226346076930748521450830984521496943918918284258476372359808498884225716908774417255230895086218012744054479491666366931419932740255360058981629973033230494150428663337795802327969652538448233258454163261850958047318943955683584538169421186148385144676107997559660511036206876306575340172596744187835798834103059831552841258838809028494878754754344413160373418680412927704753307346667140898968193685343898841593175440310235438553088548172251015006805308192628627259747956759572757052113188934990386127519284402159600074601469668770573208608163061194932686404222792155154433353681268483459813264063789442989376521262121351155778988729994449409041317305909989440975269933044634465430849507551394825778375882117902002724249846225653525226618630490845925573674338111152355496181385835684506143478077687750674596623630592019596308243500432242096928855821083331804503234841165207109643117233989932901898107252378414407207135586396241617443299528319611832528088694560077442919710771484980507906914209271522305826451356335505045442826308356497105192838730476854080284136328707666351853014941779064228731888842607725903920477430220556912550916344610473260547129657827295438118199674741376669794483133951586901185919261590528468130555855226588512161693383133732092402678347037959187094720477592543647760359927078890918810886722122139753349678337160740034967076004500757342383651220583189721493865296793337834669428105143982488071638792925684773244192183454198332861248766258312669511461661040850216298788866581851051421502132744050909214085062217783290216654502354739235120114614700547163017882049282463610864842965993430509346666431778506019627519724279345520080623225762940124990730854083550122167284124901947077520790023128009074291075715834085019245900357902216582301099006704463749956504631290178672264890245598334476402915049179710397463442070244016484982707160468906707792873077090908772168250237547211868673034055035317760367342562961060385206029716125457428856350888878938930529164720406037120712813635815035839468516727145110655418088332625073461890826678459421438058354429418328858096028835309648159581086804181049335949764863951043440030866792418369686207549215686531257837707873345130798157136290426613738063304298243678918000310136937458087145857037874067175554374856969121394359195077558713649541815425868584951015206472262872704866378814163895946506574791010034925924612834869929130749771318324478772676605833831235598376179038263925715323380793700429285005548089047660210108399699988576922245035571129913941721820496517834635621502886127773978120728394466359228481636480627311574241857444273333577517063633570094409992360345065798670505752653978320762086301294722999623515401619021351674421869867856172777427179725699959408657597454238096874512313947891618844867912758421758231593898605154375965939690821150750742734749035195558445150941302336577008725574488538040865914546658480807509085576429350333960448308168999167450703426970163795074313743498937129737267852132246256776966216121243219898375190039127595532967124474283201835667808632590800951056211277740213701427032432629399479894165510898093201113874760645665206486270517482088019796647354000739049910286790600488265800836365666824254510307374613112273648707643153128610625547687184213215061328535039938827644906570518915472582597946326789551650978166707211902324483448937969195892278147238219130170848571610404520196626710361598474571677118509368201937828766849783941396589979576552296729946452211806260965880808131332674156624834903834078019199262823349045514169611009880650615124928693682556803427064463275085507092345970813455154258165708799103928076109676502607003154934201172282128955600384949403510479675483524641954838442170436946771776651171993145709391821869624828850671563326710019919759136924641289551521993527476345601594787554924367445356176059067589440484045453828702210797296724822098087462907053644822892471012830599450791240106905689966430155020669999802970021282424740506006402602360383730181175539569244474316314786287774140007637712940294924850099293579571173689098414644641433703178715635661493794881890538598099016943663682845870343584330679495599749680062039521795872988119964342269836025797023835211794880897368377057640253214867831466109260858125551047478494459327891116083309771231751777592413753166353956991567704659091030680191474634490495980656992203407311759189373694044500884766402635872960458790015159616464295935369338578466390879858622459658923156090339828765756988329258193153470562110970533124809845238153120919534145803157066591119557737540361429205575674773807255689463621292824157706519189949051242532622278770243285345330010420990187155107139783062712120909345468569386864342914637021335807624433399537844214842688344613453888282824949410600528902196932762843403196146674496079734326006076821457435047310342418755145376964907708032095758473991009011343466330049598766168303472994884768259546122860769773103493870715998363297254227805582199955812201935297928672338496137232020032123632846043576295108287647207879674555439137860703345849215426880129864108037961527392788077860642665348414304057651114816249825465149868379494680942708664179168581355584338650527929999182158109257827561552303545582342010557465718849517234551617797237008821187106682902559903355077503349564007411669936858735315800006471148638159632897603078493594024021107111075104512155714205077257544399453013872055129276801283460275469788953182618544234639951672181871624971774991685891795389150356766413421712066744801980928143832331271819142207184553933221060116553855423928775263222920174124975359199614823702071012082316914472137780560205296861848580251043408550042974870587464618470465557135168849382990509354438412419448013384482370552744454098003862778741791418934526483078872749966744776665191224712449646949680815200297259998350967415523015913285019090222179163040335838919399133529581560510106828293492953189199299758338868521391990590082181556132765330095861612223866422133090214934025865831818527220047057003073314644608946912145028789172080918270305572726384342033572993488097889913776118382519672603742806192932302112572970926951666078115278106154496403627706450984644031232164477863715788230500813879139646520399874546804769802118062370924894688425264514915265929005216829662806808559852603599536413159558190132728645147283695066676922502580358817219928483390922489874735512706709036130057931971507380120407251434531679723857330959179943934092191014284147312115919624279848064209233501647903093872374637651813154753024500357445044052426621348362162811716363156696834271809047481408535800077360232194126492028187144256986932920001764198150008948376980955174739281701145318324132287321417626953782647202274616303670360000021673818699455523929606375983344279626621192525705352660229399917660212678242670941722260436902508505825828417788244473251105302180831811392075394885891286595313533010718653767031564353034647113920646901843811878310671089475272245637325535501672172590358681122197736083241320209081151398926590574746750913363482778962945208925013299969982759135380085313886502555139367002533507405622414794966276953008675148917951489421996384887682855696950281227461914053609155374284550518040058032947092728158657261200311237996328061727229136814600729037585189832199157740189925798294164176310688635769509801930790239821441565093288345251747267154779063177603295038915682129138430195640795309555997264699470305685602508548055393587411123811347645845296711394534192318973832168883857006002052110804527381876322603124818736463740994577979321215512542170849318970732081291833019066136121815761703546155454301592774510279985299434842136542704031049870497650320074156111996900105152188765190478113767944476454709577997525556174166386179591026475349790941475077468948896771159316179184865316181280275217085936845517532916159371723754333128808435408128304144450276811419860758551482092824438619129958469879177278257056042206666080545956300515671563893349569234572175672268214915998741312638655312391193337540139338217349512245156209629539695545253267030204276384492434026756959511708327578822730904162863814589122793543839051665193242898501446078204308902679394995406053739025757433789626986158762199389751504444346031385506180621742744019296762219813872613462827528276177455971872844418036910089721741200568274890148727873316643697469021757600503146722548158618113770814911576091164279387415336307234172256497495808971785752116637941592624795737074201103663689130684316263456022525809476099505326201828667984631791050975484080620720028716627011650163549132128541001128230734826736442628484908142935249718900570760365947787873157207535029682252253077605279164312255042934788951212762637217559781829468333735127726382495271826518224955768513621744205453448519482580093549147991683110022396720367222312651676004414378597445889622615665513697836502240167765516343573839641243961018298087745174577248172952112215614821144293723533132290766724949266257628951360570749203152481970057381473508554244372289713060832552068501860996879184712639866161263483687063667853093188462651404453670373698428653082746426730836115542246752484247358618211770523875524938689266791125007309536307996101477089431018784800659888773062450579025875112702813822214318675320378819703277991453470586828766686675891237275018416384613725285490314719144147202769303408024638470142227955106887631533715588600223572312695990872965725288945097209839713989597722251234627395665909401055373091653534811443732117735913664122601554879528869130209991475255579810038535527294301571240968486270471155969337888332937764457954879820406550673519767033773576453961455220381267120880792938730020592097257917738666144369944388180740247650627130255875194163209240912957360103164161663987509922046181901936143745281739263632356426573093661388084889260898526010563054682281861316019069593432226739698232124750080096533327577038615829193129460580936458112933409438788067578980454426957155365676711443035454801208835725739008565300747135340079267841977744182335894164183802456098933540434556587938027818742680033708932329396396337309045139864593771583131071356554574008339793013993792401986710915567464237027858121378412404513033726101910449091319810494996869996983063539482189423101098375111254186957515632212101704751811164194854947596310290938945415695376050646371782579724128028023902642978001799603631675154320658037632529504543957486244633275786672827483643618791758660923480179186266761815877216751048972431447378859139360409137591825339311229157568773823679619416505101240789777839975086095413901478505980193915791047099949659085606024212761699794190361917334239822060976364932659324078520716840859265958328919832315704150045685017994343258836759118082903773957015833629297725747287703132819510044357746463271171104087115764649628697411478207495782633232250397616703566762234470495479444928109614439180634481206331434985965781521946408595730737700597134932287761611501664063308083235199362774102389753938051520798314302446711648554021634261219120741065912504598217984164147194632284120801875649443727785717911896084803248886421717690423235737584312979928246063932224874398099719589099033348413066332239022420658576614117656469853271586546681845680930338303730193265844351025599936847869625443681267234462388466670997281607934776699891327181465584818862073916033871158987951414201528980822947500707236917077209461720715039106488823432318561054203736598048596328495209340916915807340929197494375755040016165807663058383496092152172695607283419360811686760476049826194523409901149589652507433858784134146193934718627786767124608603927994843728128960458876044761551373679322172561899136164434939743871836817218454494563928674517916966747728305905362391682047905368800101117007278990258113724398718691656913300269335899884064183992342655586489707191132415499539936006473127139198682847305426782124271632087809817974019263840899955611343567029371352919778909856358398475925007544351815900727330057656743995969720576496414293793074699606261721923441651516093258451713150586382087103556736417100454753681635081814954323897274244568758874822353339226067709093605521845929171660741449876997822193242828407109150394454916227440889440410936639174930598389977737315010684919320547034609606999820145605253690631064371357149962087752623742636083448409907265541806186026428343170381393112625009781542224717383964048930160275176424189327337314469058939927567591476017557211157553538178400640033687355156895754985204257539136180418400568503214115150708992609737424311852906711409993138083683179013268466756242602031824349538375720512817393478500373530675995118327988646306781271498600932247485674281410279903867847618190603794740029982721604469056464690235045430637725073995298118817343624974843026612301154073778898250153856469638483523412540876655147017331719401130652049062793743260553119188190454003116043197402367001328173331692989731142369211997396966387410911450311765409400311661585168924330505257260132280199540571693297814667886762782435235709774021907949372407687719027397031299284323727290764838621092318659299423719754386457373347979556848319848508971364942408703302805913502160948324395361109176718597370342492655969542335936516491213643827699499040421887390546207647309976551464769820447180001900129330125102017196142138662126034881581690155962686450994950060280508764999028764175411463014882415767712061567232094920292524973837871468992662712641905803817308687978437589242085081514021177592017901441876243923910902954219426500112442724826782020122398362877340444559200845543886674189052145463223886602429398496093864476171905508161175147306969598842581156250185284404069690540175088106378914060616697361788752600596325204328302219332601538935792680928519595919407181186464372287944028867569812118932970513093622884147785688809603052820778596927720748082706268082277739034178811913831884161331672525014470492727682256202460358529706205463655163481560044591863098052222312860610544510837344905847818415829907604820259215045089464543424594764164140624657125603091103899082800874172474138618763818557186318720089874887039006249948038720939258528610146600609656375578813671803403518017886042468869693486686627181295965001652223343877134994524865671570537846389544483158369965746075350979123236177824847628470928534229608593391578161280255771454645392354284495925601883912322626564159503028308440459101610627395404624658195024546149190001940712549909186819792369750365012101341483675273049674706541292452147627762699640735218480203288338667619908407603271390440628829782651168579866507151319119753679128321681446272659070200569079049405801722455575785781858856053677445266663852965188733286081861294845033564051517853332461329191448369404431667530934470060507857199086385551383889932560080693897752843465568915907388468358900127172571624271354643183504118942329496213927722994233506730756564977468980776129850136714921596154113460004550604848023817715378497212108197225257649444297223495501284731390706024101750522470066288378598343951150118167985199630564624026006584220338716362762021650185055348342708613399701598256103401225093555589358196014888269390432050530782422379569785023319116892389905843655036574744853843339879481895357685962217419553731634193912994762808591689495583243526069935358097292617947207504227880833472684817723157164467033818431158501217901059181529234389925901905904234674472424442107534179287117885464700574785625128451495250262038509159584286407083075877873137865557492372432963162077799641408135672454962799523579984450913331799216087267071389261531720258500019534353655081862546389447390010261180505951674012443913902982603696984626174141442968445744279245232810627499753824708456152116215675945355205963798077451762497311803352339007417295615889412616927018268957856294374253204291186858742636831131322527933812418041837355001474750152040359216040375773691636592104562945315932371615115908932517442955259515898434713481906184813859248365433298151451488687020272338051667639808778007581431160002316964589100197308584978295550116348420318892927159880961906890155510050662579316305642145476961919162809491151483041606634055098089045925664018352696887037761364298404486808448369410938157477534888703362923577107757522361707388980226335237280757512842866455797677270634737950131149943479651781864082876540178179926222723027991502140195942176947053805683222334065844129374583900027360844501882872650523055260315389723577201058700750486682651533538196954024960261872500003273235892917169387813443089200574977779202030327816198071287198297402354888103519103448165504188206380354686357043292722199923896148610897533672598506593201813401672962667249717165980100896986041410939973272151758597461031962892280853438034428009855216018955011640065963633473421578577377113946279866871334663984654439890066638532751680927067417835092327643950801387608286932241212641273228599532046862724965171025311898840645152294998502672066922746571488312020431601903926212105741917255162094119415893607202924818068640858531260596139577156374928310228286735945845970031846314624190884437320942330901989849618750733910145898139316417658394838800591160505135125853380890623419316270213338855855959404318235054820846164240419505750009651746580437457139788603416524308926400501765788120411518022450462941969549897878919256632376407724597630279260485078404867072500263265274919971241035652948735784222124589193903502866954665611932544418421594050355887328384759589087185774171079337789150604960147586893732327456808535557400548896327058328662455515339887519278843474735686883952567061195042088656858713167064296254009270982641094715099464637513182032225088193652828407097223226993118679713825312016700043825319160317501110782960326132677729970066420743029494058760649864257695850560043359236917679400751355019379270981329615694149552779454922614596519098515311673520063787380726206217257247511293853270264464400313658102786859771198813013939193172287158453457865015759997382112604793102002124344399455697776187113454172190809129186793999867182008260479814034615305817792943072990150834795919807600517284442875577181440646796400249991715526938243756720034231844973495784770231101815975337807037828405328702466592962685218785415406737725679081077785329655345601567857965146216494200715229116802998809336096757166168302607396816935367621193146061621884496043568912398846911704669852539251267560262442852524406362596899860256174034074696013676684802777980948054330569526852097240201709701716640245215691582602731346502310421190279221516647745104316712268760397684153405437257938729386144277178322899707307517272153410747336660907460266552532423231926038860854706879273603002663922197530636169050535101571345691792398005300100166515267609680907209724276410216326299141939604160552865766118726353405173193149910204322805102145362324401471661924118848717078935981239000429368670925714772187597221552874977057861514878871664735171590286377973630707037113431884939225619943550370837749802341071005756501776355136138013073025814815131882419707065909593957879288562790318148902376211398360732846228161953061974351554774827822077494170290604004741585398476903664963373520045331022426421306064011090161788658175948360027879686989697189204517619070579288908307590450441836844724155706274349517880641523023574462869082009240287184936748513613598587137948304153890953157919693203988675172786360001249880926963928861490477553965512181800993463797660726757520556528540747290693004536613155688732193365164926372743544612077146590027628159089832702985829510471240033314104161977146226249595348527121092081427525361320001297442512820687056498898227694901366887591472327085617985313245589817013358231196261366789625465876819800624077614343694752619624885491142887541671327042354148567792163367574991672308593753071352906375003710574255621111620545113446908287201001201520665648647692755842566835527969771931259726725788810405506104265864626779815396235772795190494962736836801398757499755539921620187460851843431771227650969286244737507367137752368247781829270192854872660512579608104201639771348764897898080042097471740632841836652116000858199681922350168932148264705678973569988243970921978085113961029797844222606312165538012653798104107488705056054729117293742903039111188225482019893486523663475231278324360531068768465710372398458683279822072644085094053338796149428328010650629473901532436784081360032421105443088394518296522039885042836864232528612011296510057774630476455822095297060960970429665222488913279240577950837594482168460318615773367367680391314048509593207329342066644831060223138592136779010602392202898959129665723311441274822447816157869200835169588522562587338737554017287912812054671615356965520650327543377201832434045095448661734232741254149307881907254624054719373352598654108419099341761168475560935633118582351018799366908261742505769235511853474282087992047683787801734337299985733936039896012452955566633583617159864365552135908277477687344002129951771451785330037626512793552288159461585205922471118819419057166705983814804257252676711318498621063994139644516401365310235322839014601411206866014481909155547288166709120965142565079723681694492906811224074968092203658390585159715251058114441877639353060653658325395366035727768518943252107049163097187435001074361528012986785953377952535883860191240085318185730657518615192958802222463931333738259062774510350991873418998169608049205134234665411626468271166653052370778317910677463474500005274690377634621758260630681535448204689392842074380413443155893153731946340271164519175733327246414222880331580363450755784510502952339912839435517694076145183436350693887984252665789279451501251867882225238620192756101971152876300306094160768149951745143809780932344230164775170988055279396022421656136423403114555180224066494068855824218107417559427293253773609532069985323384493610851910820118006529688364279430615186259839905492991124402233363821686327992945308175807592982458647384751697758157738894487508169151976812828519765236094272591303509222022238714751064197500409257158387584538120721866952000507203322417731913409398494159630770022912467056319679797319443473956974210135924166612521476827251145529839493578684092310492896779719848726707077181314024248024578367732870476117550247110488620686990471296637041054740892091912873933949329052388645659933322713101224850023270149745465996849708503956467033854728205822021366222683425259122617663969702596453518100621039286406665285809822135059871488748460672609934489317946783719881980922128856389301608445477166096838000011858667154866776820968816811487507451712573265640150113378527845403834532685881074890945824960056472743350100187808892441261552622447765281864399879380553375859576881881256064328861075016167072334611389420561567207466269419325426730693428338803419798980655027505760438260702241318678542750951986430421248753979189226202089593140973840286068964583742418312679395191517875216739829065949863461803924080048611064566476060597010382354922382219696814481840653611912233197972654823757470887829284054072781630669036587053740949640169662213878084529730820072325618124848254589716221835746011730801698737025744759340758647776371271221806711730461294379811736694085968049893027764961915398587514331234855769508897775313801931000825528482690809530006796429300217065770043546732534412446826972888772814421995122561433233298256573011104161887625224474448450027837056286207722193098504024933362912131790053959141163050566049596237325818179719039907063627226569378280492358450914584711204360311372528368707802563437677122573196952272564995764957957821100904759597489145615304428654583473245461172769997856805488359462430353692562029048456822279826647847195736236033878552591713510792701520867122780241085673120842282396421020071990075474909928742194451437327677622925663980262277321446788214520052131515857978260244588357843264127856658916517019474390235940249778509229024210059873263059691212962866473885042640910124981554340761809897282587440390710454919176150620504865931058021333130480098373841481549556959046179262211847738210442680628934280222578451059134730289885806826266092690611467257388668455393058492453112445365724357396577365893877226931879377736438263030311081207003816059756022378086110290429956318313238774672604941529903960835916339602688852193715497946988092739559625949357306665769529333063358251616420649779907849146643010038410683811273450750584801377216341340336530085793512492508861734519535173783994115958338591903482048356575510614650479958632755971873378100450052279092349296032540368752531547459183245509385776352230432829204375317662901809691052554639340541608343485784835745326872745601100927568521194607564246949398218668123688650575438935381687244795054990818474973058431333586876649962852341339691418441106496073663379166793251173281941608763576936413802427411568368686480466024828476574363242454003262278007473803345475032210355336928043526079328303351483292038343822675583815071338571050073052765848302238556249805755118813567237619329320597157065292276650896937383473427275469290734197158894395816904672088291393297673143118124218639191940929217464369455169850440869526628353450751779454992658856660860179092194795717059673593423815428074851656418522093036700312477652216949255537647876736421745363116729299923793748445845418302489540803186823560284001838166490142224314034761273684931990543747875878843736734850185220841939057617559913864607397403318070773682027542449440603223732504806054641015944524362825549442795512775783570580822472870591864745755621988596128401456132789899928468517538142291550507208520406627894459774064850336502403191349731617932935337911526152887092686648093817043204100221423634224129944521036603876794621071221407943518953590914721511903883022438345150753415912274573489652471402969323061523010978756149212607690736422325296028792556227002882658848790837736311998798763304577474611734985828681539776697833970855214105666811432181662352080033876912836412890401875643850494349267181829906012342127564250459404149218687945787108347794529338406750181008365642704258593922087436537821138193594632546258376180230180516615682562734483759740982998221151579904460533561996326869998527397858152868418284021785649338299895668958891476559506169126092991550186713290193765696699990223455037286316404123445926212527015307375442183739526080387059138190349242639199574701903949133502398936020533693944400224751079891043467086488629109073116036722926632663863175102857979562795890735414111492805888618760874228921007320597221523574411707204336392058123016457247257687456035346070618341369006837269023848522308640025951318006781251897065469507133124149104145361714758910057706650255746386256818312966188862670535468921460253876147594817686313521783945310849861027406973689310766875177735690460822101277085864797762183680580901342004566982971302227327172031637738049045379438506120151994729503437416242772957646571136988581879779850853695737124719946954778253473302246042175327215412309207176038570241587018706853805259551958923053189957027998044601044933379905445718638002722379596638261350907738888730573609946410529298432268000917508282991195543729951832568973023731120298031730539183638169489228234812281796575022414288118152009686936106990553839423303823010908992406515556889402793066453040589990023878651503639129193801626088445457635132028196991243294432438020540674777077784584935563600117747222335891985389321223716034158657470049839778188644749628541838306117810630355823839793652345685235319042603049452001903494311237431804232560747028726877070560494103218398543506284515507115146716410515351706824933688866813212692592644706632390365884317884172985200108047654409249462746569475739306670783307378978749764990813638344080638182839617115229934239437809695666625411687733519867741607596542160526425259569211306295275958776686850801963395618909184855587950249723398518595201800908327501459990338023177830414384576558241006248762796254403222652886143723188263095694136453686795373391258940967487387445476025440624824851293129889219047386438939608495310428244405967579354990774766123544250501929374508355979743351273296892106747324114688405673957940251795802634113925190002166594684282172778101180229691903754874752487712537023643689539320082993276535148616476505750516605764754448763682820445825813075435122034512037953182768897422486540063054527239247628097616074341700872780201040659389803374947297327594059340340863430479441184084163347892240492195491526405426773045700819192565138391437255558314617376382257790023145556240247095219072174405683033749627051362097951416445065569051981015319172130698301510259739182420408314865717683034766958052824927659531054147387952890215624630521766916825588069615831426094951818068364167914919745041236664543079074379841396543479891627658755930804344188303180994445652864978842882094182799893016096606283196189723173599910623219445883843611979869116796380351972200466161051403848530469231339859101036075236697590469769632473550733544295629959370987551446501620827436380314899915002715174886470181612716959230978964112518861063246968036595209535509312282632515456725464162061121847762311477515882732563760287088873709484161896924157243620771112939251945303613310744548164711788861493601784109161514416345876688905441921113428154856381105002370411988581161138329399000982264116550920324440734676323936645840736655010811054687611569220526458329907371695663734005172843611807032523984478435620798348855121823189109468379825132016374059598527891183281926028618500911792475182263897103680315332934686520507911045397177198898440522205491473777103581611728429158072001618978471717801735255743402293735280821716817248287083791813234189365882845698620275701568701834335491626311451158265584185167629338344455416029626852459690774910505005331267333646249718943528655272629888813577076535092899405723465912520737936756242128871118258309803334881577986236744788524819665856542505200329062193271871656080902301397596482581101871339620021569316830171595673548233129056050704786899678648021660177121620527810428668599002425956528572869239660451961520109227560275069904235383404514869349813658532037590517061853880907561209704243611153819494689327612634612994853800899818204727242849095522394626680500083364218943342487240997966643272989148178476169547739623173294163839485754866862041015883139613499915418611771758758285322498153598048056570226690902249733348663156298561371765504839901547016329950943912222786628063501493426892472948736969352347609320746079567936639791376088723181052469272997855402478194392130529990957553091972756122489537009236537473355184005534846893915353362673884844141269360872310995358894018483432059303327929544118848855667306606114015348032408285865161587667449901536582793507129406332843795530279044796728249911675177214577284975385804080408480775799807078139472979355266716317650299268368388700771714929254572890824945829823481850705467927317643434557378488540392909503429638715415052661895579042922318458164334872253345083494953576893832251680517573495050065282261563939164588180127797626284198998784864054784096342659073745361444311267047322302119297598014179813841432033009300072050884024183615705052167506451663583842918077899443837343147023913821356948360637859645573601733936018815616835400191412187789877203091596909216999413898192893101092405140256789295428941089098823117664866981860538381775109261364098621461571354472659951243721532953326965633516936341687976232796458972821639829402860973200262528811353148857038701888877021173227863896651217873161880490319054856535520805029707802463725910204111093632635647847718291593288852730765229491524613288493714968102813278260811234004741263572625838097505736217471391328095364210949370482893073047806049990751049539951964378026203741079595278029634426763878486547254718064048333463890372382084481832644506864984281669791337771317490439398001199505610812691802306641107336317705320626780247380348462491903471312385355633957086140990619636495636180493266010742254457785266908628378105839279449776364758177669797604546340637364123893119117514486347766680318828179570917831178641836078655360564281710899177323964155648618678168083673638407674080190425879533135232859454982470241202402695000486830163656196099304137556007862593155794528714236968237027451804925319877551882057011428049471406176481163673211842272199522799360665173504045622826864527661151703047623171512340886170420426867422489352448236743328814835455958543291563235835979904902567610214418041870567373104300783008523814404192198301239754137252699273668547298575696137500136208597073355552053194226159824746721971083983046749807023810266140176063288349658342155162499415618018014049998635360023096036079512415428647816229113513581592637405700467918141288407797707551505381693757525593480393945944745803873766318343061924688865430939971482808824698429397125969104381186917769037956201184514954992215543808767153329129183097294324584730992108412734365862719013452313591493888252749584662056666527179252619016709232746696189014491384971914556467160119462105258047195457352304515204758687568453298821623419739684195036407537105500514220860097390992612430665840666822236037625620308834710628426491098267373158468760053089594271620072777468920975625916082488189179179277619543545694244118759582489432798951692258351005131983291335320084015966623200958879143597467218917322103001111921282709110033049493028116208818189100958694424203084949229793881343147995273772171040462129051881448473909214772250356168584444341103102178178022005127230501299281982073598239695925519721842547483890812561737480851884744638748351476936942747491134826507985193866599251897480112918525185009534541412340269718188461850048548257888678590194351134610354283058086097166825480073913651690159991572010539164225185497411422674798067942741854189621381555306529964967074348806027097609719535136016438325479964116148049242309526151959586566805511543374538891958234294870403546664353943924408834614401875323728403964972113684038167357867619013863700421751365362516266354364921824703555967764234103442561218787797603996638396788285665863336567956683794532734720013182028626764216106469177955794623511763725481546973232847806172685140754660485549676492285831513597239243492454185715183153695090255778013449085583908239105812740737190394638593801314073295051768635889617764156657182371479780394427116335163133685759797282498634888550455978321747161531307637475845669770732744957981053213247227748879155711973682186532218254198443479310384586783519796494715113325639410761314831637585392073246611986067420296981475133657618330758116246177526971953550577690745712223327493003124943230488926194735585747760076857639630843974299744998120964311354761618708031758373493872708764847961124360015443494001368336751602714557175047629331173448440042641978532881927269973029232767848745203283991507797715196393982362276509189981789830106789183297612460177888750227784655938452387956725850407027725777969602386110557780797042193602178566845826162899183830907841749736244799182681229028111481598888975430324758712509119515803861663453922541296832534737196468950490703009993644273437318496435640430848918270990508445855901892066962220383913429296735488715427756578888432815604110843619993355236436750600853858185001049082748591374210560676620281235238997945932905601108713750860439324816541141234331029159530215694088540746519179196218676413330781654246182504133983523752655803487015325888670191585768608214433213666567075354911654144149435786630001802391149942512821174640502357427714838170412096205210865509000342918066969313845483759583727025195828172111241143723560702677388094581716997957103667126541219479044569577961530655452658188491541817118524210032780933941814362254736944362335676759964747997212954310885698620470553466700858288961559623130104341066579292177936803286508691221262144760700425825904226617723798800154637620617819862835387106536606466415681245158306585456631372966618831946701697414392631105484957988361148615731041536567946406428186909914335492086179921229543413855799210695949648091384226586580370589936595357924844672059333152244664173474149413298887959449977192859398169392060284133140913188761000247065029509523706766012924899578171132366447104562141255719723117237087181318454943902857983435956279464312944374082323876578076199370997943846077941964753957308139542864863792582577065305215204599681021621083708036916100287799055115203040774072074089925591010858495288133727150952076450579199242278126851719221663963272231982143652408330067434980168177714641394734253140076676501382492944361424885950519445757935266549160251759467399450218775994741435577929408105684027740618987293992443285453128981292556519197081852532665324256676285986452582264542113395047411423354218236519748760123787236629344413302549131586080262217032416765287838511908612912114533816761700585911257436729054559521063083209134822117164352087803357070402001839638555595651937992761201139689241606917376365111963138120121432960667425105084012923832899634100880805831152128912203275003651247872552876423694548449940422670313230947626111464377875673587713819583967746660119012660683125321375601544130587922094338187725184887269275484555838140089953478887275652612784068394597090839095575296021916429909321009613667860540033413831984163766399611933186457802590493864013280118471486451107832052532636390322996186482039262066698394563746887626627385195508641484743697262303869524603375718090712723390987796544810285345668042404414315025242288650460957372347321758734248780515551181100352643369271779028294892371815872922908195995749868666573269438836999384013162998534350588400192112084837650369586657870375850655924922887658217589909734955047103258328353189187655739425828369591712482173587825878824836660609296060912373965231073807020565765826445029964499887579612777460101749099763180443508450751434533289541137818550384733995708421245962584325579440449514033487835627895248720424149185683405484708046900422594375782571267265066217201950730402495148284588644212163349265885672490718950858405410946189250077490545261583661243812994060617997283858451395537489075752150741496717732189507367499850035796603349913577394209301800224279930640057402015915860999649790876607566267680631725873334186352468774172770976098252818655004103375312234842194809739942339895707411453451685813534234319862445642192551235393690933371960377668139866451653941566562250648319225067962105763827234164712670311178515070267810189377341140937256817754583505359402016021323838466645116615835297921422441956416899134824834870538782432248728057200612712057051453022340969522693388612730169746733682237907688582199222215434818719386298575864835853446367831927362147573553282086492337711660519518921685881170048167909527500401811306033847426669549151645087107724525119121528681660222147073862460963855699933508230758822282965703831836850063694863761231107487282007537285696917035514651313707539034178693431882142900741301113646855476359063227700081432560347180574803057382838885705128499416379235935625167670739119587151435207730207340142002321024184812333340875367239366377120016519473770020703615292638048232095218265334068221724175954707034700701541692106233038589833165623690325933846496804653351360479362640049629876054694638000590866598167333511288415976577791778821427112423818968031170170548631856925463327202749128416862895052965840685058865360558322592051543176241620572088554334701943011797233935829456986036293518969927225230225435551613143344345333622214598551397598531964544062385636145055551876729256653278410811004465103502801480065109223694799671580613441093259025549417491754226679301891694229594103466940912747608960440227431865616034223726432789339484980528305847135054393103528500841135058835676525849041088932456086206684928407493317784415390340538043144241287594802341115322073138296643329952166383777352063129767681373105022862713203520054495054996940454211751545674788898828474413257028687704520666835884942066508685803038568103874821615535459909893553247016522998651020071074891494314602858533477858261806614832730953409848547929464520803617866452891481789325574589773792037237775807783102025707044686984818935416235995247854669698721976726340535684563964178182228124867259363356742435049289667804838802770776568783346999135818988460911601126534155055488042585605972539676535295143591056199672817940987124766771346385574009924941674059944404923728207686340342790418264357491987472827566683877932295467213610876925319439938769146166299090845152413961692506536186911689879481215530425883967096896472119215421266535109564339577138715850823008959147577034189081250744559110933416380353523709635256420301246084090645828484946641759741919338416158448595417634167235392463750636304560478227105148119656169174501457282992323416881017707042584564083290050093369710638696023782435293162075973022154521865047224667154097669845719127314776285629909891821480267032150485232144574650624682019510410511611495938847917296834007858360498431379038342074963633136662697825402313514208597520118055807294534816796968076566920660442229033744672554789391396543195785733168423750962976256197485691999697546083392619044948645529499186065385784952283892986322943325579943382295668311975989818512042232994632065824887805498046618076634463699345657656821052647736642224455860328806342440404157329251815114800710527306226718682114924538296378371835430901225639333661304386830328333757474057737683143133429558064941080785632821247671003729860460723917498181698807317979117894085728295239814669470150638385614011701110822561121276074805388459590284238611277376965872363589718935929813832895998991610726395651733459351679477020107133584548098717542564013347807361858819784147727090408848415034101918767074034041531855284462992435030084416033223449484107124382408307952835254567663388750438254109081991719038545795703100164503098783235711835712326356814123476322193013381402514550282931839732082031030077604095250959995264837581525108384955796754353185449916253186062900704383435946608724622544683456303644301628016686499462452881142926682022659741712922186413286158330292357612150673082543495854114483274467522203594865721090096032141627608475844744326382977511588095239428940344230003382768006574785330008909830370577394522565949338504552898250535792896398031412725511536187645644755842797619695651817359382569270003046536297825518856225150664844284360291102662200818003911309792747415930631346048553305257920920157515216499684512742083044172589479068656206147506880360512904050208545823366161898521036601872407966492262405998163988992987774972983169984712143649217885457105923609498323872022763013656181067653320833373371941176551858941151224349767584822480083823149733232550276918587074626871425997480643754140284556793690896260920642013355115287815657985507348763703007982194991330011158872229502227593535086873292662198687184162184872820109470002028750314362185990038552681514054601888377469638993680785093960430818175158512242535816458188021233615228467221844347670828123293555892649375841223008224858388208829247136219194742214159787451699086357556753306846148561629609999076460256681217903557515953557100982785995180683298621854161801020047794786889939359953430111716066810612283901870115352103592944734845297667595481907211936354531011406990086229316148157955300865945120213042003043418194977160723404746199058354171224574536678830558545331367705224722988778741295206246405628115698705379352333788895534227679317071144348111442590039820517349490423101117408555359674397820776008586888135894310290747663213267179539226163155788371289186075974529651861130150166226284213820778948485032348882813718156623596581995636311051650873596130414135988139730265475377875720546343119243537766825914092559685983877948727196061649334370089012037279268977093847171816568307985922005848633417395326155316033883959935645328852450254063172237349886947816488206822991638249176814200434724027582049024208355955568326526575567067512424735222151926835876616171652080752295775760390185075803178781862626697831585858355628755284426019505103171737647928031127201398191441169120242359251049392563991936589761431127918674250063087524020990457515163604914046419849593179949921321026053061630228896434140233749016579947091604774845959313751982332794388318209589812338777238153614625376344725588664029888389347852758679275319074445730907029730659641129987643339470363536421632643139605427531913325289815130907782232371947241075473598155189315828585573278710098850344323235422417988489586487497008100580921985669183477044429805720599607202600660589098990861133902302043644442739645798123741960901787975702442960714747209197900497343175853822517018121990768949666275685423378642578678730734241355231899427106135511598953806445453903218369113328027485894395812844289634619479446311773940317011181507129040790148234635664553580488374074714642794179455200972813359443899609369770919736318670958613390157773650864305069591142941156893170388750219004685798224887972372480609343955618882410565947823539240786647071184764179812798261515074363738212990411981054372709835993617277679353837663291364409224761006626361649844885194756150511622145620485475492248044718735518992759215904642830185695091062936305495324355312804791532566088179406128272024677812637888812501320642325895831365334867187031055488299850588168839111607838958698516166149864091414165699985602394520744808801900252960371524973294613910856140490304397362014660162740290615879594118505438836432900587061101662077490665185652283491988211199227143753388810858204173337384742194563791248590512617550367969512779573275756435406305511697033104600318098323277096600948922369367835643970619613810060050509093988592293653527958088657978559288315041062008359004456373773386613245314952598899071133587661800010201831239239374332092274360627318243868761415007848487387007338315899678589661599309697089296724605751812916358004957016267142924544629897663621161430363032474035138182389141338311746340995443015653036257875914776165812996171115406702559273110252777532979969713540537586441932659605520928936057740676247803214667961298703641588865240928917606262482791431357078084743775883315996651548361539675243832692212849629315031706605662774420460246713983384124504743006172779847910023748010635273373015999468604273348676265591702185468451586408428441556385688070648482289684766272336576548349205439227031587954506094118487185307322149113644281532990857893578258899435650089778218060467438502403496319938266682094318860568594866505575562914072962158860380816641549117478331601182450934646992982420121502811115843144472786655444276496839605110010361861543570312528097441904245786417452333510044247871201015965105257219376171618617068134395710827505703593322777234033628503877266786819062235507290347452193045146744742499796957975550043440881962281276988254774942254987535224299219769059410646515315475425927606430666162114683739028530417352966264015007606063909896969396573805204609726820503682382745751894334331701446955261029371321415127608055414197398553790866170203441827376718692638534129867724560185070399371545703632792935666152322409105964468742536933248391307555319842794150049389645261246157663093362825341092611676183484211549043366744785081491703101061316553050170146139070306717211740600149302441091332572829221313737483947911395053945596739238128386308148447925649272854647088968021167633979753494636234643767376472244013938774421745847927738495438540260465382542848166409721863409398500315349762313955065147781139226840659785542056192568873335556613673410441286468327656399486502601739710458489410482915990108163043308127166840841181878511456188119119141300010557115320883216120132995086047548705724617532843783797565455097625431384489802832383477323105569106605417468626725681857288021814459465939629735209770850421405312069364481674194660033268659591350230545790162302420664327306420449899596480875199733675425093853223329531336195029363683873597678830820815049680086859950396080932131020469065071479816127407224310473617923548812363440355288515080182419934984476447902578297085174937232790255713042848654476455784974535413247650930720766255002311868809931176385919556650287595498176590607281479332880470501637645566473266525115556647317227620384309573574933442634735966157411480804700256807934986966823408032341244863682426314839178210987410173833453201543008977185582704406066487271535636974442960244662852779197627020380966520217177366034993055360170318655148922577757971807186615179413464903093279894280724231303766002319566075239418954832969785810961849650761212322725798937798330127248671555264149670842165335934658119034092311996119991727667912563278054577161032378712305901111996088729739031760498564918173720213898881646912987751928523771217360774891087912053062850427057660435444257155445290992024367329720149325333796883313268452981629447064725867944984886164459163383905159624359351355960755056969539462532503632114908466114431223872493189739302576441205866687439892440755210241000402234440410015759658680831854965815295657689992573596477534802513775206457531751316903495212619485397962400267179728128649158457397468836399788691854599101891554353068328904227117560936416577196790679737871977630851481508585164493836617631221019134849087704986665621359852558374086967405474586893367895194646559736613293326023271358964507009253168058513569870415459279111231171690279338281823554339163145358101952277191894890312914262057508186223230088912060354376510990626136455510882190321803042327425286314992578879176167582409071378430139385363422851464638527009118294932512222666886251102401473719867830509946776205449104978306885614848628664470033631850853096310067750073009570800477613581300801062266553596989219273145954374456137327702307865854075741421438505801208719300724688464090044106995368930822274698707414747797990720587853745963199700582839656247095052155540062823199921966282747210004530283885793879593275636800164063285326270331251427760497697466241101023761282266494182844946221843969625974247179232868027186092318611929218198067864542643835409670577116106156301603901817127795379463198073787240976393221464754592332715653275910914902645961879687032795903016350439204223592473383310798504264725054628601753912112899050236700887329013747053011019153802016454799555675591590980312614959203598824078092000078727650534439379715713128226249748100637503838541376941373692469988761064753435753163011190421914066705978590859271563188898842319274315214776076152386788295690563280815540651957822647629133765515798869128394170844011273881960347034028138888222422179012922841447498103300693645104104238094788512403836549816869929105483405659811252640187126855419290452724834261983864342275040980506080458008814642190839603256999767272973906408358673362407301702250161206621126145703860463306220608343695259364391654699385694304409267449132227347780121953659056094631509034195020877982359223250187760884478356008781258098398019587471373037628881386393874784478869940538226481639808996546803859309186821684704209031220646177101140028779424276646521871252249675082837426325506916983924109546500562047769685513913935453801947987122050154810844783889287118712574882989602687503166927003430097557533697866500895784551719025495500831836997115754605455970176390304938634686136577974121415810051681968664325742285197880703702696986096348651446224387428718435236063024320811902126688513608485335585893346316674784645862989241082496457193297315995705501593724839997226743752359242038104828333549003191325822566643943437029066318099724258664222291806620104236464224724197780985358587153453021564415667726304539819993481791653273809679214780626275682085513070813378081106286200190601937321302053384843026472375138064887835968373956418863581111906701570956249711803284436029537761620925781999296479469253884882536821978207781837106215797925761024707147412242513468587274138674490411696276492674967864199200930109800098398469055752839453690889417237687077880432238128073708508607651904349269234147849382973845301026667337800668647687263662380679524648243550544615139188932323649155951350366045583434950032010403778622261116519209430667349522931588938730429470651625340937644189714315870348815177537045834587223832351985825508068437994482371156774044183131624572345079849659655775461535875353559238009145904831064124520995258381942099402339371442745417311541510010569160274799549048163564316467792669314929620891884520121546605665082292039302143687616531841946909190645492937973565348367864612192645629908443727808584415456205564043463318797109960097583523121116493907747420338096455661620496359227189595816512509842468402191381793994878808165413672872059030553286586590950764066162053366074556910253243440643493322506363320660015112930853058266268237692862741944753142783472347685167988858511526254943952634493653792326545580667475785786763000667252836279450494904887033498376617236585487286179673735399789913442322206826765289637924620789165816100795305676979202304142983163098780472686393102752025546521537961376489128687411230405247908442941489881246582364385203126012499648932293278330248756580026838498819873899539128160875427094086953419042798600101573284772773907267299611088423500587580427316226099297359404496347248181360705844369932119718151247541180181012890604714315890129780892558813578930932718185746041008530198594936328050911143516977325440396357723702620566550000606361430574921019745711627490652370161310295841055043522385292392909497509904153514938353170120329855326993782789480805513137282180894854873395107619043759477544110237569961904020403474906843135487907143260317727657366721670926863207341551362740007651852220709042421634724908379708953039176622395684343024073931000927639850698740864880073055537299345379986784104229484395722407328565251009281156696567680414666143169910882039063910495773949779437861472868425701034160506013928670273159476821290382884506361848651098400222578196164773861488247324697779462765731051395167887915539946715923695634301022981070052400748802995058796070702651723188407324992960534347099071758861397422192786440531938894979915376047759977727525276998872101562776834491759983597415438219888130267096191587302466090294771106652418273114521763246672047662398454294902261403459211194107812932195226796083866258094304053540458199770582771626214894457746469482308849414849943696668995920149867563349542778897780359051485806566987674469190146169433265438688617315640580124560691131795826208268013712582169658536251593198657124457977278302518813458185625068636082560422697132036444835079225549519436456963769526233697007934593161140011934572053619998897847317805482543134019280360065736046151850018036257863326435888754779236481359202720642787545063730777917013919407945827403408757641452421668683645397893016564224490984403745245420671630895202443812893901531283743484194991246162111113006096124759601446659606284159092779938083878801325323285982528870591935715053554464225179004021768064097077311920833345398259050906667097034352099205900629341915843609512861566875226784995120970041822921881327915858646057212377111925289271221886406911132887819918712723991686792917499773505219403169403208258930786978616073676862860819294309096901534977264131092767685503525140348967935253447427133226620778471781128053935539133181486549205078451139808923966937921210194594524159173386595699161154558346287285867355018277230242372815561204538353339951930072134470214178834078380698667626286210026730848752310421856969280803142550275273653092192112566228928565313848620382889135539475411672005051912388618126992435580043968030268900828005813073037334377758632139808663477952412084304744993246681325710094969074983494457802958032663477245822552285988789064029974194120254969966787755275407248134193463944338784473899689089846851142958445293547761242229509485331208720952139288003776098776958368262207033501306944686067555948647223934090291686120212700647776783413526478552085726900429714565101456042587480319383678654721745933404033138384255726227776213060978501971961029881935266413532079099850525174932374104585417441575054196807835518547760816963455855242923176857632789765291240809872075846878852944692298627038168482896884741204191395429958227656156462885294311776782976847940958786062136690129214887388108237859493035751230314909389103164507453177500707887173938005432238105735565038264493463371540292194327294380181502263031275540339008426105943932368857895090065845451227819382000997622610004249072421335883783572613854936687509670425795564916698941827908185472226618789755272611762584567873607170396612559778904839985599715889392488116333342123459699644002453286528221968052435769253131182195916912193454433945631937525590100011738025504122318806295352992566327844635024142619642125804837360933504149259535234931498246543379569186838183561808566954670842745047984780684047813645437338791849203627402745575987249481193962290503582445589875919337916862620358803980232176016439871655534883957728213259040783653592905849067001059437996523001149635672267263802059092026991962263878407589165930861304572069804091435126939005708453291271239749518144296585810946483646801769929713814421152496806968509311741322372222883915598029678460106456581394976432717590770629011792210638842154610919466700556680279203725218096533281316938816928419764673726035990301151985263669185499553448882298355915555690083221889167062848383633018629226206723325160717550560574467747862188670903509198194986783754506473549892332180130534423621329517176467347919529062415253011271726328563770113463417594365734290736027042522136568671428637477457506369324240571254753897549251663620881613609750368821437708234106373632959147132120350857254706274067537328246851995266027584178522324407121116920966052305366996292928947358418669640824582819081591040671115334292941292278539290708155642578193645919229899610677078797244377334533192527097035636225382198817143052222916353564136261188605506564109539771137157965378869011063111835322406740736771260436761588449626891431889155742564077324343934821844348890326347976225572633458131948684238788135332644719504446052088044787028154876636355459907193023877677758481183450064512338097035180788925097824752062930639536077508011487447632111089764871646831683511208597164236573795860129765359603851111657322949216294715306629507299462339223934926508597729687864488157268196067153143280711287347698806498722346061941462957948388839811788655394773750824761850946107581499127720816707466388379068696604184820255363238322592865972648647189343546816546258405003199799043003782397744305478795458596593399744541454248477212545428357159004609947372562370830654422435839201350300003306856208164321131597636778989733908655293432739910735842012218646120161867081359820541993093000702233675513806487349392414714938735670022750937602876853213428588900690524832913440814103250423748400659330909469793448727278843994260070846637725552106296839337686901658510238975095956875064936857282786227612380967342310838468911480073390554150415022342841341213270461056849044947742841627546657279746870684979251645497198227556824086384320690419852253966084939687614561909848309697620506973392544350295453615010226941855398077255811850549994957000603559360182246159652682433428038703210825528209857413845586339462301181920438794273737035792967162689548576489762241213682567285626652783939050636050262859636194116596414714006580167034059790370986384660688380975110318683344648258695784011388451730581228446690881980075381253766326221717289704054105658604329013456401319943019427886523821709049297115267594722824147971340431183221901489684689822514033988183782169786929683434700435461132445501836863671999179624471742656989267761893967586996698640590343963992566773909080978957359746065300799531462623244585263523665877393533319718720058099859002533530225629538970581242485521057751256131645510437660980666989869669310603075422884705143443945521309903151816436872055437511662673197215892964301212066708995636003960227497870501357142383458987760245954668002871299429570716194434460117618903780037907191643461649334662640132008353393938440655191935718224928571181152894325768984732750306714824299909333785982743315319239910038999736089303810597185496556609723582502969591789110235007048034236594439078204155653093582787309507496563359253092274701626961308432840643145289069461173899757382962140641895632719772012859999607546852482187354585002846457170092292376320308330701787009734914437634780106727329657574207793282802114503461055739287259020675870437615144423765512012298773386638655260787667302279337150341350501865431231489712200641804140764820855528076112327152944759096026911850524181212555157748806533887864431682544204178624573379034627311686733275423989506093223527627445748245345896257449029667012343155512414986055178676631699681169994356175608587288978356056491281444072989671574291598262055856173028415734916811555886028870561236030622772904598569115503833636239339416443101743346159109177210776891657340386005840009155078674868854632512777016326502856864521452432795877604505184249398597039114231187714583892066151897264488390981205099642500843309622451313785293204313953322752313894397703063971238815801489947728658267666240323086356687214267326947220615692901369713625253053932325127675015433830511149751142301679448650543638803442724401154424045022748101883024233529751589809568739284688852013419139123730340717887628187280121984954190502638929021558306852175028222742767225759315428229910596594283554953910448049334571373469877236212827869597484541468735003051972732848269532887208380196069044690273370402184279139732709839513092820408026476058382646081426782383605816743428444506696996942291277418078863696006512777400015506937126587328366139262150727284667093333745182500170168142613379534546628534272408987948154396560541758072747106635518732074941858564866214782404188728627083217450453323887081009834319530752462861468028154506655530881580038526096809989673318414536804467812955766331260899279830537020399986876778837958926079555499521519825769746987290924301328841555185987138962133081688945617786787942699757602505362725700512520424324252890841112698623113980175925081836871753878679657155866232330537733387570935042904402757034445852544701387516174788351472364485155310078702542938020470686311122206052199659238860406669407005828652686183232704139785182083816569764393874657592184447608811286286726607607461095393379579020649925604387099946612914571859061527934012534173361301788665647152974623762920786383530324170120153557316946508508405285392866212534783592166328235825052340282893646784171469561613271521165344610078184095540351738329429185425309385051787508743078418512649097069603617363822756000992841244965809726309418401391752446224779607867745297806276580347801073328580786673939445068786063527288668785717195334793293214525112119778401098670872936311298094122366007791668701921008806262135490518560519774934313532189976936204993088072526588111641202716553827086319756078403625387737697998114780000889165793298952915285101341843046804538535004835348413153300125924169903079712968371209415636284399429055801430849820524676201167235281970532660656738996429548536123748770330277905205846954370318020222402035862897630148190963197143907240436198679970528659578507344066251872458719531225199097327204140609937884172235154359052378166837967768776191420506738670605649447118695451989570130554085181680505647073343341254883891095954930288559537419978751303368160263997046497445416468919661095036684326659423467388679863971365377155653265742899850706290448087282424187328202562966328998131261784203062263314317841046963299464001028288820593734751100159131381435288426262989998254333653081663905597837289759675821056318822427360861463114212759815775993593706783912950163166754519968100914539508699294337280082176928043473423522685182997351692355169304173494024579545833985488100719841539299148017111250740053184808869560667617851817406618411630549409469045730366056801375877149687855901375007521663860475560990989708867409285599969120602334784421994551499401502922141505154319967578245271894769498663942127925975221043304201721372660280499773319882861325758172000216607502223958751505288059255309468245992322073123782885183002449491744979104057693413694527491426508438702581395122960613063585640392219316173930126679490799393835167895321712446146265096568071697235553430740368500389213903029260553495405500683485675359204601655378346083444321844966793832007078565678059542269947078404381970502270125298497656376054132852200390408361958632643470435215105673213476641821825987155487384732352417472832970585097457345481629751640586868646832529690050085932511513568834360536071544373662482774598327471564520857531207167255564276257735316668548673299059168474587275976251936971353508799440226625243944373797223528017112477429461592951899826333609120387399940422795863927767196020009230933456518872137596941812116658257825368972784901524772355459288706560641304509509243687184077563701568487837811150635182097744383032490840239517851481373664447349020734383572114693130940496160327516467684004343330698090700318439200502974786958356105548303853721115187168074956591739443179859325448761050435682712281822386531745668063241629515335319483296850534145040445151654754624362129310279474833070001081760166835546779500932482022512692370383467256618335548070218424725833994024755235771198905975677944121403514714851548560739202276045316711097548277851537503764447349449675158646369464649877046104420589223618324922818620057528255408914709338006088517888151675389343820569749006899927776058996988235386944997561099334666994077022375829210092614531507611688804990785292610178590013296416324406966850447469761172803783403397215254565843212334208019087550664514462563696536375972733463823266358280667230875918178704552050386994412706727838659415313806056649573691390456786382740608483451914469020705358973337179680037936574753365671376249477740921652197157162070974133277895132384942137164341340924338744690116619820579653107666186822202691033788878681687684372271749723652141603141360191597185416143863046971119451155981631970327941817245239903649204951273083750102715539770841972409371661681949722386596413956144815746994938438881013057171935259661773982721639518118712185800293355033704149254866555265042818980165415429060929051938712529078544081825105700547830628673285084075353446050671642481660794456677096639429921239495262802871317222096707419107365027286378558519405674991190979298972194444623558693114400270718310354358906301620070823472605607322635344292620898211910827217199262904106845028260279094824504925497766033254665820780754408311177046324999940361984191156063631145389943763611284442827422175155395050117833886092340764178873802636737539420475671438103460118692753041025344171304645349875392827281206153597299913852339172039562976575121901749499049098099884251113347930572988627961989328282884918831662248426569803590412893381379894897139484788058827705740359523279867252125311488937010634734943641078676796137309784572221566048072408394537944499713910950891177324314337021029827272961421631916327838404690830881904404613262681255148586136184341338732816281358750448997764863311515893344239720557527080869605253414153488312190099198787297349200588675413376724096994848179203126941557477873273404679567193946126843429903567240342439648466688596489502044050515011595658675957445425639778781673416480404240413717098698644805723560337856162573878428742764681010053630121366404092391292165814293532084887592659977213944403833503165000820859855394084819091952697270639898960055572113453857147039457125085056979931516880571675186737583069306319467164513827747673923795909616626071685341672688726645259713106579356980809800365114126658796579485885460583326382921227818614523699614461743219396165321772909609461917401875682224336426605981894869027643513286091918054401137661237856368723572770772185041726307846987921596944399295502530726583617559515520466254236805933194515527795107222587958472050558661434993726123575425077320437856818695045403073346395954946710317211747778342459674422264747836860236354408982608265061524250597013529433094726452350336230989780539678506116242322687460707453074797759711370641178910619182968275554040100715695801245915184180208986200982408183483088346551269611050037828230214109476527523077383496839122898623351964787050000039165984797589840085207223615197698101910532880273752723911582613816878371732160448270281357460190572290785457279380143871024276836491398045130727629375559798355693578464270932107798989888792775160054083868651493071063405953593801062896280191629002036168460692321451944152847409971523116516508406336989045012826236056876228799487746083441865455385197221973015626622763922760398741584352614613937120254848749878251019777460879990734347314560034879350257446009287416366106213085554306627267580369607339526065777360631603854005239042690548976637255858878064869298247331791101731321300869301023055134388622008343745302472105889041206078878029881900259966919346880854451333268151281409140082680415767787758780102918064219902606112673878783832160968722852148628347174046515562881324685114672629665809973606081813992992857687591245201883875422832740015184392108896074940707870045642656971162926648002955384747998550024725359429823747169904155395022391469841774530888964480855205845588534686480231359636281735270165051704304021819308579421163841307481534164265658089870388990173270018078216992283141919186449272889166313167769780090388907105124427535417360429092802253425869931848912752029631575902183456938263239252410059080853559190272749044958400478634938371988391651825412502219501310787967819936818995474091089922252562472241562020401742903017225767859930050931838298811944158914731656841434277026168621201479725932658046271699658054888764508145829998769557677960873540412302973693439180106734553563736892778474255775202382060368947275001742976899051941502285787110214704084460516412073483949868700440972402887962132091474715817981085752639041054100010646702205439279375705183301183964714860169468279401738398105800016715838340216068950347784514129549445706656874224794698000880712688006462711335578820942664335656172604611912461339949175101892969638069260905503373543577082269590952325308965093963061268173811792333994230518958961449076287814594676719096646917629682528965513202749817556460226042900629373606854476162699312267379524675600552032580709495479966818967481618553722398338871946359706027011386519868121011629141930092061205885732624614993466905891234243907399258568877344764039974144241304434050573061104799217552138456483475604247741345542252421367784615283114114473796600285297377379552079227711946141352141903386216461946559366858982697316816806805223240371142414427114055536932351745261289847652684716294351980064559313845743792681250736409366088143527364118752342779468477070304986971866281133606375360947166234614805099272987784389752453495863569185194128433737463801526416878409880322129193433280769728368610324922035376955014248953691551708807206682891674815345496420242483912177668070680097107391157066659960016777353336835830520271496543231365680749760032759604753234944686025602006321795300411168858531640079965859206619918854912393090407724206885425390316729392825787721520208627815047054302918314008590181293451762168215332776454155782976090991746048626309098333417694655900625272252173381998089044607466166708756613639478513699039339837000735757529937881968382256212972931357813250163352757945573094723283471747732283732286529184253999182927538857357029367130467998625756734915187143602633671077211750645543941459560503241630559204048599144257144400776629600243093991568798762570211865963668561780397013486255313779636804544805937906812300497510117456005028904870381291628178526075766482187346546111362802655041648410169537777371025333057857185599252652083147820330149639923976551189411141240724676705510680051201507927199331599903997599354571253088706806987904850788842414023218067675177760879246195636630443027601385328029089580102148470192777470305510498170208285922933567148103800458976489262700818876396862524327941452077633714416528842672424261515892040138074622791234361028778029723311017660018845941641790015549655239006585695883928170969340845569940009555991460370025905269740516932359984853603884107011201014469443362023848355324218251706738607459458023036061952732977668336187970273066856782558777476011465036760905813971764415102406091771569945417239737406398906615015300905795094593147280242700152525800992600124294665838799930504528171433314053185850039343894900764083864217952701584783928722198328354153752462973701019290548427863997341897499702449981880369918619343005735813539386043750745531244003011122604671784118372418216555185066485325451309241420423258931404053245419353243504052133089014012016901991480829351700573265989751034653221293665986282191518481834882044119203968986556130448510479120851752848858866218732098425041901555143144769757590245309153875902942114773147569309621254400962840914332218134639057479597034619315130748044093236294121282874054977654021049785943917785934984371194983510455521952957351768866863847139078420491436044107078501560726181057967985292297358074351266067981456499087898443652466127606252536171138796628007938320265493462641512492185312409922643673600315745126012841901002758163934102164392510641469526806215847204128070216901679707440515411039222011590515608956262554691682120423800129515735330742112294396824285145182761734477910164469802245941680811215471796431188715666813543723807040262514227964601317626543380065354576541278265030457262386008365665368238826710579276981395065331504581654252869550780737424428001884583616629671049199032469977936560481109465481467060617559391458299762024254143514329265851861335672301450498915867819878408483540369100262222006556506299081764352064282855246922945938298163665068451994888571054496245269190272724059673045137841649102998410892065291113538714854695188352183659976681713592317904964269681696612545850809361234060735437308530939479470266033304950199081408216057985438235296358919815587030275770265779147209693557384980172325677739080997928419784564344710161320033661752347803555074115872349199089403231216834019426202057627584415164170043494455795037638121146879727815770561573666980159333436886229082848256350460274122312000144582628320375743803544260092786619825966763750540676596107542019395193488953250006469973665726240966162235593122748980319155237954139418531655650075724525244544925536098403481058717658936777486600583143152493093819699051084291951847287559713309274681525746956993335609723893064767648634364411220477624521872163548264110478558107539984363029560610780250069198472551834590123249389904141351928112562175135352620026991511990824535477882734862801675353738063328643290879839171206238027975017038581726751900076960673688060098014205285283524250884393981182716679605111700510653594143399804210412862550351935902181922493585696028574126856762287711060303552814015216096007460205298570301170484055395309848964296623388421835970697838443576673896610008513548794061732818373867244090287191367153357004873965614815023488118760825007319704534962733108946295016394200667644748592383520738076507638982510275501640901616751281104048845173051980901107677908831126051233993816130642977896391034153078842279889484415963865182348990844836175063432145479084074363056957109807339214930038623171320010967327911491987977554557161090821315424259687362411183800430831617831495628352884372153083054443641285386772825929781556705034776265690882044480778764547402784261346106418054925173487683200797259539499483694686737943132502481013000113535069324374960955507202181495578219386598833723505069512050187034399608126543897173357657193404527339674438935446788960643058442440191385366097972539246630481160848302488142057132895278110953702788035121767997125616407509547115813270842471641457474827815080688417744947864752095230581804569708336365050382060173035735877368336953203724179891409277513547524874627515535046161996314689635420786151010370390568710955676581614714216041034578157446223017061353399786814240257258269200815436995852236518039101035836321805202998986676336373851268747253962660952255794463050083040260397159175389971087233974219565216983226077824727163351024227775086076185480823208516028880491837492020497510310406217350436787509979155052895165257593720227186965743170583501332610888671146895792579793859323151152745436354836380222155451719465443278733962492393950135769184176291576322730421770392721612825145462975159305817459234038053808667050292711432470145353139033563590651087636472402950315656648669537377382487061490984058003095084657697362318556760071797423286641046545421268925814235292236987888917138355434041534831108566565965037839931822534930745207232219750257990254208464148737437772154703874631367230354431615110781348244126168968889531587864323243321795226175798324398283735469269367247630053913256990898828639917619468548602569074890442017005152427979019070738266278600913174553840897524176424714005312405572573508154585125030466791356307356767485276583958981159572949874497496165863155563097852858844564082501477741757795959142464053794708973221615912061303935102839090627351195731420757380874475993983791457023736697967451350433112101506927148386320970058198791713606400503309103214274664259156070973008356314414103697976203568831260285523668157369422696379859400655193727053942726356113149486430639225263975522519758657858384720155937619289927589130404119167174743251914708953263857862398974399874601667705630766693343110989469613300832937177094141731154757546431692528811748208389420189165611603228560313195751207339945895913485451313903710291313038867014862940517876581933849387207725732201454966691683765638551005313572035911481582818056593344895836712845113313027469997917722256233938669585405780776264779307431756376730052793342127391138639066684337696227681066226860484389969743285643097664217410039899322763867557675639578001562761118166159355358922918403373534608930351312647255059969953057200146288931688392294751627704679824361374813586082824055937711014292924776668055031867046352512354579101934456117446624206966031398999614196669895030162734020597011354395249612760779905447032650957457387860657246490535090167483369936748804854872975584758932922581870000742944963210167910782327505438126912640226836680376599965869861059098419334942647974811580249229678116343883018826630565458809018588872400627745126088192804001940078781084027421958889745985540781243977011169554664633618993262093125187832048679495906620512031801807027455864285825756655894056398820655990407438167074732979692172190548080503879670357875933901901367525868504350066736646003400209721458112136751767443147653512365605636747437159477982089231090265170809644886268076559767210994192042567167937276585834124203149233832013110351920326267898130891783818068527760343581231672578741823908824444004785925742355288131237440265023426992057297957096491276367164615212067775927987087895195862165299881465254585112021691143491945932224164962643866033176148419307269546245077860226041823695493421751818019589748206518993828908613786396170488723001309821772016203543320827417686315525817320623066376485443377871902387237684212179421376669556808905394991467524481969035064486681232331226562214766758156049715379720726705014943487137354152573145554320215179951644337474694373765860250473424832919692130189838214532756459995974825650445332188640460509919283726544417389855912623904862587793655366494424593811001004793073373838129626911689752100531678953863764908119199527541386068992190132297538898726480362111998479681132926899756511100254366598029621598995556232886885968393467348372588915631508670858939442576128011982264730690875526940848881582964171685136009503951899676916019167726871541529165972877837441903550516640540466551365212220178399116902644013105287625289360205468132682388218275947490161479368003985455232281223983185576652818291658641553146492254597603386741834224097949012403691647803913112787728097420180007713557308406117573564162889581556614641199875174715977035277287980979811447231313176830879235518896862835025451669539833703208186510262315555621131837583767848035803126043674307339427064222976996756753710512975099891692796677256765818345197912459794466842939729510002008426334728840757629415642309837427646333841868661467442180588971224644692400881933416430043156287699515078675206216565407794137730612791657077730324244896476334373305523443999689465065245539477248240962516068712506382676498839644189996577533970883237731085609550320031329607268262789096243123760742641974409446921496725644315441303574104188295071377481245798340502806906964675128052281665646948418942935007794663305181528009209895751973326391427911988126279975854883445056209820195844712978714982875977325024103806769167670622350994114978322870333368633056431643113802412241393054345268140543638656474125639345688805593715155858989191955446249986072679194429236054473914410936994586746868476401341198582599596097279553683443311108004377198920047437354166154482664142647597631638277255145053072535031715002606219335710042427766964964037048582744200907776963867338038573641190143627297732424175722729465977554789603115080817980590767915686054039667000016686176526375016462995805764316089766313302992003361072326280430945182204692931292213466074232866127159447166680042992256143776123420117485129764487153795086456133286911235514998243044488419683184342127424343318558965786456614463400270464843515922787805451334551393556926495856197526254375308971359983497555281377599212006462428774477019481757111084914425473806140168757731915173494786434473888030649399389136344622528022887229609904385413201041148662623447282903421312786983955527088295718539960260744626064263208152341524384842956935206488101486739027159945646656769235537038405262536155735625542235184196217510147848382886362607358753914970725722833578132953595525106329502086210896940202699468820580062661148682340613607511522364620387130784306303762591611708155903694397893340413439389059158827448386254696351870573113111040130056859053390337677568017978502703245513266644742857960576252235172954051838412381727680041766780243488911649017176660778356570342394380663233968984925745123743715007126433948462529236683832322976510507510035992842474020242912921153420111668744979215431367831472308765112484030797984223113227324259813319735632180432948378790484877289504376813854246431110734184627479985002526914877906466364150170620371248822832715801290506048944760622253061294124731921935323787631563127598629962797543212518205521512769341505760793199042728877763063164324168709442757036184232468080216331350298401044665306351875132365823400035328173386795366973257280588565880108113961338436880924863715497681381370790063803756219173029079736686758446632088349797413646304238766176510664335653275583730064418692837111944747956231598674407444942435464809763711282060262746645266032821345273948393795252876794290465394430885073792035980591152922459267953463833704269644021805139618119722492816139120791717553800274082360510265931415800744785304878249866833209773019952365512844175055258193396579349057922386552394218975010613754722316639222878258860146963738282642806993087436291193151381647643574047582459422895335472085103275752203414237002051056462696022465153903936315710594413389381676762637296936619453387333098871740032006141195137079203124970031131097534300387756052103427153451726988893656365415960291364421756835268576833305216427871693155031632558225313689292674130328240192741757183223088491476388110487159942860204686904754622177392034854497497157130647374379240918754482102408997760715790295236840270460593311740795427357708395575908639656787520699042409495270457525462491040822325108372489502719934012506664322737213685619651265668387081564437929819279818293545355072470442304478295226702883414039488999586681695569401237612648296589415408444129654901379406146777496706427450456299845850628051699634486264122005451833479789743238738832769254548259435913689174481446964141902129859916001177260541908855268758703321594407314686879077893480122617653239224160659648881319000626331138335493378827250084175196232296737384010896802580478222476272488734835418419735706803491640470023915895398733309070761201369740697592362120815379719757170801228372794096404850748709767357736825998117792143838500888183836742880191428248341147994949065421949188768300272974967811120415027206851504310091211699595087480086733919744769837940884154429131570103501838558717108729748096069827227814728705810069703908747172576839696963736005826365493607196214168544013437350932332231927104900575321614216358902886186769944454683475696187560840753387950857219335752092342625899303759676129662984706471580053192755432748538092767834615550870617325081236509631615146098210135626694829261230200942133702500094755263594743416353619534840661523721758666278206139542520786732775390002651054073692170917052552115034147690925542662545544078401336671607511047113471655422530327630546271621137917256697812359416035838886393683775710613773763588275712551438389270247372702436537004904359151000683155894490543909856731137539092995389033235685046841176979097307763803189569264811089161503414486290562447563630506448703318750662230724723095904951616698716301490572329340705268875152347173458066529177092468365268359524761662961176592658690632679025281455761230010380586706861437417655785776645105430634396017622135477422815193661304091938823929274647500019503752202593604717114000826421711375712696009108808094475948618742200062598799687559102739876170776210582334579773532491107095380697746931528866472262923720668335706011436159190175155106644991857339680944530390736217776579993919020013455231549070150183931886788259041398910689526728529179892510517078060099574819131152229593878704937788946047133228586509327546447392897496275606650560279470929371792308958591977692631276937658696534548884543418458552736588661238675393180951916056843465278222682924299978891065437573492042259870709231174455636991938450501243898335625721782319806798401612382380952613985252729536518395395858588745790434521467238224953160523722868740653783892835032383106394703260324754638270046304145551582987066047322816335286026000732056952308649680576152880838083794951933651193289830249056292591145843182628990211922036654131126532460483783863594123624091358414381845393660809650512605305954504393992688707984924410977032057461075699756954104361708748285460980267353139841627091518465033616478370728847502065951240034045778204559920163343394557375728342539530070724209056569166612846871989324659935832527223040334224360858526105927514297041713487830744666039510536050532490916455383204861941070166840158825834528139371003778367872429188608072539430539158776484027344454728466596573246171201914304059978225923002761236933060736379890603301618542536196953952023585516124041703539276179591252456111720505250346436586587203933955121716642814549352277638506948114513281723939008913500714374101475402443827519533792905558115858865024050577340970382295048226783673266850500499003641126143737916138657137172995130490941614205353846262557749921985533315958460194278457154017075416628622974089140540063286145710246462014312909527378363634650712408635736906726614200870923010958441471080263400718856780520617226449534143744705418338833758149812079666352524954559290854447641299792471993345228084798756175898676703383943513120224805867836119684171849240303007544554799269539390047241366461993032742498289966627786622377485727098774760231040090218650096371778680687080002464851761259384514639935725439245551467152690967716333966439492880342299156617397730415424706362880760594855695622209182599447422092575853438045012900853389408983987294135648539355370785805829361877137918573668193663248426689033705684444521056123896378633480019482352361234750969017468948727978112858016996933865388395646820015141379747515738171240129011129093778017573532964078598040656169918495947387257837529794964029401098857653925405026702246622288835480584043866522651425187740187985761869511892541697942323684441651511700197468331777426143648387557678549065707623050237553429591168205780022530469170359058214740625013201418224057000734742998230458306437326904911447510886046358955045823394409631003265833514806862396545850893257392704962259219421789943181842720070293078481487462781843444022378896054535157770502181358595921142659358986729199633965729376038583847902168350928899846264566256016358475144998269558875341795806486677760075405828776565559112608882190172757711734985063933899858619266649467723341942160523074419111162322417236828186404116214140260232205289505139693995072894842090232854099834487854011804015117991686796347432343894518251490597094082896289580062468041195415814135432934048428738494102122959520840061989499088811232677218930600175611334477059658830015627367977199342220584125367186251828607385186563083508069488237891221564013085665966549167305529986964942343722581825393960308561762471636586885267950370584520880989536602198410087532955317291937273506724446321995125815004060274424995627471562920883480435441221048864155720459209476000162526160919546341360361134519733221494571845206950042697236534985693873436789845529286486836287658375761102986367377841443904499646297451023393243037350430628751615297020398450534701641001621719610181157721745983457896592584954411624308359142943997499210329975195329513479224325892058566004782018485535938029505419716295395955086880205586160960840351309315644504343658432818742853593376076492901820008637903310180262963501056467328463293514367545924885193388122757020648032130650514022619977084891752348695709253843814787633738563213323283495522605638195443126101643980701977760288123456166774218101046868108884250187769930921173808373512588124875995028343273682804200866621009305707795940112426073450898424565497011085330801608026453664633587795504235921931830441810653402662852816326216499819288192367912150218792789943484153459622868266756662572372178804246592670214466537183849339238454115124710118185853520817731643875928411913251162081842850108783081213056705259583457000563470217794970363269767194217233697085732541986596432538211556608444486667193058092197379590322384715427487310576163954662798042803203578164238901798493532064993692365396523309849741598865424028791376608336316229947225499327534546150397931582464713016004569726638366428784012217844212929860209795818876169746124811806081608429719667166057140244335348856704070035781217445994696837156893811865570953137848156414802748607436084144354395122929044975707716495590684902795465705335349318944189440075568262233741063643072970845468189984160832491361008665046893505801210646033785845963796780443345993869292208006669297350389620935264288803514269061301238703444252672476847789523611689668529036065704034754201868534212229837735547320185972811688372395522486570545081968534437629394919787581076378792727481148952618747416740515155291336680087450814786643828634523009942548805523683287450632131766418420610699512528318779752847348935453025624401320647625807527149205688181891635982241471540517815473377210567592535444643417030560044325041423759912536337942846111257199452277659154632245237498625870679374712667247733079166498154530650944153518246061704083224024132027945203158958889559921473583684259148289650106532597140043650376276180101563749209363415969415627393321249748836968936304881057736473623173286471609623162185223453319781742297513653022629879762974634059628789298934274329262169306983926944191080800084414236026577502583667143811871967373247184986955384979395913719681202120676098519502224736315976471845714286734632342169497678047877298374039430600000684982660452765530491010136050796562914879056335092367115657952928535394252737419469968363260250169210007774110516904805771058227674763693031479112082026806317733482985729034505844092526579300652591372527014292835966367788296507920617083097792337058717519855129702304668465479333843180845284920305750526904613432673101500931466128283254853207234260752902725237005190646987169325766797920748512711640893361573708772634576323212040876919499325287758852299334514436890890041406181635175939175006793937433060958458682600162857187649908972140966687549242816055882522204719850866402816888945195049855484094815599951632403832925678657939825296416462967982062032267140376857961003167060202412459710820010275803006867108963672857728474737243898397533291681803877900111296700360749258852640052770355360271816219594698200501415892383687583044992905249274895578065750518019805444756023774436318390246886335831304605299519528404094257480774532056547725526614560110532318195069331827452569726372681013429166690163699559413753915694524058907124836905907409236804978286529758985496469384572698595755562760309345067673988815323019755473644824613262541481811579743157513861350144828068834923430002453938233634360063432216501417188949403494769964457532592423897098440390372808024708692632871136656659003825090077612374419103055097441161594604548469159604624550665870173037388325350276501418350443019432511291216130294234675861531915863619232311121852749371774588451776605167759224090298382988898779244551496018838212002031083723838037538976625515515709335547493099828053815916526418426438292616879487543919732202229147961142722245322011663676671936020909028533511517011139539073413665234545299372117486279078226413396070257899815389292551122094809722721877224327171214110705933695598692040970226234418342892431017184453083686563416326612559508906316079479163785361311360862458956011281793680250189417128307437235209231889606299529720069291803278722998909454642656784618982185871260054340915558938927434341116033308847966669057303799596747530833839836147825599201556295438162870408153736247231322522789778926869176439503615332882833561051837766821155243714958353282565057037264033288604077913046602516560830491762876751779464023235337131523907422113928039095394309699526411618606249443542190305264719812193744707736313412192798417063222826088112734050992545399124829181054862829596399062233610919390005515545865528299301109222509134148812632567958202752552297335313105745218614161372028625877613335785352248646651726579681229811147352375808412131166013664148949187394883654932391236644175673409385622191595847902476742122559849908906402304503700161162047227145630823802529843865638092607908012476447950890441931352005188023405793978964861399669883168039711989079423943952671961302157781618550667816614647807813439970645938005044085713326798240397298790895644518945423604724376577703817342937581832236990044665410821132805505640278235626467272882070977998518471806346752019016800858293382849366247969611464060390408877879568095993923727418348853676529407855944422879507554229967469364206519455221869354982582448853241647102098124191755030978764884947312407968424975674322462687276307493370969283431453763541810580851507402831585201028187574318121927347972781625730968784500928405345481187825280946486517235777649896876083196775825091753615248832743173182708996118859948108538883158855502838731623315893805053207333133401496963748013826062294277978266297384856237762201667763617978648715793838075783267143635365436187955484036897748330280130024379719549174055254472602639809326763325855486742935053669439034443088938904781481709538680569621235050530090332099574325640513279282290248564140699528205465897972216011562560624658163357512175922885550043410677543386715811389739971029314188787103828002069762004307545786986143392235904735953303475825473768227885876142177173578990149562351537782790546435656040074878691851979084034610268200278780757752650263210033917195333369801402784970408691565032617191162271334988629416370438643984691316819597961491150271963469337740690975992733572243969753999616670889867436127371998252123274214235181944213818951355050403135253673513551303768655060866575229275734600586500878001261947855393544228146994222180341506563214393790844237663821711604344477817963738671821163668674648975275554014884143618334423862933049089334210229278703623663901074399689573376477505846115999792339278270964968095890559218785884653483011210648244724376490185998294548339523019620623768644843425458740988391450458115156751378899648569778120671708266723600337569875577573266589438122980103331725229749426293763945366393944471726680055784725193519058378001258475140362061294590442920124169707732478849099970199083846022757393333181005903271781888984038081887353854347606645759852814480006921453077750057996843373249436734476158750434232807534792646392380797493297062901597783426956187816866979089277526699273428145004341089149442497889733158158830741154405157968999374532002707780187451151500810665158347450149062333416376641661181538478360057783376236482246639686195693505742505107334689635766014650481240191295651690246117903352431217433222511634845860654664465372145762718878597040208204719911876675850455800493965019163801274654612234691845592368075208977253080645457660427685164782008691856507235341183430523683805282899183191195079143166517573766985689805515455159326412315814625695438528327259140014181260378449963831967606244601645003037033357600349953279765428780980316412645627607267992811626855918460873256309808755448796679899500009637555523199888478006984057249538834020982328688891819834905398808278372935397395385815000773979011490885605917624812595398272730682925034894449687535106457962357127299993024259065778929446715394993934447334842686228452921308822898187194721417666045522303120629128411675931103738165670047981115041593484351675522450151486251303786042875824326331635609643795128946329897105629555875988113622740282216988443417162790631357573133337765231110296920885513881613851285473553935814162456775663600571529553711033492391899266542619758648960606996996147855648015649430274499962407111801813313437960272918927010985842583906757719340022420056153976076188726722028260909153972399117550148064657370462256727840905833335217496203412007859133988622261555950732882110011880845749258343896977509682534668881244051463825406353538069855037793247494376634541128321511217875018983550213620622026252364695821976747606260922257895541097146801091659266063399388897109651044306488099470921453048260673771241960596228921628488471531230403542925584345031516594794390001984284502108008995291226898271428162273197188384204035551354303612171455041649908840655180083028559262452502658260422572140978972480334025075805390642922456455571654017877194626410397772396427104462064694058566335397822586293754055627559069506671329711691357464288480451697180305991312450572530470796216700847820686488631019916401289616769166249814636742673388401777272094722144289429917302044312251710060701443233876898754341524894072457287439721347202423553402298458937097491159882622383672187242553454971128585256178475971223818382239295032835886173265851482908653641413847177687731413154792971619071488906736381333991036432234493005510520747623137270115873807691405773514872978059804313460697698820608620231536919111625388579583008877245211464662414002200901024144119524354742750209245792307462957532019551571527155750728598913446096160849430789319055726141519194997701011032824417367898547282477118070023041540462617642834050508009515544227969670282300226946690997657889154727474952785459559261708678926962345984297169385543678474487808145611940301788143437985255992616262387814184450060944473545886607293109718281199718399042532162380130406063535127711315727237327814520358051380007772698473801428175527140627097388631792724230000293786106483182289883857841624727120464508013643769690975100342755445059916357419716336085929520878472810061591140774733999285444446284448900336903074774476076735090798127459661467189765036157713648980917865093473240228907235429272182432124177186009627348132513866263494396069820716481761295239529672895065796113507593085407061100132918211031418557148397053358095761978147334548536808414133848073096731526359133601210248247609355531393755360716759716024386300040021850470063554743061631147320009963571205890078863630175197855270440686649353604172559017332627156615074601762797328665916260378790758892909497718338897683924169319914020558860104755029851188830295874701904401727819590598993447872393881563423307033684025597442633012360074316083019451012109460885019948617506662743113597412128622279048980698401525791834039994630087173937793431069571266177856950527726847935799406872670546865692060525956432075370977594593984823981137694148616870851563644717020733399903085677403590950528749155455273073384157598802935340655009529691493400885662457268673484420224290985908537323307509857056438197943281322047534803155131660978351650788560260782394640203370020734326615501212208366727260466998134856690999708317599008639691251120828703734977101559980429390861392544848681935888742725140401803333502224932195712024397449056420212441259889865264998073143588627199382309517029949361978936514664860895494096727171898626189069179825067678573551680732108859197028849305203651936416677668099457477700673588504541899291891077318409611656604438320212007874151757953068813381921339904958677126619449482764624626878225764082585301670579299562404177107265137347543632034952087556959705913344247151816212596194222679445918567630382190215736477419517452481043193643006711126095876475046886113446760086017396700115432588000677773399097168113752598208139556811830055226266104664118355423625538284684269768689863113829607695266701197466081782878178152384965724885872135659749785623208111135728777640527569958431075689928259819674510477352120461602296976168971628968677455133027888667191049737677456572143347503644088423791276009744405204732846829468050900141654847994879626176227028107757561381809240971880866250866100082520219530041758957614592644590175898327284450107803202791521435120506482058354436668205682627725748897754713558580719671910746353248291753775127032526171172525330683308335773067848294987653213800150218552098859366990079112841517004611584333911413244903084224108578229957292123291508710196765677302251935401086637653483950653897909933080766723850348127498241094476799280806382353180685255851296064940338905764350354209567911533211393287553245378914521366230158754183674655501115670784544929129600421047160701277142997090036406035073143938205218673838085847642467536246886250039493062174171941504484998548782127673079748537243125017713875145147015086070985326588855990530568823783696622312103343132959135896471911104033106231227121521111459190999963337742256560734177103444723243194374820150720390112798055165926969192157169270026203803760729240944267877500196083424728234562394895430602992922586396523833146385223539601964573122109006726063029190017237745225646831143232991117474365160689471512570904916305138582416249054159692892942660956836150307364260984420222504723961684684034395435778710639649741683007164966459374329301366426458441003584217537124663617013630089117426132837450996573294627628643235524427175144085263542453367270395206578874197526047599037254117153998688474967899560325644934085837462520226370076990591315274639844518838376932662778525214503983798127420754430850396796447926812549785641793372276854031052110194036564726856716148903621370717428704343716591522891953088573915952114284756859342105447322721094693758653457624085259798182291846339270802938326472784029199038594065123443218419307122825349905575071649790410535878078165579379757214035909034282288518242395955298630067180375650819690048926417042109447026787888950184419246138706445289272437307428242047433151830620245487223911108262413595173885751784623835853544109691397941072103070927162880724094040543744359296846143089938670741520234058928874512661766541173564399996860354380061756153823962140052643711521741641696078084652002810391454695053564264778083902408502542834453580583851310974417257733024948062442760975008451668642317727619271312495611668967000908645417654750262388691991561826939487004786779533262121060411293575023248226518168740908681809343225810591166191433120337994003795696815903989801208579575653981402739938286984455132229016172142708902424322163828441791048250060547919823751429808392138369897954671915445724894326512716436671253581005250017861874483819790766028016992620451262236348885632876843757700445330879517109645637608950441953839975802868782229705756333833505557815213329499661050254853747230028702754440794151040470054708932601876056799740822213713866090598901053903294615407559538826115059195198118523913831522535249356216465100141940174112046378932506341482259009652492667724823892472726512974312574213369740162884790981087255040981903774747543510440660928300554420835370562858116724449460630289470570448945239283496363886261024112121593054964935036104519152297323919570401795594377487994708990123591984161246503280964437826046387273516073789372949350365497341864148791753688469397681985261011768190003074944216699455715479934167741880114697137531432339208391532555724952150313303825829431228818243073152008534829240175764560976860245324136663210878205623396175485117732976808684401229836224897827402720462914406522088642513799269714547404238556105208069077463385985055837812406220993148697601343960166838236691322310344875658553356238900893290041691244270729217943471327029720286378116180511675120948409771439475039792775968775778590166733284175222556242975692239952954752398187022021252201061419828490608135836947129397094063776015787279514212761715018290066898637039930986063529086366031318009046324599108406702221915501223280367886157992963438607993445024642139085465201094652711599157516447063455384742534908300615603986793109715643502895031881494349889811183624658462905008349646538827178652244832182921036114959476144093051106178456897589096189797958827795120478580644241355865563081774061536772379075461272375839838760861044394462005482361329178975239094600783798810882970815003464060417893172101447734469703054779038162371569566012094460849306619283871165460215590605524766109860827266994105889273139830027723650230515221645533066990389706035295793972888599925785220789918147147412006755750781003519314082512021793161370258495190354221783467725622995213058758666746907927783220587655930211175246011985476851279407685101791390457730662326332901275586618955067597944785200111056032496285162910684531565423519094935252690282832974768820450999506906660811386870385116823179765011598855071631888711337774949974780073757141024864521182362893971706857333317162251447740604211043361705749848462857632776190773022145731260306857842842416148857444570370800439069093127459402452760025339103648014197912015385190440499726166392234687790714638786718520601889908520968054526557513036294766376479100315985454859864903575603864314624679971215158343775219826431807091598525796137540091473611649143821626510759113325270336398395570761382992871513132100158905360277352471345896644643861839687577410513766139793108608198755171119698118650016664213284466086991322825422418543962192103444006644585206380441299597465845783301180834920272373610118160224709605522919153409181667825227770341412761407858362897793786269118811094940359992722005831764533156817596958731749737392793001059569973724814833185444749375215583955595547830705089454919855365314000896953377096446410102209687201651446737927832635150424239431483079169588981674270455428248702344124781724084794694663287266872220515274903700465855969295384476844090621797245184949582975396406863548043246698170750248251687396601918268667182103398037337262391193362347428609775555513779717038844696370411621598655622998098732980662535462733569580172411486484033718443704585928098332782244242220845563145409926538984351789377287529781759773466008763780916547878353516091345117937874131110767683418990459011748047519086337123104863338465619744972798251375419240210903540317510020052778291464148676528904108852809022886318142291180678090581637573535996415495941919263986865581730304295324176024225961594284922018793628013064130330749025156240922200289102273891055640083719784362673634555214395651696494019358270767543576175433065726608235301670042885752422480723255525401714000913591252523237855125338333723821376520018286293124943833371026773739287806799917562729322256655359284787613905000637436745295087772766712969353202642902714081869386432263841610204451922813691640328164313498298480263228675178879474613563679670212466202285173784950732515989456705282448407444227900512424144628704668502074808219221043321894090611474366720831334102604594011554133420920939271311913645559636044162276709488332274239066047552800119724725862998087268999880832631374134746573745470004348291070517901506854984691547685047699359206308221840684758960834455672324287750822886132885577283479558621078710461337004734497554131485110220293703313850956556266374198419285699069476751005193460979922886994631426787324093594432822278308702214281374634554109611942560174833312520379820668670965318375272878555370435387957049045024695083316924122606838111214436010139850263231996398351387481500138067296775425162126119030799403059172963924171023284991927197771166407365030286745719255582594318514750185870723249983056486592563491656186033723413748701748974383467530394532895118127986183534483362660306622358672157565838275885618776753091194770085535617745880349537795699822483016931693996231573707737338528348853760711782198891161294789848391569521395472427175026157710092748648546689977962105240984193219719262286981288786196660764526157070266643753936526300587512468785714179346864743523710205220295336978406148226428280773828752473136299006294855976466639740861185895430712089444617340687630695572352729610073908057039053356179833445979814462143315066575254422429224725024128637396338022105148086373267295366913386989792535125302991324132834171324844863820163084544970066269863124468174323102108745378040583183689901109898016954245684577815994144332404755541904210501330781315439422348637674030582216759408088040548680337310849870672480413317978882758629194058406522779768543928164318116282274076334106401223463298614456890733560192334284941453690452599556400533453055076802755009013203683041794215674076479823998733536615826494796498628889030465182313522038081400247745633788175174300823637346277806923592949378849988921011694552843259319334013080952264743449764057192884015352718820188451538327888800513120469536977727685265830259092914327870767781902662614919374290585391086490549790767059679493235440391579001054207615480604827352740041894356036862654813147241453803758430173712573199971487269529582047318446643931192908487293548204171710395776071821111328800908814978397538061411096875918368212877651828435763500752438962790020961686904950987230704776543011752153450028290102636224940608789191849324378952080769966925061533371054148543041338928742579451104616960473277529346951357968365969033240748556025443102669046882074413215433368205099844388245492411803639185149564813271919069653955427592720876047163415761229941874460427383121193287429039522060965391690950828104605035542646137458298882898682781719876770636818669980604286903157772412293937981521088175398121211098674756370291031636142156601914112905809161015659268130066499384456199831213733469395717410936641880564157403070432006291015704035442583932537151884303770396636782435900890655178398326508002020059471479541332121306933255323902105098721156535296416967175217655137265297652936078457911735774880878905672413987392559066338957323036411521206829058757254196712072421479351073265779549550631794570721041818658597057156697750495265235222425620522297125022963132005044983230774403669811244474627885363009449060595253899301648496954453753513227385355490800378482994294436407174419536909258798147042410628386800734668199105324845829863607031201583745500692447095015024763651213446672338394832656190713689425592796975082450376726331316317114300902562506450855293998853734128724827708049129454122768244477549809836331960622339446346814787226577014042492091705657710707214157282524153360176691411443235700172911395264634805555049018947295836727472907351613666853416679639671563831968501644112483104164147942376924121606325839110688151512082006236631474937223344687347455884501257896712970570754586145603215492882347323473701503275837706352965601826647024416955108174393528756524015014549295502003190890987642375872540961793689665261435099375872609492977848615686391462013030354454243023192353807045292456394884177866773228276465157551373082366422247379094655477834021226861416598680493474962540657688117908811094306906898396291316006381275070816176999869306322596368973855360799952677529852874006194346550338425516678284983807092280228519364238175250511808310396672667371186728020549021029778397444555724145896452678276417206723607613524956429693465698922285911607460098914298225686998630340978978390913799444889764641007366203975102664480238269380501707175758715311286344514849821292051748238576095659420996312194662737049505842035325080808528568460245173544625118362062540655344239756410486770291778773365954874706766298887788975618316181626005001469811254908262587637006131986637098193207315463482225681017131528987784307262127485494843364316030588837540767880170979936208853992895130033879782634462174783917207164435890352583059262321621862978490604585237606315850616180489252507242493377227516711500961646007651334271719693767351893740043983209149095213098359775828447642941170972763918737900309457048685128369143918009652574207046452740977545976636168909866091026323642131882100302346903451311924523705499490581535894179934382168482333844054818876193792875279046271594528134781018714050506956381312597873458245337363308823341754556195937949478207543955043738122836105462508495923891677022548219484841394539007627678626854191117017584741309006382163460209067948438972512263213488517915242866333508193035243132383586497408298455477375135282494385788296860513800528030692915956089019455120646720727799144888377687521478265560358349567605561212135393268212216162246801020871514134462259760345322072401980438705651613289213606138519112862855935119692453729905834979656012942705245232032724157007746952361190633963374824038968144740169203109851743049344032705238272221612810962571190920550539298574944913362102040108778881027202974705926892826645355986265616291405159619373178888421937673471141025910233394304011666852974510455518890831264368447170086226966804576282809210768007685774614975345464923830830630791661987792427014197400731633501429535200159016448039552136236348510072075303671282992919851001059481216531832761073213988141064274878088545342429681922819755847769324545129733949503626808585581870210697050540921937555812417305212269075885938430695967030051979356118201707760468829245021625935068848086040440486486080587473063999421355095763586545111587192421735597334842723260815229378444514335483859767259110487694639743548531941836294892122399138670451536252653819303432407899118899946719913784734803064026629365386385539474859588035277880990066181708022238940507761912925000550645925121791931002467361323784965255205161905209464056210069813972748596789459622023160702859883444014022211683767744338818781175827275139587998741591403996372966335986484673956695274223071013469948285629588040606444447579419785693448692624295088196207829247795889472841565894895757423873834604857427250000962106782900083468154685912904079077136711964162821387191376134817238244481783452274533302745040100494875540180249002227454906184918262698310324208491522228119102616520369090923004092289280899216981257533197786736964189648180658896609376781043117573044623671310326927517705816811445564999664763548227658071564489534776196716677223894484126581305712573196425421730103871251791366875153018428612892071134262697180519495996208299754871654669747773059473016537940112667269280231074466937517246053899027546199335587929820791596008171491955154498371197304579867518831388899682434055435975315999027523077721698967494552192599678404589382061605067311866268123042956020068084882173249220648138532010847850878177874552239813122086772000878048878621837007615684667736022806280469222055686142201586576267499409145561425130453072123614583720450956639131156862545903618690061026913945615655693891380059657735104266291961474325550871358550642055854062301455364847119913918481592463328443597136652821709271979326892227468916772858072372778646720021963892934618630885658712900629989941744316050444829118728783319526833155441149280960111996222911900656772402638865699859471184451482923095151386930781207066174925672345092233843447004623154164245913900042727174792067993216433235891129138943621677725582289835077256885863137640512340713902996948583507166280055497717796664348486694740681322851858209105142400373250727713275146816625773362147069719961387075599099884675759500383832232869839833020590774117418454978211145530416441470959400526410033405371842133837045846389820879779535168205868588377579820481676286183773463583709567245320003428935814826588080169424785990215452209335498588291089985120257877517405157888009147441680820282376960931990983712533492434965944222171702507113767499768781287999317268531327522218942633129726219755991821331817321290530518238409781864256022270830274176609023061250507352918553709720101277887123911835155108778973678496885193461519344809562483148364737093444826684502813317030665348729753207996031999780833321926988080005975441575202376470021736583771644196253571726225106384565199713922225519971184583090217259898763729040823779587509328536842840261592899762011601511269237096684660407836007476344608705122410847185780118549319113705575493196453542253249905973689255320165628989250284651405922587111299799036117953184753357200751455257864288689890876127978558361962683976422683499633045474168275090428514984778424157978541272418554264748632340419854373377808778977918053283877264866248601881720259046564526455183202385834074785352245910475652011566475954418784586825878779278875729143827090405629894053552882837535613448903186106819485241933496568816729271827663156304282927586433027909114143413367028205355020195300527768948707483834041352803364724466797596372980132547622008576329102761925435870761477179612877917870334126394576442685939432110877674142630560642499737717041122052281096343952099017556021939077749469577861646544780076534432880538102535655360645523021525657073971929247933427738143390619635796526597332838631844574297362394459103111660283156516558946949348585432445192765124022004577941016298258037395239019717822244632491929640114500095457986112197271359685891492184789709340929338799591796948453853934340718299029747532712134697654936518954270975858431876076639141711091237993451088273096947189247344691476482190433374443236595568378965922994764489707265421440529554763330922247908433897302028825397475928314974049536620785052623015663340873635529801179957731784546376065748671292420137961677120390353376658871697526095779918592344672867529121788841384848708475873587265427657094904266624588613437356548049895431232465311424896076095396683495699330064623426890071445936921894483407757714734506487900452650468331943364546952058350552287022333946250166017705015492575874675154525694478311781779025136247254757472053135777589008574186777878514664978719060261607216905783368762458800383544655335881895437063225190529830997873505978287035039305307627418340039167776080530080408340034252867015410324996999393141742874703994707035645082514713336992315875996128644231815462047948313794620252386056167855547123430855600682863208634020922021107393129578917902634110076012023390099923603956694670700402070573457378407836729899767296562886596834641717130692564752946744640040379565072766514044350929750676041112952311235467924234529313934432088010649493280938620445301211650824571670882500041266219262820231608166984779378327023640259987480569729095836637830361715184601344594465406346729947130493545901585765431913589047782296770947827760948304008380809639884370565832717142969781410929145193336350064755322600540576925420794694519700766328630589388130031503624285853174388032808562017253600802417527262153241402779208329580104033958433215292205321981142592085577655821606499624575281660627793326205543445324063213515301042508269095801043326809443468208677169373203704690356452896430033077398631533482925839937182204879814787877561522797251313129205366182212414190300366730524559999747514983687448634461652049332516575221144991517548589222660561981325644479667305550001523908980644724375720044320948793117923867452217003777236916954438369518398931407120682410681512582319653334644684897116021621649260045422680564540766341848774902226773185590787530791001664203685161042913756852416953890049201869626588960721424304496030046496545543887201784889192102777978749900270699986239379440877452481290447779364164075452002619654466879912503643435244765708257860184006819276976409887176043487191646653840485388146481964379974824378163995079568674051754662818945361502580572974502372876457675310352810430440880794157564547106755483915165354968889415282804404012023760076963475414695767278267307586490808158606506622681737609513043606860768873382542723811948812936970001686291112007490353326467935904414244950367712336371822563521785103794812248095614326603517071268447570565113464529573970850841425199401804216698293953443254995129197368289689373505175288592757191518990579216324717322648833505319662173469689800069208603398522210320565712421621927571017093812752280710862639080746505400755550162039642609529215987686451882398363430230450532610024142895522056780507794100476821940158064887689406787200960259761740551938707046897879698931898500886691048517378663941046059642273360227808416346158766112751233649693142779797190789306645960802817321326438898940032679001983190316589255153970168588309522741226460786157344515565480325065272365053299540713083439694444929081340678157869587883849728799401360987024161135647195544614644138493357809424401316847882159508060583366865856516123643184390788496232214449005194867896646026967410897691603732449332458263593228299348572027451165254545496737491066751914849904693890429398646870130194464091768763215216578998158844043183299020442733663530781573300578521660725794322888121600785821333282599092086421609997385213662104740591541262772024003348597631247506902559887721840601426041875008580734690307603353618340175907655583395646210801884460006510881315748895185466763252486234455588563930882201206441127358130923627638815271372174612014945651541330877508345162925762898686254563220974918663903159847395824199977634474676429771132842318552046925359558212568912087949297560099826593594788630325305136919679953729520533512771482515447200566760245568923732582849178599701525654977681698833814664836968255597076470978404211697676065541413823058250649020872366221788886016326524052736542771903071521530487760136790092810684963625253298042300709194157600176680573011821146431182348934167222549515902328355903816814685834575413168729669304011966992540736314557621442951837498964908895065219880671612680522663193200585591348316578906066996119971926622561947124276055648199986371834486085745530643353171656651777075508553103322915864689511391456595277681304703483381220711059240581193853672201799676530737673229787150315564201031652878656027100922565837946054835358962744707964222366425022582602938802101055126578793462833170706247522153688275963866618778432775873160031748252497227644095832407926115812091691888286448270737607513311892008980174595261239924334080810984872181140037030353908577625212874651495110856087682501996982127297362601783469424892866584970353114467355508847533138964684492282765304029070305446182174987569542408560917891437568569112365207845432899656538778164371092056150316348189283045049768999406700182656998842715479008669489846875612858421840374220736413382775789171116747345774913771468212855664101061061902050091162383657894592410566600360266141044522206104437788816138762919766563000917129110775329428130535043046534094887045581689796530877575072803342082350369819623927044266488624173135819998995005769403552634411597174099018809704527417644952689440942530255552527548085775951595549919448038147020653917864453462147572509020969101020413774385712164910720042958399349476993002593575255933601707908902861164978348006321842303544510213719184669863533247576521450943889874310680036726627069119451199948294687112215726562138977494243265610081891672404846390856779449168130043251993961375974436869816459529951407884874305816611942348004751919117971744792333308151740605947984041442955910668141829600693812044880226533568227520759071082121095411528386772022670368451067036424425165509333836188087643118248251508189755587072964172755283872351629695795073422994242690682629780185938051810874755657377704544233272053965991705148402596103687987241617740646475939942845955545675381332289012638517534316102747150536696638043142932352590249109280993092768668457628759593482359100336208625249230489304996689064203827405542258985228760906659246517657864967741380096690265996301372374274880980044973123922272369563774985475661507334605931902536358325789789780108978467878250905975474624585853471551997690201379909659470503073701663187150235881759364094182921331638656462745910734791469171222055996153782463338740684429989817611633114761960548593511375625642859060766005398481821074379249669169910899746471616254410153454325737033346891683452205396412435745094092579644438031263061580077747553320324905449670079507253878510641189514571779503743311627683639878336652806241259361673982565690365314343179858299887029488394225472099845229281537823188722539835523128640505662814406013412852207827600389908202778120191306175039472104472846403540967963100150121393479931558570400089775568453350967084131611286330406127792470910845140348308719498015049175195751801593726363266931445750122246996054986813135662167368856887837671663348244798762049980432083240297968688731881741142039185589654058822734145366271675744076644138342636373592843594168168497077771535337188901501934556649725684366108760013425085164546798713566889769410852599207039636476071140290228143266955419057166478844415250134775101486333710077593926948941705373365740684059605854125673100927891561512450061196225345042622119082661975785002009203733622813489402606360282199875503245905097674982444605194728758726723581058391334641334655152102796480463611924031522289397711202431695583541234689775977741109713659429855061934339966374892963071628822818288867629176584463600169617307377231774431465269245816581550522006524557980854303509614762169735771225094393190360099682853002675461761670585807648797244714063298404182463543498044707413855777048252446311439952779092915758573260046328191624811973807313658213514940472053946429170285824430990584538875822179534882287758985934059493463852908079762780804102785875766334962654345476280737229577420075730464036146566920259665084318827752856241758674570661388881615695599272820949339294059027411831517501545832728666521946506100167728944378099565088640004399506609922343512556760997593325755455415253671694386548195348779316414488733222663514773967763626489902518372271123111623083155767660352199853536639774660549856705558686798244382298698904450609911323341058461465293016466602439457637446025072523978523633784022345408021142117829789775781781739730831223082096927677461231646609573941671736526594149277667392435882794150418858963384972575921805894635632417166402263992291107895978649271964760473439082980117524680530520884051109477499971847236980000198714238840336822348202329024246866718643056886045668829130938619146061514112914502408894491813789822877772522434285096969690393815489403778391881374685263951370214580856117607971151921756052168463424265765369888899942087082142694472702516778597788753833347778101975490152623585806332253617117790125272506727323653990079331118578982578002129543982307467920369744481411785332251648133234152070359608065827739715369635249363720045045047739978348855520153150683907383524835367072679972151967615194308315491593884171421570495970452020079439668510123429301499925155680605483443614216944699277753207201984780351206820967381925451179708574378859309711996268806770114007672405167514440877676050143492880688010431440916347277313420735199054398046040169141447803007349105458046463354663645352337053063220424143828527149931685778924888168580338883335440974067685001527956993620171524101123278965221834573063183979639666607734153992553344891081019830559114391441326370385675973678131334651865620384132524918747650905961243953372202489501414200733009555603298093048126546852673337560898900248969014107251150243282550833523239350230674963917288782938080682207575845626498503516513518416575198793746093533957902244514053068842944359721737850108144145616398915515979358019560398065180614530208657426120177777699273266587178320959110034368535293000682063010715486255662656492880744481171576624314592392779591148121517332122859026903320698386934878258383369748045281710073525350472607451566786337643816464108637658047415090452363193330446826549977711163437697135637975577149754136491066409811389400279771678801719936325551023114427351514146001457403677415737544358849051702100000429987801391857148878373488258669306240893742949693923846728269550071995468345460345552667279655190012633882669790404284551936993062821784460260715134432612679588120655024852889939124396684286079374488814450810725552136997632983753064975163374621010624005323400495643984242927054488653027061508253428621172272335840129042258417056777701812713610219536698408475600359889080704546539558525403630888538383414275911896238590033363739315786591547258877273811897281510410269450181652937942146756585876048828096239982614027235836664868190578842857925648223251182544943744146737728834243869855675047348971993254879939644000696816188459752012346199354660549798699788339017310234506386550129407380939313796624999345638477065163735024623211525635672621851352258386514814276869664882224300559533196634256580680968500393957823615801098044344015434458046699152252465759447511709566582827968549239009005207219096064880653313256600113821400090570540776946200218952477302337533470408201439213293556952334727331625624974037456011835524041808548622684840673385108057748279972815548209775942707227642451935806020473350101361258179994835384241037140817239707605647720469332254706923198789040150485282707281361600239486662760369713391835105916441585579654033657758528755461023923770177745152034729272435316727202903533129753031143131029160716476192505259855897158204119900913529186384311916128381298689198801427699177366786077051405754520205773102655788569115742182983805046759028266607030055782131302463147302693424340359259021871265880436972194458555339845387620953801991857861517312081425426482402572257847714780297771625974381003751835112416585489713952809209280814207883900703561721869837951551994238058185425065184994861080358908453381575515833893129307748125329900871500971262095367241140316661414793604157701281949068239835699218626432231836171545445570375514687876382076142821657714415654288380188861906157695299407365159941312681873966383923220802793906437276433043027503854351627115377925422371405620258637669829330376181733010682446891462228838194551004220641740918860502258776837221388382920870430392090861361007594562366069336719338476763442218413638274357909795926011826765619622780418257020818947065132836196134925691619163128409416292579572990165920955024683939322345247531109237099601193804464574909720853751081329613787235133020080640238609004177162917351435835004113508342556382325536156021920197260597419215407934646723116938920065262160649606203295564906059944896232807936712128821598273637141559381813649625041083426720030699879658999529490571761743411971704737542561839294556119140601207706728588009111729901544265271123679606434493132778724408577844191029763509265773974158064077766415735988382917107655121081868131142202651444869560222989972705759081806786405890473619012743257274085910308255006090860666157629359190153202066664343029298373140494112007446508878475044488850261077616424252125727565112732211443222049750318708687521022376326318542465611245441337964899518240777659348339879676101392719073299500323414865095211633775230941025164852453872965321502040750102641672591483571122496130250048566565968146716804341443770849356830296899880997826113731901746515262797086928260794372684923173250767819576260007082319148817972463557503680661128865634489151862316646246428992697974438768799308805084366732812296764760685768167798453266695951163449479121636867044407695158456091621758276652843295031682240130617587263855717229492376303390151398347600063859824782307458411192749438227336071563832245602456500436080141261322933766301416237055950847236695294396716833114152491400519428773674466860299579242736170546594332556937922766980636197407861163178086451154558005087331256736100549526876939628651050173333607901190746068297277573307140823001157270103259673222216027539166909615139092958186780568309431744567952909414609407864997930344435925685280494677970806614271770575163194148989603311303435721544888132246244568921344037302180221880328330903822035359958220921470280887318733838482362568989669105296567628347124413202602469548368169813054652528401558440772971920012872556817479977943526423537498268386436419579729442644199482883655488712148614422905856404521247291571693437537593539029317008969769534220911386008213275934071561805689979580389720944358565983396206578755695008898848887222429852271387886095729213807652033749591973622166876643535891349432399262934976255644106135160581965462908726704486270107730848349847791795271073942100532052131171153698557384610698265838000908579849320204476214741221366497873267391912907671908910691913159511507092657731184979430915579464763592960404177636562568048114072925811874240071389330969694643089228271904345381351388279296578990631700987461136852024007966122771326694158576383596608954438198755104219002584187005766605514089949683883244214908039317344680046988378342557115476690289698984250655535936276149133873859514376390708866894895783599899473702423493605551599732738558336558106054534305836126525430883547855238174621357239840201957269131883116225614604217707044316836538623989399178281560581106509328146579674534225049093857538561997091579649826839836731876886392566822047182418459011837409494502937018137098531550972398657726974155454342879975416707347689707777445078559238557407852834195894381618033136182996278197561351483771618149169318666919937893404002573406248076445030605060478514835639508902126491012628506864873036821454108034924072932026386699610142310865440980291164567739029969977295671699065843090875335035723509660359264129342367519132424679012397102550749360074353799047550249307281689948106655703991795237193679571819132141989117997504155169031389696575711106280712549494111603845295156836087629069095548851903090427191455472211220737887842187186515886565561953904940112915040004615677916304529561065105947796200601430872349527353650819717444786911685692138757753915194698485115241401439142495743280079531053681132421269778298407937001388934756575218458650572675350149031371062837549508014292295413441965321097340508539573991060276210427874215540364304929639956993779819541942778815104269609038068072434483934336567319052855249130822743474383881213691801360500473794041142987060966090033610805131754323702100368378547837005501228926286567036381606419537968028480698477815249037088981468159100500064902194898716638618555099642329326514199023099792108491608186771056380528390435653775907351991157446472714224717473741091600093064078682630826284525546105422266884244154361110034914399318007106115747015538848880833699946496313384051075105404197650523047110734309813958355331801791855917342176355485598722692710205032635924499109110109747994057724854857530611529052216766674745190919763343958243521968118287304951464883123013105692872353575641635087708208468418292357750408516648317265318185356877600904224565808390297137303487169934185117171602049430943395685278917544518235357488675554372242611499839382214592595341782886070043980683026751937770862094798439497423667342284745685034510889755006523933012820994154778269793861802887774938965986898382257575539021532216443789784789338695201170946112281004875739196471108621538383159683203987980736831010147737699282774303553553383654669563532364197185412396195962521536762161451843569659345372873995073186587218441642713095954916057607120933678364712827860056530473633461327924884391921558805243069380609858425196885879361826846365268074254174759337330189399458293017236444140810238094174511349571598586735874176092061368985948700831230289306672945846392115756243516847744637998514316531728822697762322359107666144307384213185199501367698551045523637420084694672090256031198899591688523706701761851946222347542754414469507582153387666754303370726072587220414404431240812513129960999924640638628955540919310242370815561240042095271419626422376218047926777032467828808257323070609519235837470188955240911113331587765726035184719376730689519761632583700524992576488381357806658224576780220844664715897942884116524272287138591992292433746297727538551062105187182481277443445537128521638063973797965723928430007041818449227083741921871765622441537369698938764951592502200715961828089266481829321048798100393466784371344655385996634399295161800651119826511909954485375855401647745428411719665001940548817918207816612313161923781804728723966638645486362238135723996946780026358975948250201239285237170989008423929969188492796981162758167732503245576244316817676665145846875357783222932211990031276659151426034774097684900616480343307901529549403094733887023326504985911503008814077953418985430904396122857186061022447010917861779853566284970549805684804339612188402705746046070315911264280438498771623606695555159734597769571256781998764114410208721276182058922556602982864590785713829289565416140031988768836312345461920933271926945738505765604153251468634700774875462872105482343633619931440981824801855000748807773729983920756342707386225712549313208251009476922901807812639400021644447132741262415223045773505681097469047976630654102697048475913623483440287439981403089412338662010329194359894398823395083662590576907655091799667244311593140327553616747595956229246722338794090971240431500706785975326819971195037648586444485857389690290382591918099631880686117121154466315416894548327282187468763089560965017026865003477370248552875732830555976918641448941533827355563323249629371390885828993535151654937341547765874523602910099995916326376776107064074651960398280619477497399121248787856973153087230139343105413752432717093793229207616439429513349291522197393957014992706968627176239851411116997133600168073617271419373375622973157622233155132893616535238444103886105331983412432266132704177688007434150745082962583771596744821353349299758862835742315106458723601226344431020729504545094669314631077312190833489788916214429404237825590921206019078523340810312854895032501130898323055502334879011878984847017041532232337597635510055855493654143096694269880405394696795995924593886282311706814663779349625931761690089140327876382965631874003679589945383093676648598578395204830679630444657100233932331137107335794878123640165277573423553718536687264967134884601597725602612423639405382274086406380848940909250503889293805969111863772836000154248990283978430255504355389166340768348743430897877641894842686641715577153512598772487680258932090297026881644809532279165220857276410058149611122127653054949154089511007445038489215074639753992022264364001308352861131322434914870981888906563873671933289944450166845186127599413282400281382593594092217932755851103942641580620470442280356039392995408046423574427040362740703573182678852075280263734899109158638477235360585221922629983583396639786119176578464841278371178089001692068283053692448349643902274636395687058956027189609655606754051451320108476723680019370812192075931703083703101855501159862059824791459916552724628585747759944540086998659051639233004284705163979444217029498599289775882425010872727691547152232449307421255764308174268654560213953548384340989705771020094734642770091882501919558084157863476058994112234743326163546347299737629268913713817298552138777135692674041084519569231051423597527018253101524339445019484081269419777887793946220037169372461616703830848967321217851680028595791024459037025208148720866672554613906191536065468971204588843754005493822219351051927388843037982256706513874384604535044940055208153312092383113677023972659251890464233835951394689146760496524947267652002664472326814242591323319295023354240530829220582334202877819855075716627230707227579899074472233659564120754859327029501589699058692219529395740561684625546796944623495123840463609988898957847701732788837920857781558326889881735081986641070837154946728021705158200682708482574089842234805750445946945288728925597224329515830513482670438920189772400228883095957524757339164224551799763430277906492013078414793029893328406646479268048980125538315771622146500014759615666049846240732806314712275753899929376135900222890682182913356204423239782608943462333880065994597495869700539513766273981515210288983836956397236631885564529269854077988667629607295119007074228018843973204637739662106192431811183238214147600081346406043531172295233863917458530224909539023401721334120612251187811899534864559453485559059896935588140776618248658408133759878314698217159347554156996286463926480618511451483241353825856569938275420818750589219991419591866088283277637365302048552414152212296693143784892449871613963746190044362648089819034912981088758333933670035106451291445655500505941682993346466534602555473391230811773930098836469293831223877826692413436241111623764464346224032443437584853191506319961249634138614664787235641115261091869503374982732626562584226729813623758232175209871171160672459171445628845962701860594958849655022119161917642794214015962359075106220876792248850975620668568701527767503604497890302320479248525359797446546425245666684754753884550567177207240342551806153208416870584515401910936951438338905124003015719477831796559318066458988675226121812519344882919675374097942806010475722105126626196401850205625795888966463316025782802598146153912139489178579156563234567675541833021002772696293277882748538525636607056896834572532801675544524633047364425769017355195824583259563927481219532336022279804611565391022261238405556733433766800120620970290328147260775424360231560149568456855156998892789219198234394295330768361490184476625818620752424870591854451419614878302097800827373919174614021464390774585081800254359860529064473880432120262564314722258260527548373318664637129507370728233963302381206017227119316039406728880870396967142671053113165397942864714718256494944770288865771907094995788804301689944119068574175797458658273899686540269014571043604404666574906240241315432907583682293002540931338586259954948707321507490738709419680149116197540573203336068197213389933235227734373053367126536730199342124450856733695434313227500027855510082020340541571575153864413476364764619352885440407213273315979412302409970065964967721628101622800914179576542124602039088885356799647730330835654999026064607293257579592593712115619958495247927319876576480054906439983231655505029144816750927015248259287157567688242009586172426167250641077270999632866003089509881850500877709674642783355955116018990080245089506148879434802021250486696276975840385764742384203912801284622981799896311094689195052732191296671075547915177317926227310127731723959963418204766193697569029129253953418798384463129380728455586748238679212546146818556706866663240939542572957482876412790931052972180430967303164068352956881363812484046083827148721717003796704782318923543277479836590480998950099714924033904641450908841463904500673074326822605626846017297983978708071348258384067621195678106386694738615281923038053174931841546120208436427201008389926794889456078688856183213223395606392349763751381749340479514312357410153211153726420966206576173933107877174409964923070147655280441601373749760284782472058764675474255306887316263538961686811859932150183316467023177502369477119918437600282822408900221917390867736199276185263163668899438069596736593918748286234654549812962525492301395929823105220779006828737180501455509010002683684867989870912636941461288976355857709460242989007971248323575699873733068374542180452037357502062800083614571747908427592753416101939753630387119979148190879520341616164917582208268906461185232899871976076866346899006611773951456097746208473851438121528357463312593352077998545177057966697632924458511271763885053163594401863637267367244471485188511794605744539461373779759236945488903641833948422321345846899855114874960215371686636568158160958767815777110258746156425173876343391360030541983616470633403344750359083214541702527897831438254657070651280493883520836980364888106557918320381788155244601109935802561668810776147753031539223492493776735003864007372526430117573853733970549040681644018541762163718157768359644714850924679757513900750390875236508428818529203653158929626308704309405723774229076020363600767570858281715948045163338568522135715138732204839591586914135214675920263182040349014110232643052777922335453573268530197649497995060380495532232044824266236691675040266219693062040772661003218349853764579505507890742858489377273884653959600126422457499156197384481155267578449102437053413317647932050624902078793036417897274904351398910303000931156321919248773127558862544104441272522384238423374742223559472953624953021742140384625667847013422749719011953003845645949528225807124609225761877146618913388001574892917659681993518436466577521095070552799910056093585080346464490846887279186068958245122312887590221556133329708015081876626314823678496287456068103317856796112585183216451702998619771429021283221720506728713029256399192621750418069687179151544522197215302902116057590410410524618272518332500656017518821434116864210348281119183537698608355708253503942079292128007944032993301646955361543478291121281674598395428313098237079965540207858669688440679736618750895966966779635586524422282102907086609761374790554274629849169964628595430234548839208688637473997334395393512863875017162110389503184635675942409860666706725632435330152552452117454805292373525886792495720743630227102652282904025363362494886196572373144457533937036636105240318208830131399768506557978732350760486170700650035975376336410659890560815523741331802974366319904577755014761506071366278903351850075325152211571872784134249203151798838811474516929587404125746711228519251486735925891472767599504928319428718979821736855615054796272111917862994531124296212508423326407404526853484500240466823205834794743163189523789514191898963458685906343528377040731484226218370283501224159738439410137677870342656652482249364179338515616678214816315801634213515323626717681506289540649205897911713351361396380507015189134446858472193899835156718064337951363717625328123643724975696583539907175489428718634752184510857605091769792850012458655044622277029084181411205519509566663277004924498669638138728616144987050842004316581489752496736702961615327480201952289589206515816809412193947925506785236760091739313801522081802549910400037604428555288658225630989647782669947102998058657043823885460222034591526626603597840661022501327778143711053387812764809454378383339642682674867537231937254692128898477766478027920182386657064374900841068938978206924348500026546576527904043237636830787437738382507261822367345271114789418526691344437175594975324664253365679915559075477560308017151451934268658039445972394565324880148566140742112314312129184939507068442757704974428613668363556810783352339646298608924602638661730501830556591895114645726916642775426688805390713635449501594513618905478847765459787532670588141730855615361090743643021049232273177047050106588586200909977667321793625864104671726687510124419221690908480368906238027656151402272337817569750249861090915312087573691953256836464565290181045465331092189298399288732613227133763403942740854718756415956066349598304287509393093261343916866066614911147513423520763639302573542172512836203123219962794083722722446913314217352080140324896122228449010275293409343872812402432406267477260641849626997817827252181002629811219650021345250448038601747195862323047640187088913544734964605377675971203190184346468932063467209353443127178531221063854804797450245255604385960521375754351355023045453532156850834814652667635534787981679547057202161959981892564672621940080806764509324715311435955528767096807391281023293716315692563560247706005706742909498049605682232619326838833465496351330082702118470104113525836546360035878603230734153685693596984947865134427474970743006954999849706763825703783678102191204285751563319374107927922925885363534841148849743976132911342001001712453147469831578182857507195616560510946616397078054635661839930884379420856448345032465380265532791272136671845989367502588256464639950515103254032777200708835027915505397516105525177766549085309884981952997257391960712060302623504077959061182564218295869981171495635866101274015434194487053033912645421725993681782568415826937836127073958330767118588106365364272814096551464919038326209724485987432768529694031737428550878659904057794477492554682674725275049081955949031206648211482701793821766438967703884426240837637725501873335158569303252418946915868227353968117549731428056350587922597089196223872118648584229725823531650825473605397515055780169805650580459135605673439658744971263095599391346849675655648890159826983909274040025766407394705595631085003147700992047383683513629356268409858472413016933634983221964099445301573187037548109197654538687187878619284733430490265791135151187674977423531496816777279309916203096843456390626633983024909213749114706965496037635919384438058950164187545481035938278855619645991458784705858876290749872056789441771616287042589221191260185387162217931235405522575590980788765893508685404931359774887793840311542480264269632283825186523745494214360952826293492757259975083313824222880395219302810867557478836139570653241816499940287916068497263963268159727040973798296086657413212656452740091422950261968038077393502581144166535141730248138442519876298918014026763753993405839202038444475643574638822394968340100603266730203976594955875981473095110757333417505914481114125918655744356936228828817683271726993750111942105509648572828882870910909028379200134206582207620117767324095897545552321559650114514739932265284371069291891944152085067613039191457174370496389003406064583074976098718523347763675065869069101486429171002501306823949745884977495265794384132804324357725921916020933709170743582250053539431751646884900016947137937342549519903967197924407718697659537790100896320117153252413594164597078428374804240882746617961779347666447273763686589406753161243528084186196375805676365805641561231869827728291251751747539152798202948686456923434118257162276284413248940749625498446584648102584816933154215982104916349273468041138431107587458556278552650825513559084587540248842855919165272589789678901211604205269092354167244835639319151593526633115934241509491592076721328410318973559503387737177188159561544228592206921423584751550283209513268079057004660097199271500677492053480769642281775481605955328036786790282157830702940788582939372602317730585864818760938792399477876529618902018902425261271459872843003635405991229190463064633213419544069192483235826810268467417929812962919782671288060772377888857165096411623534349916688223489302089603869368234514039449382179681890521867594097794540476278121932928783776479739084602872045693375849936398151310926972596736756049298121428928003302936986185424095798609635762588834164496940636863760649119966399780616189985403146651253171201677181494978038524929053934152435920708412554670623008462965614847942848523132199536934658180921006442209032048074333725521066204965964173522755476509330851600312267639327167144204886085330328206347428427573998838372889662465270845544379294374933189433147910100784319205669060711261645319209511856175060526814903668710358750086837113029872158634426958949580754075029595897418326061948670315714861764916584163308797785018557311690621911883307837505659552989284384472030576564505165043456336951974980028557652320224921325456189624908739897572541640489305646459717648874958780959704369028399293033053167269194544408898464671937672120140373902787735951238132553832312605653533694138157174230561466553934275652465038969665085128147335793947169660244918672449315056778260186811259842606751748651959508593339259342500889152608157409838813150656805436116898013207066436236462897209191904837442272616185853967191971375092955180731766074074310652557941043174988054536834431253547160937873291015719305980686327115405436846149143168243155983778241545787801542584457205066668150684184026760955685291181919123329614575708213206340868598525876248016908436017836218890713419732046911843088378162493437341757503499539246401680677767154172129288554128806987756179704224240127139722077549581841339962299021369956166346261641016963425747635287336560570298732805561921612277288368805927522943137752267663266428339956435023887231341928198993018380054378361841664007127829873465380064700714887550530380593671732570025263673660444652061480506851424631087833296945338534568315769277666682215855299244575847443385169688784408661095748346586938463656720717573645307032110534871779119563130163381796978756380957943813384198522225186730440013528596015118717948385471419916984986011344910822653028766895162914726383879755878434233224233662482111334236586630975750615661536241718772745176833835562629134933476793155529574381567359876308309478577345765068930738412696760051360980184687736796914322699656775329400318166523863094280512307178399574984863902167661777803155594754781862468433173759338218531533593901686673361336085000323510906286262181980660545047085523571420134227300621803526875209243154917379001635855786342534978511408358752500556983372540886902725738522054682872089543102244246159512690369481390926971328723585288843502043586263229645528060528817877005406081061471535687930921514253475946108293279642220941039961347330427720655298919205120858191536543863122610980830527225187149076204613684500030093511454589069167359617578174708092942918835237460795615872492389107003767979163779645023753722059647358612623736596013797218245641276438766477860134887660293580158150127923172753599320145925458854389379625701323813088145051306682527898423614483450839677757144482573762609708834392430580403839567240954757792251547539649928772341239181568905466869439636970484230824591691645625156024524491742978446782926760260473495881891670960159408659116772276341509081445377172364160020310562061739458959798838960526208750433616214201252573106463386339125717663790367135716834905363164923312749645736470572779055919203723604847999350262721279582314407585198893332336529795088155381580697718019714437377732041460002838155084973151764984504099246884443334739188815228315282440436906267822542796393406531707733382065767559906653820930153263445605699944099965533059124238563939155753563051393789085972351928800542618277910076086580468426215867469114815691759534507031428036461031427093386851134205711106596913193663774334435495130557859249161794725107508331587636942700018892406372563490976457400443430826881622426427731068396469014361135992001280765902479821046013906550761419208053091347970068714077819927247254688328654271164203836215506383539063711467352373144650163177406258106904294264410279304047908559880303694075236346512308654466431141622397287557995456766692104182521062276633039510074294837017089530825417014898089763844488489951561059580378503270077764409334484161348953398122253229439157381215125709610111856275563834699312412064737586893243053279280016906334034832070223740496805647637572416819375038606792180018300334593401072243476199198904663396048861697528203372295057947526801894350505342424727538631657402799291333305713604046667007825964832534359022090545567957659415879925678550457968093680963925715566652575888918303134048729996574019814085064317749927151240113272989148399914418573750762552261870277454000222964260323146897621029146783847906046565432458790387268542977488115271019361894932962894213588434499478849634852464194958486524390225328293837724497133169159622541864211663570014466771222182876399946413869758746627693354412701643482983959320817488462966855221284846953271660204493018467147292758453962494004042267140469866713300706020747773980785856466527321270649793121543124862697042972308023672630112469867654827054727847323459296331368737329107322141385850634897355810448944331030056716116393182692911935490427584173474742981019627504149764366123699407919657068902549624293853508325719267177786540150508138889868386370325109076185447469858966723873861692617838162026028641230237692322535097229770954804310115937622389920857361818935769410490088023631731559672125605210871233381060194050471487279410351042460024008705043859793789336219478267594590492199631365705258772706273524722679985600748545453387626018357979220103210777827238161740840871326531602480408339632780936301578283518340937113870258363040131079885733750796916070176223135505274220654355605487823472463405996372900912501807279565183545258379407857524913273327943711714586480259205601832648704619230328204016850630762876076457891232180876657729195358158429247207100191891752453496169597465734817628017185001664447566997034727885155355502297652100355091415686024639926409349173430167488640753073078113732258132660517139389483543217292375145898751860702108953135478950665329331031649005999018946906779902088671173903343735255947525751848902532181710685187357358235548836359580615225247779553056604027201448260217000986556405863908829522175651167527771194026750295204987155937028549053761393416466539708654967392601438130947072951482376319453284476523899542600539708172046405102288592027891238381382341227977969901726821210487145854015030321675132138532232676218238881319970528181253004370994037262240564893168902319464366043719465493132063548090894559045392262837478726860232681265225361008304867419584660102889251249074219617068692438152054100493530595127371158277866085379522511907843964592597041380423474672316684787716867225084451073921988823429929221668050819975323774963302808088177609850415585031651532806441494190435970709005444080126851628206403541153281834931799857903655875436681224045701847367769311913176520055885129610050837643768885277665932037941317130794179314109270012234192587594273868378596134265240847629569294548737952157426920949427736429905415116419039849849126321348551465127140690755932170519430357831209284356466636967030503057379714121904599042821872411070710358954506857303265880985290589902717634370992678226942943407253612702605871715790810987630139763389348979523782729590837845417000322410182963230014388674070261605566924434917026038903044230075025101947297402059690813463789813247377474132487541420183972919058182659912607306333972401920197329084060427052010652303715496653335150421294981639332846502948878851290646559025370142752979377788764210106505789439958080641427694240633207220073261553752013953980004288282317158143921623187925621737214283373977752229290042922754971748042043565028828855143823645810748572868591686584153257643142031859305008862239736866716846573690328921795478717893980944872689873732950164805484361457254364952588580801244995289995538990369608270581910420768688023188406425648961964843408132248075868846299504274173906386514871110073810424106871934954665266621112492913795845221674504203482891214633533972951075032959899971174193708615977077809197079669215654740163348976106307515525229366830092427524837277527319331352537929475536921388371851176209841629735645675950727709393036184231874394363254346871360197446847041555090255543235532179351687707429602382731406891106934036755493254746961229966985002801354472359836864822124332045742511123399854996758036547110275094411512206302118265916021148252540929145285277187731732912307021340781043093100934865028421379486273443515559365146408758739235121456403478634466358683999528028562034404826494712276518145403198588193150275243193964779269016635208788893998640005545963910767106637672228885507375978473103721347257162761349285492991572089508822600791366237375304937502074619850026282089275805602718822079422143912856303808169813762567603220224336004128636295824313616843029660540666682864398810099301502958167181014012471968565503338259354234453217756185331937928186640635807640847287766920996326187031523342076571243242033535453828348172202990740779516310067000880235453598484019875827081050942639223309413464264384185608765498809464849573202876056489936435566633281814777595290098779609523025936864253718458588551228175652974296703464398338631870022810405886115385825856084185881096282448897632649747002885748452870107956327364871728852525162176589947611057363922677323107819354921893926934863766742919316017167029201757255549661447054510206585701906529218409461744857650934408754091377499706727197023023531758122764163105347070457974214488358138169276859004616383284954766101436391040157800881074794996076741350399179641931946878884316623007224207870295714364162215394633318723607883765253784040102463590165392331768307237095195558584885244377575404190466194980007738207616510461797669437587662025466123090778457043257508929859803553550687027335384956158413373436186368767885766460617300627024182980262070468324938234804955657278323688726096281107340884362991470730649312292183523714029391374101297849999223771859837469909398134673079240675457692365217444165594261270053549251784657590973514030900969369097510877550939186716561661503989435511778231200198240242348387012387627358173967007204757601216457186068543033523088327479895928914482338172008230625910746104171353995121102143912263257870077887371350438875740488775325136712955731616317754455408820221794445430189179616410797651036967623416558699499076730715631142613862843387407106376173416110588395833787158497223367529817514011693170754704737053805635619178244311126019706280046409770167208017610577134336350861113143868379918934361146097397521399107006169014821580671630541368709160334429759221635143970046936088982728612572122850411438749990460595214419408671872803500218871239106611314869898068118617130319863704172463958093780658084209552811049276117244373117112907814809826127468472763472910041378795733689946964666668656942393075169587721448751391598129949959300811671118845107548775260997987968207758386207171752170823120612514945128829627656074579017343345486901084369288852556347356574753013459905583531147767170950072486065934976988680957745499834404426979132635180291130729682593552317942440180894095222667594525561201594540045826961245029885596499472624560419709297745866651148777687719256977035614729702459121026376735293920338946409010044488387072354598444132534101794166071933174695500891489258289315575806622090575795842257611040430275358963760910608994226770084293678065011481182597001117504433842428898642521923373038090883430369171895614755219220684491744724872890084713787172997419990124672171787360599777628086830070289947030446947197176192338522096566001879777487067683886583320093027788245223538235265479407914548514456688577594987269065701402944941771407871585059072834578330078518747622600770057447945411616787586140386606344163750749393824853047868268891984720845674876798832824211121873382803427152669121945912221268006492262383046777257982974095751519624407839503359583699607724511863395257824366865945583276561295129414675700186695343007661728218312953288049766352609490578677755346351431425257580598224333913757933243706851295375948247676718504950894562243422795455465730024614240717091144245359152444308724837243289480747206934441477099988394335159779363782946487504534097332950900261695991682937029584006169654420102333833202549477327204219058012589312037413187234639769390388266497131727054907485112240197602237153142205708963289629195927258145926413252467288833250253697594940345798123075981340321140409502356792662380295750292363414214672954123802713771542130280869479374365442909749369945737569275697436512745445712379168285100737000260232691088288702687054581343495503294026385103282769023325360475472781897944660809861522088932286739159679264136263614486660948084027360390239796306270149006880257702762880319686392895584361245705571517473925269370764497645549494786799257977539183104728364352846759584716801149125217389514133985662152081502772874558569855707076380584617281965646052339967096448917380521103700459688449826642418123925503268164835340165545100341501418700790663956357906646345128689194507672688830824386168125715180713699300610953580953749364106098904825672180872289573957293754952513138947883633210299305578429672903576424925405823086637462363819616380072605319014352927348004822089862278008973452655250488517376345058827752718234093072299461044862400125252737244483481921711411691625349066033324325282798928402067940504916650112801491501183331893124831152746349026475049635764285135864648887599750087077387912379298259080524634987788193887750630144201996634884901205503036295820144550107673582337729668706384287823576874544714745150088660283717735969037905675425848608137592643654795189250326822951795444364420536275956668520180980645192924894974697085846479198243775310116832067456875417812884534414025952887419657106870005145022635108855569488044310059713687436903400655683655695310947142436190839136117720655238425599421579242741395605312130234341859556687938251538814812545022252838092632201329416246393512840619059884723055400143939771684830003522803503262311381649892902424459476206020378133176951079056228894360406039408516568739269394835820955965773331254466860639923332723471177730381529058001766383591809606119914424857318747075964563296128307239643108775177427923159660321078152243472991245272421708864129104849845804780144529606961694670643335946746790235574845822094005232854725075252854105600588660490361249888283127930429236407898971654559193407200977360725397438070764684488030833276669495501234861984561921946489420155458926826167296845466940667843450921040013861134598362383240843210532650522015545114511234961221835019729368871049598188528121406531602609224859842275139863380218907101105791041206087253899437481517097238716283188308742511672799872037293577405492791106537678349507728458391312388453170645747886808537483963807756306685800521812249347049031787581359911804729888260150462322430170580302120942501970046338805677704978205820628503342765313235155147163476437284023515254564853853954383358392704912779010433769979411951569772296504457163835276686647386233624658096753292996957741674685345653622235800592757397904360552898423518555007033826026952177916875133882865594561703206910256081917452492639023267918096789103769738700003560361279321450231282275765264137366852159690185194707195635375639136295247655804722395577588336728945932077122607545993534402591187109784303533589369179166468256273095393227345132492848084710232352248318656148367901374750614547585718332680524344668536644873097678781930948215562591854878127238897576450621469621578294697000350572898183606665839312840030834737389388189173747874656253336552978767612425389911118196353720810051476170216495210637548076044989200432058561371433101642065772662971753364257126229606737983280255274723746726296558862487602724049629002243315064913773365081273632123926235014587563503939699080379187680871115105520163955664759062183942938606746669107630056770282861286148742436463013346915413135088460778648380832289850922070996454168466408379039298558078588183857789890814605385779344079420809304700670544827933832392778642996736321761589039624077557872193978210330632428537192939477500834690324513990342619006866612154961781877075444302160802936884953914947936546525729572610344882503884588869241608615580752787765001900622986422026591638446979846929094098715599699849555487589932549034802278952886026722733891752851145279227869085520515495632016507139308135239881634405837118574155158994614212937143890426726897738480811817641177346787065943378168205804117804562071930673399520111055322569059822469896368054117986237326598851749225070695752267883447050161179545449402624598504079973249859524092025889144247524803688736739259167228439094097899233523490250773436297398724031309585026521052998804314348323678440809042130686203167217645537758979913709913976391447722025901618083030594198061858692013775947665954740046064385620575228085129293815658381433584959136994417665831515339364785501432053379717898939773451793731344046819027168212861216439704591238098954333989400645677671581410354470314380410481894462005905719451028879590380618194315935235142212288048321376317005167712805620891975623951150420798679685265008714242187967326310460777090711745760994956118864541134444741519592671803148603207463701446879321155665300659940547876913039512458028346874964283836160004335309328622580620786437890985909761000974969536361189350162088486577005687848498805893925844716958801613664332868147259592441645650847440355049744163600977748187162703694901980901875218383297994088998281688065078816214238218324167881198605715159738404197134770781239084863695733197946056088438787177722397171289988733963939989450520355328989197839003731218452304615903732423039489835511894226114291162144622262820823423817048764318044310809062069595597799190325701085002359377856197268481417724580618840756103937156881315349983211249722823285094705201276491329790727539219201051719410683928282641580690981820248500171624742455818824814160111411284288080362409386798110066938898918535464940813719220565883263621499874548410281769289392254567634928501745327755656543166982370504737937962464532283473919006981748019021824895427737980321528316907436573357829437259492140090243318020583493720393866878247998486418705592592361216386545177319677878971630698901117014315692830292701660936862036860152701757750095145869602592438711962174326081214867084429720227496030875549166124505238398228785089987000128116173220404701542578884437764214023886670389448494705260987431367553077926372150062089873743360416528667044508107387071662982400770622036714058826965023117187946591745488237416110224589478358505002675259430325058145270778623237177300804481273625818931604867577849934393104502915214380416543085750030478108771195385737167071108353477770646819427755441553266047841103011989453652158412481476283967353866946154380661409175596208745057303641641156824526095132793477018160925494748023478493136674270491248499719927715151199823902822768620129251930175468472363950178907144205138535745332974446897600478627868355839567143264803618008794458699287357902777695632870177111443433561039867789920187243932835856422532421973610992359197965434976507326521759976718339899688417181649353615225541434999274657487977086023732954441554116391819921122347993974300473096853517805269752354767174761714532541888499814720739099028220849094100624895164863024536632484938927319415724901745629258406112573950163288303718064776831195149767206516987969705624251424701594160302875218681355850954137255928984994577871562437156403590268638130533722620066800367595108395241376717243023702850068617018023694545743172490365667112397525440162304399254183500697858381551562691374904128062569160540059705556227820222149096179203125048125618304123601039828437220360595960627197747749666051043598115253604976869455208908888982994906062408971964073290426364064855574488190993438303881543758533163524936564486396609109518371041129815000184213783471792160839979384012497084013170726628179313377375695940876680735934384558534778098295484428703037090734670661089468221642495242038587559698350356753246651175440310948607463232734609007119827729213104928534590698911847870546744065639107620569952774577369131992082078210560892376474669963472585867018362424006713264057082482749555363524480307059177198023150003615024330120847123064979874293863525713213452666921694783745295552759357826004854849267830148084598559848561634670813868140138176190660871081793101512679760765590203447008379399506516758187088529918874558687906177638428422019280076054336779834641973052225551398019290326675300474345691564205600263103171825624402882938092442766205277947841918281157661129024773806145779051451515141246902315589654321711519655767839650365204950895357723572538577326330473478165838961851767660531436572426247067562597382865554306580247476824445191210379102039319665039846954296235541114222061860076711401280659563946264662806254338534617353031265425913144284766617338124853214250681178639133782911125549249546252907343407394105510177272967977511103995244756194239434821607620554341011457125968309735856741364155158100458653555138998300366925514106239064014935112509976565331380246177542612003741875977156790546955896302038233918652970120582637019766548728075767437679643273328913526732037849717211033110358420709877778112594880073547595129558423645653716930778063030584736122775026513898589954811983956727351607682330776716206136063818330300072904724743081749142397314865218323734800741368402330544312509356345195507883275752887765942711387657313430476014384235292260208347562008765694027510932537097631545943283467310175466038568967120750079686568487252174634671884182957710495392073286483223503805556115899085934821765481137541084412861306023661021053291438368023766480302812280736085411168729418124787933791421566140929506272936854640990247496061862429206634395796290627094985807057812227126890469616114349456733725627601366111859694333785356752801842195846461918687166428155480938318488487248844490016681390344952206230797917634019296128226413665368298349074807459399750136163019046561115304747225718730879258276401091265438268623235814096237545858100770532637177685097873882817327154620509198518232965641116455588637986225980935188299493154290603111303159329880737486837781993938820081386977615432981299744843434241955959154931869175320989333398817572302280473581640303048656541431854028413601178179042055747900963135805463631830184457333470383536278486411773263322200537913022998605271342030369661324699905846251503163483876604365653430296593738104962143071678177888497048409554247342998336077477562942037319742851714800104447288211325207446320587245027465884665729366132000364729863146154141466048071876545465821597546580481755246884328602703776200326062680640676172974132625431141456424251715950781033390400594837104852153330231962042285839941741837052408344332974962586866494067772935324110832542676079311744646603287257078622131883653152016605237096173495960534538102884846798489679353578744243993667371751653072431735103281200390723813532807250686479880616840291451628196178409919011683314870018327853789859183868018381637495253291309108131940278025501604276589994385832889634828371955670225904945512443201090319241033253854907798448662785327857014549492471421993298332762186451792281141268977541475608617885895157614708759957155004943993585212658969214611506457991926180510574782596792802926154744661087520236666790994028378939415121701197588342635541031741396502605468831948325302122432758436023509352948381095178791951635940069850494461592136653645918696651321833811990047075371338658239357517656318162449995260904109768318701507729145247477879694335495037200242489199843689781372732429754875185199301487587742158395463237594458916751548730848334182790311140917187902634273694475441424340376485044606839881974878622287751821292264162507379045753995555462334893268493281543671641338481356059815697766167634878895128066044150933287220758082537355670829303535982457226084682782605370676955945884673773953984543585015142140177774587672691752344325779194354990732457566442107831205975485763414642095679415261196363592073180702259838452413457641069442599458094801226415082600956859565271810379087715843568625085166856508461520502152806000508395225174830165732945486786641923907070327962616759922595550427953077116019362225145273873118673404300541159160316199610291878748912952997362222573936527380447989763347029999615403264910723730896624166451036774974658689798452791676543250181139733876822263287059299206049582788074670720663440020407407297847030532666942491068274289697283341251259240926063844453035852366109850347650648595365523775627121178939199029307013519781074733264796044429980934387406806947069399144406368391819756134763449231929132012302839917670000505443398443138826449565582138143246136279342498657258220967097480488234290952163623688499412714224808539454307281418837235462030523553952075065091863531423087649191009838286796531169062235037918807219095936387331399547776138722292252089681877802719826940009429446906613518095319893255932428309672340268588366070662710720427355453556260920892496394211353939846711414306063019670063122511448528556653970981028237040419803129814214007936900310457195261971427643778548843695301696891107947167553645911843012402168452381948826550451149678065362544302238881566205773289128672975974264580752536792876379007427455430151913229503830564773902737877496658389244237092342251052612344057827229392446025387373279580180159363383928825237579187020549570097235142983238532043396828239326395280876482360296342810204694522190552769391091899926564806110861132989772790899150558997947064508471630194013264816902521968719031083242764926673133822154104032636913736306685478170624535191502228790930936580090780373497890727595066729525883595819071357597854873713704742043421563987286983321671479710902348870783632553535098317175782168337806644980964366002497245327085380387491913621201880196953016012374103549915586693941281104928280278112781276500216094009872984103524884102379990120285469579040918880679582503124811363595584970368893900816088758537334767915061240685529802818136523867184394418309281719443269041330908765762339262198797135864172793533289842015208985378286797009265475396308474451031234189689071807714142986886199394702599020046828214712879772187213352729119192981538514231852781793033422678946570396320101990192467257164901696520083926394705040201021014782547912184579331828011083054937126378443926833107277141629421160910250688718300236592856849617804847173312711785889870710940809936702962459527675553607102021663369684408763413008252297407667580936302306829864563332606024868224575206902687978567414753634397517032677466175315346404092318889897109050251257685937991211003841639590984190792334693664517460523950871043124077055322945709553387904193251406866545781094253208228196454578810566462715605262764821275561426942514722176390626935776173369019291136188276247804351275235971849928899276906462885807469696200863903269011680202496706878447730176182971602299103214774723120950475359782984896519914111118838072450760116120441729225230751062313813429897565750072697908267695677866929032234402797514074016648179827578392267617499546851447495127974999555680481639519027565566330592031184193115850289944149706529913363682660012568585552755643051904492872844167569066552227440296261059712792704728866129117174959277693632512299442521057535361570232019793180437936016048401183655259385290413849359597613243837990257551242453681155954078210065103134816339512789830625550375527787383529328076540027550449734868099467195122160178361408928127392378058736531893066323288084240388913469320851744656148655008336999190583213019913198751076533744167701785083964557401046867724076854888668239703243399374078808723489824809440081054560768360744543175037250821287751862026293324773399510670494147180253433358991037684487933582772855862222424754337152544900091681808102951684427716170096414225072635869057788146642960880129132332911364469063636038868793107661512335213272422071159513136351067149747762887316895381825637943763510396946792424939617634055050141559952352680115414619306459267794516284800389412035248100526722265332914378721331149124640133438851096429542424418030694203765416014765297568094736850056433481087702938746321017157971056940608375739055125359000162427838884427889868415086004194488931102063480258047344222211638576339336915762425394453204228625713219572147763803857847820681948078790187027145504486557053316847188625308147902314638399815339965753982499977856691610449380853801648808383893313585618539315274342966934725389754465546015529277058924002429195566447116440014743384387276481946575993188555367323542027695092278540560333809788316551405008669873582050778926032306074848010915423661319607483575275853561524316177672082570909584614189630517481560388385423396014514345946787865411673996223649998023829371710735711354664113039818019368169512689037478046940090031452908102799274404454304604541951949907044414995201061891747902515116735268361660315590872589266439779910651136422939583055310301970083456492131438711594671076690573938954320107134235924437078026377638539123136758343326380866555185497757432838311384595236836005403746482731324294083332625081227425029129946055883139924199505632738838131135939217539854324158764171261668956629063890750435051447020494865617789314854461858364873781052348292533184646487188952458619607182039383448315442218574685862489481742633581830268541805422089841409238827746423471878699043169565345944112124696484072890120223711342141993553822032060445941880999874311083894080603231011144079074600724300324545459821012617563765315744522600513062783608524700772863011318323348477986818428168477695592365473024631317849848015987744422566191749989378084524570185095250552715032793104779489073264346122095625300217977091647722361090572646796513347390464598502973694122708004942017068671519298318943467350788378565871559361140677726846976325858528455277499350551541607546510884206013142462507136699412842642806597014910748724987596881959880339300535527592873494714158011327337641246556962289972255634402282319715895575796291759489449799201197091953997931641375553396074061730241741289751511408853540944306467876310265537817889382639214328291670167155634187043479353328796368230784919974008916919268209621243678905542084132482760957739067837147332198193020726198803316237402852120155776664438869216370980056727988865923483331723355377171681898573733918910112096086647680194727202176640871700961980325409075847086894142004116751039280092309240582563859196435720543109137987776549716542512661589695152004724053798439052676682719673441653347223872936704946170743430257979108634862859403156170714912154139801441043132204104055036979419546369046415677103336424231519423768015968896704008063618281672094780701493878904455902797599740624740428573866110277280686985261729569106872858938838682681371678105461486770258490801462504902747808656531007711691655782623488270998452507608645220456437215249434150244692342725125911904782197886380175762095678876342398680771900018549847378603510351591026720661182220870102993240918259055317954337479975342390278092174694573920103347178408175864556708885053503001695997771884781696081646589183753771497270475904470487353612861601572731246055210999150168480452074728536450102780008380573730528073608205552737678123992984452431524871018865835414046877859297430689362519690710539725080225080656261883144678181959408353665960540801490613909099890190067560541792355015325538115531328667712336882112131537624824283139104066619428236499474479925444387569807487607857856529194224675005601058226984559806802701074705585556302262797367422753271508038150919244538850988779376684464464794754710565271602443561203390282732662734993626532982881546566762671704503774301398027590792321865103121425960901648708649628664895765761956377610741687882723338909309029037716762464128852960494519920311108896839061352268885680547901177036365733180349680481298258536110381916983262319700508897246227350165115101314167311477865958813817853692027275938608115044989079131911266334383959868839736331380522483410146776641093497503994741803467738287710771996999158530784014216252001347091472847498076571386311582125687000397868363983179214715817963498177527959043620522472049778026215862563681345374772735212213374505791956860486928358501320539460017008670358912261650938871739043154789711347052815163217303412194774684962245910508442278318254458778176350244863908902715887672852304882752391476142298207619459594047795391130552060391130657510497531789680288039397245820105921554797460090476534814114886693479980229446310631039236257106784246944985308999896992408906410242307275329214393501314605705112575286596448673559415335693735340357527143843191035482791686558599588071865413393005304118153535614593368298587211182841061400322467271401744341169018141362295344690594566017577225256932934131772460983743727308165838939049285480869900439577210063627091386828748707533818132403880338707494368672954153612803146407241865469204514285104086339345705713624814277990247017605532990785904004531001125166343554978973862997104143047465360394969639271177770995201385079468342944361193882191175521675694503060270824278992632030116566367017775961884711393525740166301185671860695546190093155228677881232320663874256598646613446890974916428940563322666266875548253407912323494017968589102430882940863840189238786180053886533401658855236204034690165416366006543479959298613860315505794752244384714515654464075860221297621816471347587843999049877050823349621630454254062648428144435037011772964685386487347834152415452798401237716747391758833763819459362950714936834503945614417947034460434373545229481688536673679720887718478022301278303303789847466564344911056075938245616916719791103404436256603378861589577019856237938925592294870811747730996287368634705971528951535071801912586166718054430587210971800253059530134456538342261859299176419107121645003481463809570067711432825194504108425500533752383358325313731194699330540549989273111734734143742039283203684368245315498153898024681599566084260576213079591005594263233066168850177270383391659100879867043717687125141355407109748764513348944373858405495346470488106495077571358707744719312218251476356045499127840941101112599842960856929120725493628391746495354502862794948588665108375322529772751936630394346326441654729021337593728632188708064397923343865027947982000585387202290111757389713792303695319079905808372382005825274515852469819065848177308323965097358259636283389656407185755686989843743992977373475812019484519921704627958207504574585844238175208640808061269011696572744350213328758638667203316729072794276763981453825843144270862559920840315664367268079965166331577001979604795919188560561212482369352994212240239023708983260122534982498553190317224560759591864991576632456204860751665450717479800953265527604407999689246329200228307792570592131730139178819264691076753359018707268899003075821109184955099805939326085322491468319721252705530717554133436936368496794678322553618796208997958779781118114017753006642497338403786421368762845777721510395077494912032925316105369078064236739218852972287314206783779724475122193628272236571857401594922287323340318238599195633826639709837001753609871914247828988200671557469752612370105354320508435550027603570634119678312137687440601127500876676058230161645738811736570171509538543907790274794162270880049286309047566874464593645707245655382680056489716844614951157091969730946555614772677811369226700832915967631823048387929318189718603126850195654509555233147406487419305925263064182596726969607427961231609319252167967273752105782541861253157053824932835109775904105341264967261906004670317768244158595566396837358383559958180852306559248446688320890526600820686137233418460227593732498411211145129335527926017305640829012407205819858720407858018282221978041331069962688535376646603451610721970457918716740763257278638761285560969526670326734140716739452278980761850376002245063650474554008549020140419152175751430256199975166652500046531573970669661025324811671803157128893739563459152002046012267694706113333929603704042597990244469387303060276711826872308832843611913545153896871875229941792915448995219930578338195688427470023614851561802459985277042011140361720784122032101653569212380980407220358088428258187004317820450554271186783823165301575179622238050144369975647777949078834604481051863398017263945318685691666576535384337193445102687094236140130773010715899787570102265280007533549207857243254706271438087677588164857151719064372275608250612534957844997602089269252773194265472827712915316125933186893276684300738613407617364712534195493348163994498767787158429965897508856375872476123485824139362177248376107053812140293710874559962062397548063662889872992206073692852656184102205683152255994034857295391540407545422494983592806639019686591550899467584140713475274087912852038695102894676322544842012312112424811116428834180409934404885116271456578718710952013168518082559074179589159091403364288153866236411526739985872047418233699555944365822538798838592603865932442437035966222065057404249543633586625429223923622175698363886857057620439456808427384654751968701087349264971054890341320481157059432773081058450926248038322792631705550516750471214373399541159870924704183160005258005121485286124439426311409410473588324322915610188910966756573292085114956745852434377291836901992615764300425776748533880194937746795480921748555563491438859321587515301431288685431580366812046494382066562720056563162517947560285409631721050457401356041048478668412801521844415286380360624068736210748293534492278892307224831354348661878910841374112005175284257454911616239957728692078057156256816940288074071080540710628612846011970116176975096134939567987426054708244061513423316763541562880246552142166944522880063619239329696972164122305308564996597538738239222731247308766076216370732191941221767894948404086230362438275685136111889475695367552066575519571102906796286199765237316976037265401385794095253974250009647823411284362620274969002488138731667378084164600401445110105416973847290729107469138921666010509394884155815772863858908538153714627507762073033584071335636602898283461996442231712333909215276344449167754428195992866246680178029953862527303255261527540935303509826797374728419249086438699718313793670295742995137999426809809676477026258256222366756073089886879754311478050150467181878125121302906647842379794779422308893823447684238464062661503207017838865526275457609965875908040390448588444468729191003893274396271430963683459034568508316469117090105712120007619866569426032617376323925767093024537832935604388612695497983157908829312357602280769932011141697139191296109056293315469603959666938542884856910521580809498310583204386226280781582429450747564926545539798812428081818697043022150772877790879898893163153403870619362531900060847987430074762004668447080775825309660547754109608108289241950831849391341563625896869255090226033563373562136296619924343965629917230834712730118751165609169556033497256691652851156686445978578300843491145052821526865443932006476243410455177322124288149146296371682423513920881973767452391129422818611420766476974746810486125017938273129351590624660706825872071799895408074060894402131950742207204576509197132591231228651495903935566106884453307170407993963249745002208456766595502928474743934406206318450676463197047468226087194353627193773663282660610193227152809309951200783996186616289275347877745775338254471508177085489598341763631183547669762142663937664335257688034649136784795891803306299664208761271267456706769755047494365542267476355803785771906650502286071971832185219557987817463522608650622294321672831306321970926978401542520077101640443550751483290197835900052050335975089243080331977992422208215624592536788951793581757586163086180388177206353327206942778491280738463238705405954360153017488846459568412353029915568779895616606036690991824727570371863531134810205425049835613565062677443249618154615194348071444542805965310176122967334096210605818309645452719402178768350617489275949100685953806666336606554004160858099261390027661773392250206525863252389654678200095976150282310877627579851098899412692759149979495616133682536880873918332403217238836858227119487962243859357339594289282091113641492196090149265036732432694200057661503294745570148658064256945630433864599016151920389747707142253593569655397587997008123806556135458014421089531108055175521677347469273245838928311435647559215720006386959229546634160986842824814471244445555414264481350958679205441841143149458119656137110268506474531317504889883633315768713383389798439998693263868876252925124233923311888603623482536781245409910751768503433170597172585962980105272146402477356415854774847531710038802316218877750446964503815274671544984362674009729236618531355932390592669325503654249156401643867598959266212274289171903628656168771156421236778934479020536317494044271129194168166070697699311315344190068088822883116046566518858905235187211543738931738157837392854860879905855252657439565109967965102498431795804355296392536478755160519000243610538232352358209973242131545307109485287780068406511147139590496579961806062167499102030344481429051089130550427843065187129814958632635345914782761580384405569338734257284218633701002605686955249637648621379010815718883585555249224485234059057309094844756622829935759585594966334837475676683174868204839267981344877674905831312809791991311218302957723784978166144521722494610906361058489603030969432662672444510012345588818147206471367753111028095435386283766532335734298931387575940086759125077968994798396498310271076743354409765479555695513538594871214914498496304848263724826736474063806256324597086565951305604881998974763006330958482045451379415370135271187647924532445745006899621376044403182508024943501799122419523216138064472080994657390346260473516479221865533362437677729408015658509967816321046522307982729972203297041629708386870876841215777557975494764948546745483128587515131080697846825117041135408401081996995507692674329480825124252423753233916037951542086649188680449558157916817132517602501408023798376514235045419065435547048986258287504338986716422474229966094841383852219605995708880330633820965853572044253647001380221173179606465914860505049122540045118414728928486413201433763865174582926709412478395277753179007084713202078650432935908952327713297715643844720305485594371780055283442400200714479344141155854106083590912702351675602385616421302945734313271620608555314617316047334771557369107025691558455884946255075089349681443117519360041426153215986545436671139056575095536365717415475870165332398736238118774655597075123269436380359886999035095020305378044608974712730120179073556221347846721345735161045100180641282650872821160726383824407646087625571202335200698500313226177163892135467933431983260487651408016400594531445184920831388719092517176738575494770553963496123599288218633307830411566703736097424548703379907830305212302747578903449305991030288592325271149613158108270502374877106068609832194874941720479950464110191835954156253077923376714010439466830658031626093332585995618043184071920682985848655616645679850993044762622592507762535225567685589883096802089536303371257301540437474901835189682636123189782379745509953507196986397246284287032252619961156970344074650311902221818131497982706848067122933117482756162594802820768569481772968157152594477469780985576087633454939449189383238540279856495475260827193013728085772410661180435134706017305968863185399990109548917387905398116921180687922036825358881376967420573983383712499153857570017903092637436147576863936646249471573851406811670870919169953320833935850028538922143544118985148170559129255083877706639882597745261701052026977563236803011568542460229835603877617388947704575773994752749889454226718690332641872569408158180671070478270425407021418043329786035532482541385608849297889611402040015304741725236655888044440827411656469599686200137695284780146825004048963344703509339150729238482742295128547741241379440792666072517926519608773084657427501862362534915567229848039344268221533737456335828042064040261272878185333210732785975483979579779394286214690418150891805545296726741799471020920630527236577131844596913890877649408510860313986093206467577563256375242023494113499801142035601589581022357292703008343433635614908646780749033517761448422055173744848813805353019460269899394939192627233039646484326104620548689696921816716221357478147925993290690123099442319912162251384049165660059061022162726141437157189692770834958494728779099978120429142611205332882552796211081577583105134416819690410341761763353787654657114248042133231458147125105089116856626614719177390900551000843575203100317541321670311499961060840621229884188742473631872043425117058318785361094890882006012699994951034290487505027675517892334882564777293358805126201241961015437697552686179759515972146453988124007765693422581588032576918240510969494210644202658579961976177010186788218485966641105405165016570693293118359219816823593350703199848165676572104033853195282116328346444764515633351973917889923930620337518587996552485495498473338373550051300123421840868558897078533469703910245804553560995334158188809256288919368009671497391795767600805259778006672103326788677907572473581099305764639740191297857397011332816660780836496422010389246702541157190632541001842564002295775760011554362834461158104092859913309717828264562834738694516061946959954223064484599415557201785969707199748070301669300785829423307728121764366925739044547982670924972144444749640144934581813893439927672051891408586474374752327284346810671856206259381362357147573436681053685301373899411339669363610932999203438738730500836956230828320936759323521087164368860187431552419584057923492588455916363437905441664594795422831656514780381445169452862462081077099784070001156764569200676752755705592509360222691399252565232324324807560999232132005455950743026185732365403976129642789182348688382570716703267760753751399564965349834530209839297384665166045134569048891633894424424637002339516480318130111252994732156614960679613262079401391008372294908166663129045437786933463650657909183915967745049390942730723251239528040070953698483880511558189105154517232370011499859970383717479071992764237485812408084706474280090495425460238910376948190957032863266429772462768420604402160765077253576709503089220607641327218729543682942886580118482009400681785813475836432689288966572351394507482460630532117919466970695684649236777250657146224920955389938118855837110403572414489494200979298282126896365559459382307961659572147036640129844601320270344083147291420372459701619428281117750054615855440600378715761400775439812466048458741183954469782703506813226786371733727902813807327794992331724969845149342482606656512694833815307000942895698347788085597884525950084490239832648092927236607188534943937870915186492981376441725961956079358447936199601231735574918211233048178632761598430348556593284775599142665455299530702777843078857314900135049646634847714925954086549620834370377372333999203079220613770122078430612399684100817339215400497396432775701921441848211665002046124445332040656803351571160472788148524758595382105083293494457730977918470269484740714902793927509070784752466936300857037899615317242181131803042311973410402746823423940107961878558949710436366332324682571128038328160032504606159133676750379615528063403698315604093589124724510230516625060551301104750754511746702119033630098872816102310902144844592600813197302831569595365150591047974198326475426222964731396518884192139819186467796346041255739481516368548025514152464723963610649597684962715755178323719773171471786754135731161656926474507940364720483268992164734151776635639133190653989892393222821386899334434013644156618314265704938323108823085105294042014351829737570965598300360494907822336823001582644151469012707064607617622104077403362069992522577254921080316979677650449418735442304475015131312149590264255815347440625106241771824451040350453219865142868027338119911156831385768434780195986811168852909872217210501990527468753908275575443912081072000986904764234534942113650492377612497327841027791872452168831453916643996527826884561991306962603286909946355282333119099898280125893164641301992125477343566814912452593632170404397236668877798743449723399201825624123766461198043210498741675015290274551431294817368259493837688811240070668638865655132886494171300682307804440312781636066737884620376010472668068073856989316662861859915359218586212000905308723455590487142805883950494901552793641813649524944299510738159165355144276286976939058991106064958623333808652041096792014342778819652392080806494308861163685026430143908933302713703278811323293690311450641756804315610440471361257645426769441383951640156161148625968656564020738775794370655321292789413579077417546872163465610371539675472112709054522382622476457476289426243625627064244294547886385330635626104845995288542031543726427586081775860228596681524380775486523880305696035151954446597546618327994630221683224462659283140931137634408883150277906850118572602810431544746120918889412010382242901778567823915705412996811713340455051619919925210651692809072315533901146103781856362900766249989012898348696503230419769387951672709136604032135090707946366682013449453694592891548460161142192117899116507768360612814611641732705485923225092799761148263657799822173960559353958782150674277899685537980279027300396283628491165908722641883546737513189166955069710712145836100845066895285961939643017237599840322146101229167849541722579050836718213869162325512640092769565602189400444964054759282904575662498615893555573821367800220732321486893496335555302386838416224119642765861116041765858304458700648605138619286657805340166908241548881497879071036113070207893919587408721788738342994620437921090220005635565855385782349660794761898858315887995757703031144773751480424593891445808029810042603236041525579458957751379179589897829885191238893679644806255044030761935272379707778859501467965305332306048480555728457080235440227217272483324262089915630310384213609232626466071146835997013230750919778153999135261223367146548348654417827255173656583521884551401802783257742211062471585698665009028612654710479639621863984335269595503912352754507928594468508495232173149484662853494872251577628419076633768891009481966700749723841432577347264161829950026910688048125192409671257110961873873030832246059390930430532087955015552973794353330776973351385378555895646596812114844000972040665912978143138611535214296867081572355570023669699711949201694536290687229766835302712810649332564262790918226888631359780269553936010052138198226473035568834107246721747969003875210634234899436253251204794360463650953873240751369856590690112374481014577715555509935338489245656659209182585512943747863442946785228625708994225099784444256001651435890643218364928860859116894907426859337495048350699563048240643378683370352734244250104707646028792172635952897720126321259351665392383280295197509865649271430193437883153100358454521230585446947937114150726332112776414060144034751827713327091170515934952057211464828460863187400479275729543406259452310219656148584234709292325953495077746537054793450302532337212911706966453929520469921573824673121461881088996049620259030077408223166400381624772968542644800306570618450573974707964782790359220647177416244892553312785564382369447281565228081255028122191956083105788463655623743185895894775652663052453965498237239973927968986136787619078012443272475865379686650313992065233406170042604130022349889113332690056026712586275800226745101583212794061582334909835260630666930161090614124035671233119897629412358682424730001473610473615805529567329685990244702277266291190528109230504285905740780949700014937819194832741494434073241192120222788828608029522977267146019631900034161800974796303062400703201402036188057262826408960300732569464348783610247124888777070447293871571458035738390723760656955718957658172546062284695031299582963880830924513553072582477711163171260917187326445197750586273988685645810570198720419223504618109334359357498912032333035913950113332486455643413412784562899174086387399312816825156820367699431584098464240069985523159946571284939596681050768128500454847662275683142294195090662032357085460742718810240829268943030013422606955102904379174330308246637338161578453654418074662286528889630102499684375013866823594622754979136697461399616648717489575824618890771663366326368759589113322252992209778039893125529136907907721686749780035804617138607408961051665792141523690371701191707803133984842692400320493746616385068785821538348816210258671954444934661755809473143579142158946866622773512732608820798901969429952935757852156453280884179103036580368175344043681478828160484868160285657177220012074909342341180762223057626801444849573461166032493232283211893437227718724297445912386081447514064136876839350756013722597927543537537555819114736451290327457491554651948526795661162916938735706059145355361346209637327973558751047946900139803302531607750960043325166185947988619015302550783947030482109575470836100901294948692892630464016983069201710842121405986507875724342685327325778970163445619289036481705128676477786622063319019637571281568349803366297894680713992191876435256840661579055793050203511089131330143653575045137621731419365644001944511396249230315174306596124735595239421722861846420965178822829338970807949660241192840895589336196348788212815229068324345874214059352419744700626414605294033412636957488760904717921075001032631037033221877649600072865566300373657217024013675168460975781313843302562302268986811676791107311791650569318045647900707127315352462840951008827110194063293829308759030828761059221319235796521033828654269570345049989729339498085346379426749306957503682605982749327661239897701836306404808041308835471090019974391438088185461844014646446505760095946454418619827343288618721641352395591937717252780246469508736173853138266335570229497579185903591783136412966138362833689265366601881071425395087640410550359471993312550813239036854927880466634034200077507476641571866401148236263948975309798658305906767925290378116543393607412254126171545822213313247328185368087081092245652667354283155031351867540402311263816923265290313223279596320792569126025221228385558457845393386519546887020508533498969930228835674711796621321556190636160272992256731238516735758307998899555977601556452568093356200231641994887673965039520881036287584257237053486843536941190851244372730870919011286491078497023655564313732206266478107747376818194597102580252179533504651851867482366473120677813787163505117045831949917418324010351978259068370827208270633672640448712249777841672209632554386309657963257476469302729718663882268430606067457529195666245999638001426722404003174178315471978705442110777879597788500013224466800259728726684569591909435860245587129609854323497644331854803372553283556716799233237140305922267862819208011673998506013263289449471816110485092687182540310795158316661012932045974513690922489408622749690863736448116905863713003438920740188415723845890158015837847066806528637336486320241986670607889496761148864480909181446677972831760828732068614146624514107690944814099406631054403070201149179300513495899209797085342736555312992571214854617593180828888073172634229842523455982839438707478302353370358623008803150359405216950162930243783455081663807777849932720407883402936849873587378952246878883215017593028313038299304084806840901806030181956154667853208243744385657284957627737273715953493354230841033702651076564911754146215410849788521966229968453106055649040804951306790714310539013779493498941124173013019901147355863514192794319005821998352495381212981267241955967241619126305241289331382542407940017498894987598793814320396391583623951559282203295357469804101377140294881673511629636218352620996938802908269753404257434242610831264922790320098360058371266768806292881527608368683818731910915772657750996028092074595427669943103611356900990670803698775659246280012336697225442124383456979576750075998740092229846958729299683799313089816284150443676665883599446735820670703294697302599538111502951348368300289750531745455864078395301893615127854447247918612031070884112065353032436021973770933696906604552343810015410069907451142652019790269972376351625534330496599569808374151083933667209759380049406358401272007344557970516528303976114471252872410755297377690958601781892111914823329119498570110959840852921193822813498478681293108393443699975285601162768514526721967939933185080852989015661407465596952980909550323771688479922220950782528374315159665575893887133737543624066132740358286436542252490434711924207961899407031324417865666735380891012823886333151992099149204765598620556418404060392573912535915662297669416097163537926823823053498288118266964512207967718479289142649818860083900530342568281771297443901999959537976578722723420221848692290909097560763618794323118188354417548611651179266226341901401874794857116314530836995704138305345403868664757248264347655302376476156154600765975012022457276110107169381593179466533543924310871499110393751323746265000732541592031622877419570140596624773169753080731910613953212652157296519114826463394997567262680411715091936451445460095484305789896468120348934225830409256660923640907969106353815112725204989163875310891439237621011784175132357068053996932311747336675997797706813252233793365322412661284595774307575851264322230764035827397887764059814787426292719434833362254531839613437775922207423311617752782190667035777724156218386296790583098629150426937344801345560224704758838806375495607643836524313710416097904466374734605632200276110652866643997353162063457619777128328378829757852184008891638535676763256570373967455352815512515559146276599571823808915310011318114374859366432487910603400829007645160828225714585649526079966644837697049952131028112051863421047255994816767224769146579418923240727890622572338273921461147983083252145955664999889776999017012398571773161956022535285301891295747612653888619228173261667990114998921056107234096722003022624049821333007664346762877694429441566671099264264187646379121636757710602293868716308247726009929515104646286202742372959299291155129463427472994738371853062661670761088477798044210207520026357487376759049531833801368599916240539221974746964182724410166893598927006407529169634620342966816069358869610541474462493731333877426690102012919628899858034965787145302640671937350809747339609373404109195675014256200901283106201449049734415371519189062629969620981382952275137694122239789411226649928622685882935130333058829152051784997329407034797012132290304993821036109570788643904085685678218953718435956130272758251367112816772896155251520604933824616106296309030764520024656794672384293987539145852638437512801849111124317057537679688162881733451761396025235662674481356701891429350862622771793533302860058133074685117706986896362302544171437696522407435991275317324832690688719711766718192735976817867517207478565985134852425384874979987661164380292027473521517209457655627661810269884884451061091272821921121050476555256907888625902996261029103229313418624408007002853229185327289390746787233541776797989048175626543065775391348755927739692325040516981524807059333597463151119053819582252177485716792411518230314401577500159542639138482535199106915944418436512865561157275522733293656303601293373442180885419426120304518719721815982302777527524759054147477813336268361393544582876062147582478554810657540171407201435877877875510790200822323193915259907447671020776725104726172477224073801897649961270838395428551561735884236662411515997978198637863249525711067242656196073791096445201958478071779634136489602373567315761796148865336308260713799424884435184678032726852076437556807930659499366814400613858555603969747398555523846395972722676518266124094462677698065682926754792728517186764958330714268092882879711759653437928656111981479423537995422139299169562617710542383690820423225216171452200493654266967138395034401743669723218684648803447478685209059714436189160327375794949703494506293928450884430391626265744407307195551152076282170319082311279113311535711547641637145046376017470618767524496757416035286967345019499557189689535276455932961242094688385678009643958656109928623344028045724074233090750288672814602309156604602486957337758999146689532709592441480341678023107860860002823027893104872219250012010616540872605018975921694406574156117618284055337285895172652030039093045394077243288092743631439305102488102282106512255945273150509927578097327593248295790473053566150141722888697889709121730147854146349128826344322789739743749323443169752713582117976607033796557084119080513663838203105710995758803777692681036376515015584994581243870570890275555580789722052026501082632625775228560029804546351530736798249122542783555287752073143667803887140184476747358721873953656356548648568238624965648850895439887727085704802174400659976797013224977100460840020895428490084548569784159266499396301893365963211978534829654607423056037718128645819261902485482566671565263627042486048272086251075793135427911009629643295539237517134302508313255983688914792300202734741513779730445882957112979316649274886483025616667852278265943142968109978449812331136950179823883740424187540561574525573566442825136710349925821208941721200469753051554152859859526240301562851173326575610045402119126242684226516190686728834160531676083335461906904505508795904456736626747259655199803491794000806551341187378348292420445920179188334802576474503903863884851906371461098967235314980769509695617499344310397598381191098078677244172302510071094651024785355280166892081865968620105341165755304560990465483160046063295968430453912184719336040610851189938689510720008831352184472080261261637558391710805792697278585377899456378093278150454871753714300094091550454389577776528781987433854137285666598210588041586012189340822875971103476142836663051963333236183141000034246134517888919602581660413654368145970834486931145831037091300201383247221074222596541329000936977963464788418371209524723607858027839496004155025043722129092392795396766977957108170802466446956907840170755048855929301731399151929251378681237578766601700122958309232453171809910072608458874209037537593862514227702234483547648218875540395100903177805059401282201999591741652687526918060745355688600807503818014323330599884003674601119633527413269530692371313772145978478213384816922070864530889028192517046485129401525553862544223847303064274526757692192586345583334125617926533006863900517675009582748829082648469809585553330877776084811288188101495191241215979107409279439973656075494670400316132604063606548152712439442628328462559398628035619213204043655773961610210342123467211645580878052091116482315980342811178793885420418353218153699744237658830936228157134869196184051305357320214022893353830181648917486638691027200903536042356744111448451209116823210251595490137984162223231458322852542389199304715239374923450698517518259238714039760381444126747093307671695986290217393320326559029076082572741972827992116598943227573015045768209871917604186771137208145372936880442393446180319119778808833073419496487348635241226306970802862704359847917666628796037565136029390671989031358022409456281102271833991653651247760997961686354052142356337199922816462240840688653544158514614455359203904864496425041291430570522967279067831442593656137199959969025599773217135259753127384532138542838947608433480648973750432779310914380682425461153777289655731566314244202450734185411123117728561874912938554493527438534402419087118330302912934700146850971497862164688620398111906016626976588244252154010466305991181140665231602612291492366532405413935464878285922655647077509652959102401608669491457794817896820607560684901358449326964723801174367423688347628225397389494179397592427783778318594197941542465273811268923104945080740806288267366491744564920061151177118849313693137319241030712523674392813913068719451058477408964111692962793951075493549542516914054401035891550720858600522518097897349838529050476334346824146860522286261642228671166339733726094923272902444542146940213653829859880848168507835261240035293568419712608124765395805554363683622913355839744978459027130029220895739208430407888521092990674486868405519775685870640333898270496317875675892276983605912412233979933944402106522333138230355254901580911197737854151854751243863730253319639089149828383495690973299404696040079065740545415215933978466778457770552804780068725116602588969428409984524687877278215288165275586985517123376685768090612604472984597867404803195613002504863515785628008651711810601061169212226097689573568068503783711405820367220611885573064907747138895526542941692465912104566140866268451127686565633937239686358627891229049917624395589552806953588191397495972462915757167124792897366851308335815446790066083643348637796120437657259390663912229145632958434809876417861787575100294169385797490350424162776115977641169382371124241291888950913312745990014510647574858020493070413760880565299288991101094959171281691210247016995464475927462410452221361565388845391185606502377611850110009207555885901979635722963854984213642287903886218559635425083926104154297585463306440787722417911148976142612641878527270683433299793419836151552596900708585951321240918524938797756215450797614178969422074348903887839283641638778663131377992692684685118909080680043456215354822214788781920790652191511190094798849129977240131958696095958418410982487205465088750477414273105310269587839713764819046939577048974030334592382282710216785676979598906172403353895792505344050504022595177019595489247333138380269517119332975580717811223937509489517617825648848599168267157568483379300572686737115455974726276608322771113153082608307606911891927656796678480675497638055259522313613305436082655742026954816941952301706696336804451002152531583403720651626314868314291349320354625920784095534413419297375400182225842791326379469853395427946465507618832128229740508585304314849945611567981266372542713422460848887489227799498692060567416811874996519783637851805817837840769442198173378183285924652327376856443309469246503552150707878275428980255010800984263485105462683422228308716403322724094869277665433654378698604073257733584669312472727893365576332309480625292002411250252349649222561171153079087976384972819729214435959981318944490282402884045457450696409832226976428660934503519504284150518863536117738367888819970282257336041413945248733022332226697292827506236786686471678909454838743605511761004984654865201843232461354319737426747184323193993201779686639177260475377663348025721543529922971918005254801332107200270106511221740451403284428987752774207860615722612694029189429339438127815267301425033228600011593310653902377830286680918514496100977087300392462133091940434489768906222885317048639977902489665086191714769521284133473027071974734619553350658529727351968516433734521100552946122902980577123923214503031751643829792241663797506799025220626549405463694733816200353711444340009493972167143586646483477514005126752839791082953211135324897007150353045131775577502985619594206126488307728929984095346480678890063913742510246454825089687465806078490868463059417185103209816022832300808147532839433621229456292243184937312843000159044065932611930979338691795192798355374070832565984041676685946169883439780580045016537297874587614086220792832230731933725502077989341114971540451517014015289144389854301139975349623913181315902952087956586998773923182365221587593134897357208803366975723379313999076852464831051669242542151533936346086433646497722333737424065622619047262821770142134120484109699589528802750436628919577676079469471028202820081955808041755887758209242393556344914253605498575512518778992570832208464460470185349080163055217728510856831175263859893656051176386817659603353540184397564443562374431396149269946079552838846692807020754287884923271969757061289293441715904631579175825370506503876815955710806559471173281533590113593137018865756122984617700643344396422445577919082781527818301744968579515561101537915922524176087189878482598345822211923341922235981929822357838912603775684586215312890583495393646247621567454743736190869465921450677326374129224253608321743782764964291913079994696141356763597541897920071037896527010993371422883297553830169806767945890537556653877470705377357011300106746708820309284022857861620424548662879748476526457610713091718666444680079060689383353289329564611240660447832293293345023541710919605603429584394957679840518628128645237407372745668986944744950840827894479087489980478412403044484747189414057031503093891533263391970069278943879695257447912572647123836273794589773161530654898839836427543413783587388469128420285980460065535068450832463939260614605841398147553337146628275987327751809406133520277931475030363459753986638318685091582928624229151771306812020688003466063816638852104656065781476958099106093426366651435728727577908251856807458734037947428653013058209021733129521186897680747707835138550790196245350777558973280741265929855388798540486879662908473653305457977570064577797424864315582795299490672900856358034757719528810373445514873713495297009334027571491410523100663546764939796259689276758429547969208071902385492671091575234949218647135913668434529112786813192070591103670115392162709801471124347878645622493906992752237579148521187459201036443990718103935435022275918380984615735019995769643874018502602201494262949790773092530177605351572827771387831439917883512771641370524178145572805289277876717400749033754153986898104110644360697796992464682954180902138658644551005123435582682308220792519882817205146442983344121691721353574292994012360264494923859948088829184440906107897728625354200904662807068123057569268837501224243770614490460414266236053480577148358972047395023564548632044491724590574348004687274494448392668764382803399002992449381378154794128030234983216894469374401309448202716749148596067137751262260036283455828349632461860354676790225842025307105967715424955218614454770101276261856265471786109795389974650569166402504564924458205186664768521670767041061350589942635517900875844477885126169979022812703806243594959698201472894055013251842184811471475547453286484537430397540542775398129899853302866837962281758138710128651866591280129005258959774139344198518386111053944228368083537695666504231145909802035470856366740846926902437728362541969316434871095373601851416892555948891508637725903139161235087559385063323003129800224469713127867543881432891675298466813541519931246782678095317460806377823494925554821527773255009710393018623280277426596897123572273659061598378065231574355442320335068096522722258634470315274801398172887010065269899029592334071036861884928763088145947886806020264311179400487041458308190608874732287520905250733886627008572330743852104889341013077872565304908927430650507449537044876202361650784743439602324416839748542295484051599215945918364294646345367870853607146042810068832217425714164037301071817008182147563813300106866832975310992231479584795000952647330087061332980767543823986688697406128218335264781051109855730659911099609957005487905047446191898710794795925120316207582676526068049857132718111094991207520782689043035364853606686333412137519359366902049095148761732901021319338650555392848255633375290835779370275914599327407933908191425845960130752674187590062041382072832888487889039998492920308184804453488332699290504529429984584274880579439953639089076092722510248914622612629677082271917910691427199996730514309993862465185673093733945106703272915007506379170722154188844423489557031780773187404395048321067556533732764240276027114165044233275219958143782402231290212385864978390564183027699730948306887679308331726235994178575951837124132765985583059359316975572159912811886060678378096011627175089889795707094443043518035139152917619693595521592046600270404559950245615634318455645554236453627666261036761472919273697910694522169379065348325276281136831771068019216582212374598017810441496145480087543856549591236847233966883794989789386343404786313186801440929194127770507373355068707550999555745544056329888803223671705807911944295565345304593185533865167837230690662171069328265064742664856603288270523698817958140146712702592502909464106493750284303262768477327348454059225542801397830295557794604914611126972026943746627838374736682735929792073299261017084344979084165297179575766811821720451914345368821528905628587889611383484241223974995509323664517608637350258856483736572432876500663296956957470798630002032457538977226633386510390038990828809598480810157914061558755332126525717238672310440050447736992332307786218324064980016662517815177113934645748592678375091858867584012243843656337220139792998186394818605167704764505612886775335607877442636121949107277537173207481485942177626878244241468236188217990465689880483738484783943393335113407231574466343835828686614803229712416715168037972665412079796567540953460667885742989629039303218908048343353852825228845946677712504743105862848151366599413350888126406287220621536275827979116510338526792098219847525891858717688145238024853104623867133383887122356946959137407091513517990870486201590450465681444656900338328452101896668319262933470843448702242276051008755605762798377140949763374096780719542360556704888143001790286811812721999883283223797680544501764039868490058153921878813282040950042192007182069156855949643172904933034591286517044436714954626617470973212120286742991306575957267142029675678718317174260225670550029727083676254623951792849932201641374225407659463750717100068207123151220629577669954777296735118180024689106230399227521931800721656651231747333645481983851656964264634477229624488874338082221643183947934495149546426533949064202573678643926220891580522381145502513764812310527021070588164037470163892050023495273327812387233871908587445369399799771831620855832140320754064723888630129884302917241592465083891007842070014831932837023692745051096264338418798745349238748506769976060052272722046721647449836691451267668267611646049095517970138490492523083226020494925587884922936445623779699614819715532835057171470665200181923636331977928114464533692400407888094779918037504573381385023868552765660299546838056215660785014199173623086135665982436760887220300366396824416544348396231380893617628903461108290792909048930411228802070729551138191440996080125346790702455305790844566105415643120407721408409342444151716029055662439360669021132274303474543106086548669665042279359221470957337120342329488474899521082382652332531350618329825568329396807912572279684543210175762005633190633078362906193831386325190532507735975402572635606530103326863663936260907700339788077655659411731060893753837158412270848151900917574453611937121285416804769900151921568367357340065901491256468519622944927911412969772300025347929175542161637697855641834341773310235229751767735020001577152278224800430660723401620525895330412997746725591715611132643359632739933175145616768658248880326662942271549359906397526790807846386702306211607820384288080582152833429027618157441878899629957616848023214335502710974741126382142854010822199822151084925237337261113383874752199464841067336544460076374847360358094790456343792145706521670035877934736683870787110155946226163054138932993138332653415478371774381058486795324128538087729023743572816839107891747250832231865508648329106853486824868503294097680757034127431344546536514725619458250700055854899301539601551153521033512271230608957857456247578508958627212489359847964335451277618195943616443753381639810706808030017964070068596877507258725729201930542419486876208351914035698750980160130209623738386903474013285335303682471599702494828535346088098089110260488972789804885582620981740326393663107351651725283594447943501204596295360677096764702457603059218861933611943740960726516566202797368594185644156013813622102471253442803494294292750764938939695132250123196878239868257054307644223341850809840867632302399360028150364486583616332924790838430880678447811778343408584605352912090708607989998307456109003169554329717581258374102198689550071017319280328598033469233548482940617142712601001258491973245678894057037381811289715252146664298604252848672734875453699127133794498051007990235556234020996754899849272688119603756641595266987495897489179303169522829964356786436000392400853999332119877699951073118497484761907408833391910578849264309194952390196462864670768349366131776512614796606469043305665802379128660964453118984467114112113341970182330226896512103344448537768117575991058159303738094622803422145740744308406881053108216262414090822398183484389860202093797762185013986002322789310768347688965293282366920134773006659378301314402601143016247075867151668723103456603937628714766030346978293047718268042560690445415807288446878263243678062367682003741597546431044526278425127841514752405494614368000949190513538679769831708031923753012985103240928568211044308846164510508330786011711034693898584212920211266579910340691424368378861875037021026649524248843163307046236139556884121550724447008241415148918567245751539608149318904172823715557535885567913762270153869716455987055624429376591505037373898302346543134029714227429121594901701475064213982478630631727109637354701536883210670714802424717662376879324843535316960578778911915697471390535215591680506479268637064024358345669161504415231172702913617271803661384827673834983027660147053922984857522953017215172566752195724001229271571440518041790563470639133956118935273342228062380270812296255954846840812062001222849630106009294187793983071306696413677522696547261670829778979595311701620969648824905784803929684917578355226938405104404226865481254643051138511962541063662459256369464502648153233946218300864576883502756216395083178501853395787913979648063716458777295222867527295139414729910227557549293668984408603385231570217986265682220741070873246936063924302928075466223377275088450683971988011054741949618704539079480497659000527635283988748489582269978350651998170444286433365301169423837779944547642656701688183160192133454190019361603751128318799793100619527322500451343086451924765675918498574570171533488963945661549135403454466793753182950184775809648733219629806051719073714675446027435479627360326426169731922081222704960247159330954273063595592504271194376071511823551948921644983051606012586038897408002029751566962898756501912149641571073714005384601000895568278412943994303687408698095213633460274325000533351693738584639458196053911832433768795644456436951392188325362256760084138949236878798175674104820142284527155068993094354677193143741589288023657488618013592384004568856184119735018405765699805602809860059977983588972032900239628704494273864826950553438278927445060106511313578783625244377796874271264791981468341018045339575075391024691046455715799762390368309968061870112197168396369833590843515334867567306804555347425910565169206093086359945169255314718666362954513420877835808116392272214758748736357012898248758597150468873857520812775359549713559307576199066187466670875471328029515993465341822752280879101393567673945460790615301281796913130607261143821322639596331629918084438068004882561842893726868217068888470495862442585322708012384887217806933115731140875705495598021474170493375509330331024987829091992847375597351788175778363286440236833071055599527931080916988155578632142228844914412617799669900862726177820357101994101526156962945396271541707153622371043942502377096374820553526900037204947321762665139933266522650398736038771281173504753716715296030221601211741356511629404008332561568772210353655574742271959816633089470221986856985224604638200573518562719097915951340826228803045216864372579728165734945865539170220887307786497404746961683974229078730534621283600402509980673809721746942691115965210439553270258033856178714024317732988969264869486305422460226783656094033170637343446605397582731429625426025896356127283913579110282032749394522320421516691118217020489317674715759917683369576184377346116983231813750737568410013442066116188168325852679504359071478882258741644452294612340536151478600001280803488262639175832879817021815037273566323017046645509728033683250985569651993109293025818824459964766266038238684169591948252134582468838156151883804262253926590287507653622421835552474519701976297596178004915514189731897159376053452764818398977132343881664866305873417890532636491893355608304779308915212329233097296745322024969403432343147521743720437902293439380437784143028720149640206887555321866840306229715014110433294918801515959692534837371403080517508567684345855679757089194937291738012504922096671775161711198799983357320618827166410960260299913436076854709144599820742227585543318226931634096926834518492390231643279867277942406174802088087169034884773323173891468206358779506250152238435725256202315193677934399723169637792412254892791000031438888352785402953675163834422113933562328374110015162308981158813063024950622578829528737511287015043420148975782538122807746800788871362081288387658846652290230071713478927275586185190657232638570432600647881118543651402004247419976742098090626076599238242268176594713244010759565775436127061658361780225004364781141091826990281087684529244239618657516454302004809817911003949130991751983704549015699324996128875019481318510559921758239866728604425968522483599437780489121645230002106722879276801279407558513928965301499573717646610803514721703255884928010587673491966043017972394888155841365809590353407873430560060225551960394044673704058049774466644869452979829809529564563208983375007671339822633775577580945903577650216060043961666866907373671096222096818303498232244965083261798243875439839095198503477354500332373101477422839394350569513171274553529494658434985537465889605587173156462772343716752058586593419044057454108627255509941076588136509892483017007455826820970972533767344040056159866498917256059118140019472226429502518842133234047063404235854504540702534628657924350205946432390841410180257634721628772797248488239955419674964802168289448504469564061753365220153762827623348994754768054795695441747632699226006682911020070656353434781885828308280254773421062715061331310005319766805089607732428825315271002205686334771880638360213090861667671792923302111091735961009928432550605067204390739500779659788056827398724889445888613841697514352396633790342288914541742604007199425839415249128538040608000929857337948656691823485830995397693058953394827169186909389567356773682324275078004467766015415627147216307034080453888687006432871607161704119483855347925140377840995187328061882593438537943664546071028179730159033265812997316128417176458206226035469191976303635176233105066404602076829988592009508109971593935378135594890008562094269485621388677417477280017647717057284107221621470972418637139249575481154950753740427205924042842189721087859530920525975955130813738678949107414526081808988788540665652696122850083844139832636283797288179173902181484557478500860169293847022704972357079156980613114495441012473498552839163608792071494779570985717482303002939753578913473604425564294144879748153872858453497054536688654379271985296873534183947571164183004414576951389589553462655480159204356056467204637901117700892410157078287634756792292023278740335720284436393470547025598168465103271508745671641584630537201325504554924106421276556860260891743797471868618122779825811549841580318061044419628935091037875509200621184439513447670340674889325648992055318221463157427603930145578731964807403593978345460673310321225956452693195777622168666904840399216179307135287108012711578869664015188124511274753792784114893441021307409765764963991216982387685572958502939760138826336275663983874833985878675807755729770909746938595097737954624132333391793445368478678943962642676031793249410233717374281915517256591426076337070347920149494246595441611415419776983762296267219578884945556426572522340642546683074271849678244059093918987715157894659607252191464007669643859333812506241551476845953860747277907321824718820326632469725213819830912892758899242429831037722256458809364853152014807657174001872398319320153933558943415513837378540104754837328870060079653291561004790786403641101726654166393430544489334551305218554579299889026190628650229895069239397606719823595641861529988667175355890008851827230043273026700403850660520489267621837634292046746796446360845046267802923659600449756719633295217106827614406485598576430562005287317219327879139060140650759372908917743052023747737360179880763147341669097666314136080456757994339233292396306190294551125701571904843811195180451632932660801635693450321069425214472733704831921272415493323217358737708280970688029640970472841383845354575098091065068262388565867842610732661006005810371868283332728631692062760187470649040891666134964481738860339547321434975467344589241894016602179003432692506709049510676832769074230589388099924669996390459860439399632632107490599167154337185783323282473410325059571341972136352829628377572463266453236912037594759908522717325474846475700213358416038913865188776035195809050242515213507496587484598040770172324557382998962682399039843753520899460504794244805761529819252089965716443410654966079323655873503219820395795620432644077544548134352932110822680680661952891076836338863083377388473118636362356759041490533601578528403436800280547827110745687589132210921032114708372043193354206307818875064321875870015009562305376850885445483899975413117524389589124868521251086514440286327189381879498224908411832699758141366581119664105684467077087757923796644129854751114479664792881377535559690201791828415434469685694386249579030261080080100374225918782810602665260509121302417895115264194525007105072974256403315429240830016405794957318913202137219219691175680046812447587038000801770180886429454570470309651816783879261265833921998207475516304668744105101520599679961609100174368210508087712887745493874765002775856540922325183328528322293413551132637640611605535709021354535844881962403702777440119920978587620557645983006005665211731364409524240876961429507761889427948773550113966991006306450727321075803310956283673076605818467936555560224076368847301126824543330844081399279222230020427570363516849842601082620370065725579297135094007359271621367606289920669085492060047116323819968455949545038954257363652898443271703796995093493883328234755054846525208857473481237599037696243800836883215781075927899862204123481725801343547994246950564485689396170764538715820477844689196792018197858698785795464357487853144185974143809051541355222303766660580407328970876139621089454663048160999719785914317898375151821915127199995858094829249587701837646976435424388598758505797725517347689993197245792292526764664545235534181980464563591906946265118126133898502553495853366656182014791322087076985887625640262054114264723818876171865381923526738098944180900257936390167427164706877541051226767587523041175344984811445704683059876717851669518849309350686159345809419924982969430621172596202560551137736758587243662544614888927498756728777251257008101444831053642139382093340589602934313311302371147873000774357153932069616916272082280551061585554541193728594318452160360188201986133469149404109749297916973999842573161817576315184341966751470533557903942116577347613788650905453226301537185916438240142634885967472755842880243220102837628725474269905661319097778206203629898450270256786381787436638231198596314648574954600604340134998995274720293575603323147871614624613485349726329276026330287462132914008213194206985674895036006823512512309793953508783496953452747028998885844752358134309965614536766898455995831463135940150499387738214566747833801921668903121385211851078439904249790974651529387703521880672039931089456766216451444223579653898799905372173189908750134108567307406302352816027495278063098740365576495865505765559290206451488616002321126039496468803819560792413861778120237925502876374191488256956564136530561167441696003215419203787671691756293863476631062346102055849516584916220146854170523916806724724644824925334322312935562409707138313937340192361656087517179954163299046602567678705721334244967700671830786284214210723270290261856647451978188797710507349809141933912219193455242225717836062113549765894107318869892289513655602317833075956160654153542983468383073078353779403701030018659989217335081365575602336900903378561509233978388969931650069703838620638523887778148515478441355895839220115361581064046456153208138901346362954599086354069816535458935359207813878212551897419959349716722141903671053373657727174621951603250093415324157217529017190992709120734758402452820425299058200478269088196571091933902228393034334542552676015057427737967018760929977160447449004573788412764186978484554873445063060495372558569596453801638900098018242653478429947104732786332033854900993001921307978637448661616369392938427578177810299260885918318310412058629469586473843090752273536096283153102366421424933120883740288463437967956724672415595950896489473053935432397562365174730414224205316266692632580606335730465297797339466251573750918129397445389781144613780492040860767458711027374272450068532034186429542005680164441125076034909851172502407245762266275765424415070191961478203640351833429559642855033608394883242641146547000660116846669825941967881741802664938661433844001631502302662465693644143474017616901990198963977048278318717309240466621671404045404204536574562351837974783566633159912839259288459677553951349357487686644553572593778198587668274367755352769296473615538870345153256008770617820218434484806225067213774423313274271737643175738080345587705345711174284225830559183702509943681464711642457422844969669777893244078043957469025034134418821749507345852066568005829278855829243860579464222281705810085552740654824184256644263958861197643356090461099693250009901612506906271053344521329697894879418155881943077841257903713663352952482670066863131105175657917324225475159550901638742278416885189823194968363991403953738421500302713199201591790900624438252555241013511529804201273209977390173987577144853329819667698531035347151878999726490386022142773347928491585740252900566701037852825642909166110543246400199868275005269558968824243936612633582077151682626211343431746963164288697754783696532569099849604976046558844525991706117515011010179688455420431618033963642158606814505490810163714173243588698870745631554988397649601102940644046076149696450515966078445701204525159515145059789005587353930859428534884631315997853595474367094838469016136502720088621132068827229946767476155114219533972490317623178493711138695924349564099972523869158861015761251847022366160665403845718914866860374779890772269042158583847140063035585192484652281448983316582967908341345377963798450366388407618106549119241959888905989799039364780468220870215646095327127748363460013761103028513653146023603635095877455372787843975510982778629900595885082076577223611764754883999291016271790779144049794722718111970965770280207876940266191506992894300629791251405082921876458950476168708089061063395063676159623475425978530734847076529813647869843821286899304618738598879293322336236074541946942698685950197160821467897189616499711134930699057941074883994831230707485965201856060490868289334716993416814868364269018159303725020340751767697955437292232269083844682848319365861720943061174744270253680715515525782808867823127479135945456284475953530909963688801632405694190814946140218559355686841732676778226138483806741313445412387474406660956318565516268007092359665788412000384634749992313902277400631515267293988441038798978505775233609408975957295301244204893157612818899877465990617204108941758857879248519646511773018499699336235889789690807171637335697682127682574157569405565026174227513032838118926941531931098084186070292730530731768636331169160200318375754601470464346621289962520475727099619251163957330262952196431200090919982320131238366342834988748505228919124435583260045987512335734057019225092439867901063327085782258817665025251412222901345129290179963553280503667271546690320021057829530046955967626990838456071689296728822935894725116297194378271790206984919366782390865258454157759500280444577423655176343994963747692423080543268038389109981098646880610517184410184070885091998213714599307382758152777603383989396696887107899737736924498692722273322966642482379841188052935064690678602586879464628627746768289345121521814121118714744751278406954291077211847364784623337645344863954798972780295107888225436569113682904458705233547975652890451077744640868988318996240630513157512718428651405543835211005117111651876671002840807435534501349554028756416569897647106511597341279653656304965251329241727245013962968117897709966607969429885266269478336272621246567490967349835510752649155983315645351687369219352951841696449870662017676429507177404842369562194679873654634793254738847528325508131734681696855175676884703305666692215481180128211753488668724350061369144094874509903718786320034383176072731206679093050468914043368273245505510330696966470495944148297883098020589603852558368488454058046654701107537547642803434567522976064136548574291813713093062026653769386151321160510640489591472533335087981422548137234343744869306503597600634429465716064877986337736731767659860659037955434884032854273256722079877668851694591665310759663295319261462477356008111393084123134094614794599996890461422944404684041191807370471860116515930269565193744661093619922419452892080524132025735011276734349622111086831444457022833640048740550866882389970493897671776517160394487642123518764526513380185815280557886800745844502743623285476980940538784751614832533522055958875332144104832710407657305531294057250672386429664198159058337692168046965983571713320985721102668571853571088869305448690755683226637378144845332420909759754355087169306536497988613831736945141366810457443038594555134150667080263143155768361943728092794080761203958291679297284250544450736562372111097224916504807090016889377220356177432481680509599190400258210949511595653970095805403624289531046158683446349426546578169962257891687903361488973629183977118273681542283098801102701636227976344379260621312764149632114288551681338859372194786133596998728211470318207463897939701506658214144933757356181270756159161518284925334911340767037627224263772762906869695376528645416446158448933131545402838210508665148186999468995199303583149784669339006924444078713712798156189681404585980951207771231074569977534328252694390324446181829072588108686209407499262533208407836413137278337719322660331734726590386652712307841661274001034177148313431685090557013436267852606679490848058803435825182266610702451103522452912956355713721656782151217822516299656661305118474124832736717291103907054145884952587544838744900228055200544251072023798936698484688418291501967412374360406763099539205941826826802854124793970149537501020633613099302154552069101463710463901038801461013650545001467922060120871832381618716828395642865055584809570558311462190002310711139382821668415005807381543019927434514770530304029293115298924845882846297529837639824827742075670493259354323766603737371474138984267397417844953695679110957851705885259789637542801408519892138256779735864912106505627282370906140656760652965142828342776040932726658590954246475597209554279416263468366933467260413435637850050610744178862399833581979583201298519068893675946866342472144524071945689409124884785665167126667894032140468418082010843839659933021823963634848192367531428525783215505166417490013052217990041996257123756930101097474668931650356748885289336238971659420271318971126653859143900227512755976852521905242777852813950049389253668792047021972159306469038739588570562660475137562898191628906055158826360690753335232801906762820937883104049022115322616943423137758455945637448776030214294199304995582196138501062962695710955888556567863645783219803615044900679520467157332310484828583804539740390810599573301463934512933605310260164297922642606941020565670740496574479801773572733178859279004589753452645582459094375615526980607693722017686130448840961826775900633508972812938380076298469663653656110229489251364633571811639464460377927082903378374011484869398510394583508996523641955672301323099493071955272900890012761697316590933458836960422757515225159744621328932650997697449860715323080210020368173336529903417996596482816382520264139294388624301987558177181339927363840593288185612550468565698561113842191251298344025212729582948280653456106773302368467730470909944672024826271989657283298767868405205718313246033967016344933425251073617999759578159268673005760634842011227539297726679571859087722356942955307174678395383633707888443881431821527309186424966259715944221329553576192020802524958367500844927169175922165589846983251804637041776976435712624508808626405620108457803563775597614166915699022716851486255764066148507656976024766194955062586726856493829268055055968672472392404276617785480220653171961414275052559316968660603936772863869862993614350634344837279003715145507384345557360778249443994922213375772356448539285121714455073257059746039260901495010857159654067953924497337891825728911819399943112930189204186773242239883136485353342037351377557998631756673814336093048490752896308620748653302961772195716630063054824468164485855370418106784921814214719298331315751196957918988107183063017702897594394364738129844906539786377428594224689622028793085959905624626339160060827420453531067685414397816580107099030343291767713946542297499117542279951906559530832313619924461283051084906574064167457510224735736864596549036806605779812933952582034286883540922785967333701587629668656009605426927284383403337765490532779180159526578497198080131489870393612151623121599241702874802712495401333316830346810148053768635160292839925825153745429396199413779862064985044623252349353478087254924746004807785241905050162997606846774953175330023305973135357496096550791826438344420347452534803667281875374705983002423282968908515368214552042622741353762451108606842692854969236631229183336499304256442964680196644345683711446304724543695950948232458814097046263557739801053659264647456089244707335334802914651515768344151287583476334905665272936038333448334417191104711258156933240537529398010366233782418124165930313853703968328196580232292134577851163023268191054043618571994675147096562460142517488850726990030025365616981801878952147884679005476911052837168244166150504745037931543988815620532806948520678701250356519310299562370660497023041100298859460672490494972155300997355641316853296771475592763789507966911102372546243989015913650216910756975649072480255638306436120011966687661113750005878414228652565132140803096740145853586494193388226262322442828969180476787936862294106215382752726339319678316017918047797543503343039241437466585363134722302618989511388151227789133818792415837127041107805745886242055848648281382812272257400386884020906788186806026406839295595584898630244998759046779190038839452851606063677821742285958590104122111144408385236072170393273986904793358038596749519839100124094073163784837886095182104781667588404780520833249740076614582885188040261900022368311884800041659699785762861098348975126145686224800505658050661673158812636180382418880801305258633872159169715473854312031632856859343291122609441828345447244619619920267734922135783455984406648620215829198970149455936312100137002730576128544266402631853582898145526238170033032470827292485621438772449903335996137619663365177434941579395367719974159878094289577784191549041690808322646909386868965027613253146602636168910536489430709255272841968194428593686557295281132694104599541299744784007350894970082105865785162370434355253600467348491813267470197198153152285280578919691952882210567362120210061383647953406155431585832158217019120480970655983227371740235120542129821386452746233436028405554668562620104219230665986046148245003703747977609750258690793034847392535300772372481566377567508827433543927257773409068070440675628011576335758686861594783930238023240672681922582169943063713528169012479702053788610241503575464654269430399812429698273430126121090562278296915354813834149564613602876980464554686805795933485756077576970333890015290879241410106110943046790429996349839839560706221005433069589049330455825730220483581962032996460469877890976152130804577217540860151781092563458218884842201186141020935358166955213912064011440557442916741155367597306800523595552232773185709607341953433941161696106515867492839033687683415856866240087562796528256536414287211725479407985388687633984020060457583361859094337646932110280008524730565886080223369774563024874554368671394229932521450997644211098551370818491016084200026694198613651455314311784382120229478471308439585859562426002338897771405806842800955886366309025716580188819296103665870559383270862021271051516329777682560660011937341051350593976305928020880423057818457461579863683602650450605644414138246101561288763185191829547233158921028012781164170661430069876668627475525504283121237509877574547009413833180464734678600599770043796697942596600200866343565716888315057689430671998938333323855242724297286028895993492005378055263062979813695360489499347868488963471580086380081078973017021882739225797499525504301930050439607899984010390148707373350796454792136190218609986320874436181066206634204776940756372017713952141356192170153097788838259260854644866337018758215530337279126595379438164861564298264500446118204976604817238297172080406547308677953864286831421864747283625239031657822280281708602819201993194493083428161680737601898988572097609826603632477275016827915484295787240434374271485595399753642445419495135359994052624975245976624621725277142803337037038744326555729550860714038062444815482926776209190352252348311873168246182835786582760233089740369252635393362947339629824181563913200686153530555973293666260435571316311667582023722515253931818306515548209884910312589065089247828003513831384843706289376737465266143743857687455299446487025190039347596202005686176450376554825381412697497333140629366243644365924907590231278149269610718141060028829029472276423782561205297939595899471376100110527834270408233786988483911916173479759181766132510101442394997197107548677616209581942587650324104299908186931542876804690039995058121843258861649243203537979651103752084517573260176299506965772339572793330142266864569200523956141087149331533085091953944125955702051590825233224044461830025809397985649185739263097963938881315684400205361409041325622424218861321930683887839083104093550602382965588253515095208519953397499139156987350096363960194662381388496745956404801488778637764412143476012062682956474700575938703008127505082007793359401803733854468387823059962147147734039752581370593158519357956757648378187969800648935739306467053219735887558680709065322878889551966337932703048998659970595437320550929016311639389246863842635977400706795447512234863846190332771006654762727037437493041740826502222691534139950246925807282122105818996062406498844522286373668346804768647726097604185822003324867389738609646129239514503665803398180489721377203965992427261691725804211952901686566893063123904468212202220371218405448659337083952420216699998528238051882767688098537653721851824616098424175405066567643983681345241706438264149740375120839692192759699182275340939962742396222608204704623345848470938059601722709190407666406539332938024160301441530601619302004618875368986808421805898949520709163734600923464105316042342855206706928949714757109589312712348034482280508050040958612485105482743523000607084515738616313577187130850556909277298308186001740865102895788219239087335737275970647542498151939146958190949746687557195226469388506738796106505380540958582628736697486748239932176032804333166960954818048496950377842042001768755201349881593538368561850446132794503838592980978137228014114905178558661932727872636441726103497701810574826835352777781563737964055267988990129424099004319608317208423475671542981927537654672771294189596300371580100457047805733502771623551054320745324185992088365884848102947631205810045583028267689713297707888812731649562260401615907882835040755497848661667956029824984107201883728633767030307496547298152896915352333622686238119465703392362682405058276121812827207360371489178098826463527023390028501492308751567605430724782688918007459390971566324517347669489859789505454144116213158214255046507691176355723947867900859064838029200671115619336002943124342473901464297872425240638307320662573505297768490087702074816613141626240711009911084235380455444766218406041939765017329045397566354686698512194126369055095786578933965846104656547249413685968393573297051970859419125707971830979251813599342106041929870999219691547602976951125754783838339621691529825784384374983397838517936837986154820006777235657544954340711244746419197195481920816176242866748555082031957558215877540942294881689958159205019460208447263641626917117471808565070434246858195140315286997576665031914777412891284284563323980958684068251367531913310312231703914823033603970339560016973744724916939052649341493050921665481613572901936157269078802269929365831515828651071177154827316128379117665856515629126213716886504561110556708919709988592807138239401145895372051139603362021746012342301124437835981717456272527064980406544985744978995524758607142659378451166920237996974213120859848148027336912180470011707131203144202379295702448477599698884297822476796235858708520210427626475987624073052722479246576395279196181963043845564750753730731667431321650529617447741428763933518355726182523102119802727029956889129878077618562729132966447529545183876368194896363740427255697013531906463234924810632927293254625850446113434689957793521631216205593941192678605932683159128428735119271543862730438170811138553017982935684907894438597237974031044342378502016982974516208023644337153197067745411105998264774259625481254689058646838410786095793639078867870769921341367667142973868769774434510350759748889606227421688960712851382135425293229097742926926365197888777819535792302885146150624808354942625303127566494182151382354733824328086397962234033559932351400376501670597626620722867301830723199707240226022260908754736536576780744765927967234036349863322840951651183936583510835930962905718059979130552492579348897782011007114345724144000258109355017889185530526088437874690279661789698219581192293368710825303611821194214897714869431589913626583183278211279472552284969187145764827332873770567943249068416183728247641189773479083696289688502640317329888640228591339710331981174140529256005851562268580571151296688947252039480828215493319730282515753286564745640453855663835740420750745519154553352854427391451741446431448450983115381128372708360659519360748927093282282879716573100082665291948329192738459512512553054758649985975074375461083294298567878656777623929550232655480222751543661021602960466600120681145255800060122815557270260895585352243733787606347626562754288341383561863278550647126827256697797134910491065303512362567125586423858645130155071878234171398267969663309385575545395270324920991731317584484709220849823048397549304164999816182528340668410927440345056693223633517138247233951429832346151880581860566621331714229915649425844601175603926230545141484560504330897382908305729225585505227770874437945292917267984203089247390055605533041796304215655702085307732438344690073121881709419601700824002367464067661418334458656955649137692440927814711159090561708465999935497288816010381903938219232505114499026741026109715421328219153135433346063840697539361047418387934485202636579720337975748869199762546354047522899861327008814091060008824708092408380969696481848585011073294153264793799742914861224802437070383076278787665966563718944898206058929285861789329716353769262561127599376448242354854159656832777970936527730234765326854688867024115626177277797260770411220931640089091090875832791455995232211020803934871546219878544885981903182025999378878150649667911467274151677505135915800868882388233078496714542250747346493081479463789567546218692151803876766022313472891161007245150600794663488818717468086319796962752319727679816662084413951599268477495077037345953872095252181932337350312305013574458706633308087404619112461506502113192856291841156272330197005001697810644040283254705566992070724674750996816125513322449534414097970120941245162514485430529669562419621634682431616224987735175876550915283202673336453307137913034945896410037584422706526324210079853336549863461107583762578531899071890687398797765621130778691074015290247064047677037111953886672431649804300356439626771096487474935261883921700293827162442515236893815394715291831855793278246780681188677144481798621954401840241941294389423181468192340991509325507796136772188283029005348431043820603019270994676106681434353997820835659129696588020774294824869782350247141282917621624113876052903632205984013337663476705340869840088287636497227522932397516922571344780687279473184248114111205814596990115057273176410965986306925250784369022003670425680220714470104452427114800131667609874650695351926339520234069703333635861783436887995036375570652140125940675173675643377377432942006768036168817627445504609953225227128115438876197099454194642528840828902812725479756019153160478650983524311364774473432656530685369175606143246086988658094738161301332951620054437518341182857031160782435412277013247910634578507341166169536635160418180518206941946359589159541038737824667234098106834195978917814998128535471532312714121175592938487898528868667112191663869229237386357676775651367294017953388732417659042588375779974098278390984589074745019420216682247016552686988708991070707566716021747696663839927108940178428272037284544929325315745284386301657672173674749960495334661031052642405050704694821590509791380115980949932556544509989624400250524629614244623577092859972405330110891995098006814978618896827603354754411979525819352243129488471655451388685359040479592024407959886118999638847128674902256996129764723445081212630135440411900078440058227621084641055628400271678429359638258158288890169457966501293967808369484650527144010752488488736971645156735795736982858502821723480682523647482964808424627677791179878176097402137307992407969785457145615483948896115012124443920744447732656518506895996375333251510745663856358896400643467751870444466404114201932555388136834432770155582176046810709251088433795080637933899926707052484616731844726554899353298793318861449094294530446323011498144461813781248672982891768679112346856735518332177333080715248215000443532471316786383581931691915443890748012297748750797915182566900416377363662018497863483901796252520754191138278119494059029027420250427772520245409924840028002315914547557272730684593929009334128830996837248466577141725978675905860072113223127939835661941820322581024457379827076696573774021957546989530649051675287827633362774416295447041899212704805134624924820088084571371382023403923420819384404432015157146948246165239111086299997101186595492259865429399650402887375176846786301738211378719492635574677962620319315943468929602380363882638029382853195473773959878646995170906834797117829517956784852357114721719044862314112495961352206909278915299428399203968584552762911985612550467943151939501679345407081191073912218675891246054812844994664869780302148069321525069398473705090319221850001881391077541669328495475384430467178953705482302697432178083994033661296364965243608827487863563944890343084996716689992565680629336641869130540412351780286895085565020804926740810974011595410078932881126381078524729847722638409608616605337197921425951394912977034889815382320751516057302579689784708882120769836028918353528290402633612229846206414558114468026201443076318520768319345897233698967465257214171194831845293105991651303746416238195781246877117843595662705514615148296245596921816452659909153520648037964194260478702370531383983282755561565012656109023896336051190439111632575083957369887898819874052826693660537324117435480638621544511208921818959200010899135084066338252136384568567783404183430506096695671937527692136067333630451253533354883575270366910034818132184934729837141376383214164109939595778639212389891643466795072587270073703406824177289169448292259596660684931950735602825300449503330278188183672055429811551686797623002477016209290344566565631789966699999878495256255674332407799797593652936950030080014993781607767122543253181752524613890768847354527415232645834383858736888622604818436761312272955823340585244043812419546392756146928148416533312380326331856191091460353123652725140752717552724169625859678599273756657444317533804682586787099278508846913365542409984035403724158677915397470323462169602191920523034647079802611015421422024433575315408507804433277802608417846054291715855967350868578687762421564722142534989256057953248399906447853582821705306686296070128931947813293691860570606916723690783223107655587260248214836963845958290643189767752431528365831623300147476653730351680924381281865198781569717489300158702860270812814402222006126248765001372385323320084799957615992999048663510396900640081053204679952675136610070770382625899273100820137798572957170847677040570468752613816214512299041373493541705783400125042093757269326564697323330429983555146482572925739159967620076867101756815339152454909573890933990239103766115634624480849952545140761273564390117394422323638417057642816773014839962779987574903533576276173492740817636542230442199386346165794937974562477553773348277409028080040618130875497457125386950649458352471137746981906296266530190423615335583515970724640164517587673896591402982975290857674320158384777144104295406731899276462617952527871227851974570708385618110307185527312377666944846713113117322824339616852889288802180698976777650869636539903146870241169036696532200417574098406318220823314097763461861136716722394432370162782829514317476286695429425199627997445587965839245984824563557220939670920400943885374470394284945957993292432380956654524787777404136278099908958505406930111002409566956924366365583156837451744371621087792383268538034887613333139192800603589387805002860260452090396603530096135443101273346592145502926780397685474719872819088426272060598712529562699713289073194963829347011919150868552328822112193120887865591827134099905585076203075382956526580271551129976618341880930669299874912797882614244549656956190931603771662742561572917997702529443887357063365744077856990313873295719176572568168341637207701169765062357288554350410252326143924795188365258890874194600452189492690721669959133666005907943875688677667040082667947823792654942163737489621046911287141511484432735855579971013092168256465939466735370606952194662860919695843710707045981053965505497643115975806963634448711825613416992909831350815802711228952575985840184911427609899856986283875720496928047733694883976303304207054292348803432915783307757722744921333348679669683599428504040901608255489397846257967995472549649189265242159644696263466348343905457461080262871690914597628129443177788245002931855036471193248806237986987566749117866765895949521719029142531578699549659593037608911932044731067931211037322938236665380889426366992900075326536026337862004893527520514401283005986109866648949067678845688123947037385790678940914407523327524069521150360553481351603149067143243416317039348626530990379720260294748076882908884764337700379264391517125595380217244552657898770123252579280911541627996178146198301745886044704455908400704954822135685769416888206853071628661024286210534862139230808886864680377383475752652247368077216937420501942592952677313238402397110106924189788969822184581507182093221798723124492228542715533323979588305443583595673103719959596873278580066403466656231474663666258884836852890868058422939335173743387839420344875714274072417658609816572908120152373757849237784063467573658495328792106960614877233563238208874909458130815430989454479352920022190584667214789906369773074751176686209008878618587477171245060160736435201606653089175097208360935937017436552680407217480897491320014807226977633102027657170066312257159849407561626440793661652838351690340672175078668513158603730789281278894164626170980663509711406237931395319914193660445512467332122103882096742711503495520180106836863206684773218537172796298980003937066733412985284464749003470381688357639135038927484759926945820902638314753457280804740049446147426369958833868872032279004365679551404752631776033094141011587112253907911461284564887368175979371298188405099846876831158946193842123206373480980904416577466124972569287550139183846871320408099978403891249012768185916612809246700488216315137237333326562760142568251366858168483664391558674054948386515986646739097332505650372529224663638313886256083698519030741959599962778603084556521297742783486254820658281974252545549951795174799464032137058165218782142086294648356270882025056925326213690057789013802882881624164504896798097449036170123397971905300888230849266656865898358629597010815138087265632574437709165695451746694963818684213590659453044279958935434220005046526169659040575166896226545900153281930459168593017134015234138729011800489025662362082101693558430140514151111050389182742090519429462255429676210634411524609912399890206046403355768644029254444838388252815637937066873408570909548184515050427866145575292984244313452553990390036158745416222851413624126445129133129334810218812413210808805253290597124993952936765673779058181574030715894835643630662525428177532822722200802035361612377824804670096975144138706155899726031580378352863921347803979643297051159046920061531029425416351772038341669723174158833619373679160516003806197130449111724456647138945941025368617972739413468563558939488630265936550721452690426623842197660750340765883779694663195559840432606490811200990857327783571252674667041273971773977810852161240990926924722689208424077626137774216926397729584830449629850836198852762783306365626076815676208049901477201768105402025566467196531284808728320657933543796834091685323642281428079631247570011683392838627096151052216447782641921326646776581618611036818694788746772534562832537422012219398861972879241546064593521874734533265936314456795169675188063471219252236141530069425504274873000940498847112251355840684828367714544878726827271821084787370651962136817958360128979091588920182575481313278954301931179481200521764953926771975870588876594394307531404164491770603593415533596503111761024440255986947148544974509015272960368460573884903653818420699936006514020959494794389261422793327937512482440740926278760258777985455325590911316600445964637748865556599663699270926092103990052966841020833351280914890126427595908409206185595809605492589605728002647954966161447773996701732246052339749355167339180704745796731789772549650381684795998979977524742334594085470671947150538467135123539221976713498115675260901886376847962448870011476004790217282977585131198831118464515812371940438236522945300310751527299910852332674502700180725946204027045471229524278299536469772639750846400877731962803989103718079874900024630210561132504892285541219939357716600816577343535486408224043972066303298958428696647418758245690107344165326256222979570245141489222434080527807242294149063072906635479565244412217903864767152020724013086479878859420904400101746946146502843261678160247622520895762360688560780094048615807432054689404286658251892336547804604080349279207989192411181839501046668212114624425264459857397811645731150931144827793395830510184692390688101596296990414495802052921648851422472326213247051746247278446319612710561315768553320439548005965888560595755725732718015124587624677790459405457723302443569100410693120125622472031197078138203007332320858991099210317539766084948927937659681831381801376112242872844168134743870495800326065992136049825291621334660399550051119045191498652446151606091804947012021221529275814356930724488813560924882321618493047362672988358107673879470396818569406295768388374502035274054090819198991760846844828909846757501154841431991672868254880600952153602834652341874377240248891123994116987873235475837970519700856795753307413924237757710469704103597048219656254069095396440395886896598398033987526140992734944984154976509939659417088767270599131002737258364604623481091199758256443145791637476755403012605940848827343487646489103998007376947588187032926041614513630370612997182283847849684093018657231078969580623505813630355091356929353200741667227433613665984989787363974353497075279546036733642375955935729375912597844929332908151502178624226580169420585993622662308696961499060464903939503091204732950710008893073040864410073904464851830978806283872241104207535482426708884935860749628584705757313097106715649628534969522436492421720982417304073571159243871385862283689588220544871333172360658675678291394836013565072063970927049932370767644717532103036730578739141088028394250867137066802470762183608478556814157263814721802065520428710001918053987330262962676891198945856235716638073024799628188157480136029987601072524267466204198087014389355480059325210225125866612937631755869576581694981384384178361211923498493924718068711857939964347539586052192819714062439377893364110684164675072468401658641910310818120044510367470965446051119261601028632360177547196199728266727632513361109892878318953011524032332903161127925127425672409378331977078831209103421588648401260796486035460580017095393967921683140952627003148792330903489594359338654455462130075919266163848867374877231011212097322873732300341619090819987039447279022865542615461868458710393435289976024943749052223512599120512011243282631913735896899543920638245420109119427207148028875772442020548982427703716966969286625066546992791421165902274917126405191709878459104867857001677814605705845569079466205014424266288733912867640678895343770987182594332676049806812667910339142514187037028636342166909272602256553204914075281737186309082711990553051671473984254359665451092468121940992974531094247057176475685715886663424398609734908747829264489954391764170297287165557745111885516131861489029982815098011799024138740378522195953554979784952965018672407007202452014126963167073388784499146200246570117769663637693627380389167186495050041807975534732557624028363926601353928060174485656616852087298412785461341081077578466823479718196833933212563118876825426813061421035232297893382716935102076311416806274349091199412074981550908022439420697033850332379640506298467134336050203759174789924981121242166888818911241292521352472458266028225944902482239187901543952526382098470416518263658033487460208855493571598659720034460808945034983556544550277916594036052414600325992437964148783202996011987023467512542153146634263035040240968840723210711978680928122671450082041711158099620528715104930033498398876509546886660251946823909834474041980904544725216741541397477314377520568118981767322638791703951242161453389126684081835866882963478436864986075555328916718477223203949868574743397359020724491358738014105077557300288992478260647482117776201288188998489638575350613095149868220478540399142085688859184767582179279266397859191347402689328876723470923728282757311392996005092964954484854016074991978321943116669815744202741133408450207770373268744399087106165066086363855441495632076160508295594303202791065220155778853465438042166191372619951527120760812596451756347964580064026519982972926217554349750751853594640213193997321363868588342258596717632268594415302357901400777985566234419262919507455784042709365996501882791425821442061200140465619171973298829719305860893121919099820486571347558550473728556567473845920035271310461770530191031180343449128582927202313220517577411278111810431755611296153405357967858494154957436076131178138896088406845777442553936391759241610177208173219418359776885678760970968727757840675016176687873869674570466313437424212259104499365301172874492868866744838991562075370527194468646373450254209970230939829091764534671797804924528055747950051300335070315323568315058224780687910170510057325722497728699449547150813440988991378969086450550483695317817633313119996993452080672366639413240388173544053134719345254438867499391486585864169119582558399120480365427861284224533138912995616385665882368444031042265485823502712018775593955502735576180890512393494280423078645579683813785327678949072758334082640702557051995934713600900407753947980213191853075252495121307558421024009159953732335799261758193877212734558592482883612002622797595963387125199868603736883690811570315320505975770139005686137967892246751783809958492992247323440624512152494232390223900479885380951883286416566158707924104360517780356358879290207319771682044064628910159998692264379668302430775162452192505465921571086606834280494067632541899240997346580904377305123557290233186876912597110980955448816997307346101236477091786669086357978928815457506207111145855093548247751739636178526758752870076325668565982162952740029773537357922743179319494658124414960638654029005152939218943755898642231470593446088325449636078769384952211467496965178843951715063947403803732114562824445427174058407187937680218277394343370890906032868873321147516804582276659163370729707045037393153633772352561889154861400374388168633325648023666427113571013889712631729819091698155036287325670323650414064158772163405118997332350091253854522549172606936203919443721798905351136015680690735073684744118917406636680924304100764901595569817218113907334280807959293979643531428068557228675553237950723949269072428737990299270244715065478155719779438865344008981650384914894715658484204757485365621211417907944320884483527984104808917257437435268008174679999424932363051668295882588791261479572980386875884260246731372331391735277070309981026324486527395791961005429464602023640375947177140844992071227703582092025459706624565557367835182296977778062986794287165686435318567898118709997581291197453882782414642960422071224318056232322310683126194834842715519775427147922847101137327892118651001857452762635584361725440534913875401507941901868623702542022718977637851187898012918538524890957034446232634336858355469991503940446995123586034166958344042460292988133956607353599312365119991506031639427796296247940035714644139598106731229125865797391969478654275954327162931558187104511088962382810260795278946090430013857327509447861003264320042448414143774591064280686909934718361722821330455509599392374783244701348932787951929633986147184181740567707363882577108330888276706865153833411858137176066833814452643762432607592238627604456463611200069089212066215867683550777301705144972474725679448136022615558486808057505688984463154066631025083925085344725561411961460180974377066590945710172171999439783301295199120958124235840922431264145663615871284845710005277250068795164873564819422788678299053766932162343371180297948141822438503644079345457430625730393293087436834910287479056320493450450531418247074461406001281747771248076504583265191222471855931772025109480573844579535463549418030971906068351169018708002348383129729202890711918173045177517421635031020414602416098844317590235147037694468811512361270444999365436432367788715111889484060275510551703381574473236154666255419907728572360253656226435146727807537480153331866285082933171109623923475144174239043991200162253090716252310037835771438900504351755891489022346558266430353956911132433547692179616950923132746729929465574991608174526084515438925581798605826917261670708561980871019706143810607816129813092174938066478227796443241572283800831702165238516992436656735491799800432274097647118413389794445172925977571627909641577127357219665349513633487348254069507517103803672239288857703972928135851325695776441665195000245493869291680258992793114230639417949683723010190463317859150122130719108833105890096442796335661450317224655382494627021955781613577424314450180552162604319291033783510044473176491412752709846928511593163745677861551016278547528839202871504868972711169521102751761854786340855074619589387805105154452470737092593157391525944539605544057481307180464196439007411118116689118487377066300218375468483161608094625073466401056953449761755923616661365459538808619044584377658133410382688864953482834580814096645387030690996642443258818171524924699009743824963451180554929865027397489169136821209654087390511350033774694971568650219203351027713382457072175666578734269566123880839386402657561942574438937913902823373149274448415889836213039797451373326044001648218701733978864088144045057403370118599882264194463559241107959974109824082068860410336764231594348363048317461898045681446086554600481059428880891279658236929790198782697898800823866137746831291458889468119318609309763266163466216391749675961334026804865733654597734681539309003460206546266916193177028795055408685455894770981553279742933125751283260875151541215671231816797668706799025095726549220330898636247416833516860675899272257696980906058513059577879059834797981484267029077125178242699816391957276625766062794556549167124917488337539589776306326101845717102175159265449977267069280855949373684580020764493703635510535383132814779744985375750447350926460481209800301724099780460722581259924623337465068855002463835453134772790062056696822359653947496446279176848365109803512977564499713419880714364825623566218162775631315382861752915213919921256984095309794184564039580188349328710221012588271432023973149866711314910854155310392261116214797146756011416530577691943798604706010129124679777505210637716944723108796657346821733087499198173168188534024471497867038113425033156565111961169320334577599113801836047042488956808201473757305503816701067025506611802215013261497805556700625003728446413768616386809656208752243199934409645861359822148852542627493636199238154159028702784491579574533813318132957372261302988883033244308917569325853490440706216135982087546491860062563843158956585124760111019897011113342401184363716946724432801139005890859331492264438027803155195184835197332776591732018996979491637838702738204490919066353045441062056562125576132252764979426555136637355925279273375077999240878063241077086730018092831578977645655449679891918687002380486488570771967265808838319995232487950319758163541966693074551725183478757662258520851181580059742787096484689122718872316706253805350457177733969133840827570143054013643633734906689671061225157033362900053979286220908749367672327177498219556857699741108578824386713390265342014557551374355109209338873182654675157257236104551811235791042767344794394970472635627191442213313136105299805891665602902676547143307775192123077459937953919137359896767889285502141292804624271206690958288085022765871144358823783274899208412307956257633322011371069165025497782415996487503242489921883609630244133029681436050298114809945474802770791377198610538363623476644594634628314615696248979984659631574405977630622480625976540504490173560317883222878277594694511221657564819687491003437337423199717171933078520458432489471818489878186760571679183207920792037215421642857726885716720508821879299695301769377431842182349405352153432905508153308914391376505696560787705126511463080448340185339511363446115090559242834148963294777799455041711009069352424393177315565869882899917519136709567401746658310145321614100422085714713260817631722858919734431604524221268959960838433400220584339688687904715082171439970691855381052034764204624982737611988218236691944551305969139778797570703012672150913302462176803798130036004139827346910497021683558779227710860858254592720068988782547096785521797127117765199011953164136859742359117796355359786809277687341249895319353023926334299673898789750953355042699477608373939888074187221099162535470842993990461529068422345580769835542541327098246104046670805102742884996551274630409035326086605583022453622036347298793090811647939096005924844493147554396628242838129125394235611676842414098525245818718234586570461660398656725920634648514355559845936663919260308690331548587290153797345635929840501633300169712586374062536765208770984502762681092899302002903147781654206194254631740751637738386970947758787722464743965348196685443099384512743677463034605312238308111289436831790368103176964175219724187384674442594473144325654116183507519235899432101527266374477911133348791549206606376499146322204995774867448570054099598149924127341977929727774971828894109959709793033332740617813348814075523530842903923671377221548718732900754635179332335530493052087775029585432922578525985680427237429268337684873468272593802982107415473391100353342737044666974175297542247470239279808693640912001426889356402365741123541982379967445306616045096929645649226648779131773144106531147683161075085099325171615425106982669149879420508022660649902085769434854041105803434287797097513191160036557686358212001051204102852847398597095530656080179167979177120454364308460857447066846066570391143491923030877583194785746512891886893336440880816711226849309170069882159672164424870800849103110381644626642651529749003512345168724982328402674134586915961997308832891164193054886238807212148167831485923470297199140825906550558054041752124329424784751824967195679341257527423868508815043815093668857759426977730291116000983603727730018050091989086034158078918022013091105358626970945557508325201433580744131548220477257402141839486375418097817598650775968587432385321203824738003811314203711711948761697020860666888200000725116438326789307470803889471040909190310705206691477283115387327310299834500973914841198926301806417869989747101949713325755880501119616167752833616260281643555807240330861012273098638159291705228710751693309021106378106701033380709342559447251894904960735276580232867527393789426451858006497386061566371498567155390141300364215034367589330896082669424611426994466020324647661503149344630015874298733545601879730849560205302572865158215687781496772438885863152802803733122297758650475304619180662018961048233490780532751050519891809558905221125123693122820133045719865827567720087379673287046052861715049335328822291186853723173533639268678890329016077479526914089458501073746559851340162414493147397471279787322653157130215089251983815950662390432010879603851610880861161072676138024422352412427598242962160964067935872987071705725299209201611929735472017546661194197785268692529225589436537260947443440297316014835306486717492262952229808557770542476857390523756383314520206923491200394619607569836597782828690527144030821167550303799230966088741653089500862149681149836229213032791930978459841753939138248743959163104362304035016124580834336205534745869464194459819960463601518300822007178904753132373714982579770248567558445033787812744388664732652310919858203377261531498782679651185862197099900901803698935826072074410919899500214609724362364078714377819703076203071337099605694910593392772043875545330910201923756955861716963011853264924742985886423172929491730096730820858795971336488583384898490038331681891704987017179238773496952030091743191785367519960794858491504414256475814956947121233254377802287278471039105126607758052733392999617553414929959381000923628985207364021860069053084185220197314118458438058370162222244039075402660661413586779961881602568647711439731672489772466896860708400078432048647390106969360647365912433910001416543656334061530314690205172802498347045426925876871896801946141397520322607491588636212103781099314130076777555571482503138347101399138434871446222334343560245024723728823032416149799493095928272612891287211740936739153442924638223092513112253624995758293075743764341861243256572810767210985344935072624585017997570975087815824756276649613381197188310850193310627821933365542844070890211841072281992799800362767211144126995825545625077225609709465427844689547561185029326844026935363031002729204131925446587004525588676495507722304760349918873510704902951313084881266716409609208313625358398035598893619350667215164879924869719542671670462485697582684695314312221316233255807665132221509076541165293564838890091509325028108586179347955781737427640127366821828375280147408202056604661429813788275324790757148448063182266032594863453985814368567272321428645009123058888431176951539225789479122569471147761849407459658192678268087114181134602553514877464620993209805528966018572264339777026884057814667414951094148294261129974641969576038660270317088654192441461691926363831558133979527056678610029297832364296270699991104156700495811933656185895614184810565435760685922821111984484972504771524852683322524686066936828084440338574644041694559897170069030178734096098937110226002875953522569009292748579365364088823120791589792568377501190110342580895303374498244999882191978483341354989172310484554975716233610628019972216869038644359024931712440177845273091904900493916674983028753650213137091485088553211510263864118961638584093151267394665654328987091397429345478637643336546810710618935917192537278879813034363284593185477729801584040904764423997127957693844385126474568339046638937324772523689343954270582521837393956339741484649595301808366827249201920822074450144793684389189904331291987408355080017964551815835741259750508285610829946978614406650784977822124988196672435501965707871780375251959632648739871939593905002347084112597828712880374866455213448385171154991135744192475981815918181982700793054054152677537950276396827131253631308766861115031453921571631764016299341403024346585389907465294867810865410298282167125608042623622382493745754488119287431327558563310453395647872247721785129402933903029986714712231073775572157385757479529829614463681094389170183119017797648019777523858562685156535044076682427866096037773250754420959927988902338800719030661061812192002490025580059702247906993849917006447288044133632037363035433122596244306298421554925265713376700154200021625764587493206343299056271699270856066391355670399252957205742144284732745036257798083269965383102216162180139930003070591447067262224171328122442679543079321660394089141973263995155156328223012413892909315611474957745018441380520195371770238209416792668655805500588585574003732550470490655349705160018754452510108163026410447913139627009306939937930331788490593993113497348422906016638700296475534986846418148877584695749215398996914444996312326297551179557854620284788417246326090288190218130179775282844837717458688391738310662002262185164032130296000571344278698151564325380528964720823653902869513478449426773178612399502321661218226478881893778378362114728788992663285054709702836654550108828716062195281667547337947942129543026714359166435921112530551557156929972368852262401859419266073321529053276419032890957058449330564455308067968880848814779145619874895017065296209999925230628347468411762773046713354022491670612097484896298857631076096002323323250323220848907674455758329203313663261492115535127409111220999142583607702465766659578936518031584531705756293205086411577195982083397917062854082558825460802148975916181531674326882913940291320519860754887614151445487943965654535794346022938738674061734299673004121565865406308646070870910524027543350554519234315779982497177883624352595915688154136235431501651474702591953412527575285947749461082270348903610176520967608243062536860934164698473799404463455048143253214465299733748246516228428846302905374917542561910761545577971160687593015003108333620917905684577503910275338839217492552423901254609140595157142562965436853290921885710238952374338822929550222751885815910888557688630926984485987640523062258290030523535431670030344599880965620186249870891480225502401103574122866869694903179405843823198333442207020572950816360198631899655219436268255048343057368060939174722481301466859173074630536472617586239310408489207482863211957693527887901100656526295095593910167798349561697385743851550871439338348330791292322621220709088532284039749863552225108781958787253547157919818610963327533856758100556961489028289651366208549327397985236979124330696485928781086118035098106079592780383726309015705356980721544293977059918708736829410332646436686471878967031198746390012568763002746662713238800861246602533397306203862038246810336055283889400857483368007354425019381405171563840467679001519379135162007822644984491371046408375914034567770809041893609981413508951496423752468034164147504048695556552369684963795106646831065281846152503256893102925849629796919005490901272324754675295855914174400787627618877611921471308834766521737542746202105597709180390088592895470843553378603561730453521687438960872223016405456745719564509371339585047783958502637289686231054712923482715877844830004178664037226275260533948090713058111127262342143470558785590519600880312542933477897510496896857652064452768560274985378985021918012915598467795317509785885563086685823339051915870411476550428004639448192561839564998035635514098532215195956341535412190643048092425149530528366208733827475325374051324712724482586860275877325153039293156176024891498057845344243208715996613082948309115617157647693574531717024157033230646639352623621664828717824046055459492064061937144581073541944951825918449463574523642941886638608453745446527478557590965244091406763633286932228976069361632494913484046534880300964114181553301155454287486387581572121474086701585680370083811996753670353719930372023142721793542413168182508276990943236277452110324794940074044549428380069036125639955575765943570032274333746494006990440830066072805963114155983108147653819801259164359969875518200469500017980954640832250515628242779043711141911346171010332663487468350756059760052667718677666526501952429652730784098206448495082013123127295001918780584158451692522399705097595299964069378467524706939642290116595851297114506944769543792522856751228987810332149042426284696463765881510170464016681375329324404183821401103017244347049482005045499865735583714423790072429267325009065584707977915520338906400594651176283921869428050342252297500872867688642531288740459830177677224789935974409493633605876717121346281550371889190436162784133071795585598446080361296645140710689332823479579159309370481372777542487368827781286169345949247116584338254550514752567087940551637664320422747741415510200931623573426728801808442166339840395083443400472501331093774638697912948627241836120068835629846427595269484575573882470810721730042271086484332635828457159705398403768721705270717327573914954747759918889710886458652076785616856359265479356852914805685994369126174112179497042635085175814417479559642954682106398213350606182072693379317262312867843701612606888337161613946003886562630325422347045373594629971530364673300882323450315496548804862125890445053262679372009493158961802729008747614911156365763550107852347884011879365140281463276625206769794272336457784769311213089184166963206809986656573993287285838069502342669105437461910250210961049076471891995311807574600682436987420130657458796642984508575178191161950818424561693524243497654191531275583421367106189154913565348606211474305352160350583893084564594765014066911765429446947333090435986236376796264182098404867110522335058537620555523051922765196350939882627814262981328104825770473293212599283751597099057579789563935265563579014638646290546581817670706856328359979415140113812728027935770394936730982346479000411085014247487412238917619437705119705170837152189093594535793474023510432391682637155742783865604427504637901059089670083059597805912500132068742415912034903095341526750208104611950548145370103497344858535018786779396756488087065710853965305063393477274935440058580193943747897734323065021197906481222056518835473963359882707285394691267526015535917198829652197430627299083457657921981952770967225813227985105446723604234614597159677690682848514985919911455008005132750453589671508142698006426941189027514296337486503973778381094633179693812553995564317952747418646071586968140677977109010572011101269704628238515782457951149605287583441136759427026049264130618948494306196121694041168504665640025460004691517922771863486197238301228735817276748888474366070300011111023915359313483702254452031244147498825461013315002327935440612264375628162382742507695343895877098626269565031224079423810919799767324314069836741557623008343393008005775905339415801830867093306816510144583576134204065097381101767598184243123679767795817934798191474983541812969230678350976848625220317801184038373765976230610519216091350967613511520440359413288620989240407065112359618505275002808757282137229588995199210311052677985285580536916574359405228664116824496548114381253890671762054019407147426373434133729153972537048952945800659316409796355805759865572280106186228115231426213572989768284076519724931489501946598357398884575820698442408285321529500523540249818633568463016051246192329064486084261474728317832795632324615819416497811458029838813793108916166218090183090385148361193075147254078435272300006603575743192421827879658621230183524604147654060570732307492296218764905916092692200996087761049262135064116208780910003464870735920937029009096019189085958541647718696040317133957907838144248527473671366571852337806328517507353392615657038301771698861529797889298374060734408834243702789501648718550064663856132921428044803200538184524192093619291415717524318468444042962822207147079847120012964281319431722517161775607183823003459061248040479188136549153093883894469314361337128947846717380554596574279432371295906397171234479684097821023279801476413351845377758452608262459582384770486844291780627010238532812277425417219316932656577716569820710452851812465007647523528525972053178415435129416330296827714158425172077658112610238361654852803589156112231503739891308138457124260698495661868243648350168700087085273408086421202894711850970895595220828712786361717724697278221245373139563335911849274789810251692366716885568513584902410672353105131405693633247409953832701797317260030394235379490689641053902443326369327667384590675242067070676738280303877437877931802195721043270775585000502395546318314283331922094538932244893446011781677913238932830824751296442541927015004313665279145833951389677504416462973658179942458842917398903429475259636839801887572669103900774606870810120605503809661546244028306139050512360161546813208023789847527285072325826727582976317016607715952282211112197278528628393368947690434800584221108672058248759915900415896372151388000920599119789159847427956252227221345939608934172658791572093624033498191440198933743024490222005577443424533129384925954171747937519702325742778180674484046639110402251484960686475190697214429259954942742083205831724067948369936056883253950076605533165044830716440006721279402555836513344465414951087228386024003893353213018650441441430428943449354424751067934603473501906359535377815150761087011179624855013167660192652341071991796175128888255847011877954640893012241962359918340204887622806140777408621721298564519556689398910664408559617579620638063737253812086293558789154245359898063826547866802971777146798356265671109842853779466269000237334750169310772335472960846949474265434123353187239918097682120179581777235970888883098304447513291155015859574796549698087439714752083292968729434372047674287762053813095163330277821734999122981173060812429774046091392067505099627173620272764229648421670348302104759056892972906157750172636837281455529603557453460589563197975233869319956092440916658970371818772000154403395131335390815319478369874191100293264155888005547050808215027413160111725275374790548327525662218187561343015704873249467146055667616402158199281815728039026373450540581252713754455712121795044131322606843312134485259334064999353153535873691878329340429671597356495305044346979091787530757351871333356363285910232277590616049910759186366996866341997223405154654238498843976438203134379096742724921511617552569593319993560336432347091717980783955643406790265126867534431452197875880755577382095301843524573497384894772227654940855587773589550218162234267743364402875182728317860719303977264511306187882383778310513271343323985147161756446473881913543295912772334768850625925470668425760236086009745182768486364162586627683155070958945954140777381695053619884690748610636586195949698036282787958750149731766365933691823326844341318949390533641098933535393771112674774622238504078950014151069754087108428620045243150261980765126453413432169620703583118322969803350907589885487571769173235388187536076275866641686340929161948420480337006451551111523767304597272447250182375451091717215126419727535280554543312649357355216162108064464744332063121249850923999244005451910837034450680489654314819613626327195328106294799039014146535042110140056924061015701314993368799152102193046742428536287820302952122709954717156731828118836612406570723148303605416588928651235173046934909558932767934695643500926974865980055867567492635789640220786782695450065404731473002707630913811791153295011972464418833637816737408782972078893667939529713531732200337148969690241110254072591761215786161858946964708518635243594803101737972105515546611941342476651900009783976687418130054874317872806463198787270146481352051894943672374320797620072692628972596141533512277519414263179050240524641681528623639539051147251381712259296935492722397934944983180816489812541143573857264557092334507685061189961348965286358126236519574172350662693625131644353186591311508400441530503819623825711016732828086975633649556431089840382266368397669815900576858138107115910707030489527444672188682668529644148437875197120670412504260798316062748500023350725470690287685570502916478808020389905816232238021562910056892747794731678743418584132379801571185783061439826300128429063460610253024840328411343982013765919973926088821142698640221819239398345254478917891638911143010035764189374996092552391521997008608198616648730428819539386418589916868388056978860555263599009754554364505038607063659452035041759517547661843367946211868323363027249290437204303994305837274558792465586131558386304974085000261333162844570371833710330355562798783720142253061296982005135012495708263266259629663192340716782439675280900521982869531945713720080867075705822001522989297768613943726507604475176933380195877968546753064009746833770395385388778162144730162496158321987591164652972624134383933485996000889729870648692975791454878248159566561292182686774485158002173793801850097969313819177213956070513454880286584090611179963334194962068176277363114366585317215107849601613144207121997979014339300582556934261462240852070737455572183844732982493293286794820101384648184292680919538822674893016368896131844553720009796137453077837349843966259954699417295495461662319807962451852785251659457292937533672995317437997296147367205165707426357992618642174464114545194522592101182672829650773706244216835175088287621581921913205423425884225547113379214519772718585841353254151292092108614123237914994556896192334437146985092433459686433310367404147084718781989108895791871220971767200742646290759098381231905114529147586279976626854572054368840712013337512911389687185743318546248117309343613534345125652878671817439785244315753518484034971120359017874859521962483142516995009277311406011655344811730549167908452847347413531908514497963998374116407550488799189895684931867303851980043711697204190121511290797045747821253793425943864604445420545552273538766874897409293832632199246288018429125754435111820609137297575046280212900012657906262834222536597828022864089874764664354434335417545702060357320480831922186552657790151491622078963776968956136988662864148553902002954936003878337752929935014630423852426260983060552626045995512351480529475798737032928091608505791749806817767110753993644351727197763316263092332216741127765684404518546831814248003733312741198507125913684537117432153030096021811354095467055010166769119816732694683636040360753223799102524631754833115768580090234081543530291186146405570435120309225119047116082769147896656079485911819503128621863217665001437204750462699332764680563556242244954065991667045092346741996216554237786154136554776451719178835233508457907251902583113665822337210085476260701290781975968698829816199705868985686664028953804514843608257483339153419419559551161922063698514681308102342436421978234639439011646029496775170238908401844331882734177444747571171264713162225659642643715382547998172065944103028298453248863694209462891530962343665100218752846368570369166475922130766065557409679565883606830162889225887761567864549459208774872920371894990642206846590957635028712730227030611779861154896228872233493438557569216823527903282926906377861702801082307968295113012879083584622579081584114225706156706238445436101829334520125844423586550818230535788940608372724519808114937973176881461512622701654476876649989401033180844771205941062875590502806321866309345519460122920846162751436783208846024557558502276468206736833709756243640405397327399329056498057048985197814161834899257490671694044652788308872566733433653064132754597286580637251600744776400279520873587669772719256836733061503265989897882907150873240866556324167748062162924094889577127651958328984537685226873578543190346467950210598370639757970371615652522455105417835446328367300213787571187443001348333884478247912374160068986593184824166913287034810115888370764361439302229086056188338878167703736422054144835445256100309248009389289375484478645530886533532720055832773225526635402694950776136571520068923494641438483314064415521164182575030394439595889265483620784422911269547493565522294164253783719498429701180426477173440301755132917890622644506608487224663448311064220587477219459254170193571595372145051761184275064481910032718194735700937464401357893965614940761630494123729295699914682495149420899825338430684530216465383408105354454731169610650399941055346336821636452895218344731877327785097337486868251629472362770872753902044094473681445660633455139657554794024831178563266952726705306188510686445446282029348590209247467512514053157558032589926310548482729797513644573061796790593869584633935923241152103896433160208164118964194359353634822243834427589792265748698572524964950608474230372001777169529531329853508025244983213466432496014860611260830733254183607049595300347825370991890810411879791294406639246196179097320762701420138208061100251203238585094219007616580250295393136941319460969708748293152521297044740710789998838707211085754334358866771545795822558261435189872274930263585276238697889855094804098657821639832415347277548478365100995819278557979713060611983713151899352298899118764597367661054024480461065464299624149958463599797547405646564441299573893193879958789477286335471901181524606596656302134706863959876474260188836808944131738033197598457586375695363073162694417880901333732755824568298195905211356239351871045119646732524243207716590540480010097138832790692579064973429018067072437822524313754247425885325950536120515018209630349037008555143002390137044876616099265436216435452076631439163741055738293006357054519607278899154269547954776618491988539428765666619430911921264591849602781944758408743619494649687705729054569049117449669618046690553619801871076365367395996441818160343228766579332563949743572678824129270297810613120957294346885874649570048615130798438567699659410435854237142256478644150851022816035210785196114462396752452795024961742135588059223531134577382092885860004944260665421092572401334120117441645165784571575964769263986416626755766066491878110081245336277102889241667127577001965755290809200321123324756880581690617047506798608607567673539347783107293646999482239941180368259046012366098755173923083589453430841884143405873984671446802376832203506818165204791799392711445968089506734135083893299276398993071123787256858917079386402167422010503794285474052224003128907055310848561170391251435594442854507642778269212900338497084620060239581364817605535848456789942689623607859126437420161605469383534829788818194192027398953063974618627608833245086674404047337926775709124501832505419984040552779413724861822703037597259946427801069323390422325165478622095538344736704519545086573266552650408754572174187807297357843728553745321587938499182550555971809940549173503372625919078288722638515715731462736181920541703467485559628203641533046936764993086993366284835679109888445997350610158547255744190404706074828777429278086685636253115488675365381339853332048972778502098003831176817825846780558437964653049402469603403586082706154275146234642911798542706169555382248734513635011452014398427638228674748492761029509665681121818891507834049846596449243952808992647893327522746803613436288027066218881253229342965730359772085525599506405809623463254006126851893118293052610139515268077181374385527205816884508178450179887266728917294570035919185894419707760809274731220287330828941214709347701428130017602200938068038996640561145558011916905254289685865674906134698121890769276032223994488167605438240538740269908714725879718271319246241309399593843852725679813493347748662427798330436030421262230491085584983041037790876189855081642051944133526620069370428324845627760218109538266111963706148613740819939627715805431177744988169989826260865644884264101177374258965789424995369896963836038610838699375524475263070508820279246262450711686773172566823406990394726886495349314625063569109914791356990515641346365713261008201209050659775927579895086379082926221281722716539822245804278330856153883431515799399423655878214699935194513831717901024259182422160765464263102593185482315584709693363680905772428314228893568348036600059817327955510270668658635982554175289652597492787432599507061363778141980713878950101057047576374530702615453800365635972997741408104753873661220331202597565384089793221599447053790299469191153214591395929865527271270605325319519618241996759576266936751345988107774201542619955996960800106877397614665573380996507677673791046607392854788871610300273972868366056930731195711929252829838864082528158093361805125234979125603323314331543239308898095859569865027656832507671270204178731017592821207477454614819110880244660901143971468902953345604228382353186803629797470839337737141892130780619371167747075073720467558666215452229056199694144414118521009599468441527435655163384012228184645975794676382701939776842121202485707498827206429241569033096619569848793025416661519569878824409055111756282872480009942489303285430726156428394956412217563995078890989500418736609800806480795064985829909965698443820257796748682238967826185216928042954137690972336903077140567225841734637823134521207203280658421975972153289852927166551783728478751196477127159189380844679354034757716752119193497363605291356233266811095712274124428118906025178230948397075035617210735880100222725629651258670346079274381976362382848450287735584743168733886703374023285498701265768087567830169479253875497198776788736615811667729942272471715452492535400312070353490425783514079665226820273699765846917188201710027296408772711580872064309276496874082750045239227857048116196110388624749791176850366161722764061393429415883684832319232256913996481466833466595856027591791017738394954102837815278719069276460644272951618584235905508965805770339432792062774621336295404681478127394455696162285981515559358184080473133616104905917717554346559231089875773481398224751720605318903397440002840683026469665140447250885001814708177069666858248430657296458173102347572318638582889952801924274166403361906745931222529360623754666547516335201926528767630153776526166413867532291755118143794323607243957395905860536540291872563342381563336114467734267215372196609586128760181212375651489729807399023073046144221740025248352307467174175258181642221656106717351508018266938406949476749167102056193511317105189378379858521143020079087078770349899175765332641510425618358157309026773728805294117121094249741442030043354502204785648299206753148100639076941737309026750895893525635303703748693790483344428834846277851187918068741433681766457927867907701202925286300239538212886354140567179239847532942072767770737243862178763913239547877203197405613120124521146709066238900373021970468420478228549258109606231734998909110057878986727090885385394239731192358697742099344861188213260564342312689279024709230049986086486335353437262820788881762785419040200821194232655242237561988108677871059785184865839739085588432940799314400626077291839472644510469556860664116846447725902993241963217521000659765857510431570877965374703012065902403211699141172435394567822177477001017194549725068354781479009691476501000945199070475122704418490529696991045157892731330020445689248028148796986524730107056950731893205756407698569966614941039718549188550591235789771542355498286581881261322357460227095806950620486103119814329414140050334419167013641893882818500751700715835158233813716549404179869142043640820335504367790159078192675612888397687781949676166458466373859184023188350644461915248770722796566226892023833276585541938232720135938465868711026662487329852721154695754694330239947337211403022210486729456336366122932796644259736558947166410501512615122417834470057639070606867600511129526409081200831618445522366101055860094955962657833193247647047483329551986382121052404641363389745190805124404516562132636151987288109013339735946831692007933297891728904871935136770542404509589009704588366086675513803490506104275037536601093086384479507180176254396705607895402890101260015018429181964426825911543800340190826290080554247039485105169248202863323957793657766351614102671020699610587428505792463004728419863537732633110207064201044561546837006986756565564152671145930224348773790406487538145521480531411867801651155449727128731778214687021315516886258979235226227232630425646288056071076941595119588197677763955459486056324687563837945912055671920944977906958074889936560954587221513023213710918256709840072662648188632047148365611775468236068364992553613334856528437050794804673282803658329632867942755762690023205707869093456241832180738565204559172821946497060368613114110617448239433027841888513238610596715178299159662255422606916714532010891283647105858620858500388390328216784807944712002133578680904026220607795847331806593320932946892527333530592048340486330624101956932704623292141130815829270902687805989237360776077404486693531314204700499909393946543219070652206432511459939033239416801131418047130883300221895313742144386866405448753976329738889503300437830306441327750162062762342272928862344126921463275095945660994977729221154661380890884423257937650549208386472110191924842251725104736105280077029802360243845015805604366744265364021326944111916058145805065107476232278199366236757172409406099446830956507842221946093096815783018448139242764744324499143103045567795019887704953437683294793097261875281780153772627910996764312962777621144371478707025122903964384599764927123947856460974717295700892244170823824844823139582401871979286102828701708572816807564519251980357919778769777229131664791179739971454094074862073780676910093387099916740557110999388951414866697722282184168274808221483411178009483759251673529624406197880210673446194659475292364751483087849104720390370615476944287571121816294307261381998772057219574121554494840339163665378889164154354964679319166144867057162942278506771055797199079466025324489165489470417732074620655081847059938698969980055999948541770630367753381890729741148848524568380148631335579676350521771756476495677993960175196625260670780417850703317120902108087546479765886839596089245186042876521398095996858228174466616856862466961373529965269409159835644448679303925087999542764122958331594935356654871004814366441114379155203761608295939909297253365807957532923640645612498097713288209125573894179338275262285255190636198238242684774706093546985076222050044484001962219808301064959669455355686813080523722998442878018954075226181047264670603942060965068600738257861838772985145324861352274535307704327333043655795693868182606122116879905023127534786458755006313015549181099918256046753321792596293351506264006567935598379892492342114403161970134824760363524403449251547417569743859181627135928477471713643929939828278008556223413566265389565724107098011407343799964770428909054159734322880220257495906289877906833350745894418787231293693883027181489898314328634205366649611018354804518121772733517440714172531710251948928202071221390797418052494159159607962361560411890581851900109276993720947379330615608072175223528661601549664252764090809403416276087318945234362389056203562098662768231128606205306774489253180495502796960504307080413941031687393347330693752607426262754025550607274850156964240058163970248847478612120641181430678947483506065287806092301478299969765984367061223015474298370305697188587990283260244565935490059857145975674386483033808840038356480702795139153282820450362650502997800961621970016164448323983444065904873578106511395422208592979471177519481430420435565444216649810553571493845036165136264373432143377362127536033291513113270884202271770541216241860408079151279296397375112718758938290964035050981418529739262587877547102835097229160548872784278289557719128932258418448909200490199604008293958563791547873502684158857316460224168191420907827332689135081649445986990494608555669770695391117647773070156371840732616505721008885753250633815365647402852522797648959788961260575163583100939559006217249197982757948660781798294616277015711158900199045521747664220912424325296067405860676157569991311981176061648309772506912820723183579350933843181227681529717303409851982119506774330066097945563106326597650074006407924883366071585407693586632706053815667293964405387279428354125666882211617314769040602761995841162533789469517337908740215642121036365746546497849545356577110384764220202815249650343047504510979918967500515455190773834313798295958689894822826296911105166365183546488236479811363183619220903526954428785181783914028704880544498681843854152216234760973984601284162377644341599266033331422340976258105515825295992234916827408713515339610224761170716456848278949567853657300645161938343784512820043875460770902060531271463814046447421602073617349173499028630995129289804254474106433443915876383220137093468812101924072622676087284594186795696527801018232702522808443171836293114774934468401121535544844125000713737062619283057598880498365852333495477178671510995768940008016924890595112414085768425755334802851340986410882467248848840759587934291776780873677913880140272384286844462265115190501260467309714427991772277662586181192655979138583545428699696283349862082511926179275241718021254964383776967560755219062493608096569699000529231674568434069813465204081430085981716745007611928875570340060430622234839729388929278681785811078925142732243860771384307697799133761022359290496126669548141810638339917541009350026363043408252292849394839293053990305732841701929125226404942255253042127423876760736905224914206768240326301636736358285676585568819822886894558938579465528306063942135252819150920944818968531612023821281990171729394605742957428341296757544831572537385363666249643902356140083895852934173450990190765682704868401884311615011745310303319486043537573025066403746261973481313718647476518506293071864112048640848136964348717003731817248425738481386636350834476338661179898676551354377289268127868106684954729165501599583653377473352800656291396828476549011084523191774990460813747897912541461240587858249776097079043650608887463620383635103424602270308093119771110784255361743675935247946048304772940613513678850620870137045158141752648940937309438083766081653767211810577904365034043882264197506343355956382317207411334041984191359414007529189216628019978451993385047006334285109760247319133597829036533094940078174676611459940653661661326407142371838128290562942644859287208967213872211735777941879788401434271323283867049830837509317860534068880517688814460688719476945135009533452048644388583049338548269120555838207647172990447753169624861084373576194376515840457080240015775100262831081267746529056567654389905029183331513748680979738316454628020508836119041366502406083491811945043197665983469860625561294488063932423626265688877994522143569026258187293823357590575935425387196871223637213152253155524217596324116279882221388245505146665905379512866643790981375073816525797807640616570994089582969369349796197056059129485671536614521177838417019927396727621177808129211200889864181903641108277262978449954291023684573134115923914891458426235221563544659945033523269809177810693602326154998106154604845410454242444967313554428252420230901916793905803962192591886586546983994761003914607127941483135606707032791792940785059031243776550447495860083769096423222721352828829043699442210795489084115203727782230169479398889058178309728673464420589679298313181141566356252358632153028482666646543105156514678629187170592179564966965028449728648398482881747158011890936162960504948321281137019064534189932345368652606932264386886641213324863099349703579396274561727408451849776322825207230574753414669192383002215180070366444596417963393133141116514407153399602637162299067495247943806823373428327400912705125767605804028632359623044040414695768468066533467089283004113514023430591872997060943518517168752429783490476094229625771303972502952953332720983252653717521108823466754321702702367364691864260650428023709928658480371060518568572932572821306998812992565918484514911589715998149060633968198354432423775248782198674443126229485306458999149992312590798700996284251163226302575488558005103275982887084345163337355804900394733716872185673442440701151868422058886162862699923026732213439306127852504323204272598226696379121038756763293533642721617096574583536971603509303023371827241585941485003882600305276286482267432136290985881413220047275321620449697235577289921038975624560842830751299540295144934804788011752791135604964729620207381192682788759170174434281997550157945983008074697966712895925029698799880740316754242239975172149819554289798650067398529633486385706413023091589898822461473733369365219480853202872798158255549799017270254991247719268470735008012704054325145948741578823522021356015506879297657603149972095249655683972028050000009841225857047825163292719736998969888022305496468540536540489263013196653931209232375356208395533176689662976920029012501510454485485850774406041774744764179135137140889476539038338080310730544243601329708784216745789328168703844502231046749320944445927205428218303162265580536552553792774542854963275761035182602279706540046452939341013711619396269661210059573021729614212839693036810198076841708159542718292298148349126845987559791914827005570409727163333925167691227873856908444003095398314075587888357387004343429604784698004044341436296352341862888868607421819125002048183616735923480268928803830560804128293587130568051171442632356421550697784416116977005104828679792272135225140531178194512451301971650310927106216378568683770623688106551731323669496364989750775913606077493784539949105053211735036657337011975648314810679020043348057026335554160020702292215859949741944781149461157228770253014316873252027087490517097827690370876492756304532832033940524383299405046082702112317309132703319138362892197448107350325605107535075816768599320688298778061027560078035725588188601883220526737559299227701448126104930846090166064549193708265718937612348472732445493461963865510380382775943301622952501047105361267586387335533689885383227191470733264141966266632970475351522591779832603989183143561446774145052139298586733008605839996069667852723581785361385870251212238908726410713829885069402197945252860072434657807312601005571090200009332907552390972808536536694370649767708359491168295283020636495931097438924420579818067346408669237500251469941684640132988423766922736845025326014692970798674373743919847696094303422336470480967178338237590255686335451513006139784563598054732545515429848365241459112221856348978745911818074525608448627404508155929747349679572018642027179061512443514806254676569298694979415064689397982362537240353074684700569499601706187146259094110213118470620740214523898132344037272656149807629659453745769339588136742463910994120043717415373883167865527431061866831318710097065609232455472593984493279080609055873220743141190411132955958944640392850836501877333988875032148379571581197288434224333539943900285204183968796708727494445247011443336470371155625603157317532883899218129136450963210068231091072261678631547889361223120490210531260015015204407467488731109911533824479706785113825030139336791993090617352045536235020330116528055170239462023021221830636480385950494478554896395496270956532663377088050246661219107445235173005224992415576576092264853929277150326848761773730772816013515891918594720410942426178258963911939465148031962620000176225487787559775141443578335090804955846864420055607126370583447133949077971205037443611456119607575468904176880090361846118544288796319813472982951339069760547265293043626175298416232370201366366129594890785523380188085706463631145985891056289199171082465739896077760150034532886345690196131455410721841888904536003337565797675943530460553930092477014844841322050619971965795164955934704459182731511104552254839294285347238407589364491401339596327288430107447017807945888389732018930446144709016152847891178771004209354944534962175030968367393167631937907490087816211550134375033285290257490364297139128472308868989698989897628005225953763846810194731149646365693607674186800486558860577786396178279815601687959276413006525167241282677598530481127208615576078445859634791434461346907984265847950916377480698985488691706023939127571455005559051810405589207581084802215089163392380973676415436442830153877534574223435745271281640932748926592921636292315467147009588498700131562994106194634339241728577256304214940466860543878397692101342649013324924274699168595476691654350912457533893095425135526965578596317330782349630377477807407048965779420569880703485856758119873297836940675622570188494062078892843066330879724899273057808542336761025832873877959000182806814662171246463061721971017199369611401749521918071132642791950990387220074147527135029387940137447346790986392457750603912997068546771444591190164685157610930272457454479279580676839551140943819763507468895489962095886553683315666811175586372347574360353353040988785003100130994183566244831535436401803845239608716648434204363523325636452660983209599501743445629617431694982741036185503052614811825220064825080290761138587832615257042538145096109953862287382705345535716908868008046780197630810379039824377022521268162769362751377892381194574506524211254769518841883422301449184090741864802021694297054652613259540344155595080795382063630842079930469374898784760909358507560999705484214520536046616981528935199421107502787960798451457732962764519940708501367608295641669704624624395575801938969752522830142032804480961632351786210991084419907729016755596333697905943809529770569662577419620827770208348489813987350996802375815677362640926144382796576162551728216437861519548801285576501563378061031725798569301092984771955391468514812155056442000054934431194787597145793170053025263918284890691197205070253987537280236519672076648801912386351602092196239136004093304602012367770259868669612616665043908695199959884072183811398037313231989575380639091889531996800703037324409729994013022325275414888312296515186200421533078175138172140260012307220113422372761793800610315660133664015407080099585498755479503472023116674238015795949665555102260742610889923896223836630571570717979237526916500557567111389403433257596558053167680892577505738974403882791515516287873146452248057757912784471797557836564634600089395188028689180704703423167799799041950152357360172671190496569687891445996542110945605619762818644894032759912800780746341730090750309833308282410708552456847896437871817969216180839597722293893302304484666982747970179703162091809575551978784579049247557357666625120331903687895919104957703291177055877114627530907362720019258202372160811583050649587336239519364028938283492398820583978754591705856693003074548717790078652840417795971382389177033920708296042890317730192192752218007126034958961966421410765067264057469763144833546547810292437139493548061468851248218586873110255708875371273187826985678349202094606530430513879487628525613795269079504862583889939460129229862906905438412876762885888232754161707171189584824315339655145999692569762537088818883050126105418286754426375150659349017067942561979777143491757124006352184116680960791786364533037156779340841544598333179970257643906838811587938579387544892812361121085726674703023682521909135133504259732289255800739017666715711863942072626052580283735055972174043089689912826134318564164231619873913979586137448861960467846486686386123136698272882438054749456498684205727412891950623068103558898441909073697870204507683250849106760602476918590212174599413050465157984925130334530719906111298169955806842448331109235828275399500028909651602540127360650822153523008939180260450684863507142577059163203787216177316788396132362686091663397833227558685965442407251987955142031263165506197210146999004457482203721702179672973979965443322260150136960352040538794332190045555576674228331040157660071860344089504071275784411022755588993487962804326100828243750899251868904380367983197405570939771986796978686298990058347130368070686815012387265596085334275516015982751029755687359592315966432800290534056742360311045283195395163498552061443991985064762898775901685749041942771225894656088023632969665176219823345852766160693983808648829685180218699734666439788904263153472054274582914054257511916924618461844387813637399627772777219682939509230828486377171414385004864094573472741987115056765520040675622452765591160199395492401149691652691345119393867063627464137918578055200227771524000890049109319468936958335879545640889363653900053639049571208874122190059931746117166347025742791986095046918042765827046004468648637807294140745505578983336694571962382714990709454309922117934907940265320819814491757490770510514921213721756121931826768142517865367003734304254486214061570435403285182515257708014211803417239916768129871706411247092777764757353084144142735478457763477764552042987491510219515027079221875202566295046417527870764948412697790211406744229438800905498771682728268414858299304985782602078859121563360598397278176497338715168558444439751926774435292558059862698880217229654388043638755571685744718859028520917918333491667493977552005997523971660939857410910029897154519095844226486535465698974771765917576350185001280335366990922531858313400502351034423794961557019412471751280788300971625429362416530279089924920128826167323318003117986301317964571381301597250052384726359004165762673021618771065390663069639426584641134218735956342619877891551500448112914209088907024511800301461287486647398676920352218652021621627370350884984647081019178230511485403910936186686202588516423695614335083973468315506328564068925497924959097515368981234091538702010890710492203476269747245561355932884687085913366401196786785257749951409212843194877533152268085318474074914918628304405307190785090229844824929757747766010493299839819171297404226983583942436084327901904479717048949733136537578035344173046658493893078142438077235946597266725770170836193666834426088237887793207080646717301145953619633884286722851887523369310909990166399621870321328355641093159929221677641395211105220414827977251325697782660652903079132693655195135295932139056421216325701778383462972007286354932012077646075881420990387426438005155489147069000175374670784358359726106278973553254711602542651813290459682785713680232998485497716783392657482082266366961536641387503531991550012507697819434967525391046064442737753572284743880559606796323279848186779948516572773589456799343946282113994352980762683155484819871397795191965360630686664892006667815175435939957538127524716263786530019779071181679315291875685630637781906538382277967857823335910050412351804435534659333360523847161944537743425516062697940352911517810914882735447613466747804241716734091108889961738957383273889345960608248131104160311828311408888331682155142629799374431172420583358051116419935845138582439516146881241467543210066319797125086497137066544929621134306768389762421500362705135100853234383219542730939438611134192205241713553339098801673160889695496223048844123472742308884433515864813694572899030020372536907238177566060904919198439194839595241573147665573256534079399550131114632874571381396919007086198029179089517029342434560604771804881948573480704799885735793506922195591288369777100238907633948484596103133639943220648779548906569341271150684093854545668785092580050496787065661074641822656029578554331650790610806425402763818339534284871168239689360039212099985831879070917555981330978760705016005767063441776224205936802374155192118482686914457514462246382003886783331980840574481911801427267910262258863556406410839213449500838599749331187739090665840778698835398784896339613606212482892762402502846101163651230496559054197174284103070337337448770198481576409660394121596033492009149348990075913882895339368830196406592358784786144965412022306988992004450821993074370450789883978077714252276485998578117370951202157896913175774502641910370914924154038344153980314871824695840805602209880083416821540604332790858837868466785339937493009770937546921706829034454267699979874029074607145400664923320201908616704561066966260981320696909215304513068008033113275644879349354240695658179107245314582401426106794455926481969946061950069474073586447993506222944210287403692059498712058573755189530187469796962040006366055773902984561477708361518824489485411085068505371814673799379811495239838758818533150090439360375712592285199846324093667447278290853807502871393499604355042195808057132529487618740508303485950955158887238902532145307828824847694921881917918221359883491976726158442729518280052515632839242033335831060572383525886716419386554043753934201972158801969771530269761366852881063829472867922731934698647535171952940551348107537299575909371570169748051300592906147506482052140666219650253422303677695264731355025914411260002991442891373884480451004976420548586119930078164526365334888134477601813470365710793760868317167537096894359256229244103663924497965867958132510488460769344973201518099185860437434394907171326677899455351986553490836378480605630917892069293056879701335148873958975546417629458441015673123999411557068200599885073497542488110809227810374860424351050966855802594009760228144277978926454539903728642094165402782970692118284599112697778421262346636311181704808499254475001306337928528621191662263599392559332189396560938207883354031973191296334401243977790198394501693082770574719573452210376151562792767344094220257954092950954289401663808202510268340848361069959255624366748209440535024624060558407633025443282119421649537941820344251207331659437056233318118127573179306526641630339185378847663376406690676566317205855310872786839821887456947003015080187502454772837600804672156149779643124160246421968116501327870714101758671885825487231767304059596023028860304878760670595946205247370255131260857063717905911347840463435422414756855864790825600125993011401750688073196044170863013683607613978755827975451311574507859917499240449915768152048501519006221912031927376207257950367564816445333195403061263544247561610322583691145753295140901533517206031000333299320060598598209146563352398063561592109659266715731809831813663467462049492407918693142344375374714203931588612934627909280758695176472932461819282585373619937194736957591971494041195680060481639556453309352121744281753789684991774783107227900099025148532630079302189671824254282051325686853176646732250485513528307164552263174130107482712582536641851835966634055587324437530063266506793767604547817573838439881057609824715600597959926642016806427113768496584363202728430252966864876556221695452395195810187488397631112580668846153426040690232915947182533031621472209940391503911131580614691511514943909598996463952804397459533210671940805217532719649917071100529014243864979142879008474215565018127246174145665042220316212942279974086914351615598044749279948170614721711653063758550220383813809689536865692271720843551300511224063701317550191474066309489088672755546178522994911216472509307761846124950621541569430476391616353368902476047097953051514365746806151361007545528708006686485046627235620480823868163717548392885114009420540572347669621762825041455971889878031330411328455747365648391635655390469005368104361466849223640412149357605779778689082802911922834147188126399283479274782130725866128710976334636986787264085447565570258504438710220880762973621234068806588495071526265972122696376928495334598798226626154592849581792874509311225861476716327226744887914701565417519445811228263504871960458551467949635799242828179260816316153560756614719703679294510257835379133666837752601244188333665806899173853187110988539358240268119011974470877629594722038772215143259933122449400424915201108556613525432499685162482877215258375025179245003833935222373142498120382710845017394467070546585876142068726721197335157795286976838733046178255217434429531524554987362409661710638424910579704933215810513257022781147035018104030779050359415942445776544776224432684689448986930285347733925689266786086969796160733257830321727430966139804575818757917736526065449152298616134741193728626433557977699770033270044999675917398173312420914347716027940610528615238446346893690049316019700060279581403053257835649043821867271865050260947833030423581289397882768644865392372088055247334434736656361809109963433688709983004677241822746365204833744493318978723932569912526866519437947575666526174302712742044038733022190038061044388317203592491565408208636863878416484807723892759135180265636083642903517494194025780546234873173687524549660109491006349040325726083411767300965998426794468259592278285246600049930813764470969386566706459582280908979796367471889073460833494684422230048295271521938907128129352798090963324676739583253056334769808947127888359770113592036983865106342190386032613550278243010445689798247789207259942202248417791296752535914027459965985013317435259494372695450261081939039621052735426791904505443285892376788424615186938309760039094487704673854964549715837647881698797011977720714426409232688701815360602528532585641782923944676637409989130972851231682946114138278768960810395683738281851201713422358114133510420714668781317423067984002273812185995430357176120762134441811772496659542497907691259672860156376878423485879997755040913339165454374672307614610122345307283528949904547118098858076658780532510195799933950268842160726955714478794020883418396432052341157522156507048227635860778200846799874930172994189713211098159051429005539498780463140292239404114273780743505810722049301749380724108470557884093697077522757492759530758997287968993122261918736480646106681819159714422621644194393537989270425143688160425467388982743752059811354379110757558878695203736051005044158561341814918600433494526186491678160450829916770783195331238891787729685799600771694259613630924913063520152795801000132158150130355392329948450579713227503924480843772130096649621164696223417339933870190102385666018086311177603917507285920578518263357441257993519087636648576298779175752027572159058664489032903294968680163829944682650277017399244275629533469818368020775097139170303184975346523911308060538111320070459516697861440259933137783196176132280232286993365283277847945567782662099166398596408521423678152568830473416747512137543016118069267487296308389681386975064812816431378040277532582883163881736973895424045802405563007351116427877216857742590853401229153407593769406882793767031930443697393400385010717856048721767956097040805131233268362704438324913800813976117922135245360614794141683315992080604262573017525150537147784591772446639814714609515810905310921925577274548918303905409263154535166255933807981021023709874382999864053329796663741613799933956662983365040823488500930099307314197019534132699037261924329444599589260798049088667199742420930316634861758987784273470597035164891906807759182322682190723831804539678059816372812500754693214311901751216862118043884920494996032923116055325323049426709212219389574943983649379593648321569890353278101724774410939485008783257070445306412073952099301476057137306578084778505951743021365497781611594602980571674387908446620498891547571320740189620358974742774211699231507253529131845415290564612768123584284744465855001605404712569580545650814430042828271578378591514362340922551284272734366412967943879350666974533042899048060967023164480936426028490889395820970047604852366158388991825148340303262863677222968446765132732436442682028765635175284035876873646913741073601434854227163358307482609792342574967721239732608322495103200464858439301225543522041840848733506564159787284976595091303778354846345006735478951131667486092814066358585429450609351659533405381572982886558657090833181305650533460919253164297619114239165925288881639444768951811410238677639411225359448485490062647420313941227847320965108902151883472047243220020794334847784249661404389502317420095970650269769180554589472404178067974945167012926001992943260018457031048968575893872911618427922277404197265161433111162690761106998708326463358344262110257509849261356814349366031917477388622300663994299316677732402228275792673033362690305289224353137217425983650301237077459983706206204224098083314520797801429445630636946115017660500773848202979083155940174300446263901384152385436303281129066145048432986845358897820324222617967611363732043411013537496487444224465604704291455685993768300328294595846247698327318096498789572061426409429416400767578211209058172916025425569513138822790614361981727787174619142576455288025694731812547949289435601734183005831282686775846232423494165384091430774566691190996556015397704269180318488597345308308481671642730548224238677335364694834255621450280620882193010559921226696209640748532430233567200584184349111433872218281908426354734743992022044039249694196419417589507219620439625352892326010917605016407605575398373224012644397645950214206678483502327664915083276440959035380102975910181283608367009931230244328399997960374841746735477092403704961639047446844456517206860673222831525788240747900070309277114467713111147168733025337666353528993505687677924449433174759084116588035947306196646133791397518213326536762625450094539240747959192621524479529146423139771863421465289377366799504560553572940572588723903748172313788906324233036707419015874666344438014848003659134871442165153067500871807790314460386696996154578233545126424627505189708401347806943727194775800075562651421837452651101865354921162767565325434368340207579573048910727279716145191875501779951492108141862266501813053223342243091796235239039207714430249711363079491517888747687120179123649727750613661322353845070828200443563551035717096488216341765939115127511130623283390953832168240199091137646443448516172844352859650121219743760759801681895790568109118377234337513123748300831386538592830237654497779055848716247225718246841649168898762228764474717404455544177074020359584763585320573110432782836344847413618498094004364309390601978082014937589614206703659245609644089589233218787573849386394750770749279475193188855535638550833893558209416875251836616255749000498152256103024609077070474391378999838620751976314429647760612985083343324040699169713550254212793492675827725242848198121144965393467496165727235241002163856739020733290982121222144602134016045042934657878815489287543587550391750403490959852256762837642552204054551115399329117029726608125545177467261461176690257879795867962717410602576974729877644496190202443158673582677429320384389852686348964586822968268662249698519107708636497304407607716656845360425365863872394669497907379837759863373069009890894170913884547292004404666683471417154864894120593832853144843531938500302168356823102691246065299643366272561459791397345435473946935509897068137183340450940490733987535685950926126224222071747667347348203183868815696122733731143931307047144819238454978950172536201831386545583714106614108628335457004658269017153107761407512585605161232765416202290208690001006257626231389426074367700456095285811879976536072933881396921440320917052198152105812555604979517074839408574334005895948213472330022397819159460565919957254185559734444710331317524387146487147987217451067511764948392206674084740210591897216079085699442094740061263557365616948109555839078610715284995909313563844968384784003772035035620581212793864624375196728274558421041843027609837025800962096933661037826369606454856849995034588832079551553726030328884437901992259649073710313344557172007725307934974170265590868135567214326094267672141777295931251790580082804655217936076621118397986335247228406067058750215451179470332504283494512982052078747532564907725165512689534443786325789827981207031304113558487034032843426136610134477447184076928755224355300245626516390046122040996491006998585027661807469159190972388763771123038407459351678013613689063250463890418526912402920241286414662552171350328615150079835165340024898611412152432501549712342145845458888678535188245747366524878496203317842833390872885602852179490290789754079419735087132903105876050372684124245793778786791433490177341989890970983734550434743671178721258318342311739589372065724665635158539760515695791852483885569646015492832232174244471150840886673299902585508066773901959641186374586805129539384972628753694479532646668225502223324009386819509714927521223023102370908004364351456609938984997394481228004272909579082079988336514555083545763813786375114641975788853918732067294571000435131449661060223172552163235966008017287869787391829774211304543625615264856536841224625195259451674213908242542287087371821881345039104533809641734929951102434074594726693550097616411850084513329315268933889043274328568568593177979950120824467385557012673173211688588298532397463473814691064771354376020868965381771671111039382677182038060839296705566504709244438889048712110142279428837625460761947292086964656672152953338786344910100467032541792498284778716400752781977736081899891809942133332716469093696694284414154318632045653530036201957498957379097818103305188261630086206950382428624324178562871285143672458436557425066524896901179220891593217695937625903085450423916263813891266421830152529460380372858795164189473972119787009592819326036436521062750251426446965124026086110751022836661848596846054664298572170174837227188686279831639468845748637543565497424851065804933694367256369701798835877186173651586444643901232489090067338053934490225062841304417419083901731129988168665586985064005843650931559900636192686540625196101304630800324805268590543236554936588261568821096533259447528419463855666798510413525813231777471311509079401325891494141813338057155336666760437242002483024735179016444331812171501486227737071730906131149164415702590037283034500198982975875076158440397554530975332122458482727289741440172579798454280973044994185104272580635910000616247115451528308253443230304903791052108361572283950756907841491058170746690342378205920915329349247476143343182290119143071446236497154581885036444933567688787968543945213398545559797635715532386404866013353703184603605200347593356066396738070326405839284177413902425494991841886171485847057645743651279431192391184609467390202287202363923519578461351878256155144178378497245941711106101332903042231020267045988155591840878526610423704173444710493057240172080666842758190529183811436529048154177968524587776604757537353950725110881114572158666420308001704953173775258289178370234896899409721865375323250952103596178986105783948114292747614529699911175031842277221711763250718446188790529998681358632279664956829325558438539923525370314246723362011049835469424780980023310399434722375202368972685193639242187436403640654700196770480859084606692997165899392547460549605756732574907515249502238217441436672828566283090251347238117395330202430134941601756350935012162589817854105638234111209753479794518533516788906572591314051286532696058215535779206217711910777813692166794944899710649017030639984925905861507151733267223803996227872504147607078265487116301287627395682143859798285329475156047838200284724531725035320455618301706412695279590965517228502575684823242664302357301395769425747329521245074617926055242258688445003718901565049504976337324275668897535489846089624802002110583573088417069333154585712670682685519639349553936565206029928870255059172187790743510561882056999393062683508992474563367459860936820912713842311644478051468964687984986843573681975799978838101349805482534383826583376244400079169963434217457623902787106893363640266530873554335216163584794313321798829924022129868178102839882390501042940520867439332173180973682846544387794499408635188061358005681856097551842543444816674360466088184993490618238633250554680960905003345062740189947212768769543923560036732325866303361115410912941571623437358827939124967642226638214078771491732382368021975176606444733922394413425655324774111870233727214146693132619911951004295464266807860499635008023273550155481515899610966987160369060972791929878315766341538233394562453617724566209925726530964156257219344678957274544836508131447260923290820826856820602170549358226981912905371257080068302433494162536921424606788019666284013107902807565262677679249686557365001608273797385153062457419986641583936851504636295974110756011244513423826617569300103815334140689178602077859622994581070055432344016300820530226103332871875173008404025696284443413646571263676977176804833599922452149388440136386747662523610770217851561291738533054254238187088424416068228136077109491118265237149330116780645730745605673857892457727248760943206752278139926645112766918533690325380188189120478286953241354733945587651355371587081460931636550917963382951490651033277446406057356606676869323990811300863896560263469115708822285228347645368172394018505964883817714322649649964918220400734110260253354848647949631913125613166577642124108006143222466669527182677565740620288067000619455065954816094487942930037493181806163196538173113870322017787036371808454711106723422423831338176993418269488500082320373144558887133327935139674486974125012674124193127250037501611691280309017139617788835418407673216938048960479818473783445962855049050337199063465683999617617314731342880941400737869941606996247015925161466241484982307066138360872618954988147142504129692223106207707599788267882411924037435197922150709868877933964055268824760970376431502752466048004414762728646154451215898490020114108952785402772784432821971275677150696044539705012482804709417428536802239741584979664380191150133035687690997773156493170003304556278090179455046987756948517163171186760672303072324175282984007264529497081346799329742757633705944577937462057606066887691058096627729909040919792243997258268378347015496648186391755584614688001323888084775186459283181870627031223120806905081086195281793476392836711050947667591891742448800112453214365093748874542720924489809599622252788995095751882872775997603975013332151874773410648033260301487629161176183487904225963520282984120173731532971768074860460934459720637836934460390638061960893669787712193720554654786263169588552352987143662229337170451304395728121728981140807597466450542289886822214397585926715733650442986137544027044330433562918443797722081922912750443334446159446203981649957256084839867794837705360707571959959676761904617487251580357644442518735707330498119647812975787690080055978170135530115273725419525009647120990380824764875623470102958171478781009876627390909881422255285567227001302365673227038965722067499086853004543099277401667084389704917095405201330141264950526870261063823919352032190819697439531651384923383902371111048567026287963598968147952890301489743221845543951687456302959676572429227881599063984149811116888086653502668715679335735189816002454346790328724302465488064860828759861188962037704528300502590365575493413515034763099524318383665552608703402785173461927703105254182315488522710410420313799563820983643287906697114808091708768276151740148450490380174469318215905431226166815006013013987605848122049250014421511786568900794500403739879727465625359698415598553329834236991629453872307015221339098181207238642560520551207246325167176516777466774834220613319629683012215918119364830292131215441160711257968377962064866526539643801483208564761573900740373891522936313706282511629227325366556766757538784619857512112284580848324191520031691420063643033655266786817572833878460121290649093485260979565124310212042030140991233562504526247859858508610538783792582474946882183503980823348895101036270400201325744188994549609409226877737980440781190576480195578973545174975133150969862660337776103333143229194027859401265215316246584354842166392132701106093638907560113060848278772716424729399264040125235703069460146941095110718796651439379055959900827254272912492199980394458794646224799327705873717837811436977385582660605950202696947105007437099311295914680301164674855765801878102052298852473238736244116435413401915892500422524753153477399947707307730632301869024312681434711227950180568281130540566483152668463944947953092612901263510988690457520456904337452404090959800961083235093984224538551893540797072982455814858290272571019828820699096043205780639007082461147150912451305940366221818383004081481226973574891281170272513978438269048153515634177618434627310327295981525145011227284896201491329930612495226822685301078987552475650930430887858056014838318413150472455000452259046817246081076112656792755086662077374086560934508555863338621585129171878233758707217718308091533870279258554040241515416117778266587863439830741444616397855548618379002480540238731608021526615803614442349077228370163303232188841167285622059000166275665978884401910740326195395363939357445259687543779031510485011276123848112449668851518411725064229854809945084301022691231876553691569956183441283674749246403066302484353411161016670902441621351795975494720518836488225359194738219560529310961886039661731459644715907313099253593252171554667166096128837336889533358109021912066238818660561894992987288936843871125901977232814741713751306044539502172652654902447554983898760605662886697039016327418845014745953369911890527824010754600618771127488030107494094017023015695543638058445419957195462202915788093847675552089892656733158107832140894547937290667000464510311707196641627881055374189320500789211411235217171300156143631380648747036408206880304477799598111658960375953063025709144989748259453869066695845914033293057500964612347508745927585907435660995032042618107780604008761685100210634093305234510895022505196480769110971802228636503346752242166654324951566514729049279720991336558027980114705628647321297278348374216780572198107562503496302364591711537643539932009859951847678038029359452184495098220592568555493630502310606064317140065694887912382091775629907155706814408610242344127363315941386897626301632392038819668687455749195518494973781180124626994681518581765885467184947485964467874088455624353475324137020675103569816055226263410544472246320972131958067192162473323204198894644054616633352824323530120305818431679404426098893332860893126082405000329781592338040358492692662713324461794347278281886276580211492640831139828231218264221921036455799641525943965282739721445665826273264494620235628590907636033690531977728537036448243236709689877054238977268176119382622488246374014338628445109756052932640448202045688419488489889508345870375276924730303599986009539366034108260696803550813534705146591931580825076407871962424841970891942816911292746427222937870505413870407449242225587101828512201712177705108989220711585692899339023126871689207823625416663207684494080928449029747280607236696455729735818479891713125090125474246649349252436801309470265182789305320945748370836523142253139869158445675136931055592516959809940019643367060492913565545243233568428404961683868079270164036839861957900954666131035964696894115300084353994288952044922511409848098407857176552757021834794684826874789493738063148967578136161094194102478344766226844076387858879523811802003474231566968765436954148685554246770021133159301053432989847631289514576462936011336986199834632101448041700761345322745252115911260737894016524242722053921459212192021188177978030350089826708024057106870030751283223358095769661115993761385673448281163162484792231648301115368378632796119727007940268113696138151529958953496762800744764466346518195988171970088818068332082608337727479993499260712983826261395947474726527882253350565602875315146830448925344704384712880131156325459883137747982222844954407949852230748678012598232327000903459024873273803948421738788270147010112500171721532736571150019696848369607576305241448331171735675903419186439169254241464833211472998356088962056369553835781128367869208529581156919721243689197603373197262735793158620345236341133272724189387269287865665831788044826859461671082424370938561451332894723740515455480507259767542668127993516728023270189717997799762669341606458067732637858207489768061183201856448836344225616953050695761098187666714036963511973719755859691730753151409330786446570538900885084491395019200212543934944682707575500529750884162460757013015076364912821711170810014250176912974622828486955203930201013581317815627264025020941640446236786072943488148733240735173146147909418057661180884753258270321454759140389693119959441215340796464110702780486596496450609223589224390513341509769040137334016694423334724589480205295853255755361127752628732611074936793435254305552098194250366273652424207998673587406124778535766284715089843575881572646021637810320585692964242035035626290009300520734744690822990764777073912437498990148677513438708645625792556823197687330933589905979584548332074006787244689351094255292469872431414670545002453449354885583789720404182419620821346885429765632338057873747400375496613888152776608478334114817077949637602654773103215642260829253835934035462369518206361472610716848118756129125865598127869255768632883240903688616956576682164012701988014686255825757274361036751046439204576898590128279962976947213796964089018289002205873010475290838191509961574506766014895173085015363961421849080999291558221105559207298901633562781598453642727249576345824931864459053538216421950491522460429549852004882149834656109541826978742131891345422843863421332512844870984428054940818662751235265020810812862843479295695840458062215891528271105448322361132509656567325446888750308693336125751084717720641301793380356925985329622408637498959814662829697370885758893850365220523813986082142180760051810412174790637669468181274593538620512504861970254104568973298719063093515311369771465239164629170905644837627787183636479424378584181515642591540632113749514216425118379050152326470747758359621642869382682521215973463151105848176230814233409469347246207142127549551807835578862114090499932594130910712939071663099093087882518816079642762402762785528851413113512457117997448179565597285268959550463551481642055487453130952262285307686843523607373066063080680373592879139878236152395377818860480038349965815038997843739138224300452020752096846179714998984178005280462155179418648653663702609492305263276347332842858378317512937506470773727264922145584966160042713325603340635804564321651543603345375326607833929550043248176817586919876790519499962590140354696155344162339032526805717254893821028427610788206574941221826005585188599973453759199194517915453388412186407793906861963523095632139978564589539346215668657846907775957658815149536975384221418099373927220649586800694600761821019391236559327748273335082104318349994947382319338088079228939916443605213562494672481801848663964746818328244813647854811163903488532295182880083440733332110315511180512893461743661439538134584889237961414948109922756924150850152792018733908320913728394872649654855133389705037682068029913468476136097814293322989415789008872087360399562915445511016485679208590205318224533961255838775154791813656611755148512940066997948487237713894771964277251103335022757561386706753558960789468638232751991535603400650466734376363572402209983852377641521387614090873166943834047077043309355942289384368190988511988372711502558149738640814649953026428746199922745818457284239023586703491504680810524058456176544160690172977808864249399124683263630106167637447495935597473321308529940696905615722806926703306105947436800796754858280296277088551367202431726518624719357988749501161238872918777347704201127072740985213265308009192823174733208227007625852535795797650025582236593390697653162288256523371996308615840401220417051605736388001954816911528437617865658503049773031486667847026286742706678586627335410584472959733357176035120521913194316645335806409662852718859101888731982040642687788384976583600309901588767432550902293395853485946517936994704152505407177914543161129149646179836241368641317233429057121829202611094762920547292293194815699079487042482374356547191124526343889930642852678079920691758901591479261293804303490948102322260089301090697638538572432896398899179732358130246277143235910312719843497796126476785886188396475705641702371015955876043091013322416299754727578318923205145367953489803073930959895705481757045757919160404841152820112062354599263178504188035946855386035162097931862636981004667323486322715715440994767009510373169726870322156204167797957703737828510572949920669633621557681550838021688694098613119283334982507576355433177898672217932591808569825495991748955403436631371917242252854950034874477015852646147692886894580495498117421458820218564026622351538527344169640167503215068112614042573750990143448422283470062985209221002282596632205945720183313943360742940761016577830835252326247095355317600671977741168422684861937038004163563682039889419379847659271460183892440062259937856694273535599959678761668784305318220367067385634383308099039359670378933740395633990561584281133485550406436027124231591503148571447538553481995499221389338555746070699684250910001796097446210264296929426896642517818491908079705176971538226015945687928437991262060070820952302952190384175808711554539410796783295167384708822994754127072428043767918642829775885370417411873528332195076722476590166350224331583723942343516790058595976377175912800143887980106060597052537317356067503851588516291121563367589594116915695752300202862084193252668402042293851384219883248614969191917697801893481090610130626187126677015740918412966943189826730043351555471956050916137535229045026028709276924752718365941363892080756082694618796663129888148478318988220604088602651030795407871148833804639402123692298386509328026981297792034937109630590910811036397213832041815988266324841548926703893314840550796192961067147122842083652623066630712428671305247531016560044249673431683904367303293996037632238771524915076635851187424755741019865336235091624914099655280827040499463359547584921948351193402742211154798744418783320012008161017513744674012837708798813587315756415972597741971459631190284722306264258035748364895782419915830904485355246321486263355384867571284519678524091664580801920848200837201265019283631587629776245347168513055061072415446885497255878616793483293485965190306977912336220544374571946272760662519466570195765808718252267875411876768568831879843995416225191704361032241563073533670009977562336480272678550044652304821002520194217730392588194300755506154124267427674169873372807565466207199068445237492859394130267880122107747748911151491804786229143606010225319102144727288980257860569181695274080118390635647744287134644387969178520192805583169722498845096618694786785933221013665772378873043554380504526153540247131708341013238657392796896007017998034725029226832370405488397681172682292061901231503433482895524366069873257199965194109957320371223323620547755099552790948440919826902616982743690752042403267201227152584272476296024379277081973515048210848155415342238241147296915710805707892102612293527046640403632754984502642934564669415017907559767884065165645859855084202917752984656437680982620543922300498083896636120324632579883172838098108966991484728974249612590200307558379595371998666604134748423238802187974430858594118576538078274763540804661013260534751594483749740121542957996434925501096271100997623074674907008770053512580440471873727420965859562449148147694974837701044284215799966048225728488683994161312670390880012942721340330649773891646234639818045482737775427855820972107335117074310510579189968138667670285261155139577475233964249539287975346260708878295022024702008744836604536013475117426562762578818325694679593481002912649312867415639497034972067344537547816340000735477882796428302675489006737295088420824631177109397564594038907221657158783741786853438470859545819471095617037360145044381823289864179386088361361925269743355357948695347142884584071394496928814291027645160420847453191734237674267547851975304781646934935224864373777584722853581065735037888150056831487932088433620329642004987713846410180770623862018329981785519497879029002783631593249268931632068906215750831958073923671423702566441122986065007841127444297063913497554711355889054481168409344386202361437415584288694768249851949457625131354068516064538802705290801864342293402581056889994846966659451293769680286766219163717104107716758220309489840219982774972380426270521509390739565399081903406943528844703797999126387146513833980312071346728866819429013921983510416901858816060469562322743214241557694214072341237508329776764068932845743678173289559537701504951772187389080758434278897349231111449076465544209185204817719335169345162957257083568413993141415616174437777386359946572216176582942470840335994974723001876304916910194443320623891582448996037048173592528389275750215008171995875318823428219100557236696290920808051470030115375877579920975705340255542355905831318538235547866705339082449509806237203567807090332518222506791929266774795890697297674379860947737713327640576999160256090493223552279189894339751601236605358645749404181268996169281885236823994250854436149946272321036657057215240655640706408163113061097588157268379561249951506655120722221376414239084489723790423316135180113443844063310398928161159405439017707954941704861365674613431324084609673535073081330494258503870783545814904662681213674202496884440738957554010197293587919263115216372389682074465390675152391314111255592831358849884496344677401113519258273739521978803052535631514918980201175316138620630521166940432648175341418278952562174167307838338124760239822756983315401379187804778332537629564480202944329987032834674822612981903521227975400169790289181443943154195619846900511433412688215848316667988713205435397732868683114132681560246305654026333863779089169936804339961064739458301832239760422017727137158455769079578460711977483884388045396290912410253714224298510765183500440133187616036186914269456363386636662496743209879357066599157655140737912621104193075191471854077066595920974821021722429272454643001341114217978472140578452737542357453338356291465321966267051747505307679151122793478103159054019157705043157694852629136592827250405759395780272704997345907709900302622107503432281019901893842981474185998695479753432740331229922971568430446359277999167754904721825139133918850299631148012857345098063398651575809302355445612800366936855593307104212537220773176149495434742085320221349266838478075991451337385689448876961925875346999224397211609636119430356082970097801643163064772347285415816528616588206204011564361697055886040308233360485491651180677391424674186170500459256543828101802030013345464755412715676342760522896142220364493023799677094327709680934360890295209194308056610061580885378214626818841434836849880240065902803526711629158775230255452753945166857066961131662394517057986277119031243331065741356244720333550368885138213874342563470594287227493956449998953014349362218122959592028426308048994290144868525673461382648471935245291794486962571262598709431912172189180727878269708976227532380514631894048762152131292156537412955923593877484478735344633152367404692895989513420926246788294405018588732893918077144373430797737116546091117769000592517074867091681498033588438593264400652827276796532574934798582066262509853112904015595715712197266046690689720516198541721225350756155295169411073633116542035677950132577733891529600424086860668328054696086302999584265017511648453755298239166816760074445978759939386638017383507490052825672538284626931889423917724260357157244247117977074298259144094913071389252089378479721031878741479768093478792248231797225161306912784861367989235787445987976626732156167824718903284562884218618241956823191961587931354327024956043999014742886090437483231608636924305760563730767744820606849998603326380827994439766674278927852986764807270452564738906018420575019299069639876033575435496551022258439065115561292325213467466440229368849892246773299199958347814804056594205233395689008847383586107654701676944915421905764814288905199016558718371699120187227343275992708905309679082206890425219271855031454099069767594650388495933119768029016896474223670558310265983300103738601376562018151935264417685347960753880385439876139738316357045798262308032855069921649311915124209094754571240544925825653406278587438369488369148330962274468660708103866956751124661184460230658219800567195600200258938347150426893616373025687534907763132968854382610302484051246359068626405574587905343675852803277239552936927677049385219673937516475752492064109341845185890789463968537214150596886952749091233249687870322936077624811151596755996335017981219501837757687600214500179160670067948081751234055197706526993501344843315886642871385823879659107461108676369391729143882003318302724220225727733352305323381370440124716072919037326464716030119453090966924635667618186748692233190094019050836701319841404577665170760074270113616369968173470767510505936139826912625041489911588417804084008155069536439012653393954901457169311923570012327887344878603288879701194164458052402462484433665419013788774514230520348295139394070821405367246878238409348370435803472672853511565072793495145495315193677459981951603011706476112347195541303751038787018251262894666502886093115440048738981824626835826409196716456150217604645061153124040504657654684081203857182289086163473921635036302345381146060620587529267273216751833795308147719307827493740085966909055398791674081937986140132168318292062311041758941887751681174969486242667453701276310821642644422925015126185000480912905825207372010492412438911065436856994141490877780174658764968198044109277868622019851659096347170133059415147068929292307710244441468497809311901890363047639444497851618954625155253737393452233002612869661215373820458271932062520902467191656816572625251259533523860642855417433648639936107631092900042357078136952487370983975157679383049380754554005007139914745644669291879488662925925157575217466975847996119419748255031811197550836242359059387508144036325432859829439521114012342362397468028690417951741299708155712407828345777121416269905088902069304833258278299470714574485382745515534767140552271549265898644078279966446905265754970191765825807786595066469537255100043246247802402116517947426580080728513042342863894913602340649227433455497636222922421064237396472444158323245358730833214776203376035247617624357448878456458549442609966171517924752492688621498180055312598139431311300922130929584946789015105437690125213666818054657982758557851256050494512231821278840803680462215371385215454586285649347611418743354861918210190185451843492971525854131687258514956182386501320850943059013920399180434448101009366866060920584808932675516472651745332536802360589771035847271776607480096582146880507507867597340465691334579652321969020780823198629229209562608863369621811077752259108425044515839915147576555352508727760008803892445990315421302811660908093431160499553890914075011511029048657496376755851552840656497671130388180515495282464154400126516174077844504376857193580877852240096375508877795529485476789122835841650788194180289267073901277485774178795270868613202527716614340935664359099308347622487238487475787181078769196034912646315484220349478034245146681820864835206813318651822996748398278666882380238701061272998173372848932018340215495881473541040958948152372089506435791414473953603831730056127305916957114132529437404047974844945506050148136383510560130421464850088023212351373026661048630968468022332913818611624231025202733525693785700406606290782824241731665183380696606587330741333443538546928346218360012893579905836601191461136389536620273770888112024798896797901565498684064101076411342763882400984224507098529887995541986111669406764104542005697194302707363978101224990363305499169576444025184666317118632400147871647866160055602550016532652179895174874414601626983068363895644192355592601800514311410887243597821300238979126633226213889856377765425119695177014240582028265572326183834042677628766751355440296200420183023584738479182756818758478988881692664890396320532252979184874046438480952842094884461671563944512418558743054493951506313677746873351604859754439721899846875300054337765263705465418253313555087710063096869414568779096655792025258284555617165899027789826290859320414718821688658418235240886686470634727538343457117991000585242803320689514452859476648781393218295456224995007559087730356955445410828507490582553682562719458200499040765775165685916474426149964966889333843794683098467567875387589452605217764836571247218025200875121762633518248159698679068698932255108343781995328491925560106397702284795579441829613535260938874845590781392427472612436424086470296806622267978752885663357530555974853648932129587006787249430109115334526036787923985885935739655214394448253738025238121878670268527717812397689135601470615670362174103634897006091014542793455290559573523757732119792510658815186670757808739820244511062102745498098072386972742444047304984902232759199729877687314279015015183744024136104779926066321499078851903323191632493300397678349054218736431530023082106437013663298575701347732217710933604078781768734434057209755840466197525344977969761871154755569133463004036367813609255048208734940287016184791219978927536350562096715824742502268402410649204370145818867223926322700772110303728072867101657799879103326296209460694998166506818573373998352841273490144735034865147748680217975766083602709128302963059924915960217755408421142025867378740785532486243826599190310458448655535773635061003435972591354849462010316751236787071649988062860008265029103930073403109175175596748404910420520843457905941804496083918682797921607083130456254335971161160831630106525454312809347912128258015531945181348789296588738048914972300991334823396031905322380337160042080915013152859866420995798681999289170507164247422684831025588809933974230062263439269754589863656915008094115529441700668999361973133975651509594663251134847429448619590765342199222649639389994539230076738433050371417588739884617193367448840579631173261895196896675501369187053083719676221401539548099134262723847597477339198286998793538297946257253713112739039882803964142822907030532070743237885211041823370306493902647646593505065901957028839905191737774695447346276702098779631222856945977751057405933242408184206935830378138738647754382334357549586747800913623876245369458842512459941010089877883070942300134836257948485026515311791461924272505070190414208490978183464315457315292397271737319613790579427489659192502937655342297271884151313916899132056270868499948153233958869286785705791249563504412131132456594373543284567051918201291102983624797109350781636214874432379587271721442731030573122746458199913453114657300333185626778737958187519416291707729675422704628938603460643548376665555570937759678896560402244657976005686179616468836731168378897916863584608765518682970737706840127747740720724712142170540261061468490415203903999162281100631073808808703846148301761361692974066531625447828272732675795957363859053985473222135838153103040570108619480963977986887834739593510048391783356980784580485569408010885673161351034945522050111749112111998898107955207058827691371876151754957805069945070034388259253313903476057407577288020959310937541373804828243840383461173934875790200168385112698842747920259169425576718318794605644961364101713189616433896289026114781945576192603510746552833127020850689445967840772177364615650473629164230601934921215285360185249688801928364663427107820542931217973047095876549408089544156313143445081261324237913887883945822555879340264474607444620373726267108341159845309498554703110008498147211779236034279150532930605413172151458644466838371454516267881952776961221601847233229727187134012530031308823248702654728083862430705610993813547484206258566888689900153667684093402305835459645043569737421610842717054639328311079580681746694382788106949930178657341787720591461750935173149950054378575894568648621403159568660340952725540090259451395090512845329208652018368729943975708436545456986996971088787337591957172866317486580923850278955346200322109966759243934232666780647924345416796660285143162621133367190644648302899431456433532901917186857913937045184279381303509826083760928888521087708324142005720189120987540827103419248553792351812394115963066517145886973683269628613809250217088419773929717670483579419816002555047505864616584453378260417942701217087396303271738791908347360718285953847931153069983499369981482443792322119893632422745993238943077653690085353184992085700118634599374919953015249930735068744083462854693328308382785242296825170064184421450375412349516510577556409718130299922339383873458145795379768500977826414297835437970345540838127492140635932915041115099011683365070253028166291727811412053756043859584391248946909230421672230698432032742824472617881027268595355731612697187140325998710484647667934474584923779777659410616755328279851251650847943839826085907840935644772969499639532201694931934761134941406325745433489819698111666345283621739436854828235412739302947725569589878478625706238330942491759918468365885892307521690787327069275936387247621307667658810899670463442535144795230571032638388660210755905214121014160056624129107931116571496107023715863312884903905317109602337189504974065911975719940034621592055567165306472920456312302010252035658658180152658117647926158074808548822939523307533754306286020694210479561706811047454925902965484325596603506940265144652794677195622605026911974628265815963408806698402773542448942501692759555527656108850850636358382540658577862440958161182582114293553950186669053731543829382181298916151343051379016831355325258817400594593742951440830080903167204484296670897898024668834182915649467492144526284379695963575183621823530447333372407828331913607629411209687714169668536944873870537285578013199192683497869640434176327723532621010745495402849119760572216784738282172170974591753061498510584806949183258798613639278108523579731971126830839873474816980247779103156833267366082078811081760639394856701302985399135495631611753190432575913894666011197338460491454773655595751461011905848646438136060957597564866510890665604423306704874449940510484692646640924985211097456031505005309480276697409964236573139203501370150872455542341760790242656831139851440239697753610794082251307407511556072335871621682788985964262192273433259347876785423911386418416891410086301334893718492910666306943736929298440536841494135867086809425537181332301703359270589674627301577485966298490850952917836242669116954729591356701041021168322514992789831652807412083651340490728427338813684402199002450326576228198148106473579333225802958341341478525686937880320444092621174675770850990406193508521301838790236016453548731256649332348490740900286882934513504071452901111610743551683952041923388102169220439782580033524816808198610950072987534637757659414569583346284959683023076141545938338647403577865376114535694040023866039715993996669790643177860957534596062386238065983861727047931813572563664014334423932671962073265717318722675247727150201187517122818569210314030435766960222686249601795084947265407603637750989173571613268623058656748513334192183919893499725278038351909165281302640556722253777294126679525008898480882303655213076187175313317036686785440015002745884818774044520413270218184203805842181489112993910262959510658274538569323826068171483742485862109181972578778066969792202588164131813738263368464020172665485854252123633867074052151254626478210194443029127316279663681220219730287604295888321756648342034112452607294282775286676628459363253323052590816443489593934821583896099499769612910499343826984323696573025391767690511074050088808301265080103936352889013947594037748007299803228208822654588214346148070012855548689677220613601828286295518616609429638848856670483911722989134153760646451873798537864740004359970417412907536345618132158604618693739468726083171399021583335763631133560661969276630624747077716319387620461451824200453143532858909202697209891487214326921958814754697575873470694660987416998477432730158533292697519970408463141590060274293203617655166193810584613425261940485119388772164823623473787344755545112339603161806540268974279852016123616527318445723873506122572608454425184042615143563013136629553298804834903633094429525229785271453265067248985121136786653248916437592652306811121113119647658024627734747762370461534517390587057879299137384302229404349013842043965465306777921353104474639349488160867532561580415527505166622804436174445164657600895021406294891140798058655524052403071167002403024391988268349869340391565617820088157043729888934796219736792229088890147210618112695932662915524837534362133667202723743413952461559132977882742154873832129068437527537029827096523750448418959904277069015051154855546244491080982614169495509265665777654358848881262372161369089810803446695428476067835708710980632465263171928107549121468797727705033885128973971137478205804633428521123645084211893671528964651339415757086264604992657294596263418680728394974670987721258325290850034894237719811743154986617010911362766749732880940376045534425845522109911064866153166191735089774948549138271343163139462494190173992833531840841925657817245459397126939780998905927533243327059387114211632859325645117616108222379428818998745069224957916032436777735858866081230550333105690962181372175790665497602414559910502740219043087168301396740704242516484218809565357902574102223159663596381641654398539256353095799035586721591763788108546474868609626068128475273153475053942566430862286557388700749429422065642328359446577562249104288729902650372223513666403395474222342468807094487453988279766227869521520618176522666973846464322425403581188668996006096520994039978407053794369984307568220454353179670716982685415668942007206948923708599211825362985728082931831734647061759093798592973901232898671782368542251589132258900471632995527570732878615193351251403049183956844442558234693796577097475725712811422446660968724265857156424138786005806135066267460207309592644185732273230289542950977396061662525638088416141695582648687402318898631110981164462561921028851090198454727830646216120875168180288086532893064558432384477569372003537870090633664394600153746639733447136239742225867112039607380255639138131728120877812491985660325399290515730886800144600894887541143376348461943059805070825352421293507902524501335359386018420017903277819589078009445423606437412369091546830306120098261733025406381159196376093593638406465340885622401149428437980350918519945109470474466338917161051862133549532706867316313815733021018383466919858242626142349032921322139405003807211923584001270602694955892379396069011081308397457602434156123084575807719397227588432771909367023607978602256249841574127082897013043867558164111287272741163471189193575998151528133670246513164327449825452980913775485190781305969411208819199503454454615715485520297293384817679559346076370783642554165490296509734157411019697312083687308232242502517489879371051742493597723825586041475232963888250273397350049041141792161430370893192053406744669406663301593848097614687317921855301956181746863125385729715897215209281497505651173804227158991541797675023214854540952065121803517596088675428275690749597621489627812033557376759007233762082751445314130073649416411528599108108278786695196515676867404579585885414200678938488464004745064852605111834287092863777648016452400532848183427486631341565677685871027720595804738589250672814892540102907820981067188710446307666181127223373622084316261058266201447393429125259793861654709020051706973723753937587206157124841021911966583207199309715299709704654850485731128247704889476935285611995251445918456527287880609780174248170018145864473232851348828851805011600633486429580076911389729340066717067424909897706855689794962802396281216920640768054184257398766562609758572413972937395978380246839147566997092575445876443248573440114373165928084388180363163472462984608505897526336699570509611531088277715687271709264619046592445955762057323094816186073130289143836316312797220040526310710841341756936309638460251777598685232552761383510239942974033984426551930806833430265835754809644937219374765576506803736652595606194835364332956251843670865305957301162543019199775109589554767764439304876802224740089233726615006369274541118303881729109772084547581778408529041405229410672382713409528141850783450145621439124053218796673817920282364456349509130936687792294617479939309299592804505849906657786661341427574611051959256639252251709453460866094993277603214419702809440658663278200635713245643822355485236847465750668693292745361891195865424344415658468329660382615954241042014956509556173671407877183322486702281675219628984360218516057176536207671396811578182188211374728764735477807089112179519760850197050910999831904617704015217740314933710059458956628121214248149423846434985449957602626838689148746663273951584865191422366626694798213734260000852028783382914023511292823732874797231153775680543543804948318673432299063858661186696884027082197620834266398595086063849248498830893014940195506723392662309187323407828171281337336520966711236555919231963736511613118269605769598209032759408240199000409444806231151695030508748189977034906731882119264455765206526179849453079441859982985667347798572640289186072565003884621056140337105361619519182279200606369327743526820768541430176639070863943498819426500720646716467766651245487009675195209322834637736291144207695252203904569784360352977883205365426595370738559876351914931812085567361703721915078690961898205742198540644057565765918947509283199824455674418618806945166032541409634454992859644210862952130486737651535927010840056206841155184478246109150716588279786876894432311957588363842725466452020823147690631598623608929498853812413375418132614778736079105798221375973376720669377519514445704664813179811406036711198264468438426509857872502178202451083409563508772086008974421546383861358557720392669620211451148035412362125968063290544313033449013942121863188091956335367964516221504622298410012540743559185853977605798446348856299994950313334781492508346540745830963398934323847001484307218132652854749074618386467805481114288611195666464251418848814619253679130752213351550004357367215522079454562774209298014401099360215040595713463212418486505675049963406594899391154772218683003891116725625580723508704349533718552160396073936416807822222769654171986863610922329256327340253656167441392200699300906745951549621572428370118395241086304136533638565708740945426410473824733729167791352783214513818789139871006428898330823300747019141245166039158271753133076918821537492140411987295908809748386164844504558224116373266505726749967183982812099715800680813116341172024437537951659897496484212189714421544528348339883941860849410789548389786645353877601705887401918995702989334409091831886114366352318346717522022219107741686789601277838948857900784309909154215830920803515557947482694786956941870298189690477992868441072655564026629381044042496199580332874440193868957768623566101090595721297963597842139240419000955346668629925561543638619604944287749378653334427104996038581970428460634309646909268681092100385714430038785536041008438680001656208415370336408954215632572016657820819993761904462552194627732900607281587654682507364993498762060971586693449611677286016186552474838106607760253260019608019841043756786553636298113881898428616375219883242672801491390911734522858883736751603966056279226057090017922667007288913144982202797723723562626172044797032805771192325568141940114054591013598183486927448827953122933390343863776108229191689441796983346722897703797793499919974227624814411483821317202370965571824384998352966221565786675690472934812987899525230039689369476012836019181057541420863606017799795358591312748266126281417350999655587537455579275949483328508140886219247778083328288838358752857206006712892798331376515098436605927099246828821732414112077821790884999080978009452372014956380437708071565235206228528211691711749413179804219566160820692830995806319728727505337094840113296627355384086142403634012071819154215767542486481317165556395101371616496931627590949416996733850260516066990922670556062813582140925749412759541027362691323557247633212713914136749688799065813808213729755665981133618709950400636718559512756638314681460590928708309843333665718445957551241181726746819466038885675556585009506780903135683929964053061067136133245427653850401517170805863077756911016970977014672926312930183923072907170055747534463615203553515293104527865264562445678413582183640697820452293362859374196522246816698546707181622227463937551949577313933050303774591807342754638148068790126904616385321133512408754900674771890100106677739080379401308089524045804651670969745346782732641302724041442677095107512541719627544880439535342018044943061360752675678361369282548323500798682666584745563693753689315105480022197434303789831504310553667086045538535469178605981772425667252610600757192351056879867799034776825944081681688475688871281272097712895505557358825531774615982600439404305630345949425197511550210544622728959732537006046691234690388399967771432995142901106174348140890919688087071069007703682584489625411492390833015613183151372173095327578285820820198237995468231132217354345950272273195917455334259743170041236407536167700016547015983555349099151451634267123618305407964187091644061196566000573744297912300371443889077425366758351526846064205462469879615947432818604195177474357283142239764079223662707880414524839768318339369527146012618227006286925381127728310468149602691561376841882650120198430551163626301240899274418560915073414113855654812400836417176561536681285480115118046380813047621013395619811348750518787947484370961494736773782178312530205026333832297225766659555356814070087065450581240171600543728769811224873830759181111170127922770880644481750813925544706244863170729064244252418453379331623037709417784933810317899271186178500807117934193637678355010421851457590126289565141241546846023748894310093103956673379761109335019920965298905966355731185895580439565810925692247211898633321411647836818044821418419189079332933097994716952001016450113434341775693878680348750818300858769609356006511074806474183551864455090415850781101686966984937375163995352105380315781909197168270475104812524832249094265512295217185098885324529295904553262839645720608675252663377903177309421816787667054487860058767742653170832345900532703927087971042652129405753752374197366340467948330884675715015445619769028343646569846962268355365754985219380450409274440635142031256125793196994507064177607141750348243453286694552004036758315803322641523742718719758676674796217438727927771707278717161305252035405573561399377518859447321959422736041965878244019655397088016893008759561249024360738436893210546499379980590295933781337871566112367836383568361916830975165186144945992164555331677824393401386496858629775318698194608920522100482777790386686097137032345785305666679533197126541993244139470955123958018611552970366842425464312416674374376825872112470162454631949542227393704230987351036459020021135040807859934253793418367272521762837125768302142321019222939471704038757573427763510598718422619152492608788459623154317351007456974350220528550466621886830708503790880648422739078863677526653225511157386402598212982262101636218249611395903788367349504234546583041686316097461154167144031564956732541623634452533755102819513966097707287278823445445112585976396477898750171437715377795401973463515114224426994525246002499364419366588038852055444937142404868134241595717503821141763780124856921546883627092693552219834423417521617551039623803134580112257783068592960353884304113733702999680652283109757664771420617098757583092532034503969049229785218291201247860704802153367181143824533222068116591166616042755358185766179150659301129941728512756457140753258561752180736212332363366521758645965433669345922770794808912429088175411800837059830028212975966810624863928279049863215010843285035559198787316043989430993267031255310468466046188805293390222581387462215866652729502611089209079894563306329949389740150954059043050955540952264706460141164174685550943827600819595995160507761070339275972987296480417050704750007234145034166078645320769503594758185524586181196050239945476571927346210611081366473672415122569269802412301625432790014712924340389110389989788991318327461221774201940418433851311555143795497847984491095311004174059244859264689057582898302633298787343538458994430557473548903876355811146879309797232818091768033705183062617553638374697634534676195662165796164536809614768793699454626173483804267774174229823811392147781069890257221752878046356533071274047189023524658903804209943507975642091179980113595175965618587218946967013771714388230239001299510706004656952089094000305069015573362145069884324023529354810876865069474624404470712126945830917968337681515185806801517449055971069414612716348227467484137862957080230688473421080588721807910630975931688479998980896111365675317622709563886992154619839833634965011313799032986555466571558161349614926055098983081305456406771511442275664267160055434033170109947705380390003420863167739750342291342379367419944805277296678855000838754863662004030294295246345184093505149510261401608414335074882650468126399843770332325118187042943351443873710687444535525369113857499106884391782235633348445873492283000059964051701700123284049634529181525669435377305418245441279766997979817296543931104781570357868115284501718892208363622431416594697843943393538262412277463475352017130822759553952780632583780348209332461997981583077150075097067464348256610803888758631416620947434734486241557164657574934204722206292920193566575297563151866965958898597790280647434884956703755755096417046938828301668710715636772384481850376464969194790537351385510488056260635286388548029664821064730900792113208285471314729723384804185894799522642503146896697782327221414748098034230841515774652654892560287307108949288266120683186240884507114956815266121728046703126225799906793370676580865354995800694135098075111351261713314622599688538576264914554259558827759127506129785395210476663121666015825848649393421213886216543209396891958300001343902425003806028886612063289440308950972661811336724967550666196317679600374298947543754090642268616664839802524299684514125200415555336159721077030483374765341582500666085133094527634267286445608935640483188643223950684603040500774901152265019595340243897431252149955108140344579348597943187542632198051511539291560833702386338341842900971480268533925923360232712406405554038315419151212966574767496111142668898556894467290867483530832386197510178677480234540536046407089504187650257459258558187180540860745113748008251792552784192062702258155525158476156126757425562813370240841618451519994871803116798067446202074094335227497228796565741777113173769063874138428022896950267404040320892839522727495494062094519415457570057221182952532858578166258091173409566417759775714392636200405415418907840038929781909316446332884461426227635970969498746768802028617103129087917562402897847828841232382081674436915236642035719181585219139098190224914670511327152163835348448690704807161835563382669418574424461240730502081354998555072637266755565998992347103524071016431407241846669317908897601412819815695443005042125774568637999542853641765875174104169929065011070090891503116345067847665743835239825246194128603063507348551306471097761095005265043331123195948680739224615292253162734263554999102943072440044166147356423135461770439178271707999274883754093217087978275048047390682199594007071716691689573287470075206775997388229154978909844371854357233263392792404737100910756960360582528883625359515715277738153599281639180467575066583893278044797591108161520085932772467813436202810154829029125762489359379703978242513206586985450273846566796197409744498261278569989098166121580233542278578719104382614355299088237304999357188051786599507910607928373014993970746782374975868460305812397922011660320513597308450846466103052402093915754951522112700824868254635637465909455893037936436390006857878435301152721693490002753866054317705434346125119255839685377376859635688120986023630256069423515934885296097836669025648089574963537996904114705252199996857266588737781636106884836665549236435774123216166268465610433367187347970364965140864970613985679592405664092121370597370734326153926328168280214289407482891452568768809799249520588934542076037516899572472388570520492780958919310129075192343795619481333655692131642689212539862586858576539195357000587544655125736858927424245270487591446336804904759828467798871926588735044081359402712927189159091576340267171332210843510566965584776723613799054102444899627096785094451077086151493238539278653547740455191070640443668338712174892602613074505594860151993907718912839747499808043676544139724398021384672491259931000403603062285266965596319685186887975386547029516059249058496941188083183217830217673678136304320993884692295644312849024647156893628735200915847298840125209861326960994256757677793300561361093136071964250205405606142225880075754051308324954342738618472478901532013165416907921754130956700833055507858663138843320761086085818028122491698032108844892536608189962240633954001293929817521503430924927407377109954319126688608075560203322598368004230138648468778785621135697204744502511340893155825653789284199880029465142342903911385306167302838071215911592687289757072924664922381832968004976466945081146188398224961447920102577679361668571815449382285817562499666687131019705454654789149181069579538603308656722017005392749630698691245413055433634780028977872898948656545959874814156098896616952896372581364275233349117053561250936504082918218790362512782986070774136524231343738647137315938457154064937315361715794817963796116968253136212729481771057708997904292421833184524317116484510036386041543511158221542467456388177928058601725357187405399351235030747605761048342684257748665569411909610104348481034415432541918562849631991314040701689783298216923730107488642398388680438763243888851578201342714477969404602272982138466956617946953541013459864391023423619477231502477423840080053912854131554083318662828820236631847433169733335593315281909786654621274517078624885831606990715644502001391664655586713876685876466832374489483770175825131962750624237396619182845926808284221619649668236618484637533947842174056149450398567825724696470512418681756399732604942173653881774349321180443109567148793365005838681683521540617485301061791516827015965897429173362022703764623765103782539012413583153551424823770108349314248784318089905983764470463895134068617754706610527059203862808752562854530784821308112408542009676076416276681072981640414282199996867790485180887896413470814379851637705469239997365060326907439465615567324034574347551936814435017640772470996004919168028322792800898180344553052008728580823188862106120190146959939733913213892317390085119138256275185388933378632551545846444115205305490267838977835706410327805973439981673033883032031156380481492079915593929744354122690506370467462661342612034565794979646360731791168901421759900164697413612443563088170759248236891542651382589825519711229331865576051611083881112404799681388819042331488952684945224069646412898331928531429246968131269186393572946161998695842326522154765062323270987409996722752060511175395701904556984158071995260317683587617691407279784198276835900822613098196799280339582770819559418375979621816613502474555365091290392401456851679486835462524529534206090360375962303065818231264358804859468023673533893093237899119041587740218881967852097286986422857529095703217801518203998831905691994672856448569926122111366090673016615631888475850064018845874909951876854907471354322604418300081291350957024951373447410714829457871832976840191081223874145151284735925476153565879412921589139448942889739790688326584958956599269707488932057285137021339469228366463925810554698327928113890388961944200321066594651520313687767078790943383084336991324885974293152765268826004199043883918033687600109409077583169745481678406820465107402719656134123234739973839289263573999469967979867343535404490833033400683812958824263283678724536423467752562818287991041631966742124160913969296099354587789540057423928645792548405506701009978192994074731754562017119323372902168520438364862828573813512108061819849349335480437075232359833451840989401061748305736610239275286986053943789235954184015093894090775764770804836558656086851592251156025814102919346433936139571620396637939920558895037130757983995196049919250334894271227115924725099199332163287442440417696028550811429879885816780980661003155049696597431940120402038248364783578839274469427089100196482697782967218328967069926096922636759147337889804905407836288597149015927038780644997499451409932233536571168888842094614973310880370455110355155187369873671889160380953723653896963513164616622649737222444664294106608225982652993741595336138166562712223686961863157989125565932167918177569556242774260146584323297604241572744978189177471110249336266032750295353903743821698465622027160695619026128808657341024960860977173136672941209549794865304884961502393933188961621693546865138690421608488365114278529990244758818917406280351843984035662032752858057586731174097274497108642702983411238415902481220004259150387066402355345426427556680451587474131151091260138628922672725486525629721847198178018624053519549084020309045721176602840506739555262621623468381090847258382425783431747106820324268897163418507922049217422649310459316881569060868039357988061748792436266646769452053171737429020436920559447552690792444347737456524398163962194455934679491786768800491358859065225615330731341551432842056683112011574456404099439354934913476062439703194753180459744615647093475222623394547717047657783363188340932238789769368728877521276890348942739113297950951245588856439308924826055983039854245524667862500758563643353514296974812092567145206779601691760508592956882444953045193073847249091623314962970686893981650638747840718706665215625899883886389812080869000105398036129702352071662824697859192394209624713213868106177142328565113338802798275624113247387861663656013249687014041810895808214567453271246014951373212096721668144919650592153662659792037943196657539203020590966563900794991344957489755955315536364125534958606020806875014289216681163072411251920600223100954788278757400014013021331964111502441966297197250957289793655437748948142187132997309771936006746662416620147965760263478235893045343051325187002034945039451058794272099808196590749665794405348764916380106717422321766801576751797128598504598072706973300490248517336508429344037812442186154863679072223152512814331222346705622325629395507862395884474493527243599902608474156128350924763263461142323536086000364540955519522820109697837831408458220167092903298005278984333056879008138405752018357418275015777756321254476739424919811220001772379384172389583657997205588471450278152808154640290092960365469472724687230892215097753890863028479340498552026729258920677686948933405260714134480812421481142436742503686954028338465357092673418611161245058676174783648174444912055187445691848155742839964911759531864783282413470261064835477288979953463635450713118927088175972773181326575555997795909900117225887532885053826531130405477879066135109101086996994035179672256060539219263699438226814397198894428999985146574936284209273402620997815339628966419337829180475273055660410499198573970035681634863801674728271261008982562175930058485708594533236556666020183845827049564459156091931775430649735493115440862716436239964749111990081944458031604214749424790500212236997281460725145982970029890961522874125600514835862009426115337017902007474356780378522170619883765729693679359791044925122429817714467122203652617790950243108890165178384611279831962359162429172506172030554050888352898170228731820075534683267984634386080110142995671177270826065834129064735379393360167471465546910594477833442963261565376943229677107131828024216394437696744672060088109245252096368402362051594702925758878738466703737439033357489228628163690976276787233178527054357162020273895418286634834570783817856474754334718525428695390008997424070614789680885150982399167357161791102976962302743154163363772978825836095951379110104779669883481700618451357495690537163973728659097308610166256217599550638914752078225330656338808460557659274191413293261662710611236175337061226554494615390032393164277201630838695858374778493986472123138371536539081939847069326059157345703974877588576876400467835289544938031445327141535966121452904943104398842659317800030539802958904233692912757426739513278836117289408037727740196873739000367844723337549615794545067175534447137903310870474842712769754985508524059103652962284694905416325600909233192254234366492158370208797964293739283749674199752006159727351166146074138218169105796722160926663758285104107753681730330878013061635682589645070389810344613851433303560788610291885410418800597201288123921705552884302560401028253718749712784202068343334109356040631271137847775511948354816527267454838075972114255795271177192726470982316046913191662094455769994125088817408770657523281047248996275599030713108264061077318573533245425450593080143595893691635740667439041482061694314384441697596964584217151499647341220434854067619620217087789867851406772780550516578470126616529190939847575755094195671914028756063395819949290351772677268600308092293971373438309115607944397910519015078290959710883085872198070694282574003804177929635442902062774692937948192884926401515248523035940157766153062288948961171190884324792024553878907738477416610216385204554500277868272683632970639825119130513298643154800971390138714686445333922683505935636073888977668631933657262440169063750939994869965452731955620556260176663715878803800978451087122099116223619155412630979355862646823616945331270714500087332874825270464067780056382149493135461667140905599857355398067185065668394762809057293380580212676165391518478975115862266911365909675921915084314947260584104167087445801760421046773051786660008255018492478554454717151741713953297796131838959414018540157928495048238545384196762813973968340934132369741948928313010564603869461886672381208908176295694364626436747411112042091395519456302329286440098451762777269397489243368125186909454010557490296045661539641320431410981902587270613614125961592314852792608077051430092802229138535142954712511241372031821510974981498419444679141740522280883495582521464635354417478651010731309342106990765681761062346976500270108121849708896320250817215614285310980721674414449771961386161318049941337234334522508228339252053292595490376129420918117070797134932929159469231585184734974724049243398387619040410019830740952843362367262558725828758524929713797043450771179344658808211012452348215158875796333378978703051396032546565218337270973699183463877139358639352436971868607821537274971988426535883873852390222430119369387882664889315431474095476694154555125247439942967386234265727321617394346147738025802693796303388814131361322805545951382320749693577407041946811190354965421901917679070541592426787640117563735272329570228426623673487960978203254362400839161292676915200207143866366548206001135377358434836063560210014367459658217975066073145320384373869766905794306553565357053695139396411404277610312459840570403547132255969478154840905310986403789459621065603714836899715958659785072623203207159620108395205702783703991475865150677165777612872217367411149106930888252095542309123323561677830712576300222952767738016690595061304515327439716060302951794516892157583673483180930707036658788769128594648572751174347262475364234217118661892163406221075492886841740341536679819627069245614941450864726101195336453203473155498253220070323256561311918841633935921500394295322755975127120206348731019230179126108226818523928662779942963839199639756395409129478002278902642098491927183411000962067192799655922853197290022143316752699394947239859523867393521075018522055288527433155372917223555515997284926989104931890542990902709093961145353923496571445904085452434971659483016637973545791205607198381552015105504084502933748069589704942183127296364793790811261645823988474192069789906863076954879637405422570520889341975041993794560632682380375219538939627620248733668152830367014044836080786297773502559749368882263057688882355435897345790491367146709495217368064548232254878712718566574940230096519399889410752058448666135106447983862551206376236941958908911000339326819333463211940748389558520182309508735804925366455986025330089401718719530922209661837196591042077223074770548089393521908711082371213783654847901745502804634951501439620738080368176389724101630988195395818278909412712685117130721062228849511882525873533678424253306388679947167638737938021346526733529364227345398718062824213162953149718572815577941227234607439438560092548966676325327225249644517546838486896810773599747889792031471979356944029763433018896938574050450652548988100924177985521807907592755540297061977889239137246271781132188109689661267862941466956840617083372533200955031266932843334953353634691025890484152734037255646837241762033018149741030364735263324248475595214382206769385864374438841410013938156033877704308359875711594679976897250266383977210785233564693525520063425063860354268178544983231800843914666454792952975125457732936460598124326963456914853348924903071996623356358706519961994963975373651934631932327133494562007018086655199727007927639024104584996900934414888410991288691195826086154528075092304680104368784499140461909002625413246829275629864987201669721941082256768756243760304579144386067452994090500453552954991463700200887264770406199526908313996516934425028442648739351887954875168641943946457556667832891791129366573583135470645401613508257620013276759421144132274690270473791632296009149457636271240087951853080884728679052072985532247493529821688272472515268376671435583781051256943815446307280249545424518457040645111225384944306254210349939222107551552337290741018539363081376482015137168000671647336172152642870265332895994221479415487713803956247916575127217549179071283148260558456847985027346257883374579690635498094298830639315873470554743425039586903488666056608838884514257060951461020077372941467248069143342657252824756642857380213809634071473500976633978857149974378477363901942982693806565034450112506155833823374168172218547520698905365170742757697803917421674182798829093814811171310306351863159416137276178803978406871575961927777653607652669863040255804501035924915603554889936247996676472804685901070720796089052445973511709552183468599213329304452458828598680094052868651051415505417639797767241709576343583896321346000029802357412261671753843566809225968058100727506568364730722120329578638651749021227654811164444554705519809647962096153588047227930229017889226627634138149981890812915637253151679067241387719084112345873594145985268593015018398282252395716083787848324670570617421133508481353133128353231763659288612330596294165498534596875043952646935988555115738150028033631994076888846346225185433277561361445478293543098084628947515783581838625927242079450314468202644973502119110085014721081308036222871435900814100119213779130549206439522858779023693182882827826037633394611930329214901440240118361830034354204088682304486545234589298487254420831658710754817656318701970306995975148488191883735329117040583942081414479107727126673079512804177156343881031811514863644023598499359620999397640042631259662539089168504495243440447203555614881259870930086967432574168306319076089218057792269528448656458833662513559021937166101163060143488516304162073069162918249580652346687490356592359296531019015425764163467045633769637079476909257739334687507007642584096702206922411511544481691269718421887750017396649883136439080765141427676094230775413439837614986061640657440625180762533331837193431594715804454491186242305575253909440828303493932242955650690437618663535339798802446659012899264066168396991718307729449794943969388450363235304512758926768200995113304290860634654385957494372694160896221674652817221483799320613637375875015541179287977195722783402746368343643191589469601608151515037634960174499656675682118348748036139565322628004217182466261127841030320408050021772461094087443953511425893456207127551486055365542446057569311302711459145677792395510250573437914040863019565774085227579297183173261074698686754315801698372883742385500910814686547984779229794533989460049366665901218470551938672008804373305957414940656586496529217007825592709874661101866362829684470680088332954877975896335760100606048547600546942628007047861104400523970069083979351037197162020121866971048118095721875211725254483688752092162331280567069130539430103723294598470027947326374305940336889987283240065604447969558033017037114469692304050676847843174425095181922241949799745135416191620833482461964193343581049243347109374679897363879995157409235727481886384881805155500612724770450699015432080689108180387882369928748799312968320349561547518035361212878651434148014294477988302091192993618080722997945687305665125192136072900054463453477399645026938359912308905090701738102865887393565363524668543835585430975228709684700430942991547919851687990783605009699009970386120079745974871588821396538892733979506759837233012123598150316951639152912638686024066068631910847191465448585979808039074856008467944964053849786953982394710218539695715554612695042404848388455880726213058533399722321613804312935275732051339965233415920094139833387363322151806708675721015370664537707624104928728311531448539026802926827278123759838144380406243102057062989639957989819313726122712986340741982001436405281264376906241890931788056935376543679173480408987448165772819270467403341281060021844569419926182509006136267356085793159131192126246782631998626882985087010812087979444503019550248484118595405903730322780537687994057484922393709538770491662353470290490634901292991339438758793483532924236291566643020389815913437249202326670652935465171451855162472662408439343843319976252910441064862374415875229031235313890434672714445429121706707531896778128913759372752567879458570851116279219410077854379668214002633007636140069074183592729779871731817753474202429744828024812821085873142280440544793889249921772974372938776149542190233497572172658080939374800482321086868508175789183861372890599692234670813466039309235472061899026637500418571674233132755313800800861460003364339868246611157888410141547829929950003664834333203942285226221740189556401320926958748152764301041665756999495338728700784149408908155325258710578468105133923654107567852106975276537167042744996521656841247978406463485935783679462447021587074204394682742486449723649156331901697856555912464353544996895322008031710231740203615400009043220946523007701534334100377192187182883989027188456122770370900429571663567017157716000087837495004645132920740270024141521881055703850087595497607501913110547269631114997399011621636427038151041188688004108523842054741299848505587428621542775264303374180283679288322119563126636809600816020394222326886500814828595205851724220395173540624683091061744969660959406053379016384835975577149683744948503405242154262792484642840744980564257735332051924836427491198889966825317141841282858539192694207804883507345348032459612217653039710932708072844107116077927037744977329616265429552355291970862377074480916984578883856246589721115172229832567918223159996168054858962982430692778082996788182563479823047134693365227110546852157841432819448945978162319114342286215149739970955517824160627053966510326367046959049266693562735834734306892944714193677825594687780741979356885941893114816834381404188240727068731796493467388196645768722908584325259406427218343711341071503518679830307710101209668763321252386490742498059537848006907692071408633493565217206442612371983935186007835591080585559631973730973549204531070430756223231253254389060088564374768584909454537532315949665436847727337052010718564121146693860138007640626367751236940285061455369924826575370901806720686424341882075777882784408881440373606300554950067118946722307594536535965754735079920801280646112403733525546068069909767169882278934096622876484549762430751458996843193847717716181214678285663296771176562291468644702308630659833787081930422020904106152017498960864745411577378596744053002480616063314668307618195676391020794979363851147604883833581340929898941426666941970121928524869215208618567161280106305499195392313969386612591020022777520732616121604258064320057459775377463263598263023364512653592885838888255569712067929612616205113986933250813323049500882085138396913091764886206571241208032786140907309451809502045133599073862535890808083196599668653730720619743374574204445872825114981608139452616051862024558634587027803419805871555890285702592721973144544266208455680418060488976348799741212395024405463465010178549894232585446140226265825004024615367150682752933956522697644943776915918408115298214096820547562926888471121269408194110227166484932452205068547873188036495419640203843813921570216830985725547677628347313749540423423812117736206495696756373667522587087963950301057831151247095952340792620560543655022937004825935835697838884812164576900343148624224018286703916268293069102656010157555300754717219724178602876757578285900295944297712214879932785116639100307164867088546330891635431544129272160332901447089057221383086495800088629729966318184602357325724639991898502748728747260396076844027222189077375806312087054255856026354742868729753918715581014124860934058299708813527469466995280748370086368525849947490309306772140586533218510313015349042596694452941385600976495182140791985486544463375309378254710686067518770138196833854284925349294064578176937530560047604014160156551656898192965997076293377940376028673558599854062738472894067504385331781800739722192941762389411774421429612345769964340329893406917975226173258867391388497549602697183618201769353340416796732323014884286590117511266856632933511210153777800755629710414655344261829100271687910518235777751563764628840418216456871285456656807424941566470986871353969166677285435141486692419731875173539679258816813019130733233840312806087770280238204650771652996041092622673803705420504620772395885345621388715170741697791357586636227342137047657877098100399232486769151480088707861366482711498109948183200916354652388974752983938625828068271696614422247411124315435415141057719238468794402446856526618741283819707948121808667163353560510937520720641974692389355824695043703694013189849552607684020163930368829067843639830240746586457089638610468539753731512905762059024089372792353908253418956509993657043616646763917632820676527523832657946253514741927024675750308729087983760867895624613407984279733671245436712239183204364037102416198220187709778979663959801183654556872885675683087752147943862339159324836539796225930410004454268050881165452826173390845407497702898816202057864258512693196835233984985627409868838309205829102947292560496419342678990995573187740946473114514678806410504902548322048260045624925931339570412916494527554319190940577128597268205766078836926722755280248326754157787411436590734749301240954124860968914796905631542715430145328605739930184929449177733260958812358445013793214456300766690571921526919610912274827574064949297164638939154173539681580575257942345095678381505207431926697037518105966729184848020922066654725408109365143309179995749449108083505066461186162815220311450972106382057477994031491654362144748507258439510302229126923951609470866518992109274772071864346519709072180262226206539402028776049178255777192104183955670703120469369372629807875340641497002801426238964565721110546515777007743240350307386727341608801012800385136562558671383073300656077691252021267828236072298155088458943892339550893660828123495031662657812929030400925764798843324563754113080208092258743185109545062367798919635719615160200181672364591781859589214181877014294871232020111213655734343803444758019768909400680057539133757049974954779189586643570847565802730376673145556217464589955516896089342266914976749758691471159845147325063312720615187666939336978248049497498997558549174349975989824740044853709574143611013427439162516875452712507182987241084040708424533151025965271262978834649331970967044923982495703462315171989580616119551136802527191217484635529073463867756634662718098370924804422531002013396203733383974756924318438620300711404966161873323532798888113401845647325513904244507702906783516571143095177900592747401077412179700229223902301132078559485553724089244786083756670702583073405382541114113925841439463129712464917528045096290248707287907187020830048023718555092093711990637142399879312808125171790498848985451914502534485506105800250046987772088744289237523011795674245754297740659260040369610214512345474149566799791036039292002452921023271172262257875710188796015794251866813112986870414764652150216573565688607327591316546284084246632156092078353699209281536200682632911415363468407227930073061681812866453420987922631189550557367578877030486970290366424685488471018610546113544423707050016944192862371335156288042488832033765039694226938694804999375702702280553516823828942846054740163320390847227901111812629859730533606260356143437445074166210083092562713816702963059334414236494651398569774682056953829586220739355093665433173805775953315694408495720789964148673769025537640444107854783272999804569579554731995427046142690072715993279091330166287307445591092480276670499834585891643567439036696752671502407891436805079919329170268398294379581813287841289977421211461229277778286768351696492780562943916059972250071799242563922780682886753690092385379094779338287235848651104060091315757993494257611459748031715533719500594481756491589530499607971321401345789715336271624810923150985149343360002537013678205273140347943468640103336113981422099695930907628797180738503291943179265845261504648406821894055199855417141868006012682684710990341988166047633179208841652897504547761006031928523180234101722607873168753942163008622499162217766303880743947548156395128560341399966333080069989838962117380163555043204807968798747814030713259611305826958882864470812786772186853029326508695299855612590931738524945877267012980504187435896148561805876053876125108079839892852470413115035312044557730787251550274659164065210151476568667307298933481164793836927431220534906569125022246098649801525424066902508331638652014521932473145757546930726690240939205673254252191174374243359729740542689115688851439922415104708532237839652887837023439249184749209950909503496386795493115665543890478709928020850374420338747527600356564197650590493242707762615664132562758875965847340567220525122329642570092291348547739581144519791940678126984240175078709352947105859703612344419478966797860242125625046776150185056036665604330500886249339710056784481377701696496260608128031824344410709375648113369206927742535830855725882368013415092411752286108643678339741562842343337743103363187341857122357467126866198909907031371904607372266760490526440536665090403073456490239089284003068028193270082055964350393755219375907453601803568989592335970438753452857137290507847878659838178412466829098487079618937497700390807585394190145758836151365876623189712140776173899484401517768595600184564283983625329835289591306774274262164625445561824331633486200195549561661216258436459495273245084072442461668941866837402150479042661646866850592482799972725778986020280223323120636299856518010889964798824962718685959813948782262146858888863634922515146756746480001806914204569436504679950024785346806461488475211155880711069634346098187295339631651929614138131681131996935152690249367941022832221746560958695959937805986045764340350711180685080268954227070750676442658011338592190009382173486029001764029963538476876843469047810412606579099300535580811820705700000175484688402416025109063806991848098168651093975848683374827067361101554034121362956708899878080734047521273763648176027107170115017807463116364641284030588993438940098665369472374967499195413621813170792432031017216421913076254827976278141457634227827979027304289221877428135493071501314988758288158107386714425505710125554651314974586495308261236688453833546957857542049533673556643976398012760423967912896081360035035594511024424033350261217632821650982240209170516899371142900657608964525202053363256415407678713312083592026788910845565160504929941805101263763034839958408886544128327281014366969359057446852961740242195579251921052807727080764614299703982452220144185509260892253297436610865960563320923844012931943767649700292534163983516268756978137803831075602513481760989507144268424023318785021154985336842469478553313269406924580353207890221790914729252750663843898124297635027972861565917448472993267277488121479368440870497330104909977268401356992131123456001300898311338000848432088095676208101954014609173089493844031041226744836803510427057471575293036686654829623772847538536012328112214486423671631161236037938038479238028805393185685631467641186771759605780241748728942272968096948440678011243025696614002901299962038565237163129231462560264871678716863824423303866407173906153740235133308794208605332416987204758728877752011480094365253145082468349184836362072597206221500547571202814281568959757515039604669877216241970569268353531857457028140695460219921230509562044914310769809514810325183677236799840284879162805524381788135046767127687285406325360602151414545610298656072210540363185605650635593868510714144818172980924568375088355340848092967409861846006366813365350254096530365195099738401666425214501044121209830443197151847826447165779090873878524488019641811252488930051354039265179401522148640708318207555986285661401766701615262558132420714054668900520573390605176908920147598571697482994135376163413648397356045955784970176274530049339818542177510912454782518103777492317972072524861511971684944397857361133656773640306768678005339843009687917233341900069472889944254658300721265531493406017468123637664033857335661114292903532818820895755759880244798485236176572826959717117996549290862471407945419665544303102822750516121559684413401665767702879985587127942356018796663228357477527581875592032351484412760422353927615224024626726628909350459314711043173336076153229488023549805190623788116856656120986015936468786977770889631148545245589058412454659973721866043513057189958724294081638011333850527857002985586362939847439251211963063339015676842790844190399677500821809923019270193475499131653270648844586519860256701613233370606857338304439539831236226768632338232486739756666820362016036215354323774784004062390158507347267398026984707859887304739890540280795462320180201023936893029612806901076796513959135307773602763119649230820372977174406460919440584331071013295234535090266896517263707025021700790375626342297165515908622358726838397370661497413308960572684193730548167233509275964819395951659983531107008737733264134188652945061140765083563659966538769000813729449611599816468647711108073224680384882999450602279395717055943005560513187561974934455304515755782035612747596675519731785708882793648850753184183887563581518114805883766377196091945188308480742926596423868100811408017691393709690530127193376393686720049607546204538913765572634514629373536767643421370206190546195299921845328410452296830557431914194109970250661920269312914142573547637703950057613796163906495924145723449305772234011087374259233066484578752719521030096668312166107652267289245808978305192805548786493423651085188168974277206891757857659507553952606433236830489873815021966626306059519210180834569265120716052007352638419886296048143117321206307481817856460643402772323463164834543177976016329811608637641530825458866080710913387845197589080833292321637930074705337238217569880539484730611086123308164689013114962833256528860600904332484657159453774049270620346506053393134635750037521281099276388108547948740972937311837460589787230257489230378253733457764822516847361625014226595384903363629371899463659898825757314392773846101849024337337148230483046879829061639071510578194728727834080746029520346786635499349941340501179119221617862166502375246781706440066887844799751784796916406530951246040779418474444327073722353641186723536936767241606930980889590301677488631468063076418395875094633967193031092266089978904283548645896310752379858912208592167792115081875128971686350402287913371009795207558808649642978036266403123644857703409412843215294869105609741708283164169189852721334248929022977072371846138486919926368855849361911759601710917410047326570730604889325080931936839369060907643625673161785138617480514242320333432056764333770860648064635688028089229466348372408392678556542498248413197899908242929531084659221833577462702739904995023133681718657655667269673313929484027563122908608532414159690446951205583376679977905839742849258121777660503200206978695772503571522210603719921501966691124339022126594815492367008431447397741021700634781039777386533056473526168437623237612413360850834533966265537592477542659630228789372152236911928128050913884998230569474085291570806896605441273850622823410045910591209566414251540644930820436893380717466721369883955910415934987795621677161950618127611866558931626821549543701587890659112791008983895171834163470913909076148394827793565768800579101683725472458031062191246825924002752106998146351944365594374151920162205619770463662536432225461695906363414443765785777709847589062835274901451529785517489193188855231494918945796811848770426210950394120179140214082815882945664219755996398758532029367495958414800410649110891157445055969192653054673345148971899550331820289021790522553635139868494432234147128775240908395377730748589259984002036869796877381144841826415197748484602705944135649385306363837642176293832283650959429697522937700826621437610595049243506598485397404846844347991105456299716216414822173370925175298589197582638027271088216969119351478341622178097494261380047368564736798101758412032333459375347068899908694538161557663478713248146637485331150597452962003348045295033814160911919379430669258072453876243346327074723331747158666243253545134347898672449178530458661623249671636709897482151600351791461244400417159487620929109862898862078052230398760417390071752394358069527031089248518619669792184918227360421687328401949313963909611624614171928870833906559489169485801972364348887241826060164945457096526912317709037009696028574621893538819741835910419780450416948227273201476211544807789564049186354463732513208122160107925614015679839920956390451813901066599094814978954513952987401512311873195787728463493283730383553962820630099555806780065518147822355884646471062851670155878241585816200029774863641644169543255695296658637425373547821494149882657383049347402794677075782281036343569429352286585407800031403783396112548649170638949808064795802967976670295624323482047384145400699302428278997675114000032443939547682089956241390541573637436773603702858650177742236780581055259793169147610347196009027561489840998886269458613969706362659407586052308992744011262965473751854346704437857100103270972209571441652130938794758019504885083567524550991909578985057982752927618004200229391374495967403332999533146780308084667230421159263558777471530214549513050360460508529649994430608615585533481189044882717742567085070360508698808871883449841003139323698938258615397529085231879550452412522304496157976790032775271263762436343523898763632016914924883110757111242965504847219566544822350100833969393328507553548863285335921369886175393338353662088805301490318748664724822256176699167183447000279095032956361931029562587851243772691345236135171101267080682171135995724637645723704996755574142628748516349768228074211080826958000751262442251350849055284078194486846643087881322894694889172767929998472789340749069786697209180626472237984784502654512197292032531081936129329906242120114565041986036892984711250866583333967684999683861765716487619162928378733939991674966633062701110222880652690199337981107924483814213584778287022131718000092403859675508443100035222212085055198035210685456082951789292949694220880618009832962996073075120672959858653732286775849189323178872963818591755357469111446819608293756014538708339036276963788919059281263193008066925360608109126725565909156299215928033485624507645233782653998833689878229212710501627174545678974194213491079799591580761327143418170557985806974526927428579828857892310464461492292391308338701801640257694448667804585201066897980648442263109081467025120404208651261520404606072030285896510292213253999250927754498378416251376270860470917711038568363283902746746181465203778473917841123128797247133017254440621102976630749520667121932858538129133154422765955855400883051150899792125494792345897628101406683685158867506964495642257651955005120439218727736072833740716940666085975467060979575485762272527551118483686126258574076303385247290431117472223908278251888101129259966771564005896311991334114242270098895071561645408007101672908635257406524808211940066761119940335509072683675971063643856051217382209791569947691723296012931785162391456538667766298566060652589681415048456460010579772082330289661513878600357033537915409909431015549199950243203138292888335593863561087570088716624125908296772694319872311229983329500941447563595810590087975682725225549019334653551039740765302534044872983128249330690306927958513223363402424489870730330027640602125838252955367963741303602444825569114477916579115725889193498643092811677748245601322986325745442968203188491825870413459801747823389080206367885337637268330876849887588163621358531182269580613683757664076371265957919614068729707564630784367582639265302149344141272488067356495823743049763150756377950016836643509585202532344673181052408317817928443136199824381895597487426450154060367496047521447892954208049118334832667646022191466592210099023296445488487876589995539816363573991691498260797165273114797458579574595306508982591337848721820900443262724696403174858580440744037412036056643294218457581909082196676205014644929830401126035446764545193153829351421340107715359046932785716282757752869902311434663202869037348450354118437148532017337385036778849631830519047308719170682205178080045556716455503062976580861042601546629399821922741534613954093764185588163001652909770382955351169809937608036878692257929301429234358082078761554317196751201145343074928286097229209961548850345304398077409788862754910197356715391987300716727082747852806018812683798104550835181040118670963357742615218401621391178749558778653227316868185463073936664827270461121621232003865462922338744102512908739368567000081574092094473332379986920045056180015451200553914104471563763421551928336457434894944058259080499190699950451697046376552221622208336994197584204099982261571216511712167705784892318780077241826849130470207258385384657964571576744777155943753183782968273023768225324962287496480076679164629919702430204801625470313518384930932271500919744741982322595171101537660518103089501666799866177072385778332815913049029296114102431817618507545724904298462139623072725448325069901635822737344429011383866801685445289169271174793956870517284253219204324366116167977990016762652407010898379053421138098115193224418466182003841495581797120531920828542745314179463439521006244613337595121397446254700960481388608520494785735505055342858279292148567777023278475534964023040673235748191517874004039470953076803578467243162410125999982979106670137342075981171636269142562292555800549855331851391223089805298983293112226539365702180131534207710306638743105472867528887235079283766620252849957574387652283618143720703521551321465615204164600469633844472566137089958656827912272364169814536144632118607576997327195879585882951615562681838312919739266690507879327499860224968233937216683532844480057485094911561880535267661907988396369741175595635019451166018175805228224996551939159629796525194955838214865176385558946360388929355673184978816788086610989087760042711390278088930616705803677073661709392123987976739138631587198731093048972007488192831228573198373315071335747695009788714770461928206396592765227640673301178534692422576871134741784741375010314254741953051139651045093854649859944338048870780466182914577947838402130642212519658765258472284836590932719706422001189245772350973571990268676968286092782861421600505268459407744911028488482793323660282359176461227615716245070879152900416289148832152710827775008049423138616662008634765372101146042988234980755214119117957102756967009054328032267530546825692430366296071539434270594077622241909892302952515576202604321602645292381044726662664037922222395758919621891225204223005207764596065669879328609513567532050803156821423146002467057437153870525006777745768729712201513843535951014710946123345133146431740114787193666775848835049205813569925910739390353840437291869356215023131878045552853811334574358645956486194264153271849575606603914655831043184490262918418628686434037130621696220538879029277304868508598618393828932764376257482650104209569190100292739567312970832181705196157488708985316370534263136720191195440236986871799756722286585135226365517075045763036129790516653742449904663960216445078736219522704435302034869205225119243162039720507098341452237474217833202417169271635357036779340060361261195297270772323628450707854844703780739638179155206767155552473736078074875400076050443269397941731419282398191628318348212301635800595650159887671974732285206740554917002801115376542500835411406919370647407704305479269432546658468257614838996843036776510955527586036049189079984400754802898400084371329703598493065951008579793965809942023758273303157150382666332734954330099124205812650216026791971087413689125334891480973166591097661725462307112940967578314119607248883721119798257057142092652494052530521581112829380966747962022089780492589801858194566906351299568548729024315523890710720778051673405036665169522750778739621764063298149973547745555463842343435159798865450049145152060356943868034026881703385350761785157068013657778478433820659876163845799405271597849521887960469213228517190794354925747429540237734174145508533526535848096071069007756072293439788264251435925772653188230373325688379374379073132998926689918022300192540997148110564856341320921083520406289794755782235491750828945483018498779658247200933905343775175720421813021222702924815760130753475517365177831760687620310924860345211544032593736698688538465012852190027531879574983345124905263510861435892358339405754118444161192010024016104332964123665299686263123543484198273740628996213930395798174907204657558861747947157808638472349093262883889337700705320604573307143440241203367479998180433235831987826069539479142974925616731092973222201547528366742625117326903515542495317609591182354709132948518523837265509972365933535385623736450311185946472382674487610224574942451931491045667919831754485194874755995696102252370626535950459694601652647812869439078906004831768232378314259825332254878937259633395755084246716882596623634673193681025536911261348021251767468254269071950178891791342354084449999961838872811483297391529991563211206543718730568287903498178150015175439271354551567450089111210090043604571983970218879895719057830688888578752538020951671617399438792193515692877615404879515853744150313764872132946488679957609390376923425905496355480721891423460033793240280678423457277174877282160352945643539310325372702187895759183735751669715682329351938300848976726854383191706850678221091770601159238369751268782834566848973436684859197644943522885596019436448365633732492641988242525867145201917950114811563650239079795406767132099069124487425932568486286675338252125059991968442569291170103285947586992236736952802617068903708788285304593504326379826931130386209599871673535137851353280097298267981734064864636074539727507801811170745737683666132118269109411121671313886962122353217507738196651091514562288375751092126143980351397596328429873548500851219585365301334004969154703039251882200669184064068456397706083278277512084030359522379828064735261096069291281573687338188242299773238655643358837717747131316152154671168323281472594022679803106538267351188384246219117805767577731712957010836139599610610053491956342759628207321840827039003243500587849801865585107621322347289921856032350801493994992994305738399936921736427160401711455173535909132733863447502184442873627247622502936434390151923918706965975764182578345474527697932115062524894313976738740467561242427053910990554008132195854163794782583057816615978690598166496731335553486334148792259524571385879284345091647372575119269524524671230033038990756326019287250004814191446248864502697718935985074311485783224412497634033601275043723331593048883375318633814417105974906172683801136313404521891103840673505599467882124294771807126084165022959151585110364088210322832077611733451356396318746835520732734063261771348958495221399694253630858587933344206341490028100065827353647023295446515989402566442497960407260159854585032887064660696831468183155549675381629474182334563671380536211273423655292316337887405369571442837465993652167197704061041567537225707197777491301149410878418567447915050166332066831988597504009144277191419901328254526233403679223058098339795637009868237080733694269084645536420157352978655753130072848112159459059173753770846883124802722932703504187761329351256044425856553155944931008372978721760889335556090057407348306463132281441649745256173176205619632083382429955361912311253051912468176440955289598896619608195140105915637951750038601778118091743550245245126239302646817982361069363606602392371933754280470307535685065205686569393533514974937844848930179982381844821192908892015874344210689021281131320543883770603190080140557431479576482982569186198987182144867762860354784943049600397622413212667117917930576753788204700822575974575692025131413599643501323466150389395094497658961198300883135731881786028954122924883967049643802847937514097421112388661367632480483087384557598876423680312805070003841288424605884073592414657822349162559959204723860665887961598774137039203666223190558815624917046790469754726588692386337018160999555409562176052957721980320144607412923753924958547624106819513819490483948282631845582839912599243120622346893402970130405903491822378360905929581037353188690476645103417708342768792948005969576692816034061146867273691280439085223716083017346174764864819995923968641799072539379648405777342230681737913423926051809057585471121210275764499008974837518950255920448697847653110279961312225127908645009010231828841017490359114786490654471861902950025365145121207125908637678119348338832774575069827013609925121341794919918166213993081822623926031553247790971499717391316478441942876951537048260479817629070137297229577281906876398325007430488329995517084810174837086070900691495351351880603672093539609137624732802902242492823829065128193555110846382371005336720991800224122525211541624128859633364055077428351658614206245211690024276020889574416296727970843770815882673265392879908085197864329326601194579117913540734007414269167089668317274974614387214546237840829761654122242438076122658246719174959785197675329892027269083482924977773326928276729532924429013521254488858953394466702292251197287568237327814450338760263801210176031199144228880798138131116928554258231591383227708943043075092827567257279736035252947762926035398869206812138428970514078892102215408960070571111583207332951186958553074828641094498843034306013660726575161743043853907246348500838570365742259618916074157435739545469491438817829918570489164061357847665369981578049866013334116468235926041166297914968265488398895861848305709699785541672703816257710156002869261534355141867469619423975241688749883101677342425479192404101959061981980897512095536906333115057362748104879088364531100480434742085625023452668431816521494854489641982125978743722749010723374277990961989048774483262074800314000518809665773574783963155887233704407941324799014713608238868746747874134027945252846475759588543153422327157591817134149092193206675114047272792033550856842085137026256938364168958511578172155917974217963609244364228886324816458657262890809884005165552127952577889375788466111513545393656936067541614061018105497558863393649545244799534169317422262780162228082247031827195291844131325203836418726651786377116695870658472617511844177538427704358569391284630992417694439855182204575131022145598716105921977659788410683696213790716387987063026740050368271091302533598696555566526506683375910605267695725407946220430740176277012078648331129357871082780320331456058121132360254273903788451838420787695981150348521243669491253105873269289096670216101383307578398156415129218292461596370135168124020620047368604514169487948638495896672718747411773750615925999190005288996508062384223368947415613995565606838966632131845141708962797119549077483111073522541270350716479205226858543036635783836445829020997739584575654640519978908622853025030134071226389088155345587481934846837607371073775731240960398485310037835577572332301063936927437384190373993538295040791480307504575615123263984804312679612587669768686788018721326756372126567150168231519724761470246889750930121296462335020567599511436338705120761685136362419691643818108005055447914215378349659379853772612307669160682530415095572264098783575696629390664630889870968793843168974438999733552034440807784705890303686006333429623738028645247631987857879294322506654042799639769178494369848669336774358091982669446395364075509231994643607294180759612830418871886256693821333778166760769416822514850336625350077851911824339173977784556920890588147500481614108778411612661147062920257576157106167539569629869303406898946637861631278099559663472621780234306128236534974304633619819583722661187039007491137259580733780584747661363500377222471642751306878569860617481244468019902779322314134471213758296412043391634308280692223389550906373554764126100981728267862381146194188661894035026262189059846295384565307303994225904993922459257200796228932241058251395672572746537061127228542499704776179699618900805610929286259314518033790332598170734594369942923425615212749207018347250116234605217707448504465084603865963649504638817178445448299452231135377940984581578474269008953318105094913253785922856614650982585634830856864311151164253386311392847287774792525695869397606853142872372204778365018018957466399614969596841648829663071493472573120101385463528263364694243565955406808435994908901046010055899096648058841213319250343669047972552691314732816463626668285724319443378813109533434731134648726235964765784584544284100491744675589600830152708280737959707886123938588541462324943553098568803813441176890290817090207924233338877566194900075937776763009647933336378982927861128431769716836611087440993596979821326227971216693934620271247368155308110736908386488818641912499892162832758880947596159901228501879719804666645080097097882945763314538543933171078542119007526797261287415750004445244222750378629364098246865681274574301017280984027156839744460327918947027526620030540565575419986187616446415995330206465601714900607782993181351005696580062075998277434776219975348194127742012353784028763337708258708070908462294813827740123861585817586966962798001902236737439225416290641302161325784676559998760822693674893218168399036234102308374087636394614984574055666167147419491162689728391810834908755452516403561412223122881003054957677731874980151968887026755840008498050042815587873866426266590884203991937643790731786631602863877300785876727554021028474289762691547972316729652558878321999516043664750512288520847764602261118421586880597190088613374948246803144407158318922422545266785300997387481914904835532725614045606319636749517511605924523891641113794701211346712213249112404520743811856600595898647832363247558297954560002739426722307240530248057846439540109405722904271208285038920497032744410253384979617280423918314383104225566567463894697822022151707291819772429343619281075209319690501330219189902899927164122119862902572447389548565294068116998086539356950166652661422922150851423977427261806153951867548000310272814042155057520784901882784610224955605367254834418031779263095667042357877852404562203505023339833134146605846571803483091421526996874241177759017534490264358487327801424842706274264173538680615610904097751758317089107959454745054090648808480388160198750489787006683559137630038720177881181636048218779371138119253557521519071017203608221841146428042816535845724007496439100481422915506756765545094058565185355964109321386824643728809413371045434874149567056111823767490542343742546416059007395674869690501848903610242263002419634609841015227731755951739490945519018821202659993620310848657678676693946087394879177267382861050838691781230723287774950312857343507493831620264572556410009121162218745402823954194361751417818675224931384359214060611419877193000749266517730268411345737129400448870721205664479375908964806599973892800943286995647130621231681928004386347268668197869185715060498435767836340322980374579209569981951123322580763631234823334378174179397092828899258111586278396092948893352202970240745880003322412313682758347470368363030137198430606311196614546889311063709759025284639458865210321490429247152370841817248296090522103453007301533767461158133967570167144096020511403606039798361031011725558728668595768708219956485873642468828018627958151938986634117676961164265762309075409207860935248077866093176618508548205467281033453970429988287792849625011001269214030967393381718451813442667440530166939938921286167526842733942672249008928698774022969356998744026976700267530849564177855043404918312666525393781201523893026978222859279179686844870793857704810787271782058896310045975370743884534437014312146739248328849196442296008055235068632628797394088191917007109609656660756156022782325004368759859060491179091684697727739729625621838684406042993051870658446704947346541572776864634693204930372385328414800785056604468474929546132204720416041730593512630634652449147963444602178737250115073676600834095742276306791621317000891112542638971276062680757542909718956051205670558964049179799959985280395759987605526703262705547260176757626007097295637028352857926165852460505006955343565889777665398778759584916087214173597905332869881221227432520464687133958580033587326658936167950484613033396516010113981482090713464472942085342662962258934733824529470288587908651335453515359435634276250823105656778723945816657233428788832044208070117576352148563341549979988132431879297915181073890520622346645212716372711912438841944496098278576669853125109875243342683576366126109529779732020578519645896222503634238126163571317679801880105454703328641771766137949589635298434964719235926517529982078445929009441165405043782381416845034884509777620836650397226448028979672488532063681925724231209720818547597475097224887150549889738242340784634179734138357623646209689057668857736933217103477714711992106186214379296227276051103382245487389734864096062800916205745538377597321540731452672515404125444916701160245693278625761903505813293912738538186497463693135580113558117144010688839808830171924562352783681813874757428652729114830827253682333766363438941427964051844340438071307627733194428584181169702413487929995827360820899684446187413600771560941975372739430184191094871922803775779379587113061708470602165478646435835930226638014475855422182998509435993966855114686880589476405138302299266193163941431556996008584388216584734741624568628825463060781607274815187749166356073078649536969833426033980584532525108411275084382570415272750944359764745986412486105782650708086093462832575371104682857758399601593481780440207483130072946678646532310420535983177173048071128522689139926784283617731441984375846633761591459256908632363098149604136156232886502350046173391651586220559373988822287094607532572668589230109724730746884590236021923020305190898181517540012061041114278359997079155287355159025069511111861184805520617546937294342113659661001598074462164252055222584768059673202537147236244429858970788809903938188605851456335038100456750443489031553586099743667685591478464870995620823119632617555930700260863415352440623715420096299472872215303129355857409697588246761767301157146431713102703874206343908529043721535288932552149398449753252733260107981143229952852765553920727793571349879760608119191184922596858747850627267084494154271156720733570309073159659526005913723271374012982079549568615647521323492521094904171770048876809960328721381503335167514356864215956187036707742833723807415378092720380550828267219321788059030670085728700960739120079824769031251352466095717624784429709217886663345311168641803889257926294075041620837885861085524372712786547700262560574769154851423451875613974768637975635334602533899559841108776603555683560815801588723205815949334343244554636985508551570532340898604735173718673480765952714305343602370092604383470179829081213737935408845173777413209939445301227957830061825352394721453509727612849680245157323111391175851792144843706621485415657275557802996963220206837350591174171074458277037490838628083971176591288018019647906132333373738198599223935239012458729394897836496349354686400204870475821723304663834687778122495281682789131241109384726552998884078250766779024921548785937507214409396135943770297722000412598403922138474389051782766525185709944036860395945771720621112913927552474467492375898078185149656161097494569853349074109349221117867118543731987894098771467102891415641771225538342497227019394408062842262675891874517127198494717888924785463431339860383096556875767399990291106955536528374901040528117279369988736303215410407926433585343505219224266219195714669335297192965901613873203574425086629924413297800742853091952733930427964483864735084812794293187036987605237347904064418733972172863609530495113743078668692132860306917771817483007371333414812875128932813818412275007696074370189153556823313640858923652273814623668205472454153113412232326163548711764644982055842761261403561419524420463064317550588109316218841127860121461313179033574214658089727279931086797990521835294399955818337732638108306502388095209206139137452961551499632878393083177152710535815193820995544620370919763035972522797165556178408384855107549744559779299985588329462127132568883596224248029227623898391416039291704842390236575490575304005867058557672492430251196671393277601573749561639671437035183717175379558723244202039127585692532938939278613746277902585607851795126571224050318402181301117514256291503594839373235300843486098290886903823811557465934010866347784133627674047325579346564042008045331693309482221230686380956877492839387806379353815694671027051319153353395521263263463907472393118069771136924634517703449682115465893312459867700154952563140434080306901823669921410724789742372958160185058457330619357229594349257197788892434296980087098760388625075510468146347879484645161909822059055232610570667684394639061890781795512075324823323618051468117793162461498836687468138954027612604002101442418564873467466500747373113947065908238319444162248678269741099067882066203005619364327733362836938917946699924265485957951211461464826984009188351801551711145879711138370705488849373428822829157812368674438968899278655211044549399865270448512224596128885611381142903667115954900167005363113691708732828831569551248893760333687138618448716505801043440529945781128523569509774885147732775600663260791642347537259972592171994888035253200247458475814671856928935419947592887239246940503810570826983097667944621146057409292348970154617930415456639611230483922121187576873815418115435988241454658433234040320909126419758904171282503133456690168576625009315219323325238149505791247697600484537849487151156567562524337393717466712426457741028464738504032183272638592445388980413472521251073161480600832009322137507830198369998639896558001312979619502582975747102758289441666759013027369122789804350550860118498735957150736178996159443137036208914216502105678444468482808279438491560740739661090605809806335978830252757097921622412778237237933889850717837469204471740297023000555055125192732081930418047945751562379181163149422538820104174390203448310760509623357976706698595772268286346410924655253244669387284364166739946972628478001074014977361136790839140098386502328704725256890073247406187136789305293247800262931143697028966230212350944716449873317721023228282187755842566954239501383944277400920677381678889842351623783528589112106294945568514124328037800954397759681303119976780596683702518538747205721473562039206878109005500201510038132329963001156503448072288923964068864384447602667894033462349080435488200850359330105766031546485529553466220536720604121361385053058057265595973057486243972523522471795943293056534638262725165006437103126956772592128436785062151373787503119898398844848952108498682933898347760659024011945021919209833164314425408446000869748954025312587290640848683399411855740354767136329256775455799441391650910308565621917670172055910002811466916666144303707129662967164962866251895414422221031882789112199790019221330384790030561452009402501591100733206158796600465889047464991339258509928856434336953484121217780584410526487815761362932944365689176266445780996652814477796618235687629421961649622246537222661969989275662869787152352570822423863994821086889686934903771690124445050282819166182592065489373075661975101131107589366490281563048256642751283877133200683518412497624707200554471680844858716395093917259326760086162011767536028826595931020532035265347251844763991431015272859343896229062963916667620624552246511240854122099624626813332467882217205996562140315850833918130937335335305270391935839245318241318023899045885721968278099615360208616892841125676181921384577640106731982602832649865464752381686902768346355211482089164968182209601601497209888587134537613329378028739261745083644644689527740888168116510768817614838615558121729020517752727026428700391162832631162304060580353313054736148072361129545232929294790096706937357518596994106028833510590763646590202105086813674307315884700567521159798554805327923832999432952479864849809139415233110483524800119116645687161456756350749064138178451922775680928758827766544277959289313834967944548817151165144144315726131745376018207395830836795896068258477796545893829002652659240985121862263900057511121975194113699014506497596756223439238887933522648536447860078938660164872015265479811363584472322065214273108134339607645146931081611954837753122460742135478741188822821413200147109637566687040602057854796656950282472909848360427461984473596543093723814114329297329696356682835131040558423571909323792089270554497412401333696938030825657921887974231318317962182702940291702951608028013772655611676829454933834497326389097122851945273849680519691219567396620979452062991604381053330745354581769328621026277679538813175644758951715002274110791171056758849776501282624694116861534260295462830909086642624958578495161051633778905753690158365539533719911195192146204619634692819428513144641040042575902874680749793216587166716854684927268728596229252227414114128728082501274849087567729826052776061393988506362615986105821111585340350863322748501613238602399146547260278310769266449421661935482835498303655054628986009652758764168177938687173408158198991702573211622568574949678960384803833915340162745141601503978853320068894559633506132171949147021505550850044434262339555789160072624370008366743753782047326252269804368676853157521848656292749424378038727487509665175388367090651289995051165497147486888523747421711902199248832446469279933759461187320020215674180573366669190263804338056858558106698953259161402065188862836572319131641272088710996790517270225258522120243234162921264171456996544267595733592041201887855754873865950890949036669396620824317394104986589002614153667358522508651115408454143345184153473222512268460012445451618302639552205307436887354224244977925411190114161830054527524863952455890574080795065866516968660586660451009255832699428773035091679294412585353313596350391089566307438288653529636308787850529349483491362863489202961424165189620182951725337143645393507357471358875082881092035772096892755706749212626118084665881469965164718817404160987163766972273101400681409615663799765210086086421722127618496256904275824934890273248950028401888818611629620976044145305335367944545105826313454842547956599647987576959315486281610241055673393542938808979058065988107483197685608129701844230884968687804556159974889096508953473443834834377676198742876395955584861575992326603133044404566450251495069004719994700037186541332084219286083992060867816588117906398304013588773134285196477860680566358585350287992848389845308559157780373620390379327418908795138778516738182416800104163537889896947940207769523297310448571342207577559702648290555368665712790123673447262194112371423976468940011101060423657487808256961197397661270695978662301794795362245771886604761938592772002630254633934855012548959404487082894381833789166311209941580810902588873370691758884743317109017991969542392062129120052397601874050346287831254047340718651411355182374253005300312185253656929311523536750011400821782587464020431874927166106697495087074679176119912721719745459000321895136213531615917943990752566630364475830770318127647313941100093041935903989271783611334610381491474144032273383819278407431364817813775021198670439267706091321075907656728861581571957134361396078328306951119788938179626584372119013632430682675514447924734300294611964947759626202866702316826054759174918264317136566140301159509794319784030714664894727381901617676931968462529772309560240493015172720922838849859506452041814308402325872024154173055560771830537230041067797043357744002097142890187651688041481185393549757032068062360798942346275517084462836962496053715617966670642290230670744422644937157193550589851184481594011169970201868051940832636612440984712060294659128527842868118668583042232967074037788380295760959268208690879685091711965281307258502102616410606186969286950640051196803298629507801951874152156247713356417355050733516984235891501463077514474521844469138039915075509797225113768805985378806705246510216243988968852772644511062516648482539140795562936109798978383894400095003661847074503950325192895997543552185086003159029202029573260951267434512100514007309529731509523177744133980670090705413015609628187622953766398954045678553598168961938523595069589216510126500399729852675696783195894323642889214142504993796105260592955479604796833905973567017559439727880416702577128734486217455798253748863202535513695326864277123919189906110039700867076709318982935637299145174418048839589420801713176987623771305404552870468580472739539337333607399327956814687594325829298914679163490072131449673603325458067694986065598619962908288187970391242829973627068297235982920043249781704656070785769472658455739764584124316516151848996850262013181890474859696057429528451252412122069437348250389866420418052762591187295554008578076894552340215730901930057274805660701342741678114809817252764474527170342041753149339503161168263575850839529687020372875665668521420880118482534924489849499258561972969540073101522610181792461668244259602358350722074217250387999733863239102004190918218075223029287056450088929399198234261175802956527841897728598725642830890356597692998657978272205274211440330477418257265410957477225109628999022262780250164390764202053119043370639109769535092896184378546830138417825328005813965235206246000134848615207549920212037004535973247316115478602501740860569857148473044848154315405601832196301359210945784611914172971265949002315979082150096171286756574372872651126435292133077763563563130995544225371220829480441055558680423454735020834491918159635382601864091791170280352820836656249598874478398449936821473729257206814259650443291486227408066696571620005231212276226896657495465707921730142079779606408173109128806157111220301534575696253819727402387401954547418878926813755262600536728726142856211825310071145987454266058316702945922814072550696955402981299488697651270506123279517246871636536231477080151630630192386537254611095671657292091416824107006727820825846109059133195964345616863554895253677876177379089212060002704659760655763673173845944382979305169602300593532229209063706663859817078820043264937360468836230747779599982827520941144366329100999333411131121897688893246537012042663789425107905345807531566960522863829601769047930948917395680821050063831337531148987978186488673311095932566023193067193716032998356328473985704698520757765855086637089038269721563549428789133173476971169004758823597401101678586815205985813216143792343129398765364071376613414450648195858295560431908141932291091004843319521852604237288220844848340954719656178072169153897974523918536665443144074829780945189447182103127616651123895702019536323674167203886108927189617035859780750601038387201383335549784533797397510873297355206366756839830433158815511337156614586601808279311852276492214008405989577960738461829102989351670282120777911916276216217515442786076362883886321248481306764304426681037538731201621812922879782589881468660464958775473073244965871388029453676730802322806277337781222073791869270504704698773784538604676221758134580909761119101141779190963602949470625495143642685178661058667476707970298578673947360130005218341210372501348793035747583451343410894570490143638824509442795117902434590880738214812096937527141738077160352354418311257811372381550268931893233128482096392685822408951693047228716217128763787563467493276924819771151464610023560398023450888222347445641987891401324667695686837249139602719699937347666959086022460572024176753281605309529603836057633802012541386613794733534746299058267693198764616840240553496128569659546098377536486193378397534664322302351737600829137319582258231439461692027554888804234055116396664472213500037929691814165195182199052239686306283742303359234892923473077929342789462531348715596952135397991517694843334532584152145439869282886086371808372374413499091312950004583921603497981801545342538660205953085553887726474864677324151941251176774045985111368185254925209704174176096923637467097703598031979525113292810965437888447168391758138714557601382089731724226811896891889246819660679367300341421301792796147044795447962115833207475796232657808959757332932591543681371989495827413963599118881457912774967753725389401992819649708244790105248804031281069490691351174614585366568522326144074486725370180772036259359192780160822676124173673234376102690034542152049641513555086758041905206222652537890385046637468281943318575939197729668361175439004084527218044049802207872197559942141943148682647597338947163872708853234279637218498744097354490489682760207924671450858428242333169273974272716370661251287778081653775519272714017474779309855509944967202130613634025953189558818842976870382863653069995394414553087065290325182488142644527624644517090683348110507024747608683005729146255299901717269307334400787297829206293121103865919193377276907014934737580563339800242274709828551850888057248901175863459607523458312059448154474283421790117107035793698679921517147132229204072066966300770373579410453765379315136687516736167097786403635903051423700708975571857731803695946228315743376355351199381333478426569185572543683882701399613516725552899472077317378172327213648076289124902357194405887131198989984503493845582987207348918387472577246345909734084883470321441830681413177587962492856234884095073365045551470739619632402210040575514142773993512147672729711871938784536176427632749084335659854882654182856808581426291312132811904940870280413604681589491741002752552190634272360177392776488694502109731226204987458456004974534752067881797290610278957433805816057401432262021677902470886325772517024737665319019314529333803672372662294904926614254391082236791462942865577336527694187377204558254945053855511850699577136167386740891725333403127109016585986282169507419810818438041855753823184382528766977862832705513003369178639281077463574204894166826604110698043291768287961072495845292772863887290267015016106626511664778993218574109511650841503428360486929914103734657171084098581555798452538105017641274043140289111708081884717612431947553289067713008000246020176844444464448259319807217758998202464118695560707830376319222257201644184943747953354138593704802403810232761454146528867585896983059990337382503421982583377435739566266338471446733926388233076338019634383143635786764594718711515046491138011422013415946516254279415807609805867912172403848629868666463134917611074714862234790544989494424285260839474319043379206613418412804744621755382054348401052456913579223861419415679720518324347989251728994344902963190204316086170941930362343706798052542939075237285951560374340149832305499760716101927932811672973216753792356288912818053802652356162691316408811295852722196764963389719490926404519692415623964432395022352491283071501751994709191527158016754267611066275446984780820413191831547842580819479482097888324978975703548060152959525158668900573514558926306829926354075113946042300661449593684257689730161231679325859907013248137826116844411386324551341881813474301918297485212998851306473907346357553448557384135625594662990399166120801720861092513254217580874651999574548918973749395880269965884245953114131086537596549635727534320575808426124121415218132128335975655090009724259437992686887019730073384641893716136926081815754026773790503419937633907896906343707716876833820748707024799535212903675444345776362934797946567125009946947465041751764107797665527882358402029404063276796523179480047854485389431180542546838733629695538254508291424178971203762679355661219050049386553937718717928165164292607578692070476369963870047393752592095063709335118483868180441857825291471998776571336710515786618175518376070420627959866190808150948827725722108350415593795891561816656897288234257780195575918851396101981868858348457424051168139447657053303356344233666035443709605689520261708293221944952937513579821608844807806113861538925881458640444019968819899517185123629625406169804151172960918321468511626792110632185242776595040155516916301037397784763888098165954462513569676749226932522891012336405610822484524768312477727752662606194283752060441603315229620491044624880204265190788781434861332878735906980957745960997084401097463801298222618712812209852209893942733911405541071243173597128120407515715973744439364817685587141985158334284526613564763362446501771756784528303122306335062361224437186596949849593237378380865641636046217918572261080182486919146692536509339317334682585612805205209130066272057475250637499651593338981885533958969800503884356512138230704816283620523513392104896261851008375617362601739702090502336470600406069271780908211999355374059251002859136563257392411896596550886732313760121123989500708850068172238749880036539870922433840163035288805461154022195934682281211866703823400481439058759473474534153878900592967015829362814820015520028138379295775244546098893376156803969684216691745601863813452145366006434828114796389232786173271161892116352691923273932258019976629592884871614763906989360475811289039252245665642302580093422609565205951061331728360336896925569635119407066720069357419665778342150573599904794163640338271163157732226470028514135582996706416190042626292088610006968139371518391363518704160770568311274546151093590328907017673019293470726757616534164852696803449881242081451019033209302063769513575871293050411988397810569125873294245596441846613569912638833192058793872393943141412370294572901898919590501104767193941836295701416297152316920392659420451222232523599126149051215296972018672639526741382254720978535402013349427130863302536621380574384705413054759217552433021835152257996429127208362173923032731612444979433192799907708375350502113805634918683300501377229918712556745062497260057218994276239459342111313342350776846517944005731416708204884676199027452073283089948159574177380505356137900042183941876341254634909622294482646333326237280094724605538100499142236812650727155105924579803299243573059182179077690725801849032817737266498957982469671105240865836063588145063521613992513594157571415929873170320956489723879210157853402238856710702299509293404284692506767389321521254848982266083737343910793552657324326510167655080098358361952973043771420665896809808040111217994763528885344652491105832805679141150127741326919871145015894370606773268730350268650890017430903277350558284525891538063544614159351353600007473034172758824684162453042707265522902862115615461263614140019682125316853372755859612749472068463556657841538772403058208582338389222634609538353165239757851378643820764785933794523814369596496920465667672950609692911605823323741085710864495853870409364602779119396635157468823791524884088959837431109621438724854456080318550444006111657553564011609883348969284835220999163706140941856505239638974093835183172287445152820600085530989532327961938895895127263119240569157300756333880977140361189304153913010466933292548352923632399609383085385296031543650389611951184455355171111770811752305357525384330436526238473055238396199696996551168414153811872001755761589665911853596649575892421539793517961235688268340385131719519750908895256657028387404373709203270431254002995637352026122185681712464887741941172934312155634969686777662540660569755016128159486861404936688479569631961355149680282089988332190599913200012240110846372625304081483818549331699683405375450406507821145763723261106916620019904656901510326203677480958406963401835758784970822376996345930341304022987758558581090949398623129819542321153464337720112017740655141893566352096468862806060077193328283610801566351224362096133328844073307821957473269601506453357592360603286280663362457476518880344784521315484546068089375058956450568009736886893588435781867986340209002022362178519890149089577078077971352071174063367582468053971920486722921484038943166219370748953544242436093805282030496841320057308588138186983190098259117597919954022369377311606028046322105649629114964435690185342326087816116921407146442798701026478476570753544555532010303508007948159031893367082329785251644114307075521374612300627957285283794976547407840523342257834968003608971290263597071784180371092247340901049956010856922781778073546298586489341764786742976441082316949974977813188942852143612891032430097199613102001822217745631522629073178380375280953904576769635338504781402225290395518121920956491525581801856484036545945573550703009729870405411206686745685347743036108539784856918606579326256010039000039656217892266672909385080329298852611544057272529865195689116652177895332135113366223204398920026870465971997383008238442974937276044905260296113342916095100095819434697232027399354488068182326916229211080557298712134978711826455636603732237847022200713135468260704070674463989552615691380319175109840771408724207791904905425967187262704579995929638071078507423183798783193609416569926463269860832024091873804731902926167262519317124472824605004992139625581421077382652780552826649377768304722654420780427674853861423201889940982215283583048351677119016308601667684175714121459552288928739322281138910463809266223584674543300604747119012008228766412866971817248154842106920849287895185495808417568550367105278884733846767862483193270176734160943349215843327055283369681755438392890768332591973690751876480307018230015069944335862069337580590861169908324878429101901269307752731677123128567000583523683007149337043605448231099528935155894271243359134818105492825664947936004783278669230382857777739899086894409125759909855897202753655518576382630341590445783955738876487771285053811703471504303465655892969412394697605783137858340052221992980346724856001670735603428562147746136150627092641566751132501255690454467709928201072669082276739289466784801049282688809139156678702657874129911228511725908791126749491838587346168369204398539790821353387163262971070407943726365233726321693074456348222675181411741172750692964614130121967626204585362260566569044649870431736108086415949742056777606338701489185031918557435856793287342392845784102713430583891775701115346681284609559445010588628174772429632643309604678975164988661850689019145016423758954496670440282891128628055324091581153064379542950926331552334529637004149819985020615700499771838818029931868663810281819393118891682283510934384233083511893453874065814413020830420317067374702689797404657868814076592059485033307774892396127534623721957517567896396462576843639524530767912507432043769337238128582131981303931410235545110351910365717348994548318962541417568580911050639579636509491988208568882629308900405538650706424171219089901549740425585453126066629778758354789746013296589342965261489755360880783564319113699780203428704112877788986052014828006736068473688032115242712504049815232755302790836342352446734684761348620375196722822354839079043008982545052924592203553353019944331922184132406245020505614093600710355462227561809994923609792242645245356074304655120847948176579608265316067799058502469814418188302355576449755835087505641403947275607613449228276342451427700502459462139788039903111280374003769092542426893963794042485457072459615875761006802418483524772225641917004531922419597311892311341015868541451107938763372217350244559247869694121193571754916915203977887645478029932574446491897967855646320868740633539023621658066829083210798202135496535206972704298916281858617681705502591179064906723823416567658656528411824794717789284907152431991376508240378310931938707378857075676276622488705210154329297841684324173127535587320029646033887050672951651512413438298629749687190602501564939898886336844094975778065890176206620442499519503739614345577638435921946151938000239744241990079136851221751819311273483240573647505005884016311885776071761304412235172174628322949426388575662157784931005409027428954962867515314018123867750764613261168216345020318487088504775344933415164226848518393380922363410106133234898055218732763725352306253221744843121459752934476996070954897485308637111069431802982069825702007054325725219265641929588006476019909319423544201392668963731156162590645824586650873628420800933854079776711760055729952244687374902896792469481103049052600216178566317757642432139780644265401588006322009627518689051741929846636398745217763247511225510248189223838714547445565403540102294575509225585703934479496542801260492399674268386143938303603252921879808577714899290725977867301970465557982348991888004792088286125604538435173905659928936465684735235577343502161111937427368555769625463551191177458526949152909558307968749095781011296200889706913911226636862261903461926936918944376064366800191043940324567839467305341421139560886795511265551140017669668328802202819943392891682437668226255938221354382889240260684493111377912628312540180586291006901590123178710494803012437560154145864082376615710066934694612623635459615431283373945572862362816227245678022668649291198750957841834847889213505962163535696332620350155329360711641067687782010358605190341486233011299543089688172067836567507234583385237900221185958573801637815472732760891429761925252225846641033030452619556956102675021131095542544896736697335815031195424340980043208524896404102531069744196419064949623833639191100470312704339080694462988542133195524678663279928234143332537596094554587513219284180229292016687191227965915689290887709334756010738322114516529198502428743634809420737957075606624430102310686447644858083783118886331405110056199069524388772074373943656920923133771332006877101230136467506803046880420877789527278176933931233523751428974317499492758912470065677789734235911226743543709394466931493960348945877246361634830113842351176677631544595824741243035747578409716677793568291868436459105485433450688047983068834354341175393382540953071318466713986584975794582694371708460413480842807528649532225360573837998100188826940296101405054972357964782767234295410521047945632025195074179565660124427313231786736010751052469328797059834647188363041372333804222709261566520609576843753868402423664664980287328983733050682089143173830128145267473149766879711724942646068110609974169814632477533439390401906880013813750584833078530708518805258489719311147697623499397221372051836023845124201255331247656722133177309284433196071605266012791991073255834746876750318010128553081085258253055129502591833378736363261186493206960190448122853677280799261037191366694447055005665968241191802863397823444118723799170716654918974732785959663961487603440132814453323417753762926883993380631694804067550536250247165377889436374584797631913657843882498826926628600226583009077650068373028837652671653747258947905482284530087501275906428141173380063659491527174648597370502650605903045127217297997573619232137374899310546984632722466658430554742686959285551388970616338366697161660445206765850638457214500445301700162778235847238306809506651533609168695775274413945378661731480837162571289827952523260098773492689537559815099146295365646933111955816784339060488435504054985486018233241965627379482516469354103270368058808613475407575396205018184483466164281354743243086013237926586339398524523507197799567299487815976306722265494308515479282882233147740904758296640489807455297498173479691840034310417332240608508339453740367720454352437757185098292738626672646276382325332311440040010372860191174659921812201020773082247846211355983379420997576536954043277368837114205942506949156236605708012010158587056951047981836380991690179555881235998104146376326973093859526510773593959098065862299707634379323426880722520267054972895854904736738486425593282217558818224549494377422333373845153950814721128617310649640190980265607144593728449569512553182350599270713754448532004308535752483362554547184414958046860413999217518803627736244191097530880233795432042132103548655883058984864991613974340375675935378812006302762277093097800250056715644388981315874161083454756524448305927309764907999135045651235955938928929904682955672434017805787750795888801149668463126408466526999317285858591859911719800589186967601821611352732514361239055657566537879271039979571902627703978636439652313015643058980819963430518356592874178826890961160134511906772446542834636682692291574799817412115919914201561275371235285969332749039309035720556172852686657602538601769319665637232456313028704266012240461525816762201591993104111953371810409572430539918571905255061117432633117178498727038993217770987135533844963034166137134733181579083443326812346721196473007509847586951781631449713205451341373442330431586996203238747948308774813412127490473591868255560700332481558986217444553958031465782545957515789639835174199515871536225040041191500592196749632606211265895721215510460582238557389092072162646758481273303363851127376086652271381449797055178990044949183704158418054015514079579165868199992043488669605235669886442121597639488964323551582155166704551164449301608466100615993847093771618761323234500372997400831514791461228709184750292978371832618010134510493247390214485272261870636223409350619018656619807982709954781753001995913303084961556489336197528201840422677674845861724380404285722991454990606103870478471116301575666724688348562848424440792616610401119452442908003217021072526347398222731753642431348710119126659752687445767037007123945773790494435560116594027504647570631587692950560782187376211274475535666941359906180418967672486207752741688571451212863310874194006108341659130811251086969684050102915884693502914253400791699117074573993857167945822050213633654529620222590656278200793665794434588013250660935068177091728802999044265308656278787853479692647485065276643700643092002723408379807842109785786597301691818144493843686450094657839594024864821618953489277514044155430680032943981291879306922958949214034628001775957061979728198388829852022028613934971169418603934422811776741105128776336912027960298680603956620933544016024191767492570248888817909229859059680479154976969577361923012800637151033995188026824656036062781048788099335552398118579030575402254896793069883998623115679315759337767813262257018393439083224150852805778208552173300423254222592189619840292953264684142468328473007824874403054164154622286776281944207788086136717124078206134056584043547868448179639381528097604189804448590635228354717430412035220504862050367207894505946349335169950990584095439070701858485619821239954480765439793903349540666109085347202059061053601749405621761856807812713015138738225455715422772551240930422835301350940486126556781899502584756623168689821687760048895913808192389048525299340880083039755163108061418009727470129821743615131926962349128450391435601091915413073127481077814291238043683232961312528242695080523003793302576674490997981773837770450063615246487914220045074787258955069031281743749245567584534289630092387922831748549414679083736204462905240467595502072418904754463590306490069817253726850734689247615475467851985101638668197763215658382159553767075667085855387580591428657455268702096909720088375695763247096572568959509943296692223900150736201746612206943095753436968106490583076258760513640178082211168958224233626767924664426721614088028062572070558497027402433169989162497502102388077234734471246452436145466857689734091664966986308948144793167874352356165242044001915751891874790664336647504971613364076572742673879258979274758266538009878581073298890690513174048447933989987873662327327883352232648468680439721308434598019755074979906435193242943777382861267847093349803741421934717605705849665649201765671380325265264970390799084834039987452146239560253679227114289140673979525061446870597197560672792163510669007418533403399957257679623347719227248209529580695491547882618866674167540311995225472886258252585892796084588435865097403244898701799403928908755432929210562814939260608042503341343928724081247218510158037492346082698994692502677395722415303916609995367181756677647557068360379088981701502469080235920997176551750839358536798230109855949832457964483393419543927289929235526531646355205500319858950075093107454276467735715096948704093651852799163573550008571618863447721631159236196584351588386349261587623114726987498767797062831235762889176466284429455428760535054923131782532436591287210749270493029630976761775056618334578832539772057066918899414586596392148308258899694225763338012733598032514594221101080616144159041932813748139528186572647579148054942469118671905536381556976168240601036502963565684766504362373488803163128025286329105046777723478806111103442015540495699657176121938403831757395452212007812044160509716461495341421258784924854753986555302966280807378563743795542850968409942765110844301797505130905621925031050670775867117987926857302443941134867943788963807007310319240073750054261635837660248290432124643430221979823563735120808794834601680250280062282951242413602479105540778573263210701749831704356086579025074967820751934664127937447711771095530141453526948912882734790672920206324761179316789515942944491021612820954088060392934552951118164827531461281218356144241124867473519039558895382487747493789484399829829461186154775557875078149098254241585675450125150337585363490801178492703119441780217885787074585025398386096719745447465425612563560625019938985898849242209079403296448659852351227946075932257357764950745209826764423602728138278408028982383788172205046673889419780701736695436122318431344510973293456253937016263171480260305840328245386378272464910575300224437581617317962978357028827513263126634961884209172877235645522696006009780688271301145022895649250088546734050686192249491311324388378823069554621559226923291133310113994819540900058678521453158665857379142581443623612631513421146707306587752283883939695720950616356602766405662188820994298739628497997538630571352486996608218703742640131956964367955405327106828843736833226627748245372217428628936404696352937483980545464870046779906864505715169034051755384980781150973970029367596931184039578310518214034412358068527482550750104956988808733258395937717103089399270228693812437446129851170524174514189754268378922871995998137475768687975854689794186484105417535995714071913925023763979420245389798038315802570590450864310892980795245301977679022574499009933370125893170250159376585838299126921148381795987893837879913802054728231513142349180174400188629834656126179117532381312391277118041132307005959627746758293735900838608715272163942912521496464585469474222126199994819431346505063294764250184964015803250638189629254882215814513599227157543307399402873184583950144645861507353020213338765592375723891031897379606858963386168237840088345056167319503522337738875114102531187686248723015379544910483931224475750631381923531210400994347939511058458445899520878530879643718459969118402584868427972256700306818856127407565003433778816392759096396927172080645958861098656845993961994715432800579193023253310912541228984773242818157263107387361845657657067938760957779360261123138752927463337718460784608355216713731463567131512361656103872015512042944329412810418019276362041555695072815731605418727978726810577395298386529698295194057814990092750851769465446725023126142586656661953262509240644565326654959933870765500822469856815621933627147607115595407928352660788093289876061657750305449088666137642966507792946020095250669982876073799964272048367563587881342073962890141577222679509410060607815421689930269112125470115648205252312767760170013808812367648563560215261660325436080603559361712067836754564717218003484584166553241714741974094055399828883308480116163801755610524025662215613988104039054389962692535009025872768872531095926113018510462676732080721820100471215771329296559274734248332231544997238003769086572240191298621145271954285870774185624241626269090784114326411517528955916194299022345348585678834934360258093578737249989923979287061677757716742197778036820258461351890955506922476497249576601863680023897631258543446734827419995526483702440716354075382871108562489507213178509840345401906330309689745451009397979775743518084069010847276145424707200123094954396203182362771144467435998095483194954294124856265355841027030164124161690240929826919260356488270846670350076409736618464753125170721046211721041477650066184020617521645832307882721618812552824645768551147339634227559998253396531394127758043934575693607171279142499193727893255488704679620525754028245051170849208322262261488072414144938172629010709643354717128681833689829582583917664384628703178192819867993904858210920053894610273932449984774297928063136851838048171030117052048817725059966353642261162647110051028526885835777245629593279516586412169096614101044398658882570756001049765140283821657149038099164351997940561425648891112800906573151333584286053934940434336422635198689892096255970709051701491143433131453859659685498474744573016830475785024491466901929011228010421929209428167345102025249965303344608620985070276264552249149052709117716327930590781910888300043340544658102811177416070833145780831937849059792336968900345255360802310468281049945991221421399692104543378667936214774887820990593085175640718497720968411021541995568934033609668722734482394536295216917239330869872582045488586605375555186042462308972137980981330758079839049515491121054302803627388330712243491102294882327285445344828613421480621355758549864808510646685805322874897109955810193232439519188638785102036488056062332536975353766846971530097222604302617358208727796535754918610967562445908319623655370009134928995514564772307801221260063990066059100647600011246064357524167889056638322896294440079050724622283784593114493668568132251916206045321785156497597937117837109263962611952310280832323815990331876808404532467627069789271666152912771349375160026658290323460148240934412650726338761925504193738339595652088467941656387205949740877912812780400109666139165160011611275897255626092905074065829656054874979674428676108314355007288206233684971464878409771066824586569201658247840264250881844814838897157494392213324133650211877817844630751929177746504690935069821730745513251979957381918371704775403966986105066044688831625152926832287303594202299994977248584507426321628214568840494692033739250372312559355720938235458352125652101393587432850634291086627505541597070738855083181206302613066664451647177311507309115689307155168571780051194377814233038524446570338049584354426964432258708132305249849440454332485161385792585153257083124135597073211199658933829826200105881241552574765314924116786718053330944006846020297519988820184124056437963448041219191796347041391843304410231514985704293295727895937202632266070228864194706716075405745356895477768508815748236355664331703367650475360089384681122076576611567741678228675658444300966529365122561654801626745333517675209388312428074069024258086840366783483402671814921573545852723008055601251869378571418203094526836023746230223136984375628382961272628698309710613114996775567141343867754264754718430087140162428274292653194037580097771361096788499808562110522058771376619201241746271164291185935521352919246117983800098654112450823701990026957121782506429771487073738343789163176701014998480767190604787722686704531842507341062426589461514677055786662854999281664021634172476299164238857596235443542830512549435318635881776698110998326364937601243280978103500334747995055892780846611870119780747868418823701706114965779766136018095079949835480498617528645349968641370734472392651224982199481555490019786121706694818731207210331987981735551572586851264203434519975765247457427993622764691763024995511674154977811449894865392780245265317197133120357711460675481798731738926094374020017336972634898920383585586004824733470712642622605546952893123019409607083574451282872568999478175999678139523779484118105510563088099183797984898960484061051277136676262102950658256798671970875758293009754621169884385830315083906644375967226462775536448960526518922959213890738176682065165102334410781945786191481642213614780228252343445267910111116069274516627079025983143004029417425427796721742022007893667758502653127037353670988745747235304710133207807569469753924953697608020003258888332810190351945899525285921944911079667408222528997109958086535719735040468378359519954303920348088416366518998219346845351559557095723374828065808052732161653875126588718584265312321860700919829522734200080014240086166337041592914202619804912898757202678866265363971178916341346830742419324765401936959546412470601246713757516196612641489067147748860647767789596757346251824772184054033142325611899751102565864765699937526440053373971889656431609939784601248924391333776149510819731661504409632378678615578402745259846913749897287423404223598173528669968418186525983659344395123282280540482128661219174904259537049111144556285561618926280135442862134645213104978380105912473895039467859595396523650007222039087906689314680433502517376241671330430073129451349415117418588677950706221779692771893907571017418684424566681420652208740158881882264066085878480167382398291434935055020877138446999604257003850806609358534007524754079480841647420998995296880707965688320958702562914920252007712201978921802189725987450705269149976894513541201999421076339298510627056481197005701908714509167668232000785430903334944117646389973234292128175880666740501226559558386483410578515688231297685962268313046036460840794082934116287140689212008603889655157062978683356121710500150222439305674952488280830083269675962448484411871992879027008417436090011069416256975269060485923462842948465730854679068261016866420048928396860383676540815231117213799310917126449991448892147349333862030790223705786712002192321992433132009441480137868837410772552335987435585239797236474852902961259212545331826300724378433874700158650961039977396266654221064118082634184433730709973157688530317628494619575294063038139627718687253617762967473706133831786483095284503066608924781083695937689252115719858449129586220971066460674066178868393991367936237769920317927718439625405508409373547206160747769248055747465281296781863814987775076300142242961973787060834507511111320415640442602228164166929295024297378297695294061426815595905329065109122298702761883626769174230537025121218935612127925093141004575105415423309783963695224406841486968836021965050872135096414899810168802590888341667688493313911240297115788761621279776183333331347614861593857278507349907196808802944199375140874644192132979809886580740815926740661729710339685926202157567135918988886109545888243989394478474787464397381877705931181236412021588006797155700858608351105136046010163633701289168337883804705315007184669596642058918579922086035589729613471307312487308658811271296109923600593303024376831762155465495563621822756103626197101646368822826291778807400152497550027730445170962673770353489590030622992650078385981423918073848430187175682062322187348549837702098903949827056897678449271442412695002584373197938995899609489765123694788306362667753703211455902302693083762716741267435156178337901341972512757438419644564497842523290293354912065373788008438431790749089754791271618305503248329423376834747300380763451043731349853475013814870133834626376359475782129632429718659297505296440283357164958293603054274692111515912189669057171569685734898053611398724735526943020001323028907485810724015181345344550798740442724473946365286686972775835165643163911983646455467982413283041406187375357672968253541524221426597037705568343170169762778040500371786776636887836600909674730121308872253440246337880618304999246891957180324450795954325725829235223208942694741461440498457753870981253509308239635764626263794736437581628940435246576851322051964589053781697239828639994230753738653990316632897286510995188085488894402367246582239138331190927153927291876172807130897676970317442526706868404170874657101601369682080684565172776643088737306340404643454279782777874296453540605506243996814287143944215582400753844884238243374055041110186591407661707178783053147853760483841011352367010105720064566094509348611599459890275849791571201628715304151175502511744714164827833086480014639525444485982367029964013788702587248430916715973950048292065172955508582026714633864579360593676950282803343296520014953464154835837332498581291020748679730800194894604070913224597316858299475685047865873184079089422858456908639298883179960557574068538335326364105315475475801667636410582993951705028979304704422258855626933275571990189327490514562952014424193428904267057473697629288820537781163815253611567565533368391467033124262003404586476280601275353677165148493853607548258595673017403838064518847578212316590083604141538069402635708603270538636934025946511856600781079736905446041376511964691711030334940661084563163650908423229625747602719167800253010163835051054070649618772970370861393764300724625047957907764654605137476126202972738488099949034889191570453984574504274549009823148279636594529698823590490041533542615089108556793704257736194216974811964925904133550706145394158293787902921333546931926964471247021591035627852184088699277664671442075827689912052076988290552209247320942152030305018632742776884485633096629609505459227746825502349085174119451483561900170160802386632851311113353326609313907839876303696057164238500673277480773967129763521119631742761741205653696550323572567363488435532628490637571975748826759817325736580383431519493051512870591419390783670286283191001494224870365835252637400288915657778070745412242199789737356405134541501571558515117772671896127662172873788251821295218422001010700082503947056974090682244301401071304979751206330486137482569725451164217178873052436525407940680561819640765566200210737432091805468582007006966115623551071823167286587870254312235543355789175701934454350486670974382898274288310346074323427815067447916916765123215728440831155665650785807457774909339608322559988758908404165873049776879963067804722106163765816633882669844552151783958833926567013237396586402720084380445992674431635435378517832625092643114696345846393364714387921171117948899025035004953980348850867100709725057017781458412494833739195121913322131530865459936961904000581976011146614311150257543948857530998309831572949868655275327709160218311323660242483363822655119477988579706181487324032277927639167482335261604179158586167647196781031052575263511489212453963555296095372475245981269849285285773416696275012432690067193865502028189885614996374564682982650430854356846916902994704278452534428546193233530605726856362427784515254937198691046774520012265533706442473958099836619219488964686767960945384156504348937651978528699827508430279577450883630312561642698857906223953519020651519609194039600803689272294006681332132937679296410935058952636038254449333139240620223231744994288504187842486199434542262251716351566144772812238265446103841348626699163471415845544783807801263742701297907983582578219404803728677127839184594615699058268055350098629737557243906575834201320169226173631433601200801297619603516185109377561120550654781479704591165174289450540621045575145852999592694004839531054318455220371495984386000880056755272022806790650961611508427672360468128283154826858719964305232635653882429645521002088736450784396938258628427694957592580641835582374227906147588812978126480680493034115286859197715847993468351427973240043009952026861032890499820499135422998387014768822847218462313609577319907894294903239001739243344888275115649412224216657022240650913122654642710555299948973050919364710841556746795170031382083676058957380820385481988178449953872975489160744547817670497169685455886437942529088617532722829052932508445796796552823121264759326370506827132200930380075793875856561276870236316998724523445808640643888922159512506994107753404660529250600030675907118145622094555101903073337291321708342660572595235059379429093024171326174967651317708258048323402687655962259938697836857117619794677893666948289461408081248969064975873727900655102328266262329589801407417695662844815307188196558832516605414746611385854899427293488112495445041400080520701794381087156039434934763984988136950097492805862221055888702071443153538280451109510276025275300273972109811422705398837239872623176022530153658067501919520295274543688794724662357208468015368848365461363462618186401047098570104306639221428751992791242236980998836735284982236521201792665327757771046144496209865199812163823796206892624186562345294706697883784887210550605058714718157896235440148557772597135262948532911064906160241678162646379535830297236633629850804170479352924608550617523323382683907035921753495775992307873650241667525975200374917846120460358570471061220784960605030099614665503920910446467485286258927256996636781014586410436271008334200257652578743394067068346519607326100019892542291804873796323715796398181114029321353839378389023138627903937024763490893749823785031565331861890947925781450802440181775267050431802053826551170555069628078537961372324352218289070648702028433927505973628664439063535830212266921223290761251982224424141528436984852988521461348132012266050289274252796152422028793699287923347469911298087420829952937640147014154443975744481599701430382766046339231738866884199260620941458138688734839280782515091590447736038165379886064104852860235615161892359084047428554459336712862605523121714770636169344740212855247723401131587676352074711179762718086608850818804717895489933290372407880049948603351451628534169518288189428590660912164902583161722991315453094886645461849379539248705616703995262407013366042982723812811936564129361452768303604695139371081576110971131507878303976938534228416780345679831645689827237068157037018451862808968410612728656978068060302289801064198318636949623237587769719770926068590634311756780932802696057347066651411469647340667339092021755707370431812422259764313518564588505726728441558177040580402613200155207387511360447482477698196234072779857734530986205456839941836913482560756591886182717576397555222749813448001423231999957817511417853017075628476902948487625179842686931524032437886519058281634208662358971590816206820772592468490403348909640091106217199537390680497669298417627306334314836417162786312518820826077166831882448629827960127337528243149073935102354551996411310180839092865367289961875162141548011054265538306514359845005460959005380186072098176600789191531955873989333549171171993779596061221455691126142754833746894052776266128122339785465104233188802810478019400772800298859066094701610127865881277036285215720949377584423653057540907921642466463943998894305022485509922558346654157688792180493503869054463293562362225360372478682864613944810118411742952737882382202650581257715657547025423278780741384648380997899965598884682353967681832109303356028435651054867772050664255106993513054320294421719638530500172963019154545811876624884836603851320774303215734621365800666208397433630196372636663941657069024741784612983491044107661383371702648923384944488191858741069925809540858626513244453911055731804332268610013905301091312313316839452235357467461381157072465962741373716830099763287685512841592310564708167839390937323482248591598203540375610665315376255935535115121414850168957053764916710835280050288134769065349979291662453646809154934683829040724081819493915690128553836730697080315586588433809673833520108862561570728706580550647042556997806559931574602588451764404225701335802023957745198240907122129903898446362794977376779296439956059887076732083229850990429179033023497992270547873519958729610022997709502646366942372100569254534910534292531098891731275257986476495993861439532430423615916987405371644427007754864776146053456776348496491893232634579589358678831947409317106810200495615972881309461112280635188377213912075839247145930862198974218618705160381703555807352601774041243003128878071837413849281896157189521526936343017862094035747217310090584278204171043638909279620901597977767955293711095692000867654420175595212726001481567359557392307346831378686081365925805198948615491769780726039418414962174967048588775368683842438457582303919063143696599202961016456106428748434986441066999319481116640339356119811486249782765094460561825425338167225288406623850610100168512670188465181481117699501476747196318318418260296084489929306152667438313028923507834937427388231324431189769769187586074017873907612965355392342700710408889987254850307654825093948149452855563841350150364923561085144917057673340354213029534954978490438263686179377180798029340970711780853488547564381860459100320950972069024155823464611026521037153943953663777545786619292181952441742369891320134614036661006312782053924908227902158098084753454536176064825661290438442817789841667419237198594418229262390215799472940813080214954044408476135427126333468998554008173576829236173429080849295536004560390669790337631353659549514546938594780388904143960964068137070653291781767384932814490762072065059659482097531177535678636897489786971399574284219544425280056145747396636212088852661697154624751457412874284727569722825151900942883745872241485971535892629869406343951611937193436425866928316659333041485072971291148167806565866799236951907097658213023049781191639482242467461225704090681583765650600949917393120564895923067478916178990060334153084417019483675442217630777138919747597004217078462224552190816750854145287563709484744239883696846963511020998076330188046394724682148227340350082901081136432439452419971211667255798328835788962197883962155414874906312429176890039391079583250404708692124010661788281488033250209540325366010320337194873382951176104212319211776959145898722785372643295347589347070607519971137458535707270247512975100649959445495968937209980940843253306336302526748296068750850214209128277470818581768828383284542711704110855745094512326136791938894212918108952762433233737195451297180247179726101003113703449782494080384306548417130180157420074684471865163032638786859582735520532157879353902028196107142093508985303299346437109052617740470986553322883356641244643592072433300434984355870079311727446264240706644597468198783604824993188778099398825374342380886546786584970522981590416822067268343021407762702971012019579345441815564443811794395013287427578551788790720455972481228922330839610320226409974167010587229660720527426477223619244983125801596253582764730121727256130391888812189000846291817599691672392998844482514197454250580499482563484909657693579203581759835926107073240137902433166696043047257823486116761201243026386467670245990165284175471123082633892861441676925148545136050888550272734531332014227073059884098451883089107356223040128919787485543640994385274692962940966422574189961776802985418164386378189147853279070076306265502417438151840753291407381066099942681756671717427520167205865391242242730543656425643861674520287722219743911624198842646597298881922115555999785770537873288367679242506062022604996392469430208800810577085219181635476098591780541453407728595148850019953987336280855829300480949464044004880591596069947489880097588115943762543057260220384707958415356590062025394167974862279670787023480598519859620512632829789795449599512664194745030626588111967510901953943788661339537086667296272717243214409863673635451030346692602310099694313413446847982145474446198621432421115957331571309996532874889254733205562086918127472248208651845863840254331409163761633859099505409014996839076425531163002159277211992427170017656800154982478194867088726481150737248399177074813846219218581444760044722752475995462280820421036125820510806637613674297775839490216028118762945880827969312270715513344170163029181288429124805989906287280223285279986036362110145756758823295046886604338380596566661997764128897900314889679383111117734911800354513414782098695338789358911013550193672949214044772581832746458143221826923444250974814143991867717446126729488937179182524692567512445244329725523781927719985951088639513128255504338871388591603324351699346471828422783209400343368162675418465999405815566149270235726971756764958376923088597958229110010497275997693220688770703551993807783879355500646131815378294914763291915079047634629107242376990146640577900941269847792862060355462079809189274221072948221170043030600608317758522747181472257785283808591737053787056898550356473355696701890216925327367635528766137834410886484847565478844351765222664807620317897033695924922680733677535793172685234892799048940052490530365424581006398694854298179282469619633461274602849801370634474029683295090944753705100921493875085437224509889198636961884883658197634767248768538040905525309480010776692672030266074354717407667018993549137986555759117665731361598914686605749192506667526786471461994221118341452978291526180368364949053506503311235117380469379807684260578580663081043645857114688310105182957902524761638209845522409752083960575748086740566779365601788696466513042665071980242316380201507067972022220252728030490565745036830034868444756678817649345115758937890914365556441064555786136388582312590509450293565309689569435747129775486230513011795555923028765482736661646445613752907750519187274300087419846308315216033969704463474115726197631076667233492963943024501727304561418637068056338390055733926016126787050081899198019117000737797679839320053009930072376301243891497761483346606675304087668801827622250414216052389243184872075429274971628985478682294499669416867391412817384473193251921212599014699706153598701122386367513992728854077277227604511224889002950699751337046006012133273015771602404037668569458588128893077952816842410656787441431679596515095425768771067410557094251335399777455760931853162141278963646252255253466953995687458260674601133280698436128981049191053124021763554382207672206413486036961742542921563083658182325634718398709603909107129637823325297365489021716223595098313116344567480718294297486985277132191666908348240780211910448478124577915478579386618020263442573481572122247449199860701759711013841610394090003749512175163709285307307859946067082933500126518344082160467700247075884746123405194873383410151758270399504331190996003503562148307032120373872719476141967143375334496390314511977734920512749956950007176484929795612741882878356848253211407209098746572388060275507174426012627435321211442168778964310504888626879888334489287725702334991781578376377342796614947925377602583594503373042910242318662752505030563219739890206032985414058562713586181630985471006437064928038588097088319336282633690387921986096100122728189586722793075626906336809995237850983366509835583645661879142263667788902794060184743683815357802127029051687110525343282599983411080832766663305655593532039934363748270690131787125708571498327301391945024866503935926765123662774229702782765641016875006540608905149772181958839547700847876777763293871378578795914557911550426205370456949070069081355925864186488095877992333495743230636355335567865045012206501639987111965006489313077335076713011304266702958909395048374797903750511316846998809288353690474434409427863583329297869411005893856749883096763841046525335999635828855063205023016955250293490943434005057672532511753062546189630708822051241912187600153917571885414276718699282851088291426468050250111103452172910773579041252398509443808966362789584219767250620907533244307757149182752587006307858796049968777253030750432752657939102837875430372807256651046333844218075562003792818224411318109603921656161558016483482576435416701400022011254332356879058482831215825510074030921874917298159643587368928496954925143679462967897657450996164515296860893540868262134629328220379270094873345482895601317931500542647676894607128733928945859007541685298868336098576249451411243115969704319291805978335487192386132545689719021985968681987646262988832990844466402540711265462515105924354917574352278656519237438699309947210736552362935091137678710058802452193536266280213825737788969753491977070581326533918569072107340005465297360022944235925616051143857756620271068403415432944176352382579744797160273103959484225768136682674481335625473204009793475889693704182100304140679370409803701890612345862198861630314127967988774424318710867254757971813125403420884851482416793980565634523082855114435173358734729155291594931805729037522594664624475500324378542258312975841955746557193448871331455153365024203640220047186162920635248368619961716186009391020645926764676202148409099413762851617867473297157008062899002767177005942760592966695732605599966890905616309713772212535323652958331691880071513813880721481921857547194156298734930420234245980638169572829387293788989574372705217661742594471479675584279537001028061337177483756966428983989346722799007470471958612207495938841352118546152828661899151387934207961583581040719052013125757472248245392930262790825694929611343924481790043752630688411218368534108242168154617854784084397794238940289627192372634080067858771172814750376874044085600325501979186767076101108373545297849691611016951966225600369332901628280040010507841324900515910742806296020410133448674161434833238842279486420278667021192144839498273141572565691143629433354211098484824202113153988462608112129303329381609601530766441742903913201116405507142987953378053992123356744991729532267923301244210805041091420847267767554373977671020772414041978762299640206452585101490254528269300057858071513974049516385448418968357479645016860859072689887125983741189342585792537066336254557126817681851354480837083682475918990246508335839269787288717325949359249644251290898873022899222458591120023436132993339940488918945702018752541310073771212588697659674644224680029302057510613734110291747184034130511365107254837117101182354928167659270005746215454994817447049426409361667089457976736098366433272444492416961006218441635991561458496672408004635258347371621561778378952463447924608442510367307771965382670962566230582451537031307906267037647832523634246811513714449667489259482471742080751966473675518469764857572919184729669939344656874695566843038899181337272273938943825706313254710556115048522693279709514510720032644469702819463479870022106511672073812178051155340324229979505854135284512628977112379173329789816508270462445954589386030392641638820276440156888594337833649370024998429059384261146343385529875582950452401511626089859826114201289891048786388802444702256772838539280652700813888275907146989822883542290814106604802502662358862035393648638535222866974051286196919628216072754980220263288674133272949554075484260641108743723808201767178302511964151198592833923872751089094473116240615344596486211224440181084384411829627462318852720610117235637041796016110067268970781423919950901373786236361529687460346591997662438260932048042971496834954845850844266582569735741344740009655327650550107118357453539518055083741849194936640741137601274171577776299183088207848703363042472819396644108494104573631386916078715408991080270691252542609258735654286670529993910115504719116062411262453215452783077294414093994179547034124996839543079139501534518435336599072532476052308709505157250913371525308460339785161703456618538010276063574497566047879001596653737673081372047295047930801371835234084373971468656765682741368461474452724501746839061507043408944421546228820069910413555612408508024048521244966618550068276306567250882722364017777238859696638825831763379079294715627194209786892146392144018317010412226847714308744631870474105659627455538878174498956106384975304983531625664480028324826805878322918757404958271735209622887089017686920382946484361135840589777928539109644899807969439381871160028767066752296366456027783657168656906253050809253708382053609852431554806430634907254392206916801621230453302745170141646418547320210805554242427456636621712309085655131787520035931347990013373284720697426187215312650234775997749780108281486434224409598935879604524865529401668441285166410384686570705434188937596502918851178854301386033308409386478357953681986360979467471524231915186847763501537474251237817037129206198383779371668422800587412354455650736630405208317389496556122772033219094265644119053792276990141429059286509479732462751001295318395574525838091667588677944409422134579842460418906310608186162101450859604775525372313303165017809886691807551890273194109823490282831216860695303385918707991029548446151285127489466653806073296325805063625683434625470809373892854953064489165474049489668593269216652909724753167599973918824952213052631720480703018020185144672934652710858137794305093872874759391729139137714080686570870879799184651156261295395477382912345364128355572335920904024893440897755924463380364718796202202890588883048642923427490451403007235193671799777238542985487902758410940053711113439683729917133800514480102715393594173286564758393017433845854471323738971483563409455441917177571568996150584011984402489652024002876633324809730819964944160882371374011294943512530015175149563475814719973212901268261073546064117912286923175184428341505214004747552503323140232412771142104473358743998651534934717340940692055710120742830119961989473440707494903991171436668570720582556537097469286935956323766922996814778896328404579315118529887548908550981890280447713005378587082406836016043446502883313887132160458255807816650750909035574582802918711017272216419335822221526439193679010538424441003037664336112281421396222915304856404681955577868606362474554033559811942442266653694652122003858809565380543000377912307587285413908582179954329890272596266332942528875296600171978740134973912241984856987120671239022470208804362932793183775932528660940019536836349012623704390632474080815840251061539590855648020920284048943364332336805980362426663655257835361639807227318212750346877004694556361180098290957676430764320935576362002395632697861409296073848763051388951771267050966242096826673757414807314512892661336832128178879720568052809871130224851743261674474010423952260523032467611604203016533183414533370598301468299514779903268059419637247375753860871277811769223865898890356105963014835113103019838321920902772173975412404962749746962099227682366330651908970041429796352484695517007048929283387857835747745398776894216479364399929609899254823702795060672893940247311349612931866963979525550001254302855789306966160723260259180833446316843246125693480752468820409445165768055148394753213952189857868963298544159847810408275900232577552861278865354759672101567235864915576623657833757669087954902152074839128749796741196893421263104365851582285183026412978030842016824670680084978882781966275847686501607308549385323644385829056427727809854313558777483116559813065693421438247751507046534155650746056779160246962092243557511831621921048634298133748272604195104295137579512774967995348440105086388119879274105168402616239551590011746030352149229409886407706643626590286517925825473199210100811579985757387698589514104362965563544173625247578768766221116078700170920319044964907959706793690161730158037911658032718723548489490571180028147934769885185310862616101681860718216644432384045042657915008054898346317555994836446986115296471221026697287827371778623666058717309648290172262607251042997730398399979663973414430962051366606297588857633640931103504915701865107516331897494973758110971739434199336632967146632794906078587086170652166548602542658120469410931593325881793039634548177585903969524747778280554215592683031654503476041250883038694041337034623065446293134387841611151357993141531174675192680163815201993347698083788772113062140367481171142557530459509232987488429474387460769371411001260041164643926598379240049190510415767298733881836658606609539293456231579647024468569611887561680134062465895413422755010103334453039747146944275100217379086403075441037293308152256172926978458501610905538868523306030950772245885746521761896950015677242349225448748178747608758711346342266305750217722827304286634527982706134973707450082225212139480622511317394634440935541907727868964443103412887000128515208270113589903255241441033284185073412737675727344801432870137988797584756646470835200791385903276095649207597810007812610075535656437074353136017793129491378708787738304001718078489086623705035170813952891047576219587052310406036780804880080041999470181302945372871822069280607272130945547027931119491293544046085696508672629099054078867517068785675431179584425344707498543061039331517146013705318007188310060641373725023525725862078047777072648081248844699520656360500206154163664765364438788515004739730426927099631755820053199272625811898736015204702797598973036054638482469917872676642816039407619864578734809662590702159281168425773893485080364610067938135913282965206058235419078059832733374478716052659329111354448107972769717910773423804503455450201078754408449907193136346456957511287104018459844319614544099250758561571052185963552904986166527337276806079232832587500909213331472131123980412833020957220471654768772395948899806948953879070392660511864200870038129369961803180544041544985257243358462126211003231957324683777371650894946581675866310460548639422872414611162033605170236107219038075778007051841273772283340613142847946093824186332796276596680334490203318874210378538764918233756600205593776136543531229056587164615675643449403020160210568595546376848655440359732322685974507002872361578611629435778373535100579296887947464395409678595804958221807484626818379023537512908315590834509792708121175565881416335397454698571558328355835590099423861191841449920822249976953046943480468675885552214972993076502196064846338189979728681138641350813404666735702738967876439951932939574050379401645749408360980037293258521160456469368329414586713649517332573404654571356169193421674455969350312884523192333952549620703199799857180525920675837826832441108794704414278959242833794620818903964221365534307030018902708681020311615955005539950212945508485969661350689142868670649446967253166628211059872991955013803807287671541256373251419807353704002558752716521734407096754535126855345277236746977791612198049578890022736753198704433406113343941411098862498711798189254531060080096068723571227169027119676921902983655095269635895090057337449695237940841816567650929800594781374083254787980793205984479371469189147956596014122920579632413634356250727941164091310704170234555127751374941919806299607940816545780731013101138569409255776861691832562287146397957062220985985956660851231722090065116232621087403484695863895100419262932023885728903232942396224773993920819759304073277433459507252194115341150940433469813317341758905394090920220718455812209483727917923584425820361752681447771723402798985145831699943374176076576544522924125406919391599598583161509474963991323735643444386976238121991552600740095802309383560422443852344227934338055487868423143735196009948771612498495529266664085792446544582976707421214453810202401779857921674853838688286198171048877198632076108292688684145995517776638607198547057754433461402689201459368739756218712322218043258433846984258327608984977174984288214996833136353767046604660387846593813206918651352613859910913945486637413677795054706532930906195813369699857025552112415947228657155821943435778006832367314975240632736321905626339814068180282692862539417488280384514502600599903413225693303694548229373156463009705551490681123721367985053617482235549659766019448176361537574753366642173478886031076392033676079463578964154156416755858804283218402692472949554056363941072483526897255937581542177831610016917343811862819334535415045018817152090408404786889680015565808850727894741164434735994686696233232792033366461540844978138481592577560971987517875221574340822118611800136576284382616625658171572736664324780702619842676187653291914801017617381280268961301356889597613772591241948606183342292349046788055997997029401099364735694034787664392240658898730879561712194169141969468522382840498131620070753316707537705378262864784050209043627247327002706857628980031372636422047846656180101603027369765564358412881967968721313872228378431256898843495387287275778400932201550070352559389211130072890222225244098806305006079163104888635975269301960876540850995405423079026444580851002595173295658085946875090448529113274222669504065916107359385600611230275084229207186620235981179156300615684591651267631489080417868265070839242230687044018951033123107877576813949406402036102053227417876032092066258658885664321285496923418073074517583956878590579660627623290556763603893811965477973885001244900220830212618808220079515138174490522617030735146261701032169291267821246813513585339796251320855017023895576581852889998567089617884499543427134113656385265898611126031294741870596897114311747112131294123044107349909235701418780426306332744158237843881400180859897619334799658287407918851797076480006912160529277675965090012425680635773181883767231015116974236198997210122347185701679039729134280200132022489379316142864936957244691675112372596808380983511007260502380005715181273870190649636264234275929448732524249434000923526994446130624616137934717343843817934566071920107701851595777921764512779229303127393064006285921880678066906738080254298104881673661594024456764847627194650937654511048147376845512178074692578127732485923199005725442882381721239427738130039620782812876530411923816228016150228340279961670987388725516423031235107656026366677307947576718309215070586871078467838951376975946803086016965475171817685763347055242798348538209505682470375127248794150707119390917625693582420313438885435263006637781925013539108050041981886360501940723775090102061818155363254405485445791614903785515435722561743499481361414685044543134644196695149349528319489174562691257272138409644206032278198226247656720069608093671583443021745663953174109483527940507577018549504647343872686654714172678464626713667013987212705891146404322282657305939429507555464486459110407416507371579323644134231843546614187097898023988890368401727883733758444345978662662127853236930046280243101280633229243913966989279801857673119583945444463501392249333944780415643988666242413797416535756038616682936277685147318685591765880489417264801999764857041721954981962842107943971776130143285946306804580143825805309674371832727968843387200631017939611682869138027372284585144213707505959231850501079266646186589375892678286562650259468080416207971194754636561858643086244720701214896577239752678146941097514317787450789392113886268227171840954978283623420328934084410707701227326356853914574728087936121663027085070262690807089114552848179778101497591706298747279782337970452156145440930100949567348430062063756073320909171881288500742696272204204363325682877267962686344310112654377664661503361525252221695110983847511895714525959776187342184892743633625848636162638505214118216528104263356517457366674003988939746209687356808258149565011974449678159405600629003671687894146702948087526622782728232205318281321463695624687003268066468267069441419770983665494532439129597890465348747902409403969020509808324689461363984416325274583731132174686768913131987795689371522021810834521710689283152877964195475148285277323074715501286334123916684080283731304551461026803665174867276846392668013265032311159167384260065298477435725020282419478573189039214853743681628262310277012687389892815218263294005057090518135801799391931537356211150600860482414763167944926978831699574074707696842198923052744655719947668957535096369150229154538901653347385105866367226219073575087535170999464396258314277059896426564769932276361421922493827799057668781912554663139461160714447551561255346705603922208761673036045313618023948517495683542668719108939350461016656321240821821398086691471936383393422696486358482922137965056521372593610502004045066431645473021176945092044706277305301633430460166318371075357646119027678103808560730926471942682670922769041302485485191543482519807603397832986867442926271607059213953199638524630946308697216328264441151801469438251749668774193942194970881213615426453137081478175013571749989628345382241626757619874230811513141783622011071159695655976102989293489524076004651092088829653318045228114914383251834462553048041846952392108893627866674379103499537855821430116740811918127115575803604379109462327309190118698398901028700193266153270548714176821780282312142729712037981174135054668246992351744629982958457929689794315682662918623737778747442684063334012531792562434366521990550563912884308243004872604524269643070905418372818911954076391815007992532159680491707212078678184162285090303998690242629393207956220891556578552927065077451934875831418444125536574103752555964659490109078485703669956114573521371542984483975304434165528588477196830991588092228349416815934164384893483016764491422487242583926413943102522378448993570227435698270919479837444991682373355852543050963375465164996775294896793087734414559602966862562499845775398677651726767987852937629601554700309250981758612606722391084068079100006369330269617155646304998967567792861585441624579906831977389709575630708309097085833209925735243507068001019867188404034310889418015289228474939723545921268341541650637897751667075088446102220568773255261580680112844732203313844362772398271748139595910059417254658675670647065577723942693101350380824200665748841791302011874895537968873517367872966490559671249684496837407640095788207812101905647687565462270412096553475576169905349884591204362686778014356912472439270432797319437377191556654690853474458637874211452976621146154130732811450864756835866087956695062943406027566590432222999224771191176084834069972018840318388263322433994664444597278913143480485505720661684259576795786300386665454792504586547531438003409011726293767718588176631242427936021337142237068819467444287603063427554062390280390481582263069927624793002668738305773700346691606244141311574128014368757679784655801456675905275757203897293489643313644951798501919384129298194031192525127243856452742338936632800323905691420253335359645518485672973607472298939597453162454003697776830215203985933654825039361301745432848839806364486200934307938811872329890123085265761692018503827407575932417087919283952870412693996218820671600524824439560485461926199989428119763900015827792287071621062618125814496306713361286000851789429748293126935721402224936037667450956686964980115529990929689226985790721665357303234266135778427796689343346083528167081485444177336959064475887562254505905356673079825760191228028858158856738443695613498849548424654686636907442952246098279085437875502877617571542013673776940857616171237223487209976174630001059793892653597484270110675282940897485173420977143200961334950810637012662748074924661220324823224686803953146428678480130496255757852351480761532856569030638511932406246089504021554409164671531898506234858065338538870619567910713379440360515343191664449464233892617967650205129895555844907764073221748182036650595964594840581874602621817878205562413637169747470560847303709301207307643243994006666535228209927652330962682057755477345783720890949776188147708606527250398531407400510632392878821834615978541384479884463228967034929485427226492857901938704350995884162304284454532305103066675495430151773102295380480784480827685657027688812720740346207701003124211494733695532850682405864231530294731713821189757029408270565098914185516131491641862611622226187061920968354819120555119922429959203125624827737647855983448608747934725609118543321898819690297769589329882748466306868644691273648937265929267453457685361767585465061763349319718705423457526546865729137117261526261461423112422141207822101975600563681649193546886102222737769965191248010197221356701579374553628971005825948305282217907624218228586805675472030862643328518704241658827036987977205154112537520625777156029166162364118023797247385275708054940756327028291347057035261479863546476300928944194061560810038900169281812492301425074898090369957633178911770310914553105151017310606136235334961739449856539684211369097095582027018148915781260490640457786167233135155855448458098461857853371342682067838208604439460250288698861379026213771222921170725971099920129644661511255793429631470451849791766084285095868639795552619832723877315248747404951388542012080097914540656270467613759499073448016998656554533071849828401524576742404456345383750636012915929156430868980224154697433121757681473827940813449341285040626968754956316571724832835150806301694805206842478267987439999124755827016567185604814187483490136687269652845452532176708369945491710267890569912705308603475550104923589122262460549945799781756011279684054011359096137025667565551709586913707613948590879058022761020724945363374247504190739447290784288066487292373921503561414420401022915277040399868819411835469524881948660306948893552116477886923295301343610506505634556573939737404186057731664704940364434773663186403792162908863776188584874402072768218259144145205348729502795064540587054851817906671165969086547419883896824345877431435795038023352419108090856935353934666734308256629792009953813862212502698888833416169683570553660448972531733835202878523195257562310064040341301710547148410619357663074855252834707368950051373109748572928290108678027219696339700746898328434786508010032194324973861134935548488226606663609743392227092422074295666654706854592780017535227409233553776527859999749573972847947180640111700981024104171149987164099166351925419714475512814193441647112291590305423559370228751375569127270219412718743176093352233534769088077668005169126768346723241458035458330345837137699920868603726229725661505052672815357807663772571261893575826098130746867275096975103761834967096115631624669571785032194844253984285816423105846000938233453607622653584211146950762299654659327665573434276371410634337137726090395646787616076214165416296457732129166886294602184949406529175311358766089933764270394760063842979481645550459940621626274885295705857124212327092583638130391202024839345772850588562196060627314760733570859963870997730569253874265515685031932824133534053742017668241186979344531952102127647294774634345791967475373203197089200535561500258804620950886687740530273410716279560538737401567381136647449467351841680567564505116503800924231902934713963283624548679908223895286306728307947861330023363801631277335620188421455308430953980721171171652729472470674194950292819014886466802493590310428978978095963237010434744924552221327654027309794433409367990152258457002106143992754769101594331199209036322128164727136566701276578281300756427378167184954056501197499140499937661935814874781555596891121406841249030227539952411685464287447469811109709996372992993080481615816955811066242287792656057592759970095685141277586937318364387594780534440814430135577575475105940309977512572527906196918396341591168119448785852065047907788095285140471824600674304060988223201754781555907409623945085343729956460450378392815284849186784545819226693221023009089958036442885214294366608199015236615610384171555876950628780323081874404822602209102981282752621296296378127985762735970706006544007921646570086380098507013356001851783612822558210492262848704288762110649256441698498573086112714951186829048700826888483037141688491722175882147653101878286758897860237532724289650536396745718291321091818482222438561554997526747973436240610079820082634348117856161315102325240532253786657809813294174411737012729692358249712712596573335942788404791821489926149397829032928464706798993244463220122836091471829265152340856062703572577397136700989795500883521268082520791011768112462184066349448636489321735634147566918706605584679715864556583188224943336196528100285534230604481273897454055657304045569795611110031465421805098326680781871714818276626654834875331025495306497728279219095133458261695709550259534415162361913017633307117229562960356598085522032635250786717723894058971363529211621086551816842879741121510992891147670467981516934642759142631397669513490459731989993763442405829299025034143063333534460316419509587605347917867818725601265074720230206582896475739115645871415128220905889834524392908576671140236345872240110152567220729873179684388278528675609488257370692363824424398836486564871621016918807814723470322866998873187541791461975081040128100488188906328545692376230212261613867173186184515721315898612120297766667382156856380841850297165803596046724163246495854607656955189382662682025435602375823977080095067808709610692429160708473682088617088657973119264224984749864214070297816909631368530201542931108082540606344532054759308845661380121020434659568773475924254069592148963272946847190375737381224184949894923332080525162520460149383354472126480023403779769709825431068741609265103695756487247860247056775455672272286186099811180920616690979512560252350640955913080620982493371855599603126859224359979903813297237606968578033686928414962202656492786831553443783632462686059509046933021900065873395742590532365827845722665708178259572161229046485455495708952021172238874528277940924799942528526642355380431957767144273520632435898253530999920025609317301585805149367442090309858567428911788748633647090828839662467478804274547406097106918367555008240317152615428802572795435723106834977354960934392662194929964793758535070548890137077184760711744044608074503236388724192395629342101409127621785764551832794452850504370788259208238005305750474796890344065018358064924363760132362171973555224609458897389673942787139671460161150305370869149992424345583033181181014366748161522886535197131087271055152680132781340627230359402559985210809523745611631419746321435529544516696391300227650223493102371042292569806283946518436346753756783674003293463641456791338598098182538552660160990150488216921069654736560256481882503626296096616575072618639592802381423819291974374091504400290468666578731213686119969002997336707357653896551387457318800977801767902585362702896433685432137199765790552439100037862770830288466991063218638804451586904831789779563472097744709598946690886740310367130106726117118645625050106384358374955689928788662598763018194742456482328048510294847458440444793535916881156796567093575229100291679081472064857336592616098168897988195175042999314436736361661479557578837481157806484532278889463032364818583091394169491178675166493620425288702291196522663876492232291854093380596847155165339209548632327191832962615716565854290402868316650111658598036288612252703888476100924497064601453240983772922883919007763621167413121470208097057154601198366098903396426631961056300113530235932966199067049965483749504106689216913175948822246613362102524679033329585144678218899628885984999212798607550001400059479063227577676131037163570855267679635487427011922722626522282948127222879919928261553622693546080985244780851821889449427302770948312948175267701703633896859952764601729058597311427287276382148150174230655300985064834658920609874946704946285085017118480585628179225753488571126144182348669460524099375945773708254037322955411710033778276124280909360370378784635426604485737498574510911340164712634364074538558974791960872234340037322940972701779951912992871685810251814182250350360802877782078296477926402503085010724496694325238727868980704533728330412730455383947148683171517613631311164896271556310392255659505375670470846246070242741071846145041525427451188131930242784753338630498326103396900312527732104477266281641465760774558992708558956854548961229152531008224896709950233810584878563366392563933113681325939314952652047291590389931731745460463287406554616018564626923331277271070577767552660513854946107075576649246714536867308681408262445427153411062035924727774490975479687610540712403686705318579942970011874073683424082613772682172544525742783452763906306892401445884599740816802276722905671392881971816912869912556372062885282636515603350939653543186607119138235697236726086135194013906082734796639935778779163702310523830350922105837524623472885725390371892696342920793734552353324626677378864829131930766318134233927624380129584322222324407909665622346531706243513993817517776432710453133793750012918239277287485053367395929948371651632358461666904431581726880028792749267668662574589964302004781547244778438592403605017570215842761460298851106582763228549229090153343395491179752962783302128078176353962136094217073868619294016396644111294174390977738106218285170986049787815971246812163780198470380686391226182886058355776392073149844115286687793495276456165752677173101329835482803706093983652230896693286421607973502314410105313538808636081294203407926816828532594564493892411974408979852560010148596806948192248692674650398209526332322537730171172805461392527757114427675888731701444723396927493378288390271110634979211154222485551404811693670737988144344566364492300417658830224507012846682860267705089989687828318781308621599442479580355931118452223548835551983357000023747932258984853267421181725480996402648604325717376020769073729244004930321949344428655782314443502214250406528969374199237510851086446164318803845068631185436684551901654989939990988438153630232799846824986583495623845137116333996108642896080757968138516346236947962244823145379984954585430655056864726616423680419227258882198673331491214157042361283094730160083991882870374215514731848310385473416822672024013369649923126858648011430330781792397803543840819844898756085971334462382823734158671468060043704385407237820735847135512650372664769091375982366342422396441880229908168722526533079372740414347432981961923768201297354208022645016706380335115790243287326497303353933491620086674792665052722614446878203855200077787100238520382116129263789037120311157530912775901165910707258019605292207501215300644826747266865486483885228426416727012742023488855561709582836913778109853640409835076654304437265175582968228867315553335748556083663994333565619726070779998203168170619672943793627963077985067170709881273641145297369340436483409214770278120191367754475913930329963380890726094498701453249595013619972136995056387170333254214009037108410039052518928380222754294729237444248463527657533173761716595664034098335264481973816686404164128261091546296706848448461390748128640423414948231263441405123435415651839357945310917706077260004394753779870618759238377933284656238238273496858997783733455866196567489365058992668901536629676738191462261419942885708057381365542805011797391612448453017083449671494532732611305313908747110886983792138465283346547903076311540208661275565437045005241914743517894915623237396851684106401568101652245713471595353210822579706794818054287869950521342034472288384146758591086136010165915699335807034896254409421852836221646646257257110871637805878032044292008079311233245385081556275576094822399932294373200141883213102820757622848383283085727113623647813404098312932504832967662218285014762838261399159438825606952125252606490829194774953560707973723421431945826200486916216594676421479992199494846288199766176115113873521706484223838873865989462531969648697958093630431414320997707768299892445122353383791703051588031095821186521170371209514337351851612034461434144461711613108844998033739467142154278927694021840872365710269925241001818735082361119695437717761871547445163539679257046562931247752427720466883822813396865181340774049820972090775221779994477246097297696965087508061023454846026245050994215795731481047565060297481358846196706595391097483005951784953697974503588085352267257206545263330400594802080659809109245988942520857380212593734759249076422512604070695763024040620282688392208509457671106087795893245116900187375020925850018682254558325827976709916438290844969507849484586780232206668337039905985174065276404256393632341558816441298808370049257900137474502584232285882670013241147380448443098378689355637896533840953594088430556498216804615409597905628361657225042426445028690746682883815765066586739417402461965417930301998600380967320636751148541923551969647912642741857082295345822141028697268779628217921749297358038693186275775873948973315447046718830822187319392846425405050961020572497976002658887730030980720129173612210388130389199355955347965560103578832085629855876902569336430639680976545002040050628891062659483740622403265474639450253813964610760565976571222592700868869386008109525621978881162183216794814867426450078155038970959699166519939907161490740813676473754547173618600961510640756562654367243690039713411784529948399212927663844486026678816986375171199359083549083328803313442978942711877082530965455688831812247889511384715416869482236938633550417425078820137209793386471050793933055477195646473362594507319685960130600862263148944624470394297375352738354504843908806865230636035101825737966050857859237427976280219732398471023435935744994371209454623235432516783953160419830301418192233597806500490876025570987736099955788654507368313721412844688800106361325426462903499375699883826948707492034275763436598240141327547116890581598735422422283923800055407682427628599279622290853418085263659249779697765431455986862478801648512082725381061132741881061178723553447303877706734005149311554915092554939819314570310659350690446403377245286963921774139153694516604385845314091217786779813771195137750164167072820637410770593739307138875350756610705585900122801908431649602555834558080510731569253735210710736148005579835729318241492039651960465604866480957082617367891992243757875071502462474646850265924183865357671699264876320356844892788493997745438805195487554176258725414175401123631903340849015932564217903703476325433281651553382500946292431139341770046369437855193944336054505005417733040566031225009321197026296285799939543186867571220680823698107791138777864413107755294905782964298791767215117096000850619462792015115942201637487592264366055217521411079788087125213996981715454910528146807240784148294038093412400846702859165690071458837136882179639099376979090395665369805062768616201999351618406815182173658512890482705175553996131978711660693838653014389015179671930298908154550547359907136117918015365067466815457897666106041247202497719567542299042042764384890250904376215795424359135058165813024464146894045657546020074151951754727413353262324485263835321488951810681889930488996902811756880271665951943911623504696658010850228957800078272173874875659109379360113763860090721946291340313002319130357573190649969558056376061466423455755754302944054897915093369446814250183131896998725741051757697425799369263604859525683740384064774268115184024543033930633571151948477886632095950390172233128180138595808041123490327493861061835652437919385780508890509153407419118554213997169856813354875550582641759946995505445137727764952746312154843590031233175594430870326377945893217406908989213560002092576560701082628367064655344940097102490534489829696895793311500721219099879161974254408021053334971048057346953215497534159282677186286355073970514145723312774677794564348692116204696896374388942112970836050668457584025941199546704701855742173223568928315300243111688049692026070337040936911489948359346846681485128339063596433642731893440359412103975922153486435101911364724993263404593179023765528695320291102681859217549287894002441109297482585362296561080160169241258163918186236272603006936600995418643999390430076525603450102666331749203959462563795184052382909823713782152418143956669636452126685378005066572785030674203335480323247503610469811588033916516378779157892477140751910617703784236778739881301049187542517554636766107849161356495080893595435852741514152765231006924468122125812435452052774328289765547408192678117331169268057137368141939902684485957492738471241874463659014827169048415411506404357825191496733434572747161047130304912368327579958478939119687807172086453295743802835394642768919582816308537061801361896648204806307143715673073287106235000886076521134273744361648238334206175725896232989911115025982180606008776942042060886106400872250307982595885515987480698881193117320309190893477074702325406466307519762312121068215227058414745627184240281539193906672785622673174956224949534478425351131009387804357637460881844497065490110189371344639607241243578689316601173359204024128485188548173623228908965962086053280830839524307796242680843813410255609436057693334473764513437439123513570042094144489404497360571258778564179550579426914908332328862416122522041977926455293814961529585526277326831253484484151982516796534697714894479908667780582842854849478880009483411826790020338274034352016730202870196797147844973109021999737368355795103326297860988114671973936138831682362100451002452198997530476550108255400584569396669221114798051209496090344716560429018173912568076399218153697891306984853206897060457967914619937239667195527918495656236107398112997199214171222007263767437611088361304198163759611642776710522920088759364804128252255313625878372303351986819244321151068642498997736365510448129790711677617124177549825819687648848776954727351234143873035196855111528097228762829209859243883954165032019111705616269952423362707003089938898220601627741600320752002163912844109893550546034859668176053740016700913006500581217044970162541803223307775122594619615663397418537437025331720888709588268696306330402707539827101208229235787537516128158329766196632746234795309076669776585450696517094434197952382800267735896235932086217060570813913166925790496699317571577035282856784774021362733359556069892498422389245366846177948605094023833950997953151369549037439172559535299619715180849080651862573019145489233658425665102536455609756315341127134787395982729347072740248728486829300956603429089770617732103854307240731758796649081890296206092374478336639072350724001177542853648265673938591023660957501092010221942314183893930332051987288671291356997558923933685221808256181601763702271218504276121217648997484903572058364448993298422467536140495318132012878518609865791944686987516549331593923282472073523083986161270988675692440942341177321109668845309061983873402067774004819607440352303413036081568256671811154847839607419422699388091784979564257263714959829393972382444828508369909372946957291185392609390716401529193395125774156386410441930653087210964764684844967655970542048868604565345769775299603292844539022549062654225948789527569954775927901338636451055256149539537189784636565686774858163258864095639204226193594617362333877927295478429967982047784560094645820379285672318153832378248111354475697767565575707963683133366793110907994341940991672104785686329056696122906463661194094255894564063261991742918471648381752249725331735343772597140937050872063842693397741504952038955790231840344057728061222075996178911657046326326929473764916988729066399918174494520353036358710483669882315485415913186846854299562556340147369271215088542479136346833186660751848719064345154387665982037914743218497141335434379828080947096190419833670023891700296602574709962186378780202125120104480084238725451639506844070137021878861279914798150965760352294222925870813204804220384995579224187146917095996973432798661950179460645809563180735384252625805770429571830387549453795525908718869254234648562467126452334493074576533733260031281682712925237182637794171556717411173273946611301013191845372375123479815446039121725200920217053078290613220946759814415878983800333494487742381621444086368480075914598408243284222844082847058470278370150462130395258861779911973201834713106059272997348675213101885188682951369626513892260791057804589504344258754632979807325053009033575267198096105028399503841178957709550543726068489997234997388561829307118838417218316692859250080968841194785773790722927887441560898793190191545928398206739009147990870656254560712695240742374834800862339516197174894724771845428332410290461909273353490704789500961657924473192228886726872834284464503735184800508012417048542185082949246740994615774575068917804755079384542920959669708829222284355522780821443096403828148975547361982625727400235930941513424945935062493895394191260024991552724794590457621909081946458026133064581941220820578924637195538242308064353780265289967205843427311585441608601618147533118005953056861534560951177467131685553514082178773977661944043182656845898744138141973462419732010520419235624053103197957975213684438129948688425057286309934797156739491142101567580424294974218428637660182322011597997051591662075325657581012141118085716053653120389096369769946717574061990757270196543134954545212099445330652901612731193179864060813901204039156176375152663942576170681460030453314393761717366933683582863393683753896360885487394347200759543775869147966709587080282149517821613923088770012545199121613795210254368437636704055510944306363340103852495076698879068574717305901816650391120027828644820633477017430828042107201588702923667325599092978353452016171160109911156301497497900786352489312697017441613723256165568833104914032482079153184483979409279561674139605787110870834135762163048202886878726788932505487881788814690142671622231163661174284431849647035490212964395275717198778742284450838988946396598601259150426610790285866308979207699972748346626649589158782202689067148163507428986106215037138935259115586948940229586096159140557075609282533572446704575404699319905465329141459873843104442906849659238136235075282931657483057229303196455384921946817619905605445906863565301898257393375632095800990919931819266175478436523861322725104534661938241589962176012215011403638344177397733178036223644257405863579357551150781013113877713795435028814130011320336270706747827957930998126145514172844372739004668657665278884300800595100387380675663385379670453818381606918090113980752840284020378240924516139837667465591009429230961124794670963116214895024537086074612005067956896724362391503543097003885992336143151159346738550419448134124599359633204560000641695329045490835376393453019487035613215443752235777104387871827511933642280130317174815159707390394075415244687505888586683079244122635042682222611875986586221678096210482836171591780129630952671892963316371487567749532171804306057618312095187732908424045351774765800295417875154375694182997122502506740970017897426961954795287176432870992268771715435806908569483667846498434184195251590453190936586795726494454627221133591688271197365651564468155060211958919210556592049262433937211076069335546938731377098662967691411039995398855706884570775221645731726118620327283387936592645522491538454930683615148544457272767308511200690825361449096413251802624271554457985290331670125210503126295007328895140291916071093840794814288767876443732609820313212698324183534454069444661095939447660681017126739263543359429478203112500708827617854701891885699426180946648272994578490507392953520656399061416641332159779408159066292631886328803366660554854964951501755800624604060335784291961653753520179561126589401343163601447757988161270791152751312110626808173906527924519715496900297540501733696195652671744831752273781854729639359625701770723340656101322071882614648389428581891556726364308445511415945542445358531217439199452810411376737151453532923019250234600120204285363185159251851922315127600009780941669922001799322394861069273962424226119776748813006147906544978963967986168195135646675984269024336017247350282317232940941733985380627970053460603067125403832005840551874924619262843658904214675030504118346156337274638592540574513744742544859389714254780673175134216901044686870372641278351459800433929910449923187743367596560074691945824172739816118415890882160419869846780088921159084773081452506774796752813991177027324185364177992639306828393115734953696186737779894151104659853840340077942731999657203520545812833163173750555400569479654733137376476770486556169843800678798389211996824006118151735559213837814344704341164429455809931972498662189223232254167727342615710222468502309845187841349179009001919618488917181443428145314785726782147785147660137312735231241266258153125512091479413734248869389294852655889508380008684007059576112256222421035304302233293027302231861174817182785392781761708118331200098226106034461478131630269754379998106638354336594848351286676835546144939538925604563264251752193164481075439999439335922582418616136272697240237686474435772453543381093368559015440435110023456686542125835052522308200676251813715462252314673670872296213373646943534536433818507257717597714759031304439845888478503105267544309124108834494607991286740197232437654713187623413370941184668295830213472853296911571015830530369316241974895113591663900800940967355970900660540603534603961032266348070838748712279536207484824889904369406007270382149510439787528217421662297318167908423768564196055280736455615403846007345592384646605737212581467283676558013999083028509446253152981762420364918782850978003421556611074244021630963053228564377830897721533912848193341412548396333795106123750570768448412178193442112360659561751668215416592275427912121489735786669355669350556235871162053681868627780478200478211839813906887759097736817008389259834378366225412333940720122494983311968125139140221488999216194251011669132044682472486759665106923345302759039912878091209396562278663496342767928715184277687634785366803431350385989520609794571695966746301033677242123095678980107444140008671588930112592930027166112136469904371519380741632371949352752839132921215240622207650077850382468127178505804118049801037573504568921698978356856260392705773713844682280410932798365128736130104942524832975860040240040438770920299662075190635691275484433442012195185402311085302004515870856394278227860023176575618237474695475320556411214829513231583457603638847069318949098566127610309675984415339694395092125147602291608271229502064453942430343357945806703309407162677845524316349300342493627310103022551791315888641464992444283230404936623485247499619776899572817259420438632441877525447685649936002109115322429722525348280227830728626502330317044552501649276046622258875619464383010330007609827106192428817768960207307618663430171576970699615237030990503274746234268662508302843082518760248331478718007587309231350880518513762028004315711453742512489553103279783325565170919054416297539189678744865170180118343181645384703272663625735465644797619919755354034737238414056766567779659336489433215305753222324264598610900823023343811842728203284415165212338950511447280044342724321937848342346369199314530387535812556255645049244317282053147135320263382813149665006821644855680677939707894271355925137088378102644476703187086046739848586323073144817521399562575243432139585723162056091520940227227653866377019751263960306010599771416997437109538104512199054234014783825601033865254251247472537389104239180590768445316070519024993644759157185432599117151092294386701566569589038781379443197833692137107910978289350053537587449578333355602630200926295420106178823367499233525536772774990431957760944300591095501981627248012184826598172634984763791218157414283635051417665687964657815394592455445604615161964393372248095452130071992260583328687937378463078969615088352953741001584832397367243279175991542842862261917858129992625208860077027718621147850882305698110599820279207473349767886237116636993731074862105713695977406492901452221566565329094425509760161837564121266732202820347048145482300980000034352161408279107033454349329275698121224308588016739560486131693422754977297031782430516631103899082829220721999837408002226152165999623581392103188368482355460018013839407058639080459647912685222440009551770834941136107570057249323244260992748328501347467598585054137141187946450063689508305369752188543834220447007818782715610790954268059706344292047804591777487482477920004098313539781002436699565772275341749941812733909848031699597901493929406539308228089280072825969288177531519786305259565525759065684219686822338116536941081988927440788770292660558273564849576816229225514208096030095016175135010426435473631452437402463127238696914714221232893842493962345623497013927640648975274389366847969666501240767128712582594367522309109596137613996096113340829703907220984307308220921828493216137104208218460437892825861701824868084612353589986554238920265869262610410483348364660645308702021083133219706463271740830182330110517491789506218106214598088223308295633570224148871791755829522359211133675235838031387834368144632646032552877090516964281804090620262320500469266857940996177849982716591980713371812759442443047617654993407597483924799641274516820063260851527385960744080010266576506837551088891958619712076757863530335404304900901592610033917899871454269012847761541232425305961171216850040374817084983515789834684643167667516160925213503904360569345907504600776523286662365701210939614515361743809745764361738085605788372193718552255364054259765632375102233591448578152674638727300046815047012484106107782280678923019936838581179565968589229057928403566087674325466969697822009359135535115124207871963078984925976965309699078022093183924210831994015797239606639841393990054095338500384043201954004523381745719070790034934315940206586460352506422930730805548710325448220630973952849427769009731674860793080378443833617795960953870602839339969673926721033725459753697728015664911535516470547057070130271871509990881965607536391684276441470666398205058834662210062765211050191826758806276163513564370714018402239146628068350702009583341938949623109810850353147900610032492362878913242557114451885787167547565400815666807646110949381775100973239917011301549282402912628419356293021357601191063648648066866334349532665958418654548071928799387357428357565839072265429882722852394283251956736351933523582224942601062379453853265945552035767520764713013187049174767811700529582760736760209447028079657796364587060655060849869481434616567204399519209823202456897145639058468271978637192226298462670124822466989956632021330387840371009092394969847888381920509678064863006863587696397735834691385969405343186984778261993263442169114505401530676191425222790463359620976952658424311852470089687615869297266610207362969492751717453892102125201646174189981062369968597564347344992964162607935027292926076400786123357257466458076595059301666369504615660040006972918972969531543088730387077119195976655090717310808570020983218688958772357047833216729157993390331901863937568054362985317256234059744365235927536442418773787914411554171460808624459709172706451932956141335026426171340733331072762157407374581330612252404038484873801876055547096797839579066391505049733548726336264371146645146419804267007362790584422674899064642967326153912087902566723538953711790830775058420586084061206811343529423288493525387138881965889579199152470508347183900159916024807107903729438106050007042199333599167838649994539525045906902300523674150059673347267961545317806379870990938059289944953520260743241713511140957910313910010089968057570344410749542962271573182309602619806860136807964649587357483729628777056521542463223876246523356616026587435254125744639781982050604331804444029159285933034129678323395531253850712611272377117141962880263780750735098277037675253790944708443274230061696880740220442240502721602519448974719717550610918910293285665275659407535408976980052124493219166094426906620923493516763086584886134120761177001464806087002996276519238177186757793733864797922480344092458330010942779083574026202280958251128258279140717456861159254093119131346744089902268701653671625328056483507020356307954315523048848954532007918911705078530604775916608268733845121860444945887735084821336256324589700152229599189800952120556143738250878858283719266334367393817958617465763040145194952603959853379445013506369221736740785528026921342366744405887476794622139964208631960254458524117568657167363564710732857768222692773064289342541187589649697557846404987152218213464789920865054908544024382375148304762909491985724465145676515150321902805792376346825563359874460942462259768209958014071841715686741092032742805386456140507293629243735883396589745925319899023762783431862611318367377804427601236209546506631983831415256836609270573364090413261690867891438684208301238077845288509543528565903456460177867586005031175365222887972004960565403836803520099890290836127772414520107720131197421045091193431473664735113081125119982254648214769017049098001977686523035302580189081514316296866775777327255174786866239775462183747572776153071971679151492167153206931317039389175926895794149060732353722167224717638776519625502778507054188545787173064289681720441407927273649852303503589734002955288543768947082498442331217204170591083944838438850714633391393799935287557803621315773237952786929452552148849541977227376768765149943083281776909567915052237759297289163825127024300060578174540393531847468821285246566728811258802791482859831309973635525031060693429495854965754423527857732092314250314127305788653602724300522068544226043585195647025337949680299408893378683809994721670419454115355942585913637145207400489452057410825612548427963644720373097840660809001404355642288582976370107038425345899171038406670705687774138415394096535144190941426582164609902373257416145815398863140102269218845178667972045837462030244804454724516525575625747052506677410170324632127730187151167922810594720707263810677642855306122926286171877823616468332720178388033373825464014937195201812808914264576572184142327458204788497474034813811271167115920435542562882574131660226687140094997623635071550194709156055372559384306593913692614921992390420011514362636585818352824469494305765508755849737039303637490816656277337324272577352551502295296498656257202011012393848612618438611261700278286280565392983621564320507092666799662270246133048854962249325187347732888818247072274824117631950527771179305388971829738305146836020431810567984632203995050275004739739935674825531263277715652166598012483030508892505437005879540507104116932833912928211557567578558992690616151427824528908795723645125242125678716706443879847623404385209624134188740056646720254899218729124959592998124361746722287343958931423213174340021943750806996671636735274408661756748852759968641357421704111121375796190373274186288896022127036160443420952255562834049872606995874462735477409883041613437461700629401670956941405143544690846999066775158302640138549857662309295567489212593780732253038997218814028839032343441622350599939250092931725316070307074818627419044271285881039309522570241108950290033541405456037752725973518534677689859389403062761639454382242910929853093530875835620711556413463137855448167997890963844277163750531740095569622646673413100950244443086707838274643986982487315885103641054576573268900089882109151146960935735145476782133538519765270986698831600709655865635176324668048038974757035905778495779451176997238063888672932917748044690145571766958018441413381643020686480712202513272898961445733790457842297097650673479429507208728115191359304591802622312840243930331564677902564704745041880038413593275246138453766601248180426582187159298987765658025840658994369643139655890802797655276872473218148982356566499868305862678816466605146444906363770429263173527718414962296209190713213070249713117388516288998314248012258477784053555692197257226961829659769163739195648183940634688204002101399413915658826489111512817663152696592096391313177140730973803978577075323046435572742538121389497806035941219113291765282743481541187775347581972173268191989881898637388413994393438321520730954776474875223750582411892847007527248843121989039492827445554890056409139813030725851678121702897814186215248856180144249303841801245932203810071695268389408409517989167873111561997577219139200959893634979997265077972328854228096226486818047409756148540849213964088310812952601294134432520253579381945111883990867808304852252566091119436205911442026957281377177597187867058422202442738190422920662195554706207144365211860607495761681085807072230972847805109861105895263499290925329604162560682503388472530391985265120486313647851589173422064355782343771807978628562113620778755011841671064371746009793903375243501288569655284717258384718141861378297602421009591831580148755133618968253811801680097257924353775004419421975661470121363565150107254047840900624704762912440020193292644211795524429387169146860081704238295961041820318940860381508946442888541895915689448437449112096071602083037214728225873519098305324776670057996923547009381283037511838640947377900989625549306236208343235319283285295367529178346235498722356943308122250158336022004457742066750690158665488940619930346023923140913356439876775250675526397759140826445821392645429504237509275775498617844819299349900417944467780997605439336304005246012586247485980794370829162621505892814286714138418378458596648823642311540355736214160952262023624496702429298291849697757210295000746400589955878064550614069253263296654949512197842558905654231102147294322356876712738195274939635379288507593724009757980571155191021355946986956922516707948356884187902602782388613314615376696773501581931045319964481351789031494832002492614889968893507930315387025518418683810462047993058920824288732006001999042210658002389968614978520745518746056529188151948074914801942761466150831005714245504021676252775490534408142735475915340115813593211623604027350967908599160898554829246902183813558374350061299391540453631429903858063860204620486350383121281613873217347115102324614091115154866140767798578194188490501049449861458369228037496027600909937517549118676050624709642841025349786514476359609264695675944719163390884285986297990282934585849051592643989733297564912702103882948660419398063749243118610501668097690055354729943746333469421826905695269198478059893231803665476122040441563702944250785500778951632710466278517392775380143680673034292958933978856162564434760740415821001181425703891193426875111433085409991586256887205757897257766756390067273239901011075851151383932634164757137886254430803955191330366759275091734599989529495736367598551881772815198274413348403836036840921694477679111965879215128979582691389461631333078436057496593428643678689061543958515988369873082638429856891011913669565746006676771439837261229632048844530450394538960265303184963851017667050417548019983682242616718476243486000647811581445768955907909275651158307387615468383450383475682385788473538223771791982890909979009802336489670151119316456834886158091970939256553533946380850178029985234813812909277589926056460629178795517427163430498494755296977798213884875563225657160722426085876814430515722836972917640245759950850184599808642908627838246879987341073222389039325342843115979140492479158338173432503236170669308589216915407416764071064944099765385093715909037536017465308759679479879711294540667283878425684009112447427428338970238107983820894809330699607902087176315265712631385784465646582571420738404489718851761164272323968383671888079617007588113087009279291123367508457058229152222998911355733510139463871924855966167586346595510061093189733137927912504871312016654885556662610775806807868890018234109320094147553958452592945397254429791204154943094667570565885895029668351024583305024593459496570279452430060066263218369574805095725977745645485840295695893296796100824243501511552960984123145045314731085461566911891728352058092130926171207649287112870878552024570596015824206631593500123578321779415129338969557707508041498125849919271948222042096443787707968844246068472395152152535542708869055679619735662054114890913132866103753560365117593226882402437655149712509594120417321473255015140491523222530017985083422538387629912916465699586787357029537788024153377952135800413273701730372166333317244750457349097079058038648575089506750744068293370315458666650277645052869760749042515415379746474337870190114733038528395631730972483105781256791471380514258005876140051356188203752329866648588236656610306546431135299710055460845557528281041755243458986438017669978437777081829189368496300592388656631403328235038211635401927471070391629408739228848937097721388639354652739998190722720817920354194987710696064263032556275523936811408711173794920642406614661293209957033981834239346892139940240277520340524354935373207879981785273665250979559576170814290703823363255415332600342089054453427150996931907483297819523379623377849053854778116038720214783873833575286001729864692896561816785294455932538961321627388628888332527910389302557739609544289565190127672887070427603818929571057242533149047958138779987680644521018265962261864705844389701715745784413084117811768012386154051858262295555741954558921381232239139986268118387811204818957811442305085085100994460675712913435274182136403299104343832143806312205315034140391994052665466959354877150429329542475868643392850377309938527822464310714678385803119671225551779138017733911057529217071428690390320764185615194720677585895404822882238403503075350094836157380639086453963035541782394699844482318487019502069523399768430194392323566434433481738401543879457840224807748306528579150692576576192727092775717563640534215548407654187254599918495669334029228751110205498240860655598350340836638186718691926939070894685772418198188763429123242635126210902500377714426826270771835181947774319021191739667411266840162147470791797105361845281765850033394885719306407796418926529686761034459813817479557411565267019270255534254571551093113092838507396896995736134553251362853786306959462566460053270580290280009097090371662293792470779471470858455183444018190663218648557686493047470288939573993610495522072366419451136343017070327643968076059100834534121962100523736239532743009060969547778212614081572903040050891580030547027980537699475275422478764192542022903110819624253847640934578198545671850479710660531856966839023941955000873665594522792600542727088938816696643186979051810624182059610755767371432989015320981966140593403726334344662577582511963867287210080723439276113587710809453838514289746105777627607382139083960025132503571419338920213428396627210091641571883406807832748189932056474922806598029765951819908918242910631643677469748766252616070010534703306592972786010969735490240063675972717554946890300523945138208950196774114788274997811815215004530269097686757678258967621234744535626942960886120462675747429294989990032391553166539586549276003042087455851984862848575021012038847785976320236692964085036959580362331773694879208579813232228844688387236141300119765979885779301278401168711807544281558970831737545474191709421365907028229998524919416119601860530468513333309670527872165048433548704909119618284002040966973029410915770074487203853782330939441571612848505161951834580539979455218318980604893689158057453747950654098611117637906315331524467935643349581496194966201004751387767813284056911348090763601372073058668749536988301720716621825443711298228695207565553886940597563005717748634626868888644766670995527197772524879715978620606851392889763117096033353377455522910171616569110822400211429238821268534089647280299651692932400879066473110405606255110543584253386327287805067626566982537148317021350301320011236059390624979000358103454483773317170144381377169040784752518779625120049852781767876651141606210353065551127709700822285651001211072356825873937320248475355936005459884801435425265471325879478345516515680716507083565100294335947246450570285783161075141250578181685933448699210604612467436321695372936386642868445653337692219174608662705351548843433522643324823934371105245764923690203706666520893714537175027274093102254913580432067323263785165197591827564270527167889072512703661140638235419651095784325287937102442027704335615728735070972106199279239692524831118840514709303053102849596301218612249094999626931869563258213946461127560215331121634094013779365669704801326017589734684522026676891596547841705291354283082787225631808546384649869090141671022117716337686942608274733039448226022952243814343388012541741283401463756603930885512531269256068121620816722388368979193576052671579617563209096828317306015367439174134735251123236881668163989607225767376721635179289112639506879250459344562837689524045946280217117556161170423610783556607950459967287761496077457111879709327542237777759546123852027287740509543276217430320731317717366285288668904477843207703501133707180639364238283950011802623068150586328330552506444391616716539218119734610155547223930256370563872166910517615921272298849048414899862151789592937043271407425792569857975827217731392798288889868253993326852593799957995194739375152011996866209217020072447681818473711671280702532817232642090841340781220431624795473790980133364758652714017460522872086672971475123277487911104435080643432423842583954563494892630709126264344532753228599495862708094573657683775115131885231015115163073470579197749711292541819454589098887584581936706694461354902554827690390601911609337775689172513225223103647698173353724863157984904018275676822785480324198530171492345873899204534171895112272845219657001098361047148072762114769942903382129999981409682428433824921668523373127895311372933876512944737458088482167162388899046742000560916859781486277973118676765706311340701135562547588780179896325867401729465904206433948882367205683252424757906160313617865852812565248959720932836125351444720838176611556592884679098280522239541382334300895149428636873361957219820711811838537979808157736714420163607631077339345411956112418970571817121365164175778563850150142446767465642655508990960432980285247630393467860255330305643121811596470142397104298054273591938529734557568573731703624922444460386197079565877056039102593568508407288951119492829259952705246543629953034328852674991484761298166444303306762217316011203770788530216637267931454357993829323084949126628580067553119371093252655762194493661998245842086329609253472138178500955915239578859561000507424342459947242938306127150888989618170838253992459529973890694789098994128152144931276052480394151513452148311062748021847360449184886732499764119083400760627973123288358392384465041457926545399098591466881035584235659028489106299381220455185638789110850891527892002972933029278497788778586485391178931189746016590506696232089492961660889095949728812715492816909931404531973536226038398165434973505907154680477755426285107832257981964597048711911499935297168371995045660137903178448547435379216810229223759403736719090329771891008346909173182913031004184070723542361381615456612336760469110632823130071247167714449583760455279242523169716079206906962367997427860497918899970800671633890670686655208185310439274094472864952564585908136894738355642985261121527873456958100110698925453993853259539205534660208365597224123116024778873418538036468201973020712720958195943919319577703632158201334352085330483144447921288785802659866045744063062203761994810941003095722073658080814161952724723880544079812288524211439481561436260195861112241227833331636819809175864696400127941807041501900755653402418586552552902536744802585658002021260096750718155487484772883306405998414633107138804139453447486537736097303014511824660955456848773236948478132819218514906374576093590326661509894100947939615371761472916079055601936780110164577773767450711253846746545251703203242551517412033555182724797708719507289254741205883515792218116707042715988185979303482521260218154030797427764304664061267794612188590488034310940494896555450690410124366410528636489769309949860195939624480122879899208785149245613589785667059316347702393228636087074105248023620913774219602893801744397987452641797314757804400857340075039552027247852807033542859311802529241502052811622405115505086237400193026228288924510498203939190237859541208031471264963599071259235517024648135550104758885241705058106941899744720964726524303543113513766100912915181394477906872389519684581740005720128494822728092035791536544197008581904796341220347661922037057507210198606907179625605256483677276980667009025424660364371549098997378278749596240308546454320570913090814830516850066949586500896827792148628267258999123773215160811197982144743557221699874546456900698035855262968040311507578781201751790419501249812228435642509886949365631308392514050553765990229975814651535127103727594518814971354633646636986249602431354609397858697530968716951201184464751791447692608496697576773197051335627272246162693664712732100479958220954249460809479001142162182369955618348805735698421610412804256985487055197855803932090322237423949263052650473717302864477149050178559219063214041040243861829426892748326371713759533842332338365514877075902114718648116890055518818935591349663860197675330222801648145054787399976387465507539117096771353218534004121214853838096260920376167631711423808221957160885198229735384673328374333495687054382288821456739591060716092195885970322768001554138656559305051155191924116314866046696950312010989369661433376162682848215213642098904009376594426189113286091179513939409172294096121104670724368494689091548096323506606918917846097283508895535560305116833510849704014970754042426205421009068302551503432536182639813626205188069702055018256011625926668433920423190344101420247513137203740975796290912083074747263085156783563892344523033492020883654629903884104661896010137910123507885209877941266295026774400335558704038024859465799106641681884251007393820372737346027997780243603274796576948650030448414061266940733756635686662766835832822914093796158390482484197927170312434415653746559102348325360440735956718762061101289809507691197777472398723611303722861821248717880194077281784731891277144464116782763282417177203250935461187326680024923126616803365018532178481816476582340064334671250689993558595333375250507801269400924678704071874828987377665000040544506042426602683115081325937938706448306716669030675999945786353000743885286516032125155651171417917522952979814238610500160268857010398331490353049506634413670827256893225051251530803514699395882722829819933228321321167140400655354847068378045157871848795186610516721183432488288197973241666359032635112680873718030569669683003595253827363574913920244728188915106370465192945489392716332387695888988050442650755114819338939910982418127016222250219728433245035987291749330909773588020425089189348788058941087471380517027815090365930660188975645522252063566384352517789606478393927275904414952766038569090989227014593499842105957287334197155312924516874649217047918990790372552987308643070982762468912263765683452978489257598734737539587628586887017455706026061501179743305114787463562452495095140843402168244979829917746247773849862510606147077699181397779179401939042104607658118815652036892132233542472947400430901596131400584475129308661461061516020269591484126372675907981145733289051839607461428048477007506462767695713589230452582747034740826198218439351171226621499530341085349639316532298542644212881041571677374520467936901169058373207759918451425416504554617247274228505269919553016846992688070513429286559959233906264770329714434374834188560489570719467420309995012317231396563652751851995834869668741304723160921665265388213095577528357668258324621794641727450543824310819164511022640165841565454727428631546163155671349288664821228028891497860709965392777728427199084460153048355663145231854857947991035260924989072247820068737677868461113340569564469179472981045533531226985911192320032995881723092141584490886278811321466289365559264689981776083470541097870480868968889313686566316953859277868269329530558326881098852084461519264124429675132790965783981921579442704616991530090194394286444534032676869936214215161579245086751434241529612850982049901078899799027195690189409236253227320270709192011602371570232208626909747645035064612348987404648224564411016661299029677173526010885388825750624352176478556697508266205613960520418958475397415945682806374656754853347932818866415340555411395097302157812068967840345923819856999925047598306028206090116427606181092006686234739847312433143552335579308750146740425831011279815775850940379856079692286497217568075745186445493502011242810632112785803554566060931318863911297518565421484712457311566608625138904780161341035761838104773196610890269940992418926527899135967847352334800499920462562961692828311058538505633448721632893413125343828822719169304772555217927323394720480726289855613400470266571866948324947917342528925891829776643661890327753335502537310782736542616469246361042856933444647457379821171638848323359519029987631473368070853318482327203123597301078828074369829955505674623121759842523198946710245817318333481703766313094488224347704403306696063590200897395869391672855426321543408021003968259811322560066665836658105539247795507941606886988900417089879054943751845536163332607218089537614315997763340397947023064680737118899324387750700818199767920915345680196479182655714604400349007718412088145693386134026462553060292268085007256045835585249503738210217818418294265259476382046741702948644717690096125139844549105309308999022386647793165138218687348406167991499168922645346522736698914934605400878843472600624052764661749957380963160212071202225510923759684189770800995467066850514161911154161871614871784537404876051705137053449839235523283962939558663437709437136040972279725778302241191768893837248998711503174574541722602802523398793864877101570764763915802877104448382314310160817357162915131659160426932683633653618636879648308194201208695325809773934722926314437909955876682680847011448325535413975703291146136473805361892914091543154840488010620323571008102352773393996937943519632123289822591944362378495311623807949560887915696900120590215387437013026720827409047523248101790213339084440752781627140901203268119674448438055553113135895944978779720523636338883256628024301810621582172521623210528561884016782983771446114314134826335052145349473285747241740815845720212215597870572890615906258246838652706513914202834041563040429543621374271285315596091284140137024402799110693444560953939810080084562762855224085772779861186221939530041193593496227888272018105057018424735874925955785855872165026199888931186965616006561001856384605766149219344504267071655172522861124334577061167202189288804961827941758423366314037816537103737359453995883718114780797642837379145911752746074268398106056032126215017627087299187602753705490702494288931566717227483640489733296108650955398362073197171867933611390004845679094142096863161020852007253717186717146329753789751345932529999662682758686054110923085991535930883175691342845923299125750602117428613092976265275593124139575107780309526404358244954111026518909751468419717788451860708773418512445435118946644133798334959238890319394198894358848839167062862580448034145230431514431764780467480620455091479311337526469746814786053882203185111640991911242864952040752000617028629755070636472537209831233300993197855186164061091728225055475791640364665538136924328519788418979565806017155039561713452545577252608106478694997415101472606881144126281731233040897855851777125818462044247218681744272241205711765221985696805733762798031055702243680357382450401472219791831525023656633497476604627830436035977131962145168497811778537000263002750063959488959905961019228415265503531132819329767745169256840960185686052904351161690552959816351053158328447265145479778558425684518093544943305404153859353346946085841199146248940319612424409941960923544778372829320670627654668579721697008483588003048041556244925324150709816406782277871076831708422128469350697980575809369566280649845904136098306868643780367813037813953429163512039314985466492104946906207853823305785745565296731543550107644903791188942971719484152056387949688914252572274505035523982123559804181379733277549604666231726584515832092011898328691725273357354174280252525631171952911211876826962173472358082829825883744548954124459480839468943731485112253711372973998597540664798070110617257466428963362494838799011405208445086873469974769374169013158561652073280853218716807890454996294697453237118187111170770525856247679749891125916077692360853067553672335231260666632262659029606019912567422975003269320788407920589555879785071120302143182712595329032145522587014394745113226117860404944666246660207991173195975362043652672816166785362097905516631478283511374768735126278463462692458968686244400665732855898087665747532303750478716311318816254897069428043525423013322660004995147102151313917824700556763296562293549689126562418527169215897178322904819566045765261020257902151011024157700062027827174847752067985907914465864944974855357497907765272915664687821103441587330951760860116429881967614285425938861251350164131167277414012938345724824613154232845488641329177792607408929603045661255992583092148905222258472042201873091037417188181033870170814341377068247777617123745434042290362219269749999127684941442103348372616811015275120783643961396628125607951091138920558991915854345404036049101340766105137437395400845921830635395999380135149432456503961899834373726709014649763657878016470299431251578323853509987629328938631445882046799562756373251431825860865411030776809934853689622637090958778207086280672770501913096485779391055048655334150232783175920018091825164281841202642989548797259936123106485551979074592584655666827053886240980075914131139702910456943075912931269264704307753734861572116479352856306870375375379490510437333793143090522009944626760907427444344863027796632603645003751607178215056353771652606927399756885562008690041090034560887292403036312625949829355478314502368580755134042311744651989481764637996626571612372255742530943075795495096544191251528674301244417914194073313025746300049557429831151390308099439460582857272075074696045267953875107873033887602433834143413287908630200981172892661088949822849424593287305511417499176330702789428387673194782316450740802503042428222842007831202267047958348367458820990770274619076139896176443827061536000904456808139605039752060528648457152578294214284866876416319256447355671111459224719864985487702853369451639843407519239308997244330313276252150950411791867070998386343815561434534748796112880670936459872625760171437032326024474392665580343002232906862017121143971708307771161376920997374085086471629163793727403834493743921004529802678412718634607392762625178554090394731224038470202699462208771777539833333323378847446167359053010730678710639975498826939287611481320768546328968241430444205738273162847615409188851292349720668040833719382378389010828048099052859524627406112663445827080825403709049691760272223930209329744158623665772971313219313613139570184078782708431042875330824068024606113460382825297094043206841118745621276365794615658280568375343542362510957901099132795311585817331490698967921045615211327735656438219887887774210705181360827692988144629348639074789549347594162477062036514341406281270021931337496507192510498199578294337559176622507355036054966763884388398014973797436975440195694345926374521578573881334107322020779462598895419434938085479523871915643302972265998064370303036532410470925875958330085778196802839786521837814811119588307267519834577340321494423036503215285578442480022149892639930651730390158086285395921819446448260414361611224370948456834247894456788354306820374145719942695907037626101092727525564720784263221299088834211419846734506293007808523212203178681793695265209052056233284436496254101361095621550061799309685734155641861892296248348162706358475764125857690865856525248848156878177268283803078297315736576273476119042123996657491045119836278151668040817806095812858024240859427224787273845192550473882625121959088744040674690696695485354331222386645470196284570647145496453781002024924646241374560477863798542721978260704885801913031160686011717700762634752547379878508400381788736522080021296935467520478345699590383209436231470823970903157202335314127640241090557118267907667756036261484787498259862717571436056101401058587453428582128307069355840190953914508654970372006521574758643775831339043557965969553792182134965660856562654193464471170048924319325736687365418746095057876631907685836356288480465515547395575348045030289022036981568919694407123947758355096040480525386568110997297913996123402754461112445003750962610753145405222564214337452943322908805504477576700321122817334777721913523289052053511832537879043094177118783459172669366992194471886380403406501331921041590907742974275013870391551000422111462418292122106687626623099365074252871759402120194020127122947752629302671307903314245862822045927236345288218541243090687862233071328482641618937500574770790970992651250340608815147426331733457502577270142460674041611305429937369184245265573376283481487051676595768080524523317726328338204957450824307938437417790784869804030256305976888804981231338485111686395235995624831464815097119461945242795624406426726435129027920363612672312023104238712757925846350819654904756428171152425182550355084843900583230621601657274354879924689985769732830783329587496156358056163008348233792756072850219999421194129943038489807899422565143812457184288348185337608691748071085541817430374263537326278424502656519298500034796024889733306245259038078213135609041286132179525101941165386591491563677788190668916535508521179664395552172671734465757410978151236705134835575748855242428467879087697168335903705235332785312297951207320160153883148649282760115878984960036437741380396400170985413911155917912299093296609209455756542796570384636257970159979787172036782414119346783984452490380340481870925143710079172512549621189429757303814207365508666689590170120621286825402064383762563240391799940126189233495201482417822412568233732206351537917995962526306546326731441667584457287066342999276520577029005622363243890188440977916927340568354216268278382121523522531195750968712655507528218690997621734013701821431428623391535489245366171782352571485898423508033859459166391116067483668134688022147831956002372590668708078247508735720509214177286203357156635764475408938729567122870329584245980156421963759621502097045795719540049512911752735327468276862409546285469335533932723931070129956732674604667981186469438659196680235129139440879442142602286105439259708284611436526592381049499815973416216878458924595702118211895612497995846962944820731803027495690867307633170955515496107160350200662412445183547284007000616795131960336385385051500468132078136136305095752709586711815486163779625687479131312734591149466876535538236645166077874352907310612714690251342474777071160381439798161928530050568516650844745334727019632454157726756863053402758368884990374362303930027370563876264912918699215907924189725198358461652577019276431081807891685208653106801248618477046615304644826771363078269645781566896715050295916131216027523587974888448505240531699994922378347836483389147142299843613464603880542914603405444939164386600629803007004626363675701923586449947129190223078775721798405618236559261251125290185295563491349014509260385473358041526288147647881989350756497859951178699939737984108912902787333502280302638272851627587584244963736964196577144539579460448425608357281512840896393427376883269621222371954490360643145923403027906941180641825585614247358274694135559032769692067108313704704730347848953671147044569246552215506643082645488979283994944100499149681275472993532014078154250846036779543528063181177263599362925063652212550765319339284256569341169084368273709948201596812970134909342947827356537105888572232183156296500133994481012957836827584629067291279457397737847151920781282618322940512826762986114290403742376766164196317059127834182534780009503165403300680965573644885557315638892207803671639428918001814461419807132277656749608054748638400273450943958873489051022349653829980880043138284242605345127099684402159504063512700732252436689802702656687784689861183581818311790077602211653052060590945698342617359476990256959045136980030152913600997618807206294182610613591523011008243693878670708719261471539496697635375624727668903935182714548194327229099069088253728306142799636662167312182422139130731281283277661069713677876490883052618194855738966248032723170861781406419873608150134584263618742628416470211811637211719476949151192274146669946215786851012244652179684506268987070240227603152795433359969145241427530019393117762725766443578008867724441879980139840253383888084482639389995313871342828333241247464040956137662309597477135281965316912433141521805872533575929107049407216755944525757097500271700750612664869456528082012541188103669482652412378564269445282091829104789198594917428000347479188376258922812698899415818900873955594035674884205624013585654823063739610348512973086241596822747253149546953589561080384806586369572130164589590727711476790249436833858148498578273888400107015462730249137950873771215015791025742984156051334427385292501836079850732596000537726459040863594337364906131433523532235431076797034143788564314300924384797942612391110774918515066718557123082497094991335820029978584553701480886196878250571700287882960558158654620016345842552732902710468870850518606991064456949587994528369135254331797122218509565203130340682494177005892547026212207375454518582203959147728854681831293348071446962684792945111396039268798217256454122834392095075212833508490512757392137674660255355878423766858150631158227586681625233140522887600081233660402161210872355426225467483867361142796677723378068974904031074667966963728004258302546861527408008233738800517991219000937103486509248730349920534148475446828220153848997022438831153580916678338689827884970168324594485974950629162303376894529603178899845286812870819055734818978096228364964364554788108656350777586942032943486806049158071281785374375819203652091326830059167917043145768441204387644924677185532982841053555780365964772455228876058511132337256585034156260330136983581295770314820672562234879735562356294734287553558417866841328246266246848269585031279584090770626534622290126762417176046271122348275641278246566064983876944524266792192954678757260077922192251531814960491184933322684968347179247572085261540435376112895843376620792584012677561092358239558123994532108335619622366270979201657692475858384495894198186251800919322992685397089483527723432319158985861127477788038405406168197839667930804361287888685209844606654669112604222427939175110406434739849536595633639822983465852335344042324071560260944077264119281254396004649718230365392148781221055119375376293478589337877619044163105546021568049473033553442219872209238350482099473761425959812688516737331001076630789682581875773304917973061463814188307957175473403450190451381593808804497316883132554041663719973258920218183376084043048530612818276251012345201804663319210848799861035853340413323733533490418320812017062228968615217542823014565181223238770560191598011330448045711107246293672881795612474919814740869685590174541629330785287379465467544528913498422519599152889173708011490884091074615400196038183873697599804677611928786982874483847927080370097822625565716599292927777120040008356474191988702132563824518672543980817344959554487019540572397944917374810877955036643405777857047736410623861398531780180743956764551190631414566328151301246805439627258276428687400474135079017959256984138848147408845413850029734353917730388272991370512540312784663673741878728447940612716539255644860118144618758249450297957816491193009646972801271843956662480392064354644261039213766241459404067650751802432434115472807056195167913952528357349905626096324931034100458167721775059862615997397854410738123686149773212024721845406963003166265008615966037472566964744027747783235727701703116936911269806014588337674450923311488280919496838020417899322577723334217238509607356086011870908525840405028237768164701309971336857626879663801335566992437673525821276974050000969192767249343987886264795094163069112927104218101987960915199137638569543176437930484610295539651984864821890424105579390961307020678660960909801473109044810121275251898199868817586976671168772567697788393272739607304966670940920549452778769427702259530062184756699421316743068859045196181962430919630077722354811683513692604241213874645749582697004328632697323662658715515281251146823330418201806277373793753034995084303250602698950217520174876946272808101903610149626905268299604357440502799851007339604457329649141048825014120621152263719473446309367007034848040120401320540255387859014511210914964786465586323905228498019389749585790245323402921952157717268775537878191014196533527446818787840464485147567167310447885979495541453390963426982387549158068553938694610844504023368153891870056407845164374051873479535974125295827988662450133586759567367492752815287815315596751642928077392397567380340159312849075252909341320093283327551364205780162979867740510474616988704553766656819528230724283776356299098145164049228462633833749371413725126861147700782595523235660281478155557704129700788964304122448234057723862738997898846646952995721472806406342064593266375464841413357268672038677997025542879053082229146051104727202294937951471457611811702576069224011054778105383482324270388256642604326029291845522347254148078525155302437561539278708909131725621121910142603502743291181649717197912686570736722002722287384711297026935002566041927675547472337624431239072632661892620078186593921868838318791152156668970410360857192196999306097353704185759142118236587760276332315825573465629006036651654260487311061460974433059391471154319608717869269950367426155330378320154486078832684282229695237861914593190987372339505491778405494826079191750922783950115024032550067394359872229371878958643057130874173376532473185931713706334395641728342255611489075631319974908849809218341961144778736237846234798006382480115378976935869227564812982267406667336247869699227815301340774935133404812645882779954287497372847255556353778260987011271785680700079842198561660308290606638177145580584478000732943548567688934798219573067791068549091680243667718489768813327112506737378827524032531463042646923749379545085210346806802351457935743058801084970555584953712383544504148989544250363265309805301167267963324686499926965787347264606081622612267043156185964402002783539590892946582612475317746753618729558286616607063166020498869986599325962244052502036208165948925442783116120296321761897782666848329620424910672620343888697834168689615443605165016292208859359340081506273086328160629203508419497593571446945674231863130156602995255898894198288546778543709596994547624209269367754625190844861235986781352265733789616276979372062299862581437460970579487534994318569306863900062273945331970561807132571492417750476617864407645886614849118129192950322781315289247110921599580614713657904946429598007786427831124814145657653636149716967680605968884257147220967212613246929707468801421832806205194168328180677898983868969195191558959046276166057980776778750866044654048762591807419765485817476674158330951261344700858042612031370206642826152568845271820699693175963370414368782684716012054975227121471894191867894612081240086739363174589663743567731986132454361783827189417564248034112075737491468837776515267990495545406631692023906349902909128560150414775902685517101862458244580081450698483403367483582202809045904005143122566618450944774319119828529240655001896113328754621712316910448275907321759317429476907357414576240288604203905202387231621440922961303769779745896575151288239332151120519447830719162126037651400361849576681981411057414688130113657056233605390506207311122324571548311163757407122629921664931636003259664923884253985291425200284056968334795277696252653869529469337241114036352793590031745842164793211051720601596671360751983868850058187091818146367343216420351460043065162652696000588136172601913740655308110341142770083554817612808541232509189070382151068732127639401544022524243483006765167223474463717935782965030816250180506100838347800732687018842558682446645297440262830584816929805550000951387230089257699944080408712983794407035922479707159628941435365095683264103220904528056841034457320037731243876367232736177266661629247813686670090569433067503009162356150709008719293289221047326165203106025530541306245769081567228953811229563196036770943538294657676734214469271080971643768942452824226463862602173012317371370272528158468808688286078980163924196383686422620700394506813477778883419090148802129518663243682109429805483806937095368318744586621966971279458369242948071641036398341570017277008674499232730581597459385818031873855393829839706913707683931295683510372390876638529905057756597444763662357293518867771908923841398405340916288931021826103571682543931316362705842415620031599172681671566518214241053945239963966170049879653560102997611536856381045138860262913517919639198134786396954767140030764306982388492448504872342097599433532935277480416291315683861660423581542786986409328367091930527101052816590206311799769678577210146816531192167273306561261548131582804900215672481651015252719811074145533377323721124051275333850754401129936011886701111706387461742930655745130159354550472113445664701535920114346840771992863788501123636891331637577316304039928077929671837826878498580760727796570285383117954586057018647133215690083630216911813156890705370369332288193609773544404180196999046382154985049884236724608921596511268382810658831254773866950685846798509619157491643407530548080264724929044788059661881424115857002164678451427918040699821186781889885738826111305130043383516403769569286779802223416699785969826623944686894062211287217422022108531392208822227823961274617954076909176892537485386642971574341126241355764168362390322969496758564068515719908487273105009032035897098561054105838303537136588529730853900286502759911768411500389086449911728666813407640980916825262385549452383052578884932395819217276605363713268854638918354591449848864989040809929764139952916144536254988665304210078875202625049848244332934272458260437440826237037809054637934902074981069589022800358455721611386221864054095376988938120533193868044671440945650078511940829449038140915704228871261012082528440905152393746906501925315362665852924335858955424278654298938914755170726334320857401237844387687169534586394892414297642397934815592997412354912027380856736884776213393047287347046935436817258032655003883865394855412046009701880700493145204031361997043991631994775214632584742967137402438381522384799438762817939358430405123551426534729625757163293643925097533936240039620675844814108741124014521310331998402887512853482187099082234452229854887118400256138459275762116786813481361151097081693262216349432919005050509730581315189302738594444337115162696420482154023170128936800067769910058194638083852660603608607190645369356992067475278890052705236667430707941617537185535514187852119408691256728128239870010914397874351570623048776931083660956329847951244357755414627313869477679389194611274499163741831535538841550354091051165888169532308367554594952730987785447552197376389032305927766442970517575392858415899798597015140361099810765108761294981619219706369402995920512780623594397756635169814488334681947852375993795751266000024085507144124719318697019244807431294224525419860515611561825624674416221465792375173051818862424183677441607207248653396973899406869202349966943536736391486698633424243119870546376115790032649359746864979972426461552596375154679958920314212225398379078208310112998465938152320299298468116959017428315009657250402257224359660699863357520661703819717021555017555998824920917594995691134461182297793863016344913736284276251597959937782599712101883356900195798493335214544440196417532475002787524635149327366439814775673896167395552571176126989469634871972694873997545686564277769608674001974294999019084929888799581701273929594718198783235768344019888013901818667089509842812635171562767193574998672103746305344834106581844973282704853841560212663383306896563698643995511767721873688646258363844913898504584300638163418708923889803707071693127357957371710824769718841499452837607294827977153353285587789507880907352370794134248103590843023055531674553106014719617854471350058153016516149669596528568318813786761723230953485884108671377985636891025827762343017429607418490788454584585803106890036565096034189241308242292488602187372226652339271535857488494536169181033303341335998573968869531750346172128688972083010658238457613568992958420336402010044748546828512643216136435113270247758320878164797749572674392290958083211805100099918243918385877854309675415756991146441601502747779625374952849096542391342353610019242398987098286696391213116187040554544639477633846353963317775392768466734286162123306834229998876661596122455740925432582406530251524926548235017878102604099172559080843013047566927010842193913049250382244367742780105147041369991695556690137457697622520256710154146723066622486082081190467659751130126443161725495208441618644768262735640013696576307180599939536233414754503853755524218117915846187268807559177001505174534913289379374963780962982489484694249929434333456132828184063691334686228538827587545036775188308893898937689110976531786767471954977313083683396513748819894029075746850038579656787980193129712910387677361802116326487434111998600360138239173996593123017817346141448403092560845722644912100051457050739334660871120301017878083051178941662080182977506261240174434566242287141118913936860413663183736853751093161160771925717396026606690398662782587752918920982881235984585763443512360285072476099921209149220454831463595092140625326732957458052145077679175016405840794154962905708517711521215164543016392006804884799128993301386962851364214353534553457016638775772929646469904006868524471433932726587637518039193909824944798161442538275278143458947681386162682933051049969362387060439756642848528531182954095256548853916053980391392754689725458532068384154334996060782507866277761686121042123643110014170983724476661810278335270682571948883491961135851849419506516219044476922346310948589499913945563910247970298244980073853034929729982058998571907918370258538777213280445815094888241887615414592551065770816772187330670818319840502848637419999039150076174718404686037410827313581526262407802831025492913685285330847324281220313820612052022490035943521190006580354410170828211688661462803375637293530896098476535044817977758476880715854095544294277661295164145133532245162491685018284430385190799220618015351289901206850822705178120392853772191002479750768025906023176700965546251554826780589733967008542697624329984321052686959168327269922516781848721327487266039300924843746881441070886730269478593969773004636790691083713965148466146975861224840536951116121898282066487188522552172562623914336525718592766541090527636641889677397141087237957145535083140756418810798982432148369143044410191612942686403810098854263029564741669039076126955737605008762244709199386174476449085495132970416043537169130626198988657749868351393356670886677668793788638868293294926418555339106850025728752325913340186324300889147731297105900171239679588936476362907651826252962875323318246108534438095260258974759038086910891595317815366272280940584733499114664191702238455761566542466523119843835149472949618314438345544112107054461814557682203884020691544379372309604638859770115468128973612061294305725235510858391867856336662713499773187579217846671398508357925017365270933117576131004891303050511561370335224819454973004508975460657251358847963097622237616829444145761570595038662949700521565667177461158335169831260034216575655579067428590020818897679172230891483741219428188100523117432243098156502378154706893672334809535919163669307830991203216913573202737835374699443699290186429068252099779104426097988493563048019708994213694810290642694395631860812942236435241341817894571434072251711142369142866994557181285274453404989424781324714103170811642482421652110666351375933852887339924449504365903466227597809378423830604524055786431432147305973521943196548597879128655348888414096868425325314741472203138430438045071858023368150280661090819584354970831736024655819701544748719110888915865826675681030638263712202978068942382641674434882344528492157227437164082949218780501950013076563050141735024690158617455521904222195965816745002948978070381395419052120593055311231873841779112474502388938434742705916985445881861642180057359980164997717965482437936106411843320959706473878313396280360250469910059685646197672722791402201747468631288459616296590876816012954941232167754306428613577871461878298543014950169989217635633995163060740353951014723816483282317893815407074148927913748339214343029926630323363571462866277270292977544714425818896809551609320334761345060469936435971128536859132984308325998273666476378723431468367142371722235429620269074518583211436566097729693533431259726271030354205086340746799419200019085354809263185326412471514161884783891838189427880965077294199573005318815665234462987587038076104912652090457407388867321182008663871319269083123643074609191703566800234275822112651845915549502422887793490308790479003995461349500164656569017095983902903169713191712046684266591318141298489798564037162145275430357459106027208741274612304866213055224683304880727238959043532674119491190535996194742028969834857252882471038888959587813839500092221224162570236447724493215061908096713956700541397349336817898737435845426990162371878985284839139697806334580631558030494125110074064799297711493681506877384940287927781529380231488258243576539087747968634049082104263277057307322450157337506569592815020504767254209855117195317010116409758963433217250798317793839156193737803498533180954946447133971501228208778719716349357416185606397883782389314051837299247761994726970451122267103719407362333867025984938018624003428041457436429568981459256730795187415710800006966228857494748174545576720408860822573078307770468214209261163681569701609521175546874305086476892580629242982841344416513678448073624261715508954237303158253355118117813988220193782200414114348149533950158519216843981701902771837272333888621758465445297886861995369995528926777704226292850989079578254497664892975079201739756509141534401526070535876328978972443075052633848728497534100239742182618782055066469437661092742796692892298540661429767625181129668517671119650469232420531754628605702203857211214071199820703449836343281717528403535629200949397871934544243666343901704296671565960371258699933488727397191464496954984794458970662139993509580069513754054446210258657432294057099316940355945199762744902780000808805062211600891711490306226854847053168093622052428526553319681302090605289571835496550019164902188060098928824187612109987404868627545304619789623831649278845231211351729599578167985033726693507196390698575262424475638517862910475738654220831343963743804716824247363505268933174978399344506444232605442288584906084114880846266977460949051156924612440259168685617881720856309796353117273441804786875795253407655816359846723562569952380638746705668656181118468608918969508523803534571732705747603703304869476907582217116224668686304842764520991244279255241860431948928437570684551955655642880427375137663710987680996620886951882197072338521336670874108649770377186515804170452885427257381516880617018114038301164800674622539021984177499691086739632751943618459464532776470579333516324685385600323217997392579739470790409597267748734445829650181361583700167386319385427946508135543664437472108759093467728779142777091845835969280031207883343319935309989704074220884684336952226385500756931689105639172820139483094389601705260371866370857321341325942846250950667744627675614444739902931238028865601822997813255438620163244695055879811837881373542904540491108272477275597706452022281570539560946923575053906001323091660755228908887724597376781415564098825599173155008481759665761006894102634249035247088672900787329514014004304954063248553148586754943168762927238728088180733040276983897121858409234089572676169592429559323830680214693192090824487635485880345832277883654636267302355561408400871001870809199525782349040710466042707087995392122677802177369862700093430772583379894711804096927435307139242892593628127341844905798370897027994176855894538009843747944893016165784298329372778088728714951492616309711458946503712146909133818984660061183135200607131798198847147835922985179583218143093344967798189414267915147121727137135319170432421745120558614177057684531423607655357356942218344522622831489000199996121565295215174507861889216457771927778337893410819928747855823873554249570979952330372436687007847649512179046158649580177143749210943260087694866772412250291499654781020835663666112522756721167429586995182671057235700187098826577879150735565595859498340051539989765722218516351556334848277908020123946054851683976166829079987175330019858401655440247121154224669468155816205582406774193818510662772196324081362224812313372049765266112304811094547370415018870778727553248311143106899169589591248581990823769256550499875609759654366404661475265873962284839595007546628552742759061783242477454039353676548622420111248264432881968412283419282107141549487770247779726733259096857482161480261336872994939382282538317820488576675112765060288450153511160855354868018162001467421051680503896596634447938769894462457866890687941475351778434151485276167928433601519546337470539133477242066135211932123431442028075707028784804270245481227448204683970320839915515352919779324363702124362542803654285982432802344500899180442887517278483666771976882382738827323317038657128507204625337418358410796061478674656054248270122455748416455277364014707100143125156393801478986595704013854028355978022693525985593333032675310808703551016847917476682589060361913171754975990369853651907255733379235878194068879441227734433418577215426887411808993982545970951921179852984368895094199969998513895719506974831218212815232179812972486931747416306988482888438672291468615690246932676493400813476968748306325396841502379778919985667502442634894045749516402973550569242107167562494474767720938651275195349669968386503174820368190786179170188398279038234872418834906720521616098454314088807367243575582572837295857262114121723506355471043643428801243885023415020561899887117752778669494413070837117519260119988578461856373051143569740419942754265382493768592395597009851883513124716523394761098135834953097826803731514914860538588219145471696924820732806267192365675609409097008049859798642424739700019654542304844006498683229426685475139764131900198115525793712722940304713531039622236234727773334733332218294709268313230860776487530392629846971675448567396033539395285244445523496314986985254248444020455031315257992114692786004597927268950450941873567531076139364570561808846656593343051718024206708187542181957981716334257030780049658062227640948230674064278059428544965536750732512680503988217355271576311747316158757206166449336376993443638834955264488376100467825105586371688459422647934105655617682397626979908577255079393873720989882159173442640581877375801331697331607377918855197354777012091541468642486051871560148707366118256059838312967691312698433524954057837480663799685498779550252097105654333733257975049492989632372841646236348634880001186349962275918799355314717902349760292602853701898239189919294231695202293644956563759844016885601640574794604772810732996085344008634804865168806676760903372854678976943674717198672761154838519935297424299225766580483677568407290454926833535006554567894344294771344582127622560938132232796946812820244046619651931396037447828969451966420209005314087580959426154260317021807801471950772620729018661751035177041707705532955219225305807941059811347570877954909685328545317586457620493147734803243976589341394863989561189745658111383153630825750131091507290296005843125509991807162498100402344887757352591463695765916755002897040260525559358999588446714045900470401320683647562012921517344797856650672498144873183955139176192314387378728636076432685563667247592850248557848930552467660110938052826090580686773569524089880348818191216199874840703442490920726267907091316091979668370123347245832245093412207781659261660422219042709923932500140183621548607121871471661912037552136526745386065171039815604645103417128084276344137136172595049604151601607226762359665757782702118438000971167753236370667793653640001940726261381261475586722303618289545121373007104509385003554427467489202206045539249480234879657257998241810171774222695504168548176126510534243338357616553139633628424579673374528958218734080552454657732691888362797252531952716287980298170543986441849771213376572146796458633047453745213532147932094039431470542757234101035223960407172619943889410140213506229199793164398467785402876123490028440811119898092354259122998645413957795685637180605517076674701254550137806315426103767431212647640007208271091755281232571831233141078976879041356888587225494284257444712972820468632341519316718904244563905674645593279025790691981959050520444500991768494362137012526923034713981900591562708379392982066117658695856842234748503129242983001444705680710088385073205016559238422652693247407563195338434157039230020202336095727635406264296423412477787805380735056744735177282507016066109765659110300729816927049227771472361793693752713204307810853480265813741804479186928323458055494596660291212074725051947261950654592025720384348144738385486645970969689631214911146917063828898451170495280337716870442527356061988931364770772832946875293498555799988770190526928939116948509410818174411816702033410486379411030939828890188820880101915535719302371277008926541467226936978609468580170676864143650969526616890652275420022398014307605314925796360178777400274859249821528760917422099403571651750680892774522978172577583068880119791616945634000910794501704054713177361600006856576167178345945708363759666366220505969624673740461173856011895315837664569566238900507111602231135355671167022506767525542705497844646539959387093560597448374122802940020344424906825838728770591861760691548011783402969854048420581172016988976505988914701649180066031112222041809873576542040039331448403036515410183175914534054939738682382903746085609174707582177035088318425820589503125622286944143179421979230464800382793707578187322419254027089520572087256589030249025908712820786723144549984197500130683262924855730268776052585754080642140226371140978871922927235038070452487800197429777619177665336459272839490591848091299637147229780950954145143420456479091617510507301143565123787588468309523181544164659372390627039117044701778436839582657664630090356949954860536331127481683939632786179701201301874404402761076602764530459078523674351914913687252909344146363714423734817821323801529652722237694465283352940708319233901963392534106533516786928725864354067906665869354370090162047720361603021212568276410036830436560838481650385469921579089873066709348710262872519842808349575438946389096559916731101959963431686299149683854922437424673826674453423832896468473175753513072235504389656592111836311759841222908029898315825885079058308460925517648496678343763010958467556446592862251771791124457147267599616188888466964845101922180533558627024883381591841149057675697508711842075035416874329710245169928667498333882713884457199373221614187114699884471727170289181388383411806137808642503885459948205322358349315872925422327257030403291496760736904750777555010506865236903289844551424323433709162056398580428078828241262045311312282361177903188005228242049575923432646161212382071680557689942550288391903904584333578654911873459595487505734762481258805134167927032046812827276186879065698021943507582224020089057783053163202034789800088648690024963077997687388460669644810227382170293802823139226747014561511795436285127754925931926761791929986606476430972164018706214070525964187992200050515653875276370225716937059939895048958462389528263471567421810062680674983081169666861704221473445567724872775829419073116575742509667532651000229498450526513755665492705661684779782706317613043673566965107070810060613144399721438765363905474332130914458990074741599809519548950872264182716006913003842929386845488091411389673357699511077839624643409409926324890684076564822178007493557524639198244477909473314186587863948141723293797962147928524214747774653676580012724634485207461843920200603336538564617521622187560492465771808283847303407341715960968086131135573629028362445129648992763219057351610330405637499923136553071445944656818483284985888126970947585329073247477037674631316475447105058250590957324216608407312336986285730725813457628023196126617809280457323870552894300974986355899186033714231237125833271761213441023993598645004743834294545938495240922094089308516074304981138423638813355136476724654742040657363956936773779190242198365580488147805832896512459074803105582701045789859613263244665044205586587090414517583757439995083883460343719753230768585050368887748966435373301545021760523908652322763510781299782690123815404216233020254285575353343750505819624520054668334156949423697817484240606093581214526002036744978820971980361461596962539100042862991851674116754927984773899509961627289661849911224961123724009083526891763087178066079633945449013497278616474218407464701795792281552346326036204973753808050224576633243486455696320059481870984798318264183922882251577029339391767498319440400782828987901874191000121772925042103961987005526941078358457642399628018851193524492346854636558006303883385514231165572274890606358194827006125343211076152754115781691368700507669812670249821235272030519776889352785998511890137330868654900705903808655268517806670584831646298274538478755407571839330727441111667669222537061967092121297621061453534620996786875130428047676660131128030032989968465019479511304988122118292962010286802699858086993181257505493536780853169922543282096508153291787026518581628248459946127175341643070654689193477106811867654223517960190823890955483358074978457388162706192687875344287888135863482243021196380594651269588017002858155616617297464229042029308298519978594381047707172675376361101134334985226748815150294437545746607764477262763033606958323120831008574050389459505613993210900550936327677755039424273487003858458967712550937774942875301443305086222532615961063281524978726455062851944133577554329792574870647624047757271958865493701651503199731345936820102413138601785955553320872321435361151642042940468726514297962883477881695139790636759180957939671493147764387072998170834565326029627615907814186836093316548075680447966660209971219618151624080592640827081494119857676431422251507982169622285992133675810610403819875192993398065130308495510767567430040721286241324400263677579529207912707593542879836228369136769280857592067595944442633429580811396477798820422934058925679763934975551849617865411376898024005314973455992146842253862777040139443337864485959078790478670046956125378591004315858560755211870056452824861125034877306743990402985646625075852663262922227256269541382682135750291754837091709019733619914848057825691993782548490836849601638334020288546896040719256386429238910941642310916685935036323090224008500142031657534980223993245625615967336081495185279883945112377729133565676237156621771360760348042390885814532528628258360054971305723223031531599921501762602387446747847166084670094867461125516029569594643895195408524009092784707721745722275208693493152688180856721395039022116076097753780956411653890861302564294878066546144149493649359091175837948818475914850021842918757675661434659609405668885353636439549395315413255758193208605695535403147338574065919567648762816409842404727585629079866802619041104069205041497707828225265315408671534840561788688889346885928414305620139675359610601731445324431958086724537307523125566456210354911748661524251523868163419933872666479731807489585593412842685912517304673595233136506749950601832954444508596528285503881803385334892561793566687210069122146246530694435019197685773247846340400241597781463721888086830193420870323617058529860628838526852812755803631633252244331175266708676699457807630186412415845457881910589050658068741168910017414939642029586835712060238055743262546709106540094074032041392892792815015662806707249142885965843920779754198631138895002715744045404554815956391097696215571174105254471294627548037265053340277666835239851113289666127000247212385815640255768313603373987748370732559891374530456844344137250914800892631642867913219918257269972720465508065354895205526768713975353532957422907271436188704262241649340145319349009590484107042446109166521690482418945284849643380404259806928674885587536421356608743660294969019002611944250284890677323636064095902600757349533836814420140593942219220336072486080118790956165513404829071609629834542530414906849337162427329398256323721306437579756210207502817896544643639510437151181735304270434651276417487174594911440626391753461364788158601076692665637096182822403853732020795077079724846168054157479196272195662415068820824156254142556138439395228922881010600219243940524359878539970977987064819140461425498478097673208576404565707051109488689370182638058917407653654404685635707747343205950296367603133650664873874439530244676497905561922336213278246645903152971218506001597836392729056964852121550850523954777700951111688889343195778899692789151676822592150695409521932568044041928734730120695726265222636954316768144527333134669897354666156078984665333709389420242398927047072068406960938611763061731965715424859640504039351864445393447689730980913250228379999065139296190670636435067497833127135252409989147580976428166963385612370923860130429686233601756596153029878250902560067655576563746841894251325569398405985946428580839900721660239800514396353805246448235386439655302408129527477165348978284051931500623988317407244160951972756523077639428878146164054843158438179165350111751920899986319011363706242006426602020735725442756661197122425249613413955976245087593867677906557344307728738462852693319029387679837978011903684809417345520385212344753930039589004037566795383974273439984487084442081633329934603724894643857195471295870299772154891940404216981967506143951873186088142072114545402660022142251723541226573171713845222348841367281376945356743111962143963095402596415288365121029254994280493758138841781140507503864027206053225043042104493687451051469630450454286286129368225194233726187458649061634013216965039836090777797574565523346863963330154009570136710410203276241954309992873977288793755423962576525099130976510352170734423365266969073612242821057115999296368614022166993031141039853794366650512276750644200720731483162097816055550227804883721952538254277410603091050600074177145128049859790100304802063962078346677088011847474175967419805839986143393305244287035852196875365138684389172388483786160988754950160152887254720409470986704222963507476001045319012795528083375951502728379735823779670140581544112454016680628700348355820622529991250126587015305274798016109927881797286744237815127879427480726474350505040497198061508953800907718316179379981358321262940542469254568627977069096811181668340755862658588875028968011103329139855675552106699700133672367643140983310990014818498175737377693907803148503770194503133808839993666504991710220572111599703827063032506329979725068923918562171407428505872737515149552577005135577401039849182585015032908829715158009274894878465528105131177475232170937462347369177101240500619675079841011236818284825933907961608981184707401183558468991538517795811296013825014506446086142735927604542056183793277208397749764925436765634085274260515512075294391254101081594407663334029146343759125211793872246581558092805981865708291201892183990132291701184287584485783331696552115226824534496223595365137554426179419050973029801309033456986644773018919983966811724239531466722071701971670549162959939616031409807721242996466767705063739708491536852471278867624718391211829431975502113480027409034752490101702082183463271901757186283617801917808203940350878843841898140274155264592672634080177304111323991070784382905188064504295726978974866047587856874671251592660589246540194214530816393093145921619673171359815561875396251479537767389557574598380870607831911368925765922581887459366314604545779871774442467388016998988808153883617051830853150188178749022673086804861277261110416949458692918477736970373582938135829623458012363075910850882584879139310292865422249001446886492009445169887909191615821962370257231287397173102762883050869978517520868916514468772804616340571163054635404686786831735207546624374628007350394223901335705232350586600313252259854626129460233434499667187254598398244463290362854198579305139240127733620921214061268630129028375506153257068428301012356803969777183681688176192050787137775310392880082806894690925947099188596078764318885381176285565406513537492561230600467314911877086575296083764275371733997569578830670192246163509611651648767610078556733025506467923226215083939880616331970495221067031983188702620755240447922257776018591283134312537677778510185832008842723550583813395247167050812439058820580223904556089806393957533917564299269511080445886706283887716981067931894601981714507407421707128473456844931977004486686869584773109804328791499941694125343088231420204059650470614166665156456485790041736265606927684833048719652198390366705131772975800828652431252617375809777135818798664130115385776276958162412323772375664740853833001903867671625143006725002496369436327635819077939370319366635180196370390324445052843745186765188030025763643100774276579756301669236168366825705552277793599658504041199982886807596782440968665577670458940275769290291280355101398989588681140423435578770576086059715543506267830244540456118576090489894735066396155683094454211243276739449645240869400029211017068323529978889555977150363483550750505070886259201570312429010129211323382476293012290769331862844198393735292138815510315379136736903732465744120560629629840380860164753557042184791093482100148137981843761060321782624756709742957544944431198021972649050338676089857328047838141821302056991982272712657781814971468340935126139975873628914744383825318571669644163819298285160823433543685360284509128471092787651443583529404735652578317661545863467089902626327248320733285164684097418862178718110036025235707184440333858973278263617680146526330817546473172852546155668742729414093085776318436803361881889072353883401186358344475568742022149684964182425600476932256918858878246335582626689990978248704358668270196363926032781877998232382836400461763283661398132509179404996214444788226718314943338974026277752234202615225514750720500080651079495254508249413139463508110729585021554596795564148778569073137992385786701032832226915986235049521777875737671568194018272124501570624584079625651951939634634470393926737911627918057229863001179966568148525955715562166373125879977770868806841972909698712204026254717294910111734121398007252183813890786662892177392724180682268075585183005698968111654477149299684975933108957747433909758413224210381097844755517400445382961895594883125219147096175508946014765212462568461650754429480988708911698800806652891547380979378964249163520346695542028626203549003904334654625748064681825325147106672546363715610851644431949831530493314014038069150411580300339592156479239146681577475541205884516691791105750839814421742619228207342837270176570550664675298100408978055205013593563807251463854415725406638046357090793698084108046475083076325348419070442294298253483137357924772553149291397547319240791458476464887433403538616107646381888309160534332630426036964708256034345697867746251414968904051905767813646259022878582741871945655314580025767732101794088679103784018073395906372039702809019912922635311139215757254223086950015812914128282482686593252544558854397437686030342795417255270738813063893654176537477342371863729819496496411865430612098384800887911412130101921427349809497910695948521627559398729311439597336239969587994317992533065090605417493447395008254147961048493374243492368576494558213423165342784880913265378322846244223823082035463887816573508364630627201372255984137480146764629282362606381250012348729159134091482921318290565411819066695330192382072687436890915212669825812462139360663324553082985342917018852926685616062966222586112075784036695963092693009153174032670237830536075676582825603206661347518430595283500490101381959732089891657629056989958390819631445598424402570867286812686430238877726999623806918607457165651970335575549652229645595036231679116945816128550424211409758904895314694245892056942598337755750034609010903999861169541045324594206502414036302409064149793242628566979657100875698926144206687933108348079323878331420379252130041451613333877423495236917067933066680923390426632634844017546217561201408689277400360179740540825571837400096065831636057331951926985068974856169728732967447394172031942405986069179428049771334798111802696360329359459557988369392095373355616595642078982543232499546337250180504491160840102567073590332043879713836972220513339429752175889530197391493843266995955653321119429736685502146382371172264479363136150194786179807882599594294720424712985610001522559291197021068039727494338541262680780261454396201568218885925470079201444446876007200216861661574915563627413907278250899093884431969706584697141087146297685212424765316331502323921189526802229476124334729905431724555466265320085716980265914986625467977427153573588020664281692610760096415603011440930089937297551214056360987031245153390851260037519516127726202810121618667782717869683245793513796397429579646807063532590689001291214772665722800474412934377977264056975933627340135194237296945070319248026972003365325770827895154594854589295851268833145474966749396155441552604118302779124017892837262491418978482283293948352324956614391257595253020815786110748220665092650318499605798742891103049471186475958311474123397502428392646553685682002801314154776493450480575464927065242375162051035237110824329409227247358283698399771069784545428128665741386516047430655793559387104899565819117637829970976781823949324663851961639099594691916483995112476628900555106405489537966098618388883617970303275990689984820925538592679902848214318058147673822377156813788951787949500163071556756038875945558624607345445068133803133739674844422276270932982213535193654946588000018765834731620672405923722615748261675985580769903569656616652062634553960776049198244967604518007985216893233194626355924682248656096568496183891947156554523677735202318017855991425005309640618785410761671335016852942090190738859967543488588605706426926323099659959233433577372545753070516984269931117015709999789016232982105978598612291223758391400839278877951666599397097199562086891199129508567080323498875758090474299146033682523030360483856383213070160762447164360616575246760984878279634546400625936769941204249824901885833163563581042674661123571597857047905732409060165049091056860489288529844307816024687008097088176811201515684057007599568635518482536836806782942404242547025065635396208241445785128623540820274954419481752302603577635057527711721325301930183910412520458292352308568635389821772265630048997828642131630274705590434493252064334874035301001407412729203223282788402508693700841299391307159183464273711284271438755094611517764665798483920210346422888111144670549583956375589623514048087784049573469788506000960502537585790751600349442945029736708582883110247260991154503948826724467911680127372560144881894350061205058609182331562782384836513744636661636164564171885579529094520110422493365988055349145285706601281257873081563270246752032777886264112363360894094076008208229953831257984822885258598419621300016014683272926157297977027389288633518069935500150984022189156477398795028508693532134539110279055964214694084574531794342499292523970674097235387168901044213255801811584404491505426113017930160226277374403181108443763840781664757096969523172771118315968922861764802661513008909830849520311463822577000808570434960695851128810089855589131770802098979433241965841332997653950378768673864326404865765769654009013733953272978130815378863412586177587813401378520556101248008985187916457005797109144645610298935794235333376979083067737166680098080230125431205201566602291682365780751492530102716314787588581105203657818175080495182121059570271571846516675525055204134159345825590038856590425984066191685378458825681917485781329811000965144793387544065540884026130328132707924947653286245396141523595051758175817654276275403349613976670463984993474743770053149620655468248718497548329701578749653081758284361140718312855991140351639124259253334620543850669537756880731236088723398761419634240577272909425613768595153252512907073059447882397318671367895805518332616754403859287089893373231219267445781091626893686639604790548732881509508628582099022404619810925921977297330656898019787159375578433587253248173487167473819427649591582083223184796928967710181734149636204850157869414159650165979417758075397230654828729918246712960896628676510494106544686040015615576411434217813305798819000430050192863187031691540999330348685474966985891310487653767488972115505233678396253705155121525152926590761253279645857687456298684770396114684085769300634825566250638815444850614007435149141986328102015165016093077714390657757332171192082741194826314629907672571846358734149515398341007557406470974167410696928704650212711359950772045030856362080825245141746650132136257199021722444477781966436988654032426626691424256897958151604111528070487687051093800447541008406097881037366231597253679929242193731344049035620192798935921380109935765366492832922294193234004681398871710926689813551184831038644985663960443826553409305910619674861522941845401262374657193856555616060486208888287819170201827560834714717295555913446412090743348724494711781041916829431535541605301792158310605534181502965716573340273478554194116947639824174906585145197469933033176255649674283769986128412175607041232102562701448570130883189182240396997884747752359134568190920299415215513394607044833264054493229749437691083885929893704696886929737252044911525532749017866839999482437748168915633762465913288388947773058577396282369770757257145189964833687602934634395038234650041525161700015846053467389184314158578676709278759954297494282735634026790963712987111485113472517567856976958305840994287473404987807258497736233302552024516007856060865193623399126119784195353248659512226300420293835593399407894769373332236140336079925030348268396364833691129203854219080735407971956716060584743727317793297040185445530090481885975205696515139680518600414833618871023806382207178917968242351411862894854122670386611496056696182639998928757082868803741011294409916034591876100551973866653998283406993316008466946292689750648507741513527952064288093892032132916466242017486095711279930654102150702291134289363195526466322681586301301432968858124248680526454183446036391699036015705221043700032933024752142912191153524320286715880247649535436223439303513865003565212145968611404186479020242065517616783868446260824494631704820140028955155737776140960125740253636700955922950589968464765501453119084711072659958309085198611084286646195588447253950774301544525603421632469477151521003734142352756614714293968876045892628321755868145650445418903179802263247407428827053144479459088807235426805798055171020312819237549766916048236208672822660441049055452371390760310642532315956840189934413423277188410600077233272130788423395835504127973114381070467069691683045993352812061692783475707344615334485346963163351681659128895054494656055403765947507664768513950391604230968965466561915836157731702885327803339057469872638741423791155938256945862451630294642762627183624210701483120477543092067352550405223287042810803788768973727145290276177778049980551971336370107887997834797956110228614406905444528638489115382990829571603075252906742508908773865527698966318626364601400170882900363607414946946700422998001518138838799678915523677276771219268792459397085129294779827949516899740310936190059722459549908355336569816684286840749501988161203512792760527404966269823849578390535522449968226366449173170661545729190972781115248710029205349917786179605263714195615874867427050660398092160797754700997468875583934784460683718732529653132417453648724911476266381519190391160380492700929039199908008063501257569553037263908108383449014654646011927235160435183638796508697389510075268221113052542876350210336342334388371146010724154550491296292176758116065792791302745333229794455272707524861987193331987689812969798042182199172470715005306887971078800960447112965592872988050325643107028205492678138388424978650795606162230922709685398501710269064113342846513758337319019133528215868226577793111100786182342890351484804730882052447626196964924164990357273094757946893962299893006146480127951335743989545951264365597392423310771245019994795248031329977306777724960390254719153614000212247643331805118606184564717032785804481659332637946694456902161510224244034230916994191803236249710042270524285586765974074682806128385145171557915010665604749940086902402391475480608688249700319887626408954182365073140986655248899951728370880113897500960334549348767520984543406161198262770628344658046608976854709902420904033510559296398926346025369058357405508290821972695955936393107768584034047999457180889274148833471338129153082245257222455028835360432604373627412334917991100116172616306578203468856538609968830319292036913453982691534695715032055552419432236820389451804098845218016100458164129613987701983302015153565306690594921196727416410624684923015611587470595217309002387712131681084247988797253153686929471442609294881827948590775358466183732027475664981668542731481147037460896392481886874990641686717804858373585737014370047434453172432375360550421956388760928367153195478542003006232579714202576930731505811675801868999098340921146620662635976624469256460101129130891663262054721441663559495853006811282097770516811410140951341128472956493792867936279599597157767780659229720264003568551496457679782484049708966993074443571328051706442803993319289104972972984770376418502141904237486743571418871171065056539118501449198837549205621224862194144092239248998281812454923723871824635988927954289451092221542399323207660508499601878304397761722983802288129392838662484430764726188797519971902194571489572888631948492270126148072567803597211825140191573266097667799316726574389835102940207698991843636170056083230731040398551733695755775132922915853025143026046370439371936884446806791270565871857677349981545874496315022976795258028165947926341159665749150676626010089292608229102582747208482957702343379649465488641879726463614424561152838727483111053173301817156054233064979722303252422894347807280718178707477495397080143514669283095319484220109552419148472700203072218027405593272259882342754825027437277111322018237641684921590943304037690430626373191111848871461417066035515108098823349344943867233835256161555909430691027120489596847079306016804650170526658372275002068272808436642256289942204214734768319996051580624481717333344709868649015078417827279951344763337705514487806406603425583824031115136086099880680309456330452006982753685327327032675196772601608684807476296013452185632682949831574130116866823189012961908933801416395962092211528419530773388523503876803986142562892334031586080879622246859290913896577461071354809873752434332163006207607141462095822412358194413875110752329151757661039012199602213986975308671956876264724886884181100490013055228000633946575298183934688954491091549820349229668288709880687147425538714526595448868220157039582158608892855603577536193308392074719632236895707360325177740681795715610997630739127658718144127095646173390660366485090795541956379135847166999720733392750091576084951390542456979382081488569786038407536208918550921044516944680856612898334234484031866219154702690875975030418664243069213742216858742226365557721942192104241402766835434834705882224245373561101541516252177751768463175590184987378962712729089772505701756207101147766214953043212349572076109037599754973953471663505205734676227400474914983066258516804867049677383882558905262743912340546824670370337766403949821787858402893290908548399032461209823861290039058605357346404391064907132945101568530859107931594107375395138149967377736914966211410112864737426447411422051636956105606229357009506822002053969372555266561556168045932422523920511886119490727725532554553209385287103421755847565308958751008282739730391587519464147753331585304673697395507728288107135566277948784413795768151491317399987833825153609804546353075828998181007208948866890725256111741060332365335158182916688069430978936575817620077801870277268478746104274610749589443027831334510688140933933045221191169932795999503988201376933688975007247763242305395589848220723780579428845735201479417775150888604167084493301344431274533247862034013845028575687215036267546506734065871248121836927077036637117229650733215097275500093788318504326716040348363628044754963639994096335039812583972051606388259322856707516750707582267547018442023370559174371827073427508970247034539955693133014724701038717110401322051101275639061272879591941790811096874165239828809310647943457825603044984031292493224501495498151628103087503338279254935072998385090257990314062389081381110282453147576287107019716188937102223113069235831481044884183738099915876322148517554086828055660073687891305002270747713222094961798636473328282281320291503834157240965438596496709800031815079746443452164124753464431497905333226448846391013956258115251288824983591412620467132982766990033443883293821946319262918003535662363781987358150948902306811597499364540590952062569765099500701206597214794118896385779518619828842850702659709744009353762050935991436448971548297617058004624002868275646799519696951898452747286507156793527855017501544178155453088269742919159110122744406731006036293813029609992447756945934704263184577358687861913357296248916904855041886212369608311644727077044738733469060086072678927956384185783768443993442858319754494851551892401171835683822633933597511487634406610471479639681487471738049379874352090660124060975380215008117706822989903555144369492995889274217857541545654066047357613944951139165941765779066837132751335091931510063581566994769192090068037459699881646170695841517264317664593018657419536661974329140512684953671700845299957123386813401496324910018455530515830291194386263484904923844463921506918289569382077204292744521259764490302415483011912967344981470011200154566923810743766800905534185941836111173271001705379988652739770294735270758673009872272490045341348233274409362531552182242437252203932571036056356459453678845986026639813869948083109823494125272427343660927913710894281229584332181378212797490401850626243463738999993024991103201776259367577007979178346613387970542309509557521181783797585613136899451636666379483237281285722926510711746539710679403277057585454245757295177139871112145049144665462871067205109904974397012235728638982066215083619230911094613605410640753949519379994173567859518866407187285979654023076096853761368021692325963423756722995098790118248357817542309451189488784677914978089306741964641210840201715466873996035588261726672726587507541093861998412985498095537147981656058357008722734615990698115313144775875332258093379444964696349015262830196098710445560757279997442557339416982447375763870547173322988046173206301463321641124833461790103772736514983380588015424896462358341614822654993440793661978375789383780456547398298155188642498853420624365690885353222801303640587538141266464063278989015484645044375680964513544625194872608613222989711355399695067196514473694789635653867154119094143642540205174187096245986109608372767833641147732610686183678312461213414108217332320703380779202472286122747147653253788335074750854425980374785734065200134290547757097809408648313409902931337232298412069800347489329801600367999130109454536201123284169819518596487921276976321096758811219424331516605068058731886577198472243725841580865593335719984166092107507506835474172017105593910814955747123820123167017331894482359524587761035868571118966373787926262181013365919256305273468487319127410647079928837479349505515447732416068188806313258148746125119781124351673286256775227780749554742847831963615416105622753330151882469011595019015288771633816564556689072708840941433528434656542944257787900698233785970402226183177583784801716779007072916781351021546957947712244745930768911988413491473120290079389490648121983385668951931572807718318756738340647412427668010972219252370656240865350435036209251070001932571977683485346101817499978067267934868101938249703097255264021217239972861352122990379784645425763592757001470405700027406727105472366239621871537642507131845090183135649097913124379157816653496671468955569649626826811650594637579879548456744496397992155209744021337136068641540499356844183517129765801121543631339508652525613537343709490350674107069762538786663742893737641001362767429288605839498604735342619647212869794940199699741739627429577740035432559835005783186414828788177346569675570323713431112488398449372532720338155408651426569318646762307611779677198440951606094648407465762015785614747527523726812806783655259598114699119693999902392796383160027458578211465912899899687252401194642081382686025621540024306991318998166749045581881869601963807134813508734385905819436252020905227523077713585613931075350374890443866734021944076211073102621075007839286424130331692408557797054755884759152659827396022116411995320916437965415672895106592937343983279012237303718655908669185387910706236162805342467800181146573101063292101823477201983521195001749732320467443152790563064281569993686461844600287003360879233905255768105927418431892845488244132274303348386744939888087099844040923964853702982018477858670348193877531163391085144973053502426091018198510526118191654624509589476562115379686247204011661757258810186527122698146563442605065930491997233790824377903852974482695116510899410568153586168382115635183856523431708652824662909435843841472027843088318845159099257614243711165259069578049345416398623849488305638061824320087333108259660728173081215492408469418252934363627723871850918644956558475079458742054832600036012136871248886463385655548541443864109017852047219829853133631572958326193420497170349140081525841217219900750216132414703396868829468208458406260184574353989924859435144670199714934061259732913010078299176207731114296395011660168697415703279629112237123199821041712460904726584128057383377644222077933825552930633747102440070504373700173735115917542856624267554289315601987666234926378341398265906411589324350046552512748145935185571979795978004328564525000795693242735484420601688506567984052308632255330611786351602705059846157182237125862632063925258629942117004637806655427970913137878277826501160978355890143670861816093055131698728315079936828352737549170630176851508439056407577625236892613447432771453875850895651972366058789425794336903505064855176603039007307111055213577857078475863695984559602086637246748508075125792112538626564567212820236715022048623264833911108989462172688508118868895328466427788506508961292321081875368658353651633141248555804751086855543134267518969140539505115461840866343383766987510960788637164613203454690736547988292574664856930859397897687589806976888602127860230717952189273423219431897116460941964329232232134253635256447699028461775967428962718970965808180703247092565992062943681773171706309421504116063045852527627134345476957294753359060801945609050003949589030451675830061844020168597096212209289948964981793586715860471102712475879326849758174717870717148482799362707406455255985059674829590759730364229224778981454195831807047576310191696664785122682834065620538617059367864559427593998824028778401198408391847493305399039627538179858340271461032628101801602457103006043199918634471384102537471327634286709455602793434853486037991271231833894609293645308737442803623103559993109491738471078215336388224449802919515825333582951722049601715795700431524789757343425298292929298213071107383522972179119211903213626908057209551047199098930796665406573560929906272655638579743421854270109124135572707092693548492510270010300915957813776271372120855253282344964111536153665032426253240447375928143752853871520208656611336164652547028153030084357524608488722232604273823526534734887308082656351507787414138914568292314351553958686277882038084947199057337161692067443900826905074758129110364072060289533602165198357956344589493911735968378407497155865134989043401234909965130569620718859893403253673802993494041441411611516953251371409598774496995823763747781317786493813548943679452401128806185836019427884822744172528363730419237947277170147244579938922694364446477515716596234797538052986167004910924156359390619776798126534736743769121928781443365484047705911369031165626436253574346221476438418244668536994562682575551278444939884279664437350223020412723459317970211059556339758455459979918993926297175129019652357818999933955115005963387509206465326364694520945378497036079631324889655289214525950359708715861846074604896202265269652600818187206091603713848407748430047429376452243109478825048801802854943022597239992780265504442884400526985488058449022814131070805950144350624252869992689260212462826529164215578623489498926496135311825088569677410550984602357105044283201912575016261252073356782446654438646795521517711045960758660798458341932142965011981124776291274879298897778284651764643110808986045461768588914638999645470406962019756887992698542595214885008817854331881686455610427702751543057915438498435424117263825732714156443451173918901284375565199685193373681868257349882802281312507850208387078050617833710928248191510872572230449245261091207617804075722479570527770128905225087782395840606723113697690340621636398584083315517068060434175448751484138017830657075065764019686338469478220594783603456245640342138021964056296223123445806284389829153634924546702314820020245431811441428305542617206172754750560406891222038781538341918940784459424965689332001622871543626863154215187452339010894658440452679595076961399405422722407790901722544040115185458859925481410745675946583188273511903753033233030694071058891498618328922257685768410298203067452535232870035693267980102982988835405614016328299964495297804679520770274723979283680969715561827642862596850040356851320768715956612748105106990955182347460068326062073331503896798683696609818209621999594869764036169381101160609856620455110080526362367276366444523989798698899799116652407567118024876030984560376456349665106746981007391073054298311336861510083240382163736948067757970736949916336413937046050418363419301130736352860411548782246119592233427812857902312815538502445436947188055672001590534896843743413674802806626036099916188553448801874627418422086157881641701080248448929900730299266857956675455242373288647778846003781972656902641852919253210063710102682447555239659303073947724954619889304569800325657425047974614685833336971390156449668945269039521606891327829041172972176871548689576561521053298954732989033380779647147825174649559751564588847627565548350442519817433398460493604919319068594438650230384465988718864430324339396446959982848400468768026166581667063301926823471632518833848440679061702353528679736153969637028946140609096204690119229652712801490779068678651902456210184202334478882479870912472785898069566217365087030341924673536533174706027637600093404207563301939610181045351708360220669702819959134076125684160766664564831406894140906921189068573214248096794614242226483722239471252559736313876530721221143508168880088085332284543025476938545253193498159241779972250908575559736324477124489605834391824245267367330009266442071075865223255778045771890878883474486693540728698950671514732495967219674465742216338959940432779697906499164729900089643172656190018097543328488694694412878445476735781395063004373680161603451772500878425460427775026421362091026480362031070358626750770637166894273479954292210247918574702159163814949544871590677738729379429331389297397413211846078265854140517738424186371881982322007069984961906777070714016796181643308924138542873234747091073623033982455671057956429170886325645011594789856789009724960220386161794248868972873096351503680558518212860467175250778827299813083048167305090468755248340462367088609128084779865457825777154720652602272481477023054887439766291449687800154010907370284197223203163416634698077480493298519149080693185927957521554785143075465312660791417507906084461110970317144852377826417745510721420610805933480811404788231875498522893293387918843185069955991332986271755355632657607425683672286497548322786768009424078537078054126272277159760847487396325950565413873480102767098548773272786342838935964335250804624054462708354169730434317641056322627276179413920145085165038274503803777011600312699064223875031446504989698888568018238740630931351936374290176084176529057585109097518608322639876375541117283088310087511079762527726784735943530852285102054964584624343666526859867317858318526229390687311270054128578169077318725750906820912856981003571831019290672981710405354729125620333315689642119130697393644470863569670900162001996901266132396953658672492362098895516879698381312491408073961281756435415228991765971638585963076215177896021885658787614089294383576856179300968898782875448888827225202095695549476502789342358532183012444721303801014460432383588538404240003451710719518751250936313025479486493972371923793739871239959133862487895664763147117557238491422810404731649029560740330421089806641324599139575352445624051087308270401053298815053861073889199782120474655511437314863600688822988140666622271212443815059402223783141200808655246201405659381757131898570420356941899502406350807829955335002625426936353648309415945671406417895495046199355961429393880534616432748186653460427800272145901153444850751480124608446112348756867942025547971257939280211604629055338142158513769838241134968249465669395868960020421366009891036317481126162891059760922062600041120178750183990513193549201310105266531765636131167211822433991601933510718924562160764594322067187814246560247546250574235782233094789738542954333243507946549947797155522267917517749112428479803111263435213708725849410614020034465069099324179837275977645278910510343628866044750128250069255496465745098371909223996112930560222064499411667501619551774647125507442372485274782354821377652650685568263251568705594713088710128758039794582081807663887558390368762340847355928143809420281675056658303474796680697424069945092421427788129282696271412129780212785136398901078597863699449203844069494303989371844682241706746940638508354381626004023275683187013742752586225725534068001448449331643977569187708212099026982875812140348298293115679897033386861162576731411076174825407142380638864325700758246285089691979335062584161998221441682636749283746130712111793535757566928043807900773776762206497720006355578344497912584451579175371184843105706407007487897569716653279301413429593060181429041862369222790130505962627716975162902577772638977202236347919115288767911246478371866854267173473188423040946230123539630212110937352293874897827999302162359567673039903930665838930582310286885478718631914754249745167266514685494042099957496704675538615021224550294170986462160239318070619388721571330831571787285884418972349825236945758701396943180524758381939431627682516073921184554646417510414999326648541748746134581273446799834490666995822278614312063797491704538749996968042005100919835672246590149853701190856521749547559621943933843591000149621888729335884389741847531011584119865716071159004171458448280964849357740219174523809771842607683897791847332760426841401370617422759339913347189938149698160450139124444673569524606223072867561767922314797463177989751244460532601983243107662353652655260219012783647578050853260231951072325807664732509119982755034094109156366019787859247420508682539577876920662166374545554076482342890989350506138307462528607839589076349136095925538380279247259101996711539079539129883459120676917080199925220621406742823554214801912592229898611614427434517284655144741261515047486613986457044602824184266344712588359546017148649561163909254054422765514035747699170147699884085448709217810633160185224582980774739347031809184897613174107660737856725805940462495769447890597539218901888178416284194105085257021923949621955166265172235408522180257174847878778743929460316618097699282676238833933449211771606631613916846144549382161482057785706936164023412987838478690366574358512002250077987325467148715860140967508158837768760049484277992936047009976850323733517820444750669677564387056494573856877548222012079790522554025003260983239451069807381063923468208522526722242712631991846810321928329321703808850110777278699503237160076523987045360542030103778229877688026319563582602537220064692056386038869403981878115274607624528888166524227727512151620882063517863560977448309194296178457547309136660497078219834134395845461003483297147719759204967173383964917056216351059824056984378255447510609575340719954918284817111548186275052944124301410624147487979546072784531421202652950999691958819591622165791660310963962967520751707036051549058335162558306241850635333195298912427980497726933749507672809137988713565483182353676492661820024518470606062225379871247035800614604429143912346089725707538806280336193209952885323046629263595164176207966654215180102633068410388155639461289877747148881468109751461871599260880640543975646100561825058609138557561962267766487120540114983431268937318997646340754368342263826390571582253612468379611843872692444825581643737192375204580391289451617260509525694769236944447994053933921660324532119003703259984209253893030620552660739497944569647899826570050364156872771866561023178704898046908718085927339554325110056713652439521638759491667573627107409883822635563592639465043702614328138476665685065877357091406973484788300183549910270045813691044178629114197731223244858641543450110039443953676463075451492441084300706196805196940716506661492019412095114917000660605570164296808103777187128376782873516078338246557858438961816576690205092961808675945461148675177564191121597880563769793146986002683278885886593783660659709232470989087054686537101150724840104068713938434577697827510609707921089847273991516807821609691255905008769271283930303334058888706533427131492281684914698196638274549433011181851483584191420322846813021800855232329239585213390204892780503350559674408572981038883230741022975983819732933503910668388126852685255254840588083738633513298036091718884098299732214886656312438074413071121004844636557148545512401308291174806929750113654670273867027835823103429290482645376589090059570402376293974776604954590523314677063722232142815834825548821385202946787408748752406521109148469620537125229828498424815897850102197609236376435380546799418742862689297718892461932863741331677920798976276107411085263763633118323855299596389891316121735650575266004447744734166058115387414701548036429548762761314147613135792406479820994283344032498162533698240953799864700109330106286821809290716902062439523819323298099400254803233732304004591014426346623289592196797545501997897406525141693508072169454290040982696577104971953235983775507093774180900357530625017074140665299649225874919056020341555056964040178172339975664997849421379424839208505037226376582995697488166635409528064651867811715886368955597862789662882920372014745939439148853112465072668566767709544079784840189406520076835536655853168989090979285856320079492242620484219268620672382869987156763870008869757886864105984565021199044049135144874029540590292564890188055563029458718893611334554176389411323226415278473205416845539203631060919716674798190489423713158466442415409827704206991196140790701873462334337173514976726840565931128187770220926308280546191550212215313847302027693576630147065044779608629494124952295784245485278945565412227220189494683783048832476812077688474083113300588875961704096123001258782606404966878158307178781592482728455200944499837709387216682554934758137492197730216549058359547054982978275054716730847284227785239651419576061550089300953283550396229985459760323653622239855033316306653088287283395958139415558597327322603424561705332236783795763036743518144119811204604687269829435940835476833963181508429704339664154151407754083289743938537570666456877499360371264151923272444755524641922727572026132132072756183242528346179286317738113058861609420323246676396732640548448705046355732454687842092839938194548448672921193224884635184779757110821118817415702679089526768944564095968761084144162265735012097646578004944759852854904092884976200883601442128989021783082011875315065087971150572356678985941257298086242865131022509300373913803782153458595830082738171344474695996206275269362481871943406158930095038721257136434657647480128579673847741241443048749549092975596826729621280882888730777146307246109938223471022547629250066771926469611144513882429753490735632985263517610419763858394472484359400793153638316916701180426359529531554454097571155270938361433687675730230913429449067719165044155630286946014167431617169567835269359128584822536051294480937115211465158467112325162578360744728741403494037907010565802357116898151453133990058727146888950534692725133878614251497366297440841300691421637646153695283652645349081159456877490638787135203278146164905427195370757775885948986349204363679334078757988742231508789486129781267105045365427877071411137918182442393015093215440918649733177278105977793028644950897936390507935490560858243884228709232506839104612042349993457329631147352217147377724233869018857664110478051282853168027990574979839585988313692389668899559317780134023510717156522291729628555214842980543579429431788467610037498993418707690520808476491862811872592097275740352547306110319091159354539035621086557147316282724396451449956419326512252810171543410573733195343048765159893629187748088969125194691755118415163224605231837510874544542225442733213846718563781254106627662992253422823905851646383713976782816262671017518191273045780548804788766545582441612777666470660429215789283003134645139287949871831626034566530941131575788235962033815310828433407276991541122440042796768964217087270880741442183095093340470420446693994305456692468833996952963773109226696010583036155327632531079168423983737465482381211048149270572558889906833807174956477531125184958838154034087551800342001650532806580739071290324839109022461738587749842547164499221818611742344325367494237292818041596202938688648735700563629351717917592571976334295846133428703663466906909152924802626323159590364480423856045685546492948508416157397104752611594350579588728648336932591362922072927091877346496508105366082924284571383156527496524742160910924213604942630354145258527290123158855632871938293334890912338420342589697942055196579262239544162307525996052450356795135171293120382726612378285357350448219547256711911034762401763380080564257472208907033857137277207776625710856562756517692153779114823784473194655691030668935968665832060986994134616592867952046567997889217689017787213948911197636152457895928355498098981869588181934910689143356629375249626046254637802279197031741410228124786172130195946081235438578513805146818882034040751582622683745660055828578340940670827899046805049363184276047099123740365174717686103088740358756110268819678746201035454457560727930592814585087341382328492822034961430403811581743285584328906348730801820428020605419278054205335222488882625879029178407825432750623561297543534662140218257507378671394806788744439206985748740339031327523971439457877404798843155973779555828712872776298596531406451069728445758703051779469926547061520169817903512366289398076125151676267150993487552202062107633192685353801576419561019131283954163723917776129458274096220491952779784329355706397370883288234779765459287883965572857234705943441070392676342460177681246249461245057655908760208028570905556190979025218466749288402287883135470238411061382242035877429298672534189995293781678905789328620771164322211670718493960961986213366631795886824790634822514421064528625376387367354508670834755032310541099130435001611878004010811906644305275982941758139423488243864559820018986652481302707480329546471354277887013692588700908736171167446565061643863220094538901169288953100769503285661900780013978108303945784408729761588927915191470760082528729295394770731056536851638974811642881572176655058178813269590834957145042231013541292962207484662536142504944905926535408970980631267945480193165266127655969328573787544243975868443467154150906151555563154458622310020904112567730564994144486649025932440419936231355534391326804930548118255108354231801878473301998417679167487989285868891599077782831054138093515708622705982832824296750414875674952701155226894061979896723293817843685293020917432793096318100645352167228565896159636673898507674164646685919896879649758150220426137323346427395659455494169543754379231714583046915771626654430096137591512550376883225564280906123851651818261473337608604949673452133848440715729632171179196097545945255385984770698346261262902809678453836578561422175598522797313264143021069786748328974911971758834405450832139871487049069583949635365894962954881132112940682283747728436562298274148665235774887458761327513324644985656716328486203110013603349969221741779776154710577738311804092629398760937235815813251413092262771087562507534580262760588949457027639710657279461104560661951420069173980861230626683335273155637291722040358160975620773777005726837457023574161073133586584566414063502787866544781132792191260216675574760080455498597524618454583325193713475708746480303991111102844192225493129081263901520742007509579687342618519314048096720832270141976418565609234534561344228539353138103653233566554862307200461554664992518783165019095294110275822080595866309731778223091145019073928070037709539657808154903645366182867945675232950235506363099534533811110175481757046906959660124289077457650546909547473891019510235996089173963224437479557616692212139658903821076453405182250850037835735096325419031744836762199201903945339890116089304277469369252683578026654857467257183872503039775474645650407476597139951833260930694999882617311597598477624103217520182803191240034608679266625042895747671733184558237627117352622782918915472364493299290564237839761709274607479138304988830680666960217946119108914453104625362809098870585036949527037011609150028472708845355987172073894718996068286477772374863954397480575869695055270319216722177767594972326009936122887488855030386646348912668034985358751076164597993331744339075446953386911685827203754093370935467506684265858062625935596833531896432490689577348027069818186978765318147818549192693652258955884710820840917893583062001691842533233260804110412196644969999390807204630951995095179736954678839768239034071112285019972089387141121550392597766751137105463313114391933489106321077718787165521830523976869480531085875193121383010915732243588466460604932979024602855181851858537066200668342792419435408472081628734482869300850574860764117926568176116407852098713235371530361737499244595772821927089128252173970574384636437949069414235328650188223185683595545878277478944909710666898558186309560200389332079605857352399888490533441823413069754612988379218924610394698722718909394496684243749039422295226891076206776261945821273513955746324313962049869994941266096348794483321717723401906576062606183883771757567146957790112262399930690748039036759150759044765170840495494325115092629166322477653530466523734222812893763142863186982793872709873668265701611010921503402511195768641080796015642198364540881785686701169497900309311562832300994452827312015548671604257862352387463579626519908626140585138814044985215265411678970620911729071038536022000217493278405536283769601426140367097050099765330268719341501278205526445110760307396743444039230768804683335337298061012156566835620178111527621658914278124332539356879574705973022425925557996850087813634861710402239210848860229730263684608961091816145139563557796410942300337109275770472331724449282808428426319444542468369159365820391092616393901753986460571766544133433404383986949613249050454071374395498434411137149627768538088292747778121379786170565040968629428967907286287978375241385796186086023994506067576039298673412016080150028425882687633378521548469028229532459579749241769977776143681435930937809249225322235082644949067877688597426727921615648126603078843557247137491059767656540737818724650230655739661774433117440020989430730008955425014934132925064732631936384983160580192070802935296090852124446056928714585849963646590766650502152905883019442825764473726970558522247864695333637522175466785032590407149896175896779075324569369041574138888246142134542415570475874766606245325451681202612800500718092385915449511473521631823178615749401688853392529318067599611636317193202465398687495369963151951902927385324958574490113739508981492739686122372595395672895228646125009765203346695180741211066802384237436618199868064723881657482472782758828728294993890065379091179584157791412408176888982202531049553032622565438076120861402831428315376592685336909849071475588188753282464928695722403048762083726718951008446334484288801006819879053312047443127005163059899411022880322947698387951591803517303062707600689838562932367490200200604736944029487706038115021516561846888484001551825079801116234813656140669449113086747594538859464125267791962731347629809928880807864534038374497113708627238972598114368313746647518210611092596501226909619046712875173300662608491875929618617519436769500044483265369939467089499084739821411685987463511955838978630098022368154230739151144557510774701386928578184947301659145019149187913024393643210417805296137551650087114727658643967034164494197416544648427740971847961915851394346168022316543369891801332849499930860528718507211750294470508711761534280760255692928480481624886130193622814287070100815164324462526026656264513437770340642362207937788796094537570860658233949677612314369764207358678422748576727633553100357615234270932270158502065942268811550467189395793569748231798756859610426361401880005180080057410080104209393510971438534088134260099606249014109443175003479008443446849656681022592437584019499531590836971623677965801268504059973941108611342306155423079817764520952304497731848663464387635289842455949939981044928231475010885164562472280762394605399121591706083493699309186738477828984088631664753327957232784414354938146083957637190693710467152150795114181715226769811210848919410680569447573879379433580957373186522721904554231069801601272742729601841558633689618762461047460746992869414561204745530390571358154023479033562383119893229926408320288289873429900639021065349752947638630655832263569328656778137748785105302784555175320544503215005256299152410169358357843474441837634297256517316924697861785199609691066601634374354325508426054110966584676801597225463909910775108055079336186108071534238579364677571923668320668883722043056015507883569320555372800642671708220575956259067544568377998742629184795573698309333734139818339690466440460484275000920277239359889764034510796877703303865502138457090276710137369528617496590758498364992506420986927756433301096104492775475758539273612870948785447229832209349394827054106363703493082387135394370321355088190370424605428584421685091942763160712606753231856537939137255194156253503978166836629384327190289438968087830362190093729732747996342667577945705660987922447843244848548350532823348227692926745277567351285797951712343529621816463010257012234046300228954558263514971008954225188857655119278705565572542760401685526221039802846967381620536057465571477496033901517268775161951804836020396828819518915993380252994686376696203614688473066968906926204848790583478985695918077201289557205060010813602387153814382656999268890981504147308913164169560263178942473461330642614045419455681474617579555944671699577408864387229181132948006892137751431347636480090821938257192087141711532736031689780454952847452960817541768751208679298742133129925512912082949543287039720647842029361961915798833442333341775328470036026153786821518683627896301170440972043729947395490116388276226804415783063503931883362540355718880872720659261989417827721482072695278376259666131162189805758642798522614084406479323669321900423201876457138354913220687524716688669183383151278725746514824312135329671417597242493066073702637529446822045201849261387024609434901961241703913988930194714516650925047572979004835343829555715240036940893117028384434707742556502628861261407812583084720181755333878653093739081051668079071610455332618392787747303458436446868075196365028979349015210056428443641893440391657529315322044034412752495785124073585841768217760708312311837519181523984832986486886693944717152650227950281382487350861604102099957582020555014648049780494105417367730804585987336448438910052642382802602446677978227410018171051338588793063026472971661466222389062564854090295949983093859119873973246115846174290953602810133006678691685473121454034068030922240250263569090916452536562774820734435102069444599276529679100400041063743975973374044040950168131639978628449551674655097853701122197632519090969604621819075006776392594349591558511357500259521544379827286976170517269244790388936576445352430485245228383573485108416177914507748497974853956691099341743545267977622649321622924492439332246540322645715199949873449452630498840358178224292669575529323964910178634678553285085489584755739809747795903467948976859206458392803397151620384532178820468534966817461555281416583683894639777283773708296974491748865483302322831421738094429976830433274122954656917193540837434497280676945712075252990466118110820593075598294115248186881691020945950967553394872472528622840003482517360378426599648611986712890862023080128435496262466468595515625024747630885355030816155203625529069503594266294391420548068963008525340976055500069940340961681943957823978408679442666565358039328274211241999139834143785391715111483731153664825420581078012970516478994011629747283764374343140888001751078490531538304049757446287077644859609617828665533804606854760844804725897991764737739636538241728276849404856539470130942882948313481308325629959936498962672339648885084423372392643486499750112204560852147835351408888150537920341395743657377265519181868464654996336150943948657821593394871672999862459862476914982703448062627957714337120602052122192052635888738588928585971847445301215196550457833660144439970893518799561696192349289030753605402679733649064855334366502059607559715650138260324203784783667073407405484270735495957215794361077276829478874736287097417285812322731469310083442942073495862030663450692692714949284410599531870925095924618281230685478606701305507163305163855348390030699428994328982684154588332994519237963911061181544390453626808315146918131862393004815343434290624163396435705815335570208761871114601876338536626752945055983608727428115958160452996510515355920564428884986862174985327680138011043490637890265244988657932012877041216661639270709344427990554102779086393352368378223632592279619508482831878153872204406056258280113020683124580446567007996877933317727621424215936291425437184863004248165432451818647666150092564562755834649219863924706202487422154411093823751779804608619918027712307860082021993351494624312722403227759523146633841265883095103014100738881732896848660708752647775009387385951727090894433970443374115720403165554311322820311591564758581600128211192317405327713693080421341806734027254066708074138483022807418782584280849879880291440381983718477239923248720481673604560743693818487529483051087962034464239134244456114739898652021703890100367840572443186330175757966686571205658057260591555248587999563511753566149701246737656929881471661000764246002534997327712847824615713251746594043980670706568451048748223227967687759877468421126257102586020977600688710401814256338425097506702447237287601371166493347430901649955483683954736672993779285514400859643274608995860664046654693066000523353408419348765558074465237274247872214913546872615796707979958147508218075332801545045912489277074165411395016404815508654339781304914203469186841048692919383521572006530302152838420835023365606218845846399595893378777916990540121332508805386800573657522121522216873813221003237913649621711449500810131538132944836553747580403285241633176246787589937110238140980784590306046300397425546086431539818835360614824975343289622301132764136799180421839733571017023532404192802854999688626916375099897107546953768867903346734465348693427700151620499886360650124609785626073980679589846375361925996153308088087605106583895750749562949802985201790566993429163576299941981614234809101369819630286573544089447312219816318948402821390134037882396444751481166957190510331253302468982250199438396226494460089363085119077762006508038474216448629544128348727670019812265897140303961829175898360075352745608105934482982601769373620077119178692767643303685081668214224834856395120703248342449473315340813433469444409177267322246250760105528123612523324795387943619355752273068959905913351053833885510815992347813147385953434374000915623566310279063314144699511654467639961953013903059922225745746645737727225719307010616535519134084357516990669794786480267824813159963958726984785107180840000753317907000757559274951857527861252027500401171570555970632761088974928602343673541804921742849144376288247405326326208483142083053873189456942653760459480474478401096049322945566313409612538181774979434149856579998043452480928336003003725242684471382443303212330014104503919408555229471194943751598027054787812954121594129480843019672873390095357639855668582466749609871998703150832444159753968761457823754698583221479815764833534718380887077536918009225274243202047552182928148869453383087325879780220437679776157165970802506967863198499481532080471719471374904409662134308578444716776094728969298131595546344455431658422876895068783649165125012058761830925366139302002109664906152907206621312798301808244779967915926485971303206139485569471516827742742604942097217607344350607089339605760920613647716030028327738285995521872259471630288750041286308772301511015169257296127142723051157859249708083913382678321222975050213185604547054731955932032348395424111649795803929056009507043348939259040019649608078420693545617087728288398794945532785300102630324575915637192477101768506367336552530811637546899092081060503124999125562033409862435773504145856534016849042825097104007202792087799657206696967200757929302760880311960101435943557249289818851471170646361252237410953839128395405516818721160956552067831822300006606165595404330068387349439712242086034511401282054216782010967893812416661096945413527995157193694054095149103700660064005079083449663265857330477404500909367697367104738744357553082660866044787593847089911400766439124235537066375553922349843100647144118137233944197316942780796226908170167520369548059018627379598982098646812122067468748074313056784967804645809359283326444057633767247185236119636253008045207988791693928716311375154980265527938459507979166120427521773766974341404512302363005974723465184226571911222724542749270063466072272867449221430936134645870031258703063984152195323201037311136513424520482706004435044510582096754100434298553054330388577469598303071598652581430692940474870098145316046659378810541823202164498561181382002708086454888420850454666613249837036416385786447711837072864123898658913230060876434386292910228219447577684362030750506138126849726641230689498606017906904599203332810792175486296612078000866631069028075231038402586266197315015512987592462214189317320291853655512318457911743319239454857184705452624690379560059953785618005139419401275599263029273507674921190109373414366077187323893972420626981058665489390433401663465213045518805256540862417037256167084490057717840437255429641359554363035783865572719642894873561786717682728282214677376889533751233025355927294427200602540517761783709457166382683587824701630009009595592584482157885158010709370888608600250550128872379152228555096372261638813304779952137783044973479338594164664587529745746388022286902411098884236765413801882134338072506348241837328286816661605800119080767057845216498923520749364620188658406639764957887863991300388509614309329221798423443682187369522358845667213692453500596051064007334758727928318715401377197510160062419644206206874176315342088403032163086300083315829262337349860175034514891600984155183180728745044516363316514373154511415380568118834541520532817997006787217984747681169023223840055788006157143545422032100361740396656611625648735824393264538633652884883588033912167775864445986961223512138237183946994933641694773289254580474568481509217200491147117139311094447628377710223722886198132874267285667058763524872312467658685257434708756313689089387445960873165000061000170287366713152912764633456588120522944179201166255240016370797025498871674262015287450996901680118397982945812705140334294226549509803108441994177100504810854645576775599252187782399446941587897371703051110018668613138132794443880341021711005582433180007990448949130357162948082705120096226132913602548600835547870550831932071846950341847046963852283925828563231755283728542829377977133042742709010632296955341875878996826187190247034373774320627896572495374043594165068872674105404136460247226077804213410092740236336215031313824652706908185777663975825467582013820396241584035815820320598429588622397452028345456734934534503879418569045047644345837688822660567170667468737069231825636480935147822334690195861164732100543223142714794808633676972898075860518878783451533034129529983475768995754033637790045167916384456471770678309015181783403335488636523073247368776033695365196808505680447824966740551664692107947574149341279797051330769959637190693377751850781172609949961738712903980281878259082278580421154105659501378339507272396084367357799877827380363521525244205861049572929980101378533896844569818313298940265879501194383011782250192136177345943012040310271760066770275511226928455109724886841914004517136290568597794073483639427638628342909201421988835953115624260103407062877157969770140210452877062338390299635052754785494626600859413650691442710021369678107257534264280607544041998210698679972513571398375644335942444155138362545420412739710018990665328052042814173666294439759686966108521611504279428121728706381130508267107119782906043160788972630102288551232061810527521061077580875689578155082643509857111724567594722002737310288503132391659826822049153009721192064777980133451247744122621629276092785042899505815103430209419655990566532305440948546113050290578125909979053035078138739770309426072412461569171449633006208608791325102863627228290629649497030168755660444395431091753943876677420874584740830520146563844851491214067372517662275774728561742879708843728329459247012141047114153235224143324439360202238892182654227917162764768790817865984406104272415138943635921633441636021705339334073634764662518522488641558241971935486931647092080106323034952116353542675230930533885220403400612506362144494909641579906046315331457308849645022901000467565057188948388619691346566343044628148219698942991530583375967253429463663169242989187232600049528367783516970379429878777635524660990663664463611424905987385059697835291364628280226640344949474817802132217592063483638074520687082398991508831891263200862710483782411496258646883049062404048992367289032118854441443564112788875418241492199161617673305606639702110148570907014181785523571546015526988994797411650759717557096506059064884329099451057801892276188334778366986722642632469610503911188029985225486197435321478103870003095921554243711824499164987863738783477086954254220935453207830418084874165821664573268917855975271368321237579588761062280787398589318454344070429309565023522289373700504374454761871333219576372181900055538959313237894419627240228377309458142184957256001799233684352635907822760247263928262209560415531422154585384209800622910907132820587696392472312604608571851189271880597425583877552328835453643506926811739127094748237166675866141310635240364599404869048435192899164788264189555350230957333286059658567314462440440373190721404703519598158147117070521183754156772135760792686062615813408281798414421472731447343265596069622821579677175927561837567387186987644269626073390320232037261604499840274590302749645737717354974112023120271275201783734610447031703254684168140209986092205856186110895004126042932665398423351941122177080614410087239720368583606582358152127211024252402219698823994370111073568899217517969647934227292167144856450522482171456240286150600621512057407356818356244251278234926018143173190071040825525617622904813222931163762709719927519209203748132141436004481101971570641551068451300269184579794397278787889602402986818079977575376567290085415856125234425003138971237915289793918101533504183713868277926032435492540260073792043439652323680112872217011545984456643538493808298678695850057844458064986018324442542710702705414704902598436892199448127196353291744779485446118039476201347090470877624233470911311422442607862053696889130357444446064116232285607593577036867912189041230163373854684280264829341144457260916817717363553790030325918315312785071263572483157746403043813993086207588072683630168166076036192665911766127052847767210375080161181666824589983372748065597211069288550933515384056212795278326812589014870615657958812239511450879981336145694520836245407777117895321323819157279706914246331642775649407088619624368201767527481361605889921688079495477815533693973784577117657234644839947427556138273579876289394781352586803955315442198660170323914923939206263322544826329659346397148820747195965763323464326009276695775813177591871482653667670708999985413932025770213495627898402548929196328260045161034486257955123637344947820348666699838895727123124136203151163491562052573322071069695455736672903348393772320814497610340925455536063909806591284436440518795630314267779542094290950713622396687824829650754685116609972725005455398982367392553727578126255553571071145983008557557915309772440628838829755175555629529011936200738723243977796642733204302682011124855517903496239931903840304161674883678484297123586064614534223378690307606540000035593465468593624571422569198273168801208792927527540992418592106712798737243051855680708141921465709499390907933779241441994726039822253221888145306192128620051879804566427849576386383423942403235235504333828299902868294584817955454540587456682474422125126510105824823131128981406650910060991267192877271036085017566550545850903474559202849960365589960145945367668810276116389972389698826239076378576233260214506733348080726761838001422851484443972309159648023064288132197970479168559824297848346628277466319640955030521537927064565909349297645085881159905201481264748343457018526745682987454188213707297811616703691582798301738075560397884507597101812432263933646644309180623321608274547051166954729777723768889848752963044915716595323534108324355752810776492372690908333262696840720332481154292686550749028163157793866825482737889761391471150156587042911216193525819026167430625393629937703268253009305222599893119299905996097629116656308822358123129233101728906449760555000177402894827606827459089737096672210511349610606233804204062074766502994055881172719362707950639037307281501182997878775367420638160624900333779626463223050790255078895831174615570759712559383717968894902255237707012336508360632725476645492179385611817027184764242231859002108404891136595080729572902035224225487096797641107616258993153721269088182311345202782942145111488939214411191827912612245994831359228591231159577501167641938184717986361182909715183326572286075873803865847503995076158608896297946346439379471452380182940329997268318869921708435794698021252325226343682078140572392370886642154170552481232087048438164866927821754768422570300143538704218099707789078298508845173061496004526998742866711920188637521823891194801433665327718570496627154591717680266558698002725583460315672642350937632790232254574974471455621881349178116138081170066558098767791406901051051210490778586036864276769194839603260863183481684938477756213720521788687267502299932127215392133079182640887882685935508609397849015306089712302243736715419039706673614557117265069671278465148486626026691150230108491015189139795673256995683959251942812500328012833643056684385359625942854295882764176667065001750235925680073358657988018207189344271422398920290622039819031517153995911576766596868377583253477386338707822693936194782963798317774204401392261631498110092141388420475711104933007283205231522398943321675188388065459149281573874978992241428378522511345427926181339576322539269799021587243242424534105266178281718047063345824879335969776362700055056053477388806450307524023823391810171950248852569406944412101630159663838483286318009646727810084997117516288446522174844223266785838704270540334976904485137046886031577112264789736923294595212504068944527995272718440195967934045299366415487427907295279760197829815201850237599456867483160943452463719549521354487410693118568179481354609191345392390000473704485482639800245667250729538626287072735855190551914997030360434585730441345422705642984961921905519598087999544524404978166479592291680492046239841683854102172484386103930847881612351729661447406421009667171395761839407056516991063566576359967097744669134118309457633924125053617861329765343477852741275788040308564233906758921195487282017727548997589374726610844311730479663646033048666228049319766961194282312686497588611603605395568486250981671317471011116876694608305192895847342181381908467432366325493981527480783133049665675840612876527204019748509593422576081570961163305615310529591866815832683982515171243316460371137552140069743600716465093076080159619643420257082005688172679318984892765572570998343233658854990638257914270381273510004745981867641668913898777783978046820405358652571178120701489164890507525229923603581458378377822009312789928231394138413127402372736304475492587443079655595939445209059804502148595839945655492897411027116575484423525000575146772950412971026968675036599679675218491583407962048539287447078892784065169833859210301710911661151617002041997941993825512603625260702979256769425231500968601156036799125912146585951102629009958228734232314731968105361789042596921048612281369303365859725738078284289706380210355806342414216082769333720084158686358665425443532071046009222328458368207431561123154253556593508373369944911758132592901497298116542281530115370520731086570868307516337486930714447720655853210166500750322327267782465256417658037945501358008590357439682554039266220141163947531018234199964333859178057849948486439120355079967145872813589662160188259716396717578890626277946770986643996662574222403163036566912650643176535310423475069929194554183689184767849061324447213305775822330548855263013717752198354991509632592083671639441374689932366695194793169554265102816139750985716887207642962953314733280946204931704823634550327532114560743064057761901377627226876298937152254226231443162727480540806073642724388534690582071833998484576249875319200010987712627858157116604499390766169288195978279321150674182860587865891587242052386586619296946803371251096920730621901873451861393274007953965271521379257583926884615672859057844421732616062004733079431177661514588653053034896650797542344232603682068461802798147357826004714189111258247436628705874371370873036838558620807702414996136943779965772602281088308769450161271604907660552826195102520010427453222381088371496534306539004281951308635984029104163677244160837923534818821331927947201440341199805530327251109243409963142259313509908984444595027209696783202688124713926641384916538019313975264477193884256876676119434815780853616862419998737219935854619247921862894220294131477606690616028577257509406563831883183248186925495738252736143421650811439975016746724716717999999396409509817846430482207812135194472598613739789908049981004891537589750398100443728157279642279429492618786413436857208130058199786987809174558430920349231708170975804135693185186629257804515875466746128140144004379064747595366958309968374046136729140020722645547027842508210328556519884638122032373973427580918430150559177280370077674095295793323943423570243884620596525354598692064289473016939856310453439246925214059458964601804052945549720476793065936098834765969969943817559197808789074486924149655950760057450844268874355779772870517580947623229764635233020238039638240103952453021140494641094577520754600992515064480985351358897062141433182018777588677928047509379394226826972078461085410530543093589123645844573504211717916017054875321352800053109032485506992771694508725346971540087198295988900060921978543409158153746249741006600389793696266817674182369181049719047474466091841905150137313357088395381160036994015463195758257771276045217640330986212206037442223972248832191483345275766262118499525131576993068541072643582200295485423148801164662145840434998553079553795384517237076378898991596890438477613139874898792696402879793487205449046411825381346359485472233037808264065660407680011081868451465902020293974139937712040458270017101166017682863124489747582070165935236251429309966560963851715836941719611419635875049429004434586324682614080805404933073254914270660159159280078090601154826938653819960603757609391527121486226659206527877783172559406558820490459729214297049325477033398675553596780268489194800716081682700208815546542055613207268270134783007109809461518843410974050340957940210668407810847443739232566896605183899680031134344239475668660626204784203988568608050007793757882666013430296157361301087024628614329364012524188826772317914949533248245853172896692742951809263447997414490164107885416332476214699380600240821807603194829614013010159588028856104687972314715151637342126745528956893908601803341392685090597007293464007852265123031012617904780410126934042677566848041420678711257200122128159868222772927387901341701800019508283285979367038864752524079506656750799505408591189357975598757906755856696586298424435480977173026419804427131199082708116752457497312381954462604520871565280351850469862992635987159186407867732713621706918762174573606730661728199706397424482785872775584306515772264039651422524304884993978423428421506600473833527735925110406887936511467903398554490381599453201903422100902868709102673560055240447543592608389764147193212723339018090123518055639515235998040260886484459171153405567340011542723043664345183769237555733367716440309077208727847602418530919666563855645615684422538164148283581375754249954833604234405224653096459373185231401089720935166081449811756456777644303257343318064017799668882305238446337736448580930237073844675902531645755826614752581891710272910020265456887665025095512181037238657851146829777563641027102651735735284223152690606155033757822881920161029598140873451218277957747740167713518217098602801230476089151507995524358850508226103619424906971562901124594568168379079593986390033800153890274108761549654814292558269214995947603852814145505940511054254333210878896513419837264541240087079053057586746008157028488277116006754766952566110987196497093296182516496364231058071531491685943027034930792065923949347524988560353138869255177302058696508062648447285259897032307142392269269728107656794164287767195587185232549695037603402057608139157521363722192536180474363074496560359181485509263712320196676097830942311642850953574267071403141737960437015026936883586147904713230114301696626970286828610974218794393628180087600302388502165688769354641722813615364059979184337078444339453896303748746256823993622564093724145074153750105130874928993689517726555374423484014178572457066912611286679466157283888574616973654587980128426773906530939378473682905708827984326403137839394255944140357219962373643061394199958026165314873038505048966725227122429824416804600960742632330186357016345538750105297804738364536423764271315240763011853839360630020327571302225172744907451879021511792553447316911588507365449597227521337525609756170948027572703633472710852050333334773208933075279858507917516862858931780699546561384199768832272506790178613113375663428842453207851355324677188830079715793615864744203297259422775868478246370571240960322103311414935518841323012390094361250852362113073452458321415274329867414846399839406389417577642186818889118991802018648726496276123125503584875074032363415506259530946216013265055415030841305735949842074656474163363328606750894425157765102923378482818907833452111586584005612332487038009864854662747586292587067739387071293801589607982683461192158539911081781777993321747495364032253132738092136803438018230225414836613080409705452031358710664399651886196591086782320320720624566070030641381786450340777898417611189831343543055914605988800660769174841191789073859794089912896684050078273898404587471149980298699811829050441483808653366013054162129159762395315092432603229646728437062792475187910360766662841461905443858996402890721298283980730074996468547995940451512232107158578099851198716268319939707381914668019407637528342707243682345296016090473634046068372471593198295981151616397519557025196315902396656095039985634505341035098668032016273122672019221103356415242064468650497099429453374421709506963952215293156908256161893879856149288501944339832014676103944800624222339469282633007458557231608212427030150526433400960192678810780125544748280116550586385822353907976116587762997392029390197341925312243907803741145031741733061248660572670499245017153600462972518695243895602532415060395434333957919915993676122913217178318823938146174886870652594561270648003336810161484288612050796203427743980613201452800176701904117069519844470727575505027823238099759137114732573506882225619331408605392087344945900662903798511016466745793875268082518857460826810221714203259502895181475233808001919163226359762908699024230140670191856541200832749937370170631083215653482590469461004065862446149716332498807576868883669091065089904233203452031393279446414942545790456434441377244471232418971745586613811824955134469900148061292852275753451356056805402851545562901759307931111723550985743524820468394544368366967450863712048956347947949556158564556642144542343582527935351615976216863451918801677388423954193039392708437177618439115703458170821797735430039978060139890127435149415484701090763376275561558412154105087223050852145084562579710513198796186417112761034188570568413609082138508717787176424204955725294581432064112612048692815864364005373243010955834401078486123784851474422302662787745012617800860384296431681726276637564272449191496276771310284519105480675283232556463985651782715040234453594127839869384086163949793297359578685255871903000372804297440145089789925277906309376205129637019050105884378934500197453436897098041592852599889706122079016709503246161085031094321147962315259250777209067734458427944840915315816568377043167487304851749285273109688407779492955711035782411710355662530697668981672341514412689860261730384344716071110012650162832184603600364582434918473731112433717232154475998482230455296718897411624029617942949478015284124891784656440603833229863459642013026564257529927808421605573522464687269404965977988632140794709263228491314102932988126185069870480366671232444801896321633537293681475850200395498466345841411446803296877506184567393542713680954119098128742848221457201304691337610496842688999387884619637666124801271525818385308399486703457774891286223138624016726770506572432085534473202207379234393884837814669150924854443795382208690999513591267156283456268275906263561248787845962763584788429403659783444203669126902087922449945096180343580278348090093515218995334953291813380098991989622090627591123028149273980692227402927992883827986253423848321854998803135216537787160379121103167460456278242332109047915127804262322780206654824911887514402972921171282179585481326613547168152868892135452389935640884157929062866143067877266299621441078997331670011728810627528118051922964296417435853665353630359654949096976901036580175529638859043633230041405770728601291810970863657107904365908759465302507058426981964037267346919793796418277937391622861491190916741288740679952879920650961286074571112938781748514039380177035782417151503583330352339399600241060830579279222724289980726573632842132950856089757850898225907135624692741717265830199891396160161668793467438173070101067656985993371117509875994450213142283524703864807095879588010804693315276871540251383213629562760755347770104033707637859022006182609943962533188325427494154010859404046614224441013951325588983468678048465089488539180477644809749118408747364159020377083508476210901129568808691227307102956048650143965102425653435003481593492975324972974872452052569804244065997492988033415908774908372682922200727559871077179668918546935681698327957824740206324533724449166503848969481017254433378387969398721066915118587805693901506367201306264357619320011126513328945916699277587039393391176672885649259597627310083489253292803486250709942227270984861715686622419230919544499626792787004404952596954602422013125062693133243223506951965732528190391216424403759531603484216749084403760520261400601638729738580553497077354615579746575182292533538836943417121074513503748954237299459470279269333413923693412462009323300332323705750205013900039960179764660396337145076924827484833117051301186122878913435580068863467353217046445466705842958428988695372387693614472209155041535105648112019252668918687120923699222614996816834521417539916911886082871390212141315578224233690856840820048252953010106133109777692574824871821313921088304306465854493383669841816241244451428600809311329133960180319831228532548199452859626345494136227886669694825398853810897773798658145656278272525602352363404778369420419398168802145858826573210994264237927847382690786252564506031170096214230802823881987968867128496333715736449688334139068220833425603974235090997863448080220520047936035128979293995347351894184393358638204700144293321032666960343113543225711253322393705808051224496435147485476569581116932375844864935562081724612081860834439137685514651544960110528355645919915695979009505964769170526888374439768634307587662892719459774944418286000232181496165126656223644678058183916588449874889669537684572395769882721814091085859615574413786284227962314505496638588996798967336948282060131604088883419544853285634553729873981405463889114088376850605032113523520907461611852264484884618058234919632849209923727874371071587615093456198681942289630686113748178771283355998421344652771236641782647448512016328308311283222563682793191849882227393701183373885265002379925784155721544897465208368078561388482681422214747252055035386190624387145945870120141643225303960926122943445778331520660098107165596517002271681162149033556786789914634483859007969465854764504687935719605475839478040531710559983066869963969412005552116930500804485225903790678051665513635011148610209270594201428898059683767821386503786125667788054885249912515822965173979385378127332955161448222188325748965165670843314138551744533717299308464139169952946420407457710997611517761245601860210326582778993437834700289244720703937707826871675423808748931962773965527174282787236598967396404917231245833116213076729266683205038142458115423293956686722979955981141137053301303490766790078326895298803586700608954456040570426264692323679700726130806078109211123813095488734488167680626067233808207415769586550046467994622414456589678436859497042785818064053644721796141773966844282019480090513600848880004679765774998692747636054197697558834926524516433260788091374549729435929675973164245301106612019740725028479497369802657070662914430040705854325718060878775437700774286668074984725953527729411412527382923057585515335814688957219904771615903670993767594209895382947256115744222538325647048791632016440181249702238079748853167180179745755493201137959288165905192128615701630297577250730641078684917504782026280495659330317491185627233655660625078505354118596494323843490181945214002319573008576987715259420135460181938129018660305220899160652932516880538129790321998063911198109933986783555052274837224801330745463271573803719455046897455589859325859962380762529480644339268687614492033149464523173006183991147194657306860008798276664674337951420770706090302327695713990164056293662407566879982758268352378025571728486056074897671359709929157593960587245441042601359909126064548310069552110155573321859517771392433449276714204129910128519571110491163512701465799126015990608131652451680552539501714447402563183570653613705173431273922922217906385329976256063102742707242652700251250534022044746876362412590932970859976201108196299728166285630991897805505912850832496106141067711694828303521600645521130302238894744651587953598631760585711383928821547694354419255127851425085112048756655039865244499224725219637858906767525043206660376755139012933045232334215879000723494194684994055102020049464164257492821945817828941157359673452734837896956552721999171051223511530758360105900178572841531640252131785648534613938371538247298036018235377622833848966840232230912400708068634515698392178309645281396029455608378682854398562118648871206986517614792010247874917540375211073483723259763124232932247578833195271748948974736745454053168237675127439603582042878874752911770909827124760296120424878036682556060131069648892665117131813608753258349801961965261093318198195810834481608150252542564444585355114370393270829726555723654362126660763072542257019504475485420247345824640817283309434614692642426776178917906376055269496465529686146530803167160646716866570422866999802738108096199408208179282069090086077921749223273539212010683565863255064299121179646484773069553456672392741313744945713142230942041627853095391719679821205592477497431165720132819775748232593378126522389629412111487778836386531537784287162635732522959478491571000765849477976035867960370451754156307575895716878502439907435700623298601534633728458511216707383082129691754634059939955742867430022147472772610604211887373806038934114335112179887752441634925491447583714884739828802180006949323660121051242395519455831737523879649653999794416262656012314798984339156814584702662000882420794566374740258513299641428716234102126103349979708153769650664650580195109118014971637666321539130297231794242151496918370081429301511789772820213524875961898393688005776778347132181722245800056683587209974654843041272307422634378843444450278225913495965131848614659999648482959844761887103968866684205119422401174142217833280957914086727578986000483418585627427994639313079522152466453306920351897460289955497311164569057703791244543140428465993368412653571078600806582509138677928358228679890795127485176574703251088501077631535698831906754156753298624701171110968247337426723316831100235709951173987121136334321827528380530650952782889667428629766642863024383625214871714512102445015763580978953966675861460502643757005985699752277102018652543845689493197826655079100621703482725139739413936636737323889306336459320714959236810918057449357087957905862313320640738936384238973482053133351775803036794873927509845488130190288235777938148846820227514562772306915021758202323661041795444684923877439168270711557365376137317502053704088489998688776418725706104618348103836612388231153521310851438039814270897707591921401949526318570824727402500372887163576629741240910430449473652327516885620513590808138392334301492495999102534344014242219291139240653333587912415030325775148889659813438205154955650485219511238821066994101265808948505396602285524671953136592073365322773200989185362044711166285434783754641829827404495807365534629509159834574739721456959382794068238560898994821380387042547179801946712797934983133152860505257407448899511171038140872660253307859376549495333949493314765748947889718464241465146084743683260023166273696599644031128285012555879550180335304110970194608650855819329722600100956383457513732101359674143395174457613925172398671980117961074244861893041796629205269199748613018181105123155939056212219051793866133109461973323040732145517071675173642815493811947804229513168948091929819379154600956948982735614102520676271055297062444130183846066544093189522307876556224487496039304135473852611709023709705034075527156442294795953122237007584691739490586288076831539852983602465613614774585531807718000683834686643331567555298828134802538029916888679883954491027469649908006100073801290395871608365285268714400802325804309821806296154297159364927216330491310298947963637674421868427016651594124303560079189195201490069790718243321273218745204103650320323635522679115770720157628407348450522315358097539686135543264677014143093665205789344520903232445571355722298498888623338704549167313551336590904729794847494728175206097985153275207711439561250304619064833979063326735478908002430672395653936333138200039235365728343340170757702654310763976043873571341411992414561253713976513770216732101731976689393082239184864203015166079383624594158362049604921622458379710529891894266605378053255101702307155576995590324072580707343478392213341160472926857955196867100470652573336722924723030290555600034301861894783170454783816726851756662924796957058354180842092789440376543863337694791607074461532153639863421209402403059326908628948909264200403507855230704225513006168592844515336506498562953715906326924681197731349108766394978766511939304280247652943918622597994897813464802693522217901954498341318770346674879163600605250312295477513981361833114804672538791396484843594383660841040649256395915944328317075976341041745177086780997504247508354632680577812636770459737379163397008067420114548030913249278422843129041246302195839437714382276308664865776810512380331372532186260421415852731439198084321802846991141665632563953367673577575725965949609602061631886084534131083037888457874719315304322189768672526652595701113455266959029243670116089994652779978655053152570939656235964628303571284362784927976455750261748348867918773932022857267753728052670971701139745461710405531907595709326866667201426953550139074589909148542032967655291948041472096772635801738075547154394639074643817501427913842971063082645541438907927973601494693180293028424147567106832723530582261487460020163293046132854683106525971742656581111090018934595081591054969256673858775827631512597057872996437003081700020667701212897930616777625959484836807615649617585061721008677528631264092363936656503801403807408101883569180070217670103258496229802644440399549160623615602764181978674861272214100300294915856871586525092235418398467031030261931650808626426790762107838212108180962073753206347274680893913738984845337390562491961371169348048167818822657729141149887714343807456766710898277523185679508231304115676287152667814921277437617440782688571488878605862390377071220029023310358848314023164373333966692542869188460631956095708030738897874630070405088260075325295821263746351044051130102805832973030324189195243489441790062065411849470556576973931574601745803134791780663827849051080787733284072403878466766376116144591786518992468508233125666894271536417052736824988570970763554117006462843357154376484821839361731619372793055194518472432844164208082555554546522143435261947381680924511148603164317397340197180008277948293854434364397149180975526544010476560098024725113695993222614880041177170641498743332410918039466260424742574420397585802777744105533295686375233871529160771157899618895678351350824347347307749470596468612207543774684546176462427604975365889799486717918887877690561838521553129182323339892168571356652913018826991539414573798025327697732363805006733450258467170704111306007153792805954089284396145644206965156428797927180019790668578805892492543298176896706897365139029161390732054166185398327520066805991413532514250857757965272489568024117125241762556670270527774937768194387340931555036453180896335674689936957019590863434211525439100261610047378982498950502801616506792959752391483633137849513525594621229132345391044133146626874896179301270306050018156138242216328673219439687417469400048479697551721804281114285422192166753625303675984865966170885855845107388696827360528356362830706744302175533502408018433199938304029074058232865462394101006096428665907122785034638134156014885759435592192563460370231612547347352346792798960338407129418723827273665846007836078852187526012066396536386076946151055234557771072590778529528202172027597851513504239621795799179251935900475656440288864127870601928729101240615030593210454222789775151085215823570838798618184095677007807232864057772151698543173596885945024281373894881333819018129543354586374319182252117912291753576508216063098108230296334154975624091987512358547905932892103727612562094032043406348616162651551012916889964391684153486374389411289342615842275654344476212258338153465238261383246284705986669235929750766179533304543443446324571917958034660881215251315536892247546355634454303463543905777493328225350519459583681699268616528948932664301967227988807395063633287444439134976354482399602685149466023850473104459334002847797993836774996739221468488620795436512339755466177027677199849413505561708238356144995953785112175801473720876805660607371076211616491113425086073129147741469940272880961523478095388868900754515864867635092947170306278166305299545327611769752746571208875584867174830592146865634510372840230911875712076127771568211266038724399420040075942155570319627128698817626771303263679391442713992614776778114962693225423621740125591306494304517859289406410811956768086617536795145107894271664490824098624025653828008540909473928243498536305050396458414251427600881966150387683178533098576708572373214425238816579306110239467193501177176351243822024435396378294027045220833334592582633309141711594531572751522456669373310163713838888999301584579155601469644048365768248665742420869249212106509927438547556989492517030041656703440832119015926335448352586651419707130885099984116754358657157200978637936396357393379980097350380377142683439809540928009900654218387523646421951336260166460271349272533503553010563813742715529570573398571426550459510575289333721017159853022301389033150073064748738280685176022670816951565045927295918729549182283592256174837070461108224115887298293963906505093773770063328508270321037597980570501271515990143438529957967801651038190279231201358244939754154632945740077585600300117142909499022876368151271825996575188494526032683965251467422980088665866545650348233138382247613939822517825741650429894133379115598012881339248728730417307687975917286386950748909858130284228089677681523344084842612991916763471990758518854050561701770497077518013151897708681513252338175550757512040236374721720053669552731510827887276653735799242159035033159660714112428132693212793828345300014175044821398262725586960408043528293711443784375660099375684121295529003707645644624577739500661681429856075388260101784615883949930417131972366785263001656733367112421660172765114823477117229992239898710371713169362929778873003978285329480611591634880481050619740392614374104805128313494226006332383283089728602735194737544972896430991054617492078091278713475484940856279083720358036484130036728981370610837381880165064826032139802200966428914642048050673211925192159976699203487656402515224674627366352930976927155889498150615629620876832686516017108148102228847134869446669837985163958053784415234718138724457964320474956913234343340630457088015028536592210652654202059602943095925514398104510937795603203148164427270869468561502076263902569614391846107691727330293664675516127533806251086517133818260535015499127951061681330434703434309763571176967045925860749712817123304756434053428200633228981182622487784937469124248952283723758481782933512248544587015975880372840624491014367866379123139118948745727996614817753473643104963046620987006466253736151292914327923814390497132695369345488062642197812774869757888220181338896008975691126325639822100066641698541174736188861394571103613715032230164189079688766668495672852605485545724492078148219948444388462555180548278636181911035195385457567805158261853547037847225434559363667329840772152130451090495159087334658445313450860036643550918216743549959774909941406865886584452355086662194603939648873772900601992967958948243457430591344198177073924904244758076406537981131916497039184125672705878638731805441089528910455609832378283693846426205232018517028614609410921471651490230547303934275964918768246931360585696472738046445028333846170960930625871094361251043182800176260160332163568117513128756758572678501721456273958777299162230912575495539774294419712423097546352911186772293795473216872902663235562668346944678329063706008801860598126688075924151388494902323702601218968832717925398737802997365104199925372579674853381020311531846895857642408421877240476627380777345415116525941740919940364912809213997336396657421858678118340516045291768427156855967035080093070984282791683148708139455831782957890759560157772466789716683317239294515982899959240693706442502407331715388750109638426321154495670639499064782053904514206194383780892133521934308371037908113052527365711180070573612639983788484246519523150290692413131373933987908231727284567002466950280222892308389192770691071697425316347503992300314289617402116624348906524162599288484529312898160323972778855612325314041771097914832328187146727367145776363109509015523986850463827511209757022964827194972896049302896386124860013604395494993404969423462142357476777014123200900004632539365832843235021278153782243440320334209592210219389035139658442656979981020218052788198732639620728559951071811085420264345815740214364385781362648640877764785501318264676475936727172102284592435393076745943350406595163842118440944719049232067151044823180951302674722135722822811346477521094974432753550537448255250612618070382611222275587501437159385367167760855546751982930999216411472557217456733864096958992049713793004032171270031819729565176727201116905933030193911248761169864526980080562618182280402865711830868470870883746376858849481823481480050247171298069875713131560247931316214417163506276704910242625958206272475757357068467507389627162188684032258271375180462921802536820295324746121536444406478162115907632116551415029113405773689164931642081341215503959247669737164796773962761078679295934884280396850008159831130873324079310095369774148717587776357487240715083953188574170052866255790882207303941489799716615726478634477218274549818348255964094977624926599571131989318464797260249778137275359473362052106302366290326515172411678629726017717061299854377977739917864085539996853425380465871296254667851178923586396090835467720390577493724613091676702736863969357026442987005477258260550132354896723648335155117703307029024278176365140834497719181556365766485736170822615678819331798334298359202217365825812217958914605116485484189545129059116649916026676633257255655972064389828701674176518863080895640359463839133629566487057313779237226316501235261964625113317582801381668723253347526799165674549165965169091414996153505680173386557485914404311973989056390817003292834075473300436313781200920229472660385186263140777862816875569976349133654818588054572439998048577320967176585343108126874717537754001043255143734176725938428576174123339845926155895264751432909691962597260893718598109040499303047069014797592843776092941054611463727314432797207274057548343002713337157634901584405575658862079931142947588233753523604839286455666819630335374130358206220454054103579205085552312268612892753870937439323367283573686151711594406755011709790690211728003629762091191211316763679313460650900958686360092434922875854878078114205633709271828951466202627562587560434215635572523954085779142873536653380673933283024865755623956455253439179184269248002126156942318866588045577243125352278130774952292870287447434715028456731937038335862518527053081376978700021759217712375984787733061481354775388096977491556092868120573239706697561634637586750744255050540827608057145990237564669329559469287277834314493775240882886327094139014372360766544918499034384825210412015061187468744898729347322306651045134466170663227123218200689470457038337621491851063066419862979278761271679335956354175385104329443650964751832577744195277480193722055793683604611144074659863925016990341688909144226610636140052410047710035373228654894223354569565475519434884729808817308356297343468536621358183498978228900792641387143089981126143059109709834742090692636965987169146503107308140056800254914855454528011434916429060377963351245848735866665685806662268394386558740311678963438097046731760171183256068380320425683201953185424039087848884807714240341007006868301385100347160998905853552056274473980515665188305768317300166726121851874796431102498723455376752342983438138974843691047013628105865018355851615439101277026519185670426632871326503271387000966004517823978880086016266793971225367441923838456327713192515078280963934122105479113819353896762973021213229983229716748311922019156659279547110096203424797284028706298537297834096742846066795047058736305659853496953993805860950306203300108165330303336626075869903282537536792165644517215834924767809931675873618296349796369560470732625638319962045746292632329264056145223690575273510906520614267536159716861519960039135413314398507875378162619374204248188152610194525808619579794277379789904264926845143523000874401076367908217591571354983387743225099633155202232711492526355449136455755686362712866552885450897723341900943158639116757189471064111328095975010081414344375893289110007405719910875775790130013352997246710675641397097548050692920573493631240368744780601431560422713059807504176700730009294033051453562545285031439522315828449887047037940213161258159116983507430625091384970671919296345268981976637826489558291597822009360837827718199782580949835235148280355975799051776999650335762185066931848816007116840465488285241500800659791883926082527308454865781060024290889372694061755456341898580884011423519809845747476783119901565092742270820236837635902859758351496885178265065149594849953045982323179356965838089051937801796302775354677555260325528473148238876773486304083101209112988802077724121227147327442381012431077145016200196375559461277951599757890685403481692268510742698986859461622358188766046789519704599704633022547331584711942697756996630670573557975009926806372251550397946686224119058120230330754288416182605642259723744331028838413464219533322208885557734630323952720718663567754525250569224426528359970382591176610944965078147073628785218238857632398215034366740990885928719026793862691233648583050449254819076827132960750842401029555922330564293330604369418339000424810424704057047026751293283497590202122832481585750544060249778730936898621731303654664784636631232314777466504048065429881034980912354291599115207588989899918309408333249589978522749285334236798242901921575606445130738358075341008953430661200016583703286217380068038357716504963117904871219754481515903417064563645108161235977435931769988626670064498392304975053449774684673701413252134993820317987849276478641626900346176059396891460171287081098059518504708486481995863595627008001880768698263806377156766588151692082814066497783848776508526683947148879956781003889643446195872465734359989432224323399689403631148945485820301605140557037632100418178534347360292576960871100354187940389626743283168426929769092235306236582960401588481337791048951600273997979782851261361463408819298102111511130248532178027215172532480697035374826555363294846851672721741189652161291056115537328392696391736269491299029272761393768934209282355926112256141006212092543759548723680628624514948913062526350663368424238792486388606066677421147990139328017014424225851330594492064654204259245366553203787081499946018428586775182315261042832104696274886142743376393651501213935911838897590383897601710708056713399337356302718213997285677030194303379308504997056307576110324959018979239140346524357220754324561205617455189416206237542026405702612743442975438167469684553228040513231729791724031402896064231083409066820809302822379307993344345668806336309255927080551893103779237407503732423685464892870699546575260619617565313335664823400637212478199243559459894184097741372749313078897545678342708664413933427731213314880298017586461682150956138318541598352380191236794232515502034155157137747876972478361700552054887894621520107258217585899887012369033130421330074248508217154612288054399144773369207741097861272326468647585371452067235237055033095731455158150060917507084576874037316366939112856921884062752675132095014645848267455508610470104596256206470841985093790466345158763777455427991799134943817903292142048648464880068118221171905657665118522745875971345741863336670865907479633796829264659372704050301120875403680075083892555633604702754530824500815886253427171184038010835703035146987624557612866067125446866311027291436302203519286481494173208375052252567830929844062102793018189215041297479743144755841765806921632415972350643641767468994657597792998032831115516730931717790173588997094119934006084022636526904390345277608544522120704662992553422028344258554868281377910528524287787359641103768177492804979307743916414764173404297757461712317498832443916131292248601808442739193382921704567754591727530833414706134160764292439953998390442294318939203907298566138681351222929222883162380732446266983442952158478394727319882353179743264775822979018201706462219280570425986781058972578885058740045986217725092255828791295347935287303627401746134633846527839378398792347224023625935412929900922618322929244217823601347673159298186277943268262393685300746690084808235125439854445592100082985343065007005735691376127755714235172462774683954137058497833449894723600934989227565524003034887984602923682347242214600206991743973591292939937642420642432199784518851462474965005594160284765282726647851806844197432284226186232757615765740875106714713156169382252664342772370506426247914040665355283996375779871662169695703538394709601611749436723335632553888156460042840090563330740194915202312148907694744651422019822358068542804484834062520448475981599321418086711596122695353565549010494679744033099031292591102116538238796645349600408029418009792317920443994583996584762600528280332127665022695542856937562402488850886319721479094061523022941887762668012156492637398028966264221712705074053939939900455198753200308689173460687106193714481543648010763168691985031569873570849171467463502118564923236005346521037718996374033123849364925005026437283145945520861420462624536777272855301285194047657090654683109818336223755015752818154089656961071886288681419262190473883455601627942583561116367943622268420578914018428858277592968877522087382055917657628040907136743265202601844419064631299218734218159799491817297770910930972235256605564213959018895847303606671316436782251927521145890759908295577785839658270011902488221441851722362476846990806147337754115743992189626145265118995062114526132720483116714249783395218439590491455690156675304823095702762984882329205483129376197104621004028267587542553608941851370772891641147309587377502689079749478330806736326941089202358465723763473292605526243289575923683448544187657352812787937749311604939620302660084816502987243586089572762357989638547436045934429165961819900210113303314497876746378945324325957495506806688146602674128514238116435394300554123977277647939305031453950703495021159048459770198605044539440013531774198940706889927340022394083135045734291279139239857557637645652210294771911850389315306747798310482293649948510262495242752703167389365363669592878651655749316306846143052657720430015488236936217231412392400443839918963978284226802168876114514972263704767860227230475889640290270434170074394516112291030778881708278629958820483564522723181671882356215286623101881801210061550032893025728750614265817415308248805670341335579499718610196320293314859126325849266119592729011889386899345674813331099863505681271981964333110070448223545673769304998366798016026538360236719445239836296982381070756409230210743948550297602832707027969408726530630202164829138228937300942058989550425154604987806292895064255288498373699428973309268985714465480501101553075295824337363403902983713628675572088931641032696840310501963447491156211259486709782572645030601426111424171347150257359558178926101568475723703202124593214295703977482226779017747972911873860131415995397596307016684965679451201615863758799597254348909098840453368059488281623190276538651457151069550415147732844357079832810146408069807684063246681722890798671129530898609910099593881381422831797893183341131430856678226976432676540460509056121414963337983083512790898841786829777042422707070570120736781282411585139561812439994856519581943636716825629819607710549211838455091048885535644045012530755312406500839922709699454237522414595188031019910360164947490778510002872393910743450911980353916889192325466823386323031771698887746997363847487179338848397018150179623090973362584781053481305916601522263141462999870881812000222278385838006383960513451820870983237846282853453482864063716315017810075583507417441309265746679222605942088458046270019833936567631267130790327206962641169206146104228253147967497687590183011750651081220655719078286770102837189200249881130236883431839125892408663067543412342848071573208245918873880731986231987134492445221387035466682354738906198452811218490963335873676822020096228622094303752991656509505723744212955722260427171304641612317039859837803640443838673822485569620249895845103508349071954226210489133578514017470309972209786455231604865528437089790996631125156230858274884339200693600881243312019518065526276517276809818617272888065822541211253002801597549349809524309733706157414784479871305768048672218324200771976118664331339587388805327671383889916552137529058604465152578846569139802058022683971437544000910862256714404840991889247432558526741750011101416852069704664957592796622657274273874025659832991052638389619658999747968753088664442399007749884199711430717046940025018340215184942460322901441257136826721422133028660887011467810251149299947294827161818957039157641841346464616718947364106325188557981970086551475570437063383125492403576537453187872557266203993153831796742159077696297393249559865340127368936492010000402556453668939054466296968542295768355243118820841401656320991133954534529480602379630690855796142484643513729742246219630574982166636861010300962354983955170648197434820393572587239734205478818016029610719840141370649206894006249225031923979547543652805897871659747509608129007671697282603268068945695729187518616368006469325443411207109474702882452549265732338687507285391332270032050700862576585344251842956132828566461353244307747003448896027474609413021959598682089823692188728524730982364117263283370185064861081535821921177862245328678269163441009394627301163430395150719629358403872321487738425868044741428876109585613874180515785132045555963266281699915927464443402047699777921631449438506691381675857777700236610278531092184054823609949588265486253589360227408656976946947021006352214493669934225307722396813029832035321301651693314730701275574729407200855940043595708057589570354859731620067725961787389214270664019352528531025920208769249577408306632500579912972199988579205811420561012842273975045082185149930780226880588751632882933445082167488621279388263355285994716027627017822174910073372263336433126606666722149005400690171225080954598927402290713660522416668897295760844006834846832955207004221985889153228793216399019930296426762306593314079045826762719044255441043860021651624946334745429539852816157926836672605158830850497736323328955540180268876202937645154756695443898144259781548886314971687881215111549266062633681444442936373708557740250554818655442816585151609583525038405618814132233010875053420093089778582571342138108480425297914482888327335212462980403457757646879788420963917609886577822777644486576873138722201122912341076908280547776045406780405231798852101940238150610635614044412964830777800342586134738245751529794685289739375247231280568078118022664289583854630237614237325057686915365591866202658603942061498275214604450419556829697660925229143381626865152785792768096248046062062978330052066689747280350811664072260550507707524975691333474080324921043235682747670747241204155023171165159925830413608143432757796141717448073200244454488754813790049103402247909460449356575048790971468765785420903855783009774588919854523757622421004150382043412364702997803458726564823092553724560643829534246635834305987798068415698596516088530155850288890921297007857529706055313802943269071204978633080463961240514235481035097023141859377092179712109868353594170836709518801526056993613369092277329422399179960796764432430522214424116709726598701749863158336475053786182390445188117736357400815652365529069076615189160079018895036394023685020691351574925760943595578584270042454593635659509783913137389029463106995099500994127529110679820159203548550581571873243247405295780589639334004467335287292896090632971606634128600504043330990572209666663233699343625450037116745314532425055481632313666296522472139487418649220530803286424180093608925445945130845991429991675327614015971706517721657978172533894999476836820534424807921793912116720794174631899963965398277378325574403765490783263218949968046265422665851005707106231308984614751971152492375911449401325813791963473167795694924191910581902599203672377656862203064245547748303120772749705928490379276793449425164690846756872089456914595019454684864351905411600567251013198526506718188825889077532365238386688315731928702147469513537792908166173436704264483448661711746798082076855856507837791104232712637309342272411666292425480601427599013450255879590709379475747334397784431146915853141555690327367566088987016719865340409672268320767287569863808549187916293504176571493101372023273571223081748247233354360927043222213009846164453737859180949112775888835874063905468411364284405970839269949174563135849698935795729352063258355956492335484903306196285437675343037671986909516965022380069687278110603099884978834036181404448028208438635664493828171835004220349143120422234380497089487141904171023641503187159932484406645478351915563674395974422251828931507981556930244836783471094234739145159517036683283996815848390466185456518357407393617356794951667146729652489638166529872747700031121554197765688765771670271422893757133600703877521356925016447843955468235773465266384769482576439047120599876013094075102485431847714420951351993559314392971087105694029293994717202123964417358783550239052149517047654236003288760588006049745658510873840657230021054895972840783145268782552405149727600010505570622771317275578323857276434354735258990297273096087295682170537545187639069130653252695442506774623089538421217617748657233954899380922801991077847569003747128224061336855526314135710230463904056411026525295877877718917493293992451328752736606473730314467263978402165671710374524512339941947921329701477380891386551299994522144934556782707021079376889721381668595649652769879116148587007448738099586195773802864793166805802830635090991450580686604477985657233891001205130893399920877170970404868341027682912538590683414673578367075928508313812566932800195441696209075185692277714454876185491580216104256284589938905050538365832607683984511701893456341266128043557765890340651801998480247544602529638959960686790418873756293260978419419370070287112140662151711802507610079172507228017657232031264343731526736016039064625023394542333361260065201642016449854363455218657174089205383658296863591030102069524318027098038516266279798953648410834337353820203216504671268692308994957815040688642396409434774068643775097714827005975061374080517796648548884842854965645037668871077727535322214724848632921594355658824815128393416870081360608881283999557126095712015098409011373366733067000488728082540645731786703407683494066841594796746095214809629582128868118995199047147389224279976664877832696297173357019102877984095960089211564968889032642530971778984685115987753232910385677596698560200260241751286619041480691448919190020322935068735009479467539170860705190769481228887819301092791179517680048244214310351513744626725280710567004870882737163694694106609549384887726964554028642321659125587241945951761287854915830648317383155943795412686799835241338627136433768313115683511007737260567551189708497613891562837201228729789844371281383445954361513228946135719839374972755749350625455771132004867730357786922293778938761124115889453539311236929971248403851633437754028593697825370462454340572431899359961288398686425687229587584266469087091198434865677950859372714824144051976017192363652684960854385624416204267024607056448456428149746892857993414277233252129454664137460679383804443053725190992281192800244171540941126753860543257992137885918946070366560325340496182605062631940197171610277109276467529242308344972651160676897193070947864325958526277461317657817006235977528173797814069384740695853708475144713792353929160543892716417032117670491108091299111287610482881769121145715230657672816260017567349300063264140235785330941542037491743133457523672070076439813620131418034199643591886130412475373949052756347026741807807660343745522518236866875787554760149456417030986886919811908136905597278383237202359067990958312823461819371121517957982418497434230189829387501207016460269615148525668193591260764025065371350328561280810237145696042807230159908591017721720390781063775412723118420397207615814076580384585014529174880562417979444718346432560264234422065353427230960963613405598175060200562304317426132095286165100303717786090085542819683373605337422174275054184569009645321795237856496930231730230214949849076784898636200563409060233211459430655335114768095335768253654873101711658749933931619071140197332846217138953506311603746581608046451957749921443249800351860366247528995064507640892404832928128076406741429080229924917766534785154866735506620487694361368224389980953216040577608261565320253806116903074966319839775357986615946268496499838839900583765919587390474033825189421413933224538676193047133049749895474906128645760085411594332929728373449107494648546046503037161962398750669941900200058914252354208182277637147302321289017494895559268806513330639535105517474938213271495613040871740513301857269743599071629557333686741564745318556011482578500944269287127634403081674612528103801255533607111281753736444625555796582337663843160792455814077428315331737435939763347591415866096131398150262080229283061942917862099135121877955699032505117777576611444498300629957910508273290265398572899461258447874064620737897714387259156946198238061157567730665373988989676302423411735229227423244001888490308631259598884272301857978224487061477899880063379307250032749340624658292262256634600460356587044820671621048850537009177311223597347682042722090212255322309172202919506317844986454292797048157557496545923763049013950014198680959605552242492067003423931734796606415266196547132160469458945237991819954411224571897483141326429537236007431160191493306692559959470575777826593513053215494132683452021952003316399070801880654557062205031620184112512416780891410492463471203617121616276355622723630403442278140710092050549478926243157815257430382417487896198298866039521209008813601196244160793677129138436225003408376826402033717309567710347749374146580474787585615245297771286012099270824836502267230631028597138373065894990921536846916438883813056728271791305102541580960417801189094541734124725938421735807140833923664387974090029793264983907029627861725202013701464903493745389657704253455052355362935776424476924798459155955832160327134478141726972174781677497038802709190233894025400185407352966097538501384816648412439246360282948717390158607913795668237163248879465035381041803803691278969842081801683152315399993906468055552185601463708745632238171237604794579703406171447591140196030907255519733132100005133167798027405306572380927941890960657520579823323830410050798764256629875740101778909336098871431027119592066265032717788383807078411898422134350884450533565338863265456270185868795909948557071594637924776818958340514498687377060374037701674929062775633414383584833754528052242282929621698356637749500193128521249922189761037669457147733206285451478839606780530016626494763445989422395534524036742104676966637818761764891004159413517119517833993834391208900656046562965525775917729431254526952066986290790230915296980426450310585722694468618733401432232436038760982556037291602396000777158591901481754437169424762301569134098284017145705180822915498610702967968063251956976602443789640573138956455118627873833655904434515475893959269062442824885613097418010750772467319741448128084280417404955597293295158305550955949941128125765634417230441350485822739801423112307083228386253537608955549179213021033585293853229319369415110619604155402177837746279391228472630882841412333754380725599851539254208707218798104981239000883783522635580607410589210603662776708521463422021482128941932116430477030546373639682563714726331015207369605374318485888802077543484339283721389881132659693463460673132887863379380763342798406496518076423029836097309346064033012402001907165652617449988370531498267622849814505787352779191573853097108214818248624448912959922306283444836802767888203197706439406540939647464780220894097539575476239336972805427004813139883643732673261640672260082082936253966145419786061869228295204216953013789268956086151313363603629506127159039515969370992429304909932872203064257006987050949621201865091709236906990221832605737291830906064771972476142307841578551155628416542073710386796663562126147734693413391455480043396051488264243712511927749242638214910217207808262374624468343547591944887598301205443633847941418328432523358145850364387796190602935292677757954754668137951962009750589182238052335306298136345772418478082587703968809821261263308738917287418586982385938608797021787042454177250868794639381541617662816720912161759872189251613743065436343554474460763906186607776555999587593654498486904217785697876157129869600424907814680923655581688129785013267347787916957151104032062351529104334943189004999335740647756559138704978977912819478835912781739809463571132555511957000534819260744684203832555653457026775810025467350520812719499233921394042956079178607152991571343795429151647514032072095285340594503003117122324563378298668910249163592241741846479914237147320931147102759356774383409818800729446873954705237515283594779249795631415967028211241101887751812328670069232134277516011966568261386493549819350674078163116007985732022141052662914281804857601804531488374344388291255226248107137737903753643402886716734975550521098761381101784831978699677121990618579931030769841978103200074505157380818781968260368357678931789702235249333238189588197214319588922473019728875815254927322521121577955548267772668344331073339548762302653971931085036650782815365504880375467899431487469448337610871182737298832310257518923688713801846147712879554720667919217769360565628225876099556697079430184596662885484450882131936560850378778167193290165160578921402133592481057903197428324413994627865003160032779518389482788070486941579534954798952294030189690979322584752634337438697074976871205669293671297104342103825904705415229435088543403209053968860484395755623434124949458915032252039517117385653783318080526696053529719544349665261714522800680106019181974179395313881006969126421878167201315609536812038445802854520723051536256761988911996842507415700437458400498413840196973856702079346982638422126452631392904471214706043597379708351479279552792980681944506864226292924179066763135071012326431994114689661539015512081307722801942679975377642641396045842830888983308735902265277408971632126079132779464203724658525271825490468201691158927301672791148719390019268206861912831395985016975259994117205599885217996357242805791024105559208371416378488382126046361371558196879526463863493301447283023533638898665639451678565835579124510183238412811938376605713723564130884798923188462762881952025755006531794103019276626063835125494686030499455022470819727834750048106865919673004684809104524602824114926327033939437013921555915551405953198672616181718495126431023007688910875454802578685464851624049121240192927752477078732724168218514054133908331695354584770221792834388558488642049028972650302127365673483124648694136856026241020586153110190448571178755427101174676350091881558835382186820720884704640171123482952956160093507569485178465844952250255831813643744868283496498268788940366329171949222378711753304389396928942288155708239843898594841679920258740360654902857648333826849228320840754314205917787621909781882773633168136744828095403842218548516683771202808496499886240462265970727357913450497524258841090550106922051298604441755320731322661784844653113920661733109583187129116801561832252909780613319944829996554497750612958880341069940868661987768259300739246917105203819332514967615935969510097186748291425792077520608552570573107733636695974198488852108315577134859370594693014838714521463254727644688357221753072407912474845669668823599376915128613321547208330542224520604645310015881520203593529155014188992298082873470611472694267740640021557297520322268415540497176941939066195937374401997741019707078497998389232906305117966008698055286292633579658873262499747559988286500602577618148507650109536641624256127340890895104722711646345223931959134146721076278279146280101802961346287910948033487198722922761345490851418629901475574140596153703712193255249386209102061024091098851977965919686482375607626828926461843854626609423707461958513416315369605199106496609657894424026535733028184585695476104984230672312362736247310481811573460840434350356113371660588053693106331508503272318439615754924170610199624732065586512681092940102374250945243022652822766075667087314573538037136055594233091112546393707592970758909109452581277248648843208969057176274543208950300878538164642648561711156632673409933299501377569008910357218733368498091907360692358520689804865310491459247955518199630820112370738841751522055137302941168718933143162430054207644057752498932945578178330944782141622574295466290730563787515661388685934650704170231763428962948380799545646693970434238359897664124054733553273361443853611047144435211032227375242160175963773574057424987016404110688132294558541796788691839355523235052595143879422303052627650295255777592349634406630597306190803793480863249487622796581465666465426982103641588341821075857913858981632826881967627259170327731306108547437808495427460139410600221557506005452745036891905392883213349113662185457982198589570642208807369504784053748866034822660986392773256743012111455905554518583077333186010252435176615436211589773143568915989926467352279868014529564213413284767450032755956531720559022926251308596864654519842135118312266806523746567430914254462629493369653510608279976777351867584862656720793546606591847821384491455276509173286986868328014934621529550410860176926083861306365514448724461048971074781772848448657168469523445861492827690375058879042689748133912216135309588791500979430666285943962524569411935891034823736696417455742991952870126826690098392337777731306536564855049764218023321964948596303684038533574638862861536450160542534399351246938381603887484182836541102604233505923916407292590197290359087126410690952663292007143320606798949384149774974165913371465770758578098199120022413836450704962271409268528508751547073165321841910516628629628490242293275921796816081541086121481083594308030010417364437650014755718395388139335858842231452435383541556881117271228703009432029299951287914260572049750020372399370130163644422221835833092131101920652849518544960285331396521611504191604318172371914075154151323556072276810081332398054263414639254153777288005846882650587809663210333162794569678576570411999432202252580723134304988361039100504256815776573596615631167151710847315380522660182092621136067774180925684696347107344375552075002372839001306735350579600861477755546414594195239742981350980813210020236621260441928647966846937339066932357645699920896671014433884299200351481714074777372154988894389105553536044216312392453427459110216759382571490912926671914992125497907130661479042057912814369402147291470347576722176595726003137151077464544387135649088044380102171552856052939480717415142699018028703608686386910773753346067544054421556751770176058800396809734509372691488579774137015690655474506885250432896454592528926839293324181104744339708768238608906784940136623078572694935073446743140963380101965015028530108491565507437886550354778035073929451040104647724020377728572586537614815912981879019310486382313764813385385741336680007059865322210199337730378628900257980053580307692201486733946662826233946036922387929557446842210926351161116513066725568830721628490669741327190998278654273489151511984961578802589950741392797261846857882798194843537860532556027941546160393256928904817534288822180700260075779848715618182896415998743716206136901638892757619537208374024187876403854508750200583055917158975436729181912648901111287320860446460083159700947489329227944426250314498572221874394647813832321823535687215506481749748056739814923229594299945051673071460374880369010308547203560148593760940083322127031817721336666288883802008490345010383895560588250776049468212684266465897914137612335876767704360819627826239513093627453386784833817573566748681624201775903844801751970870108477950309864639298965661288906570917017308039704411753258799716572548515849919016502147376582814492531784342049695363918711040317605651766549574648162377251351342748923811644052735764961635377541846316414130992927338681707135533386659341090030468625810669948389619658855848303940745173516673674248083434382414015774629246585443190313933560157318177911703957275903906271102145919731183258137841754779803992787353698425287935482602379162501418612032867504109376606643780691906004515706138489175164015012899084431622282446863744966960746001732537784538810188163101161125270028540513866635670318703480216261502207418923256010178166245513353863546074860161414172625414097561497800090384064645047051884103860216690045424287201291026408760682738308904578815928610068851221644747410419476029354871676558754152899244770217674726545318353899929518126740001135145748282719115709754102594620065447654939409440549435765592314247729679961922235652413434828823314981427281934898195716252320943445956487192530003532869137320092902789418548517852251864700878344346915563846145609245708779852942382418111351150166733580587564100750864993270455096527949759332476523883999559205658175175403117987421659252242225561503921539433949496234231065455587961443552775670789980390688445206988822466216734038560753245199177022645613208804959694033141593868451591557358433462813846940821008434156636036467264812780407004721706196400193607454757054636030994741222281601351904725483723638669840452044462133280595872702319149051293194141995116061563662379249905520081621749569621005414825966684968307300217466110974231128148647833575579947634185622869595199156905518728621103538742206747549377082170583233279820381257210243846389928260069217186854024079205357766922643361370989596199001391950599490649947618538577326287645786596635364740071197391615204178307907685664029260524758972027945481592719371688016929012154062624734626090817417175723973582371141293890425393040167438842800428916372715345655449957664276011431261341838240523198161959205259134771753692053849610524168550750132265002493298450420563315657851738716505272757544561350290568876173046494658695069175929453094698337383972595839995393849970437444745327487734730321589760776970074287512224919324476898976029091433341820874519170425178580361304159353505759095155217644089941447208031910550472428177152919976755941286041241383169450872441062837035599802327352340205634208838259287881999767870580661308413076406665872935428165149778263436102740223814581121911489170316836178024304345654005920607244639404501918110197218799374414604757967552891067155292773035592897794370533103156741894516524524901594132310990924110009079458464787781772222690766112813699953444136158663428163895139937686187147291603474680235167554836228397879692176258092681914222427332116052486721976588689417150689900108987525912135611943132335129821342505833973827074250296019114680818990619430674527684200941250112035200220317698932075929513140638837785380321618473802623295797696639501151603033565512524021287306833960581263413973652840007850272956365732051642479093890569988049277756409150526256138905885480558245543729031327046602985120031944921499799036130702246032948264190730108882468988512681205355259185547865862358094972645854943336731769969952562869357839313025727308700540104330728617717662445594033478629329822296518698131656748346391149404188427010750579239899379802070043458271198101700469157856877014483448034352449886080070349735536804802171586227720015660907640231857219997265126081887786558990519698289427936937492010104356916466354385155937809429821587318898083045111825415358749423432148133517907805253957327877830549535930839566020612718365866379212995002745892077916109819092786555562039002929382557641126901904575292885923899795870297032659234999071635165916510240496251804069136073194133672449828307338312990080405444650366714780801108698413863908832559965863691352891700575197957969687385517281413950290495342892655557300075071589430126893287419138683671925592536532030165626252241186281079507055762032380875383248969643924865952788052732351881188975682034637347526860254635232069493881437402903506146074697479477506084417087581592011851053606800107479656827124737260950997755983465189355697908085052633237545125072389318903553203327344853554152992949553932598876046723188243869516335439169364613978439002177313378990879488497840373792092548908210284201707260204538360302149518463642090157200282288709386333666744757978415069540617839152294373123603626843416835445508862815387262852937952319770754301515752113503012150311632337819256083390022121380383315199357841414823414687059040997668228202600412004625206090270328664279816499375102942681811137718491064495100761200901853461559096988886803533140120037103619497197993179180709669417034819402948436573502369374314887636975969445160435097647180853008161810745397066661001178333055771759009732189945826425195668441042349195116395558796198855969227135527661545344968171489496910503439355231154257399578538286576603976378753803489191965995370858429253086222164009802913750331802899701242421092454068008709461270762661375128605314026406252311704090750411475079707174786747540156345108791166637431861694042714318985793214133928532810907434051384120612173742978854727483473504528578796787060122946796604281716069032950092618757581117161748837436200331527071980365359462174145327810906622186833795527091595784712291849008877502037610497385023781835244619243710552756428184408751121780872713717050705951493776305572603001934510668021435585686692596515198252412266538431221032393103248971177032462149303847914510820097706541904905303362571986152974029793110444343722733849541657974711129545052249802800473658684366407957265750338990700244003014355503549156788653776052405346722682822480623630149553227193414995989723593311403712429108892226822627006810602558576056183624273222813361432587797165472039951746698358139040748137096564112421980691637632149006996749309780702865173275576100079195959705253534597911459728671223522492441145300124818690411195314406579421280342606359057729610391127801665740354205161371994447800363987251148397755216030031190152733045782099845209009843832093573164500171678121626401766604150562108184151084859034292733744341609789293154516715052036202520929340560939629890357617395070231493546722285017658460000927478429645659852122635594214225077554594424986965923372261285812849956929098947608325957503587072310808049783181789525406676652086589203348926187181017184552007090772882719642302455524661169614689619117616438325735453411461864502805547255240577214807841855936502171230846770093049012064141756257119049925511058158309778744972944506923502349814366158445555338009054643275258642107838679551282571212959797972728921573689065741440452421621603053771611509893139507640092424462180583423622083933963060090667685278016543091643405371924937338301437746119745238135051414944653097870509682393358218494737439391532884869231869429305794663564107106452518914383367970621360968535198503813292299904804867787367528644572490305242201423622717877211654401747551654029077480837065674354130819223355854537529534873356692415638878830169233739894866955464908225406389807421702537975704838537628779921687520048975086753168720553340390842116713244211741566431114384969879774784146950932336863400002332589046466181729606073186470951384758219496152320590481874099745115296289131536763043570971740232012438319319583196178243919587553053783423616859819361002107352498649079394478073945535589768135745980454720718797075346982453634030729282835604092155280345475094107415055093385009726990659445254806859021551821440218191841504992067728213784572786298164497372379553966584066841475157979586450870340980626716924184341398364027640711534540327129877722078038237799268153734828028370219315550060077651554192595609394161917283405600062281788205551613840521722997801655006143254804868556028789278552618544386780182334853064378990761497980584020472518402968786974393932210178701649859839334282492768438071076053702003924695138148160131101778263208659678097340646773797962629187122785250559935889580449132604209520526682376039707472124632958753482412733048071901436704828449564181130802155953556569321839097545901466023917726042691838680555130637119685090451261798677607410022843162634970706734854001789470403454691931977983625646546547355260511647439601215763743240706087678951194465994229039132587132602060810975435757579263974095170967942121004600621179155838231601004081574959907010101088070050613284943480795844425200085657888592233141609408192313499676632488807337579242904778590678550628970442393275823832787533804728233828753888359495873649546755762120291836172820173744685879631620750013613096830967276636749462284614470682617478231347521078644685167716402522605996923110048987949426825140089827958938224357587127437507097443841710374119944427796700041850137091953700107995398187801818485973352015007876591749148315999367644043997280408649640097172674087689349189520616641684567924662637839609952216314330489515887963471403073381007594027605580262411076432201593438045221131877710587162782163961357573410594949595866574390799253219856812830687364197766194028620583471136691120424997654764305205315593849367070408161843451529449809697276416334938419638936908646400660076848346797684169668961746391065809739797629226578723288577311038581232642655281572983106195608515756457592255283521863805870005688440930642425328105955345485186795965196086468392175751517909335449280120543421129161887474765213221495346374700736026554755720194005574903500727612034812522919302699566325961015775134488750215683893109100737843315572450241214094235233206506326298083367551393302155861110296347926349384213881818583740942241473815802092471994065781899752849776418400700974772977120507902385511314247932464155090335582390820004356341497077042379275623524979495429825689018728143968405387424178690610493030728319798600051759080131770545386972057578920498590094188637126259164943197718857274292166166559755459984171773145106737699380246462040457797531959085584952690575398375637440142944712178163662639318948409970548221929263342535954567796249089414903251003085245842458385453600965581211204045189789500210181085412705588908126586696802349109243053859287823108530328193709564092843311971032315012805658828980523520965551030429320819967793870960554755946549228638519731748891404891739071856437370966824990695254318171414887399277398790828126803298630401297157161126538314193599424489846432714894698253977558089066760715008677935105311281739981837388077564617689085917708651594209484976177089412053653191007750214526800478812456792571375781036522453752471251714083939785903137127876783852757692343655071079854461239771623294188973272182264473430927539602196196187533991442288988740205988389101012383596867683109592026825175741367923776488951728078165141255810868119185782673374526632940330014839685801359387784585346047658623533719487122049854117057178957071842611788200429635430995416856074525061150250630293638272798871959699995550733914532178360505955294749859606560050490816058037500540051225791305167877768235252961939427243513582666334719206271824469839876515464120443573968835581242357899957398299484189675227893235363691496063658946341713438671411748473908628564928839194339771230444931167602512469287202236458605259043820041465894377835143582640637886482000672732137604537717594760864463851457539774370465701340562881556273408094550816173396346309956848989174931345883810434889212634823437240691883523448198116913028595005431629634137731561915841902436220650588431186212257938818372243499383139780639129065411201307765593709566113608165067634085976229287236590460415478178735395543090981877240379349793930959508069399567013917911659603181929321314667900207679113703204030866630282320422638929689784004036334218967633507285396826929584510976840365107450412086142527441034517681673309287685941312035336816991850450899418379050657682432551345508773080806783586854266256302721666962762711024124497862124267416812861405716645761519181930756457580387255455694629166526406413031516532808098588913307163594039971639441072525276276777367652638040659214622365482743864434884029115646221793095074579422912325831652761001463949738539816400932207013258520282809199667091549643919995540061722676009510378132276130216473341258045652144219354381117566750250445892464905855315350118965848425664157924784792046531079946381154727320330984058853800881815097941502225959440504550060065981528008971187431336189511903248018743527017089527855175085442278461679262423548348194605576054358019538001861493127522036733433779676738128441885068318260683478047762535100942368445531463811681995945579916427269298215980117828688717281565654729200210185090783128707592211408144757457794296096273715450431495534817503342335344557267803004951774802325102266448174339033017727991395660480869051873397082017731778792401306094969037403492020725313337282466458466481896975574746579914895066695758050964042704995928908714130846838800866052904228666866372518455004227498652698574827780479095064307762357794470959961275956711834288210433751243977800614885037594408016611390276787368745457707365092798823439693714646824990970502316588506059426803630922353880548313869162950790122269140470368736754457907667305057808154076204571372896215259844996486801764181391225417856441590855888812645206013241864302511836226743594420920943074954805017449857217798214552829914981327676564087233300742103315008137210859962342423993381347383021394035074055980283173075696721517665122216230095976291752197551706136903550283139618660315717959772763353653755084788150707714621606260191738889063890880157314907093442310050379983415836186389598719193535940702576265124493065402397967941131311067246426493690705646829300221232626439506218950614747180404677944528781986269872954725963815298406661586612350900019266459910506025800867858530559109563777746956985666880936721621126176111423049055443978336122042531705623954717041186894654074169249488171531586949929874486706834061452340124988626090347775091819156225446880079503238021160592403120277151640522883420519130439712226438342429907014847493306906722004981096858039813205967535360326255663108107923069656941047182730073647751786446645855734259722427550774041956359424966094988484145613302640587222594974616621728443757107381112506733662694767227919002722370488629520137416212102013682597920639148220003677390259772285790988975734917091099080033442899956806328269067937137851907787799720563258587549681618541614709822018982674940947612358718314388277171625471263155373836280389944331788263372341275997582206080049755183089905099463151015743496369675459124488039117124179448085710394113147147478764299085414873166466314278184402645580018530780851969390730078870188565637859767623551294660224681543039639295134086995902443019257508269866069261666026145423201545586901958690381791760754353876306533669866489338145296001169276516349649428889886016180995445934964599392688640383137933007793874585750092478733422484384645957778403344191007087395809728855140479768040947671439371254396247410131962471579634537057222105091286229465775031687503005690116614867197890291019829456985798403909685123170353330147247448963852069762443833011199528638752596940266278392944227080560779466334359923314283834987874022347504375362650400959206567592067654488036244639296651309202021428347517962876330013601134691603907791115336471923399073582492123338388497472901962791857661718013366661878452591286161266441266219834061864415886337312405709922741856781034938558056866953323743936589594897065593299541767523335269477573252780834703185886444672812702643586093128107365781203714669709288542401339901478021509332841307602730884276871219685194699265868142538174703617187920356626576496768208753375156885146060577048822462319707836186970483857631449322245127946890907222535906825377687509885369770268784338909610688535267031390560172152692315907766083703302354159003389884027853336828908556265025111458872222083107555067643580403207574726204391799309933877584440824706642543571872527507642128903482475714016855768225050558577038937724179775489527236620413220866907134307647614018790941864885554569852253522171701475441779730854692960346349693436739976863403313226995233460907052913178650844114571379708630493512807031001402075224169755927828305681134139748843732785966035810889053878767106425149091133381850751186279397451156907116592127749458415299215852416981861147019198277930843833236615472363972235851586359671006336247876542779154803031712850731415333665247607433752528298867542162001648687223924780315691002688383734084024245655852437560308809561985957091072872479095239130741471173577734129865117179775636638194848492923309482547480268023035656069127803485932710165664855446784127030749952115484889495963183982375285039871290050088241195628637712533903169064332821494055437522508307189978732732959705677007312842024931494639812182124877974789599624990101526899748543286905738951177938611015976093841656780808669705507332537805969149900329200703061517646655698182290757256690994113519535695281693282593697154264766249601682157618488993104973486556784019709575096806743146532186609003087912988174763513596477316066325464872953495658400383391310353540484242279488965842775495175811297261674975020275595744141450177215977795900166659810714108875427508505484508557415246513810078689042524549824770453297150576035455864086992264029285377430012900056439025269261913041764969271723351375475520096108914078739732263526068599690387117051083006769708379634568504257068518663905019565135215870041391887153623324135963408095182174352255439963198678121296914771912042319956473160810636496701689145675620098883736769206485716109623392899921747770512543513702811230653204068567736062190635322024294982690880527709484263104606312688966967911540480025374913479740457248413154408822876074918412015682090691682002568254097183970034001079637761905475594528015089388810218415266116043874091852572752962094200857630452806185967235736752919781748199322252189134246296860736127912552671387262213070866670156467997791657338710474976316073812477036680619970667521601609790273624070162810603327892382267381722675806200804583869652643905012879280372009344940144016008852362270278846106973992941090224914197671939431738017258574251798349530700879913168881984287835919693303822904513287879836765475949205487857277998689341685240940669638085096170971127783045363843285478369959653850508804276534098032244566433110369725212536404882824481996173394598019232079557338963818731503643789563099949004806113268200620178989714719703509119541476086925265744620764765853361126163587456483908250058369346019306621709062488261687354247634271771918752062526560343454451635151458237623648375151832427849651421474410569432416194917550374850790608896579087975257337863369236585085003642243536548759068617542303308893675656993356820513454723537890099036668433756518322974664474958992452556630916715840934761661146081222283979673421636433545920066648814561004516937004994637828088416224244181328886608606194925019775649757941073264603489269392771730099525205754980285777667713515427789497430808821509942774184369231754264959196026483125979033743572689085959415247369363746441858826149546483844875423076667836461830748756460820815693427005884916795812147199402816834236415177816707592672245174186986234833503923534979710245990935270959087761360823009360417937650939639143287536005085362359209766506381778162280665551135697657299912445537554492127494910750371356309099775990568453810185254131670078336654834425257005333802920494954059848812359028936506853265522576920878347018060581506539215404337549624703521486927719118046922764191807377129643718120132391534456008134534552203347111514248800784425180054274536504087600114016046225654935317544862388977861259027669519105364577475124047458136749839640417341959176837765095467573253503196852628496222808618010572265485489932831350129173159740153292037877412069304639277103322531765993529108274674102692969768405563616647356218637239063478598746939069468340265915764405015082084944061130450995540495980783316760992582870141180563797011032956776223518391253917886658281546035485273737837827579567454378914098773038786465735337312623943824855350505145791375514584819758304391544570063319390223867530829646295757804147187512414045135278573964951991744064884275452522466781597844066629677736885706339538819929151451815126099932853350739826918996401045642987193843172999263862085887161252507397808548400907809772165479707276714235250766753449746108991445787218525399928601340733823180767603079113097940220450680584491424880212551204284527048446528105959423735055117608873768305706622142933565299170517278623461570635075651089570038435245780196218414364813666050295009542345820477213652064427455373211139918459070728681208844429307260676024530142038373692191832646639094753238451036914973021999357581117021848851717898231107907838925197237733317141574814142995978997020465731356053531966950077952280658354319956322328980811510946537769041448247920233749329079652287588048296177666633233369648985415779377788174402648801485467423980404535091136702674178835935556651967153722914882262921596957949858147512010400938552523982790323410336570559900084526990806948543264087324415044070073131886050867640705856608293154254349045275249396620391752606608407631311799107009687706053009648079876030444281939409134398191521358799898069540513456397734638842762673256623780781244633564387284811969848569316970153525505076795656897601865752759897545587229337773232452400518921611156859970147666204289043811540840502672240848115163123901072889584578519862492696007604242941727584951701659253491496855450895762303424923083561766056019189430608995985227511270029064265353814222210535480003453257135693027335546854108986879562596071338370077901326802067035337828009783197224265865893251286663799505071169469673025016097700074488726884830330628067044208126056605449872698338491727871141928386853685333072415458582670773338249970401915323317854494133976622847233341146012342543221934477543373288900910182280764870527155902497831448570275565510657645932995204986861674703516476922102159495827142176815244708016122315872936745877507137779718237947400042268353696643327599120019575932427597058883581910602268416033376484940893921487669102578099505695054961271214106776165324899796230338179829427004958814165631320271547131222211379723728783900089090852081212138586814166036425717501032383001080006489137796876747727267418450862000009428346892589583136263406444163455212400395564292978067812074726112257821321524520219403668267414861777232096446062511218599802595232560166607709798077734107610794848503008316895339838030547487662957251216369166767470719460360068771143861434377279938003235498389686980056735920826149754164065600428059043072375721800732862430919014170798381166045034418119780677982820839183992931752511124989342729504449103405009356368897493541359425590201137138451844924616738963068279132055503261809903749550710260301463758391384071387811121138541341016658547166040633525504635056507912333912233388826338252317392154511716217195210432240027893394551189894414071217645079533177401949972788910903086269895948805725184983704324343628534895401171957404839514443137842812842193205885891046068574546551199888556421937009486802917799905812305797329801193226564456088186925472715960804300958342583346439894747397774856509960601776506360650207216149516972628126928563270420041865335251801099346094993125950555813432051332839923152012812180846008942116852191315771042429954432455956791022657677410778360041245570256784436520301238901568457988017988629634662683342405998576710670975711637062186687977129427656790301348035791786885892595502249187606490048567591993821697855117117257524056248881420250467408493487264804832074629571140864832010687311890657284440543839866713354743868108654188662062224336476161462619937118170149034813154252049592604852162673253634193905638394273642618872731932787871754324125448114172015726975422252939929031695384237858325865254761236514925015400042744184620955375829208313878138138944280178333207558315294422373203962749701944297339393301538870062431364444188110591177478952853838060912571102633040384580450254159540378334871847878990075191494889066674581429100030750043703936813598189331148230904850371440941868248517723642988200212196035180736787562052994576083760622617354154629816285430119340693931846740537638259108694442870713414007631105689931902171994142458525764358245463256595614555578743768620693988577233230460525863146603440773663434855055548143237661905485303945256388476958401334301662779982696602501291253657302248289464887208481041353122891283843137388059504996608116652038985462696336147622181607738195569603056871409208413648598374397916509715791927784552875332050373110088890779596302119159210246980597950301525365926732058169810465343726778739887901550367969099108906536398080238789611884995522451181975306802117887944730157047508189569710148562386568576556011592316447807288991238606839964652074325058560443856870435547930219605774148325822669661925838925235318419354254214356366817168851687662507349056489718159330554756317204159253164771081941274529998932806389989292161844689869076862398991537749451920109538690855487796523491269572498214373669028487991801441805146423886121036103302576503034036874038177487433378027194389011943436229927834730020896949833004733385671933339186604426235393280311888825707426108230098384926651997419720725594340680766826940898029400750131665420751242509475432312391510716615992456532573454873061277396167037296570503564489310912205006689386370170874322680493565348486565107954457987122975275081462974816199864521482077940027427924769218657447130152184322531525688176837961540732468273274602303008524492460290365624752984031684758987632790764795931132565314573866501318856036986739207868585656504599060073231483095547293368276986236015655015363638911900478744570598021581251951509247518398900693330777667935895719389062324519802335662871270988116361301283812742784471646031418439529735837007150103118886888124486947948728371413031188496697626687168499092738321299366198570948825429976123591491277844558964133470108611707926757443578460123798921554536352322769898236008768243552310638495117567731545007681387194784634238776817326090630981758248400413005931078897593525470549012963762965945021603745176240806030233859065183721731960197694568794197002805063905214175415209995480546032809341388160543817941370906809722787277758876007533420988363048670541637392614647559242189781337967750221572392770119933351300327159376214176714252821487546847895459897884849961764828157256674746938019620212728571982702786905965498957408692065083831822944209057406054584621354455539637712026792234346250970698776508559303744077698179248348256609739155453643947281726153242994205352113079895162923773226925096252930702628285879885759164855880073149731719793115842082393364519755015024591521773599097748070375418469247262122488289633920958610299427573279646942844374678277654341558112675358703974157950372885585820719420053515485559371768518599078991232941874140155513937055230647767525091911111903865311976702291322177820234896991592737527150472141926757950717127771459934227370924185242185905140550161166439965764045753581810731193217977866293226409983864917071284587056178563126935272616443855583015901405050703131513777601429789474906804819080759733123529399136222483374535306065039441511965851446619139678003208052373581548242768475754188835757763418206859376174114553109834594970686801273206391269851474281010893162609753637170105972996753253510361340192318057681172248458922085740976580616836790183359015276685727775336131582864848611455851512041334423329764568196021340478478946444184689187400297479639325594258710386400996710508223082265973305561934945488932485466640516543025441387037865830325329635767089827534310666054455536198840027629192045878376232031799589888140068012272270259176877098803592653031639041560413354999390836139858934121356126197231602121215707662308091179516442058845263962912244826560190114196147147492811225812712601007600462775631711801980043070923079022570924269793372964465341248467386488147808185000036464045626560819631184402793371370445177428973083084316703295517083002937698294051682797914460692434940796553793476895802806645823023741398090003115972350424537909246745871354134743660195552809014941188955804173891912628941776453076205685318555670442067636775131246482978994302129210777429319455630315774369119518985431903868404760983449683415072794255812470859439689708075230497305154533869923085732885094917019009677285715161521331857044150833450450186539635626484971225818620450710416030126438028329383952760817946340309492385530687209417326094058605419083757049037372188246047610498289811762330683903431654493240285552380016173879303464775804857251538397991187351325880196462933457577896395372979139735192648139171874220889586264106020723430009262056238888922130335590686749322047310202965448225108763317831883352369707568284736155285790018019751420486092060270188254865620288185938075460548127972098526010361885794591659171595251730911998368860958366544284201739607775870110599129775565993134901803945091179808368044844510722366798675818187755233698763723562012804446020502959831261112411721419593634828250910247057423305164160078698714720123025282364361431904877841688730725347275613472199005286559231933379199823679868488837834188687654481259521587042261811226333377149225004222065750596253064387538266558655119408441742588945862728223780403711851536658399706847072054649485543502112058630581484369504584169255623987452343091545454620380617501305183441108196883237673466351284101693536137861945096732516405451902838344351476916277369357152943139900574603199994537449763948760014244506568629952475366670588160276395381591836468167471525246904470595312982175973853780988839747925683281053388326768831043617648143251730068323717796070524581904978039740191756131897481769533680581139399875521967311973364652323401307254742071290676224322157596621967387532631431273594736276304897499322156841196720177704571555941955267608669705384626871716999818034463634578775098162613276130315101977109715624737737122143708999663339293189583632208638483452416014820802873397077150777841097971728726623725959518955893912842496356942058325590376735029114931027083477870728204405727917358259614871622767023512828058388001716973331656630116077786701553155068617296259212175819739857237998614471502501208719407757241173365392388031200971241421536935426348218607402122360003183242144026554081500329095354206912459291047638153016260041572919332565368101186668833337361285217771189452809911026948071316104195160384828223172668333646986683785714324213413429561350722391439513157362790494207004340555689614682304733668772562980738480441632496969659572304853752638971784905386570092334956450197645444150250865714070264133660665667695218584128509192040933436695987624497867157516657690614353338533366198457826009770843820619349131826233068153595717715480429695249908007674026999698245010219587233728617573014445496173448617617092333534052313983137305041821417520532520667579229706978131904305009408044036793673934263123186436571801409752058632868954191731307911756453306076219338091526276543285476337914006894719853944074544763208153393623828144263401552413051876719308643131234006056669758546042121218854159203779510339683100475210354690561102304998639122594081865274458515288627904497818216673256022874851053258839296374423194068986643770101332976464388114159879639002008999897090252004394518153551745106406744504809594977440947590474565503324374001365360334954486710978270245947348373061771237777894468867488466591704047743391970934039320494478848026570033461281352152253668315633387790203143753397088832906216244757223853435200768709377069561546236757869293282350465755651840605278767873283727575409518143822310111513128354365507091945744877559996126870716312289189140481919474117138503960852435545843196008993893075063090905004020030771787992332402918281945086052121073674233309788294907561220498646192725073309630101282600471498988290777461524346347622898021597031812941327018223443003199070993865689347043182370230059156321049219642031807954554097002247136417686116158118470524734549368961429441969306207075326219812693364486898022839981071959671012198638068869672563081582715289946850070693681839828293011209633871263696884391774514564179481205646166828461621854839026331430368723520351795018370753740872998394033708849585808665264887355698220465455135957176682543530366428625231490013053331878779839370680002505940800921377421616655626520927976273325878643885966139289973096450355093661903652907424053599884738551822270282913752869184506895426608645237700801822068199740800257318362671347159089275686254011536928702441144236559652890809185317612229156042037536553317276389159211113329671641656479058774702356462247975884973152225384010980368417774077485063703216975333924610264198006879196507341298998157864231314413731583661581502418743439161693899089728223808407889464734429833075050976226394537737955327575998759091035023394140385583764499821809868472415702359337724263158871987652815622386717013572312207537987766630725639217026502893567356850509632883321600532000613766848888769993661343772744037797510033405436055189181002742478722033347349498690283450863430534557146453983191614561943747444759908917617777365772891044933096216137476458567130036861733130138078433966244484114924952174962301293538586637198748912909547195655565788290682051786430483820005329493481640466340833292028883562001783427983009725370339786340887402581289206804549402108247441032447306393583893460382563149830108067036936845573313158252335747261891983762380648896103405336548740810867791355198643535217639537605133858166692129724713863605035833929953593571583084930369641535745155110844313976536017329369023357473304269705289473105585802777883006988453854860733461524536190737757419773084250461236932876261665701561485624409702883992323078798912276717571973700759087062537554339984842066039584128855194942271695446530971133692370863779880666019514789422055794133732869883869764200009978954029303315166112249430056088317705560664972972781559690942268281241799390275369152736038385481898104454914928045448860913213559993482425715624941147654748765207094036703302807958096204086646773596934446444940079097122887229432818856739269149820006451065247023327317772156903730700031135895167905652355431118592516635048970392582706334136399552964143243610594369088366669627279915697707331887291252470019832475087143032866911384484727294111342040783309869471913795160865412774894970226994069544195088318667481990618377566597867152963479547141675854990939627971095866138519995010861026722287945915174876929128262906628526071610603224756609556565763186859716720147797058291693551904663771740487882069873639055130882385648577553315791586991533294391881872771378605651122408082454748657880169413208162970275185804115686296320878416718666427584734334558941753258372881021713006912144405155708318104085166685915049950455425331172528915232587000235791038904341517270969683870168806708327983834176130097303054351941888954121541471880488169962112950843758541053342050895025141490622405941308510545916759688571901110084595446933794636732674504472738155387540411751852406996757321167569596169653325979421912580603107417934746852722856343116311579101326673293166249801873856734590564533920382552780516128923943663306644167760238055326303204401142749224722467081663134479226337705907716070149487308985807275463389550959195104993844211682884163813422184416661316309435967666348704252088425872419109149690205248411791684554402641305296876677978149035427479034686490018404029405360356949107897617651383019116975313830869176498158654950983036157392907975183718027399817706265114953569668343424445713427197035309916199050634997532522703933862396568465370048143577076216972502096036255516553728770066771238678165714975977753005535952617137421429288004688987816039500933562589414700575636388125665609261540396889802158671586215347182754269765505730207393712576568786812865746232163297829633792504321129157554909877380159167612572687441934877698327213054165956578116115995172596941877804753811396398821987905475793377954541211559157292607759590024969282386817563791737008793417128835724295050776368096149540506505423569341872614130569744494727562515282063083833352140961945970812148611741830124795037166161062053820704742938289397572779951452140171769476338126381238723395795642757801395375772936641296310083821156001866965592376430101073829756180899854815772126217395937729612231496236800567624073062885732047717349020394262081640728230625383202511677156237552312203843769028782361932380407306961688610486585380928711527049040955756391130889503054267262031371289985050781357843636473498365268807447852098188289881966998087771762456766442807981392416046147393657748661839048512550128824803049510139331090600040039514054726722454450498127898679328429386082907289446151311731249600343369852026377073497258738076329231559451231601002912175761136727392060070529433284324428128133824045595608107580908698051996407313966243979499410348057442875265443931620496778246333569111461005692734969172775332700957236752319839266686827143011560734866666145632665356444302749770885260844118801861465238588685470975216589240915986631269983309212283294793030742100655217874709787966555290630707952544280788304009443394332501279294400495482857419479774558582360906262586813094630417385248190286472690638017014066157700191462773978939707910568650139628773298337995101660613434654176604231961383152014313183443545452798390970548060130990836117892523249083049895511818122115190901403166403017512907957613360413333528262708634280191172681817335944049790044635090143246072781412246370133799830629126667615394408324688430594405207228232858828658982123385941502251759236244030706185693350514698294813079571032233035202586966569687015248387771167295153257649716872226306504429823160147012509230820370539039336911984963250196634488129879347554236772973604965250177328859329870469347172724197521404024527836142874048256603071570167375316229834147080490029711064738090748720259232774826073958532820748804134370693027027740588641643513293704642058807666125943605524057289616469007808656504600929307481651246771459326114284524163703556174930633458640937480296040942711216680757072066972267256347310936095548564373256128258600518540651229894733882483525029235259134439269387171022059593905337810549357910823365824747403040033653439897643498425643268222520438321375840351027118496444534073451079491468200241575393706084408181801841172081915021897967710045262980304639185045570919179577065349060016053573205700083603778762268962458152386455425881133390094869804794937371669847249456895535494784280036521176343660691321818687913020784337404203178336830608609278049759968309524319300783037261436744311606059885059438636165323321580877848268623428677927883311972939674804023817503710571217290224535744808924595790136202753910554858418691253751044992766014574368890641692367586512349682640440316368127570113625171751147817934692218186882961787706792555711426567899668855759915647583620480940758397700902886694513567452749722037058782778934410573673996962315701658190231319250116329808897639085085304587054885155812772181259529572399007214105963854211374828223577432468836056700313059929752382861936751299890897849249961640042100976762204726209796252079383977440532902122517577324679976222069850795455133830041809995759850273269305430478443436665629364783874010895901962286962930949292990344252952027218065492444783144739322211830713227680586875473211674983239933937934063226680809368126618732071318561576658403614282235014006147849056089956044511250700682497531314436748180148255585059093220213654084477497862285204322732777234028868546677915408582501947391098747560383181752724458737311235113619571491035378334420673955539347829945910520326512533946446309818664963950502094781798101684249914635830590291008243061271576455520931508039769117090532305548175219463379014569754208268502678683276306680889960328884229316992080782966536817989836917773479144601403973307681360993989417727318546487588867581135684410444112853282468025398940559359689271432148363513042089978952251895391179474400758184922745389755329630818039268770835423303374780457105724914023551924866856090511308523473781941642326767825185982414321027419329484145237865046811480232964112137046500823224543858993457982095306969302958472967150715118872144930080639175971532779548056155745339290887643924120896937921338674958636919058491884122404419394191446877028409748412480097796706687199569354791605640000986030239022148670060742999087258281952840114120157971596472774916923142828342924332678469870004665245857780186055947240390656420342994276831275185781244324286967549356538670118025548383576265472850759944959183343344014799893618391241319075146796170662840905606567018429481194479152479648537696413516361060233581979394554959717325968408843624836849081058669553507551389224749691398673865056898890702437818077545317430902224885052129254077803445697578957589174503782177363045834679531613402909563054385217583406711313428527188157948079771196879077731414298667657529711732487035146433548116122856589349092045805375699923252330059083970803463699480066409212046436686450988099266231606696967394724123971456761262263326006484457735476291753468850533163814839963510590145463599447392929455926972293196845791629342591863598555477774094129369963853833713072785019773638684515409054497083211577010438833374702728418730961473267461858391371201740117855294011578164945451349210271354433076420734264916905488295535208858383080128383451987702709215424637669144471274092573471338563170499103736193891001623247007412542002280887921916328180579657733322883771988276947972010844879192139092857067148057030519732797624003910386519335533425482480897582265078941489381013148228379088295111620848734026627445631291917128801625755489013067538703606790403751450488262148819208130012350102043027999447606621034712124408396543090819966731615404358250130735745217265641315791218602709302178460026545637426177661975388339825674737317027692667584744246250150772745585408595323639593235783013761193961214472439374456317059267764538289565790132012111217780374110483461655451172417270813244894567108075931940237007238939750063434386048439352991109345173866591427353961447527260560220004867506178863715231841068015176760530825182621708585213027930458994402164273334867238005044509378952335308464392866780675710442967331477485763805223707517380296208031960696732267281882249076459001611610182832821066732245295438129446983022271530057317894883255790302221935846471867596447945899569398628575875608181358724525832554185649216362671292796048367962812300236840677053097208193409805375188600060225544361668302566873752753488400408503226503034162776483075277457543486361170290832047344479823199220017804359832259712499100486579377661781568898551793904651343712935823701682750851033002070457830122447441846500082621551271076504050603137477584692846353739845697474465709364159392656845993510016747266927874743748428584989060440088828148867561784057007978192655516915666155866924859222183699918732513936374573138329780590470960987987670003706493140336740242995934319936615991711084001642099973232429129528001550392219279875837081666391709805163929616701280636488409317164105982795436749188766709675210923915973786948313861231579193603521114977730094559764507650982008591909365447007819538539271541688063642562117558039332282583321444007324306592425369447741168750236492904006709987747804171132618834836557687602075670383113604449869139955511125303258517457928999941929953353451798485791126651669702370072797097777514274773759215843699693342785097970430430568651946621827548830546992181937979871620007523109028269437144039378530132690970567894361478505340848497154225720661269061692447928771579689556000067747842546480721341023472687616889841154147012124506598656806244761031794889779734080884657547102010211091858647677904708545535749287887627107019840898303419333930510446826235166646354453599899568422492738407497559140183363230596957749832707011533543255120511000790037516505825185180175064011013984775385611258011913420560162694812586391868831130055231908321704021649656847437729152726375686684308491016394163882735954003197064235081085128577697296769739864909074610979830750703519252133952984838951752074772754592061717689645349496622460984899100129479508438405245929219019300832348116240374156752163874948436822452603576884672406485299338393975655240228688065955936111126732350554642884778892579308127564863172807026628385243939137898866193317655196192427885364168923165371883157636832733615034450181181016499579384584107124040680550969181463534807475801700829706930135010515937437394186555774642522896000724052847637093334533116274423421869639544069648853630341584187820374609467213194352279413967846708575361401190121886183452872844847352870414469254246797707230317263333136357568599120893061243071498205311883681675829092231739206668678040611737214879658378079733046456652470440937272072455675050272236812414044249821872856971683170742159564269553830074986735800338064948685249790307743234063091442576222239947786314189530964191509879264893248148974843000595801863217689509760969998670087232521167282879450864732910718694865202588741002412580308383449941848931494821456914136472563196940010943071045139098033934065974520235546617342653252867920102112065727658954320045124301457611347655453458634807518057401718790041364566618130452375256785504264829947067217390271162661337051726652815063624669610967750837218719220769240945678821940286712109038516282461799670240083997282304124856645329284000190844532850775618689556485742644137656912903744466130680559984539766167214412360582845365118093527342877014205520545026833869369877768938507390721204936185773522706133640290950331472112443902953503759982647990142556388367162408230960758773689595523214178683506953692333714804850479827543719707143421567646981836149121133911898486181334463105560170225906616678939159939898412267791605312868138599213612444766216892565447681886561485962108367580130987054936494390009519260160808153875867147138514485887914472370909331115941397482952462423313355122248711052939426487225866402509948377635946948617649345497709265144250575499915493492668923599010167799497452589914841436718461164307085642839808746510419497375056238546438107005816029069081375802285819398954906769969535415403193927263413489369930864727213564841443231801190004130062117895563788106501540907262966322470241903457497232535966946565541322543669149475621424185086977147934772915815268705827324845153697201222516135576991502442537537037740276642310234678975165898669778257655925536274996707901126474801779533041259137552120168430396325020565988366674726307002589251521646105201964264768633025470824725395857425351973247361413880900127443739879550368332107366777618633601758264990931884659002199815321711083091041339330377000544853259656321567754631173985996058059629838644048239384470847391806816345022599792895167103233449101668745446738963279283229589718363670257191907058240274929502330921103970733572901865981960454636936883039534380037121732924901833197617145346982734662016578106510713729546757071403016008956270748313541255041767578463016912088790293671718483771276982302758516479231877890373243045352085772232007157430779665155049745785537107503836114185760800447200639684097575997846045622822611635055957397184128324049559849358757177845645712210904256213225757341745559532937416010721851586190017956463424484514074356945801531849701826237811379112101744205411069196223272840625392784776509627791476453152349892492380657913091494232304207373039718044375454921195686560814003494566365734466578709601897274801749433690341824399886768589904899482159297890371114697416309109245424287609121613428844992762415530796273299741890623949968786579401424657039017626945472960045156158093962219817350286775613521052134104160635099249876880881124868742064618661848974664544421257263396783324579245179601116729063220294292661314840906621172990468904184211600568412859363808406327408914936097807046153256498985927974867154604042074525940308520310717460258867598050158783348023271806729491460063217466248443419748542781900957522458929954994352196120373238711830236436662961492944780461203969083199296759300259534649089622584608319419963663773127429678475134666230222382087110249804214800823569116381444487770607201432033655395560319882134469622579426949632084998629310706793728878854835736485247970697452625691560273126354631669230250462833449163831425612454088291625473962615856399953439085978269369853028302512294334607513055103960516688991036717782471251846706047353916280257483380614443098336774238853453093071721906871835379883491238256561772653482125425735688746954399339651652217359665029137723898501415873262118837744865953458432989236533767584484850115555696512423878669310574357948103457883318514791321056089966040490010532142033554727913926543266219814829085216736285854307273034093589134250982896088226856962156662541553164959208828742085309897321769540048845153841943070097459681054156989102271731434810211782308411691131883493142682883041671384982401947697227706488135491993427818834448762797049736748389035277387938625782841625993364899547097037987144977512218834071974864901402215807001664894447112617883014185868396389055741674936807640985296855712116937125573982275170176064407080742728511595584768001429136521908199506364798636831274750424797139190792228796680473819837911191621126356166135825098735807696630082815080969830139724418570956388274807305486822449931440318214111330604462660515027652502213147729907496346414881163526405805235390646404376087872620712143130308862164776372956746190323349921625596016945349445964684650726568965680216680176768644558592322209316083680348754189279327825730411920519265542955621748867209660651208693540887609404037377555575569507618632345063728580921008665685445223730961631509609076661835096880164802665322924435192872179183475397747864780637401229468679113215855160918184341675581799921135233868674808595340470021257755335263841906037725202636063630900521019021029868054377110276448514881846731765688252763430420092163735137303422885411974759379621653297633714976358004119876211166572757052485021627527186447680550608943075724990790870350131090250921846780850712377763321960786791384896132660973876534400183041305450127208972940022670631837363761078723381583512898771963932271219286071804218677955111726564721610886169443237376196445505744397998370557214157807779749105420773109283976528061604808573232260762870706499319698546128777521920267412142193431476888110481633004157779277439482118603352059494924603368004802704111471691214744394617189435227504046529757280411911626345727835265170912733716921809350511022255410937430211294833433850250717960687759929230293513838873893830408936764247342067480294586542163073673241328498686561978178479360730755466662689726549116892247386627589819959911524156721721532336589718213891278781718845909301278257739632463420088075480879255763520641292340426877493894032023579425787806232540451308449763285437545166099814917292005857970251754518155031190847137840100785911028634030971832346642046778989412685734622780216642301228701131419350450928572565654633271755772360213990792172849503039304547058737293614388944344233760595773231953856806172543383129289111647395865521586304102341039939920952985999444576185475753564137659510496079916021713026156275649189133854215506830224226931131941615969137716271850473745948100959174108657084552004182294304484410488271527008115040271926623540635921422837106969654122687157288318902255703609836795221139969890052917566841587770789208124679517509525477711564361840488588023897164038835557887078975228961978900580961241307133707428574842152604738092683098875222127011981686176927647934973989430290235354957536764794667659811100471383355716393834256315746446070281556305178866084855472362635095035265737661572097233138981387814748748479105088539463167230418485418436756880271367375133887310701681380944077345570481734161461360816277470675370052069442290814400801529264016075841954743479473738608802838396514627913845376462865816559032826590725227025772405674667022760355097252903973876826006195789679377058109882763917020162739126275663789345120580838978636163891869429781467227848447718548090640454805984980179904300199999725650127672194910049907586136782002635850793503523689904240853666950216057421443487544150531880149012750151189245767572949645614505605803564186482041809162154136314380050304312563225490110207990027180182269565979688233978610847225487278565241198192003669868895166486438099862129753077302559099518090754412172906730024639341427764134683948106040238056591009997402909289691109056031057407079764076190038624774379202039058042224816716449189447215749051278413895325941641628216412845230872683721100312200073931638286079610099213275191487601386506228787784597566836000705058206492697744930011870110124511616294883917894810899132102726797367642889237212287279501939397549253622295763768848365924077696678193606276287348122764320076481500193886083209609558831299341587275028959884631472237200065436726054640446642239941989192908835309550425029539876964914662328476062296372885146502375197803673776517018641596674216712939713313574496356045051118694984065703413866320087643589917361582015755029401010111515808465794069076559825534511006121508346599279225609506551382950615279862219948506890777956449787078173609522285974978221999816291702508455997028643480570994327450202495169986250205807061940924136540644073064174945583861700046697303241146511406383745717163328593572005691415831527351498881691112030927501013059392165450753665866746751140161104100585239303641831031915265245938499195135493528987859916061152316403505349876897726362853528157661619823024772864020222860415906231718178005157541443020082935165547830435767868636581601555386988830769730949670771216184727440870007269984619397109539407645333392334792801604367454406291511051142877310784815490619343945452550855688476207093508795717949499639725632494143088515806165890080012818801348038582641563011386604067038111918318074064173402264645849922978416831597209001324993753826726817854918639819735731224485723589349740647958830139334403082802008410563767853973591325291826851657410303809597604661355506387511091108297342493591651964277050981146729545502612359603409564842359149092127913941462852273355645453933813350510904974676192437736048470828232476352619444218812716488176631219478503926806699455458472337041725532156321882155931882126913695584500533255478933711285802820814251528706402393706461618009199786552502597304651325073226832324786856213500324045796765713482212243006005737454891205886795932011696514139661400057580484590203352679144804520121279269284492503642077292445552664396879018628036059133435321901368798087412796453283583388780152579361063379181181450467508168993738192253576396170723419478786158207527617810943849046603463195248762079162700302998041591930383607489003192527460255456170874410128914035435398650810139645112067946479745637927406443496228613005521654324854315673398997538083041741437614052303945182404699208145310712507831286667463159330894126831780589609202244435014440932672749030786782142508538679007153746114147433807585985953962890058730677263825492157055813272474164422025584591712240796712673020678763783974668864956257239878061430152759558270535262046313768345654922516918203605757994029276926564629262513100729213333432509311590554349807379928745981032923304361545349591560573337882931781170797170521243066165625873801524094695272072306720170368759855825542349030392486572455902570711045414371523392323169671896665310689254068990731433846105107323442615136168018709681390987537401543574268104158191517685120578443129182788340165384972756206460765666116556257298165203439309934676955995217651377130608333841112557964371271441904371075845942293591518911013794589332288027497909861124016361272315091957189044105848648688886454751667571712712767469310660362841070473943358621261641682857419208559390775461963370014789527113066084421405871908664125813924551804387459142356106320485195957794507333136254718768889951589114012590431867141823969767449086234456976193247309257876097963086553510800880953759582411360770518196819575965368392812600263369019561698206195316581971816491921049210882342387467486108080091143283722145884408312916454909221420948271787022268345477923558963290719565145522339656184326815345310449441343131528658981254798137975093986284874020480823801373780152480423723659027940940459120255388977769844028132979456977932421790364869654464549970805041606944460674051105951805294513026013317139883520615768584855721898321412644401994460330552091994913857742188785929435961173108488071890109624520772250501434548339926219097164249762373779577970728467321816234363916415207765055068296985498967013619673523825272504139039728925727646027351934249573926058805996934264760182388814028962266326051442727902711650976640272316593753311546519892178951656247759344319585831703819744857502153959700666235426943736549671524671912528465666907919574743065055325701024550157053937065604433604519988148715255169220622454251662084902436587949845512764356850010947713670303585859992447602854423592685334859159331313992054462421798110301035783963678982706177586932204414850500208689170208346874883430162701476645140147223970972569701963417659740956065072918057747001897420587685377031419432099031837835013526018753588554917837372798432539807548128539717819485772192425538335552082302048079151715116619026766275301977358669300434596153958525365530621990878969544101940889655868615090599966732045491951577350292692228319480407396125414902396484543925469654535768436347497335719736638646296581811407405150482872592280786154672205013553322479809638799217566345666658088932586322922570685986482579159806254745873989984073608365483882603517859008971404912378846596540246940107002560923621680348316842607497967463762941717993273645375994901609716935455244724573683696982596253775196846223023164753857149232632819253716410621398136115551914610155571341705884347595797140734593446820878388746672896052604536165333231158265408807538488829243578887764841097339271067880472725919343139896323215827213204532403955192871096610271455844428493339068435052236736223563731459769045855576388062749049569476545893762757527407012999005046766592727239163716674962602045595427564331321379848032239872699689156986047065194204900857019070855082850550368370317974656257992958204313447329233671569638843840034105041584702644417431873061478838737812227751934325424930133454577010922225639826322323008874087210456130222957629252678576562443434822822091556110754826378568426771111580853580588931737005820896239916092243051158614563656299889954876895343068214294396645779751550961478311293432352347379548418514577017425976646239014085071995389514080896074929282516843190523990068586353399239624396102280873164438578629495539370086117457958354756057360336956666327971264601582057573010719964452332877293750933178315776665212271116139828401163818063531935257881244301024743462022482172253349819815632052649834496597886670984010016023057051686645032176857751438515596617090754370234373776427046550179273430099348269853389835435212056369355850897783605662566043117235132822183838963925417833110622763425401371236822402717720116371920723762107243000772048941494452474252371301703430082385229232658307769490918956643771042062074722386115542228862798082784016869959308026415528479225834240430130939707083400663238431010997164634037010606524753193097662407205293955848838624573819353465566137161038974532925287421527606175499487558177044457230680285326669927524604697648012822456830026057882630980437716618327951667297842718248179399221387671774313165764277048149965535101879259516708992760118148963221505591074533816696607548292954111261511717659308964651586115404619330469585513278785464660228425816148127165351603735293065933730961069134253011498502102432537466262483556719885435348537176246382078361749927789648356411063156740279020949978512498337241277367198492489068954712791636173976059029512144757930694933088967283710043353367473893322690701418928157311704858378998140022507969205508619761692793124611665272568786786019444986130106726607108227528474059843907592382584039194691049671116432518082121259135682444567914843282535006923730043221803313883367526424624188520671600217388811301138633945536724253627138153353517252412621646892966026671823700846468793160919977054375211164314271102519096334182603371635244889633608513890527317539881673206855549846561034136010127680595219100272753101981286743746345731972930602769607263799005677169254654597591706566003637551615561315367308188010146466223289852411643659458081741328148525890522248376804312768665397092782988706575316240684266952557411697850117314038501993900476717336884165013637045407666876950080851716264054099026345130829902698039894751287805939829055199565263769894375510957838003767542239039274538312582076877608089337316721397302341322855152486369512293108513242769782847364550723596139308945352547993980077942546531520065885545242328456962046886902862095356631588621118079827822008957551745500245510335380415911561288975605430635513906886484704003690710174979085152563527401987310854147697001004071471866992702179530113954140331852989113489889092365142922328684084148913221604184258745390454155733659926388259725883340253309133240993091205934273836194300085196392835196024332490636774675766174124766292429077556387859546925526299291237021651065294040631929196555030635643510341484042280885969022199948919092903936505683521703300740013092200297710965452546493069363003690670916955288247977255079430247170483438288109032758495142993424306898119972720316398895931273793074441777460375729872852301549350289584803187571826629607331163153322251098845620038477742712531479349994162136228140620110723309198486806270784435526534876157526079637685437086387947689246741997615384129699500094815590337287147729981769514155344331482864169720454252094631230246287686715991914900863685101504863238204249882071530847146536476183722748806844256007823333510212632512366299696283981479104454770568733942503455996201168242371726513765992769326946725725244718960392830881124417818649705516859476835873282231910927196943728521654825169310450605766947138148523134708542295143469139986427182467724801127899248944207954181946881640386617132357959819289588923774067392038325136693797777191185770851255692919494775240626128938540923592696008428480173953959437502191247060053375128420562449486250231451702189430877320737868217447031360659833476186466388485192981673207729288907657099737434312697844070137711148059559102949096747691591869776918853254914072451120507475605847953974203325867118760650465395971030357082492343680421634383160389502596396896472777205597067085179479252041078174758127787484070677055316899540010986610575193102804521081204997954744981809219564266204813691185262528614444880838756853608713910697284727414558954071881201732306490572056945061355879699912827165277856645522344971986330298932846015868606894423139142665012788550430404545015834142291283428409927015872997536941772987202526391334201320340964603169654124519031589006480682671175730224890874885698588476308387268532281945826458775737629720695129484992581982921061554109818005114072108949424151784854923692545799007663042368911841359607590632561768643315443966792602639191393007221026221389221608656818930587879463996331345316260770979801124909525320166631736498482574692331485727884492915776500361552355535906807394982528573536589489683456649550149530517447697876583674841000466424091332130346273650680316826678425665767678432358804308422693636165578040672648812311076508586595201689211630176053545968549334878143899586315075164878585886901286133229760391501404251311350819890118211558885545576918993214551971575256102994674788758071841054156119062597839968043076187089847858557006132767242695317246995570629579044378790642346586024368447051387823852614310139409831619581595624965000745175137550182627938287021372375220069223296240759198894409007272630081569686683860904289121108624289429599071342581150989786707462549679898860609628220079940322784291825937987489946465402839244597069595956334649087580386569155306146489174872663999455685746482311118385547488463812060467788761111844416255379305013052289348944803325843826789420948579959928091200648091687006741671363541404557594410107886617488782780865228504565297881128858952837143174289181454083853446507066733529194903827465173949483132321754059121069065703729446554566902576785278422366350867136314754256999369527138166986322715058726704658718016622019678106770241576423059779259134726257503760343036546485861452012116991245555707892033305911945224892060042928123569013593707940799035133012562639397033655583174341742987965848833897597846661714802969887361743866930547268495082197385509415072269514891409889666230407187347343526965414693284718560437483780798584529520479829881325748410933052270946121218611797984428728099799045925501034745643179922505042518232833599536311917363191855628724130622633519201110595480325222389809359783323921483263221691388353519880826810524523960397432606875298198244058612110249226970510506573558903434784928753081541918075623994172992581540427881220709352018003973332877407782260211406735486691046616279609022553679278176268475497456330299613764555132078852080715225928148530548974785130898238918110948281914282744434081006943653229466283668791310437639865738529597285524461144040383693852543450762104151765282840549310322929504742522034111605419853891947088227988120037164390266698897384778014448969026898630576706282666963071410368669335065794885799360768776537107078395017728097242516818586230774126730142269866052266233669502466762737398430785115232740102125017075289289639344482537574333743761853587329411574061489727335985839099339351314904351436698997463821187230796596010659931504765488076893435071187639581788725895819205249838221410979805983884467974589034657091900573946314502947839532885445715077790676360932303546143815518733960807058749874673706838145987566246622181874245779917679237643155565076825915112419518925396035511934066690151530756382694439951950891171771128960071457233018298716415908976995110412198462389179410525780298315376886238928920966606800560802412537523927878671433406655505375220973946514245022907263632003545039026753375469754307130133404566699714963020895534884732193867226229300625414803663489487728858560840867446209366085968230176029184144013061684402914573283912435102978489424704590885730800984826014316498676421796803423083425159313460930696212829159406665382248777896586908959524665841254483095113537810831307815235787863293298962904607705096595580538640573035425158042535529706636068162350578884131719058847098640304149195255256268501980706182992394302125962121573922020360892491771339509422814110434744657099641292408698885471716939645778135961699313554290136679273192822844830123333799257547873284543969934999359129895520952477536628813307154711241004666427696777737037687877915166677783307026612991154740776151754051999686829621616266167301180194054525377436014709009776318909619532937564840360872458355217816316876100540397764789419864235572196631906829386517111908823446190819878997339704898272197316531172077050202298815614497912546442499079979932712048875830465850719893831651150603300868175551586931735081894362720180723388396708727050340480681397317525415452151261946191399349476271985178790046974839315036302964880441437318245400617051678580022398881624984822275388768529457074866793725622093415039549339959194528628383721740472355307115384981502721727333341778758772422732465533361481405532178390500932576031484010362635448127484849447097003603401322617656478544327034544406789443836510034710294957300582381198089594919283955326069716034173683311977144274556445622590710061062726917626745349495894155995006457347059287971114703253675576223105023558612970537337038165516780919346323597006688212090259911260714539767993450005812394680780743918290092181369646025014839995466081856509839618200035027671682787129518099260786583751524890708029572292545316835138220198847246389610408225853353272562136099518532069061210197415615562331496649217309436192951983605177894124171535019668249044470609032919996226928599795963149994347081424334789408622204257515358735823033418918338992131154712524234099821666448304260213034004124551550160532587115160885313389812600493048117441481741106521798311763409418330616710482576714136086846079973217633993436011892841296798777744668301243910381545992649790926672108520619652608814744704764616984904861728427678336436453040652298974782777360284328709507835674629130022871765932443895807508882203244574789501475299515299068282585230495651949549263672551762958968538081441103021215645565666713737571189079329344161930699471062091480756194773668833523201402599116741363566108256654744985249143697719966955927223579800298099023728574829129421715039123081784919738899691588938127917044204511379168012473986086267086484224477465982801740167781782306704120707246969938119257398337273738509046968569886302135992017092147742020711570795136749600455376839557834400677336350048315992267719715825301442841306584825930967855029813919933281845776153133028401570134547412969411548689180735686952508982164631790234802290158148701218533524045091302509174444837867824480006733076461699039701265455292884204978185216024520077753675781594417004600368403480327833576884683232029214245906323355451053264017027565689318982029574336411945870600478845680729024531536849664019453520395970105201397165232989848268968600888225094069992007507618522898670502513029029670358860254194399245354523942837687270358490308562008344157258732088535587419999332916969268386693414655011378852863703192976714957079362663850194157025750170375085473150696058955712465221148904013288646524110564875614778476298747925969488616153558182973882038354133273464015371280826808499282587440088459477309100144464208119436066833096889285593396076434080636944129248176668264354979618532221793930381394814428108927522077334336761183036633586540375536320326978560103481826375160579925451530447740117597478109572282292783801750302524656720963193306301022583961850819233154333457292223503141774633134252157551905083532982429826530480662269397357662945143664088378876586457384962894818562719815477642217231406981743080271779250520833608597645829986407437713915241951681547195464484254539638170052634113817076102119612114347626824931883582091850979163496718253963757841492088342683825544940852793782101009695720678049838055672312953044733550879235465999638950366048919899268306538681953169803162831187697488346817164833582672526258246350299531909277798956083577405856364385121102869665487202385768948196875924957548165386870637280971041863699580408031164697335045247171215242144065406047961351820576639830370812997362623874818233593977181675948112700150925823183533136551991680467677168501292459870733806506692181593684155106979893314987980466897689141817584864611631527769319265392134937840497420800735782323892002581899354000185590343852347576924428953494474992316719231286246098723959054847114795937248812391412480693494410997653388584328458726920007500813204953304038658355468942961050198346461901150330645509572813066828018662018299617502818215183413146535756652964404770746099749848827411027485998480076752408599436661702411051558208354057407297138371111854322494997224944393233010959141937100971244695884438254645707531881919691998704920472354330437653551814372058301106850758336985306894933314797364963276704726086828684170952388581909890732546614220551415805814898971323079454443755597323619421271053375525945721438013030746830220868396881723152919366361336282969479565574365632684720681917540023668404869034788991851270101844749431510300648765382189456216227134950418440613334468663987193530744587217788999350917433495017131464206301251290602285387111994254489357655344431174758917367787267987476503652266160417116884778429950137991893136509421151648988665201936841785258502060085454324277239837352140735662097712390687820062812339729215531485842690671273722868749591703444110441613475419486825234279913742929329422086777438203955041921223404653364793801286656904825175284824838893745524125206137327356265728685913720606170014689883417685234706421546171677177281400262395467575984067732053981731151366128489591848714001440697935349006284492843693149333203957827227716157866795773989967359982717557051214673688832627221426168656547425994868043177600853335592318368953023265935590463150189450165272848558947714207294617147478295793711131731185244368048624171627726383653263544469334238805404139584768363775098755215709835818041901874153643387970709520675383770782679452989507929170343565097585994450313408739456826121050992560132241506146171130050532652467201231404646453756021567163040077400408538569823517906182608977395609667286635585402760970968651894403322835102561896174176081697571035271962412089718243904057073545705564864791077742694871283890498949520057651191843313657354996335334207543176936158340120241138568097693679768840704449199263072459528762761178424632128966224340937446997072802061848134833980798027864649311338674235924813262889283984074520421335969796723787630732159343834718798308359048083787454440348588876237504871983196473825365920833855286993542540639918334960322500933879998832504531836345729528106555719557384647671696302592004368332358254662942525801125775310141200132142648283423241576655582573976454853333991439121431212360087748847635272605440495872619128963074242179068129204560864347336953743988530528628585138165610048922706013937726298706823142818461501695669224104371823604022604409516603437780437086055120062493297654066692036828840881322983723742694267103067831654946583479688024413698124262095937773725258647797853885127968961191094257867041634863262222535490489751419201887653254074255414174377509433492947911433078643996057268526307092495319408038598580281403705727096970517331534582260195637759591375838932784308239265644759713973680443803542454588973859846686552112281577692063039532353285061087117211558700987282223026672054945115744885446048926200373278873042732822326936318957482553050212419010632254174833038322360581527115588815459576660974277022769953817569302046619696883901089178841537646098560904323374424613656782954300644927278725293527673360674676632685539593438132805266798230960290329490463063602037442369924806899706938489512473321906585115016701438218510716730562831673788152421266585682164651033723954114454026157582220614737076567525530391298478047824641430413772080443944781024745631305517540545143485632086308556243992643618839228997349379434042927968475517473823457141371979894529012486020697700296858131463283200817494429140102294267597550519247897883529256409852029264579698892096181783314014897299822573181529220643355336784944470748033000780439805615855315528691465991569751964859160805490597318994291970027568700322664807652119930295561269357912350917849812016717876108866245609842293833585142043958427220195638984147495485044278880438491525354049940094894384078263957126525373178368708142313363933137912072331967915717178176295270537629956417858395915023932167601892987277676885949887369266701855414279394714250352163220039827899222460586497237738708481688892554774454094336004819762064423830909058392096898700013949064525879199290839165942303048199223752078679845845458363621927736154562083933041294128893142164131133064961933332920456878036268210352990899532458174805330633305469734179012160129241799685549326003169072467755480757570200122865574581781265604364871886680667321390641392251873140865276317488652363040106614725594552936464716855707440068916646212860922833674761065158287754660557654410059524346373882053193776546693870054134525815640225795446800639187871870862934216027115218818567568066419478892377424644742141485116794504773489377643912337349419347483435382071970879057375612885828711767643463180229170995820502433469371911044277065399959090641118499253133663789297510890942352783868111402141724785578813774105301086699409601997135276030967594509551564418190537675918786162525340727214052114470841294308357878113302826814306885573754784580097887045100996746298934979287217419179385845215063265486761962552175116335144684196218577625772764904376597248342435885575838496925090414962769423178514209725954148067133702649190038001588040767204165537250971789354957280556498022806779593432200445473408863554961746979481474766916206460086859325463319635111616153731753253947042863204450904313772460168507811226735633235219327834583830124686752927417689832783206130030935767847707618966180259874228403243193636783838134216446295320559918718243523846802859943477590489261090147376695545473715833202177255341335223057533518411149870347730373088625996324660191351133341134679399625214466163188992621986178141026144292136691410287087667061415412313511899812345733634926339857961253671684165968065770674835163845666563054525067557619934785385851653983046402080645131756054646958226998608660215925378541667449244083918102233856899413870784759202463897107052843090100399484368378430198785854881070299136206611625693332285422681339084479953427550070588167854761138027035797474026363007151500885720607378069419918126525744460635807750446194711558571395862875519173148709740488145816894960629609740653568786743059437354477197887021631705919917665023892250917671441955530043338044664440552765992673414338075770840249495771416019026504719703406651132094588312245110467550664659801148520193567127918928497075467963569119192651571825070560222299407148727797092809558577877805447556256379728399445651630468942592329520111659485682989522030114492633178716979198366368376825199453874587421719854740977192474146380391476990452427528183479898376787963063376901536770746825749844919403919990811320472181049523089098079603637158662507093509513099627070945274541610715661753405366491276445807348163167551001243749363157663708554407842415886447946001711416156259678587786512220106607512857785157029777984504626356477161934514671967398685851319343286496386903741166625607236930284282924853697047329701110024640708327009681132410818862957244011171675653925419554443907695850169391710756231024658969920081734443115765225647116492009318518671402725830630770358660718630029640153362095880377229158290666331669711507157644794971441001672614580555192016978388259414451684875379904622041082128824128223323537163663272415289171782640659021291373554884740475673129084793813453439332512524889510590709479729587702133165291559233022839011329163158746395889110103020256141433760092309731992644823218835614142201509516936455889864504578231238977636725745523229512680040623100555918628679216718526903904723578075406798279145748352933395673779008089967708076761323673694493420659823415752812491102316197533538139063321407501532645968193370122241720255387820122421125180132616978278453856806957189125177023164151823079824830192464169181360510668129940108849507516782055125958015831007651012165068264639152452091860081040429730913139886953687086454656250731160472957560607725082256192453255878813455494709435254347165327418261249897174002255820191191892468540622937771923309222959733944223785883925999472425195103345708443954372486444886462759745502887904085049800497379780224799153808959375656220939130386003255554248382476402779543788857380817936519101258734018130549737312524658475559047408134005066049982382811643257528084291665958099981631497451298120345284208102078259793767306558985254540652429490552128392009395184187489592322908816915859138919574766658901870327707766929200235604309671021428735056992801148925240611710666901673250482617183577141704391004537293966906115324621961561740747747091162582247177576825847788524796136707152152409776847900115167429872908897925680828129292368914004417229301814661415997859860900432015715451434714018721358375571948885985131757815371451663536828217535029097963758874320294650029230131902785211962421550904228766510781072946318501186724343955401244355103040078040065989497386004335430771686591754903664379528954101222732490657706158157971157534310469653855082859147055301571655015507076542368621338165959399997390447380905394429346261721310025634734232707988551108201085342413037373969965728443164479747378109473848659467623402481524034610716409252940722320350081058866470953786370159620049304284989549187735839564475413937333439752780378939831224808298407338597679897119497276901714777214728045457995809145087466512538153134835231430917922679509203529026200572075070058456965553062518788234555469098922556974531584019657939625343677041610710743883624393395735156105373873615993395149997970652254899710536106471769568449438688332483371215858228325024699215144177466623128985521175843121704818108722325037136902639922940439679355913157846554526802537464129294530782692506689587744110095087467547248989160639202228016089363001979716936991195400936731001059827978624161333790365016739999680435711648725448288606715903841067840714609124983747029099592728934168427474072050630467128849831348122894756039776577769905504021497976780662241453069654412770828688384054441444717590320698719138526783867659137013482094621345199343181366507702590046775371759371179302405316937900126682992222212503384300485455846993591762039067508248280925402319577569274744720307107382007198871434145071671996916190346229673153679497108011987844427753982313797660551631403012684839231205633377707404143865140299136586449177831383159443291604136004205293351981713861183887972977855540718119136401060161421149447041340902437131936317344324791492781783162290066727318699473351772343855820610518638355004797604671893154810162179911577335668441718585668836869578603670779176390674428067513757933561157148384594902458677971227770042123364778255111996485961817322998661652014332064414242000126128270831179876061969056554200945998181076651528342755435773266988833828479278239933761970148194820997834412264742298763386948279562407041103977450665465466865841819878507588967034082809520367381705502679254334092225788341574486013614041270156504356318734132615299468352538550884850561934125564496396639472193769758764849660074753592896236149686953519638872470592006855793427382351964967204691114854211026667077272517591522011409192783288176618203103790147802076562908340618702649191931634573523409251270001220887967716307983233772924460472925563205654942080898934201009133907638260184754536830053418995341877038453871101259736080826888900350585625460076016060512417668623074510938424568319128389249171059455391158118932449736400359976369843552469562177339294998531819268496114156564520351923914064248710612534918242579489390661490169833988365042896275832544562800033758103177757302558419632125515361082742587839182533353844944704132235099409747489172554373052144344168644930796930413428302266505719402882339359394985187346859026519367518845115171399380679189843987191994838447939670536178129006680731620893072856193675663386427557761808132283431130536787949846200907328919861303764071143807408011322760295607000222570660493257588194437470702103070172064018604194481432376074222856285600084944038313326235193039913911475227045215129508195004440635217539064764476798194688144196894087845126864891745727980952852019043550519603529077330173839496662286919861398881222233131756693113485558554965702931611545809469026053813251390433343603265725461287089674807421100491071680956357754183159713960099784960170388809954356343023606150077892150548973186041531274090956663687646875892680877911911542983411965462174330202919803743019525019311168244718545811233617594532200315107729552492490920802359719543826811816805052519047633798193451861681208716777441308105997745838423050966906856562270619379811074900130573772537279182726676178166069608175137985258038096296471902136066019381849775988711187755886063105923880015067124442570423567132510209351000494970911952997513039146037918718819411833065762696715356467582984831141703153836594770906952884860242204458107738059589832706041488961651195074882382490610891286689388690894014278697678226514945251509701562673996965965395952444540864707302274903900811081275664652828570770936179031391593199305240316034640118731458399900964135280844419839333615512908364531024838758380131548156182485101767663073232805925867885013882195036872790875685283745114199473878340831578416779942995645719446283201479969917442229991214825069429292462310688671335278804008746208631316910555966061659795950755853919039748826740211875012464994651505938567472497007394786521866315046029009317821564199581887973486924847425411537600660894790256712646832300246706739207684039953440402570757771539299089216537682589287253316032817140241719420832258281319994791409687874929132188042512275689408172978935821846756443190490265789988116157293226687546780801514178438976491415476922259718362054400062448789278822371508913855710369264355631278772686602500594618931528126665108137893604297751729175477623653700752727313648779959847745696898496674665414367423752925839239629075889919340756196718434840557695192134672286749704896189976109625998317825986288451715538467305788184199413683820766162479513722849506515506425599365206578350845207441826445773921020262866358917370122280421293910776508927567030044730084937439379943132968662497363822912104146570830088381200276016985604600323308081643026499099969450428648498269505831314316120228554172520247691609006436974629329576521470416409138592440160515587698628638049669646312829709364622273933073262051551802023178135205371829776770800057454922130841040235090426819595828536872478577641782824166133739972925869053455183462473798792873958990201513150976248634561318304410033862229294722084247902444740845452260770320422808121477019897802286459116201510328621546796391080529508202775452074792185458100485787113569139476823242104433278417961484285642338530461994800190548097889515432300326789164005670378477917724612533389836277188792756385819585051943591032074343626209801260497400838248325825223887145825984919780874044945168569932025066197119035229602904214375345203742786385032929441609896568517574428552780164234191119415924633997934028227921201581612644478083759862021251505160922289240990327189833140374511244485094483867636092656330281120168269307735463145445835567600582567712001956591888246702222626809514755774252329625783626297406151368705646961390578573545740965866551453741345434956220756678530750970844194340854704178194878201407370689260882710926311790046182938876807418978667936167596812243629589236130511701286745392212991418784155166550331173995838126014754156503840932169557950980936313928843636083130962924317983721998557814510873713374338735696801905762579681110586950215728091497994355321137495955612337618716255461513050173348379095686131681815412392809515256008737255300507648203804426897424968084197825240353505677260690333654905892708082420886209560579939910304462468686291875136085321149061280130547015344469037772251872302279547653635277690541411286701085010631622112885295267938419474436694131890836675009785382364027596325771455936323447463716618333689902271280782294467551105631189167375179345049047750529335787612760793834615924256874701112441296955300662693528297316348922600518564718905668924712813520865262515843600086848764732173651775532081552177366402872369825276259854347946299304118072263041886481935678230630093774956218188918908095854770883444367643792145013496452550173989956223753099038808571198846552542864212458908778235680555305491209195296610105480274449882969751718106872611271286898871962702838020730495748227640448900571142974505358013238210470924870260703924689313022086148403481495706853538213353644208284472782462085186605101519859507280790238715480623203116419725455397420871830041971910505151744596786062730521285904119217712763964892795637596091394685110724524929747801085994600434943902583835670203522084177700724712399075458530165636536474752387293328039621354075100697227649096951589542398136490873862015958024573664390275250740855941695526550230847769500139634347142968102913366105412731040936278469774941894738845119355146069201837832002257648919351154684306243038572718898105220536903073745906892243921889497848310292629159409824663631581783202810325996976809802179241521595999629557099984740732839585836833038599252539213864188241687949665673041118873376092263598760209595098010911249526718427032758585265949837398834376408639339863505574303229188965203354576762062322685765455940077420770780151967229665793517122808669172560393056468716547625739668824964137295879732904796868969381505386607725650124135559797689234541369339297711497746133591808024335036010301645828816793825606905121234850789253632045213167161586056120462880614768810107264730646964580220046385424122326606843074448439027851836907109306985085426050852147214607229218399536726627465546763064077079980376070967580532712192079870500850295901555592511905155928094063810176697829355822345362866336900922844181162746470157133175345417192423416997397431553571340733552839985932851679954616981167647251395327908601951978229640530136300503662434398576896688840755418719388984495636429322865745647134772846707952785307951302998734799921906698664387859152872619135136333540252491518134426019298302496384547946663066647847708625056381428506135325312657183273674696530932462012697461910029118396794779780089639927845416915651717845236271112512160551413264451777105914871365659735254694202520660624612931720342770066238297124122501351233484543084324794593171996520798534068534386047508626910024818114870718601058269020335807711491723707982321930867304282396746356743712509630153760218504564681557526112375856149109025929187715613786898484004618108781540156382754047320491662815564503563533656586762967559904085778440127574584232736195839601511564582260995075702553335863276361642572179235495126371210892925315658390575654030247594077785518967099975223033250158790848516221475812336886182579328728047231288661395110848389573913720661498146934564914062170498623824657369504041255754184452091977192302022437703273122023108135626362372591226666434198663430437609574278735473868764233784844650502426733426783617663967859204991015100392196551576218988476447914878636034698968944480374908348502154255628700125593387579079019488702940816481296143790377534078803114756466374544917634922693275610169605979498205317304710112215129590533335908588751224732617774950323676876640321276762465073012801450906023353628095737582208172462931256580371131668027398557702162359405946058656463910780556983745878726748622581604990827713183985563211558560201727835895852868781433809070198779928771799419755105652492455170895905915135908263390123743419063181264994331290145382373608603128772152966329322690632835823341993059522384047814397747494842700826850599905595339696942481015339338207023335117421347408199815566874955229962987827283055553421642664417374869840381365148891025424902332089584444756177959606961727718892727753970659204218526349681441069081443858666689420544523436658691677314966165595101388170049148156434085903023198732467257641471296786116812946566915281643220773034386537896448889085058866580219370477235638936522084330575116558453838850797126656358729656739919226234176040828975803178812107952587530706795261902267043960701120361531680035008615242545730761937324872124336785556429272031447919743891966385362463615101401400367107678074999548542721969864320680145807947074532713617493101275189836462466330758270479224701318078037068946590616818520944255302338609686837569587495322672077046875007812158881421105104107301642302427961339051052396077614933645702113351688159515497104697956710397245726406767886237873048952680447828729931389270692941311701176812478131626690285775339458109662039673875806379400496277088948977676069315250734612798761719541722818245469607683273068527013592336185126400887672034410444779760939573825475327841970204267746136128592207115126797359054879389123654085514378234257440036663486687317327973182974226617811375693496119507012327061649789155836469047954327754576096581104470670484967092382779788482925264317645754979133352981170071578324998421055469081961213059973043263420267614052320529586525273841962743998339735687924684686745006082205300829697120711215899290350905816779067727368098077268049396003216526937761565030291974972470852904469764506282744601303657360380681733873358235105467041960865193681454051962471878957179934245745438316286963542586596701098059133934077596638767316155044231637069452632951563833819673018133154256831662996269139145821525614286852988497440503499428035183436636239947641447326297615247610405764614487503455226314119114948579458307891806047339022893820477986485142545543291745795866189620057406647710318371495450515867839735912308194756361019181134742988417373932515440269716573531025747946836673692909282323988002910114198380704361173469056217915944446171247925280387598057855477203885125895675120730101945710344901022819210224528732193813664751290680659782706232540082316154503629317853797675706448307598021043474846087060065606552972030539167573468703389233216165192403657778394726681266398814904114510246394128901638790058957712551811151612398906213263140225689146977536110302091817036191386252164268040143189318841593055296011864512396094812657901473265328456775523911494384040688639222028531758020855227086958762973813258873360444686359933575144807661573715698302348549138495533478886527834363755962667833385297223303825477733018967801794502423178718663445966812994216987503402642526351403976553906464027107532184815066484589373157726946621273199796076082258172719294856617983688017168033459077571656254585488337354117932857569926223494522167170384331840796007537715210561726496141112554329109188503952432785962799756711219300010058390941554918671017599582200708074276647322325214886580430515291097114786428811699004215190069226926847506151176051814277571994334360561725818011457138686105544132946189476436077133099600066837830498775996202957644611094643190943981609065527501259583991532645690714818773776100042151995829609225288801435447783199910918910644375045398310457792742064735079996024278506153015206280343049646516627114010506349246587912570700116713133461443256997333654850042973798194515387669108706011664242352372069111071575026715393716745209264413988333490311686813763501676847242864125326877609625937713118027869948758958963675833522231294969188966955555545565140829221919618253441357489275606471651877025505903916485800024738873820022579564550203786599679334374102478208639401032148872214089581607527280286326486967182658650615517532631210333490238425144260758418883555267000472817562552970260161573214128906688161232894226755958819421439181073442370444337114779594894507836022761937268829509636303711656143972278375652762645447271559294473076479948123464246201509949169800486103404900200175922664716523177082183665845753790140651649012281632622672449603183353794216663584719798463630695204224630346906788511278167356901956686506293414861140885325401353061766883761180020365352919312169915243061591537129292785263974540084575917441224117862259480454761660655356214164273772124720969051021613042670265440778516058086918279924480876570466762191716618240678821415074286662567478194150398126409935873495577527784791081246660600055909975934574668070492873928706137388356055260927014276050449730771146797751639703135203728683060877338509804291443270025733947597754143605636308224165003873892681631528492524988196255480585320359503003920390556382374548236719041544881314298740378326912704045314980822047418171200781189426133542751627781250874319910799759681306042203999550636991538055667408972655202904134279931600334728791004858275946950273431176622757075265974043021013107152840376139354737452678505589003128041905761923379148647327969954954677155853669242964530997004950477907667357444943487279887046013612226951684784142709869890341362951865875917200170672551988303248221129112945622494464524525176249570262666609060676537168420913217123660656792613397677729101289585507905955157170058483470047764831318389596468524665579055764332183028111268377188494999055985874358373266434112345506941699031657254308058528150408160997309779075599800647997848012055819657473189376946589163400633805164945051680357683939289035613815927300868546602692977522517051174661409929994108997562469147385742661127555940552160948501337114687794486688799010974613184272652344167732102130897343757099137987789775837684596103310902888275934417047494734166651488626998306486840696361395529512686132643162144830642683370109082800060359636536945872654323257398359330692206516447312270480196314205245060688214941251703208653891684541371545453702593362695654935117067311225926879518049659443204645258537250883805438092814755484250330301417537945696829111141954683439708144625272701370517035075696824653238287135772018172516398140811460920235289360222347595493920165189402447785126687346555273659288172225897052589522760523816425994349064674595344513679743279567278287126903733418503477613399993857968875426234860808462049360296541089255930615251867690734158149802978348467956134588751855904268912950838783572556583046111066430714495325533989437143634531821372202027879045090411517857712327159749081594392945245994616049945658301234287323153337190569663087965199616208825327250906251306761705259650244082825823723665203454993967106375876025876852744004120973592893245368633219544000001504423702194329640042265270508028173450129867750527945851488471851906176777462571890632880512153126986927713204817179327847421256396190943054876441324072459993346900341725652545601168030400348698164822777762456179177551914513002460318666141651664028392866990360849115261853693471583522486588475840802153739826566347932747410045155291221621103442364218082809332786444851233012350629168879241398034249774722213316350038359196451033143782556239668945489741164866727827342102394440344636109155477588086393538285346359303641098761805089744387225522502396020105030491242727930616520135320903399586823809907026855530271080356611501257227352337966598909047554651366722108454026586624389512789406495023756790735811159103925495776168084465847013780206178651800736656456657642854212505626599363924811090992883554703552697400614517815821661045590888511956228037022622773747127103795886365172189568317185842878162996195164927454667466564472469546298439496091568271306129907979310277997717443238040400149594381098704320598889174405907933996047710231071705515200369831899271300347001324539316048338385555613458878853313852080353010552029266249535871031342963714680027401771204316438429637552123606472906180570447856095130021723795165247900354641954511058473747254794095957181797362899931285137974819643826104562352446626968302500781648079250556727870543288753798464808755054909564264592719637336924384212387934097416657949749882253210863896729716750564613019304128760651688683637597531909924107799597265599238983266366468334995799616283215142017556447083394570474880267980204967268798975586401874539166438358719612507549291919103452017065345891576068661385294250832099321013193762240495396894343159446809776028584237167905372495945114655137666117712114737026675248397554417137218806351813198668092951062432212606096143734630316733619428241263040376488487291892510305694099428136804727641306318827906905427637617777090301277946649733838710484846655392099285624330987790574016218474412914034911497438033363733513145354558514885747200625999140306158197474074568255440863380329174811340280012095504167705811487630884649871845485646648341145539649071992909336663670090563528863766450567174341697813948898010783090759226060977271076443039117218861121934555331634060498961509770722325221988108031514394682254157870710413975372476549017874088484998150871412942592413501765901139396119376748107120840318339725357667435965130357019428254797563837773742551651035841419408336389271847027084469743341341355151921200420163555047311743485200206241026331031140866399200705473867862562349008542068375787545437718914980430524071821301318421335615097650301147868090103962797725078729927140818528515352840045596736179764916386248297431959662372533564133205873522694426249823282889234577386390813402874971447722534401388391022251783420216110034426928263094066391510326329146995961872037559405926964937375622407261353530741367607776125033945810201139926156182013447592444842081852083012572982237124031101628984941451631604286871963923743902670132659711490481544818441738864808319332983373760025826828814741724651715820295300669541172317890626209152633574734225600720560851617973500457967289396481994236341433401299532536500692173206780997690695401628935797322045350493253406137882364172746194705692780936811497653907853798925361370904792585092716316565883560518227729937684273134448129728317354341824162265016113532112327609581213932334433704790453874753400772136200782767941970372281203048064026097732617527949778881118467829302058580689630961698387869943161801212206708317132709919470731749530317477153752537882038103956896343384791624984062575594342352815420664639207881818433623803108653854675847510287516333079678506267620802707107044655230340842852135827053082462390669948314619760321269488256777304273928837049690705128005264250872615722651889981523582249037378712110495093757686091851321911355981071888489441648191791857216831344172200305961270554601521780898910056988989239761964197589068678664017739224107366624306946696843152125332844136608313069338613159844564140437880917145241475349977514519946108438297064964822963620511232754940924902083767399680973324768300100975082454509836825757261673346039711614614521426341164594788411611826223840698018931789207149702253313490610200745749711781607335462779164066753760020556593942887238609208722285777399217998601233569333344061209518139396958931066643312038448775719947392322537616609056739798778873664060756854166128957737871180021035126167235688909837155767245377677992348622380854312007517254606893224956153358404921641101287957678996799831982126223786421476220154270054977324319525955334478707372781466065963488963153414387532583062998661732728974750712268432970692011941075444936052105550048158960378610302901783954934276322352483796228977498898786370181013292591161595061840753566784637869527451704512607822888328301421197373040770503714631928725217488470639266768105681363514008476252601311567354328220185187003706567766136148851794184785433555616860955425626057688696541686360159329342227499752602479351246728021768979368966584499684404667769013426984041005560363381383046589839283476168102404560383716195831856421858959112557358285548288403301457109574012522138720347110963123989166628185739239392100919406064497137763623979439842353073062787569247546276430143197542648522524426293138384219369712440463153119044579208431123595432749933807122090998103287965746053911672564753875106296224095562361242089018904440003891576678304952582381771961754631664004644489264129225330723362359769831627878451481176888543167040705181710040110793972182588589682652226439031362560147369456625224348585621933152576388104942884493557742324869554190304867256260089071682282757894121065986896501118737911551823085984522194559428987363043543577638761749443639242706653955102740700408050606362768334737047887588375910106754053991304918430070124244273743186366428404498237347025888003730532242584334492483178776774421434334874810215988385742527666201597440594206482713990345970798489928073245469152020210297372003821481354567511323920323404130130711697051563941358772814222208078894437592217170642645074039779014444694796447410777526265604597867129184460166904847681285730027902444465626301526940203925012548157447980801246726203798896053161253843736555495558058962447711476219270616180275108534553978555496485694852216846138653305483081954854513880514989516102230725211342727445665488462886112232710741580792350648265829571286129321629213661932290669819859995016098411786164276916120611183631646371576811700434723641599131782422791819085124335185095233376698493116684205150554298502848383145975464355837524343177300783341105037373900424885608951698170910330798690594582203299912624152290203988422014704580312904316959244302994200441125028294584842287102530457715982007963181183407577002478345667391963365010955845926178078102395731376205375174438733529413817846090130657223245841418868267567879175515912096769273259555564674606062840612489806316941393792664597318077966676453885439312273059902310090450691776981496579048501675367724306214598981366005394318104812920765411527665412570725364204703150860617414697397613711914937056827321677463513392562947960135162487397149277114180820742572228247724311599457503771830006260948234799300660230706603091865894136881879606666916164964049905797058344703432493422725742278603187480101243179505506416198023576576297108392234993249025216731270768522915474472406164903184411147255763614516342122063886668668359398468322694451507168981380108224142705440342711953770691459192065416911388457415870852805515564109501800266642295433372023580690435977061683470291716922814265645565067336206342249562082940210085783824880290736242262844483614149700301433778584330176855623548561451542359389971747497542635052792632768188535248483687381277093995310387435214835513842563568412114198613283750764937088002716578604252439233720595415587371557795936545433707340223867405357875188025351180983902193009456278338210131582989043948902463283305192484208858760093510185660985689715471574617574652650435363063783650689754218310219531909686893674865094671622637566659902718235075947917793734712553789174247883232475574514803527354051807256380296413172096743097037117510220754819269493287567108213065342871328218651705383700171172283235826545246757915997816061736594727198921732524685759982869357263402832508824921771530867498124831773263518016799848129451813118087716370237867587773437951025592749223229832775195316996054402698016260008901819460480829870086793799878578537806285007965961620297969690276565989114183459247902025442289702019430147065884252150577085363085965569134157874820562667416488780837229732158861670452454633933093902322417709290145796245536350517994361802854461772452633513109309117080035508750155270364041660394278495359836996102441282143629388542890757340905671110513279559078411348521589705065834535467606890628012097391189375543873144498415676423822079034086548418385091250725746972592975414436274052827347304169292658764804263403173566211015956772581485904672868814513336162659382105680829516083714347317800107537507020396044846504939627487844629121747429736532633949455363102541725043695924431882094506658888772090680849400808581758128818501343460521771070297752647180542480626447156694285469934672277748276895454261123411876547117006984514690382103249972778890420679991715994681788088167272576050272380139922348769737150830584484915826484643570264283813699834150314596985575198757107738921557813793145106618920235985124180149748017954529659202084715171354569572771406139393898201469333675089352108220418594589701465673075560037371755989108799148480071076584658438201769945612546433169442949009845960663341532799684307582572875450117284359051677701558643442806344796243054436802725328686707243276205634697385173721738204628445875872218871463261793528562146833145864917834899661211838605261643505534204325792023495705254187927440564483828299226041181318304600502997566063219972711781788655913038003298831348442175893744848347380903709016143758395037620477321588993566201001928089395163632397662485452117875184458294811723234665200171652401211918757661147489977401058252633482228460609417093210667421774010830094942350328682591218022387001161951069275828730231152758995063374431237663243363755429119136815541290265011677862223147994477402104041811818197971678654335391513152334106385343943486144537794083643062751285609196762195249799056083407045969372419480366675759342600334749321215666172779681310517439219105978470523284478673715517885043865484543105514495127289868492193698408923809739401438858068759185334600220344925756805894130407854890302680375218325234730215527601542396122601468439889909252597294688206716980027888915987169839894129458684664692717213445231103857973814527093664394969776556385005688044198277942183677742702946089582063852013725200485319053883632808668407374359239782075933019799235372931319990863511005312593318010557942224081772006784492600598927871224361498583746061384573559926338314868844168736038985557486247332095045273601135150049647504425790384548574067727332560557598106905818028054591433214660354033274091658970163573136145377949216701677316236006442112806833717497814254848040034677221713059759200812110818328668687221376087985587609186458118528235295802315391928384679026998843038725190578324176050827205528077498994156716284931331061595260012337472217167331274258846202354881113842154751933324094595721743134225172311234473745413370435414269288691165967177040038116318485206186235668305223339765677053975292110558401065425634479114501572601311398139689244700935164073764632997198844911429636748958482227686609485237659757282799319322584725117932736584630466898771804637574289362373632623786453797654889219356836187413336282174652631287793789118863435477569875047549165702709903324189527349489863876573776527450275108399487140210159487137673046957844237079992358987821668036071484894933691239730997402468291598068611922711976708324356062147366092816506400895042082060068322734968658305986665422570537399297054131570876904482432128622110222458903943385843207126431824230449642238781046870064821259864943404276204488396991241523763538264494092962212915691186769176650532530907949949083779111469557788346316833835075039560893252661391276131519818800849472728071473947853607353917716709476717055120094993317027809651594317531828785253456185098571861270575487285977656192071828335161928731799591180675898066900853468509577154160099482875623259335693735429108452511300977735649865536102749888731566414325863365827993154790783292342762413703048117525410801094715651776656086489369674136199912197222342825324709594578012696690308918069459865281820617769652874705181351884658665462033153849411489812839873335134506093472080450323245598401597715945392716365251106171878269135691167422414388212415741589621285597382131881208049534763656281493959272034108406874472432485378354450564894071931194270402895021866234692125117458567140206003033184986664703788877869964111757688860703513361659918337004971466770297374229120469155624199591040314936825595761631693948715995172326874752409982797499917957396536315131054125788174904697026549129257575775260348062332629834084543967407538610618654632146460461616553697339820500311862941933025814702792183055072284145780816180176442926295685783900003055292253390770065192631398662260236848405380975170721292669871931820105836576579016774968208902979589377817769656154028340268235122744623198763231559822995761650742038961383095403146046417072302331951323276171854810657182291394662274855703186346245359077355134303083806504986090062978753719032332119223270287298085549076096990616561683715754831749720313182100561785089807863389334962081389351580078010298420180193791865962678220271749706396377549495277174043244733956586478144319426348478956898063987875715228873472266353659416398128465584936234350199018336424288423642040479520781418192859271916647300847040497091659576887707537837522300523989888531101488055771484407611604108161430963926625896191200284780900192914479212568846533704285791397966486891692737347315918007485110794477721288164704227961968900568650409266634931326891650573701443533664222618778256549734105480867613649281022380324766637340508733077374977548234085743287186800795696047240539958933675620235449461208523899129610161979308788077575637863887696913667177343047509436239377895048844426888843307555991786047740547629945760625295890290897353311281221869302655816844706624418626469142259278831535222223857915333785718130672071410989208990132947693696424510378773255441377146462314757895905000893488966112388700668668571214080938677033701698685753723546969656537322976208124385713989212466045829658624197006706189647496906113466924766098208872841400397252915425449404857656954940517954136003610264782119058857081087822135664224980319524159623483278461842110585731631657833801527638438242902806887680068622120119080974368952893406991023984139952782718327172647642181032784225144296034401119358752271463932553666617892577914255427060097245885520940107859341974011369786769522242462943155649228081985566711838922688523925374148315124617538415516668368672791083585571094539650540155319307148798671885050418057726353683713432829508702025548909246694583715201225377437631404402903461996289855923415466919868326985701320092368347402868452013543372258360519829074325353524789111626437154084812146713897636639482921573674117734202597322526303648740855586738348045427132791486341864152719013491419039155327042617246529517987736025766976000431070439042081127614633416316819459525717659863373126147305549028346958517478476875316276316801236791956887045086739858763863438047771334386378467175896017628020033306914646697133875549757532972995212934726439671511602132400550279569717448097184465201921054666337620754336659578565599831467961667876284551832201892204331277878162972381108764419757690172803196389600839869969470456824246480702352815522355165680929862360405200238783556160049982404097125388613403099786400338649978178529456852430369730924173703696396621792618934744468113327594442304857500034194550651942112414169834563597803111109219017333237820503003651050241663531455664713363119624410503317085392702190678612741267172674442792448555798679437138060599004337484757404309779592124848282677891820454605229638635895705398355553769511668088206420239145056044100337592840441317596619331475287149569051176708755916455648351714874645381049143192298348427307753095592092696488628131112185237465635144205962676369817634129327184953458414043378031291163537176581143724116843746100980774433200450694009558096508539077809980481652076830424830030850513338485754089313759206934871259233580129426960176067109820869318355285612674644786408203103388157297568806099658995833022153298223258093619829143483608483768763461219726583458910244605853181392169049558533261831372196112285765044168149529623682108315803834483575703011496389545049263415812749610468064887513907385913912939770057775784255509112299860321192971178602750705523308610959801058011374034349179272848471231007813055340524677467510681817600801049366462039584789107461933256112913096075333138468377743175214035717746930636792601906874811966275375217126765452412385197516555362027555262287017580416537900142304780074166474855227975280695514259627268778413238576359836994276495988871643365506656294674656222676029591019615879765256435036723787672519612409863037126809609840463770959917136479197781286148786704132662926728254609041962520458377383466198690061131861993222906065866198206140609877935748145074110637998261253428182296981619678707616552283468351780996154908489385009197354778026917623127482028098193559431031116482279061186003236153442297009393576235242854904854519756871103801680526465985354910703415013143969690714278936151741182879915284528046625983803866904112045170975541377718144442819657623939122313330020120321767435721746504431345148134094967029631150007834307824905915789321259961919139851630408963466547577328238678396489805898444801236094587421049844597025325211811323012443989413051589939024422894003670676318024379682216179503719896603474673257597819143163743824316663301502830931379940205862285026985162353617380583869932950230494824905179261415140344623329634776310356544265665223334217070717916383264690585483722720027699147527396298514372020834535753788510414109060262581795034430146947102107586202841344595828903642623456179115644873722002681370766302741671859323461567268049857012203232983273743595129916347751744481676865849677412966354558438414231483371460602692358873323110171466163860836434959293721210788901041067028609544764378077944558669900546909240145573374500360609846211122450889270392851643414072979562097834896213560812595636835058275857738337673997626877118881976401707168059505714486619949191268654343292861981914647982533770410525666601427946752283507251512294292671836785497238238147144001200284301423263322577379199635947249707388874170135053860271560361370919234670296516208489869814170721412021068230952097503793512662516278016344997475865805223085141994819945502233250699677352194276128431721931943742524394233374458108500437433874794566521745536783507459024177459007126434462994583444196209406056549860679062625770764078054088755830279440095622097152748062390065132512857198797364985563086977526824542793160000207971902521187086435930385355906157647053936883962668167585186780889044485326721926163922553538485445286606359765452573922805880350060897729184645330262375164274321052971447697639803596970406072382734225797452394661945370779274178480105714193983554391580140664889498011440101959440088630938626765238548711031323184978568955907234368720794209386018105120294504343487654795901368048444209447910604557351413643324888541145259287675684676455760673535977629442480583985420996742314860957545312919111600462504167385350791928821143887306955939136298003630717184761266690460828140548205604241192315940814639510277736383833531517718182474401605248920206929044952600751097615128392948849200352784177417507409334827174224069540942083850568507926849633678182790632253548751360131595709276096513195357640147565509559688074047598717588452360356104195151041966105665733732227737070672718211986680896874159116746455164536980451357035154279265817978065988120825290643980754847757992097981203406496855990609270666077983081552987234407736989106498039909151166210434859798752575486019790199786155605927068168432802037759302374268230799451853054879787732769094523138391794797116916757233865424062061177384935850787764206442217819463730603123581856374170908074066769514528542773129577369625653923205381233330226067288511810525721703982288074165587452776518152607092967602846007109870399478671180940369123543278298213176576282021835350742498375947625209727213679332802637792863983323330099094919427320264114652794427405823763948662076421456668515596814636531838080317317748917381644546389626424268320473360875368973120869941691356051996158855042084214193985192496616051605531480173900816737245778118139960623650153326422830549025467436502949900266944498886695042172856527474739727476860234743233115505643353964593637001323918197542917992716644942226371961089018270597554446582237116056391794898401736981306422006394872484181250758475589675065606766888553294799078722449175188176977210114832538416854885545189054228673974790573852015720066087244267225066713533624141911169538828260840451403906829418435562995223966324410449594790972330281306614554446902644259621845324858483137700859671885479828060913324594234061981972969887714134950393056739420678972084933121761497327699122934110229587749798866671463390299572940222600565249111472571183352426695938872531293763281446439479934890895064982554909134833672828359166799968442630611588609131907594192030500529346221740397255393393442938494106986304475049457107687521936437278584823090363994505806619971986163341555866274364254874575515911981678366404005057080172795170466812651499974489562166112926439394976207323213265974854618506619340868027578550344860088762684652416391228535026640267852206016115136657547517392851254371437658135964480798374740391290241616112581777747432251089508342111337566829385705598182016448548267245595316781479833537491778037352394062326252937169464202086518988541792536924369964632981754432506013176129152804149403394487221569971417438336848035166413473176723538341645401421923231237322236353614013793180772060404592883326062175937651597978193136921327369482030495459408225205464993210754924544257876342621184621143037329260358842783490506351161969151232116444385882108531743177528580057868899567103886900050142575505796168945749725452744155409171618206091274882979359231770427306846585429874072047704120073409910702828421054803646997869297060743184519409426202139859595071395890005802496228524522157465181210231852144968079736813131950334846625877705890416944055102174646473603476379716533180902473708330875877247097311136923873436825506366292935632653789384252830233239420126228506728649982712399467365129627220067887833334577811879483162832448257476773164911606291535052765186167732759754445908121259948359457449227964555884096330056825158319892160505069563167332390952878887922922986807770131946837206030105486030304046803462924266351031139226830195381366945140439435904685278562019939945123191946897649134930905720562375172177469832189204692188289957317885763673351414937987994676147966563590453496685335618038035982560180777693047450304116699164434517790417698110503507029122397014107512765558963870821999894888782867446247377419254407653835908760538204028714019033851814439890789743682442937383785524520964870952706713278755492189061902898645748379248021178175953453201689872105583106944315625245655947783242826448071436740203560196598138705990804065923817408559769967365717070384541856006100594936800343231084058606486702318177742410562830390510389768675494186599058382906121403180632927618450503579405263421576137699771323671506419037676220933050272084500144935778350108717086313455997055499774519633614364247303052176808453554363326980457898037172582384008822658750429238035514854929043191284662803487493740296601431352619859436492558127423355687601817810728608613496085236913681147043950168510078780096422786318548401393803751296572020580297401848088747765028000111177843684774355174744734164236304970678249189549571960986782325447933248795263992833848484893099362149255772254510324532240775796115166926638235491033494140473111042299412272105947216722305872092143407278122036825498301539567841469041870792807618168218304126865014875295397747235303365661840233886050090224766985057875899599532380846859615433264310115192668701001274377273431101123768597044894638638134134010587659516035499237356733100765353321811335388966966968072625878933697420581959360064075212215396990666609527293062091302624811447556627046660215470871877637603621707238673187030204478117623148879391923655336606627773706055749258695282922550629329658349213951827819962671835434830536383825121926900794834978434944267622368723120151520664653098770726043692310222857388945022517039974823526574185616109533768025115062895096882422865969987584935669280686191292517187584507988817005755675726617096216560627758239406082335336432920853468950787337381321476096169120880523848847075914935904386955102049925754539722386769343450988713322485525732430889785790508430864833085835549286968711045349704468239735541109505756526059547319364661210143747679177471514165739203862930824347854035449016844087935716728832109428009261230353355339806051971357392740890336976755398184785503517213856205782564053500298324053748023583050935524204417356452433580341027443199930934665208022942007787473531388714925144954897839367729399302027003835934809238793583412278717962188456694851234449983150279204757779411293317821494747644331150447895212414880503141319460095096103490842293580948849964202211355255000924277755898535195129774122350786509895595245202204209160312391067733596183078462347202168384528791609787664593197698121134837396685617529075732519672803225901042570653759442585076209929853826289647521083263793537534661727466933739070896078521398008478570522954625388677565570036718958279096002806097181588335223504808618556389441313562413758800244447043068145630878126023593622255317226979012456402281499801899787501149779016266765374683614135204976534964067691683939279405749435847096147883484242850074244500249216626326011190620620053737728605644024126978502302006672325892108108380326763800488442523440276307912015020597102955456764848807368540865393566523692678619357729917043925622344264244586605382499661005956197757517233297798812892659601425522156811701989616105454858461251647096797649496430907178802362864090566009747148846932465941124925692056823293564831966490152308012939406737133991675737300054817498388511977353607069748233512989980118745536556832392961017758927770455894850091284578043793293070118747719125501747135497018525753796114857431536401512394428669120056022158633063838838556364666358507166583226570093520584398737272313549002559239892340397115506194993059104365721958072966545668082098801932412964604464398455830877732790975114897369158332463970868431187357136134463220490100247478348846006297269148375666912072094834400297303015282488501406814906491245658685291840807870254434257389853177976309806183608727355934147692343741148548814464580160276023144719020505018772161281879195305489577017238259994433159894643890221937188432449663537580060220355533491665390498375069676636960032425713381151770810989776605448558395110631935494689853551708984337111598736016101581345613754276079418494465647117519818060907139498451957800928156609472370228403059946983442191565902863706528154036227937528080909480144142101390670860945961442134849945958546863733115866047939965784148114120066468413378799083662112900951080829599864263213925820585796521343824266087726014800572280442777083861462485671849844347755898823150457277602705178048692071315104490582182217800777029089417293694109912454149425406411143087440225734169256026432275058285116094190728778577658833031785071911450676691986650536467935929945006326075385500176469841595806148241465222572145252320229752748414165874211387315045191073216258678801492150814434140561960940053061641438106191641403889487157793521549185054561689213604854923776358649391352487730390246136361736853493683705097590408847855951226951889155648118503594289398187850776971552377606442379076754624424554380334760068403188226733791270074617904694710267913137744753477760835645785910672065378158754245178850372592882883879404537053047739441820885166324386667314240524907212999337645319388616028163775307901122778660453563406045486984114332906522279117580732078666809355609939110592514935187094539229804003832924557277544678298325621321143667345755696016506237547563465333514992529711804051995383474740873746392982682974621411760715017607710874249727235602656783176168045540401545870876880336952529377923349206550642338341696126190263022276659035137631736133513407498732888001815392806248156954957105328973922710123238540625952208567393884481761256109362391831997649308059584426373617884662559345933350789880913054825789143278095581114007554854123270229599528759324034792264115540532668102818591779080615924331626108560831204628872311603958292791897214680494442470613382835477320209063077094873501060744237773743145201317041172190294285623011981425719241030703267165709658710986381117393326050791086527305265937226769012599849319094430738540260151211579876548039818840008057046265822035826132643863761533611424686537057735228574527969226163129115831112000707331004597158991990575190308826949433788490128917858518103824539757414366734491387252506559488217943134022056457136150728950626080595708175323197679345986384014273882730336625665984471662778108973412908221000260568269818842690062035174234713014991987934734224709457217768272911003275582062264677998170444230971110294852105435472141475497215100515198413682742647397403555331459269048689436646792684169051209061518082013482401912643558172071186085638516699529932600676048829719442894556341190179526742671107491733957933850578151587133650468127737805470193853775257105797420836806304469289146842082832094270943773526960816848077779754538821089105923227150267472999328398529046121125547946134261929516907974823534655827352695317211267477736604144934775361455014134286120152219353145958566627431646399326965877620865820140121543290427926300412056224931716744294983151760291816879654491279505799872143193949172637816338417189278551558437289347880968588932029823601672643729578759628508892897721320667721828046696192516343430258737349866121329302238246050436879332304230117469810567331968845698550731754947280931213719576938850538798886079353309936477191253347494049335213047765711047137055677022613864096668833433000992422935144204069512627841821204702676307875953374317904057852772384106888097392445928755415999575736863298712834502519434347403738569151515960371744441789435117633113051276217143361336046921143397449464850026135526598818340793185821215901183258359873267377482778783151484023241558153183985911555277578829656655487062180290280201396786185549056969558134199649417353972773617292710056418164926865635158875329314277744172649022006526393681924009832338111287152413573392599743595199592952972489322545003485282248637252700422375005701232769791995638173695174474775762046411302066256446342712819909520202557615573108943900791757728587198206915931747112825429928745245640285814850600380726242523369790017378353544622496339105966948577356671365806578194916815803737640823439288065927682968391424002464793817064853106846003739424585080589210649072180772480357475732245490899446652498842239533772619103078254556921771487132398887545918477189724776661060803178413904802325399730133853549607437116942039108852621922986364036353803915959434077262163540711163925060114827012260518403757085226720529092907523355053888263353284516647212551416176742286653572036610953029071384341318168668289571425721296901380309066036921999019410608987837095299548543883575938845103528317519753951633823404196143099785664097323175089773870565341525893127375635126921891188705162246775364627289236167403090321924415475189860667276580032620592212617129425932497117033065048308458078948033436287523337787796726106625990663330142320237390142194811273687832288346514513957182090595072557123306694435138802922424750161140588406638449958451907750334269869165483883088459217911177156667013141694285961591305351047740803178862263266555421872162321185871139225852243186640675301178938143370784035862908359945512344764072511405643336385696512639949210129327149577985465979587960803405636867199226142631667739232841152721216198926592964047802733635453851108343935773079679159248363466135156954410864190115820542495779547553021530457990603109935419830815159593764604933448961451353640455977655199350728783922325502077838097925898587040676424450307678083359380278512365527515816329559247698024919164375232757968039364606614647812478735843639679555363970793721139637303835529645616146754026054267753240921846016214375592325931875144549448171095581553839704172641294040163767514606515509448775193396587357108330688536866599439208577591521083596631246513330414351424559631894234301722826724998736810919658869810610232580774623048536363594047659339076577350945026444980181196254030623933048604891672059319500288416459021340350140563806152733597932119051156783443302647583717412430475976438182991507960136372910359854695218304911667006571766833233733952071844680511714471310345319408841727148549813405827341813256205036572599837492919486557671216392774006233875481305490146261114549886998734647247510209356631115217138029403667526086877880114186441623086027946074186396658264534606568039016159172779019226355102549635928095420512215701033337874258884512746564946263669913163783021940423286204738673874416184454154140023739693168473192673245764635519448657667255532209248736521915136575330518883465867243354178700853010666346839197821172559552642587493276929295262598109309369212312997429638936912485194856366126339661676134060399283104928009836556570596417325340030208567969737689313988176696288789895434507201601520188744987479243262837102360456998659669832058573891877425180511080693071399564453335231291225141085165541690884605587260291742887808508859400213402865897062548983779306478066095564385147238645570999529001195185145060539609278256292874339313854956406448170344871224283974726821344916071829679564448393426549507536800192424144486670009165096394071164121880983641874294764050413421266598959349954869497788444947467822918329845443177863182574444830640275304165361385500325756093261759421035048429348667538487239903369467198159882628855612210356868534085334075831507409854615519380606297843970853876736257659935057184351696102242012893174592464794423312524968895043576808826586555899966358450003729612185472229994885452113967397974670421846605249476794968773623737962783359654569564825819528809280517453476076560716753924661253714208829085547498333243932102753624000829863657719624826150185008921369580160787792398041494296590006242213185134504501339536250486880936735495735634649384177973277123434800858477467421819011583403527431816952767034404143750617063003945865665707682030393323078387957220243262675575916752782366655409152492234303792930398427256161864414016346546060657238936503657181529945498321362756708963461639053066942795044806109261051973678056762552565010902513688106294434825788041491692545795393862292998358543617144123806766950631935835383564108567065873688284302014226597930346930319446299824712296170008362134842850238773181480505256206084392130047497246196650546514868772674197154176614727824050045252706226966166955818001131891108069671243469451190150937049083627191410797760057297099589956553822157344419336011037707941535453534871018226380751131508779143029087688649713922503865772556121954721401362189062979264769099792469862573867406492058884347041670087682726665716179645699416512090553843157047273303093697361439490752724322666274126979167165540514057005349637932562943679116747755784693307019933832426318565875038532692337525050749031853866677625298575982015372464674306066824150421727663667948240428854557590190281706466722842607233998575251171527996472067641967013638484533458040280747393799493351299795124877314662460403040954351945517845873112468707514520935108146122657338504912338756012249357972481286607854564752012284454628257839940067942188305005809877034992908058363227878334480454880797430054439679887838812595766399805082582770278995688255963662377990158231845027284656821103837414913022289668563915962199710553317400391580772952100365679827426895031893491740599536040305403038000760487034419526730279277100200871692609074027237766084347833364916533305385318031399112504066576487059752073467387196052967797393468636982764034388768197511158875066534243785299222253143128929904520039260679052887565888551364818070193845470646974163803404671204608065431339270339170551596429668486058210399467327362502727735287337613068461398422421696145325417752772256087100809315934146527514942523812930745111140973664161035280931091960922269549948601737093521284124324286543104382534183676491136006083733195113377874828505692447627534211526815560111267790425362918400537517082209355076345207768339870501735615372109319344482418362539729232896926644967174219698033218919474757044950142450782975676304886369982409412961732753949253469728675027541917599622111340224957477903750343258558195188124839952723501739630417319568354012661811170124738008907074402007500275655635627709801276899703693332250150015599729105588942422018480553205924599709611298818913419077497866498922367999300464772328561264069395648228345524690181865578209799843317117487159201242792408741077092496451505731093481499762357068413576281314320848624082884784225690648528148564807020125728211289674975713655987455594939444724692361130917230591147651783718400293266129852968972249334904743597899971191880664223433241004365976269741038044744591537122323341489953616069343456295553801753067341895453575678955976418394032257801517559359211874740595726878342557222522335412754767733701820719155750245049243423508756411843737739887124365842971660696622188530892130824443584794310948899401238142805326224182965160425737878026287691914122519894292833386718776529915314415658667232777055274113792026503917017887425993276933254555940367186150505491164590985031010511242245676110925910427474349881643237273414853730916862864172568192778546506944978973676357923254953494979976399199536936721385497256499044976994978896409587559046134533723345848802643567069893547228352507693692785232095032106958555811236513898962971039170051739964030239416905762857812831361102776245586006268081570782227480705845487509875927375777370530641921414551438189866071555080864962167720235365738126169989153527670331441440650224951998328944946666446703082441080407751468588652458746743817686080385764147547396426719131330151722018065987181554533075489321428795284181773697608772243434355636389536244099518906250701544983619525950211376614542073330329708746575724519461511850388762783406188854926787379629707254838826362391596463282740782779641541880408427116911711892642972753109491223599374999451053115403686945406544097919511458497316965333549501795089489575502432371212572780692850293667282024396077145545475320777203010428888920314461041297785608724648557920867560059097645072219865410316846216119022628900708808924070814449236010370513755400267398769238091495247687724008234525731410289875449227318740230740799301996261704844333705682552509949870035040118458428388746568587888620742938069533554672646658688072747045344719780166875618299406664496139616757026757568274282668603505210429267411903481892909280693037186479674195786673507545233434435083081262845884981372635180156802856474950484622340009787405808375593666959060586068853708740016882847759106585942980182986987616184129461019253085924322910113764536115048395978713450951264855438825600616739937490345591714117742656488342182309622129243727322822539787579029938667620984570662359486551329681605133837392621365293612969656899253625927145938406537146083896521422030669041419976924389945442985701193257847854775255680224925507382352378024467026451016543545170348508106622456642669715949247513486816821767455345985400451620620906382124506227500802582785319149038069254217296519019301843295746505242543501639463953231151382573075307384371010592660823609734797728958124211435075175236212921687091678129934083996967822253961267479494721924171640430785701546297661951238331589436617909991085820704422443431473863243458073865513207645900152642050845384946564708778107878353908710990879394169520817040457529589618471588769039956061435619603765194324190511800849788476470169573302497498470620314081777829047508381118178377898789833756079488327245558032344782570308170242288287194496051893626468520057524357653359634096550839493674233062272427653354874913287607076601985543665921338799507394145606451321305226604007235768556317252717600584253991195195023511652671494723367894157496083843208533009014531108083675825382307237467750977028556412659685479369535181094939060886634451611075853898052945444028828244502935077925024267618501976673544837557587455188227756321428695354042352585711725062607133267746722409461292932458314046739592046353817819961584630260971124589417284986154926688848514440084627709691672121629787914652795660034943886744469760749020114990789895544592772616667614417021385236848098800100642430151301073771546877548640974731290950987620694516617711075565062692792043214380409540997469220900555099881177694731096463576487356139245071756887419062872331788064033777379693043765417157086274363899247887485299727540462798055130230004637042346508631674161762385818433543612110534935906811587509626321546446863257014272365362313205372092036520044559062435047231979421516602318057245590317748172381236544864741231664158986907108927553553260788014413112674265809218986234878573557682135268631284563707224863771691872575556738667681913987699850267015779171944970306012192465452208007535645947049403611817836765990189318393500409291303828296915662211160506118567591470154910999425407532634784772199986584660717321612665571342924899256988213166682252113848154248844085999843612763634794673116638254470366005497377915125027122684121734912663844644971049060748275908202830847437084414593922059165056792430183049083838320224153516062305348048181936854264620397153421227969296028919320439436786776453920709004995066882235175967863910398958529398847363857137544319086176326161762932385766966926072747757789439332030457076492534753498780041358413790184673573866385581477083711711540891823258838447962038158532566805268115369332910410886797915750692282639965904487335011807753769279923353314959840237558155251428804850261956744016276358129929168594381930882128650167034281495635891808914390378628853066918261189514283659184012430012525955854848712907868222350520553439661704796201719891493768465956942418492774827949010853543247942551851560012810233869941642952463001202292532814702238293761911810450209989336783387036715193715101369485512100436297074027356692094537110000817824563748530380792383317186062953696574187507090643352586562139511929940896795903062918422092761400755016734799902246138722327889599644853834850798317039166796714791994682233752190504528829506659090191420042962681514568201440998032528655887973486936515195093372860914536002440229246873051664295523497101994057886999147063068505527690941545191816828007239663338100404882640909524523204309033515902679891078341206490041112995707877090979559437740484550602746622913735663211272847897766227091222032159478899783554311402028731876126932518838731457065221955344008601224143987288448316861036806629561828906132475597648547884029485104680520849353605270552353828222927063039989641804216833506236009415239782709904489017836506714675772686909421294626392463562210937006240277565239108610401507057272782244627217235588331705187490086348682022885086262790696742226624129439035459003043294332254342285706257955420428884120128160359068033598430800597767588419797151788046012975034779594565613932656536947269469890645718421862288045827645853569254651709207920142591055798739938048259276816111319753955541486176231460887916029291189460598655597874473830557381913664760981714211460084502348258201459500478782110328464449597739703440306016733836788080233808901565168849858990201519181937046733572125845586591397258035651251945231142814773935614049620922576852302010458685337583311026920964625988893285267832527155306198347261400597823767729363073602889197451442735397804902021349883772325184961990370393714048137013105997379908053710171841316998385176826879007458887995903954464012484475508123727003520988493936669081497020699090148005745934928436250888796366101562611046411309045886667339395860935369876517132906495145394353245631841877607964090036125604134605295946682682742928380571148332867747550013183431399643479611340725027341880808477650369001846212473452240795997890668770543674329159328519797422430088311070839900226521505476073474934099138089203288527932745359131176276474105765605952234878181241710733275957263353757341804535962649614176284196116788002837835686852240454848660286045581598591367780430754668189206961536516605767924003663895052736588478641469977049211275490587200167288922937319195863563235339462960169453721738004792535938191332607551635379308946657210212251306773810484436659214194401406385707123542017656303917154972643313180319814320073069352025133021106865169732746198441463530596766218505337158644151836930065420939670992158435857419120901543349544499400988325256253627100670709887820373537403060177867153243798312129949423735988850759190775535155887473051730534231462838823523176196114114518085295660572770398669226152250509427641137819419654926126610890559261376303563245172267667441453693737407952145009970813544365434702210270575567185803985910571377082717612759024479878510052754580176054472188416168172189738097169445409903049230098308941046137610750519572748315564541828513758744647039578579720384305009450731451604159205360155829109280687588603728192631755122313359048270423786816058476890966196252511553426059176941285997127030767980723214448706409295612493246804039833522942214229615064747053306936594506137458371681663992042591343354821543455417610989481168929422760181083508105107246519656620373939732803823316497388795494539798734491649743742219674635987375788839658742819044879396090974489827281184281166479471920327915752343991521541868307299784520376544252920816797313966272961314923430046015980674846131571276669279016515824081518943161753496632844976770979581716851101873003447515114228642110439791088769027037364941986124260536240811449009597385779939711332237738541112931033050042771788138759112439617568617425860625509867946265267107197567473455458418731826368211150724319770927461000220981573453217172056050762052373781179047233287991350509007812203252521348585283850270192330151675085911352936320413510166777965468730072280643171225838391944273356548933328187192268774872427050662475399119362729443454439090386553387333070852145505732287945627089779780862479985514261561802752630200964889602238279113514145128677985053319202465212047717892611128365613562544121936959504960143037781762688765359676052681990909341007981723753260640964901872134614614181992379789857384847196383894209277413922356590074296069887585343770449689226606719002909472506308030579796870680767867477047791649435478181569895189360185484626256344109749607743330350330423986051533034819698820707972464367965995172536319363011200258011674400575021078800735644570374690854773944920369928584388618529943024857212779857570320054846707793483927287988074442768128484667540990200652198080294170371090913787643287727989270086669446645804911878725596278968986283809271233999911462305186087970180984610461513140734689290674619874214902889502873616416544699741899714543642942094193584884780228617335784830896266656718486835883110659679908365022016073163609204130378300063510235287396639669354259209080149325016632271816630657494558794389144875732347088426390198253454837992734681986526622539953139624857833665549821366945588749035949587464750043839250151905225555524053563426770168604739751717863049646453904736809542134799648492915672885854625221143110680685422163180513729202627772678697128554220515611241247605453017181750646198980610236801675334699405653093769173889821342507877422184158494614927073748486036919641449564397479988364591331088731800414515695407909756963366291963746161564488551622199128445891415221489755343755886951254474165613749002545535718176325194766882963282006656217273253035216767155709579411773815539419397674379664037597598903403754275500145279927939541926887435153644427543341023764538489893407658754965683381724985355608004552647467805771963872411523329592401411982727701382531634080304117541553268932661855111397465781587544053510505401373404779367070156161919518012788752580607261192585404877694928021647159267518384827112143170070691971948233135711012539162441681841943832047201728125581481553241718664731950120336668340070849770349103660176022520472747336369375630040124350255388635506456740281981811151942632254104012925451497820508973379627568034050224268226770661203280975329556539169961431015682043257296605753199839142547007504979800548303104441921447569796221305289155664452933541737980699202026118094545418982177162738153058945215306618547840252586890510090496085066375572643144643938568518378741532917636345018745964806775379268206536849567435385593731244912714874181842410655516479804685731906674941411438815596378803844074793889320751816093190954690937303327164899271474324026759545659284002937947936830607418197583953095942501662840106756950130779748682982502084038361145429087468895803966065753878442619790889092961909545645030158178515547517409737619841161370888962534588465041527082354177409786510595619086241622698334269036660821476471886390756955229683015802500154711782389099590879753356020768170046876185719972719170727670891453737300019953982862741791926491624369092801874412538000274030689009200828403161948028886586663556532562827696702328766908570223060642691003721154112118260886110419580582143905012548176910778456565612641252943629964356269949120246674521845519260786225037289776772100523602555122235182258315728697414474373111609080117257088848985125961311056914893831665952267845108662445661902483458994569303909922937903367867614080921099437525101730386521405916323512990681625296168904975144050765714697286100852172770187796358370636976866034266428824041842798793065929236916334354490277811657516219019907803104263732724125687867462352026958088640386320623607720604061678249874691576299247866094745066363426956440329920307878458048689280392548155061678453110858349610669623056417303346354175450348138476758492381653800654946237572143354813783095874364818811851686486000088976703091280659552434118121915825653588378554623523601427463082624604900411448280901002804451231768620836875871629303105520919682350844031266751317985516117739166873874594104517609237755672921532947281048351869462866277503812420984094635913845554325316114804047164685537522101884848254178016979143081504599818592027488011470284531539043230167711080198046203927337016034691251769839048209434234675396780151355413773697448680641253788756700189589728932460397236248076646862776331531678591268062484609978055886340481905000295633804313871664166173823896668753833095397354193927839999876719150359730178487954602647544920558889134088998541031775435940367063168798222206450535978301286262672264783621964540705304660034296052106699516602963603671395499882216084473508476202414227613274556660469176986217332926207846380057887486572837962021556185912077416581557132779341364602649739541544991810795078653110415540140753826574288831280889209228659944472117026971516157664828690121724629770074295317340802882068679098899915317119674983969849969388651601339791465395631841635206135170014024111669598390616191020311876758415065530130028119138061711978545957289562424595565095087875214187452769391262657697726905298124847335989761463022743028149656316515526478999602553914820233919905485037802519142136341829038252875979216279579698910513989642161258309404637486631878863940499129026449150708260405206188026133857396185118505746392318350354824423318548620826063246391740546369184194530244939205594091231374494687395935937592968076739972778666022085544700193181210933477244374651262142656160187903432568404187957531398722733782863501801293681647164250220648678109720437096093806264734577009022142153750658782103839302833610922065153271532516320052526260475306219398332960528556071164540044588877048324819430427179004968937835396185898749617492174823006865022849126522237053772082324575682307666063241287567190445705565587027329713891919609640903431971845319748626205056507536686358999967314084647770508976129331976673056987112604245110068787281680775300271560608173072338992789141129120800005496544603857999647617702694466218238051408571043646999065501626130971404452785473854930429371040088253949042818573992812630779348969621688125486210611150634444994734880486462335137050669837038586701072484597663480203255541094765688375060979412893035167319659168569905277213136073424908133939289396981601165169215957344812510055836166242199098169443966421706092953672360106053449667323669896112951946968710209028498879027587741192772442436794623168872401393202564873243737293454412900913482105375730381678119012956857241072502143729147962456919973747719357834404240652624534820802087805437637190948567223695104467671809272451523422479616932895683300234212363955615633975952554218559616346111677051051378457623203698810505441161095596538718869190717022006297942046048859153206440962102034964932969332579840649046449264173178898656565927378353734032052326615079071621456916631950883175856001025478876160288024405726361455227190556055261171996467181947877834539944731868434275896959430775028036459416507280574940453563493159341971521021652262417294294166030452512632959899784870938853913281452230756631112094348970481583488915579717609749967713449338047462037898468134729281357802467635050558134214129182978220568592809003290788489377137662233466466052164894723687513625601669647250361597379904096602269266411791375973581328130758314675727013517379881542249796075589924029523214635396442657413617266707888300076435686333461558022408388781594199585428114628788775269752111028708956103561106344604512982144144044618256804453373197519978609921887532181522141011661704921967845321085804547530647256066890795998246548229262488934029434145668640745189993192037855754170105251293141774154019520105131878269115248279001891133418561426658406359948726222241136834455465725401392059427949253147559411774003872053557253200767712992249470999199079220282237873298261244304292672117233502698715310955325073644644359947445334521634444248560759119620571112837613620196356690689762998335393678146287862854976581514865422690132356451130407776777071567908600668104351245733525036195392800287219390345076436863503997627101608403326777455224013612485438558338447912996635295454895446441830539886221620432745560665655990911425191832125098157523571381468904444171052736078402769402417407557787492046237905873901352552627934327427103921228816164476700044274727197077074708535163709405677476920166129613297851540860692727652395184919819414302670689783449743352763997913458704203799003198897218517400448119025678768539870845635211918618176241767194777934964589898129147013495589673800849597653790342301108686101851109871281810409346146471205711103040516988485535421075262375109577779761166739564274885810699796442189222231919480698390866206421663503363389370622832114053812242897414421688692496671725508256846063186129748029155430511425258045095451953152188319720931716511577702650501968633062114875647213046380133211062948432874047145677922478108919444320161541995851167876045709045895215183124306799252628009577927644841886575972466022412609818202857156862313008594020750083187119143315040332092822804436346422705405890323831606540705071144281425493685771850851111252106321561308239882288863256798007782359672257161571958987222424081675992275184969703097078128894364705225827141826763585688610867543368600053390512512251617093835186633726498242940652091067119847214578346304577468437117925058162474189258759816654183656643050519362378030942684282995571648391035301480068750326351051424604963235771076830848223111931675656271418783924589311332094544574167322271540802645818918008492481753910769813623424007184384657198317126185205824708600304330375295953861955360507523173762620453730842218998555600779021000515780537206282873225865681604897161812719723071437996995805149564849344664155634840138382877717509326099761860707882719224848157226756402742212651622290034643777237550951117762637148767673541049161139142313220869497771097728483244406430937214106815652629070214774437064467490939846453516146220220962724743979791592973603360017701806331419463621840978465516573488712438528947563430120200211894935461545527261445875908308628844873441559588389562923320358907257697857962006790458844844786608766332852029327793469035222505183833895538798763044041752000729553526756674632315054114560637188392775518345251599994174630766011615113523745794708607084503177710292850112163108149861758881935205356104003021078494842924446819259385843161320921253027407855439178454565981872018971956487844750278511521234952836213757633799057736198797562907331647413254466081935509428991930649514617255541251089493114081868142861263397575808381756994568003854423520177832820294525190744097090830870900931891902704597541804634437642004611678607658804719583584806257895852581474900187317292574556376077715543611151357103397004632373028697123484869024383593796011017855202599441800245147621429749049265218875684963202150950569707207102642095082595740189398641658278063294386666349688817076930269086381233975687408679726388463118567977937763779507109255131155083869821013039034687318281407321452908785051856634517834462594500321927128355757252701116968101099618394772848062124363919091879625574461998060197844512492641296427076780681624079502944772838786231841895475162052988187682461035712607876123301980445254929660359405594870482520251471786135259723839973629973719809640611655306981051320675329012818636576343064662360158061164344803972801932905194072942753799687384855237924538592914484958239774339627913299155412535523604820263363697616572118824011557103409372730660283084104540955999024780415556807917349188494846202324871904383953183255662629893857111525293532140919516053549767058187640804765034341086473117420580065029011665545435717138713781695120848001982394255589947276007106534376595553610001638479564725122866785045973660071573658045235624675777855268016814029126146787602994273584425089550547899289737204819885311849051646807631609648115045948193820443033689567311332658436632344051830135319174558985331957861492543263938175369958717486416387210744279284557851502149851415715717681922815167210573532380060957027966021904874543196694415955983525172180928970729867252874540705611360628402751707559549962625764246756011415406766380784470010419606246121017220294966623148803601569570573511353539263355239507815381869271138639275325951666663547490309734578913753888335633640510683201816264354796009699872728585018446451276724011265964030712474118314283007420124561619551164761436329051718369055075760798846279993860735678197837069782310311854868125198633281805991144248327865711104181304838980452672878709841718859387488254936334113321312827026030794555809196544356329856484511134992979451748262274530626265735376125728756874411400818013037088579970821047375433617254779958387835411556643703237473787702067681046456641075678666708493957553355988687583933207590140188261945304734145731121867842522940512705792901733919718559143533244518319569666980283288863375666484075700801145072637943845921698408125333152020486230797025566467823685401270976310539841727305367809365258715591229605707474461290061863916640168483179797794890109836939470856275258081962759497318822036042135259446124966654677287971370226867824590771188426823336716151524355360065655598512313278803914343115054109903663728229388034558844588705928521268145324267652627082539708966166106625458422913267662749089356219100779729038515653941133771424899127691887844673658642943803603481700797417123210833564364179861248991576636447401602186863834707085016003590179642801306479834744656214468416734424990697917170922346931426024978010980340400170211027267586605158476805752632224983135779614611129771110083092650265468270277635448270249292500719343848832941225860737955494872048439213175784940197082170684483989072286052192530680345919904281172284120140104094409392547923946819765907361758891356876304138288051891508315397339023431890452316324006049938938457416624815556229377775775649031107692991166165173369339488501061853141644572149703853062556684587611474827061665549016421645848050537763858835091200012353627603144624989560235823352212718727668070184980761018512016714054348958140780636575189302311344429721533194674385368837994281651123531530849342626693248547010929959008618292190929883710539789191068700439879123552716072723807077522042003234157291037013577131855502861472675601201805198860301972150518799157704455390440555099242061774111932076476689879831744067951631498190131255347242794464418404293506742833579440003062471966431497147569098496859923072811052906684653614808509861771619850467428881272118248354616270178799249526925245854835419133395980672301768681240835042703900232029903651001780590613435778312765790906884516069389687186424240460678664784625358975223420913574419069311640609007731519274738695003729047231354899799841667119989756175945102518985785379084314452308364552262998327597680267858158538083350111244238943026585848261276950468296991969857218796220141433882774871352252514214498007155225896008382011263604662826634088093286955991758207333319013319713455813384457588372104458132314868617319878358559511142676138415179567990310073990651260800873530070365673448589144319289685907904255175994974721164210644622141858500734608628293870261846955198315775125493887421961594802350061019139256356057197196043380238690792724668393916166842993158374946801283854305600347674988285803412114555391464146568232961885616134629800392574198990751595202839235904272555876916267593784975020812546253575582663552416846692085305412286291250889127160600910811394641719934137300826074220424274013029475064022017763437790235916301230283152842429000489217952497013057682035822021310945834063588625489399773280755117850922475418875168728256774194891419877360750689737644795600614073412069439621688228305654228806612071997728993779633710438257703344711741469310146234088890485228656312223358847352431663874827903673633982199355900744176210068720155423699648433276080590277853082553265063018637228726414205964143576699327934382708357329076967347006139755961225316299806739935007001844387748526544323128462146059053603354882213646420914561032392346430617332460002919443058650746260292932914063025419061394211944502496950744705660828298223121441846800026428235203572900574037124213542816863410933676570004843021149535156888373312656114632778546230148187699103179498034774626351308326295804726212895231816501830631771173782306393068770872426179478546192996797185662166718664705860384387964580224299827143608419709008769972344743551007337162280606006003158588938972920026029931731839974913414782557567739719056072180781636087434157530733570282734870103068920603559603361466810220006655651405662226139711405792813278828381231980920813345136520175818013924077794742985170121561269095100132874342007413060369836769997434943067858509583627567492522616738981607422625068096171371452236153341479697944209472164965309861747681041309118069054140868170277728657435726388864890703554450346056197259586290319052932651321363422837473057497497234385769359043145242347556498261129205460558967399996231816689575507547334343549787870309403126351878338484651058857252850057870075102324259975813575261530812175257482017389366098408506821612224689641696954303006529494255033686519243413606309944015193253667185716830713870601080467521691951936401765426321898558515299913470473909534986637582906458416691857301621307981388711076380624969092994960988696920231946934498133340426594240972772411353633470657238945225378194493231878921496927250990299121417650365925887898671814599275780494577524244831119951258663090152023763396784680944555879850234974062410401266163783059147480390645586129467438474206256936562968245189059443362371642171085278126483185427101734348433002341371326779183192390901501584977385184925913178485929998733610996128118397929228090905876846760551806075043563646711268456323432192157891730615117590078846739945518231087959408794617948356178394235579503375156714126365213338508021462731232902610822813997006702035359209071082878112727232490355549581285809426155018194551057456613626131816021375673377486513941230300204818069528988005778701076396089135735293277569633371652276794337992607041653703198962718421032441989827134340984143689916074907885105975365759204621853644186763442421565195307172988415322226787765206827850078394212042076759674356781610401695148542101352062748666038088077003896507898520471633332669645066504218862526756084399960812584522382422624692802667169517300975680185480308571545367293436618858442459993555880325940985139915884756122212876870845562681613750056689838609640061878888857911713099476878472162804475736350669810447809195776126613886253491819905396468454223567041218440108707210443343822120806654454082622794009405684018104460104473533268225626276544981867200724174338005536831521069584267648351721262864804494435142138406800452294305779020121592715652913224049102150043505449463378300177621840209195623768650351973338584692068300536142918894300439981450685497863508077726069873961234580495241338323739253589068705658635503327395779467471301024203522519389139830888762481732069057035452042220331246623994783074695686216387197420251875160475610819043676576437501275990930178432599038777798478525342096297687701922486013804508383775859419978182894875208173433302456945796866974527323497517648665629138911791879469279828146993085689638366411385757360350782403504135847692269570653069676898313663685687977700273915421421635458506937644932341834821099982448080542700782935285375797845206224637394118202510874119003347675756962400794952146375948982189796161702405970346665672293249122114751674499669190926282092429978228302980585583955030271898183237514153462719756173248440891938278507332454868416709880425966255881201692804972887200278176378030216291931352677070440775392605576995205475309120373404269931847681404556758144386281891114931280347995407621297632016724242738500840530456802842397926419331300745952317170322683897112387284021479921386536773306995034291402074877374426997161671570803787727554821708766576932612161448531503721797360273838325858673039806464558191942671927000611866848024015385765243031526344360005531207004619358041882073424587610204118460735486570802388360773830095806166072706286978624086523284121694439653562708625911330197433010875969970120700554150856937137205058770870774501037353614417629037941569480204311378048200955124784362754967337522834511431754109445110032306801927090310785577797034840914117266582352235206722231821582099497886743875400629942171244979402802898264485620229904452830889286211429334646835046406393058240688650564349635466979302212054476657661051498528022086327911391568951842750384094876039896237041286496456258590332603697341220973309642450908340931295720421576519623008260944379965498989538122639958628176583574807449825069646952645525407359975105323589131483028883240856166997108987587361775682089476227670299747383892907804546939521474571276276107602311027871324608124145769524893387864208293455236461720854655469163318109280103438167275325931236692151875043821601413845665699821769903734631078804128314849899860610294417449551311159491492625121041373211745799065236447776692153845545663627752688577856468345014428279874062271206251685620451317915452405152514476499104300477497032949438594668187222504035774335346106562839179303283013587962008689678842211924043297383088561517448463136915636254859422877924509533314204925791447125450207017962596456737838932815572947880793081763545640129356476466169916615864912240750470467242253761653851578456996636934512636691045997116779535458739333023243486176826332688180271089280318773672304288138939114877854132379283957269333729087743695612482947766648118181816791232106355079222398417439241871206934064472070578787986024809295501560178685529827826449448300125013055878531581688628401690029464476309483732860445102900283978668550271778591575600473139181807986128953011038768341361717689415398590121148193727848611874052946618661093409897344986906245453423885632800403261509908204025801422713279679113894244838737755060878154775575932301505816288222000088193181173977565747696252026850796399425985350187551797042263104923443808829097752487224951414272127458739930428140688246979990037447792348382298603151894845232499261318806031105958603824727327341124211303454521626605899874415154390723298952997071314884225458461884783092306687230412736298658705711006735998797214682280446857501543669598338206714054390076535023729740887860805438209231827324621684527031689114188107453483858298954932021420141944978822400470651412894817333938200358532684636303654368722471664702888969446190957623588891884883832529053278693048437767022943923649347393606455274263059849353518630788868471335084091925614610085783591798966174708181238349214561886298904997832102417115425092582673318072338626340535265863506526602721701855920236692461606571822260424077272492117178870711825363217441030626032075129945202932165818631027221048452548243812283986298992472003958204622403507865293297460954665828997828838405396381331047175215611246959006443955613905063034297148270716079922351774094106167809686493380426142277055398987514662518629425640839150827541419718434317403675269129900851020784626399372104726533050511011435469848220351642078460121772671468718210310117906463614546464799358604291965333223784967709261107746056135080207563630138874110667409880542295463108068464476823135896155507199760160047303906988950341811997474738806180693023378235986724577338614379203679882810295514593218765063726375987962838516928465885694929092847923599171927003000816279480881792625332299740735473614755586554854933305419707770199236278788218972509988375336630344476525395737077161819499043748987617464589986873763043499293135472396472582378561153918311216187393626448939640024260128072388825274570236108022536832110234451661533213530986231819490422550995403810432846206024711006751934333086931183820284752204634593503762529181348487992673584219700760675354041168731820643724627407591220400173645211905685474794281135725904583103135111916428970795051253499867810175772383434855727411375588941107728282054727934640329305388895415388592169584832533316452975594071630945373539290508310194945840347007054530994964978558542365387053090771251164573360350215727664729253065219763432589303174856463777012950465328697637748241252280993037425496411478277502761547886642878119363680384999211549103550954945969088067766760067928072943463276575683544057150356706773260141213261764773660912454496874877988578008680520851346917042146994129682003890526733212108214212820830787456902673149854798675381012417753579636191808778405458886308906294413847122946762601716551681990683719948226579593536705061817419835812838619665496325920569288579958774499667943260389569661817117338537924741701396655289027788073182941708521402676230986121356064048606976591888636680312371843759707544911380848981386749665664526406124790429464359503749864445801005578582068311509032416011840577579666062632996466779661853019114632966405321804119372325027974988617580839880480757241006623292645498524620472942631693772004677740980892236919680214648051597541600565516612242853421168256705571255438684116355195363383921928957534104579099307140748156351948482809177405325702158894412077845474024652863922027083129288384947567721119813720256692113346024590827219036928374918725138155222662279838267850218313885272748047071714571239540016623551528846998722411203207282515091198396150827530843804338239964564764501014990459142744511431594179885106372107024701830136342592839700827131395352330837573023956515285750902114964200213435730297264215445864253843877792405823362093516358407493911722484836503590280405442542754633384830918156736128887158101018614441698066889899026215237693277230505024565868532274433299158462359768448826599160681235252682752797945528937291843317971715773608986382421429848364504124511454985796805230186966921805705584046123507399488834340322258337404908383816534638796119260254748436265930361668529407652176035801928506142494565637067299050078514954776375580953394281308716828858214256827736268025127893343502600906147808943682126509738139853009305354561305835386147453495755238352426348885486755805062130459647758127407605433549113281471617802747932502636564201315068706303673945319624592905636087101005637054644976676012714427516009260818308404492458363148015797791871141994614019151330486975412646406258301588822519821398473570466999001024976554355716264990527199413702974171606574450517875871405551060996252348014814663271718125948888951993050938922557309753465748459986569293804420881050705042058969470032846414507350502097873806745174047171821964880242527950676120660591138507493104575568243466311513794929459383615524530701604440911266997530061351034210399659111828288784162066633491089698646637650749622277676742858307643398834692483067635801070316196951449969921851587284487422020456998153186965777634187699086569614662237810906652807864380364467179865165214997935719415797824815785731678217350112005976245285095482180569181693982220283174376380270819725975684666785239881445347206511042247344282776507497098566797958057401523556991033322480398210644260138836285044232931665447919135559493982239976960405085492335792148817596725881904930427493865471058905869632307702905381999470341451389959726380136896909420242455156491681564978500642600789984734285173628362305269519518058308874615252956037394435316229846908891825224871354784290758831182398433303699975233700602053804259313242312515040713645547045548120869595509398940881929828387065289152316500991352108464249762213878451560783744324721707686984442423426793637918186802931868141638658453273687207200864568272620326162268696471801168612950948831615518106813770552034302535402442197119625988767520613429811560401228687600696521416265916585943169699939482270591881618035029162263562534748164774573844028050717685987991811633924267070788804328456046696016998712490323807062076164927411494486559368237433193221776399268020299014477457479440544877074440684384478652867147128742270109062865550251126379418802928154916280954688895816454299245362683995165665339427436244651016216247187657260715189259825099092987094443949121265705027098150255869522193583232277606849329873544535509703556637203581321336127677818440532658576746997861645569103615976022067627905979203281561337798219065895035564397707015213171020056040120685472778497686457478500727389681810272838313552541550648606445152932891040919237624316919791326652475374696829937720897031060224652962283311622984178634956308854995837267591823918844723306546239764163542563688578796517765692583475497112243233498899822436871099883729508359134034298658799100931810456110970835140452361615254713519804657154414844148599401346570612148668176698620361958844395890632668652937103659848978764645272404475497149465686824301690041187900011354722455897405319579956070062075676998848979406598315180063072307113964181102109387666403583652698610534758859531661436006098949143071545030956219101832488057182584846846019188262892794345333267014439763827795643831263155622728361245361691489269165704043699250065564423564379408801842805232259311964477779064130733563783123924205213147305448922689343437016559821523800233690052953680640387282871936328320175944598960720605836194053183859079391227495662889144313043637353315674095111939205674480219007330167328787357956524299911755582297750420377227936064306397452435371410812365707968472543343633564215101099355727974865690116975255163009409611127478929353460387105526895224739455522402694181526480677644946029273815350482837505554676920966276038019825264224012372244731875616855034053904061417306523426757906698245429844658147677886094192270325038159489299850803712018288210227925121654815657750958450738593414374491093608797773217413355050576578754041001641548774682425424495349728532180031812050620831110470648758996080361697109600673115098031043518003323261431040295706440016551599039350506904787963662099971774516779330402058435566647051803121480309175852252503341102099667049105427606474568738970902440680480797553479927695338423580376300946671901740996926758972888250806742567571658115024441726843216059643378688838974962773190733707428502957580641616134968590499333730927350985813842871497540627143279782003229611342083990223590273169787968313549343866479627811705958601798372213582655067033511638518467462933905636524383726161809535517264850038183279964698989049480510674995916005881778812398219683220306998150731219362256680316791585982845769168538562122860357025262599486030470696359204819581757507551817892131905656787280521277488734726981916845152361916423988205607318832038295597545853270390508110313286835630243928229211661888945777930564500377520681318934522599042967102572883505314320252288300136976012839780824256835998882128789825405027897421961831611228170692450838131250152105035977490652925399783950576279991975800809208953329815907057334731039802813067951255786465516737570292495043380671330295827593830283828150926249239953773917030950480244567284805699240177575887941041084305684593035445833276262857664932873853710007121564933371272543969650240995512765132223094161797158618085067115920210594357855734985347970962766760785330957189383284353542461276091456175540644722116349847076983885754147243609225204724750454889085081070846324753276168165590008215274932637799726173094148295288602159819697885936155336850341646605702688537517593769252596214613035682265577999968915214765042565117785715769448389288718030372023077845319457342369917288352755950240987237875363012799928831122244398547834573921805277800698135939302548182192377085069908940122835006104815722473090034324436925930139010723560142067436696701925486129144641120987109703459879148617259414297685847907955053282022640293571290530223865319678949150027330862081125722579289505076652069646787322820106729125844086510081058644038508320056835688175977451376298744430503561988746141007106496339349567915832980677071346497683589634793714595085109404914630305430521473539533043551410147122552227982017393735801898157153276847288465753329209242449301455542464031322771201910475290646175782730911507974149568358680333435496908521995904666442968207747934525076406542879203407217261803212878214115696262522370996522597865962266583376464203076821343443793165478366487291217524581352540846113948090821237479437985939153327398867383900692656436922387846732723311309420296085539458339066495167263005878790776653936459642414926229391701146077044766709043868446801689546047433477297511533104240934434380437903654005299502367471434275578559893135099576459092024612085502506536099600566929696608798182128495361012505736566044889382202644047360951065716578109038599252397812594769259365870902714959877952831859974114504454957547539728264673466394440637035778618592324421358335578650425721472019227896028007556795927188679562724017434020309368632664948024652591859544954952901300306697784091081546465493163013860892550404343255313104831507966303588630171185957944111943305877763990360607424113159769018566207248069235095135993223538991454870144851084538081438143462531261999092609400038954995350366615244081996343316985716354136518819523633164674052015786525128533245354432998331666527315560566572263584939480150796242294533904461973985207858713389222689722360938840744299579171571800310220769716946786902114565719630768347542213010242681885873224122748428633480399473976800590666286098682202051656833407045794460441892466191231298649252756872599706231409970559952632944326598854001154377517857321620024506768050230443965203778481017231813789581533543338351191894361295824223756171026925492915759969670921421958744360700242242948596734102847160984500618973371321277742722004131741023095759911284329253876529989478744569414524055111962764043334629583420241611815083554979275548808557655627720769033410784448861651071354682886278027050825951282302454123455032941431587782486085781780166586400747749098356103642445716678638769779100390073772262556690805754508598398399082850519658618842362430432164831989573106676615809141646496808833924594880450911584419372937095560070605598725498917351820881224690725952847243559689863928914498802467506350267880118085469334724535287118471339831521486234085426235542145843045042185159726896182153739808639873355573783376198903128457464832163691811639642772536005383672429058976758956403046020358580422236669556141530243328710241122881762351601006643832707380750563005504054724163244695964401211792611825341004338371995291645353444214193190994580841375175592140379813422108575341391180864462190583474992136852233086395620478266268509764317722472690269140882031217832779388629290022738890871472020065878931144306995074079270245085391118067652766252981195278332828760576611757271541664903376136995139120856571700941863580687144921481830516902557057669247543137645955173899085385520537506285667188988732143308585641200167025822872529416920111992508020990031457689740299507007945928900661949350506074400912374857757930667829354450694608549790306982876608097594410743608172425381425990740338899404438862332227048251818000653885511349550007981985327644414731998870514569240525149523981148503931675352029766407784106137493286682886660300822336071021687555204845155881825747888584820268018106648881701656954886139935397777907736630945977481247673069737979940658248021948031741747096091087247999016973740903776965616134139449469244219612101447468765585894981645211470616119692944953729067369808144850460669401966975899719290132502628961018900314984412999405144262569258072718652824460130684234378360685626875928882191423295066620975953876464001848852247136584049180464215670530862342606469620351466526969891294262331945099768092451231126421134413492078504602665848717755384549227823154887151774113607801302365823079124237965609255124368646110077981869432982862445461888788606502660044129153083909572554819418246672171996503728637114744881786747759834321223948621317977360877219928030640979290953850704708866346107759073791782914659125568298624303674244506471061385480019011224945397216325868621811609827712169021450527963022845344862908437850326472568526517034738533843512056908061662523388674074235785325818631926380967529553819623875194688815859313651209403228820938586969170264171808447340012235961482899217330255154219344226693766842008159497531952749073128797163442671193868356532630784699395033496646646483945200968364477343669635492088175252110653023033345745245177263560899968398211805554329491010341660307008374325450486764737226247808423715999235979102417980828092292080139381800022795975868575008928782086834049443156323338464254171190893103172747021308374426667725976662468048109398556512649118437247236843288515944630044401607598908899285431289547999451628864394274937258376951753663665342115311084265715626291714538553860166258096846757188688292767561869414295221056398561947477695257381330670446026378681121512155950376327386560487277643088595724108433957078363467135483293484968553827161083298565275336364060718904197286415753517418943327664609083581590173362684203616693521237510155167897681131842848983612091516264231634761078460659543846412026104113421439059142136875824078286162908503428168027450105840294948787316527407670580702989336664612258832844009768454317143385947224866927227200577185363429165759079134816569806942320378384425807792497033872134158679098789411522393047615715963720381426656542061386711921360274224248819811155523198630954165139772464320720170140417763687891420745356114849005238128220553676563225178216903470991782925508522499341984509869746214372480763918402248944082372111936937411977401654597371080185805363362120278358816893224220933101698821204929809042417196381423839507865931916708044047537263136313969793200145024462190703962907171701566809542923981458490174731544917713132458790928732001400794501078214236032798153691874131926424792602273741619769993828000361079284297532592068737302509716480589135733233370343701619368263624673880433880801525466045940888817775991033903927830101373551946279588552612510613316736958168451041225763640305362199580139650049139183273709793223739684844094585197090978422517856296433819054563346075400127203151348298565595702963866678373511219526283069385926766312621146996318078171281312081806235994153004107757337053915662708504562635497991147789677776122231364870527448431863033442737002545613098808160394352112669065316640537795843387147548240421310628486369254209750416109116221428023185730214450082320994549168771456574143445359761891980671579590503863021208092060828075699510737768788037716811176954781792926658898502484130997379204441806708852162109838125721858423470867299965232179894692132283156267923303016326848403212852511056919139516351924921137258717906934034020749963498456384177279455537638609506870844124801533197769966968265254021780527425865884341716572297186067221698485865311796517161515444149961137234791337613922372356089961089149015481563487628007156923483826249378558657284730638594863828739612859329830414034207714772311130725818518353226893755251421598055550813399021577523875278532108617977110323130953478731501911643589998064679168502277984486478155037631007325418498492732476550105799665379481555575515176811450252375270062500494900414440170902668509266734000871288831511196623263157037657888881989238786575484819246145319092889531024619388563484197324330720753621820704689066105987684424484589175610683199266671338802626660686778881696393185636210699094689738014379235432677701546759588139833000901205228482711834698250380367372382411151125844546545233776277336108286093845914129938462039173162628782005903416794252311305511351297445389420454700662861442173351742171245520891945070001767074431348054365354820973319189797410337598959827976841097117558101310041850875742852074009375278825393099726650161494030380938119472855864868581144824163864502290321224358270938528208829741820337023647513062869308285635286704173254705823889980926194061153267014987584431905402420779302642810968267124937572268702622016439675908037625188039613611291970878585121299503889037073591967107333536890945037879494103708697084601388089298299675102745315784502924057164271498298166158631671290679343887914955734409795558589228934698089230912182669355502605510006139255549402040991067628683818971515387960054429480675907503995168521517621512514844878655338670258495858366224150274101399231103139520192556549774031163907837188845544271103780023430234502273090977680747601048144426147893297958591084153118731155451104801964226225030995007397755330645916032452206109093320560800174696616989780525801152099943418037269223042234606529703712708508499747268507930386212811063122885410832544527198897867782088752712752268707500049144989478868908053896532339946530075038547570058252369523535508494042470300244824129083829253826854682633301978680817959362681222369621039696305362662175061163285901768870927906216721631771357719043324670296679713631429793083589782453889119219127879974678788808397158864783068228505118139734952738418381159124805696906103100670106099772120604144203081474564238934926244274376720137446324684059556028581668392400145097828242344585306986625433431652230613556002280093386681542907884821207794887763874859750879443870038801973618427929872412169777353172873757910368957481328256727652178533246869692524935578378462536301685869563563262551511253866796980227665446986677502453105169816111665582081199141910224753217061749976150488263560176273999408911818875780434625699618749633455950849417724910984174049564911744731344388460161486700929912860797822050998679875342431379780839030907391563123235113660319851484452723158057067489754777938836356569801619626665021221482941593716029854096904024823169121030624214788582541559713352256522755425266841957175019522862001154350785920086836101541164692645659429488711403068041851405359088461341545273684574523670005522435971300820474399423633838922887544141062194456915976221494464258103650896633469544195263404217292988010108726819111835978711886945764360112440422518921324547922557458586666421638076366037966070494908954456815888421476101046795251894054160321216464950002692626844475297883951284954807178518168330114017187183908608344344666583555754304612630623964871516658220017305116600365997822718600189030790190531002430001430354002300356229800011601868718420415604197154138586935071783365575988700100075192507163770520554426457379004378066865330185003313142168981483516513721755100241890573930708643615620687763656114461426334575352510619789469887671009220591496114862329434602130840139977593481447742463346258652581631691244826898343459604080708621667996949830932598032161105389386570404226607748903936636104830734768089619475259000147356002367943247082055611923931893612137966587798022400493228009209983610507072849571177245396871238678889066152396156903394731817499497950906813128443286169301550379234527543259813125261309555266060275008519350694383641762500947108474051968662642939958026485941737376480851630058915405548716707688818188778910298638238047159410901536130340955997229400895835061392944896538800878515836425478767419844606743120795757774772424908836295260312398604348614382271046513044004270409503429891168053642597663162215894130034262793396957859787624830393835922036906678077011056203470724490705079373750677044639902949329805750276113163120653872801765005486446734120330803502448436418547385377800482199640795580667933194594484666566939870471005509198819561189166837291963349572297002560837075888948905609548619572795558572835957322842795233963331148413731545726938476803236060477516106174065949973864429199193859276054417906825944564591859972486032217238413399485709699282357338327722022543639655001744983190091274982404936808768092557036981743872084657089309369379620575251742782435065848239108164733251056609588189794447778329676233695587898052571606781159015853413790021071737262028604227485031222997586326748921803038867995262816709462976901818144487284586879292308822425340282572494385235111067920186294067914541450149253170073828740080871138017393379204991355333695859408252984360898795059911495833904517676067461410216529868911227476660375677476517530951090325006153555271377877039734900994893789258134074773532689374130595650043838248100047034107191910317623234745994061335331092166812992986490232475553276749512080289193970311369193827464238081498071255564972306104041868015323319193134449033240980161501227116053767659728374804413526419841731819105131531823323050818596836434356316584233127776940343146772596217951918551805529601124156232657367440214686040228315726720190093526359317187298750886189493375969557254742536190174690374118866298586881303363853171175697907515431069814417264034933619891577662912426739719317015703495037797893960784148763548354258553242471563161641956816780142494780577499904020030888435471972959879022101183886568710677139606481399168976445058398092067134808370375728488437048440987005734506990544936557824115387416607781521310144370507664960676820007639849621599144086685788653538953193196064821803116139441467359000486974007905799906554384370960945993454285708708953633915033706036382792352253937664058595764537003033387886615262037764670299062059492008295921761036187529543690286202547410965797993296835665126328385309804410581306589972134797594937748782336035204203677188873786143079805938321681595134647965430032068779877572707674909415463764829549097030777650231660003038855494488652864734068122838942174045598153370051457038601002885847356457662092309186334261170010476518186145616697608286289941566520924441928563326946697987078874295754181550500928570670202068311169003800105558322522149338497286553512198710889022162580604229321380806645504806427002231121506772180351185020887352802091053275657054658263348314649152197472628454089551899140308797260859655584422782167933212040849685862375220613501037136229496067420563997051450744258887613267137655324945973921511226066779076527701342038696701376305452127787291138994075275549488119483380097877313511138787328481984204588161023920910973905347143861266955560330758599259436853869431245473281919216792316261256282019878752011324912810189333612031917061036646432726853996578547459685319304392688209077332791110183222455375804077365282824975593185600163583261863895339899739126071563048853943056437759573942694170163412447306715351978150987039380566993178661759055424612708008016817091642225478083302063666570818683518982045803119176549150517623348422401618202246682041147180265056582897004519203867716707711756088095229324612832207743884335220114772626684107052436289012610158089493649496482335392703609405051412182485025269148376186298838261312881354632010960784041760247094045957543604783802463876641487453489925020155742553410929293687770497726950889466051109834058484150498748573077633737248595248962465842558800721099970869885142670936685326912382048757889135182394858808188717359291380867308778756586709235030194171843126045467141791394314547211553488229933271241762732093898903161073400705831989387257999352611471175604758922123258184829043624654541026655350265761158340671901421030624712309846612319852137410174929466429661393655068972841984268132235517566995091203822576864262669579323475452501631147586471096595364190532885267820136288358241625128366242177625545861443668883643057136497473706611000810655150282775910738981249346831593566793107092141952761858549779698386168976726107482340877912243987197925104304782621325160915451057493341369095439184701038099415551821270357789361275228541649899820263890847408466639765606082251103978316051889050096752546645350929201531719296258724469923119240697150290606427921253018591526493551479650624484437685171823441033217708119150760028757675954311856521057713247964361247548813288205999386180711641340872801385761960923855954373050071171256313641487662052782616002965824149155662576585968093235722297862969417137978782740300030981625690838788446540637820295272283397052491328229256825708163635868921822558209571152859345286421150216952871231306532960465430914678324286457450769863903946020142601287528331446190170808068467962088509840804252301962847813506590458299439413847395025012404134724019495213409740199451273179992293788753057652700094838475687323339609356425675976092830924437681459351504198360956454430578741145614933141583859312276721262341594625741356523833022517976620830912783681025601891077503975933267400135344801854343925571621892994693272098764894270133976493000235003266910307912211361393873932910537208674176922418755966165677659864323305421866133410818835035775763874782917609239840013415157766814681188115830320211860229850419676519569242207414844099621579940604688410883390074300299319256619050431100069217869085209958304943169310667116106209792656691220158115435809527092567432402813012421677233752871042839377137804129969598574717594259354011390120934886547867148076688377840231807132938103354785455337162357494690259617492285973269748759680909777274555157620602195694929386628045489580300906255208773464511284768156950230239223169778308834783955918153455678977650283394903513543378883251001339904064297816787054373945146905138418297246861977138949097908900789184799262520845843558981494959205150962459240351647009871887380749322991496143325468113523197167758170700464633897479784217385960286418978315374578440596321692827496743951991514526065176234841162035301517039349207494942032267335483525728316307906311903952383878563106134206173492481327859136090752471485140334375755522349745957540292022814713373804070136239127870214747673552906340795113723317708920863168541944338137146115115900798182718336222630381493597433720603439946156104700372282999747780911693964641518018608791952265468360234780898077058614016001170636709431228703166485244855166743336136766144758476642405228824328312736303230300732242746586476211230134320391687777867494411447128722318890878504425016934235755722768891458164787411036685414485349411768268520813200742328306135226511809299518786544190136804111186878377447121610251324032756069987600302164720467240066320927390800196026466477810327944573518956685627581184647189351871676109244096960188508536566013938616224192716647031353523381431442852980459775572718849230119147755276563689920351899732668372523365281095235148359888114803828049377643905210560050904233563099735681528146771780663079184956670733445285141341597562227734219853488038701705893562149889693803875476633366189162870919690744782719184766911631690176792599322434734495324698340152980724083353353329520622390841032879009612128281943481180566732651143845183168704232100497851854639957914655120530134920540313867126009182128111496691483284849680270229926492996183632769629919536880756968609544588954542800503303465391902156848227532910842959682801421582359473992554791820337225499472358145772437421120119419570681177987404277120293396587233258584654769148259820764063382109103851942178965647910318218584228837141885708133879396462765362689306231321380263830116731224103822437771047403464906622638702724811921822805270384910720001397829273203104826207846206303111917433810968010941456874179125924222371832062996025916262274461998206944532905336286331191273399884352156449099470952507550922420035453541640943942747918178851095133802958213855106588423685644763532207894259562361615526677644086313329351103544269031588354972766996123382747742455750488147149850199799678148524789757906868765768294319765166677074840922370220282542912108892085540136388553870167017187559495108122782598266158938890375867675515541280546142504678768925701074589095209748460984620601915468802065806385693634642981861924950510161671229714231390621700510514817290724709123783553751210094739645642184453451625954971772394472036710510163553838192970896429471109599799403718408961497440113223978414117550499013359820518040430780971282945076830765698225546668133766186514509665104054361612390152466694300791797885999781865917946817173861408658894552508937380628502950529640805628117563952056657196643041157934989850790531778325030911973036687224531486322658440342857956170549371309139654266741509165985192834246952431529683606482738254554751529673100588910915220973473809138965623261733881986472724077121907579942175139351014176223543130869616725215884795272044655692880979643770763563439680108343887026575723517824662506462270176125870406244801156974842321633869959961999685931314238703469971143307678938218458506977142541566661116745050797389046874461989977461706631393180154195670981358421868678425994583684246785697105781746656000365072890750713895724515689439723664177630626412717454500396975853333638879856042603361177845592178886666283126579915789208442139767716083043288204515737576521404265341509195566953043338096789382162973920764654991937119373963666004944942901047432947425201174744455819291339493460823761391247369119488146727209744472944392504881478458349127254648440332697374036112421908123711057300280148549827214235455794092632566059853165981137329020424210647961644575770922864712299006179511316544073496826262048576373925497670832645523250747442270992039100946123189940363094714493075172991329006448103065683860035939478122640730201804191227526404236384580274622590471442612494103923528987704723684648409221910695589698877047113849299613005154690834048715723035261447683318564148497583122947238698314419030463033655824655827637747963075507254853442544054996231177721459362756638177146791503133191508501488885903966479982679395054589716308118064663896639668315390706808748414774646972138669471631868070434943496120523662516004774888708997837079733773907579452646067280247661451550632437503525308023426781790745405253476367116571543330218275721638601353634493507117288032133669265958354676508838038165898289595553783025670553099179988165180346636180423432850032523566594295812070389372318734624147833458769991539512436472384921931806831448352426586970930687327225167024750245771242339984985506339006928616088766411748195559316289937267555422327652259435814312094586065641029846894368597879928002330922208713304525690878523296893011877081884206201896470652362474514699651056867428671179805071043295767334281479458361218585014041676886282980853487298613127074908277385662620128433117873277290885173213734225715495682953955943184741992578468623475931917678362700156344880473265176611004985894156646833584552016284002477301200925418677176379735050866861264240410703402486538465012861171869193438294477355538275119970128820237123277654579075786360157976643916125975078994418166005850063821917159497906448784948671448442021592395952605100686091831723864799348034964052766823999547128052363891232749884429910288915985038799640605640111126911993744499368728607912590737935929675358676995510821728336535089908342914395425301429561885799426463501868693465845694813777459944527084372976282226192914186088599263599050800916298352046275186573188015284796580523741654131659665800635053774669962648237002875804155167943767311969025679155159964209627785682950869436602903200413839055329679987155518157412751431813388558140363993540963083006715193777103690599886800572025391908384335757223709368418735301971542461972136818027877909576037855202883734112742848415099895377587749396330043242543593352753323812434124655825807047069857636526260597344215445807631014807444999746432534857922127201499726930403185729235009492153555330284834605692411387029075899706289442988933024424579654243787140606758515305710409757340607071453344446380557041478961936254174602249888651668218470553143277748633927552795741116265828211461307683902354838241193077574798475499120253214316050691954711539573175951363097374973273520380538892836991972434294716858167760847491486282722191955254335727604146433882520785638941328525605926331594872549874217734428793917402346394660218590247731458685048893498872354571703257346800597532583466706233709036379118244141117242302103742356366821165378876643867606540960602151856989531212475990684192929931342989018379384107539903903928768233016054468328832953833758178400377242086524720617270960223962644620330831132501321617384171195790734055955758645879238194127522688063203472374582956309152289189701252399771679350304581977431858758303292522841682659202678889037314355903918177301664266448730574285901105803914894368170655210739773622137117042799090885816754950056332819530272054719092729246776512877263299624582161823015190036692958311014276826716556770449887193304271640621569923825424041237947870189658621849653123655321245534917294315479619639457271838527705187481581518019041332232771883817164194247855980220474891203506344051847406168173688332854561377283426804846354462865133045928029605186947806219641530629903048913958145302438463266952100307598740505767657795269775772092626015716199144813625536271705714750426721613725486921640231893154342076581582037227953932824852525688047221382958228200727393897200453785211022469058465722413538276958407092607974811061613610106291852257020769860172333898204681639101787408943771660913773155435272292182361168311040642828573681271055900687518759957187007529276669112028787302250787695843288815568675828468372499073647485194986882287803856286009294487776250229675910902584865367818136449123712709329910626435248533158398718112239768096896092719112086288499261757048470172217274137455872513389196248605397498874972360498018711052276036503475922766301166046491156712161183597885128612384171898312449817070115729012470125341505196954008961746876588945590916731124489402403729237620683074747391107162697133713775657027127756925773741036620540081277350601995950481765596834922461194221067900945228705596238617701334579111399181468947283301268242269708176281852181838130574313477136176412797917047929608742465513332565942635889104398645871393462350194933417153632202637142027113207673270015518867595039176580852789766192180033695799457223867962970694361735445687611953874548559780327310361827597625224605953577788576466580054802624901658114972330938438768305608036927161846521753947764829615876450380657696891585196831253187193880301791030102411658872226478138036513076421587551053541071305100929948850195264456041891040736224659975547727193567263418058782393186345983572799741220737904339383190474329351460356250359314879765231399327657823945338359586081348036602155012837461829219133301511425166073640712116481658451017806320894939212266045380194801463369806219282865609896567894527883521055051021402325097681726352722033164780393060425268098787072465230128596475700405412708370657269442574488519672570141857581586271680593033823404705840270300879343910485618760023531810273991332438346317588621520216186610959287694009190439567151040425911728064712130644185083789336539639442387944964243265202566863311293928504609595078557730892935256170915213908970258348641296907957011812602430756796506412461421338905380376391874960030143602144707522697907460365973752624748026832402222838256633488299759292016674791296589674433388280051451959795613780801768088567216070898890789856448899846540857985125366346822071759066096254788248929935261087686059230566185435984417282718544110706639584527348393054195332835763255517555731086226626158306170689707440614580847358208320588642604997273103271169428435560611619226435927387878713116123088115314532942353007956733456782962519964118828157595975240593613987178993643648744316844978183180436823211721487951571821922567813461817823799660624720593455153160626415317161241659020954823497444634626108498608619619630906253411158489975497190229870860533579614239136959611405504602179638758377634643269927803153630201818559188733963486732810856629543541476629424334902845518774724913594247297985321963680696984485152957347782259455381457674200182462352390653919183957115787615530651820679858332692458319418554893871731990098376472654377618545852510496043527032930579104326178160370274614989364420241710040777632700050583588753447650304807816461298361842473294238195592249477949135393871307804823871512615269991618099365170387538115224956444298401196041151451982929666017913612212196727840995395522122677936074208497062264846541354964939253483681041096553468598796876981356722321519000210523956515376011693129218942906923439389876811177102411693354797894975983865580797530749478024713873968244577405099602866188418655578467933483465470464766322744027500193331433546091773797164170253550594223651736990148670817324992710692674443287431810045698851235491806855181324185389503297859066336129810207772087238910770938734073344673984261736923701070514607825082129679226543383892767139740171716889522495931729345403624391527162581463844710376310001622117054485345180013091572597014980730321632928537255360785149675160692371908074347632170799774749812211705434448988151847389687466397898119370058564832980518432119915636297745095279884202095258629104403854298804239284021276041675665229632536574805266082925378325628380938787291690991174872421903117401586265985281086338752827385952073565735789755829837881894682832097420021808882700109109525863633369337435227249010963072047102980981736344276769546709991908422299034482632033566113252822582979602380768510687028946473886196588855493563416655446243839294353796846401854417553280097042115895094003390008280710995673656547742772859481363067668369863335746670342844985636304232616621765680330543542516188619303660872560460808997070101058692968799884117607173950212858218175682330534965986267835884298610453191342868594202497428541812311361086127289628453730764512254419216738544410576652570060477677998910427799075480521820379285811999702904256256031764082526014601608714975110706957957625814804006638877918271584900968561373803935853537842070980519174092250312175140445085469175301291104078828932086980102640928718161592322511020282578475965127008245379995939914813607093754702099453424313262447013860926436524436377007752197154654731204834657403409601252903392787228915063659675767144609568866178845540201965879487567757806298386325105398221041491254493780418740412501971771992201417403086879113013020360822424359617933967410314268764422643134832390542505175988601477542213447699497856023788628326925767856555381480301629760610822016422449031490752800229144949640025915381176270243573966643678677227857187797265743089502398285092773471928433919010426329029547731621080448261502320091432138087828046250228518473080476236057102548568153431254112228809789264366109508625321110350106242269987644135046466206101178225983443259328448632143123669405333370745658306491032484758118978555471048384039635231897365777918277527438395922017746199982220998409237429353507344179184624500448951034770733101546648593269546060366875871010070249942039325593921448051334160586102222467391689044146333453987655101111239024195970337994525383642640481257847730591632690412313262653658224697844682364312584183329768471851024943261718208327319589729459977920848563884734413322833840342606439828188980249256910455062214456286722910268251291416933049390274123411778423109680870224170393870467249306941737433011495194199894191762937417927487562082495978641709820727080380108008488114039734158593197784998572466943502010829027653545447528658183580641634562338294802343773470711763055717188045603276761092290561777837891067726599685291410538213315280032052006329904860383726908658890095302730454427104964264385742476452688421229762840001631741100227069628154866051188247253617368359008741331152340217242401403177076053018462167933082183948932922291063874055438081902892462328720042494943475048181492913315325666549717165658235353954477635309300835123936422719250898518882289685870419842114717140108506391757642841832594345883274762023867758191781257407753115200476212537139253216959860227430160313261926303080853850866044279319919081166200852803138946294314512905799159349200243135152755349540780775709071866267015761225296392811803205500776202728098598727982788007291971853400510716926701665335095512617561839415331835897906774410441534822063578487306510853400416602453881905323500831740287810367458414134548748996485225693895938758586772847812598232329800911690188927035558740766315307031274299988707059151357298356552761491292963645372418933257878079198746577071479667524009980220477435790408580483250808103257836064686089826195473844080143261456975838305679696926914927513369596723629172310180548949776510696809500519326354539241378227928298005632621103963574451902548314710629520094513085604905629023728894293133100682454449915710344748899181759653980341425914052784471836202609940440993104994940471067372161629946870232128633581531886420188532640196535848347655514189043104191722900603095140192908071674635653516372889009378237787234565939742736633261340126419300984846355598954452567420643677891268525086285328172905044666366670538606350718927486988280577882176427354785117637646353849976322562612669160379136224714090835108130868197025697794926205959905577380602382446651682491435513787325082782569469678302190466262329173366402622394713024073555616618902678532385845081061568826566337965548757500858350260873422046681211175978725165083128136506043391125385773292554951488323664436325416239632890422623991990909261535187340438365648173469919404172308454971101746077331093927625119081004897928838748036388918853684842815214316542893437704150705660627621199679613540980018690341260721568094223016942439167376939738568385298139384540463167409161183225450997505353654398515627336323989375506845836052010051962578333196538648875592202917185406610873485437043763935104570309281058330897384581145468084366261226171953490753952633404904104865402189864622928037644072239091032594625579034677592587341509295544423952344515158588865124990985022445947124129945073686335893359730454278553523081666402607989811874868878925978520890962003017727042662294075191669155513912566213394564488318825819921801005205287271926789573904770582767734201045744153301977900924252476683799168410340152933829709683857274107892393526963844658772206903025139115213206810602836794324554911434432688564262623382865931163774429928787872488660890964728167087294138800048935765383579586223854764093021512930190136717480569319450962908803974703304007698489379152841885774138597269208900790757382378885595825435483320175603230706260224250356056704973300013321493903993891605068338695883872987822661243078807784030283247094799541446698691504492550955525905111561848654533426979170517227340801249204889496838332419148197778110636425273782356780594288891929854709782728570066156213373195551556074884561755572189662890478629937937111533671275839848571225960711235709203261139606309088580000654919754934102666493211472643772297475834708554059431987684548696452142217899651739862511470261947841344788976126682593984435566465678499081694111062750552565348573700561997715469308727426922211535183975563776325434573992565485602397715320968314068448906995273157738839762258566310107737863664345781621998219574509439774848326312485418812271762098614384479881226734972921461362651866335839521055605609625564052708777513224081705649665170411516899861524956437227396955765281927169872545758362759456646397241230861202934998711090704397444086318327031537442141156860989576360409138976057259589709759112644091872069223673904622779729803751710778163513950893446710254615444548707897967958056772668111923895751379643798636019328582726642409114042353381169745114550476094620412667248872225163486387099252131651882744266518804087122060602000308228211962001081523636845782694174388864732323173416389272328481360606883390347552887125636103289891706833269158001835417656891800418992439970890119336185949771713521942101264340104738870370900286775400390673469760445975960450405057857117546694915335017450383567675709180300191022678246206931417532641873295094933316100725053836278108364030108189689475736646666718415726692412988268465996727256036482310791279666506195508830722017414169859989567866803754649398359440922982475605514329653430233791732664458355721622587757186918445155124050087651704337681041975740780260780133188891597874072342892287471563808711886104449533237312985535524452137128513639050719856406140452526814250465641631056558467128364154001796878836710618918826391410224432640586078984089041935529973729792147470118658198597864987046465700899626887561855319801457095784447475131084715760427663213152782424834703984129782518772645118493762986129467906576332767298662438603961810994106579609385368074662748310740833598957567900550898582649720659905000394222038971873733564288949005245624180909768676830996704361505228732562472625165420713364612298374966646176545166098192968129001788219029772867954522429678341010820321396638361383823145474850089976654555817841685118868937797467776982274972474810613676492446339315413756546242429839699133135504720752750960308111735397923744384652187082859920254658107664320792743461817348053700578172632476329431643183215952976106400077912882894646483547311223383567702833074445750592413661893170197694683499764029188708008743681664528702980109681723627281694780189536414843033506834923383369671166019962053941184017493132282403697238533980847790204982925662954735760965246492458273777743691747554222064743744763381251359779148164219530803753986686349746051466831745357420394880801128264360004299320096631588874227567213353647689071063231112053185743930409002375611572346339775941861072003318373549528280750452141991632122179920032741146644451204528749488580897014871196779820019216099091564920079753220770537419114834975025727492804562253923120014876698950975396244514204982076018975222146603809450094556045681615624458002379458601972411454184108970125243923301285988130746716731090547075871251853189265941608997034878929547937731458717511151113378215496014146089511584174764021461075229101842568499505886710244892462028094073002659547399364712988947515679910708748553796200542179076112467859581799729418623590517402191122349855499460142292353620474042249710622288218831747856383087867670290816584843220032572164392799952261516171377794876161873980849508272493766813276922388919940719000236759690076297938389842336964083915906300594710252144477494686826027887310011922907053693438124964928475101698059716432982753715980770299784212136694246440766021266898242811463038554527117827274260968268141128261556231843544173382288310431868080094360255813225146738189471904498307533028073927497839025224603742081409494531471085701188250683155325980320947665615405748790778461302591343119890214671195085220772251022632218891659547526496713806777389248535109090715677984059593060435629793868817601767842569670822461534237626827329689491330023492489221038172987361003900607233297877778595985136232353126101941972724687952401428408304571471864896181055852467886029574993190551344823161842583094848160277940927639980826696114084895679572003141828886257353454250547953565596630551290871939666473117693231133992691796272784003363479322183510297711136900153326751573358228459163917997490804880583445827303641712900241854183984895499403530019470417623599752209410990414683419965507701109092945639822015111168235102982443574149991368509611299599358168151655972839362353523992420440830247335753478562275880000029534215325090638617443436234290702949505996914806084812068346570491049801661108507346203304918811110024990009889419237748940154910878355701942762036127369728010086650897851972006072535331406129905511258089645014105375015820818911721312972424180547184117481764693858990789989391766430125680485602740860542482791956324651690325085632793005523153992224769873596044267861462533816324696588923719117780200109230065314758216917199634104608849697635766829698528501618242454304172024150845034645052285658460954221072560338401729248238197912197230496335237235444455602260699301099838009500875155938079259038624288923084476327329816724267886203316646356753004655602282064246193208675339601329427200081394097318190465641886214999822534342725935697901519390113902627630075622393165524470868707153488950935016207004470967805523248125072462255780353266882868754540064835345370409475459232017015257464964555807219278691169953367279706331382332081292857870152002912455696385713774790698866479017583905373750032525241437688776464078146710697265355338202984669409709846696174275609864471449712742736623600541548474433588631934145732356621341110078094574019729328739564763245464513781368978971078623629463549124527134662908931599090127439302723174218834209533918730694522135992575535839462154938025907967158025973808051468488767943809131042697702445372036812715555079503811629897152328992575263146783055855085268652310700706816928603589511614496523880990856137835388391924202868707059377501450984628739797699941141839860425454353503188476614760606941784050929810850161244705606845260054191666209329562403905762866687006824873604043101767450253503348874807598743799403679224006829876678159435620903952165752273668627110068778182209680265359027682577681684617012732387806912481850363926779892610427712298522036716607015586119009231918015647870376620189745091690457278756133004075988726625255308219725852037601716452142385124986447587220103174903912362797721357747084238671392689337317172213392195641280022432264166644570685731087851509220048219356605031891239198003838660498424808170968433904786678495899268242138358162085836096149198023756431390664650357790976433186541803374262573305940958931159543031979306930968782703896759012686857056300381692900110478836495044439962991246079209364553762284990061999086505085907867863196164621298411967735361176466866262471891340566775084478835942114556764270765048229576623091609220995824716445444207821036445723901893846292484740361670653761891730903120117897219585388838184249563916050386340353888446527237353290445698392422139508124666724500465055964682022515514951116149489212667289055845736584369448640480109749188331425035315643029591832561951078371227220332439051418507356834857461531688193329072196825002883742072160270957418911718739317636667788042770134742891470395763125917971652061292888880815727916007302889748153107541769915059038990465360012732798918256545983844036278317250409792336997216397935327578926671407787286855092522464993365665401684387122023641481523269277307004794769138775241349233642930085974695294504881887506435941963882971039735091987372315405816832831162371018006646453180333312587159760763115505807309606767768462269554649174709212906262424569439061321551680930820410495395812437723601259647457479553653547902497022939548127112424776734558641562367045017766092159792757007836981732385693168656993428573439749355530563006880777060396355349504847151428199805536166053238516790167854203680115388721956150874610712503141017234677181290419185892295832665803086839119791130656531890163302855830252597926755877856796712508711347967422598060583806972354930951158574612001078021728334607519268992707542070706099008300672773990680045738217484400055175877104406768416301470376708317174544450061079164574971476666205903133481313517322152187438838086272238886511246808242753702669461555079351980318318016766087152371626993272072477928734839831568535172110985016503495744931769175831907771096170105934375527534509999334500087870874610480784050575887100016340325082943865981060323090823782957229732846245525233251134343678990330551589372517840611810805561473642947163569523018492603363329340062519494604062184985061946015149472178066734090243122753593553611895555858112995501741365183904046160257852889052272499946590387130021514201540148436415759668416851620025846711165278426780663739157225896222393368359918933102991813310362053234386147781093697269327623273314854858959974222719541180925473771198081223958769395873976825674605057538847493709958613936937319680451743701010992426512392657598180797462073648642791435927245939122616136001872724494296151098587926483493898390996833903834637245811153575824999441374253861958034207117736916069585799147522435550244814009089822318840940787605974709547692751784579834316966246439011042321081655890936950579234207522308435144077204346036133836512717513078953044044197425595635959945211369711146069205013026939810445615997323355244248972773363917430878524925174033227975073620517840563492018311785247101304272868781891938510131679271267988513549031679071832942183209301439884937291521945571989448902001601492799022823162820256108200778091064166682351115637267123014958033365524744390702356698382027567205314738802308723933652003808797523141221919302480131198070623088067762419516864058058529255120090266573638289111259220126700736168946717140167629300293759643464429097709763107629973155398958513319014960512736666679513349148991625714919431447498203723364788075994943901202394060701770697592094074742301751715935300531107742672905279556793631451963109586313759333883110830196209147280753822315916366147494714902406750632605747389841816369643438147796354845874264391262068976889737881697835677892546848770292925615492664109622405474768064404902436566976370282628232752089973956632980436394126887437104262364386153460798755320135312419696179448112333082495938967639485345118869290368337121971023193593439163930489068229237652555248726442142532272895576108053000598594069659891845345570433080050479796907958445321158539486388007438778675168329363571400242185725585282025665778616067466485910467089728956878543172663180118820694803173571102257501057497626368656376560833812630120019945900154872407229922468079648255312072143997964418724439634400661316063928682811114625268322221489882521794100699841804527489650222004146384109645176148323926017926839049233295271837034505158371756864898878722446846343303531146175197296768369140647984407870864586299043487095605578189778784133704758689836534365110522878245398178091569618494766731339872058878808734968443987513853640298677756021765059176967108061269363099236597269696640155296017119584799646801664928405124275976379459309584129918738975851364930939936199662570699340089344419047389071464815721649807373862870340272911701448965287642619313793028947125913665489287967788533313534547411574260811238369261167080320198326595261679528154733651423072561448372339581828520048333509371545627170110665750135192584445318734509951956624931378912295529483167030934367324180628379869629072774300658529993524643558326295098559376575406595813714200824139399874396941635986988723498329111819309423421198519545159946707644589310093640154854501077113501307285695133374868961485347468252086913285821931988863248535263887626007642652388633545111303150775657365363392609254520867760950829826872966220346060755226454709531512490761780162690310681449874928486486026172519810465552278784480493356596529315959545560610177051101437143384752138182478026849534857639615213794372128547595313151111232183651444320302546264641908796047224735933603363319560244588870811577543604472370289097138076138927255381806880371508451110427925802198571351397925023594995237980453663701535693164625915841155826960816419323697165812990264411819866426599334143034184105636835171917064605245250004389360869994604591626130140183115518813097532099635542546596285076985202206604715743996992415581723773810863718428843273250567459364046338853459302579269010270570706299936537133469261025036950021593906720077894652044377024284175689759490215439330741615631277680778193260879656236741599157519673127918800578215744446706109851763552929712940853549853696024116380560424264284308214166842908719148690296323877664881991120689389837122345171974557184284500487050359838164153089679398933576572908635164950427646563127736009048392453409855887690414404939038609989343981787460535367425188571444008850194588642649270065877578624131585366479585203091426547634871541933918464082310514023857177700634752845576006162262637786382988307454882721589193385889435345759374963663520507868755294423182296544079497762969029305337150508185346866204723375304674733079712779159646877920210505640816574743768680700039912730945825080721773365879405380538854763197191116441221321998716299829808110218154705130661193598936235376966810536280940373605959874401819632550236687752709896545470804017958456908390877946874078333934170000081440708548032650244115406508312173895825239071428149329212936060592611560700727123902601660591066708706026405221821507499865471813584760469092987937247894141116649873946310108294432952282299156405445098952376983226130886509320769587170178361862218591231322339575994566298586392432514282918989340468646053797291464244604063657465144640491100028025177798989645034211332439006826020582673521640239341761924783524794826631903428033977837921735337547502236458251926768366151993127076942566660020058817717542593705263612440824874334023986609862588988084339253508331183071004248255696910149683775213070902393924868670725267834697247958413156923569936568661916898449006649315043741618092271527548054120635355849218280673010534370380709742337407936573726287603690827885609654733526361040312364257205298893835868773318475776725304990140530223214948203694100335452520847581972306149217419796791110731575069943825003971983075450454167654876431948258696735940673004305523723486311877598533737650740193620335501871866589421331522494268762129173073942079950533543944540861579686387591422675658723369484177629709181239925329383215836785093605980347389706040590353800374578943032544221021624942792345421343183429380146488826538740624094471885603868799194161584577465737266345960307779870072806966220684035543531557698623959953988981688563218005232185949220109107904713188758463192456256088585906360851571024133572093245532941042919259110923511717934363467246856398044553422205768166899373857667367869729500173398422929002449800637709260357514574301127523650103458716098566808540552896116241636586052770087157687550551126799211576533800445981371897555584094023548367519147311096389441141703235910045681085528219804659220084483602639000889441723783164124813413254948155355194188341989550006333024522558644182669460060740293139216458400008637919166390369743794829695252206310524170141549538626932723503560509496542703332758527284251203008822900525496465418602307433876022590346243763148801866760274350039437562615371498156258991630840268591263768272081155448527763959773562039193043452353195525027522701705908421849996136496576789073336929002908454900102811710737890308979631969204460763234859064186320107831963312461228402720672065723954926709533218779786246363439915707260471045436282734977615099197973573556121038223494955118993127286630870828654543739786245490266343333145049727437499287118498936154873827289399591501442209339544004063756091277395888177059798762631828010061971294659024431057045789813589902740036664044376384844415192605587667932459874045255405704884906160916384672312554145101106828038295957922311585306009204711486015694964630764851950403031707202086513769571150030163308231331304319472832057334571791423034810163483469840182645333457674485406977887316487879166353875914916500679842848212386152318686319645376462982684675497050529413956048700619113284778496931247658980566799799386304014111556324831109439958969424267752993497253669024128632588389868639920038423844448502201498889879828547729454206677717853133286059745909307475531521645142714108571253935027718106682671914147386015949327229858868431360806507516305159113539243913573960051683445256698749098136652948422409553164170298281343448566726310071512045779700224134617505287351194431344351439827745579084429400160397051542717578853765013383865912112093698016286218392219312473603294475135899507113222645303407962027131425809702868443226755118672294123647881031358054444911632638649390640812769378471207107392620598849233077294866181580290376484743581337632925074124221853984180645380717618741685516735086907302094228371341630227682535535721937290491354480004471262889493856084733966333894231685393129748068999233642004980770803481558467705450962328721441326135109432605405232969179266460532777209629246059342705433822246277002168076262587057482014120857014546704138051758036473160905266999349205354258886235951136797063779773863292561936461720045535118294233601021044471074022068388152833026519235809999806510521462151257616668801711302599854736341792936196196931060354614307911740165038848659381348814918902035525186766286792637793044423675944451787591215220207000303584193225310220500850011616157699839263396204192688299183827327145290899366577396295361327773311095275209409617027870870210536809250164601110255165591150912562845717748496512176682074690335255882429253621662078801076189297094488384242928358001247398230585374601804890096081179443209385172574181888079624847360624964705074560941536998046555760637047644113545396485733923340375700322653634396101961662292209120908037566449554310343655597158823960513792126526753988608935995301218676623069061693861393489316689532127057026935615731141271768277286266964839944782927687563121099735621618060650398531312486415730739492836857610354917960523738473604656978203352502020469627767930298126884498428544936674097546885242600669639238163571838233277319652667419707781032966593764902713249858362930694183595179873542575178940305508108293464228728942484020571452063075664311870528383818485602105709020664270378191776517739141794601686533010061470198013188590255190063533724066854750999724254108585438456067481293991990015877049270871851612099636941838692533839344794989486249149689483757203140426174191005767005613117609265080473766483338991311452297419545701415730320502793572641103075948896444063142736674837227051068273263316687411194773292861563897165784719496449948503429141252802598016215645289289436613395972899510041656569547611753342199236271971657016964361076466496977854818142815192751178524671937646575297265958069221908779080279316069723290897042787228415950843803411835771556533621778402665731293731355359486129858088441348518185026442209118070293647186129393759564192469892080252021897474965855430209217315859676171531191654128993707966358644147312275841553941940979080855547992392252510341426314142203382585351780675241316296212940141775894320636031528694939288714565243507787123272867474951716762055335804822558585454169012573570506320930477035405424931745402321801162847699255561762131139530951312994760045060196197773006234834384261908371624958060771824896543237573203117608836140873777065416004036725912917554604323302562025231751350804836566809259005300266918089765490482785212199494957958406822559945313571923544764690865111664631594075014783693149501067849390333768094983074585651910908680720972404712289987271052990129998675264161134772393640377878115752320655168535204963564164107273574037347086490582617317308487384005180787897435287295304137761551924276090285310098138012852584056805288311832304681445413074804292007532631745784390763335359721397229212150334850483337851774334286554008917007601110579728477308379896584684484847168974045070430068390543495892922014164696497685675025944788976847318965599479900875064547172958420542187646783258915225957132900551801251251895228989331975312801466656997940691584231029069305962835097329939109938018841426754182184756867098888708599085652012468213679184866362345008183936132551850637787061971134658440936487165647016620448992787917875699008104329982263821648942833864012425587230120311923243159953610406571164382193713329513282670229847773138513967719821752307768446704774787275813493170132933873937490125468940370870380322662279686370483242489669093829877532330187834854541981090552706175160621039272220231415122640619518251322407977251557004039967464757739682221542068581426933650548940365296757268053383355874028530329613685230557784856191427656764176137159487052375900982275234902592160689536479252671691911218934481806191293418032485359820942125876973239163791843772354001150267410050631841202161887464762056839878453146523156153231834135796866719164500142799365988749846239751505835473262281583758108680618178170576970336638295414419298623539046504101056274219341421603956550170566218441501431257953914827151986455965191937953093360892965538700323481906817538692343725920909233605588737418920953422303970399201418366759085132108342977896266418134592111885369446546782370536296835927610148951362443744310692122169507665173279703254427226225375080602625097501924160779942229726311718051493508818422895237481938089086925879186925637969529856241035849733972600086542137462318763657735346554869133454316456679423386515088297212041009427720437489892437438391886064211601248281091201316507739527217690837342448215135919065566573318060774326013188204547258616302447620847520747681687493453649846109506335036949791469772421102063085533776271653261593445929648877547892141910312429253618426798764200573657875286606296092790409566061986703552832039281473991318175872793306899925733094817633676396962900749953301688270093615326258540886706704956965517734395236326897439419921277320659762973812505884415043739641543933120145000878938682267694285135476060953287035795296353340605523510073288351692117098862738949691417962536960981445654504397982370037464039690631445471705732936412752901614346827457508561777411481030471549421445571195818700009330005601744815840519362120297244169631168635432967062679458616356117802733266221634451967195807906963310050782305344142419211281087175372394529769946417842562668972069071695803134248697538432728502539243403105312523652830691777047017088250057715504580997424988512990878471013247568662010527382750938212592579462570259953547942600381232004256468928909981383637678399695460953083003086893198463082714850733573906988571110025568167026280880248270425218888565646334744335988077230348644242637832733943473539860559288911912132856123528680529640508293031276770778124452134094923577907986120413820484546042401387830994405741414697317870555960124601104104296745059341402523592600814803307854069552600172440564954216629643490462842753729427349138119649614640217483358193771573519544412538772867268557987913641521469843399002509849730510235637087940038152618783609571342394443710761417648457000013744914570417413519466478590522330402543409881355439989701532438142556278708202935413177120018942535664005434610800011497818534541075598597550420822439288828034487418212592225719558109003779162617221204739307192556466179856309923832244351115666197137946819643962820684567947154924390004839460682617082310249423086623385116522535301351815632496459111305250314960590410305566998443943652264303453712620137934137798245114979523193320289919672301941821475875265724821168953235016079626088717187277143876745001621637833822558370782211832131511683515531106254144157596817774532085910471489883382147366574791272402152558848091921614478665779542549066442060348053752180891627107656035542860159873589675045671445734145649197641484153877760954541600386879122008390144480301676051715387661493215907785821822546497836168686341255677841721127422187973662860465477483676129644709595784120991994602610431208305800991000249888565387263944356445025478082434939953138669901579092100987566281768752202857209651976461964910973652821471642350243180045739005113692941552102810158368936687373999720507947702590145827130119119261368468301067948263634745905652223676981558624004034739066570605226924449208179644421543559767733403100741818713268420430874236036204652245002356683605618821317017639840087735075232819697041409493536119686650153035807896407753804254411252040548222278096158594030250062760608111867613498622959636440725738285100260132523992533212281315859686792885871401552039589091157361084694351818042433715688981125825604042712383649993262877068263479514346725488628754798701023738248266793273724423069694331450033481727913439226244265748409755996007063646976406266745444425303700128629608250356572826503283824041885963868250830502715121642277462853636958456219289432675703769953460869090771263802426234577101277407257954902026005735324717622942960383198381497826941703087953264979139319090646696879933986246082828364442778444489573550417433244007998391863373627493243733610966431612748907568199549502600008555514867552929778851618714735534109832676367270646397896984160286172652930513495564074776833644769252828787450466437990283753833017308197219702986744462157284237249712588329832700861588070691172027915434047330143924888054664249968272522793212577493244408568952260096910930105615258246115911380816179711596342617305848249576165110828684539665709990269264195215523430589128250900304842149456828012959433834819146133812030171981751921851462776498025134305701358876458911916185098507220972106706928188821543518588808596896843281632103781841009737549982382982714916314699658408645121674210893881923781011601443838284931061124063102422203143841885433333965852181814289817993551287405651714210774810596666334873338738328431645753600384026970237351262426028156886442313447141957696393262093358250651909743334939442969802152158213519730614002353358662590132201446149681974389439364412703128001455574654839287361279737412074075081564277364778746165613630911913098190548539381422791032283518318609583682988868278932637177563500612604245394902372508536738650334718613858911676973928962493508021231353112025390915934229169584064022256493051625224344830397525256967259572390188168002111114766664932852822267960557605517859908265284606839003189601292463835295299479984890604723603897079891004098758704228829439816868076798060387607167304637146162447475294443889665683321199920135067288639011455625523309796934032132415030758270862974499569343594457858030066331614138448165340458592232187503748899420148289568095574707824186965638926699120849329458502435765836736333848832169182591906511277096228949957471256502397275938132280007944897625514910215055940165554983160488455421895203026520665523600090908163642643914596182024232591904294186859233622374961917274485692482164648967327805555051417026935969414247814676861111188942150311071764325374349368030523875232071837098422275448022686077161578413224027634024494289633442139868500350092670994781063336349865274815589656051865400084333587615095184184558629190031350354795915751838232967661273967808762166412676970183437777350167732409845916278672486001657878892761672806103018962892661443091925773911880567388552991789557830299965371893787837110263093818088529686587247957240614085783988395158353537714948084719828121531174831868292124145018651260157919546534500927434092951956831444722400128219987884810660801999800393039767348210907611173139550364295398850399496873884060386631471410215751575414513444189386207626276829450794574705197026775471326863348186226099511855737869063570153055470115686527924711455511738926491047398923795320784193114627545317786633437766976675526881801435436039921865488821168248467606380762925935472084319599527896477258598347670453386961086505671673305601960705834037566131915607963912249744774686500252768762699741802820786858202374708351965243845035637841679907793910858897488548541790055480501271972325325984200677628412606004195792867856056134517764107087849067198568208758355404931356346501508728648737319013182051522592766037739217287438001496155619299489978272946596711254796959207021221348254051657941069967718838817636084758753814661171315935599407838267342438336546313844392305028069212060824748242718015111636528191850370023424323438466378461470364563074769337547606867965041043220301177256032292210257919693853629930490494471411582205026553035291545399795873142539838661871228822430242319796382866404540344841837262933104530524367527792916104347638452545455133001650018571066176551308917495194614429257610423041105080136851767173194561522022019536377640681857118169629034388270199031159904174325662606913224268845434923955415191083015278182150605047204242926444013448226801859769167520422298838566266710586906235862907322409799500710070356011606738934331661897964773256709103235537126354882389967730992857062723062163524250826600461398900331572532879651264602514613296883263389023568049996776208956986446745104215869948397885518235313966971363645369926027708140713956415739248425642417230824594415928121599775103058788948889404517151789554695558835098529815338985435625770723075672103294540259714042025181338698983788067215735702204450763089909855306583679884188747629929167809623378849433683432229540521966267858471697265117440721170703519773311624193000649389569881672375242121214209774110754648015731781312855878096563130329908634251758884988645389967333035461093670666745226495572156291472816070762456308905999656296283365789785873163589716496789617965637781354943409931588451016524987195248178038896757272168370375070485735320452329352221266994840478269712793395164935650067040199301086828846709085312998483133923758769945190453503179991271872519871175015659248308417210745205303694210402689514016641257304655151226559056313504230894343397499664409157247040442466500797090913554886325897325924067625851020690594774156827875933204417542708242516745416624978838951158476406037598592684775773786862096321019405139512533273133796627059423254780139844651702410726155310222970928431841574727168731058612074454546721203322839630775342615633349259503905191950808808663806009572142697279520076778110744979884686992630437341256922188110814212639112642604084888087848835604285177350236735093331396654919538431188666044832777487911990360158098992525955753839936373822270029438192885037514690316781447643984243831314196286196253728691032814465396554503070845648125726311114508728753325835919581359850454453853047664837308828689910929616792333572055375364575739065045563410118601957107546759323217455698389321397686848656486314783617396050917805864626090374707022658918934212770159449564977531141803405416710297659086572201457792870060591113061809982950424534846630201272082998910195892863215208750583301418756090727012597585784604256196761736861364401746245621251644561735677361755748271191126062775302239759144064214785501523060196742633039749888566997341826486164936311191699128125411108688430300821752050279290810805763372088304213764857011030898768842134410471811037970678192604678808668544291965977174430512719003701354342912088194672071756567715463344903897072348949460086486575372625570519834020207393469438008290738172735921882437418295035408208014219440347687864406872077751676541037569490161101703732455314112835979006837917408326620447685209717121951188594173329009563449887371289157058645570238947633007537927489818443705540663443949743190070156533276438876183485322987191840473631952913198549494365952463156651190789154527570188602084679737811907982610774800711624060404190497832872341723109784496507320099420642085754531234187337881773573130705555332157694852142418069929369498706641259401926645581324958552479564396589185114294429091348894544356985964230817438838617513142870423410707546593063716222655565831969116774938635598823443997672478326964334402898446926953658609021985357396795875034433547420544452197421055303092606177660114485412491539581815927937614285199732263551056676072512709879478574976963070419908041907994311762219788572375730226389027922078381170291810782851925432262224481282917251940295016551602774010205712798769735911426530056150696273919104548925684762805717679055492665655591134669094722240206043955843692289638880474249508526449475677437965648585789418218863918900647276139192586803809100033027300955671657992945511058698748487634072255822001482527551685037133354317054725459596310182758023531806050743875937276023799124532475757616780146786585725903165855435188061981997252988066848460889112027302860314471821805044368482267105524265758985244189461706649494467652702909182316200089335590101521769987334390945487301538920809157597589701996668683508749625287269835716399297411563259540857198670223267670351421230078101953917422168436448513733851268368005904030151408226689984544210854211808943924612083388260812015405281971387572138811739927153688039802923088850528676910665167261422455083275358562649801047118362712217771532744214243234093028872842789343075157114636116907815921434929917025228091525045956742151546184066963122769275940621086005989350695865092271420846414718023618168523400095819605246605040591118593324405551229787860670762621444592010733744131270205157680472961422761988877932985093657513396143650207381036828349453412323653174297802598424844366068937426225725479032396917295106768089023314588039197269123452245507049490946107770004875683626070493507918900997818148422387559175783562853749066010389087238734456755832675825746548781318154129356021501151407909910487496797267914963713927416787364136294970141851986972438600735626777779028111873298398012602775585443863461116772329059984874957592960903664408812313469331414381319606392834332257028411000013146360461690994673015728289444974699083416707744552936140378863715912062179855831556451202911942254453058654385146054188211577101368825912147991745111828850542857851403004829919616751922077444082633011777121329028165697764900642606076323710360383128291861719582528048507588132991060362401093433055115815766882273793666453414647009453175407581093985418106119462481198320430986881371827159859243854245097458339582594609859309861918106156337053033160542621032813464664927447435169541995790909354195343285314677556715185965836574114517753703707254334092622555508428766555804469924756695089333151931298867268851354214407124891759905057082018051083687058469431287392592464094291390655088109781603654606124723344071537580014281047034154282789097003107532870695612566144606142074242735546170974922843112553462909423311261785934293600085763138995609354078409357807635476385552564794789063401500999051910793683220177222003411564209989065288821216721816299986252454353443800795688059720708070166941667927944972400014436395948403564814016529467586564921916057383274823712078338962275026970272901661659298020695123131638389566333347673444928678652995325116884624895667012547030123679039212371506943739357024167083877577121097699750932132516580227366699936464119743521569453348975192676390984210230495156267391436344335189733376154775518933503151806080741460710587610219816580716159999632285735792231468416176467430409898693730971174234797231476861149254856782070169485737401691952698411523268548690262847860936513253113567237151900950174920465006040227830850119031002714661505381254275241542353265718290044402446562421983120035951963219133709031349951189123038465571373809324820138431268116937965057199757923584214454043133566701257339666357550101819702190814301829397062993619986728160633258906409019963953671663114181396745795951308179444162953535731031875627238200025852201407854135715346073554651462507000197120659923121750844795797909279053671034489431120427085912333359887240196340834975723501714924823739340416013140558007372222507855795933984168832127674479669728079969897034055244162441960951544769912565698505705806946947862837002205037147332248147956591132833295470808563823199294879836903569395231032140833441602054853931924646816478991574874355046023673209846508973934624731456123366182417223352575901898232990172037380317505092788778403108217211467428925825086007390678784631371655151585298840827812463597311792816738847534360533440195644701394800806193150536529396095656847645233822412325271294289969753077661616183152768287807625187511964639475544450480682148878148325775985810747803784534509598445114957467426571570742289595934567980507896544338775430443514313874353464889550339742688534772151561984805028452554379942395609979845232823024841527056550848132517100076487582758368032684941887317048072473996286645927085792878179121427899150284840988199199716766336270488470961476354954302773941744373696956835629835654091735754761630359265129628803169629024750629842790197254988536572351724834322933785070089801531406732437495474576486837953109995161201733139713354542769225923570870236916373462632758086610615565876458197328236707173161856239043361461109844626339122917152120477407879255817466269494801744807157251115249809185445588435242803226492473227690347355253646742450310368963758329044976037947406942832828307381501076500535942069441914652021656093467363147804423173248030833029391349573438606477819061820183824771646549747956847653379861728919068536074671505132867151041325090136592179618865802233979016759293834002362802702410889975334731787972441287697524646381022639632757584336494312537178022968762492879974765192802509818164900923913073891564585194434908964011230820205235650939304127111880363458265832080188315403704566898745781781973209611690292596604308721430184531647122914191838267099103726502478913830953635586099327587280704740598417628617998892623590289988207925549535584304736891296699228340237692118213667241473567842607487207592611553944502531850476509468585813980859016748799284472326844437449349408009624436994081728580692431811684275924796176866828576554738972808142525477297216960384615395798031630093255749094218250296943607236118500177533342323431675322685200027454074493074097320891026273417494595074694225492583270268594272153242061250132813956848302982869168699593830843949348534674750623748254872544222482882586500763188067741568405566465573172966037371882825732264775957864385176631432186745740036614948133096852007406073787342674849240727932561689341850778630421574777637707210716205978436673916209024370849049511477679412976201022115735610560012252685425581415991303968215109068024476901358774996650023679608700222579880052762508160754955560630099178773732659680241021590327187020096049585239937652561818636222175993922574148088971484442603223795282340526424472777122120609309990877054508226246362226014022870197108475096742305913607465888059772261535884496065404645152804143182339469231662367842091023910070835847601415898699479082499082693620860717087232204130206917837623704285988932551866942765914521110448097004371252762651569413785154725974571685800314706184198455121116279504187012005281084246228156889480102804563033860871303450507957808412972470859746920603376341296171604453970206542077499208296566981291323017716193849162465148027629538588532249329783995108275556985015820878250407258286550919413023627780752085051323582458970872524340130462033904340723488789438148882584275156055000889377561756137687572854984181129383616871576462598717045050955949507176559826856053218638687105214074031108979522591560916180368430290798336476580483167673878300423861298106717950259452609512425422626002119461912094659672376218988892869327225406412061929665235284084926320940224508302918419821640525343957569325263446116831389642268355103178666976466524512427294327304346222033986171067120029774728688918718237725435045318489686808294457354579038247261765056717843701861255274951631268565364679064772966759048369470106748300937218312467874235377044673347422747279687540939356044772651779023185559859241076843175210297006885252147553981568173121746394097189088908053192331849252748463397325319017883435858466764986016514541320411515988361907066452328770946996743565409377697760356934253639053954912196513754174002228228254937953465091706776873906033977508799396524036209755863078607137045865990589232098901926962127211176026405686115374647424691716293655955391767518615983439070810896362621597039197883659016889130738408534786226750071932064668009761463241560492901690043672143062668499713117688731834399801720224606003819013358821238564712007937581211046408037478707789313066679054886965792912546490249225995869943421780259397601892676377412639302834366885979271364163544149274852605591710554946950515212427018763662399653891795476063890851074568728133551126076375944477497538011202010182562732497951143245066396681204393513290016723714111034750949485298641218610560252849809602141780358083502054617151114217899013737244006938959880957921792476887760068139967615716306572960889440570553784861325294311119852905661534823248468976586614006324387777000349045875831962045234516854216014148147076389843340821139550717440204166446025262545641757128297565353816646158742509284050927081102465628249744319732900269833368907863892104274639754985280526837838240677267361651952060769831389345833281492489055192401255483272241428139317190548735733890711464920724615978239709792022183833582127021138140954180568755734632694790826978680424112668337083616334549407587795916838972595769245785986441780518448915429346545958911174818478389716963627563132445664538720994519736640250953678856811486511300469600189890550446566396556025050876971693535776690149725587421058455189885142748333246988721508860590028201617350300445680999951247525977718408554781986005840023089502282361381693543002402171050025720219325095968554342968708261942446141476692029305019536131284746796153508885362879835914772982404574476320496711514094513772047641925452234949502837270747817702078937960424040220411876664763152731484135486957814841341258978866911365483267917425883072260411709312320786853902296773764627036631756141316779147417456076894111671103710527824466261089076753565369497638867301162131511556594041830925273501764067961448388986285669377379461475900362902158881219544051675060595826795978131880400767337414993551576007005541120150588012272973614626854438092209808043934655306395782392790524024803869179046198763721787388029625202703084726600176962600906926688559911478461867454551380660000265034035056397238962569222449869194661116071575748088083910817986135269533837576843268247126776975224868674708225366977078519430898699853293641465616705613724336553746323667417503394042845013983061023812879102867337728122530504264304385621606807221302862504379051323052282745949073728043358294649954194950099934798295662917206817162763811585314506367286624307455070581248365784917084556146500178978522080476447059663996319585672697999443473275551944801766540430129227190968608525011520083373511078970541182597313405277262750901860300850539129086644168321368855423483186108254020761882302479375770380423041126500532541857904194705536125001198885622140452124373430817143258688934444063672927554895157049571317734893813334897019163526350279011358466629570583051478445768159293660699176027652497184362000188233081591904005687001603114980746640462135037167974453056561228045541629273857787598272948861399542814942430955910209715436755286208641818137416193873019443744815413704348560075392837850941965558890327812222956989482276369418092558542817150206069202874535026821663556007928171099410366524214876011180918035233532642641326365609799365426655353612169366409676146612774707539458275552684564148310838569492626065622017437447760424729083617668059980164502958827771845054895028154905827513958437033513847724516459428197912340853442673422295387777453067262945508542792440861229820705448537266478033572423546066685615384101750771428946330365746241195337532593072883019469242823217691724069442251192207985403767210695206081301851812819657966915583679231784259130000322282588766972537204384398931082370183792342602100120404524605771026191298889485099364919012514312294355422516996156945109058774506017993846065867129742456308305847077076917247256653904617507391903730783950397340927772689379093746189203200390602730891228925620662490561282148744790626052861317783709758128472109127843716037344481659455384574587443381571367675592931493394910606835974403255309187118482937551905276983205827320253246184610143990512762842535525617189946353757346298914138255839137398153143564836770329737342210642471676653843249514666779843654130128391411691727851399987607596285653237340813511368544612185840989450367395703387900805730532131710693815728069801081051392321020719754946732374659705788444361375960309606920430297898490892071611507573733103208544849699730829068185439224939544401973298838395724724922748674098694382474454658853595793358672523106076289952908575577632678637786241812597532793019940608377829100295415130216294484389901066564581401897841661533474626324530440546892747147982040413762691378484091935154296793391371794966600268649595025620130875119319302947862814419423316903140871153995344832066070305368714690152782056492312415156058713062795254833155698736424215557650373826353331630542154293399589492973904068086732136707718670712146278915277459845355907323552060915141046867977948700739103285373642171098143070445356853790640885542133088628365813010590707548467442882023183576896527970779110597779344720403254259972826865450744561657138909928450984972115853819751477230896723599874075102266539178306721302934925120807913319441122115085947709822054751149220384058501091347507191319302212904511587266349796524090990784870125115537288806137655254134885138958189796443009832797992260419308409036447776876985096956754496243499454940958722073448414956292244811301829011852659754053580046321360023575140259590982042001745824150851458778158142819766868036365866684438378440806445095565692088922493233618320376599686855404760940761036467313763914910654299734967547202681584516330593400025999965403403444964812517605816254921525474978191195694571442271691937457550722868288376128941385404559639906261087554887927803965904740871553475457157201352786808717379355479565332566466049193163451256130565339319673516313282559798162241634243164085415815900540093053178974307250779626698371024035733132717002739020543296964132563177388808640489315804591562413817813460382277066603069151377379564523506425366850079627256549859274569822226633592562635760406612590259368132893147938571524398550811122196319929378369891121923143328099137544563612803792216981027099006637997554605864630889775812499942082375240734178539425396507998608141443731540358196276594175537320984599953087643488129575626834948272723576512876840693077773540791265129647291681709068651387683811317328580006127857682776840726035025707510575703158737899289029650656380393635225163145426099254555276693251605722948943839226533383467909203916084240078192041375460252058149876301369959742122223636605436135628236750884885979053544624333170204490259302740885007598284278835086139937459322323801953874401862410685466450604147090270525171039141836566277451089326759829222404594841225106723513858000849327630700585636654873043099011372103856971196606812762574942639754547819821184719468292697808063821433308362828645961498460304285327471117092282477704148860694697968827317197447998060748308525847473665767861846272379672225193935030055853242815804147382098915788896281168587082778172779867073108942938787698985520390930802875516026733444026385185818021728718879164482627817411081654701942941726822086982147623303928012869616128046526272749688675283250390887996184105984495537798893351461662550196152553780715182712810788755975314711003571841700358292348351072963301017519718664718168659895748888686686452522222793054451874161096803475501144241162021274104011859460713167851574054700335658352698416405615167888660604387088090733762120137599815716401971373504640886396671174417877382547956475757519163966409181089439003845117408960784858340116556284704981570121132648834378630115061645843632916136996314203545926453055956786378019552152327527616863656829433719091903791954483486665882762403583562778672806414498061021339817892620500848350497111422203537792199923643172872104818070063737690017382043312577781482554294997347787382804810819877221953021827204531722402643469758582458419783328976358222760606826383404303283696053185572599926877182272973713182355950852140582095781418205848754550909098742867910351582862965825462162469817501958722278387627918594655689757464778632186312207405978213644911125228841597355583429754448738841159975167170335462630938137298692375601715596264335724850118263342013186283209936556063261196770615983093396191348226771638863451934789912212092451941875618032227551856304059193555768556435337920066157378485051563184983822270756613501198825014449088189707355690269583830268336653855676524586063840133060391394210141595245855925757727617975960675568692300217917070054523225599517225830683152799273623271249666798970499647084185630781379600313957328399806974418015597548088057735013802117054676459372085056191126869266098135079392992505075820512141255726963371464087864814292831944846339915565234533055570954437532231417480543671069702344825318040505876202446931820138958978981168053011693360241276256501999756619369625516443868169219583244262001841582984772864689574240650137869282132519403608839204711158566593344525204550948976223376423385317549743454537973247336565271716363486518095259596036730665970707310245486674969843493142197394049488084993617570471285011871086526282135765890374311812202594870054131908255746064258590125113263579891214426306570825019218278964690489682930127297202522017789085318886075021559088020931597712720177872879381728876066655102743778354159928556922039262587169093391937407404460961215669692746585497374336773711080465994956625605222271263368572103070946891110974217823768292481380040260368978025074631361188607007078872277206885918901901326442958425918333835499659814132122847997701334203267980494099379705698021535581185409884434238705154422891743895589178114322982850311076427465263427602830448701106908793553388918793578480482824416610170650820866280864128933083552397553716909225234451418454354869883093368528960516732165129301067828336985799212996143889701939347672702551609402250147976186644719594557069536433585117814625886463817116475918721314880034345793944431191863847334825111371661693270412807311027171132193763851672228593573122317350317312664502479444712710126786436985167347782503535557629553254766915431081722549361050336357440560670748588667873784713268420079690650237983318900254480737394729128435697842949443756972103583088571919713543907329544728413482643048534378371935178629631183011302527782476697256388976051331149721898330730939561279045196752269556360214763864457887451117783004384245077635827319452364989888704172331779123053191245306176619063710033300391892954397601855835047448377540049085226281687347982789804580278282666728736255810047415364912986999523013354072853548934739414373069451209893321337557618414470044713860805185250876464811447944235655212503461321294859692369258803465065138799414324417120495684731683000952688768272965508319250892625077258323102875954033647092586970301611141056404624476006621875765822644181511783707791320924737301551068649184029634196906178810018091599574725398263429729386836647669081291009828652019713546465659979127370972652786959138673590570155171856220028600980938797935161712099332428613712851291794030152741264823360135410608263659339085524394117481350428304309400851610466122146575586840628332566524021074401865360367471703310554408161209397932568864001165794137982722583727610075051248452340737991109943290474011330689614721609220395884349813085009470800336287650480945195689854486700638100154624225918279786183656467519949610894256226199758482814855992441693248054569788177495199549996148743680637590117905348865896704000719436247651607494928024959640933845034811006785609812015930164069767880740151638820996532576135888328778577766631383639092016496873633685184950607921206453976299810411678457126623879653359268238590600810923643937062718113072715845525121289065040464151436845274586440079491962958293013373192118102734950241384271039389355339696244354509125466082985593789381268352038908603470618616489086555219632144147890489140053745685726620112693036178540971381291735158118083354361006138230135780633697373847826131568308608725065208726580771909227941678225918674122435600802145928582261661747146133293777383832011968296979533396311491707606055619210508133559628089030231744335509835090008798905649681854634472610401999526990815883317416496535094476010330311601859395411820620947022495130044777761243757905183197261857767652759945381629284850309742567839523619488700614098635562329762655583587141724764907750603509940183678257267296822827579187445986421124927945626393326523596982061478045989912956881675861753181915423427518037796629242327472984353341947206302249426120233150874481719226659717309347189571820013915833350284042359315163062092335973467346826761815909002866971706204524102252943901491829838633689227725763638657001717361358388837133165746304219676245161043770889107932202821585042165951257041305434091725697149246051296604891815017543356126937859178560584130849026036821959037019428565442949585888511080911703599385562094473140548892428439213552336917648085527516112277883842967210146914904694767629902493290375620531356261016762792136806076988998612887105051905278123125163245832482978625541488647544179892677532111066350579026572598225961677317831319626851132038888208191112545957727240498194521543720295476478413739376759817153658283611621080451308921168919737278676631546815146569840731981646588944467776414515452380399775130636498724711589900950296267517357755189107599571001019940163142043601542086596149742611970369623675867913928465230140024534653100529767728850732423559796428110438458038798557693235065856527007355132166540779606823017853421916718953931373096813371698682725492460780507968204037413371407752796871603855852847205310947866373254765376164540060603748303220872514776941324468550915869472824206524651625142669467749400267220958940791202494007918817036006619582870432601039246891219350893534189820430779368407085381983008954310416278777941883700117138027859374211210972700838894699544191338078804807221961851459701184501480633159862415034709593277674811275036024036754667400530108779525180378272576096947562658228155650421098926415232728369364220745762321967060543709806168129405392565336690483681953817862618949158254975013530103645249757965990662710053296449768181521849211744809601849146357018895525752539580347641661489045098101418880596337442917499928829441683882665106580876493960639394156344476297640883004439321574238278339585445297555012303078808286145015525796102781099766213188963346537353500185708289762784865112232021728313769623499862146517755447554627127001604366543956209172632651949323233362109014659316181268635457858717297064287876667454380690032348300437340848636379420229385779225652641709221055636966798943389634311714118361623987850802476214000993599798049449000563446881224532589913595135139430482567753989224592132085186441900223601540630934860895855520461957578362897301508883979922477723878086769054237742470448026299439407530172355371197643738953371766413791688193538767410407386788823674673944277416323157139760644802860175033894713359893555424411339880902212935398126396976609616467048828286223663164011456196546498499707091977570058344395648271160738497743443417936173839219600751529841118241422341296661554939661574753058146675468130569987883735856274534884672153100627148834006865584683725219188933004792373516684285302213815201371392638696017225202264955562649934250974130514269220370131005759915981334804628189271210143714350885008443053348776843556352374954569118128467901960855555850869320303513006442410629314792166588601755788228329491875148656317358343877082903898960911208767580062948468079754579129495540741752225568352126544614527573577470481317038462815680198200593781680028143586335955530977128259323831297657783230736126603214927472049372809609881254274585680690089598593379961857262494926566300628011521710947319569752676844717868715558170644148420252331011107914253577268789376134095498443832834404517898746316846452765966479397498316297262875383211976029299987395766588111356650868394200825110450155006599338170969107519814143370677511264546674506565848303488425810650122537441366381617749024409237382847075461517707440521960918924404407750474737922422151676678265791233475530134942323638933012598533675535061803761743698789119937628820220188622464835692507460646599168618717188125382816916271300643561056002347633659116447653765121418676176450988371191402761170817058623686806665120137544855739091973751278106813364054324310278476813553983907551170954576578604369042427860993732484255416515134850587102718585378451698323376052888396878438793953095194091957415811924350419303909207800065495458932595723368422462513356216519600272723783450213556606334532868742135130772051612192063810192238957706047564239049253048618988302063269047011979406840449686260625077864013070573024731898101063338512841528609602100477507143697801965686470666684315714872305615795845984734414010028856005237611733296192209963053562705583739392313390288091401295103185058262242984603140213058204296680318207558907622579376235172276502904633846677503348317971998819245125717814741592756841076763594794097375511448123061608103410394410782722018619501340108857129375497448444112753638056453269241663542301297342375003253286429563343267618631902505877117514354429238373460579191186841629544197339985917006779177198173504698398074332603471958521598204475845759802618225320558178279204473098276828674073998973155794911459384758216948966438483963413574385448466456973635099290417085447761108645672487678313223777412440802233358224110807001378621807583575713845167747885943586713170417026625780001020326114778296862469553742934039607049861535472358523868823906534831654275713430675116481736361527679005094616698581283218880520897652362334717087961117367265921467224616590189050936368511288784995799026518489489134468337889465827447767285685715150229713460480873823227456487964221059588064929362623532338566854904350652140488334951489924647001638344981369365841128657307631630407375048377331496952582433356123745755979878845253639608063858846815027359766403270182937699357778523968311060207945406890110331135454899371004164809128993097271088118839074491059865085130889553403655579253119170875397724504246803439579892494034748341201418219684400263212446077644554021648432358581726445819080555798001429467885286497781762215945641544612028676715365612225752948020622877293262670492299110566322273036049393721902390092947228476186959158958170079781088188785036873874818392078069020846699962124382777734353690209868479728747860109688984524412039456327256124786636349043216475109871727462677790328675909235278310532595916941198610846372770674657564143889200944707348466022467669681016730231721495463050706880872667790491659961104760970236570545855596060890345795208678762892931083800153389881321326932170958918644681841565757190069636690946792870198805181822118654496292450523465138940370031312716540013124937933316402895005844691346734754066430578549762245694732656210756504917594685117796105120103983142302096237160870881020509604167613542647183124041742958473032892362510285212786711769962461612088540491520772547653707428556599897009554029234855137303847812211459532412355903775484856439904899698681620812716652016601329923767065328082899589488767497339128068018645465187420698605579094141102101655228221836453181138393888400786084301683523600940350326024465031318574708507492141429686481242904042949497344874204467457876760532113140076804405894445241012778287139008662118610775531846280827940469708296980410920926267762442649978110644698502062276076799404015903048482389545841200928593340113542885141201009436919222003299359837970794556611450980502671385468682357019712329429723283224440492950558041005920640532247185027040115828912135449527556457027582911506356315644482191897838605452736370371349422585970489646005465108340706578892225258049317622181879582769496164745159616559178894302292630017544088231218401298386542368382547927163243340721198495396000236250113939708047759398840114206154634807370094917874264859199697446032254113809052930466495413669027201962286811562492100258370678365888251577093194995446636887121612347768075553834846783140888445848894842033945524873027612618601060736664250558621181670306461796195321728623779397631299670008703086233323894720873070499362612646405396948477641836300359259143591308882161484369831700081695325605176434670166749333584331047265649507131940655975780850391081272209622814117871855609058893610406634612749938172772809827743265037989586942150946159829493252497638003139163177905927690308976676037295565016981680394721402844528580103691069913769305447204621040379602097057183662218031440395130454156168224107943614193648271518924536414813247997210900020753089328122864050785006524848232789585569912305321788503890523201181358409689468494625472802164703776632685481773578800815159330335587234526086602106183954200134473275703291413505744646572214093131979052692750721448794168614336183392486109750520601481021339564628425934876549004657713286886209698960403917583689539528224518211330789497885411364185078672105003256662915368518945915328540817851199768542481470065514107076505229787243831111757053364076751651891804691540080694677445066685514560316939091940216701319833049527648180773008331506104311865462729269378667364025807926693295365370930141604247787622769573132308311128089453666896607827555116334882020929421451943633183551523734667599017021444491376887464935578138896560442807242804235724710387545183426242970338179130917120934867307342224874291541273456591327582853512685497471306131580143655017380020615717908921270311395341077501286160164633074023036992001957039314452747199829560721396336749790120073452004006721702012237873571518719423647221656721938289021675205715374420505387295795083532636064780181546236766917121173267928498057702411914010446172595334439422692948211402891251696323720926663040723230610208538255042144043377811849989829329771356268531451754906253158740881570657559852348785612174872208759038641566479033140056155442843591847544340173324453367708643031043991855917014743940877764764814773291762922539292088479665743156098650256388540195771325498588248554974990923328450288777277389268837676822323878126297439464208356634543736244282452541749075632315969014913875236094504179136324766131812330003552143929662638285273542448473547337681739064598487929553929186966976305914931425909484361742000160479919166719449404806924604145441114335426152926064010573480104929598400394901445708277343348784861408463401744957816242751839748484980497240644772779428311104264401996839598873978269739267545872666645076078430001666103912557027695511968914055772653614330813180929055713042114476025429127284292962608330941702594747548947384102235567037308982710142482092690267016904985581214031836895229697501345776024737130380330909419960166990950960811366419253519311372955948484619306249102651389813353167878720884690871680029869230044920263212980071546310408789688784694238538133913339180894122570734525156138969097731509212603413119050631929670065418096627122531848695677504552823093025036064385113755727422496004545066845111247808574258473376347089257150774763190312697924903960393614425072954584642652094204820290373992923536978727695779331490712692695564385222559567316972628188486621830018778941106256019101900586462983687644530829417954880470422402040114114811367687705888644239879918401178106619559218855586170442136692669009951065335240160734021666465139750221069698740906364551694586517481278107126372224517550209013318544437420586590612508655413310435625782568066732881890360903842427389467293421544088375612933804229382411116468275727617703831752647987671373945774272897507079750621605235873113289907228664363818866602642696424524672661396059194417274095907147697326950755154460473133220228661121036533686943319689043404135012766251129932481980622999249481814815539900308662362424434771621179650677736412134040097443668738662538466011389241541665503968601843969648352832943915014101706320414244944311256024012038022736614780966052252390352519118344505662747459182383193013986532288763966159017832398744278219974583141442244955202340051548315115185445104080077940204845318843046006521946997003656650140038259988848085175240511469237731356257843228122913954127078658864345619756728056011062968794585383290846613182519436312845433486279562537360240987297257827548502547905555285425696903183184091617789932796846672060488049626332953322043138087280543791240325035722135748460361441489711667919530449687039946901987279711204092147272455532260208207473031837846091277508346423653823232861441558784702425910440151842515594231302786281753438858044402189640968356761116809814446530520847475145999286087813764792053937131104823094644221737477380261065219723063894811184349774156882321756780597888754666086405792291587372961592248480568190175874343563465083439287703387767083839775809773907332086601134089412215283195857257559997589851111184448881177170988844875869744026340914614153133544805670710796456640629157298139866378784546505576920264621439736895000598874380826581516042703857809007787556008499765654418052461083845522310412795402961776585031832467888939580372630616774896798817843063499404079371297608629886905694252949634593832849629158567330330599495855771001302898004521610329522430599507126426164217445233243906426659824804257465648041361473609625098189829668152613699677884359535991011505391069126926779675983205234299436009244588039667657795384008030660850031660698877575495371647411517147626158085333790259671831195021897219440691179310621944346910438036176029187479131675060499990134744661301177992603562406381450190037919289709336054978283428170860052692640048046008017397576032700887739529324543074451946705680439802835663104014816019091358328615988128184885961241940701271565910634680021696709874329918491153408786529077767033818104957449102086872683489949156006352929042778837968135095593942840991489961792872745491864570579052612491827371600107409779098707022682940411267982943034699783967471906730312388113486166415096688322558042110792991846122146076887972522657525777693928199124782253843617532160099279881889061274298038060736654916496698723573572548280000161782103361952119880473005348123634860549470064554653184471890560564730323963739942702711974131888001898149851789742921241725091207261456155936248116667046989043407877010512184483399813844594683581204578998464912060838712325664151413250277300824968109206061250349131828763258960587468830264540675389001203246409253493987106429855610241089710863766881349073529052862659841927840361489640332872675675794863314876321600951909107441062708222772389960946346442684794432853099509587266653280540915199026861125898997741759705246752787158155375301826362417862795973352618839823000459345722934051438689752779297048889416436390693483705882013926178448777826887563833742791418537041596337277041224312491240753342697678660018044160512917471100630539253959015357032622061707204547930343773044611068600467462554569782903332662230937791426073736896776807208660175238797212278883975439800728150437053133231999320909970430619164641950253125378958522706739282864299579778851718621373454878555435489143001325038170423876908270050353206193305345162879153009421580030294626150213841954210899397201974032987362440880427996149667122765416645680671262987354668868762424364827451153435867435086446412061183948672826894657170881864346347150941320034396290448215110798863858637394821970510403915628436140178571188026675801830285564676542506330427896020910244159629008873892492447959262504636650140631093857345788240300315863257406979654188303835058289051367121857487584066396424238650931526218944872629417198475039000723885847757761644347673403837403661885018710621478501228451712932370592739328328679640029613224688151535982896923809622279326419373699057999962556148630279778378331530513569948946338344608785545119915740246138325947901358846752334181704053301214710119910837217727267975430883827038787767143854425524116251432254696541872838529106657439237092038240456289255986400632117562596336338109268271249028324383067936579198038277336302777863814717419788549708673013249169930672871729777907619115537785259901221557170631799518195018442731267377287910970113947975380270251681846404086821012500868819116045976048856146543503461855091353604024605179778671882165182086551723301432672299563924743125817711471052815594772895945227453940041719904257893230696323603173266513208339649067492704485661359532020983115028090921689361940782906509352923049955298961713071936097753428215556427202075056428248211705329322458336806674147959078184346699901808049383512852785092775330070426467805914422238627583355197740778342628641336891010474889007267100694498357465199631485082262183377355008933740538295747890655688800256871648426505520295483543329349045570567527396972070826867563546687378935102120508327354646474963503099424415780983811218694067061710407598509801318636745019767333485614707751114262871992123563170929593228740881607767998429282471203016158598683397837323217160319927054515113682822350723014546096134313376513115400545755147895114561130817331071043811471021463648318235053725972229378639175738197595519890611185734054361852852640310422305620224569617194910204101166550583702730427720916727495311833146727884270439799383614166038180356746815029206628091104810090776937863453480244943685287019929898373075326211534816912644088771361562693610777705526256547664289952448248701241826694431161888294573194608750275939615661256226751217269570357540898722932985478657569053118829343979078543833138214448358318607487589135461459252307074441761845588772899246246784686463046814122342496861826904685536276748447373333022928538624514263050008567622291510197623071505321199980830763324144262511969584662839134007001388120705431391258672548339040910281563565138368833569159275542009960985084934094074892027856746378098147953103044104088820812498586410131485915199165204404342024934765859194565946790144199098804540583011809085005176247808722283575689796539295280887197436706959469034391219514412172969020371199844677040625051286813201777052831540428188029965639124149862413716959191906064656121350723340479806819341796520270729607116435884320019946919256005228115888781631961779179677858549039347412804339160988547082365912352176974760006678137304200072568029101932083481380860733094873967918584076387582073196367724845894786426661118118752040476196630370012445702152008553659350140858697274983810831371795272752203599579126723418321319393566520819952099166120331876951251242157735230201574133153424555914788901607459153422995374400172362794292540058751134770189628768170369624711535753831423771734515150614853454654778969173121120345265053189126689465021336574188178203396521879195234808565901896356305567146854689423481512699681332137351065155669828953884661188721396725538016986419511081285334529831365512800363930785998065294986199870620677024785622671941259948928706205463962069274686828310981835679356843617706288343198732833800417407902241698185490446925875808914592244190722205237223135591037366769228532296327190984150021855990314291896858923370999292892519650562023209960329677494355608221200647765466849781001435506188005500908877098796261884591852028124953881334689957939922543475605989541348443158364152900012070999000508179767431869732452859408069712342114353043824762500930801420711023797521196269510626988937167315849249007926892744718633592314601034411813550289864859796532484376721407077189401590633261612524193588701684458027463144302040240933715070118243920010275559655165364337086849739105096216258059240486734391785168375721086305666670572213596814598054959472044539616261036512877756253321543190760736439563739651804378185423556833004972384290899368493899926985359451817995129931763297349302124355738320428071352878694613326009286466954386051560759462898411903025428663278159604941057577688155669394930959572664206532536364772204792796406563733493178426032917140412820294502668232554207725857129596890582017262961839510596997290341822787186403873091685945295419088921077795434854813500337759185597541348458505174098379802569775901485325132719695642280980484573291838126664789197924959990765985152190894395798863845364110561249224874806040282066014045360051297474755025723425728122022627378458762479899899162569793539647091069313507396096051394381110603986882837279358879388373690470697219374424293392620530993156733835834623385523689070459883909877612226260492665729874799632261833376953967543708469264268499631202249687334873720728081871051420410811890835118171860548122678518873847470454065818193916371423874087537324499236517552151825870055289586828110124111744878768150289126000425672846643738327521522876006268450914127330728271776785311239006896532240939256861153976170134072159323615341547647834941660240104525510278952175152671281116284937932624875064946477998305231062860545838327274128354180475403234792153113430560981398789993633318115657111699788065564173992259291808879678140135839675727266990487690961906620796855239287470311384404493968385540443999452656121005732647503074986356400526451241063488648230616271028857642403308864870980243003974412313818533524123669156625997839442829847253892943011177218176223428060122154941038432656331346469482745928567007656194125116848429273694585814373119656416208360153108783459817321017243363969320363213755684036428107941644356546030187377439168495922580628602624801288219498998502674823530994666432407556526224866002695342536664077951799076980184481622436530306457530428341386192570320077932915322095015236143269790912226255847818331104647166031586084875587713645666346784415511800371407557869787477131679380535388793270966250220164987530545060271503759078053129714075364806446380500013762774801278524161438703210429101550899905995259832791628032294482996619783796848756452255567183264144543795962068213077682889435122469658215184957189666345281413893525963967985722992981954563088560581602370294781543247296033227565282433996979479441323584086708129268599487600634395617585522728008511079997525425007307728536584035938525364646418511641259693044837359541946434242568823093761736789874433055842236742556134298863733147029348409638913699019505041700247600257976231420518742952196508811613590051627890238908228305759473321820698290631756369541962290325462777357360230941732213677052213033174976253605351791362600472975009701173836070257911895618945625523115718004380232124706150280269969471561326673415141916434743414778530928283638482592529386033863910509906187544057225744881223695037113324410619805535175037306016237764252092778674161344278015140409761510852218095887936144796358138791991194575512305238166326546431527723479572267092417345486422798759884373010355282009561241943246413215611817140059928266144861185093167994046943845737987932565075192158073041090426474965580841965682970451281032360271768031752978653242363104833126022364236520596816523292864949360057110163255175696991033797391736365219931264517807870806184688060702736913742904786967300980385803553968446827377977314105072694730407566964565657985530939378279343949584994035890219748307917984291248680195135645024890811889231330734332626737735097880290000579194542450223457487657654736760463667578596678105385684014724207661289814299071297267086695262179217350921192468165709094818515091525734959293270131514868041343141393428603069281522053315592259762945858249240505594206205616700058023458243369281696452269201914124939812583668809769838576782261522839166514752636920523682793712722890929289702431000510799953018071100005652069450060314807579940150991826580792562754037159099375307216508971681115729188727872076789074885984174050743738972593391964871931023516291574325573915819069187343032076147209007564733885501981897792689325208799832334588705687119837355282378463424760512083805034513635380949084296597926053737997975232483236906066331367155016245761413715301375538833606215729028601426174710244903730995313039724217152464638134314865994923835730489468056237154432110849860272357702348947358956535516256325042038327041065803670295405303580247571574021113071024631074671346936465680443976815171048907534231248062717631123676951162459271290194680022295003671485990411299065042028143695607057619770442852500616540016139897056379962390366948875446960946282419639891080753500353663394177320128467921452517392450958750911413522603056540670010792844728930249661368255274012729050606886963337600158301571910135159567721095896393977529221444763171236946987020254755736845988571283514130019981839937958954407600041165842576600270035921045588259055617413271341768183609562720982942375976190236711068885711770200418237145975220696235264977716278606428213628188267995885635498936301111542341963169469623475498339815064265159675702280852005468261453528044620197923182663553966061754447722137516992300411895930640208911837514770806934886113616513756486026479409969392154335123223124980022783600041314147823879078516585737454149178687656125437530470443943451875095711959188110402511517664729880122609959849763807024238049084509135816317818013223616681792910198587197293531419006945471481203975917052580090296552935765903836587320433129485370561957255687716183212173895703328440363543406904075549051189831589943379896021098236190398303941190367514842140190812940985989907018447865876332171674841113407868947364414972643829149300601422877586357409616014215890753066374555634984607579063921640645323041620258625727541529600298058323663279155281905639361461191469493722487547890413998325079438461814245213268231675404657179865971130465921874116264440075066280054353498478987923011450147799307197857266989673369446457766674860333686939462512174312462349687146453123769510301410676768344428744913289420282283822647120925686679336004459096286514476756634391322188305242780495297359092633768964209605188945012004932232176766863400902285658304060413463560015173510285957681131092012605416484808760688859954156641839075193050852024947435752388661900122939372020484191505926886595390328178167910055631770306905292796830379122457327214132953940887829384135155537270222367653345621056395201983870397287617188796765809704649456843404031760027183071869778128252844111232612338383455437761961725196315795128703764091556620769387531041790932497745162358973765326876476321060895467696130902924786364985607887086757565671092475184356827913766783552058313069324992568382446258803375514762561980827013267182775858359770799595906978614753533292762637696326543407477831779860948111549114615593622863820811099310829740311546513631768806431123705840747693128485137236198543457994457288208539436343562168262877229428602658906638552686910951098314892638526891936826426316543439911704237971438019747883191891516015522936139463539798991286582941616775027354943416644626959922821207355037498905207992419429397046801307442756406791535710554471804209636878414008334806933430175985514500468509477924938471710245996850204255769132559923554964362084151312686976412365057920092715041575017853860280866739385114580274078477318539284669930588355107320048285054087309601602264114879202715057471369298634145766393813726681046205207172312945642196836284681736450363830581165590350291594876813986976941972270506509410403285296604533895167403248739070575566533246493231890725261439742482530189279640030157811019395301857381868873031461763117698167740225813126921701311284775595977413973171392203934493191454847359339854390297415336801017932231884997373469109748990992805162748603874209747020035212599997189257563346134287310599364868931923440839252278887309897698478403000812920615673301673216118047144444719959403497332799463418684597016722912255061121411622305058938328095697210943169668521621232834796134230486574254420314688482288970311258714600204260955950352241224803634919755911129609367299057045338919976375396795710753136089249260024349042685478090100732361174863684426114642902270750078318401118974489485105724168635174374844573494388058296454157110676636583529424975219640701648905226609035028272653588268688368203993835946507939433380310388291305109696974130458337262766584296266584579156461144940926410313089098288964139345487935576499637921486062686864071616920114456841506620729584483848601581104206921841925005999505031973112753265134998320273551370669185930441935113558340588367151551048494958846677271182747575378146673919215968208929690234479110765028496336127739304576879004031892032942892126445387602057024727788456495406385402786764285643489298468077792005129300709340021501753306831666153083488463555396998802180269692210754696796721278115557236552166304495499309322428339615902925200283082333434760591596423814259271249753648834169709946716990220926846790576849161490156949116151691128504841435992560131504578907171618300293403099404130403629616304399144119998915744326650970219373792528205803911734066838746456982143716405910535847265966780886021470832921402671078539056189326594457096679048861659559769502329868821207721205752571400319257837896029839093753225671793150447742889641551987603525184380169165878272499291954485775959507826388452603262811288342750388763679333092556501643260424604992035824362856827947775835806986026427938849801595521253588691103694810289692086330534791652082852568578447766575999640716549005262784433210024904879191002437836351132351280274638003633117719592928735493012063740714334008263158084232296387221400690236096132258968624059467629899882224771846325222828008914095414235337522873801687882821866548677903341494899961299832729700484603986076030271131861573632907287168020114110668810535304367124885230378899238003950546802614525173439421210034806177909826044420339701355821178378400912430916366527543040379079263936381261036231873941952072934819507142416670516600757489410222748808554660320019392509430750318587758101577209836362230365832884136369118360370378454309103776183118092296412425649984093287162691361896315482973793086844496356744293585895089511884768078217710658137167828497327431989751965768875148353306103193316657472799966237538715650608517750669194271622228176336899293487252755372660817705292088490873138795641913931265334370795750856670727047892554582089723475731660531391507158447261842698044340339223681966087142054917802154061276495322114011378796669458544396317667695087129384785978136672821159967157757955857714886565561104072957375990667921855641775316521302387420429381235821710428345949511956210582007096474524543701642000430620911541143543844808345239482586699510265382216475488845972995327065702528203852026490875683293928434174867549142820250126504927930880720295951465707359179409919893256479177975583175939499305634759157158886350610209151965250939802941695588889998090684948363681987772188437672463341109148054258694798538536535457240261375327158087228638696156471380306083820544043453831282924807740809225866719341764849092461799602173186921779605768155560456892701127625106430904359329538422318297793870111241868356494543408863106660771924981041234142442216881978614040758372195425753936740116197256431862086122276731549621443173723865830881245570007628698483145310465030090026470744207529713433889226372296155336065542049025727937843974263488302862252821968158584848095393454888498578273198374724692433535803836861707672644186346682201189705285419489340878497676761664408062908399004685050286785163575866731140672766348386897364060322854578829213891191480041091697347837808031016151077279097557510403186897976437063355509314189014947091368122711191822886163300791696836429137255626543371874711571284645087495213677244269442708070404833190920850590462904954230285395119501726622206870462164533520765359387887231787683535279326132182216996836323634420781252711246181081503500423689752602181535845526246870970303592361458479287168438725095334363180650150736160630104530403080860896732348077288925713577192612826617882562628817399775481432947197930500617600630649475665441907110717426720886663858288623144162835554035434371402078314566730248022320884599097998592595601986211531053825514257745409772815238976445306850267283643215804907166259145210616703498379089432216355922541006754493941400439417704647617118996481774004978291773959043067239111674165551239425610005891727519386122381551761584549544227285852106067920072506324636183896279070459543267118532580386211082798289426019093909480038155425785922142528657809996391980520003530782235037667736492833782990465776673537641310284954824641634386800193447094946397761074488469157648557243898882132765425042796579313895480708495572678621570297274311174153044410053652718274304876689358026317056389859676429286146739796497882540400220405452193712282761965694182273291254726223113800571204520178354585895578386975318975181548230719522029715650189379604899367078945912032698180289952063075987121230270260355977808688248972304983092478913889931903137252958840178626263311245698297562759154773603647003239720478174515949295553191061818900754421823663270733211068579245830188146563453330449882892487067640792463591226434478244983237290269251986247947903986911775461183059559198381694740317266995029002745949628624140532665887151636811357987025911510937971760182295776035532756498879364920169115279442836686547927847986825005187663945925212123796602414486080778486848288105784137728984897880785181888535234050053029427074532131978535949010302463898871733383080848334592711110941860485574502830598831650434772995332882327955842551738519693024067563233566736069051773507239024017019841487236914022719773086053955414295565508903824291124104364978005723339770493674453700182709198186586117111731572684532873646185721240861950982537581605923471576859789231481919317729826576658893054193753190445744327709441732550172748756607191733453858093077723110915381316775494022096812797218286477563100776108809029899422555614816628824708795044136681098768018034754600363264272830177671005973662783543444365646874154039824132744750828822175460648942814178361037085242493494508427480130168122807111436479540028884880982418899545193960854803527996417466307114472691933219352277407691833534187221027441833711267160216100050808451615020632280376622049760329318785392630244501618985580292055447295273274654288453499632553020095026357700677520105915759541462594455721622495483672943457991930502887112259458829359343494356227883998418944135171059321342138658931516896440361483541188575976872508682808382218950237360249135582558164206532400159259063232735363389001831543668136449380513438458909226943730392935573790293966189209766748483866641565975753601332340554995806287199559303855750016464740626358068393915530734870660131494291722986930729984502806197981112450947179550984868510790455846710578837188909175174832486165837065110759019346303726547213003019356615923019857195837839191964268170468862374157976646825492423446986734929626143354070511649831233032777621618641595861295972164945052206287667110398216950211170653967070092670566730209353105718501182801432299856106721619704534643489686353812129664483324574369549198558418571895250068992316082990193793002262685883663688125764880241582746072499127053575433372911265935323134980551112546856157102989743991688753804751274747136697572899279442655872279560530155975135486059145688340098298671956279070848962074144675518725816346407628810704312853081182516237754358610549944400585638452923884390777494949723667488498241812277294515806996201204859160729002232085505693894747611731567981185922400193711069719451434645701996372670040373725383182366226665114227817823666340021299169337918450237831676044419554989991312729282841982566393868726226485520283839652003970011841196038481372731775518987895868310755062084760623894897675808437154116912016873796610970837492359607904616606534705021489481952194733484451160861286223688123582176496069632566484783556373884544740895776002022807492443871603624447968593937016036528389934277872909786928660020154043709512408208302465416636316084903800561696888636862929547186639395060536091670926455519334580072935789072732146244194713148493793056265734282451564167068716792425845151578443228965889693826516162355626645195919464756462701238343282086720951509955959657844826516075958041796168169935813313245145604193349140068423831577268286623214203243577042441160873494136697938702086670175629718426284259654328934021101113205587511183648644827729396723328797924083917050421140692962400798664276094148841014103091349390320386738897191141815892943109058642156371795917038509165408337947079561785040547822290578577486569227634488967738417495628036724211461855840931514849252124859944493127167834633364251699172459621836748329168525792658832437345723505836351153699396812887151693202993198170156550166761928703448901057309340984321168804792537569356587512278936802530712023720627901200778608294631512513052606933247119920026416856281468425541745146758689040485360756128712883698322951272013079325858803616993710835463935160848405081763445874788794390218645156030465226642924346377420387189057179588091068038422304674595668833066189913882260115840784696234134786333228918519633639499565858751214472678821310633645335582158918624554654929082735542537385765475035207941342237956635140236562442013239522249437858119297788813206831794294229809649284855927663218167321968567442016213159712471732984971443831316769649977363548985123881736062310257338071112410057931228267882867380552832075542842640343839505074640230905978602979381115194396667145703638626767946208175764534863026601680041141830337178579941083567597370123556826016071953234166827690050784735060935069449121213230577682655111394275081497410307280190700859556983005436003802470881969660528106515531687797603866835048469979569487965504953345219767650574256272904736217128918142914107701738767504782462667692624722976575777713445454849348532117091170560868485625848089812206976643669475536862412838124820392585859730958427890458759745673590307644235970202040109634240797349778666195036946776065816145645848443469568688189789997314803012749648651013950181726399127147328247600972071588603385023053228579822510131035053865589153804680126345940239952169764703760215491901552389674320993969105728907773272348082036951767708113241167369572503447405805283752463711239626164532694420741147233525702287466525480207393318004936154692407945153669669170150438823554657581431029788459302296612695306294903423044437131261879464404351884658523306963950416994982526167128980615253964112665072449371452430300838874328632853915507628224712577457601548272611850751843671737746343695388703749161211942834525621912591421888265218467841561953430578937770741810493977062968260639559301267579978942645837109471654190690350684870953011078682999164648878797834488878039496702215538292751262459898265591933284277132465242984804753416408266854595429826512589640886012538823230612825082769596841731912578383311368209183892652517467330333497265080876593443594647521985092516692205768045328424356272469941979957104023125504124711708624287776912844835975264699007267817101019550698814988441865292917990386159233454197112112287906508870186339272744080234523812109362868472442078596451868709775493501484583030497532854465320864491582523502250548094415104760945184081929989632601698748238830166434574518215656484323645499640631922200775942105155105493500565357833428455520755359582127882503831388810181048889373649856069858296508561542707011704114326706245630265197569234742230439492655264420721979158039396178967652859681926017782679951315694741679343024185463738795379354177891365686475372872324002786562893000427496405080626194438287427040624712846019769126805978135329620494815976781101994408237623626914113183761788722443241865439732094829623437709363553718556847023813004204260040561527713334619814972336368501004151069758705116875231657314007680801990308744471833484007059745642288126616480584340652795274830484617418431313462995837940965478353980136552322405800035301490128827062917641731763393661157771003243233816065164864710434660022049570378977227978883999351924999928334086896761108854419727878595598357310631730943250242045090463824797143570372831135722556770304437482303622785883505017410824332708431642327852020938892919581847541630216082248120374861433957604635309277784271078373930584390906640191171621435427765597891683596887078796730945392289839231927824305388670020967708062895895753880072079737649022145241694695715129667658731300058671224290908120804448630752092545996447680338302614728392885344288357262309107316440334701326609940080079788718285814869174670928130556700878570546507641089369583886367617695070546278475159764055243295008056386233805105284290097117558693954393767447065910430146052178442837641219714029275628566206907453508199817714698622602468538023529930579360877059571709097786779491864370663734355291702262756619835946731586724675083520349991404996991719256363970840188827592821003573308626290184645482338055788520120544043574109333367774068339390477365183706829345027355249626501856209148928572739579600762225787620510945533733156866522594864089180645562196998337666204355821732437085607864983856729617535263172899233047148293082363469551967987542135305028547747949353450282746775009691231392990960670299212904991377403121497132650610393899036536320153928044174908951573265919336539775583574171990611206834906986203709263060469235394597744094508116531368330786197876546336845021737345644294129304028379987825446945540082631995985253666920672494024897527972638111193828625060684880260926214603703955187673277202963418122483651101106996731676087834257741763252587564903473904824846918006684979036265858186990909995594051749980959227991084425303017504171471185619526878472918798979622155147609299444116004083821948890726193449254239307412633098452059192777542708478416438645510017188015136262568974508340819076853714815480596533129359298009457705648717727534791455052520530346061337300981193075540593775729334044392850794126974190226765095224634928269526836261185165043580912755032501681027039072256611762144853676602850218966588388739453352886964434184203887288573669214996648433926538430899200947058583925804620878116962712010625673757030288521443649325228776471689625453736142230051901525436805080444232132864752027335135398429777616389935777656581547957854355002343133608435225198941273283151768347083273720302602368494167535099367498098263734104364873417470658421210201705578915914584105147806344817223511686183740154306779658440714261027279822583405323725242467694444158149622272635694068598098234612120099538967571795403579375115745563026687349584310317737904359420325655430241425529121455019830042642651338090743198185174402871689461448894205368190603610563384899175989340521727937134558836318965983041110102317891415274215957666993384941969389315750163243166462208209615997675717495743126520320811802956453302311876374364627950024031624238362951685455700930466042683684848808395586929770392134877456726202603564737466648331717054395400042669628366937091777847055837150708531468289472493689987367693987087031974200119212811501487758057239267025043870625580701884160133177281339231031244156769525096250963733572876316817249270397162118136237612599998399128568166681302477434586466433550590563308260808857849396151845215148289697863465762074224744208166728793742090695517647417105979796756937510612506912385069842749922346432059216139844267147132812848398771253478967043686885578260870866755744994533244171547957785819207106058315780720396417588208690884713603029694684453169146723611215846732143497288294142977848625188583214055828020911170652728289750326264402237215484673034881676594485349169783664702344956862551330811938360687895875493854012429553144338293302245978763233087177080096217128855204896225363152542081228690870735014760478680468697592307993701693350548377228665375684928180463898935850452019728073294997562342794604137282748711275485996605681740746230454548107169453841701138992647679219769059715024938469779874979218750966361314403251618265738119907724970955801310115028396722759615626786062896139428980914795697972431904300696386082889712614756557768794736114382688962626891342172186156158070253721844232189296715131751874336032315445009962985191735046124797523354882173319869386498468801060802575297417447282580370017198736602071279136284668005101201381820995279494283151596343993361014654974198098685310634691595189527828559031346331016171178540606363871772556415212099843427617267215155864110058898284162922883429480177447609602816325813981815642359879654219808368986474489695097557130176145527340294687801445583436058338791086010035205795729693188264403803708968860244922895076211598983993253693457065663480656333245133734610744684870496856448906947531002282121325655744487976415895087024133140209183526651215229630101416982390878862552765522838354743992611323090626131304009380267501698542334939817628394277570442771858957825326988068213113391474325470422187824267447087765514033499610753365509955620493031816267113609038852976090233222435106574221073371018538247587997314285549352485153076818669644639664298535105807845436763966391358951165437783199452798153166323853510812107175088434303520781389153796618142923094851567456022461401443012287941940499419095884952137211586384063026297059546581293129242532717871925532214122679153880104913652874842391078896261129364035011318126144092157519562033434548299869841013772036033860803513747252618887468615832769953589941820688960672191689768369010069187795570448356927022956377341200255328794853154707611415469234488178662945162986189791694018679246519600245919481465913218677340860420325748382347472825501774108851670901230413071100929570762266569662210482325322256413141453975647739633438529002918278731666102238440840610846236571357845869314827293240210444673981370306124745508382287229275303899028790784096009694170002401204773551206180683804729296569858613755643245512799448418045260526123447123339840816252479817593563346288969148298143251075691557476665508919654896712229737376268373565627845647969812158307369696375733942174439409762211189619169190033243194834175805640331050165716604859995366797926839525174813513955546638044212249473951892823200280869888267309683082130341552451842505546227565173681258760138081631460776769689808172300465986062308082757718656968163246906971462091104902282869711123129846826188122064161861394197490111907384058569537005515211864627182389567937461010302378919820493744933395734072487032735176482960022642072631474581635149032848772754918181457049185744688304300365763455646553058245791807899910618457368658682956966903602066566118735006021136481179082593319530118688086417126280966021660621067406570858890681025309885410336266177081835538317910656149103499145529451045788303166553647009720972522414643583209936209549200033786013371048747961799067141899628320838055083075759514683719228911191007862114350557921778070658776869035071852102630067410711156120410665090983332461120951460221812018381982518284222107543469233275552334237092116916240736118319008644855579215180586511433923678070364501693024413529209614573272911697890967364336931305113904320862748723157573157188324942354055473854505604636221127334607225337335160542088725158274817954371094052453580771420135552961159717581565790694995288196210704435945931869918477947869073693697281861952108971023378129334084285815867513426632192826661667492131600697280492714481757462561677433717024019929377882715352591827340216329905182355004091621983468002068683303492283095204271384162964350986488742348672075391073991449603028733997913394665682783196093574613938660085274074802417300668680793590591142593412078110962879482520987472852601556141756079873821573176783012291718702757226807722070147686161572834318985731699324916050656114703018618485874701473029204145590684234563859663313762321742927879823268775296634714360182253154882757116688264872267115458818169281867556839458043194654021701957802511503933423966735487466640966498679052884891499164091589598429020875513169912208674879487280132043506911972558798399271105126759523096759075332745519112258372119920134824624009078736397288337707326178442968370618890578047628027172710047209694133336086046954147852213373705440354712622007128673907118909037338251771938145226341291798624366992891281258166829259431077511425635263049533397238796426235273413785210075131914931994425556031171544552188959439347830308658324661418063854898124465431965897105846139887605515413757157909441979716502614874930977302545500013756599347374461201069580473567493757446559191231201420799791996918966317400520643404531450294565779571799647061453846136014634045239874276377621926386478298574393466861591174512967458921793431918630467530365550611727397751548253524691510748920533285849727406172881555917844527234760706088105671425773681673783302637543324078486006151284486210979972906172784838463468423501038683886085687856740331638085133522502507851800620994218017784562216658139867731746414902991501475837949091520070572576729248084987661476424460377132355070954569009944284807245019970085999903153449532372486853590334820402427634006344692426782017671903876934002078515371155770654974778199606454430842484987514946859676003071493592493659441302997277790505542592413031563832732297411024372013197376842012428506976716782896150924733463647208232655172568456600103507722789555629470676203946996500762106439158582029405814738000488437407689710481090463256120082111943244023662145758405838350467565936971598785212489845407142276309631080237589919158608991275858555832828939474320156745628006717667461972038465815561656816725026327153822900029541689308033216981437957206695080600406205492149420972236188154855492575832648877032895338044655535578132857394257322066851869097047904345069424179104924624481776544855986024026096708881471375773281616439724876257859890068282088463258496131604547710438327899991874402759845409642892409180461511981915364469984936696214771204213258110282268784366029936315027600225134846725224313638532836375561431584488071275972382783593096347684894106750192102593150887884895815239938077640214935873361248745488229806087872262611586388144195347703635521565974295540681556583882034185140936025641568888259408733567118867865303514189686402449447297142024950200763444854100736945026437558802772012647441249846553636228082770188544271767396444120960698432503384756750177262713596243441973228459905545366255154206775646259216024760684149672740710149850122611242881155885259601123795159478383649173523867780507919469545552585240465505149548502186562513506399521732032886592669908578495989789589351945298121244624802854090200058792687188201508234994148424411390684897684812108687578476495006502649142622439413814153850523933878981950805788208512384505806641942354076428931284801464287602162899479092542321103743454108688140546440564243094330449965408435204603816119108226231247220200064776688739156173066488140137294548782660995541837995228355220092149895849493931209606213731997947187553562573900943845479994190043695276281012398817820846964853965222857972936850421802422410874815938798443801934490654630160677044274128876107717219912088653206819097021996839879548765234700118427636719507594627828044262177802933754711085635440832618645203952659085282798915408086797997005254293871458902365376070768360639324969946168531203611149624484632932973310440259012293952860280285203456425714482110514314881560921856564093232306418925463208775937720242427464235678272580844581711941169332401019102481241226771358014458722651243675287916979783554727826207737242348988247912931313885173055970129749349585885992098357873036048931693859905968575550080534317749552152955328306607726193729702030839997232106215985409169641484876880710189224762522933666708926241796934140071551207262793172638521693823961065633989370862711988392417719243545143140093219088793144966263232505480128260079413089782407447701602115324095428059353909316421272584101069581169120397024628033045118626788438609335045372628853675988866735090491056021577838111884986697958053021645120573554648684459037047352378857458454315205203019588164038877959905744265564700706095740573059910848509183202542392711333478136363762133044564485816233077040239453717565521681843323782468499159274256946142022421454085614153492783671811818961560925456700943058890602820262220344442638830818822229174654819985667259494382690775981893628163460228221393163979723932081432432441836048222540200544114957115380632863843300121464170159151958689456215826952699380985745240016909279358444040973599248254274602258243774345665990169823180089258673781646349124121367477036356388915092354962011283827649053738333268898447450371562483558370350594211250363056437494754797300869175347680177658281719903929043906472004337786493474069536017136109915054420078654036519597210581299273410583790535895105818951380742674038189832902190582532222548261237422570904434819821973649395040165511208652261823433891302618968682267340777361978191212061246691190820140241934120121989084299229280137549857619589047517758691865662169197444150358102114953723900095172839552757654024286603084946240839410978071941132364642756651384553261465166335045051260011879646720026999909084147804864588647287348430086613602954734097954111469125647209593331628469547560228973190809466772611974376438864901635793980616305151558072772632887967218689615004513707989573395669894536776321709835094776407385685851132577488750329577184526836443262156408091281379852208040458391541375562607076963668881330332440603375280685532589384665708229712555924220301888025801190655139585190725061451600332259846697197233745322317099618841600276265187506922788480775745364221272361935319021293484839509752139640966844385057829032177191793363903687425042872990714140292168117511211938285414296975722306913117151486023167309260196792916707532659352121347147460190830933459145696984844824844551459908830234227148896448512772903122380804775279339848575089871910175450642306057565599154847279622903886985556065621411518339827694256236151835897875416998477686429057800331854087476737931809098761646941099413077289747676130315174624145477886300162908531277442555284132970388347287412953960642646153171991054269034442187827227521340961678629106568587978080952915933472443587823952972612252711318322589161600092775944726421788653673216987565003528721753644922051086350306298735357980094524250982049378924062208535013504369789825283931839545526269723047755733722969222000555977828285776051403645113375852215390077336102450273731214429657573346556523182575495393545838256892644453335483408875844936270538509618931902486754368047434167401053879653113563495522635398980412556955411957859510393756802665401801633338165896052812425314832562710566449880683560777695322505120885209860589891341583922457681777777324331982506392859491138140363253112411730320200344369457800377129063145666937150347321954370615527439336072495541799189502714244115169783322196485806128048099641768807598882459791228673038045341310924850908026773399748068567218064687759836323787414185254827662818321907736299456524154431312910306693460413756777132198730444933275040911295583390098599099694955242438760555750700487014787326716048283618495076412472981027470958781453914737556260880860397992142560219235376968234020915219734844603857725266848742249480586239907252192583768936367948704487372638955971028050755261060263835988865880962338536108651873717587678634899753296271400598844703599650241579491239509193459047570161240518495613553298557099803713505806000300589436490275698698017960777791281095407720151983892648819178280376270062829676414845015630856483941975784656529749218879328314837059642723830840910047925527957700468870380937975833474853220920637546807456346483435079590967538803107561160749511352751324576639405044324546771402001792024951512503980097468751713479788270736856927670955927062988612367545966820222551741772499520181186167752301652890481410369583347794470270888435593139447314519591611198661544028026331352683505626521840646570592182596953665417627407073476327676988309900463839418258477364678110605273509841157801958756173356378796903164068764330003597948885699039070019802350942831170643214696353843404244679078739782852448406351209115687725425588515196930123429932971148968772471751985382273626569111645334029791002231247572224287057290260960470059026544278636430725212705668304945675222510145581432913685765904365714283052174151086060094550225527953361388543057639922307725675265135767482409082361142747199601704946482881022673980105064347452375257168021566086119494430722707522144866092976080454981249221587075959473183959207960448736724018165407513527859051757239392696084065161529358666393038176417142312470340939973509863331839160196854777398670507080895571691916231391295939244910448837223970874053828924848473829175895559434824017089955059401701452867413461943855837959396401900406951604557289152444458533976320437847143442032075713754644817142844470238876301511015551249665477894599934380356986195149508628672320425279931950378701551936981042221607703488286271365808034585033591646558907849255969353747379201283991884675360175411114104451706560359854126006311449699027162799003359734437206521200002108317676802579812297514507952535721379061886840337284833323659243005644834504792993734567657194585346530106143697022421226774130273082059044900474210207653967871444593699210253584274441576295182162136927147431397637287765211036330863613817621062881351212877851562708299814779926884044972887916239630259366983885532034082717898090861589937444194681413079861342178741355738978727622724072089480333155543266065128726547586740101081649392850811285060096510351605370843919260425185772741860647575287752887966682623140537311682518362886802567384423055458032900029844633821028193771999186064379511418445413108216237934578423353272835886325028447282866766639623948859742806575376878983947799694193144910354767189256293364256195174463841811071551184909774291389221569430421735266386596328130346279982168034701353387383089661616979735520255637784791950700293643567797184978794193160012712927028877649409070303966702098881733861917198530699440188270456106544655608645934750791873611171590721750241035385660787501400514881547387741390455475190229685975204423003575408031691056135368680546967345295660332653994712351215138076021578732546143084005974480506754987126217273593798010883885452880111120825061991371620058819498161040538009175276357732339003079984750173362349053336098713318649722391043540132188853302978921323505193723124966124779164678707379542484771954420302293794621387700677733128837388652719805130040621488951572875799358191895648620276484032576043381177841296129634966064025697086219247144533716490592918654949826624776619033364792922764802513267295123905488475594072046537141872091715525761716010495298654780365631786232482323955230225012774996036423590392560461818160175734897324892332138174476407629388707515252734191679828942123239175789209931071326488907201525054934746496799349873550568464261309859477305379361196523504689326219478335290660014155990280146515572822997008060039510537209277847002797215604797261388978474450133835960611319028196469560573476582294584519485535112265459293553841399062749344443986620877781359363740975335188479272358140166580441952572704755297239899253386738343744984300917299447728135356326565972720084895050796117075035597899928083501983402218794568745058541630651352580226924857162612773238386110045521316805301761170483250583579527176331684994270484716799387975803739112965144725779388889135135021564614710642469511222183837747744707855697878922319734185137200476885723805672576073208286408927012688001019822573469801397510123888628470210098109632786599937427242100650967080260762488908264451982732976504644340364461503421279736858532722018418141197362085012567272358166978999922028490310892574628733494834500656453621248200277316972858887865942951218225238158069857587335502159021107304910248327839440990494743953758343198006747855846923919597441853352975107182532392308342161426068841482020374561361343622077757194579371689351584768978911316432994889045142969887736078805991632299316241634550707142415258354540550641557906514103907343363373808369775756658810955556409309620431304345185933869232948321092222587194565845987581000564017186447890112105309608916988298354676244164789815370500506085345408903063680145946424302647217015026972050325876384681270005223343986857570341230677524404718091765361064356060293786517211669444380585642638743849318585031485245448497336189889293978932664380113092133331623911292984351950789002297089934761645339372029550214347941181015753933961549567178847544578492049560415433138761611451651317344564343516702868249101840535657498392821679065417432277606518495237253641826964786072317028577056849113737672422558153747720520536215328939490548744027581932349490617022865154913971112055949566588597380999172323996316875300299324400136869400963859315698769129462440753898943416859661824643647653064227334971627421826082163879625457416827027709933679910421544343997097802175251386817122660105071573649716480726979075899607003291274551430693350986754408518100807462988398581271729922830995795554491407370439471264109444204819989449845292848966509311116955723076400785608945419808038199139757633093000000416108182773572991853608720735714790522154588330566890775684039358153600713417439613804392684412705476174748400853248156154558907170515295313874488611061048243864051102039831055503244266017979547669707818026734008042207252857668175769774891116031997242190501798783186939906413756665715095583522177649508388606512864905417072274226539783767464538859514622550021977536750607903816474244834121497153795316416824002532668263695869924553708039769916269985250285821157458072169139993457147487819676837290864357327930740428492282896984881995253047716158783101975739291270088825969594770950751796181736254161630934521848494411359406824013302058479037794074483801372215882803690733204125358004558344240418639684303001672492857843870144484011550310894207376096981003057874256764417021737177188652796859240157383054512860332666018810751220629853779297436566605507972445107288639650973674839510412610248432760797347904800459114942018178661362185898575312156545936817884789387072307943770778276064302675000687820543683975286107832571085227046498071078061595354338494811924635012577879701011596471705969190592538176497256308335722234304608849499588043844521085147803387803191793474830129926208906503049841579481593088872019939121053573780262869138157505967285444501800249839975102456874347300333324687070845273120702062039821164781161928303557325453291247805946939671370218341860537210076770905149290940700252884305573902015061828503633066940230519962474200376364187047763725029686529987889124850302170338137027183776188082622214833458633764632004394421725247377105447446457801587197595687744400960047967928696367471027529504526373911022618207137940833165279798859134788769693352975149994152680160603473110328536726865348558357219500375975558353936395653476909838723609099725946860918917305605628833078841164414132336072018339734805750164328479126439021340444618613632213123501673359814177821770179119206640016510065429513946151238765297822384287697694410359639056282143081442114676231577012824029167366870265176042471325210930000026538729974038771061663715747271906917116300386553744838417767151359121967978078375751025953434023127662342512966309467990014809869701592311456930722567400066983949343928291198168862797985133872297987679010567239120557411990568134349820895925538434823266912910492117001869141818698927984253299481099779074777638834671637336858548228559277005723089877480122762958511449906735883906420680221293323396890232636435526051774162154622921820550548988370024194063968628998778353420258364972033474666583446027950160488019333065886269255261803041796582189083042236752966233083406708887657884232103933626479008510168577037100644109472727774251423717690920898587988889984088557365123781568321779169491885945156627495507324796746120583575345154969051528716966421427534699424000730720641952781357744293093438677572678667012576915890702132881135930459794129438957316687843483530521542183695488956808652380687496745697028540984347597752328241563933551875653832501622438766507597209086900368282209805528361887103757054863383978912865502636479322195511550437297346170333282458781738748220255508268459599604860184397550672409527502196643422981835371830049811936458806804920107277565860788934806405301876751612168913904007115487716355835025110472162970033466547255782061952741586766267820251350789339859821152928917193409977546098365497837585045901026667957393457528426075901849503801400958413493159617004339658615383083854250036609811009593522782221390523093684106232861063420713756208454859337495676484831232636867244695230672540234397682670097300730470820234961801571683830421210585958923998171053337477566023639310825044354458423022536883018859257572311337051917381186779202118894166609530536328028607396437153774931253731881390091108138565003881834172638054241436328140570225500560444753243073215011756696071411082082896126495303835466373927502722838792132843906359760472188699656410689489043301456805628264309378474795748252717761624999342933012205528816593780629398374261126856942898783565076511473476086848363866671302477769437608424178143767361433990968139521483813141963671400996698355729526903741290316593603280056566178467883832966007939564160973138897903404122700216334797441328840220824397408280452824543163076289112692108521331940021397012175761086360336514222849069124910533806374917457750995528489565665018575425801278078296028080922042072567256649871275668737765213137342083013234620381225851319140346765144789028114248780367413271015916607354928390045506965121225681487304593782170334342270433522291696840173154824691661191325476877751549595032421682611062963671393276743295223959546409432571415454800325626406656891912622984567908784488378575470910764766922261100131390772737172890816896282225166358578575230664068541039933295207405214360874616767779786598515467037664239287419183913755437268265306170880192536634111197114606353231500959164826307067739783135123832382373950656150231051516583533614928463380676440016566809426652555980164425395054548190457065658291352728966333710112343149384229297115637311338038127854775513546731591611467190713165064400290078966279886660385227967527898836377496558365921738368836588160504169006836809564123448111137066361206093324312567932403233319557654566619696574976922441103821592883978874070358285451805537478244628183877100023476691457793100525187520397206551596067750974414402767556459951646677401276540335055497013380900140139653575485350433682714196686075069204414597280416567236680702387996323554123069353405132142712752708799912062058659998597287016314871512002316238628207980150570115715581862980484031788838019632253054970415584474241909594026239743962095304480607737441233194955513077915796173774029633769196857083605421936440623074210693526833642570874218387316562311004142501474217896890335164713582240002032059842738451105728117466712870145063162911644097185298892854350307510709558750368751706602800202029353638349233899665572511435339394102759002639231428341377280736267762252523546091624119053703648451923248113763383528884281159139860797901641398584501473884340641251268431862244590179507073836459503590974431018676459958553516327265450140008561326259575383568618870477730706911000221755080264205507887434070634343976074118828587114427145536030227769924759577116884627651457344367425910137661888957881868180320660640137105625295425115509976823991272101552187172625332191083324082590072391571513439437451165440141030826341171386276194989369452352377822227660991461353489643132276394521180061790467968754212831343930821632947969107820116466197717510946093763082760283673439767060889299043060219553649879951857688735285953773763116265622409495588695185476789363908025487266810485751019896532259243278013415310480678298575107267953265706683812035163676808327256482322079064812313548064171176654622089649869308288418156730185638397628274732211327246258071504816244688013606797039003668138996945120614604083329923207746661304865956805846918053158304244801517094100891214238788489688729446745946591780471296050973639389771482030221551758189360487760906117847858315030464288178535118777408423774840311340276430374394214470593110510786191360281816388038475203838617038808430634856468339129971525089030217991729297138936798726690963403856765909410101522029997164880614486820013086051014589037706081112922339262839063267977839916075990347208902165846816768735339750611437191337728016211767615583023482561884373560881393900275126961554018583857953185686190691049210617316939400649736972522840660421261390520205051331403811072493424314466783800288397516714518311256322223076473036336555056628719144892895235600710756718451855829301616352272453472837454048393096630443972700018531323908494517131851398942354341492736220162335600562378150999402112766881451193823784021547030933902729040805409215431716933582805484150100662658370348865939546754565116258471643638827474413402292443235999061287348709504281601867043315095751589204037323893888647143199500725913369413874271628833162123221758547283044089223307541005540173682095234983833404434897960738120411515740872348860309237034365142408405645764792290677508620622869440202836466206194495376516203979264625908813738906674890249361706985498805231555223233825016543361490391253397193320795532423983766433017602928382724407369587130235679046238677986863857872587347939636619677964728922938268891605212537971496045264704413828903578234558825554951695093276966622928805943441805891355156035938686249046249111501463566952609236787411213025733843527078615209671492073951558540502219354192069425257369773056782580494887184641087063919798329934744629441851668305489525294567498591947033004272304303456145659605643225842208820951005381284243490584049501801417783436921905256286571674025879907795494208838248119362772554387471812572718435264034521122854409680510048934433264409791224465950100342027998622281407452153987808010165929402303417587899560271070644337841411311757714523989565553721212610698128983463715301002093719110774480777350939805730440768960267631680485290070146581821145547500344287999953843622732619144401271564525222188162093773847809489584642485356169194688529227254215346331648862249793472220476398890636439369372422516973472533816009308395739551187411882170336441079050423239303223584488691905588085516355059311406063802076715312373028124348150475668415728491660415606383911095336541669320536111863927848769841486597946486151684201775736070490810171649717605497663470176949377626083930536302775991598140936575015579335370678057680873678943531101138058092116761452981326277644201604006399585451499440971925189119316923797152965215693142463555657878315214182883974955027988335138633898971386418976905781320486364940292787860870272317859424628770598056046698659583545462126214617233720178352485339561045794614501949173880961842399449514914049196593637925139863658002912886148504486064225685775466132702214173078157445155158157241127422974534441707832070323907626376234419346072124450743310566751150143165222591667664811009398354151215304560412116728868326781083607420218323941453509514101765579380364214320249717744201260197884384779165198547773405773102129407882279784804533631081875130855822194702742172139559299389726456985681699765654235280043920589052845908260156371144551332678446902838553894440697160735905185380033539515436643504651817413478198203542254222999867976630540475279285700050636008180962699103184881158156276899006329945428902241549183042652223819582392768953885490762530009071448434239957436516847770760262575238037902063278159579311563049758115466841668532785233762776544402167204179515429842568943111017071582086113005003223236686578161787392711385897789811833488608221457910070328896308359968052308045106580357703952081384668392485531489176935613198250684794175189271805973936127392244239945034590473065456076766671535453376775380001452167424190221108731670872378365170191514842302042185103573688936151062548350560587894669365609074961293755918022391486219167490989629200901164400867261370289163442866939857559974269170978154282306850466913393210752085390959717991728658285487837671223387743133567044447763940194168313095040724756026737139034202868340184043345954812187491621310728885043134782479138628801054752204587673897896402619509000354724612133250369196488851720501962823186203894120372582677511862074435744805926705135033914138866164002401382829808499567149034535844639747887407057499131825967484416935864337134946785835863932560559860235020807969236058597293754829628284750739052923355911602112572645590946047288093786868775188498732313079431931320660166424042794561129099821837899248641816373439192063866890052463224111755108063524138564265733333746882228235273277408421293239999509005593223290472500629052287533075810587903328241530336323933038864952906507010901689139213084771625063133023872795726509421578491817793551391355233571213022878202229539076743999091801674196455279072236919118020784929006707876332554328549972075716585959205568206037380960167017151749498682482578857845016528690827205599109753877099468788802387511232662069662631869827830456086423536149264972429831550095354452873525283823703485731428119558742761815951193180747708310323107233877492730053027319967995737325922840663630654476350997464865256842254887411727867995110019388427318002853362041627131623374660983484967714900904120164031515652755098017841043289232494854735944311207358544552187012670792483834994224026935466928757138524213973014345006025286130670861709850857495257281014776745244570029732336308286290111922355133046753623095398253026053415902248442936189447955877658860606870623133418745908384315172156445031635468478422568352669448755519626487287206060731942063897810729205395573896139445937934518663291101831543750020576293110248687703021138664723848310680703800252891873402055660026219777022670067781038158762716348690314900724177717462350750656555707695195535851160195040233718971011719643220061693250299022792487961795938459498188256910967527009126181995837785748437158553099567453164377248963605523959595703113443975779869888843851135093654204027109343806665860612495661537080213060369217904252364749888051151822920504312150319717466362714740853743197667969052426644381215728338723367922019119462357123387566229348801327687361942368452631864424304112536524739110060806168776497450641622601443479307283633283310870488583182994828982228165041633314083265321719850387169579320583624473234745396404762118881352919101153654733145039719721411165260063453559899561901853390549449260674529135054789847172317432838702439811778050253841964592426606087925964000260245071978925242258078185960075410785172550748968391236733194425337235680873876646212673750063151467378039820681182533911413527491320389700797510673640544293845480737803550586736659041313716410636021017375943131421365121267602503358056994430686398170814438228707715531702788933604408950331511534915296686062124269285940459378577912138917933204924863618580096844060009826398079586850723333654841865315204482092269861238465252552690469770563624717012883688216744831473683148437300386956060115042208858682034281114605082693328799360900271330051584799400515315247335230256101625523754896133308975792657280364413463073930740700103705384648686370403569424839130209235317117972868829105839688520232404037744952902941587877121436049028209015841488328067564606789169862277438349392555549930726646638586575004891499759623331957929005175803473213780239154279486005770066586682316010144003034373546694423116320973535431770919708531118456489341326393480793645514287826046802619368651141443953847175505932787153068911982152200602365960607906471086319323911645530870777579342949419027734491415596564795855552239614702534651299641113721312876037690072607066275005945690619035729057156378202085543035047570168039373522311131052904276802378188174002092088251722540144228076288610851759763575459253569024042715650676722797284787458366529208671003475416591336795602555738877583502444360681059058087814649591060135075579342902617647674909358488544729166657365066233380156536257694771324113263015971826535283217530651943832185445099766558125295442285050735982556241431571683316182776502694646549932815325015619222339254794213181742187740330806117959962039675796612615977780435525502463057695444842310331366202355249269098089213748835908324928222982639390114544123219506262141542888575070565290921792236853443124640365590007659859225809379456734319645631803238489903232031532011594073044063058325758038179197532754560089521501477519863224098324416406765310308895524742869065931786931893209051269846483798393688738304066169429854709517218959106524727290888861332824792786666557007876193332715667310745990730951209227483491792151944236675048750570819742155701347764920578994535007044667072162288662816273825511813986672787606598998976627905099937647375338782303292360491373866937319283474887835220480717091379841174391170725204642300577885080927557676626773298906310759771419743610976006069535423215015805686662730826170064612964349837643907317908142108776940707076005217466178536052289504624610296275162570922692334739535379406984364754282811597839920333697462258286961859728684465537388997499121999232432908220671999455858228180666899292449749928258665406890248709746051125122065084763522297612749556170087149043173257996240459184995722748762654734991199700206847083108442877031684090247220288021320650124797241564102721060510896809855183424242748092668745626768650131055742134191621108141178809892771815354283030784210141964573646029765997199743715597244056685336582155719503045321704051391389202532157844151211251208528810807181592975426529394459186861261177976462357230213748768317146980551588199558419568306556291346569798538008750823245117153910397809374872987464133212990180703577853961712087354714100095164270958132679901645042025629058279969742837910946146796294485077358759013901809803529447579405761761829204789897660215137085288208296672689848856825563361318424636689060337600923942509218775964560845190462206398275146434167904748700595872292174213701963869059816649688122447311129201457397596486276427412244196920985216496963180995944968152057423780576546485184284995346483967056776005311767961896388664803085270537127740851763161801680165713259404367535330329647400599284336436635934499676494974281219160439229737837875599600939636876010972676035895138007144242691535733266024009228138425723616786820606433008305133061165027648659529562010885182115138317775112945353461141000632894535679400600062712950365138874921904689998901832956570040142692905229115701283054740044880140704177574460349854195121653284934172010760817184062747616279405433439309346660484506815407111243191581479594108763444951009285775552184751824210067756301060267704762502163435386710089777512336302547749981387235719453722379771477251064537223878490817045904084742107864142200520953561053760804125077306726378503508177661459060708764041474032710941739934743650644202056232093188948837990260331704791919263727631810300363703467503392357578149952792930035234434685397103736252552678053026056130363728427201623897885123839107898021651087397979961799578334693280440480607426750248091113917476358036992628288731777961393685269775526246747550067661550547007199304321441964479595223680157211281091267966682112392160640976126417724817131661879877703398009047062639023317155583051046920867456626681423759555882334768342211168948948374080841410270572654496345828596228936520201446250052467746929295106748924700805460372209870335611162612986014493210202949661842228330136308809308918320336503975490332902548825614592469784577198619980430895873791367346277707064872958307251259747687998417249131958686037672284679387853852967012012288096112983557989217367938368870991946106760247886412536266303508966799007641939217423142602822388410312399999700530420572894478230658394839689022150679807633875811397926443971070003390848660969769641076174714378008748325813452743135181718855662903202512543894693471865956732645815173779766691138098858832506264298349216731297484515085815546882810156150367103382585305333473223627119898302001268653074804008838704964098529536898557343073359957257770567509991992133393096250934881856817857703983151139114440352456572091193014616763292471405541966753459922669930620816022145013065025393924821582411887786316549029798870821212841121647360844325763109766366208543241411115921598055461766939936126437567092211182696983224622711665102894310361096327688621228916069835462639524163754874581774512190875953531526779351730931967728236025270272833806667354802049822220694436919927774786059135437650224462564462932702190158307335841779951059370885334363752191549536912477701592202982122392436626422371596339752127237878111424029989789258809009326904049449042795326650941259127294488453130569060455462536834659956159474371270515281927193564797000216792843398615654814414490709869058557756616962523604665320116423551147964781696923300037842555902030455732586502593478640491769227089585622747140531935439925507970735794022498710433588176352983017538795396772614650910091542545562816286955120295295352240089984530424755837664095149894378234882003785579267761995368744680719372825627662277846614874607677697254689729708496611830598543147498979336286227835689493178480727686880929465291878870248170455716280845513116280157207875011037775068454210956661431187908344601024330646504576291417925119685219692840478302559630512426767600591365332877565998736964102573370859576443541288754864411635528159436873309184349423297267326378485272239328522237457370758613570304104361671550759914705748010311403609127959173369564901925240460789489266261952274402291698485578826626023157675718816798852883341415792772951346257267989640077055745579807823574126681231601414098623150009651579972591176771650700733349727054445593001902743272648036149128186720863825463800523856276320151202273879974326602659301088829386815309403992066062263842265784207866515121783083900562554174702688815556820384194052106594510778722245354235758710541664391670715931857005422370520136859736639028592186577117300581349349526971376610744212112177050154834806654826637482083246621404325276771688453178566398963885526163949378290221483480937203061462845598203134253603011500216148797238222402742864806016655614619659955119329960582432513828958749415253948474316463283227703151589486654740134301110109352690346289416093818419548284381401518480399462331800972353132530933370916917946532524792930904017367076011337387087464132471429009412907371467630899391781547588048448559108094737622201381600591268910209807594805118658388171105272597697401842591669618091475974550128680645099882894876192705426151050278450707964928273659169112254997593057339566498914490413121333638289386480063250250752148133448902644681715576873876357203034548419659388691340053929635587038892278645696391555607563102722490253563874601425861249359944197515040023966353541481325723093273872432408451879187153760190394529328292827830758116617805320377661334702172714394975626068200245601405153337975141115212756922585084765262943457422871090126248141433739533344503884603785764550027194906322833467261440682434860225127906780119163257250527134074641002655816359417414058151316908635352847363661551886998426961787378769145469471930383740374282310030339342793228838950524830052269315636159083026497684829998800759706637860764613649048835590279267354048466999302142582536150784976946614432217584284717255106369225026230583882814039785672004884702608774040408899168468477019823553077297387025681358720270377134734607642268273498793080616428746535483275019321414251522509566922316986197886807322867863679561924885995725355918037496802051725113300099513873591155833943943035903630402783928990272917321499902402602119655203569310060717489740609556279406982443039242801781094025591160114274988537184763396369425007281321897197197519727745704664337306606037147706074290006865724101426849125072472126481744291023139723532537240405420344514926303111189863722218543665084328142079831663307901070386841230428903201054748815392550610379916732969762959474965404085782100339120720619085538358771986215316475825189181654295767170712904833848694472139119687943142817300061544898971981915631269067152364865605061288583834871994166200579572420004928528061932238274230768546401932072188222614295408437780344231925224826263167103406842266666876379225527388539908118772232874680792866755329356282126475903014909655019370743911133586154494567244634988769720018628290294596637304455451232662543627701843094198810385775588573303527362480014786801741065360640244389285794440924724994129721222004084173914976219591265723708668844497085283118558402572058484079851586785072971179006171426711648770981587160417422856835940073853821664891437051546479562541130314472853999476201779644885981422471414633869504370373633099876113237999894652140736677489146615488497921070085194499765591476924273423678821934316490176481222824889507414627463550208609023594929601061508316201873356945169292292994265207123746233717271554307500673282053737503026817982438877640193198935067978640623135997259051546570396468486336248740804652782153120869435732141932594278223414440580800599216910638020789135255518220301918254622650825837423909552404403786785292072560356066099097432318145420335448485982017901589341320176494661502450272913804545249895606057302133999194441534774996832591341541403661614725598919583061142429482850371694299269110104600729416621622805213529745223578684439405519023143592494325129729834867647908984992567245536034106107644383937442473995881853145500851094893214610686650006416476975845711487088516866914329401927015116702211760054583337921601242342015946978871876996612491690641241256753587995233248765115692596294647867372770919594898611068706104980871430228834394938422181989320124784580172748604507483904821855113924034399418887648679662049245652652905071751345831914704148775069603668877712286971552366215642710334089584828947076977430205602597697482996342351471301860034674322698455702760034639278327786720635779159439828098889412826122439452858487140971463947186813962426022242559221218649329926898057576931429526790812804953182290523541453201479390127346913692790954799006575312633115573062553817663360698480515356158093632732502417615243873290627749718508253492894067766403857372725736897444941873424865295937273989719426339022253337958749757827935235324031036765107498229000669622346471949005033140692331886391748744456846860393221409320982599452476685181755711524420373134375454607535262137676823949938918422936710231248679296837819152807998827365503593808995920906129615649102648624394637176841309543156387836041606765284163164863267793222955792781139670592247983518445772320501456701994305204239860512184908070295229257518024984436937229326633996847487348947888189940273556798340689389816293768444629894887007478761860905442228325049780824296337946150843066954124826552603551054039166197079728528131508128429090066637347062435832379894443615857160769654445175960958257573773766572755593818589793808739756145935754913743807456046180230618421260925570450145958146710700922774472317822383950266400954784861283556447988449018726125178957060801221853186549646531690691151744268163415481296970963137679873981769870743764847861975561929041241198999681095885715559770325390516760095909387662226354724726300003166185650065896665489032604916111890367849888330428413809074505384325128489818123343404303580101984421919639960993839412863987054295351328121251534362664152184169089477675307242618764862326630764768515328611531544009872647802169549669540387918767480435864869222811061084353115540975652719469302448303018519154343006148750484683321275100235927691059609980584531093925013991671764918060989519953057754481862228167764683777934052114561121656462708262215880183653234133310042374783979393819202474528222738731915542996119610258312414764695076666129162546069256471298143936904152168210065352359875608349399135041460898109738142744657680802827041628397368699043413371376396734117983557992976200884631689143479134175471085215721441228940293092230691071575841205316312014584448574102024217056061030596614693170369634661824482682968044977766120530814865963547612816893415423822466224078826899345661997157416882873388794338234666681598939698283144139902774416774498831420397608564334751671534377946780940079637132141016945536292755111998474667965630649964444059472534346713752286170362328065838880400485785390463850945306812234293752308004550916210995135895502838905620626362949660579117636942322273889164134981881924251365068887958504414613407597929938452573480075362600044193527235785333251325880483529918319575124926143460001849107152450439526906157819231717784790361722541476243444271319612564061401247240924646537862012449791951831823488385828771323690898119463792564560327231783752779692321434156212573159398895369602731555457045733196524694310239521037128507310904888761418370741479531350329569152504485039267153244270026702688452095362540280101457313548082078229823346125449550945306093253657845184946150368103182380301779916569880214527008451667188724417262329702849043175015821234540499062979851191993147316066826489076348710280637007901088928402400788465423364238339834312726436467491044333728945193806023981905176414648202533725258033658288171141387513481698701236761053576909102721275249371827461122465518985540536351123370934304210837440545187317280921749244671086819208462390523158484956160540736597007811200740476128117326505830364864119802275485182887033171198507812807766906246844314118664833924719259813012282210641097434281753104894341903971606087351303658127233131791501932501218726348720677858584215037308971405369792504986547671177729328603572837685636677067827330677083755906389290426410493092152812996963879384438377269150475925977673647307134025838735886778927186876779183688030113331440092393581051291273397183663401335508801362819540747294150451255034174795571992176237899348229311943471596276742181220911594270415089990737498562728673265800517538572419848975569602556313270484916053761691572903388476473112796913734667265465977147728328551125856822623453212316370478823456788749644672251282753444280753146141003939105209873803218465956953754265772950294673145355806758889814999626724320223889115677304620193253427055116591513374202319823567964443716334602906813888949327133528493304528853179575376649049314643807187974491278202689163199973809174485966547988260820668446961047937443549858561666474300693736393388923500871340207622948917213901819959715055839741056941952013886600880920494959596661554342032262451609689747112396766889634501054509484984106103068367397817222455021209662583758098042712190197970088375329174847037060319619769596731649328095610633790807340919632502956746921123778123251481131871768174693474430941497951067525911056480171579414675016757405365413948508639070262123413442846154815536916530409077684988430315531491223428571865029873915970488208661535309304451324074465164976473243471315932489237661576383363443960774742880659575968587782169165870647580480838064839465531279174360043565080851552572849057602234645811718336750258310796066984253236165968650459042027352949074136334420695821629234263175620029367788587105834484045117686589627096575238126385431802493537828495330728126303047231244069362523616601554197788148753184856514975135968983387691315637868977605183936135231221371908719092352083515052712133031929139012390628545312754559214128265162969547950050578152012979096877214733597680074511136676634450101543763460606259450529668475430429843996247829624990237782712880687517003134476185492279600274055595327086320650743335826760192586916312444284790549349123770422251652276491343689625271602340829432844434004508668032405743138201909317400852176934650053899057356286120584267226605953800241323473657091318817266728688681396193964356518374346387720048700066130434977721297002544848247082613317066663449765632851458337123998072239854463157858126597292860269107057983847129667749225218783594270506856153871527780556455054006359550349828828844626896507632741417956204833306376726183051910564248222514495060551671404832088380334740356693035672625901371942978783025264035273146283261138549196997409874063618072060528402284267478180663275962359143770770209894990702018883142790325869049510092125323034082590764012934917286059111775244535279187637089287365086867854055071344724651224630104889528038835529554040695820673010920773520760805373062968128500049833185128289351765432305406853263281292330572789221437676013662317451751365015460882378501607333374972162009340159619629557583561001002808265329926450509286957150171172085952701772145388092482747226146706841777716692915025243680693303179385816934278570612017081573913526514052379881586271509866806558378820712437989828263772813648160334454353791238668711116879098072129088050938886862690965292804371079511653648773090059423062905869539058360735637728046022593359704374782727159629688333761841139736582765107674887225985160641388332493888193259250498705691293964499129590520750622346635809287659483630080937837644540659529900596708279291556534193934018891050289492404263859597861124160048171332161133678166023349958470102870535239366587847807671388831714447763796713141315088437500906118085618639849480368911712091868325723654485247087121824517689604895545268616151481881636883554725521261827970474500838822417340293555778418491226103390207624830288824508367128629260884761692036330373708472531680993660330220725226826094687903447611294774592213712290306379712286402515432789369616181322987262824355520991826589041454494400980870795327802664107201318761751183055491872092634791498264517739311445749053659870136260316937011448457907122164439163175489838784685742400281126267332354706528924623542516759300405813686734055067332916575920132931661471609958591461633635220939603904766064502803013816198917805627629459219424237397538310217402582497355137926929263186400106077260235968887621732305202481289669369618922287692183723062227903823988706847096769006712664894592853035042442684364821580697802116576538052584433743731090187911045397065417551774746474177946298781315029412245141782956268841364948427830673215460202296547814260036442095964820113967110553341071736855041545850965398665812161483686517657233495422819491347875389544827771341375219378198511518529376880819720231378771031671475015995653815822616975796121342517465977818739597613434838201507502928736879704549019355062753382854462390205330275540573076076084820189861303226543547705077550122528784363775512994238740853278613767876520496526742506227314467196516432903220262030066230851548490094142970831595582900769727795653194534863495608539854359683025345063262000814290232364074771519084414054726406401101090285942929337502763692195774952724607846687355979323723486520896192715546365295114814025950275794175953147462717400701900444354121947216730960309802530659326171905493685413794885515313513196824274062442949999579613968499368249004443779276320898577134772301866885703709741060674841793997608816934079778953979691616495623965034601027109398096361568288059298714625024597047264045043585245257883338191783485688780593398783926395949876423797447552934828411302776690562358611055403594469346456874831380863586948452099447950134024694238123836755048978762321477297594523573843888266269769845676495180778139498891288149442325451068579674831487241802229058972149625926519102818828370786439258132097959690126725870048064469018991347297383242811183299614332627688093110774093747179546903854486633382552311805562209601423328533581665726481047623372554164670056198887790249404073507405530336818781735357956180352205477060758285204715767669892651579616035647405078096890111430358664038462674123202622926929552220749801294826718238492254665293905653298814375428337014396878345529015624829964915938412369129842976099503914525747923841092350922118939087226785848910168406330512937692051378288662245311625036121366210216168329673462651278773586611442646914107903966550073064157919141203753721626194822388372156156233520399391025264360721470036328726308353684159001343196553986852386966080768402981961101426195734279193712397165282806935083427913464393334745463714687429057390293537233745034874191534064562233547022299756544997440640817976269538418850017330033492234127082621155320468486262967715147218572609469286127748410957267532981512507605287295251017350664648726059164876179172277088763976106435408102887239401201626733095694465685654104695961195087966734284306898257398960093519068950814022577801160731606055851157408656693194881115930552308785397285707401953791968667728973728775657807486470460746468534096466125981904587780785243214954688319837451361525498698218100647765879420189784845903135102134450932928762413873166267681706696998598869747857597275724115054974040937938276936066747064697435036740815327442140929852333327500398743102611365316172883710393546885328413949942101012350427551231878250294679478821807099544091057078775120547155873725277836135938044513675155760101718871678254697658842644485340015224411851252976780474905881800721473673796490846401254132492280072173983373462225792148048330557305494136910825320913857986603068560650947559406907824626804040436335128991436603783693846625503509824239251261399427907725111028545345573880248777925512547840940486246000709546120430095226285658881718432037437863330862599924710885444262849603256599733375071834903869850996385743821623744969406450491620059935168783678091957519994173423347395828355304923953616505860118304322885610389506662123825516945392949689779650962470998429176994625803135659069053206868079697558898434236225410295727712991289113788089415467828982751755709805660563087722276346068491595390237037838844433606095355881195898583812811454830486643305956799564085206676862169629236483704738246795704709514910924145661390213054642015095146622731405647696814971406577333372164893383526473534611637375387018867897556055202096398227187081618720073425598176301150761579773443938371961394891103939689002270306315257770576675300426603633321574620941050860607334248529385912353773937331800581098474978139170910595246115876330502511716610244728741678286346737709038522443734769491786982695445763820020833846351930697106096933573540993791711020966680020701174345702167264436229012835534705513434201851698888495956372787267647994911758681080693013160553747166999937186686214966131522380478741947263978902057154998160548008039153099624863990842622692663100273285359637174257965472759235063208614056640591711458400482966091484435812556710319075143372104297111282806934325125162375814731255018341645308701014070352066618458852547306479923500845697268730468630905312389278450670395100592237361604943070192923061382144409931273835955539047585463404572565424197451896665698966649185352895290708550719809789453375243847060897239448786676956085189325643419295012218769268803658563013094737219870323792712187465788791586568982643784716855107907945036293177276942953438818714836992647687459219828761260974712431506246697901290619819282598522945730409967873823114344275421117975177521791111821408765977733513627523942948597526172903316769260408143086096236376974805440313610361394614091489207117411136177468904410269508117708137908984890986082432062826919926022360792069842750162979240357652311275921994249361582516112715845514015517682575690700856234100954158699968256309694914841717494517033889344807102578393604733167610754353910808254192900065449494457237698146014850806441070354445774500417647752419038092407936276213400963130946443842102114345501927068277555440372856813550927622008142757264857826633112739165964799909501470234342977706498328578325006693527858527170089876710357250560318500802326427759479731605296134988419622771446331760571832831851532763776454356645734147347533891931911155687868049274202293383464621607738681107806735981227173773155167611243248215621594683289906910364771586762672968093010071395631433276622400317562008426572846601401306245687405509410341318271077589900314464145250858306220884055549191448747996226082256307707436085356343841409878645847824986027177803313404397103024618018357818086208754330853570651103920719762307097579983532543355332785659567921311105120655297281757010486541189763117170507536097639344680519905739118167225373055699961277951574268431322673305488849533975503869499407106362793101451471929540116432614117904439938802886667925897014342231220290882112297942605119553373894520529785307939085178607701959482540529234081156373672622189614524351132651372484323805726674259420879573446168233504703596400692073505154199617241651899133860468772123548610570328047597035193474938465951949231696825195987998269731855802425862885487179235981820529821005470616728766164246460597980883916751720076867639085081301986730346940705285254791348872471058765418555761366318537255947672275116459162922184957778747107184847379237976773391631541939807820263906179623911710011251953760721047571561504482812897680362089214316467286677607392299187512669939871006694942645262283647202590138815744550038064163536776982605888360447839245589631188679585319682927806177810413361563898245205673015575141498600876113661690655329652020588497813736941677899386501393420728807867922874891013442360521446219890791076152656272284444326833339572578401254583664338618587114406886987712286899823386900736851632143987875095532527699426633876436037851187458031709797080884541823208155943236309996403093309989866745231686913591826386656032592455454250878753387629437567111145523292460721796032819753757335282724619604127154157952011956225573539971207210524225353971497942318928722254543288135832750940578893642288939197072968977495847220450099041262341190691597959202763136206073886050797320923823927131774318631219579292770118705345012647382716904285280185495919812039740878475332447429707904516629742316593892206472839790808501787512387081264904862061423918568406705641007082881301947032751220814492231894217445944919935230924841109552848874577234353082881881120462005897586022157075145831319792830149918357618462742475983465204987769723744612992764452881794290538054554730140537560897604583822187648695051637229418986785369669829680053846211069558542471986612900668749740162319648390223835013022609640536832358084047629754623983886280034450558054950732440733825407845557117834236231276183119391249120013352211897705726779978398222245762267229050249464269864560818099633488991839184896029538664253996200418230573671849870394916818981736943752762390601392589436702117925921682684473059917351999249556878625982653939549603504274115884747000688862602973031626590157585742913371158878459539202247124717934491165929823911871085446952763427257013402072729029894852812895312040395948467860843753339647385831687024336269583247360177465942275965256331756490957832637563562122629227826184797515537361816862274166099647123930725323151003437570992252050036356354096684184928686690698850229390024999048996680233574794258497926454787991454254420511483084337332057799851847112081480596389097628763244209387553886908216183247291219683958633564497163738028554431653940305653488190845456343359116250650782232671854008277243184739475626338639230669021765491488264374786997571637645482524255775371045005029046341090958601080853293533776857246292975442163643530552485296131875342231308106273971029005753057524787216254608131228537232884032374587976723386514383950232020476726516386039716352884016607010086283626597326095151653597622245973043007927620959452006191847322017362928454158011560407704995223713554782422093627214197089728939246699986531551164035175227977558736708036990179226423784021636489101680230790755240312787256065078120084003434043611722073355828656182287977584592410679037002973230681773976266801411132294009746702267836949742301702138401073240228178139503082921244570953235122367062017954316844417051902819402624916460653587085388572324539334221630914982820465258558316012853245203442564144598455945536348166863535546062188957799058139995112072488569271443839265827370184264523290574413916773874904030612276297390854379048045234552766629892876827909908569523582888284134700276666741639255209591575997590605890015981933293081445300426143557115486480035123695899193270562702081760160304238094968936429986634692769725980732642288945194553740796719835511632631371578416240481284462450374545289410528935800211484962494558088626754774365837345161505182452953473923893311137535273885933969500129289918253920253168265226826496642147659246214028224836862718921818936856549882263192690592266646241188850907121561727878710693578257298161297535150386104212644770863023970773289796421027382975691004591224900257658290174938289036350994028063256062954748671281539172959955211469480537167614601414746232225531236889778790001912827645178632390955518918668339562628274600406339369692284635227096719781610813481967366741404546031873901895953335642252978754626440557776016938080854190996378688816526304406022978724520165873437648540906158602945651891844063771962937052147398052975016001448367240340251301229344686773120577061653046392422264216446374644352130485598527262546272382734078839726057585896954420989175538662438495600308848114430929519309305468176039426165353634765402943126154900298863314963082875356799037699116861513170854035885955788008298693019651177611249855662834691937608537985258881360257696897406490970314372762329105932346483627585482385315700983304662279581205462127330382658925009876538849598149855412154587840615429291335874152972170193831768745105287679137373604695364715876431619309891786644525594343294223051314438548904272723471539935658637638757483565388644550168420247989183654058167456214479443828273267036400633620393093188234833676726776564697503903990287106870120554315646664822006313566485916906680701821107722433420036415103487999043498321517217127821777316891034741287387618052412320785147045416235758679866186683126088123284513757408355605115626778950546645174868581570564711083194605640215753074938607198073666146419317185986769489263411086315253460511118957992755233760546866921000089813813841830983668610242055600386032560277354620305243533679159457253760641277891868665684868589228355380167254005198901668026390059232062467375571457773319574198147200142359422817066063415020033629611101649399436175126349017105462946039030147302361303090074527282936472449191139046257920549357207878946569550227787044357967829978022714353071382114747164979396222449409747810090803979858277673774226463086212834005257464372642446867497907185556097757042690694706456445249691945605494852576993206470417975483055155527034723843882536499080566970923941699541351710719952057904602454916795275109816646663596875953325008124327722833512114353018847697008877450850401499877406862385240456159126746313678508913539939550469442255128813832850016627216230643376919482040667094514618115460991503851252849312110150747455223638197571631458188693813897589808738603133098675048104335733423763426921240100160889236660176387038474476753182916762015522130512879857454679725508441705240177668508780923878694858942245952541812247347851792368933053085243432259480979944647253329911673366023871222068072078369254506214827958849172854925184507901230840872018450778284214425735819565758187401991499625276077434217862547508324655712471809055646408428364840799204944678567643726283009771629397304541327929008468163281938508341037300773134739278817559809733756870498826979570050858645366168974353861381615066029878473948111990595643873964528531042780690240837487372714230383913634423467975458521080028758378224340880680134876602830213980499480793171031438552438853223604643173589782952978063545835622591868583644936823913548272976477617028317439731779226318566587266974419517112147907223178171014573622440939138874886344054858189554952036952427030300457776990962719859450736729820702463186776933230342704988261814688662961612060042706438796512115614493707821591739890160330833547165194800441180477130275553636743132874400128214462275068595031834110096564494026153196609510854891906576541922422875233467739047591817328414882374186005354003702571000346126737497794841478511025403744118866271029478405059148488816003708004008172741230412676460344674761928179664901935274288474605442871084169294572200736039665707268432419985041251759102083782019252597390839145085059076866198142473983573755713215520169902170970454151967576517115652367624975365938233131759543914702105565251716091116412123567107735522096879446342543525854069094849125380458653816644977034139919177389804572236365018527768015216074425980538792024821781145294531982519075282652995663916214638555543897553548657268796081841357676596356718032803015940000774758884269077381925758500170988033437659677944435170834953436155452400607517287429992010655456498266953600059295684235338396732221358502491836354697470318741247015958468151494224381931748728902805392519064137117112595361510739147004478067181048186948881723414175499721099448998356677631122408770088944864396534619400640746596683597437318684622560853460268567969072764320550468243801904411347828754710091005617457674582161390872468059918333683025870089159984063790442993886563322093736347895215220860858424965312940142107752341907215346325347280553889336821903047717044481356264621427179133615784812691238976526786568650153835851614314863356944774540786376411356442050834475210410646587886355878888088517898863955617898651285490297796885785294456727863433020868924359845798391490601444813708340649237440544770392997031372045380537963711247720556519456373527791849153580891454902776382771892088723589826325235419116198787769310253893455940571205399624338212428557374564187774430480922542926393793610226239994379457686162389443724600533102823430107003652941141235950792091258253769272296095337295644682480927243106828963949937442059972626538708811754007829236078623452887729325977792961785985423013192116240183422531947558511279681194554295675805425529288712229392489244423130765548785999978896130472706847469446387907490963655636940109578769635795050046576268120032702260544467160133222563545654619680292377736716109071329017338927777204395108300231086495571093701747308382658253206619487766615582164571568773522607182229790829617651380211800665315133013215236654557184254104472319551113297759982023464245486352897200628065078768104747081478081677331015813655862197947244272988994916481086104363474997063330230903587251031955860291792312153677869169564024774341299573590371907917729884246279577963985391136621241384373547275441930966629558960666621892760193589124337405464859481920770368851093913954748376635208110088184715780612316928575548061997379492822562783996349395281917089220932660900418890861586633825223491537569065918352335978814453725923335357094303877208829755773676668810792924775304848990737058757763465213475667297404805878772364510740346551850827638236056612945701315883191019307253777554168905160319838387782053121891138209921579700590397839633386419096343979073223112188502555576662082931680011485101269544813247072883712704354967393845286079541989462938683230551035027715137239739668934796826084223721661030906973354329699415785170600866618345163070395476353417868758161667660131524485302916079106865013960421436770096430544819868239580593295553798070581387060266611757844235466043675373850910740304246125334435554976738676562241662188503636280396845961831487924348564974458459419674107187527084639162204355456756370142860053555870973771698725335245540822421703973978806950230865173787941491430358344133595059328588278836967422298630330976098297487014855992922667491203773840041995282784282313996120923513280333277190848877167812011537650004815389066986481276742119731471489146697647994121166120427351149641069703803879265862419956923590078189709066874144772013729174419736820779527075805023227038157392012512925921695925859848960253456487435399857324093821365615323842489936622534632046609379229743449923649659861148020872580014619632942956820923917746162525970521093664618083031212092452223697765090886378313998479821354940825936052815273078602898529453350401470037530787885131994333200887536933820489610301650719335529575351712035660374481215149230504510583910487337382017215142105253115579321930157716336053785005284147279289444884639872611458400477388581613316706768225300642222080959501755895224911465961827959217554479135216493547806931502302819720302559206998265024962475559078764788049401638773262145339306549529078506673920784925639141977721308399536578492714160828371581198147042153465104920627803457305163734284912600474111867983806362516280349929746348811465939198637770496133367074673142254862401397000272478960342922217202763383937065671173571081715110829062630741162226364205677092766412548061041803948293878669078432774292149057417056436126369316968435399815185190082752100216010528994028120344892040933458245108703613085572691057241504619179142287872168214782202787837518891858156371676815797000381586867731533894467669927206373675782581494877530404823516379436942008619702034935776703575373595553931138106789549366231739469927196304282584449428660220624762447082317828347211641482003211345992043551798799629921133986366023611103433438441978519953062473607401412569576345566166987760411698704463798151820219002942882804352735844325248684998456929272779144105725974372103313347384589285834382710988774751079572161433249682462666609561501447058017151338278381405420293489779776411839416975701051294725353152132327413474979854300703021359458401566960175598273609883098640673419887056343578982270829498179852498392873925636438277067128739914820867003042014228916134713147685013200460800077885846640370108690500115926443713789131640756847023515160841906730559455455795218787778013762748073585027722829906665819215172724983327254003571527066463364711274216862072844762323283322678431110724101755720291054305107557012659396111930410665127773671758270367769979164630985783188961239960092779227993852649824447464469080942553253611718665916001524004039829809847785716510257104986140023756380543185210957329220762013890964898756623143794165704431964532802111570963909214666031099801052676112364839759188022700229295032131988989427791961793215843837606519137833374131153221330499939356905088079860876446884109796489225675880910085841696652244498142766178631775345118097784774082807873675032745733036075734485852782089473548717478320943198999832673543960591073009606579344261194030438432130829285442405566320350760444631828850280652289766417950509201951177720591169733912950775196607591257310810883755802496221451791096669988924788023198532673531990132496876395387489543579380998861858234024808710762203304690598826662338164626812835461034072780067120726192146578117119953064061520189857958901669658277464761064946716164227106434398021617285338522519363854513128094018130194630136170219138842323353970368006137405944133348857361584156119460465592117842109996074564881010149622703977743765279952112885482073371728520096689977180165411779798233294298290368477042369770212319574181891271531938707531272867281585758290496467865136319623469683690633232737459564804498585326421522693261832440485356240881904778467880940525021299110114050129834436299128197687596281457855291969694372374989082735823101322296089579755431920219485778636134979449626751209331930254118051191843905608074664724782025194977944842867730235929869565162953255733288742073125753383211710991622320543725803972070496917456942748652072292199048128503682952878235050540192256161763257424464894538030285029386357404037639049797501026452961301971308434359453959079309376338882183441793182142995388377243368332647860524601121529524515075878653450043405067923929495616285178900619953692029874513708432184976800779590296480252816093371473284878504982691621984627202330864072497217695997752001484480472264388188426651234062263065731608827605560470544596434297641547141395199128815547867251727493286153093510146600522795533477659653180453158952939168405140273304059662067068619507488587612801190703420852246435813272936526342747346460128896586980245915127297444974137616135125695911978110597004979980265544455738753189774262064944041004948831666529259840892365411241567420286668051391472378193539628482849084658078935508815739072023056697607541338836806787729927098515787037139505134699719143429002983896539160263081196415586782498038674229758758867387585110477549909017439649157138677046644162264982745447347637380359107907890390659027022528013783770609516608869069352095720340483644184713412169298631803616421378328964522663544448104693565047165527516308958410939434505438523986757778005168360185909220447307560632477452260944539731254578183701104909092694595938017631830247413854779131779622393664474345050869159222242736538931081243432518487262170729815975396086163197275519709740989752582988192302026474500751834482424946800470434707697044173345818758323102877994282030159971806708043232717068672241741240192350986606450363987059659351232839370412558987485176755861994513920499291672855848029116241437159894544323482246477035468417073326806518871070851970244357204277363134280772656479515668893481344231433718391993130120507656929380563855816713986529705478326216593298499590441942058197680269782022357028819781736663676085361027461356891278643425350948737653911470366479501240734166527349925278983225821324210762930124705108645495925345259583468171923430190145832560715264966217058173606299554506499272578789206922823251143401890548613072750035701325138991105246537411950502052957938358042598025984755354273840529421573448131737578901080242940429598797139250978580625858690390235585612858073705218645924453256988459990544659300907882756455826489259926637742681930510202021041876817844009731722036926764878227670249260209055735710874382019329052727956251019907171954005707892717895420103531546590602258024037501124127648340698849264121592299511171435798187857781866962671920179115862823711094567152912736989917860958064998673177370497995934464859130021719216466907703654705502908647650473302157027348561846682206512281348502624013848576508411584435863941435599090308049515064294119259816828450988029985716448987647780965107561651784331396733541391107503044951602311375419517258479497914481100253303788343430613208454233032134450011737040730438720955882929416488415998038279335171563579264405910765906203747290302856274668359655646648081456942900379457961126760372148395706976576166012443294319296720006661064170756119900440899151036659453668057145853159097496615236079709867829385475344640831498105553082546960303041576213023405940882233750485445023987881477947808276640827696970503644902855417935842508260682920822837962465404589060758518470580809682154469620604575685142508092523636874384888449166830329836148894678083119858559867539796199929843045784194439252988061524774995206320311814655893791395415134949457505380925977590177628610826338593779004311065198973363499825910713333050573442059772285173727633374856718960770887181444232107332877729792871357398935374660219019726402200349732898904889711278577326693488368196287158208550876878620893566092147994088244214409624466378316354839840421996252383818624396526377118263764668533628690583519013511857311206891236059351429085426558615604359282159383233078749443485027484171808293096979088428989885868094657447601856742361959764497593311980537770498057279751934320033684479138472004465234571649988550171396956256136253812946717614504183139735286410773773702192034211986814415084965004127968418920478361357894899469307445798988237607211602985181152168442691476141992190822358783705743045361168015450712358846017190489287978274417078093277172030828984702955277708437814957210942292787969321161477292455797648184939682385767513555320465519782342517446590586096387652406720766708584383121688967597499740484080626597272579688108866666949812739062753818517108134028686044304764520912811835263578910749814864653787510175863802869457733029786830635272760982519299779805779557242263873159221610447376116636073988709766363743197120816767500450909678903606395796957798023941440610462840003872461375661215959336778821089659094239825430185840063362654689174458129849410281026411273422647521336697006269735980425630094781886467154229114019603866512336576920601701771225954873444545005125748459935297116753695661983737465374545323792166680602979686960679242990029914664606670621517462059276340353364989376185553848858980960614202978106274329324196789789276294699643997828947257132247473761157271047432875389429581999472359584009199903179170158213126173394571936623152835914365111628047355115995538414250699570459133309381146748094897637554120063040440665338783135773857892581398577804556198544371984680649198849849575865563725594193257088472440514745146071758953716303652273059385952497491206310887921071641646637497527455000544073018409940689860399688384701840689811617881882648478041243586882639381003827716186997816065330224027939022139305113145101260354903307857141332792010908587488945086949606697412555521267563966437333412670979980326915549366352126506351635651302241459005271209060026263535913166567131697181579636743478588061139338521993506343667066412225930587641812767409160833902742782875952425307406353987996315561409831911300237367880670402084508075417282787872767000557865392056403914909511301652899243027569294932488975447082050959861803457919996375878999534804902496152741807887179676723706007820609630919450882849942462068197443455482226466432325638208693781853366912345870836149778101019829638313827960618190642622955494305032857795023476058705642317331210018213410614730493045157166921941361613916082646069905818001885721034080185926066172079724896510910907182109572745935827524956445130877676725906024350138071831899257433308224254127360165325516058690417506159064781331589995437022854408527043927908353246391464632261336588169421718176562872918494758475754732785357266269764584206993555786427288785879925970422876288132614188080212493138353956185394981160381985229152693461384821311748424881419574461726830054864426521868663074136191676712548641071807511893648851688913085802228185420755953807600561927347185660625908094705003032833949270400336138659272479419261741701003765276333918907746226910058293771701879061238933273970279878444944632334249907238349101118499037032983638269285451699931037245256138525912660347849252687878601243893415787540768460117442103008197289122426799599798789471521490313213680753331045609797730285292270221437248845927947417757388679012036638281142327509388154402648868163575946466668072555806351979636681772092830635647807530615832854382733412885359373323478684409014255498107934954316805804221341288054656847626884691943930463172963466457341349706308937924154381280719231258878376566745069536225850395247015373941036038237821894702877091215914197162239172778214072980281861365152449205025821810096576089410778218486606723760319247141850631236466063277620796279304550035735820251337975009595228046949708435340033406027027430198022054633075487616387501190094203139805322904782026057366276985815813744466441331254020013778075649786511809573451623195347138690742300215324533648739978266085294028322114737223727243022262243142163094424132119471884804392645435275997042882070677959576744017377406587308866061846041206237470978471269756102955133490664978331689970147837398906211286641725778282239861649469703927722144664811060729608494484946577693760128268467585268069196741875953626341661665050706323219760499741789436673987536986753234157931630715598005022081906499036161995885706431734521335212310586077949236699694275170723307940794223408897554988702666623815051352250241121203924043725177743762774483209646384283757035753802059636746002785202121962699688107255509105358358698853055313456435062599467592555300000406220645722254339537581406384633983921635429448716160116343135715011474471278668836833489686526393092380652769439228378560986067364437415442731583487921514143666779617117464091442299249303356522168591812771692954627695646945215127353411912364269154117627416729334597015596721546393391078003474041684119019566782973371970158731858466203856987754204446234085853671584841653277526622620005109264150460217892933884633060142472564074703807035992492153461136271208016864182884890881434620478010550685716271018135912546702649444418615893776759700334446243535156822858070081164628640794733474685316646500328855119741528833651550029397673308351151852319301669981488255336840283352846059304611208076787824755789463937757000419120783082918457473445165577029023906786216997181645951056557439580809514670530306261590237055321144798153155091718340638722147336646512529979148324356303375471802017941101791649120762412390369937214985985561733182253635548344403504880472394567558711925648538303541136835975470778289337718047370964357918210147571778473357779327373252107648763687544537149209210741557285202655079029051152912661774087196087205957209089929738010585855797674181039758712205124413951612850052073873197382264213801065529736502820893051849717683452347096748565611451853647579657583617265050518541770208378988257329508470744216961920407392236589603785665085397071449331597044468608005893100878919677741865432150789390502439073888320563395038348840739922975479944965708398678737675032449385333174805016055782656038691792484978021058154001858239760636750238656253168288188502254659875491409703833719972513656065798442374806247287127189112590424566885868253752310779721740473747955458907341424262585312536100594056027975167647374790399870758676122011003975418897747447266640903615878487590315922097164684718731097635684909782727840083790308787415588723221803554585513349752765750768935302877012116807409513955937452657423016546399192897838081412771558365378625232441198996542363836223020472672007443956136047499248624352631609454716954774006883736425798971973703047887008896240332807068272768636046302666448671449058911392264292520327975822265707785137805063500955581192005578032564556321003844350533692941146005087614914476916404954698012922716753535116930729452090548551562128601210068403068064424574803198823061973344843116515381069191459374883917557425310921591789669402694606608866605647267902752227708292894434084679256413391057651926908685885785617651775951339120726117600253460260273199692095219018386932637906352525682471229242663275466446384228285065035269764301885066446947017232224931430845270772240353912506655117256309527301873037659316267884059528782172084088461900887969540992397361060514847989866431675042473686108592069912328390300894309868363806033120177546192943027476589527679744616990860310536631955827625719651078988519259395246774060968447221082409330483257758631674418639604204585744737168666748228863969251791815981271033844229117399487051417990404334500486692939201928092554020870136232850542818517550207460177872827241587385896135706839163088160269463720174656738298681295319099708625216831765688717841760582662941540819633507410023846700312781467060769654822009907753016416084097620470646376614959720151702504367168474699166784612101812265615767174543907581042531304372909262813818912139328319604150869033412675286098161428299933414539103553066586332987170967426973678826934901479752000783749305937057230039657019577650683297141651999812387800565588022830604114767339750773619738586903501102628293193844653527841672700700869287073663502533671271605757757741223213405814924901935639499249321284988336827078123007199723618525820166681769698358351819331452527341027932949310537466561756659556858209050553971695405729681757051076339253341551686761132724348365889605983362527741568852266162982940724596205316057791467863346774908461215412872364487389902065542763564367776614586893001719769544155897001316203903796551152472833396983894038422048307281156891329104046898613792679636658532290204722968236898252531972578683991901723888228734992016419721730400406723408724529558322192014260535888859586869601667705244263547467880861515759795702590872094312323475463127069919784292444363486220109314228131235985597810867805366845173563540857792884490650141597661118363805369114172214745203277951271644997919712399526985767029032840558624086291889325064046151099513209006160173292359178298776735065013142246435711074927726462314188537705302704717190499066747449895310370825572424243787346149960536864349892596803039290599620988794876447154021343963510855527707914894549130200764516642898195564897334586397695287954795082390933467436483877436682376332763768746979101650161588656390596828235767629053616913467447398398157678478231436265090540571122468178045614658886305361047231956644313442996341638594552807448483724722751577996821818100646849433544543499399178100223787009043416686337865325091949206062439829782901914034553802400982640476954982041590969713828855454130492967687481056956376469053970117677332420442053266622237834984490787676107011398687230183539284605086311810234326587752473442286482399494493880712956514553823180118361673719861863811666610057100357028687383138744545198321132326977962200702953770710381624251762174615566251547726843679447994163249533760373239647709989155477633690878963606118165604845555781711309434826328082031310868023750513583477289786335401658119213363340201023565233673693920712769186144172329911400692297064200855455308755271652076855392437939887113429475478551597545941669507627259461592612080495907038937790997715081659582312439452685010441043834274988780704396739073932710344559632486329592885373555718204075874355958877039216608942981574195064657514553981743094461405565046636172210403390976298035022538956266123877714393665555435780630886894173444202132912236712626755204152628918259953788150189694079582372953950203702911093689908137803928778125933088052829202037218008095648070880879833119460227058705552292463686745805702650685133672836300597438852661804747488234304483165339181059513234731725240531950004174033204900147982868747687868035562009678353031172254561204221992470633823328458140996813340208274277517285587720192272396029855703321059265213346144538392997279423596732971412006814809024812734920209907225073714590681069707885885757340651720359229362785128363100351046573654629300584179872519928901746779691122890022140460596956972792556733547121334019263129118884566738385068427871021490827427545985104381499669410994051791903689114097435780532675171718259594764285677322919134562063722288966217454427495405873748178310009264445418886542697572029200776158299432343519973819350560158579210798076552996955024762938551152987494951368154122932553367912260990985807255600528202272944919893441157249640512120332922172743929149375499273928709978580021217891666244150228333842183427799787981224098287965437182402396860865581491735995507446631674321401238124419588786336364974876399241353170384013362039066110847303278637907847030858849056984652487265818690684844112521827731546927397397760300002521388286612100360600674143930347402506963486873448734947548699754737632941639431210024856985937429865832541371044323780641232758345717650049549926643394994758441982473068123351596345782448673507383077972960095953796924582728415415226992598620252284980392347716386115416761820508760821741340808441935235262947798763316903709945114116142226912378521558416763798416079931433048313424832663478976470786856771289168255779969721006070330120624019992195835812909959756231794587935714729579219023907078034381688403700426296667455852576320162631215084070853469131302011576887984737650620761863372309864192812516915163703278654243382485127126088164556478686800358166873141673829320692482228052207080247662375541279419891553711398003509326950062209916232410648359277305468964098768748611675342621564690615047332068200140765774243605099198190114195945195566658456196759551070752750820040559092334513140181542037062944929505341872871824606900115819765054653515442859487872188802056472998590554605604992395310816099705396730231864363141032485631179897657740795546161592988883806746943898277417588460243565289798155215725965618898981177151471067731455516980343752096496847145500491734357046921183542367379981042100572323068208658793498313245640744226939156540331829859100236302553425422823610108553432917737611817778693673422494647947086282760296628781379402808621788848375451489110233672761241520438232104507397887562377389870351469361505147935494823791853657250233541787268640251228461941287558698980978077947194217345742409448463113305537752174827052855863399301726621488638340605384280578637755108507123571037802313754001814849412254405036692820977846590826027098909945560051777046959691513103782103262818476945114699752200448904698335266505848652777634795175345688228084439205566642103965366763190625168685450068702843528552763952158885196055977712911056730100758201004545669429632349529807371685377330090431402506436640135194226822617011020314258350035935565308517664972767999198134642165047847211820030292312036835699271576686754745479416651484959553190421757882884016260266991195282017767214421877168681545408076010542762736587974844801152077388535026601584498385182389705196439194924399706207315733633157868929777162081497520585210184858532033431586423767782997783654386089068639639737236775307275894705125688736895177026593768348684706613669023424765863624824199319853591365033629738448160939027221214254790044558683258313139365776733651518839718899397269617724921394541332581858400809403010500362858929539354411147456147844114685058311146909183353713651347429658344717973616091382357329629327831684897357847657142865238196332459856661912595027700941599841615419055991390565856058178115690209151870449665642063404518590779708881193904627846884727071559714403549976852703172715824975541949465822248422193008450312125642384694949637999356174750300738110884941857808050279806011457505176716312492541809274691052493084024814242362643975900049611654126188865595027268940922684732356184434138294649039016101843354188772982308276731121755967561103312223223672101365626043674250596386125020757642797664018633346052483534547802560231186964462714865795038570688443498606156594310575045974140469057482897543904046945294232326289165955196782560287325535901311711826756745363802490343440960661677377147980880407983725924308227718465783987284717058144775743808514112892885801359761597124450728788319988760553163253560815478515486515533172915926049799112804315246411984927490126373057142287384209879976791638113843104883246866058553639868035861403392040531407809060170575672314210890966874157282445147243927522650010638145978633369693137367349116854909077580766542042516356870534196012297960677368303779213585625442143771941591763400323352964728812113610533248382973153815622036544519405324651876598456799098432226014261984782326567408989773719942356473287026761709077784955241309015631362211404885367473531501117746590387813261000012786006476070314248177809263052970407709267977176018205125024438448081222853716840441221296773026458013828838755597829008671982531788727185351249301362670577394062538628691503814960962611515588627392774050744437139920935424336372151359309829987145346699876997694085155053074608401528097481863359219563705485342760756128061579155310681089635166294019618917022741746085506600751615684369709839205572947975574068266912705405636274179165259884995827887883166779902740206255715743736365390995427099481755361453595846942493419832079131052598107187475651673725750169586196072810738868142672721178316501522953433878471347844809943384741002284458790296562140902075402782938348418481470125685101087157000179142205011686670472604714431480783019026445325341628323639325902764361876411515922089177796741601862383715101199150573284451076594395430641468856927147850057042820709305932263239946636360573228482953026643752951869104803975545002983473922864817747493468931115311509982951812897905174985835798656863543783999321094175179740914355799689224962643693001924847951779651724002851088499913678953945701080110325679428003925658670189248477613874942358831924948278699203839963897060061436810204145748784474083532583238647672959269236811792661879457762345826534161394033108400153294964936451356115085820518906084081891087265830664274753912466528576013539069547488852535989933202715496858764722167795025302402413819243576374540641817951003769267577811085858112790064487675000948363717103804519125159217405656463006458415719024974711473969684811644104494258725612659532883481584212540824056321599730176970183149681041062728861038285871795755077186115196296389800328412955113307086119029689415241060421921047862235480970251979148034855890735426631848541090109242020246926470632762661550509287823401556624037746338556282561737459241453129789010174219801896654679614470804297178808079804607846927993055981730368126195533587002137850126685655257696083996234446242391715011632095716430940426782334093841654178370328528904842304956274307923490185503646831323230437325075928688334175583218544754228282356767049967937452571436136168707029741289335357709786240440526355887531698640329357523013706809707896213159951780303739229643020283511004837424963980617436059897201410411796256684266698081490859633044784789616192186144373533262235764795970890622014446274627926027701422154109068535253123230923384757876016012415683024680826942579346275373686031297750621216391904630642091439055589362152346248259198328840744698726911889893374854001129179335261045896400375691094558200118641460509327378611632295579949242575878555575854442571263727631119255320203865700043522747812776291665573856428858986220198195372715159447171853134653737535915113838889702400531589179461100284994927202194078768114516664722663905447627765066572284050109993188320154072059820920142004852487662384597756111501589298109987169724172675856296597333674967091062256792743279060084706523985590151352356991168889849545757238163985488392528791844708958115570719761036259665541779340136995406618541527110228673652982202855844045350069119426443868539280051711704129794352168056809202287616222559069841015461969234214032785996412508187799181973515064485573881021876487331243529624284809638150225727440513633911659587602721890160196041251629128028023914018196943734320719773524667774331640657261919794747468177614293337589299764520860931473063915344156209866938016638966973747038659861670181556932245592313883906625698789297109391951679740573403287989481467667543901749054291508921777656669032707369785181855870468870469735981258976958184647777374108201833143280991680789588228206248450576600138208540358628675776566448497758488731288051458822059234120793318066552344376070556676589832346654659643282505280213146438949324013765443494993294200082392470470211254359804816927542344316993912922943200332309812229672489948719827704527515821332184309100212635786121209304347540236366765729572805947795996361304585874172548251415219654787126064308913704611029642943666478906285976825995676392893664751960460492901047539548553840575177177491891219063073725098654555938901728311068653701041977412057902461295800178150832808672143232493525061231856717181743187815898086815984642555185677025145250069514509221036177859224208217066022486761518766721109609269978279763240227309510181416439660841242263139302636418294079842295886551037404530213797867666254514994463771149042213793254571272539374289557642547659994686910574486327054478786562423567376397034307296001352517337735337125363963878070530257163894844579210144478227805673654700051443170546571349324117952313333236216232815858586235024725163350991880839983812698446808313632569234719837130882732383272373740064831255656265908490479554465975218378283656227576831249147184717842058762450666438980342722900358976222488569197668632928975705062610042276243076706401767357878165057692025802712125462308842134216998068084668082444014811477388172913864143401910918916953809101311441543259945047358736188252812016085785701152157787312880229391025039704875877027769985616292652589364406498937096961986840314586696118176640759889084501438046482290845945029829642240505238726369424938426369474914370174947769765498425163560649484451233834601415586728797585449658466767542811362869523807513700629345649302629213565019133918871197966530983712224947050445852634671340086569528733609918514453788517755282832605525531631784492351579234437938999788277178450945788955323780932888687036857540125110659438740891302014808102777323522683486479197202632423548284127400805902522675714381889929137494139617320996434219932597205204287834848907359400699615573893845386122875140663237390129089988802908319191588190682139521632609897428437930524241304355486940107914053461892853772982933000420266065499614472104198394985866112804802398042313082413176257599453061434863868421974985248536038097211329820744777176994630115179876505423647303079075012960475337893893656681533253948138764216947543909661708132108718758865687355775622174203180400008060057704921291483081782724781259982466746800830994453384245614760260668269460797063859421811658795543260926723922845630215398710803702419517965251364585121845858459061009764318334123332401548268793378940314113608753110325413513487059072797403267101933387045568027429100293573323492737597467969098007584168043025846343361797310840923889972504526299638835030483096627515547834634046253386058368014602347663521742793747240863279374329172300971710061590471604650342777082018343189451335399160864272898434475430938571810705910116774757369452054670336640386906194868360610803564179456865626227191809140615017546260310743319730373449763136433860386147478211496663137575277134311051992733273398119891465205709192331578255786440737302747929996424119024976804254012697557114339754759440820872395293938141618020835484254060192301084915129921091060823409791412942624084532039105869477426268616034170041814433971077367785401043939169846548420745173902730094648327913725108604871605082988493712858017310290326383561728358328964968460426019026576023178030513972556288256341021215015439874727542852157425738772832701451407421369413508825574323516195462226072587634928276805942726532463013524562868995662971977688325916255675232165191901768448481042058693226545204341490122778569994461537946054410496070900585861434013170961538013904658587871841284339899447473273131135342606162612725227832225925535269253298081392103262681453992100158216649114301164213594945026159542558467949100323573662263969630553831531068610649776268174492620864206512896020276111775846813854513489384642985959197976058786145243514612437586819020860927656095371554108253030216630336604259500744546449675248419431253121728628110528658176800404691616769971580005368931235980583321059956572043907360308654906491711074375293920038840970325377310601176505948231542945915379046266207258795821897028130250028942350300685516910159694273359426433233506768940875952756536548433634213319842326468317600927860262282526834709438381247713125438642177291777698114336429692150890284369748137131396709106652964012656019287455359644838829420689765646992797269090705266342582500675782118697340521055512028757922440455979544922671384905206114404862395635366658910740498531531434247144223610955233388183324498353452489665138070294440808265498374909471140076416626235983336627592144014928004502682523677972346204330241052106530118688745952029339796767590109451302207750621561069963221559191605116354335643580812175027544038065283574769910822897450903652959615308889221214789797197072824367198176731622954308362315433863994895981459127627618621052390491343884399333536003649583900295294074366404424295701100922708616215783250933060486507545907154191402240410977524089260912240841053641056215148611825560522211886548352187555860220735089894717267126459696062328139226446019329031812822001234676808662278306976845564191971710123265910949373054582593173816360603538848598978461850536024413811214952672129434225895096736824947912303029378545089723401846496753567067145934950025010673015421035921741985979195444867194559811178210536999460895804116071013291063332105982012951616222986986402639248320793865694494015238043546946695069348290982117654409117072583989382041993879451666052191340444941562946563146611775199703355949230613155213902599262263867385134807264860305344121349629049469164397558489703503436013314445985820013412401646457982529027628180770954065995403340918263167738870456268240135003516333186666661438896252178431513071131141739100599640908314457715218515064532424968951790397773423098055014514440329207921105650188762779841334696925009388190709816772685359480669621214463982565764939239548676094846593300260915953493359918491310612934366239467595084930754957052801501359405330942172164834146811454661336742052094024313128415614218538054028064577233975054450953116380558365485242189211440957287807658794699929447951376716357550513882308306076139197906951310387741271895983090069500794190805094993434443729998188280794258601796068821226699398436865658378515346782647487561270481541349479132156128418134318435925047649073580379576761381746167339120327169852779387236860674942781042839085159646391566129507729655850119713039660795143893552159164020071873602572887261402816868629235873564298226899153760484244295273806869303007744824353788843255237359013061426749481699611281882809071786069489232914798259529529260275166006973216433966579559536217252242051376232327378703513873456912623057340044015699370361897012228971975436822353003908294858085879222162505294383326756640012533491969626089952337685824316048808450516260152636668357795892755289863343675668059247685564408266352157974318610134839736638007560893735371761096193914210662898992313991984062591098837398660798037652764039283666862851597456373585337088944346237415362029933278160815029161512502534361932241410141895787155763647269875953750363521258551099559874955732407878378390663491342208532696781833976611724382315619648708098740994330454504466193152127545372807419752380408567207060359385740172881637230738901058647581897091926526041955350074552279910203926353128024085749736031615426973482303829040207003145258813117781347953465638239975588761228177044035134262757693035700312753937234673400103749512067144662418737088881964146716632743936276347151091928270718903850234885752852491593616913063134041675039095372388686679145091670665456548718845677838499321737363611251645784597699235680403106054944229917156410655444455817154551596363633487331203236439028922394074283022380389244119168637994450997018330150449280664164283272529117808822091489418050073423299493361255193645417926395149857819379335786127520949093587301606493746879023875815741464435193625627466790619563060781434535725917023204337053869214059473024200882438670484238734938644414308794147724379996053884510904768698420935788468672522306581757124124238958037201153612673677392748628065159921597036064895052274236105869446002525227134669934648827622294380282251348144239895471276189514817673493512751921491406374100172261704852613235059728966966701705039768436552543478775371514608724863078024867247896557995229903516649743876848083007148602437108832435460601287237265520363182640393899144538512855533276062097682879065026874057809470096892558448614420373288285100797244039468378772144662036183093361225780943522530513386551357142516211821181677067245212797223279225429663261144384810504880377558956406182846327290506908001112151798778633547887329341239501349408414312514037218599708718736879548358791035440118158583887505004001513180036949279148438715872597470662193921711655148606948252192805706488296030857784867617828968002837092873813424212811954883716153651854119706854418628234715682311517256076468675888139069026394789020190422310096936478187978174872792887599644849964242344057700790687527360033302339571243692141969823613653397274397002306473768913786618421731490804814993883895339274409714692391964881830144979570034007057682902797369246075715529847085408751215253397958331648177437380860859396124133191331242961736860510675988487239857242889610757422156323721662723482192682029973831861003682489581381125752216798882525308855368762963010765083932866471081479692701253548292877360516342553512400777722495899141183483169640735906440477234843758999441017246487270836957561350419745811421194674207373495178399986973803707454555251363421005418637979810690664690959623319273512321663168652167678551096074754656807277349708904828461079009103316528958117778200957811035493000768015346149190121108840932150189088963255412855709015813645878183045392775441954995671972074299854423747275097688164991530335098895893138746068919740753864217712475212244452909238510036363747810692779888228492658487637755293094986260247996462005190438999465820085004087770618386147253114740414212020104870514265512384984442323888578347969625586732353884401010078204895728663049599139134093920842400032106407625287960215130524506320744473694640880714106479980742854081865842086914371790299974253555050652354882438456540074050240318468838825847696594750925571680516810768555773797563815803784921351896096338764977104417845837917426060683021761980338333157935480029298475019050575991620998711466793618923577318549520453148811530910198663322620261466529842956227799306222072232741113976719483824232995689644812602528036601410955110545300565879586894505365833181731613102441729868520301017491110578984377718257054868363244438834331730945583567698318307047196110324135910192736796556167800060299959086559622632587662702437647254110662991979892846340823491695221229081443224833312335234835316523213384330195783682815038507212936108118041842326045371618418930578744961900973036336603981538916809745622849360616835176971227641146082474397954662987162134909177156452844416756561480525433145776466533656064451639760737175748360605331949473209542055513705846374208471733400014728084585702389399172541156610439326187436120147504989639866852488102204951869532913467026328547037211625260672499663692166738661677197216214281818158292892999023193575980025194620462647506071391935980081270716243180598614743370889620098843908262846807699922672435732664490285549748672723388250076130462589556081702082416894410506110067287726068164701135260044619167649447629993799683555285730285164998398349587799837366014426816123768368303694567746904312821033776979906149877422321281522266733806689115430470202718927316723316544497351277302644969651873141688837216807658047444274375483460754454857221471211417663964124935483449520029219768840537857257786998125788942433708578534449805468562951807851323051653218898216226173930705605126664407319886816047670438823286230394461722942095381706079349175432963016662371082109637842158799091307795358273377522571275445436395817409295425776908311487835297235017112724285964508088254070643018491770721500375116610935834217257419259167383394400753769836839533551519310085455744206173647323785866544000340463134041219490396009384535239121844026954728042015129920991129974779937278964385883592591187633085596027671841701201012416745259352745158642147684317879017894796947739991633068575915681625413816060850037675884282558125598552155731263688652024259148995271083833952376235918262211001498890157854577957416000339065539762183608459148438075381624334826319388309342895549546425213331590468633299444096793865576138471872621170413207150342183832170418024439030603059083751290399165959869527451194684332498331382372156732596987623030512766254355997212436514042517828365361916380560454421857346687320004886735220724195096080211110294943329980608228521627888561854907326033520993367174297686510371975402841803090370837713642347538260959686737808045927896097379384641821401665715562344751453277578586112504649132817304185840054616310157222172074509149800433846321466016024535603267003704796946772365161544354587269876010931788288218859644728205960206591948222784476497529212991676223542936081591548201479524996872742701058824317973214462104017660334564221166087068316460855507214468890628323623465569568873574990323000307422480719929945553295230414882426650706629452095431097782590589949735729653346303812730665605268566762495881928607992711274346594501318068500062807294789994523114301033885403446882189141916972056580905428443741920867606159803045856480793364405407250897389098265427895498434239774311089359786112203682683067551283007619762908732654591404845573062841174760322413173586651445791291290370389902509581126392747224374809506196168388214548579606537507346764722471128672893024238647742587451057813235109433424502928677068833439862333863346392060133104327468834070420423478309321517789630325351490213491544432463088571037177756360319164016012691320885282553635620031686648572514905580251150103471570892505223435061107844179342004045771628976574112645312196453291994956229487510978847115830652402580396585142692452341591406903593749321900844222292097749184317637842199016760238604306290308226739629809922866710396936294730611578822637814704393063670581710821081807736099515773370355273386225619358299790425134174908879639820301928346375951240896354880582452229591450017583513701174535916432562138750633338908020113034784395351066974368548593098916843082617634874005164727132173616208880286265881260173977863345047063051987128881209055342423596423852826711342317536280940809559139411197248213384450767607991472914986960405475026807934580897339908195791722027472596895808872256386637587058912918693957982396880766291290621915795180340511346648881494709037648192636429587596134060422406046204513907894544329876784210853120777160753128685350943188081923845172314725540559673739783750348920171134133378929285733739999546488810858230992102265513628054455109847250627972068503638935730807570090499503266634927925645790510214005589280422328852672794569750908656208204087756517899409594213001191670372472366809463573674598848359847160167095892201995510477434621982447048769722711166444258768157353138614025828425141133365389446724311737743830408568400936720565887316959441823195782271051589836725179357658085968921572195994221458267796950835862674702031762920063431744767938245407393571464158270867709295822252156495198448545897756546861407644799260312344409992293603769777239202271389973067557067416504083630457002990561931999292941809762407376085381869784674070764514856725958866244663344330946334965657602147488069785953430389449483168484275949046217017357681224047194970530373267115825059381634728269786193807705544043988466006348563677512484879214851743204758389260424416632328119532195887073067837762676847938142223926890646630206568816674178305481680368575590193345056691966834551441501665389058260737136843076680124074906101790203141309929474918223594664889177685278870493980493425461133432490164133329221417811558810781845977092596596193471565243379657771160153316132269698044766576889753610990944555230189088577326705346787263873800761726156377481802830192899786630440042920044979072546864276880899761795086666306884386608085420845577580016585056230850306837502799921084899321422022006527969004731918874069366887142666808165563124476353406430018408092129236726742562921254588046974858306273262364273371108678467660367537258516601264486325526632841526947902586268334974539508621762798366077378731209095230388518714206006813328850960701239431959112433815527329382648935707698998746196875535861849208156728388440942503065106895926019021772451221001810376541879417796969538883986384505429954310312312407845009400985796681880916044728153664541438787900217149568110338132320646236379041746481250501377763090536036027731802701295356057395123297018790076148668968164509477943005551547167123586297241592943514894669738892832843071207632179236207107677985943057940194344285015121199366267381960439048812540874689371593461386927159080508675559609180499075735322488815969015633648822789169832679750937424244663358809464055716243046151883402665643583711973413265064530550329993057181333047990479083790818356051415676088779934765826003261735045855151295854623042747985403123964759780507712076273195227884635312971824448606379522430120498430027911840899614583234489468346210676685509926547638083417839103598933997204292173762088253014936795369814858902794208384283306231564303107324742152683452443578893194518038195257790673319660594345026891213670655148012525182098587219997605271519462329691702183036403031578502591076602735227117089969846281885372738148963796969322397835970968537872182902580731534622078878912463254676854685161811002261792377453100068309144241336010201788188025065206925844066521742071291389283038561654884784975332883448069285195850737531535634359857772488727436062477675557215007178382869508836954946298277589892653979275773668200959724504609361116591666612246045455016949664440026358181335441160716893609061152062282526725164350229270158158058630751698101380544903234667010374771069204325516759064787408731543578308270223611528711122603628708849948141011479260202500418949492872470376422309837676747274955506569525327014245957680417926169121466093100392218495691999065669912957858864224261968218485562441287596155515103061439875026272919864972244143688244247117833375816827216210616111215672916023439372918989095546456765887011371332062890927702099564072480724378922171203939103489006625490771347257329900051728470661150336503965768361110458896823298592354445070188958080225065745442509018422215590443997072929132995813018533809715463915023153405681163416504867726763223179657687295544724924698691362297800769724558769852437448066460469421557494960003447959431628447939581637786040173010416501827924641872353146008528685538891469262563687991005691174531938148123433264816227336257771777542709948134502016123335592386207119738327328730424849595735786511796849913501287451270228951628701955795471488807782987956216055616874510370393861457326748014869955111770770931717843160556109281806137577592202993361418704552509173010516739670016327621033988423261728830579732717884217635898816135928838337318066511914483271000292613439474051535205922713007895033824124090847084056298231208198255710525075719885375318688413821407783572312341803836911207511381180039301319402500887989730954389013320035483613016400533651943931389257024328528881562555354513085034180944951117677177300132408701569228517508863259734836658251847393251428412869999865421967324115218940825633679637911649331129383992084228891364139307083952020216832987985204225089058960382543099555179820992606633653676057965813584962879750576150288372844468114972372377246317440523780507810276346455245726985242935771872379857995669176565807018871431431502356361002879943748147338960121708620785871272402371819063826315661188068911663130356714643192061985757163368395594350084253479613441411474113884099998025926201136219609632145276502783842332474801276786941680033562024405028540050028619886956886786569255363862779041691293738526097284705660100956442658623488427545784637402257869523963660169828897324853465609642550858104241650739091899389111902834263700953417760656592258325046236148839640190524261240083732699654688119208077893394813466455051513100058179236009919398455423478409946769801943291815281340154526794514546326026431560149173856605795267410853156163061466753251238307716145414163925853484817561382662915460649726501553052399530455248265144378184502265795606278043979344971240642069477413641940980267634955897890711906320086653425260512153040647008369967855064709698251091788380441708794498529555915797346015127703911691870458411656665753275886002899433101074473041119523859365396886345756802932465716529490575567573260894939697013658988678801524376914093218274847266604280913608812133190124401549087782584115276270503196884574155339826298568715140916154723705170879658743348237072097160677214596849964850606946394122797855746471067403584130934525850136642582562413162067341331829181068349121012048673612384415240166706503893175351258586891055499634265991986274022863979749036086653374310148911404089684238744062794607600982916092312051671872924084371636537633964863664510895977181784731375391055961086999238562543315096458210427436898690325248377774246721460509662091293795126140514860215093239939575330734049897844366283767103155678729706105273057698483153407332911112975524490421757595998239478421413883247719695425564005066652189871831232070284147308029812532444777090849786499934792425152559368310216749696724258171083383532703544052815626916980291380421651606278577946608580634359017224530197880844861291986141824510010585184387543453329595774872772835192114549990311806458633751670913228007765401130915222772450113672683505795048046992056054196531500035576770408540154824998054952818910603007699852617649806242437290345660641509982017378803349738096092717359028607204532122251447992946717119643316006192837109036205704820222340448804215021599145676807495735967895431292194584590227884901205865587768974598112784954033043422017575684987657125974088790351463741612464616282838815472609632142826652423891234519012740248952069657934001467633883154163739536413984028043402336741490335749427319474318952963813087144177906408064785883937491678628155911340911474108808734875859786652284091639733653891862177674089706825483263821831376883381180696239781367456435006045813686204631663383538386836256381742754006053983361958061587594971786386702549500663763018638794250981029530742295203242365417772549847166821160246708601580240448631434435684793475485582828461484395504572950831933136397143002608916944660738818757131478389328547915966391936735117156048940685596901024727929191685471905788101678222996082522609238272897428790153820032162496101295781200230634145702336884223941391787615010598202098680762362778443505780925713944948168279095977766382896960573577206303360055331974380566913932386768628569754555654593586923413735743478321925241335853921551684950470129371362514596046562153013202790494422513687834697125299928343028174655936852077154749718318264177730457930329398842296297820724220243204429776368003124188543146645894235857625519063328995027481181716253927868408111985701931178077547092398856374296504107952146133572389664215024727376071590618664765877432243473073992789983074381028714949428783115233043716333414900662860710038453364995276646591754536613797796922285265199969963592143029973301504831183420503629332340276681038883160725636340445153055340850962135728607359466408329903117591280572309157193511860370990536602166590596777624547177560387417589263416126564647803226657704456177807194643652890949249762447250941542232486204197128124544025249398385983011974718358663338730664414817913905415865106344859316828851023387713872480295262669044298080759952516996128929414569433293699833651023829983854620633288485001691929936999297182575993715702536812079371836425969031438756125715760379162892020016747071986660000881624085740418056550526539710658648908691595993553066141556181528368307661524056879038491272732549804336741109282544198989220612431849032279422921576213705243689106834822178492357369527480845859570785880684650959182662683596598616863846382356017316122217608465514696828614183811666689501793045139572747824435369170377428403431621944761732355961486187044372806481360351103325014711304934785937113487842044492090826305375414492235886143300131168447798248483182012327934488333478658846207518174432708181412721355550066597752168350886449750954076935806537093302264759074254030527704762307300565392354823996221076504456513843186256740670594974943287267390919671113286693084023463592614949252487686794281791908347515528016518584313950011709683530347291719101228127651724412264081721802441755298545501232442401712728526315155772667685225392746923664319158025858571385389815984113481768490974319007647802205062372309889720967203996955655223455992837197656409425879032388719325794403331429140600185753279262003304863812234379275099271519215903216187629997533480224046998086769407789149532807982432964533531021211472374087551066872477345747844438251580292788365158213319411987326413401427422175092425965010475936604756708586134845918005511645179539470447335955538511494332601133527105329267384482600513197640344225103279051275114185611087780720118848241177082252253114457678254284896036201267966445471556329976621758721233298910768371115991223725206649393045900114989796451151111589717960078452819638161287983499379513248443687641400835273919131596691796783149685525367474386497229928830499279802104149159617063296107703331274540673505020460463840656058687486645796287774864077560166591784214129887447618184366831328438977369480454290543438907041583955243426710094015044033151806815875619659823676689972474310569362725100211607994792394126247308113881842525267038376941643981207406057853646429771319488452857926647828331444577704373782683377959492256291898479879992247995375270039073511288779982041577046338590083411235201597214274299703917947837803484528536848595158343515616866273797226911148051038872296106327292222350807374723757807942429580203937018215167534469227226507446241454375771276344445072503464252445765340496018305730113839866979641701832521929207428338439668985549062790898022646150898090352455714411842635672596064482517749513053586501429499090431658016399187298709526140684815182926265744242864803881206379688707004804405463043645062363539520047115196726136481584953541387397324401952235866711429689556753767606043107202405499597666074379448344311928343451326231336186542910187598752285175010483067158056634717647483997416478741281750517485453416124080005063939057314213174774227939574623795176706132599943585497169336188294990248902883775865534296395260991086034316090648483674788805911663919301359211951304041723396576229459102418593779265507414590517720913871985685569353791207822171622916478766707810506340942533738540074020772204969348408575912831731583920311440774055081722486970457992929212466839002754398501781298824881854729399189414458214594901266038344840969145333513257958806836418391384871646000313648961072832334319359330965285906970312154039152042634273486900559152064690066356638644581937102391063211064621539911553075323390557289386414522444188094196031420429737071453316906698456625283383197289183688995836906131812088495677173730043116607541001983259910165839406414539639475803427158959639815930511004363779292319966359693769439524052382076516415230163752768427438208121374524538335413333191089320883952042475075393825500602532984388649899668305377818131000104813430705826580790785548201211619004727435737414786445829981568022385368432585413467100346132632679082303039363121133203950640048565619713043461806003605917892034760227377095264686769177728468589715776195062595983471287902447453835955952368756080252449423322527467625601852023834425793053272961696376328888668502386041960657418470046781952881190274570883064293631982323167732919752746900488214490531257112692550950216837814662943511360545708945560859048175994590263216999156820150676339708281959395540413888803468053401920162000208351389829178915229631958607167223467596479999761598742458614533172611049848007268420438934986594447171243949495422639001391785753483117581708751999746534732752533692672652592921248758218830726738613678309798371787371036793053257548461301758777124923653893290622014298649052970339459171461810561317321964987182109009278144132911136277344111243257574582402431335893657266251532506979743574840375180363221647324271547820411281260128983869936886871501997966486364939104759974522895290961419205893685943854205513649803476017415108389518066679066292002439776577914978512098590189098850149253219988883715627543441254442877629801389878198499757861334129751904055289391898429932284376076828223645533651541265502731183346447835835505199757623973447141944937723076148906966260540264284163520733593065956404194877091555275506392652155507613383498792942482697937204876275932161724149810988986301541094559355372240846156684468039212505503386249833239013128390073524211457801541777379575796985781255009082238094549236725490472308079642980578092581511341312739549852880079075915504736853846031470041912976709445156290394810801670858538318803801528672306683114018179816114896317795146114330953412618862420437036342872622318602290208171163750135648350134582908402172736514559279146527083597478286220245214448181700642168409622235481775655664417798253533191636027561371174071879975148772358444209114158369311959665906034100089006109220032876860709045117206697918511019318670234775312288539984688942761514943899129598338125088830829740904339914383927105008732484912365031500605797172395323496289278990055113409877117034236165227422676293102859825365604512608850792672664185344442234667726376835303710782817421489083626981598464665089971288680476647582201056600161141198112885502488007117663253955649592375284026821591155968968901894378638939625957719232159791796195370682981989164472490413116454542928259934864931661483391890519825133202963689358565448176716414864796633587200595243788363824235420865615259985625418024805145920719803551815821826766524661235402328850713491868259450465578622295622888834181936403707327108774453970055699280388221990273805660438908918540585102027695061083644225768754592136793812131050975556806400142611485629729468846232953564949230679379853728587886487995386622194417308055879585109367292526979197209968798496538242836717397876925298478112836790289622511035617144757030295265126046229622897682072689916114990361760617085719387214230245303519448237686449861072427795156428104362785532692707492385905282242747584198521779543767006597487287802961686783726704528874308801214058139048451404593937251593614421433956448627565614720906500678865873563764271591624199753512694993649581945443045045039923099636581244503636000705487620445430614562257065349120987678356346851799508312942342005475817860811855331240839987890549617003138889124236380061543429574491739036615047298447828225648450443903731917595420224030240610961278596784760041646278312489460717189813972191235017107732618866922305554565667478904581771638819381085190095042916171271887982755944251964386595054190748963147794368169533859141558796180551413662024592987079237896252088075342487382335924695604431606194687406370869703984152074128765825783648244930847533496358655776158224215425831534589365235805695756381499002531559317246505203311334761199346405545612990548478875853601274064585695170082213955232899784252055586940418589523418013959671543738125876394722111251832476213687927364163863342019004095004270387189870870444681632423283885404658603766014761005797646195829993651699271941472644284766947403284154677863501087674580806534595210909964022232409903638802457995860982068322250361423649090680209437683097115241904206987753156473324222057980492007520037142727728123182402880455939108049401034833874925402535373651510306029429504287218753596709376521467897068179968002724572931134621964787481947986227545635431569977158362923111852788278707883903818173938374802282366048147942950221348032936028200466636131244288857419626316096074657474961267529891579851987438582195660829799840687492629537038120346803030921540218110254553502798534805887412153752979026250679638305802706936784363055959014538098783023881681496069215138240769541223362922537706785250864964993126081999914080649240974399542050018095380891380278437367496330419455970823443992062326861471231384106421205129259816850762956941494585546655354812512514339085767874621332246834262259121276345388885138404360337445758181385645350571362811445303690867381471047319855624354745406268760379429266802699382530196287617614008364410165653200544730789703154657063135265297250111187466465950667643058618073858738278188209695380159780426923256995595324162117692711938913007688371305289354645470007895288104377552013892907910943175197775961946476549646403616044850611143059993304509140571192295383773344526750397046778859587793995744991133299368752540388276572800701065581293730306170108158239262970742956726223986738057342386740453547923233391271140001447905033784666462164556144649472777898900339077587905293413309035320397026802435246212827028879533379905671563304376491489552031289492659586312309710033560268206089944062545935333628400513175373218197915182480787605739944295262153498343451417037651878072352439762765808868378668885573510436328628791356756052383709249097443896179329543880531178424354645064497530946063668508007303190932891321515122691883408277587769205413517565105010238792041725405017879320185993215055481022611561163912299845206932811667972184581762020513333735147804964216571287837707136973840760072024812237370701236496526944555947780010319169245156512048367543646696915296453136647212930990405944706532447688568998857080646182027584042015889044701845416091031074505096434684016837792790635070398043375964512897072584953541549821816668122679388099305967799670821043071000313122109724399071292637909998321121267139448172066426311318697235693157985615964265198615837465392839085891570526564413577929788037638211641256825320762305085876089925511246499290806500143837170655336034078837620383404729471569751802822499133588826469454916974103334927231257684774522064881010348399448422407196137629980069177524972074927831279250660180358188747403645840420335964114911788635091066662202782373428491541767108937151732177966982494508561750757554833265953693186066517466017773381878017220826686469327365367146341510454502057759711434365754471817596196144570411650936017713701101874873133946005656914132287344836786848959452232410331163880229605302173968950048307352319105394574324983617057890803051763148777212534978296811386016214120529070316395495036560309795513862322603355877361230813182579162064055209064559645081659487296750132173584369743005891618275678138378429752028971064980728532730344221607131335608746531428473285863208189812049309042314275046555175424004155769495748359117229556360599392154709225911031897804275640794278483937461460181421156213946895161338097063959862399598375451186108461399309989544953353354859285916344759602424760829287895268041928288710193959132460677350781769614920958889578522684335113995177005573129377405497237791863726600122424548499975147994635358008414616725716730591406796474695046196380091719425880818848931067390799173707956221798515311349043866974671102269605729647004417967422821382647446085493726071900913734624739600482869319357661208997363087306747100974392211380681652798578627134590485576419189483804526228248077452762957914827839172427314438252515268012248455426921104513373621619425554293498813244520225676731428808754768730627862708433109838179026186623903367050265005918000994879103238107149413291291706573167800100351043218246289395419645596524756734701072715520150818032462652561961062001077254095670121002846911749902986241153147031513511075250447382100895110562938608755953311992802791001944290324854936025155284907119908871881799468877234672070647010511438422470222435885565671655099585634636846885514922354414610989645976740312682592676431742345959940302670383344175703662433500355821596896608724868506771248401928369931602740223345696147550241787973151983092132185770474341534109332673125305545981590262506777671594868670346594788556611508519955497119228927492579017446774563126845113988064631102425256697445584838974180791020245943493352728917315799794683086305690932133518228024148428323057942765749637675191497919484540649947579571772530564010705664247132974870496229512366680904830310787604586106463839395044479842743890902054343675759905223864203647908705973623025754695691456580925998291924225648318212194359385826451937540681023476882462261684150429099192052220601149150991715625760258674360788074353633755994915233403853952178195698090043988246235727536389611995617027889329545522260195863597117632931792113398971416290887959320232600697216937656046775798582454200674462903868076461840425092460922324252229200603024576151114092398763418177725146373733755445355804730947791910435822422578083561766990446194616610727547511224566544184007931543400572580023617098545791683526371323415261662580379549416972596660334604874513660085765454164985918773388070656817517263854880219730107188164968994174409445343299749410060754458516560977068638439991101284405074765803330039596777489001735355460220348228758814679389940615261025507111886868767531218071309309791907179994614940510942741024235164483381962772978150587795887383873063977796308724674451226950293305078670375329705804443992550525473771417032990353354030121906640940206285689887998667785668354929269217295831043541939680748923696377634798354442786540378754659167155802077121527159745046773299822901140329969873422043994829049418077190269674682913574575673849579187630217240216451083603528131500580291937909184153024807010805580713848776492778618743635534523426426378469023683753733891129451339960329782314780412523338330094912330541304961771470440321961519055235203852473534820377265387964319525720953108026494292277860272293646989298824926420080028929433730039252729100686823260483088371536897373714537001191975607082522393998093189581020809876368302046149795458845619118793701844399261091152580780175185255697660052077011550389973584743500003023205404658260421836609856544904264853420185746899787238146068898871525818288926485535443076059061826264257152538240625496673723964357216102874041311564679000152597201689005283211697487000672383194254741098365637375612528951357447716213529834182804902570960035986191276308926731443644718780117168308560600844099407768746425537629289036992332702619387068282372336553283214586269619173663832921309129712299696983058587089917837500969935015607193417708291866228408018390992637659954695727347400587377464453510092922860877327788605359499712749750467159724111676100050031286172816194334747220880330828166622354926672911734415656683638475669046201803712260602859896620856220512066948012812775612250436198467058829829241784049627027824231207032001115158723489640811332115672489754558251525365892014872589320980215055105124494671587280669011653136129067453384823324957576168652064787751976029483032031199365775704391648018983007625558245151031266037304324144784344225636926333826423173649757699687316293357372075122300373721965329993780237489942154267985083124497759946574156025924649595846024395221324391582437013279938543546223398169646678692683083915097249970870157589443178031182952597170802429354177568487376366661219621706390112680833866806602638513442448017611388342887757304413779871876039519883816064148617408993677313388253819849875430323872451744823807127485332866234580623145201000077747562004072861371037297479867977155991896663235191966190636313764103465491118632501004184661429367205434549467436029892846899426369558109268739726386787438495015487763282642017519775945385109962875129077739305722365252621858005882482666338005084138597473009502893052522949399546039358415857955734600927712595909118807490699423880968560733855184323167232044683346432514116290458722565129978897111851239130302332247003950154147607691691281093382154637031661270884142548719671490898733299253352774490076799517893582334388759742724328749298715835088634109653425457673356368709222043131741859059838045932517298739726601987069895165307720361715035217577422258377078636694683474707319618391647657472578829455816280293691460035668984279514560023232130782556645168415220408106622043767609200675274723121853983462492927272507982260541423492438075833291650452519780771599791226742865164593046080737655461691448378623592380794728972991928391036613174493130932220939472379778346248164707481127117252752094667751725737795726406714382576478195734966305703958538274726312213228954304312020664135667741669751156836494493480714344804289472170847003517923090360349631327419751986259850566067991485620452121715913414052890593364059277608072003190722069016665843741717821710825084761388961849013718613886368793913890213797091037135380448404479543350187622142859134275776723456032585116392009662310197814473751948778234173175995031261473024463248202600404549734941062116417857471189908333365585690359671702307810502039782909096457287933852355266563138671213240266981877518417229888734788419885916722734052819139101814665446916389392797346412000717029424715548681817671013217611286391061962578990264720895049753382507936053460157672780118314990103686045961213599639776564654849605715345868042265710807812532920013133276840200896913207725094770847729479281654624418977267613746351382736427660056679264705484614628547899063002159882977240037408618472119817235467145671313737196012351599004440478336173612051787822975267431576455891775365471518956045176821902367168590612980043932070751938830103457479090297986432260453923200981261830125341026912376297718101767591047619066974753106822095357558344466639976319034567908807537115484153947380457869428921548638919892540371261642366192461056881792468376581121651141133010154802909052167665420546471532230209639885927386578930336785101471426349142136812243634841268521556557490558068169269253304822205924246065823992526051451743474299150165973830947859352717199891635932281879325813818523875161881329441403555931966358114382177360303004062861047920283659307525872883703835263520794770688707966637001273586882575043856567222437836095977431566695941812947013368546668689818287108910525111483784570903210696906201876727233330637429279078091046716058594501427710457554400790330198463388442278828005694328627586063096673887633644129670811412348395156996388477590127152201234439724548936773698273381354137596780667391397771620810360222836346244375280677548988358913310104601592124917019078992033528987547131010373661517711491764221328744853954183273425519401538352835562186016510436745689324369158014462739721638910025968321762052414301819146379523634754055617378490513042820110522453341382201850859403260858539139137132543497897793705603912070912752722694576147824076725383029049381510661770853815839193622365826368978048866330091567579800320390328309163977826461922093217925066058310401581594251799616445266826330042690212470451200782309614660812138362835341251599677817099989016396071257322643285833238636139782359140388528800400937730174296138360606001900693275025392181292050624843217953092852191755816269640972631954537881358051844280749828965732555188352809004347575314210795828968409528455319098315734519546734618978998549471756794018415560013585893190533078588842701331153580167463053519163373626713858776617177266250552244523926631686528735859087176617669078245543502615510724539132677393065422232021118926838093367652491105838465021338311095230103337362755814138643396839245137683207918598941433538513095037595145776147985369928940334118997550629460029751408607236705742571476047336647132384985203147327774613445095502333766395850668949382563220416086066450770811620339639694217005442074686351782475944641292675578035242912056350689793795064583974062650629766312704536981159619815948876300159874273228258358752697022563142807450489748935565560046688581353623134257637279228099065501564304447135159807187471303909234400485898428823776082532410780749173543899457934395230295556578033125500400927655169084523300833389215128523071737928602952114925358665185444235662316463417419684183503223865635609329596579683341511368888710087318942936557565958371878150191403541013965682602865051519998896730031059593023704493497247290394642511099885964113791973620344294284728766215118883149698200608630303734867009260656743642642835306997864704908457423246902950031437689882119416455951912051119372359689648030036582912906257151027815521521460314802864967662416045397361729536692018774060077100139807412468832111939682487827076477431704208692403068188389503652781263727766242737255361488862434230416838148172093699922498816942918048808599661407603869542218312045572650551897082750086466550555252293724343559003002615973064221687024016301725952003777108817726749796746239955450750320355730339990085351218310627681892340110441116834373927013192600342818660655406297270530845677272338515188434342161571981226592852242200781573082262209748187891680414825200474229449725240109058458372094433177334967855804426584836274489065789747497242019625165156012138455759831122447790922101419687272885045386186893038972659067712116212399542353380393834383260907703897343622123971122971865997149004216085617245669366080104497346910430513868703393936194148052341555751435023616272740555380828511766067518750097550232010285402767724253981801724981354204296747955627529445268155433139661131480712296742150066070279735067765110425654144043697676769033520107755619739756573969335878389788058690100286765506456935787302687545594684023677406350888556612341450259096213484190619839570008315452284846133265266339205454253205814509772805815740703239149584263614509027086059495798893683830501470997589458814738495263585882669706283401104761731886281615141617344319545396657004611234284613984327165251719369347630110507718289266989320325732945073859647651293771911274004562792116984022066228708651738901428471434774910162171992001284933362516013845966658407605999813904747645486517986923785617734262622629625485193384847583294434800957901390492348735744062376589877245267823035979588138216678194826991378035819989304739148576534162675601036530434498634962023318688122734559267853759568698699689463898468681839961066175124609644590376844640743183585356083008621104567005769888132979155365158091541817227615897099706155084579937751274667941044897009667263503698323341619645137673516017768169372243530190870123867562640705665389006463748693578033880231566701986544864759968471047648399585792615033027198585823598040941973860875109961779640551037435880873300905557958154531668334671299168891823226317265259667123053927668801064978775325141312374861446064524955635500313748987633659888267669073634451754983221099502868126040984737440048674394398848782751793559502240674180604959912413425053967154136983638897094163861672422641218323240455220398380383000854630105947673376717848014807606360282265699785180917235027702345974110182199360448092141112126197219792169026487696572679408091453138847431440760166967537028774188864679567803196012242916239239830236426365648428252977484009473886181266511496347140631490428177498147341447405742083380662802346913840954238715520260154125340256067822563844366724634619703514428710932615796547797936986144542924682855438035480124567143176768391469275283805107307971206234869439010502875102083962359011549403110943146065031184317800200439623317676038071726216740952680864499990558992577565484133621743567796701796225338879749242677606969464758518818326571635889160205632225283736880376396918709172217624436352429268556179325351720575133901423599178491479132183653419834305029854053948136362303316376620444498067061801400145026436413167388799036862371218135548644216212585508255453436399354781332014460326608960052131094177028751621342796780471446067439334746253801670528974868474680445471400302655402835613407833470298877193824473820794053221619818208823167500711428544839152183666871635260627563832683314514477643782434008399782857268666355129289789546104174157012697318078064905813855126792736115437100316986996344620539536706978857920534474809625027666924874528178886675174622113665643400458298854971934038708149269346210928492203923318642895973704256368746343892558747392110726932324181436052312710011087438640789392103697611489338071750296845788527712042872749240460974241005290046706716563209142253272772678390936498920562905597397850921851236261864852608654102965987102003277429792888693685197688775492808453756061460530564900558607446891065448329404978686848688039013953580222822451529092874161492348329382935473997061189634299981818552614504579402675524951786802391113759405441493957407525959179826943226282202599742171544830233237989227126870854035050846658852696670606495085341618668878825195084256468819248256352699924012728895897075066030475480561756746395420066069462617267277077989557591195501959635096292100740145755571145129320675742714391992419378574277434229358352957436368051831762989559136274719164129628760044570762292913896454823409408959240141937505269100667188389182745271188499676823560099930849718922720460092518230704472296629126527978452685217950941845878519635470932496000211850248712066560240515573587910794010463909906616535025985300107440595195431786139605860288273009810978258659661373482861649744174186118280729460750671815952751418931360712017949435416084223784678635478334079966440691781648425734057346092135380481459558906293849830279935525476771017296166196428970751498632009345895766941788970613114088203011942957447293134236601338363761664478995285673037556096850726705320914647929816256947270848429146691805092026179793206838700636354556544752741984098094837468763198530436878183230290495360009540777160949597025134359485152415960733479676293402673020636671587106291508262446631811841051270721369319996143694641764859219580691908715411559656897233553110394087772483244731704465574165110529610785860059481294623642218813476727964463437427126412735245685424677847798529098502530661363773251879112010823018106683696537888415186637463448969724463924802786583366942868109148930968173338757802653248149400575715241951938754505250371263425444247795793748651775505576204165023004004399136574733960891291929807498031771155022565893284616794286286139552370520031039883092798374156509060513216226827683701357033978708821026873468445656049822815624638479224213621390105474785811305624197751853107870649686840461524432804882280102651500092153976779783429273624346547870875824897421032323715988999915403004030499209730304444814350257717216291131763042290984276133384088886201833015799227155702582281152689827562045959373754443176838180886432559204049986533278321734367518640012846305915236774587513308678840830802923538158873942861244962473961225010205761417616322320040122688939039723462010029996302099012368191962067567583910166701651499987947855015608482932395653644724801406441576401503657668035006759428990164594574750230909459490366814943964288044271919881508208769486287526017187916900005586380248752082662097377023744890258839393426420603950150259256956790185030415590758241289222431022584301988492467127025789647420544425988493498390402119135499737817210924617306791889948813020050417078523870114862280232337835279723403728605772932345598645309199941237025303101459633317738261208496324854396699841921766051254141126243385694460895686069466422026315428965328325813720665785114633459098842638917075573037658053792861412016835217093583599739745625407887239683066176989422875175880730721628830772674446254863195273327213161190473289062403181459148399213556227262670421121769278292095532589327866741817369364233508941724011229805938485968068095630004835125776291318112534833469297446325089733510388828152047037422248468522660813318308238805931225251375369676422183704116697768614205774158647867951062065944989088892525304849652331178981278096976440684134583489739423641501954871187426361225308538213773102629989794145428527120258998952290900449983092246552311352545543529741076039320895038876661583918276375871669439120976610254651172970466512056826010784162562713361234271518646819524558453384015625167827994479478406269430418385922692985482341164765067876892256426600193221163955681859046899715175352064708808202546145444000462898923965583667350657763939761026596101621480933022341891341086393381162390692191864632172870520246837102255990952752683063682624819903082338556312150672464433041077420814057019773209845073845008137380408502310597924754400282075960143270256558931692172227165539195283883670467645598371035393146924338422511814161918547727878601034535014391066586431221691351989495312146338770100889596801222609381887621213049395022466500956079921193103984235416708473518165224147843926543952532033774179904574333532010724386945975309654895085486960433883855115115943441584930680820485696028391137982504365706566182838343193587087250847952198818111072046641221390064072674873348271445324674038754118897477092426442717332792700945566787619380258418697743875727656870160323745342954734685119257085572387305764614384229862657998558962580203018043980368865838845312135027239282894199572008759348807923073433485044905514233964209888153527037090180675989441625475098026137940308833797368597445505496794401277807299787943573081386624974600192788192984968954199712675467830561704274771654460788062638899695897021655897673292691154775270917898596776977648610309157756569710801197576762021814702320867352893565574383416001386441014406366048491939214409441248077073372625986721871540939860566789291949455535694207480223988870091036094221402270675665792033583249892085455735420592710014375477793587263719870862943680735681118544196330807191613599829882831904150791331102762522160325797242376730908222030370393616455291634222647650701825074902998497218431604655625145904817476233154787969265496068116842910208200544473200714368815772815772984116411228568096755267349413060681925028942247549117789436317478237349924046189155223203100988240231438357079906948803337671497970060216549523966203398155950743765592219927349621625310927619439736884915900015467314307777211162146361291410002676058799409492747679785039394986635169674843253902670197591902352077916523618471769404151925894912997860981113719972309861854685579490629999367928291240588155002167656598510585559193635805901188597984656665426870195685275036623779244062230618116452603980143738632192664173315356861365443822125106646446692696501663205734655820530063970407813968684677795276536574224393340870243451821708987866088939073369827166412430694146903534249150424062273685589685377938207313390765564874753982404793157079191420583521101858976610588892093940137903881923674422553017474546968368336862355034565545431821623507483479683702415319210240171660451095962124834697815481358606452026545746622957325532575797572355210872411966531423672908767241383326599686428884354606006004113689305546270860737402177508627986641072878449780948569400872152783869918302716119590698630529688387720568589642255615318064035498269073453095703859794378531854758350574474153228897810037359483630459050332297529897390269543271883571888925797173818607077681893243901992111146760327625884089609716068051128466466082125660670249159538063883999982672542023302377853489148137245860705254932358070553901373716971657664704108349340731040973658133131399301722272377399100324874183165914666261961911395989473660490121980493165232423722591513182705101737419318275306110234404625534051658438895642138814677765271708143576988628830855032183660913701100207386968155282089364878999273784224614610076331669324473813388137482830893826275802508594409842414923481169389426115190494293854653433698586651173097615830681274086767889343177323910560159005857403746420939630519600148781317328132848178916443437989561426747329019935181790756564965153947112252263378928977325376733494982409508591234731402366946467518465097230280420944765165010109277774803569477615576928793293435663692325232794334937871483748274729667557653749496650133901763332198644842835072945061503930425776928247225455738632131973318974680318488976101565940783342750997996747436751228424486739595714258620682919018772915382647834732244013665193538924480640271778090785150628666445907916170286977510397612715451497150128802555853080994644973495025173836553493108187164640345183259028638187183103330639998259027407188313435819660981598778005293193440439621194288259871178754066054589726769724176320548655629273237494088911761695272210867189182233059372215119545098722364351232087018160219083178801166625545043806121387213831992879611219680063610167936513833651414842168852457258815124510250099364065149017409257037902158139130749298508898211668083055146103664435771496694435792590387847843225266349065627399138733759355988095211295380387579608114553912570105279928710977402678171281748083131115117418618524908102828126921850895067482656495040613989985356004077677902623541660247155440742287614641658275891431956146639831378131311981670163174013247424698988220898154622899212007115151963977222609355275506112501439176783233487231634957597535687855759169545709446427507785863138044516437229795640928930291496101248530678120116724364174298749467952554143417140889685769845595608617731366648631507988354521491281306638142957312239150214639819003977717902738941634680800038767827278846023098708179007989411905061742664235365825001124405173555788580302039133513634369374460930661416902192167421661245764857580680453124852041631369076553192736426373379910733256708924607073483343796129464612649270779574713663242979183982631542409367107771831525736108537061264662435203870401142472961984563571935863111629293766709249357483795048081371459586307087441994983919161439204093434305653265620140010391009202650171641302920076422379232098920267353536117652412174361977260893070263667484419465077281650615702757776790494332446736290153423631503876314803768644934058292728131365073440282915564064070903997305543856094309972373025008106171001428700996024281693400715394403204211128202118907318477930300973515343595610045646470625026807933463660338495390554606103187961131029302094754564556237055167435320778807947464371220575053743143118335841542074998725231645182077064886379858518972408699610732284696778853902182328337839264429827380661351707337505203602814235366980071300340613545047452885810519747124423360214153450700264088592649557016297346570290932290044274182049984815638214825906615110404071442876196571317732698010982691675809429605769885224372874680186369849425026736425985899523068427337696228655692571763248504506899602947825622429659844779231283032534655518377148609588636150152563243190963730387542426351895217314239545956190209821195773507606234784679169642925730769070282487980556355122411094883736474919269551020096136353847966315533124659143290945481055986409252773530698636059641950557498476579579712044861895891650454467550677290717293620510369879027759201880684245041206911520069092266323917670137494350683770033278372916986937975211775073578912526655312912338184491120385764105920260691316468009477956554668313441966060779576238124585197478267654423800872878910719891550366113138006163490283274281364300780301858134263717091732948755512757232879737941701951135654002887305465755019672419732414259483071945840735844888051784090297394414460908969515841364103852106185682561117608818582948876991531316724186363217602696536916000728969180725035969393345576626102789369965912682496012470373725532243554079943475900790280156831400987594601481214799296110175781846443049908520819402275542132784915012970050508955711382648709445622003592611157131751263667109073646225424788997396521839974357897795024726076765039774832163166403069784463435968433525977000954238212773582891505940487801738829119234198630762543769590259686052228129317974185349455593752974375548983511339878172702092521201534105918870399986895358860715788427139106207850902701012805326083689986128933528629321666039697540079669701466578578079608183418045909376746412868835428229158158846311924996152236088143223613877818807105027863317878825753847371542178163883987289493901781163152651118737068037329827632180751055509021693090614114448257003702520218875570301380083826266662158979879456784827483642988799169168959743578774482211679153906911886003565067241033695194633409925268878410803044301939983863410330415290379807296730246437663353079813870420691713207713996180143423025369950806400029432395449800997467363436125135441038667290121154321458589124311818576598695080974405843955679990881924041522822424914312969908388592839247268214337717346272512140913474795442290799274827324413482117628835329817892006456469593004847632926945737984999389984083208393128006862520788208860326789325510420852730424244440219556323601988041939443978590140688480651000731564056170207036380921293037258826855654263208063386764238304340963938381664283072810515288865082067628037981306899837827533652937778970796853519157139924984507158507970907531016287713987910646883647395133755940700054368861724591075653859201911108734908235600706329977633634343110233396802082301269723951399338440752877484363132024149000183588208733803689825353395185928444973745893187694711281858313064227072606272661586887710184129803786860319819741112374256401512490858596695377674927893493732013174356194971528584037337702041839772360814844983016735055865135222981089249870437855286811958010975898365091067327001238941258016117155342749146821315398137975949240925014564303962013580245674407573716850376247403060672257127005759668709788931524402608287389463616930502989297445786044513464369608801443315271251573558603811853149813885242310277692847098440701246103927236648433321531709612517681033019537888682189052803688097086167946200297501900727528166697282759179075140929632028898269563148011398911344457659682124216815696042569989969851183635784730815867092281733083768128642334147190664938404488156889022226980325126108113183054415638705023376660322535521662412078225268276102021448831033450282060263643707282747842180181214929499408485095847112065488551007221944589594389219776300672713236428212580729130080986639468013209024756841130159164563976926151850383105725898161952136488303655496318212445774603835112235745508696671384874650067887328115331697721887882139638124365682939789231495095634035338271707365022703317562760295486310919830211720260086684540895590173867809485201148675277071805928698911774420720316556320584900137483191347267465296536055273194065192658158751525354979347167834578372658711017339217255136014322514141927951483303958463760463696200520741506068096235670436272571130341968391899120185641877173999725379494813476828323218165480290055857191609743229781395680536363257130093287466033888079837352232357232098059169691575593359543169001790445244446753157255760676340230577789622969528255158511124538843667663999976234754836994304686589404014337824129718989843079657489347526616263618286850254724821418950032426411456634676588650399020005608261097570275600742688321955245606891953862652472000288459256313581011876398035021931704368989459751357213220714000713973555230429886961259237853930492100580476379381030453881185159920562138030649893258790684001560352928401426004451243221539588358274555563161953026853842625254496376209143285677081927040259725764369001448877231884852463558067503632758890723928981305702265391436985874355951497603823861493952766467418480058686291392695789027002938151174459456045688643490023378398999053227600893756484425785332906929099462928146316067155287853079636243734439410219359406921485486596088956175194545076046657421353207661796016608010729270254973874646942929487025598450673204315362308650660999955993752893672010426722839097869764977439048303442495549866093485676607581993710284420980769413072563856418857563053758298656854376065322387694691839620506774119791608269839492638738584538758453185810237413651111508979920596255203706732374985216484095123623352968721138736535288204772089473246613073983889276613902438675524416236863179019570046059711101758418546013252109018610373326149493832502540716981409858637557485980185566067249701559797422198321411282766746046559202986588920027322789997311722748512042886913956194029335179088218524643785454790357379579692992175169477148042403661767733360300120626856194117002028690113369445434607302826250097330027000731553618338817958943956815273056281664256295767280810621055302605408827754259630038653262547708965651759382193613838746232797765283991246974927931576374840118511606013920349409646054891091472660869354208163417639258119018062922320223238996888869809828664301803145211480699221915451046433349047775103249305241310669910955493916550398324279023437457214401625721696866343926280668515765774928129638150567267695690678683355667378114339583485859340564706481786797322245356302601430217653993166838145321585656043882082043087321766320001958578688000500278164281633778613419412833751910323820083809447733755209376210894396647898722648752038498879804152353345095024393067651723950351688016415657351880835792227008243317712004133352227450926804802636979195080191823586704198275093238196557478264524120990397937417483228570584324863762830454768326646301620077952044277731309849691744106135460944530533385369336146696073854541498125672038974476417386411361460305504677141062999178827929030276273721118277686054554169798963639058266457753852943018093503610251591491317096552549121822236473125775935267753920117810852467964019260152767151937636160669447821359562213858790074625059797572290316115847161312748395331033279350736171217912468257619060186107146971957039054876108999221461132784728590777065836439866065307355484371427643091419841475161835860946036890658674825574788243785719404030691802881254391237994510379642636442972192495113847378752897844271252704600600959579212120780959336109338065668886993535613368395974910510077352166973318452727243793444837149661148513468547549786680130439191022058786687311271612064210636872289371509924985616278224108824401074146305752206150946857977506478889992822503181183170102886331214579872430785780491022512927547308540878923653112268136219101140279698000206357813786898519733946227227206441900592559118867150594614569460198647590653333240860027931258236730897244753761254375173720007222616049764899671148458373646450744956997112934180589738079506333438066125383304653711183532044601484932868912550810135071436808428316460445842369951629227110976163687660996265617637407537908130160838467585357701267235046801165109382555706409820811961103529511930655320399998160778400113127894718673211350647442229220137524560416728063225421292080296498074246391201587164366722145590807608208898883395911464693438744684219452399784212744767619408277896785244926998120800607321535589980239756659380346320068911414887976033348186841517109644952170249064006237667087561546436594402888686748750374862356010586722139172724611529193119088033054403198226892145936919023609479929521430179665908350902652877344479399642461637091803587477821470550137733409589177448956160082859932383094163871253114248127964823265953086494000146858998274681299831806506556014566078653002906417327053918703146104131858909879391470451512623746408003541348010717329668067692699220341353606501386807068226612253886473022847204444151487833251603058499247628060994228159878676541909056881088350639833155301370030006212242115990624494397200651508468462234648342044055902481770890854726617214461851212123187469982988732460724093213748548038118486972086326486901745599253509110363600439049022195244494409331536774471807991170065526990591625592185041944374567757967678251563089029616646608746461861408668853710240872359766173467433114510794336320952140701058395245188287249727958715254414212424519763282141428878987150610351124458805055842575895937189462973456115148763543545780595431433157796437093135358415000151976232626703354707034553614103903954718364686927774198184852356229267084862798891126872538638773916496126715152101206575599038059314806281914269519153978401815297492684859244099208582707592808073345147523224489780663505932981765314563960742508447473535595600415257686377484495023084230601113540752445731678982942450672856859093854233344578794479630451809213267285852678071551480543924989049597403620547744541643466827317541829438874005379441140535289629075135966058304426203411812066970206992722023525406747903090222455620483543316039304925142933409271705845799746221055690177145237318402820677507697566624292353680283866296700257203582251138685613552118274860702971213148069554504395934013252082131136115396177689748350761050949306376817146256996275459296149518685647810168187550358771052001415767830071324518029141346306683992656274994493403536368502580882701010177324480932448732006822731592368282545754444188793820871096426648843198950735305120714454697064520560213737782605230072668122997213343292690802996129973176478264281372595177379587594621378925612803666010671733372763009835449726545657450435947108761503644654059537358022902108723191955754796661416434222968745276511124095911475756233330705281928444169205989965999891931362995926553514394891970261738893982309775923847059464091775845166108075409672280963827698648408861604742677055843643381493500176579612557605266525375703568879505310375213117788654665566151450902221076364189630882227639796614676806101435501244290636663744953561629503922533567367542664329144303082835619169626527530627936797270957935424057684003344712189732752080122274119228221882550773899996580746949685222198268632280637496567990163229562896421788046411160393521062022107667109222872811425592953887744344181831816935322883273269688683183001816564762279032682672774507331002637542492685784070961485932203904250527932785891102152647191469577089376927118262777741925759963804400113273950880820551220201681860118381240702869127893498165623905975399692533396152853516513057075787733343348742670456805422144344612230601673609900931324016861960531591562166574055228447918182128224815814595160613497060511216858495230617425236787913279637191086047720411791846000098046190891082665272281826621296810018507495354565240069783036809000878027795158246813026353310772941385767003055977196358355139822887890839064252724368769808419965146415447062419872741593095612017954323509942268886209041565604202021079564401661920921254297929213935730653875091790527382074391541182801632521288502944866155255427454617160489579834923899627680178858297775806165812458200230528894354026415611386190910942360004318840011328993547967407392150935755107802415998922937601447360471127933104577678911620843716117321680510725815615769477993223193083613874828993504098840220010737869160038558862700542068038454818474410252378868929719146509595294885085088756794084039456760072957012529156207121990922223841047398038235110858687187046618153655997733274218776747827965981764139740886445840880093990370382425641135691182410725196827609064249526067261756299505526653427557778572783907693276796854884594299826200944870926786573699428914872152103360953718396391770119736943925369127729507649119957309423004637171943413768530259379188469595981947355865475335572169871539001714263009977692840848375609879131108154045413464432164091615861528771665614632468230447882620916690435211286886775179356230708974303005640743506706112148972822103813770331119808692193831562556662464361675069517624193915265001279350805005538551700165401518197869183750326267357273657264649491207564835991059931292505942666955398095002346919051021325260480660774661197237949932136039726270040058040296328427250811032644745501496613909649559374490960115521061138223650805166116792020152318675523104273925046309752995627205250107928885955022926881873571900123073047337966772944883315058292746853699082037006448115219228479008100572825023195589402833553371712997296018183050930566196578819072196788932665716767147264700601962365561314695827833754240191588250754851250761022012058887427437197581601582799259898579344198333488417066150515815010094445262537153606382059073622884015655874773556335878949913328080329153961262108303020739416571733315732827195464677920033629595769494402926895778211270448740153656851158950445713950895965871228848132716810657594452783614175320711839765207220471473893846479721578829478136029136318667618475052935401278448615620223361595863142553883028944312229198703751804127193933355660031876289608351156260143784363566664129842756920638757924553485150489599325632669534814700956424908082791846329855976285039010145009999013008320428304875815334523149514925319759795904335436086390614901147691807194204306789668702466082257518415246492465379971735266633317399214969958493035968137516883398516924330512934032576138853284583398333837815715232330624116706095989567493857072804586723578921450524950026620839734383407182226246739223099567620001408965527923466950055454785623988086103415061698215558540417210731791251535096337821233097909957185783081581559998710221950707236002137266206194939360230814126800595884411024823030366777255092128627246745431902836845965631712900747728051257697332821166984820911991437172599210670227485199877649032806535329647748080445713816435362859064339617638674277593341513842271156565704758915174267558787341705834538337302730548601315869045537471428946346218710854209140788670154546561725088116213530517388786351365512142556564725274687805978148321019005126454679964444172741120375302783617903130750313466320165956649126165814827010136911001844752161577558183957033951897886665272861666922736339334169592607829401586219933810216793285695176429999340647324728492210340231438995501653694811966119288658741486566668097626376017094800592267229860571584722435582035269975258209680416111195686601466779182719312551471975408994558922944774135417594937908788981841772915585508960132818069876829642077178831808132411778529929851640234384515335149030414306360379233641682787985277834848210743343480772022885578523226727289338030355468185002533057391510512476147926029935657012885461374279832635693537538550505873556499934599692953663913071756100705164245313107559684405251019531557721373795237637015466236019113281158712530072585257803763247290717729773501258975784359799865723161817110044719031076166746058633663643094320395786925624383971604075162682710972809046589551224321950860637943904751960046445760476007084648905604897946007374828049383970707058087822985306613236180670969788170634502420693573808220421440398944176115321386787335539189707990089781210039059612827326615873809397665008117583575463037666015795262885959284724119263894002136845857281414590841518986826746235343336398820314556961322158276586210455153116170887481854570045706477573023749227628575663169571171465637171107975295241261459404431339227944678092686851134340382318808239291132051983645595738502457656275290085388808928206450916707058818247073981119170173297411367883438576299300722899137192449766430603855938716898397228894968846751121128639199890445528702961299848899804266703745680301191999976195768853763799421567257280491139696467248954393750631282356259694661844897062644912830311675846518529151374018418363577049651923754529498835953990247179362961595035110692209298431013585102850623112238449118955859907198301803863593532814782971363722852846488113354217940270257534617837464902769862636232377494147557324490254692255252938110829869636325031626810941464646857543929388866983237962184222336173898798686730679218082586235828216211170033768978574072203444387178508811651661111354518155102828213235019800729629979642102841919048606883999270206437490922982606435745221501021378252155771907341178118031512010408949263009407597630449818758485587284146481743694357366516304703202048544677125909256763939378994525422552187435204278314258485032462623828936767448971269420511503071566824901007037028072039451727719927129262817057542333913895044503730391693405923447743438302835082009830442451782183115665337377643295775703730711865438034153524777233143085856447428329461669468398482842922182349814841923090549834119900637814652649231805432970955949631181272421086700534084697711781484399794641913619932969183162803413206864093017402432390269546767778436454498964843465109697197983525471695863263623340924134463508201221971550805768734138744200156701692071381975197446172316411115609676554556419667377012134601232775802760138369755694851217414540639879010765244459835600221605319630141375150295818640608888921427661710973346154772738709819236854541707529886994077844586845909836853188772111123703945337804974866711649234277784688142855475665635971408095813668889070485822889165124843289984755104728350980488643893615413757546407767904322995051914025196911439466896253387790275736055773730915500831215584644468742099937019047601736715699922659302842636870894687103844769236257232042707810138055330671746845867857640624348372728127012281672425875973422374317827815015474374262035200463554517898499827034782850752870184304109507431959749722703621799520443997130454261956173653817298553128553618208265168237523111147229691427216424434251096392786414827115108472602888878951278552712425761220374391893602176712553988925512699375763114179784856641854379007884201873813535573274693924947840059224233795219074631963179925059859358982961149689118271872359655413214699364536969774044839385113709469726334139267868835558298530225570429174395109326532373301278455551073394025603326981339510185650418473738552724842054836361718296049487616462287875495723547379770969683202875714884747469055994451668731024356682008332231120649968661810843383763269586550545452675596223526382725060496040678331589211488149046848356388646597040085598836971916593798776902968019231468203149995632257839561936259019271999481947259421654814197229063017012893376610325908991989675548585952902632101226419290877583492509601958085227822806627037017016196033540014917649163185591001646100397155455294466820521022579409135815617868264779739997842982367516255260287535469489213056293520111801418564927277914757695222386361624838089359806430898326701373798786828656068088921826150471842742695755183123977739417342541774438236759768033532876252198184736239564169081176250795544621339965298683495488768118239955383337238381752440813784797642895402766081586464900399137498262924067827737540514502411196756556112313932422379422215545714295658726964578018850426166829986663608419539069692532299278626627374854002189424560201767993287071296935561474638848952133886238114164661692878464438539400057848842777666007558622553410643160518270614168648483232620803151967449388998725316759839257911424950612622723557238059105660101766203790809245235190495110086536727897761425176745955538034146401919498286696920196289021016876762273176418521445276568374192870837493247685994258425292038440790571089103499886819829338860211898886735926653407469984488396414432945794781054113469841815373874445349943815324009889858335611807099740642914206394165724306086048556682964439711411929168458338219195823720730970903060262141080716865314834099681519961908188600333930037380516366519386256984682609184983894952520653223907606266236489397046885516474814951859910717526208234891145189672473114271016374033775540009409706902762994347052413331507756852493733312532772579921532034458655102319018365954753560496584430741416077725715757975311583505150989134197305078981328512458137673137486317550706244721561639961078316194326798654797587549292154187793746595096095766199343843340323696220836961978378034804761655682905233599380588676443793598222412922122902370559964585567217120321937008665028165181776869759819039853961277909481391265208596810495785590818123931314342915376681712158077387274572559828481570480033228927683419693112664496527718773000687945002749134119006736485400391784496440196827569172630355424882138899585454111580039718619293808438674637646438314307196895408708747405094964970114323277437016569937580935407733180327661833858310553143387583166936890318612129955874038218906389599877996739402512022740760510812046646459173338471692173463304914213057904085736886121119486185748716405888003742326191568025908256814103096222340276887975678128089935613468203995937285375626903479061489657132976344574418363634615439538298892487129943773372128039282185814906387611619516036684509422798273523449962967000276555332647142175607570128760254691660950034041246978829786258655755093613300272050135153761562868246506228683940959704762078299640117518231881802546644656892775717165137867773383363398588348217660033402706393542790409797219480681675982152815095725978501542456848184106792552275787443406290792848203082616988395446487752088732051768961659277045048700571036951499903717975889421133651832650643856731404203144629314980299297052796835769302044263064420034100419753412554324083496799884047118115333921867578450736718068439613516165897077318651795902273338919615375257910603449844118014354030322364167708574305637683732713082989798080416960277704448295163296234587867402161961088760095721055587512613711664723093713371777724920791198922846010728809545263576341408893737787753773077260540843304792773993231192876882711299117428215930913811603813319098224186181785168813454192227945859983195313916012066338260743762122744093078884179766912842945140494563506825639805252069778720958020247198067787525559441050249107949178784499713961601149530098991323050729333820171793767963859208903711676139578843851522429307153787931243368363581512012810185393151516307886577864141185140499705105100316692809767473693397172309205224999962097935165937210007853214578769426028146958858220823317902428378746580511000119088636917897792217339936137114075627958859836718673046818024266104426368431146837759304406497522783859655629228853557287804168374151972848993310941776515244333174715306392617543269845401500995279892177640731994215725917845232799795013810243453413213128917965947907713503617911354158100573036582503423511514487294191168649522273318529388924616531014152264433569154740171977665447142793983902767378329628589271796077787892412136952467928716453784130725707671440207971528460923484849148351899540601452317360286551323113407742141965184679943511608482473646485197806164668115989958041280663501430533785549496306525530066535134726051174357731050509649215355646598945003922267929037274657161458288959757355624126511256181838054910789653842543549400614435481425274672616083481187462690847054279604837636525563748272170300960265319190007127187939733721108632640628194093695061906273105130909219930749050958545523464296106559375042118744833440445183491194740805894543209921208037813855665505336946656708912693015713955534365892019052991131012844951982302238773561387575930487445716791623355690978303099333754627463145779416283113468557677040559610373428297660129641007554033456414710175428670357352383838375253735117842002635453582922196104348130108240075942602113320896759279884667934546938029023112380916523093547003187526596676711829915045088711345188325793803238085461523773043040030620551680135113440897568088407054389519923469171123798543445628776452921078514315199716252056935132693529594665069220465465360858652990552458606760633426470058731361577998332056484975086111347847794337826183608217107611882512191665699298817344206405715111910152786110801568100853768159621936116923468001181857311638409492195895687704672685878527899533821906571464121790043129265603464206954873964116516498641274708440896793340150014981102151360108569182836685877093108639322541776719553564264655626737823980562983515238398870515822216945690292397066627341406642072167648225681933871273497318867691551263955762564313315549956379035228723254005927314052073141419695998254342606363166118805747229640782780569575274307111252122826044063112489753374466092995175834335194226872862949485681200552725493615785942302568107486110018546391548693141393132939477956100555123115749067896347251250739446184692833635104806761974262853538146420817463672374195154414878816108021160567355893270004319283284576294825641612830500494966709488383987960763693693051605631043378636233701053941545619196412130161217697294863914587883011021334236756057312338264333797894711110702133022490209493721754758724668245361056200099545831386149372061031949760125839570367101943903253939389134704433458887346800711121910670051165483449334275813869943755300313701275970621087621647331850894713241413228101890395087963720117739366925238835645655625709033371554545739957805253572826449410453177219449823022432881967278813469549553126115197567752794103366517957300292963214056794657907173087395061154666158829658193660587982132871803136007335685975236444229035909396596220699759211134311544085994094124616915291626476531323883378714306932000002155917853398565762458655721927522989406747651792520908043698762582582433749142105536315784281834526066454238325004683488778402296702986064831945090243664256111981400179878378744066614461120913994286967157878999493210109350198375609252900617952090612346294205674701727398152057295820433318206442860521007349101446199398520558062712584585250090292220376071039352424811826581447279747396951583041273911622965466941936172304895402408957271268034822378908279289416266078842187107542994359969874482510562664935055856147917172499828017966338078753197899892018509161792631614369194300344361939582770629738289213038525786120329692722622535308488802119971663605195865978375016326473262170311739039976326134860795724643150440121489690380523610057741468026971008196033868409930635633698185991534284721381583824595311652870234673150620024875245555651935692715217421298301075578401600404710909402966762374618712662932881010854727090189559631300639478782975923402289838311623426268336347676455548734590545891897175309734052778832609496684657871584652786700999849267942681949704870122423213632622473218445665509690553513819558578063294015186443048193940330791514745270469736268703360140456246600259731921412364619748392701677331768566346109799147764357097065753541589330587931358066987360426983385680682979596085563310230072335327527276455427759750555179844153030089848629603905602862517874485772319825364847254336981538517264302042102957282599119136395575442550100131665076665854334463435830298136729561711026511252179398226131994109183037411852057163683654522147704717682068939018219641353103221298481854143117657612478575083959185890597262601072310240770871277202102709727069366100048264417558037847328119629403442145439614902083005931541318747840707533376325697523403748023057732408903260572698165110887501796350196819699933060419615605881961898054639315838615714294836989391811382843255212865515837970776720398391225742014806630545632096706810263712859722172873200783377324912171889272588552996521171543233877934309075776369322897338453120562982589959441025617974450831946278354572681543541447381713539706949415922928925464029980747995055095121878380612663162411341086422949099212509595627351872124327105069310275284342809494259349749811615660591588729026926676038405422681935900956080794794285484115574681855843524956294059769223789932027284135007762053345714199607650371495046744319809168520668727197094987963975513513056218096246191963179080370784502031553364930456658279743765210715867961582966513700529121189687468928663643564709489659275755087393227543249131701871394750809910546051149372320126333310466418370065584835218437122604882179599687457774105225996988011982414302637997541997218503934400196328389062230323396143486456799700562374933333334504885055159222307370857514159104323107556029265189132303623627369608079819952041641770672387852015620440662539880793637555814387802295555208462572606460774977298392040570176328481926139515036834228387489703686224573097815820990435197260484608773553459401737316268004402951276442187778090323021605884526192737973317049847770308486018726078220565567265009952422127670954298962334959455681337894069852696508411753050574335885122173036874189134198442018887460848215105798229452785878674971475370678053819469535068962049526660647015100659599488962565738384989027188851665793577082907847819581129382817498230128135937822135155018247522341433444460156269124869546718430795736112093642321680627612234482959061252242572640637456221801257535287531249556657161474720245618693725204517059813071295826982220619044423410577496923659937368456489039405627325854918920206904400091242991885019181395380021192477223530717725050852545982686019251083761107302093568919149240580238327017728728957770452063482613188621567305591761953967541190822999277291867850195776428520158789792392418506493969931257895463765624833862535854937170791305146753088688039742767549904132872487506956469921263650505925015563323556243185984342675392426731418613556548672757247089781458530669825787924149928976074178968959086013509237148080230846163495600354626426911640357656890351412145978400003216456121077321890207995493454708819394137501735141312514709974367927564979846188894113781837749347052097408683673146127803647942443843984412879208654237392380941775538587651684657610098423466231320811304452897645362166041017927677529562634602016624428773634777687558273484091935372426034152978462540115670467046798964824544652526248148286220648302586366667496316338963473401216673368886344590097267250206998507847516963696626526265880080061391525131476030087558065370004424021618224512404086739747559935691651314453152663278296709141039136635377774492580853996470060251230944813894339165675683180719809799218770543729696607526266729285046344538185042554968008548597475153581278688482345573936526555938591949814025048300908921453008695687546371812054445543188329831584075441366140165657116839296949627477051139195449010115109006221149296343496056131890340138315341869617957983192814549674852575356095118226493452144802065318488030463927276684276587872384044944820248684416787121334681440379901237788239745511308001036269006596442352697482597635178848265553697878806205671632359311978308179113216797336617987915420163278291252515319394689175073296177279182403041531414302393727135472079162910313486714199186331473505655262469548380708784888007618340680166056322541267099560411397614151919464975324258408045254515502179719274607488914293341585575978514939892572732849173950131160984052295256228256497422887116882145233677900784598636540364515153236060846323950503626499865783094322416437483631908273446505769267331324422410059260164636219894251108478809111641289818011850333120640214282980885396275857663576764193467879825407156453449867950618113553218853956790420646385975559163115431682399079876093997086538451163852188366879081984510001610051903700213466201574747512477711112282862577202919899643922127804104430044789884171708276831431398609891641178933399762772248896446669390657832714032903710836584393737987809107956035113210021097112866000764402465483724774678175260399701952468887447127997453124139598291960277909241674556161170909332839745582933130323215083090113017298088307918039023095154841655162883359176321253120572600640395333137701227509863905131287476675117689520926292144625124650754828479978470979100608604816456408619897221726704164636488733759682372812312839927629353838989447103987492521244318614255740063809137914505311518697076933857106924941908367462826157025103384814088886183050554283051567276873534860274870454102663101140732993796536613612091576912666366754705024732397634214285822736910998671012737627004748134655260116879718166151898130868897089714336501758823899121635885014684629600492634510903773199189140219479326988207226607475818232964946866263937772679616747827698717510508009422388663294984339273202214138223029274072202188731692427289407361917652756497360062424727373029033126975236260987758757171388302396684625862854448283431652331481453056345066355376600859124661491345753613962648056610990121721164389454415247720052088369749192206148080877290735100725120806385287313798766695187280659084504762871956940437260678389390779377272090035592392501184094621364112089501102532427015539251052511747312717040159162698786108561957807950898347415673887865847371385632179428776705565325788454185600175139089874959027994457643218522349053139921669557360389002675519321743253284257518267383227743142024236546608945599530215067680192187499722050639780144708933206541546170850469107975937436148727187080873303146812553994407630749406007851938152177978663520850416133491740760506443537943852031512933201395228175098165359506633595624197079548365774498253401417982037420163477140172965641566968410664862985190692377664068274045280729171410631513422277377838360829600867536786077933209803906144462971608239553364565945538916592636882938092648329473294696773619212877495732946831362133322697562790584296023744483374682950941767326427904970885588425592104376530332917892034191352843963898288669242305633151834020633174950193674064729479421512720535672553957577679471226514172937538827515081155244868889859422372759854487049413471780630081712451101774366933398160664870807765881834938956911676180969106508717813548469434405413388885479411150550016548510117401379763227499568723905672383352561287197881278389946048964701021788906760391573612660606258560455359446011738446464822011835644687856711578186879060332540332318121837243951502158023813807655477443635440110030682906582546150101286745969262539011083311965546779515752594229464521442929373706172002028151099397243682114996088020652575561598877917776657197289231901697054558668012535334246200523037819934168784598655922032806798197279248563362362516303771665643718265638989300332735991769007592046959656970193965331209460789174989643014636631519876034443662690121740531289662591594549507393278130412651757816630537437241576912748016582730146212826351546231595245081665749014147089715811158333891765599038526646106274233021956176731516692926901288524769369630860332256625075444481701737274723537717806704499252782831550191191174495303533169032401332604295496868174167850170744703557745619081059299708272897253545045173183393325277050753218346027399962477636727029411379971019557745316750701120708180559511078402286965576010628383759213800734149829549310997932357621720687851348068342413079471872102639377642961271776400621091121444547454840294198685097026160208561209516981056145935194267362542413979196262401331071434421080211909217874409115967285334556183348026116028754563642904598610146908153449159203957957060926858377153463692495669376274437429704564727044583287439454618753405288987694993621231316339277906280951257846175445956769317872709860030559465042197256076186861969551026062761884017950780403877356996601525592661713927446304701098694793269516180565251729642888329128063325739735486170628130841158130031494349311823466322511270393770698885288911772174873920427355394144003858092878574176492184690669856182229403639299850054213875027267364772586405279279289588684350964995531503766771023147821802937993747855143691482614779752395620975292569213110047772724303062459614603032544598566480126193419684294103509712026633813962957195978762600253614412550207369372886388513060851523658552572047444622268851015456719461237638117872728715196757714926881878483248994867849049619579631497764751194757313145171549355521757059920546422585873321441989182062595068622577339501709563924679265354670840102904788194470380912512679815700556631879015323678282117613912818876247617399627479106016194266060772603946878526106361618101529686002469234088022204659585724130719208515092382390156231842632510181288281567275772284992844548735910419820926992068401403886337018345265234425107126064249148095668685967968405598262393595597306332208788966646340105606608640487440958342571618209457462611332412770970651003069973366291665493944773331124110435054201016328406130278655750259717971770875174075285354099704000777393050355327045269287269008963364973483940819054481770957016901295567585687376579470889896243104524301347180589803854826149936705153022038716179969887631317482315806581963378205736600061407164529997475667719502635266482814552138288688345836664787416899853658445731496529597776814448515029470936095181124005554822423246948227684040861647781486961677895132602805734297645944379152096924299947581672910835519202976060255910063259661255668773861923347669644512655377761998327171389824350390373588645615382747068367766368996871403244153047565371802426861207979891929252586938515539933270179770837116398804750361380367086055314336946423436241654613377034161239274812153976165524155607950796877294655441782997305341606776662962680564391248117174171648366731997214149788086111618759251054417278734391149045583238509727268309367897980742581823993471762862796769494761857191365774928148259461627455412122305941454035433889254866380383260755793854378174414926535907282232641060403983345181803690817461732356606635723704313948677020342106868311339786205671466989079558644476181169472359469828771537808959418432395220495137918453449065790544381257778008416925976100458422900933056198681440674414302433448167042448953668864012119249471113447572037108129944408571331573231331722956836442076797050670850894795622184453152612987655581626919188508159013624835861761924820415437837389562826573728669773194102188399842134558712174028060395343098470183169277588419766528645743337999831295134895981923113563177781368153567673503741414359712794552792895498176501845415975755362989038204427446472157944214479148489540310382573098178075620816041998098870520427290676908234889473911035092250232076126539562417196671133821846783196663832731474976473150972744034858380700794319632011716793353408507734666912392445865534608667641358366209761166807363392030805090544111646343567598024564963587645307952203835545613086594720472167087532769101847474258524248568056544873445583921494642881667391301136051559668255675130981307994288102858301310725851284286381197237347151723799725012926099226274054062670267932263187965788411606298124717759750616375914150739554334354703622542019944944260048133098368741467360949633466238270584278676985814860759749452826230993098167140105067107046783993852118314220383184113775707205246436366382824517191212550940111018537775945165026264645660485247962421855373647863150470840897885819247802387209560974275450614189056675645867963689636396431220029542102648169305450833387858479046809905999993486512721528230802759721576211926190834723095679636238043634215008662638670984773490786590321517093543933617415519546810653882614590679574536565947889301454676794297447896565454960528246656617940693408372753324393126976205219391860447148937787252657969365665836055540393640783418650436508613166987705449017202608756090771569678342003055074213148426047942622732356436958204847656575072554760962575790522465462184675550024831820294070662848432671417506685574514159272808637225724699754782545962110893050212146287243016554246091898691590058685107319444691877755817327452124009144082209637392610384279082742134344516725466606069415519379782012722114753175463925705729805106116419459750101725017619303478441764176533855226233241538084607203400076354637873247958475863849513729495831410931077906129248975477830776812593320558133057783443621731084587232292864877044626823189831999237793115279760597304708999746276905830559935070985184304226322097465952572708215320406937238181832857773847693779774199382539453055392206254339325024549230037594014977120042477340667221121766807568419378501186769476495007933274985486285502099878098129708450478415061880731450272102131583999383402059297675814173512190029335244977753890937946833413416146173571652679287018713064653733606314832222791444818736892286120441397190349703115931432632733422676717071335202768007803021239522573840661910113272187183064434626640612526340968411309082606401735864754345618622437970557582975324194705992870628511362024474917951981250672287213135370076781306680467304550066174996664346556256244545410325635908553036753465798818696997918564510456678601538105544101417544778603364154151502990642712417653696771767170802750318383340760355621654604590013284801144207166603915081400263163510129013404448464761239195277381214019657443047950164698700510525319061936020354049946713146343242513211785171968701673945556341066915286735235436808619156894763373529803704086842761373458388613603047859678552261668665134161902815319775889592431623091200413904564382398829648044402276334178029792274250047234886250810343195421140519406381907682537154943484441967532010134736799464801718294988162232014800546425201086180039375957177371613913613488315966671619818836255509461835831007096762831935372252652821144309546224018897502185674998556620466239268520718094329787721206859977967834684408626986723226298501002000819013632392404193012183399672001294272265269180267487108499360071379135615063088997315816562893236067710415694338685644221201764449492465681843465891342734641007667255798964349095395670686877522811493782651798253472245679436349913561780568130808141278263675466426514390005169291685811049047388276095072550796830450798823019911359153138934048414194814941022675365227535740828998767175313270191114995762109003231200463128494551338997009390693169281284390218334444644720340084845047489190588263308686574644259810910662026326066995565692658545903995188338802221370710975412477890980063063803267388698747522012257210339028636917406550059658645237707508955231773022345404067864548529461539598110724622575087103354966779974000199182554119685444410150211441542100382148220033739207604420889568859981514771376265506069013085915136806357744307833995928951764269380907690548559040045899590934895000523373291003336281024618399850376553235443799457754411809564061468295991218924848708368992983910130834774220151988212518245825775808279651950804171888636013983190675741704287673582089376390333460185790779551044942476605949220833826335957553096676190131114843345530102791565877320778457230338423541093744028102550513763614505926342493952787500063308281321668624979284052202101918511446969408481865885715650743220228555995381094135789105123600336052589911460694271436426656088241458390440948373688414466264890736691339122943214219281588864597651630295170686466252182292968282208089323785719714117213694583348190261761711296394536221953850677246038901906211404167338307775106781258916303182699525283070646351666395044793632500257229491945763848721243337489776104807112485439192846235534424942906167247167993268833554750090939795826404367180463258329435051751175348506570506569957521630356177024673557206028445939714501098724464791674940182693781978820607021153636027632806237956739297349567268622704535365986428426257797150104459689849333102591845759108558047906351795473202508395307797160631651895657179839192133777125314865051286739821855936264251158654974602610337868648374973866789678655047421589441807510896582348005263520362276897614428929583319712450683591291609473220350800897151768771820914716112248151000418460356974547607788478417345997161179718633463663710133404785847937066881484226341344638808438665420785421989367939003726071033500120154397178535277926875826224061933128157178673463791481389162347203881529917731977338765432831714588861403926546675364851378833648301969967339981545196455148241216712144287322257323874893508489791858685677954277391082982721742126882606207234679673759839115423380058150301930437588448459483841610521605192755559481627999429038619526817863999896855401354311570638454506992710895113543361651544838332413382884836775092865691407882995999495482424534401201233443717098992633036042158411769791260731515067008240268621043422647331429585073181593443660513083285336915335627530989021805725824103576043281747486000434553981958010173295751687088778718849653322799758409681574496836576338713295085521104174058280870971086580792033812367077306107348868355329902731019552575730153961851545613249019877278376366581168544600727029796211142190158577878644467546478844546903377080410819217823530035385579133074258469456047991154303315994458043442003618424176297427167931719668862354499274464890198811247205204589182563067685395189292233918417227484593832670124125515842199071150634663669524288005939993235924508073250985928978149138031803269685784310532019674785448459836257795288971443253457671809954903399025051539314443885262090363942326013102410746462960834527346940012265416105105285310973565434759589015327456806877154798920237053347529995740851793546028198747135477979291455693506307105261100759051716100078644790322344567845381031537103171248117971913059167541452397146174630255388398583318741702611974170073072273151664071582331049339161010425910355701541616220224367239849980714839482473551848199774626661197875208928515458122749282131349047757143217129603943843484597608513040126761767957669965851110512185758290585168852829608108203071215757938625438536532234192791610840824166495768355810806544066584909777422066095182195003928179987093212358624760364619962186141179628606593873189221408994153626942891641728657863118121640045140835757579153364771852958209958164407455185846889463181201754751301463985841038796040736826987753474922318872206489099604928346493070682503684191160386473964775278338974535615823225172580951828746558769046765400542885825743482660187082281495881570517170531106042507294525981565767665444002218334014664904515611611316409191255620077754219185761764948814315229044490080435068317292408320712560552747988373893757297992838892941649712856665767797802820640061232821847865615198904750711361443841816425497529977098282769409160437701601557036801189151378742981540068543188253732239226904417589033318231654066837103450131839255984278167803190554601178355079678684011971734172828945099669985829071485807306794448545683532938280436037210520456809219974013107857646237108528720214733167928990656555300415470331771475907796120676290624043709509836179424132750401126923467830937285904122483011555791973438586620928168496351550010486841971725322054743262489042376681521461365695027901078330425107130123044444598446638516924622790948818374198565879548306787727706134521393535716142211732212345806037793742745062474060312301902545088067323646344081695161351051200102547465393248970141893261057055710146277388799184671182448312111314629423593603896217426785212517718419686602328177509044139485929530197822803106776877998277817890028209079143825700243486465951997231445723182835446641687520797615684968905482324948755915086583945821471624606669608006446643210493330106103218988344150685281824982611901670872255948304547688354493969534046458835486781583102901306421566928641918676958724079113785224994472570378177851713256400675961882840006036500971669752062463596274688815745681555785629917262323855746168522204407272428355719862941758574960013208578559003215554203098628656971393077145087179361907152575292075947700791711719910041258640292614708907735526607965684185342319211174033556293536902877575873427375470575988723095738498006370913698756250590671038332379271685358968770651672255217537695585863156566848476849881942683423521308012954839435312616783639020066135820191454031461711438825728556651823011380499835297018028494074314239974769268368307796711334032036195592788086568037551104456138490493229474680317399355561559707801970711570323140444518489676455196206042985098501635635404182180508763319942722604025251948987128268415026462394851287519880230518489164700718167197749701515122854411343403447773662409779243178883918319819014448452004792560422391610005445810128621858201568739597030416176729172948833353821749901147062252945448714105835508120131726806124422682452130901396129791820421205470956298367240658661610092408141080676445124642321347618936164810367002274163283424345929142661004825643485750732697868237747434553688734935831419698649167664135647375822840336602242434910609103299826192631441784012724253474082126253968144394234825966231042505916536898089677858148731103101652951080536180234956490287117472274812072808562390796258413837897499432112972472079792357988614522422354309665925926397523818378370793607916571326190479886722217252667962644037922289333611746257525225752604431834416972605674299858067401906398536595595894361193015457248025188377355445506247248673278542521611565970022064917611591143569876403755425919075522168802145877940059388374838556332357206255192366365908048365657411061367633124388201490812777296031979985755310685085578576234699474978481597071527043004455239530909726542943128646217316208128947370349714088108738193692098503932138631704535236379999942631102520102223731124883627102870802310109381731092639850494420082570535382183808721156678825564332874888609734976579958865351352075326561773589251042675328052425384871828673307421787910657244535369486045984811752092250404916147510218576444271121581709328771134926510982479822652857553305300299763424639681451618194150627854367677221435732149477754936447598590644197682529325062981135681165805283045392684818915291317922951760656192390436492142978468114215229293393483193263029099799735654594182426455748123860794748160735950696220984764855803176988468656053166145472215530104366697074866859426039514797020440590834069361369361955378853596719736897564659238466249407382234928273940857861846639261590692706683810542108988136143564736779126655486086143427259885107761978114120371874749992232490028744673493501536599635685625303742850762430551351718728337853606048321394786367937330583155223560237452227405267640249112630213187072415002264147289024437828670318885836394648665021546732265471636375729389154534694199587699568862332625843867714320679215972524824740828210915554228407950130215149669800698652797839199735228336759351508774293776812151130665406672950136361178553338094256971877063810140635806364941199591851224019849460042425578911800573889296175219786463517761567278011548151950166770209056756982092472691992236335977035207674158956485059763245493976539248035750020932150848517800184712280341998607693624518552323499811432812178647999155554234252697367894565350830910245164941862980698086604417616869126078140557495637847483629628884393969400320931370988685000314334350672459120147956793451790865946397409920085278092203063006946625191875608216591916974524341030451320556338661184085686351060396529141858889383515740805005636362241920374388235881779130449857692968702563832773533956118456707573770076094961219822249645869296415223354256737289949048085368911848777824953985211312916777469314767835178504737498102225839386098162838823012809427558655492327024720510368283419095949031306282970699202516864880109299516441699051222269485626317720145401528788525280818002805147975625172992867096217985568109771538542667660791885429632845903049906811630413128859603554869530016457012158966367833954970029781427793728498510216664233204278947560161946224117042331650593900743898835620031070799828193455878764195170756467115279984281768637815943229029600318226801054484498710745119280217207444678598887031853958436270631426813469026085693979583511593096832683745872582194491003548174534837375037531372731763775087222807911993897234737350157543504201733675057811019494171098361451923183811418023166528636455784579222074884761975161378535266307547823255226368542143564881151422311467281995837264850547698226541158567731094158645594260828712843979747066850679517221736511734607932700240298485051228604170416706561864940647043704481413270528160632554065705963596161504929777624707768670822679119847714949977478303672961544633557252088797777216983382789518429583746463007248730724803263153961840346171613579135602431968716447697422415786687390707641140003180638941509339905244049956481239927049900377867368520802146411662204226200896335034524531445635586547263996278604720530289839554034557264993364389013806412195056361742863724153100713588860453222422794712934995501598568738112096595631963775451284255988902614495038644846888794442851309178711386112326321949068875879400645219363135797806950417009434342659532775782112251196643558016585549258034126050481580886842862072716320696569429006566086901405233407057764168227074110651342448359741461453646712858393643623967092343692334302196655295638964274579810100410222509070215273637485675818432680569286367220659049542905585188956904303589607930554395766048049746579410298057801665050747564308117254718064477964961649226038028853831685359507318219240951059619000408928114790614904914871181957379976512533253632365318249964108023164317645694831862738239753736025412775734474848419152672565202452993459721159077033494200363189327367355729152964231005348691530120016989192442722755845783775880929354223952204257458780030432076041302173520431093418499506766668564292792896426376688515397524041773220004278980479461520638465230655001391586321325088244520510836430206761025616561689791825024183685012863725187778910239951309507395113400257426319398245451093199888474713246435060934897887917736188224468764728874940682496661418046175868558431346832087875819996536130052221122024105014149131682793269268360375349335427571464378775869793201848951594016120077994718399696235253817871431812726957035194645128774661597269243769105271154677361793203580559960645489481869351296377762672191947352941990943978061781433738367321133604876106006871826012392156668217986906408995706839488620359539389679531343292500176092759312167774910858701620099910944268617444909329001155159950401111248509663991416981865889450226227400909366733620685185916968330611869053892487580473950081802666804590618367694895981379050269112652258872085369974133903616118501149511938523356731053427468672138581749715401222770003264642382790972900983684339937719060065554156757071618100121110451365939130871106425980025261459161484819017531723201449630181993135290849039518209528087774444657275463856371873357228067260815668338640520388988835933453190664843481783731919493263592718476753408880280128730882017311489720326945934580070962738501621418014574759689165199978607701381902287772295217572186555825893964238247394308316840492173663317795069814403833215789487810867747152030939608347568653861091766907237370336862311391681791381129966915501390217543131907598919747728806802839874685315358103853121113713890002697750516162642709247936678279165336016077136253283792992275324701697958199396647514194626883134780739250639354136640374945943914462226734532272389398892556685846907079614989932396461901183345801309475925769920558456265850728607415597095651612694174099636354247851172292803073638749270271264358774360923281244408959609034952580393138089124530641932518295423546925062317456315752167381538644314949231993483967604916474168341333983256701305875390451476833309833435562027826725969834419315801286919807551298667279794605981873757541245481943538790994425002083269748068668933298639658539016395405417079753616418125905498670309386524732613469165004415022615516382985204370950671521145313919679711574598386569762319281176383670241903629876153467333229001234671631741172568027915095159844093242520153381395465373473033600371077129670233160434358046454214755899739156857473416719401978050486013472969632530983856721132224175776542913240547222177687434427726015896046851283541446898097307825521292932107060346416476160878911121513529539197029505111773217774918624585395709883146856326274122966722302110736956997276491795423507693901748651986258221481079358867725063284742927908003575855687287161657805579019505023225904848406432912755113611391132419933209654632056533956012102148423643853325990117240724287130263573976730903954516071046905249220932417822414412916204658890419961792413852237214394820833389116222970989283588761414290768537077008199753699072272307847628376813215117384635599081951585286608452796644913710935027141875559553514971679862055096675781210941180791792582954758310542650983762931427908371736675018602238485762859798078018472860851808589273965092342536944446847888513413301614507756654627365888221871859867905486677377954104562629775387618532462472753366044638925730125418991907613922408139086813700124721942668284495627576066947533941866718083796182854310401751760901509989616457313437585736453825178027563673628838091234398411594757708483368692996682587898588528416696834793184025614655367372112604958273253171481267856924766831259412008379231819203663572731748206672045914344298763933438773115307283721321931349329816067046734395895930366865575628340032374391011312346210979903897493026055086997329800606444835786047320252528490376978738121605437312771201916876050156257209533506159028747465919227287450186755540176408479224591087937813281111589484480747590099428973093983569365420703877597613990272814826075178029383720793470473696301361624658297354195701546922985497907922550570731544120063940622067316925518832163543824269462717659068053985373954034274349626214293828204187499556466879642234585908449455912752549586968810953706264592693122960936216835901164952656689764902002027181232316637531952073544247543817093158880737850791484825238296373623611488289616688197461344334909228100275097122069323268256294248011904225567383570344565925836575449844774648031110054999628252771998530418799638559459818491992216524688343645358228241603413573799733609809938799459401541561815601998175283026403345757918592480137763722007857684982805622609487587482481956354365219665093980175023432792744712738018265621529041206298077461091779724422214219478955913707825722912852045800529026507116324320585528423209882588084884011758892505959687051062189106917355052178988371531578922623390744152511592392074067878422948246406277240510388470245953545131291181615717587281127905490821354397724092065721397379880985045970501662432071384642721631956558238410135352650791443074511847279351144144197893429351194912355974662368699775654270873068657755897538757217555254480311198163881674130449184426505439602401978512846391518045495556415313994693144262870456341739154079645603438619501807303953886146082180174503514808792375614798883124670696463138488080668733980236442034818568880656062830029688650702018982408302020617941090779914763912180843407835373494027559615756893415619754692666362667390473648096738685089223308949130216473452058793377432592564193465293674557324976430982955853033771394673766844857525529062777063404711993100366075770153559523250777972285548965758211443614623957626337921136361814225848229116043518045686544368142773627300642386429082491724379076958836242173650702171430518564082327609016330748537544404875679984920790674044923997990458283222162525271710209857149655235372545387284878860384295751651532214981887896447392069911119004594658953703319244417280907949520881981736657933933969067264909945886105403437435508941172207494641939099757769425717567448451683293756268635975745698244116389609067092836879047249197442045767990124588974992332557414965471283653737319208285658784773517196642567926960705436865967990993566052320471003873462987177332430407123771358150152700586504055590115607296713683932306612425910912566077587991084948375335422825059269481588843799513430904044608034089104908851657404497618471192854628524519233626193137582172154854948273053033464737651908222090193764631415845268019280605260021269959197848235447674667894845370469334591927684571091163273099686604316180443476102513693265417597827164524008289032028443641493752194899369531355393174210341671905985900984748640786426267031302372011647424162901413670273440757469547457098914486513742103957515658777468973546628029945643442744920236982357599668644926364675377237416273124176728510490654410572141432520165519390877110581040520516173365815058866440536955155313683232392070405311973575241615078415075956135253554170671077604483437244369247319833939461100397889651688643602252796226725746440935877161420641433153940503755067652677434968239712027813416706404127731657840318635744323056050064886023662643378182882210241215921215808266562229601442228471199346540424803326169958705134358731502802984785763987705038533091307571697791270363124094035707967761192729848589780463368585285965166351049873235298999449186794163858046555462598470483969743891964682266735318201182811066171074413656247504325440071534834754876482967342526871606622808026349655685141758471978030983275659771106220461434764206280105338072801836237393786095722723610251168219577439053990891676449901694904459689768599902761844539882018401724557499352702901557098368471478152935285982306572811594419556306637233139001311957121249739207367594920626470438552144464520822923759265844575078789166507546167525084140653143078653278365130103215779258852335683969868947600280170591223692360391521616599990685317599560938771110243187129600023458535481861064506724514562270804082656112186800769066348457865200245178512465196274164173460818263711101382551297405470571247461978338426257586780789225771850888008831336677585821710896663376045983191695062141687336345445395209161825068553078479187328109293403893258403445979359984243056045251490370846433279271797521644416519996693321073869864478599759310397919234101558196729871200883361615295297278880590827691231921095629531538406573275281953305119158674597684237654590850757998131264261802265941186731214798456093649080072746912770644302804700441923875303366770509097144732134916589813251505148682474738085271705969206984022702240094400435812712388867758382371416591575482766903612580629632565597707877609018505814389582477513625060282796210372259877671997543790590023469343882216352456119076341444316265941460781985272622240049463313518568361127647657847091170183097173912258376320023305729402237343881783236649625784908143083542434896297689322041677009729914910895755968681719643023149320343160131833117710789753567705020240176989135563030120797982181975749181647347024547555673741617382303502335589277099823768900633865531227350284354280669602289671636336174173097528189690697283029539553142034860112454046041832963393618718443368048373476235940724674291322588507779012108049652823399123367330980934264539446682212238888327538439744029119716187823333822209215997936049592959730246876457839843799594598491205128235830544916205211092100152919942850331567721367682792124172167142690697441821208867659379187973582094788707660215006925204082167212135802111338189128573126506544720826757689778214826349546198316840092487710451182027185934486245912275838934739364596695232888064646583511066451480504899531199671113867522089652866656057299174423167629627393866023399884219087103938036279901416776019100476873331603022491034687960777658487962047358700882269382775541068568978371835309824155448891318349771449086521946153562178157386704128137339813248183827776140150937213436978138821882330156451567096567873152418539854115534069404964817214759386617269358412345611833079605655293779359632566660520638727409412034944341307769337148316691576403175039302610902745752149431358482237167625340223781209327114831119090755777575884503572682810999573786324458602067268959513696818710248214121141403654620519496784708104064368835367352963421700167135540645749942770308555988108772829266929357832002987145312415477773511301642053706337800350681742227582358889103525709357273556526697488964340039409843837316254654475712554757053384231470405941688520266184163398898062012583303112661011126260798739925780610595960532948302468941457900638168644882080715779935083961371130885767116658295998454029262833865439236246494349347553751828855722616409882109369592827821481644608313824535214900869309619810667697466680759462910499304291657022445205133969731115166238042669293595694284419888272766716890796431246363669747209400527857811216794411150325140410690725335732300417890677862533078085795518952484967014422246403218906606588240866258837875574338615075301603581817124185228857262348321817833474740009068464377829540797606728173999556002505404754097694317141187035650007884142061271877867106074415151241630813166714067191352386893326828413599623309827141399752891563959165686370752448438696829546841587823834026619075221674884013812742556882592119723749725974006525472442977197509404768497371525087800817257155277373432133402447250152798453600006061575856927905675093180293507758232106159405678006699275784989274962197860871430428312284292909060931993633767323612983094341980406653568244260468310714077624822125066702630771054198248160246379880215663049280908097558667000601775816231966828174652577216171055368619173831103210967535138818015445453168882307616286902528645221235378875493162112028148035590355859573904333302874981346047022780746853381565458930719206553602682361742057348884967627954824232890121301151247931042388458103793612864099665161732369191487923276122871211780440740617837225041284761691185945463163827755244725353602110012514277185900859993055633397033638416318025829172228054899261328125970828167563827473839788837610333847641852442866301525071664290507274444112606689571878041510758179284406456104753170515693393256438513556820285125013207470718033743876362795703179782553733282288670283621818716311485254385709595295474836563948593164433238507309904635319370291516243280030082288613873798801235389163676334053038877799555101903669012034718525087360703323911005241788216977519423369133918022689947428057069603146866434829881919867902773469771532047504357857596962663089865710167263169596452960379990371541570483552710542344393426726161135550385637448542856296971861482782862647123530927560243280863258223836976625423223538338862038525616294083122406522515775851018300343342321613243650076378931427247122064222169306574189510320834051546489207481790551560333676135555790463060738156506649435684961615163220158133777477328493118196314972252085662036795304484753454534681647557919798610726938408788284864213580802431172388609658530588794647074133506414889889157288979245886546370855045727024886289322040468594527253070210390610377188686110399503772524261967447977950555550597375657402878201372497090925303798446200052595594541963229697200405041977607527186249142156781535740634305877363459154174651439409260240256012073248642484220536398213618249758804382655991952734896997993270123724870386851892324575024924943248237755673922084334439856522097739655674775541389518339174928561345021913585448704110731905404473503333811085008472812068366410647243014834448396409427780019590996375092209476440919165644163819497181673783175210869254370886896603031314962688107597537860128654222575079555551511007492691047572648144946459164385752190517070531322683843912031376840956276560216178159737762746705706793014636247433953855465345941984076437024470514707094946655592904845448889934021589677977641865516274443698460936062207334044084562331351769294852794790906859816980149306497230740819084155546175794048771028630459504028504677161282387018578340090756029445191519472645965144715922346437565367410518064938999731026879404940333801663518488129551221553992081747587332143907481151653694832452895025605631567985256593324305004223537174534358781941167347347301227570114005003029659319532602465441217856397429351294873176338235026609926195834898281546422904853787080604352812404766922528670481258558786757182312720011584815312598572356181499219708912788085644765106237786072489073087455016932754619142331450785995646505919995081677713650281874334506579175672805548312415469888300395168297557939780179575848738627999933331686975325884502409286113470059297059936452564245632057173963058222902711381179129388979725288403504807835919569549203545504504151672728680969561717666997415992847293988482002171628657568065464043705572046552889166534643378877180384790275200455005277181663699495758122909499630397401497701901162403711231563160951793922696939242101373088974211707301725052296123703133039719646348854976452330001277042134999025961056722622392511547727048322456226617272773414863250029486162948218127210617556406469013394792950800855646759025663935732791422000617460491537709119104749846928355327301493025369768798993636433964457203893809576355853026049716867278164146095654395644660005817055648616952900223232411118588829216906643398100759757641085527987855609164802790496318107174555422594199846173438953943721600319501433679009604342781749047595928686835407518866052174178872402454168350967452334163438094495307791881125868499122194149698003752258918835282283323136299809795650343941185293527572015669808213679381479408072179856937282848131750148103730682474413537466137288870377261457009665194384003731212925054428624748620779574115086778644427291207747219135199860259588185700903636075920551891420756622156720320643691331101066313083745795513697247645681727394759200933360530065149886969532195378604483166208872142749633779924626715134309049636513288992988056367928234357264278530668914290233221819049254264439412736288177181263432668505651050824154899267202052007942599962542691509916558757197406368754194935711170941208212651207928246298905829119047179365100984360622797342745296262167188554956913863890976510731200358827164155743854034980279531782954833944638155077150157327141430538536492538475149251111581964271811929548097368707386438947281127666988360061579694767258223758226883032002441539962140446737936858783183468546830193324485231383105959752597872851250903164124267229223144918687549620857750306935199578751937783940022499535331400114855819407877913628210638562418356563699447797409589370253928470390624642260146960328159488410221177238108483726111589644289853152393812422455727309640967577974394040933445818117066684163939569118303894290969847538834332656767538047497045207868208948743032447672312833205310101937312880400867745822371883141132932184991812584561227663633024008172377704713730623186197947831388398772536111925946384776146421589826380781368642074119177944359888663253281697991691436239523995112991591684006977918187015357834809402577381919536526502908287892535747298277845166767079432381581472604640504783715508810703564856116941323484998882566819671855602764064997527596597101587518669867019982317129053017001608028573420014184372062372167380111213371249423661311957324569933639115517974725790311038266745015154934285335778654899308096432621237067849553606890184591480019741018490523128833764719604047263322160819432115850622586826613707506636746982571917275212795126102448307411594826201278477465126007823978624370557906447185856827851324068064481797125013965367374212565125861834673123583908110688734805948289470573109138084491469250873831999502900721167997011772613944929667663037197187170442755896375953026360018280529398029945394573157135309219179499415869832944082586944763367492049091525308935065818153048102815228234951150740454996833395002124745029228100972667095417081444457868899567596925837582954625547923501469184379781081919338323617452054510521640681112067649369266554349764646005155342487294297260751686593491541323837652330722220559341094527351666645672583985186181254191036219356335983929571057583604185899196758365814197787482752407518696607859090388066671539981453645229038259535344185804357589797466691053380594315494249509287047841802928827368276938971611009099079394016096901789394510328045754011337694399112210279904314424117624457908737534559623636083166557435157055731151483807733780553183121040887170803743301917142613824260560959217560945354267825932083875982009981603035966452776466050793620941245567929585261641210902689400363276951602645908996268103693976536342799677168838174749533199196652512259731150981860030547974817431437348310896503290514250462186563346560870695694127066588377881393316060330193873648309271257866620002586563307492986387338160787538706047310640188702002284666683052580674404889946556317670142749225235511427944223085647456689092803493287350028692733595567517749314004496407139027050104350017469730942743834651490426624228728846967218330180144578381311706639073012745251172665936089298882043911962391476511157577075985734730469580893332833474395590533398534104630595979201781293621902860537491783760900072418862613703249179489855419957222598788935859746437221192399747357176365830956193245982923655647882035401441972434167959601978545585252285254819994426176645051116115435316036010026202796251638789223476185712054773567265133019901435143354232064521340307259593117451784930088984500902638066974024718692059601636525385175590046738107997792151732077487613590662754096074749149963079935907211263913069205089792153961103704813169041319449513620986367650888607303975292670647130957884851618510879017169126729930408155670103528631977380363922108496117508439264307124896691557310241911776894796345526605412733817786659078226913643327197152299176484395723117677129676305194623425260612980722079607471915399794646236702580966682596154803305176876940335821345769232878330152147028532629617306180227505429744610047013551318924763176401054717773205333384899836952806335610907231387752067786998276857691198764249382724248241206990100377697518424491309688931254121820597305639793289182723939292476256783575999302465288138391960806084925720387750659193602150379530146251939439075513069101848206697740863807077273650833557235008981145437763252456516476403184765649119490730857272709731315608141744290892802490223531516494774330145502833853114124077141676394305018930616752874248473936356472729247433563960145175498002022767276520583602143280202616717850729665102200643687812147558261639320328535358899473452007118074756424821181093799779665993805539890093193461402298029409264409786894700131762870718701439813093813919592833584614520568627943801534448707680373929477891372153049420734262746496299904671575430803549503951380704420957632463452365901753276134976284426747446824432479805388818532900392280901837102884028914375346323055515604147451956913133868378873694008581376845523688214733601457929323077533049734010755370796018942406561152862504678652458263223782327435350164014050475193201448177601007694751143315908940493865955720094131844054130053318803444906625808041875333172557089144808335421981384699798416860316032157181126939784398605909982582804271382595326969611474601554451941867297572665927568411556029736151904308498424084508635071765145803546973704085155050481955995335329467300465019920249709494170932950763035935429385781891368005975206065085823922463700406941070336540410270001505097152196674569794999118776127627041766570703004495374270163001125901318419043000164914861356481660628944439757316730426322195721086290541992827745652367435773858482339793094186345727526144911670670610766743083382346522040905536148801177853195456325630489317524280067938128706503229125354629964656874591835420929536790421876385530162839317125139296982644976680985819723964123626491140417133735943129394033381314247564516757402756572878662895788029761680980578199334807683499266310528963988832677968217163504768928773517142012574747765938665171942638608797375001932783672535795747025528129666431363563980565756571625548587655180460473624694988977821246332718142488443595961243957137559007696114801087221216473030372361585297740805493105763408329219352940086872165476432022132161056399688415949997635629351628345433868485752742748485950995648401663054777884574843681818790931255583906392969532124573775152710228288717154195204326670274319524160822907715974021435634359788938385054903682011663651187829333133182402586587613411595273772191249045846650370496691635171693905682031542306741751124185175932549259381844425840001103851422313041200329386281041123612096166437445381664262984063421609486467001992841157927576899945740779083564224109948930051475085134343616014095168344617467416923700703954497674787259613725340916722679414551876513126477127268193100139612598667443447277318442263089786402334854907689332889691462966739850313063636174862883741806245565157616349855133508497750196039687013053109856477982636329362677125381500435104345654668111737202308141188741033258875305636709810796810900946812090071893667845190132138840019065962715304916576035997197388030500821601924535295860223031580859284876702349595016479877752765358297752801536641865480942239681891326727298399098601127870770020794450279865835621455563477598460251030515879159621733498017545789200131231146467115358638304029083191355824848213307573099733346389691839824727612692952089900375429682693255817315197759205760065068148060448739166235104623804965616582069029567017544516237383241066916631085824909673284746038273991610240119310110508733597943893572596924915396141261818241644422675789669012831295802874420187145901412882401645618408926271113647316037315984068480077579424063633164372903671951266077115721965264131482896752845247544596564852247157853285190783177699951393714252519214837067922618487615641459773781452758885330235290893377971824981173234262183809835000185630843132276959488367178260466338578432387863271452876688025389371687850558961098655490857329696580353424954349432041650473325416205134476295799469709090947622995443328930122521953954580004536175263790132319934579863640445807932362988770195688923126512732559709503000765480894103391142868454314871214899400495703469859726122836736089271563315499995260805797373620189459487422706009270181595963863433596066869008287399298648279436570831970474284292505814405792773411553137875412221890908627225962098403817594486007909933224622752338269786290501575631936737364761684604039478674440250254161347988297967040687394353349156603705718409310684374858450467918281455636498506466249522248534035300148278780407598147740034756093390830015510534092169818690971804646939728219721615615511035898973606422888466055924154919580970530582779424967573719714751270028983018644503200270305917011695665273923033015920925556225097809670964953966573158476954572399222707657263097552533847396637293887217250294002511424343635246526469099329762716519834939164940585920559538086242559338785114375069394307185411311543389045103429403179960617771224152907803168984211648317412974683351272141868429030050139235187454215768131154216189173687100286287237405403869940547087428691402265512865326331235336792601451365525120796634323737766531898774317157052717614185043642291653130683549687868481869747712282823559493798430312281518121681064233438517763205036144520716357476678257591303171851770746533147407432783153283370063143364989811315213166537366582350020442180603194925599753962349044313450147320902836012697664640378528520944971912657485872017151480002782751713921739946284323232531714540029693263695635207231977143683115993038801158503305007917254677417889206897368814105484458632702392159218267138150206276272202506321640825743279732664374586575377518043258561730424199312549579767173217377506248317037409530826808180063848381057325665500915183539328985774730348711209937513132481760398562208321004732830429853717526736275516087291699019718762562857018319843589285562724299853041870908103439456985737629793387176706672295516856214016943504153913859618117429622877185528787241330844759594545097538974335571654757896239366420517577303085221492825624750805423334240178499519650176663988594233000737281136297813725832446183539885553638791683440453207242097316294174233601727574687662375999435895983237325386646902170337427478557220338586483375384147678019687295649900692171836105877418723583914175796778691820140753926239023392941887781792610366388244638496158412066813707917509893593147054972569967011233426736888458071405874936305993480338076214845275042079191481400416128374407539616465340038906511593870626302766263951769305737964578605597893115839293899657511642623287080286699712147422739477704639919544524809620057232772294887132608899312165838067350590956819646019760835385148632742231774302304566522852882246885600736633486242007363063703653032885018225819179926020255781151145641836565023486644449170406028884187344024765155534097877151767997124010765601084618392010597437909631592935706818124472080428646062260382446796934614666120870375618659356835059781634683220143960266762924121594806784037780790412189377833031145306526405256709664061608371686440374360151502968070897013110208463578899567741311138646493453193871485242523165675485112736444720211289910348780440457858036063185246034604702969663089454719646735532675052013158883778713104516730947810782683493130885182282961762086854384010916051925407514120519992563855504749055482646412198147748464719077389093461843908584368621214820512131621637618813992599069018106541050293929578402282033448785128504300472647777970754793543194159145146368161730254582973518553572290177412006089761348566287788951068412609681121801640700217824030255530654568453111011869498672469765528239145389482767708086727357764659011544020823013922332710697593716676759301428677113063423696907225192374629588541580655559709724460477433302498228446506562588617997253786046268238737422587374115959976791920046916628450906743710168165494093343109057283907835404666584559513277040496508508711095703266241978865295714562908409353087853195251483148663782698720040997196012420994986843171229084180872283213157615775644234192332901227670148265067784662579123949395131540925046290984475117738563677321265806420031748715358525116976966826111483583498719725976243984751153463649260761555884673268774159593880723628759795223778339184062183582314048446789521775297208976226710217796098051644280212081167627910100789175133838765370104128960029376808092358568453528685776500712398289709618678989451204137675020981277996327968761900800182096684121222915016372306156562986310570203581623668123464848214721687274988146846003486737552897041714404578642709386771239860758394888705432419526726144882766864205938426624965891898028616366671545194321589816826199119467776685559125825426917663917398890904815654613014775235586017337654829896534345471224292399195565645584807746176843715731772181534972035392841510606469600311335743042075536032670237133444505863919986573811400146429678250349024595172927733290128194515466253332933571716509104363190096689178417899881831498116039379500231760353130122312883580066505876574061258835309772416209533016308175198302026927099414176697610751392827827595574938143610752709376469914647142147513152652692342392676605724818142933961019525924072034237848598686776183855642668077916244337283369962552170490882229492566748335357995203667675692100909501210824915817364097558902816973071411594187877454063956302466233361941137563331905085350134518414853216813185166775023290816231613164329427610568534884397963951728386061145391912922020104288596929185938655962523240426623042993304723902879365218978801013626827396112654940329716258081868046349427633302142840902350594002455141466786282677292472539964201254058915296390693710601940213990250506700393835038151739522282089158208769060315879028599978380652199417049689787110084771054322909138277853841944558894773575337358601993324230275785894203980195137706723044778051762438753243864946558941478096218891368611035813840551076010335434289283593086818316425812034024209737475280918173751129651260869882658826460033351779558846993526830175977446047748179423460213018824237989725581963197413835352331338761840202739867860016086238714261471520310603466201263511177114607786121812799468242423925053253220439825523909284488645684537771356256817551063801548568260051133604112319747718514992530117415951905766303660563408348533879347267569935528716197356104948027952592548115235483628575344374437032004774437688293376108184881816352435263943253447377023078882962112402507144588008545287078438485813350744896779838988156821630979671406266964460219470196444377327123538417071585027129671095397665928013082864558197921728122316293306368075262270862671751251820780959820262771881160882931168027101909082525039097985317619730772922329607112683280846563763423385140080539190879192721277936999409558525854723764051402060340464299645702815243155974350574488551476921380954492162784535283044599074248456154712898494717422123883424986005942543493526861194940986909230845331835862544702108449051869643875917386789824426749749242220041704330822841406223004617803797837643438512204975127678693019586741931101820192397979754644114518435819988845139876135551437080590081272317114937569408351825576574593742447362723232474867165839081632014375233373769485845497180290584229065605236263614918712463790940366511938978391100242343623081409694874462123455691576532791643013829608912004382659747779728921215751686340694466276595765702667642744138406887032163188934324300009936244315919949731609739554155573933835805668432448278945881889631674728940915534115331791450267461809308236718451181352813724085169407355362997677898855409008285476255579392405677832599734473330249904770598703137172537444184222954604832917268544142716975791271464700846328222280936999076999720609054401108068513783618386460176757127779996664302683399427110236833102994857345173680179468218459594410680712458161081368452468253162594046982337482955818992677862536486720925328186472697847275657627074006497426178286348101498427330880374718310661357646614770130455559075707106347292429343190552037582895694900356716491465333672186226279221309311538324625958655706848739159002134813233724601347120572689364301521792917542800138551217016322206345748120534685612239871656409931162604178169094168608270130996883790739299450464725804836772147572856365704688842473173628211485144400406463224391384720572248742811336612924537608607676867427864929086034272968444118130442365195146563050200541542147331467577169322133330337436104498784605017398627197628178086703906026724689952397729771046970272408609996282733641107699537346709134850303273266154799755423715265887989792882650245501434340964137534221576231329867509598532907088329690454839713439789388363041826791359687974480750092564292873881194006902834060659139139957596011030970429967177055440498651950286630720920478614957751556034709928479515739747801098207378147022918148481006954363605666302422187232203620103776878990332014132244059477768082022400742240840614124596635996727261235565796000080448366440382874298693212155709461510753445088042849207708016141779637264171656016991030344641107451606209649986304262418888892594553869998549657342043484074805248530536115316335035896042498716352033245387511999316101962205344679614938779222100831092715954084363494015572393750582516626439439182544703926000034489954719174287443618207518570394406577899984701386481475085493012760643174163888991351009954210931681247828192355465974442321239255474585074203641750249516876981532859132247708084473327271800910050621962107579396438642612413096766421029527257999063022760428136485833300004123181765274771899438247572935638335032362141291858516747627388175443734287821808550506049355115649035266620111161098166896542290637282474095698077617610674256775271103598470931239911975263081401769274288806936289099752305434602677816063802922588907431127405794597727893569481091841806345133034650966328995069041485772427638337341215060675309464859834996674438187664315019916386837902114787497901707075892557004631617862916118558054139583451540742752121227030981256467531018362582332864893081399319937259145457482148394079101260158454776472314027904495493233902980398669792629253405596240875681667533265268053758762959535118600498555519334014939500226930325478017924580487785721450046120839169100016239065648121628783845248216698227320471443008904697188455972822172241866153919960919666685350960379783505601361838672899067001131901078110114785560545535012744679037713466544891457722616457618087140441900483214698988561941863480526328301270096080072033817291592473937732445119663766220722043349871805699087345050196287119697524050693486626666115947999077913170897796637770314102243686122467864398875938626473029189060448327322316134413670628444435899269747284237218106156119923509742374583624142881161210783758631121853582384676614174781490113617879514549288565304994011592966391939315334282748160530355821964288949652149176101098955385227997251176957775338637104847526947250095260294086838637647472570335722114242140676467344825357043492742895669207736802518294948203332951707061727144186894164218218061382211472357100638091428922046686727458347761682647054197438825613608673991517259104312964364515112927690151231170576359677472678461980190463612302483042942096838838851919045345499196918006991827938885520601126104049084199360068672382504254691837397342833480702723985550922620999631331227207341368271869177455850266685295250463025550492877129265457945999884040970274757429140698523065167932551294256762013956495583422373566261203657220548131037462058327984309916235029842946815073136354044588744834251000508439446977036516480652110116754318914219655549136859686726239030123559881945334425815579539855790576338871468824454646821873337298275438325438777645541348004645168701194861240494659693937679256370998497463136053836207406054768339200670845534438911011406831681976789198949450290791008991404402008933874743934511728687121493446387400213268520227816001027459248404981234466086042021902553465246250828568500595254852467629008711775210354922987137314860536516889083639487138743197917657669381348555683998606770006058607337845583685428694082218382598096098315506997796192029525618367968447230031796277589381836878743010536629426487286974947903445015595429887804465448467847950527143957417631318306399993120011706692530944054044140295909578568671073806894256806959036928534810488194062019568396722011311421174589496194620832991213398325482974161943688424317304865129876666984702738913954734201090870931905461824133531371114987517986597436662752152888492357828218058942685464885031976897534546062619936210525093253958726987179692698893380452809589347323885975014405163260948037897607774681543358743604440034557131586374880106094428866817021755015667041984480028538714140520697549373405725531840077032415657428835561083480975553670346696754322790412385254332250401655914775197763793591477904308351798413108044585995950014443861969643894443304051744169192962070444289270622094739969809256395299208225066875796075744023878284317024649029699934867025220217897756534062230928006912877427043327573902880055202296020828979141408228032520149276175763433460866676581046659813433946651355499123077268228423453278307303412271839067949011865004505314007715480175375771449140942322114686322824097543378021560596808155590882734499171511277299943189472320928468615139285571234305332704357126775218375846538301075909837431774219337820785895988674734464451839138384523221644272936155373853218643034188128369976146192967488789174728683152323616615805614385050604972110082219723117865463135747370740141274750485023314138978976026953307864286367863977149898305354221351194864738413343044760911653225331743216294039921944402903672041447415651897628923062731956655056051531565899608191831352513607668704264717629545390561673783163537393278669274601571032470713032884010573094056928115136289672959656294268030917284858365917239684172132258090023858126425016875821363531818541819895558101969004901808528027703804379221737268920875807803257512395470491638362235232679318191498556095250004913305968247585033756121684369488105524628376256307979296343558505577479856381411017018941739338567505884907122526839323835103686163822640247561004516363821813654255092058817500914218893479612406904009504281270712514252731766056682617717884343485173590876799346583532186749740112540929456200637485435902384881194200954420568086019675501557667670994470761451766193293798647062426009732023535061992590424232601960360519000716907506495875950393876493853683545724434629551279948818949841888622975213865712622390988484798950037650643751636346897223958095666963658481637720216528319177262568404775569262478546707933464871815561034462157616948591021925128381250712061997499231632500108901572842739745343054743169078768630132955865067325850630117463241497497823894694657361861932461657822802769002703541365179089370941587401131281548315743989478676226425225330685229773908129832709325833088758404025468229534017317386017138974941803649653973282104906523226829561713739712338998136292776564276025890933953941678592847032445191108118113289998249263266862699566400573340218654436241959714497184748481897949919771457263695385167937364191629945261203589326992862145566970041689456129227890454268503853161635998422977627882636064852745618459801499246748285860086338352244827763755974949030408175081585863065748334154143186978747431238211803471734836323331255306812528402765261254475892016645943987611045212689577613123982966443215576204198612059261710242754205104892630019340909502030110870336446114464421156288840497918421710616195133867170691467976858227838713700612227561281033420080571767617766132043016556206535419252837195976304467778844717935385642137214547563269873392243064478570452794327277747054341335077706797692914574209499033515413802272730853453807289182682614204515479807411760774984495513841695270111708787231027114886004314341097015393380037351246171986997091352818328275346583946987145209921211810855478849707531651491098912338330206744682224046518566151766317138449871494373475645951811118303502554937601402003429595621260965784956915767334237861493924848938451076306517042635688526489103526524770357846261268865245783409540240458910229382186033417202106983232527210740308563309820586554498841516591456586224130611376579686854135396212355107409769461634634761886120354337534789104177114704709998762141203982395496306368220316421933267953847237856638667575413161741441526361402586317569547547934639504548448176560952329549069225265454356734973588209029307042203142172285901421604810971249190149528576542646064232448068274353656694303952785309552446163207685106058763619948539926503563430733111071522936938598964455279690950139144834727358382583477743655565913984804621579194725298070747580698858587451140194974284882544641497290789307837820296650372245165888198776868712699599564851637191560970278090381898420643822586801555459970417046884749577364705416909208205730926701026810141832878276345001604146072273007681346159800926210597979224308069029654829113579287311996809516047106104667822779348980923467008137235435290275243587159891078706052111906919251259735974221522786757931857122060774157309328185456537723132941040083874288542811411625738638959151409508429666696298125362651200128357222659847004000904160786198309585261412926219512264312014265095546682752372324825325926647949778262605692885081559230704478006633830339195250075089934480111924162519077951084492780581222702239455857246896265742137208139941135193120295123041094906495326971498985870756804271510569288936155510147798971981066423716699973293030496690280888217731631896041439328570890508222746155440729075261748828320844540283080056205904920232787529153888330901029137841324192880342794609123101386125517292138419766953820924597553647001435139747811363740630054545755162408150792486223706262344245740202352891391634011016100287544785552468620744877068183709324605383043605933971476788693278876849475457258278218195628353647072472724295239596424041250436655272937577999527211516478734781514810112283720916254727376606525231127167390900501602545383034586562070065830954112515566872983981225299355072948020427664112107822244906507545589505727718931632826729832129636876171732118332848223135394388133020857178034450370849800664409397572094404393231481469953567822638597800080571077130055359081333290900812048130641267102878599565753200150138430673610228972139652358351260762152181813230858458965215306058257036417832883635597443545007817624099102477171914664144192128219823500586418142641184488534404958193304338020036271283101609736283476767592911790822176254052029186697323466899429647212560181852781956604681617265611599538325230624728257259632629419309987539185005772157642582706805644730103673787528036558507716098599738431300978984735215569546086109192986031974372317941205599851105628388871714336950337634160069931478857994788900727282505297038987387068056031792308893632944436284933807183596098683812295705708384641870576391590360199886977298825719799250256022249643812092338016767210010611216116524260284459044957577807230346469255000555507983591919271900343745982664661040891575044393793094265261125932380901364281976691590702952307811941829377107814587962715630558679182814746044599709881389111010230017478200764508143503102064862989967612625720409059537280451461659715897985438832533443465811005381862422204199376946185928341012440922623991993755463729650150856868429542565426554482498992986361342536822538555995707136962641609294939908479828857476036092444203482168915190287775652944582483197752160710977780534233620554667960103259432377169756569533924686750430928275205577360026981186902468929777575796953059442363840095363094591154935261552870864306217758436734508008819143708161699189532703047575959538952008054424720016859537042796763044026557102511755983205859333802616959451958048452769874494442985781620942998791872805299158898465095442169997134173208533871884870484287461003361483532455394053705817471724679051628033265389272053935331727407915661470903921319670156233783832999262280713818073371515624002749403517862273927694541466957615991505630631038763655432521110326836428542822660759400070788763280805811777626724047897060016081748393602254130482307697306904939833483877472881190426519314190632949192675215478316509187863665237192212801541423243228544944137513977565069860593769121006221951162340676716121279150341174655753392035660237863545809449059617442704401793181164262705280317090535751579151538975758649472015170684438959260293097461441574628270498825465467289694484143481258287277669377288036368087059815663199874773968248790594920606995441654937505054907027205948441444459423653487688521901452978569503962931119653714095730995650711106201923462193012219112199111079353278516764368355095508786149313425779240066374876244303338088239936470562458558984281710465370461847201107301373293932117162484391097097580456213565297049990320929107086658884000399440155636728757322273593675455592752584543619785057650179750527661197181037388066215374620475202168908356819466863465421909787238332955662361920621134372114687762448876978031238385741424720693259369490823904332096105088651760287661947114433497735792855819978651215898645996964328900632760217474402242881664545125813770460115715892961874908067274831646097405805969136778754205121753858356578330836559896698088402243415088226567234886174506893970662646735571218315702516125041258263067803074148242245270016962573914070880265468548642968987362599149671003227246722328204519510488458937492464918193564088444171389359859927909373158048824677067195103021211251271275153513078665829696134571649544472888907719130115139115273280044568654922512884111566581712004502650302575819056435151993098171266298445737677293724142642569418504759483924072436941378602729787651479943197053700804025496250361706983644885449509584594435015830871364265675604488450314366695846523437035544383556505793134511706336355437856882665561188491457979182549747074980524899798840348581996677102246469890180805213019039412407018917566579932311147180927003740178904616727902995355352161630095004448382776496832212364624965998227367745786103533899954530007245029459282236014488898372947513616761227248308740062764309285559466949711029733338008046408106323713367264550106755014587796620484984662816605515994301717637018297104482148605149871036399765305306696832387124987319653359750224448595936504831943502121846493210583474063106736411723678080558950847046996881512066828263970142616742290519825390684594905347976974377943313840917687453344122356842050634115805320370291640824204508079245294823852609275905131441388860408097590893124660159328007829107412451052341648528387564552322065745255310602922587125083760641452581191682290787856054910238183867784616995214011377554141649792141298055793433216417175113187862911647123024818122776561453929236833989646534182115458424563188657977309213823792038054681269475864929299333705699247626044496408856855057786526980200520812732770096554046884329538015208116218678244019729617517288957619805690538343468699417206107933071807514465184397247378250774629579979989214571731378197710162774839312599825348278569831042969552013023939631930818310255286990810494671277662789308062079612345037538759345535201014895830928772136973378946830428456389416345377941000073493690334953488396079379571896438234038821802718890465178106056291441973354962743242640988499209074390809970306410439672271295085716613172296155485510011564253915392662506784495870366961109495468553126405565576801028362974745567018920714849702454272934798849795209744809562347665291758693818983373205301266587157424561514711284350010024926212325940017404468717426139381683287218552884373664834104504807981341638849280395248331563879139262665892600559892103704050816003764677524189757355386743508524553197760007750008598073571636397973961902741874689791876300036687014364093120870644306993433551037346262238376139782545994305016748335557608161381710582278721664314478928525351063712086261323566876502867172512087859667069396369416696740314882541762391486145577683426703720419431175774304196450683705740882662548045596156794889488350099950179322827132699007033790761163717702546778895082380703643842768004634383331779998872222138661138811647448819117677671865624595847956748109772648779471669495848284465406150637563093839200591626164007326030781241875247655987860268321020422745484182833596958128664140441704900780059416348842189073506352582722392724123958896012200725578226281540021792644877969783914453419740891435478586250778492770696150403176817893365767481177043481249359854409953190308670847104313651146512586906119699840832096001945193255583655068640242105637947053010632707188793775974428649048262448149204052585519698914223646930984668414439732537558340143565730579084185842340595561156034388337815772482504433246941072238359208210488090278306070207311909368054466001501096390580164051450122175793865938435906798396435686961485766572959269496857950132466077595362226869480528858467061076693162967131184134918512961998380804682794687771675297745728934355357112038160983735437585389811982561789342741388175231117480609185115863981407101514747203822418720430773763026663264781335547378409261453314715886370635454188327012931910022213369970181972459014815063862851434154651128319351451042095576738443868609570387030386481719270760629891360400993055721017287506070871177737022215662635004667746391066690359003466824253670815862136793132957393412576589025292013258914946796624305050641067654540303998939887431026841734315356292494729384670414290806678607278808458867332995672272355420343139476951259520323517245935130988763133944840908356617021524214168149538604316765618738052156267416273050963406346742291317997415871295169240611708038729318750604535742601080681503402138859477816737869662770076328970778871396367100764305151752927405180868174997091077538350624953897614621299996499296473791586566664648071795389013759284343376249389469743181134657898739423179009185425659810052433490677632125766903243848377740011684748060762997694019761826200658205964260448433967616136464955310976970524253442804750868946101956981025625474457690635469764116946418565686259493304947379995121501184120634717890770899226645636885101479235084347169080622675058287749061942065659396836082113463768439180860812094494694431915461431880863432710949316822421400730468201220706293444243109207456025425082994803209710605235325379262443643832862891468363583638434026469035316631036002338061541201994338562580530163689565961522146860567205221970228919844683163405607743614934703042846319910546402591378612423622975788130773940237932529839611461636568960044854726654848484220842514486809571595945089961666240534086256930901889760621311881587713175442972990077660116181908513063903280082332612260117670144702963777241453605096460645228835032892058479636584524983903044023138253267402565736458215606196298902301182847909673164827173808520985871454075033450142792498438676020521973519153940604185242638255774713716730882455445542109513608554900365515783384636851659256245114918278439669814143540996603136810699372025952040358652929068524137385104598799125040807352657356109923882331156716510911945092194639195877967277033578988823407576525454865038175282875580106804941773570352606223190740908800768560596473435053076169698195471395199995951482112924655966254829246489680371607411656877689052745325391133100018324172556857780030579874056225307735973674232807412336144514555173064728887605442257501950130769792908829357033313816881572909046461319285335139811916523670058602500145283590183253021410061246175767508323726222410549965447470329048585550772553779202806351972475936968132670856692155571900116001907731809636241698363819467475942429084482454719826163643804594076420440904301905370795875908962908560006452921525802732425597592842232617072493179019722265617768292346070408244928583619481447946522059422387394181581310269642352207409976081175264706471184720156983358166802163840772273127125716884646312213318891281999495111662500945414164348926125882757209768377960527009858540511877811223506032478100203683116599087651586671499365309094008532686086480093957892776301504027283759093459752920155441914787255363505693397546864585372579254903182165133049746197399513843661766866468832418188765367751866852509676003308733863648888630729082530503833923779189431506141047754228355852821690921266953893374496802534085978780256837987383828363994630083111538214427042759959176098747508866922264760881998067678503421577626237113152530519009540855863387679547114751830690374405777371720749866738156689319630180109314340634383438133928160500540238897567642267502366629024139420297326198971626921097233998659534588688049348630638280205475273136896202081231071954045185273974767574538085876346772150214953370928372306170762879332586677986937317817740571034619599231390334665414382702876200301400812239808366693412581875389900846027646613845984992251325214750106562368168106589775027540216958979418896724697741951956694048930778605132442327506680577216005339512053792936842828289982927200709949360344752100663933249526497668504752300886089564695389283046641105434147619035924241689304417004431205252725552152076641009946751057579604156908120679939998733512051688367163770223869616719314380855938894983176663489404793033084062348485257745261065225550663662856513278894211920762368050055509037603200278541850387321388323830134909984003215403339198286495231120007402280179752506110830784218435659289999170864465505918455449189069222484938890015486680622957424055328859791361790816428912665024717622321799666731876254207798004633502738803627692268594218817171402751641970649969151803521618816065058669330755237595280437313416401493205192406849757002760442194504870285937464445740448020809118174398981968596269175000867551210776125360664610080971534897371964211519857745215303147054889965874510295606293789040359763762481566725537344889395857292150281523828281969736074837347926158572014286192101280684632963422449901259900606356902110743584836062979829523031218958305749391705105361953118546302437894002278653521615464315819920154385146534235810182396954749092513661691957006604246360123902340222904561180298280280781817320925051154162969645087575200785411576365019871178094222966621005956290919520534826681957405157648121315076852076813280319751855149787326271112167518520448131584465469520041169289743128286617791484369666284888271845818218884532752912905857869371777818696349835523927560717179754524883122301140093858565914957437414726028906888621081526529407179371321756983063984807636211843535139145336715488097730791485328997638382233262847879472104724040157943605961386526272074722423655710988559687147482368481078290854687129895787523048195110615202939115886405040841047939262678990278704033749791585389790994404715619627561300486118035207319964176186855815640598736981152289575377410513983936814186209447969146162823955451431617539259847718594565463558393423928274614723100295459179337801908732845059312136507165240679649565403029830368958351535795173845890200197576218176812969137467924927854778368529441605726294320263884155549157558847602042617449655390500116457214523373320056288943235067594351524689179766330476676290954354071060697422601355364140792046932072415848555609691498018912978344410904764531119662728031896272244553052851248339564651657341046032628005947704625328421274377361858282748339336391085103022966018408192565042341615743106539553967800071785819300526735692407951489215282932964660297805220660137388786808747553282965092112761179341816161839104696018961141316256252579116787927068064819626085940232963557927984689261257361264276011829261951929142412374323255539366020300008207199236400256450844750224343053666616599967790236426615887528268438472308157795629874584586136736283215631042925694974751038377503741969297629956854590532294509901298003904881741347474017706074553839457763449596932183115489885487403800020974258658430101772840264731125784218918579394883047994971654520128886338845972463336004128556018535845849049515192237138386622929685328977110063748576270533865501286807397793521297360025655723818223769574749080548300201553102252547448007223620924814835143776790373359715646675574392159127892540332124807573673988110328089368637449860173048394104477323789539341724210204906066480492915745339212428770872132309587159043912988981136279039411828344971029971415705294520824589723061062982775749105594501686454974167325698835118268984864800772110557706716556769066711878427360622943470311839292547007879966314794980673816149507315049124954092752701219287838218291737374460705255576658785769732644350594275164988529912074907425389973739286746256643884066240929937695907994611192240264464192421267723481633731193305430507981853424504666195134551186652030150854921666980891465377554961974847878148322822479842921765183810809698908109655650766535033176985316259548238599104100520770345148477364591068224187056812081520607226519800026133141964617116355503460028809860809219148429364485094445530596293092142247441908872286324851988033850919604857088752475441200285711575134775015065562595410139483982942921611584748640527433538040962110003297012111825502629697014551970436568683584438583550203991167161729992943382760113006172503653368438606151276888727627259929628926641366193105406496925452898400674634154330836093618855597463234661405494222909896320838264080896543706853097313959959285040425621253244646669320680537032806549604597932085269073895610606278840191774506914261962814823698378362263381831094008692710666983050839434849369211576926002797261697776192774482542766381723020464427210827644273149189784655717911922563015738601040875789780744583843426811202502701270231184991613852568931207974423568532246778071382828948042169811354612226128371646437362199643684496462717903450777996440372070461623903671927653877398075255950620587655012139691004327049342285753223223054896902270254143767700418185143079157953245010212715526471064106426725904618805026184391809316946184234706242773409976610112168305856711113769127893540869490225763516984999128243249660781477154595922711754890397074987457611364995559467825841040522421951891694158412382318577784330702158286746001151802483291551819780874457746476191470807497890907787956549183504254242867776988978190189391755244385344529946303130336519005789066948061825826653480155387810795292693967072480973677103490878767188092689900808897001309367681427786741351383552284224096709069941132615542085782883721953625639065534926352174233639018911782762646324710503816070485737479267901099560219720207289951996877980123136428053626979487588638619034201811692502709956992380457502682510800059110164892851533222974292167774816617420756756083423791354546827997534259766239975500195719805825473530988968377447707476580308169317312208551428057603832307627005237267075827444594403736444615335647924015076859508477770394438235775070123399646524952474072654408187426077771875521174333484325011318318478469675180115532273720348069122728478506033345876127688955247614255396882609785966186484716785640528045088229160803602198040916919135308753596819102818906023003812614203703323046035312227747636798218702226177067458312250926839029502527102233480345279202375937961218158247571735930552359818815143840349530451106959738067774647489555714463316152971424098004404744317628410437996569061178110993079141722872113293641828428647032965944546229513112910165913079549721606951943838610682271447002274186388910140348409297072257857224884468367695400290495119022219076661199290882163982379094287877085039700178652917067457471129925577122805154582095015768701318741220287723477122563081574233751775022013071223716343091313151653440227152069457004493225540215867000107211133801827561749917900522764105420510375348421636875537879609682209525844914479521787514623958886698050171946970438202521458512869823767214197088827455373871601897284584435019451881600655698104292574683369740300722693413085686455088196640651338450302944989908076437594953351765473897345306129772246030655279060061101686131892373080814084606237171143183998554484619134859049315903043373714030436528476076647117879892814796090303718830451461448403177720110627671175974186028320997194440604881802557613828847508513444140323453477033754116622193932190756883612629379258088138879636344090880119337138229659084603288758058179645940849999441795970440264314546388636538518340396709978033634246871966555876859975147732723593179080077688449464552025572181011382330485470639727178368576965691791788797321960505369211759774185589583886064479367086339369723066594185301740648458750302289540520467369218503117640540049215348996158517043791587772173733950779639981689371665197995424345780727602095601440087827861520086420756356913201061062931906185682631392480862252809029752681081033825234891931589252696515780047556612289946230408810711433266822770652101400538005244434440118623004083074631924352647569174290769137415846992994044438968480636125614791786620886432163827711125578648840153130356952290590298051274624832253384953219389470192541177486235875388058719697460274838073197891657904874431099082680159014459875420591803456786613691254034623866179705183028370453481721548638652120504205849142658156219627871562002941869182410451100097589628460929888636066249104413788080070722758348690140801993681591569621869875529248607743962732840697531560510368318805152005170916367147642162476271675773332712616892454925775884119764432849322327717077667668555823001438280451683262800584287649043372562021340389527415082910941138409631104875940781082072476120734957697691439244022643308070094214610295282300004525037193937817385887699916942784884351349881857494208816968794303506659745267131827490528838322775880518060031870069503529221066854184219738748558030250924532755722930153004617709915960093834680792117043337652322767077987239326277913514285009165932006427803794410334161471995789137408716849977159372742816378740263170762344548342583062471030729298406219113755217111050057298216801652913059799036048655983932711857525163640163726139085779666143503193708252806274083423412276397710614733863935333086833046820009904599031995220116737925960362519249921327139532426697634127516935106891271154854699181423837241893887179878454060796981302358484851889793368059343992236690069998933909243465695637134798307681545250277719136337320330163418144035188495917148942682201202624468457385382012142403002863888488552245560113743138492782671972915824825242689245901131376582634704223487488975380859985866846064513057090928192908606804529506848155832462163404808871025646570988727508360952259670987735601534112393567784963142779793431833267765154352520246507442442653458880068488846771500858090752373021121903673196140632473188336983051770351030156901019959827624918575639361017170480889188330079557128425638334876075267782420139434311492290699598586918175345201195786099710085703903522346044249901968355657416795714547191562787956490726286695783405637110447549262891609436293377660545186604161599908641719486659559842689836172599192544027972770784655091572890073171469439179709627367938127166198043316914471441278279787286247426320595244457872090171776979087697811117784275756561791781489569526226660606210076440013572702750566160385638926505348362964118381539355283889310349007353913573488614642788208548489882254119974938876820569232713013698057951679453469296645171601358318440544463024505005146003846904597969971841192846916651795178787470352722937942560838961482246696129899737593520861429869039495423566095012937403134761081605647268743327861089043340057177539405649401264053021456240869192734530735432290547051304250866501252390858827104234899038587592754287543623818372849465728287516607843462156769564529335285159587452683536870812904392200617073497690860953875070732523254986588854080439985552999171386875058926891244414816684417338207537741664757350137813712236719177087853587424786698202067276402824739656475019561843154768781699442378508202570289929102437078247964954748773180913794674530219219479158752596698491477634086368369052959437213193406094628461510980297728019754339156312434523587775316122655170330122654615427248102332405029051319078638336315727358370585227188815913381271532932868854541807213944045986609268669967145397482160043654585309531000273432400401731282935189850872446373809749955426209022095231585034757168270528041427500256471305438102125677348045105435209361817155348334316456236376048571374026095256861975457426946928217762286979270960531322716874307713595626281391485685836088342360064507316312406728023423996394723116290476890286092843235377789027591298169498361985182875821750164367073566923695911616499051495025500993766956865851872702377303666087423847874089967800381391024735372088756910706158762454461470730947861223067438430489095932936480196320537593241666826511787331123021271207000246418286571172056396106443718969178745347092688478848585277284248286008557400913536778444264182085769163568169757648711204822543403170656033630588261030653017194256577049372503717919105780073975249799024213782934206391225933027619684107575121171077450530774722462806456723788242116869299999824981433248585844565311608266173439059753507658147107058008181815047483799370353300722644592822842110962385735373108908812858270204643566103640864548343893163969078608817722580188658043002137542558838594192663874509889356365914932950859293502569721362770223454135548406794670016038273775875455833892733790503963191071039736695652306884445270772506434916040083265407474495241020303787219163941997182720918234649428881156796437146936029469273604384383928093955083758588505057726563939427691330051431944171302555154491910671376929210547746803197958550673282679501632934081112504121179944001008702692792107193268515827711042981450693896971128264118418447821747040757450578196127756717880960193610485222256576615742821902356489862699114133365240839887048659805043312790377327959859789137824211045053007908108588706198460924546111853129949218794290422520905028742763673739955901092566623433526377511678248231817413366630384608052984594822191911191794490343345120023451985278773493460180581290727352907302575619738380086059674759158639076337378087458036057504118857733290426079210097508801358332574765666916349310884502596056248176881775685295486125293665019260034978514057156497480280695897169887932766026481813164134790028803835034916224130740602606941188898058858048413649290531805634449664207777042485411259211531159418499801152158918898125467178878356360898519778350967564955998326545817930637085475509996420972082509633646637982073208896413474164132361052883683146893337276957582755620368482478310858135027733203976403437572619891087761483657024878450059095758309264021987490568353082350818596092853920862944436291762995455704969097601113215563055669684919058998859423296961870528214746331353286151246502512383446278947215077166747821467013969113703010343959202134640482164689637202760531796754705373105210177151804591456516471730634505056962509687406941739338559524111189372283753461220765012385687565549880269110137744785369563614827783690626098843682472617073753687558031807767007347801330972914745873091792600042337853586159211462776497668586509967350590033360055207788887719380398878547010331653142318529801610348035986529358834513063135282182978846698224193416632683392525666574265463461211403252485518811928804111977246497910886530705434537261902862652511833498426290563700888629891317619456977848395964689170315711276314622983610210082645111048014821184031362402295325119427857768176521394971200509000962975918254470090546967010112903658145626533109283289445928574909592642012111680897605351306880783020264940769971337360407095329647108493259198504060669873838303719424680559926101437616414926204479146553225267048766894265018531664866641916863988902001562784873950374584651773737329888369364757193458809548491293353677615888944921240759630026358811664074673406114229738054591350122718850810057420576823934695960352962962112650820906877739986928820928179098035145931287178133559947542809650332787584239054703107571608594297990739203058883582573090789918380798770869718389551435910847009880928789340319832017425265631227551909548153837729053534974521148178911076637320839150343743998238137704059074285161943656898486066067884148930297215135410968502614119509426185086264359851349250460060769276606750790610720571454384385799485351342883265578055328551374546509172063789073844537876431683567451934134577404277773429814858892280958512117059724798628220551618070557557999867012674076853307186100037062620847888673462904010423652191309278589493071430274135857457552570281983403569392978086410045505674698120583399781930526688220454293361457744979768734493559360270338971743005249415665512286665446255456929753669742041284732032050306151857643157605394457805492045780664636808686713469248296111444050562444908319605739054226908893532791556006873040548070110226344183439769600903086574404981738765302223240034043474863670495164996575690949834050402944043859886698930558839645015901327778102644269329302593482859763156977791265927459344668558673444651430111729762717350613597160184689577860592124030012429931214936999223993676408041416365278036683529535474339521470306824684129121917889231786911090383646970486248981518980243630003925987413158375585202818044475962590468113731809819807960431457250158124602566714236398233170619819617136796773667941916424955082768838789503194990342573350538172250216630359320157207289084469258186559998299639376770885964019051919481318909652472054190316742127807268671520251063178797766570272440540388953347184404627382580878699509699969025607498963091446623305308864097481984625804495471666683924117109623771336046857198316040108326098613433020009198627425649888355228066178307514131439341983589479091884543152545004343046194272109801071065031468762712029540218873821387094483160587030044326981621178217830499257748622752236239603214205091774163208207573453847677741608509033570918008761310032435560301128780882949014630331832473339218430149604408432120786311065534772921485119736068346834266838911960457368016435166584783032336029222495015705379771544842755808971495265466649024880161674010552837576412249907988976329663463452991891132172122509650113720758908387173178232747861695927035278780125081106307245466462661587015135409104490326712201237752228536364635243768867565696428622989594494446819620847657580163700830938254884565541972106935085630034885762240623846938593599944610986866488860756847091606781233522473071215026472517390242749998502059090605540380103773437390569172343434017855914105413549256210372369417608917246391885625453933676382303498927274629655414461591925282590776696557375489956632807590257070262136056315295437973495768535985881808368635124123128554903411304473620374543294381080651238782054385597418835634685579497645748310124196013629394802811130430513506561303275243855211370482196410720103861439164136301985887947668790631114967975915011404056588991515430911675184518836530758560172752266659525426315139031849706119758339472344761202804278744847693154325001557311350037142768369219832848462431102403708140972136811102579149343708943717047024086298325889135661204143322672219192026070225202924914019862813732569870610169496566988686076313246747850957748246938196795562911100848305672898870335786662290657576030891971397918438865524830302164634980648991400405339479503242553347195162902773047998970821147784396433407851451857778739195605047198436960272715995438902874097878794647314696096418307411432826993371712600615727623604544821325045303302061401564715748415537900244950364706129500639826186413594744240689512999094090782137011498671685112905365122671941990277274874932849607311090587266995040119362740455862313687239310460292484254947153526249601353608759231233345120324215863000169202039233512943358192973757149622793317708592714839558167179001391432891614586003908327343440944900557866871977451409678377638350186985736919320465832085007996626239211613422098152698475813053778794611164003289828277499259812300630852564971750612983503839813647149800664080443687508225968179298237292222478873157412920846738126772573542870384509106682859421504163773459826823509576025765868150666421223874171575477527631700397262720424775651962752476072092754801512498741096626598832488793589046290589082787586286989070490660995398355294564619570914420286786534703155239071721594369668009884318978580063788332028025786476752311994836163654067283466532742136278363048814994556364781600363970345921026826736566429535410369791846736184397515024354685519654844044200165844514979385676620365611369750469320385936614167691121510137739311973828404407525735936856207044518303890992320623767129182938361362572962168541980817396897881851231609172486012776960163322523848090788765092258920422002453734768533448815180894055173661430853887926721283328920725788629983465549265520387083897312266611754340833246876372160423080342021252233507999739576750074366330903881608074943369443691431476149010982425480173091141581312874859007480979864440194089895392748678701980851514213233704207499768960693875564103278755873855107772272618965909520429697816154529467953148620881658562244822045479995451400794355835620775632977763286907888076366409366930773832814888431501593802521025597043379839958376500570882820228435508405161409646216014698819275690314890478350368247900726246795553567573295010184753147585376628678618168271064229188114289098560431411830284001074438732876572978223182583783124626229877586634799200975367433777992254617600162620980552530001895073514440253921222554142277869832766157613476473031451247238593449144644090363000387278111960607226328414207537365751504396735869687029533062803964776025780161614123712334916004465851045869767229445441706446648543909216252309925395700374888496161394632563258677638782092877984045153084560820022086720729713519181343051060165793670949844421769079238550801850043114745585277768717638729401387027235961767097320073253856442794379864924099587259394690429164572499526111262707293249048305619127708386553898025852095252809531782718085782318381678702368406501227124813858117763746597477821068110676419572194963918194021181138041021395362303755242979569774750013266466221021127143676400777093817648402875025454907175063717115340839050849688773598680540996990697897146088454247478859230982867819599061842672622866574475876125640953782366009611322433228192071892753718536947380196135549766723984950868793601123806437962783681113037527892506471555729813671762686742751536976964966420403534647775177575556702722446135110869155240755183081236249957719230926571713622359199631827958876190774082675623596077927864426398512580469907861933099691697028804719062834853525138596005312286133733626999004138263758059093947599229010339659691233431582865324832118557835872888540382201127540283124687857948232640251690443793597913463197510427325632546032008021696144110920353146062271535715943088224323976063266129175933946534715879449054745038373472379508254195330701959764192099608564272012093501793150351007192860538362766138915545022554780962322541208754508336628179226925943333608889040087193534274133533777415606065453361138360819388499180438314341336852594286269803252780118477281797147515263172794270599035454520309635944085023735182787864564443844676263875946129530573379770197342940984341538668504424223393191550804276775519345580108850325910192268188040255070340452456130971428302937080354367237541009503634276368931397522157349782285127574762856246317325027043907964607259455207456374503029805767176054152756998828892107643392848075727054420149814811877729874054724152767566700305391885054326650121965761424597803891331027632238768238670545312787196280591498540629546218795013737514226650476678514321612790963862458816153194914207338351413667912764742286718197311724038240343205309994531686537977187350965979752759044372523700420605843611813432190593624642920403038161537917124781314051101112849052064602261179260987932190109107565490709182576132549550817675590731245642517602811232664650047756349743169601898395260444807491369134908569667863308683807716369012699816048183328910093955027393075343314836761936342245442262897669415998291774193134253672787648307098036925076207265484038237651464234477622089121804202069175499247013066457612324806782579242057958053769003345406022849838282967007570204878205850606225659458067792228167687784854423546429340236183319907552490440525501445294965687966677142981811170411266287698782426540402437534371531912063129816117086131519158483699325034375774057587146433040057042576530870388876398921763288858214090554263098564810734560550126207009131918599436443691054357123897416235194653356389907442524338776227782831395296842675768390210110251629506223759109875656194702885776386301889857197318486462520597299132257700804621824305586124135728947552587290529254111602638409993184646525245940713331003823936310756934083235690432419336390938800491378057159504595742750440774343793891831322029908166945146986920006414031300510104658333213193429532229360701361342666747730759181399252377224181076827930959018126501556231376563727935102290451394711116153994905664665752018285570672983221599659946298099266203695698729817622829351686989838534242911964197305011919791708325181609112740812600725131255391345379609768656842957929738759109203164265818943145812817946879320433314329345255100059936886234346183899713709888231525968356982685098623215419851550884633755719241015693530404329747321083894327438228323681987757789358657987261659056373991620138696992538339303084137488178784572407992913035845917409683132507907895105167519207994782842583506388407908452474354986600880214834548740123116013010092386101645245886623718734999414010702083889946736683461757536072259743619227687957005104134826528054553971468554561111502139572499733739512090562531289295361240608850202520719062992141921130747468116572264756714720294483626411665054946328895612738109032305714702658586745636440459416970670763435878833872996641810674573965124863032788030453493225811249942577191641725431031734292227944585029936633824969686717558729597174076643800780385310149879541940733245130606392134890507043700333907098670047054889377115741552726723192107546293939802196492576818476866514484068274906870133062215033521081823267227539722438413945828649759264270036002120554486413108445987886163996091295125613487418546339159305514945853560411167438229950960783769238025072757065162140750470636583242088886385003556475796412309825771567320560226661191752454723843017612183055329686136546536906157491699833044215993025828796613860420547734815385357791333798399500446792282697571720846150158714515534259219624957677030571740359447558183053915081552530094452292121627893277912681607772954183870285684795818925233020763227019708952924775482446826147710585389065046912545085397190059976529295223201075571912617864070002775842746366496939440490557387429195452455807004283088580331765496950397033874932441432567856723242175325512798028546016385410943648028793976805943683206233762090512866212057973340735745749446566828289456817588451157968971619295506682076070535171609311993661360444826649859921588119658466196240370968066377431694515499458379668581769742900949388096067027352791170989500309106881263681289342981047755291610524635705897218053837897382087135665097955271298258217904810201477712783658091746846671588992530802772229210712619714335019821224122212947351428608812976884030715672810583107924930358615345440140997715802133715264016690664646649018723361338722252771976264820083841492970112244275422140038814616318053355107834204689956151806844444624875052262973543146598322593456321014187395253487546087212606928809455463712418613455230449692698176586003167362280727097391832046923468466362063956265271044762885907641399439089993944994710936135854502971959574118180772014505978715430569963375410005304488149145510594306859634313973610501277701230983688389737004046009166639546975903180866578881591665158612819333441601397891097644119097147843359134162528845855506847218501711744305496733484534230946628305397490607750835326257511515033998071128798747098221958250844696566506368968281231626928983830908330498149238199796645030749843874011884872087945258372731199269686156393564550363157155169389893269335610172768288416763715340076373550123503598896205649224900781344091424813340211223424581549725875784137334992748683313000345427429661738691452922742658127158656901554580100956121944977205896053441693140828604340480527217798496357065157224311382086606123476836380760242426711552764813159640070846488480080585349856010381955065847416979106475851636639684150876842435427832852963772729178499553903688647333674347314276136290679051375278730826093807161796921312928646228490659536683830050394026357371969832067108511125079217435497146724910052852849098507756565749097605899256600931396157371430723480880010362287774204759187745320624346305806642978633898073894949439309863884491413859866142923016021560813172080074313040930675106347611674856541317968378005697236553793678809227465626703922736579483077460952942701511246236145463171592435881600099734761751396802413007714278864792540946991766341211549968336538595281245049235638711480505930648983293826571116227458401584158952196117650412573706115223344856120426657808698388736314816337524251612473590480332745431218051618295710251325168497406917740957683659925314949429642038451768415846452981785268374734582422299000527219315705591840604989195517778326165299929454157312283767838374667177852587753486180163965495012612728713081414612620257301987616287725290972760148174243431660977869311765454748660714441677268516704083491644965457979464008446375877823761596641058755119623295725419554965994640131432061925888320488526720354326471387261005230658317505412214781961078176664153766669893779787635444408889047955999629110628906773937517519088888088760375675871869245999298925940315389689126952833850398208846421225233376525204696269604529638014188394770718448626221617940263515239986717112304367910511000054531157764894248283183144809165505845752725800465932329997923468403403851843647466455563894232648344820308491297487593600109448410336513421544432835111230333741907359659948575929482703912339163580176718630028614566909636822109697962896010759753393346098702679634435374263379266264010177427283756485014746192345576886161769780429201876481115770602478204089740253663720235681509274916042830561209346933805985949321014427921718811670813549688625293596564964594584631934562594016193297336771439216620695407028903618137632506062415172626620363708190226901867570959410550829739113659237397774793908790586962714011226185553317973168969507284830897516399352358820154278840282102187850154760378162277591441196046168430783275687203739512618866156634403446877867944807818779915287584506316766014682764441575241571686578215704145701417281150928586611571956826172223143699309054114801445957625682492304014164512329508579538532446612497819370426422028803413078594190134965343205843451181586257180695917352440589616742630883148716053346880684430978681503680162640857982230394306120185736679062370631063810657601116850779885133566410188875458267146098976587495803774841394318313703876596153116673397339613973221542935490543809379964403122287639171521548767319580003607385389483051910373905940964388144810094647402150424715202652685421317859122939422171472521425512184400155232018267386860895152895903095463590034424367597742763768076261524791362068366244981048055267336538053041211429927547748763008557910113192740510200055115769965517710148810155920070576119385614269296814519061875528337093055697037957739196659109730753064254455017062352339973539580011694429906592716653214684834303487589370115212576266692818087788138949416434054049821101585622375143357989778250328216503683961667574010771803293869671517999723498223198784367332739594965736090272267803620442102664368160380094458705433492319448674356007382696745392285795086654896321179046181799223531775498157837465012270376213099436538846139924295026892228366520126879624777223761230569577880716258837941818912850525157258347423427701309474931464345532209013519709847404411652692063939465884432640353676518825664069416446256676775665692201171240700767504221435496234123648243442642978865995586209807091956963911029297137450243388315102317295515531587098483278418924018336290456934750967744399718981517291364346741047543185074689675375629955964132124244992038933958402016980377647993933799062199255484346803903315328880722785942538939046791802024206821211712202476602709674013433828992411971203108186998847734525519465486328141107180520365260185063147131016169522454489973142133341387765055498572285195038796006244897704970265624303598030624765973214198600564731140837048825599476514505049681402530715750711039078711952804573659376883028407014511712655706980651866187971010184224480906647842765798048273315582569854346158789600469852278722316847373080955789551328130490611975128659606416936863590615970087496222883803024847043750714005730590170136339802161578224828575919236706456154949249632335368348253705474189025337140894058606068099277740683007981778874996868107480471196753968325709362897845442225152736566343602320052683825093432128371120294166889673072516744077409068056172682241416313105474422850782145147495125440583318491061791978503962845225061569261882455538556478611328605171496944952762254516921161221980600124128265812130689654623934764052492150494364509859174196554778897424634971115480028325365921254298802945346246805872740645023085639476512765147747819934413570402900319962634540188249485995390656323336506696409577972471895616724882026925941990534482345788673871234191289030467483758106695464388610091513858013818923469307875583332240678932909162335477776335441954858485517313732164338507428241451325406254871164078462000769502294502502977378201697990322544648930639710103016438301764967552703914615213971680713028050032420591997334051501961816131916083045123518018952636204583426904281943724306014077034308369172672153370830608944705822603532917708877827673444412596994210023118983423499198278467787094342688881098841149940516777528481972943652919614070943585454250166883200019027431726756567990250097960932922253891104368778071255199654026519587384548798086312133935515638173322000900968089439338940843644038569980947869313089687726979490598648985580971365254906057824781904576117196507294934081962975322972285273753680584543418498801813471037158072708251165009143650719010087992222388368149449771526540680229073813215862783013224877200151135296246377310407274454560442192574853205683289739531305717162662644852236473727951979247656911644755899445745266710037278520145847146648689676242845571463486932387745407686274459349160277195256062868996546809226884393323061785856981583711022810075711296899153672954177831288871440554269095018551603926948465891888199280980885068733111735371809922309898477988295835198694720039476998284305489432169047109251495342184325884831803870931466071148280606810849353930351064138111260034569618206507596983741924484715704802235508078097013749205738963181326577650053839580116648227014240329161057797421192987588013097976155192339316588942941328880242114962226228637019000783739539858872883637815394349301211711495778405025918734627134822539102675353550076741629499952231225399198580103338466170649698303019037200723428998718893944250187080574552647136656007988398407312469893105187312758271339176826821513584225928476387765264977394528154562635577429394209881469870320995410037049850923338294680032134835640593253479359158636745463587160680844829248191590684780195028709894241339088992170997845568971185698390947009729436103889716427572735939611980462678819427455636787642773773987271179946469824754021748325371275867397960161856051248053838731937780297201727125317274652815093341265829377933503248726141606815405925528880161571576937204567768979545970224320953416088954863558197366701368832073830125921378926952910684790091789107323633851438537376549005244169137364954558377754736503522518451711295584148669160117562179485277864810264101415072590851949580884384785529902970249680354830510419612376377027990334390267835747300661029423735089394140274946092191251292027948515612805024242324290016171846168511061690992243967449053087243588704854817394171755729270663531156003235843022133528957274896504517432693204017903664080555114560830759013032377380709358077551745430532244555255604269713068920419880889754354053723254468516112003190646162575756596543272904118702750217207267165770109615780388824265087256334936727453688417403269517587644006852591717728188698297000133468231595058041647651250772758653389980562844561558022801665406218591286923466216204122466728400177786860662971948818427806615626410074431263791285426101024013640090333725508666223705416535528203125735234316007528841309642726178052805177072201959970170344215369208476871361966848553758284753371511127720669154487326167953067684519874965006180075859842588633208604834439503167777053510292739035198660364499690463109217200458805528221376928383790413728737046248356749740578263977740173379229965861245354050100685609088634310912450359441099332974937497290495935377013695499572074993186895231388880017702074274740707768755905370072057548319321604875183154892035964871524808618193616922741594596907565625264041234305268476985012217383318660666679429664730668207624268393002945599283350874483284672592112844875255571853125967441597997359129849615501487246029808077315534720438428755263405942014063263446042369664830454495030844790129573679363477508584195743394453124263004413451259730361728308949281186844218184312362407112299627900315912137009745840124133893355625933470770317581939235707661976852255569038283409203576729384081808224294194252114694955581263421908897167225060707017037021907445909958805027075880602900239158905782969474552982367017490538411532127530150556832474113579777910234347895643475219904393272084327266972459844072819819584644367572133519718403868645304998677449623892565669805163250936387805475228114542344347888397568594789465608232603599798062024772108041351305751199031073215473388748686344973414220782904967223141661468335761740774242820151050588086970294016016537529879682450368916426983903496132323107722559032675638690878833995813854003041737017142234284337633884017124851395399651409102279236611165043834035961956345302874821194912570342749396382030092633869103990972294955752340907931110927766226654438162722822667050766914679541428639465340905597885445433723624243371194328606120971028142864426837537271561938649518583104749242604761120293223769956034881539652262368151312896353870478681420206598562064665097795010104817688724040576137124901067799998391164856940585270874525923563768155408808937120867562405019530020829445105435923439765239158822140775837597752415985858280822467283031529346991107363926312847838905933874750183908663714688844018975242648698576966426478817979434055354503442677714177527709301495071194839435328339027628964680891707644670138750986728267948922966431263755273396143470823337299292556136850743757677318846764442981747518492711820305692306332755351826405430940873989489357690504845391659665167724413886095636503309610528606640954237369065539921282752773892746351414231160092807401310383818276841802076854803744439693895282122183748835166581041761665821992506621683137160134783172213314828829105919625407222837351817483520331571964826869831060404643536361316349798556055278790636670944747711611412846657743087125533698454661635526231378763839953594561206754271325048202749609100488585742795545585864303515486983301423563250706503702790599599905219867906993691197336029770446971520785653703124438069715563659021408682512545313251166405665300665811182739397148960932890539399642061145666997022518716331771828855796623362619335567707677009393090472642452024294938430364008933458257783862977873540115579035514023773376688654336604143809452032830637981903960416500150289967596834861662656314156326124703522566460889138163083048840352422617890099782523787752232573187553908702018507031116677716729638648058421161133574241464429248578732700016679011567043251073265307087699991068340686346703758105489354860810918518758436377924072940724040157709046717558610387885471072039259713058529679767696915211928925647164439493033313277254455170361487403735602503347678949104852807195276892371520678721053011470117392466366746539827815708122100386740325925622003569815534554708441509082329476231190387266004145343101428133704421902847744606387692254772926475211455498004531624743925385653911961704701671338812488840044983612517825800980139357821910201841315718159027933297888288181586709012443186859687379818976535619509208094082014124876224707946114287210382337840487870067387886564761989744704714425815673380595255047214229981125198943794313863985215282317829954803479505755796785342455670294647714660109349877268064791919117189234347871659567344782913246318132377580328305083610556942289956768956575005171270631891060702473200374255070364507705499237714717398459981312729607099612937064245924542304719411392946387532931771817953115384629334147565263657963956341274529519060481842655253857863699068681688416736497586629234832052830295438735557484240307699937607106676718721936198500819043075827554828925610020119929614590659182127793131748289028675315876960227461884898619394239993187097373753043120408243484750806429546440800958595085823110183474538077185982703146604856428310665054157971373056164662134533778416451625387250742766217861897103245922738709285452680611990143450410518335627659439927714955957326370151682477906565151580957109353240935596755592231827613813351300278704105927244693615697788221083183336349745918990756733628408786414440425425309096786700873485112031904298231395130958653205323513443378689165455430323123622556073283203617657741462783894585474259589000929159262646773190539568667062839930679592742647873460192043285986997024503936984084986235171265205283392195197154027684864077827305306665197012859533993710836589407209209058367058716204068257647542075482960903142269711496063502416892876357553280650165803574422710361009835213037432215068855998291614472554485612784918530772341089221021855716905766637893836923873243843030856033394611651321618019993774924140519938826256252518790215382762031970872276590308379927512819351081614120963348947410293631620807486131089408453391159346912253400159155077549140727735841425409589504185698781730251013538505567640354005087083612512268617665026438714149906497873805220608324392451850310767021662616954195807354211181618973552454491570729427524925848188334079323296851125127589856464127118311048584357913038845556207946779413962785087151465156088872123076744566020357373636896306683911301383716310694858291585522859824558771217898671986116976795642078989566688608879714504342853708106938347543800072209871663533454087861199142442054375618190619818499690831272661700630475219058365086533737253153142890161592356920394430698809653624737339079295062992843768714311771319849048267370033433050764287128089047669762014006975867605532179503492364774568117887636056321698144735106712634697335023536316091917593750564753956113983609039627858322295144634769138397959779535882290749968351921210039665227453205490310881783359328729117131849718527481466852656249048339712062195598787368088288908032811995521029757630020752317780384280968068375735413062088129122837149592456716820742005213994420426758006619419347310752664677341131249754976939645171091735232747012977241096870738705394750688436068146886195319723951311081920802300683294120476517591005617500008762155499435121493388945130606910670480077341221750326700684316850151331171451117451290336786119761818033081894585939726115906873096655091890591530147609850950798436998042970263975807269102326233299326636864896190708563998879698542498238240355694227548859814942702343985114054422505286823070145219457108323146971045057799622820101326301015677761160497078522115023160800035815910163679834007943381794336141209040452280541993591410045855802051973135872185441833472841851653793401455783110935811766805687601408044196090896264101791767362807395623791392243879896916948879261095277997983815465507072594256201422734674426132359286649012365827207962015226302200105992729001042143866246634288263154138172416116912079283540969895427493184998738864489038361315069677976619939225505902934563849688153045565892394393846535291195536036927990645031300321034260913464204364662833776366525191809334606598758559976247855216680073074761594400446398425295293627704195822171342193438833484924022763498510292007851090535580074914944032586215830679870871161080642316563733258407830447692684339431753502838893804327313300591829795570005760863453195900186479979637204895062513765078006959424735105878379407897127952056077391026677288096886199410166054059492954270370198259922136353227796894474323024841182988754359845097000551682319607333767801474658288909613783029499736982859742149177855826361298422957906308814619479624870065215873290268409014159401649995085403547543682369737022800727758488731019187754931705529180399095025088939197786166743412547131315407349974222252015425650080836145551913263139263696714302395753221516853047867829482338071086702739750435262601970657821587280287595588043726568448911275815455053297772930152096674669277412506032699671369553655645973815981013583668403698129838317744333499527067956625577903887808838614723693866121855868622604224147112291233718859111485812440824364031967310393521057455627732986054383090896336252266730462683949178215764352726010086243351677434188920710205240837023893039986132010389484368024316317737106459459214523985679994648474166528168533767847294309689972058816373253361589871179428660026859818117300733615011537494256137621342799402115719637712997712313751812901177666374719285891722281894755994692988320759404012519105101048961925770626464532039451689225058986606143850165696710339854075017915875393713846393738409154001788464051851907174735994718682050443364913657115988160882194407770309155036446396742907130271664494002614579036343748197489915244433473645849535263640081893024693550976602192806362943736715769158506157026092551846961589377607432106838448926792636672716377656511739847652220135879200131590000034837726442194319001164312326456412684417539006972986082761104164059799532733946954859657031342832256700621224003460827522677249781222197154058670701586938081002540981269587891280920190484623175651154770759304615260233578003439449390918385111233675223317439405884358507131930375296789394373105890935031221523618834572321329692482449292609011536286941074782042134767531059111578865440039871251422282265592726937072216234565889351171787022072542250948654037993680656418100518230152447353445657299260514026882090544072729147998020091588184634207257108596452357637783502812785151739325781097544285870390148995686876259702211465122780052332358981371882828988537019583846676063525964304948979060166361270363436111004046391554435165374259594519399832446263250754290150834711616779719599593909761222433976220207057351240152640963920708766168292967043855459189727081210968483087501439517887860159970001913268105187931757289540253340652526335249614278203493183027728730500329444101632676812765321515312630414971619025727169101414494132278340573667500654802062908197489533066613059032193495168135293676581197514254019663131272555608738400695964505954848115573726840324337552961313715703548754525567163812743372265226242164176149879923163010141257486103833141901923185587403224125440494469755491873517644092428639140739616391600591144718720704521968092912483345825104498964009622209473205615328018852748831304361497538789402448002312353729237972997265656134727318205426324718573606515417520925042412490298810942782121165753859466959215608846156263328111043561483812711125545388877241853623276620351990391098614016860339623782589327945494209825441386233278416528448351682463433687674790500744393804794096433117197649340902237829692145061098486150207160760308003371003711083310625263905623736899464710620174858298595224988670456202133068080629343977393916956310915681639900173382231427322258618662431314939316850519867634863742862212270266252223202487205857556359897129459659420181963576607133252214264712363383859426523386451553806158830147311909501742374424286252330039762452516205490716470303583461848153495450911412585607805201403049567220704717169929417870091181581584738038739065986490947983728462179526867358507405440515247167475326312172081038811188914665097330325219069642829051004185594551295730146442514887015759872629558255178215740071390266156067086057105784200266085493579933155151114369381921030786657686294400147416357503023966458923197517413950438659143261680770245260300392310948464805274977351044008164225325939326650446684928059250498145680837692729612226864230452304824581055149260053486708108874454135133788056117579701968093779588819441268956908074365835047706481957267407578988994254328290902179973572297216399186983793260275644224484845658187474871464913240117161219668392609435901980196513685190224541504036717476103877761879805613675985071316735816277790904298703620092038075556639119780101972528750181725153508735029068895516207832244538650418103568130840038439129365947463278373020602798264173476516316621806618887795701915005421012573822262752863119621295374891952999316513100733371913727090246734993501087227724680923522916285178811649906556361551683699164036760150094634234452017853028566172113349534587165455151225791075153035549226608499091366924049426019704879046111589863811272617436840016532100845134176975332408341461726112958043878754223663387753479129702418082367624239028228158803245526884488969973596992362231271720485019002264985275386429308560957211436942009655389350217715098487295379001612230103103874642832544432549010190931262638293035555376950296200112857889153478494453375531459526106769532535753791544079248538679888347184105127425276449427899241378617406342369252335447318295511441654388030870089192210537738862796906977862139230373315537452879473341887085655150999353145548697934313443923584671039774439560867749040565987385672033991085293763922866060027566477086546129808433813886808236836272417088191325485650642060942153246409409672873058140665183889226135690936624309811073880263132985378754936480139948219827108605882432463790534118107816814757226496146340408007457238596339280299313902260800201110719287492788790759226295230786122314561868893599601450341615218531043665196109749865942719947213218172305873924671286501579650909490628799052053260167738362041789034223125383278670891492566426285628834186215898957158368790502253755572176088822755035888172382342745164639989470529376569593768467411757561318533602145426542998859597473773803351363505940981357125457274111901884442092597427386171609292919507148881894321562638471138501999021703141890634707272284402539155403855484479448627998701042190122295510332589223037763030244607288339153946634128521063707283598326890409292985850987705565266036123284146483115210614904842879049112601153618959792583047630678019453673130630959111301653488283798442082228011915592464897534966995151709321630110728328247501258402643161229941340097111140420832704505333349710963249297239920967736380879542498878023307161219816585133611247110887363628720385675462314882548754756019137032793700264570862571983066733609558792799374531447991480810874419110673130022259392026817595170271001248390111626269642221449256749110152632999441088603860052405580069795881969626072645839581959555085327160190822357684685402143294396202821519984415881594150662474207664057997342601725525415021555313022821742742392014759408970755624090286067821117102461137307063120978894019233319408699182086780507323952513116530021324324908946185321938813601309039526619932995601990030220424320488264923110472769394824714777331188503699307317954732473282563268833019162975610115024988578755593891533026298845773802942298322263734727534302402262249134955787531727321428657632209027246876889248597883212665242313930510009162528651031503762260349254556998835880094575744083006695818640186184387853728920289470149283362802180313754228610097885179158460495419052244539768546027315761787882247862199822881430317741347578340808089221889766992669143572094214443250088837131993466404960803522520719450981051080296394155413900800749266562032715325721931573843949576775269563283776824776961476895387533915704323110367180690681249273896305961449451114864476603864666008405913026183759038973598691457780389778589964483705611950362116660349674781149618013217303750108399174573013776218938024898779453863710216641407983069991842608657075018628998962069482808612253873080146130314047135663321408728071583722971446962989257004893095829084581700436899621848675232330621682944551727763908068576720542651698034268759830600091332629836431145290484602097131647618290229407648566747900438590619268264258626280977260414723140968917364176933719528464032020706641942618494002236010251979497351437243837200150469205345360448639271573913819046261290486285553287678589820416508680103682950050570563100955798458404629101911849183350073512732724134929671012511143993251952689072026381188428834464859795103916268144637529344270333976446500489935872011180525550382962446525369562917408583088907022710011796565275806575789421414381458016089735129595336177798265290480624844909096863806931753524043926351255775869749160696776988103678687242824892777801311759420956089762700409478076637404889958553608883858711335299017464601353123808175278474158586588190845680624224678078220200215733744421710563871413453282964283818740360866302685777220800405110965658193757383656947534315393600517226103324610760410491933734955039743532645276251301698074330161271926605675264657476225296328569162675830911903771196457419711179586969208511873456706801932312372872135365764418178985283979852526709591982485715954164391297464381654533444455330063205836228672020154073655325910129182747812183020538808882108497617982734864259710460296782407706666350439164556200595528893965291202354974185751752554294975666415766415190223261556499874879475073758746299981356621413501576051278081376289586921984478825896227368167471688372797551705607075869375263104027295030311867349135978887520161695802331555611706256661780478279929456015091239996718259379189987998411398488129190973370442807058182510535040992939135365967174908767798351104169684766087542917230228888682145722501539171446874847744896095817145436944789583962387175309121484978274190190505298174015183493826924376095345355515230223917642086839887695198472636733709216415427476315043014785390634288680972897507787399869415864777029701439804211649390323119416285976525684247811419753890583038877018592137291621745045610745193630836736296663497477346293681735628926117472570881180131576910087577234339047565188053028345765886145985677516523519173232298952971793728241576897446126614231612242085717999607295075077034222331597793826722232884823590075667202178479160820751428206841305422591266342334617305343335833904769907252319236882145871036402214662010390585939759366370532889533609681556428977050096322512634679701223961972632707991206101434170209160168294385678158806595667667994296368960028629649021026966869045098723204622355391947718926739902131019253527396361593003430819934836363859709821628722696797378900357507047200167798456446556503069170708435182179118738087118404655271690894596974481847840206741641054691879033918528861864574411015874743209383565043359604158475400547237602881899156577020468400013317419682067861225459037590237068596604940015181887839866540495897928482679266765340910174838120247472624833767254729558770819075876628336934003612062234913695950905723893489264810953698019452731406938070594517485676020524670026543162428239835474040793289308511843974554083612359719057499412729552373616411738185195153803866651643711581269970192930768881108932608904088584211061681719766475789941759663734192926036590165910486429757438687173764062503204442229944204325320358765564745531062818388135917611362608891629283682572269550103988014497128966042883987563728465089615303469879707505020160646381161352027517023467644517652228118328166462716964295150962043824123877861793578058616436103584806313329119153152821048488082631688343040704454437688227830596214261562821462381060212681321101806574029947871448301960419140149536480978404877413213727440514655930327919945136504597256631926577348654316253627764332766089911825287517541780509859209891283199395580382870032398963305434442096491895977971617555025355547419274035977815913026974437054116590481295121674206177781993181490374137005247752908743658850397228617420924622485043580495741517806267425321932972792079719123478046827707190350464862373490819975681138019681151212730779876732461577628351512349111628653376701373563152279868220869746378451244969538224149199922289939314698716396881864211408463268898726030213556967694308915681199332505628969560661436267511476443415207697588017593742331135458066695161642525469755945521126141897305808474519297756281964560910941441140367674249160955672772415485868492653815081472586558394136012920610595706145088180962982102167362608006741771843909899746902166636213749543558015419474008349645593658683072809650322040733613238657550285539887255359736247964070533715667255188577512155996358019392224664326632876826541558242190966795249457311257756900957685100051039595390575856289210089794705421132872419838778088110006486083253465866319842657962652649851756170251448668286258853548869330083769642395620080805338591011256179845235514388241277782971804136203144823878649205206940176709334637209171240400766937761421522264656954677673287842727488610317053013085917885297867568423547697891847220679351717015598126725916675976142824716822670206027607483359661678446088112424132227412982665063947489171045064063491110704444538611278369731928275038573535877085334921582053078248575381692813294019265607465977231995654242523632042235527101704625684708362594206654092122644171698468713043230974808819568251105415062777515117656725918119860206022611124166134567904783705539952581655826614975909686864039672591000266161420796715839260434799697068469104107897441009296278436810321253718975316890951798477348577301811140052835113623564287719468511389170880198097175458547868261736669744564024575672458830249762580022081693543206686754606838987574876299726049542195343916911701092509930594302101874243391554527597268054672825711082441869334331803005561151020239706698309789154236318040520348730805399277592865387171794740608384221806233795036792733061527435856278768038689088805580697559254647895188260951436994957583101846758097312115165492200503108364086774495269821125743522069619659300646749945313174064164311973247175083441791291487384013034531841230315927809504646384187558353184886978884687611508963974337625138389213615922236088878053068033549442953930974355515504169399854671313972876445803766513333760005302437300901420542527930418095840222068163399139355501634622389247069468544373951853737691742991867405508142293603288779299073440364964344337360358083098754949609970003342802130236829665651900955286619614812069267794394426395910588969381239560511803704858085619990559968190352254324272411665264966456590166689394240169948228974901518092446878917399401841457739764577017443454221767685288693813333683941649471099351729176339399151876104618641742694996325396382856416643558019786657901720504094329991192294622255660377764163767951568944958314806818114077545818105527580202942342943982069989799164074715417049597452835025327761890420364418560171086660091130551967661348556141167551385043528022524209970547948175976946664955282127144192307920134376106635500183250496370189484702107612489400573962949679951537039528768731969164279300665193188802936023580931876298461041516424412477513215205230717224089674781598927511934060320923466087187111524504310411814600708198676264491527731340215656180233073289996987970404980897877064184851925989738984519445373482377236097741802183753424412314254467932446475136171351348418687057375814781993301312235070830329017512944787657158147332976022343028726892359503146982813677262461623394074803709803948239094928061827247098753690165726373907829901407176957625698297290745949685951350921992648664264477043032527060905432203391177185233835297157373928236916080006791958285307532743555323758686597180915256863723327218365950876737516854201759281901944465740355499796340146932994075868559366569682276491026011145577893674980340117191461504114008724852626537792366307622675104384313143275410899193135185054780574731870052426189739421236993697937402683294386852807182948031481176659888649238677699077809834725651313332073895832923582815219434968786343016750424863358415585206816578966439220988227242235290359782120391724622525679159890309955502295323990694480715055967741317184356930634503474777483625947602369774418545185896001898743799876972547216854122786792898301559498083676035646932047110235103716182640025947128331154938697471714263046619685849168839802967779004873163193886053145096212823742438099869967294011550960382980577239794102382156887817889278591920456046216877885702175342317257833675020531645414668170555215294244544984724905925094937904516659288555780706630755906711282954074057562798729619045592877716076488562889008997218803403102583099345939689450246411627520135105701667680723943922729090696711797590104538198377201323548640462330099523403721157308802796758677690888817788725983892834378880483280771209197163322734438591641312881894596940497486227634928045854924420780280611736773312358113390558377628298605826849795761929540461022533285848686875319584573714602109380217119049899485063043255547726357544876185735439812647889179751326034230776462202007983489242988121153672130981085378236009519180398367426784641268474361119724991396125804929472817714635764793424730669329848098178411499534654819748173891713189972222992408103646127992530174332711840708726943135833463226158207977872189357016060480207716096829850169216945543372182990741105813681836026261295499151435178103060722691679084919936113006936760334830333380642118853458269124850903910980984985985683574046439211106502234764563945685653939633431944137296529030210192554751508565290770565817581776903346433920597437249862476901320606890702500170160920399811350151856678036527047100637396477946571565947032997911975037958743303909535154401977362251819220220157811050057227418159878835061187259844995754204144330084619119056947974617638687187935434170108570740274204106840673366483676174869575588613061564315129571573094137250377796223816663252671025542562045872988832786463583427566153330753768714160536149025501982241954685082989168677652615077734587800656641753371193027138359635168890341952372690612757716478922000598008121277131522268400823189017141019137552015418289429980630850471923602495762961538065269600449812649206810827971957176587028458769650973521241921716169499134629799718541170776795111894499523283793126599224827796234127164951396711688716181638260895867203024889245354468829589618355709949291584043968031816859249255998823683754540110710149530815227559952358466640498126264313818952015469595968952717463462456933978455875431117697975956650526555339516471518545234490280260942384233212852448735041898306445423994268260486668996171607061132635906034551717473583686476957475405149933951554063964555066969037684914222769847237771424060854491815709400913891483115306872543757426078769576506885090688605102335803727641691301877241362378685805576359510497150146884491222863030216856154385278655773152487840730535817990622474243432252768862881162182081558343988962592224729417411917199658859182545122063193495687271189179519514468946363641952694244985680712949014832723280810962671133792372964114144215018052763205479861524298192496343521576530999099265758585523751616500938097314428621188924602723589221374394146571778180426814744111019247291225998433979561073768124158480855444267282459879303720162103573426572847865366404481788138133231797762023066486006410839696001105973247650042602856420728038968387877323889859361087356188089780960713966061717397946073350726300229452307151095718495607086998942370942173641167986647097551121623402897438995364390162533563568493933617655859220545932324630362729931879983043226630118111003608207676842451890044490604490323002525624841354254673990215661566930372639915759182618406894905135308510303766606755362722849887999472344212019741143438871040394524729816086186718030133688959442371808902568080434395343719366472283025465435872499182243610314736541296409697312516326665068992029187889036189635805161154031061387073882763434956646966469309154389836060187549658620913780997670936734731178528409149539092551857553214218403281419179218733758888178670901168050260609707028965862437125625781787813329169582021288405146054518773241310448426734935989871939710136834691952823104694165113422746129084407098503862040416092964724504575314104503705967455754951707729723019977597860365620859093250856423865534033729694028470986703558505744092024649102420070302489378902942607870030528475895427451497896401675051467707796699470360281120966917806311792130485089675509299326772266283535478607112417738902795334558666579853472319900921401961900135307525464808245104197574736962301928124810085630422873303587955316779997431071093162791019417315335338659119468707074879540552540385496588436175718606492040925340348886372324516991219750134168791037346236472698208529462622029036724186847045500959498023795588816064561091200411931969087668687752106887169961281377538100631468264604168350136694059725355982206901810368824520971736641856007465865544418831173807358893604782610271149399971872741134144018098339904935341971243764855011121191022050775602957290298967105224606521784888880777022108191130103036622908776720385107456048474927934821192832351092093639586855580462016473877518384257040337130239787922027105508969193275846164395373428420551515071244764048723162025355654698729225086381873037680765458971466995783886403589710260877653731935303429817186437786699150342289059829277084346588489236450800008099659791581993388328033754815041108761679427961447622052880765625057683635066782023178630805689343968568262577535811499048663366124309289916511257051943108517744338983199693524629392673185477517691029296519703132063185122304001092404965118803119699086906741236019367162190579631591595871785635858338800437676225270378950865947327439276757501924022733167016793055609243648970592083998009028887710878976887384943311079896677308828138491202516666854322524918352907574413750530218233866634697219892006362664403569240901158802630787577526860854195362536358870929279927477798578899387616693424606619252902151034359001791928832556256979210635140412989110331228769252066656135461077295148951332437777292824149515803272652070429487354386254535855606687984349380087217148504078888957721534861172321281690310156725805713751918614642076245947706119491531233571020581594667807618390160748437642558480322527214360724169029318713405784867092268069165741813061570637299354399338418583274037894545223834802264444917787749863776319148208027297051903407242428477429430273926850304687135836969337643234872360728841369239108654848793800319225273143229344044436092031068110389167026758663140371353680400931625832936862712914674307213751381223551896186997220829614087466743428676348270860400381426317764203897779430298473845057536049760006085652606125658698214258406695644734356939433152606238772586504146830692025682805498001242303631706218127203176439730750134417495275876334761596731391216656437295858579796445600478991567289104979570083228107449047511778452731036971678669279318957383929886426272192092476945799853683577081083995787973060603169968530056142109268033731415779198535045375793071694395480651096307199493193355740793242513981619486560623733042520306908774077808438294731016144897048589534400615665754475167224186338941603703592918465016722712553082848294233787510731999834153580576580937086698493882101594033461970165604816139338369239125216634313867366182085883528594105878346312237722464681725851854271808074910515171404141341203630833008759089418995050829092604159712579320122851017937959108766697654039815802969098612656805304632545143723171825608209390753497221537593812166869199215975582346543853077525849997137129550133934746146887562672888921421152670189910200362287840113586536106946835675610105433899552553038903984355382470617149471210625333900954710329600363717035307944568290023562296980860654782563685787387408936420343927562677625673050860586759118700893628197757245852323161869313883773967804562290662491468716991982270477928740907440882396841766460029531027486109102953915976101533066059050733016334818893897226856916541523259514734544812322962218657188678276372473093988992608126428812247021579323722867332493944661340209353620596822639401069126525532905133863848156932029842871268626315432504369733786365603040495705485401665321284213117637670061508630221304716503256023145996878131136664719630991435249760823322760732599569365282291658230098369642573810175867861771781148400280784327502658272330923241191719000694901668272430749868133004377121499067417925349228704803922900200933171225107884616407731147879790279758434651860377509638374122625686973726768831382272160134371553171824994952974199876649258447526980192731623858811597077158060615032236345523727798313275591630512759067727900341729436504131698885309267574103582104707750452047950389655104168933711919844082130581952864459632719536597276621728510711417547562723900890143151545112454931706134917313740658439724490266894429929545759281989501403698466799189026878945620281984068238741374393397211048023800586163729125113211471629990234688664715980001098983799246338775409816517650002460254168795858027953800501152042832129501017747797273649895602368465424298712282662267076498943490216268969023659145884703786301514125707047622552774353888916893298709199039747809603360192052630720872083558274000975611135104421273448619760802080474258091528322000955479351235627747094098653971642578731210170041443309586452792317856856713175867165126547843392295394724354897696497398830588141560706015592643949208275294338119988707793101158902280767798942583592816090997976053492808076818709681116242588764975653242047230992502274853336970836755843460781646921561643391488354841124640887674440981651293480086398815809997337749490356026229915519965951502590393745987169663891186915867275643797640551282887897336492058879603196804323712380851094415989771693543608488031100120615657157560984152614151755561165807504358475362925304507370877484212992913882722982731239951810258611106091751982573359593555798880059432077581579077032489542498670786467233642033065223057358259513569179922535703485041990898792383469721911403626301240563370669099916737616226109841311051768107772332168289013763127402676949641918130134825499134416278563034140826626430507287008133359605418906746647410468694377848269245705215349976665891496379356507597627687178407369366043083137494690786352918063211166832810448541348139584127691893809595664195297096455762043505441384599570558345944663193459131448667857746543903950341932454489610907123046784060971993955134667717784572753531844125061779347718419132394340878637383998027793619846582100934691077670571104393881550709124384608461410151793041379277200139177602909761243630901121950861401374408009014944865460874075815562330116001646440310027731132644923161387893323357815048380285340176064801477016219147386377330615854466646689537148936444847084009818381584385863635512614449957500785575748614011696386934403273542038753445144848923949992122807710260608320242709768850927521768048095144030850511745481089774692344191963760461245751168241406164899308055639387483203492100005570341336847044126577484893125706892516351346890340983014537443758986189909165936081140023596810288802315798763685388166035643876604532307648724005387126928661410940322873718903503038343213275997591789174279537499332162023338416259954042564853358841782069449939710024328517445138923100345950173209273762894818320639802731889950264992942572294418433683701737248639118641768774925367827019212096505937438383709684888798493276102169679167851842868194050351275208924196520591653317639745037449810548409022447991561051287208210378948159592024380082761940059289801856428171049070027694567005900676374602527914836718163015233188144938835211402174760398985869070211787105053795124085557796735589466849133669897088873351806373066132691338923911802182424301283458759496057215419972518203005234039499254278175814338778296256861099670287208117521687830966596344265990285398844747461099761042761145166331060653706854879431333982922653739256843211546074527676591477237270845068695003830628075964203500943993011309725906733544079750468540506619748955663671762436524387233227775235184004800440526006974412235203277298287384827325679449816302417612904681285611634333307044025314627889212202835790266815169434001355373941141192461234756868592485642752600430336494419868032133517747677574583249890245982081811798787933982301376982978077852612852756868268551152774059787162427387755983314863330548778855912373585799525844804271802231948872099386651976548528828574426308783098709460985775684801789956253008592239395437149763697504734683406075367555240813398186761345137349452460886806040075350832345305924615504482406887321341532195560858167727650844135830989273362481322386644657023336016664461915154203361822003796320646359921550908899880748102047668053261012701073570068596994996991980182206463045160831410545355675758316457111119571689874372717217697663537233889923255056478432348633923093667047024688059767827065218404206387960008395941194072477597349538835787784800147374239712711855833118349660023602457335273307026874436963501979426786140696334604097736632616756506885868160182071402003621183107972354425240757081613327003521722232179370026343653719324600415379329455567009729635026163566181434794405114592633430590370582986549271629431026909889127346152694091877540007630332827187288482659249547920128796610155919067589262426070608951117499951842875013679053654647321371673661768981864989148794540959378427304174397080939277690306431295801060694089876301396145892624740907537632297169075602567648426136267973583857839599850641901522578724401328746857478096555986880104125161843958136083228367651618715006039567310642414167731982001711106113029559074821875130581723885972660950846537840476009604505705050999493870507692599645710829602923575255764657695261939342939676661641979377404221773401414633294514583146993384817546223598751784371529587218068815223518466817784108284475580023431599494590755644765258372839372741687757558753756876459315360842277928370463807687101482947197134144396608188559851014786892598426019770978651270812882909115986367116084793529533259432030685815255298961090116459173182325866676539316638501914324173689541263681861917835177725913335910844337165169009209035985327486532240300765374351502061852834408916114382173346791028244313426172379173171211833545456399614834305436399483626811454833283780044615196388743939504313473496850512922275476356537106251951812579753693788586442925070372748039278029517468907208596189506127551117966074925507104429264925374682862043906801378856974098633479357321869050740084757389330039077913529429300901591166466090147143586363809790538433863102902026063952619759213089236862367158197839303441516362577924539353372716063254923447875101906533435424225886271017729475821068454377298022873916677407917974664863439174794480443520063247748063825336134883803244414806020788668783662160654793273536733077481556880322040265296136729073784347760996938803728761348146224394178012814530576626057847269218786497074827175111686237841037634755302570758659461960137664949504152382075072550417081121429905072681428095094103089681123187541088595125267140396980567946692304129298495976437043252287708710500553100565653635321958747026371512259900632884846720727299646247251953748604841986403458739544713102898804883728829075608745681684826351178328852270721365712313297865217691287997444276366510184093418953284087783387853823172480790743057762318748850608280910945568093269596388141916679607388896991371496132010135348292457678267396222889339740831114339833631927863256473990259917710389612429527268147122860664521468230041808615546417168421870258985403334949784947384590835829325024083487899552651633919819305829402850573105967065062965195291196238210736422004778197378872856546899011231307511426882220578775388157052318046176973689450371322386159980155510794032697822560543705807886927738440950192275268570803550165582039864037422084090047792557235640657117474509175681155492560960629632562878173060370383549729865862112783102457203277553267856585276061214398380379976554565464233694760598219731084328025525310195995795352702745438188434746207955619679329314278107217056569590903387159386233006930966442551945777117263594736756972307450327072014172351284501119339276156881634224760876732351504000814885555086302115867800884603281495290346209525360140934522945111359844523436200223481523373047648057730720597398902327737279500388508792382565874626078652862050154004802980607654653812117954984408096337653376348896769504335567976247591302541947659404135552388221030572531523346475883370575324672974677582889299784596154085225807643369469638427569634302637528673058454370247353722230998023980145402297702674541707249996186858233178443417132165485345572835044310946071355711879772361679787953348899727097775701113041651287159020084066688545832028152611532091829547230966039293828394469765433688722700348788264173506509754296743913429150798048163922022014210099434181203173275524645236755028318888308794875998735172433423085594536418976306788412111154690204199810301100299623952366440463209430488024026089912316201133046630769969905540651898071143878189916586810399947490180207387818673855230148609993869756333499554245212560939733701462203762666792714055102476781524998068291322876923605880042192929197927711748628504253103425843137225069328323525691182142716213512042731654433843206684352381531462381856981002147305399541845729698989601821881479198281504765356229874811650616998818383741691508347814242950637889618382510852175855187501081388193631743663624207296721767297387934780369458435556791272532832528333727164913909435228144513224629255669382633422803229455168534474935039503776387059369203243450496822289694107707788140118132520987424330257726477269341114377441943323766824265099661336315418124018789475398540856333997558514450221027427864791244343644166269744650797225121270965174756910987801308833562850516737501503111409536008757479322879742762644806911836419555329569883235227506802849284998631174246033649349637564869030517790853069533432171010689165217913078173984299350947491240501139513638122724148679133785789746156934085534906762466431778112015846565784330825036665692609725431893707959693455208914853163126930922868117685386008000741876398043459629556826322060733190182069129171457565630419015164432032883926477279284628143857025021507683445353346850507527116038368159241793376255124277497541080263272064127430107008666677784293842317160045460668789406328906035280069222049573493959854057228526636130964753430630062429286799784116036491521563051779526149607615194660796950689716423198346934796628120088936257393741921901448662084157940109501984925569036833056137418389026877021171641419087542197051165447430490548774615295079302296069385525129365055067467119096380639869370900681794409429300601732875828977296146823958498411736652723268820230514210458253119299079612673427283665472345639565572320860311099304102110378122977265619087184033888422168368927954521601462527541636142754532570000723789701613875448623758579647633894273138073273711251401867366828002023982570531501287007849766563324102803542748876636747482898254108369553752594589186476822600282439921523553634820434395907836510529292200970967769716023813169198945098747706700834321563355683292785380717262416088372558168186369488896754400678861263736383943848565634522935298723463057142475449352913053680679893865672814927687182557801137503363130936036848738890577587127044436124579948264697689855503512708138328406042131820059439443647333289517045335118046587999562492644215505666240390817248450254436073884251666811853808615816994210050372841226907987456522341187224384448892859765250827949561062229092570137629346131539354927328674826673425142794405319357276320470081334106274683126709771712949765476098016175512904690741842565227017685814762599293131696002178276123735497131739373668325196602316428612990517133370936763389087588150023473926563219715366012853684211822802149613672404825973195974844103965223022065559096428356249428606452613761388267112759584155105199534084452123428264145785093757715229951450507222431379507946480194750601502117514811357193692036714564879608568977304515325047941564461822695180737707762111001035058968790618523543031585350606399916947547029946332010837599466563711143624764241993725203824094058206324419741964329944257324469028449348162294429734383322049090997128938427031251316276691066501035639935604326199908742308971897318100208706663648812100641009738422769880481925664910246124814007474305883814131142098172636482758638921687958480079988331770283174838905089566498878870510269923770534297226438883787197318173388274557580079833650407540052460738139296519060333111804233386911968287531482529801708304255655190019996654983134590521488640825041604705400905060801270960295460926772092007066565733574888616560536017927837688190432221608765973422194105282366323057384561096994364424025402128988322091484701283180911151370509811405459228568985321939575527664350570177514374052187557525237953504153628582352506561737292226168460108613929659033907590265988998450307263438853524975126547031189273754097519635760264879992415256938751105703646799823677124901438932172381473933212401279339842292907680127192362806685729525327322858672062283367796935762608880213550618015570683500532470739665540274023129219878495909468412303593274342480672048453944973778343491036422649854086007957363969875112223678961148523173073611364963885362939634170543210654902543756466100602397551356024506104148264669955666125903982471772966434547076519393279345237038949181670613178797654091391816132968007781423286253432653093877747814957869181940585392177503442221657775457992075281357342517989536896328119201730236854851994184889792326284151465198867603184748511660675544187597750703445206149405553301343695788233548405495307460745631215961186690634602476301280078790494050811259998816148584396718648123418581471233525851806175937936879553436359524414254636920721365857502203307567268771078885605146661737025713289465114849254599822826724973465710497646119465480889956003410388061228127391745173445481724993018935271037549098115154886696338382763689035774973458522587769825920429761477398046889357050420491301821162793722466085614733849622174100000738442323149552164151296698706162135287412492933468878647972787510912751888692518053202094420353036381747103730753083955129725786177825074706602612749122514547953208515798697797541834323012935055737083773991474056319168605942735632481734139344441826194823829557515414777725813446816609094784745641365626265174300870221585424066994221711095954766789829638617163735362009129691719153590062598192968523062493774856528540658412567695326695321898852742657882299055392680562075062955770831127393884571055703812477253779943415048661406203935359572311233349257449613214669838246470965134076613765262054902839224715978286312129948086851150498697528383704565157520886710556157959007830965572318384519407492283636904304022034805920072535625474504293816727349824602032076044737774292162290689265105887888820834028316549614134359717427242403362384347594709531040507329153117994537723254140840051225528317734006492077977510935766164578119314024141772496147487531026711734034880642404659409851195963040424656418547261111725503671695532336560072697313516582000083244265382760185721992328048739586949652080105314579937789806184273720628277484570763468192798398211630285684365083222091207063023343187216709792377891925746170484465792017202278356980413638013268091550590377801951979867111977825205173568302064169108720919339231201685764429069785543673184483298051696182318947700609313073592115533220562645640948904481996381261499175362693115193428264246413448700294654765716250873100810330475908671801485542763192957804366726397205292006681035962724604144171947627957969821883729992445695679966514573200854069589544314886637557395347495906701197008848614016285093803427910249420890050866526906203303561972338463813773614917379662392265159561413247107872506793801888718853974269588911821509998514028795017265261918382869498957984514493760065242283334709325246817462185439674532951861608314573510299630218603670635649887125497761405414557267326858970260366643337422810361072666004710014122703670633114468856660798713617329761194829717553398308994254420600701332087574977439936289241445617449190651253499262763236957230691367342640584814079747994655585442226448042379637007947951150611089521139590201903525127195950027434595974238834248387225353836517873361796147510964516979517218834267935619672718100891705062024551162640398237663737478516659488122377514964533977998974581955532525502317961875610995041849879115046798802142709616686239205687222396699680747112874550719669591234147314255890949459530731135921429609184023033455523649605025796971362121140404735330209546772938005159092249798280168393674682313022139841020904227163730630944521293297800897488908436754460523506972242364774815383016676887537420682517118669548936327860206547715816195729957712938210854046082226145959820796348467849589964898328524409177155091853496992719471495083915498478646178039377319036321199959648625520278380740726190681370516903362094568535985333866637013755424346315298981398518028928919601542972880990788142041148744999193954339956307637052212285713723454813213579983663876014534078523479454436144381744435598867180318057925872191113034245342385593789458590466397990940970126420592295227709396362512593489956854630936192510897058391862690536678957171195935157722434924973103314551208193259758786691606003118329497459906425609652114532319992152168426861188122908932394944571749058280302566737933479710755676322758718996855606005296062900582633216834984665693917283525913791298593768301354340124191617385366635085975770571514484764038553920268542401718119814464728419171561117077056206633499231372304719467106409052334936560264088461665211442678159630714621435789515790605324359740352939842682756225513866264410197332713769987354925491816050971927016007979714991606911647532153868270938885438318506136545005357675247714497358642095722543916831011499386231443891248747549801722101038114779579428496405126724417401686126590046689686058101040253909930979288652862093315446429519931778341566710370280499110281528549634708883561500674286504398452842591425012556101780355610367436064958633487548323133474633117361633903865858316032241374182528819625992699556474819030199932316963513350816209386257287038696554884457955590834899808416842299248592478119351155118653661017335923806227350723425875098726036994390082358884296644561038741925938380740664363035347814543092902222685004491350470994607944172187400796961314958434661651931310985875447577484169716904051925627030683539873370442543328046981962680631225260813993327991876072382344723723888453539882827478933141288395773006706514606923331988309901683866722173814186114212545529668559080911620902630697710441288160559537604060439987996863497060352028676331886940771726466709758350654569597376062708501343857879952122599770004620332841804287082769181480971671871877299924314337781770926407715689081841608635683926157835465140553194493396305125866907632681440668849816638898662286994530070595757785743090173934217617255442386741794262742603569634264450642554390726835408122034258805595225795701669606487056337558122261849008136387634086085020972898014955239705171245367347257597009562619449074858338930720308698701481227691088628482133873210248943177871943429817845449355728934811948960033815998413285843135879082208899129234453098549405082694417429536588426138589030168636528205945257431416061560829318705703668248178150393385909370484095258360623541262363506022627784906030987695696366388221382280996952152517922149676366159228329298265460504345484921349010450223052225014694793554611994427823997679521634967065867652553566534964658002954415415785433494358067018235936902945790400193557480292390538253959113886926711984513981669266294188345229549333248406886945970624443013842374467798537212854932112078837413659286739931721473384404077864264277693768112730051188932880321275175639434221451939985181720086815081196814161172329249913801814835395314095934391387179439427015608086501939006142338631288559172204540427345545170128610815012922411453075269793286231947997585844034687951064509809690756494523019941488049481556629056602852655126321947633768757015370892158381149187795890911842934484218228533966906826941803027806083128664369092470494854931371324643921710858951699676507704755209870788777525029547853619415067615516144465114635623042820784473125093650544878134975121398592878042809860061298026348623214832653379260540282742480776736631012501115598064477189601960529463505117008740231857610716147642040144054056872476149011354862529639802813478816206987587958226010554283380310548160507011783762965637879016722106124183178875069150203975192611879358147109931227757942061115046936216321450270131931019156277496947026584207710495896931354196247540875073039525939115484649760146293852253096714293834824829875586993206669707260873265157973399024159609268944194938042948224650201745192181353711729836897578545908557001749512655089680439390610400296944231130015697802606651152004352513970999311523903753658809200885416804961356196266671319990696871471410363346818025842594842361292953719135841164241502528917104405692453636245316569569726330518177889764174850420331179732882861539172105652019593040903576603343036272719019625997845366911181429136095501775792157787519992508040527660771459155139578123705448429128756130551982973515466255317627429184138505834150125943295022244072237619653897863217326006385891402458189318421266213332285936708214125827281911414501052718523041671246590880441220566824375905632973379827618016873110226761552133305624177215305534426368892011661893450336840381554287013637454590420178189771459912812816483429836626464894941433111213552960017674511663730261095942819571584443451419665522830287384629501755130134739556989220210325084527987646232784078442177472066465618346334593324048947175914558260476149689156572963185860286524069808557518693169305312398055833290871272276046687457843421612213049032660914117337854922742896903730381268086412467192575953120180292875012908220058515461915957376533995455573605348853160800898497597661727610190529264807466373766073976636153255118936805223584212826722624100073248026937545667186200929340311294929250119149293471940562873679534691069155006999927951963095538109391625788289140944374743141626178549406672623198455390653594655522226911179798034740629147482138749313404584594800308290540965526162928937459499799280705264620356805526004961478993061353687764379249243296174470584069657092237581317001572575780344129952399950040411879499219639563044552464349687329909037956957231760871749155623994233140194789049113559833724347298043107513412784331114159289647926493925672503218921525453795957593765025449768266897309903326625215860008013727344998731387197485787937532611100665984333069302789330193610868909682398575129349965224101880167949983070076953495381296385484382135979159249686162450677142283083969876078054700602263350676615793639167727202253978160409371176403771191464423368576863582593947035571004961765121650529070208894963331824747882022716617423756802391676645451692993671755072764947997009834670964200276627727001414348843021739571905639493604388708549701590775687143733442280764409781046431695417406975103451002990544185096661914466799795230322535426461302228591589557733596084295755593412499698223473079533621166140910779454164034121322850113131981196664198182920890089983295607814853212719451883461362794433952227051159860435528384779062586302966264991959762191232017043527990840148130657610726094324351671820758362950198146088798261186009539773382801687515325666131544148425635911262405629071859461869267309677845306732993095311949648530957651360876922981331846256262799901731198256136736238875381416220263453074430920494574957366663988215805981087609910203202075200938128133054079597016043444686636374713308180945830295307360663535414142857092496011716487409505347742670778359873116463834027084470439779533510996738089283607605924584734472921898303626907735888900982325128890896707441149032544532072551162784347181983950243812186177686197833311930091586553680371072593415641918824035020508738978009980832412325243632759693266617908446027855129260446568505336846158256013280808832308429368920903838938680879293368436605427642293043725873786203150989656901648723305057342488735172122073703836304376997483237747010579792345001035129350046662419539236673906805630275460229879327456530584548041319759555405891429238677551381601714302021405901766165172594224521862114758412500097751819791899223627585566823007768715876033318530927672792587017335926974824016966378207303686840617521676932950143266183462482326160361588835152346508381427275658313139065153168161150567595973724778054461281168480641875115841116720232703281391986496073158196738582933882938415180339242583299097923198958318384429343207063024819353338786130368610132574081329195115362861995998383589750377516364490036744440599116198042826293175648908204559703571503536658163049250028114292098944386505916954507680925457505737853468044448051036293629721794825517872037359956985004027440490910870147112932134729699182984068248982539328167915083070671549915137013743472004852177965474077604772993312681661818976094059245509107687705474017451780394206167228754834722038580790191501221774385258423696497342796998721846910609253907979112373643455429809990869942968010862958830428423518525809622354938639348120597899586273507007299998698102315074456436458562035162940778417015006694230911247180995055008930663109761650078512960237656424543616819046856735542191809816382547533819689641487875642109549447388388560323009406825700793982031400341060697531570640976158417474536014232741366781994761801721755849394225999160354797553113636661548604418154630584351534569824444333119290482929560042587755199753523046912409870904291804261119296611423280260645506319662442927402401019174516393811623634891219661001616540557943014161515007072265444097688053238928413239720878116798928114292540420602956574516469753995039658995075085591672460842394217795571979685020135118037075013401346189033834181514729826754025364027052450322083119445426374427498735366325206050651957347207941416099754500462633137563761241691372607967339285441707328358743675452029301943081573726641576461148612239721012774443424569097201387045596382740081044018762021756672819811020969107807233668864580043110048113831213782919543381368178565027623750465968094086247819319507132623049001557399155321453418516249826150764009035315502929632643561066684200469363154685073301964079016942267953986424256831400713601686505647356435224840038456255514845356894856719148046718988363864310261088014724444099231260376079824398945608675181763940260637816516526532479662008919505372836431537891382280473117981620099607927772781609969777969593570051745438425460131949808438389145110262564590006179729883319137582718064460354322642010118823556275540764880361461798016682112857803325315762954593582209867689597115336843813173536928243994328481521988863034184238183021117489873504471668426899913856722323571621420599167902138649465508208893629444316799770061945783845946315617198911078322632768465595354382507202832118772719642095874102894680215830366727985517399918058479864901826243860195182570475352955919891886396497068641439410017647539622231955024995089654483683226210081190427138435997443758834731399815685084081037244688026226753899350362768026893103787546977990350556470758935255285400017506783325375877373994042642932318694447518994925724239239698458282856469874477193533851591105766523437664779944272614938988399855217297433592978456959409863253552908335368679757909445368027250128983773014778475951592853027373841210622671267837142328245906865494517794810169725541836364014808176223685535438302240286256322368739104284359109195033932814347196027793342838251325833054964779237289931765784022341260444686901579563852867844559381311053975456221721445247176335212052877958907060589258724664754288845451014899256300900995294621575237977387019409240664196659288713043108493274634111998615636412924360914978939551889493917578154610850311411729641467675924376152766309389589672134343140639859510450754713103725978318191808840364035202370940954159628764116674960674561295855886670278537276453849394953414713868760598915406544469263819145609499328482450827493515014155531209670386794021717730132581908614432066529862102480029054189972725999713293575964921899021923044507190905525968068745244884285363076129106641447057861412572777090707145103212215152257435062325586604026246394425364292160586411097872463491417007976868050227381073918482871253183283522337903635580739640154691244523268368837335458619639040320460631373005400257988117537281545060551795346673639092548744462407104153096574919281892568310595489541669900150855312306096829862911490285143626334232403555218684420622663332578070747401705054999751378632778664146728370720788517594528805228033205223554141916674121592365765252217284164494107176428775683211787076941164905086561729361182341421401530195566877083685618967263698054423569030735298195802862716443482829646054460982555933383626644015676005835135049167970691218792720947099511586535395037237726718503813532862821942568692598845219802638143635335920819257523822805082893892212058161913193003983294104092130191858620017166085647642508558565473305311884881513054346493832472254849857672288738982541498183549316299130521553919565577833805710443390976553533014775844580225069566869692548104483540278544699697470996885524188803276052377713000612498502129921855742792251526129455315911725645053588997788882685286988662338492522908413677406935994405057757705039177776912827047348531132582869616975351969146827544661905749812453506852003257180610854363534407776591140998510137497383477231321287529677609689922240064564802472353263790320709003809407493391686222827976017016548024462126389963062771563611697916962216430723625879837211998400293870839985611987247153319092889981122154101301371029560656613430860726826631427122306276838327906404873511334633064729764123910680009901744674008429515344628767677651953243669362441666045485098905400601294049394507633936226526723768609430354309558068400497621833599613822536206965096460352780368761481333859495056638418835466808501273237898266649715278324479816993137113197713510282140767201595594365421145173894751974141028498720508205381250478789268617990852654505264277175346762890618585617756733866646012207695656023412671377535048230758296173900726615748206663440694959094383775888619312603158784067466691980329494178689311973294515932079220964952226527096802089394936421709005605516836961449488249122447375693270956459910372202093149064418253972398760495654786255290947496635263896145898509645805025882851972896174166106732418574673228557646401523630326196241015581520821597426254102694679018180056458775417370341291543891612036196674371215523203313474659058171864293013609339372080112538585502488383511903901075339860241446888487725974391037858122184185479903798088846637684956670295429722595884172211557488715544000370065122878016698802783268164517045624141541023336828349115114468137236155478273934651604472268537789234649979721594736702801652037610412096427997109531251467309979953026341010309422422714452838278002673392952429573593976342375046825445716636612946090677998789948580127236446935532415463107977035251332053810116465508775898845647725629544915281120210553656564791118905814281537585184290090324080730039354216242867382624033105657455562332612804721217797177730091998780356622342013526307784379562632279014807718565575990371272221935148653405337626580855566689960868976921825326222489392577018096779627909102075085674033404518519982838374663617277435160248328670345286767840558182526428653231171172277730927440551660108097225029010784368818410239505243561415419997808045708728306473897037547385382508535050023075844434478680882554524945303062776291736676116478395647884149644095120532224363574877784627133678123178097954311059639477107953112827313934792828932023034114796764364618533542466515835708581993758937546937404219283276814045850447386430486141279885044475921858051478022906524576286534095537302023911411194932898264061866672578712021039271280841791491108558590308054088280432513949652981982610380472910807586200671740135521577259430462067888771153966881726025434913711135644754315465575091499854700948045216170694567385817058023104123468713816038338317054304011224070193361546205178612993056463622791983905376026021724269805348967700202820399693102727459054309501138034101466626251411209455533049835427202049370815335311309889616227342682161829961247503157039866851922072916337990166269064304985856749206115961038066047010503467487744210313674658895184766300927080583717020257190363313771294516381388936629739356652177859059480372579346581356137171963529749398182971602328435598009421716860821594558729050787998267378223884289586930122241696825268978315269681122321279227583753207187662738426946674863641758188336483251914365221961283108136552601379549078839116087592660349431689758923549221302558626463851259688139769304738987068235346577243465004476635759775569972605268938088823339789849994785731788815719156757046910508027225424140704921900751068132278634662140579293790885082915482894639411328292079414853664786399558862797716449744563741801095593401477024494818013664461269223710154400369967644183986504251266900504323636664980950248599450403210859271984141338914064710103831550464815966935754513344634546454931257870706223656988493250557469240106115483755885573780862688660889105420872340881277513415711412659178092672294125940113772480849879632901245846027558914383182530109570120873251445431358134039249193519651269056428548198458365572527474897654438277239355575410074426649509273582342887937223320241801636830563782729385385485923074337490754963134567744404506129454365692997859724046013262041110352030974501230586586311289923511615253343413244347045320771878960046048197605981433338803686474731474666314338874441530937003112081933193504306639563284897892850854997489878296498837462142851121960192177174589768369601384985337104290818087357786958097808299543308266051287761887469248430643657196839358375053230342270502885781346019686636271957446798909079622620550558686120328808635371071710630802279575564609443747807282101140150357600899329874117248747655201770987853249307444687929458071943542594245803113498695604786288667585420711549913137513595996783259184163266244015413035645151162089631087388306964108541524094238615826245887602640144664843668182800110619337025791264723693142887921317233576398145950542875648810820530060262940820693626265420886132581997708156676711320893948100883136686162033264986940751574898351877022332851329125952920296695612520409477946990705904732754068209693509535846057711392341229353339346365413170652037642205854293819476471856870765831985212821004876920340381711230723383367903539080723887506382056298956062822583305782321433974317963898932085704648999987125668727772937888344165132707871136673656279689667076918045805299517735040439998847799681202276215219301694020757421024589485189973080879710434648992416828323343767231774757510258585493956273649771785572706613863651040003042375382335325164917107382450762006132403376082422355189054307556872299746406530458819250591681336243589773504078328679106820147640247258106063381247754644595871220990669090612489909297159639002829102451972535695456170266881657955831835171030780656527423966071987477547034671886046962393162929601116101290874847549887124824904612972330842003327280297470550332358302323106456925504735272116344735297448122386321215324381756022357384935208458357499902319248339107684335257819571146894153429533075834428710897888770780264401903764185080279194924477777442255522877886556901958435566257404532082263354477573524821383889967361742791703167982509161706509576509905667226412549288631882693975336153617125966645291183787691661946944409657598158623640218445177251648329012782643864798242092033922553284845573750717719534158101638665410671140711397760996796884928946634238209635025021365187587581168554450356389014928086355880019843075648378917959786561229712385175939278318187371421666936145660890986426613844463065385194364507320416564381168142083498225986179598021301322753065928354885870150031521975408738670610926355478350276600933061102522192337743705423123782625830042393876967788481395529180321455135896815129547665539759701527290423504796490329840932307406105936852038550833491141500351652923603643487973443128221866998963133966696733245252094527205193987455454736275065372633447420251814320709970084835378454689310890589658179638656522536734250098483702924823029958562003288233659559904370543240285221319275961594377678347069304329504911955522912200570881468010784880366885386426474761909576339640466435639282694151279797228117890427756991627638426349838293304077149191190744679540751769022335424888422143447317617147963318946192773045498956220150463678877827508804309971212886231174298113409051104517719343596899915126049756989301011149201458070572233350436519570942563160328929185289792887711534573018079255744810732732754490357641006459170838050677952255426297520716509289924216240506764331598274032902841366513671859782981241597765196166745605024167141985727080938500995513271232491805997131596448263265974965364316571034191885877893686601392153425639434398679854771947859674629101355359654131246431940382657297354683699597294544538644207162452224485149497068726972012485658460707690202656237527483726568893554229323299061509753252108557596121885443267371984486083422732410233768723912037698680487052996284063735566080038564650842551379621679841565407599689787353735795167186387587638264468724581137536653116985234771077523580329128672467327287973115780617007705728845328092159411635501692353186658630711789142650914177979877708663598991809516365207429373628091684622121122213774425203911884344260009964955456231385977201352074720733719474598306077517973181730555968701949703723260976113436194424123394160761920803642795069673572799737023722769172947512685936765843468428399901777877342511658178117874295106584256358292736672211664659325064402795749293782643736419350681931409707898097879034572901386495960699458906803136900868892671432914180633446987632795409893065112492869939401028037803030682317221916948353933735241511736082868903741332304870362218368366743465295802646243552665795078131360062702145176532817474103466948161798247014552957315661648726278510535085471765824223933355042479313869020916091075518526135718437783942623428097567922038053404714478238208842007306898110659621964968929205469629115296124544010526850423347477606590964195838131048282335372627158328772675349129027996243812531105959579289636977650961465684630628787481320228557949686597364658725845523345172953316301347062844424134844310709648581924005972448569379331181242467010584422337424018154568617517538230747812871758794046417965950694465303309887867128632086703477935976831467015530618842327946056953210309648106574126835131135016474255105380069374055680033133302180910308195427716581111295508043807461031355531177526359401266862150053797092958542914047278192325293830474157444427007480755615392923274731201529941951601762277772573953866126578563857350963777632099975897175806324890954254145510313728432160230803426012198106524435443753335468191349731274303498447865500180296849454996936302976084490021659942744994952965028494270853405684776919701658455911369921372978730437808524707829158757140466919560789664598232162259975518282354227878440662507543257757674572379540871266411235118644942675694795344526672544374575070579573427547698176080498370649043505699061523238620952843891470574953408667491604777190543127664433530492006308866743557987154390961244595856951118918722852791025394527397200335205333322487499059153800657952668450980253586372149354702720513602990891387872516850753676759011608924497054503206929262126721890005913289361053851691319561617152232721677172637462738340040655137285195355101885013907694634563129319089882790166282800837621027035589436995173492610788390060689951339785042979673364093321911082839941596613910322702497763016154105936525099708326773240940456431905232931412634908050431901743563297327474153561097903407723002220289171180129093157387275144849561782744747236361459461608140053345312736479202677482895959405688733188602162858463427349835416351423404431967618584890972760609206713335963248058902687514967559763901849004311693892719116284209184989900356590646380355875546369346604965889977380495168295512323477436020095908808992735017102472632230365492262400288530909195434093561809156053010624740146728194395844416197265328656831696165133903480190761969900551467185114622101356166339917778868618162383451417971222312753597221811597247832775012842985984088335520015474885364867075294864986229237417421196434615271169384015934810107247443578191661924773474744875766033187014418500370068446377927749649625632099462694726004285162887119737935522980841422520276640673013981382340465875091890779424706075357872859028698143986602084402451930211823580634047123665375126432404806876266523733346991696901128069365036656142032156950210199202389477682293333925850572572911657054984890473705821727378280674165117855828081420770575439221885376452756264130710749519069506732518135155628454767433808142458770528740425934310562986639424762262178008314453087505102357250491430830948852671442163273106520564912962358184261708163429230748805622687828410905260069189888962061839219525185305625865302831254900997521831749177793862869147077109520254124610089414756461161122203053072681520095008818797705545848790148527985093228958532753519345562567067256987689630297234682582685785649958380868179678224529732793818101447795196151132655387790762878879937847445723986545958058251185964597887436853648091534998291178815131357254761308289919064138166972905747419618159059694660004986623175836509643942758260386792894251552797382958000178162033919006517241412159112480385108567888928159530582957130620218207815189183042099549966943006464418600454161993946541967843868925428979450732276190696235475407119074785969878837437190236307039782390346434675993307450178447174852299144918409422502638578168928720945715684434124751250057344029767418788899933860476136855177684403046206296263244765661800903575739757663716708784798149130271559441282047882881787345767055847596498721396444762971861288257114301057768621800241462672728639101382453986874260687010016683669854776592273596806140006768130088149111995535235061020980361833603538864307721045405480209073224918323733806934118801388934247534024379908936818974889989917635912110743232021001865382950476019266194978240455457356473547166617749108984842300009336554818764375021155883824989333543625810304846778446765420513073077523379326118681483714143798688429375042051580807830453555468073461240415040681619515389564325204116741445564307103581348690010208362715648692618587961584917696036682656114324243181582244911262018366393011993889140391031132881701845932405064181294126777945409367466883991968742301275060938950346134208726609574426807429767822755282426620493463690432521035566447307763185740729426770511519683141620179416710346514851426116434115564518158267652372805061250225062496034881556745440391954233414401056558073805674234082197484545908775292757448609511619323515265861598006866049601038361260212901266652494745698010237212221275838852053333921018193972475886225481348221625086308041526676927110531681288550709170521562587772825173088802661197902567903746142748425878884636595932961475990099999101042770944575340792526854278569103952898514135638950164879479710697738338130012590071857381584888839984790083203738152497556985928229602077126660354320156490513493868197945764784160759582838600417329163420979478373928229735179676828438838678937738018858300046495230413558849043870298794120474764161216773492419794178275885587418307548300583046802740609664173469770793065758986333567052023389239059462659014491205563488288066461191912892056426067908114694485752932961766813540459874858464054971448897827794955568276447657694792952626682164483391229666421143119723722596489813773494739305696848888592380600558772718972518098187327971572483214833106055424005410821528341356503925744829627162052187234129008920556402738453629869111378431234852617593589196765578550060473244724461556039555296811554606646717206932492501855919277664391349405384951981242796957222707759721558569528759848379300871186713861739252472225330994607175640600712983748020014207398704322622636751806766045154641063441067008837865477256320557104834090470150419745929131530065920292346847441452870561221813842426268593953593356883317291284159313898328880285609528410586851155861399499967941170534349327631592045876835793072077829703252244778643127944874114493898314857912641890199856745584875703517045646226312159771049874436148281465287811235225181559216856307054482344154021278252945534380104260511023236234613288393294363012519446164399210420816715795749067172811782368265524305953377120448834199445483389707402069080897070275114893770167113873752722707266686048593180951216247981559119778134059622425779590056004184841421376120636916521430406980190891738767677512181086463929848335065957154552825184870007180586013247656459381356223242966182558310088445074835527372893717140838094888758930965894590512168301797306223202815487389240138182724610433249542242969876870149228106471824201650335048367850983854850422675501586874059771940455452218495637567526647633040205373570282832578696354394192052162626369083189008622200179729702031336907890777384358150864358931979738105898004717444534608388890229071654512664141437365816793637575604056260701286963297398583464842787658973626369927895569505308511438323299068118263580736521811597158297323905726191241808407751784261742387996128203256030404187130201070929266859509029822651041753878633886269118631236984454487824306190988995409432508642707066154826101255305153356042534968211537866713323893978607711917966187557568420558588145439932998244657631798853159067321591589127322964677541599064137839264828006136162989391134388742090942955347819910849926983821289530302250281742400732029774456575526059180407442638802011311752183210674964500622690888035000682478310772835744400239322831034855906718866891775166430524102531657523841340840080298092780770095101235180851371969242114725184285752667364763610251387160045879999016438189233014497023092426476788166952991618240224588919855663509676464857228454855235840184793310424120143431903990961441034743588057892420862035067100589524517451635161364498826350590567058388497816389082068058976731578561303416334599193656669702068211097009964271858468867122677009492872608172916270400051056471534022454977038510534282273424742024586598873338515622876031676688287811050794100448422713401089120166894539519158788474732397851908103250607690186588098165911463557959632971827594863154930062072100746534539047604535840650603907006228021205481297322155196419680192816709975032739332068818607296002356175844086216561528903966723378815024055552721834349493140066125333692037880620451764031641268681853963698442824629773928113603248052899208460110223168012833494975473962720132633409178891953957461715957632669089301647560198700292847919862400909168241820691869980485185078850087356517377294032258780641341218734326567875973731063690471238687031219263613775492969580719735729351207297466164473832410586583807494182033809152202237587585232979140369311756596121193186774721955611240598215871791704084082251271108838896501021741816680807678821570107966010047354620011358697873883281197153505604759288270375415577731442081533006456934235364832344890549148932983094847809029953786605984471073608009341756423936361735743854621481735187204598620680094162898941505637275541904840671585242141156916204111278052782419592431557870781724426308756654105387010612958165744410769330998284200551403847209653570891511358407994779719067633189202360194294915701284790892664719953073275026586615503036709560285509471652299958462960703292546141790276225183956665155118301952660335868057364567003033510483498463612407437964648760342485758601899587697200470559060291150818567232775618456056370704548800255231668226435835651842952549900563604709361845519260508459552415662470771088348433584986342668965406295243123323086278289928638211688190617585422250092450306383907542476258914084339619693486190169737576623795815627174511194250890588997965686787276409476680919765884786816109776925268997504544725352119083044545536413548441944130562087993955744032896124985566537236769531434476609976439535706465653511107078947738992541433634464391025845081653139901693737362285702522824323813426966110006863157198896260918861839399709113109365055070042530284680305171996421934205906056771646714406618647755140510454636670744874385779104934064585173639112135926498133331779966787316585914916306160957950127392532981109080994043799426979532303833409379727477982831188561466749834817967166522355128214626969086759872354075245185322232015874702386397384230530310675742441282576492992738167940374943544593268074031946798718441176618446409195663693664156760302401848508013680792254387071412163488095294914729184505522653504542446432982656262028578674976009105102029879202552169643187711673128884358737874766810707680479570115250452922326051708156372910451111048207437347330776865421272169414681917204314759949186390853392884822024527078876277594751010236633866243327894241370207109739850689864802382062590682726447076982468274566404677504576898585620509167532752306392718059775056647206900437532929949778187649953187291231175867356639457375785798540472826901499637982502034571602752533838175272976084064293371316371529409312372536547250402261840634357684188874581613215055246505162224527364729935623371836386120341169707253538714294853860684244942350725108581430885243385103510773942417912908947891521307771292986937554816855358286843363982898404831641610128849938296107776958134798417086533979397131383428195618839795506990913602507143187933375583275974093852594418623928686574482175102823032846206325162358294119250724918636691994092128502289842818748884664660548836810844263516015142130777336526463249706785843279063278324598549270699854003326051281575005927488060306200145357683494722544667254835171844500046134467652316189974804893595076868170816716458125561823441057217898175913791249068619371038783082182724428161784683667815942209434131644661280917876659815426485438034904654496401526677608544691203402412669206812333485408635206859168245814647063176475373368861364646649312175646946743831517942453352421231509758125012074116846470859914121773242245144533018528206063123460234817991743966400987004038695374682040964733924965388207701341180787757437499786818396523250033316340389636054199241609481739694367798537508532732047191095646893372079278984193093026404337165819416205405199439939948689077937786131221981780518820196083355137254786532809321457477886794785560463124865037809395390251548428151734354773904697769710354648822491126049917067441088241185508879380987258118153400474533228371279494604797588282728448486188346462705789094109775854998359733477019190700885343325230091301718782183138284398336701427931930933483257493525629966634425563023020769627218888085862603876733575479075180241411543383198092220369727777462683062272784602358707807666479952585392317920610914383970477316400959338683002781789904267657227174407848899532427828409515104338823922425612630523562303462863272935359359887943086337565518956186164842834734458868249591816397485081843159673754537359390133481332925784355085010327734146291648845580492267204615337666100724623413416917133075501786290709688186337084909992701763511296473604058918570695294199417735039485889858889217601976761574591338788527891565067421931892806543973034918869112602152674819438801532203591598423085743666918449157545194155284016569676228070928692353242897911895629246104301010184616979976103274016481568192332516179189952179172749820905625317246751436700149937806126936418202556240910696796919706613756837804200698997091112775096825136284185458879130994229207145873939538264564474767328280282972839636546017454464346259274886094551346234285067193962094229060288353344488395758045346049093985407978905568744580258308963755274141485307524522551727052778041776490343864427493840666741651605421172292792765548552360155094370804851432729005323421566786917236059346426548253096119522587386280824256301175411172756408134173714339299736602712834045752776704112136612619526498770439618248684558766793305186878331192686630144225750108417824567063212290466754323418891377706329243907269134991705510861016334034839790706871841497431853052391478882814300918135545924814667278216029983069388863632267364403506596601171085713628951059355412852421827381309859176437400631458717203454566403400463506966348860928034761314107602912188066434191550661304823287344980714315179156302384368327933110397561056967458871932142977069184087547260812944215363463391643836463175847909709464708410941618399693815683622652698535858282823932338789451458715319740711729524294336745600261604894169963301195751499418287366523170148018825917983961532411498433201455259483865218565042032475899290562436418110025952362215459613251287538076713450660445235501302729068233384778349862265452733700926498288329514154108890169591528592019429291049539097655458246530697553508344393303635436389457846704480530411495074021549052526603393237547136647907378596761907809110480237120039289439243385999453240126225937652116261072732350931239128298787042126663202356024913958808224207530123205550625971181923564951739693997561726795823352981781644469096211173500105657940408543762592066964117129070650450339891080850058983847998139449899859465887367090004833534730013793150362737031174510590688296069731761928105599748991468074800344168967323919094515282397921989649889532831988224740023698879163847455400712685467856059965986374395201893909380898768604648522214610253827827042787078278203513209614080285876583311823462086734236487270629640479449992830932248891873441558076667630056635028217995198908734811747375351389872324651728918344925280617678819155527802056910717041285293435307415594765607359638332732615019371692590564840713779643799528741364925361350974006497662986522092575523731354111786054757724678357781352270366239975259646042225233151016912872365654859260185015438256285145377142728186766658108460445311972160044439736724709981169384000766606802577995863805940157719986654401370926089626415109866110805588678681644995061440645908927956167984398415970962681457620087203536383715186933193054414222232294991969532424740047756596701224585261837388007409095136429547691724844644490002912304618508181112373928398835456218354823392169782038606506545484066193661974554800191641812173573994265324739329316721882932581347131141570192790605249543296563404113809774558166216831326852944410265443589558834059400891143239449624877907698979864182157291076012429436834810276804668436997712161777869109419113392618034007671103517776341165773852592730892160209715647686111204581253329075255374265499050399088713004470533376827009907636772407012237915997470547418712660670424557352834884709392997695073860500423538244971376656800551231076849323413831844249863067975619758650362172269214713850471672144938013168092710927456891235878478192708464030620448344078618466079142863356746469129068032860512992778749972571327924376167426352804456575873277388071748407913227042988752590177963822474710784038205032321535282563410179377034315868399941242000529589711107999542077474737691432146420596534696228110409179415481667623918021289241003997467659897235264731422564668682986913964942080948078746287586025041607377423145617266870712270730968423139514925904797739628363905932064356983784297131849656934233248356397237674289957318677186311501247264353010582948103352004145056236091221062964771597892828920541667586024234062790386629866835464182710664227308311209234205051053028077058404005791391017992491715689255540205889002395531249502681916489561607399417129278384033489357456342642629858674077940138663119960861711132854727845084378582174327186363007260994105162609560600662999333944091333802011100274985409264394574902986697409565645150883657363689110223832798116709347521043387657148441874890323768338362040925588121349308179133002877280704553031105436163646777575116033007367712866937494772554153539208576141997704312890530297569052405368530256790626939852083660999267796511806831376622573096619422981082341461130662354410902925578203879952390976287003816788301393230367909941165666481250991308212070975297393159257051677187207741069270007536626657720751905457925460025840712916574867261453657155684297425696367621586363809668883524366799294440294992279207822638271163054562254522935548356486994637776064619812928540739611295813741582426441736587000129777823177187851727969547778594766740088734002664237217764418056299369726546625922512705822944867554634449949572640284004797702322548710282032118663693616766121373077287536573954817136701958307374391420625795644460415124125461217844007215327680183581588415776239046498929574857748248780271664293661123199454203884904434636356008693078612841238847178438429853344980051687349632396513496351546277033707356844589593344903542417528514464803633815014961838258842771047487306620949149452478366204194375991459929526580992026449091225716861541150611956886926610350532279933337621210964120529336529308049520021854838041979307397322404006874130105682306668342000624922278195994800117606200497634293460399564994297647595056071440966701298157200687978622788820924355633284545106243234618259831366365388579033686590928095785283031484490818280381177703823725543722115292119477440062409157210782937496226198611360654613423825600222998231456709236063103062223415883674803584093612746815512579760767224805180641451434365953186924590686686223594816446715718583923762141352905083676409143296927638841852938812898664577872754867560292691260010220732648215594240885288805342891007044243472232717567732534644887216318687020876927155508320689840927345012774417628674001557484575699339549433454743312670464536923743395107101095369293219588417171644810933884783227809289402380265971481848758948572811553127898670694361492708801965070477784162492447488412234698480180798630128432462228212055948121717635360028851671235129451324989820232253923417388952016388171855231567191107265212325965362489731480833753757355750724038960155272181397474079590751083198310398508888339672223795224037983996363682993134413745715053579807362125328229345798950386471292310732889299058526560107513100076609949472379203310645987076116829187290841662960402772592233910077501273869437614348416499486408568606362632235380538206333221527879839009772849608305223653284221907345927655837406739705582975420329402937176936305690466936905775437434256454729048939911844073602655428235994894212968509552997776416604774166555804706868424955373232200412692344659766752801467201935671162180296195046427555919157171762666861727163123931849462550383446485204500551695611635857587038419106441837838091612394036993272332535022733751362928106726584384754990547123785348215800138183134667058456986715805992322834178571793710318244039915853775902152957135879632761639564033811980648543520868073044421346046213701726624312535808996645262727461343302686667538559096398059822656684440117082895415918516512476204468501776378000943280755093546051617672028911416022792749252752285811704757849962014203610569415661862718593860367961007211982368926947009200811707361167821015843796699957139678353273241992600731981082279572782892476577931317193147051485607844468587135556500094526064911732425142516894207977469366858979544008417063864929348838968804652644619197306046819147129725001724673817986317771150264045271174938400434769789232884842322509921384508837595453584811302613576179825562211426564476539337077862567682416548243766256054627516063557151414906579310057769004021550285584305860982000317109737072954516612474200522320823480872620978950074075012666058920554847553633803945184873589721645941727448618205736470959293140764635289703655264657714357214587311753570343981869953690347218542770692479206664245843031555188629959300162991833907298870498606680277716064814173756233889650640900992469994986017216940315552749698411257397212801707417640383562527691734791039156873542699084985522921484610150974154516586395732657504470491518724134180084057847332867389061825204309474086534077030661545525039198793826796948254257526367234896953021483224629887641475818659788674083763513143560241045726352430708588205530003276947355484579999334204930725731831843656210619798063287094877390521093848255112523592308086713918360284325874106421014179660219437411384434379643083421283019570914235863026212213687861611147079197064116643055947294142930132147494645527718534093588213597201214003336621138640204820800014996653855843165029785028261993472472957598764073097155490078829745565055020079926915454212409247165760163431439585700197261239202279455049365241521580922601484974230160002900269964732228017874492790588693368377904342845681464825206429035196127538918310265465979184234491879376997913139993064673445151674933218543217753575375481576757836305393123419753852195151725392406546404133683874359289837626285003458244725719568945125719238640506167686742903537559924039553313510284155170735493427351595246601341174280027676408122075802618350273995737741916545921488213444357995505424431291430156467906043038053816123019599716005250415625401632074037632050130613381046923034985023038439609665998154353470772482832444089886034850654820650338050578353983222830956320341564995661149942619968440911698827566587960356775968891659220599489826958637479698414009393738830512691361972096565868327601729201269786055220849362965482110937085512368968859555976311653909725966504765311961943909301630869682427427484249772465147379076751301927551105200819589367223991627818028591618511145479407979791176136145873014552258423868332698640477275427784973407743309941148577262815954047007193609371758491850608783889628671262011565710665339788897517991833171900331280707711755853178841691262912846016017139418982258725811013588496083555669809556736121682804712149676529469211811332831704179941474018920591145159758183662558037987766703890109590584538194487105499601294982483221176748041021897156281321917901064412736300164710451432414611780038331641197408482542373283745244236612154998676313110039224015303398860591660815031840759523343737703691221828988542285781049073421741177512093047249305899266998196383078289429083739718510528622207578802700533001062866635297238397822796498314443708301191009027874398194548827459730576307627588630974129827205082899213141147039034917656134652489475188897157708479757087285560172661662174279701741657914600248061931488363754581338410394950453751138470631381156208671143086937402963180506704508403101232347218137446844645819644350545089918414131121716518479771900738698329901647779574430001234197309304170141062919700475283205238822399225418659948693505397402244821687621904182760143782167801466586823501950745603768526536992503138612956418268136370043172777425751511082677980857085088712908926918837041808832831175942045252405140260075170331944478776298085950487626168237958863775343878931712918882355647767206500064082958611195587334036130993706952728080522686615418789625421221817061061881709053422112087266651970359646029240266394365588774274112462176830540165456291066487993673506730412263444396586612816564129208106195727475726123078166303797634237782673049419585882168068490203041645805511297958091339593634918134469566983311160072417790489731784205955854398254438472784566277034926809513547270498737710565689379350807751193316677154293979685817470145067951484169492572724400792629055702442019642265718575273884096510506981653841999248758386191678564113691380595836021516439059338864017984621224561587330432688038560395432848850169245987329714436908648706178360157280612134288022961514621137079079553778745323201169588856589744363534257939613083237649687673799146355991071772593885077529650925807801147244136028130926479279500749995481836974241423307509680012180913428724292598181491900550107646176442409455693721266282510365961937574016069791830660338618277984208448253251645674672916382216046324579515869791878746506455417639977827850779810267074722144325827687829188057039870909400717440149386142282615612572658239066705028715166544861167764702317686466141576219920725333972093478924138269599196272791960614345987146207058197477456549901488994229331691907635258344490324608495399178952567160425554108931240175703825674414937584993093089270298241785987150992292500746321087211480049585730857938954219163492265426447423276627776318675372194515715151080074746994175245571686095249675445839278885084629673377859760757783843046194619883733450812370923026926435606478823228871999141629755222872032449089020378852772429590328146971618780578831947162157535282630756445650703383758791316189399132253920523279827012693148099484916422013688896713856203473672554174690948144509725357260103753744348894053953452979963950762087668573595721728114421112728133120334149348585168514325683126032133123061879840428063053679883569074139467062601898612072465516042128382452994351165919400155710141669446826906037970373099790931416632350567615922679845734857185049779706331178644311395754331168686345888214035397696457832650989927380757126945230521193214458909291486212943425507621561706161466176504884108950895935711815193630636496967264695507847249893003567804583640806839238058739785946343707609421304852625763373581749336472236070158425304483767418749309381426171518630334087699185631816130348444239082111198306302707684639349432386821684108944779980167946694883628120147029675299824606767401721936094419410696241260955703120720039658873030613121560669754638999566777099394972858860186410984726960015324079687700728676246514480909246813552770615778970963367804522366415671449394013458221809338603482861435262082235768061440779902995547955481918830251015543006387869826908525754266442167443194684950259024303159557604174921173168905956157251589531612313956958211866837897879980349291506301489713510268407541129707921600268697764876553134737871211857433580792156777027463949880414275938285698061172958361568645310790079096394762442807904786552009768417108758747315500113123259667155498238418414520530345678260623169292240662763440459854819762114232461175440159312772870373909971286304194230183497887855166037492753291000533447184977626033250851885515302788137033848558923781114022546146263213457118744543770866770367772895594731179256978318870770135073300653478474198927411563571154323290283849407019978703704234054745891399232794153480656165919625014610774696966320107759787801930106872365361248143052128251262011376688799592012211446088029469785999453987698617553643319524300880644605053218784191871294354036718394624119438584989466690654825203676849645747168616887959517524764891632193406849656579116547020947476369810191674647741009823646408030516515295371423785543057429398596140845677887415507928821715768030562962427816383428980664475830623252544387231553496142615171996756940473590552945103975339019604867133265210025633803393635228637241168275386428786890595677040241860069609016049520513973184689724564262942295975738278234141390478832886782451752118653761856649540196449762950252663394114849251860423112878722628266184357611354049372168958618092985234679625410675097373387795406970996259651252862461440877280186852676629472343160245818009615051915094541085068037311780895396669469554561041666793514499506151229027312560078386557212155085299919503591569945910357860990661014680323195154850971247262834005962736014451106538839523299189581425930109729853354274128828536957169707323672790815520529864616307023734417975121429184696048321542777776207582909639065762073193048064461907494137527217367236654669079760185368112985136178816994491983639818328383016996233393478049025960642783456228718913527770488188310301511534027050769885934003314219492333195189082151033096040283376102398155637274017394133015800258344744673217513279273238983223565761436626878423249033599416502892167574559842565430084091768599547651405702891652683737492026227158626383975614352616857584339663411382594311371291705340839898733383166553471619214147025298664703127497419402467467176151518831519833101637377226756696926312012783356841199935456023322911265067535448103582742109571255914461755191432823454008983413807276013759489821714098619930982108140512966473913516697862577130245636283985526831553905168274324509941486431368576993205642246865751191177711625949408096176715159488392543809595017059044379580880065140177208688709902553573662153574974414968478652681963909493467264869192811856978453400205285815632142624880493579039253487385123502997824769872535569730888529665314303288995290343504443597279511324983949607095768926700749478382072103434105521692707580392336342621333488132701739254121864276805821148110488066190235253199377987516848812746083487034462894820491368726169174320665965506335412048233542303116701307702698239024000496320758542644543279020773083765726750360216019531585289369975951592707114845356319683304880258969744304220911222816053202609120994379831722051365652438283666397873809486260627005716348511593955970019104319232986207075079495037993691513055198803559650939495394240843092003220773875670309570820557896291611581682336769084218998066191553557170885508152629457823746503187003409993800437942102734041959907251591943750465296645886356999756988295419597137524216891192291002525011994827820222831931680317440742511456658847549345719018119273697967386894240093563369001593333361062018879941107150994685574609281605158769050636768003280314066536774834602448009763629260874933561385575708556235671223193965419508339272261061516368094786416313073889665712028847408226020256572542342422551729452267407078148072220646344717930599056642236235903341471976644555854326486018300104490182478637539454554261647409269178141970715653843064060829894322834773035831291848209808769061083271202309292045884942483801406449887609888008172218024609837003993429941039296261728472207713749458798639318189072409779439506570479227751338689690727407817733533154386805772481596546212436359372838920611136162706355114091748903348292836243609722804302701702140856986040849844865848610688245674546103166529779427083377211586056977280425442402878783141088928148904239376287527046815365179909808611229661421750006208385895047326526805325246406817033759431181731611630639552914724446661822015027656160460322342983327251674094349885077268526264738434026170292027915977788350221636621936489289052911327482334930275264267264678442170519910425612594478026347906767641491463944889432775078954012807703260040298987399498242411300275545813876027096758941780271504484746517273020414606460529478299111462495435074514812991331394904631174307278715328382753426289362746920792576724869183845610841309444485448245799820880319649665519984146224953019670772251598691991400050683298318555501351559947129947584017518631040969048054875077220966173475656379492051811960305085355312213934150953335328606483773599339348695738604721454266857809523964489124572006600213012185677586709304421780660555677009359166144838881737959572610126444917511816686099100855058397977511327622874043679871095678070750503031506778518188639542243133414451751462672640414987968980318811791981775912976017560562290825650744960871557843153070439313644175620747649509664196221229867479452009192928196567675193834549666410870212690671292275004857427207951007815463119651677531644961302837917360891220870123369014967809218571356625572984999799548225062144545525731169306636867718436258351839564325034221080015782301911219074136544136827231607643098269295161897508287074855631238165676128652678263159432376621124517767347357880053194276250466842252877425718900131421885509993761155674182071664057880924158894603849033755580523192437209433654999409311274649224071751535564933701215568436107887200621672608229501625902866047760202641329511354106601328563640680749042874684116085839595010452087031419832857809553081902403454127700684548348475452550985347059504066117668322012350095737124671771756373915266712777159210616482332521885903450581481174049888991351931867367037553468845711964953343865286223505040283426465376462094748019128043394131401906814425275695891307300652099616003523824763338385597648824939128454977167036058884191933277435588414281213217878152976551530919833110658335761870307557651866446733814615268460908583347747592946417178374511059594588368090642240438192795354383722590294076571443586260315405937269411612162565827588644684058640459964020994464249635632461568065155400680715682932186223221462140065526840017310044611471208872929123193381395319022913166137295872958788910196581149376337678750061099106061795250379105487627775080741770447459798377156324839040236627281490389174036471330403579432768305784107898751927423128463695266827000062292278439300677018365770698878128369786143207154892140232886880095694732765630279288471870171573342062102211337451026846891200944494703881473332613202236997162218553876072632175663089265986128033484399045117260127735309982563007121724036540633992874007416728710015434880233573680356465957120232804973038103566410857533917270427319946655071498762556886448047572581695579374143077648182600474266653930453824300852133273112082030011250598748692270760125954047931311588401932832219473378990225106386605985324797390237809828686846211343330062942170724009326586865704390395817981874432960104451719222362469592538821799707724342048936299859713371093974635788735652068187033013297271136046816499922042044709723999704392946135721633902388693102933443968969624983715592584058027877485320677506409814776605429684740891950951549114656378094838501753046451397206926040888740829940679267897704290149355322573075601151445836556343022647381855716612196432003867768939458163592434508392546371064452165665575513688302374315100083026815268870389110041633127813960533007271750591655057128816180814773142086409675566762494839396275919297902214747458765835919155232071316747151228813699463284412418973023037367798415047721448108385887337372212163800285410045306066871183211258988082991502263150862058427803388152112377244393088069786019444199394194104553828828313672242770418267435532966483059143014476734763241515075968255510148554968602123496430876029784148448941956723650905191436710462794736131942923351048486667315964222751848157851805683358093660542923676979939445791815584513494822446752570878361820535832904270639689422809951111603680284770810564529103595279489513984233661135238719975341235640274215006085583524294500816978493496558495587594129262765226458671868890666657947460473969472292368345362991505591017504492716576474549816026849876262753280846846666158509483395681023812880869326640684613225402627022169267197160503484875692634147980752845880573494975477436234761928155369253674612753186765227540196945643199939783380722116389647711239447655684512065452515619201945086826892220002490906931850176150057209498595490509821813289967379208098258295236463013090957744046238139059435635521375562582073426053973153774302101856832312073381323444769040926871166029221942696490397800907174766665304278909748888123515288979233429708347337928627047894955573467307305384851250604507846676129093460280563462967142587768642957280579240314409025475056162431104461298152778613457957689030242052771660541983284456673648597148488876609348942477514070337510296620816132514566989617512759853438012614556839204398443290093399313936865364621704687711318117218801349933223008747089184865048734211117149466348012204323579275415728889983174557968334682721595931061716298564512332575288012067695363665154034285429588278896367228019983835664383671754959258106182985247401914759871580369173388406274488819835176595372303813479499060592116599291136931540250077476562766311374800291171447599500672117031807524594993495644956489684623095375225880310495979993707128536149354394145142647937455887693679935486504862698374807158116307036700770788371328883563700257625515124169647894047047221202796964248226734288358251275603912667739496237291334657122603233035200076277755310482802422900380170812623871502461887117821134602334334802373183736404933985934109531525704188321248669815397640727913155105981015414401832647914292718636703036329969940630505484910073301796340524624642124596068493548699062037711793404971999675745214981646262087154766707927742434275329154193782110932256173817880711670440799768881957546746067781898776533296740432459352461232507839240015230385348849916082147534824552961425034079150521946998399227868107941984487866186218324163702983625421360666367050204435006590770481654425028347646346544742320167744655132063171857555625236497849070149317049191976870403446483839615518749077724925484018987168729760054832365423795441517244344144143422438368208953794000167861700708025671644137119125702982808390036071253360447693118202759123283630060025532437297529811545654221587358683940295251758417856732614064086143740065199817949528307119598834459656373432119298706818679615660341682080922809577864729502787612654873066854351282940787717122527357710332494324547428170658214220626376173840586032239705533325990617820547508592564388183803944620564082788156656976171422981463778540013422638942762370996448761322805450416475597440712788455603613871407948527144565262643518655708426440852459341135228811021150686665518721573860707177954748404514204204260108113832127792548601057139443258478133467299935399572747277976943477235843016685077937874814083650905817666405723116067397263377938041433020493090206743973136515038716108615887732207078258188932490612661522797147294979506480495559700336260594946608296553985381397243691397488448633504856998285887459865843120514658018910013212983680493411961482821821371271515975598335289920529508749776997653008737120893009932340479102628454659637587677804137003012782666612106445042690463006143568276281662909134230912727602547210603680289945387310276077172004958965399802084391866397367634359946917414430404794766508064751970850492750915892262027948615289466700158148418909202180434402489388658201425246584841399773746425429708086913259951938813521006400587924403452997713924090568592298969976819722077110632174934371025356747228110623152867932395208169700340837953666304978487425716188825761769260009335197688505362421909777936337589568822220266892200794614948787875373443259520164588312916177730215849532801812459758237226957719522789194864456565034602936880466942759572071629940144844410792463182275424506869085961050271655455484518892820355159582916628434504128785087814204414281306782655422133140071656305333163715282699552717734684343499661635705291793329223956812466793195560192234492949360197380783813290307272254160401816804310491318042282233201734736783224382572891369011918666093669756166217807995385456488564905154592627598146074242631654485502582207591496858734797090253952531556038172343395589052443188833852812330391043294519826995317640291110411389669487065616671557551049832618696072445940530934486062015984708941989127586224147600628547529527301431258904808881346624504502817614888924017133427508665670456894546524333546180101781478834318393893512059127274290451277195448343998222229538110840084439700654843543385364642412478195430028138903576435034429586498884948868907840365595777265948538997520475674114479353807670112474274152254781043050273206744792459692702552712399584771994747974858142282775485750207738714157225347447701235226526495450942556785723305558280814848517474435336088138869928868532326984820378269464892926105088935830383464477061199474138417167879214659702117915999458531468593731457200733485083134753280615291952316581563826588811146282237757179143907622030763537758180669357988703149325970365053443474484077293819366482219999002678954837156509067507836700088469068586355635781298969346373643750597140470864042354878076863402541958259158597305674331368317481231230787817062749012295696667096915443143017161070100678803535203772628560594081781911021214297257918482556063213729542264342683520505656460379686560434668651281373652897317520653357251455593470329302915051864242652566006366349650242487294014167221151386079748707561598432974462785651826799824817849694401546116771938362662667287816338717716912548743824088317407123687000864371840130469172983193679937930100555913126656642391831503968469995540274352799978909306295998528780038010620230158760852066980937261741083219870618988875728680879193601635018295096546960050968382256772245990185321379158894512077718377459052579595590896771718097720892751326385216287520212683437080518088797396701865014201504533228394756906701916585812414143761477274824293734904091568768319975827146769461965945170184772008896548689731454362326372999300657620235072977045957637125714372926788924434010227617495936174755115958263434164638333210275903997894856917834693283167797693080357591064652902516777231838794449662434822256056151802372386568328160942924605762723153572810335192252352833585757453303049185508265319722274578451613638257317053137909686591890745212752927289681415704132641838299624268246075886606127511471066534760433053212293137700080965164528681690605015867900104286192761485242343484319002462137494397155747254110604494629679845443887128687906492000937882960435486663065174534636294009121844689787923593973926625855985987316871168812034488429029200086379249805215082275620551219812192524453105552668681846571214842450581733491908512983250329677574502540804994925770220240614678165577758203039059081369030870897332966145556691952061327173994510938269318474952185369931317375867068157153329746622769893867706084689556384421424711395424067260102283986132030685133607411793880901796524308680574964604394159683205797780238541710917422001190688255687211242985249087449705926385624323534947837628141000856508567634471058520691393745012317213844396217312583879510589446075717909838930036309238742447165268662366812663167500518455134823956963718558237441670650891291305272742064596274720769177445945082332158061467099474210815617603280386398508303165342302261356732589725918684512156611182340746840102298346108068675959921120007797830792943674774040354299858004540135727651830855816240065451081908873467471537512969415847622494842760070460118512862948989507430056224122477739935078355798098133952979244070320408668276030427677922238131471898094360306698482858591352241420981462719665510440197053802683306839921528045016611514560906230181768745669085813925229828003467567414820734865451068515800090619653392380059329048045818655305699607471800788984853920625550237569987080542362083083386839220068855791810766564458777503726530721120425005830291192124332691348532993371649368419919433292580141070428860816838283855081784874000824311045418560192892173839289725274743371530246171884034629575058250052296053510857797128400440086637026292546107297821623737113061879118949974346395331330215728070433998683131866869521303986175559814925275932047121647658366110280194589593887281725901124524898611799757292750805374132844560723549448158149580693565404903948982132199823964247264725896683839705208145355397996087487172837376759065998170756088499567767941171289368578379294469253427951062736524396246742584755535714511227093941361480723002436329609453300562824433543143995609753254877721641804516143147213246032897619530871785028077846608585814418612630144146725283322465715175367121773746758201125556941254731038658826617903979318494616262996818270660895748439319957518987893537460665380920094577909894559686919266735161165995708649216288033789351537150901810078015436337079007325996007538185987888951267819410718622116234405528899754799648701808506342053814673000330871089974766620872884337801024408163080942222064793199790800278749117024589890238311756532064553534717685583404370050277626076053480268662005575388540094249062979539110203976409559066061855314405490407585177047830918291610230243860183528486079697495305397643438865785089663425292847256284790091953449622356521907225350466312275022754542086076806121095896215124628988392209226564659342458715635321113328571347104518416838644757455811987146170704700683911267995582136376410758135079801758785692831755334911760537845231883414159669877378378426577908773630392358521997834112293696161102436128692033793463031227914017187807919125742316386321455489621187137407480711775478004358251533971640706824841166468877806367568851066431176314830077920245450877928865200931361536714495925144260546155550578202358898906548326350103841705634580195046570228537917009371320605527190501128331395254196812487281283650609006440953014989273709933485064833213522622556960704035574077062592574026069387799452439832261917030444180510792581729511339842043559580004399200493593476313765541711132379095081522255614152698104476746567908009750449228936202692641636032218564185874959258970926327483193161141129186497007950849281853636711476835195939318294628785385286521818489136488418236999825128235206481873740474300720274324250850927525470401504580988968778575841864903094065463504945650187349252045195734772860024960148324003192769217142608430160808881777811498696133577981963030654762829763117254137329458061389096740956429665486815142952328209277846874051348399447110197811391791738025202153366426287455202972685872958483097137402886955622547258782297829862760458915765080150800806832384128754232293482364062877815032907168241953344626575763583749248622458027047318263781369325694942572056218688598558706692833318600370161707110405784875478253870508192427640898500506407178410213733677173507353097089524449433959417216154634763786659941453272883593434656893807496440625358368502572896794739863544005895855225450341470719053685238714718220242411598798466438392960844114783883425037010978297001315910409019151591506855251190833634373615199944802736088577586544423865702557013207785926948637178648905253069812542645693447991174101447993238335189719841647572801367424263633524934056305071928731035266195557400303687668290728852011543972568770925270602111927132426517716110367095080092251063013003428231995048110407574508450907556376303463350302594541622670144832860558544217750073560471096956425601671701654603735752006140375677466572666146458687378690858775417168250680346290745694406568695550360251669339339894255618203156386393680426026629874015344417427093358739669015736794906488435613683657359602406394952474527706035830870592861027048658292798776727112366979114679645819182389261096619012928908521048488275032653149651686802038880573936845124184980396853235268611452274530579161399406165419720964197952505886864104350449459910983738477310599623941125420884973065335054969802329611769042002241779328425713899614758505193643571032147788346079268422605367033213268926752281574539106393239809630049883275030495985252909782475654375266068006606108200626913620936722009652142910739350023664037186666653972410751198397796556048960749993443493195567741180214573466179170317220277988382770873964103904621413015201514022467945995221647365973212007603974728757719171725483935432638886926005798470967827361004952377150375570954210504456335019022846757762941183698562372088784901775499956258814988880914694318665604345586694270683819044216205727799961262144906678505469119920420994017557257534922237459532631966640658694280011908894033102780527349653939960644784691690790122701856263150256599939646137979285636903020932252745922482592483438136772017029486472266251592628940429676001075325062003116099187412429968102646377731979450697116688021677078753452285317656983726619110596753306702883989317398734788152084605381032098018160517889289070030189284827587311180186061740959265532984319688030490806550454482974332546699919154237051496684205670023627364153011601816393931288633380999338258185169728485784615603298700578094465133370396938270988303767827764983544225267984971250832691583965173220558737599015711463910444286803699302155420615938038649063715144443171152443967690978491972316058028936550595928772167386933928822293631705823005443168251193749207347265445121202588165228372008275432290978941458081139130249983597191038705516579287989071145003209291783376215420734137640368330706532238226425395023046553422155644643258207593974885320033003335202493707014109362466260181574894761278727063164233285026328376731937709502336895238669031526350307872646549063650015139121312563536699834082125335691109804063676336507106932362458760305513906812782706746052350134820454663603051840187292740790438019088860542974900385683720886608857273006295756533234527156700448874379928221456710482095676270612041465743133634494912836230258365854594672479501967866362206708197230461829112550375878516871118409991194263433647663957682147143925868291202896878130674203013708950423959986438557483100312686039220368717464197967901607965060154307293671108715749211616663578049771198924108093924475767201418460064590569559009945871649821747672354855309736335329369810776189654543336661453428915685769478287610090675089309333491023147340783553211126996023678911307530357541961907177082056837169017002261615025855374540386069493321219312480063152887191340013919158366176628541225901815736223443882122407551774933974067172196332282072131398423497005097008643951944465347139867196884051420072404271747662279901815995750634027368786524596730156250182890596029184820476475764439817185192487621045522097636579499884794863824038082244186130300045448608825672191377153110980367976367597720527160235575263742428348186017298142004609301704821831842440256292393887371981139754072631088529077918169965490486778075121961296814200430053901554634544847620151692023523928546452643259725605135627493585589973552875008810992121486091434222942489008818254387292169527642554269903643675942468429923431799925596418453459040889361690632205626606373725203088136966261592911065532146121455218867096807845233705716982036333439813340576392370977678196852596521852471925461480121820889108252118331169123109696069298930077306855747233329860663773191846145558331303648179780976303392656391551007597368616008112049988841091275113310561166229234672705977956660641414340152252074862560793459801817049522255133753453011782014661591713054900993711876906954340212033198510486548940077619235088784870191581857431847756718787388356306773184363571898925238940485363847204545146868155829055567882967579321984660539902240931327432219619366446257056243674140586436778262952539029576331673249742986437046598441345515856252747085347204898995634198310478314400394950900013265426211624957643845295089848050298207578561508462844972534235285116153170111383353125576936974003612114977306786942910612011286054824591263485093918957916180516366729991333468345073163626938478856333950231699368452100846718659555771504923980645038397325398355022230282973925044776598037746142575585344798003073315089175103819176864437754675269259954419697878004124055923526459582350257548708524167483573811756045826281931007824375859982542648784911588375216630803412524245069458906503341911444284484515526617653036149165605437500029338847310209079069883134623010130817438476366984223993196791724494231130355045691273026570073695858685983534383228971563964896521860090279975679134960573153374955762292427337505895097487974957969495110506603514967134135559008883190566066627863345091906953684769494906744236727628304344189187560323106593897691722713704922645719845018416863851554428937502146622358382373026959485671359787045281469023149627507778614040434945783889013094280004158373384819038797469630906353802135650789848215192436045943146507623442279536273316004512039991722257253733741984789861471389222347860457487164759943308019365291337926012114433996606832249032270372227776029771466061772567413805538434031668085325428167926391602761380793690572723100545129178109506625027767762069090758699258269504220638925156145533519816584133596164894895625212843109028242966244181521536505724118009295440595033332845663356261692143342166436520388948613552398388765260454393010676780324803436195213272442182342994947045793116530042439186200323363766134838510005513971500481431414181736612355564176048145100227451952165546858755962499614066525132651423421749544856990156904291965858004793499293036849847466083031293652800108973265892258926387502850341396936663281022486805490686643934533794219132272269802309477740630159243512452510323114179408953157994803945514101549194978341797710148968945667724717314829066091745527078835756419231895390273466815105412578559274106957734304878739892422008040366903723961045827578237474606445913798390044230444156813427269662777212639302816740967057270664704171818937724198803388844414456925367324631518983516861376272970600757431805382411967980049761976264105788072442710471790875139329590721876523563143212862143482780456388701449625823033441775965427615994450240192825970908967163559446655597022472627514408872256343320672354135566925398668396477873298358652101990193529447769351595541019155677797583008364142518213770407105253600288698802502483097209088455156839594885517956558604796234555333706067146963945475055392945562612188538348154461689087165917415122249433406576672755710802764824038162478185844082813776327150595234613066975379832875972964699270586250899004885820254707453413738164586960332681035940119377887126439000841322437249435538841604225824985059416200543706705599005832501688548867874986746789274219738768330091988800159015674431660940819133431394236739385675220674826514201297637245268084575687421652049615881178007122903800538566164743190871733677457583225654952731153499458879110231265096546547159279690060806454466594519958347303345484418073727353485538127933371991124527137189080573471765544154043115012760367535489149878752090233368211629600971335051824155911622690825618868584770511337175474805646651168153604007397944989319343693176177685849245273686049063913132200245631509753594411765763753017409936802634158807399581748419890397585298348853895441349696382855211594457700280448998613781084295835923927750009696629436983717896837573039845312797533583063083151185632571986572560119458801986936016414920224543504351945234566965763079901590886681213541561429211330037873161189143145496328983451678442052514186672460171794606060218610057695941891135937650933916175400398958161040548513518247465677132578306526034322508383045953515443930693655869056748337208495951351840447005994279116227096963445116550152037852790151840037594891013987360815638391680447798247070539239930937218541862051561047107282806665589166850280934205319279474801586299079921178004534107800526854411258114363196097462930443492555971807796522828645917146260710986659919829459996191948984212728067337495152139224383058133614161531577180437602546628415172162888015087384033837935450218558562145988265303147481131579430828477403866969191090507517712476097322832005770414367196793170611885443480830686169508376333816574678786769827857874350813318673252562785392416368627603384261526173586049235853899938198158130399465470038993792076711202309659092738957475964753833242117312271495474955846689449992351256782721142516360986523029166217508087155055941580773220649839835933379327226659823107013832509827303892081495209350138925400967450178267907769971960162592262523382342979166890971492781120261980018739979036958766077977232866469964721303999816375908609361754548473548932463002381983701722613103034096285047143720281208776866011792678369466941487256025486222206147774877864831365937190757206947558184495543348677654640059660574702033657031473644551704703439725314043996961829242738578135751942495816610648791820211081387533386079940374072666982418971696774956775968871353368008915152807209863856120943743707548810260695499645744806035840796196236232143208826049061974328679750162525692822422633638782494895985307678127507354114473474853406829331871174849361695905764732730427842414869720456688728529321460402579779360135072467523113012963517051534038208574401859568690127599714470591899772660923550169227635127124332155485032055618287868330840816372501977362182534660699990783303795976735038886145525012926405733720351762467553033971076797003138883243759892584711688844540262231946987185511579788590460651238915160336012517451976137793218363577164733410433114031009052113617397359943877725221431855924450286589280755452697770613724147269820711237664662944823805723181398037224701659518837997934667002323092164106071366721239443850779442601204937689201007649048831152946156134351233561766774597115944013671934343597827855475460178414151801944547812293923971487305885292941515206812636227165743403738353436699491308175826952574703411555201022102971570447774977971306179747498918807876586930346052315365098432649198692349161010619453394090102344246471983662985286271184787330778973169443869244289434751975622726953251051099278517621776865425238108344557797508674355739988613672778793213838087289934913276537661593317701946060484480948739989702745510510289109400815396719566409069278427919540355806798114933751444946065627061752394879815355942061881373016496593821891860049563099684061448122369852435663749085162559267441769342413964175242244474763698161733029254509271519103850841084843334880766013589415976034824774779346542492145328305838578073308615148408673028705028731434527778274915285210054946376208689906813695373637040225399117928748755832756536646172361071656443116088874669269529779203556331125148488882015354031282616475102673670710512442355199946207747865122799920417244065889127493691957423581624878723302715441381563003744027626960919792114028870069297804325545717934461452702915803643520849453267153791705140273439384549444604681603199370169476970422105543783957907019662131322502501232478713349246651078644646818722319865922268835101192134908612090171617441063883050224456358818698521164197770372441156434524604916181713253189145708915779084496617389857841469850893649121698528447321503853563309358905174756664127621973364131562593852001086971113105706870025467157744379870126408501141235277355895073596699396746650352227434837715085710515085019808957944037073476701008328648227499081106304746743683304500335544824277709950849332976681903054086162795187560479132866940442637492488627061150342229981551465447083005889706945188911864165960130183475645531945194620360317531086352864246739664475372555578699781960216091405991718257770331116681666695224077604844452457754553068847686811266470878678351671323880843441552775046252200783602844331416058784388787163088364010057609384803679346186124276448631708588376857047769462225274283223529731826858541246032529654472284943815258145021351415058550764850991856589431373880178639648470490769014770102860268088738047567145596139492593913665138297464996404289917168965555779611435680131212612805545288275797881429381697832263620158689576922179507296318342736763012273620322339069375524730819741993028118832905163712620474731214245632413609960791661723473104438956232754414109976063132170709127246215779530103031318338100242968933647189187819080135138265903492501834607342129733082298884130209546107272116373375874066048971113255162860839438097541291365733528211873636530041828005043533163988810647981488423044429990761189934310863626061795171768491904862786434281775836107067837816319883256576082737133548971816754672037008909586961755894550262902674944993706382020668186167085811426768746336221409851652249464394211016206615428845261847707835398941257324980238987155255944768347871027233822435286540513657269818436480736597161258330924882162736046843395629402628937789582841845110105445022599904871281147301285709260547174774704566471307003515261156778217244083203769529556564010806488072121026940429190469364716037439297299809535080080178928764679170965110201653605772883531188209908647851236714573310645475432340924376168715866195593779146216094818188613222298305540077051211562705009032273331481311357370377462738930005432447902535317208230807142787134180559293459156282189746751404856733989965000474347275759846013206752287045595081358029532677815663133013335927982831639192749389738562574881906337911418157513668068415918891859034906731793784265360290978240691870530725815857139353912565337773318285560920826308423255380104934772969308199654982571820742154617365880290091648655806728055743642213351025632042899532138959289684602547461572501192924993978236608998706706704667431539919536718028770323638872509441430987918439808708483779298995000195965914880922415228421091366495152459460275582637278684056281908687083583642688633584526836627287754770740895402398582736314519258173540161440556073481224541024531299868135641251844342716235417257539667448460598483139559339365753818478884376909883786955922173158519390682861068739997153425081577109906688313941586371901705022410789450414454680534263900629034507608219875550778495684482370722349162052004936217362862561214129547027391039566412149866856064494612768380701396205087942882447432883385999693033292337682261208547015518812363856103562140331055556762555476577418498328035958019028023507386971414731679628941788566368358067026316892699500573440834827963982147731857588379381859269814655122950851440926490368062896890179619984975772492941813268975166709540554311395995409968401690168218728960336221103228020806537589522065588097228869354516284555847827355695424011824367295768266064797361479105631071407112684247537753589875454192621722158442349653810055365943732849473927630904483452498933838388406271974275484593106662010870929575068075768660172980816646327760782666478597493257054689463871809920703042370419961020681609314660057075036943503071344175052221464809404051157941716492173697995873887756677928029034679945023128475044048943882589787378905715905723977909548032610073086405884713913764852585714697130718409844803924089131287767355798283608412164470488384637261289888399952622887116763825675361529043338687550390340794240467752935249827895475675744406499813451202122412751998069413937419725592330352019645706424333350692030230224910325848438257068258195129502338615906144839297028856981952810189748678492734849305499894102717582119856429860563725905065841747399429453551398981823311895538921172542629451696626295530664247506023541538263952123773740300064468377568234220885401295728167129108705809666058201877362876012515934802304429379165434709696703730035113197539061951722536334019676563780929770482411687613736799739204506967559625136428389933801640511287553185551578795507101038136428403246075377561027373535142888087874276083365276905246615310116950883885310830834828509296439781456062698465869064403255358658732672325926688459817730301658213570706418771645945244818644346357555810196839406760489462277021945073946396750032778151864833737990777351942223868847325984168471304612373728250724936674934635544027173025660863194639681453292384612152193805817292403051018695851435297888092066194831345090887067179024637508450595178058590014513313825950920762050060222577162316931452028606004517652668669998742947406394346855330799930990616093365977402969123062297864714491533725513981983747155743692957155833667549949425561706857665561409969400725074108093962927741327057402749512222961720864213207544047658069058236744888917418507716978542735021184309225460148624051146202497483112882765930646824383880701426171912566748973573262683386940922538022324065283110570211178524667206460816889850596310443519561004251479035302803788208652586020573933016123917815016138617673053635504050783960010323671837192381217870270087820589592679877340718420621265648672186916971234701829599023114078668020202513527461461032058740536382864910858570205444877503159122384598070068317683315775897879727838083479320744233886130598483520825225496766508069177871594810428069689908542618960723478877990141629613108382846679882518874979949270402309818670810071148879147115499464361113705288277146574116354570483205932618465512108118701577092984517512129464390599956308522055121942478769044158381554640900691981714455554065969123193446681513860956946551311732892767394543726276151368752296012546062581753545336998522140417041967896378526549617212748610137481256128364518019018116251617890952246280830881015014005191426588087614291490956220370063510099289811846400056806719455452282243115847650747433676006773919912854256500371232428319777462971646444745648357612731058441311071198959429949011356475556348246247295931152601153984529595425756533919108070353058056184971777553388723835200923688173892907478435327650659361976226586827335499866336477417749565765122813011665981144345961608025408073172023775176042664765325258468064258980214683065124508666343592447445208212264722812337164331013357708631551791621437082498524923489814452311735109476064647450370235079849577265655510276084860389831296500704429227849345708243806792165358506592774638506673719259667779606591393160199370951877868600922563563848922145710251961453693050001041387194286533898656910846703975599594115643789121740996319969562295885473859448651378824630374306073534544173327060576063172533264238481112167516274844399692627192851828304236991388691213803453514816112748905185577068920245210967385791020985013237103739207267062612246855304820747442443652641236572116110576637265761003840387864267936120775206858573301770959359341675972200169288102887953939266530426406298134276381804455233516995266178131816025414567086228891937778495900160603121093627446150984005956126597875530543067484840887291444281087633955787532465547785606714247688178066148054315995857667266991809191169463673555761146698304567326333509776272837523499549105037165721249808570148902485998349634083948736074899012444128089655433901722877747778566571251726619695977555199771071816605750541876729181728388544713708831602982335770853987389996893020059906514752600645650205687801843348930529249687933598931089382894488876763465153106083227205366187859341264323569165244261315197452781566130163211233231360253555307041164141296133999890096357789155939023379709897008420949656614421656161994038860817874496627337913499340447497482272597776175445097903272959268948803088438056744677357881133763204190472059279771486319213296006070158269306824840299018700116773364228335560293015457966635038794658525550464624096008945600003456508727748953488271005162440234715906447596837782195168517801619601829490311656071317354832042211676833763081523809008574776490972421317292233671214003838931757384925950549063224098494525247915530593080291179390371668341523810074346695545566798796217267490247533403784892703131231711517285024931042513725787865231578327713439295202389650470516987992409566521323930925298031726238877046915665640179396232623758013921656994949974905810441818786755679460340895490445824847401080032225240508206391725935794760503413046798508858122596447103150017147158158627636435414921767900842877095543997799251477221945489307380099360797854554691014680363728583441855028923101506384978098483326050940016754534544591102722524389994289016679246130481825108068611258446198900336564873087886288121872816993892728310805939596899229924330051492754018788464314159687817245723176969231577079996315861025244093584320731027331886437679205763009154341725868423484668316649167791273176769855083231169083702812693185711291019964793352489761153554881379220538111144121278629388788273435081441479719731727619044417732728168506369874083623353438089495149207930888214822674779018125083180130828410503869609615013225578155050454908153565699443859370938637371047052318827514167716535643006496286495449890653572198219385234827242544736715030744527331815683152074398427390097720275351159080846417169795279886006866928979356937635900012446318690279761850594639004847346106609500164603599098577427076488278047968779878574015421112469872587066158446051896991637736615746039328656420133521203533796287228254305148548326886869956577698800563885818682496963088855232963488676360491078516034909656499208005128779010258098893395582348192840091779693240722546417433048428768384981875112176463508984870520259397890653474072515566420725560155693018155615443063707118524406820697081776087130881112890104122061024556922333688667757648649263568347744575744571598361143906497005421761631243024901570418502434492288585490211773644593138858557291878002151343393366437555601616721041559758043369656975117838292210538540053361932170138436366107399788581198021773570451123539235161702418685622104138486869787431600933871177037437664477594236977591732437581165139148617403510726813908298553166235408105840322568546817864913274692734758424400035964148862829315681258615650888686992792612448182106889225516858946608763423342945570004651707772875476954240809139459791569757919800878664371511410941466264267044342250260343045946874569952976091110587442323236724340958978241896883504225076222165255668235297864829833300751327773125487010510734312759946038861898097275800873265648599240223736766373541008122791417133098290517899669932345171223449921001609055069935616799500254275306902628547793373831014862350399532187986274564249906242300801607825358251115967796762693701613985933309040809884907710180499488732139658942734186690861774068512104486243693881258530748736165439105692003749718188172986337036817015362953895824242168213189175928614091509703006602775256102751019361585304870591485648123662927227134335015877267421829418207614983132373108365775957982182229501857420732296609426683416554405195860765786549938260509446405781080047528364824834776547497047513196889223613833723124364400682370105979502586123014453250605341589525927716524375834919149489908767088989233977983572105278157008762032972451631505344372986276460548200669486605741642430348586005572487944313296861235788508280633262104421340887459593628856585258372282441272781907581011444312370935869598263238031643589192969296661161014415081104315735324626040368075542467924315046163801230646518264737486871164901451153658437745034035953839754640818438123771540772025613795649422205905806123992948652846536714532380126122355297536329613016378869975572485860484335182304885404539202891418818811271978556988599241044959417888894324823559803785322045268344546103608563194976231371708923749721060669738016725367455352515010404451357625186684636362495701278170242675002621896623597176126363219584912628204056336132300581710262720380430840187617598301470784173890773703813061781499953464170683943960304597449675648918696419278978800511454782917416347728395761771782888811770991918708496402396570565667613631418586746693004063583568904288605341311168978064232188898027256359035222217174195079942455221104613048880910332471038128807418223005256361756591414213770206659767813898479286511027618239114267782550146288581908182187872188109421666758906911246927418168999003704339739019189919951069549668313991892475630626947162307016253225302332406894344711723063992774281700700155061733641411635397496194709454648336959187155502373375534290958130564749499596024253625855676052770892995063981399135049197976341294540292008771077384038968684683021756609168976724320513469309716517975116899901468321299175049385069544563016762684373528288969620130388211360027249968664557466334266708525478785758116861144355817348627330460951819768792130591966869954511138703520797176996317364307138170900545499115643979582780816232384146509523328899109828676761557626131690381728756895258485170601891637716626832143972857018487469126187938401534345545442238276889943859824892227707093196331830920082238675504393537039581476757345523308282369688514817212461019490676150261910356500957155255617630825338599326696869672337819232991975269818019455244722397681718445764007264287811899134046780655225036268318862710939070236339639315205795643331678859641761319809778839521266640643443438647863187464029252182396548382253426311169311613981624094406624336104698541088448275282459899028734161068315276148991247673446054893570571558034119055734638279020206211986069813582606859752703764248194048725821410412630791612371255725155630119791584921152130677018086648311813818493047144489273914110184839163876700690254140370347962632559744557729456725653042983618175580010763865509601853294617167347227356849683536892961626314809999459144170249073337607025661404698550453740221954301264460056385555663735316244238282288447423156982011756424851071729493224883283131156608299169653435678950225581356917884214351526310951753024897199563877844715094800137643499626214819004495370179341002472735819970857204412645611675658604398791709097088141682499649901993766679471973605385380257838082177888162773639399462151435456372822987983321270528161495342829705171338676385668069060000505651124519163254529003214964646624578084250058994061527113124005405274108076873027032650977615597741637117848417055631202422306560730281546986656105966276845733452969248998280250332658656352352629551381531171444025703589019055431072267682915475997602333773155628925457181344253257657200771408090329115354368628307193470506542141080682400486009715827515614871039837694190661538178352028620575266212052446403160065815452324588921586885057970740327720067104600213304207392615342757548636799642322472936025289456847053004273635467353073816422696175124288972919288672220247600604098335245369047719213130042183276720682356772199519460493411498133510456575055660857920620870110818219303976110282301511424757590207762545163517808425010317331114704429434306524721449497848124174285622651680333698435204128860314695107234456762400405125130323342926143039073242117731834456239245636047831716527911126434259584944715884348924990523320168001623763736278884419427333844948324929023778048534099548742117580256668222114447196315642806432514148838919923124439641095004082057830829297772901097149467099448642227940110648166459017735174897321880368613980673029818003010372437226800758541414423240425088276430515635666309561786567774081462851331822301706072369243053747994332515667457955335522149824448398070510471008207657389555061744017520349734026751787725705474959762566795303717021795281532695363272396955131278551773581667118268041924913262566812091481378409933084190491256920074687801737322597714532550973749046764340760323284138553047365197848883653991813366482745487885014737124639013616827087535313774951960146037224651916503406330911975004493456184837599332038057495152508667668792584839333753157639477984595183003592706249483176830684847307750044788470130651026011256167203234004455493114096883772585253292702947157322882940948835491716968553340413544222482705208435103580421008509647658250165495696898248094125253309093378883480229272699999175910087678220030880159360458433318323095359583580827871651554998265668443317721546884678073946441179486942216108255742361515675604988475584257047733841967401963871105685986618668505570501128384973399582834125753104525129544012013008488371118701409400804870905528915750340675026615298128313177852769582865704739132270801550971164454973252207709064579708417611079922090656037370285502086689623902632202200740968856237485149550226981470253363244827952848456468645212604297473918700789608184612645389745271362204047161103283799070045029802426622333445634004631730651116278278373431456372564022575771292055346910673939973114049927079308442229954929158401525368289423206856212787841235805345266261949319189056699181656953347430022386879048962372893004943988417240213114515054001316261112883008024603077886723985073354768164317240919657789775992852477701031203582491843701719034619162605942266161610203332917761524218076477929515296646034161377970899210563928217639232002749493809823647706813972457560888870100925994331642155933507854270362281145854687393514992320585211884413891438362589518778955631208572242763538070221526413218515934647743096218420214055245943376342516292750840167922535184318026330248292830918833146664637336247661665435992364936282410174688732008496608430364524897824941260872425913736711692737732973226968762664177747313334362693860154525965810057924235089141514352379647190643640784915655391660181586836642370147409209585127585648598811009710310578447725979987060033782466586287792836405370399442715333275363716254821337799299787688181599916034869938652123106505533971458815469131342040362889398308333029768896423640355443414478888520404718642476045136008255955475179979971094364475933835134540776431508969229455609338411617066636034377202056067644250020874796864235026739079892745705386336427067948023956205598285169541245980957643902153253258433907618649491832180367596816742271955758785458032081447906043836287316277540382213509512942446854327026882645604692759441387453146760997556886399649019874154230855178408592892800668598676442480380810902599320690743528198960872155266738912592978911701806959772651981184641756558605518536245274431410744506297641847997906666210253913270095639824842525747197997306901190766652407839956732676900838294767185402120862563009599298621161694087897595541610323137508802175159072531466961830977131969007058449865882580926830086651746584374610859864050002264521558323330520437995727378005743372123878578855939158141885195107090854073228537738470080425437321401600408032082200078450416455930571107157121991780774426194175355706353174753932979587901289550652848478205060165204056539313944290914446884186680967143767657194574622655289223039526443886006412086645480002466449016628568851443048936715828272142286754642030958155789832371348956027089024117037369221135928145648557459617052436569900365571591024641464832321423192852765216634509856467406750305905818605341269321069625797734033566018243505371052631991341319320398859761777866043123726155180732345470990952257004280316949705881276069365857100842375958430484596480770528929872448388946007723362380671910387766177906029342201303560910893008929495304482831201586933384124428075482765987575479827642502113309438502664052718752132539587317912294484275819999512895340032439972728277338453369746766595303342733024264563713862380781860844076335341485403460535539722821985056036979238572506552182113625292190784355085664024625061126334607980029093578854245178545767448191354931601001940349945570865958680767745731465354908522233325133475552012701147527582303662320540466883136132178793415587495229240838883968757868696453465813978795031575289916659795836589635444567666145638363859853854069088814082997439413629267762913531713479157115816377653768424723068756179592073224282965234779195780251835825577616467265138068172145648784981832009488963601399666350103021905026798145899324560313139647356499672402744537358788206383004859066479547208777517786792726483568044443782670262130985063660563694543442714161284997515025133629568640479437559887519320591463241744516608010553880089457615030694943059583075265367946009959962796179475012195514847802637259379416971500886086365265095977550844273101935311955802822001868650405831985338510894879644398258766136869759754447641691013478576068535992552512433828799772500592818320800808761768028534116175368131487834392841551306680664396205301916826618257201285162356620538462223929632193459906183700447982420291651951093878391914053623928409674177241103022712822119898510521973401264617678251457300354051535322947299617954720027222141610102379207311651151988188353837618462963009750943037460463261292858675574661265995322728478014669517358386425614141629200215533382202902862331465179084678810575343034330660427996656438981259337822738729030356182376260104332044433692831850153804695414040248501157432601688781307718176832057941546466319499640439791346770568191078168095285030020769489370996017923229318712596680803656566051478263759559811937579760954164339599318383432504421285917981668347086025640172201704658839294486133831993600114214637723225991128758678269119934651711190809268006817910699202166649703717247107175021553220966767364511099809197295020364827408361602586198300997824230889505443790769317102754413782483874568119944437784453154486373470893783780141631542000634402384817361914966274269593241096300555894246475163443518629285724434776211192508098637380739224982309545872154625969037440186122044490896221843058929584588196535871626103985894219359909452682212186222395327986251765644181687093458253970517637265148977342431619972350213860433994006100435011733750935668420430457709256247869424255834154488070842224919336451809813206988867299435633684557704126354503975303473613886475154158278842084246672828164700887114118803166167753891768819403112992421154878477276279154237612864313321944834634816903101254918300765689264731003068171412744978057243647114990515358549628206695873884031622721312286259100399277633484435381946952074614429314555153353135884463108084087551280896105995563674265902908571156901243041550929085891785969355893713929814978383072359820526461813413867886480518952599510764512484850650434664171127023394735549141816963926948166837209300107471459093731084326684464683273789333318560176067640539988543113750352623189861070669000039553712048755017365605683475633422027741794812221540169067570065031486464023341471475631919426423075395272756826083465457285125427967104027142252610207570262535927339128436524935967511118838756647710276425157296355918832354474685815991449881328930450512834281921428672479831215597576933413532415489558004798215748919902981413663409157581877181847042243790073795887869349184347278934529183916954200691141562100313454161033005836647584795739690625045380272951564474203352277382533541690399636031852014304600550532253538051565265545767978798513459063154613879775604625288763216330566374878618107214975676277638606751692700664359630831382143616903434901812867905152827690066278722080912843431348896534401564215436845459285601637255699052412148499722668844614368041354116492927832178499468385598582880637510185889490360839675444067353810987298109037063802100857223289237790260047471118623354051362038287681010921629567972056953135625534404432470509348151500938278620857240592799566989845176578371230758227328180669534114043848137025354303478332167345248311584918511548008703710602751905727188352550154645113299489531540417353311911410814817587838442493645966289584175551207682635401657354962732572744887002199070213526556844190318451889793189049141500713878909229940548504892321865283599844657743515792609471000524510761796957602499795439821768368982581348651908126379560776723221243620892649762505085693906675790066756444539578111675308541121068192039919149577485017137809461198416798680037621718995354369638352469982063746845516758002216400445003472851587466063382655938615101674102388642711821169219180828951135101457104777731063731822972686937227204574809914674802448895844708420640507857267973731567291091362920755481379192830817271818728134616000693200574537976639309599630766432922990361170840399030043622372025000147957651709407412349533166079438885802427339750757374010148560888761460365408447399713945470346185687190420507580407526579675560295972609913585424397865014301161233908383706520519787986602952750003403623482698135148024134478516097126654233355106981150023720773168725057318230891893040355404171910108564020434306714459030392564114646856627104527699803997950533221117088717992426908807004055193178764556517479769398922910886990171850898816387914421683517400352789980735820006615878957647521352359048666177858834610594487091819070803975219027051460438095829268466829844180498431066132592428210469511269365571436813263695676674247938137293115245568859189267542680800851041663732260024460035447909616495762141332531412540510179146021394712343294677300047034705692168835461063636131224372714568394493308657589846693980896150343511781265231710265814286164601527768043103539852709399498803844885101857590918401558675781470225924500289450769929892883997398626556309753992267468550211861932274879907427105890125585719376288286456497439708712058818098371180496679032918161327114444900377894058437624023625303059015235669926609393492560511251268300816719555758228062794755997230202487106534048292703297332757617175520491661217528149713935878431179288293137285748468486345586362437059099563281683684334737171274664890180890628031022548308557007988743689942550174193184849201198200390081466770237960119480171011577827285300853657889121752436192537581886358847685332947943315020308359231183187497780229628659234703857353774082566996536524715475364735260187137731494399748651174880677571594949751383334543476134993074163683828207184556490203653108944583315145482029423973055230140209653853887379780467747690353566383259960640980319987115783797632773952880282599045519200372299196760910852258964391199165371534691237569007254797313176012860666490726362919523865701405175358597919422552463723175221785247711028822180343073364541316707210529962169169473196309400952807937795728361995785230563331558049008249036801146109293707176594934072537569050184593535796082274923050276310508402077484123256038556140419278717376882420756070505248111086852215148739818704076360819453618497021679770465829003935889192358450996227507445020988845526158311089719193213804438373502171088450798017697846796993309141362459452610100852882411868413321087566122384044272424649709453071874115163097388978193869053241983159764925576979278330824606025219371519813820221364130687223512897559822137132921760157933985406368152137004187031728507943443693379611142118136170318331662567800153928426328763497355487236533834349706044222434594425774254937609829831631305932222819111516865480784372055538190605822187350097590563024243386193501095658963122969245554687619379339175754612975945240741484473023413338000403926090536507448170515920140452389974150305034556760484316696520151106876908950561063526215979975758495743585713009942167340544012016593023673114635672361467373686904311025958303783484317943578489924206696082587793493274426840497168579806452435479756575990827927610415293166969209651649912223374435344689657078125883052272603587924821256994877757045900265977250524264599087851730518739913025773131252860156453938992564615102088180649857345188210129769875730610015391180996311376949878782958210484310851271927816094153476628995277670519093547821488831561703362553308257513564914808964504464093798148379317605975788153969909167141509789238531014161463517653825849946816000950579163039442357670619852913211587858960639067902645678733848111914822578442138674339577502919971357586790624263773053150291708711056885783137754332936927902669915384785259480163065036601669931567491501010231297247794717752732931411951330851700153934713467668062405346149438259538057150555260288581481438228863818650806025841808252141285762028885250722943619904036780692400020043948720972819676837646566094153790186947370519481677104791869288162756163298538360649353280947882627653009097454508357164893804218037239905106026917287656012982925406798250767152415724712841708644497481405040647679924878839886840722094674594049889219961871392554176423585928379466553702620468211055348022393758835208267082754903403135793960391023118500235504640795457850717575993622473383298740805728863629319936585064843504360885008975851136911298103441813023414979313368155917563282998571763678625002853389637947633915958864876232074663952424134648315763080377186601841444301613252206878585897822199011763841081947572172984832335705842603630558733490981148296084106003450385125601250827827775574158770043760154345171022234838047605620421117496246752807380916626535291600771233616349126612922930152694290420993482301601211346210085191136680216093980942834827875916804218155679524671443262376864241585310673749603227065948524531430809578621981280062018860869849368525154773513994863475698695854813580528003262880039841137742701532548710768230828960323413118838733829364067761926119625334134165871002331860651776205621224524247544819816672992430609248531155727739422685077221986936190160642403263840102408606464118660804882148965402422019903742720189980365980614299617756990538802892730554436398235640984895212375278605272588749410933699548417611402713031905691621045836083879152142675578077476407359157243134835798412352133126889796195050934305861984825607121162918396230108369524277720311118738990212888907421392440589109287819334653444323915679186124789755553638960631849225004070168212985075634897782801116763576094605142139580194871001707449075241316127895267131168035210614294015200569059790796813342584481439165573076941096572699588923914335755936429638192048725436258309828343926153116545770365191856104435590782831358868930606230410039474980604925704589265661088642346694934410314200123000634721586230936617314147379896111294846809811403287872418129684211081379362547858564822593223962847330468467496437476332922275280492192820589427981440669881598246394537863406812869560551959576843257781000943335545344281946853942417041372476252417177835993597932859491510853214502741116881985113752280889749021757253516837646558335311218450298088532590707011818069986124305103620491488755675586869336366653676286328226480104275144694830878672534170570306472446649398292017719051327838341820443946587139608218646639656140223930082034294087054945597652824569739251350014857790008672890358469602866674200321221996166105521628239249053818374256110993253444678519922599634898117657652923625185754341470004241867598009606202053836580538682919143558784083588133788743703011371887953983422959602171407259356955679118201005807321288450038363868741631710417113862158294115020877061568383026311208550086842543123571244234829207749322605102991403167270440950906977209084837403365039581691798942640384629894765360089931419846221308533283985671613004145213613264926246245489891421697176730310473873815207702860173664392471770751482811765388478174416188639339141081761534629186184084632589520687152225959087769876046013738654316494772790137460558637021812274529568181699719460447457781626982549683589039054524202109952154983742076584302063723533905834696659959947148782348515034955716307144728528853566879549571608844035870997203185063705201783875840344555449750977068258437861328118085074051340240710621947462189564284351261905194839260281147730851493727078563682098150922511888761888438287106968815424186602584045859778867433154557843176998371650298897704083858059446627559816174991364991420008758247797807822561621205600048030945655928349404020723599922921162587299594742434438018447924611771151251295810175332540297454344713156931940716495183905594063317147660102481960096638655947490355889572655008696915912633809087668979339411715208362418953484578235605564070411122223315795887438346153784792112158986824212683375762612651959126265202777450709677610514790006067824316918669258518867720653453696579237685606178694686327573433823877979506343870999986987536323269610332890654397786249303075715355540165390167764054287940022076797525643635446013885888615844773408578253505751274535182743567289399237669527550759385318588506007140563908665235319854884173954542013233036962395102345778293985648424746933347117186932453590933835459715568152456399831075806813735830570656463117766063870679698897188910600510310016995035395544130009638082530110033220488365892333661511097352652662112163540956663179334752218068911328335819607244791500221551367204458047031454723403906149993444350976308667497453010459505239338500707671015128906096950993047109209192163280534449603693980562907977113421899766829515340298376450133050817997140114013702501821702684983007535160475598426363774380193707573821821223765766967039181789484520688978308930899324570447417376167362405827927180770314239498458872517923713140899496825298351128393188638165441591549690411434400834437313459348767441709082300640892061345852405169640163583085906353144328069720571649457155863926955057603835196942797568207528486742513409122538722925340259359429638992057424376971443561048896060618391310473503714531682723628902123413583124289104066910342645779563410525042261999211891845189331908414387011488657259115262306469863787087441389692743511089056776034620410358285788451482068937954835808942720805580389272121995428706234657000770044015214922212359308271684074419576393265198740848274820115849667901298084994821436389755878525640956334137594533857492249585182357666923437301842914555923045295072472214105067323949530092773523784505499913078417289956598335519128869216867525597243036553947539750331041254240489650856281884908377494621678752777633628329614422942783200902745373514638405026901658347764784354457700673609371093718974978186549942871539358390829411889717282190181899458560046729011324158882671393273723209411319959281614575788801897342707462096704050567462184876867326953200152448537800522682063630422444502509529255827003771855385898913992774932843029485105461311015884420022763079330228228086506276361725038804137153830652691567366905073407124811339640532865494318484944679761474298202046279777397970467715495619044778760068544299012581364995002228474898141416050158882894190845616349035973407225076964432996825079088824203094562761414006795642803669568575644032160465701404238821250996011831195251742592288717998847969430808283440788412666383631292862442169320836020482034449428237189031995843201383592421327022794613184472125811416765004916290262089445974966450677875022996607137506413531451083184288255702207288209024556520551052263869819647767447003967590377200717593057536947139291547914301324795580592746366451852051910263887226782950047345178599003329387065877906231963986819310623276141034466133826036162263090388384718730740838668690028518906838129645385599362556309946192979690795848684149138903993637888191319724730673836403040136552997332416279121555629485904390536580170283578790669129768320801876688793497291543298184414805161220893841021629379658384557639271285282682066835382763596808393795186418245957559890032222350822575164122825489554393198710952129281555405509105482518441543935499874630396153659210643929068068729782864648302621558632613700975033874992711768381152945982147177104750612120926015272265047839975109978253960943930676529283360217422155007843734555983737783164793773015978036535984106183163974296213883315521664398964353541073377510949408685571493116732755674996572134993654998222175080058533770022036991596333496637284570484188203491621544370529196036997799641977419943784481904909069539151410403246960090489224829178215500723164639651933531053551271057063284936664369769693089063287360120408116379710608447079146066249961543227979230442179791864071496022373783761856880169063741092588224186677506010896479767814432920457809286026718582025730180381194205410886245109558153729206413210830442956755936414753488124331123920470110069615113413600412347635607617704573816600547348317496560799172266076108820660552700366441801691946991438782142069213941353402659078247013727325242163706597097068665930272687965133951882333162559315071524012460664637928704961090149396961061483910707021211743153554672205984844061578822067407826077061573182919974452327564906436143958955234187157325880991237675636655327147001678103075052755758084911528569448999881210201030615412273787158277707150555289851384540700714958667979100375831335472834265418545664996311226791024283149784300842816602592671783627719933198754647287037984907153400343149334582759201028774457641685577902346930874172501371802717281125525186327007172696556981849253673413510806215450841612053769192709675200853432142051359042271558991715941516240481586645384492538041095525797219330018196398857224834664674021575979094650616736510228272623202106319685274339715070957601948809620933001516091654193712798565147729905578807274234434950438850204755997581487484553003907848219214939331905313706133496874435806189961681633126049906491733586752090555738164181714172254432962055690186103526691561560220737924680620815530785307499712999245125811884336193564708809182155813178768508796545437933960808486559820155015060903506396198742047687996821274788350607865342488717531193876378431371403192151788611171791071242031608559835878375194982548745531798839787050536682349708988829755456289292440843437246877061044578467674919097161292663734040891107283262851183337198420674163867730678634046399986690629512981884937085006602050368059672277620941879458652519786715312586802572174474844662536277266823620442603835619491369666410623732539851070203588195075030670803820671669766393986872004390758244960126569709103543968392651723877958701358566812708287151949611432755358873927459257132817930968978706391449758480436702331504306709841214911854935154732732148646818488348086043540067709055509503966879936717312781279997294325334254981814694881822109638717546318156763798109667355813177510532415092136401271795176854033032929405846244600293776309251856569351979058723500819788380099049098716356291639738086237090726335215759431329601642012510476583800606411746991084811394568010750599396362341808204187188525377328760591515859823880024032768149313515195697302985509769930851045163609019634638163573558765177526555622043031012031400083397680737038344064900632200693874388431987863258424835538217757682551224063030369155183130603864577639803612442491164774477003604534399835205363746126758430251523440376588166782963384992625976408391579618714724357256198165776016774973410974126030271058084820317563808377693378096709679382460972151847633204257433092631384561832006747660345517807973097978126405122224621744182981716632997640617746516404467771163013543360843488425821889227494862553727983661040025293907162798361067826203679274281246020751547286949482122084103252444402621796763107954026356424124365232775577649047251141712112675388331972411203321622708029085791412909143678255747558198078935622060405141487888184837836853755327132760680082024604237470560011371814638481179208455235290645349283535057567342157027374727912964344755958105385733514546551060147590276346898211649662891113402716838725873579192796857592406704215841807953258543139821563004723023100097186494498375798146284732008162291166069626369130859775962147366506438819310550374686573428091386743220566847288195579253926281515415806842119888614871538783418391132652670242486974412225190787549417526010157950129334888456640480880263375245939751857929271220491352358223967638084477548158953228742021470304265352056742970290946710362369641174343838903487901504961133847957091356024187517679523841172561062708886721656680644026137364534728148225605142268769587239670292023344561723375438759926827507886076819388121052565385894238225493402725339265585184104615529407031457420579342118368834031743911530171933520931667293983584700834227540332968782811858287636547780226135440504302897037484456372783105431748851654349810656273036727776727855318951123222840557179032091465488217269150047582413181949988081912133387412716507544209711943190306765447447401832302550911221589388233242971429866905314174396837050832941467969795114848859287160141841965654337865772378406452652114597821746173969813001293648310660846299740548501018267378577392180327647215185481501975933654559296589126540753526487426989040577289170058388197600208425764967803326223963281874755167529784838083442331015868156567858986961135007136349201236512115247161035088719238352849736910293230599387780723897924375295370789954164051517152018440612195450206387361993687227493195023745284143226505641267961549891521266201028884839024396586600808231812695951401046897627873462714218142029666959721632001211446100237069973053243075517068701218625518304288598685549498478007647851804226350935481952570572088888916459057192635123529643643595199562762540616367485312307640865171538844402836100914343702163678729978741358484293283630884515034761482037053189380950956164403009167042529462691689520453727930926132806062201615418067192015038274685274781298748549576738759562143695883320648207358855248828268458554961264127959773941360505575368818485913576918994606523504765246502926035588791807919470318990027969913564438135327643430770447540121628068573687851140024492406559422076931762988596667019834195230418993379306849903071199668672321011540328079677717934099016226295754501411869721154746547486087024766979960439814144525240950887208229749177915801614933603814201410220634868460084628216295517042571563942617966687455558706356952702968630246069951155457180894653868880363611418487753818793671525541953676288769861987498611347451738804334064349903536565332538834513432560005451193642555646068038305879644297712708366744591652420638020477902493968044402411688575994478521995708497359375985503133959654563205905633417238655594233317295347236230399231133470678589755218288697073470629148263679154885953133783524757781474295624549589990528040206587764647420353473602306048279854099902597184711704062681508857984360638026646392673824960091236950809545820217484252654157404816781586815721491557379287153804058062536872920218663124855532979483414276660735250401377405976612589483026247293821479076905344704046558025325728955399392760701812189050910876306147922004562398587907492581094238644520699022243346883879074545101245076778520436381320205797704508576012634255189314281385685532908935513013019836108464510991558089089472493470575046069356897758687462859460851050365037171291241512697339082533672876845433861330251447457840273326973906101685340016306587449106006272738087280701238207801524236345832091101216367337623947738754609832556605626098239336889048979704940151947601861319167077943887951406592815247108087668299453588258621451582409993939248402829430105922452157976423366813302890779844583398704664634032497803079847198792364470375344754627767371986937767840717693661413261726405549145205106961319430971281287458970443781292721355634178712659105330154791991972021379685820345147054680735706123626048274098116499092470776332483245416136308609253353464533239785175921737088314570014773749917693531685507647242608610538506407522312892471740431845582359404198329226889088796541830888922414759179832749199858621341708080319442004435825590752363184737693405979941141280400963012331736874678659259967374326331047553074286760204487388917561869951734485620620824015534393315804729409171050868506183450194391836510432325376163487231362417894332294307329442570089864562448008986389058852852831476261015589945995998432087416341226404119462639474043755841679368817648968852530922102256860242219024607348392995367292556654685139276302553238606693776712749032083590505070620275865063875042526051023428465420945430331511081535675194308676025093658136810259078605250177066289934331324231536636336229218798709995903481654014684158754109390390518569766525967306834048498148324836992806111790220209381141421482189074252532101040350428620855595469575843998006348452950260090614844003457448667349587013797575991822105802292938340595800812819256004557954379456358613119854977921028031511073416569542541893664946872944262685083864217428740192600205091208159810352055832302770809792945863359727924348413910461731831748272999937428430555832491143896050094471009581362622726917015653786163997981822181122621920236919912571841448144778146735785205067195308858171328570425418205199824174984109985266331797117035696737932016957175524429437988870992067266447531704826347701894943376324242074255450330090074499032530369626684236841292673765569253576261078715440422140713448813187752919175732246952845616931161221136208592309869243638347050878132662218637194770365825904994008939719605597593313665204301753445921539189837832367335217706803999236803433751330708220250061557995855499837637987578043585370598442177677067593837318560766290568513953783671607805568147324035990727565010871903884289616057921693369144430830205643694443292913274292755623903452751828607284263371180195261897944333796845996808495972006509086361843730882683218010161977202360590142829952823560435769608560569447780818083058150775319231670332011852048457950348915763784177031091897247496673263849619444452456067781426578263456783951920897514168125797219339267352736128257830314377165653902767067114616403073454159876403899174308505502817530135587384685471942417794008105352106229107766754900213497878837286117214795283288039177938702264155652781911406439996082217949907634487569742131732025451644968298967328453393804566085148291322699360944485242621646030048254018465958697579159082830269715079208447586711416093711683434293294032394369520044811685454206931883275375574379559422719134515645944021278081537155574891537851302180155742468377982413746140968157344418418963398168291568885324424701120023068540510568936481275704584919322056089450864010026990718304036326368061544278426331394097710354059073255238759194019871777236817866908393943809544693766061196767537446578746876418863280021152069639013986137094896012491432200157910984024156929620041309765034059347080301260528069578731464085292209118845630139047568949557000293782919826947363947555117953938917928270992344203535556117881365721514258861331111687315262775261381593805821481466785886781764100150159083016920736115962969277265849929977570578188742551897488326314122585247910580871913430729864993292482283575763965935588782619128552245129311217845333275517519516486119355732345759487448168299531319851953781248440140022916948723246310063168924267269023368446775323943763247022910403515448934039508793038797426472126186868751718207681039596923541168105571210193087521265427361862404889875008864253545618698071633050878036668322578605134411869026543045042462255770705325893228575218872275009943062168744014469292528864414947302207234525483519367804609450336598665103664527959748933187235952632293250542102269117906072304706667738630432360384311096958899100814712142322030536777397804433614664122644119209376316788478041981275890979775794271779971103427347210073814750569212754061448297944105120867937737998561858691128189598829086916292972997735550301954367549631496490815906719664632953880605435883561925008244540794356073803479408452391000658036977330438814553229201029544938182998595085997934823336836789230179286803566321876377663465561783759078530761481766874930001364749185361848096767177502283072152310793835380000037856142174161506275008605193478555356920360840083055853572816904879097993890513733442341703555975722206936766659104220357349714363276148060012074835613487226619272651814866151039465819296938433296710161928170236003996767770392916957877712122454254707722565615295379246161090153990284818492673291293648561115749655751257959767131484198544842782829398461821669015416097059402842402766700749492794258491587351981632511469156879149842003705545402125205751265269205377551796045033087408338593666755721065225937515023065159355253970234767090290060622434078847135539727902959594811838293766385838288187101419170876229731858038331553335800874369695805013589303161401123876250692983990483072928715714919092997468788258819187944600835706199726699089096745287523188902567510652144483089302803277437253975901422830131905538267368858676216897686600364404066627819510012691111857881047115388853648456387439716904348394451514751989285457680673405878990498912177449373034624243764622729601759941402700230334447992581316542372125878763112023649092196278861443583502428836456980380612693992750467329081069377730480457147169198748828598710750391621878115094320323053722711899602800813755659357310988652772410069996809862634578777879375590718424243109974353644155026034341119666791658904871841716989498539212733851344626930022148416869558124936858681163710970550935520168655483866888469983650483896055152751780821332180501096272296927539529337550007312860007705681098902145587390741645209517715568954087650547662092798464141381966045469055672400555761689132091166058278334566270610768906633218542137856080828488525781475012400333480366044027487908797527549526873326994943347111668025689774997883112947997344470448122133495242308422043773870783399429337221140750222238208322502881647565564266876371401597051916123689274527729328969814641936416098163030321565234165672045909257376937631350923163253824600921672311303163929315315964007580541092466186320020923793484015116691355903648640340449025713604317210014705476682925569934804470134082988873212241749727033052221283281727262297846141046944826035291007310376456989408489003145559592060846434284316149071592186979919649176948158538041904352090901418860944234039866878719709338549460804237658259139975276147495696176863311764875075670929704952751954991347271259031319552240934966259321708942919823470716715921635763513635039342599335481227152591391644725891030768903432766773369240366360475675069773999999004824264307183467863994596201241391873099430605481560588757803589716305748734801365289625495953388239095464885069728915593588055180118492534056121774465031840833996012904901859706986699895080880725039537282086064542794967999498390639392476936097168765125544399317918896263096839988108313799295917275633968345175499760945925698706816234340406683350322167949554235059103294772675769970864539205140119735874226905362706402815023880119513748594814353779059863729279357118681812003436408056666471657322387683033746186615718124825809768465230377424266339477417244060305681631066952801407982062357178637586084445273027749242658861442382165744686588750751242172042242523786462230975978096400721301457724131611372838470786042899708840199655928290071351255954666700192571432229806696525244279341979859907521612891579126412829286753702614023531761597533871571011533065666014199153510230110503817417852873516833209619850817179076539413887309694937815691345394807071484908220090785481386903641132426955591043362882577034149177824542802554748823342372368445230635681729986235405678731225567635319741743858561810116030339882910675241713555055527842610501562158282019991937856260987792438244582634286146518766061154975564778060279479469300151752852755401415778483284621241484476550134804063657345392359507478801127159264755522665190637765449626460878024803158298663469293877755950075796424608125365962919390770993983522988893381816043835468461576867842328707803293740808205650623225904579993707481239141623153200146719689939281212030082069927185156808621407429491065528191046852901819580805855065605657063539012192780900053150916672633814436663444556708263345628300811542910277869099390409923852831337915021820288807392415499689153395547386367999871392385499750115268757873420905530438889436805746835951526408323074287809301256542536554210615357459242980131762848173720085185265649041219749926480316723955192191515334605684694940673789572267573176552215666068363445737709782360600191111481333629335217819343530541530591783065697993054871113328543093885871819115258272171938287359898552383628309469063449144460143137136229168999187919430206019768737020183477716976359250075887238509491079075530972081902579349860401078091205060999944628443491432465172264015795495465415167012415015413912982340731097103666139425538823930626121594718168433356737857807488448722902194110979460201900749978012507163722137167071641278525500898124541942028039165330092922970954675816039425440560143767474028273689096201191725463749553277092486196439193388087101428329172305170630346578013247708619403733327271474613507675225592195815856560393246679855131921744240928877512937680729645642981149720876670056852885966311506100896628128194914907728053717130469091828085575694432199719762081774055348775040098657987923907733883515457894684131566513211601683095030110390178737843021576391243848448681987109655005067420655086458504577333099073342794781809916883274265546720144891821791546471955957783231306145220844704213735039974707786973933749914001755021199048455268111952298488315136645531975744340738932511776016395643805240179730861388793155310957796704477270478526343412385576188078833660674070009040401687644052594335928031638956956193488303064520233427942737556239702595107983134026605299186436536641648928578035296111899144839768510518756653639606091052556731188319624761739893113926712086597589990750145181153714753137975307185029150983719658358017014408984946223650771115551880493679647516707019560160811835687835997787663821318800205369397543899335456529700597592832134985459060637641115113876964616683961934847149228468727627483308508091888680170713581012129291603135281251552598387955771712595601725332923797549484683190803008037028509666439435514463683102756086047682555100823694972395036246393982083343572774200831197442347270952271604414775681423669727662132194036977673228697483057077498732035066066226603945558326237462873782882868895742433343742184558013611499686514074629887121228955528706524764458016825280726127382613116147662752798753668610070807471843987668957424072501647341541962158502939382330957506812924414133213641290491034629032814320949668160510532562674708024780326372725806212464753974024635751614324557384232226504706436500875152564550036403147484357988660661189892364405423525130191681686979644517237232873576288577021298201781489620985150031784724500126183657475042397041510432673194273714093356149085390492955179886748393728190156108239218785856965732281687906774299138039571389366664702749613220600792141867454690735718128417998915919388716680179781860172911196301112822744124176097836316980415173954839867008608429415034473989416118241627537497569022311915442019339743669387497699411042797870927938837725855794609758803523095645777167867223686558626711097206857384584125793541522365186617099418629421247278278197320029721267002374990130592479012719824604677301983920355701245468334389592981587072383778182176809830577319168778747638772468792225055244632428799415594654732704498840067179056229765395929427218499986411740884078652060999264728599863149668317514136240995596196881168885487271815591562785010711235279808785500079543933732191891491638560742848184865644950783912688474412058491654791854501893374543893334226922254705263689152894452330666666590971463764733021647444504536439842271148045907552456058050453078213336268302009273720068356306993351978910274145460934539441934524315898465422076948951095194882533994888024314208145055904913552882530300243580230065509205544013434975757650326956529450477207039902509561361082332657185072029259640301960785626074434650291092184162828917823653939982372303089084792379225343704143728250517140833143393634396805382062693125402091394864617907476525783223408834689583430419913248957537105024965705007274470246284683395404412326812782012968855975945941124623083141959125628729451871440133711370204488614387686645332590650241806761371309644365569983991811793022482444117910685815927713671760938784723595166457713459386593734109627785541906916026561882978073096635802747651213530365138439087460145616309857729378513537587514462248914752466793784180450748131867178459796570129107921832117072544110941947256172226290391191471403464475800596601675530101524920814620036348654388577734112348321229336834749779355451675994576171636071376929590501732966005675910112950484273178910507399708590544900252940327905441072316044388965608568833556250002605079789032279148141851114231742609841848390306478033335641325528928696715077605992301325024816331651906384454528312277145529559052803682087884883920314369186257145432103136893896794087856972529217716795238375730633581074151457601494180160278205795386892883142043984279876818169700604561156500766362973983008456989307511538721712005251484341755903580224555574008024987975731060355949675179208108768538007884726418440099005791428373843633878158485008218325166187721854772109604915102894407835789777659964302787624269380560491428780934337531317197470255786147906009918136406085871651091985352132737705887655547529991295805809208372431322881560773836951825016074597695797716918444877435383022546992693501468371278261127727723287997540110964542333484591768612535223041716552773623377014117725994714122278944062816192319616795044863635110479598102050635931209555249946144977388782227640858661554610474506682311492008264972693418273453674292495492873819436387199961323096543615854396616887317138604982434638878766186724042717140594293449606451052412388678744645829329245232449977368655106150368050806954376800554892162910452163735583048622751319729698279119651563796906064259783839727351571749612287431083271373751400490016991972981357196978304094111016183450653534195804623429473558551795219643215375321656918627033468942901808124155091617717059777468408936414548417242941295364953098812687903548341755266833994422404871249533328242384577862098757489532718637110187975396899818797067677269110840027466517822645938995191570595710000867014886244970170838086728747447700526078856608873456436927011008757513665073083541989528487257222593870349829976127648064515202257806971595620049156095637238138125021059261291529725498808486085191287568238809435392627115756682366523311158592549601344424682498268465560500329752672918581652140882694180756508053491088812555729247314951218632016331032704979394977736690399951959240883084650162742238194812469690849649278583519040260248033849791426614280666478758222778130737129750964885519122017166110074456710071639628941078741367097211466844970931876276181412327550647305060905910642379470991946754179559704216688413721749048608850490681214611645789773698535991288357466021561529667603406432906321182240427399828717971900217411364497271623085266813717884996880249784628945762535472139202503914591091174136586186871028840906562509216575420185076892179803439332880802373706298493913068868634877043554902869180896519744752583537856186177471277176946705339602281698536411752989089915827746360036147500025666485053966007939393793016814305109363723113067574810523826206875600234365773708164114823381288106563707881283930964779656739565578086081327247887927227435583151552013919511523989075430642611866576022829429961516279514975178060924781618249780511609486455580967805896636211181482702503785790051063009178961714032973594298657471142695893354183382426965877063828681858889200458884162318678563367561946260807817936993478852900799790502998743057484783923283340788112229950614858223886379098572317262180928213153112659200110963933252272076529396685996983323685500392278832659692447491170373407948961931061199306384633077480823941251968904515006866893527139378394858231210389789391589619551393687538093890775453552645946083333970182049214704801655295093952175084341050577196317476072137982677813848155557018386287068459626386713782813657850370253803596284882432067273975924317058765495040558528524612272878802411588807532235227621104196204549943243016183015835372982035031985010283194662910603692826625118433736761343071165323066103674780583466527990992424348006253586751350329213749483895859082467234940369077977294636106096668974577062795621541511201952503464793966833653879104206233591060955888100272768173535117078719580840990023233856892794799790955513053970507438257806826865085644657841215625705897248863217887402021756543947336289006539529712166596587431386699488652666281658948102646731421457144643776033655829108737442808740291633028384749412549775660900114849744065842627064705354916062178535271785997630419318535411148280861473933552126113764964432987637608205198827909757444707269556787839581423111856019685663906405546390122680819578842221702599696837721951611829675329096874164327915899937354718260294513677406700727686545375613542677428058797060945196163172126527211411783941663557959475733946949035390051781790393083205082821383636427332232265033123027265087887356278446749108090375693601283978345443596568369648065190928703019336013088937858086745153439019726963743200731737715559053119925019685351859587596425969098123087484428272658036293482026491312403648342680961654669498482526284441833771656253057774593792301296096959482601924752889659832321984849208080927254919863661563939201579341595169466181449011405041428387092918114645445432403107114386127149547604540370054176830025106615416880124727550495482368468523226404165293270216358261085117028972271922010979493167039601821715066211250382374847420711715578352210803190728194632289230237225537920910766192090926123174506678574626914143508020499812521145908195526059927045922872498134634201775186294213923205786644722992177093721274109354190595754807994588950442038348697773474253647202104556979891482396213445933709352073604790714539902867758010577745928610635207123888471581381475802992380571046934075353808867863971965320834764012601144499145429816014779330226389149984434556828155602949757722712584854153333382353795927768030012083209654006892813565600291105224991485821016231090264684788041983163549186704488184424244153929909257276127361928595667021738719282005527621122866579242208788386692335936309403288558727815247184538440230909002347873269875122208254092699728671010691671702965992113778885272869303802604339905028160851401991603592242460127540530506266093055007903178115827293870764280265996835864518717944853655655943048139930491891812101308126101182301569264042577970919755082171486165728000356212940202238745244752765716192345680216912542296958984429445966362223625397115688340383408045244832958379157179792099524532079273296332726160752586888167441099162311805856983267204264216140588960369383556820926688466056953700538063008157224172959256772783507584599565271820216682908315355471964530946518105314377321425744217311175542214320405373627819214291294535521273038436416930584586921307505748040868744916343883340306231187126102412004620291669173995850467851062500887200784996439723491242396229484435672398303807361395953202875443133835529052958169395192049173548791346959100134970908843339615017053026369884134214406485114544196707254770524814960380471708433564440864788897594708359916101858281992110807595338500679193934828908945082912306058257821158828442464863909380372313343544550999828468935558144283843248101098529714337993067141999541921557667236526471022499796542741827775602960890984062805274914390066088120919118300874189343197742140407241146457859193647239061807970081339846453685985694412469009415362527695157396113457339638048069535608809868589095129914081723413314866740805142130819076154946946380735367795285905462893683699801992232420520629522948997408139173917712702772174703059657054839909499406486736988302736641731774253961861952912371015709388691112802781456182778508851482313164477433338847474507035199519718418445458213046211404955717144318045548276035262316868072608989123442992618122106336280618662982503395447588630027460850286185467747241464129562518755992449231508846510514192956581296424578193888462192331623861113419246498355694739552260076092630276820782522321480137395660051501644363818396240171222966488716422733277996074882992043918706565810698144341908540994226448560961826386089353815614593547519341429624928005350293927798558408682429720171093880567982590068943761848381320422663383006133240512735509683858165911146572506260061772736742396154881197571214345504411264996847073481178063773066211027387994383984501259649244798432410035749734972301739495693037800644297869760741062962983135003871637362779723920280906987858570008333817217143439668857570258924964644648154469910547359579250001274619107238130998317840138697439525677256814505855135719094910570713111052711214146808939662575876127147932374173784817827694032112274155802295958518074303350770030056281763748337618369433008185831061017836260220753353923401919433779426491066619305625395386768093022626959511771445494273262633542688713995313602450321364242986485641819700816551982664691997651524606084314582033339202021782621016413106123009255254205755407688974356589042538069978389837262408336881448746489083895721451233749672082249582909894933809553240444763428887774910046142682190321983591686822092794245992796115753070232040614514161002221006225540241658127039451465104978972797159057264816948157192836319744935745821135754002372400047778472406744760321321876437473967431737573452438823367973471033966581321364221645188897699209731180840559568884770000254652149480302083975576826217575159209305169942427019055639445401197069906228115250224483413027797561024795553580991806215834710911707348003226442017590150516129720347049497899335609483313318318523282374250557648980704679545117920858735021733368627797771202247674737629854360329459099510097250926071002323628369100953865395647003080007639165631576298313432310723137633607068574936683953090515239278616566356255818039598394877366395216322169731800543576019131343249630062827408025645180590316556127462898961711661713130780310532872527581321361828855388561229495005538451376358873700280091251590955621163671528673167833933200583842164732238964920588144354463628062089256689573967001172583912878288524651951839114098211722087136824386650087363599880034329310217460985832969560737056770919888284111643615474427289479232542819455077843005213822364381746203901165665792850731680500012724610688988872037016463466512854207207838566358787869325579285207527541540316277021734563930115478170457850583087131064259674285845668893662666108689526537857893901477099077780548893661668366574738246108210368456280485613492583804904094257328143220102121829305193300673345012558308446575193031636285608979462751748692801020905669967806094648002755700566071550109766076423702271093485325098993317080365417778422778362892187420136637058102162959184435487792716279425186627297766782975237769939390138924529191174072097372834333148826687710807096348389524813393304869625390395255202659594854283537083821377301405836407689830757034365584994117809500200345599949048330263534822554482764514632811523725053733357669448489833738265936652330336503770149613334065729458134686042048457457228031143393366929364003811065705254373543420109204591690298270821545297985029374727082567206552082794886035221119531135147230255870113995586833701791415194947974766670951566732364472241160385556899765312720605737829641301153959314856100657827504980070331705548591121954446206833337118588300629365956700576673131546571966820438656038310034283276757358969071495044072199079036646190048936713695908735107613189177942808488630968982104687029930654351302552651589809493809762393701270794570064807630678071227186035465697557522766874658840372298361899775521432936699928084189476150437407092967739678390340437332268707674755872762643129590228427840168379864272711499787839977585825124086431966569163960793712402544623173285982090612248857875519462690930699220782521735333935235335266099559270758213059401090124034565427903370295175354645017538577764319790306729172084228123174981465121846506283771285282104434675958917774581466524120717941473662884643509368143600060718869476838005312470250281311005716619657516121741562997985219729570552705145583168038004417603467725839329312024511522479322122182384524935704589750253765127702609069236799745183893059421943523498179534126930171471095392467895337204304946921991711303733978435737726291366974467568721539882389448347352178614150853193330078873630844554208855829552396716361847080276702454378962035058799978301554402058391863664754632124057268829811631912713211911938686304848327833204337450713041154187166457813172261562790369812879104189359689501785926764662794039058936481758856743862005779955518805164268308103612943527948411363249191233855102083826039489173022085596034627166546217777979962484611110956574903204687557050719684563391476933207691335747528258882013777175865759857145373948576873309667534394470161734787733088305531394140993531067638921164220577336251668997857335941108573669084085142347124869568641621963157396070945446978611421031104820603370854342048907521949299897470987949111843405660359978659091327215983322131202521151915989951891265967165036758974394667233611438287662105924975568857397701508335455887891764984170169987825798011254746953713387554855201747267570591086571713117026514770110215785834513889682495573548279102977690703745868137511667808219362490412452730246656391440010018956704304298137140696552658816263154044894695155162998666124364838423148130465489862491228834446616841595946309945261366505413063373254579888751442048877203830323703605913031719472733144043479561505620936066923045901193672546550608595973311436680380374092432140875951644830069663077883105082134463235900252466732342562987529879117776858810317869850374436168450256505478864824027305183784351891513485503869432846331983426683171297443120619358644105073382512188577662433068575503064562200175043070772858458930062357976145329701004347977662886018151391961724246697986896710516968133020931569843353049747928675769991498749819699271575133552821026528090945243357558873493550535223365107758450499678995261245291016183676578866124860484266066208425507694347654656382103719255235834054359846119314505698760123322164234575736417322743123692007847282155936267065284362632528973103209654447538645917198913978533384775284797108807956495189068931414183355478464985956680718020726201376858107181387720768955924746744042582040743486307740533669156251544058927656924809925912364943734463054085466716951519121043068561264631283325828286629109933332710119224340743242393165167927206921142772186915242797071649131789677278547141587788217261646111294556084765002061399292302481010034135639323473350094475886777931885466225351179968465066504346686732116146911115368800857233411469555609817544627763978295996061860425904583755699312470204105030503749268261741948693947965417565643699379623336637166894563401469978153627703214059238478793810619676467590299664211106024515435854147140946025258555773616856842093417908426440995068182012709293636712763386352239113004161082357822308087236955386467203808202832377874497577095596601702999986241100493648463318341599937211498242210409886543669573219192061351363932059083104222554776424300428490140169156893498773687321179581596281055767276319237312918964479203180700052344092627378565945154998449135478661934258510766564950815592778359128214374410066603584288113492524505856002914699489132688882735792951808972762322607336952714035822609841967519307609090491259901302555495559059005470713188819153589601983159698639633884648342582210413105450826832300694928191643849264071533155918202428234504918466490307911393002219271020026156611715363708145040841377237956178858053178508269448967903635026054010524001482302821434725842449113358287219299284042698091775787999852325003167391658127723654069200794687461438906949090561455104622886808220471118534740451802679126450469093342682388561900267017968289591563365241605014113730213183206168694477486816807455256762974366388377197451456307141091479208098810356356756215608586533379907218654058791900970404964308269027265390624361022081850128373755588839457191149516768150829940274269744063583047921513598175213968973689527417321568260432911786837781413793766168052977850634283407794472862284402655423134767644599063025241689462471503632955193984208390760676530988176620499836271554207566581387984470015060428167668125168671781601090930668166114947451751016347115092479556397056490826037652175674591360226436622236765823681899746697860693684282225057212420897378034023276650320496894230944403106638010793098384320730994179426262385920093478999568814405762871417906260687487857640896779688464349153661592363099925358006527423760965035736262035852282664430387091813596052063335442844797456073134856656846064298696264446134568280356708097112564829118164471123783418411931357462221428931688219467848869924719224581118397821005013307779632601290867238478888585389816527838508622260380892624006423755168438461022732647473451068118449362506439335019688483999077713590429236081876111161662757478283011096154484809758134005929266226568419402895007148399349457617803797070944836455479783125411708707297783162377777327098428383356182165036055595836795327445235748397215134476712273512066058456929341873095833570598996138673362418145633709837467873446060359471955112105947630890213688957634164332998277781116072444908619594300622344151590350897175076424710075058095330850574088591571941312165612858477802665987488004442646938923678087667531310630244896762759225045201681276765525009614545566010432374221490353532194526514270569657900610123103140432869705573792660438779716244148031986476672017963289874268855359970992879883768062339688854638564014782013666115500425519761927508341438851639997915966246192985584529777585608150689313325003452086164154094104862276847154198437914201020328094079672877911858245224192216140800256066764054305736149024619994429658347137234182289853217402388220295512231121776455467931449084474297513108294299099398629314393507163395637261695177279797077744091482850352039779728371167494994433807772084255437576616397965781289114242240004640244466618236692758835629714924904594434783913727219802895267247005294718499434024037276714943389215519103535812855886471244654107060079578063015042610703510972127369195203388551954890329026798925419825717289092827665740293563035248044749906577918464794546251480089384690536738964736637281826574006378274786330238525761827362836641626933216714722988326885772222946897301130026132759264823541180932850514693049656506875520749248497759404487604717269739955036239309535010646569340959761075563865187302782396869138787597731754591256317713298632837324784698308645893902595907550191515162033857343513182090238249465263528596690994043623502886175201636880277340175024547693160860629951605230832014559953000283653267886300808877280656807601774731791156758046931523709285374149728553501739945472552082277115907729492530849895273563283693768422081961669797408838346969762367359623285765171511693080562877099993427493392054487859602167634857830761971570343163810092226673852333454309738087148586223753102881232517301789394638757642485954093048794896508300622264896055777760890608018499843971667375178607303669158599826734794760865729582182043049241166032751971639351476458115134864130048017651951399846641519192377314189235193773155958939884421359371662640931900728079394530791204615256448823124987703916283135404029334258386659674025308955143526756069577320940149546270002260093864210680851364726618181680082558859731674447767090092163698651891189912848677068479514830006556226208423001239102324013348862775289555157924995148829794606560982657590617032111990141888241302407320654983703368522147520367008404020831752682100869277418717123999584882719242233753999021726236647024350187614769510500070790997835711534678156223751816706171559839710715376067761145015876737077927161824700028599148895447378657307690993100889510373019268944879435614033751224712325658354780259389974091827436944931522167251956874426094738249187770504611499421480573562215639592533047394663686853628682289125023749212455830872820354967031690721521051496828622220315580897239704238799528767962518375266303044866335246918525226776573766960834416765149075911685366496695548251193860802162294106438676961975311518979467377187381861045027474418700320911154926858464705373530339456069267644011093219513460461357107732574753068073220505529098257966835299086002158584766117470212100785628433843715945857545210248017806727532344505093964013457102281565751483944014069189457084755786695400307720593507338123139181455435894906876003072949671926370317989707384121732138318807571907445616070088289825153652526236102343960535943209210553074982151050268499467645457084118278780698627959459479686219345431631887401092975041114614689851451075301684466073356588217987161780016496355753961861660108532542724072953544505459330995621015357655779308500446680618571772461732269143474993315350787356221686176229645037109323976498387951379669036011224917749685383006694630290394120082742645978468526720679010437403013288452363022139855154298766790321079355617700226665747958790632547154099634442328404387448641227053676438476926765736558460711162601897135757765866881726576937760386138634448768474062966361033888898383183725004252678283326166858358066566848436476719070921378800721043300667838810319664594149412976881117374091241043088509865889853350367516462816944783168215029634966230310262941117676923259863650506769336419327844237629077502046954480548728684368706750710747391052805084982048757224276018978334367831191299396035685735664217676710962764570830642087959625945108051185343625746296567102660001223926667953616805259207495333346795622297101835655905113744832545543659150806277388662105865105288158669147916787262457664380104034465977656921420558038276426917893062013360296258358849209135153660438388651796123901513311062968022160184108310291273266189466324053572001606832194035999516489092487132522610842959987755136656304220078726240941622589787303893821137191558242642145609606813688198026673981663512468024385829996607175285871269471480760895412762094401768218325324178417763157163636724511498206360459131805020928231866913781590482509522897950949120248923697647541262597937328819043805615101243911778719433174193550153743165161487407507032555513568227597966934169745699632936717267023097485796095973075081455023934634573448434604995914110155292943904609126386545094741289725110407628017040803809389777306180398799600727943383965656936675181200142600350881797663239071032839701885942998222027545035873632965695200423032410111488606900274044216726445161083851707159755463568023956666793290948561473357531015335262999306217919500561509966819910604769645999512209456492611411664344352189877388176051689269767765336730562874322531971755413244593948680207899607855907373180044568614162554672704124966509902280856656536946106092025391414683901107527578185960801224549547168557693460595254665755927255336255869525847595976966883409031423247692088537744858852938552616553204279003981206915302211733594081428844791836805743821734944834200469844240127272329949349038421754127246779653888467033278014080109509321719438511175901129289904120046316943261866019728522416727569410257139422775814399041098808104270618508574030629810649984298562275225427441639010381129155015365317437116182266313140231627045165089344887151891825979735354745167172677630697551188588348050913812897642743120325305202282500975712991913400709322978984752215413266101405805189038932696610990298343739357010031162441243351222495295573010156289441328984369084012078306614404298712979528760895115845891227675426468896900675355959253535789690539023795799789565175511803538089531013075295549640578165774627244984490179872378150884982206073118902597541365813612783189405268154414256384216030570510559844038903459567193925841600390692504085456717883610682774963606543144561201467316723098386181525162088120577302155609846271269636172647311375020042670232436706771207610041261367062245830920713040532406249757209577474215269245719342211087094629231070195458669775499694886317479906926281236229221762955670583453703217040669472426422207693945273522088415158051685724576662815241463308359076839417164628895713796081497606578073928047588198730560015459004904526674484317266214142749675624159079516686073697485029951068479672976136920303679440736142159918814191255239433468874482653205708182409574519534550923394111494363332253936051306693583627124100707098107764229685897749164810412895514922496014016433597956239961522754746346835969886159226925011561063224244747297329760242566380844728920494320342079016576199582063147696391746191499199538606100145093467135179113950838347852122708040732835369470580720388553913323971721566839472025777921575441546793969996595362753015473451954562269345045896159477766461823466897581629479426928642404633949432643523986523895277533647708958948346482700216302605512590092198863592302311660608593201853604223872925607800836142027826912228095813734049979740556187881677387538240268354914346658804961763421552288793461378912756779237243248067404448605618177828609582607320535665927390719148133209999016414282969619979922144343420904944763377931867937474670811348595361385230323007598089823097906147845946434626137477384190482224358145803154094669185554120492281187777261872317842738006517503309509535050387634081765005044942590577223767906719091218280679929524459059098069588036270743132954354477428848029887280692396253454082370664693376929441076986693883414547123367606314885567291674466074819658575580742507234260029091786986662117647580688833424245045920071507338385762673587844783406388270779677406861981591590450102898485113422003250173945636554468340307684018259239129181845189571752785260278402582862192999844782815880499873413850713028851255679955700784894144922641663170428451791932120908358794774440289251654261849585841733440086349498460994214028941094143911788454783143168857396014419269110172018946234174250411005298393863239094753652690523980527348325138042191662714551310564856415685026592892250394332751734271788775144778745012644355830247877803612633915739291625755335433913568394501418302072733845770452985371669967244421726286721594367022962193082683181764615365390538061260597002483956572973709858645819160580933112789091687303407921593324329691105458575650272821275999662416372750821236291196450507748937107923707359726299279272143054620097387884550784803577250085291280619220975444616416277956305098826007689391629157291656624552876869603070689980547762225071605412889825089182341659987268536903493252863438297328259658560291054221047650113652326402901020383478537925314651253679528506944494244996597428959412951506886196439313826036093203400853122414664792310806058150202905343025482395131303537007996156923788712776396362285706194134887097221124210448382215837092416005344248947748978895256341231224488528151061769507231504237050440416022996925082806384667279183710646353877857554066599164845555100551488870401130219031042615600745421075518224646965534639353364606108850831579558592870749995930517592739603645048417740023622307944354016220069157009561997704843558721171757488517077659983753176250094194018382399353964386576410753671750608856147454909573244067009771434879717203078986666991489357884590062342174366867168658791131960805112316083537759063209545809772342968975555498944663137105832000279279842375129428749211221017325612049604768557475364985981626752580062956161016783547949362978668182182001634588183650960154212832367558452783163008826256439554087000073151060102528504798038381147188871810210149485585351694498972734904702625864896959855028585389158032330746842380226475221628088736159183916683228851652657708524598796908042756863438293699683071254015459661604551725792169155241488838937452517300181226992131009044673584986365992072051474345608882179263496751219383393630393476789584893938923374891312491321015888104145658083237017092770160288802796146039332962275978264824559468824169080426972524958781468898200960824445500107960888479035687935543880494589478006046815933591678132424797087037996938214343693396842529112087766122966341358390085650960860926378986148907250767590444514452721405989690092825158171498066987992650192630984901748107140360243992359638151981283793640166670126118989909235053495677516597428612898570191846851762616300437340141066717924744465899312172085888008372240572853760299819160801715650815924823541563031628629645438959697047431584011894497551256229071548504398575006928627889366654039286561730399345017163837981900444416736397793391109296248236701869644679169851255448835776148955907551591908204287941886304414264911273481793450869784365579502239114003474954777007957807826304830538207384505904141861734045915916810373932055142991904635731358034775397892678322089455928446711495479098777533743079482089669416089742946579200652029422875795257113619826551800724721290129613755067243082392165880014109500003247403217050916007618463957809907956830324040121920067492174721082614437274778177084435096367147030530450614340624563976710677516187638583424872382271838447289970620788083949267087671997219071811939905601059899683824978544280917475513844161982648754209819929384733092135976179926013794327785169321416355585468842997706225932513809578195479713320623446635647257897948177489019738475585928356025820820381759677974971166995575073452823226000409972484388467506772030825429852150112087686512090136208590004219454228565608288953836312494366490578321903061615916717933795568749586379837082170019138612276156224340031308166134916642918944526285384819878988932665808961023647306099874259483812307009806441485061306425378853235840653587164003197932256909670496386938267175007787525728266316673216103978786639179216677115522649379752603392414202965059285307317217062660048603732403776538515780888019856355055691598978018518341669390079939355179281014831699263909585023461431624828183518406079762970231510841900345837516853730754851653023883578424223597684514362572503289719807195783471767093138970431231989864909792729506606492694608706838159026715001179584128989280923681936763856167781551469117101893104907302388714873503125603037205884811165395711799604578680337280851965797201846570559642415164505161181014425697924589473719974802431982765819564779299109669339408008074300128080260462391740619895799850867957687654567323646254931500678309010125054103308411943928032687451104154543958369011274051080253158421049269245433079014485490276261607395314142389678531886768872819896468436039381830430376549239500170816884674246287310264521974117243106862609885276324117376740752419665921867167496749493070656830664025965820420297877562680055184607381982661081423949690964753070966061642767231358955783406132439697347683758839328707781402847045398171935757453620102882602454223864117089643861338466386428323063276458307890447860953712506732111875976914375828689964881253970926647473812853304282304887860336965876217675556163686643084768857800371243143567875162668876946382588660168679362165717182309742835597766415039508162378859857350197322959837367961040378236415385854966780796744695436602223482712617479093564041356360804222613586492118178651142170769983714215421456210607554972564962390556888386785840061367643805767783147266278020438883766100107716017712838997262636053180622193194762099597708430682501520214067817201082372297140317157774482946068862713647885723224678907545436320864295135275703183938930428482388370147319559145101381047806651307540892626583418161641114533248525371778989824909559588152431264465223108384746153280467745748981657838248852456853449776407313526880045259157170269170274661974366432380904303708895075977951283781670599664396465000252799601178289846518703862790289945410392867818196201571748532111681769114821329880530276299012696442129459268285332201246358025271970004300351025293480483901761323010551578233642064039150466076684017158326812320665514565262336608007586018817273726531629599154122128376645981158443309216560472220933835617910873003248161661861590929177646515183335238472467176793072889293260884192543241578283856091343248912815358368554587052742337520448541896357694895512048447079559053334064586194799580079780612378264612550015553817201471844364020801222246824311933511350469414593687387150425389775983233516883124616848249822385859870971876119534617176348146390735625981781635295190087789382337339933300060924887099519805105430081972330782701002082658443614895171218794691291498033566469123895726762941508543010572185086231678485228703389235234222049007477952386512636031318054189800945512716841958211390342579929234615309752259867331410064327123156893895787437053364343245998936813249842541667002995800331622297174200310219362666984954352889830509202975542568259644885547907150336508957962164587878264031654083807954555460712310933260697779606178232143233040771854570688178131853718630689285243032355013010925204376251302964094312304765604998485641204300465398932578565550283972242567672836378005363401922637151973503124746437686239509762459675648160270220413100878128333500290360811684599496172954491416812779686395025734327165149222800603439726982977261489293787826314074572446891842391806223879020548151545427120911917275305613228213047824081893213116518642980727588940269350461649478142710319182614548280086787484405131950106046233882695700499037960448180102146430782007319647856477781422177039873404685714368495313501657560742683152950298788398897756825636841686048704136358981984864068842238442198749429685143258933341345313135491752469627191279342066801988909079093405147391426312269425645486185494069796612532777254181179009612803535732655610678008258197494476798563211417185609631013424448527959901350754000219035949180806477377171932862510408063323623670565407321955153957416473945130825744318711045931501149597286600265849727975711928498625430347656844596630949968418316991899706730314709658275278041269368744192966312940626476465180158750408367905833075594647959600036700531661516345436173737437824696397445372373654409962457156508557963734406793481227271572324745247237548359197166379268371678948624299347222082159648121190832269084705367997331937264651746173056724721108272559944689313127817863669564937901748704428050237723098603095533323120475363614427388459431466237436978711786669006164709272035305730290201170849782671181992071982260288044768249602912787657792466321547186087456761501308056120689024548624933941233613795053943288067108993140911060037654687638483698369462933191960736594317524496322396929904222294289075092049167180549524359872343445777838791917073136463959353678994336919889087123777439045951519927391092541508715445654032972449552716681721873113975910292589850221375737119056092582164296077612972613081034945809650998322715064861865255471750956011537481932882003117946000674838596124165779398202724145847969415618775650955397796879118055152623298360750457113648732736347316522088573257631414545959376883375980616721277273731909357687954427554462439255175682996690203392310147546117976943787077376591827195881538546563786127201555227916899487797141101166246705105936385728455241523115236626095745818271439860241087179486422557915063404171307479831065894351249870080325327588475647020940863220030607084846169996821694077977147920458496699751387713174359916278263219677351248550941876954962567940016309911145878363976637924220575112589437908497906617342288997911880101629626742987474300920744080450715046726150880893504255423332534968476682124877845013473630283662760617530887686835996708419172826253105222779395375127305029280417253636937930653369503298010730389204135029126426106187423509154012964942501979722994124879420938238014489689274318356750811254254347465937662881669112459462031653425788131552036657873939602761467647275066793529331889396116526881923495426538426120129763407862088736895893417171791741128027643237442734954112607536933443407092682291651428526625228995450860823662595038491122920216325577219997105995053889527383263235029941266314686935373567156146184513722307393287320974992588109317256185969612791726489901733501228028202649744703410623161242787689084531536969176955438327619279878397431220640716636939979074881448762177408215528090919228391813973075388872613224522636014918580904136461594314651160948975494041332213156255944389659123986169278788227177109613086606214814190459869115009923309704685686916264405986546520645037340687148851261003434999391211967854273937164612648943745534398724646831422862135493080321957278053687525333010887928187918256940702658793578826845783257481358535780889193302586795570969842019245253748815516567774461597608406099754541300558203558043084635010922523594769147666895644241324905717572570453325285532603630038482653445645680504326415808896812189376625673627137529557877414717815046014597767577012598967521880605554817345404448908310134941490662224323462194451093593255845201574592405513648844384275082470976835131155164132236925788375975019921796037205117346036211447690354701602674980658850928374755978013998858612011065632688575967220409522788648760409760640862895563619311404616022674036372186776810322249531126790353162781089936726112560793541678396386535591004667218303864815212707152906825372741451738912309218876076499330736530944581495971565605310352884590877078647353874379651806007596327500743858219285304014911888615436885669758474416902505607193989920735391405575840511066218573948994548666122132801299631819459898337884422196047988992268106472702803651389394952851504616497022729447100690635399342410649597098495654304899781453523064474982827401167173058561306272161943860119983055643960128766230248993814811729936557551147863502906046136813037604606161359093477848279091611928794489912904881030228832459921480806124515308209119314816239523304740845824796301581934609849155483235431477987302142205099163591522705566318126891735540565715726152905960762925859636831850816644016659036643887026274490450391146480135833155611550038274725168551894824954891622259466068251479020908025129345793952482146945563647705219531241369384831451579491593981001046944164812649731121227250584385884565662129122574380255741532349757787078475133353590281852305934782194843221542367217378834360611203870748824785369530415607826854171757158269516735300302236041060895146503288145743098199339451798193538460208055052599324988306983432723644548992235927100986036281690909869249137786778523894883161070846568703039032173941918125281349374306068365102914330409117797013867781355151532812407061151345527430506020705162732900490231509384204984219843454353914729906819985762031524414271574495038661753680162031198284287660769537283398986046025662634484597441750923148674204003265896494416413659770063355835157488158539868968479826134636931155063566565694641763192682967208285084737877987596324430276470318049706086070498348276761273240377247168626934962695461153716149109384515621458472607619069703096792363259653689334079583151373197783352289408269624647622541392921108113978684450710015453777388639174137291389989996685975621045918065360761493323843723710709545879953755168094174088955201016521029879689006979115271918854828483247528445465442927559683061100902070162199038108324161169606998251974093009190955980421788768128388666127899937887406928357770384853257322311700678583518268961681872184946504837630822935781138264357121655365892280883098532599955859435946455953865411720362805434875117228995485929321856137272038106761108508282783172383900361939596929128460044473170813392608812976629895448647422292057828754048911176717153249562011451615195592198134293835431507437443034401314498235339314995067968964791223881590990027375073784424444472160694378710571694531753900707504746815883376407813714274593423324724821952695088337000161713303460247595131412321598301059680112143602186866633421053403066218784916029697747101486255909337690706764535849076291167147293064757872658607511437480088867049175508273279641644799971713787583190133745374036392107833207109807872758754381905858691783627663748132517834679612766329979000206012622693805791568499464434113183567030566380645380265816156320293960585366630192879534636011781703106311865670862940084212665553384023918036249976773293507348084140963995749369430931500874230326107196942832114585636811381196973281686572954413601760758470926723418848315465428318416444311581994922718091614625223511539148037574034825650637776863704476450425031559220703806723795001662275738382623172562750126257596993682565503816187467702461863268070870990363323656430589266153956682123535503298467050295421455223780846678898775304221961081622153352224601473079037456979112842386320882673128784125924278203694925245901526054497210506958549724314408234662024799390983192397897620284205908413180841312136634493165934106042376797880943677214216447879616706160995095666839256192038338270739043564968198474416601397736033433073149099962906167111061264931889141667537683469493673269883843600660576219180438863900953058062864043736769908081306438329350152927414388661550926990974243142483958492146501938172610214207805526563913086834214784378683156225700854856774649233543147492603779431463747902419554510771820869576911854491430720737365246840390717795289126398957366086776291511962402935780074984921295240135775452360476610689872112108191752995589065118615061029570365441582378238925800252370879588441557261693050712195701373926535994979980242746499611700503476233364028432575825182137927649727849705005315418389578957208903884158125761866632573902416874146873034465358913347791049522407413064032671466922822507521442254303249094514880616010936552281810546684533438464182229155370624684083900867853286975213508442118985370991728763122949077810440050431021150058797247649732914879404344516178642916941220928741923632362458905735247586664870580330131074371497212188397681688891284763307443552719529220524833612862058303974511975962326076251557406324404836318562675476773248406339280796396559428002250295452256426461486751576454221315611559810836486123998432845861118343960633201913425655353635063292100966307113681100062210187572553352619937199074249225706538197921914930869001898565662146202027398315696328835516569064731917979933593024803876702087742107187293637345534124207706167446771288079908776002620883029677695564394634202159988922598673928868237775551401669399147721842920461066723370413535017434306398185132862093745345858358443512030293344665821740274191219407083978782912461551840235847157218690723364812611617559622820864567296904008201577412770898555307824451619520050703782700325076429954353216272279788828347950293246772787805351329774932379691637078298123076055171881034533604204756959766648733330680476709479788653910762914216289646640595484213090470403678817895801346262155489896846769256555108570746250156040121179713283351462379697784720724116112903894520527972442408892546150309540069162377726816064528044423392698665253829059533392325071779029290524396492532624579572324799764243640364143373781946105054200657659036683174145567610465572632916139866918820753649105887449181014965609694130056988430062201030161697408636235482225712625430103779427477991468263041910287628557201707532341964991984975494712472525418892433247380185354414170122735418733616310790195442878113260903293606284304752686056803181076863300023210418621254068396055683515400812979827099528521667334241968461099186386884262449018129665070073958289577702876627430569417703002134874985195964850947652804318959377100378924054192607459875850079285398372128407428518884589877608028780971313751340197387380256390055095287435471749798311109188029408568690264314150919911535805157912713116578658674740650170011005399289552947522313567890212021938724861831168255568113458808064251610169355997900185104991345852436744802713018059615987846654771489228165738812340243857292000383681258125685763978789011431368776764317390145632071681769182538964321690140841037917484754375410051447919744338802448936670105766787604111128590497480594936792598837645381988668519534024754994945953290910752267674291696011979370846622452169437195432666464118868755869180853282561723280174020928399157328054502452376889044698242498776112877823660756970034496543335368639600615195034404049096791065166502544416227039589331645805107983144989438712790327128074424391741802837805253453095809934300374634595330641054117773087823349445378464570825737182468449051032938217744785633886872999239593301423683263657699605920775268122212113977857043850019780012434255047213199963461946503739384567750924127904122390358680257476399647466022177377784888750883858020868701467304806414664573072143824768478301056824400327637098580528834668465454956451437039416620753669214008972848447728088898196220707117203635997781255515384502076801318021390112105916407728543526004708850022070393767688943641730923777667577385991340433158953864946918757975102348228683535736601978131825296070813467130184830506904640504881487014270311773294133721977417454838428323062780493267355888602489376004887885399352266021331178992681562239538745552278507411821190283296232751381163537851094715927338800721541204970753556830668452869459253304675234570310116032861232539389755792166034857535505568899190816825063774646710010388836027745446097392931327897886695693042242127934423024065061673587341939637734148642825164370336166532239932511379488440134014173232538697541909102388166683932551460910585398208384654027009848205924395604517520441103734040790231869196786003491295821902957899323683456393581651857499719848390899180763555277961197044180326624621535686597964006274082040341247942485906269877875632513728991108377985691822378405435427508057184005382764317240258839871117141399582809695812867136406789205489144919091846519893850945679325383214297671276802136084976178715483815913548550967033390444125621619657917887478109001916041938351303371287350963290788689273607262950698896309897427367548810839293786386781525564071381808430625936146435413336866271282640992809684548738185202802042731877830354512715761692715125271569480991078826467638552938559921625320128250655683458755229168388036540414243503732393839633487694719101969896039346546623350884649006576930060458746490850108276965348267268477506050456560476637739809995424484451115266178397526254358475700430433562468668055304577920266561435614141891005126617149586659238337690893930026677331735090204557202158978191454098280403970554377157301026908111068585156584426575182338990509936038949237961839248873043575477454485306196129876929169306624959133869090171867537256297339704871227568315747383326253799337982365409436987534205782217308452623747338148768471436425446285023821651896020974612198915149842937269922701604422399656406915295401575547847966090032674526929435826454918919377120611035373272081040426727060933027764551092683502499730004736969110118228865072773669476112516012937189193228474323082941809527286987504223548483776156410074013404956397886973524688310102672139923048143141564475230685235121151577610865364921684472612805859617874214948030576445315836199685550688454961578823440916616722549247196334934135903252460341257592089276991951558021538119495684814231464246635820766962395466647761495657271567289665562662968448685928486670012545958120967725904326388432680246763563157362386279686891841958698826387869702908571587818711206806064153047770552445839019104139380658939670594439755830218458547353933419205870097056192187325193185608617994664895300429087815738246866654766092779183624670489903598327575299977843105460007711150439534725824345709286798792007879904231871693238532487630777836477216735882704877668691246167079099969524689431842048544207972247125818895810369716269953348787347571675633642746284103089726048709288862257476875952597980390316468215198510932185251092346889647429291196634764170818446115705119781980940505378385642405859392791834134041708248643480497892702894031262177947904162949493811069503083333169947248629841382079337120864213571735740293453400494092855269829375250117982356716642605208185463107113412166339622594215953693066296126990226751794024621139850846714457227274479860835436076803936913798404805908252570588955948986056824911896101580171109176159582212825058027679263661435720231619575613196867935867947220979804453252614534987078990959554320383795702720541565379161986536788166687363603527026152101252366882941526232319096524616029980355381626758854603181185112942047812460964395462914923754502798470543367988468167422986343581873517643219836329789382672545021598103252369776133515394911565527323000769860554388567780623834463058486449258311471743100757802073360085713314799088029717064476553508351394444922877016712100564954518781384673384578964770539246339066305627137456830055369204151887376629556830918011639422551991795876527085611804270504786260765161930137269105975575648182767162760088837806797839944868748159593511873787133788599597484462006583894510166560153209290837237760983830457131515971932116142655259865554509379131364069661526735567869825210135683634783724237541424498971742965284680571766269801693346047436608439370025031728451753400896696962809621450559103520626508882549478040111791713657794899066473165178892711109545130413079070853731928977075830103092449909206324295581045385902303646930486012546851326982698034723843316671496616854529757614231710016127225744196992810937439952860639595678070939795460858998338603291570122652670280454442746677003831465929422015049325712324185827549577815442240216745099048396157497753452184339049901099611276732260859175162313369962504089917184143148860511329839741609179635728731171573280860340128653479966445065365033532203755475996660274207092230313640016903164422858390491624260079322314243245134053837048891103957220110433063592150740832920690843987473206335046336189827966225841036381573334313028885293532613304723358129314518865864721531395100350121538333734938215865951212989401588937620111548785293258724766131652711154082011032960544771766765254890793290023294517015006904533775077485576771629960932712698448455337452480925412757484345091384090492945991622449130005643417678711255017620026756848872461286617895725617987201402158293139561015995597993559385062605770491371391081344823527942623786813618644962476900073267152890236081252400929392316952898660541375741657759161971167538061987767009999938372937481303969552551136231530049248266935077133350487483635015979248600632629053829779351410931868376777183938177684799561581504494091784962144933444824786191635045508292107967781853828282802379498172555738011835990367145526351125288003343888276924179333511260799296188161566498644579618108085846439588072556398373204422035178399187199526577737813584587613713970310833002272967425412048786930018481438662003782211474208697372170211597165763379857426303422967150987271110216099977261689835944966168948228713459487002589834349766619302024506950299576762287834476845938290938541217757317136499997631537038063769553676552723049928758898837487834789627664774239892458225490612329653835641589716490717746954493625097626831347105729877229414067742387053226636722104193613602748289404293650679315238915643940791849002357330604421565788612793886296329703589921686980262309957096986753199587158908266688544353236111638023858156693220168832128777855816046362201214456857864101500089142121045620969047193197988442771172310311440374547049218685728444103674259053296526496001598547370671563658515655501444008139829455901280010936553597472201424945226670544188354914288747030072671183547992436184875362304127902455834569179148265916290606184635202063123490209095121590396398792334546330528683792671783187342357206600424659327271245808776407610534224027640075663568737835296532212592295952533604823059443759256477933020389236445297773105285132338415132204882551201022435755980917008918259097873684437767769577930339871672423323002344241252673428451265033513188658778780652242578240758809738865066461907591566293244853167156849574728318834611180572614626247273609114827160488679607520508008671053415121036695391704800147572173549529689389540272052524333284074499655769236757360229553314928742002825746406626838113573590346116381999745477789421215480845307068701060133494794921702033567188647662002371024041905930266954968952646119413732919310120577919379782460816740631997579536610490008847459824104867707294907243600500520408476661879519753775634771400191923773767265453598728574428465273535463169487482739467167597095013845105131726842809063973276517232709598002306628365046501781002463450004499256958645652432572575665851724660443766186501845777640347494203082591891366727682789918330724783914531639519061784288027298188031940812234805287141708840489763022862206667572111978135218240117638637065629842193695912916915217720401055260282378973054298776797532146689218889168143597631204424200392963060567756217634759929404392552102566551704068623403816393824303807048921292652113849601966928593387623183981455293836303124466653240583464964186029350751334207609160834491441716867815872489237766685490533461911410134831516157447602272820696338596539139958198392310669678601088555009187388979974883949846344154196296333621432687192592919355669009713105913728927326813904103897387155692704082963259699024954654650435228051649467195492115760045267453892296163295573024705589647076245305505315463319525875523273255967836927909680430689084495603251770833566794241401345730274045889365478309384932752877679237145889259104287025556154290304843991375094148558668983439610077527360896315271622135530252198161084211276915390847108109182792266070152462286292812371447423464004316026879049156932311997751339963200372773205960411977673974514545149070413667531060160972473234785743294678484137025181498533405540676110905169475345864461155962638336874342863915729739312278848053086570073956533970123950935522044815105731202335542636940390956799145554995674904791842728112188832203102777450296304902630829513254959247904344366418047059012394719170979990156596304064676014696876104946295192345842040745227919092055907169593595318838291638791710669157579979003798758212760209445414328790474223544324305852410714470994491719949854759295066811429883967988742766994523517439665506707836569740528481786721843125577399911777233785668328133941794421845470944709305922255911915966584745855175823991690603273264860770743454948523396744455823415683840822059205226307369534047019230698714313913841651635572709278842760996135420021077309322729366886798175264094942854817669474781153973913385461765709242895936043191735984698154636554860274255583698385377414056290852834631966151864497730373663268895046791011934125844287103820177123255929220731138754980023202958094224805039972585730853176396105470577649900653079885710152223160593853750504905768018282417082021466747393485936878597211395230911628598334670520702553831561281791188607106459074692025868978059518823616835168040370987485955037839486698939214005027861868789259691385216393358552584356971704092290245441058120259573175944841470548958719807565334512042547391107134848813761279718434526218761165105980078914435093861296919682734375074385708095168868556109522134715791847153296017890654981740565659479310221153024647682182783466108296194655584742947149339398913604862679778729709840546916248846668542721824199516732220074363038349253846534202020733987340521053086409671409059982096275402415180181382512036318998134070695013843060450510474721118442750446056037349899548814833231949648384320947235851903460852074166750448045908203886687093887525240919443352373508069890389339861591553410320319762417390508093041502835639802909664234800377919457970518379414072418895637751536721954895660099651312661277352207303712281196878600079095556208734301122393134341135125866513028380159734864118246297856558853203940435067233433505605499120604398946270326019226410555120830487596132100859607905747039738764906686511210786989180541871963754952576952008700783962899564650600624581729770904311315383441596997599251572811602272027500050591253823761346621197056617589966056188268025281949366104577018031868037587394052496173046734371033501752202270796578397274039205771237989919360774417632383697922224227165680359065654360711523405729418643960069322636269372841145375883122195661637485371519400399460305394957630093556380427865478898520698569352401365800007715586056008710680359369846637928898292293047755789594970609756789484438873601020636830244598541766483968493828870219415976378069283197264518617533192496681449674777831239312637166041714257124543186814898372059404497486278273680353450977958965940545451827639255712759552490699286996468146446883470901192879442922349658006539581462871271051901322224016590316596466180831686765715400613748976881774527917271590479761921528100798552976887593172158462563309870252815528156145245451982679917515750867153352489997160941608881371157286090338675205807516738344628187459734080084707166011689205186864427153468054783376725054296803121073102157205207158255412054044513627340393772093409667192731473309003734082133286075991833406558527723493628987663095822803139433636582193643101301922132271787786102638269334377493900950119207140185838628392508700485832842684353563451715027214542390835097932876864605418220700296687781646769362522684657336647825100589932923311212257869527507967201392341423763135231216488591590753213441388467858778186931000618785611468994494353055862370840032274307723481255697204567524058268875245316439417860911774271265469562009847552811751402245519895634311206509439468109442124456200116173435397836279485486145984527204507473006505134484193624276459079315164261550302574277169513232330730421957492977340700617494799044387516427330004923965189051534674110323714744869607160264883031266575962462851190074861371341559540324954795768982203305646209264641529134556843717569694423905713052995292226935652573973811829230470235184924906691356663301903686829252238376335994076242603424102434197983037501928353821108223700445992444820187855741318262945746494063713756949647270501275948457154554662392348207520092302102915415374526367127337875757568045865156218468941862186688169582495134608594368535470945745434476956352217205869404988944005491400398420336606130597008369123782461791995018438602191935412498521720301777957551343546283232984787987992330143727065908245854284847236363237033645146372416859622244308897849414645672684886774341618106990687461322672009315097651775893249891990202735462525850355482363506160790537245545832381167114004189006139024751865602154789870600995120497634712921622306246436778592538061834232601302187395106397111462541422984829311394765573512281597643601091995080272576651377477197340670962104029609147121023414472966070147928173015223942084887097427315120582385692677506719033730058606541584792911651166521386669807679744457637215276169307362841497493660040296761287475717332946090118166081161709713724039430829473214897789586821105536125627220424996665943505413298815942765223543124593719447662942132043988711664147470239999272459532068430965727504939666401074593716625343641884370843268238011092370970036485235705605726350242570708390160693344716961561699376405835344570056491601279437833280452668227333763744933139099622663812846905153706669410799018247858808291603975078708059077598668770636864072314963923778345609561336223988602152993595484210667003989236430763688766680631923252517391892954299795869897419789204527510869130586845770591661191945659559003296014284145448988603567981792862957918869706859256809071060878165944953821769393668354653425334489041655888339500013549472275705070686809810849487996478896389225510123631685381569360985180719536674079945341799110289420777679445667987171333079749049143008130803734767715165682158315565845870695389200600719914386175872526738593944366073107457084379271104789126192447259645704553630408084588289063940239336865677293113852290652026402753966972884110087693454914963723537670086360971255419942362513164081912781064955526529015861114955787017775536933505757972052426493754425325662652618117541783946460886142410851889321299422290200004297934460027201577910893935327342873342126860392275396485400197669635233884244544668552106731262753669685176068385469534268351843268015151225234849340825122333920528971197481772298288684995581891385874057135087998089880955958141594247121330630617354361070268670223223857650812558023055291374547163622159230009920019977500201791025349105960420217007407626079322549513181807566708547472029743705860007318531213665851153541817776468665541614082627574598756070658453422784753140787276123843991405245887785469481284967332268227176373366136742587171483229580074022192846257464022954228910626992219515471282083708189764932029462086107840698601850321510313121250027256627633978177767830154608901392564118617674237591712829571806568627824850171934441208136361741990576019381653137863670423866682886066253204825415599480428711297827991517582166878112216861595300491481752998619874552396020722906925955223946924973009639991857007823694956559215296486643385797867039422446205418023613090338862814176540260217108390245239741784514004169010380054949861782523109132715939980836619989340689261427003284650644325237997912661900432941681467386113989859947045659548291198436415436208815273602996909607431563938826993165443334399174171380625747864912707550090431618847789461882667863403050922250823719320154827044760979852953251132240611067320960470415914503248293489572026246360012854026429263721152334228918630812854751960204301254244343639727146029775724236713739293555059842700681767352650467566614166264390353267031241680423442800837620238849325392136454748649554223142336877330821746515384223022547959607728314534436716211984027891177975605658056404774584305115003150376125831079736893849175866578660170176430399708228247787739696558504128114913255828597918712010349585151174292076077705278302001445360320604277941079037607544915207998103406722720522472595746640949838726258714521192341090911590150884428673677070361613430684771766821423701564022524869041805110392774843747079026679638257707496982863202958877701139000798894833828809263564670539970280007456438726144885319380948096967225628679825184402425299975052617873502431758038583777533417267571971714744492288717025749452896988126335039386354423468949284051026758889170461138120030982713361139987752786513014940741095824446255695230392815967912250158651037430583051086499472393201673031751619577633480264654310910632248371768222228941101341294185003281155010365623541285356816032909736321687524827406822934484796091897119341773933711180926410482041612977615912156205014748815990933239566273988566774415951842462489866645083361802606228163432828837945692842188379091069715380671560662035992232830722959262201440144985368624321210123263404166513222898965642052529130077693063645881949690283452924179686067461094341354174261822399272443714879207972718603089892191253352031673084521541191967110219084747887413015480808016389447556524681172557099156408363039039437333948644038436238360010932976657830399800172091018881228357609146009269138684160015001619542718003163791588162399873648371511549425083271760375121656605390733059732777084364020335578646614222332399102513842138802180234261991464485954289100052038478147867153992050828282372211122707091302871248323107448591301172810155121072524711575667080485155549835643820300510164441598358718165760550421897122822311007870607594211099105037434929991708863362425847312231218152004868162607901365761886225342521480943280276432914843823986065559391307971966742605507198269177778308840720121991139299427917300132833175642202949378373154313595573962892163348972235560770015812679789509919485914750684904433171668135061638197734571782102127935341544347324229093255994419191473731093388995053289122587583525282754170069546900932444444932697104937492227698096834907602934567427442065837115497296328267603706844195803436875316026676057122541602503627684547022632339378564350059584324722305639545688948939251380547020996827132529438827939598536741306246986151250986781283792439393997820747859056002338520390005208458771252700761357020702760279191970314765836871254799342908705485517489290636130748412607863764805145955392779410496127060862553687244384408119136765943019715873932455401257485950370911095185713493136592238777008915396842531978468569734680057003905687272337759151971385705544145079985596900626605654939955755613462484368186887909740712318625387718734502826458565756776077211688323526360655839468257103882909135983162586198081089248396442333275927577759585252561450798646591041621939555443387124919798999397994784209525875829547461402006198584151291731702074707671122969734343351809374954268582919618706028982249423207051128549695970117869406452982488334013855864643071938048170542524941546894650944537427927302379918003947401398360283118032904070241175995878817239951716822956610349003222396947937699579043781300232158600670178180953925023589918767294296594367064472366560335448001727265445857111726957431202552681140031418320844767643250408005180880993380486824813787841669155269353976813756938283322693451544951530477775187447392574553539056531548788284836195805419875922958262450229162007324708422974164671849226828612840985588712833028825868652733587481767943731053949505396145821176746612946162055548827024245912878660527969164951378141013619399535720748723425277108119704444225098234877371230209555181322089668309396508275491553539634198823617639190420331878329343190660564221424158087380303933332748695369141272698961598475289761994704245744159249536372147201767311492839040584589997949948702464352570349753252506537981372796390800643187706393217837934096441884512245530910390089365553228173227589466374921468092161868885811403292327477527714665220630669203108017475950514647466124295154446241689375963619168859877575638935357996809608572012782164249872292659450465362064666811257341302491737585876535715654106617864965685846455886454296178439965736511529305476246870975662285185661552232384731625301219484927762753145932997775338783755156133435735660844221651986007250599970974265376440494305974865008248350851387274883998617002425002034540480038968533691807002453559615717929040398368523170717710949690789342911735288605520436550013395799756159085272319750451820074764020718632302972824227473792462206807468050946298052325658074266563281311115727055699178818288874701143172588188912542264861607624638088247699903280423258240684510302840904368900308921081055508487667017568202344665358513199644934596605084444111387303761491119312286692446275028547463373523431614165067886720207093810337979833276040484167877862006148015258032586576538618325362789903937704584652613885754628684731159401101603002520440767767797224629371188114290870921293253637803151205299719956142167639847392057305050587499522748852361128504955992468614280080265526035017807805246480862781207435479885583465114064943767941549049315282238956622198468608716125725916908060897622751378332612892814240369798654568531161865405882974637002802090409543225175663134727730391961327953622008065719186704280290341588277420139068326974619605812336924781114033245272679842063076689201424044410071465510029065075008534669148147097020233214453611867264715962785004648345585984436686631659744031614266848560456835056160388265378528920660699188362172797874084885112041673733515686632469372649150118453255151600240355637295147610505473111132367147493931451112547261488261254681014422093233097437447751899930328628211145033576601022233566363699481457280506995740121982524194910448219260031992014817018778480859694697282091963855037787652013556245390135400365845187246870728255616543150186218106218794563275193318694352477250527720081768088301204488609235191422832521265074363127170651683741237848626968455314269868526362742832201437530554136666887777978570371823805901467296001322208801442765665551237641316824516527954456220593244857649297389577253590550582711441754663455017936519579715654439107067156079761787426380073896089858369560184097599535377318828914359280723700027722987766563280414681589695632661300900431692756220257279776403897031510423070100291117732870341205542788158642144634406302878416067013227976442124569466610009046006759518764252004915785311179290938674702015433322572650164037839160403470214041735459426840685820564704831211139827401283109744927025232682386281630246261230224715294744014209286514855506580185653105409432960879082270232879258062441255484589717444582695256521102988706388821422100129051674026025321554118752756746133589385571154672999398509862382932285442171083526265674124277219156457204271540851478362175722508606011736453193584499769563188934454828508150649046573389287081272769258795409796330772651564371426297343792199548739419723668503529400233642021266928568489331685871668268767324063015212806325392926337810564896889145647302189683664358302975129543269453938820090992056302341194655835095361889496572264211107869333654193994626838232874861669035726835516153114497467394220910502098721726344458985278463292338826501244596544760015364608684623592759450679474225417350147796350358106598933228499835204427241967016240760762085653043633671607211972896863244634354698949631380399120768638013438310081082201346699456733866902268306244374217174651970947193882675839189282222669310497177205433128406716401700274911022221714374787903368326233242197845475129155961685451241003678041312820144240269867642381852698223208899621566852680685819546351257418830568204517710233909898104810521979014586071703981839648416234733669310954738550901364892514589014059608218526953297158446888646354561507382138562872747446403851558371763687571602605606402363184090928546821946813254643371598646901621495355907824530417600006457616640488993826205217148249318650323395645656628992747066962062648663672390076996769435829818674577541357300437029578673468010230729404338265513802400049216492466735781844824853722920787548896849233623200612230426873047508465970105798255447770096493283275080511028741062597184202732778522147642199324092073349763106030783207094331410360814820892033387269271177036287262142911106861808193230367135249822985631448208238049880373013963727022964940259544325498267282966428074960752057654532194149840957353185206858606143261150163198937769662729168759547744312758817560106390095090634049179209668393010434773029619740330728837069441328217637741506928147480835760330535408347954114217376743501662751424028379966810151469481271829869679430162413669293408475772319327763897429381034630736603768925399742425912942393724217016541816507510935509403335284432136665869203587898624273164923741177522726697154034239148160326541786889842562832404447209350106014658567429307260363300104859448459047511275807196689782387119937815151487696329705253807378453458183587020635759160104616357906187603701704557576349902756707569148722657263782222483988533036699412742518688845026630112746948907745419532318054692900882981093963560062940332775719341962607809085466073010326796083944152618031820806495181933914446996406557813242215713966279159085501558086935363437093858117551118636020332964243553372149978769952112023352013298489864842224621039202500781910146942454973190452937521192574064678218871722888172164047144735185560180229127184542877242286889216194358409385083204124400006051365947403946460274766189735512985523556415776529390098703080047784877663386137913606795947356677240173974520361524494102890763455534586908780503773509019049591090854452223763715294717468010229567750689366453556607786908727459089684427850456550710353596629140528555745843255651582191845276969567728583211306013372731014420281080117644670024897261387734402449860579362512219707426787517258068585875461646470409807705885277323868920546216964645421890342827033424809973210744427817367936361693778710224311714957558186172189474405776564242179683814563605507923406238569340478472392035285417440636196151979120067669764178606057386383091135615701346800888173495609763887931486610301830324865259252432878933955631839333064116090234122422492192877430129023830089535978279894764410152585060228317410544341986574968630620797059735415058868028333877471799534338509385567777031879797999371954378350531066915039976905374448406975567882519718400246542594436257131956273882811989384728035874415654352064985109418885151334509622709353747492588352795612918037498051720177400008496180264732814436366880104186776790376266815294088260473403527459497468172140976952393685169342239979733157970246455709303597762155371679694831723510626555924792386201587675354618191954896494747453963343279096092576768741437185417481669563238301861041633961818698479299728661336639826002908710249307072508407833969788665397414456058749618883146648976289503199584324061468118282212909410879421018350614520896248397326508255735078589477874689795591007722958425642175828522911770353374334670824566804911578885407026558549281513653591223481534306868810146953164860915949275879507891936728236131441100652672355848793679060935355470498443575150152490302867436309307814119862257756058509822856341152759610094240787941628195697933748485787188690198110425213201458313761544753199784790819207448850923299533025914467138731906100889603817075810204970182366446057749056630674431029656092338776301595609293799175153249419088635058520808940598851976882377673360196904470144782037089480837660298259959169427812172384249945862679054454191565292414966754052760972167359557441095732700490453752054310501995020198355518653075315795599709274114588145998168629488552654578391612781940294640702439404565393358438367564649974560396542488075933405344809038748522796017802107783992413929686373721888541522436980679284164405618788985027534560032247235680440633771290904503144810907277481636984482562990995693182757553883594054940916867165937805328532445235193027392143805944888086649663704885111646350050621458608339083927775669225473896630136969747853408712238228421111988076766675850725777580615749974569295912704703313938201227595092914447690104260848807143008465436214424348063898925766998195135438170595252902286392055566125711112593419567457426856943324666775814550194231490117735207767843635879377887629039303527813029610227380178857334903238391494315577133559076010045563366158423685129875635110253140055239971194522563968552179473901110215893682301820041936454042642055234699880721982588734351901606138668660453749392192988457894216864980388906845987494220247887742137317658750320224247806173295038762093780444361393242342699989791390298734117461975545273653454434209411674535325023494227210994972251510081850350218748217735980185968960289839255518382655992786499485826726783920613133363691905386080504545262490156497832584800562124873336479919095949521849306596028987262768202962214239288497396928169389071439958820060349982563057904288922225010520930689785404243454030577472460095230204828325521007570373845121311028706153247842810662334804657736088723915995155747327147895000844346516644075527578657669161111558277907521390823351039619329917348904253251421490692266203163415247296122573693890759089356461828256170849292110727043472013612024756044235041954069719975298310400363673403035347277243460767688952005660421572669903836687973354731077092394659059042186040738760469224170911356301397860526692820794800529440710490658405263458982586215738167258967620884475990890068637591997676848419474342836214485812101087157685000681741882694868212841726429356465214705596240920920121079581441918292619185044751556012761947337984093578371542184532641110041843925162873459089712814016780817530014943912898605708674131486796307979180631570499342329202123662322811271383292021820181724419610309595955521862642759004355938343303571398313583835648653722389944842114305006850550221850997094469493997844205952465105788548301480489211197570332369899158862627641176568032452529248694911546210038271283459945665692337723210330053955619574250957109841633842859886885196018538002063967898126694082212813621687508013221048773789911799321687587291230597419795873450367743587550695521782115480120741713605404495005571230037960666944123887981693202291164864030291584623697924874808359679444495396114392645897571289476796690903414516144863677602026051210148516982326877019445181001267537999727876486702811249787115565606585610252207644941040780299500727460591363483233865473360452058846713667593496360265029027037285935759719473810451100366053265333849861293941805922822148214354265235912630405713054343682841298390838865631366117338929317149954376900298319648834653725762057629181456414384056625458088928213052662369295948541907947232318080563497265612403362200933422154668598847113202389686747660729685774570520744945297130337951362660483200445017689438776630044783940470605536273315664848983211493722153461453483272750697692848194967739536880177077838902404778049621757788507311379571808623040662752259984001945943956126743936537835780419988302669335130626983493085126260012411224140055214627378824293009997767303244133404308532549761061680530697963939793575364142688916678667571989601528783606591051313113848715729404485755496940458028559349074974794669318035371582516666799415539858028657616071291326488013870994001701502675805445272686244808776381072180797823157844574106198935650926431272688709859941744839886908236091217512962989386791383295990963238935823702217173789201949138393935197263866598114805039662543244591202163991648201092411031193622031163261807972022778615479875026934487091456523075979934541053266036995338101731872057022313737291007975744927298950673246094920073052429821147092634221974585745350401557973811956123195825798918831554378783232597294399643365383665952724396337477908818852840442459672580822931192334975385788984250059896494533117259146836249269145938240710820728248839086213597216984252281807652633760784884317453948914232026730223564237566674383609442247023006429385024737200620060696026979045652523300069731528246626306542856713314428911026678152460328558514094271484153827900274816127160778112507668856780326261278293390526202975840843165754483546039202043930429297854743950148468902981853777955214981140081729156657438882149598987620356726452769959003195727021604403843975641008672980006119182163799914410169528586228280247283100777347527434075729201666306768210658588426597837769724084912793642407297069617967033106927139350813662189466332886729850763238939042409434119934327975374193286331569047009111105513514927198147340208368939483571352933676383302759013719321283775043197952397484696916963271782384016921200820177650938147864492637936277856382714742869462529165031788233056235725710071145105728006873406455774369112054999480779228551900565248405725790534046481496411920841535305223863225040760405679981713042271320974874534461088009226766824688412747886020081639603227512222665793021187827226259482887808281888326506437559325256307975613021832645033299744940118055121972529831110338388360893950337562526576796548691283476298677917298028679699583827540801597769822159747368606073261818342457634840979203646226033891957798864295922685692532837260113876346823565926673494059621211328694164607215953294679144051001455227059095256455778254224559652534202152016398841069936786430203432307415315258564313713414519805512594189130629105049143500260601563187893406078140818724565635334086887504037495893350015963043185334229931167763341473673526495522576343580608736569037399641558155619638527852891868195616056267888661431945836255424970145625779891078345015976966668784988320983982568536924457987786808596787539980250392604239283119824115918321121272639723581725320183030744837305128419434134305150143005464583073375495486112765067991940706305486188363103781225064730275089988930326220903161403172411696125762145269276623562224931958323654621591920145357955566913092649549241272758289638100162769585585313341635791135685084607031852269737303125194047056807494105594384766160994632199657977688484929387945712670225574191172644338243882157007594888372969689746553048508008811488190076846537298966200016233565001108777053088135310265871725733313395630860362057583055894452829859541022462380316224299430293246656701934083322635254211075202055058467437003946008015176317104366465915692028813759527270712317242328037721937381816291855696062855174413386210338781835083133857241803846187451333092045326409038014421283588214034181058576126303056527158638726655450801172581968765020451353059845840720922684801767311479140286595144457819722604347774958249439531565156417622090220209182352241430682568522228530148067513243188790122735901273910281067395461453552620883351598840151113813966590909889396333253172422383643135305128430879073252795971258923894687189378292156856679270102724413321186806341661651809924755280017873231537835196345492653069002056124193922860610226375434551642337000377077158931557626499559861934435555758879891184293137012939162250692742270256271208914536285615674897870472984225457360123788376647437515267926721410289101595325069535041416331480391317135339086427989074343866409081761783945601273124945922782301129007126629378223780859954192859611193932434401924709851984944659567346045259237846778613820725271962244342716019734582070622863387139732509557882132678003340093803511379821407837112725697982881424344511153090011679595910665905190072628940691020747812928598458991426687002982910998753930258450486189836944082138424411088916597016600250550428171631477845457023867164836506521153096303557924140223902204581189574357758694904752209842397538502821240502441622106361132876147667301780610824787389968791070126843380116972322881740492049945276932760287076237439696615721487672262205898280056358750212856934969194788948885617127737183149658461716292897789406163591710691430571495192178632422439326611870026623928786592689125535093501278900014283081952106354039482902091476029617485001307187760993788978111889528871306465473184062897073602713694148202840564374976493454771006903536184993926130193072184728440306009159679113753858133332563436633624895013305242602522000480074254754087421611933465285763257679564775769203117237972946785860495417294521041703138140110110313251622522041398993764328904198875321254984983018390842377553554088452629064935189043971586267011639893242106455169649557299993128750131223202189360854742723507161973537606942830346207431486823571631736619390735140525008136554739481889932135971567979804798174550161850630303823944249789812870863816461797556210530431247928211176794728686744763975387264784903968542119379827236616258962502064398764562769114715051527441778698361141344882954130917736572100923731904331272190968560713893868565081197886257639108349073502276645785077126007521402033388000759596671762835877151156627866784014235992214745632077628980508048677039175411132581280786153637780246838855678372059189828049936763202589961158819046855583026893636908863033459041001523005303798899427529042316016920444670425275679558673780360409989948809709697927809677520019435837215996530129368995516071403476709083730802444727418328376494825824937207860638776008302120593261054609582815406169864254892963544736109519003342429369574418967327082063013143901230562239081329934595949734590490737811254689331053307998321898367027975518231077129410376029685833595800011543532563836460657366076353608780475530910972390402045704516901299087625763197439055088528858799349380864383371222576418198049886319104960641839924582353010839310846226791601859135003221778597249253905982362992327513254040744107476498867011121991509307903640615044064156272107622804496864241871436985074787964801302689003678662261658015086390454454444537689212503210117460300601741561449003267807980808417394228102691422907756268992667778913369509463134153274101701560888074193237508228406616254314974636244943048553715573251380823640161304002354116269368782789296116058005389456862060689045452425278557607585540320941608830004220053878525742459555434128078726639371539113118264946561272327450160195443519726802671995490993000994145490169721985080124019665815664922322603227294851161599854252972946605388126071642586925151709340132867827431981581516431663779982198307236631215274317838486421043612691985982640739048136505288480869103730736255220215428167984356834828542008360887323877631048403359370849635779837158406979795288435439791509063569074945336879336531453643495379477071796013091319382000408387221824521234939693356420354829139962162582239470197863801334254935129207192701318372771570327480736541816406570439420806100993246049016828307476443233469976974468582646207172462431099157267411076060721536541963589052767144211677401318976866793566846881916114736861625248112713610969116728847766911832374762173867381548507777270572019814605191136268760393862872867409446928988084014815828206932459658150750648777961034711558938490596938042670951154855650674922845006154593322254194919659739300441048167402865603610865458144989032082536678658683017396927931081620777889715403014007932099737259462002400100261383135720828711227774018447297373928221267370074278283600817033760349188698492500081938092086845093321331728978028475361235673102331694520200651726045280685798463576843068730841816338251381270676645014399460980114171796733966100568518573843011164428229681407556176017894866553065774517846278176994578358536173340342731721181615238013407760912227170218947384819412407416508633929974877227621168758213528031176272290939113244918005114444386619426718330509578625083959428049979820139049685872584047789459996202907454107010679368677849759051654700024600685857235249670025140344840076862848644541093510406887176040009344245126253014323520577124445827496331144347305670499786571697911799938465340684193882523970573411558947031777963773703463163693102849958212511234299457590669181135448642703969607056864978147346284353124932982207956168223982796236597425914397993866149416168587997688145494988745939318093400707016594889991162453110170568850325739559870917087175675083529044011016497523044735218615442270118217381253002974487016924232956893658839497567294876600746523065628146033900468265418937315735768409788380970175867570883913077583650384637926498512575157521645388377196483941429475948682045362328999524181646496016709239834098001320556194361672528170856383363822975687290121150932349173694697301137736665208873641212661155205372460532074108167541783593824918665685310263192570941161459804658244287158955596877003784274086323780517421865860045476821952487152434066721536902371463488755375413960441063664572846130119546067748373529903305246849132403622829219948022665422166211669189210879976014333543839556310309577075437934436460054174715827422494817404652127260746791858561160227935334870532463633411435757969036620608693175817958057235480843866298793269781798219344910882751738395231400351025150188642846394265986017266956068183901589561602151981309877043604506171016306498596128743620618020977587377732678096113751165772378112253119116082696356205763667821357275583334922476852710492624161979740146084616533277722160182954094344100924335624166311093137277719955353908483736783455785313396436941720508342819795208142056730540638792594820650439211729407239379650435109248442874132560287260860676933355162583334110424360261545148632854013346075446907110568601196798571067570333573432688417483163765527389239152699537422628891570047659824869702133972719341619714743048418222380740277022436935847468933181932095093518812141801142137750128198247330652310065543440771495141836966948729148225922600459920564072727263795102747114471241739841921552603770362463704446513076140326554632749961333759410773051504452244860575551074588548173529564938836689155991274036777817636143579664174018025358752976894171495664185820558328224623455827650446276460919351606719945408276792265134504442282253054600433302173910635528916977256679130745989079050834359404266583183545828535084783283669586352395971120411785126546702846191040423648633129156491948750007192622263460166582086801681176001358254058623222512440814811139165908455610762799633265181923189675876216719562148816228701128188726836432306551766601979631303628874484274148494167269004848059617732625988473123739686569462644908551328571187974288067102935350428034767350853069459777733607210497483587539351635077302810978534216670663118462810792789767066131391212688925577238524207221887530398364201644803890428411996478537460942233415741449806697848167801331982356252555974598994171580442411999318711408769847230828224289643504669345391383929674045233333977030488609143465380798807291060775351140610553378310299851018907874678722202316013463473862213486303519553478633718952428661673037093516364018834107112227224212522959353935996679318546423197953896343067192040343084674859752945428643422580648844145293043601191260643381476687652184221457370288042907139042277135920375031610136547552425223645914368555420940241231650353402719744922732987692805255348906733356367665962067129236789523302586298208906872784947728788565980596391629175819719447188080441914143099462005990435798450874491502571903924969929334237600889471786870897314460592366372411890294467873734357696169819174924396046963452335575493738967961172854848886352861786227370732259879180759046999767818533103798655640537255203161788305725159460888821663934959178078193868462783270980113288945492292928514886453183164422942149923897599299988583739190078398921232800203468181024062023469777029678737884777597492435727741664008522134656507722803337339200134705518462365736100183598880722199716962280038691152762476683087156525754524871907056052682863773418876082591567067192204157779581174597150373334707601339448523896090293917574270890530988008422354382689056901045534912532429418463614305389294460336904958028233752486541541306783352658040046798085246542825300988860423136158066763335720150592523379673525885434984278163289810673303899175469698048433027303074517992862164062824106394560269451921325236527835628073269633261952401632905582141129624291927748083557747033042772650803991424885975237366386313533732282408178755386722176358248421132326275980853542413050284991327257104457303237346497870328396171671014754032939698623138615373132414259714442840807306086560180106592980446521462947223001560817978327967915491061377931903248745987099636555898501881119015192707632671715620737505795036171012714550683534770472497814892209526261881602938331675308214573171061012291675885484323849009634590345137713728558954196649676452870581861403099718432302658862761808716227095195311020469317272827857850073011896869832189654604970249111069773979438488955261795660708352326834578942655526231817526069575111511519220054836419572333235755929733582614968932592582794396476988107283639292756043763051325804598687138339278415342012771420834402170779165316304095290661211585002318332032035887789389317324358789203173740297804860535769403342234915665239362279907673601529344478741081806737708606923943079540659959958446895384750927853924353017948948369102794688950085595714300986396371732558352261272631783221302318654205088398716277025007134333862576377133692531451270965953588924337818397360812776658851466666384819596740081118500644649979527999075514965388522858778075444492465080433050348256287930080736369772314309876960718192332935602552557763436288379577994261931465885787560170775762615216539471940329792221249007546213467320809330012765449216961781584254240006073502822573588773845313945106867683426458928208860337030778119227832430520619481394081837689142802462511628779678691687038523425094893224260400935945308620433442914410192032552994615811176793300062365534720086595538665871141212666308973718479315521238391080511636022045040623878557671063720381637442468929074919688711029794108977075016989811289693988049132588789050746555069418011497705632484145926251435315343558661562501320370565086590442018051637518451911579344806651836412063900008533026169101848015112416517760736522601735196114043170698344471994479767821861574425913910794453687249629293618054868543675868969018390763472628964928355269271928662397066905540494169026500371064616824684154088993752006540124691140024660230837361972590666543955218523156388893238987145158149294742174461218939545324402455281462788974924953263829335267474297177348799343304625519617570711559978334874904037219833065400605852446404398013773505412420985364240895951177172669512189229025981115531210301751539928498369222657482881580767346522736099423659423456582345796387551607919342512447081127824101475159635137473382753293026033660560792968757714843434805715811045845867860032575286528679657424426999904641139515591752296288260721985898948549883671800783603199047138657167896827395258206125355153988060317505184769750957654566790501318554821350287999106535267974511710122226868721266567241462047814310676485917709189439021837147168249799132570491600437896242316314779748914308928680769159627612229731730050610968064101183066762681062344646949604061304193223378776786972702275870610508585605012475230514741451198641833232480617920338619797704889191182057864137793112144901458340939521210837954949622592837017439638640211044148817648726001198392939752393265217059641465069858780103539158613384246851406207595737814487959465673023311581718879668674998827721006514502379550639406667028222038271600769780184953556549712560693875152589932236781850085897909315376548409752798397228682453764257459926601327341912607845326400903742285197068370836158027726482200636616246026225361441746232045234674076149369453400463986486995446109852840851223299228601273493169485839222447233487025282146785339809805308303709231513222360995399770601852852416120006913069259745223557866897327114159214169956265907285478097067723084196068029956996270820931626050510021220386392793776635497782369791245550112010986214527071214685815271352305464620736576028034405763949530138826761190463570716071618626527809086390757102257810907409445147999710077626513282857931497564334881645577797199407596293988296879651747252555749299589961442549231323230832833525229870963148148249352944268412860786784488631712651011663252330933718691730521080786728389691702882270151107970248399660368980707410954845559897187456926609760509581802804425232745535151829220102031759533642629873388438867738183244322619742527110835658585181095472707272511683669856300566374815460262441537311865157297119895442892139804716756636849071311350009264192390676787974438235169158537407984404350349424443526083786503179812431295606675678564130846970246427203377907923513847904523294458633226923604452453440228371190835529062949771238438241084271052326095522612377076156516968650220171180395125179924707854150977205831556740523622053517394564371910580034192368091178130281846148116074571470657414982431333480535118695829877917115187140617974179210618765258283258650030931843590699933160228326432178315422193362729097534027785581984155739498657065815332546132522681808426730263482446647827148640970496925585642904353350448051834789000717532605451992426970276435448464208784599910974373512397893308035707906668424839848482249165490425715880593447198789935703205641615282954477293919711060776913471687172162676346681740699956613282456418349082033974992012135290700472125767667417826958614502192118820538606474704476334648982172335123839450245216271929866285827444517402775424553414233087940565754365996998549915308335212945216004699936345834469359340574489606821379476817542774888393684265636888118244859208081706905436148772188939202865850457846179818653402523024545383080112771391093181548735415647615148827098348345543892897266985916637977343314849446094722042908765118972983456078251634711044380960723343353233191564799548930028548991297790099576502924621924316787701334527908968698968912533190557878436662124892757884488068653412405684129613907994058336999610619576416329719504081748119710582167825583370798177779416427311315231109103497411058505625355961535542005109573037249998989487666454234123628418761090672712961280541150677546151931545990040345889332201491356870543896494438360198665353720063909209612667114280941576407049093211061909608083177541647641443123489232273843381299854905176586947344687637712800815318771651071494358057208721238664911160152286186267843120016063337862012657818508667174683913690773452843537360037744157411341659017928661365267422649010051810133101861122660814962980699857678543673457967187216688876307008272988252606283926964393755580941724678715359767770393685141152083974304710293055376158222396580466422821112152499212207264291649628322347608883920954699820497497495001216415936301018688421460529398652917705842533318907389612809665096619405031035034833505235623382402643937480832727911849115734629432363920519291354997076203853683694754020230393799118869370929898724740818833402999409863164025423977007373929775108831363721823105528226294798382785384887885060323531527761434494561992026065960370424701086657958948725979818498937922472234168575496930101252184095060455280722986561993741938272097080158827275989628559067042902242177635993878253311707562017658312303947372851518892701094847023272772145542399442167372539575695442445803588495211825882843140608247725072439476412360953075933247028102077184133711731942353058111346689549280709181434609845230723692818542716558957158474051482034800730036880208332740923046924778081765106387780275820299250694100723791885715966042654560184429754581563721732968644712726507339889520189027227024608931694611896184341412264787076447399436197667351744448513502410298195982257129922519054713503185365807852480293860671341817646654908687168606480859902867626222641529922902992028089077721068737754968556333341486366481004685357122311567379424120834164641206056311151146287645635954483481141408212263786983313975422388434776801047219987163822916146644364892556364585718341687564709786123029282591401773117993977505759004046238072573867287047210848806754338505355961604313704054598107032799097360270812004436196931328828069817291513150041845042023023627691802851314270542200591069458913477018439084957662734034706124796596659095812584980579171508277752757444891763285487981182699094653091150891774236518503133160898065416619387753589127539943846012387611975259026159483947905261811428033026959214362822249521359777471289266607326241009466799941246508311949938770725746465305015160654899584541190892735948908945448275571201542295634298228325559045147069654982374897626618553151609802522826898352191899901693519225942785715288902081909674519746910599142820601292051258122336679815591105845756351294115963404999173380969664507431591805401286239309442970343473425504724136232460564808813417576179258708513286229084936153168183497063884685185281645594239702976983532304813565182837274166526828146210376979187168980928623986086939182750918406913804592576367642073328809948089229514844855366968832358972467402683524588770802900229369652747488982826781097437296351714865561092201237369482246396845260100920577247526819304088400199267138219187900248319314818350855100263944815340635506024963142152171468568057750298663439112862112907220647478876356643209216637790660414137005171070569650493392516543121858885885951695765644036126136686298925913486957239199967018087326123246450469205517709747734407730753746667337975548381828513226887151968541147437453580305735370543758164927142609542618019589508692258184412080468700180306970730397843636814267667727484884804820957733274058740001223697275669268017989863054829587806951190394917836049194631664138006990719602748258357715212922676214268737271095537838546436409875963344375021070556315196783087784086284727042171572907347262914049502941968767499103747430939343124482379724064466949266562355048778093068508146264181285322407640713683352545770136651967792212521811052573465337449749214294009769561934691957228710825038554407060278434511214317657306046075724459998221459150100123490799298300892339391510848718021131540744254331645869197504574811032454239513611397165310531262542580373597664134255120287498205238477132165548826963685405186645250167872638717171911681235083338562680092349286898357648236538534491481110147404374733626587037909214304505537553524647646781456827092902662881965649790115118197106016444367332640220178109649178972807604525434370119171198343245466084061733539870932034986253366079509712375889733029821938501377413195717872507797956218001625653796562700643222533896793286325468251709207437112547345801504162369703444782800002304789100063080207098843378837422890077702328398225714997730667105353304612016428530897849712038166883658339430100568651742988831431791590675873705717029311768342958482489967226494602075346605037573919864147677315213154330121699220198884914673073287906436721531865431390480725337829223862320256122071240751225158491695875503199727287947255363233834007988246027401696675040024387400065141204807087123218677865871828318401022709888212120196854648295771964316791355788488126161481571335185785813597949276608195080292384433285008163656502535369155153038180990751240270102412528588572512123161215898662240187730346636856391115046364669359978592158008901984690730659139694822984177247562068901216586628610526003871180250483580479013870790065303085454297238814814139978374286162482395379295309013650658001847509098684366620601935603051439448890617496322369510612607756064654956578200656578385859870244026303802126777642126226380012125099640772687979091745762778427909746081242024851437633337253694996674235301943962792929497555267709048327812377376221424266613224119176755757254733458277727745249722338699853430950993686233721939135172248388072458348579470585387638020372233342029602701439227143568453597644318090773698557774079255770634309371266076076427991312530176984420088847775836241134812306756427885568289657267190903651914039088161956105778976320368413828040537133619073729440819224881866128833430909428601230434601490715109747915369204618324202397766949697251800859555746262830125037460711395531435355351621228640859355639206483256637635300528925090382965898120625954215189504687022883840273323324955105732518418153962258811452973016148250028958056808562524276974705557207743407009558693768511953753442530488022167148021909856122263825164682682213552295180673032956903613060554443954657236104287791800925259721752871938344308143272508232274153246596599137469509286232610061000251919943754659518312906384552168173323224080628440603737347227489279757027112828658854280528748166238246604884589369209045321869417749744153437016565403720973720035437867886383575863135050720249893487735050799031011216345112745922401379536932108027482537618158601368378088358979682288875914027996499441648931294934306077262431669366473703757461815886930250264332402142336315323773637856977418279659796660341127560120919466882276666351160541861671121444879578429494535102412176096576626959374307467843559072232331656512521253033040001166526164561714278686541072423916779876506908444864075111142662632201310031698552631978627555239141633453831918097837210944198419831119874616017213780373656760074516316273379702725815954886279454601453769647604437299291655245831138560596046176140247557727191782526073182533436240818055369064570088178839836273296278082347035065685779640348738678523040129149609504836602587386880052886579981269055648752692461638880113711919792364970304499331896060383949493371154002854333900903685935648623094728662432288156066088485918047822934285705328027397566952471515518591397203666784608313269562984078031076313644037828157577732461992957784789104489951755228159124799415982296480040684310205794825684762968059683900854198914826681739151347017786518787484561470234422317635332237783859215322818467062030045727779944691155332437403882744608642239373848005053943497244478759500486391857920283680304612533484492458892357719055219677408040823567603144586853218538298030684642674372206118373902848405276894700341006168490760851946691193867638477384717410379977152937207784291686358167226301997548201933484182716777611905945165224111198655133006120899619995099585495413077188625321058517527298175704325742775629949620221388719437407519144498001034738275041432912866484029282697612575764416272056310834139721156499362728320463791648770331110614953912710314502718725347147413552346058195431991602263386048940169246481229740201386832222276106555238392731067894572002031849322261562325101518244087234722881042107427263105332494957813199612101270632892835197817077039078600200738883731494747370563929399157534715282033353566335013759623449571982470063817633452373457168405614889336110441952966692235971425998572652237355014982986504678361577859862291416622489753028673841384003685634884409969470400850530311838776466316368978753628379106363325545783421012232975030548217782291430323744642016170173437967682984403822901522475996230636235375718609133465585295683061878617327160815595649130573673069268432328760764831401376493597066907824023180799834308708288937594418104056165090613163150602384542605459574443201140140723118967959491685183782616233570047494929782406411024570080911048220178058841564970481759394348719082105778568019858762469314141309851855998826845501818236731567427512696954435820343422582937449687154567390164799187388546454093548969878404552377714748887548920337077146926615480021621447358418696823746864350184474728988222034790550678337360166911399449805742011118012823245745400340102142664489402983914109172001571838437345434902909010328654052745254006493528094100064132294760782413492179044952765832122867005993691918851735882806794139695654151876847025344074449244242690423551172464547482535184429631085325534786636055841120626525634343764863576794811626724771124080170278026549376583537337612526972232836609005978274949386375585416093087606301653474968465165158263861791520766795284080039907587245755176420090913608663214199319197028677148486246670699637295519010971944518646188606999362501962970741890586923426030757030209302669272708083478785403046579315871214018303322953208146462819680877578301344105023713019468319871935078265378532051100121945074175344219264485185093318897321533111204690171646948453939925195630891519323287653327016539103321830765789655616351051590862304499599204634216729738476474520056702203810116849866717373375406091933166716711944784467193885167238217218522755004555573731995059222836702679047724295407817528669106297202428131289274904242630033166801177137562237850233765773404287566564008785456203846547111708138219922167165490307649089230445351082986103408841811769816150467686224134693028551804522828440023635470895532974950840031081014825122857315455645240570499771798613979769870433935781613036475251522031785996199753793517457091822711163482040820520784240832822863392522046943862463570790355584940627731406195670922541353933584126951928795671872113189429400046577903968815248332946478099482128062495491397246761831924753980284918070936676287897282843186926466542167987114345739213207080368759878801149213052202311427228621968032930929538228474244263302715842959346652788472520123140849385706213141913981516385701758159592763104263643775372205513443479578585189244844460104061566137125871556792691578210072298726390616408218466346282223071564648791583867535856738760246065229440964487951431057481979117431424454374325201267406815942050244491227061466898552270315558302075219714683564117266534929233090876097985795280907711499047685585929335772848332202932337241850530656343037380080474156820310189370034841003088070166051596887758354823634948005181521015736185801694601848703597396496187342940119819363224837724930048738986351091334044216707768970277828881478335639287895869222418977666485820203521509166153067833898693828750689672253919802868765071917325447589007641492196964636913267904780082571992155992486242657513860605524629327088459456069803881908462556820612967456929728656000361143007583007150382789783154855965680254824535307421072332611414877619840445472286123594187497555126648661340389167156035839772975678961523024743853311937844248695567791498643207962672247823397730404608565589031722122628248843479024007267583478162474262574409259834198068019619714797466379848424765148244427088622298271741869967651183737774939511620141331713320639645125355201283308895958297195021809743674223110871225281786286499946287292415564582229999111695090745377390955085602214874609416057380245191738753000732032163607918595582673916741902325188701878996506482657452867505256352063229317670019277392204015414873884161736198214180561509824268197165728591860926374289745153039229430753673552503219720021111587615687497693405385237999605608714492128282943405582999976774666019738642008299496732193872336486747028574647380661326496351181706251139535188718377004228612459344433636531117187916310747588267792934459803448454447102333887111625651356912603499848566127748796492612389260639802138228302106338028026660357159994556857027840859941839866169679133956494479218075439336143740110669310253948568838125458516075769022279667539158084173700294609229893822295026181830736151964641200098145776943741303539195730279570743033469852067778387847578726731042007632075563846603326774710909165702841155301321521082354615558042067039977972302862537400420518654966085193829718313454794805524221507716439264955849125213946223598945700171414831459867129089228515061364392752434194178253759441400571116920946101911377266846353408151108934626176065085739315221269387223958553082087569235977868486721551617592573952989128844082110921984412742095902751522842550994370025014765694761693736996970452724401078568563357381598478084158876113377061794334055650950358603544318568618950704987633491964850878859998098312992729604722497449018253921366085975288741969387499399851324761352497206324927676514707022194815918628274146200725236385048999224164865223165909580436791519430586798002306234894159013827358190143585118400903150285824690134807054913603541015117833796372589669389630670382043666720759783996861425388517869845028078042948626634451605285778228883362065045312977511562482080476510166547170157650133856261901799088971947900754734995579058790155329833806624293242058685546688780619485478421184111320695391677781046333150033733666815921243006148865407193806865493569918867154527614715750312573017522687256221657350020685415324407400619172563616610824925863500224292699785951250110757159876676325275662593638798383587720364847142162730037672761586909478948536606577324009677355631653387680828527451742264340053195321070574260353942400769018392236613585374929381357180555894655139203121296166019797787039828460962584596272725253080011768512510444093640180409115267299899050325078722503576973180247588155218271877037691582146294369819292456887445530265569266138745965724673795102196619126571805244088186652301212163933101594560865832924881905873247994418142550218121163185720254204207359329038058142232303370758868413022582638564386081747051906266800376797242198083981156393148960905018470910191179980525747236183127938973470598337435994725173078793094639862560522547776331750880949592618440722154818331874096034205199574390436506141323752614799753864128368707339443569202300282995081029382848952210532015929414054412694515245688593586267343406698932834312814270430342553710291103484867684208793882758605279324168526308032079597138731014152521855391545223701659738229738438967128129508286630029781959661539908776062040288058612916472297991060393262204065058133679529385278089128549944380701896660879705441321924792373387067850526594153859477614200653954861115837445722765477182091533569144308988184691056885431413544497209868440634769668216570167988318683495189852147271678617591465557767393408276156189851760779987274751375309303169845204512023120001092164586384100521097445278271788343539013551475705792586178147441268245882151135086411190428275345504030675027127806496041387705438904482297340296805461689713442026316074591859468538892346557144060004023969571527344335108031921204967245796870156721934674611728507102252587515291117878957822286940753751088524488802339229380936012335153235095612875094526572094516623880395730922379707879322348038552236016363280202950669043414448446231027058552827738020820661531698710995156120212561483245161469506620902924600360391223492631511671615406466641084260798816276229118670700796135072931494952719458555852940342163682304431493143522182635118072676475170961888352560568115152021919694235246315583214480606771875342220248715548585433546056283321785551417567061063258313518706472614043730159129832972768197987315297735028014503046143031205159047303231242908361999961750119128709628102893448570362485363629212032036417945471226143033811222805384053512881019405898747437545110960208039852438654086381953134972632617547234525469232024796864269748239277913811822239578808789178650264391617545442006978374487812656934063173186783872148823721237583241674021448059208590249869044384924586460845072763461034470997926289615615964105321261174540700883087252811890273905026208751886031812124542948882989301716306731897953713165276365361897965661611918398787154173404960084296494154281579312536752839326393361677486417861471084929184293825589347282804771261074710539883127147824542993100780968109712351790458286867216280082521015190492253579476034995021156294969256746192053936227040005752384505744587838477587001985827968992946655099930225115075755565106736581478773890334186900031407492829615649420151465807465256805676935668935320077533802534019584247051183366163051892705243844146606962387152193139630773541328508650854011194827042367369098545321472789116252142901470951704829363009887742082659752053160763120365931407298053129759770496369246935745195933362754116672561125647381444890422018445452574067758902647296476931826384647888241019826546671695910314960942911130835570786112760739616545938636470517206603437242251958068251388550849665434834345109842222728324937400375073815368192282891955010010190419175602287649307109785272083792969447292642853947460364607314232552419290145567476722110331546766685910716856335144287697476793008398633523047298366049153521039750849379008102474246824524083138257727866895944772532064865610486528398168111133239217920164123439819138363373699251621583299805003602824282593973394685927626466345396215235172210236722243722522615407254153847311584534545823091606513790888108100371688264278402275980226774450471007542697805655057071683212099333599593141541031044546266280967657672644759499770443525175720163085832892699310883178251735994260948713208299344326140554410560430164685514813524763056852403829653440774429443556146419673337995203536306449309602106630740363496446015014551369270208828112806961987531158545208426458516844899314486050306558217644752678234353319444017294744135638017798814779796003852488791020572138769646945808318173901177442811787823150712816158412295968313996230687488613161444216928205599407751148427276899037065637853182717812829967883423050192823800145725727543921368730869803799553635038760245010571749979238339394305065890689058060081456153403065564847553593391269753029578136447316490255792402243821947076203325097130682474342197429638698124410563168507704751422477511217374948069827977278386077750738066458803924321264138680035735853970375237523716613096393558341169245931813365694847263946921202091759343357517812779919916404161867254434710486838954485309819522983238877585540817300291001130355056802522546935802294672380665926885556898313101546498552395279796620968788944696828497077618775892929187474305291716344723568942230375740233745280947194249505601965179260669643749984344636013467971990067282252553027094923523861383292262702262584714805620067107768656303089136962341805111331807261871930583493290438460588315196143723888185547303336668047770327807841718603867263485167260520792296278505439179947589610071238729389990432692379755731799834457511758370577031161843557748223183358635055973147679142114791941119999379938342110603699235934205981351163319536049964225496567775051904406170312165143513642513193661928628239070564777463024969631945251664784882391117608332296443322384441029585139371344564571248231492623390678991175053660953146622339109038463869420970770619273096165649446594511948602879750693543215504919520738538096133778525640882687965584140861376918246673079202360858098387968782841666332024159679849202259650717173962408349521561542055886416051431196777915330711444008180671991010906912903606537153331510396842756314985912894784834238689237620702283324045682854412513588556279190031865703461023530390427106439709925332600114707603435746655662113781403783403409307530559232904165401131756046512090707483973551300861703544613979375282063426870031006639943904202540624426747710791164640033033403720597813873072496772381854130040451064493724376006377479401551590471562610106405233053667595778467165464950039386556770003593752405357059181488765761703515244678490762095763628041281869611359526771613534017928046500778091041390891232408056781022663435695318691495627965395820566803257170550276610945986376817961814268338072646287143058362869980257509835057399247757800315769845128604180536850206106619385935157841147101241800380270647007278191900695319318855701755819109363890242781539529140446405667802745789618325749786457632070950085022615195739636961968487544947705955225245383802264592068217890703275003483419616758586813986066993492847945006017869298188319708920905222798749986303647530128574714773826309709810570359982361851340728747038000870262473625575448241090484415415594187021340195090927079034682934666337002363931222186563561217589005535296101133975317313823661041091958293469383030936724345441937118809555658539379499113508808039337917677838090985117241763084547939970822449750537551997325388213922737483471660015511121001898662834775748017799781921198929577116455339917362363642907198555777286041922772497967342489931011953971583131593127964294817679155615997181730908357991385317649941589912835195611581949397028226907659830632540087799222183704039037834764182052927650158317723669507186507098396496307502482176194221550361480829991906783877680131030410943974215246811683430821554201213160469432705035820664845960427876634693033739602879725566598848863028536964031153481094493476012204491804078433134516779856891705709107226838937421346949681920275122786493387640434975948750793775616763730651171358428955284935052609199691083630229744752912667851356630979276966599999088608268849821716552608829562740509730393559998985583612284908267301001865420785838452355382742910990893992552477572424616601126281553864649259676935710401703370165526226596155882622060146557036329241338475493244099420506241081923237548780542185105957512304536128283537602079801135273180753006865653646976564184011284355319765630281480310888495916071500374657889470379409310816752379569234678258904927962565016976579145549684390046713706766222633479777215443539910490596791930901194531580170962741137598818242830332422879270179763589313544151061284278635787578497879932913365782921765171302726069705604216057184430448856025306190093822934423589792129083687673811109655289390958407137430531934474518188265585753497628105703273703402019362323713608770820187392758722503743123525162534426270732844661976870389471953619518658738469858501149190234253568042156626589306475708460639821692971631725263626161533910211128449431100389274858093523454961159304228883665408172761156136233521373818932857240660421530244304390022438148775905089830202742715864717752854128602548447742130811893458609439175719578018905295879265711409715051822452677545887799482324900365095455336964281551073946006876100034869808446909077265771868378403147315732041777381313463176492749458171936395557487948631512873208387194031067744458984492312907036955108390366822799443552292597045901369625433882989480001907311040720072610223409002748810789723726177265630144740194686712952268203229186455901916512892548589406673411968390502724679013235278613814150774521016330524389920393741785158720274488397497513983593261168705214041049188448138755885403848073535366962573070567077054623802783965481138368163064199194731269878936272037558291463499752864414599048372378034865695514709166513045921100554961085998346322107988297976784162977264681509940585174784443440266654118706765509574585573629095474572519394503026814531058451662996964032978795632887957748746537832902315557144919237328026123678878148169126900046431553181877657243428459572313543918969158610713304825016214011568265641643029354661014655133529504290017541063426406623972923178810280995105362903316723263298849940873349187409411578935022852110201104693914230715383167192174637955588483756065883846760461890421839289007422653951388630124522673080297813575185491894710753115190333019803228184176800623608621540056537709753124648637334179070229113360692688831137428237773002825967991693122370121368187898842160167045150378120328365213704829860853558554696989833248779589463770509263244163397368515545417364409815078373267713070307228919919676140941040377298230845342715643252553730183483105764778111374374073667773270110704689269368653643478070533450716493445633845889892563458608131355482834644154731224485873158452150498577252400689769017205881057027665255041071472609206783699836361747850641849375344409716994717695835484612072713124345018471151670512156845191959358520345455376508582992587841298007606205474048270171470253050561674349722816237241399257062569078916422377027773306588159678706702842489951243631954878893843836011043556713710531695999467853782922791032486488116617439561065040606277043066022879393852633607523441072416039963212563534077850997442429027451479556499603365205711115638774582881155101039690590410251552551470037836424705176947334397058763977757665356235693316577624002758796881546220826562030290158039785768363935979122098375128890356569439607852367409093159498192309183676449730147279116238366658377926972618481533970464728349835913545328107290084956880322114510536579987188771060408423531487114802255638041910396664124450710124440052075084822650764483595889954859643409039151529902628926895069382341224268672643582044378859226953592345507255515950254402333877688429547929881819583170353197751532903292101346308054408112003426946052552733370932031982959361375545090185213912171364636470513776762649611924799345512093975349840582524441453151002859237221293386707523476395319691145929528649004110952607467953133418104496586227026700004208678363218068110169150890583269635301763693653425459889322234456169428319823460943984274862958513161068763437663107788725357239525991160179203785675986681976418326731906539692148483229126784236842088555576146212642860627048592824479967410038963624863596884226124455061549467430088487747884394142938653385323841048335125269727916269545715100308628056219305834770840819103173097544722200872670349301057868835483787362026545675394341837483502147355041953864239692152527783161742970918790554254155852683675881310977225708294874501301170499174227154789454178895279231348652967581157822562567814610870269787798751849224719481554954423636220116427198515036424937300843655710399348129345273552427508988673184125219095593487388899223236122567628821633245333809183809927931398908074178273461095016177901324336445913641697472141312241093307987483892969606665595697814750359985324259559451603838034490964697884384966849529345056317962874767630329101726301944300163014223229575406743527783505368734283412226521841902682487362941949324838174842130804933647085903098069480483888936074706212154833412297367374816438349203963944640421246962006127027414137513790971091593207775228774160836627951808128123688972640438008327873457287723125033649255589870888345023130359016012037439590857982330601344148128211002684436377119301902288935683950554630073228364088664549971755536152977912815276645878952690999391573238344527551868036316065176138172120173387316256163166340610128525261474701496474102583672274305204016602974733053504195635985119165487067528327656565398166443119455888687428257213813721117578708394380534638592337010183606733874037210190147077446956747126835776238374914066474846617065274149117478682249664279631807432885298897763287195811174522085032083835329869029268371056110918044622143470438962679377590960903042034423062523822834927535410874979784584064657352032801402153876519020204199259368322786262268173235542004798353406613973208593236315304929226587506680990411035215914754897264772505573622058200186392105909581361225262619582227862681586554779878981615593539797886272493628440998185310686977581526859500933768799684038079710782794707166478979400182194538878245913415611327727185807446124105634769983629842311795584492928195088471867532234614379982469218767750048570052168840296852422289802284060492510359627689202639762124844089523754936706945810519531132177696506750616991844104397959608939408072421223375837657464644112717297138700298478010902921264715458520553092298943454423844084844498411561358102274625188072170960915760260490265914051341920127860152401577512069422544396294365687684228758230612709193119977044996234047945085568901061156872982968801606481383821715466597019560979282233623744661055769161811939626663549230141146751356647945912064909321796559939891499765149194955743320063031695258838325504955070519556253345911855564518471805583531229714453823499648659311646687329687018132713611780602543180907304434293714776604920522150391854070271665106538596720680216937841826594262140847574794282991582777150857641693062098851942546983847809555868772396730310299278260911555175588553946230359418319485211765160332341497762722284111478467186549631474827226087679007840458626545304820188038017595092365070495993031896110975484278093682019241878397129302759147174671486114797692781028905972396036395290205975938068517072272328625024461927700345120104474092267866770637215089634446197246842425846675115648497221846201174808167563098426265545767646089851443634606656098751393019666120530391924859240063507703020251022588060847456636868795752177985300720181648253291270275462537171058519647926207651442655127561671760306911740473178823428104389529656518063325445319468547281300050279081190505495508086305991695836748243093739450650188855423699490503803896843114045264822119626087550957300685537646853677465554852910969699272918770524297538113736736631063716279889756476855603695953004400943124036146724764882247188930013953146144061571328856927578071283492151893624035658119321856142115768754151275010765898252107316425421565389683612318645562174964761633984745166541557105518535925703894414908091005840733318629882487546157430748530873178348506444345353630994527137306322988365899090947441028864331353709581220035216996619046548282854139541981457158302031490072812858568348703020792183024320078966911883160883446585895545358262546262265063775906728094874928476270384018152804493713378827522151874704805383811311268482928887845489875775977644972102900634168325868678992047599649183442259182827559534669525380036952422961109521824802624419239774270670397032693340924946547295844542918967137306235686876345933869256466115874251723444536533866678799714902108659044434316991107890423067639125462694002843330449267392018427916578910308271242357237683076728906496906395883459980370441861638436206575869945425861525505272965794804696503566694095406334499916731121635299288646017768875243208397169533451081863009111554482318201901859301196529222627191255706802062034010346506788699364687866067923774343471836879823972492451445645285734086319193060527011933760219702527999869137708100993737941509046544213104588602686097872677865020864672653566223759359674563077713042483888316747120287802716028882349940495320791460783720290209052913266692234152405310074878463780730567097851833380430114087540443376666338640444640404283997707243120892041241922111059558715465216065764037810554713378173141981606663430767938552141048151659812899453569122158279046874051806589111262783905644592410804546902884526838638234076230925502468039956598052919949200491235982064436287337637842847358069047735207633728919742296313811168154523791228122184892566444096016431619980213986660524745201312915291025829123234107306415450646035260664631271881949361843354360675648993481492749354929510502170885989693637058698500013429882303414542474858504187845124921056818026412086312554821863714434900960342925439617824952231823021852759809870955170382783069302518586177742188060814025905701531690478410558688265854177786827749545151479777975131691435852309291648872569798550450783492142280929743235725077308130521251340005655819156179967133521421546362740874229199672742818925612725807916494019664508898690352325324790574900957698020829627896709542253721342663774532962257157392526537310136351813944139520883818830148668812718480789851508000987790815449195895267881610085528317397766286635469883383315638342299714477903392838522290820611673858314656972684377664587366589529178830117669460959465051777782545809495101119979361026635913591992793537262493372047948637034029070458632010460831197130597918277942481113794011309657314315176321641888358515672256043818778500320571214463743813245123416217381465001817849947551613211794378584673211224873548792649956144631121880262401581094135524329404879909779234332286439619428509417985170106754126342779532682593127573970855866211862739616331914959663023675228437345761585340849496887554740955943292614661826966500635610570841387765014181009491315658963520905987721933452273449016762520073705756470292507101107385205529633811756880039181797580247547199904493352618192450932008850351988805955488669843621685200107531796317367372153600171422301177995436648554643279955549809255186793937335528503768954215257581203346905038801687109507761820838392797766128326057340336830728479086136429312396803225471002648305509237357076718095372890641894803166311928449810254097834868765060589439544530548011854839262237319403770972464053402978757723631339922074079492399268445303672176766916317910406793678779626005798745998059442408329630225431769159213181770916580152114449630599131903736775903051641347730524209208662042311475977395048419045867049946581146784210848550942007432795164579038131106869629375070853528663020279186521745806768300940217080463435590386901250796530436621597258563096436821006839077449585865237447967423622759966356269295536668426485798419144476186595658408138020108952788065487939257662926338315428727542408331723341851348118008682014858945569674268334477046094921511289095182452730974115972614346073406220419420169643972366313735463105365487793002022027688670406622920416115571668803603960166519425155765017970944082446957148783953946838701674290688255924757918062102131160273497903088023778431624467030536768871276812349831655104179043513253689835938968761646534479596608711932453320092597262129592331793375798906427811213157863615792187411249945145779602136177310956601805174836088538611978659577735950182988025314568949973343100728732063046999669068031990411542457636646680251885214051673995668150157425840128480430441205805125605117694191993230590762113042717485699857952265429521768369424004865124934989817814000169145997504752777098559120943236539052742434154463274204206931287562254054875188821472247973119752791687460979674847866964324768468288466444948845296095104771041103966581161179998816693969408087562000678059105656265860340602165318814841197719195145539934161509552021189915756376139124799037569716277830155663631444309126486571021189776410541299266963090203964559233002596072091322700100418143625258848068655031188122435584492422292453575510714850685884776203343269332664897686566437239768341254080773164974724084382399543225339601190909336758541583665297573360252683405729848221933698225156505812691675626615901436346792908465911122183643157671284874086421173478932079270677449851586134166315942300103163734646136788385632623670616982892579491752996932572523371316055672862426459235110524415407754126997132626722886613612822574657799300198903434183703275618280132776511447950098013378480039888115951981332488101235184281729768711079796217556365546637192672994665310942051095290417644721438197408642910171229589730340238044171732581196115670250562729443617288081649124345176760573334427195633401984398174969461851524203328926727860477273782550413181867584842382887080178779261600197011071483530563261582537276253278373601438719129022715323581658639405645880809649737275051172662968023612507510419408163091946887381878887489622871550537383027444716694651131440925656421810186375035138194862085702829545352607476175015026011070317509031922505947001082904900823108492527175132167228100675928641432862126027446732960830280312168077116361979532671796956373960668641776071904652210177733987045330523114988249588781889255070182823426223024094215285440982332933653502342873288454428255558999876251463631401672889353697707502186190795691175645234462556807309516180763913558727586582717077539358209772051327999167912405228605213930174745501531758030473053731757431389599521080489884946712912189313035966223787200376581865705876815474505302624296325445497580247177575708682586124078371465965618213907006651619099054480919535040694832527627652653604981106313562340627117429405672456207822618956831510011570182251344137477304379167799063640061618492813287577227322217870553124835906164166590511644914301672271124106969001807497481554793915326969137638288296248753726300933460128808855919730340564242695721455242331126367996224590586180013066318065275461895351575710337054203028741367182740286498409100706387893786175249972340179499758367056528231169327896849145064356357660577543650214627225945895554224602975973690442833142213563228377545219855520271483338581114449940008310719881806765606667192347907807197535890958352439616545407243912015423954721630294950639938563114385231025448570134066226798088600337698587751876324515041200423836207962593719265954035108364227842699305405485390618970119319548175447477020260321271374427700974512946631830524622101219543283770608550793806148341614503106773983474481177444100754266614840525229535389740636774508113472890186811868449381047806256149969795089636980885502066004262574754801596774329074318200794234570922041732027926520894080817243007173860674542789046448623077272894983353641178703871808275653355588507814710727564681024391213686687536105931777336563437742731636201773972986823513596769022199298359832917515382619664418351341158630293510808560124040011346143653248792469242497305664573216872638139204935593602849705904423117219920680590661221773080390954933206461639577098292895893965736657228492408599249180651697929110128517147233425466977512444199877638074543407550715268369571354488051356994664983888437195943966136401793557481421979088395248575463079725219666109532755374243859896041560800268656612961947355128781911181164245559188908811344438035090713521831890248506312392674942224943145506219728129667558139461539601839223370013084957501353409893858030245786597619927527981820473673003142991550244917171579339094586087568320781992891379560377940335104519783261571292180350312990290884357775593181798345331429260193630691533369056984474304739102353372074904972473699791397681308651289153312822239364616553540229846710828433741500241878262485397984136178255114422069911820034612888096164085573322526872243707220443900295133241990968352793551270874945719340847420789997002120020717423360367842772957652321527720969122468846126999488795767686808186157962083343861845244883684083949113210418549036827928323313839377651727658360672444002449467827497377137793044535475470250314650057859774975013726173660176974449530720587817055417891100135362750163445177736547983484553696374232973648267655428946511539655882678183368035010958455743974918315478011694159724004263187447371819791518862633957586468822721968398657944813676157614207707267464110108418456296989485767275439472208148742507846765365057971245007038148503612437227770215504401611039010972381389916627096843612207312397661962206036440549355145617942666539180069213105669340236604295927707511089585601705246775529005694376971367388692324516880699239346618314168728855555969253360659235775790896128298582826411934937349164507945391432179295120341377847977968420614711236548686764151216647967388277767549998423398021701478799411255633148586544590242767416704449199708888083472794214791407748176391255911842274278765278677540570124668553321677022538619124267375594982050996820215730789750162062072521737379130146224056624818345512528695899478687489993016855027525754982098661624577621305987858754059404463443324390454216120931065174594137864068341884744982393698360264749835158666935441064937947524250769114103347526550620000466812467684842782757805762858297594796987428405497304044903341548281585723307686571006280941526737426659823463459191558958636979808151556407541252727956988813217880730734439210300172301168417963204279183233391155504976700959881470356326980798781897017039808713098229246250117027599512495056894717943052600628196751451669042579059041358118719354967366205567156344660341402483146105351269647310677372262747842924137681814321754894893164572515692499069174311329868272645670354025528421624606985488188285263888009045845056609014988760158541974060102754785782571547073566169173439906482128039163697713425542814381051250128773515307973309874465883438809842759763732541277670574214430200979066481062809774509343457408358036427885913353795176993893505229170960839784921305411209276282467883933499200496650231566191942925661654840155141917447821960849501570657031423622127751267247217951041190438372184335221229011168630279267077989359122803757724027181171917375884203337653212029199347536264344539067629082464974146743763933875238060404666364306569799747066461353505790511806936374627311234598130485284897228224178549652803065725611423938274948531300416789184398518080510096411619987415409701236346445203808570089862849979723518988483327463742619453193434464065047771741991626630946536150115462693621827125038935267965471303020837802451551547768679345144026628591174522552018815993510940620620179440968486312276294660941311527978338085728910149283651542857631793879467317562762631858074943571534863448629049281553929452527295687997306939385642618632690531076120804165587790056926659979280736886284243395859561210154207352721950639262146148305640419129760005121739378568124830056851081316305876230421198880061188234509571752050839365084561334067395107511080123447662400256050646045714660553721272259985918439368409077710080330989494766094616700802772309695274512320357143042011010075050800510926689586302989258247599632299433345710397449202457194304414370314165016858077062723096947345105026385405513356881831868727340070243691668921390389045174556267194109800542401928305182346521348333294779558276646150735567333530148989945200131115396659278482404849899514435680274825326955688078585120024371965781751572847402646355829050730241908451547088778430246231704352750767786440203889183941295750816056230180633475469163224834485518572218251786973811384785955637627068280455163680219658273308500888959824759969148968312328713436029478494979737189101579685683132463307465948711040476352185462653816783565574008367696093639792799551935785088777678288008969115972575155232809143665032870082076747677276126990547783483642957050208939978530252440942223104608796984947248512032558779678283840507179456184359759967802644730023841869822240073941054372590546888581633589106004801098157154487648525714711266934680617292152587222170945869618627746316182141071791146375731732671046138836981103917027303887585628434389470649983800693434871898714612555499637395356582671371213837741123367541766261160571199192055563548042232249505822326731028491657924832212073737187013265595758691518959276718954297013608884463938193143436270781577811578781494724518200912257806516297852411159437487334078717239805743831701886359496244397649499397395922196089534176550615793051248063213275823788439699346777986213436278177434740928487250191684299248777947581760808498790525888720872014583544665026596251854319750290293765578303080893210215821339268592186132079382073816780177026977648332712749878200838752066143992899306159537280937966193976529542232525918924412557620887412548789210649377177201482300504457456713364594538726518371048532889840007151815782957687022006535794558840205340781633040997107284278637045249820978679295611984995078850504533276045990353706711863191811339283532078869418879370434727257885285364274799431195614629180331060071585706511828781136333456966329125822679197534317348906024061505380003518728611140327078853489709066655482633595510028467077427830126967893725905080413319424369251363610634626239573765865981170736689934327719860718954600642350132866366359854840468678180261283315781328428319558723747846373231874901684460437628421168746223568410085101030619931042762070470157874661038864686167112113889388729159659368114184232484557334906271624808003201932913655322539083080258467405992546961512648498574613597302743706062041538520342304659519647389517269261527983545636833178662557682557202696456865972593792032472466393503888247862374402652292470941677319100997559070033803631593615935344717172157859490755404083770067637981563648368227439228085513409101761907522104332123530222565584917837608030330737412754987941754178140121018766317207198074291443662875232727703011243365270472772026787990817658890879621513151272888688576139726960867552163757192504614905335423523881050121994213386748087472167019811747723649672118665135646338610793726632727582293216642926303727742687097239524255325305962770389682534524761624596884803512693316442190938965810751124196795414255928307007658287414608685135029128239745362408240650938320525326244185670996327638129834382927136624391330449446061232556143367520761131954543260947541410674148988636140554482114567506610431696793430552378105488082679562372571458741395594894937024665155732463461135462911065072266676464745589885925596275073884483883416841279158550654250859506816750588312371066468166562183257171735466840207796517426647829711716924520810253972545048604068095291956320834088429230081964260299627357700612814507970947664442918094206468348017752782545430003613067062028334628030242163053608546700749678585336678319861456312986523681605520004309647866206062586986222636101094708492365626359770618729609537029928564186887948690624132309495251016241113166364189063931972099646899688488139326825417375994903850430401409950401866714297619791243782104339168622582639766704926749275631413636866931330439844559830118220600644314912405741938527557580399170231643694303730301562140584370339481987081168341898546586638203828183528261241713033534404862481888747991067753840398500349016502835026855239615925348102370674151203532093724735283506135507711004484248064142640590098113915779932537116102720308850377106405684006903472533894571175274856212337211321512413004481118248907271014994161752941772807037935899143208275947806357734560933867419600089853853189299204024456942492378460008026220802816512702034154121133961089445797841419967809828046845974757150465047832013902883737460392968746685109871864261232050526333457603491421218409844183245557912965269749816875794837543320532604330701548016660918579652640264849743001344700979654572961114123800472447017490589109764241672393731371580553904886738516653285759654683082167994845451843439416752114997725625448819565060659952680324871797183679525505425950114170370853202519874439197362785083875734739349670180208261100835353068330471564085892585604641606652729719750310320509297351270548496284641287494632127932682719733770974371905219058285232305253528589196896284459359965762982791467160431447331478865750546989189864714952625142557571269914103590139757958807479346539512602526625962608003396248173872574486830972384025969840719964290729033694285952078729079908022416436173427100214590538438854289160116384488930353049759694657383199127722625158722963176969247611584180243544628478941880003181757743317246992519753054807707453797157088958299173453642686577462158381563042186927175690769656400726503843932414735050593018800168567220529106291040384350734353830444413898139031554185074187631866476604253446629608359755672020795208267136340945136717472341681117541069868795578949562396884890842633571489174322771888357594615265893750830843461156452170375833190509629923383536692631609924049019849577945687504436555567571783627770577024767596812932676628281924463045427532640627716404282376525372729671576973558850726358400498255321718542135638091497324402530962666548620217417803584330333082790075284845469490336646360355381657036010152839052904305070702874548116543963261461197688499504670666003488361243497960452483610734802282021588132169662845990587033282186110344551209222451212073965011750512667920433549985678509589669892639802488242458171464120867159028401089661714324162344443446130640194035214312535077126593479956702882646431890223451350134700181246319646145355705413452599499531710061121672904262259409741090687049602917411998580655900509854493948724159856463687046853498271318218616241674686026344507233653931071119912719737476108460002552899726110250430889245973995338194960252844655959390793643085689509944166437236492001898048219099918351636621070216276219497428885003573681554681421167013852518350546020856258037102171046943960524738216835142753611075592614541037719452316438412144868764485234493481945502366038076915490721520935117543325423562996118045730721185491366736813187145007831992098446385303145201706761263054285597219968626714879659595528032178939640223370329786947495020172716088780012926572060435886177592756612064016277876068707538326285080140461607301591457400463704943628774420771586655847268156267353031393926187341184371486802246138589252181662391409783236727390386200082193070285805146441318074935613150592175728447331357575509458230049282833813078024595117306083327155061729332764579323755332621035857852351968024405506693969339787947605709010243639127086175104013562123166851302266616479758216047209958407819754689251090321303810876354400163783845261261343200122796259170268290778193789819803917053325293033990685287321782166252677505815590452108324151808313980467633730964369984597089246120567997682925681249480351121005947185087592782510027244604955062701066956661635087685613755184194963520187051360371973591264157411431160526148632701945045617016404929369565116725102452462177497357999749500223116893903801706454709277457131064081504471838634500243241473793342296152018648950077677548399659862725089751812467276132510007233725014871562175154065252427162438964519252665033156054847051772458568778549236167997606501315752789303663815381993059398615786531536517190475930889332932140294899703000253482761464064724357213511091545114448996830813955669341505545685365992284839389748924813368517863454970253462647681053672859867094525653805381624698024227058947699425043863131301246490213438981901219395350195337201522937671119132877931395113547165241362574002319630408630121650194884712864193537785712551014080411424199387629578711252895687819898141938381242809967494434501377096774501833099202284391973875775950274574680236085994920000682373114967455579374475905583427132619278610597320803984076667799376906750650215600751271436670987992330653778186040977624755351470487774061122331758029596887864781122881077269611284042066355553454638646856863116405796112280261287047818022331168948469098416471019778515662617582937514273134279151431511836573576143336409775970319065751420114045672854158095284825896559832826118168643694816942918300622307590469587935281048975599381188638079995951954975506260177420457984056101527055651516263935045366785813840574884654261327476902917826536530479244040994318814862426427029070197839865710256163516604364831790030265798112403579811171733861658668778220275866074033982179547056753119905912470646537123409779204858911604638355155723719411742231208043820602064576102072826132569241977217387849203031272608248152606286167843222539975051352249826143761191057487314345473252075489241067469274121149819685187925354559574886100912072916573931974658327230096339941066359942429761154141986396417445888059022676669332015092329469226151603951179329282390095801798707957028745135675481400273102512089907429752981685925611084123994072671591666042898552189833358400926865749436649121376314249425163183425602904944343509976534752983375519855699585477577679039886689135994621548084218105817116691425228208905982897696121699022031890315435896320102541373893437865464273290122651450908052577696846446514068703201693650125958048633104997247032927125178009897909246936054700976777761962710913607440069167587378608394711020648303897930027718204009941267032379776619133405601100362973585749672379782462702470929589003854193605910385074499466555949550111408618114877089664053106698629348724383516754016345737865014902595000736469157965555716542045084991059138565472018860739799528567536947691917557690591565673502107216105504422750465183358497968334342820761151153416987190890976467240963714953557104576905454444738109312122879955663179910755166355544760003218977205014441427333278115639613856861591092558900656450739884422718281788527568998482178448106121827547614557522617083726715041985101691832414758483030075096760072436273484089351690976782296509338966447645912272144622117084985442112260354967080608502686227744216492139793851291183580524305969129953451329929751345953906394279045310053940638330597357328301378018758625213926997176442023237159448297574506234518476991678539296945540134050221632095606137769602743809900178331566079157486267461078515274723878633349992102937337545697245103215680425211528749261401574921809101852532252980923694126097742724414701296731813984542800867454980797465997010251055746611767874736727973995932540706251689951842981435673860343186119068745019209371787770641924819952307554330840734860827761279918693713964093968108540795878483945572875717917779518490384229955652354907310542994623438606901775897847110613354488004021970105263603968370978656751632323435892291172876627316911032655900766123557316211862565924568077691479727100165854748487034674809977720801463527513995989725284665916765956094097727982703002212945913273293730332312956473747736462726776471182489525626178530571782887935769741948096108583657112769919707126082430333160665146447548324246003749985874608088117035962366056694923887691615964515113469438379764821658267624699651020000706825730049742273220172342611412227805172824165374128147093756024203652329062987400254034923959802973376543825548056858609418709527688594158070500918395937161172607263104658698621678257435715371210033869634713011751752587488651076033051363337142069098980106136105065608707021260944402959719518699295248727620231752988482158804614359262968857448217397538194470689160045425605674253684173517174455696460455960933592560078005633804787817885946828303181067691392747054728574476836509501437777538072321031958190660652767157459071921821239236718532309563537421196873227723740494827672708082074743863543030029071619844337366567001683374633075686058888477362375945531375863103298494814116998439117721422420786169319129912584292670841307326992401873857126532480074582399230018948639324975532691637649377466157999631200186766806399596696127307231132648080400688273778231380076705568165907400872024313111923241530498569046724638684079384001639685411361632905944417451872331589605766745226174569346987704169241214064558821778703978703147769950148722164585938410352581194713106419360000853472838904769264810914365235289944955906802448042439428423433848123119214220568036454241815422639954489063256642246848453735728657235102592828835968741118320768704712146113518873502720793480068037879788620783631729725353829161178628735928564241554150975640684781444208546326690149865333685127614147059274120385707765268418074709917914486691452085065113581326751867629739305389693240651803419022533102991395863177323170165412112490822241141638079437019102632159829571889574841679754698570362532604641713484463458519842819643463787925882313296785380267134496965952839880187225953333228642032295463437364180281760794642116528280209448808347626559941322688071852111660939702966814317202552199812973000326247740965083535598447867996223493226960185243707701741745396898869982666045071130072773915833051915966958993900593629332780631579181979430718429004850030386466319473573159808111006122051923600019430366962947078353038441737848843292687038920620267332458474977028799832167738777882007250892260692690997148246366038403701646912969936672246473106177705590437633920677973226679640513387184739800808408731380218857067216188362632897404605040885854291311845713479730895350012142824565640950413297883363043072682468484003149796426539540648394197468985176635140290479748102653749874556483664462066509936733837190185297009306345184578178108804862295017331877244340370778699311014024009674047298186861598235470850907011810393353646126160760332109711447397235165554085243037719675339495906783478861711809749148947210130286739623237762414193558112873885985795009421065667357440781772690382667732692082755878877400800275631533629744056537399112689883459534812782844598253503483388845172838371594871464037517042770888815232485569114435639792035383201244467354051637629393665931889338170491382502460003173786827852947019827529888236893927090063180356780885888916611848747393594465804757110582470339147096294664017003626225542815640979982007762613435271238159755532405500598082471971278933104905920969640682755054760251638672815343031200613870275126831689013901539611224552293673560162259564846613719979572133632731013507559415565744043652152280311265543841039595858180361014411926691899363303876720051808011745197300000249569000871472437257530652769352423070517865898916248755229643165446074087489378222037535538747209468639567698547929336388766304048814330751918694568717567926031166916609024177085774578964526591370125800472343486418331318823365113641962310584829117221959141525512313957281626852544189003630756962826257887881208237240196260599841681334319534675014442499064510915458389272654024479489373651455984880969620214481714464989647586419668152673608308281578828364334294369867773430374212469617608435892311277890369877785165679639388508106430358875795499846326219635370668753087520455810883453379815745381616506375391184072300286415366063999651695487681492553265257562432525108940739013891656273833249330054731717219743775792667003521457848929976066337703375701312205138151338865470728428479473963536000842644036524795404357267919251714387646422136190247160040038012363567872143809677919427211371328612881419878273771723926288909032834354902966480762310415669991690863281911054360836805858803386482558379765639010851802739427226888501732365137427694358017638844176931319526095194117847191400077921535794082338892211740508573167256231794423213336895339072078793397947896729721466914637767240154697760208813204918424471890354910314276288575997214465908452783515923189540125949975352574227272970856342636369598766486129823235582926386334629631797638526214235631948172341050663137688416703289903221605589544607330731447327623257952679504210684704045669439663430481108175866188297633575739495221263748891205296371442096634460642155263929539602982806337721232096503002090060447373881246849995445521277144872403795160330283670345367511190437129506779854811920115922991567065347424839702360272032003126407461599448207045455257093666752581539091417046391318476435491169660548843010415747922891448654543180251481973514456392100419026491573240936391540764797521802183880390442261539863832594510937839305436334111636674924157196722303296686671960570716648226859676364605400912841531138155246729076813881229189977215336168770689304545204641696582507001166764401251034963785082561510275536517216661382259581832800883727085815581546692319766826656242922315316963280607149981685165531405853640265972772460192909761457441654827800209154001113472389018355829998176061900421358867407819361381489296552434092869128332028317438603679793248247222613632234749599844679851212857647571273002044963981696499034668249594285762997762621120084899205087876962555412263727505382595310498207292104049021076530290593785991368391158632341537852855601571063539136530060930110160526921838283934594759593790233541336650326810281356227523744248735199304165439681435455840572507174355825620863728254921857673043912293154638506044204719555788413278742439333380074298094612377845444649349813366044810303420519505588643276093898878660120000335623791368448336748826620267074509243397193618199646715131197608391782524712887942835044360734929371239371691983605576282900925901434102758796134704697278837100891118511673903219269778252925382503919509539873559091301723969499841643416441594428432302542168937596172137178454827351691871791719295655963198996720391687385787894983057442976246221993091525255541778226368831513743788912314095606673276870190734523709014794653387254143876908878848786128329351194382132551006061567080273084647314642503017101005736805817897334791833854248838274159768061123430600225633330065373908863119319829268680594523713063235695903108464713937585910836289669393559070236076892689115037770310662328222761977379866453024747966300193572266194119474401222158110326140093270741767170902097518930824217539246585499370097559446782578773406729509378355137261294741295069710851144555704218263606291546249181657410679187416884782295273544983843954470933521505700741106939542070209995440147096269876074856758108847149311645900726561246577381712333972199693546109712902128399114367012027621611797640682687340470449442160212592753130786034590298172835341875544292665502624154224392089189745072355740292234972753627450781358015884759187282261111995603817498376181816437519713277498055759995637319915299317364394596348340403191989627822591866552010350861477693851242294762454695814146819035065552823160756687824761000319771079196155920548081063228266339824058091520960092014320870855284326400250906497816527781460014100379259491730244394713951482025256730183802266404209621064657856139252393960369757446778517914087165882082632269285047682162809521712051635128222534519163560440904476298631655260695893548816379162975097829322282833447732381930017761007375101619052267210879554110592434411524737854959908833684965204463400850758029712175043221218487765471582306457530733165937665673529283073665305827826373482779291342601266562543105738209087683544800667922158194132205059850919987703788952592793492388758861909736509098743496892227488749975267496126771936014376436213510202429597340251787932417131797783781998803507955921735776376836450467613517440051470473132787445635081511619230301502345590428522229930741765252829430870657056257714953321074276448943870276646753773408421629646786539653360348799220928219057484537801907807087997390026794698138297040532566736407714592976725300329233656160622039272893536748516970412901345155004779575041046069806060205265692018999090538211897494026623542245570591289913880145580811929727678928646789471882491057738265669474860434653069634783851466614544755378430365390673396426642086746249905419639712169709397264751605148291519105354461569573294487183365884881639405120608783095336317151437030026118991534953201112645323765843966886168668871897473040341400800585659268258268570511999310681662168231247211349982382897835561584997078859797337947629026292990261007090236166856102663771408796708875538292045779391243186026932861691152141997915905097722993878531066629923993693504624982510309905095822488210916723972247375991341230197764653227949178606012116880809942349058659895814610883716658726119237321476402598105939880675128110343610280541423327318125184150366769526542254208036112910164533702047123941232369436291669997850103574760735592700175767489705705064052192081115568154426544642116026870214695071440934550199185750966843602938416315247611615149641810778321615722910081500737144295779181805100861296407054799903470432455352769377690721666051255102058369582144948261843918915974711683705613358170422196328231076359107968934413380673721263180858744250565888457355784740430467088286477980936848633695951509612903742964588870111750429695729929984452877798587548702881332776497608595601952953390069269283425228382291570359240261361751068469696059784483909955656091686748724106927903358461702713748025133349765036757623601600713446542798234735805590022345711223191194321886847356971091390092044867129096653245810142682687649385778610369192375618984451820107525485416877139732217486923676045973579797255223074390367605494497289163959214823639167114160104872442765709614802530810676964767207349604279864293488850982565032273185675345038541680473875354149227021923938608021286671985182250390932310645059457715445463975107743033540513385555237622538693158999437806956962035470069224076712828254313968659272314862612460402142444268473135879960407719778287084876729019670104043745214104136050606964866281450450677725606884515053559036958720209758239578892186760324602711302089814678601691510816112173996003094597629680250157395446294352110430005584198143469772841917576928275358740909587829555990462012852449914732943072044030737002371635472083320274232548404334662765552710726014795070502774746159078106274404774616787243647102844693263942736490927118331394074634588548736997996714194345980970595061327865474644021438611169100431749818885823615252377656855602656532540688472435935661126712685262936621762263967563190057970054341986901929955442269268075104034181493621384870482108921184119251397848402429991952067081047299937898694118833079682212531827525390002257096939389254987425305486207537707994361261670679992638544177088095077148478004649254027816470584108866781833117758277138421859775314123664472821997989505292725205456196060909926038202993184626141809013813449180870874564025333796101390717516289145917045614394985844190436622525643078261676038304185308560192963272963953154397185642375694197686835146746617393037328273838907268411606696642206303452405165362944607549433170489882136274430250168150872785958944961737097835405198063548270378016793507451094846857932681678255980578814232671445773597327147214938826996245239295729312032423490187349968746866611732769955217714317149750937582275851635011351037570054651201178475127160784064398760820890831508134371995984579425372012642404909660139896002410502136215027310957075057558875275207848695343526763634301989931176303431941388963391156042392812090639003643510284139223223900083690740665282680136106994205343385752025010647839583019623279947524195907399135164598550379242589731202844656952009828342405111700727628447294785909967728436031413479209905209888537010215132092275539046749107637569400469604662655235896055752532606975662693336381920200634010508830185374577274233624214405183518844529771001839072051663092215979939176515014437848848356827242290817597574668914677319242968892730737766171759917178209534429466912128254190730840072641576025277554736482918297473744765431709886231565251509776000174696604890767326925898020722657819637715479629635660604727328958288809006086898944812645314622591997293096401439171417464159288718939462774342228200217863978529844845861524719467326890079535465759430201164674147963395605493937913412416802073977627086863017521332435332154076152293072107511789292175534098856419423278866740268983181672750490706058780542585831032522570415198342657558663695178220444580804785643356378689453894533765405479917695588401754502525239900627529657105251072330778330565423258541161937372697308113193998912276581299567344883014399215584048960643738129023363479556826976379528108234025164479306997911846510144660637631511038807296630077006876516998564923701200686827477808583377269129955533658150484186397596634713716176857185694837728280249993689264066060254372715944119340648253947464897941752554031264007026812281085965972999146291365097027350463074591968681400381182387714110010068290709698955530165649183750258727485344641298697723355533132039440887350539912925901964074125815931743609825367462839733834558701290250577583636902811058612426216587825029274530722414484002146189049696692557152920119320573141614789658459965596657928369281359325041376731620228682157456937669606844980796111125005108050326036842591513473084881852249051073049442440303854264549475484200064896034502074074355297561304539682205183294280765777637917262818679830298645755821270621472592633939126816565982264422597933581943470280017473479736526501663328240560888655980282727827698710044020512039383668149590206839515742699203118941067123851539361803324133211209293034727511204328833091433914020403690673621829890515530649562115501988359936239120678516262741020880612211863269432447410991196259051626854601224532211696244379786670692711963677721569189804046879901427998106841819462303156089091156569081516022865711120233007291359312078636747074033564251887537753471793640110606921844871781163962673968803660972970307911910334155670867378212108495726944601920297260945636547887608532330475192630107351677127405666417567254771650914453873115150054950294718559844638071977601437572283334899643759444905876604249745166638803879597333487883274031552355449619809760130624334802856865612944728652885002781189209082220990570835835317113701535589125076626051549802506932288579145715913083119548861087856471503197984717663037768634856336723556139535475196586993598599282598250886488430654078823807782220963518548795912971303855915030964062439803797832421935261135158102761699692497177699822777668753067230730793127721453613170460508168722358479915992239065501924542110945212961896206268286848025255900940437307242458337522138333948691606535156949040482816299285268644468858839197029389305423864840086594669561130717886904946215453407819827463718660629221478138532624036588894244276013991500875315043459921284205612602962147329548493968744018197245736652193168335603998682663754162909559924338614281098854872658042917140082808677076290665080690978979749917125192216296155071042304236952440692861097183294667341780175712520669028121120861673732219485277492780962226934943563126054606822344916188612998844078411876530145995453478551611133793380298817114231667547194569137670981649216650418053956391261425554943871113116789603784261497719606819520087018294868371790924678502831116601444246678924862716947355202926536261183811648173997408875887158305591554551277551455417700464427834876010591441139144112845278978962759086451265220184036580204840123134377823745215188769069411464503318773741660315052183949342569719608729556405880358711182563165085779499875972166978766303810184227199302749134047317933141601016819325596609220371721737104737034765642776400511507881570545466710617280994942083957059999634443151471661169091753435876342173239747687896924865286582068858029876578365916350242870035058974687209043776114507364355968545643128118698100522210132883943535423775731349793209941223098496401165261936152587197951481150434317784136479844648479444494588778480007964465727130485715131053911553350380907932691920566759524506089271395088291230307637733750673115269266482935942355478443073797937925866690551564927287303040810253023571660199405643975094868177534866632480912573135942572705965264118552963402365125404419224577472273407902901252462873143847230197995436675179250644656961626313534212622620284261901356841103176374464802428266854570981914074960947046380074308101049218388649071054842855943689988978903539766141607749789286088618884444157446317706204709558648671913910652280700760200186603419894343246267447321077148734917478453340547403050407325447132878517106795549594071037984646744805428227287836586169898525050559664902253372539321815930386329344304514939641617129503248904454185085084990238280718821617600769521581426315287788516962308482880034770623054526273389785382005166156244355175922122327779834091106104866618038179706622581706139147174078848565877182476925329777903643250258915552811613612066935697931524396382753419259346066431811583123088841669665691275653219452343891209438250663497563760518574637802400121871843324574768034373304733712554371592246176058406495169641426099229393204710941236668224300588979023555026193599913605282915724728759399894598626344164327706628315849851755742398093216179367462976523602994450949411152933010666625568218432805083443409168574645180747694422617442644621404826097998516584921324673396069945622116209588492724486406399335875272910754798381419717158098459801005183739383899875298117637226098278250758417520475579945664086247462805545001699987121387596600025417668117663322990416948473540631112514846867945143546852741320338055274965371478159192391125792415405241405366937425517868759078834426297487678234168863664112931094990200055724360374778097008503397564314159131982725535812540235747640457239346562674469023043778762549615985674334561528239007145769469869219169829920307341909823926885345418283984929795813657438684664654369120541357074960110746005174580695902279685467099248842900453599191674094045035085371580428188172688881615428900620558707423574995350951681661902220917479724695595709466734784627956492024143060873108657429921347608041254205880703741591062672073061801572303642488326585946021636301236358093331751973078359572938651283574005850292369411019615912918742961095466317776917656826284014502399159277824238904657263843855596648215626282988774817096011523193216804497040604006488709878503299573231733800659832918227976863948706347329987849701862766461094225373059506874957161340425233518691797280156963021586543879273372923591202751547861973408743727104604530658606848236420463510711130922706641078604116177686753102093357153920184503298714655178574656556833960038122735732335173679366013307140653220477601352057015888394792678491664780776730330076754379980187994625961539833883072665643074099362670898812063331161793752120581784550288003487972465747492027298616595105458764378038231701980194870132237415187892917179219308323792962623335844298094325169249509861891015019654746403144176412638078981486501359465106810507686514894935323958564250231671196899772886676919997176272872954129880754648770447317423267610497595451064317654178068808009346142542788068007376501201681861139472515196554672276701070913816259155143885944627592545148583462021511749941318288768548491354686604297666529338635951804759609263427233695995626648307878220016131293396364501327124702414785465474124288379830029931453557716938696994695527065095628176079017632038764472345277825868080873595512924379653432871214985868219734693232909462908705149134243900745430852657048163772799918003700279844445883822066704582436701228388204530097877052392071387010178462656414532499957659740434637988011355855357808095017673594476803806522412287562759824100426098694799095825770272820012374837094388175529930278523093260871673923144212725402046060391361650994738520332326557403380344581739684023693662735805375868608542674815762104521270911158137966054198549021006278636954518066688410358237259492025054384544865478991780806167110775641909469040803980256576569729939615867310701595892242262466282984798200325724010270300969183525789631705271657045871040392383334733161159057173460136045903983874421251748033211799879227564885226226724511860595146649477440068705060319801327336305115664903463700734038863337591235102888386620305753587769043513790754807291549169995253250420301778134763237453480195422436823104157326672590022885516456365520181656043672587218270929747051173307105809664296928010500074025455930698860740846524059860045538199856647827003059634481841155084181638316926224896373568404184200558587629900655028940652351356074587246177989155723378586221409209315971428360507312984478595181910300198823698500678679211091782198286808629378248834469152891469093259391322945516079664889596280802783939694888778484553592397372824195469168243113746562306316773490263731656842750229816075994559011344519249209358915663701265731123259778005560053110438431525299999382608435386914080370380647717162126034920034353246364082385733920492699449490690530531138953401949185029367127515648435056077286184858760965312421494154622035590835677523543403249232379226106552579429309445689458473225634614915853697652919866850239922683911444779439811094137116559227241186695439756928220972318527672171049041068021679972704966380881524074529336805100858053022124214332156053851567311413820471565726121198149455368761537677016031838048388057971103640637215228217853169361639225691763267498438047287580458206608655308569341774628456465263782205530836447975034708681110789029869343311980951779305266958429701049641460428956479835432326086845775496585024362219237236168476957217983926921857609996109814230009661067648029653536666850947806594952182455435162022756850995445610168807320756524926265218930384194878887084079299519857663976345051129471571494800631557081432739398701779575639783758313312721788563250376836439308846232687055796189773188767752751184223987713949785682409245894207848778286056600254278876515735319243160001800982708224398768018361773513588736464826431776118712246233493857067746964725161981794880760401371538203573691920468077545063505449140319851515311890679718599477751991215902063023897496470176583719728152183820608963837477857575118058745054459062669701509106280653546245933288676404103270737770505550122815220563215296276266796326173417219105938221300665302764079356994611853935600009150211517447108677129730133753438513017083500343299409621783663555994494011878599519462226927348908272076443226863984898521145594423853049567321821845220690751752472295723376261904090878496611539895224413753965941811507682285116710665410201693788336516272302254229180575169421326859592389312969860771250214352315679240957961655344469056873726528476475259538421169134913154291620109022466172353189951401718526971087202725826283869857444083674497654139168670476600401026188032652823149161743136469989522147158573134796578295720927028310039727748726153444242040824361966624439500720468567011448419881587213551466986798273930976154391017539286570914634879792612085792259440941581516188135594539456953582658010565068992721452254197824522356571261686750524772137863711979812649103151198879232947673048856279914744649087005479094488408788831056283629104435202286337625198691313211687524750804786983595352342202265285006523901252199140439101963923976687535357166214278497604586683018479697958035258360598722812672006456838752304502498254252063624048641128537809485772247996210334348831190620593976794858754238384115862721643561986591511814660029099872105276160537496411164897734924547435848468333309728132224934476598129999130053503286236649635263088990131774766776571049655733755619566721684128725943082525854641807150696500916315857007580571226772803334251210506152680182608218101073699512824429698455539643577014748289147478147601801911382343452518367233175936803690986230166209890600272188087031527615935753461349215709579668751710833327606578651634221230505160435666872430244463601160228177340217131061937302249943039722718407212915888214959469764153449213659309391931033248836003954693349033222225341600389865097287377692983574029029238945691838394486119458244506007762571733256576210027144450586182488264254291644741527735726735873342567032153051268486467632189227984873119726958257559956102461623588227524561981799362705552317238520958996907873080489247639021544064314563117274145736134511356361842361455802836329877903382681943760560052279741910077027131835871235022155006124058469963393782406596943136109004497639942401164610624548624999917071053472620350197683779760316925106196766511641597135027264878467015926186117633038216030174213704879256825862476515480685721777586516065442480352651226840611460322738815224046908553552855632279871759510698201309865880965003104241008786331483524444881837524197545740214240133955990420495041450360679724663337904444312369396984312475271955061949753303472678456559623154493377448777133846125908221661116191135311531913577848925166304365006988616633103595106812805363544725160005960162621929309826416918422611853299093507326868157391193385653777781203762001059042921167853418252598307425949620779201294973652492973339629915410007999354634271722753621941523991128179436528753046070967936662043674710869630915365054045205306786006625316587644311730493083631147209407836968162831995815799280717767096461212584644886727099234012164341876953838450720224904587963045308853102377145983227779975994681689839677043939557885339184644302873999378787507389623192608597767172698799140361477961998856163444606240502249573238221526020213203204817884710369366384751694845530403184116802118259440763695122600904740167820796610300690779500593534297254784034122090041918404828441602369346177402251371341696185189523746594341028362136482001195902190037419820564365889224723952272602166043423413238542915035153587770681335975346313923753841520507749263086876210582744358484108205220591262165548798083767841137870963582365969873069318826352341788975960454920489855090857129195737989395755954586385519957674949844818258791634583703290802856204694951575907112731895227520743458922351239764938770146081038210907566774712480516975480507265198264548315133263145114982369639552887573880218036559184782475807729308090891655866436782615713634693745413807791865916037374881911148411207749687916629870753077360868203784071181682401957768495879434928074314442523371151945043242158928233684648759112851372018374069485242318034663450971476898105166268067337017264372758478339617248994997294848588033650548081541616168999326301873405125227999088304181276687786943580997114258517331608720475597212076554824713430124075287961376048631607976036230440489201874469827970049562175852776908340867451443552900123932170315819114622168541725605939340063788172661620529975969317795268379722730946396758361370149869304639931379391419404588918609205187110341506265553601328799896281324988438599568355749066356140633635094144732157812984481478388192033355395625388868236144309333667585556747104355198999859047984447826934536901359351508787552183432884928862354408950231989171023350039403058807253831233004188523567572835727285920067903619381133063666425771091870468168574885106521962577726975642204488696067125362847011454326347492816841976523528486613866259982084167157846618233784166879303024457256179844101187871931049257588572334815745767965997862103280717978255004583001046624309144324873285609344485441043920382851051609358121138224979550498573776238040663673225684574980015589582601811386585575665061148824610839099873811541912298706847539090509618699219777223439956546613187010518794775925274327421308975317203594807780455216801267048998379628692688167773194719372129152141580054145028065003109387167292774454571747884339533533011156924947454864065056617733781731280501422088411112074886361302785127560114351476584793215711178440399997971231934936948458072058091714890575931255808179246912264704640885196973788772716473002191787184625484648972785611145829684064664900600096530841428904101701191450268381514539129685475279366628955396230681998360194703072183670246890057915966534219169699157723026978439515469303368487273614584878648983348928584486626498005570581355564422663651136855781832408382149001656277281067319577546740742547826066140377416127468850160825420909020798928808832843080256819642833702185309559750887805666600820098763674153380104454069696453708673515574363930022064697088796391771613208208662112963954068133902111520052637086676564228742262013785321264069940702586992780589946715821855108296018134305809964661947039737075392931538017433469219205245988932115729805934907984607344930517258227019079886430486875107534939536306727145090434732002910382418458647863293678117810540586839315239726421582585321864912329423023832970607614265936803793160772335483690935739486151672171516436870962155234560778402437728324158295739957836807031993065775200537089379396720912864053453818355052114739404474238050581227543661637376817300147285147653515402562431532696605437804897840024594476458545386600415510305324964676334682480124349766379266660884563787369060441855567910767997629884853999808097306632993609692099502054086240269822334172506770673570045537532253357870910594043614432824639994282204454571685183436929298480627981444157802703546048459249682534520842166220640752521503587075385982627767588380391829719806681074228525217142423426922125796516538510320154278351823424858904363615395929137667902170998442614147767722752942264651531720711934877896871260148271141103565434122235241325014408790126754346412437938701171415849792177637713868220702076094093108147293724200553834243185077742490034990005325410969372539208797794588480462888370344515264625412225066906211276105694552609313840653598853998482915901126574066012880599376481638634522804799926902963138577792312666659545540856989743042319179441713991005146173980907841493291067123653852009420333525665994109850672367953127733344832639790749034298801908477223834841394593444854112051406764400146200730483760441411308030391917626189803048138338582502687949274247006232858218186215709003557734298653324077913716845827843445770849151331008269950851701475564267120305446917760869272350191117199172196169858673284388649192405167669100730408484872184464950478224181916416857766866477056946406041692355305552440126451314892120484493779327651574753145205354579137970197837187034538586462678649063163265121173865186216844900875571433133124391814051453524592406768993404691279714867063583335603952692540795357887002627819807178648092826222585116513797240778097818341991845076484511556288017686819818411761593753727944168105658993913194251553277654436744388108508928129704508024449043953091886672306045047331751479137489085030210490757804877391552097650243050121757915317213309282756496451117526098022619259933621079124791397131302956970687873942648414723655148893299443489762361433467766515271409501337488978544493322088519701021422461702008162032249891596281791417014677861816169877772504053103508137222093304266144032311843689658815890068853554367314201974142490724299620294064678361496390857302886709890681332850088988760638160641670035164266391586146505734993864479172651840509963881264829777804015548572588105165140536949962582875925040515962609567887654846951525781812212640075469443209201813319206707385800869038530207132201355756572412308783020282584195693652909894295251240310357733844617963902041558412747730759903736996649462997891593021310061378865397762886019285268220784375120837472037340131456493764191190013879191129387853251764209107869894040851893492232483018556508704319154917237630683497199351126703203060552696681279691502765573338417405862179573740873606252619115448519980256112984025900181661656588763667347519057103106939418828335151375225823808734115861396086819951957792598069532758163394550284263733029792508720449394217890548723584308602333212143504771879381814883163187118179364944072099173400947083607992677645467857264547053753931618728035999617754019701144274726343194573374165040363988668347935654834101233902839992440058913389947452611354007764558421175183625974833817597485906032448376146633353824081789597784367985498626834031329056734837615240364050231244775140936259488756363457112094097916236186298851704701097331207032681563653343024191308031149225772118066529204711150742959734052040892025986341630718007758480891133834155735354866073406140038918850992323201155909972636945537553184533511947709087840621294857910681013918531555090401195205405279613553179294407294842884213280453822451144217712959045733887124487851716946146396989348865862190357946310543684725923811942862127652346049723722203698818123882877290515336567246290482905059980926181125048355917234244961547468256996975926170183517212075727415916416043527138474503258363066851524523244094073630276934067919730108278115614557449082065797016102261678153010962272489429026280170720679943820993938103931071861296967544969092794634359883331842339181291234219214713140084528848188743024216623091731301744235186270116779884591286444122588204119501449140074208094929605746536453489129732665788301302282056064590780849192978809879920242272681369987147821619222155974903448507901704780768075905549309609391373307995912971475435637131443794499989299682084612292185301983663664118806188126599578247915206865557853779253880773075303045367746601640078723251427570774651452543715544292230719588849122910082748675440216946522182715366092245271614833474222412571890824552199678862810301170672290624193624703852400986185157191775324829403793829841584705543876006096472626731811047997800069605053253455010501705954092137087643748653534306255094613971672595910907686934866684742611239913007761965513486409211964958350872396458765533794494372150865806583990117939558408196251016835391341661818772520810109579651684887034717210390667164610168843913413136557423376245018349889304434347850735790500002022851170751494347235970933443378476634349444309827396706044548655412446781197365632147291879804215912695104260662496707199716494757831079374074171167629936474470615274615039714444787702902446223652703452369714852353382612549166419846672674473323412283703422035945990501499638591396702679979002054467235266490080889031726629814192413689325893957756871337232185482024802439975787046056664280647804784623269812447777026081974136981957669085095692255329514058387578574648791056839347413177773632396356995018946689339687898011529828030626695516772460188002517027182284642188945656301839368610122618989396805179888531912825588578572218268015921253754332509831747237416312484238717109746888995684281194062580711720514485838490647705108531999091490023085632332066873684975614032065575780235384066088808268631171570048238206880425469541922723792832745272919736249618260887142678265611612724398364300203942931602896595963935383767862861166446482405409366775701901774364722706044719930013643244343807739976204172032905082755062474079826834742848988764452210267807957406477852214272533160390277439607456346148557347717325011305532187380045129103175923010373855968505343544484490575783286002917404672797566787449107531497385427894366748147363811335805443994352305769625075022293762364747102744112617866975565856075572939990942635053418597008282452350735413083545038351936821534573254313639398399835256610144464152893704349411547979610671793757995622085955402389422878969840545504000823149526009643274848340111999055978789275658220459541585305947601771264548833821018081674736076850171856498103857701594382484974992799691571433482051130407380333728955102398281688361785081800171794896449981104059303522790865954013861280550831986084083739246777792953773422822628560392739804423036829493599477497074643450798469029930410137410075367144134221491924295994481335020647959132100943872820697394088663810079471185636335694629774245042699891170410789730667759718356093956957597244083968332849502956227044287201896948954212264949615583543383939516843972808326005029150029616520027517176995075546869972572125915142280268251377628039940467108255649654661740349102544962065277640905946396698600424786850839845421559117249024288745026249529902417607692897432677638474031118789239483520770588722702113655035259918913379856003622742132235143437549063034788441250135716357502354558438512654677123069065075421067891366733433086372271867893440073684205006885357763853181033526384222702078257004346630545740099012643929351409289767377797102675044988686450473536441141829771371563784343358355861737703233965910574161282130653088455831622519775631574680497039892221998417113340157932583981162874925810791884252243284344185449992362956618078092108185200350336442674072904444404203855672425910088348565719001750678487891989533151583872453956275533994194324367933092278494374131449220156214948762222078106984082314093471472239407474935539887166180541615563849117530958901535477669676384897842101052157914404131241735044086476159590652622057685825547173420142013281297939883403207498211436054036496065339105842899192404066035649627736535055569546132774187571816445860955014210758885193120306131286000275102616137314344258841114742672337923188465740402420725899801546518751801277786513554702743078111863618934476525242200244726693037839331469125816559196845752477857277479724407612545068512390653242552539299572821231689633642787205358549997128849484982054776929030588078304852744190981355246033438508738559762489152252425792968954689138797228254332734581630617420763758585064608655890069197949709901973679012155889945304438387851466579079900445286217571292149692643159885998607193907817257609751417070191137681991716162422433496133545574313430954492412997149001378918777613078885680767010321104514863817697203155369107683137852533752948156364617771439189380821481356475343632259338869161972119465227537325459504601378843173649720343505112539905166835759133481372077345271225171966628056865232350952026746628967757739553882034545706065767756543002633349111719217507362906358025565897133782247172919277400617760012240495546508790056965797169785764325207514278277233560915524924381593840744419326484549607196480492898427674692554753212622355114015331589299935948463712707702349538904911235788866614994592884641597328530401178789808436790809313303809917870530452987210366341139268527456105682167820287954548984257429878039049039867192082838630875817403118150073758538547361062423074045297030526553630905825739761756237343642239504039614042837239331074138882354211160061309119318430999125619799552576929730723227680980128007181591374171355581354010509106553228271030053557613461362836063832656324894974676133249937234213943958481148907813718788531368179014831043521488925773233593815582369503671526126856735732549865778361012078078335163329440870896792807185213736843092867635882880342846128459970937897798508989134252457526556694750915612612092641918112916962548514460477073884501370791660889413929343901347071955440513123384992059335613774124623545887986649899972772123188648336899721234846061529444023401363154413038282476078670408609466656727875221407663705954648300024520433770338954060577419912352716521464086076023705777462325509586014631695542513200110312008482334909714089355591399592279135972954339748202359102027041225502676581713250610237423079687294092757696088685734236241199064132684288949578025388876564978001929519136422584652803387667804343033805533661214202039967445883308503590350906741180223493711107584868475288811654619525729436887639148474727037327661855665424765593403746710357795041890655130715392962929074378633426402269167469246687368407475918166364124400472074053280753263013636107323543497344070628143472387382629445562179922631693250926931667711848581082421154277211900114665976445878406409918838861307474463007540467366288852636521859272714084696911623989208359632546327519132853528784665996739699653497860351571416000003395725928256301669725309049103938275198550021276896482817296686715193336672637065793197533542103743657149998608657964044983327641389197559099457894334787788604030366941382863218101407437209001638296072981439594552870612023385922799681196849972065633985973728974635177543477519388541572059278759790595370969116714800123142279705169440221500616127145785253034414231008972812206220881132917557332631133539173248483763100939890669482090828120803020084809776194113377609180232196125579879557081002130920243103017395182374293388695078663124132724713969627524259753778243644407878265673171861870962561389114714943760660288762648187134594521239065213941080278666525853982738223743333238215054217508232617567861284495205932848692330699543886731484340671383255450042937253813488234085583979620862057721282729597104070580645418232319614323179831046343308679482495697268186024297645938620625975875614076838552155058800909364802502746261776499449082194072514938134215488847900045704968439601450670970823443723215807716378119505498351033908195016007942396303976927870698521175790942297321757960880936790828501988526453511859913143035471762685769391501166660623467626567038578683008244271277909902153504632960225343378791568753218941523539524608283818593366481825923805424814616347261214586372882166391078550020024506732863242729190480093478744138373158777296993103190424019165781150310883161722896042040591495251416622048701729670969219569044849604588180544121883692493195264471880612972838521709609377009053707758786481129495302341885571227580136974347176951442792708138898604216274023691025198048149346469712713610472610714296719161121557889983304348138443609831530550973964525256854437710959533842655760957311486281527875844734391377927237588504566327355053805920762774676677083527297516616442732428072715810173727945809057342096382681997515515650006375691437134143576780703905059733733279074921760777467756410214457228711026824332346465845821582015014008932355185293791032424465643249043653500805986822266956844226129620828647515754567822089850024275940490926884477199193632368512100979083281291407896517625769469323610057301419061568551526863211512185092818458573052462462063386599076875556262298100140118552122802096297607877877715167116130061894374221477921201255181839505744969010311437991139917564854504286710063807422675157965836560070723496714838791327570168657155275490290415007453416270662674251129386706836077224889768721416238460447753562934836509867464210857691523883368563094456301159744974325016442167605824883833528586491682456394303736019365071896652787591332469335783595761543594221234098254720634765947710724174710043879993070440949620178176816233084270888286178665965546645198945987370670230304591438236616447854887579101109973269978495451741132867989134287463231034260335973245084965114071514494337672139000826898298632927867457320997937054851184861844188161519175355417235343019020776097131458267462601482873633926286074239673895928703693392007725463818864257737707895850725218217081580255998660991978967494921853306476087101245207768674795402133994573734142474424734481890674019471575676321423470962950215456688677028678453263795297905473389511062783465622893971604002543551675089348403802168289570129832603334024213982312198652416465220601693467384442159894358049694928964504038349351684632650293380317898135943297700063553787198652364000990475422626647268020706224154602283560214719834913307822210352637409961819966174112416599490813183056390618937003477815260051555260741067278423896714453653903600157489594583191889826381444375539556374280820732716303567537054241095491442392411655001912251636117172719996616848856074916770754386431982191198618764697666987931469266675759763820110850907836786081903604040299930571639628079838757786837514091078914845922932899996917497558812526913297123539845792436480502313572060978845438681370866818373363929415083359397731300482418988750425297794811160446629215917541997281019999936561334975646523306518801485484375330552813408419866905436338378186298467182963913501092808304760355885909125157410279373311145902102349200516825865343794298302149389612206360228272529642032125550425954279584099950088626370660403695699652754526443054257092772711202766930091247482716034803006491672343188870913089365640788694871536229602144419048269251781698452908890142129198141063401028125431180189297925348106350868659763068234109798563420558964295065346232718168615540606099392459826122919234505522676034149773078450826806461213999516484204620209785710746246135666763662315905603837758033165080290384365861964478835412536869821621515364804588448240997515509714491493684338958315986927514213190867166219519073038974080727335301020397458711616292593055444550363548727590077540298851436705701586326974739907942597872584996002027687790365022693300530338748967370042832617064815394251429597144802524472718850521841940654975918376106779753154219048157570042243194932712063041753849808342938421868897667038537276756717271989835368579970696590575660579717605979180207040291694694582130842823456586891504895254740176051479331749592590315924165652512450626651175739874509163122484828559746071897141007111179354667060831063310550780966487958825017601611964993928046063442204228577423917714252060894338251328497559424168201282693796203811149906756119342632833896968079359558980935935870409376092905231240063972875003697686998163426508224826094268291117099235756891253529930111565583787011443392887286257579510364552171106189052719110123411243791807345844427247873346771469159434801352721304008845164118060488395709508117956431546563987759173488130465713262119733537531208311721907220986901998744082041068807857971349543244317123320256039849870563146243800184851096006700014201617765208993111915300606478733328941732248979321679084846988864823248490509064080094554827774193922071674241314052711008243221470033723137796475888816914548839442894028187988492797450776701844775258989652931364744668442857789722682328109083378551996107916866102154784586622622705676874674305619861261508035152427919285963183145481082709764114153749716333630610925769769565329736454124006277169544929022385671637979069024550655755896232098059518157520444734803453004350108283529753554649281594601919702116670253441124151374387496514225892854164615220663613750068807200179324581101854950157347310840083341602140523266200653671942958778171345493855242694827777560240997282071869327197652021536014892954298571670442324197638657837319685827099768312909625606466337584397233679248878177545473639237431598002504121980998601177702698768523284622014805305497945070351720763937859158876874005596636224554772165264043304869646171200150574765147884865412281609902308248723491286901744041078305127065930815940049190534113100390955527163416117067464587365430642952653641910224382880965059789028394340122047117873271718218867763066392055995264397116046995545670837368040720526479943066439069727140734595552122820471944915060509392328924073559176967149118486900787191464496982176147995985831509996213142038090406446516830789122481411029528911553500329755393635981169755832664956745986322503761367778476459950825244497661704833407569712076530568629580273281876208259150849277589587213135530868153031039511157894865631196552748061379365034597312289501101020193341109647282986593928614559526121786236675579081370803649107412217164675470151520986923654072979558608462705263932992607353273530743208981041746297337049367754443276990098269970518908038001035486463471011300449963750644778797492107056045896865341911420533833558707410450901551223319169444838433269016218956340971236574960808163455638820132376943191696282484793106441560790397505293277085191355862088620592018796253604070687198530767322444490269097722733011151000334698792060503867451036575010049356394889263793150289965660326149651018741842698930641638749935056943352285646738589186805226558140697792851232379510753843875788210597127602965863179780435852187181779991103554788421721384067893271706075653765946042362029598428941806956898231286997086914782110640748902221173508300195616282285449663701656804136348925512988984747061182620780266087294123375335835138695199018857012065421343061000833554551413783842685869379537095522415606587734135316929590251987617779359801815558680542057362374948530780280062155682755085497076501139652514778859064355645515100834207044511927142320470666048849647654190749356054918901027822023208546501504101744397523593999589414331433717471138357165262798153324416443325176619134381211417183605937437860787045104187095443025828427631410459534273971459674811191073719643125875147868858348940756250215536597699947255920880305499553707682286085210446842948387976538422635480345119886725604486279269567329594116941020611276496859941909999284264620919117930488306347259789091856536507228075851847572086904714269243323967802558088160933456779338531718831084904653639140354654281222606995193882281055543157332757489013355903683523111831104369861344209964990554528727828630783796735830248674855262958707414702476428012408905459326010921192665722271068431443704345323814907996195808151528069736666949180332108009781175641210308286615398131344036216349949495362750071266206312229777496038198942712031165641801737534647331587950642673367610236256528710311043772446573440942678786970710194381824935500349468703549774557610619296809797341828556424965567457208796474486997069481211578018476151263610897162981065757300378613970565081925958321524426882469427593487813544591909755540010171870603757798443807380231921647825773314007158433963742607891109008118658369012161225433486943863859874117098710971369957536741133606808497062395463102086869754749214427634711591632102420963053061489794648894554936490085499852232709030156675609107974757336308794659596704853182677650905834034812590804309972390028022703000915284858816140253724934423875124017546165518402738341699129389712728935998309814717134445456933476562973356248764072720371810737935842779238542495381060711531672848564864197519292044843413788637099032214056073240889022031777079494129727387206221817937164244965127997556849980465412640082703920499294148708345789104685190324234821329657854765640558611972459946811877246092811146725789119101140152585541786737264543007752700327466714189037784802227848283101943511619628162297983690507272475794536083064902185630134481211873635141649413883200289429833554282258958659189784617325215447611676999963246618153148050078074802170175398549769615666111538138038302938162805850765659888001230348515339109689240838703575849533450430020439356118255415719278641815934985373985428800988177330180984125268648830846551817117149497175691814955933125281608720670166302059682654896182430754246295957144727463570212642015819086975838474576842307023332243707979315536624993636100038772525826105899188600356220982168629116218465856579721574809631622357429722806294160769139893699506175586513246088880544990057816721583766630566283898270633080401067221432365723934745290627479049887709498343668345308392335585038005390676863917940465960765952411266576394625371901166282795490449531782696397422049347039137826649884444855506021524865725479114759350985813758956860413297684289437658116936363409108852474793040863922199964980368607921865625719036637739643583859470832568161072941949840687424355234636190132271040385821765489613307863604064028115457073724365065621219029548866226321557088508619006110810540481757887925042961007928349820377070099889448865184732860422001544458000147347962574933678112303533788932737517721226117294226984634546970433360283570579243267681280049184748207989178089606027855673211722475748508434147138337935739533282261700093055556973920542345635535247531534837789668154739339777948105432340974736653047057511523351782621266584984802476820692523429586965134966312873495227289615383606103676059701608742827630040584046474906532899642204211615830477784020045048092913898640533673266711843103497379837354985856502558637719898056818892882508760554958323459553403079954332368805515508714055403910318867755712054299373452046444300850852750955496213119099449519998629964300368859005230923984723984442927792902007106850069747983178231129589643179311666489841902468563763710903676472314487321944289415489544871482844420871755288661702654901733186893885696617602524997624235785761608809352712875782219648940975212902707419345640349505804237615700647561292350540769684614295794639598022361514835467363625386854806713552742042471557332723332270350066734500572059279891519110580694815898579472655721811172350711052773488116431275301947883961660673378273143987860028736890615428250996410717666277535181772569572142680241634983188330809339456256217071119077410055674593749493850272190740199953252226507795025035570305387360676072747238941432522169073581074533057538855282932187652306912143300556140365404021699594404492407229670257739622824997254630977309100113096853284921091601282985634320892014052467230265259275076410766022821997441052886033592582183445653967694981149772956990302296623600009221782379492002530344404857140560226351397328883276385313176738736653809579535649162338500650809151921056994187673590779420106256217220745056347976559405682345661047742809543876998383187346733250405557333157865550447952433321408004108026255841279432926581440289642820054497144247534314716903594660346578692869060167425681732775510436113437397798213623322651409512821458191345193580132973032415140721085956275521630934528755396270288731309507387369407629376750120336564116924051484855115388123333938392125034569455843187878852277920569752894456505349579985756992443478582028316266413741719369572481230418830699862663886553671458275747775789999953715902914581401740376919517582061319385889714640874454091099034090432083047553474492526291621825414328488112358329398269635508056943479806596214042246991834308489895005226471929653872611307954637396643532315376722115446107961094723797515670273346209072672801309112616207806354830427400587465920052404096188475290641126516128589909553702062972872291060077248813584768153275426046056845217793819106156721089791824762124419452697974661008934802229400398283876283735568749621912041899126129027004091009432045520440051975334036558832315946993390022222361841643506757989610604623005547672102538223347291753238317388896426776672147030655515535608956467576101015928426514178632600019148604744687560586744021446895321724740445607331474703161371111378950566397670366007137873417709657528958649234503117947711090217583033359271237962487187795263958209984378423155255995067915554022610998513336044381143569517842943517462745391404773685684787222149024301112226676911962263219765794417224295259870731931503875229090873783955794567317165850921706977580015613036529326478935606419120824483026693990442945450630512193386137990587187331891284433229878052773594637609499861856914472219850912309773512095204203875017337305793158382418977306310912183964262436545202529549472258928696063919604311727922821121257149334426691000363079039695473610759107039194190054366764020231493007744267948226298589306940725440891524645498889697589507755384562755992597327267871285203903041383211568480736102735470751951678711158163739189080317277104603791194693513076702243686219598169302969513863703698575370599824023026038700431983308303690587516031665297945301575453083086729036024395319708273911878506949611985494741384622868172195767285543073594570869077230063926040369541895383958880891287297773149955786257321134150799507683048547227210972174327455598546259227029291468951811888117526848125797866180494402907010465583541564193678332791737680263874207453633138040569635507162781251660019511115398840410456241164361173168005116027631389510731297789475173432184662636486123216915448499670571913050485468460299463981687356432144605628542475604806699793642866527484125059423194728603399130107418466777974127411189717961918607343660153493499445512060054434291359428884407527637701102529326739019001489119849687631071305706220864267464814972624767042262244556419360396746628885762385605466379271523477269825918060466923713146993538032334187422752997331775694573742041811474801310615954317029784651219969465469746807064695041853844020747691822387926850581854466673825773490241809425568744393415904368476810982580466365296134654114284218525986055653102461099802161111819458720488132651888725240045914834616880528319455864573511747154113259325214538926147892219713253983346350627872621081619810295331703081811300882632657043900199873500123081853250652874510670277497313458655358411324715012479380095247836991020123846026181167640389583082796814904604114809629857067617956444482296333858704581521170718308586841763278385406358475913355287388241452062665164555141824053268315799645671043173595031173882694202842231274648352697704283932520773406563901368000048204201719777761874164805807286703806020505968456285261258017103996071666352592740559441718792033303305403834769214331892072491340668553538314104067250282196580668396393057168993635252534714414892809137137919619558102333347763153962510499915289878012373339506956186118805597332096675871844827471047389005177297617598585666380665644716877629540562707656116254047581799094956083334233156295668967750765128340291199276401734810382031090415571710200827272554839602933166631341876997508107685366630371302971793048927470425504372493736442292573605333953292490247774566034551020407300060444205566146540488461491860897746645592570086152131885777901064228234576581031467822815416586203985293112530769615100465105818434657090880386657840466106971620788012765559945806832369232665217660775902110874717469870268533212134507943884785874828520860452992907120599108490426191546685232913417620175249829944595244172940254427011655627027854964420021625516855085722562394225282390466192445897437098520286325227927748882769319913229188807527741191889433585347037616362326916935610669250942348851842280088333917267189651084072195243311831537205802858889096093459093971531333506513101349433208648423095315098100012882289061912751355134879238562477055573049230894339366546677831124036949523146154288058117757816882521061476970749754763991698998119285732274524320573205515214616396923071164990759932749110138869062141737038361186862827347924283032771424811653784228518292229563992040704492752070892031959984603611903929837267928992207601403226453114095401865481396245808037393699665082406746370040614894251637099119777758110891406358136464358371096387974310629290636990155160265646838400358626753509175437193352666705904240068179937775395596323130650547480064923834340252907932479694550710235804832730403848442390735361039148641860518687365076598035601627244079626388652955516891512239635476763655050303214171115564065715374112446617666012990035897108627527745178842213140163434442092006316275170970002668643717258795209105542374344242309433459267659164757893147562590572275132337267953589325451876078436818338651340875947292123274624610142747005551860557264303244343417954597436950610861099472391257969181905402581906345377897043510343692909720264305881051746700324512314951936562801147963589145781802086607715730448384501113882563286454526473726749193103787498441002505267200409370238232810869563477532675439205265786936993465239096748763675977458808552457843426120015658021959090393033853420611651155006786021842693614435986520376058693558765766863430374815084901810089565284574712050249308618018735312612343538496858883380729833596103686006187566200837217579676508743465656309306189290007502876611826404510724886586001082306267306471466380627288909633770880036189001494627370315593234449188033634628552461791155623849943936036263677472615333056186684034004983687962481522462652541963752798700131076571914789824281484829392024119503784036356336400831026377474304220928722935456566086720964162641786135462936530972749310432726410852047398770657791357689155318430645839076652369763287383581017280290618881349849693456896045295855012395844788098902007678112474672762377630514074569639560465545964224573588172997351550445329114146752084881524236662511691244062925526194044653743947010207960413105936723388547474737234715096844499267685663926529551791566838955872021671835824565739999074772533892013103101742245679970720653116414168278229137039549307026822375518409014878505942711311135571440135261285979744553185530556116630160793263994679638178525640519936829058774967226117924967617951283031496045859179408477099133133776347978358910842125098940949207022625187482898940938013469276917453252366541177824745638328267406965315558202041067658198553909847081411671421060819543257047344565359855013294665352071430040021702759255265761879492340022707615415194327995885101821008925242277269877432187723880351129722823952930570325569018712877430291451904425070446506340695547102477455712209164604613182502130899888500270478500688233978754196312695882297006840676084337252537198686653905345180817500611650132488365201724448930422128659947811463088818226797664784344776869828979612471064915515675212486017611591314634820950978168226746862199300920595713481718697601564600487625662527919135590134127339549345106556709338220428088510613501132632106678859657960130352356629988419612150103780639070944587901836612310206805101587012855321222780763274156448428054613981549398902294089591781570133196198932329067623115256736714013025185206921849325378089780418386359106401418098039077422242692162470921358990567853950212299264321601371707261320936430510626470930694016732345432721549044128569077134340068623418490157680129013213845530879821782165804452142401821871494312029506626505825117470773231798004895678273270090381830428457386067527786677068352536065781109387169709900303391224224808822565582035807147981695161851703949580589245309124725703266670874333518215174475039242214812050349705028883383950703817382799618523846082171049342044754358535850856912919879367747219505247801616726400259451058309972063900455469719261791998960717885180336680261080685969251116504219665296513815059088547872234139142711172910621807383413242740465316561568958554955851602975478015649893113918157580532225246851669082824966718799370352456858506365371576726159187714296414085124657956847250662856641754378019267264450945078728866691457960938955832524724183118671582673586112579101372919093969724474427827206873068476973598605050789631065340358787235252883020137185379676258071720001841818894885516656668486810297329803436149741919340769823264290145668345465651253245048284351926280160495721112045364801817508580287351215777960945712174835267394665349780797459402539843387866719278488124183382349479850540082510446618995286522112508473946298740537358284713150184888119593881019308070410481255553155390864463030540353413098362825135120120825491275265187525233311962731344785440951562437932437328403176254675796704083074525333856985620486239278214728912002424528234601859964612343282893372724404401480870647713025063918782541020437470890535571434129815559925320960469088423290060287968236016487454841213418182309056043478378688570634239988381200348484375776465056032332345334731539927734231614768236122783209715486771726855401562038801571673839003254075333556277626843203028148503189061481425130174498551079104128418111417554899281337682203089089011831834500255002989388846950498643730394634957524947703145817922154781340007226670183321660216090527232257898257365900730789762507245070411553663328195077150369591531403903851857289760978391422433526749592117923840358024495029087801691143880643129043349287893451711243533966663479967895963164402929921449491585419019636712355851849175460954921876818204544245570068459007474600285689432608427946218111377183301477281499238232406838031492559447889781197083498502099530389953991282425219104071612724914135019293956603977884007274111643156743655448455924440476748117052535669589526697935162665613676497216150322712975449792328127271719267010204358381915000230258890268434989383374502012897534003068253065822819531798512047056458518945160503898415840164938289015295899141169461775185419620301688312815052855362021408573237625931900613001528989684150709660627692507124646779665103777308996746117868912926530912841288800369628201890262987425034044137633691349179461935125018861791037013186313634657908121427977522874572137992108815783708274920880138154626838174507236523107749003362890827651341034519396261571103940953381330527977868012406448888230490104066265362998212609196187887494016465027245163599775317329795522003864724833911201213899449216386554397503303637599724929463854309753464892006105381238554295760807033045721325363699040030911638373034029884388554697458725404488238881420034058607964954938827427990707186163977772088018050885677892236326803258215249653495111627770686544447469860951149902516765392250068801532778779396972539608462315261506297258528562705064239923787618883440467588504930104616322593413079705278315615855912306870936840369626070737504446209101292010860633803663049981385458936956266875748754298691251953624026632950561444810324003397426304288041991862020375320184407822943294967973066401141906369762735261320502545290829824069234209795902158268171630105911527832101282710568016380348032563771989737000079405267347928336202844246249672566015887221194257624833812262233850429409171025331766201120354789411431045546766776488408628545709324206738392247962871786783789471886018592884437995983288158267315842895328353821975921536110348757005563413558664743051754214816089676982919054386745051364273156993702206199018441249999042292024742668629963532474757526874304982245766930645335703659875316685552978946612849360365346318428936019294210709411780803650000543421111425527113397848725642594934771334879086352606363920137889129794954558231664040890838460065883058695257756717117299763211954672915498218584161869640115190693124931081457332633622811488460000559360965164215922805414378568286364332216948047903297800523106402501763370698649611913830867929755537241415463227494696674964622626679284834712771121860854274516553855508024123313840332047194048549460395314770982005050855360260039386007987234805134705310603971676559799565710138347692273666895738140354784248206040335538936807234620343873031621498307100175432845895234268437716700307125993268494236080723611470054847872769588982855179173079981361830586642674774440131963674347883909782855739167002595112584359649900315962015640305176714301101349442567113064240444886004734741686638681575605138167702967498952269423532804684593458099705236372786316169093214358303195379284672089932757196111508980395801140143082663186202929092699158664499965658771836440723461350766954998027564204290461386469899071550287389519512117022918774931129861913739608488295086988325594458610101779509095015263527831436658097039092855908948643292861115740773684063617843388812946841967064011483990908832813749919021198881636454911927778829097130218391960928032661230454604006228266662669708887920546224074378616400415531885999823112882818377272366127801115319104720300343958746527863697235053930132097804249703318923636068744584990169302369861282055302463539327567643956042135023678331750611788465909198305892326500544113486369864001165887802737158339040826218512057005610038892970127471857366152126092241836891487747926637575493774828631886049208526543693473226480770911564823757336085113136210702333378538783738972694769309551572526117520698072905620640198161763515590699094697780085967611470810291589759620837640024142157399311996962660196101805046102860294064571478333545660052757495932496919141390776089254823945988067377579706855636617411690801055480296531806577259252128353439755646515430400409376469427855588481851106401946549318295965328144393114482775203902667377314286940465642629443051036450685583576875838431315569057519291453442940609862141207758523229497950472763680422299442545192197372049902805903087947386040292168142821355242891539147793875110137388553732521635971276196625755570542816760542987388181990666141986747781214117197401256831354157048947911328831743375398679488400662329679968465211037037591309576559364118723587845654472402233023873843211279149259154799937074412460840768051729362779677130988877635593986066211320207521228011578163663729933157647460456030927222678738942420615063314283790264597962710393620801028424065783403101222505116649489514121230612646455606055942816392384348903146059570296541857444648982876835577675766641637850044560812477231813430890389993272960141896069420084456836436352136778084456274243466587818262615436039894163768202371570345792509279242269818779501437043864688160393871665511429349203548858761988051971771844579237680769924274234246814094979520840785542346413446385373376105249162630490269118502727795346775499719640607573279830284723542292175849836711942664428376002809928409652124285861643261490647338372621571873355834014716102465485255106052545963955014736588721931418005382785383132907319766115054827103814512668583480460008889432175147762332268168488075371574111433147596604272661059190822250195019429776741784560854338394928567054219289662742854305257032687119569138588038399944683097991923329567635723967175936594670467312303886223870232180671584979205861105849551197162629352900720005703465201457416336662672885149532544696662882424397363299735763393569360045929419715384341056780667978854177680807156611292204005709014164002761225620405229728885182508184545343336290718994008445976485786668932133066673740068967599643124092065061890744605528622121068853780291871498953815318719842842104833311886719789782990516746464775006807368529158289407066267807543961999905961610737935210711389140942339404729895467639887281792418485063382393868625025412145265464095637792379364220105051057508856148748462108491209791414488002058245852899254450202846124400725397445988567118618831540949077138607409665282382796628257736120031287395063925019811798885747829764821703666054546842788062752713991033913383593726679759601730403800817229562241372451652806106109171081932104607499179915850707061769440713479977482251995802395423567481743576304355688557818105559297849997619196814287637176465229341110003147545723895058632595684011047809767488602080571985675451263818713372237999379411893500633593588010332175785839158781252621533482271301830755314006609821100523032781627281428596389542437947558084324037291530593208042483572944510026101035913881819312980074663473341020358972232551152830034868369563085481796786270118388380190733662081179411432805434836007770187570062505955372508449388618484420180693415980368516989105918935169573473901403858794307911034303385321147241949544497023560538848031133157074472716266015000005631914059805448679426436301413963586777482721506876072241285460224636108987791164490498847053407527671726065478470410557775631862971990917975483938497772879582645605975097660516345325675714215520661401230052029478110790605497212152186261631500919486767811306588151048961991654764865710027948711721110359358612377530373522563425231949233938806052346261050995493795042665154578171830391883128055647669284488191474814032560494238411158713030427929746742013854989469711255736892622098840696323765580730379862608564469958197514685409706606627329505798141281306059821468251277146639374359472774838130229019287581367405410435341842038911150041851903753549269425302889176724503722041851487622937921590388250830056100765800321306305029522307698346259541467778644644145153323832594343714372108139561778229618616983559201116162506159093924459748623981785425763143364184305446997462355022667485043891042924484732463341327815570414320999742788045816779103982823745109390499687196972471253063503295645885562181338613617499325007070435666928826221398644688042614279179717290299960090286392513118195772755326010484028063660533735331148617140441095093791605191170800205390990888052518940522136413511628621579438984877276755238959876053521589753720483548420418318915374558252429750844944317527535252151439773410592225225570622346459205360897300624694500985981706869140881102110922927380413485186356264934050962395879345185236109779999585717122175539889512386378784306183377472293108207206357638965862576536333380629475904001279283426763377839545949813558202839883476155223169494986329460389392870549978682655950933097251023098311973295698277010690130875283605938822680339251866799587423042376915707249865585213604651321356529771779250765951698722219223338549096686027458002128430445483115420233741888560858992463058396598882142271981282122020009078419354514477607048424854132285549020161015786883462754297967585377319824685663782688541898376102244293357071319242368397771711952884226242960926058589084753895515285057956344695467806335248752102935902080224152018882024122055334752466159936299741741043251900159770453899634750082345000284392023195896322020781340172943453797648564438855389838778620201652251954843515100085703666399098908497819199096169507783450489508942982855548952906346179019482189210836598941563206517602272783349402261339686784429957339581722409368599324273163669375590441483336013392139217341814855156641104504265326685184327914077390966267056365743089429100980157700576310319727148897650705667702071052521175663364582939148771195277298350090039892149389954156769643898286299921475389030456700322274904429232045761602992314640968624494128927847074293722126326562640290877556729702562571762580274923981734402744696717266126480874027055545766351234677638805970550743513173465719410546649032690425641863761243084202568873413869150416634763018294485787711615653427616260352920653085464705419967020912405505701996726890224197281302556898374347944761747050817629438965126519467050100449013512195574299339660160309672597776426396249532325201029426304093305263925411972653474886620352186318831922517972537264432568883242664304085221013887024421292305068961293494803183097819759612254481498288776759707410402787967564066160025717583160757486823629484845381827735509274658423441755392533106339925817547184588566676470251072987662267674935400603317674606894921570992307335673457391560589825855658400033064038290492141040395870668089230028174405905204520760586905985897970716682655460717436603233318183789350869821302316291358455330971149985376025457223291712876636125757767562123040559945544919690447731351990281757951384942669929742798487958216049414114139371633291559871157827502912678787861210763358313153967029564726029803671591458179199724318907961727037037497964142243087608889091997405869706417262603207896137163206657071506134384778596985862882286898541666280111270517482469120417459492371877150694651527894177783211587607496709912187186097718066211720211968303125010531197605668278425353076738185882955567416262121854707074877914022802395561451833779308217995685695603476448862961045185814355439927278958569157009153888835734817543104467588897809387735435534498826525876286382977757095176409179811552203112342156856076720977167521300730847311965781579001190541680604058502247700723142776396169117131292552318057055720446549752951357040334152739645769221424022652869516949756749165868131612494004059347179766559693431919076156334412809822008241355931538742712884020525787076998495250255552923267471109566981937302750003616601659628011058192432825014081486542721659656630793562227655958882080812968610185307363723872000113852596789244284450299163087990746440706231374639536198532638349570286382734892666760320534740815645957043024379503467917238546096811865455376065582379200478500668751657413784579041440919820310021776360471209785085021160710384039812643496251605369676789321872613793655956983397670444421281167314704421380613995287838579814040139099852495360616038656769340525059253505881815396114349886160322192258650673345559077565612040570843117459289362945125948726389843023295668410816740240157211757721819274502411641639620471148886543972103826081734148745268991874990353527927028723237282753068549237176226417520900151689437306470215522024833455718868830513034412940343405293428245332969497105232526309713831964313590025666359811462768752578384279018879629775281941005209184865579368260268900602018462402316920697203757523521091772352328431457414575936253930504137562851790603236186463712415894151642808192917965227219880606561187937640083130331127385856118170458829119685127060447960915610994990139933653988513608185462547071382025761249456913828981833590169510457217755014284414803440912575770987320218314771221058027739373585628421735619440902425080900262751959033079802600347602474807186354328959151515964917370245337907190422654160551445239982775660118536430748007775168725044445354454549500938394673813194567528250252846525178791425448119129320990453921462643606789266493250149541721058561508078849032955526586393883370909353740463632514553060921776292696243275640571935436840601829075247451221816091482958769367568777630454065600048804704348444133038186139479757136882525528659006341018447072207849104673520271702381516760373453012904029696203097527713649970452011519795693835345330016913071263740247473951117424443814796424930476232510220149655657812453874006634908718477978358925026892774677164354078955701023737964873469956422499702396941832827055569756076459033472818421635970904663211135321535077755107744864689986376888818043487071639497898028889913447543558539124437890440677190850630712202062485794812676475268868377476372994933223632704119502634696547713889482011777451435013085243454949168879084297099078019485192983973310372939583994644111896976652284106266802903828084118924686704125878796404199893288314871596816522529922554681200773884607239849732954285327113060758071961525512360926028611884306740540459464063944179525851558501130608432012187703608298849523979829690735053283768444411304101676713305536640460484627342281090034696524397026223291058721288870374554968510071981146644412549253277002505286283327529701187349303111651094308924750789483041323782641004153880792324044665979506306624028384152803752697563560202869317536116847178043687306595215476183928151343876915063436293478824907339805919269430105208209094971521205544301608258166436863787017172686889487534086350063314523314076010124443649631126658915937933205606861783750980498090332186598386283223566801536956056254816396535322441638189121292429954804011655065746124766960572256881748354393301584921489753212761190477637544957022997523226316243483694470639563272459446045496150692043741837575476303147666135591216220116984157080167806897158713966143328980020444301973215060503061175887444758603832707604556810552984381768794189488412277935534605938901471547307312488692769855746651010115016701586947512205419294091675717401854585435874160108504941849645409854358463263659657045615929875966102851375778750669980869867407371290342505643146786695680701188941528633218890416865328474557901364129844619261264329335077769886210457718931768245925341328158164952302475377529947097896653743344848026981788784251090579265794766287585646044968517019861942583364136333117097831834355272645716547145740716800518361262625733387618560263968320401472071159705812402965208259358503926146814908450004591437441692186017081053528341908674040305128282889296554380699884235459142060350240658345277386270723662130682085146387829466412951383526084987490139021482520553811279474490069276577031875246469021591274666542358682892473158494985892832261568857315520506378460929494788371396447053400877762129180299909751338531572544657876008414779483725428332978125279748324210914194919060950194205931852754275616398959190606540125113037956895434674260284584620958813433464301682871774580934823667509032302415568275179661909669786009462481364438362326864239855692807929556566172046879692028116163809763591811043194118153245310302331551233761594760975914805406596289017293219113806404297987125205659538554382962813625750638742745429995724127552699778155494948482803606974180815791088745275175174860624577710841555121490755366831742898735643193291275127318693982386516984761305347039180561857747351600324553294968965691519046158302001838723558430252415799361670495613206063323182964443788463141833237126160771229741123208951691373972684368877787203925856553803151086918722367987725548687305822580986060070917836227782125099878815286603404922597664877667547413704579377515633766478138560228603769880119972460840480247396562399292708479581046160371506119945872413606328141171245130977247450506046550292351606870513449823549986872672548224047358904186457729443517479015593845526207298470964891800478728707445954120880926685593707386110606922237858466282371393179543285681223865051289715381965700268135342521413828971975243869801589839264477952457297140396819719407336035698897259920334085213028106080850472058035589845423909485397970487917380335521756134511391644707290709607153047836581754316375191602914814042997697652312583703130651900481527195322338667384441369672297229699470854700877302297449840547342684854188597026137839528412653174400087446303267117681810400208879063349254014719473089926539528931419138549337293405994816776054161202294822172655240004175982218490268123293155859936915089460812975863443241022132787726674374318642615479853368557351209354400848563173321075081704738245585646360977209845258017009831426038908023780218012140016793775101768993429376117999299138545910367916204481586478950858101136608648147274743417951147363800587099724027962955785008755920652884253882834542447103822169024405629691691102173396338526368318264900746421626976671745957643792540738264089032976788691211935762357316373972333907402272515946705708601033301802900566132397248986349983406214426685698480158561938921047627091597365910671073363087765268362093160187853864343299930867317886455422886497684247609855500466753083971708281477089652001035420205842425057760263692162961660879118502455667006083605892966387382447573941887948503677929580293055291957621235185172469503561856660617273366037874330420730007274864969023104577472592646954823773726557261144445038464841162415609986730778783695115262646062974115819303915821995816549365293055192598278761923589083515417399242130901263130447925011957066187047272673034954860807786629070852801762134538255711185323121503520105275830942477495584271574214238082592019252182708339175772411713403420612820611464677972373179800060750894622885471027431081603525316049343587789779411369937529770838764612830288150618594728954566786785396059342472915562151915759962119435883396514324668823184749913095883205892448663730671376112931159189541359747743843773981513904630660359719411154536653581567214669702590896000181776941046660129268887352396955193377966875324452613866318459810896512467893565346646269036893310432166909136351878092159392184694546383766183847637893499042311150403649810515751008241398458892082320898152525719334217779226472956235046745504724426625277562444934318818911841587730278968280011247190952305746817912966087149082302516240279241712886784133475600763675553088466328711438401776935436702154649250286965588795215167365976924746094488005602142507492335793106422497167028055828816718411496623954436654021162537636915203280703970284349263495421842797257375443594820183356784519361183405998027176705100034457563268871836548052976551472049390965785854910705762960323217345334309468248119136728847785561788893558496324695632335047296792437822320486725957072134690003707631272130806531412240715432183066178088338044865805873646035119556196195369460725656141391240771855117191233350809766856520286674460333546276066885792938470667639120487941992617193857544555229376686417369739321046610888322086721893665448727137397872288955874518488341873267200720975558787025546667769132428248383155613434617238074294406777712353939991082967819352298051738685685925463918902649495950228658910669794847407597362685428456250663324618513658595071247428893806923342300468390277004924100781497224919687140668494840662691778983937098945808697015811735736372697876315125403930160151668796896191540514672426431580882455267704410487270543891743946162070669535024513994801124916571776390177516667057299629416389820553242668956814234896605656146809091925290546571858223889250001429876231514785111949161033655702216665657882139214430142837911817896495535762947233048014621684262627568770818092616121469281202956371795198811644463370652778025039693574242752713612401283819819042002281622450982808821103838093781904771039008053069783109518789586051731969650222213256101803593764406682160429841043372254488365449711445162027875365819119533201499422621367569989914798789050036140577737427247523194647323200615910312371233562444690238675298023175526842949505883244546067926338548982384079858357093841193065679316409627742218282270821668631789860759561948892276704062953118460027100109897587026341019121576784856257052080715085722177164513856020384779403943205932929561941222129124161016003200051729418141189253139307766764665865158321901234583411432672411261590599469876220181920657916467212645254281017699366961462813761809159409110365720739243237560732399133123397013466560744310344982111764999272779128114347860305205792916714031399224981112229872085128004119807918497573322285060389395055541195696564938931870437663178855854233918506468759916802645911094352469080655383441908534475588658542727260292262762061515947992672011594810024931776638444856123766528465842540480134379682175488750217210273681640539837752628797358514981168461286803622080094874833890216609895129093853840052620431667771104781844972434762790721817152448913352022685913850971452931415412526433658577712101241642104828694734388384355665630389328217353066566042234059396540616691328850214024585722768622555489864749860102405785237513754772800645618988175999384278188877610408738906158998074260957734393426848905821826521894761932881345745142326268033895790798687001212955483038183158808165403632602716843103639817893265104050133248766735813762965520399448795438509432399001204035638170069002256688357842889772443509594408582956356174930554018472280096357546436646897441683078135560320797112326269493501898641435824016354193966992753897237617149977374790105027066871164583338046618463856082147226511610201189415948606939620776391818693450560510938647800189059332985439302033714534844077956260475083702620242043857690533409000053899756181350498060479245968464344199228334327339602119536888458269797146449310234081262108088107614365852272927090175617089696064795637019339991951682373929325583041679748078714844417919001649873724774778474302296107407465189176383606910802702929190315637344044265501465836984145777621986491065819275066304908267632359886891635731222975789782521555124172761545496046566653992538989608427589905444535618412045378824624315203007086489912976032217004314965923182013730523786196277077818391269718608628721177179714218512812134059466764890267022985455820262209101470582535458899365921485870100668168513225125053745905441736066629811857767838501806351817254454330643120766150361124344652457160252058908563837608093139497488930536615991640491743935455178348486555299342033811372582057302556779498398186306269360907959025659484251331745105004618562848253246587589647878690163850559774359060987652521221816324278500405582729933863128691428813066569589402069098745193816347680531913553500268440572341649280777755586702554330530773490323449264028615399934785258761595352464691111081622987203369380226146179921403826868653697521044040927557630243445546703935020583575757757515780624051816050757020599293050490892506499675588254928503184510104268013709919594341881804879679383416017973396622365285826216501917072506409600156446287336978844966954131664575890319359822066250406370310596095726485689759859600443138584166023301938509473604481967955355088056633323179099929757590255433711879600604710149154985848263787418143343312991782514844458804542598482176673536793069007090275103176456434719415947502717809218379623030070561677212759335996882375465565026339781962274806034283074770989503304603738076306065443962584918099035762989167748098375336463911643837196397828240681255552183797175736611118529270414427631438307352408133600458793800487725313096588792078639421654577132385200134458224967926795120936496168005617754958542603360351058819758504665102065015964009778559687573087393934525808549410122369644180882120619524589895102925905621162223362667198900017212624698654487708981882441967423276738157652092507359722823572502955520557439204765406583325848528662099271912552547556127940869003017503779224409542151373074705509897324155570893670206229036090341418508850784552565349990029665511126117697832962581197591129165929495214540940796365279351374039156590861803854271255134731747090619737034570137683167215381159624957752836504840673182862977783980237743514743863303960504406912760282721207752252800456307950699365842442701899530147175305393315757206788523864791296521413523886522898408250003681877541944218802916626935036539690177010143579754577075440910677366928617346515929873007422322717020386514904793091621494963541201731309946458652724037518306518424892873741783374275878123484835170685572685232269725456329966595574622961104178561316399398337136822892432466340212041632692518609793517942054757734880670906346706346294853274526310408730827501671719890681831601992135680384272828942427646195939037603525352770795177671656486538681453298503215333104205125024363808376918547715470905083266446955318005102903241302436231294393103639612963550253438498249691647805324819423819645431733253104373355469107638787659684648695524727627169750247362082851546639240012166283643874228409757305394537305221161767870139662952330261845076690353282820111145544812388366593517852894957101237357974531500172506569243771501074445888464129039968122461520968284579992265751827227419677297382358450057920331303115965073718316501039909016464500684290459320904731613028046727166979398941800407258786796912154919272807938531844010685098756045637191454791644341663018040066979601589200005943575206427804468752914190734541339480121485193068370552504167569311704106624966981127734990152833226591417784430195433806465263995163579534116588949329778958602150797416587410638272030269274077732539697732228654529740895005083256809504375061261506041428461483051734305754064273464802119988266558175885426382822190545944031277080157195475308553798048718834313516372282524050241551136749825858669603795525652756077824662373722574473352691134335811244484224837893653097158842233489431157380261130331144822069852023912956813043320350822600835067118969969411787462488565437590137834984408112520092420444177461935927116106190960675008677436380092555023823883033120723213098912946584832852780348048222381751337664000241492390474199734240828503367538679464211920633294092386921777525518798438110459872234645915175077484999942927311374759911050795530373620442029182805466893037893865124025852391054848146001172107849105327737113043820937838404241677483716435484120483105272708170985777425602643215254458750251969861986214945574358048660527421182489140799730295101126977482716393544883628945639758830615176496450164171831301283381563172784954266951940423132999246716354027278044232881630803920495790296511896661323689667874569596715153153480943770382147790435478815014324392053615980659081849522158566393935786542035992269639145912173049312159801558903581552360425018138545095607143051525200596144443463198291478380517084901883757208811002796795266731536735443055097284605429491354196090757394563490074164051322344003202723741337313000315646921729220296799460091258409631391565686715683657765699289244221798526888323571361331729534472345834677983434317726824988408365968944642807421785872863495511416385232335772609558347469432819944650415864112257757139298161063199730720408666604661003838489037638330362783800588716383370005263138026713397934884132008540161469334018941283655212875410125992537897424852779420743289855001753873747811187055478348119991337626747193192507376709167219286840603136366906653049906842212523836700952660941800421765484074092768536204669075309804161383835006647077526978010997827675705967399796648190815257328497071705685494201542050378472732006312845059719385552647451270161928069738924574889794866483650745647848161565468600311703909261707032590826460675757978032951286069373505369572467480743546440117608623906401091655250061858276526239867842535553472283589974222246598778085488436814067323629317921213443340307988022095684358901705743452765357483676812916386912139578882350547772717032786318453939317891431061521652589778732470079382438714968768067106703392712667460584808040769890847606094806668285785409600721327734898984418187777929980692885778186759792054577097273404030728742902822359801481618025422842409921215511651344050104335034209312017620021350019534902775663667446767183235463931828671587977972904560704139900257230338090878798150868209952611340646724054474742807373005167817469466281072733066697244358114546049385897613875458817693946519417069205038679770946341047081046675158031386575918184775969290794188730373944916973545708639913774175897275104711329154916842458411731764936836473763752314941269529452782358133533281782139341499917785027780250862394906164588218390123742642535689740953346420679869785819382807423147508908921080549251277412201646645251081707585709003298334768611237937097506754085233256973633846530740087826012064913836511021180054064142598672463102509609499475182414032047474450286966878959766381186057120204653557645840150524873613213113948623054438133557823337324802958198655626758366012410355086429869147543193441362018382594923324904843849539914189604481349285220139425704485439420096825601510925571598628902042309829942114449966897043497446693301245244027251806016241398091198158983346081518795413025658729160259181020075828991786303797452233718763509564682276453046661031074317854793870257655151371029944822877627716875913659369409331019415945365140452237368623644440542586264399536957056236828767651238914258256779380272243164269082729901349454557232330780659410276750641918370451569495327095238355555733437726348436679457145445781879805136063116660854544916055763480058933163381011124738514034536513261201109364459222845849236559355463546675494995308589572101143665573323222602865074040921530585273212575677283164108604770968421445756725053905020612787436356422765513968827975594943676793010987380884239131785510934206517973509777425866223963317246230999773346130187332649632644584264195111645133983719186678993029135914329105611858160579674427059179189296542475488029265329430752360969133583876436893966304923471237897825923996547731607412603864197495924677829842807309421422604835133536170535297001940009434948691394716985121668906766869730441586608661154261258250543729254760631877371579268877229917783865742936061384954760473794344094372555183262496698984475141581358070323225651937399779079046826785461110399859054384069823678618695902513101229033521471151188714899392937092801975474015895047385733858088858207818548286739689838475243211952055765644236398456057017785133911690136720594507899252874966039487722513877514842652516951685477951294093118661836764845544552714537726342639016893812616203925082660053836974537721598551751080195895668793768745040464260616724464123130593904616093498490865477702977735178075310130705520765460984187234213669907727752276600087068152451856973635937293920949248742404810953255630611406656740017360875639738358727162471178539054036789337750649275197646438284822613595304599519059110599299170801432076723574067769691546799713352944656550475406781481420651496419104500286475474469243971187381602726491447501335398957028967444161799849147620423076126557627529945445484891967469776139562856208163590681020600968354752788511143786285808583120984112928648280586787184091746685332953952020439500762934131677290186461960177634157920580598097511424349493445598005081893183636919065538451377664727583412700692699913099381382565391162951819164193604629695407037696686107206660500256677751382667666565764598051082721455753000260188082312713675400147280530651828628285627762282202211186689564087608294474899045768882803584416221778492495287962032205217720880131719984028205899922233322388401460611533682440774289152800035186711545703229682902676666859052915761480259744747200997169264517591553469049534082831725803927703375653785166351708352826158600982331330977642546481865365200607117045334811762795233902411971511220312735449601883077886677957985814772060144954189688232585804490407173240703098362272503813100643329418762950358109442857596063822703543932045179565828852740466232052425037622755137468178979027794521629117600500556807119348234241089089531933799485770908912425691372707800200145374194733620834070710084708124020902761930498267206820814458418742349495568595183146952966782276618691109553258970890912153262479279136381104006383748785632149884685440314101112718711478715213497801685942046421882173621109743596570776192128003312640081541742262139277371172291989732105285614186417351918903992898743237119801200235302761321110918238729668103389070887384498383343367220457302993283047913514899606344147756555040324189165476107562481057196708273102157474863274819477521988888238246042137419437042043865111827525010420914765215343679342865365838269324224603744019581747820858613621948785574987561520877209403001031784530065188389008877391517931783575490174980923347608818208454990898352752233662580170930490378938065462013102748113281662572242205736843976070837766216711889919377605843719471472032131780541188479561264610563273550508109270864149102139886819644048422744160855740929002625232987457319968415179472962110034040445219222930719550995878657682792074084251509613135623249988783095333723546579778448170515916592886274619252813823552637020695057255464124913977364019612298402797919151725275786955314668994858293876840722532762875112874970450822535804910555488429256181415095849052839284025746417523201172489763552750524760157434384539728886243484510145313962690506362144891874426818766856645214981951098638612805635407844709038263421314996587946406786429364744085475676899609545718322984958363412216230456691801162812603623965948185402847674322336345096147822474171909473833446363208370003380753284881129069527427403475534893393850778906638628727989967487824988579199456264034522971614584800046703889652935728518318513533845744733503499816983754055955500413728460364671897805382853970576824398855929050132707710887356847837631236119883037716924120876568700562083616171535267928226689310251908021809587314279494694763284947227871844171693094445589292143330671696409749265270213973488287403844893117914972168938099007057333660466704098809180014663562493128405839515635460103258525823608492814976663706772638898369397083092716304368505426077716717183290465132870737352001417184277070478970463062424691791217303576266786579139069240413853041240483517964153695016079463069539351901842356164459016609880178942776158592373888530165597337459067627930498152946145315820485182578840503483640681750349161948743592605917531127820409319897645528203354752386747579477992786355337743813270884703580378963052118841658334883603001637338740129747235311676368329106745260475098132856016805099239950934583792728418304036576625630898934292465168810740593346628065241271706863740322814813961042181020434926485295203629781486815977897598411750838407024184745974774662399868973769518760853932526400889415976562922790827926241950494129697352444354016554387586599050502666583061282950861683264054115247523499976365621561192877650193121508468005613953846874227946992870284675867633458734215106315673621393851818632861832477474405935500235597178049856968915729010635970983583800387916639661824649871074527060286383357005182442924435324915695527887496142076695961762833836384838961315577585280078884026685340477494647661620018145638079070599920848870465174338554498556696106408342704038748142746822080514238972985812209802791401064447507468554579557148105874734176946725319495684222931985353619252715918606657261189350308257481379789517162128052949256917865829917547893697582460706025232477659281528220481091394213326958727683084860774753634106359318177788644145753427416568794504501039322421809686393814758255924006579735429935151547490469323634208488425122751178305124843625623990100327759298316909866163388813673953330802070473058370919878779719354611448282052754070290406282841034100764512900094543708957355879764464622323258194649427521673011448462186730338700658559440873413981237970706396734339396405679529154026380637632418414776415424327642631414572121093457550915258113101964116782410341482927896901607107585331512463306763243892069796103107700213069547120101957066778672215301375103319040512436758637449534170815312978629806367481341568156018691462689807555690030326652532364154066884232388588495033804424472494555662520703690390815809013061021505864890505874396355537983283543090887014051661177866007363690317785596485089340919462767674485059171108611308801213140811887565502536257490014970650105195936626270787843205011053258924137011580904277900229963187170974730769957116297340224476618638333411214036651707115241048300187069038745011024310557083834874778734651024091700310525540115508830319701362101042341806442263947841246920880577877275502669274281983493346114813060534210258486421652832705446402211338088059943797340438182429426305076892819509017945176244784587336629051494389753153441811727160259478122096419682178120319221204339238786692614237722911294168134078466849980618671163369343828345851728543980491403496661508477769392870427957151715259159442386399701717129649430153813707590830382879595369437053412065162568638366026642414057323311682256830825584220547171653705106202771072408996759420816993880220815317688795188067483648111322296242737865947668934348008939883454246107481207885878050733979073966392468589920374369499262555810271302798571943675297653169689817622893548726470082013947133945749213621513962606027683692860720245246793602554241041788989283160355155878765103128410503784861926682561457635644972832696050923343113150497797767688310395690170504428252642673051105007505996348585068140794418280929770885497898108313358199007249820191291009347056581103109176876737177937523551693725068219311541262871495199135415440561106978737403624625468774771791190613271977495073621613104426899224043343353615591552643225954747227479146843238671066982024050729625565501775438414273446650735784356270642916065462294800297005655137911469065624702339992194655436047048560622818203017193386011362103450765813204608983459189424158149335648472377695405281956506960672261870186585943007100541366931502165171907867004228921129813582177733429027356731679445800700605850339717387003205628512768237973313033205879497707325891713153634668642077096912827906688431748822044967387170303289544839574973477361092866473373232112906018019404295476262736480270070089501405761687154472780789659598131073168883966448488601130289978419538698642751035635766025270776282770043702215176005471728637237741001836637937533699791002814478558982832510829201725136272653448469497706504123707337933247522177448312926195703024625978621570431801915397910630969223252226422891942330977702176647537215054789595304724768975398238087162745590202966195414846386977305696598479700476321287257638550494218467272403643111138141578492465410522177139548924102801703859331264698220658666435130281951525454478677221376955624848405678724802900944972161070659553921174905609843397494983258861790761512032832670065362933867841345685854069393123303907781234108360326502076313776038951643839167330973290739722180077500113296050390584333618203597934918286767277174106723808099162701598171787469128904245257559266002345372842953531834887501837420009376971687392761159422849119591998980311932936926064581593628252112623611404095799667316409327022534182089842339497635908543969866278329790647076469445910884929096664914363647117015454100837306190726697608978684609802900719004353025807722468132712803733443233617644455259878789594821098862712899093059525339749051095715238556452018980218394293463350254761918028838591443156266754020995216080177504456856763736300102301089650020138685017123766077454460650871280668022143426548962741050938092751200399750528771209093203433202044813174501485300536969495768884672870375537379066906840823502172332449987015405722698524819160962388805894820280477324125513489614158817241223053391797148912022262633382296996215807857519252341593179084131820044601459745855489227844545597344549018926790514255698971923570341998583623321103139376528038258834954890869315808354074216155784127388912209287240503372162436274855422826201210610879932954140734097753324149872604852694453791475009626340096689019720310073591395995076962589719705690649548221868098913223493983841237665501738927516823646521756910998582019407270909262605194993068635452518459687841223480758378334097182941724121119615477127479524731590745595306969604836564239361611388935798802081507881083365236601698816492266151412520752316971257410242225358326046076598820275533318024622443239771044180511870213467028236376282018192981719494966621841751668913866255537294545623301372240992321731978284015066730962891858376716282168525297176046003463987390105669820754350305081291978883207402323532048581364296821057862574847588049560707213122289218446056982713796836760237440567102373698345696161648941645780231420067164978822820346456682410340709605487606900291221562966046868570257110536891978760950196332342848221973642048552298243289656556565242485431862065148162283149599166789285583635253948252503923301164996891993851910655384507898818048768501852871661099810928601179181693118500508544227778808970731266198064213696218868186763382746889640172753306724390330599206781230921495271134719612426129947777956187034914259210757704665016292615853117361788256868233389893203378494905800552854369918671489481687847876333837319563814878885966512936225118526084667602975695406776923583273537451108202474548269131874783242228541055511586019002670459013327648191168898403068642166668808552666182774791846154060303239446068904023144995292899090390502317446864134952746771406140945986634258972290161324382063667371259633848498819761045923631283923325337094789757953181369871782853430293769751845724637371475600153489618191199450285263196681493455058944071304072598505038818469747637945847282520313503279309680507323978779694869397772628241462269589203961218897216541137850658110090245739479920468654263043016339526324008254021558040217938134808361646338242424506371749617787316301694519789157742751496699017525038374389675343346977849809864047719831926940717738793340894899788615535221028734617180121655229628591624619766678449084056431066919967692027821725240417913383313662804131220798769948767640547164596061333151199030959670356629722626183970606021587954940075638050652893139503920467869220785668569139242891490908254335269091897018838771499607275019474172727449641954926219877727367925704046338087393500536913994855439755175973668377845248883790263979595561064661376926616181908783800815091447024309893804566875466652151046432379925161940311773096092072315228630278830164704671765212122659262758900655970584394690590731712022324927767973068409607617845416166533830691182557218288013064141849949606572422717882580682193841637994807894668987894241996255589860758291802418980644479246934345606806088339251757942846938652505036842474858564466399784826878869781246606373918000496464594772600408893159690885880472754379458375607675152049405207438694172541165890767859207293568198592223441913982515523138185286984817418728314300554868920068170018488635023725501813013456703438488972465589201737997194997859374244913714921950088385386249280147565113546398705828341037943658061380782659110644884207537417061999273120499559866231731400731205112355131368449670452474126522867359324228504183805095720860818866202660571916502754744718814141763447350492331939735046112334639128046921445039207579002242876074271607313726242832746300851557142338380324261171903939177832809181983815578588904516187210735381163406579939170768984412566110988388719799085037051822342831797865256311204498374987973178876741367207516516597103091578409919463781108566238820962572507375447912538077620626255064139374969033896480028310859459218719990249548723167342103204333812505003427611117088443615624589451173790892287061951093062975433852552439775276548265203036775846441999712001717051682390432138574604411904179664815689908698993199334737233156201418171761724864461357204953423730751153152005323885179325148873371866010528923888215846021882470263364219072230574353388319078750759047669103945415362894809793837477409465746227509232605220871262589730383957468311410382213815687272150311788727996623679579398816000854857662524029110903296901922823479339257061449931900480156057168956418208364090146159394530658746790011281007832128638175133733917504293840406568070118910195491433760847422062474267669673972488016340796920152103790546643648404564931139880762919916695536433313573574065453954729184913152530123609682456773356725693167482942944603314184709990977912368407685587936732047026303630917949631941650980123809919150061040172542814974972383505440469170196942786889856696107089303451128193828627667118843238845103815015617959593489396810703237840860155052200162030489077920707904138676599180360830245867397966141218584107547842908870094627638172840435183796562520631619705125736865350440060639827844813971200535168012627798398011069387628783964222352921329407457422942007471599218838586250251968348527919310118942287999993727469247997854370742969714307399180612592428877243228854822121202293687068725865094030920921047125977556305107819417834413557444362588785652635224529108238420371670181759897241826087342952845734967845942810419498665932514407185271638300075807568155488506571611617558886093408981983037820446370158841203044126669513823164493246631529233676362357152524472518460476690861312977187722090603661285743446978756933386857486583873950257018270150878023764137926980305158346394613012247429612750106231846700004849212461740758046412933119254351623587004097943754056099565325857524252561385178199781769576904578799700724129547535384723453605341698417783386445232221881499954408726419212266361964754281026193328562981015223913670180321166922162504798326534571554463447490420911988029307903247272349921762606091750521864967516073959758739425025342229687666449065377424458636554263541926489175138435346642475646297137026242568182973202719919232929457011073818041166724818968507738219178988690105937703594336001463477942217138708104553054355242867394577606054544007629607825790891608972621713797425981320768749688749150552120127233663853948051716576278281541108471139582934164423196111184899378696690342432454653886611292523321710313262712947668000156220871989141197588979193570510083695338849248073787339489778334571147001407353061871539202062238163095204284286915444452100610830536656303345877098371537997360495894309075726868969150946353758960531352032297245518448812888890852788968616860613881340677840015266893029954352453372185497709858645305490226450928896253105579599329221999193232444250502449988620183010741869211753591669010554604297499230418474435587880951315884016857035429871630679837661983691086942802976583000758139964127612950819549129616125155694864006931733617643583718707589918339402342165945344030904266943357482945320975153940074673683509730113291853303145284921670262075396336187132904680260538398059626907961871947274319262566969681748952600531948584005987651230501584354951827405016527511461413248508704609709195042403069989763987206368999021488283761115498094730772518865430678924761218444799657496722496467354115826061357883126995102833725445216217862640177113252899561937015955976419584680286666915327234560898341667995912712357539352601768233852643599665271593348008631073447530605392475627660257561897913493463191272627891428914145589863386850046680629965037531452460938366523189955651936994386880788156370719953472490072160586613906041374701554558645114959813284255055778090364595915229557777302750461957425021238047167401833170748321683077343305466801420627828393543188855146187428893758209164376719706942462193673422077307848728662430901048294636092786988402761207498815500279234690971829493357518258063898757507706154852348865869453993760775373476501925966775902404450858344773644998562952069590494979738062343095030082811461310494220070978269398247081855745674801113146124700246294969254291089468091832785187235667530034698861203252666892345020539416254163553428371102249296625517848166364950066053431587509413524288926968140720581915084371690451072563385520846010087760713793301239792300597585802481679525090579527236781542121940859863601036003783060653767788891584236875582472003727818671641102639695531429542003009496520020410558970943374228415125219188669948193835351584775845705302278834282258722193675770180939201783062964506890777223775445749176058862499512976095878627391970358178784223585587639332359947734061906965416091309316449808792230960585623432972144130649482419092543921353310808923969762148010112433437406553722714467357678086399299209866408307762636958282382778068010842923309262811111965930112795730845809033319574462744025837849388548588579420167281553716333145028349728960852792446678811634970919315545903368780185894280410215410282364582470118598944031910627411112905898724581188832230475910851812633099441746745972983217929823577623595023220108725238268303723642848647662975665615176314285088821433670294789581403166394884036357703122035296815401896119838280537509055875772713437804910550565640474599760124962096212024228408390821666540642372731772618646265217442263461316475668729182796718491246422514571788461525963449861550668185458860841809432458507778002387964537979350634469385405231587218382080695097123017955417932545188000150392037746961825574067395273497014590794972242303526687591127760397110609176615382014079218446091789415407901671170760750211080273042742249974763305163440631360166033830106149845066508725220624427781528997825495899683316692363486944881092860303063349402449723083295700037520224124959289509232408116821986249628444245708792667358709511887791080751878386262347553704644001024098683544609314910290718700904005511390467901739000035170975522549907204625681396409486840876678718249182771946966880056425291074650319568262279335939511309816963082573154672708869231312111332501705599144038682525889885859276909908734595116609850166818242739808239700297065468678569658799520291367615500375925928575977339471887191582067748316393177794974024665964930227091877873880098306190511344152201342872349478721184070832131060490410653869213516698534047881309175078151272107319025027743659492132325625087252342803423131030298018013066656775655145928022932272735874053454164622599758931537844032342452704212282056631164919690414797105352699174119737938239681331971040650822869477393420592122993152005732876457881790137681624283927237763408215837760108789456739666185306721260693297145025650679362067554904684193496031520426184107364554193924044110603660089992790808554162875484576189932876072183621568880588116385378578325484329538685751890123078805391183562909734799003675015805540421196908578529395751625983754934486063454429773117170578034554604760403397823086048805287046819528667712304039569842793765961057032573555805498533598363577047823163862338378094910570481679449913291231641459463893464064088564048569447080085665268311312819570028084644585986360471327413007816415366046013602054637218987918150007166834224957958519423448571801666792245197293743948592110484828499627351829822878575049054586645453351783555654758418785060577423581922546674707540239448198812388860822235106848160332094438031980572816246198087042684257002533569984146656833526488307541252586658931859352290753286914059272074376074996335422531438371430881956082242117311558962138617240418394234386098398102162790316973188167771685241409400039525754128317209521003555350697437966285070879793140304126233574207339996383249667827005557208656156507839687727757763147725910726341145902515051783071441271727277055810787977929850491679308411533576675519430657503441042270856750535901675045334788187059616761446152850385833018741982361917229789008203916282292885653474569733071303455068757911529730830367096051664651630639869531268177428824202072567604600177843515168602044398415328904287780758479930778826342993744405911406770372746751222774291255189217201061282192476236074739396008317083736968229879086522425927186560038017255256534722584356748848448804583803778527451758134378967998832186232364866083927868611825269180197903899367082257995127687389140065421942514684994496299801188245483353832801093644325004509659486321742194725024402953540422894632276796596348540309733154242834401574474314187198382903257653863191840653115017641594022393406477233692970366752244543148983308255426988774814026707295120690420473563720406534921519401195452299842491771873129474853972298769285722077913061241054074621044281228568615774132803180235118616760113271892433077180565016975590162626577590853176370973624034760856417790159898207938208731990574301219260725983293460858045077983405667371333632088566886666363359064912592232332125105735554152466238233045180335209200085986037786121631111109703323876767542439794059589233387998459556465142213253058299585858149188700270708505966702946517176097034381061857058665536437851902280162571375670792210830344833001552870658263070117195575319673763901222613823577359462633016597181549373280655955865165876529241826231468401359711662012845324171407988688199252178129731261170143463572667543883385715602216626082320218288565683914251575908753843342976956908602165647513066366027011531618604578859728846638829892613822880494786276714800841001067682141060994197720360585755578359307000819223354082815098443410044640097189838725886332167382418935593644311718748288230520307121556923234105490544882216697752612000742693751769258908876373908519532986966421611580943235587705577149602946313686868842076932112878176252360319747705019636674878505018768939877740135264151832195350873501257020696075075496725692651278291011980856933800951619149330165989737553285176585768064978490119276466487806477292152672192704758100192375886711773703721396312609054272629434791650186111750679338124887936737597880634542789936319580293481584779930628558380597560191964358565080909286562147300476447151192392805318455221455688176990550491224587773285306306270871511433218205839387969769981019290356152924587303132454750425742426133136517202010596024326048480909101549817956203222906645629855626259456387839673918389449524546668649602234437674868748602833413101864758254924530141495635636667405382573362621305053555185741288026453939413549633364831542584267351243216806168470537899102081755319031735055662831295938322913444440528117641414555372920860315598498423193293644393001848334716379496265467535900905677531536472359911796392702071664908593736357364857009919800454334592743904938218977394655843278333052285377817091191283674564794308204806203016298866010140277392840997686432519585075892842394200577042746271825023498400052372042080824136219772771925331315985492861220498026545355362500255768270415752704291813826488903639584409312893139564099029418346881357523025792629331446176481654065426599075453620622943935552584871387111641981810315323871921113069555347805810531941954046375324247132604276283786360684809394925924447904378604619016269014487820926289949770991371114724711444839260858060342808881743022761634903350475956225982905024152038543610897102713220860884148457220403458987962235657271843082644833139697633058299842136350638834783596163728925586800602740256435430285570269635603804164120087523105920060181966394624649389143040863507403623136857475643337803025145410355111297699478638549622640282981034807545698735669770449590613213771541386750471034995636836271979484503309630885555925247717824506857663549138295217710264778064320879323091820286178040651655130988673992517916307513463979820547417677896571730895626913613790984710614558304084831012974243586688304878940947318234896022633107870548325101890697313131456184973000812879359162866417280865191176574001570283506442769353298353012549315398570516595984743754790314773304163510643208702155949078284819496075803919408101596095219558550709519429268891100727492237955262379292868454126781635730577028887964663833063723040708533201864161932464952150060453368221232218003704321213748200338586160586429502699255321008916279281631604745295643975579618397561289749057992056774818666591254166955771202751806355194559661830501840707579012956636761195355591552671451791957901333907104446300751167766183319628463219368621602670142492980429682920500783576417419343143239979004815298939981527425215458605748211191139140428557476753073246695924117431584343276068475461342441190596965747197395221425932614033650970458101007932154129701588739489817594673130239313221057896530110129187413447217998641550287544828549558111105680667990918854617848975018745229982984866242669053575533767467515039780340425738898606823831002458821655384793523181113096370471759913628639217696288735410213216139100762381446163420504577420620402521839266498162346872683253123064740800304524049251336221620922405392336772651031688750956251182991242245123913679574885543529985432607399449047439350778865096815578154172558827996650615894742109378272779100980943466248973318145848036521103139642964066762919355858358074467499095336921387418141534783072144031545851210466959031404187953030042222266246408128179190675851175845176268914552728663237768781993517783126586599375702203200067434466046972324754354975155802509299662248920875583134437697483681908220359368211636961513577339798055177160412072380100885552479648435480503366740083338984741885160351140768122021755069916962738574823957660295401875898052071369945862911405606291871349743065132095242014698022594228991990492948344538765897880847621814669745948574545271512369770948257512429155368072026945012654286072478339062777956507263461443942914579446374567038062979001018125808831348541975809963717914869832610060845467714909949988027948760971698183311596718568515859752496975942673019666998757220788554406567739715386900909127933464528594814909144892424691257414675689645500496941160997428112420655536077243223134260292470483346431322824552951658720891841420590773209660979186207306245028738632214958974671229582625184903269239797292187151686069407847075028684839612456289970738457893480236609574183474284885785268655806998584243415600413577716170282895018497771506708481164097702871566952692734141510759493067204245722497206261521053215906000687176215792793378696194241382879186725630059637961845073304626511672874299815393200832344115038964485933997763414581431417081991567608828226554616806379296357930311809467776504095197312530431988388938520252411653434112513953431573227166134951163546306053984814768786191684933719966471207805490348861990311668607511346908742977419469556856888487272623358358570312364502837837686258277259976556637396071802786876232405325419530328216216755450105686918206995824051213845130093151175280633818164064876844577521046320403453933419548319103456393076750634713799130812134185419731103574265038888488907660032721325461322656901479181701318192559188149892521265461346984651026222125545701325356062135088952552143705645906010807259958991061861272481806485111825908498303594164326568479688433564600466640369422451946123607318141860033335417827857087296218316172567820942509789250067863630032016357020737875572069835480837162973201711059850828149369148304460320960029548030114724239971487011824811612901899832134489633585958508870496979025057465672372972049715202762644945275502428741186842433588098526636019451141608027065718901513649358425929611624114520848816346352890737937489364979465167558615092355480910235068940641734646278740708625479444639691268773852899714537630389585793786629818408365817346157971631207138332776327988494729953963167039984851996488069737544126276335563505637676424810017414240734566086663355546194946867367450009790299091599662512675857703432541036048682079973123668685647842550623014925754063941970119514305699713783347574835670588564730116667354700281682119827518622362453971088014492497516441832633089346651795895861787861890446786363943671671090739427515147154426337343542139888845189383951824708127325969909674274624291753521193578829888744616244283595626681992234047108078874628131931171737701369101013342303223563610298022500938142439464939684222435912488349926274701328079547825510303331087835235688925661391116213468073623195559467727802582418787880773733756425170025601902685751733143484390909145481892635194795353021314030395454557162803158155014288707016774088124648307003314633772829190431336137914030528362214695884407494266263882137347936442565885276777525318798195388103242309891137629511471499875664548542585711809060234944428790614337534224001389155378172846140840463824620369518014982122707445473156392542242247759627985125591570716025525196583262774103506708296581715069198256368471833370430704839102953298797466595889016402179509758610792825531562104700029800601389466301175387323925055144829575989777077293052346661215462692433580979464689701380612312729422107676107138980886195872262056673796647147873244300645878683152487176926381828678913022935433519087507700647782394915753529284368202156167440424362250156017591922072423094632754139564874485205218103674932144882301348245193801882179481443907580878804454015131429833771671040648892451445680016959622960437388472999349111319415098520120882212941684852063728035239833344943335823726015950821122996298308830463090735525722221599574866384417970782354567893414237083571272812305471802312451907736097017722355092067885581956160184037728793792558390425907964221828369145138047308966335454945826298526367985640798953983597889118091698331104547275051822932138348048021104210660520527822002317119923652361266300004919014110656804186905006376551611984811068520112000896746434570706505306479972263403379668883468923558429014236993785094649588319001189879276811700546544181501882101816600990315125652118718197672765479601735947143265524770553057745774521697656161587053687734775637472597889862470485314625925398296923990452982034497064198698473429299543153067510284269013928510608299249882542600941477835839111662328673120222074878529975510584117241172122602066812600947345319688750009395431563592314699705510652503951068775944838188382843432174067082702689681471854558839207886113287100561298842737790522845923407431103911215764550149620956255282352128389061695071868288107234855827534254317417077032125135800043018824982554165025758118642164094230602547024877790109411034272717039345147954595451590211167076782880996988381331033847926586431925538366261929413979318392722599291486043390203114094268507178471613102425382231516411663769431639734247612716547940967841848121480714547127992299497238724417747074765649347490428149878013728521849363488298998264005879143594150450750160834536959778224867578475212133692805850346838094462162854815774732677031094178312688541925263782624700698424256975483525247856008478379332579776349882521344787492629930864035805520397977096827614392999196127874773512695954254870904271751376015517327473136130851970990171228170242576133551049778990351038302008841102402389527117370546619342098819756320240368049012399779317945460079474231889281112693615719412114155937369982101882597047073412716312160538773415651295556817604521785470838935619000207057364921360418596852478280828069878569138989632931956975859976949609003835948245287138271676168915896740885400252460713225247188750786221964902676595968005554333555580607520272289015346331485974547192300487825265067998226241583604501583666659888854308703264837050504901984586173551653746882402975642832185927756732146164855371227134512590185683188877142418022227345276892794338437169363128099002681616454605677386269224070658268488544329891062257699219660365384175230757151785524254139072708469715497927444999675547034083400888677410748277761502589779472203007316712773572259942739475187955650315056228131333250754024616478916662719419746940974880973622892905985334698734162218521125674442852514232480306693083746740269507303504464731271102832903415038291293454875252065415173396782215703398439252876290751054178464204435526791723055105196961011180523848472259914520370590837629458097494369589500201184258940825000608982924610033389553757554264372955485980821425902166609626306218333352274583173177180408943506842707273737108040742586158835475058424391871652704697686126598563475057077625773752038032655480890732128511745641806665650409810621761003928129739830899457846712858636865508181814232842325587064923832656713940231532350106232306875030780875018752669469995484352347586389087924083559964935818534568462729179459593665867583225912526950852169566098081968847188940668243948550868816575839982402471959170474254936724863776879827120247506279432708103610047903066378346746577557039964485958940038021856796216761583501396471591933378703848501924490360520919827793330334756899361583037690098696952063238606801252120925546871629707392531128719838278226853079416586667983467617454348211811000985737135569073339154505702928045829337841621816956717920786047046547104362526196722537816916426726149402118682823747873322574487589249410433373545545071487635572593209214003359125514956959037895496275154222523598706083924484266689174976008301465798991581341036410054637756321672883493872463913750146165217004530787091481008660791140531947959828066653526533350988663989773006584180029190798918393295560960113069594738980103901565932892091363871272577418126476915350528934216088237822187243388016242216985780648812468644574080773050253847816439858257732523647846384618166164556122013970917943762281144917965151923232312462823746273194476408910815993110773076511458666881237262961713028846732877237883104230881096742408433015907330373535343527563112464346782416219314511557675125190267912029679341754342988383849184201218022001128473333390108318530206729898334414366353623184915920427973268302284339980786205205765254919403667423381659927840968300612827192428438446203304448884914518519907632657342554039714864552327153391712568764989639950172213770167728388648414967321481440881754367301844158899299352300350008872007542115063353499748114836604367177324494484422417956642369714674777879483215604702762168880056672393328548780019291438236597642184628481904304493884180403361589989528164670572541153564219400566719743407045889161942042477958255099677461890411416244872589828461660758642341873239579263487877040314294885446321340567488624313620006256541827494706964115464508397847310159886471716551961495845259590213613286438570399668199921701872057092481529096639388993262401230816964939914743149561274150011384583793174270781383025010049611365005353810376419219322192546966956939524933562442414607870277352077271910964374409627619790513797483635263753385929621489180893289493775996243451446936785410131083143220568252841109200886264185788378976488998145871436635820239325963390531125356963905656423467654982421347665174000949545275483742374605169824318511080840142742683564882071551500545033098950461886930190118075484355315094071816764918896358467691819499682305452049330825297430471113559272655055455948184564215466960293612905430313821235972994066288530839125235428328099217025406151334271275190147421873928836477032413365681823806926546782142323935159947464248879578458663153970392249217944698486880656133153077241553445677713017186855457804158957880810133738560364853059815698805568823844088939468877131467064761398192994151381638023774006990196703716534171753365901911397253443246183267185272920681731609878483279069309724782217199608533614310971972332944750922358831416926128103414652537246743977057351350700672480699754814826748931390654785709054484134367177827593364042815165398453884871365571427217519646479376679347039573789183365374042623140426394450356442478706074705506131818471407484291802773354112338235626018350085688799965815299399710483910063989146390480833837247196028247941969150683864384077618380652488981886352004721171510424923146205204461496249943565718694233502658914324573541251612811638934819239896761631979519189308260892020402144113751851317414783285116675754803952706119717971374704122332369426197382155943121912374361647887923024574946077863795387265469489109709813076845467014486939003353914868287814813429600455641996265800070939771305511064902211229838377537517346567995423802108643113846772714457612085806998313553093067042763749787808468931231925406389365210503991229822779021046122127492089129557026887036198398653149189240347109688508887574475073194722056757295013540987464988746449647848366456510404424623164741762727721741175161298155777987763898520861574910514812561384704762847848666763643668640425395322103121961377623196687896239714055969528469846298001104463896419301408759353426349098042611949306217311793575540734878739996597968615260511863629309707068739020094374025895833211532244654178231540075392513348560708545152138908122158491676207592695924658765355351340005239069635696732465878440685932886600435526672357838910986843230915213111310188712721224031627448247625614324313809917735094760979210810126179625225090545527479585689707758692752370326971205387818767744161521756746808985799353106557292713554048781158727683488220720798718775990932488673567133031298502274841072563450256954001133543558448197858719304144539537178870424895915778783825803333911806481963230781489807474371863130868672717926411602432248015797007436450760045935110889091660752683817055197096032200618677444999102121142745278727923504980645784462348298720263468072120976382710032074522940491267981903694297700814228915180060379613675419932135914852871148225444969990239681330122385320119598392020927085602424718596788504752450662404817505376956711099353296284662827522373768477356636910648274518466315042534429793648064441692098914731847658163895914010355127458478561366195387126907402246227019289822541305664730110459131669547664205401617330926576576893410042899877588256971978234298290469489797461183814668691107100643235277099400624895155026335650665192661495207028452093330586335180687788675106081879999007838617246972768495813574499836013289403136154631401055658214618246762244756648809009343998861110350915142151981817935943866795020143434427316535504478214654374635303341860434923957338038872995554405009945507279721136594269935421393421373479413534703764854032005593188505889287509936579395575817193237959303061839811254903775612107804509188339427221678965204568581403439983604135843761428590195613585459886402210157832855890376680881214703558417362427263927226728894253138946672911258403414835787398696517462640456223049248824124883384646653923630701680589610503900865353645732342842951806139339393451048101620022091882788847448198467555405515685625649061739328821492033244109631804955208416116786325640256184400492162476209719080164378565564941331792190379468505722695584462066794764649366797119184258170088215680815583084716065007440576141759257237523085596202606913229341128834592471552489119805148103013644181431519943469236521561792179584731983850431490335035553076138151393145961201002487585028430669171569569225991245154369883411720910960597453877449799870164602275689838804236881659359158859597666879135897570731875693797220208935728845476335691871505766400917142043122165643544257814534597469977880493656395913579372991094492213231259749088874312615869311446634380303839575317767613254984784705576839518441245185572344481740286306957406578785218383325643801734336320092221753807749039707042435370445217817755852149738152030964375482042069442857591518866073887604097239158652093438593667178501981881558255247372362464210151448460505737877114254142829006361671352765820766914768148364549160290020802303989331380077110191224651225522925037323753891322336713686051353501965073451825941311518505803711991086491295985407332191190115486221763038445376135949941736201664529431462375157340631703080352238182234336991516875463122095252886424195778393445949741671779074492473316618317025063214417119658624163680168026457722301108594182822128664998019340132382706517638306169593348393765826575827487475264676466984085841301757736354217319403200565444093482111067211900511061176435467986634563303603187006694441319176610957500326890106797388801864338853201137049815863977264891478164173826884167863341654517228985500492137473875389727982084733293205559912471663401475183064651850634031269009714029536769861915200528978341090520394308202093852256732698526021393806022468948991574812400222641468707921602176475538108978264032575171022652961889468919540627571878306044935744096869926749181853878329210796782467359492366226163970996371853899201307502009540562068015586265454574772554166579358162644111783050503797788955717424049446339558505666941900163421957985070117565699301062221250231729689179858572458588548892461830289411527684529892370387721262038548688566962384118040147720422697472511824633483344609700769577044292620885812239979491838548586438675893520494515866554487877151337936339548116559346498192418262221349499894671380454314487587458357838948129942867630945916926154486138540864603719833946143966250640530449306925147341894138898397177465680973370931586260391994749925678239619970921659615271944120215778983670565391134107154069802373592631356179809706893616310106314123395289619281397126229741512937655437281234466327422503516917545113998332184846682871460181445177162653081332267881301521801828314603451257293078779962231796070251860768626565659298582417322052152507349258179610996238109218251840127712265784068337479137940612795384906999170448918268125122983928175252990691963918194621247128725410583618170571089754424588646301724608994416791801546601815358042170331243216101670029836296995599350342110875645084125206384106808195750323334276169743143000340722416625598027664037751751223278481849274223732099350409359030501259952782018655681484564264302124393371476698508632842251808486793219914785397677851756342877730719718061081773581197889931535794556028977038339970663342566952011414131012183075393963779781504907088232267050382215138080737422443868244134617687658706242930855442342493379978033196387475016244185360716569158891615055728298853908640232914534025054786676779207447702478341717798215910683175816548387532048606815302558637256982790100805257087333284280753294732685399047817187850625260206722586628407280781988562320658468777599652026112085822742899800205339396308879246521661157490757591586951494125270325114997160726578180137273817405066668278914389182743516554412334930351809661836580099072322728465470330375298794324681810711449261053957398164497600140276479806367561509261976952911673427543967729118829754487550094594181141418496374198270613697934015459540035345897397303759508603422941920500492016030766711735798037771224186284707264510362165444455849112835571492720604120154149862837234758248476066709474354657460723661556272445716299972165770180447273438821529158887553022884403538326993918371680036136174694774444370140316182174635519207761352759928351299878493282622123135212385819412245061842891063521298612777005473108029545013513274553470883128936600442553680614890573253923750559119722142279687880711325305506625954922886267688873338158865169429399777824789323796273075431043568288648160146885081029784064586447489012269596086748325226308824009487256458785484983567094138972953331106296670264611254438915918068927099748738520719330479610498439800060081259585716151182313210021172841812554703244841690423045461580621492145034510024108135850798827499082614959822209572970894236886784641944842856188222439288216440972173582140388204519406507149690735440488531336039890473376443129217325897595138335198337238379891772523165441529900588258804065523343911584826208161494600219135516516882888954015394421295573346793510149443000233213041113918648118579159309368753402927270918069002446590709550655002431530147352562810372743818757099446373325334641837830392576170241755786789753126776231367973091107985243330969187233738928947417369927424714195513426175282033697138878430579959746008838080719941848400032267559945526732252741365833087875271049962077545242363804470293628198179528268636787403243819101638594305096005628810855644524350063142643533152325075048855834707035397005127106674707298283680486017937081481169348883857830982899713636316250371821554001623643983260484647880179699574270249850095413480829062294830707609722755115693337665911281456709940008573920816387371357742764871364033867736398358798119211734776279677508375737894765226715877304405465615147722529450059229855142061874044292871923845332216179995717308565646889920268650652101962059874482178590362671725597042364813122752000859867920630654142648015087536134775315826575383765528987023828228257442054275859481606963687336264276002670756285310031910926062548501161310685587544634795678297221753897992644375136311995688987910428125153549458774835467300663056767997796465330420178779206591409183706169581661075212615228468949567170043023720113825537287317755845767976236925995501845072730970408655805243446805872163958030801394838730633140503251522577631692568545885964880491354685920476915540545917218140009632354279745497561594099043657245817854093568332186802423166528371497860250509986212724173459281482919983708543269325065591025965372735467936313699057464689618836938949891671745827654402572789614489356437450867871245217267335815587984211420974293077832442559633012633165710213847673321845783168745881027125765276756146703520845155675944923000937001833758115302657262900306007366225038478478483319387789846549648687364209040854131885429328783881432591256716520589352356123433166358490398603547567204300002782708072548359130545498422652364380301364726670513309797053163005289716381130138077166351436092442259079091423090629846358919316706948847717238839782320011565737102841310070368343492295111475288585151366725963797104098453479419114656735369692852501570595480609739987369563432225897875613821043202080118151946284276128401384898593251966647375525729477720095630937557977981719424937773881570311649671577956138721999174245044132404486131003355684950179810495130269948357637237599177133613628335727147996999462213194358108776364225115033902826753401846157187644569047254307079687632720987976384978809674903374704273114349597136969719319936028766751928217520040458933853844100337228030660781629874098695246579403576228190358267208299850762830379222979572043034743996004351607667356065152659204541289087812243535191442177797907503534554632488595182029069994689695047750892263687797432795858930946058037569328471692156433974847769402573861442974235509460232506851898070297343451788870107392795608208271292124923645930913192337311651468463977875867215191399276704517528886167899137416201614587528891750245031549716042709262125657036195098157047128541372581857173114691731513352333511774806230838082659242525795731847075085527895922672614021008853346108448095789506355923983955946269610645552323885071468668083298616225646805144863729071271093072509752197689743478787519321605466640262292586689223961160294421423656054260386938863599201978308323826153638632446779276868864734280905796218125756377573013625660909244219098665692465375460164985717153237802660420677315664102956886282762893410764891923001907324827260496873950631812620039310937069332802700933530243680684412477553255508867923818399825141510631292074860981102240568393585053872659128181075348558120845158077783768242455096997116643271939886444919719911000837395585867752579012838767964240521865787121045756706611895039525973481462461793670449572757719643529118149945197680840866370125173444264087123221947809384543057588490723614981887981343764761381405613134403353529490869792769795009741565489822453932371116541113181097403215088628756296892356496493655353788555316093696508510119331456454304642948767751849429964624553027295148853455111682618573698895959269389946744780352414222387596701868967796583741174959398425280471746271940219085606359918703794714947551415555844952616701192531583202569167959811220791466855484935475694204136067704036966413937919573360381934314940276062754548238156245899980728182014229784743510144334168803463901527925635537322020335830664511385840355253803477981031190070083962398225327336654326457168316489606663521132338967371008115563829491247605109718140457414095614219206319129872763779544651642426318062244898637158052031738749665196379761839300147919203696163035812938630456159922819944713122091881592353993472305605765432145280960649966146174967520642416800948932765095457451313476188203579657919383924488925477027788880285477916713872581492204090348951527353909343241416601452197064947275610646515545683415274371739911021371633248618111090919311873061793983522866680873417708993948088657628577449360895393557350623824974725891524920648356080227754323628094488614947834223310847335217791874018685069061758274358893781209978071913576399193936355478984978604268576913755145580164071218186528682907633213009462820413844804923497953425233711978153747575209347116293447340853102601488466829704916957588357799937303715138952275945392370364616836979966950806832205927977266948756621014247471821040970002798158236584145954660360071197293005328788578144828373309904707558373247122174641369232642463110674943130612293042307464634231437221740957706862471507460305920033800148818738501603616179780266049705528968444162574403215726684676661820729077906854783923157369794528598505619723605023329992283442692567386908236429521668978720261713134444948005293871218531814278875493524238983720227599802480204325217887951587828672635349926761343187109373540272250753004647698711399588131519867320884775142344447830957460636855701593767076347151173156909996428204809578413406673566200421189125942082553238387295360484486172339153751802032742914597892848698427046040336547977922100618663436524177327744164461443128777918789963576198394667012189981234963593316339092030553729012236049194357475612667881185171765617316697941391588898095391603965837481048753212887826269981361245957694501245606444183013407119241179929314540988307374982045831993680367159494837456746632600462618357832644640146827997283667875731659401258308429874973592448093073403899710545887429098021015932808594709644119925570946796839779285579792018668062434951946037769917556436909425023645270785397853556991895677359436381394890046205205758455674813219081745630018643487207379897133087917765899447596788695297261869867035293628802708108339782008611364391523036695901390960384603067911896621962450281543387946937875144689346363262221444469953968750851126108141948565380652821164548357819289798567173035275630762124541829612040014810148381412313875455015507992391010724404702571437872450120411861423672909768265605650331568412032323025511441713447016878414966207663183851851941822362536698637352404801294897844674836507655577395720932886929367731627671846547782772365991307251529429341632558048988881446170858996526717125841885134321106598791297737102709511730015917132732636294628703379545831252381350083901544033032963611169232569174086337106704255794770900136213505083526083114053373804792405202800899031491799345559407405183986591981619711212055075322935218873127878488321754091914096496743404025659879081884170546103464194533144058658238907612574150945566311604311169999988530516271813508256819213518188867209842837466111289432596751081080227476468862953912648386864126340479507007656889747390840898145561652736755424300412405253567035574267348664712389832146656615157382419954145504353241574986373020311676891925844606566229010749181589260327281720676149142976704227731633465719567361952533667846996464109674430035003408033437342906452661496774559233572372001566070518249125427250163739475026093318617391161135226702655692168187613814769927359189502026281682981305477302823508895128953206543404586791653011602894803913721163799770067996106293208342139923064184051263056470509497798244523302807902772408544544026352853362869412481403021360475652789128480625476336482688149698059101022658977124369469585218537678317319308483380192426149170143795540414166815145170065264094532794060368427206931246751791095634880335142829255774143492453858293850965707136501175548190191546782824271306736557851811111511055026866434317045946006787847265644394286624494369049610284698144532875802216808971925336525296410537865763169402978932036298633137189134201758903900977625727292063064488548710890738175613156460391388100626772457348633968076203596210240738208724936092496658393587359689483501216561253193489568110258841391861822885153091045997763437267200091123302371945849303051745450972428234553037808090639649441887061606514686608602677826176281087131970487870034373681656055982296599654453787343059737368505260522112110123161963027754689888953781244332572163745434669919569709541249082926272679954959594459690760461563509967270048756450801698013259885601195978170605519139251588692323278356851481127130405625679797670187150629843003051826176689908030453125778316449683161270070453993747867021898735653023324063974223102124740764982202799952638336633914897972572742100211577615207278621477472213983649083189534113015595860071845173573686475816685124882202725837241671779503437210003251975582184932079175691345513368477615723652684452761123407044920636987477183296838034157853612027483490950066393477109366205382233205062785889170660479982258424271490302268941391183319804092230820407666608840952557673356984206720131464688656609504008038025408633817007677555823118118171395645889715995117848215909093752391665829602046705230809700988094459421089237141764996253975252014765531959925678518226218529001775894607869197865928083359072206278741787710119778856471758572689330220567939087360651884624450292792617673070279925008799109220176973906175513624365812544295297451027617731240277840907067002311844887471447819833759784379418340776627134078992588842831205122038003928266430647030796607844871399262641210207496797441148189563768682301092575294035829644755225399705129126241840938622696138903095708809366913820005598558398581774541944356064945126264309075635609841741421895031666658166412810031484463227026883149041415148608224794612822322566478062963004253658885792731634827763828390232344367736100352304791392146997402168937697350473818191973582760234286240300538471959178099661710648406851548344359220207158785549665258663855402715440458701650114276812472093224368886953195963695915804282145930137127504792488430224369320563732523998304019019114337652595093774636373650035521280039323398345193036341951105444897059963388127413579403883399209514145868937160460510914147563041286371875752780684514245998995833196864193145357177872882656523744617492259862280323046406652497370017227896960708452831042350096544334399556379246502755586677788025622700204231941478639220346310629820520775688895774027413041674450425946368006474380364849138033976506520071155956909343928355184803215635456880466285328310116006085908468156498170539280453588391849897160608806543277105878110758908488961872612044605684857438102137844445878080426923626675917693693851527018808148414392087209988669860125418113751906894732686345362667812579729685038022972566941415747065100604180522347886896002565689800214644770870879642883854328948376933973565205521194169614193469394886693123360522959364159973566361971898390709610870132948140626387698975218857015206514151130321380306176118299890432772250623417869303348957039521312471212988047436878534879472587011280378706751891655238761557393875804584370009845937939370903885738286189184529226284743998480826605130734143122670520922759212383514154632507664668969124123859131951555403940686910173125894046204884317525529823369244646861092462493112474022581194159473798819345065631747221999337751803679834834316738014427753944309947027408009545994154958706443138450790217423859486269738347017993780105925796305270683899638321733093426032171960748005595579435555659493305450864870919962692622870556220851237061537441766029914967469606813970615166275750900079612226764046046546264438545911390842759700527373258562381132935272035910814066447252047605463754956857826011780207430318235346161902129686005805161761740351238506551139600016251840158273714552333511902957951894343567599104251912103365891907736774672394943815378182062039620058067265447578100866256950085818916859326509621914105189426252751682017930888076739745956781631677283760858625584361639535883138988690633358096181019271240404580092292043723099773276748198281732485344743683636851197138270525974451227428044247128710230074390898078070966390133744338816628728590471133999320091718485603218485919481307150628520067734099830560828633356911047805229168550699904134098266386145171633118183494553735933215378885705134026589522134350938879499430368993952308211764383766253784809715569132476840939521135777404947816385617360519723487830597700840125073214426371881247479335319432748087200920497422534963351354103415903099109305239706393449984326283147439581804600109377107695482613368157993671640659050068416933573446439077987934031052565170380023709704844519090093137400093846343678743384855688403304319834429277383436972821749441807932134384642401626778496274897880217576780270590368121553385216374155519194773248694658046954767485026380663755722383403649786964701122860837066016850719651430648711418431307039371277040043375490535328935799930950983946614765068348539827491911465905429436459878484090188645125992130547302468064775901651704008952577634613133020440141824879456440973194574021331367210485866604182801402104805779310062959429740340185642321080540017240770213210256606354812871549678601587528355321039792557633549769560285385029632870842730616586890685277150657766538394395808563220119149245757050338456164531975560318817823061225770575247864878958372853438337571830203160028899615316594548607920747320319638267818379810285851674634668807236945779421786079632769880653247302917977832980575359906042408616289118194653533367717942072063206993703056583350885228863694345418781272199559931937664273122687508528287536364339385704426742103290759099095316885602692753686969683416287535460788442137946958513621047207392399541295588463461050619262365531044929692038854508371360989028247309996828756284135461606444102439125354952782878939111369628978104260496197911739631374474144601796845105198402683292859060097189980282978731724730275948624966870567364546067510551806370690534157566076034171741113379326792308041312568671571368630277199532215335484767459576177569005986169140534637406418602728812286134249443219483737124618760369706978949778968690404805497493606628379783517080869982746822379236981431448564358996628945551120225848394807928471266848203995630811075508439113744202854726741619922596959431441666074103677012794673966903596030245424420508393851946037184424830383411647673368998504017222246514117302453360392176654815601361653792136659185997141224708839749776561285988284269719580867662051252783675504765466938970173506230556227990172653889825845793524520130195380846815176177764679718150554380621282280007292399592286391073756777498059363882692503068332958811664985422161892548768692383669877078635536582921933582021996296150006791294710816550502135154635963922684524836553496941839905094189657198301132567614201141780865260273208207650099510005117829312674874792419813609555315054857412887452617329405960176290731705462320176575954679898877143054194520287850446574976660582657730489615869661468774664340874853170908339970160297059055123058851471543611242008757387894713369066803121091854191581441109905694949011986723785208228027129905472882170526154643989772216071548258471540656994147226456185464219492766922269506489593874973018311108750167803100263119865005589722702223096168845651161464830162951822563624789391971594621416983336681965272463103991647695214639171183967490105708850819048179413399906362657468639965187211247327089107221206347277840742853865045357484415694100307261570863574190389830420371098918133571391839758787070891364978881086051705010842744793728949843069577593264155028991878261335963769319164350120740262950421065137892109560849671311701854947897635246348693589853993471304188994317378720760881537542157617831934125197732628442255789635767038348964984280105528697206997513478624210628560514397411933089263946180651809033029464270873287025178021414495868938257124433727925715639989388306866240080791878466000215124504094750348403312178452491437789039438418988735325992024709433090676840785717683191017687557300452888397921302889470163549766400878934731975639270204923928768219883786600680667438715529898577029180944420978610693250704527519617696881220620013277994527965668780640133099301166026437373023953409780625570632358255622747900481526535925360087065639476108946166443566698370959146149772045723712854401168582422752296756016626264393420351602194451633299941979169674771643340174465063166276197687309628634590349471903960927468005173017240658976707462630022499065623059597471992853862951978048413811262634483042779394113173026750763453083374030830468907798759031462948817849548078717341576438569163477189051218713474205731116392853164842882287746825464088188850850179516085331005565734994992538448174633190475053095963709281184167690200994932274095561482920496299193466913799258668974758460803221399198176390745410078140036763309990966742610562435811558620432917371083212389955351240634041489057485549823778952689419348673064915635581820561622075540392140384927059142319536226499121416057951460663968098383210839877815745344538864063499795567750891555983370369502096289247368407602794331307435980260632487367750758042534062260195327504176212440750911083263992652060948637806741646367294334353686693615740149593754200272648741985829042975115431115561353989156916711540173856191170119683314374229930445575019162913628248563945403908233231024280474071577234550737627870527498195201937215779254514658704206840511249136741599834460251658020734887695481193066738705838769903991319918676364424162198278664903526495749089331674338996356023983149608351996125430303392599442583336603993301736976841598151116569462243350327832302505353035893302635999506943494971484565578525452968774911521263655113593678530272329745056256937031583336440069197835261246404691012431257803897164010082921477274275324984619810662526204224126479681243694062972302918588331964527648721971315181333307740974053625053572840335291635087421885475874200174773024980344830651897783707693993869950961775442253313291721198697354117432102386834524200012394016246652743533202733013278478516092093815303972478290692885343008406805919495294064157199873916291232695442654995463452146700540882512886171255878518528922323198179733750649992865092222484701243693708485832632111494802217957328157682248138082454127715462534091804470265777101623188093629710148220878245050244823498625466150163662505772873606024150067943732526891700933121357806854957571786393834233747986174781936227178337144776439252338996622477264872594789368281139293579744056080947128444191625154041451716209454606240019048145627319608311910429587281155830275072420033561598547076271767325686402309384988562033268562278465325181494892108744907395878404946796914621757331298352231717957456503942505245126164861182513366064360762375721133115186999004127686386584252122220545804802142015368871329826883224717369872352857530293850180156954126542583575070549184216485671804103738116621979156692895467114806824269545707770424063625955135080833042423073181218794864445587422027418733046793853359193818972248176822052694588744483783912767447900406575956190050582731067094588501762331113336327375266412232200965825556082623757691187599226995302489198569618336214400570753547231687002068785551771557720268660980331101621438300303336919959307738433589195257728188843151536400132491546957399686965924584704235086932316533717013587219314116438362608317486489628826167508632795049748286076621312389134654972372041834946164844042236780001154649783664748314030638936574139568356835139420087223650174462328064768273129584263537578580059599338113926683416161717104930118607637281712204458011634781458487606360307185202955436417080560845508270333707246522257463545321602571732805765064359013622242481752684702766316569715315413837884357116184126536224496816861771318184722524574518979575392331689591933129664470124444339171227674909951900397615276099194271926512563802367675445973729400934681978631031921460713938997328413031699726661777126171562423224856229274026296619077946314000354712083435431782416199699981956837064160884483088029007568081793919226595073536449160591018304429162644279130850258183177187115355609998268029897887086091514226081169300660113339235831929419322571765857453059404791810483464642206671154047928771566121578693991206493573795283622127567338454792719966339077820512820601753055239016555800272849386667385770017106075120705882441158447083528922136548013969002141042166843369766908428869716168186792964118525611602297002971822575485473372120004094899173882709573688380834244473437122100335135578547725842184458367211009339023820502918492253453750966366370511824170886460386079649859376394869211113059708280771625785516163745926889104324498053921435181031212759127987405346520318958233220695770586855178398651224503926768405082954299270029446210520996837767370185471247652892203414767578143081771948708461181191359089056571856502238327153675314516784837235835488268481558015761114232849408657859953700277871878381856616188691617323358747990358096249942187834346384059961745804226552417235557458080039143638473289238712430888356053952480568923022865106946100829768299175741142883902940718692161018214152509590186043585878266285324246207474872661358536330949446664811783096430380236616934888353038523881177648929617480813751174931212777951059022063364105429696363049253059056323352235380404525751440346970665369727269238504724382765801771015542523456891162025018540084269786398342529860463488168636416175467543933912362377926363095522023096642762005519589540657383614602762622154693445591983521618171531387366809744068938044056555990384756019574434634296289889621550651814043869007255099884736058363903796672799797570432999541170422476522025951306462702778462516153148563474027954344573635986211230365664475597968373143959101138414160379602916807229691065454189978242671837699783651334349166872499082674349134074327794218556169242497208850190389728371118988726815692598536472578178297908224303301505670984300299578595187176119976419807591597044077701904131490780066759065784859228915498576733319063219718244142703679126803858063644415614083974663547525381287565068032060684353746808681143536904135649802363931233328693943772460724875516744371031718296932755709586099564319970879502038918137687547794341603956399703258623426845792991080494771056912124629113838687552747090087830427926014145078325708884132060297366925373215013739102213107900994774626140305532292736084673575192337008585127380125439838752621003508900086066281576578838274375224447165453747280876800029769707794060066425059446799756551071923897079617516164499820022903812906036203851382563505625660939699068895845002960689652351569355733872982629073374793597093274547730038024786591417933015624274294698246187240525177697156401146130685257320604746914281557839482730058248145495596382807353113269647703033867917898077215788875613816344624029465113121441706648904991450546304511699852854525266379895156156589531351939224660995412898086552886692898836705254416929969338584500970602266402477820277851900210495004339124441227258438036433083826949319044599004480641309552605313905181406637334812756362073561838573479072379796560413084349009746078832786667013006164300034295555098689428138478017387874324420981137542688576589717445758610120291438740827735917715573066141544494326820491953199892889943694564160244429887381077289732139283013380826201271289615701120451971179414527183859749125422869863502782617044501365053618771036966155092131675548249138042421837687244491069426824229591186519110877848795914232651466288011144571627348105542196475901938889979244356396558416324605842721671589435108426001219150130385342726971561861080230764154883572236830211620950463448992969328902448870090386390654575820902569067827091010903380299536735932918773983773415635531424760890743566896433515448635238136347124630881865337718987617792786009069406331904324582826361838718669109450759641777467891389032317208163082389367887735116740963276970694314191304175840786255216892038445101060456282072305446594450123746971657971229534773973376673548186917362626366334970321375134471399459735001274911116617292105657582193565130081991232252784641702015284659315443354711457926715237715747193194516986493616685931899568570243621987261357194193013284196890154723307697221171785141437009422332818225786652749438108918809563191098798245061958103487068365237588165737153368711705404375160802706035713942771795237309224786854173790467120399597326937112522595437541079324937418152282687460183731611283429197927931152150520347930965792005270415356019159575033977474152759205437722961709970061085038062223913620843392438298986855116925174129798779347918490252714611678108177963744632929164022180855645696989190512363483569407273722260037228034333162047848677365730437702072802505136585947476961173027604778688703410727437900785004747505758751527151135108960189036899911498149288758184681064022202420262879922547028120028134017720463129927847259629929393617751114483839015716051308385633879148522102313983944351269834753980381676715926267575231146670678480922762709965911003012345600079784873048470618499050535130478645098224534226081198356855339947960423098326722947729183954534985137012852715575859777816043413419343460793626144168579091517801209679659416601976691231091570450939195497124488532367034491748885584918635680316489816353217914297659164520422635434392465474318480387051391653557366287387269904489322312271957042288057286849686104822517493194327565951408861833509953044558052161156477942939844679476367287212356047767776296028612172878784682233362418784994290000984788729793225622759240693423105540059345559831265461197006594963999574368621499729089482486571742365465652712428684948913865428923982701677919522520332465238796681285707995860641023158908387251550981386150231884464355043011110210705044422360015403824449107490464729836284475703850650729344516608134438287274479791802176788098189715877858616691201168955033470741802685475181845983990533087424462296446072736052558001250034024131301252200293370368614432421176733585360611757701398446828711106713182244957681259069643745202809564731177234913063432173854058449961598387771770646159915256239954348865376709319009429845471951621408221362615431127713388331056766892308361442531614690386166627134402127257661519325170355565415826020801763535569723249668611182873297541527373991165684017733666296219102042329676902106205394948491891578159650702011451876244874675589011815894856918701019037899428085491828920468656688372430913944959781333819079205412472538785997453045149919051023610442643851353283939421712321118501764030642322224744219332532115683714844736670042736412998012876986285291969455720865111458980384331100433040328273911051031732945280367844747818544190202472522893802808034803547016772696993627034041224272476109133436035440345776437105258829475045128312892774816693722451228610325726730042775948291898403421698775730673230879362933279800305526246114932653801947471157777934819811174106150275105281600643594698385883809321366420861814168823218685315168027278142322323562767331226566084330177670686825154692483666548878575581899355404093431410219680340688448938543448016152141824316881391088358238779672309518741129663940791116534772338577812343441152742493752556817745613178534871664692315890477263434431744540726793242456630348549620862452748643103618878470222051546998432440320063474950218340376611249379320415621050767844385259272698020664949416678444086563857297998419848071049396169957145615013970367488967432440990386398830911756016695036791178428218988683544795919983170052896730290296126523145372051705110175851665916363278426165584884452773361998857010090527422690773018377680228985517862948063093428433797207806829880549704977994513230466531803583933325258678866108240294693367838481298198937871749902191080559198303548671652491431856720064662708216425862970118152908835714771829309399665660659550140074377020133159516623781785312882648569567939372421773735892205476922306915091732956336352283633944330232841133776959844034028426603798536975657235064770649208195513645723900601709217273473939962429570695406347278370234161207534235766980140435877832260236771859633406721914382139987064155873601628029618646933798411498602163800438085441095737886472570422254011736876421199287502046290816033291414274568077571932034746108104016384233121963379596420516731148334820620896071773032291524811663530189022245114162665902984909744988912438376713554063286288410487653727384358063911583065207147109958595300049566088041659657590982318235340141106586288873417145642948259961206015884031391453793759572182563054334416395886840581512023276530894692579921549881123739172665568604440215745841937474086024124962142868472394000870831078584844523224863936840376813440816040251657576566331876745180499687482260573767113678142213528650336666521177295006832912876550686249625933412591001814866303077437339404459996609057036242402293935634004713343062707302016272071418737783361679233216206597135436760133434508712254581473016582595079421251553802606402794839933088290765168395384753881245339199613733955947728262704213141646757295209596556452169387390138244288203340926996570500945251421238864436304270913912084723344187921201152148225468218531589412918329959840135241878550761514718570117905013876440806206192483896864313771423339474603743722665902704723677704059675350585604809572003948241764258929857562966833573413953876783529840683441713695913892475510640415874489666857317421119098993350216487409533084319520733465106872040047119060841149367624031478007032647264309096518375659716311799462640524574583235506252610418627886111767845570529515813791367056187107552298521027072119431213672832343153077738769286806360278963291420032824246556613188223061441399008907578708428930178801061137896199490241882934389336970561416559687038575594076914624370909341721551108400149270028577660567117553680966072504509937339026603534673909704432860318946704511573538987966037611829386677535767299000361687469069810521762305797008293580907273297435524817322116616192317069782704536377956120244913984106214250116298137317008931324469877054931401569549242806907287496793784955682652031064984895315354237311008271169622783059863012809413557166774839289127997123953931170096411150491557977669223679891516142541401163242913739559161608011338028276537085970822382823602333072911043099503692327684947613570442623066928733800308741066049871605077778227630435831955495447578538922841698893968103959706603519106271845492999383242331264018974811278771834036441630945545745843008195515018577628558247836646571534777313973508871225760800172474945221205088175699193979965237845631883284525790841536983565929894382673807565847679571044917258700481017632496497664900658314012261633832571088921680884618750494151181614823186154765376055965180174238848585310809085480443797430509632877828788811615233736066689497547208376191096626705937750925112020464560465065258798406605003328320677811114627335875912865374209590798455963559433141516313227952637787709211762740091070942246889047451619192044494617887681020886545581424246976906264168815733246567640152663122659731140181178670695088570684356526668854664572106978761414568667803721642856794828163373255896214293842619858610394398298353766566482786535236365971762382058486487153549521016574575853799887157658668320858913730615751392595115836065471983026351307984171238431297965603742320761291012757859546766151722456943427199439521850589185379112281198192100634374122841842084690831122844092113873262372361946903258907077476190995989158895392331037371169245641501148652874754633446682860318296805338845292158069180750259377197453155574081358400589831918975714645123863066760622782854389265176135673475359115913751421253573131242372633047876809816504142076443503476306521998257126105550545708847841944929969431132732106356149614460186053853823288839022054427503762177835650569389553374105412224410450153451468252342446096437210902401678300406979644563503003017299906869794157822042014545332990521784316976093766282459327497667815137921694401746813049094188811217392673340595468528722942804666495707495504582108464973210844434127384455474169475354910899781795760158144404479169320911960907941010157613216202283035323724562312277469842483074327791798063177045083120489590746554786533758209534956522493417426927314670935601722471534046348883535796110630244016621373389268280227634909519876439815583541135673188323011304188942325221022704376583871324196469115961419963311913835112097584207630435565946643474588428274981457348589575058362567720301453977566514538524996172788267672902742988692091836493759930005569592146835369501732637322892250187997165300281312979310728549842652770078481953271745412744316761008640478415063247976966958163367224903083657101756149770854757520789843784177968863598942891724274226063966751744833448716544604029215701051203065706320965403709531063597897223348919907736815451835236461957959691962895795337827903482940606012778515042429957111973084784807254019194978750266698482780092658889782437937880061272243350751411604704663686735332215765392657455674616671209102102049076912631760431594821366184684470390590044495184542437797651899173229716468804172341796882984976115388902172766095204117182366363438037473253385023120896423658292472750494867548242045534673186664871950190150623441778336418402932466371593656441529250773980575002757843054755177910752799430327457368877005268731506604130781663783549586470200761306521950794667829250885444798050421519477350842587718751642034733221338919599662743857605654230019932993943985436472333899534302231011238450854358508235722701973360355991918866486104974725017248213555331581283184356830207652928305750529378060612269161959475941292128172227748494359971654047843428863710962403488671807457835525177699958982437895008417603106046788514611294199884921151346237149403925345594132514496827500909268129631981449927269997197321417479624310602109409923531514333686468353261428100444798246478491587552464604668216608974425034017032861588901967664566527857403958773021090818569539570899178067586505122782478100960369784382032138132017931267534393507981220882488589393820495973165941261968102793725831835811765421110387444928100316469885716865493299946521875811200674046005555221209368263993573527422559381967107374598378038632736652554458756174766054598856516612710735529353798608271270054472035801971571750595089266688863814730007092406905030336859099306733535732105081313862936866284837963367296933757819746966823797728881484934219106791008614221989126964569061870282072497279814585960051935890618649110220984338727421686034251703074045838179184387607958621067105116041550745250776237620850972213997372908053704386788465684806814521674161861371363329759620958022614644081089290268683468501141768400949677138227164142876831028505971455373591193724728247355010595210577456220010140553971278342490344421486538695033236764213334921793584863814069808544955132056604938800325359145247268369224622297508756927833596550678851895988118643113803165545315111028893299718644833196156103869108165007996102893642699785588682573131783933620377750563845991882163253570886442194193100873801739115909552969846080797783352986205284330951743386053962835272535305985282686983765451394364118294277201797391249702197625606894729774359643270346935289933389686810947639174682041202315460261332494686576865034149995207031079433584120274318378659917026438178995212535147021828350268131294098372139163775751576623452630119041421990863028106053698340543915462488897453556479880967746867923651463268947512115086136975165663193620860613452913935481159166741104676214585363618437162252417215393939609888003339555123053484224332946431549971995682552241565806025614864371254844214027996040553228094886461621230893184196954055853372887554657651946174603560624503955020531537523493444595747080235466646605010921588728997492459730564408068277382575964594219019028797874755603766842008630084650998899806172048538571293339698750415304478814104709282914072204698524254051802665937912957579169702791330388473281200015468985659829427105238478257524651779845488447414814350376675752816331833934764974807335533288766747616100980877788426827231720042777290910936716742712883645688070080460948683562898754810729724418048452431933826391290454397937837274307309851185974824804419447032558559189980996168979549343553156765165366624042426702729550853159287330990877593315393360702473914146431824019308131432043325323119564250235370754343164376377167105721095982246190403845361775209183749665589484671714276483608925503183476699402695945948109158841251067562993216277131528114223044887458964012159278899491531340787083639755902838208938559427329462177507052477095608491859902537568150929232835365581536637377445559171681295872123795522426139561838508322080213432785953786388478698968325003942758399909568105330012410735629176873139015459403195444632421622579802621859079726737473053110149900945817085671981082939807856543493868509550212523567068256701677178021376046289775162504959808842564297519266222435680906245726332014417220817991740877698388034449838429501195349462545370736659236327561702728978256704157548432566556549968459424368201839953616701220084387874952450335680868874822392516558716058083300930251504228154332640233310919218227778310436628998179928562521398176115047440445635498107625459937697550791019591859199152146369873266922383790846732992307835567229333167234982244728186766930255068843514542217867918287082350179788737054713346523392106747452818809128856943235812919455784206006587506162149954149219425228425537529302048361877652565651848255759320787448079117767389502375286270441962878162917986327590270940061346933889344153436821638126956970812195630277114542448725911900129140301806397976955841745664960361733936028445253875779683196584343058724485848103661438812538524144386424080762418289188392584780367887099000681878664145533224219622288694228126823213286156245144238057223786023932959244255635102580403239907775588233319958064940240560563551477221778776839029288332449809857291790987339918435508134028393804459422955090921749353387717403255587128413247080041085474905710954928386928062063663101206584944706784101474005648488164488428543513361839637166707097940313032211745740059432939119690285353031908354484633012858792396383896642747539419228781367736208445882774583651124968667113743295901570588367761356277023931329269710361159629698325977527491224951653908632227888471669825731409377706990920248688998584579389074024007950002906411376333446716738149709767856407188225944459811806396395358650617625952632603405312473515675629203690047644872158811174531002327954351406991494874224808734844540717647086320776794288906780887890593750936356413862904700468420745359427867459450362875873047869823708822836583468629606764580968962913945155456272353417626893929001013280627631325460009048541497211076670005387572776731333998976077067419066952085557790313956074745855016862816858879293618159176135368613425920912136048386884608105401735747223732738858611014288633079621385336979946567240681754416505650847641021654418615147202233597109639963735267170390212003291575125933519009076530836839148920690602541065860713901877160193738021766012492144104074868465415397298862624815649268165042797964737073652710285579882006864233332094767845890304447304041758263189664313238147981112195123048045409614578293410813217497300745846726758226392106521062303554746187768469055414901530595531359514639456642788226150270102835156610708786618203444507805912646620103218899635551953743866791266141390463320472735850991140616759929238314299790630954135777552078883740458761728542116908264371416898014086045611902360728918032980072488092281351568752727090744343813355849082691417812970511718894461318791613458078077988519996861838264030412880674224133554898432680765644342650982328143457637512236536915216506048083895407197562523984513612554909169145671546103812166352854721930326785924961619991262417661429921049142973926659579229025935989021334383330215083238336533907366386886743496569097645948635198594605454179087085941902125153978365924822586730636316393308173467147371175575747495793272673561707915416653696732553893494036802991238090971992831317669292464378945249085296440891818240325966503074537292334049772190958575731580348539802806898703405776719014715381954157232959619752865184201799592717945352312253236248430241856313483134549723939900510864231798340586547912998572844395257965032127701404807541567749904803516777837208369374351731989110698878437458060168507722548120461461451192745032879297272878615269486611167070748696556003060036606298071024246412011387758823426726750582844409895944623268741407102734424869600960571962790830542278063792140795860722484914423133283445132271188970851517196231321476751419551291543383282591712110951888583155400536161126436294915544354437842223964141670021681914697280250259389569393505912247082175336122787329225386917737108406953481098829462637648767377381852078223089447442713053520646946386422788537539631137069864523354012642916194322829156437678857359908279546415066776332897294769892841182106375213137705651324238881925942725934716332926350169492397990425875815431851543298726739593584827590287125474907783590131564420551343008748628827650630668189050086614999582445577978983127553862649978867650256510569354764088382286455266056876926649520011671876428103276767018446658499093396901516307469426529126042521531440180026341806503544632803297139052709997856539644721190438540169342888023642989487947497997058021047899345166341373114081149203492495891245232287867987638233022826966356403695511852396427498623527654060616017637455778180848800738220383804607536371120449002185317136578021916159092967144562275931769759582496580997831893567528892237743368862795003038657646022403592508771276558127151690378515630240820296937404214486383009591331551272559865128349883787247990052534142710202641281900114141105341236200401773176533930422102110960572879378438398961648228192444933779269487848062964232568234345246150510285402551441025562995762277380456853082906638018087105621965359452205400569150731861131499470603058714751743501739006254481265241645188860654751572035832735085209700491840357131754895010751917616031926591233940257928753184560138262605944496787744853581690310067944864275004878750833872891733875616997810946720679097486950411441146915691274877314261765180859732825149715184168677408619240333293769317696286956077444142749952167501721140145189195124684495064288209491329343112534132730383807427393998942697862869526168204668120049025689168255517594073005737726646516465828311940738643244022436492506645033681505732415844768842715162155800782988774093648160872311591908001813857983425437219226642282115925993505986871510729916170215283525328753047551393405181468650886967830985500368961327963871027411988453399416455458481082990583800296286224947672461745578939480654792503813907088585584227637278597698991600767926266905116189772117303630417050921035031053815688523530196077271614566300565463912091865399975663964405643469092507619695577906702841276834381457462565129797042124508651249891757929617267820596944331814863485843018781044279940858130474782846930211772384420106809156844490977862255884754249268441420253076578250485026867523296762491319849560700124538521991744574285698718218219413441871646275922970759383203942060608059144113699895103970114634908511448305236013014879443320770257245605899228550318360466024008218340616313376437186288427364395855766230424860482089201824472601811226104542826754859677784191192636068866508417391863579437679156623699433871954703443207323388399828958289752204242040960681549103618877830776658135064585620702230883512201215244644609388163861042208236032643047883271914599914170155492288496940831601547517603030571021050655705046680257551857253028065597926032021686195655796586205615289778974820893125049209742958599752129315687677792873857085077106367907081319293591706328514266483295497778615198766625515865945330279359279801038364215680460526357861121140326281249326479002662480525683666503758960063078660530008594235987791565712494570400350547291909004975666509748587915254661316898338656392361951747581499755376831510321880072936842147068496530308244924853327970558108827414641828961066507627936684142899184210115422676488717510725641126440220261841188530276958662202981015723912493833733395724853438748984233550428561350426291892497490980264337536257728561966748563778636473794942192625433056097998130262495446450801287742703447203775800047290857512244877964453394966584638522431958364923098968750987765066198299598887696117281691497780353104449657326820959736896562488163770418171233325299293237209320898760851413928252639634817853219561642106157037470526811001167437269421309880913377859227474789670810455246116829217148944243087609972115658591196971169827647394503304271069137807365665371937945299182088428352677561468897082814598568139677052459714811372144408928410374689535791391651896633016981210445242079095115696091649494733316268303280452095952835895252049278384515250615460256473235691890251569887250507931176589996934848221869193765693186583559048792397138311094884246645733058586816828098708196732512556504796842166051606328866459470467856128540084478736101938465575556228158586668119653115744307487782254411588188944668879143171145165205516900873282487424277292874986394438169325422531999561296670849509526995739732075815790393869694325990530182641220456516164417191089892265555748628204625410564315134031671459309409453075451066505626860639614118043184837531077572881419583913111020853361105551541566581126862386725541525811301243352298069366514091108080776657371241422040352308521163541701240147138268464198043491683935872001971691502570107675451537172295388544589289754760659862570092508173860698951333659383053581967825601650604852414520315965686476689221355376674193159610050756640671072339573495648847079694146380379678253620314929988722176038211525209660089968503134147552271500955231165303830579650557344935559939711077758921381166681448824423682451501524136201810973497234218347899785212561628270004203780854488016778272954179942116458141656501020316406031820069537405920822950535634699946983518412265485388096418041067551729160774364955455628172259338731684676935332623982388086771725856940575205406840967752858607133337972491409216747344403484744916870953001366082129625452447923886364357095283142899362338340774341131004320734619445358856706499029554999898821362511221702406542202605659040289753442172868085058752758833501809173983967085153686574112678085425223781273303609474028159101376116953379348472407902769672796312512630967052825492389698105991943268137401401433279628717306275418355171526802626537270181375245531352777457316982940979783941584302547215729812502002330005249794905867795698708884328596570686984486497571904590183609097455729716634720840864835530517511340198404719625481810775843790903243095658303134618360477641419468437001129624894667282561013292090603053391539800126805540658569606225928244986978876642152618010385141154438495757146684290962870912559994639768774237084887844751428832953036587888989740549210838608058185738141395637464905379756515933897906994595753233445874988268108256452560769747878388852844068837006142885230855413470935977753428493666300448803671852086179650502884626441923097635217027783763450804055043042365700439765614085902498337133189260919377568475519230409672222412367134367217863313897554776818387729694414679762085014458248125916547715804365224988279258039920231212772103491216224304863036857511608891478195280291394750731410742448092370840180763518869744038422987148087911768530942850679328674143281060115298711641903458659323619050094747449057933471000452889709505007830680289471786902594090643212079128404481300414974505876093546741715470115411823756282694985366864554588925495438307206876156287402238409408708616989652609600757671233394261254132332485844089678955894536751167820661810117623646971213374039340982453543693644492571566971382400231005155643148017468326260394965295667411948816152323582456156909520809972930885884369877257939527068046679311240981263371233530035872527745375216716475696186910961919602829979648841706710997904377802530854539153363016508161441977595736148777846127833928233672992457524921443451759189786075208386134455655711548144210344647709924285318307303798255067659556348508077698372388245495024025272984271264754748229270158604375309841699490971621351271856651274195652248638551203455659528288124334085725555564340740820004675018338111785461830321332551813278052882512577445673896784675862223954896506620605247130421274315726145919837465600124748613976637068849707770612381855666576900410217014371096135591697481029888419654373838472724769961297885870814880951944117510663575721583834654034914074160790516068882885602645220445376228962338737116103035328553159539720935766671512717862412594044555833595344767677368867631255165912483130342453428519763314329302411231596554219199728755164472166937649357709233688472977282310816901277993961066901501518413196747172465908420303457977980720953894553845030709858633527741161565432911046440449444086380701064824658737619929360612233190328475230711108477436914875904590121454748432077437489487163696046434137527075322265417552416370450625461459313682008838569548887119475515256083444144249497129941904302703019787549092313578273798462438341291914714673131025925991651657251881969475474577315271697311667316135125071679926987877471537800683578827172900362291041932420447134331735799016476441901114777760205557075116092897170192104735455087330882115330210684298970625561999114930343723888962563758161443855724895445928347167928304966431360332993391548930398082016763842054952363610647011337463009649289110285737592191572511292404391622531698500553184160592930483745528258233436707640548075325116489650519749526502540448604394692813189543163729154271711357464245123830942633182109353764294618574740094285272766257268250280343875916934215998774811826211148534332812364254377743472861983946304165308053077794586305204011461924446074405864442230025042671037261010035095239845313418594710150915788591779850054495489527390889439281257208903894673771617385867147283181114198204813808935300421039067011828056668390190287881206878472402176078505971885592568376725900079339134623707557251113511953322967699127467783909052624091376143289371532114605968772155135972482961659075430517112868542861869806881717337482437053039477355246165290562521562743702363826787211365444844978173542748171831839046598736931446162876302868424840009648717345043475679831591953585241109520888795724647404333591646123377436700324350970716752715979025682818724332299214008690441506455435317386981425966819289612280374891740240426949157639511308746574872709078648433304794578092519325087366439265038534196568903622363389804154311084906222508584101251828003773048187568120436360073707598158088132053089077370073239308662244726459871084951131968345440246651232104714868969722414329887789336221276339823168680796550926350906335362418162888893057270208478273266807924308081077980550002470488902399173153598948901232868839386059486415296488776896977203981987985824891516809488426766788078883044227389105225650992507534908054034322220963354327661496678153583590788287361182480907403225169291886489727694840992646535415785216320569737800521036843818947447487230734858527477786544353971947965884606710704339063495289746458615710872760671212685127727619560212659640698756715291262287358170689240076101023457957100000059748192541688223349137066225417283723310826810279256560528675926744461679806637507384587536769460712332253634003848224889368648225136643011426599363840138264530468813607055874519258399578253597608955735062073609510645918200371936229302857446369032175772292161683571598291353715429798460772510357766202838208678904407992555260550565671493958193357627071540472513147081883396814158001661406309834624437388726946960969364930360832035652600256568248779651532463111875733987427610683990083865298497335255841728161452227809690734063464564199314924345683411751300034536655355473050158565031848696360233279080639938738475174051076883731935942543840419177982619885241156087632728518878159734480318041136077468493374349931224284311089794039286996852683256867269066938852758764759249825496222421274464710677253475386909498004858313335047387549221298200984841030513695641287054169633996160026855747851972664205175336540250932355058809677100638113314584927794956462127039578303159016022114293158062711762847068774056859932274035918173544694288081422586068591508603536020292478370465339091371633914082466425294946044490782795138304903326664617452308825688715326439420057954847689404418109470348450529770720364845988336599501410089472896529633833962096204658168921201352168905602820274268932408341783735204291184090915496727234279216180019194615409236942728981082010752944373752246698818811930768475895764878670585578981655622498821550317531746808429258639025596425534930380680422506664098154839041285704945343056744522053638713796521364418806400693603229698060145638440593345330392614974429897071299130477966528417593863252567109353280765020464431977935802317453826844432298241552677115535402740521665976138692130313001324078663732147014900475102677009573738226956884544961655946155977659001638638509853184698353082553683443396401991182598208498404520872260675502187975034040131274353660164442796434919538621949217837582890370544291479313039360840569054054943212696731477895770460411771440130496940305376737956333662281840113450367835402264775653805182199524660413684686863459628555249838089949264616966748620067302881895611624773860591952882351186569089454405929991929963391247716339405421543997858025741143782018630379223562580302647497112872767745935865317942404113153413029007058818219941013560282468240506158646164921701803397552857038970831016621548421772596154895283738302711500531598960351048731345119549491989808421698676072485802268722594560939729382182593441454841921336239522990372140679831582653699249517622840825227848323402318224816043434189438149011837378237735496576445137386795517858206619073127168748368309370766202235353777952129102508684875012046360058845057532467884516808348615947138979356786192126158984434520441061655689154733442657001073608755978303565961476836592520122429664838627030941408903609819529962357127630209664835405855530717175921056574457603579882128589300603257318582601210862082500319151237151830137551473087012411003172542697103646496159655569082280666935390423923151803770107825453605449343799517415861134012804650740129221200946603926232556165295628483404189633207957025608241581290154085142375404429398645446523689845001817769433221223175483183253751366801853235469136569258109238721039741999019304666605236665752242867514684407007204441436473701271345457518454984328348762241474587282420415146781174549444041212372861440759179819630165912327590679350328256619789361000508749616675112956645239656204612824105291700323486624786143358878215957125643411316074578194222276539487919542970940679294738928943583712518459908869549846305299953402857128280034054179250546480068283776578985230766491621667142071727595468737980297591734475557872281343370776718332160672797295748398776921077473848472405259959371469942479653985497864092824574063291741629552802764334559347459072135361779974913680521234044281591844279896996128606071206470807045214949698836317273879124883997644686609432950447663255787212523975264695256224270506896777686725053402601786121026613866179029936381908819371238719111522676284369584135841289859380322469661050670764732716869939430871477689590970860204384213168043653141334947801474169456732910450520516422447590015292203350962551548490871986825016396953536325471413633404289982885769720588103262420463846694386493261687847386536913772300562136335581084473211100978902793972448745461600773780980478023847595097232791050611642695874039310627419232913303869784905134798656108559840027060242617361327108861990738050062460542617957002920986366567415399429917843469776269711125253412142259480306099317634386136524042498031851166001268795870330889915175507714395531920939974807383777725020700222394921086307546755401373678312641180663526468318693253706264696933711673060832448790690223168028464595474077496919870047379397542909202071514497553339904493334857495702321062066282962295093312873482663941202724508546767824082340046263697013686295228004364671886708071659015113665692959158213421373587187315570101597472022504781921978456792254481336727876537509393451565286045937205543824065984777985686233409417280060122145073763951890058131361104722560305497537326454917422920523474538304304315292991128352943464156579464388851681177694688438461491277494807372574503316868513050180874620962965075628636748989805519880612241857382192520718180573186188015216792705565141243179614576494332385037933316596806480688909214805214260736306886990017476272497493808707158315115144154722460232007466217315095262054395718878698332669122647371183125371461853126533736666738754006230172084093506603954252074848019145143508244880468677644737942546708097975047947971240742876836707469577365705747830294285865632280120278183571753908902748855421908504490721335142169064073016805659387064323973257179533255058155988903075601604074140917677074986920418414098080578551690654374381516861370719935151379392060736411335746780522415373743866032978497285206050608160434832568122338911183732302532599223966438790931175594994897756508230422783795097708096815367720060315351986658430957645989473424831683226163239410011966997380256504403007829460360412505105726825080372296333413483767760282037074076670604970550134090164540831216827437926944039709563556790570008418788596496063842033662370201876411894564019759685439440905389326053794503121831273287371464698828359183755021135466994683578745586431045510877676281149905768811392302001934604526886132426177422048930814363080337725132048307050595525005655828937979920460938036144425381527113807992203230036754637495796424472306832658562027907279982352589362691199166500393842257053992029926002492879051208080083473127997900299133680611074220930444149472380943886511640437995277372827051955351802765799537373995043893431210689733921589100532091672728040925343916939716140539560022623125004134842281675006347305915323891334345565180486926219705654399258932782795061218560820315742135234724269041027681569262917627303946610013958206806133802666544970150716672188257260237064198737273548813704271210395867005077559006655628537429383115936872733855888143486306783305544822917281190526340925428552125310354340849456563240093452475774147285180397937302203400327520990305183360404869485151537365156138402123913761543569877525658198590013623207613576271049773835900715359219537780828446644786739558494910761707435648612249402315594169327617051004678538604074879065004584313284550197226540770689522696962795816964418788510711535078284208254503618949719820703333964348518238505176958693119314054735329814954249841067140677258487915753118761423744220132808490326975980817060317220523667264284424318170711173642241523008994089477706604096494347304193803617497093258661987022056843903258941454765660444238708607660715769168124945344905492465113056142581061839489885026009253431613402381396508672952993010075582178874151563482711804943922216208717877115243579053699082034564390854644417755149599202485694407783335432010243685303127869915964039829427792689360598779069634727189907529518900106213363238569389730562702980646251711525999885004431907669864333373463041559423224164172777443471357351522968889247456617614081398480168249372850020793974267439553143067870733797701212385664598186149315354177629847488206247064020882206856444093968333590104912836263695619667706706350528038872394467513775006871243379256887416035670185437173931262319367186575950913887202166813436239748984095865545588019472448530272826617438265377056048134453211980041686443699235197482875628062369612329423519349640687090420113730096511452915154414090165006657400067153126583983627065269535901299197735569837682153577497301314629882229742630658752921752370892721623232334845989599390257527069363507895992455250251751865223423269803683867787989991088878257713504439432676733196762978327715022347733884907324871694503138991253069451558495535349689617362060642365839612441867977546981032229510244220909463598742769717668370108132032327013063426995782538012058304729261331506009996435712284578479470243338988467015322307781379039077449009062165215406685603737715560847777593701765723423626707481079102080076257878961931703632712105837750561207793208670849549427686553075486602315229631246964009948614137330950225781160046517558816112798104022409093765621232858701111422289154907725966840675007827359479243743640519245140273261623649893008587890465733951002503937688991727944077464191718183998072316265829330010029481530229874599065071059045909294849003291078675298775936532387558803396666936159899011816988809462355258213882370035715372648032476029697663695278609191591269620116736481601678929590019427234014595722426216796452392119914218342845126051282963347305986041720013971615563492167940320991805426750208849467654677437409787634498982205636202623989067406566086191063369617589948577836149617611410854984130895075006736111586335245097547309304485402931886855747780222670951983398434596525662290368962502809424635318081912531651807509034898364890520709619515090317772073642704892691141648509254758226160085268812854264279373699054392826480593202746288713876398810403561793070922997611447029272309799232990724953520997921837418614800120137616179132588091093037084854141975382916756316336792443141031537796609755769126549302771385055914110365639514330823991276926079183905614986995869583352499786496030411585270685193357705605464500621218315461973432448529623591673533407979802849578736713597126656421220446439847744773682320141654659862751403371642973354898452796930409220383494566043880813517632485121675152523970262318380970272851866498561054404030160136658588581456152334977437012270543663797888317268970889905339746894071609611772734222056052771281963483260984787777564963754149465380839428164485665923012090718636412999303637405188579847309493110756354777028902129797021924609170874894716602082694880364211347509407698687655413244486565512262658020675399868347985741238661526154320357090931547389009347948942849915239306901609925635347409991604913904396281330204903341916075657026898270389549744444040365082061470824886687804493965377990024071283607562010155606977821764256658883964936914246381980799692677351912976672266734056207427187763418620858625751215763344077018449559139357647092322733813969038958590505542879832972689351223055222451843794597494561034461770599793656211032174957376395378105091568113905915330449740111707679014714884180507033572879708414681052800524307464895815938019863739623840177077729397600992103048792541424472034220657274866251935004547513672752005225629841641948510985169517336566642627308574248220338629928334056485683173630465020928276981140892585315456034408901929404793650472114546759359860230535835104085706291691993291774663382708318506573694068846899775521247393940715474534437926420929749977634412501806489519420507922735611651264110576678586104789006393494516285099780492249416206910581486821839782853503063656407457516885087205308881617890927671677473965327144843985673251318746131248406270694530564373890070236568560396935707771451749012266130300723750271474249205714535893753010986323120284376697737987851482427326826298587859031328682829742653046729394900735607936748671413451256146503905157110246250286775482663800955694173129270585724780363027055076404751325081422110859067095108460147864701022259600658549842839280693894185479772228311901664246509254137271697246354091017689715905274457705589632928856044332259433077709255165319260647545029502681414138772048841342496131501891633451650956515128967676929560467785104661587213331817371930667852509015981869774897376719454145566156870090676311999189298821000544991098974801852435519069808055059193733228407581104784356181225934239062860994453664125681474487452370526449127864226252763414609141742374393060584003312923913776358401200424115705101159991488100953017698517448130437945721409108209305043725471271432882717907964152355988852208769927581762209947648897147126988371202398972091612874076674004021464395921132865203023903622521940416785459477167024028965599717339833560982083381840002017918467008432124757776350621167307467406858590712248198416196327202807275052177451490799877210530133282579269937109812072513288591948352809803736299421587769010046495566483745396918426771748443658851800457754907904197263912489375851881591771834297042134955990109726097671402973724203732758067492281063595179020145800478909541008648565797457551161037252858689494138965478483999221823097941426415244666790718206534031846113380953776045356596375001151520996594233142129398514630243426954615371767617273005108335707033570122278950732258201128648304930206570242502335925514438601005064316766975351649647694969130149611011327837561438241234452349778460023275750076974782777052257443042684051363705247184589719723126966896385288626689383075348241482436582922479315789430544103959490369527939147298835731888409488421418503212359551556507808166676296797520365501161303516916794876468972136842648217935467742343041360477297684751585744974551269569039794574079189054047469281030025891589882152974553109079811450641095053547494722229161920891626965596818861885034183564762073482332815046699830764185346549729593752284872648396472273104422050844218542063777108320992390923994179097024035165751688629403965349748046587997585765212892229849412180459037103898288359243110000358914242051037154277045786752136024286196467784857092659847868447586871433936617378356633235521796990922766014685946282177402059930657302287195239672108634679921657098175703941424972352530420522101597170526180004061565643794677038166885063010730941330298338790020112662848459553709831085087236376730995662422823438639955220092123550671818312550746695267041374085293944150102260400147213285181553566917089625372041198293917677901410648500849500944691631795784384144050381893302285218954092588411158849546790979708706936267623670761891724113628363452468592510561571252590583471765251197786900962766091690732211858980924390827522482034791045964558045475463343098565643036639224755282526863058811326212109177712058985680800884357359179101940491301107333925305858058196739640621173417317237149008996542641387085561939568967018138270424685853456590613904801071339629865669541383661071396676390779418475357252344681697009979671865341509883812394077975370303833398080441248615186057872944858864428686367090078665444925355308730005602632208515431654462636114290108575029327088118543628976888914078712450712289128785571555364157400149602106759361146807748746182866941044477567848022135028065036444426088081281335078506152629627831648236360069071442889917209783426160117818250803540922380260462924497547269147620982555789789864684336933717631307303705995950022512114859133337956620812297574344496153737705039005822866456054095498449859087554401397253473825462664740287316995739376341473049292285102760173237428094655898603099199620670184180701252307633497000392437283061891283034014211692957475541573138238889607916394459266496423262314974955169064702478473822371608409960541445887673012272344271431380494084458535623272738694594043245771420371347343012336466697718624986679580532366578256193748574459813638243100902895958447639915286168214140314477529602974597600960151599280057684551635692504381206191671953578711767612172721710800869693546269027602515238149034959364975315269840961877517104469062844154899035765684793017879004506681754787017216531089046108257678825486003574103925636034637631009874139749901378555433896028896889675801073333238381300893963307499040356293095426047630522495994578527396723506110479016416265783662502287329481674588746487290155458755132016824329903539616654086321412854106106329246570891231554465205067998068398583572420121934473541248708681777937060409850012684656178376520402075651083770435264880922886167742198975879928297229438650578324384467610842609707653629733016194855516939280896782721929592746112085945646514756158349088936679399430357705006585268678791038423307598918451120075474810576910533818247461366970081699753285846882812962789159511895901779380067322753464790939977554538465519001923390731112374678730534125585661413444205275132371050401019055787508551244149841240933402660851725542398107225232397122984448303511244164694450682667078327173051617681826375719115356019721153664858543309509641082691601618010344598884511113821025698856373285397078209026264701792413168626871659858363241154791745646375603925332135151098864221306756638829258666833066094343360945295055953605370363286957889858595996712468486030761091282049620014945569203573879898037654874277428289041555157007441812202691196564840274175794950677313108297772906329215362041462985691963561338907785345763076659500080554247652658164853234098528211737702901201275230872025839091395268023065483548209386732240861822660358576928400462586965531847462572004042300523441987009262102788990736004582915370619137213944819025037201212719952995743148486927914625011701356565616093982020153159458358911434775591758035583625335362647468863879774728039931680031122132901367065505644977970890801992470199211976195788786456003134239874447115317291999828158599505054799594789939327348586391851125353954406827202289263696453782923127578436777363581105383770201127033661919383677289590820946366905839852318901069001026836479253640529898927327670066461362605658106431046536313455875519504122180951211922828517843823339461190798656909547662143656809555559310995110870998423297470299053448673998224683092238353621292794746709949856529044654096652459521780600283216328949014782341370437244876478138044818693397010552223784544941808370579969862620563147337583896381396146078034967532144721347722720470831575446982130485978169144719992555729638639949993757866784432823135363230371507672797548270215587725851697377282286184040731561926356089283327028683537405166829449998923310913005990654134998430212389085514051223253118249326996780908268156851459217477489305660254015713319148370047353152478270245193427488685795357482552126257695601311194071982163721909884759781546414475404069577070639199798238845336617722799552578276855861233648053514838845284073035538166165041812752583529604651894501623075249872002639898268106825284480363948127560195047524577852567059258669078534435029922202286422785418295289443020050238123252581821714001858887427298982017105841546203497199728040482473028712174238762343060985031782015291582443374339443698068124896362454911540883026776534815587915822676170802144617769575486354458590411070853975194721210930223796261146382192898897567325865752546406926628801806635282754175311209531050816130725190612847018226542046156922368564604733302472635021735124211708543867684527947069392041810910112351065380099249412662918666871542242941672554290537905895323954925225994247050751750090298330293409935361011923315041436218910694919328639380064708566197201601639617067283238819116633821853983305108797219225573271126859505559614113744025875795496362783309708084552341221768032389646048888337001975207387591858483265334160908112343014451067370368730909578615406785261715438666623295895480655877688294626114133140107158641974422693307826286807982467972957772339096751547124253939868379807783915985776967191075286637267499038938054248775962836590073923483161999656431286733470383200742562057932043457948479686322472997885443864513683093924506158389206860329144545527956711374748917003096048877013129347802210776679058088688953625167897044447771890071143882782633972289072330863373456098919721831784462880194472373288260095922726094929597086027121240278139823250869121854677059940298331962387824110945168889060445245860187955269562296764956139997337878932180924608432144575782605917420953982179601755540000398576428321698338592921977371426472412027257749424358686745175909534813544826082325294898031946960241021778851746190303657217881690520671239718080213243650984511264811199131585015512956543259116638875866398221732090604930997033743597974762449051837037215116746828403335718787632781670823147538771609755262944562985058469921933875167050492590860961016035580693065642254584183333739272709072962859375256724596356490986805189775098326252148643167979825840221228550385126561106618526158663538858308477871057488248974633541677772042503060800919936258425349166738576545773506639233084102184473813151215097174265299702055012102874712593043345569846229389075097493997081576502261380533438402581426174399685050437388920784549655686730220002015213675438327298840213616574625994954023878179346985397141958884883042659464282334542624198746445882046165692679248271500892947816805955858493784398287400736508328204289497416644369824393487034684264547021288705266601361618406852182704195953883014391253697419171733324559482230600189241894500863295916654912101558952007798558059470401253419492372920457505588223792856372734479471642175570270050224463058934529870752971305387169900250070048963069634026966461417325659130353009872657303487541058741347445481751928348714016850187667404206736575961670082589644369850867004429890646845331014394881442091609972869420597394289689507036411538086667729917577218398352186913938499469516079160594679518911985781907827346089068082215496827787172550709692638171655825332800122835194974417116873032521606645608520864535808330445817059263479500991468965083572288901470900844893758419414348864813220511609125213122464190768606001528220598786331700581649614394783679893695755387079329326616953977695994473712568660298381920262120585732390302316900382398760206684857801853903811152541248457442143631607010396534309769468930849286795766519880809482574640541577405285447918531122183110823377876953654661855504083198807659601160990524728979068456528243461443223668387476257171381785040508099168346644200883604792564443085963419827665256308447167523474034048800928552982075760782483276278393869267200328151027780866178257969767154749184855688396030543675750071376645244714493776255601075180090855506411137528471504248080822595868995159464388000186555715136033329734629466155248171068420618634103415563502131148616271848165519198512646352293743177391069261164544062826744154885104275299983636213290485403758423229559229770315204279589972246991261434946191770128345979807326964998485722938075689656786154292002662323315990278813054653844447171149853007474637744366186833144470382040131341806542631096210507467600157806669384191784316224021714456896137624192965061527328095031406851096795251386959835474285379187937231285038246235193819133524208802930531408902574146603645292497830687139992373279924001462726246717609085635319620805110558797859780759840891598095414154538016338769398904441663021530653894659937736683719340599016843426364835215088136545382857827259530258102937734282054182254178058978899594664389097804190604389830247615799674668430136519855650615272377485083113578798714006730642846441229262728423370564854426670093967274573810358540682412231939720754132103425876235578983988937067758894161276480241531465873765330432863430593427830189522003095699166273969857807419359788013964018060236702765789455377460528305335178937820795923904064308960744810566331700999270279859530947858732851868544435618102043965416723269034794199029597754502895799426974922177031329082015482728772450235777723963311278829972729548756060812632607510920311146532991078382267642013942481148780974123672165298217805432385681666180718230326572877699844377430468239903303007542126073305417455380432856476504444336288220097571863150098266126197343396435764208794773981585675697206627357173437827546235251107410556624297318238149283971880227030636355030098379468100930574182471007252847754477596669660292541428373234876306671191135630468757155021006164790328064462001205367900680705817294988955426845929603379073596910029920486094474856599196999219071975054450774815307339868437192504423203837229224859924487576176315091907108108131550225784211029893767832274415815538622715052304500209015985032374875531032998907765883272525215121857755196193761759477168462926349330827252367584963463440502145164487570005217289269765319451538605906971443559418386687116731959144923167444571979550615549385414177679729751742294375831878438215720206749990964756586820126160864259135287085773832457878448754955652683093669325803325229157409841983340975036480487171298629825982815841860384245255783328142263763547617860784265707745060353530022500515320800766228491266244689857868655557469532512180218642514589577168613932464644244683986619307084866659493778812360461966475240593687821937914573329981665479483709377893274196876419845380684841810906697134556223676208149361637470644454511977026381471123019516775676360193772225334042934756410780209520249870964878102853557007330738975255380953348458572607493409739336497835479553877029623287945897743868002720297604782476536465073631837125213051875367657085847420150396703008592876618343202042474467800759518813617712093398574366343986133030212456353607706082002553273132328004918891271514590498807899615737316598851350759889769522521440578357867344077694533561928056326276413344377274870222667621771527945683464445482830034342139743229373809189784160839619946143069124310946924291150165613233486624595721848088295234078312742569549728320270835319894973687158844303190092814980961525085592470852635535646105276852113883680184319858860078732662910847055358201352076051392033463974289069238517676195589397514614857232424085020899885572134487211078203021036827195966382767726986488738473925751578174675432031298440402830428106348694937388118084180935109561744290434862684077106175494167101207503505657994166394721276722963806432192979010315315220153475500615638399181582623316606416517101211570028605255921276103100139565497259471451637475192135571433253458750788594545706116987122137339146192532136894378282525689059850888056696152783627660044286642995092687378858670296439356562416677221969316664840985972665350727567566608488256330292097774162608198586961104539663228025540074081015160254496009035288747989574189601463036349638837129988312904575855360577273381544937835061774947299812301810780812115019214595105208628009101619995646694996413872611933917790791886592914549350925848998280009139985633841602354819063928068470792170454012955945783276674587216591019001575154666550952287903577395398493037363880336574828303947967211790964036531556076198433724559333241510381543261324940153428760889989250007494509204671298485843621102587601276134098264886439201289063425529740793847626730976175506841866926147176440164305357204131048644318236192904193079156114758045901778576417116774336856689661734393030991353399586202446075735123227454487782371468467276327126799940170590483286820817354595875843823293949366091506815353540423672101110866893148072670765105684395330598864595764930324713075512326099987044800466243518478429412967870686340591208091166859840734627341609813323014000181406994492750682589597161398979971222721570394163844254030107619281004505205849826893334028792206128900911259393300395565224120178729728492208070354789763822941825900891803441110249759709520899557775750874637690761290296305830098774350011132455819715775876913458652951429265285487334171875369745033880578378638822238850746134883331078974387526384293697626065513452457565169957308188304715507955381763625157686208337727630849031226801711863852353281338442422187899560017210379369884710660982975628148792611390527224012162981119859284126680843037102397470120514649553473318966874798840928270147192428229010798647207217137439220067456630859703869433203820409884702457249375984804246331356732259777648598047902878111467478360712825806400869789230100809848471234708232729328011604240735729888402523953738123934519498439992350952174759553293805727235731814596665065998863843946616285788073829647991638950281509827483050696314988592893349017748569964491142624373335845928855295697459214571885266273843547102437761100751039333916530187906892191704701722090377671391565050386744735800400768563051752634746217158234540715482863055098307196570485036606285590623854394312144125178876066014024103470893976071453921988404683623263683065932693411005185606562584232707103000200161955322892866089644776060778771179973078647135491676376165165298296917667102651175426012722099387496508832438678587599172848530240082193056824274084676326752635132818468049994866206425015806665523793018556751028876759756249777299957468661966458576496974948287853708691441100107749791416303472775457369556234548476115977805818770060540417487212291636761255851370491889649157587403393514367835195063973118279971005657190673794560542889588098724219725333420940764413396282784357585974188787761627692224806584322276216163142654412483376545839432507744872072702663961996978371964209413623233419324738205532261846907538077858724436451659694632756666980036612211604833051615397878979000278319559182471449195537140688312572086822360380918741054869691681043472089935484357570444808420116664816250351503852623802701896034903967972892781630879326435312101701677454060193270212967593542072029072422237647126421408156856446550129242517738132549381380320636771573611928102779753358946037078437689762899127692972584562240898661355343061904171374222464227487722125194454015639806023466491787112013170595652686710751498414830010049406581544242752912587666209841147304134799227172687321195372256840779120130096163482193554213580626843301451440438824855983082028825716252855744122057787089158472732895112501800087970506948055846675837558967271287018950780821229036477861569571598580929290338091572855696777540340724721278459543642519973617882703749898721919720015912859172728437917712325938602153217202590943630293793946402359674991108850090683787888053904319933302759273184658236378206938496556965125266116218027515424458206869503899320580107926300845710414405066847504600252144914494594611719988003181208789421920356040246818156466754608996213736091234124762481320867602140551211278321165140359585717941633534419260850693395631224377003157606970535028160343395164886843354046702243888113365496315700124704866302041763506374974421538612993586284713232644502725019811715734051878438662687608575559193849930593679577945476541004671050867181699774733847983086366015964311361295233768138391252215148078005248976706936152901772073078605940944315558450320014025405782976244182203636533385394597395527374006505614942807234166343095387017629580424783367047906526926605052123588704597090829304855174947458947909085390045795326421005657086449578796101256789174406494906944609814043546148897162078622101007067770454187550889284874249774823692153788235356171485259941712672964865188033908277413378355530892180715812846262643536568044730325132347632016573968065961397803007738080120990644977189448437036839062571422920003308353404903455002203477401381976803242127943884070722213300173572186105145734172441082303120214834831981644987221933704367260225366205642506119567116600095558187588469223386168718710553349398972814862514892082390336075902891440664525821515474122339462981237041652845387246631364562054619800765513937138001145217155888712777274084332720587799926795265792459339578458820546812633400344541765425084184628695462322919404713366128578124845692660871324669733106355491332528278174919975206604110281806985925627373891979920926832409187509590803889057567844099997531641781229677375799690821674905266477833220050895875827748206622843851608672585028252248021636159042404168844889527099964720656823746838844053556292722546066854279137060061806003406866800989828421889239329812186731405825337087510588468660330660133970294290898616767625861710549800856249018268086355274234943620081127455586894864614200370981323378964017956517215700346210407623600323651325592879107227933339455236883476429882416427720290409255650234978588499297354616119030574022941325262273692605477414235910614220665604046264789842998907302894816166459844710760688420774404831582661604152495743062647283774375110647118770461473362392737612090519856153977974442601351482516711769153649798747964509555874440641992295142138829410326386994744612777089141064339573469559616453190279510722314683991668882756016090133754923913057717678454465130603575369863348270730697757708131807166722404081623680383303746966755873573574466658173090828179195499686526086790912964380169949401304969096848688716601018777256651015060067793183612190908306446390703407120220381601800202840318175778166978086262546421843040494228323468472712547909211986865831657983465883008746337088634913912447683175107524144240094060899213881652287093049986160601223101124838422409140503945258230805159570850140860605688893420033864293196157875924970989884048025534429921592646200626725227158255359397364832543970743864497555232726482980253649148507980602759689331821461628422350324824912219174452612643000686222993671949592698708485165676383819890089651116387013865993067748333110763134557567821528123253301433045219053361603288441409395691143074563246806464793663236649358529791144747202346235691644308383377557651377957023705126699850755031415900997998938018785475917102546706202883626056474593930811913954042834297943734187883235601104150159822600549316003750994112451684709644173592546142155939641291741465993576443592923093586435428827595215861961345092084159667597021899850939292057014113255777118095284283024435723455885710832285180972412848628054881921232107843399486165906797997990472356979941964939948182970387731673793905574391587179935386814781323252928066591981973624980772995289762217338538528386596045934805890540244524619083377113160044053002163522877308440277305046800353287414731256226809021056338504005631567542882558482679444782616067640830227052674314049616031890653748400399441792177191061751894527435538077783209614027007340011975155962926807687647851934897770372934702368535547138465077806769323345195290660908571417351075131562588062671260117217698834982340335591404370023521486723188618265005318337644891487308555266482145176040353200287826995877447412384997851781220048478084722911866819139609118486321162925172537686631549569443483737494305529757903822135051482604261015318087979796275718391649144401102868501541612331557987101589496826537120025015409884744081952740909908690777476539413722748950926399529550742811620934868100746438957769357636338423391581758239293266312766941040567697345325253440468832014009427702748928535098042012529746210641098798081111172616084297118389258323440376102289384337884176481319661234138787073558697878517605008602911030240401237931338260739061321783340002936368053093988452796565809136140205056142737379046600577137765725312142002833527377598371367812474967594889805625629811442048821600719396410017371320455625480102236479854983427286459637777103817876946894072377930697826519822028744591314936335033076603812115409860832779355892333452701225614874045869284579283535367232507900095186956466095373688182041440303080381752137768029746689972501390792016687204246446668980567293896780895976632429119944575571258685742615391599452267518417132190881365623614225585577013728346403101745065826269419968722872958935477785034426808955285795116894297278581349235400203292494455477472020637192604629265032061886390816741138320374428939871319252250085505145898107133469282563754962236871912568127841160720552936166208981461849449774481451639804751267630062191542812112641539966950763972293752964213736859207034911024198139486980158291395728670002804521103078471642497368488322691368700537820249103118506155270915074446629435500472326521623311764708454320169454038360868802385188626012924582828021116458293605561194893864956513201057910196734462784810626589844536911131295214746958306323513883726685907802101982911596344030892899035421961639975765028883365950635306696323092281554508905453344535447312609867323474137312093035299601793717756235987770060008454434609407096837460900062729993727421157083120681268904395013941137308890622251137813093309984146116332791751155687882011552965774952789500367997169342894934568362640989961873704984486581772666006516617530095839722462480842094102687381051845665072107568069788886001292852565528448918561751354984459967196553506035252516464937176789913971784427619823136373838391211165809901694696200718664643293276707649192365821796609243421781413912101184640914947881524573525982041253328678033385559585867412425867202057961208541674989356517608617234228403145756471464397192430519558172740295147760288835673478898308795621530790138671950669685973861283609438104917304751072393484529408687654088171746745407036587224224669127120045086321236323067113042300602386181821538910741324474467630472140668244501532303275583627407763113311862401967760330956884002995269327863920303998946683351674662000718296746268771757492755648017336965759109017667528819547887086027103208376648402461275271697569148188487921408347928235112502866550033469953251035366037688332435253821759841686425236699343393572226203469670552687752957357312252105927687615100276988620178989995562445784088493429704675400511962339664297870738276080472002862831030278530788144984014669840919433338559340893609852462452715440355348070346465886462345462151114750750468194836822068665041183068857837145183922439395962999837823490481932787735774209083909805965068239431116278827403653569626024543035213321872195201185449010351673674756117404370661719077298566932136465360310346704385046889617678856147677469807539102935730506328684762796708991183118545836310570552559096736090265664514789758211658923029897214006598449895323068992245635753089592414624624709845029642188551897100028662456039419895568693092236409356545004148103898858283462145391549731377697933392770522763397188425203830092138506290438764369251842808216067141850191303351913684078792769783313243452568301968592747945184271227660543312300756965006754245707340603733548313865775582866011527747057834983251754608555711475325070678754314786958883326013772073381227565429850772943056506216547818008794235331941356490907468839965411887360219131975677936330885082146382987907999320919841128948826981829866046546780564639312386789411236960073871104871337095398489461426397122807945181215178028863391654861569190803708676812182783747793262406661289735912217570433871157824266099204937091854240876341276217583229634876209463978968561461811874292222092256348844136409403785619400497470765988412925882330017269448362014014968880182862666782296175824586558701616626338395358954298211977501651939489573428150131459915873073162807322738681013040248818901266702889420535543067170535152329449952409390317999497606728676604002291789547473372106781847736461601351006937042500547024561917560011917479750565612250271094072189347921061070145524806892954683875735823793745794189683728985656468612621935279852619642924066256282941432320792175862836291294501801314013514430000474824954993266757587931710831224126376652870344395503105041413116667420528662214114630941866369483573936081024724154309648971197489141884472100498289387626211124425788707176265018814066269366039671763269705462744800458602390813238432883275737385166214209913827188610332844221426747710993999126417749813313818741209357630339526176856868122185242628170042476098277277362112460087788643687370205545128774042822379962062282901634088400254084884509293196127200954081662759866262264797288800644756905512871222694747998890665260469495868608858102540434598048775483996994532189109511532726464046797248773701326705887048596305681749434752075958735994637011160386488870058393503700258293036605542036095380227332410803556730126536530694954259011401062909830627586617258465194183027074682053060895600144638609320117713613139872204573383289052194542893726453844771399944757476590485014283736798762398850703231279619707472925003059262935699146329920949830398588016119293496546449841780665850099484676971769313585210250250676076879185708106334507229792536540914905152890065742151863648073193728422602901422436520036148765309544036523104572417597190814841234521330069473810738452958038761040994631334108849649260155273700329801774068700019423339648971843870204252815618431402947548323912630547084591366924685498018475759037794517243799562846651723415749843198793302392199673128113635774011017264231776478264541324228578257618268692301204698813230168152431265513509725556215732412614363562276239315747860422943162222102842138449694440926084714368736842498163697811497038118158551633125710874220899249645261328335659485244557894290994178507740989340220076849793954139951869778036882099490042784031603907945842922316313084179303299106051228821050727508344196009848148017343723574355397913512927421236149163186710524345590862933283796732312819198969543503439377094070383011088396896178968505438527369437519791659730248024920874640846209538414425482510500393660185139124992512118268931746421738882477084990051873497842400479626499686993341152648859400029068284997329328457805934051576147541470286535964162339895230662293582747520487714710716317988059090535002402888513898192846864943189861881243931844890664072807919734036804148278854230169218518921701362329057643720313046247753285980968952223497029945351553774444305255375334389642668317969251002123529254497895975922577645853046590719825684861329799497089503455062470359484579844973173946175278399855684821169467277583353047835314175560066518005219750002292913086167447307608456338185608587735250432305437638458251778472517201732138314687960505954286428377415048627818626456610440121163464792679125614344318545304838566188604321462960299181185419318524675706144180496571129931061812927227458049494421398887865035447420699568414681798829758354381746775570914581309982913208668299163476158896687896564632467978359321889769058988837940434693631247897743431888652665652665918608075252590440497857426841419805247535781944982654054350947459813906930158604481453325516696892743343909073523788191220345117271492478120658308332750478021893187443130314683014332537993251386100097275174092200281970918382973149241935117363734972273994272367276982048266113529788935949001397867386140251903322774919687911990548888933604642186448301015467804510873101127310910306044449506676709592196184218433427605429837332285497586698471762443126322407042213329408625089387420803572525382973904965762084871431765645730589396380329661287218569430982929330490159109706984270435267616295275234932144262762172143431690800253372426913679142349771790353247812556047654114257599745229973491922585021206696817129079726332478059119590118314852929425488254699415715997771575267766479515898669676614279123940453052895031023604026236124410531758454732064703822170411852762520981641151627849279871433572506105409777567070486726805016436537221212576781850066167441204751128530012969235841016398254267121471605759046665600314269931003863651520007946491965304961325809527068950412477070290860131673085728794430938339677961129937601688348463054514654574005897100540484830354422691622788471987141546112147491100443511444191101915537825853268192462343390912542965727715235713481526521013436369517460681577643872868651092175759701979040913252329432715950089038353630050287401369112472174750950074097810102303357643887641057201506644266028773788713322975845230711527588634077231962811630829097180121208142679051873812018288681303910337905462893713024831180981642356675256933208706768040330642472625363089461423296485294659793248653725662534170641168266664786699839500936626984412377808506212269886230399825294185395044084799480881099539959845038019986628777315581095475656593190463107016305162497264777716170298168942936445320592206528308875100223396887306451371571035246006510393589263205602107568151079154612962672946128981064247017295431760775489931030169324846342497517791841560764380564425585706555820009106081001308404957681827719759245846699152338373363508582773999731794752582682298890658348754702991208363875352050063032470956822125467201193943371334550444213439982701404440516574682597161458353279192997554061528073337093646953484949863199732047166736128409287550596567851364672154081011115844412208475241711214267134307996751780339050450151901088909356358210999549686284319364778375700406878231565506608366647553676550459999598031370074336119424786869690679279568484797808475357522852269126116965615793915659103662629776330867247369375955273739495840484956593729245317758427325510231768660498081175801546056948148170887543556044003717976215083271838080776992656907900546299428557445128809459293889064951408219447069980074779468430952462572716389188573266367353138939145864373626237761471892873514326900102657900263311692327353108616627942028768915517576729977735049630697766099124058219712727551361520286578720787085312818685356189176800555036066249627856948917254319362130215839142193662614086802566836348932827776862344215588724660097781124381307603618876711400879381826515736257827235936598471960894935442389391494549790558282280129256445476658379981005801282560044816126544397523861190646673870887240704624365070282793239211669503997931801989070188007656041635131150180328762038921032153319490197618814584230875184410530403429247389442296709668533450580865873200108166038531477815416482248234852339385259204764774939719489796260312233200258584516426919034574275925259108017611209090284930270055830798670360573161681532945089585997839664961548658563612719544004379906043345176187897978327616890516274746796635100564362575139885859102639376347151776997589712322224226588977039580778481215693513411367734076128807637386523647578260570115678999825624378529950008754231054719689584873634105631374192410131266944954523856205111939333261787946514942659635222818500472444872638524788925420085058154305885368595498008841444695651894505066423883738502375979489299979724364322501323441809760480144719602515975404289549560551427590258595086442582394961384407513819588323656756175031726757314250770784434679132822710051894216341377898020497232593311942995144997768008309567054295894228732721467646906362378259351358168220981188020482148520366720909981066164011651997437700505265029496986637602701107854444126306261937335108789266565205466563321721946447684647182439129899269382077900791991506304963154214494184302789194890360107647913104280229126089339766834640825962472948828585516562020102361201452272320474246314516878401117998202531193084365935177964786317275306922567611222056130932094802726297534408855130568471872687875812400525987188083795649679398637038651585056342804822575536397855859268419009931274773025183768201498068577621815402167930221918759240607522157149476381302147745287405073267423209891969622176998531769422391147388447567779390178400987400136061064227898674130987691213073034405443535897397166773849189087802114700219188347183165928253778083161586804347984032412782150279143599453676426966854662316708941376198432702545252880885221921465789472960110516545585452939935743667268885468802831872373245744574210065150794513900330249273973193977255335128993290387051171773933196415738695924274088509132546142248611292735827433983079652927742896804502581840520675191397099310222666904907543066976686701981661782169777785145940254130505166739080465214660988536808614691497152750334208841837919255171658619841051078617490660217384288777860462644757081308661388137423055708239677981687580524771636160191146936411368651383833336562797308712243221256502092980134715213728931349000975807305548851524460349191128699979675499186876869226950385419301029269252104183314829097782218036259888292513725550056403901106642312009401263143054861909357260134045698498614664145626121139040964635678421773565071013550872858862854363122709520481469436043859429839481724549626403246354372067542166327727094590184861269433466586084196228251276222816998213299916882499628815103994901738616679001147082856726425749721328373160801218641573669163849091796198311925971028113192039048682747957618892824148033587581963871131673973872146572215380705921432647307839258243983789361642215200948027262020160682938368026051667697395234564896135395571949341636103481801038387550332098563162848137094004513393979022973299622860541531805049423033645823714917917919492675421398257462294915619102062244508725036096403190590567212449158233622906563176146757797537186977179669848890365601700308487525757522955251132507365040040596969911584342541282571561428873896574568107566710246623420208748080578056256866283149449907670889475548536082787767758162874004941656313215933408809045091154440572739194823891289920630876848534407389042536263829351388531245214543458047851823233637333879832124919635030204444270523380635020739591126121995527871122225956850746656819150388936554660969976768959809102407003672605303496160937682228572131390370883350163010256562774344656958468266325990288647916301784979311454267179724687007485594157173814566776986607659613344895361116741541649419056661385868122418228645153434432355054183915228750846266709553586454331667577583730881664586474119792704966672634827409767484203627876200366584035031216586239557508108510138829844877614240676577158468735727119872284877620839789070241783264663100679526928796418596013260944595122903300807035180926898231442296634599078673857879182339338424630353334540859961863398942461463371213109141990138801157899925849271381823571296044322902751230570976778260360745978809608619562906397613174290465316235439238081113504419434479652827281601602501724462740706995931470899525216686805299409357355752815889526074774599330339013937071679990412086163759596832726776006785889843046162336174978208488149959559261942109588606869966782676732942115801768997902882655782035670088316566767072626220752675561474038211470584150163006451921092749891761227751905595842648093280923129625501445129579056195110409437343015313860775893441258489650808909380717438031453606075320522046546114622384208434916251992534455422061327641211331519033866799286058933257754790320182856102617016557977092915339834644603921183954392885765516085566854155723733399042633754838970401535493147102085688276633262627222289425358786894295920821455253894786761144542714092125402978170697395005218520623979203650437480788541613508159047899347339104461118421985325265901436836210271630300209368644369299603429932246110457358548257535235410234489296983688950243621497723949948472461303678950778571787202640135561561256880788927628813542295354814580881865144438850130585357812632399074098443840477393378462555628325232072062844606186082915802130258224697303226697081322422151734341937618053189383009428966726464445626546228862645403531109728957005424578478355668006257735553298637092384000476490225695179336994876897806221011768042597685241607463960462561709874513475333110939650730509120116537606334272499118688632603628785237068628460359317160123389471526941254114654461659265142978414700920209005512762302053368529306668538359814669566513960979047918575041989284338391178532054950347432007904712489313538561669883706253426156986354257372758497304958918004280162090858339388922406767099464662719646302558250056224693215310329551883744320478742393410342081646626900054939725482142008385060041893322897202718782667523351722237079011345631565042774105547485542874417555094589446637499003755077067132462195916034539870412463988827852962498806850245717193781933429477284355711179526211861360533750478009463449717399465753620341653797540674869490791643001418598864847681535545334591426357292207239250177000656139251782180232283838085949324541574704302759399979500128777151446562542302443788999060593298969320519099009263259508500191255216896133680167540373430479470548388415766406031883758092468042812857654300665032547732511147848936861725927877609675295036579349372607115826098780444722902153585239618423858650207987756552806006040026216132337358811518575430966382442529697761600075082165984344191185214242286609161289573241384155231160557057798631850180330769490337849649717689807683518455505607832882187658425674714460045262164681586384782003703404747748572837910563442328380859857333508103021123322019854370424708256827158969832928927038968991404234200714777553046677406856531237771141793565557882494157959855089560453752846265409226292339862366991882938609142130056166385413827495219117358737214984247608140160868567320080394917164925425002095020227512143375679316910354451683435769552732742039901081672564739660193944798963239841516294015382088006876366733729051916778001599689093372995142475325530851901503685082703238349179390730355644886538785663751996211348594272360620050217578372944785088181524049023522742779852561077116322662450963372127119602260364985307267401501541784072852264403709292636999630291929559596542941214552777417153316304577601113246201128839739967267199463344384753671404435383711479881970149238258003567015355976382190875678921942241783635347482233539256338469908241941064494850800267979374353518340579730730578282346436127498744889087235049900689117242842951561039713403214493654105039453799812403446278117714110132962402734565064110656496868736063014731762829094084745849620426992649227887838140354023537850391728419845477478912159960541558066404014371544480426289033445203084401506623418949994893783135958883043464504869690337494509366513289683788128512971927707878070714947522998645675632107770409613152549317142164038969957636299392709901932498714697713547294512103678704144291239627449338009552966601435353438905989185671856286703105136637606906587355930078518898215858767141261613503869773229113599421236193188019864280315967443170120811295672741265574472627373711046848427417833498353290396339224184323801148836190653154766369416183960545233487944953014367454694840408846288304009141752782010883197022219457299879093960823971598620672950225896291901542049407051848985640494906184173916105481449868832634104877640562810763514368234898301347623960466479227736338688317094637201568253516643996543191286277948682607512563904194060698152543688305063035351677668733558750422109148488938731222329254849421242577023564402582073918155379576870699675681996812762918233415941492003707448715035528762413083363090057323594063677450931041026857112701183547212939234359071998039959693821398343994439250062375802736380242785829718018169271933349573363856346942525871090422039586974851312802072460491433958239238324555854887718640932790639679388235819435311762905571080590172701112572845194960008668383912758801947529695127525646081814188203407404306352756017876673209665016249734675309929921385861576411053952056197539091933353695519326169937025197477603356034451756713171155242040774533297222197462327172858919700416432911395567017585840860838912573531686482496325094212656254213086781581682017712309331293703240351736521046889221056931677108802138560570605978604225255360773333039621203501447209877522054855905244502670500999980199756272075159644406212041138847749940855501002108615333767743021016256219173294111470296795703380475826631746685241162474081132768597968637156090608227252803209964356231202996978002395823326369412485140324299767700132254591460566470971734983306278458665622764676392541100092266817738464100696835173300076091792416369965096910272603793514016792778475235549884917054920049379697461499954966482330731340488215151343411521007567322612627422989259927624575366212971023484418666027430341113596640134222458516871975925642528998993187700755902527569326119817462607178883617374936632784563557888489980719939962242031022914181765546858019377231403767519949333282679942367685614454291277929930066928056313060337017411313648243551068724914737411633003973035286610130311945259008198018896724778932783701995580595417079304466002573712039650122635397236831498657316698757378062074878972996941482449460918754179309495705122803352495087926290383712622664480501478178630438797211501608910389202598902629586451949251825989830134774983742771483385146341335319472327923501409297174194622456224167683359689836567055737098342048436836469996552681132920835234399410183985494965948103658440791770979935807212879523666979479349172489548831995424460059223820421526850435206002007908776748575805974342613765423626816547338634987763440741962083913605703120666217555371100064775712207365522250189417186753230322907262865463457901053598308345611738235177768578974724472608014446963168792444913152737589841333679463507340155824895564482241242282827167135803329266188642076766564444273677298610781925949344632555044147120908852153881017277554788776815141582518557751636459343573575371942711415571552287856576589491683293187193301851719277356197124967086866568972333833488747158758419571908445354938289878296849292500094701170281751874135916778408411347328917002175672713123715134373281542301120115421681212765340351580957133354204816389808501819724023224033494617431754521020670842469832816317866999106799163972551471770106681420185694951228511590716642106090302187359281116493693481371319000871587566078894544893666252743110222567339648830418679602536843042670096105818997019710172886520937808736659610055817101100964504302414212193344578461943177738150120103900228229637038610662305910606970254599238889778816913039055895796708498807977088610330802052097596019120054424802892764644119579523994204162883331416938596265980495458507502219035653232357836419789653477770327938459313545347896080280454870831271698269154314140919878674214906061517520099215378158093596792207514011967985744650258434444478224090067469830902873327024892400229672278262542555752718726071813692366449889315366123892210297292011488410762666690223684332196420688523439493779941657616705914646550993157911518311015370955513013487209453454683677051827360460666277820986953321359571096511871952027298369685575451682454069366840779933628954175416046442726524826858964737857775284617266403256314434214278023049381456891184290530264396097770439448870503499476856381368443446009328057809696644326600959122927479043600383663640754626228141041608537493546290904406851209167595133173502895586285686545558343104533259067109243025424923149368459040986345571264550772770101524335806525986954262530090773466208555367922970835788258508471194757179685970280334713275081184447592280770031010368247482491510746134407230903983301162261821854510458374932737804827516207401210959649755315759594530297453090356315501696605828124382546554224507411516068250751476863275519801383344377285678479631045545358158753561815147983761935437841373484278036927088903244391849085862355441117825121768674871022439380752628475803872002749838124318013193862492133466535253428224915124615688395023966441730994843850422155784500999056573191372362846618548235912759806616645291760409342646468387213044537150180050503910489397605279073541659645416564143230787501672621439210872600659992796544141720922814623003666733889799689228884629640753374096254852308605970742842386816128600820566213739025928208878904040472921325342116015892900770014221846166083560988414592010040105860264239060490591391877186189251998494052549836396914621588204662632892064296579161771875704485393798122076390860540000624367553678721015248443606918837476473797983443097953162971808749135560423606398713847090405694271707817714545560558492322155632354088823622138003250948182704866968847761165728887165518450731296036054739034038504064584567800718565831004659941731205128824711210936608905873973702238726308852195640674776809143189518974712705505792104253693590315639458195125443462520979607578664420148247527243247154082177693582626549610405233503861278114788396542300567213495819016043315202528439005783828385696868004321536999140934102208448265735781397278402473404960513723266967631599493362091920124406797561385231823415916955800670871531312463949967620938469743450584744860224727991745943420439279421932095968805296160097061334752857116064942266755229693019864988644038127043801754594174039609088859219927267849803002224842944871503074658116487106175494162868270606772090679286105965484904091208427045851000448264555125156338976203833132777264135549398112614161094073491656821867313146135062011466766211472082334734431712130439697939523351039819208432776756399535578769937702179343676313505462066796325992731921630903031712421689595058784277840770711576109910406875297161550241987718950773792386273615415982551304924158448363624387380837939716375468697386825543500519079757599670480568798368231370402393690859324201170614693605208263131502642780036920579384572766603881561611219665994265917037457447301298251441756828516485094008924278710260370932193763639249181684312439939065850413041031815501769899371026970505001564712369343423808377918322620179338735421263667903654094514909098526775024363646853076283719689892071087174760597851511782915267521288511106414627951691641057367678147009762185714191996188560204471163586054979419978839745749538053442021937514980597278720700022550567040834162413128783717243066637311006150315502183468009035000718918986618664716503079572549243361925828714757397591403943139066738589285104777274251542368283716463075922836337231209400263904917922510485367399421224549280495651904683373417215467907538187464702335645583399111094879114451114355097946379805643223568588803294330720124943575901636442301592317627137840849122319315442641775264275262571363185806853768847238807365812231703423696239295857834235508983211311213150126175143543540874652309974020979599176061618268162535541534401931285665121094331083832719079770633689215182957030210438289963458830617651331384777543107852600929863731095403681527880436414106423195656050869710724105095848943037110998243779130762720831504933955551040544307667788120241398183758932429588065239162065213963827434645949264495656331699302082526197899886448334188485722272655323173986924971444949690726770437969993794646189158203134257223185625689026636142795149756811665967110300808626158383158199084656635841556805590272514593376311105763543535174946092941057363493389980815396064934062760234457522328748558406897227825707343546302061501910904020436005891321066794422405356220669335243604298243069807341491999247620819037995440564378242932159730789915913145697816110576235824229441277108718437571029831885227346643242120290458505448484316701093203329227182963877077701294960528494707008897489478587519117596968269681406388537169361989827485527922678602157648122676089979026513358526690780913797933173513206344930225620548162403532630117952734900677123027016302701732293675216962897244062363777509519226957577331837559747936673946309912480762112592469442828071586517970092353573108718330889993879873147012907630336649518050065554396041799845918574421152096982526074294501727843147949536310211940031833841652586367015691459710670374441232210795871964626601186474188048843231824139288523875659219113670890451544277055220949391092928323433943170055811510459043836194033687508676041035654289365221473212969040289975719211481522958136597750467768247330033801243971272558271630248270428255003480913705738702829726711862655497650249647716695632418237903763330950799866211191421752846429834079326938231279214077136873728470908595538029420073811509712902943685152677558910239712550295449350404709635389387705166090188558908779540670286315210027941654319513780326670234858718812752064659792580724548392158108926664601911824930406611477316470391812367204722617060482593053608366662911516072797219980287064020295344145645342869795469994294121203171836822952895545864434193699442651690332121532841261707314204865652439769112203071001162074189754259801959469593704180386432364665032822746505001077781982132353220151136183818450625865656982342271372571261036077708477989197672830737062212319203478131624765304294677719968755647863667924542106170816060366810391542794440346493216160232018926571747343269942567384650477036746360273137561024331815050620272888648659828032667396610355465660538356969630422916353985388369807169082326411617811956081456423002433275856512880547804150581478160632008363904758392043829357109568778170268451475263030828866920094489429970387913438811567438876037504432362645329819069463323700961090698938500520215625765601142113860808403480833672837323567293407249355144227206453230471655404297057876652923791842758102896893826283998719973076612495277806453470237084493127530706571657414522756932771931180084462616227929101894773172842178665554949595727440899543927416246516375329898966251974027842685405623235113436167561948779989434930226375683460751620462738022113954307311570941347547684181805936314947790273929987010642095161716758333504334798461495113893484466219709523681929091168209606210198850883124969792421719774919844557144177650768654818505588676321727206221891079468109033040777551623256771574477698581072536431041345532149253865512714886366960572234897267329225845551828603914803656909378751077246369025923266288382623979251439380106729815635596851738425431139295025289366511082754483658547443549295243721509482637026911531033573776951276819988818061086138809867221602763450121583351082965396480594638453858442434070541431710762550683645137327688032852784769211055520377556792740519853797403003715217938720279122106642364583216676373785547457772823040603088685026024294782503072723751919297713298331405251880645235091118526681167381606564661148617732326890665983634677398856441311704490003131250964826115768531430368604559108917026774582387156551933926518456627152823271859882158979418210041276762149697518035041230788648258152129200824596687090272709466035470240744932349739735889916534408022186372881827871493700559609711449429745546883085726833377247799413222108954995596601178867452949249169070059332556887469346587159217684747851338393964872625006892832764872978843704303871213850831521169591496629409138331851433413710509004344862143087940239036057059043429217704884658271465490027325880722551564268071765271398615233482311137876685891656996264386662696160616048746456351483808939273976089038470210702777207642442382369454653726878707272299084348914885996729881643268750710145792435103443007176338266064578212113324702006500252542498536802700824342780549292004456753061179151594907257068568068721009566879124493919127397317564095513382048269921640758857236338702015880923252295499037328114381830857718551180589766878865565728349702122390496738368884755318761943916385958430570691986665151540558517792318832505772010770758939800129308987310520993045455680125526546175266191108033759690356341740065274225400972198665706918834900397525038520417565053951907366645395288458922081772289203585724314363672642038944552655288709694535732960981438111330273908627942149837536005383057582935732775866437665337551462986058720767903816313855022278878982628138954241860444815586659380991090667056404438334118627409675216574589200436571036978473447847395569630970089727485889839119604465554482943669848318128854836921048303562345199741551615255605768059061191509669106538313252115717651200082598833622579201721167824051543918481406071470658357060330097689169456046281179116955164730803657366396540997804245936470402240523570687253569186142747742723364252460137538306597041957993797054094520204844442070794676206798792685255645210973342051909203818583961940729163497742309538941073935963478860262333819023096581061125377184127451280287113815818556521773679335335168620890701309953743206002703415127858360030409098357156311835182995574473329263052590429907220245584737372510272746945434938147716820642280362338718776284242265894889668165376467756718694871164750071103603537350932061903988213442160266746200114308504584858277203948992770894316080686915160735067326519347252762742672783326705449265011262544843245967858888246574702078372607105417958868630343932379325528681294941455046955659201920017666331703207657836621791785743710364950452949136837611826854102418566694705284404404811181901913915752259329822258215563758085695531060293673500608002907484881462309564710354647269646218285587792623653817420544876906332336576972501099795037403218928150799457531683978951611803936485995758957358159910478345764638143415694445954266785426254583762683720714567955207148786560873673903362043487420232019124500082566547357283418586862332747841094381348076578299166601674094623035167637444137328549201981248587637681167526910575239555847707210420171164475329459533027803889061375660995460870939015123030058850669479784783239444068753697347743482630991172932936564589541161243239961012318675876183620782922200259944031393581583334666612873401618574555366356063061002341156078371188788799937986575825925125099245542065370802248573226921938153020537752615124059948759783650012600049115219233684280780673679426970058779370643071749390929138150113484718956997442142065842018570522430146662772721483859280298331110512463320224026150864737845109732530971839299115292431911729140595426646331021505021177587530454117627231811362822788030353865312054727749101458720665483405759989776071284149043446076222709231110338239704913533513426541171791643715479245170474165142657296516560360764475055890547722691544495692642693008665574987529045979670494308175549283113481954197550359370125298556024907976340578765579250823713933038389788498389731592205559828692360078348902267858612185564606093846846605063102896052768766939531776194745849968410646265250149677298692131940141286033191321297720043935760327166201481172199843888621005663740939353035310115723924617382406280704723257896095665837251915381130508017017720927897369982766982908197719538426504295293937440366643826068924649777300550610105714719664987774704560747218018269675561353882005994935950528571340561661522678776416721629293191421172411484641726806381627612188776819797227376361910497964560565471282506827719783211870775879915365289193236989774635380784763285313402384504823498473051546814099822775018276731379039110012924424012868803844045351914010831699427619647156558707343437351400052056426323630077822846804669668363719562524515070654638060543705725418549022267246898036965024927948458072826774730368256916079276483552749489867799608150692559446797083414811873987059188739791385385919337672270248274893222388123061934456852725752715752098644835539794865695156877024337027519643760680362099789464227149568694145301693698939877433285874268780678747313774069760745080107947955114828014085265205069794442391191935803680440673612358250232472575243407173397510945856899923813403109586807528103802319013839378486699870121872166777140592291299901098468005429302907811684558962261979280581085521275791897986315246754797796548450444954441333555258665672703789147959760246533674350021824173520984998831686491034820885681163778096011422243593703944676264895538284485826331769686656570222177045468897888200111460468701303582665244865101269042118349349961380752585828390840412752131820595422581326394203457009062324662055680149629447033008634088499481469582412347303712671896276700383175653181219799395185440057319848129935539615834102599421393689180715789525269352457856936076188519156903555532875340046700416165198080917956807580520963808772259211419461495558561663584939806535581503022140035696746004144842678395150121974142784141794717508673256811525471468543853816053749665906565169800732678778375072003589296355342253160930179617456653803583059476082107738079641801669581596742904505378300417509862826302075955948031784130239636060281795336989608938171016079560186045381494066093490980543620524427935786065757523254150385182199888820463639511389264427983385096754344960778031574817193105088273021752999691031669332570158854976123113263332687536130696753509731920522250598063189535602694866424630480440381565222042032198914317751970779582872803044839003118844942932435892597858276591641471933075925572235229024000970032327190873487014297693177732214662454758036993953210457075819140485172708243987181763267496020606722676279295581661912193394375456496657927216239791911695723307015474440118767754833717209937186772427303258765053536921652798109330714151957611933818846081182767025584422743921884618187363512296323718817850848978971067374785458450713955408119040259524454957548719552828285521600611971118312116544794377129639690323665257243513823581616466132164744852562017519179308100433046690147731357251796823987858875372213904124843343709179979559986136686905670041620010486625950158102292796794695258717199988306826811195835376179925891989470903409975633301989330327140411945531869883033750439356366100613309564701859389866406181765886944061838962996756180726099249966979783079230539766169161685751487970244854888961504945158195543984172779731465530994819613252074144114165654526236396549858514088297263030147993548912508789289999049799718196647156946271935980079325780711319868982380003239106381536369335025441448836420244458086620311811341287322601361799480695996074631127812731749875749056199872291723087168026710943045120267831621533278845978967778877249577905196152226056830835172726042612570801575477024438736601525339613989629107922085254392379433680177004413848373411715398213939978721746840505709718214811294028895351690648395805888197753746534109934188989373870596473194896407877543247004319635862900260706230186425490058346889814582870046207102763334223633213328199374835054864092650251811094044317591376434554352270992468602396842296656887989543913270517426832068549854822029236698545102757719792045390681588776701627146764546915519677383028994365099446720208158627326436657638674973135292058722154262855043216602387033697646868651901402754941423844112097715300890025665735799781063832527083378778026975584914813158053069618908417723523940621826727192922342468513614302527130002662320182670625100022754698142522457059409697338106614598233724221357896796559950719642112783352733817955399733475472601111041885765582120743691135256176015630871705590316058901631824499600467558149988317411230833420295025979701276754168204875368901563411312548700719118274173811446354229310757773603316257901148232647542941630213302297652625889216269895217049570000145583356276331088931989452393849393146020097527077365862234194848794356159800448502725522459160375807777849002131725403927961167866503348108004050087044775958980535417713815879399564971450778480468040665187312019743307719104662778300983379940845156338573009325198135139131023140184105780966781870975993046203529420240683941131785902238454711836628554594674344960235802363212149082416197016125192017643421085433633465056889812733682286281308090123738985713116898954526823646149747862946730410635775380653777651413291391784037750678851913047208164670662348724116229919560497683349273757550590336153666037207764468748267341318757547923584871537635826223438285625088620029577494522782005500043852698256186619147088973451037558234794087676517197784787086293164987359800801928665587040944997580178364666164762174889799717383395607745285481524399745275847595625790695569830648594947833543976238844545360511319301612818845051912399486578153267074245632905679917594537930536837972628732028993498533485851980125934249355919242505757093554397287163069924338358388000550020186472536637448731404315294055036635557514654423115537925285418973297930012472529284832352950997856168448428238339832501659993548237229665783884204056994321733213138529977432967705852134295601967546521395114179327760089121059080769151971396314176658887492710532390001902219715509731492146050579251018001837782184600526313973021772010246158585434461263940594786793205519605193353329815081590391623233970665866437464866529673750895584642749982188970528354870988551268490665285297475955240268634006296165742233289834415114865460640976495740187331809590695201828074694494209217655190983278331135758495986439722348292576954965703976454170886437418393677614038387448550914802265213532498863009703376200551998643473869758557529732820020913675949160200251590764233980265130575665076015151593595418131332627654426491261542519179426652560686648564520417012129716524462649820983207392530348808837476445817700185228339454029105772865453956148297636704802901800811453604432260823983278910068229706310111411853059794885860209646305565891047765172591175489521442866074153245934211706113100467408474831665306544216488887346733602748520392217260025932160744867414391245718372914600334199746064070687093746758575431157534678273596434586035789967975087000959310375969888368457482505167383356203248841929381360048376339493153264869170508393224585789478680940514427457465023573730413523394079371306557103564982905486568300749742534290844944976531366885427877024746457216618905944112673023609649621985059311172801131704395390993537903200538574290969269374619574782903737799113210310734143606464820836233115591784912145432231410870143449554157950159239239930580563301292513213878005750216091517226679284055994922330787238742759803747706934801251916346527907476340925355403673291442013103398198468623809492335931371586816412956333707172925522637623928607144996569225246498351270179099979410953015464155793098019205035516340906730770848369999318124135951610754246063402731780405111099486976584516787148372790341252911189339834824354448180429869127361385519667017711183099354078341089606140093102711133109411189384259712841725427814608472233299806498631607063453951392836996283383319092075115504117465919916008096705552263110591941342694359243066963284915560964699268172235041364309029654129163465000590161736891554712655169622466292694245727020569624109334906644789880700661453667603602665081232161998245980695059067489803169267744337192428166201869403221238324975755199400796458344961950755196340238808680873661608447105878793684395476233776998175783782942175216644485540565347083172165788526868301158196152689842509736161404629255050223909840128667596088815842355796562324244442339979147013866618355892496899366206091070106419864369421625972553069710004267465147329939450903096955357378015876474783642419463109453785365313235516844721118999507926916013483111602977702339870913281010746221500820220043397302341298404878598216206969370672120885471584688913728231765476783014066320264965946762967459307267066173719832381529522340942934192592134897127792273103427568929373583206391031480866892806413032068337124875467754615979671679023474531529442359438557068670404097835539526780088368147390908063057661625200693791710921463483752916272746384422684758878423317656597359249790672322208830941934791536900870434749703490132957253699693857143705351913507238436503956101090763543230971014980966462618394761659236745525324100676765625625114462938650054095994555881975725905557402977393465895208197248711308037143641534167554308933853885021940871333738931042967369356495388179496195246062550872007252814657315754004734405954635632350771721235679895901415066101826531552963707253575934714665246195936874549393755350645672108590158853015522623808866058258443616022034097122354122118212228760658924843976812418151812786397966191039532923222316095023766244998694637960046868359764702818362453350574965771508157539730330868514615812561958696084805057750935933392922112395505626399538533297072750984228329484722472710443562553811630474766312958332960816888732491580694563512286723707923200607187159052115270276537046874678260098087900933954047763425866731801604578176695201239040880398998141480838226498592695838262217702424701899115048905552708041803003328406719820724898529215670748848805496072701196940767927350241360436561671878606696613586102427185100442326224490503992097923690116229683914099156847133451377030512420611010075197280850160425210375893932106745668573893469658049031859467975955878203444256668223708203612920739346513523682001179508584955916659860740654640098023014331894394241506076015290810138253649186364128571491297998784746991560094033055415314429309407478814731189803595531979730283385139645998140281386549566748629464654166519609994921469484687083556070424901241178601738786149778526746690019312805854110003494338297706191613493625978342394621956667959433964335112126643757543351499136112290188919885006511492016351962550516335509161081268871964186479399325829794606208570344608661227617978111622926501086458694067075512579339047712987019437405045238710469899857432067868395776629152673370560246659790545676963729636911167810383501937729788117246687476049398500059921695435344335308799819011730421351824470220138972821529606235171010722699945475344720334959940154233790609946487394597856672704463449815695660787281990051866916520563383596317782110079459683841772995176935375090568393063185203180260301454268750156788252051252381271164522158546347174686659285823349890455517469029920023058292818977616639857235109932512194016881931180891874263613364094097164458977948181593890145748073343567215678177696240062537895464899218317447543791292967546840276359924122205147076763495575457055978144985209624601498993932216126989362991376338075972121608483914542037937951725288887703301040682858684261564205385962146502786668154362951537865039764639715838779185324292379797580559261279648567041601840070888841164498871194473514259643192140594697879058291447030212529372613704499783288735511060585067974673134755678863990704573500073833322675745247122030105875922113810880579086187199279072307133424908876626012800310698968596315452486777696557887813836466824459669043943348514708245368298936090612601044654678805549470926779456086418289835488791732314967558836511975440572585370569020318383731902309484001094489733200570035225193803527160006484354667940505243339492099677374419395541436217402074649881607230776422313887299001576270930485274649491828002367984281580226385817889511862139598350949390863742049084449062781234808580932618758813784236809992255013737202229214704215047918173007324348127359209142972637656453833828007648258721631155729695532348794422812234459626479582558818701277290497395592037174123953845147698782680027197835112086886327379908555724191522649878398402803842965859357197374158493182500723558073561146905020857133136508215768246186780609105112982792819765748054906395492924761281027721304731138584373684944604092839003928290997368982760342433992563192732579088231805837665228212629062464049554995578945141327349925797459539734301319971755839681904560390045992691988967207224629790411836386684126820755221340695679611056690588692242717508339949461533954572827013503382834327938595730620862980567624798557923136112100469530164563559463472391644345499309639778459570950172362255317200602574444625139780476994475440368176930417616104153211214590129563092263436499969529664303732734545280629759813128993662427721190398717119353769316767768977496561589355051945161737250601718902110355991255138689443928824300695256738010867959243714200527127638193010951728251805923131616446447752603009682786400869634320723578635733501202804812813723651358817310787319910188452068754772603322332464131925959791368908295219259631205645425344397090584502443084321377386290736527522034871546645936668790613260072784107578148268824456807211648094822276292988077195118865336773871932305666445054776800317493393286471715262647830579038304463019816896264799535113328805648044153652112180716228008301560566465606205673731730488294450255073588052293449033571489213348184567247676512534400648897821977148214251579115204269240005097538557149232368416005528238465981264354606211694465732165682314262912685448470088123987433788425918604068596083372013928913768288014140545318048561314037319391425543257887646832388835237121636090076046971564104916382284399445903888533537994119016238115036107789886973343064950185480298787868750370497894215676621127396165405260567671153723752209997155699425623043522947740042015787347485084601355198082283399037590674902080230589892437795902639921047968746804233565211951593112700498509910529305334032077334648550132759816979866360235004302956284174047041221308123187710710772090170141848516460605694248586003787988548595957596081164685852453056239960161829856557174266106756671854503578049578900004425554090320971839393988149760017761073070095155408595050711534603400451216921798458167783215474538957067864646777053925177060467920488057262372190648202174486639694538571805914565293531827100152130805115816723049487694513265856182065754900392107993749878420987085407806586990984871447099281668185942484070662695571218404152175929140207776330832926019323944490165338246026369574906173470203121963300978253640764602677295620980297736053107724817811110027242625289978130267000941494610271114824707601731089981258595764255863881720068901445225531326929108008388573465672938598049479180618863585839815836819612237371266621513696699327600227208311711076680332807451890578455846659323484703707720009704530302132227218552825148565861393303690064176586092516624149616152050857758446102233428073267955973281897884770969293885976469710595926983073482787085076605038127976366398300762817191064372770310912985052448591440202464980414968013858384253948752233756172810675586280711137896669560209992002507834439283592143816266133589918246557855842099149875847596343585001509396877309702205034370009742947008833187600399053805826904457422384212321329183331280710093190087696420060249492498197339581479378197665569604358671136292743131198884895997893108227177795108835592551609787035097076051287484399691775102842183843769623674456025872644332039318756399932085732866989169168361313386051711220649384597608084563078440248310550816282180995911521181714880350406512053478315252601797648010258044313444625687007483876928857344769583029993443847400614796654266456019361614731212428178536784010494521285072595132959402863753469289304570081544280068216564231217714203734117902569481605971309192843878917331904659741222449242104934525022320432193048046535089660544790053088482754592408913474567100451488087655802170116367734535372923959923538455063003233763355116839210448656996780099468976926965325067609107548355892122654331182377217323590506813998230103749104551073695386523206337680622188487147995520556557927880427410556944717947629932521064944860503505992858212284706722155376148957383395438473339404932912068876110852085074160843660903128496457256483419001033415928512352197163576605962509134038666007541404430480858969996539534587900873964050356099395757225487203667302872807887051882741795411901484824273795099580830603738654005787756226171077546849329912863545994640764447480105539132237542224906648372557223585229204326561093087508164646828018272041378345498097786001494062740237104798217243040923421882783468983612948005085388083598431697234915958615055498673298142038364544633984206139785036726256173289172307620710522524706065698457013588458370585590207911053441942113153710152866404905365077541447282725116779308140335568467629967757903177194449705071867075695798173057341371504086082533614632834390376595902262935598638647259245013781394949712444666593471632247672927521155174858782615140361310652420850859092000346713693227204877324287541608120058721024766428538162579609354558484254778530996856886885561977455543519806387532240650221324396220967460183730077911276352016316964439216095218067952502569548782375064954568131759676868924504864231761104443580307047687205764584970319865161452294951230074778266611603491921596904860433093627643167151281420664210183384541207177776888862457733024074391519652040319649014524637027321406156629886780608992295805562863283893344541399591385375031995871552291567533966558720717936965915884802497700148677221345284280743973481913506718847044139964698535241415107220984506871604449195312989184069534034463126404331383508831913881437091008706648875261093828363772232667633576260861403534667952972929080480758780910944107162661783963132020030444658895050503037259354628514823695070832163681660990429041811192933076800720127165552136151514735504788479313986141304533845072329356230470221216138986904688985972857291961666730994112477886894026393936611263115254357416158377486767231328727241814542191428840766771985340958825988914967429207645233163520776006053252242304347495260992724445126365394697690150986865136974159864048934569422557619534278622818995212441727351809315250292503173719890422715706149175081434494928241424379542387681566758258491271588077264135047194123011983627029984361634995988848741204628799818840384099711398096682097215521392875940355033748614771982263139449578012056263546087618073632563066592363135575148530888482375773661420924646213346479569576348227340871595648759515957306542957855421200505478261986936487611480979395518612149837127474279301200445952288998919275125854241101483674049596458328658839620610959467048244047660678703930130422803925550925239937691859911669599940835920085990307978804014531004537058247451211471225315225747612444453520458490040738778512658289148125837722602250755497525446541861655123066889092020716734684739335223801108114146132217715769409997131234410865519265313168789206243586257760772628379905002082518215214939218358163734718536645175805330457232041160645795091431223686185015953349298356663741828281746566096594611525763757574879597297528602236543708948105309754646367205934607279223173958376459028684385583816095300832672456162200659219688096908523550986438222359610307974857198383566119691720058657065613875459732147467385545432544700011925903874878027573567959812678038308445818508819681433720424374002377122526516887674525308489650218802318641674728832108670577640061433869292547244702105933528063671026324215850730232442240628293932466339262322026433020752597507725153396150740702079230649354144329021335804992679127247881582893914857348805039463168549926976987367055985087936113790951447209290912542840271993009415777915698339592036180411702351570065293837155199776733586571597129400293068287128274581621683864036347653710767382032833414630190693286136966460948037033351032851820695292289170948287677749489330171159283260078084424241832245322566863865043858692779635507248562849742923673232167822879314028259650632792941548936136774083783470149767048069218083846422805280907662188250984873789584749474166175521850579966334078252321516665052379630553671650917771559954151598303146096587372377620542807210529487111525472413553011865151728061432870349272880620365389534702738017534954677186131014281554891524212080949621895799340564924002344942686828239663805163814333696052883214639444077646894666405458648127151877974671218065311557851062236542941665937890929060985945312854624238627320522243402207267148115160969414957182463532831284714207144520443044478438789650878557433884862906394948379379774766064255145594043385355202328348770204194859205127800687055317525734497970613087447437498437825258059719696921043095299352770745300873415720702988316618479254728413756054076955952474957742530485623217111816904152598891543794849701550151609384243436931631984926817578138191457887391280580570754585570173411706024226747552565566653942918118447877177378200833867069808728390264212401805509506088353009360672877531987585099690590115608805151843051321882239992816161189151795353118448786257292858585507526663037028552995107680437471543222382629807087577799478265095256093232141629137801295536436577087555446230972194785068345232647735552249317231979577903193559262226168985016976311125490484323890527789131751385399379972084864678313326045716996890391578520069424851223977479424613530489283312402568064423574762659292738553199769895068967707209918540316118563729006573966537342407321298935138569409958546149772561252854797557541209510963247124695773045824071898291518043721988101098708028904808779355429656404557152641614519158106601468531482276991397935624361947905909191596639698747714264354966390189570152781049240379560669287765780564009657301221123950406083576478847087118242048672387872191732948724313876251102576659957555678630651607674936262346135462971493216921601642787478423689660063496807490601669119639888745304431433943603969955329971033684455190011011787285183000845035505515110610680372195463443436479214743921953474071630197140948036310899773276340882437445752326913355325285239499169155678539318094855338111563241024976482656192952006762836323040053175652071348673837673995792384174857721737971501659178637413090355439019658907971613981270951102518917782045231104054894486410526337456410559495304154546239621748574989479971115363539918999696010724232435401884932021876207866454324866043693038349573558288327287257906173166183845549909803229173461157052587400721833509518439328970621571952999706912763166137116996879875017345868767853621718232401367597852369581551218327486408338177861962597370531420970616612345545556483809759167850720318233947489330126722127314780793303967648163115503739008551014841695875151406007898105910355946080283043586173863963053333678937148342214129391309466715371310359206167924279147897243811954451557996384435372826411938976647855261869454986392200098021913346624713709080849506768664897621051074542041875207694981672670726325355112944946834141319916586774144178009561560566322389021993067855405537723868482725271677940417000552349181082913514796360302624826531236370055521722216329051464930828015600587107739270004478693717393126704023502159524547979591141184431786361709800934612201271081497071346685299962587399259931831109989490699692837031741164319449182116535910950813774246582548317918979336873833432785464942357021380701532869232696549026852366747207042833643839726231628833642013310035873918868357323376881094105831555079700856276590994785043285009654159086599291153276691861762420897560168699534470237385233949754076592573092912326058413935432216593047721560901841960157179549623883021787815087145802209508591119358023267543119907733064582211098137998353199290807354045733210091791806161978370022865730358388846708571712554454912334567827016518135426342275320595089245014690987704322524944853368397668827859967544105035120078054306022519421422714664741975982757727250997154591694414694436093088635406802214633602136315006048909305421894084462305191525442940712643081892971617897164772488420767853494625231814471687194289217998389700115102832794301241950375419619221791871509631138153063005417855054636194032444194820396512963344782886336152506858114996717286661565217542040786619695525514335711294998270716774521679066112715002772588115514783506798464861048172243169685335386319556276031004780122384573357986201104892630373532491364827008040077901342915139742724812680796765733629186855624591550614656972953112288408444835371856268426399621454161749468747383208124003613286600587710107907838836183311564474470589044094389958644885856298448004987313678021108782478037270176979706032098517576365309986022186034430550828331981515053544001109067537421155763144534652735014687144523645063560628740469424703725556647585278568562969797843414548780642789233162619198261443026661463499755953928732967145924130201314808980538187330198933099451051206654691594312142431321877969121697556018202416853819272319871414548395801325454388406654074152818596632212752856265751715871743453375773971365793350101532359629094629785351094847720876627779596877824996880502132669107761832671315226346769534021808460146544898698740031672896882963856966861054154048221039224740985087633357003893505468927632739100596972784922924130487333919174278029569851197105052137659754400057911180690709671572286178234689799444465346100375061975461601032047033093609561283517943797848905417582512351932757571551462045827726308292225473626145298373083341794295058612721442021703219779736784602491392699066021743464566985868292722646989560203832291054245305480347183155991614795341446834127462476439393201809066983281630719153186981313979061026296754992313434884952186624791037532640754043615625791330896140090563252042627977280790514002769117362063325327343491970890853397065468544753287637340921176599840879804361651238044266831538637796089006456213502661766147602987804599981796836875997654748998223095315219143234093828904766894597401051298892023117969248589740522648958520558928312877881468354914077179984928486082455967998750870750491550683054200304385427308450492009721782176933145902601061126771561595147793777067562523188496352712173013333417509345892770556650399282362329291314832003441987402463938048365555129401349843928995711548493369216265922660076466583754033454640590766239393741096798632682917273721508854412664231078353291053339327563466470897056488718750654251719887650399536196638983867401974436613263905291884207967814537769182221365659151209202777161406939490436387658217527110170829766283956554015689859189945152734035255311312066195003670479202965954828648690994666813954025145982742992981829853634369771207270412076541519786920180723084561232744801345358922151563785706669139094122128755550346534173943299269938890307093559015304322130617342504056338458986438907370286829851544723767955217658488542717038228278551152467030710457774731783601669657607583201309295830652019527031940861791632638465797506844495985075584754716995137291370536680937832085091717598434122613671195104047538578457630992599604024255257541067372675727262327775056765656405294653225340077623924880197754543691864168752811606002398574397249922963149243874249907836787360915157517442096182239290891703092195682317572759739170361704356930543454482165497820586730833247350994846162852655506727802451712963237466529593564529590096116635555794495016580650823772462973647799512661417474856587491204997843238596254116772527622872640147490391330555511589071402707027138838363670326908486038926734719558618075208013043428528001063707354977951780445530475901042268244790642315404031530343643190228548570768347399076577946758834737342026271879566387505632638170757671313339499611512635809521202573439924843782687179864264306670583556445091212305787623140596491050553742564459546346957032699573013609493927291462477854652620857609860152943194614747199844707827660345180801359184026224103149548609146422979528607354071974325005439427643894561841347610797804731610711857126191609092980516654522037455065358592673824829257307898422195406120311521871673982061926631435130133327451522099618223116903322012569419138688273221678906050479556131902332251403921785398007776173400281038597253032937297753451293512456953920800044350147939233972897523916587873752205643986596996515298180250705301776922427127332894940432729340962330424327352084962399092764284581736731503840168899706626869465883341491250649246906682262314808912432562785943220937290182029277689373727253319713595618219120478967879105179788005396944488783943497746878201453155637053555781118886214117835169267608984765962006663966058894584289439909283119663439971323003679790083122724005600968034758895777519476532390478864216972174779901470845463678488489832835418209248101458343822095920858067701296099195988032253456058124466315028744121975431337803360751988245377326634527614316998370263418660928149654142129735610297515796463007121442403547408664470041332301148263128437418574321102116144557789246526411251262192897459043428521505070901978123115238634916768201481232927732521484862943522609558080215449605290754382660414498285269055754451087431433018351537971472220589252951626161952673111297285902334830072905631121175056591501248360629016084152746393980801026942596032554992545618513823563579751556488936893634032646888322303055169366473803438521892988418263604758477615913770421819126630173765345483638604489981779134413767909619674516405997402678034131229924110941537299070654174143030753301988984285094059478289475951242546999034136704737387248603381599466282991491005659661468801330613959546002832442798978634268529009054064065858442549117141076231519394117456596513494763627478914896277797178445774246317147726093784749572805238246143184817434915956670564262698051507011326474733042312485910884812383308804654955200177623474096458900728857984298050269154169557163640823180398903883726680757110564525337952120974421007927736858774086707547493187005891005006996159480861179590772038245441614740469062965048995052506218726747230786924827958420781276483602019417034142429701867497960451601464244590735706746420751701768823277261004344053855991184336372514247279440018152538120133650823201976970396376509447745963581139788174686550985974772272899583430653016566547248871797079665155406931570791752649601019163349222327157628248170529289496349795603178689793525377506028763070607971565576693483911343167853359008607800520525769679137770989634449931441087502475087348099000591902904015838245100488547901105269513950856694603757324116561961298335916885842225154088329246613336057212349721241628197058215147358927363350302809103388545484250475880105454026820294621657960006128108057365407544567485636234387887541629872510650060042932097987562084263919847994810549653374032717633612168937361846364780110761110475940874857996947702058631945286667053107276864537588273261307251937398507990301871209883822141636440508515187980234142280630954486615312545663580915007402450223601814828569397396219463579017691353975758334092504401657181590537382413534201994104584789239608087186691225438763748543632477358747649969976778676484170889271147490632439505195871219779737932269880956543937408373118338509772730345311432017799118131328058704163842515386272369735888498107752640137847349996175008874992950901298225613337452241378463437891081930917595618236943615973953406152064901462329946130399334094559454579190677562442101554030881864461801543612804363750099677689324998342010511516010336134036198594379291407906693382978744681636164922419331316880412136214411020491319482320982082434626981952254063019055702905481836538464863986516798705653766286366437994446287009349679282246443078546998748247072472709381483512011964755751879071832197988182080084332621863440418854044147787821772463410614600122330466694519531581417074611853525625059057998517038243165526842177668063838080042195117563887399400882542990853336830345316939677898105174925244261630552401939458839841952891787746308523294336268299145637907242117289038041115741441379334778724766897658543989935968118182494763937269454772405580391465823814242258083923708901010914381810028776345800656014965308067657643521459854636737010404562622127167695650652132006968307114337767194069720923898904691556574435682628192143646713070590255370497393132519407500154287035637886340216984000241608038841800179366100849887738148734115442069488112755984750803956171195156190457825725205935951345534822052490138091661013680940184004148942095967897842708498119512400307087614011214396668165202699504578311480425483365889626285880419308683398545783017317830746285700148851334678613362938061538827568372536090122087000393960871884197544419653537474219497700040336281867490085318644869376182989327894660479508482867535066435297664013407543406919317830849968709707118386791040917888275304866240082071042081297979779043907597391109623123367612731250951036770587583139237099089318989562923734026840210749183745499410709310868288591432375882790085037192521146931160188494506436984059235995854809864155954178683997366368319350552840307380635998150615409982104290407112341677319791944289265249777576302060341258822005285302856432307767886760119104986008091621997194821212769902369371394697083537127182827169963652011723975763422123712851063681848764466739760076797543031055754259546185266932928475538769156562064691406697539875980460480542640098215599011068902857329177593169312677119768003162826301832185941419312598588793389899970534591742812878753116904915109775163236557238484230333731720715048384489836906819676858000707594566360795402969908327136073981979752416476683128291011388440789427611427041875310862404676404632238828766670759649093466435650477101736425385094304755470264874705006294285515608472599497406155521381018534942813716878188578831025512436689965124786507430175366584885460866749428745595116743152100787186058868964613978200854665827893515350805289013224282846094985142070697960938170313235197823848378800407249744881769521201225723995366657620206108066108460495998694297727889273503108293566933600443517615623201798331293457485179933056128648843282652520806787911686624191344220321036394820105381428783685146719992589158622428232739449154790032612892654388065297586406889628798991084680980643417837991774274980353233452360380546050810621747835363387353988226296626929060311645572709215468720866347461213602023233279365208119083336205700750276092468962524019392902010518845884436950586585107006458447114261245725422582511777249494080801950846981418561853303269702160930798116878129598725644166995133855362896491250163212243112745326971704419535566265196093884304129198831774829355599655559641662935571144032563939175313126384145973731713943405559393390522066950499548681304725471741998606749929332414271834388022161069793330518947980348154774620377480333548520052431189109501725929565553610816131649513697091924953437132405496487641452715461030200632799211745179951213115611112944657225034717302936143201780104762950732060621190630571638660057246821413548318996576486257849569764543018973903213268503446873827948660524609881021327015507756628822854334049947122559051723568399927726999258690864403324504316318543426094584353311179494105479892188535598048242603388843065895662455074891298209484926158194952322244803866968930386578300274529974582582478640193712395798296361781849440635029987723847874805292605657271899207149008815382260577799681053024856416733728635498851660440160619746910307444999885781591317051681754603364550726349978272247077448603797816857623544084030231400454852881221371019984599274405896465126578962329021559142305420487992274036960506145601282798356702111586803523083778426347510058301999760381461493699166640925697153590985360564002492783826838661512740164124707118705740295851305384535976615879654405722051017134098033678341135366854158948101247813381356972534711756899893625872722392177139663704345109464425592669753720313129739397465581971547165296371331263251686930749188489299218253994825737856989924646201448444024696040230748705983880023374691521516118483581824906216166070851116014676173724333830740685728894912688552555898983483088959968733728248240407052599050951261923877125714654088091506999431346787794977615453040937872984437681265883281709404630010465665406725517427912600875693131343938380792065949126176815167385051033344432502697356143386220277062390691781809893123706454024476448643887067967252560561310465147155195902844339185214705742739466131066713120336376449460439550481225569613095850980413565907546727087666941894497347677324241349151545610135491860393620743388873252515418972516478570294245553617408393529413008170852596196014888252121286149334362477012274816814035021564800084547903723180677499873881391543465640643011728405484219677584429765161759696467132988525513285741238894366581927069226685412335445132947376767927648301460141061076192906878987756334487095490719667963023536968962356609941578073935928490697384402757164261781438577908282111328066851622591729558031194554027084754849667565712464548098325748159179396454269282808572690242509598233131426906529787387514045209400535103630242918845785951143922174435579135297389111932724014941521734760936844254855161993459512235592169482304365796110400046401284810022967534529107639417697907220427383465670161725892581820101997804893194409180287101839887408063083922656501434813969378020630006009462777217782141606498057245040146662741902554738120005547336863534586526594578057653854163004508147413766247892290095788397060250847237926518053434933622765472678823222275964210907941157868541330654764585342918013013478806934619007100889019239643570396986852400699820082241387337878625465195338692763335152276656999339153999826315364148512396027504235810217939764719269832453209993538194020750054751349080771855421089492059637052039086524083358355886515518885229660658471796269339962607588790189305561978237275516749169309189081260906641307477164027326552610731237066033539191301439592462928049610579335075669972107416545500215295902897504756412150186958556407420850162471779444162535043558682917104463900550747356313920987764852277707808140139252301960891047146092226197499131856169919813052488620417153443423052028279948615174231846188705337346134352698206331178614855646110221513931272481744456562614674551004347697016187488897662330293229736332470479969325580364002007987037000288636217134711169400530290229216962283694339397455328528608846585410816071282304366405428805586751250809165033637546386414109582143835906029029640379371768739110269834268558175369336361106746393333246827837783411637622509024174538610001800490020072908663609000180982976472257067914619612262948386876283945467274136457802429717158746045843630841458257990958404499352977295478660277402423165750335675385541254173716608871245138943567631995663065218064877410031776490289522582208380269834009385733800309543159429120817687447651175244852066791156128971557583167006810482286293682255456510294448190848108732802611217256123189666025621729223623783842595791529767346157341019131998205270550270371761818366953188728096954703093327530039290495443842661658836832942963821027952131503397202402993530400323647074253843187499141354343979345498460378620706166429284248217085249546988847214699366514631216260626122653322846086739721503744943849784209460676374821625384028214439866675444036861991238552792292524324230834789842095385269742414282599338638816536868841124756100405290578427298552377152285812281089414262189744928829176333696948442075942643074734462660443184454899135606797837851117445170328670059205752729586798502214233459396148129142411641938082393106840032891622025436898752351592311529312505838724909117012131821166084742265579790351481018736514630885533165643558186002638221639745657091417705531297415823013190869464594727422644527114043779401381692901563907626064207464729883694040811033356969008322528174452101781716215837901745864265013919465244536005242583675994421476909673403288486238328066955554270271049657163754102117471057757830251885410853432390030321154489192336180122253170196859326048792756005565852674876111883122544517052793062220521195356796713360944615297472061861896205128942572193121057884680873226562432555081299417969340346698763148853267072068578648163818217162942895306139788555721581745413561145283781353729120765533920029980921850656008268874452085531884555914337975588423513800267279031544363266263959315909464472081355029683429134862765582937267135532460209575797424233899264069565302362018268143118772277126827141360938588974419722018909163108392424806133860239287914945394049019124573022919659168136473996387080481866730625034617414512787130957201721584971881192222952471392657146011195160948156721663495837999030948524540852601504205340163259244707829491060423472141693702481622136250866724217474732785679433820751224749206053076472200735761902114519986459156240748896826059095873339440986446395218508770255687578497792488955646484876138529223182242385229351364246388102147740451303607718396304654293017744423361522380592719200548932776395145838986655096060654510326128824691641827304749220905063703152585316378489629944293394918758745075785167206210364950738354713218393653692834642261804867265095951733993364046888806793234099177507633389141968342537130090311381419114990457053114705422430324607634119841535722824201616658249782639334055317722981673657368748370929510701235074252954652795261718442518915254000244850782281988392137478076605769458265573736357720316928635331329886036384724799935711964859669849153861938992738402388760020860285539329283471616116993818563969365231550966888865625657199953239503203000723753917132080130934189315287426506667108954164874597840670457209581214892358928538102591270837340379800051745600906503539987757994291729118003396563416268694681456137763354276114122327745045188456135367741488553841530263312749759989621007959842713383419798007447866393854335656964665972166607477889396264795560583469750652404081338665821613602332497426431729210227758613415276724876330063299210260845568872188569777057110267617634586763916523475599798940052646436023029263296564623158289377405703929033536987439190500216682830654616721161970512229501088160801929503425831637780913350232770731547283178470906016551360742078235211770455497453947905030056026143025808853803348578549601335016083011186118341882428565738038895790042718054781065382812468810393873418005121176312161135417390706483185785632710740253514144222249903740575928098690808075858645802921541148017397139694104009726939394605789690578755917487716281494399365980315642115539284756029266951513269757833605301938993927280920559978237557703171968202043631342934076204436530495772922349422581786300972916149687029435689624122149822183092018391633127097257129287240539232897515913592215919941507642856836416211509423797949054785304897040138648379075045164664659651023104566302038422818498505727977499647497924173377702904271020743289482462774990139289791793927116390795709587211622283592234818513922018930652739265344564345305382613588501409237583342256865889635519523033846404870945979231260360757974784550155651879601786923191356370312645794455004074427983990174440169366557210162942395109562936028685180074412742760875111055572887879141999235475787822394944239131696569434995992065248772441458693013824264369236222798781198725777784415157417708283936809526537451024886992093430306369036928428226570231899585922508119415776000966046424117939881725050955372760918076447553854466581858270301740579576190947784682806398349664650078346123388164036812818056920035024928977087039577364206980612083087131918895464823971337130267664640779415480291638167004277959371352173814466898400370637849444288558505394477660160935019404881163431603349468723397373424041303093850059176614850723368763022225812106461503850260276493424060305749823596967773037673843041275712450055834495946269944110880392281579190533742140259346359861686497164802273359546016349138832179770064566529052424845367499413206070720166331450176870533368148639658115949725095648149477276464469818302798281258510530639214528283098933964116148611262412631293091786766154112748367680850087790475502488609559973691688884767030068019266964020322268162818377968043821161527198561572874746689610957193058648726296136088121002396018229180579005126226480797831252951945484572645095793284583573565186680130191259416294423606969842164670156486279418667345467710462426074596247039548676546285117622532464536927744024420545346860945093051498002811606123692407772457969224681012089695270931554013222121575074912559556200440375882465463439469433068995888963361612710354398583070347682034631578799231048633984349818304253162902284554013762391523854033439338920018256523909726839319744213689909828608028448908040462818576250086782680211956137657260359633382596361341534737284600240913227641197156465305801312609013737415010933880781225139898177123791982401878130585901664750787526919825863828370248468247235486278203054486300282537986369074497639480854351345206965337763972171098618139096363509037576757357766729906817592270498117393408460707138155959422519084379816905732298649901216759697490945463895305873593379863254337710350648862885011511669867133994315120592801227591403907479912549508048418914103061017657325289531252357323408010423827730349574000848565916827118381629679533274979711949108974638262209247468128563732630115249526843956029500577075545564619748052046386342639286261082554089154307975843704692436853445392946941250128516506722110844467968930416194270660693536043930521313195864912540508408593946030047247133661472793132515275816889575856550725538795478736804164390524808651569079689379704334408914708244792717916336270101400452336197959814981230531621279941453079910841352173852770431513327759428329543852870116292173921049408785954185485524613928066551882027616134271791221703347489720284168033102266739033695434593932789592876255404670566264924984159877057043049659488106256599196200461592806957504612718057661521178625193276275738669585635089392974748397136223559343791797105973724467669869989267794046770028935937968981636298998039630132783797128974606374370442195615550445459570031387638293179195385716483119358284796235743985132090875810654754720154697074489829880606555089776490276154917218271758286412435337740973353780668930509593906937381560456717768689861821758030857713779916348244508020492486397084376466795341478169808562264356192874905616255681086152777790207876013529823262550520889486385369640946014802772478334853864474870160096345463264425358388063873189841988270116348145823120503323321241684652196620354914518109559814018905553581392657051897993389620174807209967312120209309946735744327993466786795239435097099897371149485996756149175496603745803703368868780877543966610308668602905403214749049981242909636633405916540715327832635616328719140262845614310086569894305110542055254053786547719399209403558933584462663073972103257390148920080082197429346837123198629845768742617700598015640072779821044756464755559556932815528431623801018096755651893495182657357728295555344008438007063921403015980150664031314422907842861915900711973911070361588578627471932229484871285317396696569452254222655923457457195511611776965456320994276097185055320233459473225149886169368350353103515893877200771158474996171651971580684625560052448951933951104559603739703790240807504556176101962684212425950066901318971869695893846818852857995661199192288462737526822938747603656070561972024843055252313265228495815720306989525046171305134266339447709770085269900974818867888982782214392204985700606076223706153723210917778507759653371152354451146817716112055978386225107825442970812393685293912156492653983487574043714629390881315434829012398836762930924614098451522781117542917341156790406716162810575636459196913331050363798358086766137853357885346595635488006105525603721681819572227676843718797774808334557011967616100352592305319575883465240180508623643693405744294019908114279366594371139869729745411851177613311522324040916774515514347583271390935103287470782518766878854957342796211164393344057947030698651493019625812219975900129468399348371076035760089553581533854134934901340082371871736923096279908065090138207281998031750805344946913535040720080924772180389603273118556854375431071356402069982363590583890068206034690186885147007090558360940142364494373052634555993149561969724283046821398130701189164530973124800332539850692232618365774753102707386991781202309280445273497941831414987089354317128518892980267302762139128629055937499759527144926023501783705473732043508858080365418953685305873887932123814996672584908925713114780997006772339997616826769376778933447331751001125757796408358503788780537332212023771322859784417374658033178811887214245600662537591946253431780722586600751643764304214675230272697844867889495652541087078955985659929007032297812074340000703946511188263312266371381748940184339912552695871050810890847466674486508784283160926819943023546227799289220509620660025362304304925143823619901386703437064017250514273622501223444395968237733653131487559926362150164557937588371650750217968591282437902389448709705651383091857565491666170626637344796735221536599138831187507034688032402903618540311708464788875289221794532271239357219997486578202210624850654061532172634693107971065322598480940350572472068238217792800246940359411643472486501393052905857893956021793764480825268833465449570616240272061546400256294376710505631168761934008668313183387891618194586183463057783253691131906143988587522230782179927734747979266130206716147060465837827241272852734717746389157376242518851442343310762694124767827495082731430811519620338828061458247236708827950168502559110992293203144890641457280245271874439299390288593898444347097921357936182373292853563292374787509559453985492788121141401981906122064135531710738619026757685346320685341136171407663176536657800611144083997950933656053226285865789298286311318400204134577462914734489477109832760114728688786057173535372784319315314159230212601721676997723742649195464898862648968353527497409070123932555802079761786307206030312322517039139509274425913964221926711525065571666154736195112309434765350011042999072964117990719168566477112980570318558380430484822386003088180764413976297554492148249016024425346341383874752399923312051144795878741692301281105235605340834195290343877401638010282235067239522397230980291107243420113687284614369441099455160042331842980084403314626422644743881229007998011679384611166940917643047937491274125984835309865847153259877154443367035401073585339327009904169029002394767746918859337692602559368604410858724157643346220601837955957672130872387616910679841634486201635732323552729651320221098501240396017952424226696467860028666564322325747381901969216363059633676432720152805419789315983910655718832310547281477024577485317845997503315798718853385492720958502348437767545522252854131295307872451581463861420476016048321302630173375209747262441025622590940842338232675361260604628198528790831022545841731513874635057825269897811236858283863048260637519523433547382034088305713322353657450021666167295553502514116925542392742703257971291098272964215748607132106092967714200968179460431748582564178103859519981027412315024881392283447054382966081052914781706646166839623068110690145089204088428219956672325750543340216954855832557882381988944955820495654764049485947103804163530589619713369501978359232079101183190758868039203920157826836052038910385853258258596724099928662994754085695312410844308135807128129637457780008641804569839225421638350230437089870330071712595312040422020651491272624633256997664843456587387989723927183159177630719304956656311196651800235983884417032244511858540697574843280523832144139854780473545233639442594782644733551433234184274484667482045476379599259720630343477634879104755618859077092465024651544480947050729964420757978853131950604458926348942970557722506505653502430002322994651635300669016877709015547648418121800047242588898925990143998451077096297175186498087375101656376064939932709257533905751604740434293565717233065025568836822903864013231593238921541299672722589758531690852515667792323188182588999205834475703936745292040522963972655865096108612615336860128925224514304393691984625948334611267111065135910198085197730207408407483983936988901054492396795253720997851036571413338556174409364492969132227974447618634159125384521061367803621484872625389639377382043057004657722941182419150377788797849975765877126830317347627729247755989432013076420211826039077175257879590777799826297765262429935290957564870762205148167234518113580280828733541153753526716558960787853939989753992298261973527405860048016640003149472614956865179870340425844303160740983710821582726166224859743251998635845396056785903418932821598625939086634108077456880994198769901622766093422226780956485162350069790635958359380503478155089657306653059921220878376427589399274048710564231551887454328267809446656255838609537346712723710040497025471190592170099920204642959373483136868687070879188826187742561075139450480907255968253075450137510727438807241545596160521669283208523267382443154715147585300874511437753634027267570274533792973012114222525238666911710511206411376604003522605121621577970191305502344528304042013425985936288904026764969498137733023955502245957799989235158644791261448420453846141947082746686839219551611557471917037937252719708949228050685540752229625075188213336522570194567065474992820858386434416186727846073552151584670302547806153194722073737167859433578668206035236205477399626321289024027752973427650254096899902191620586233183419680089406173198741020656044859064866596478660048598280120672446769667918606242638694388810875585614037689206038702827666879596113844657816944475388653917645676182492670146965098428197037778669988686638066484515692428729800136084382912496355058164798041618454593424276621874158684290973629449903178064603667912243087702506398145252626662285331961213568665204732755306417204491127658550837661459839308901077516507310277376139571006903972371851039592459452780098268221575166412967540894131071929454550326399092697782349105274062501769669346113813469423926542539511689815690468559115254504216878904261301588149207369281611323432548557859988223737282680964375962791279629326886788283215343267315536672403386426148712792376161069620954708049445391882716132287771009382593921923000625994335759972158365571075731488409584675516907730082551526177240453340385889894483231387484483535566626167133269300639850614360542355885226912253389632934100223463159692040716650746872123508246307631640552734964212354328629584331061388147653837608972347620871165547441553270148778631518579996889508572366521748495573029307839084440040363103557504712604104993892328569587453350819002641532487613740594407243435254315345907364382656932192364212552385215454953474004741730972996033729170684202278262627488551838691731321486645412193091026840315842750592336056430638358419577354495465086962360399623215163586513067672316758174290341114581288244720447317185676539064466733656703459108004193585472360014354995618330151058307155165119296303009551528824818987149775138263584727441042198832850718649790780191720198541818695490256148191562851115058496501096656069323520049273968050159204196686930057541481535698997404093056856141334310079075715953110228925511217775139779689632796584532788639314749579948719525220293324279934594320615009643209704866649353066412146664983604607654976559705273287839005047032101937540740092693233101947632973166351285011756008522449878069717765130964086503836762920990837769011675721871597612185959406406243662446753203178731791116755374879564267225666282826825665855903149162170658535746362505423027307280998042448417291078298802422103562974523959775131840775617112921518969261715413421655246715546370838132593477048985032384366935087524328550134553215723052760425916559351718754636602901984669735144792932498321272642839340019729211635266869931574784037914275208160272090011340322803645916017476848800622801855052800630824367080572999465499849189403596184928207498281955739000537287699567409385402921576097538408428018835741950248598701352663837024437436031643365417817589604948442321191321617895341180066176172967811143579962618824618677753217859034301399037388990409831688551968245051102517153693886590461926278951307864339950477593995669645038335621631426177299698462985973872426208497377134660837526819737110933415783514860330053711855364925963627615189679817675278797934230419376578656369879123582154157775312827007608756125956588104225208415319543703281580309249674688780405375991189924417161126835649827796145163299674784078879388835846288986298571270125400846380040782529182167686322998363295098763507739175194523471004336509029849724858489983283396549438687474342235795907614726281309024519318748989425912001221498084317493459392402448466618130761200153301979209528069680999634598265265642898384148095555836307126450243417483899264367804600494354044141304536958975161178096900479846040034997858131185213409815077768723241418986999485974593551827195134717564880056803269636155500254907903600043437009057140865596806247466048229510238393535306417334321023877934996854489970781933392454993517787905415730963104209361611868426395591578994145168787105551995042494994801035926461598034015059802906170046500407061913016249895597384603039278433156520400290742404539214173453943844508352954443899463582033486568403957783507787666385583501711633458166831291034444227769586062957099489114329744005952110340588605887323189012395380439085544629993230115197822542466125497176570445542369365937778864451044283543319229387493186858295785744046491782913070003967294242016264000199836748593195326438429202869851627455309320411019853663834380424049160265120106223470682344587060132095950489715624472723408056856373244094477176335621775688759775160637159904289614581959435018629380022571691391398666025521468912813220712403594399015152957777793795713128603792059279111407670485168560971837253836884016129593487380927667895438781724584557080618242508069653696791347306203449022157752748760896127471734306411300159088200100248863726631976399335010025214020737712862234420138401488718901949415354400787948300110588959990734376145659252651322853570854593142970886488959248303907106638169248700536575817871388501694358736634520666778714824704739937804921313602425812310553938116650109367029473402324631393881948659066545908339131263448862926306569689574780933558801933061414029516531253606625154814644139759403122315898970281171087774608795658018560705596137670933165279363334430822328935111543836886263228880009917140947954026996210566328359560628487105628596833276896563337140455950870339879095463016649171613882520289393509116103218872510431377173298569130978280254468634856867928164139431110764557758490089475186514764370203534807435785745478524014784391088361666867064128294803124185438225209493568570423830597707105012960925653883933470925546108390318228402485567697577473015255067977305269253069426931758429779892046103041427141247280596040931185515481380870451944078872506529414470498260763846416708741596791862623728635490081771306130476366523712557613925161890104351850331840532729274032309221885373662972288357220123416848166179292796851007702124009183515392884251774894753584494093570997944669449448320790789856031921846122795527270733872562910899577868943384688778870319260788033413010286248695524665678749025239356487953375330757664847428326390623098218591724559800012064176793724202467271524392787256841047989418620355719101675988074547260103352702682617569650316469774140547433375800123712533877546339176733940930467106457245817313434544044698102981822035535270130592264590486452599011457671766797471006140800945132172218822358617938864813208066983179708755383219363376997771654532422703307144971315409005392725367848809182610697730346229754775219164275098020091326504068779462513311861502365979293089381812455670644985856559312923049685879319455361478895795213842777333684501940063910950935253290905552422221840604209800951795776226655032159819442393979219450909610901652682472646906427966997568336281218185360233384997601556886419704354742382055032972375349661110969581763766540524840312605992397808455321161388755654950948080581550424216860853177273802711914490624331433170093103918352838926992824904857288363898619619213423307437488374323078231580267881413632365188172165014187739320527216103027687600684510491260210897994834186347158493491008934532689448963856423966797954062223054221243094133205408525000077235074062328370424925299650328768390137416666896570616264572560874343491409833226191541086795399553072664823024590645251609295818132862664226801017492350754073754052510791482384536729741010057184390053095936065166777843395254480661958100957339281126682342550518660167095112236690319659153054157131034925158114698716547903348077069602086141686306887787590574499537834720676937556623597806687611251053673582222699408398102468545087900103735991528004820260561466261192727384778692144760986220055465838289023577228693727240798931499044731139776092449696043717717162880352038078516265702801304329031279013234465360922662339701578639057829295215634998364380931917114581415887684579669936140173696203191581975301254936928436626051458982502168304334642493458289761234073737985953238714621727025449528286737217032018908509296907193846207670483285145809544916987363682234155136812261564065255304101915556857658972993747925620986127103033655377684893649371586400947828067388719087237040990416964496101071708220570843569460787981959696644005786337902690467102392327482143596890743560203458818413184993316759023011339587374883652759918617918538978286265602436355817939122792091568946515601870171274952983651396191056033106878985124982897997786226220124072584054338185704729466588943464705355165581237677626208920511715793828450296494535003478764916994886989351875934620042956827174534424281473278539239814644344032863630950486871725656832199160691696192376679074569649727631099428381924850201158638893994497379794305466703788129990345989287418585656057609985897556092657561201458772395910977556529528998386402979545962141928030093409798659549313134066615900474100733899566556558103858014134081272990288753561749549931470688733512618509529306420759902769389958514384788864107050554228589795680593245081977788037026985078021495622603886676196199868180988459892509677699998196723225768652593126674531580713142758345778432081638505975291081657774579557943276122796866584486370336570247067734630789767562145097845806033164784593753327038357897067254637435364537205597778341799656652578095907438711612668994598013072263220133282910135102215023419086715806123013266075442994462353536477729510301759620346801473752099062214415346784511906061534398374363443781423926499395086872184150846040275791950283720455863440144487987020108406735114491316102982283695257236478559790665044590590088447590461360558369820991148800039010734326479120930824046837732808241973938473463094556046741662415551479950603469879424240424056527832724747815978741306728194308093463234124866246287680401306625615929808394290778582046917053000780232052929977042204547463356931527396923616767789387341672673186742710240464471876107463851889068660531853881285942535745438709518850477260705655769265785440749024576609156876729150831004509871432928829296846671566962548731383576464113073772381825163088716191450219256304564951784500903125819689409611576814664028286676902087101430711793531849384832271162629441551697330295988290854965859585533364749980546300322695379234145352313749761961643292290058893468488798459341384025389056589882107577232163739492828439465190120773273407429901090834593010765194510993867336453821649293576168850793514974101024222750473250921412096540400973518876126121604815567620515035008224940604648945683882297099130080147792764863394920890676673519456686985437502324332043032144363222372598967151929854696175015581467476975153975341390709569262785338560980504861595855471346962270986720533521449617257923354234646390531848472596791479600671014290114061090473421633035828212684685638000143241918852420680424521850996111136972743125073538013413443632374703787411728552674454846254723138274866028180857637697248169809625868523541460361255915802199997492153036503891611410637108057022731775853016457324293289484691257172298348328683740317633226477154632367105873338616102232662031668632619894035611336480030238070661135142607411159054313786335796928332649416508805464957436488887271689576744455520434432295015672610905939323697652915307506251259846495580779847107618754178209134183441190179145617848653066282752509359287840538549418654657987384796692054848703999189865520875063547848824953207625174120293882169740536239100554837322456093908805192153139446633881639086389927266353749992588107588366178686318367072825771459519434712631376075340356647742564145737015700753242326627395347561876685250322650907989536430241483796417908748208834807332270875307635165977203987706419037050177350000502062472635083528180800038946509677803259992739889449604205320167780038123112075350487884842753832857267723802535817473129458656701428684444607970634726127683732552981295536413286824160460836410010121770106859310120983872544291857962274667905111877967599414071097355521563953114026032716684681319481921781849428293818518486374225200359340336026330304351629944303300858093532595632701846671795143155750236214429641682694490299532389112693586865756202490831975321020101302253755884130473689204310990159704578456441088999328720448008830361761611475994217549412328631627214004916230181301939707950656501437533105847378017899327725317196145951030203310941178943577621055646268459172627233443925726989451883064752272560351039581061106788147766579000737082323885907702047513791904287079593916005759515950888977019626924660886772771207896883083677237588825952530138220593686783032093072053146318557120515128253888963458950121552303653392411772986641490123580113173530571533500814232959831588667928172987599450324818007681980278283977482234669129452544274438831118500288044428935131755483347689231154233560306027543680165986031966714670028518584382228377891759206916894003687111875482071734076491743382681220790169695178967556498927013987895759508186398942569358627833089338832251340796749766519425838173141384462270579494091092127690139241311890441614927424512328309049268271200132905963497259644035810082952637529944667913105438666804866123351622196008274992558571073166364115464210328630860411302744780495684656446255926443634645332012436013654622094221634101803187765272144373104290838269720419658454427881709176403864949835453718632234338390582869867992138953759543939186109148098927771362341185816290648518574862320506008635361077559418231264058738190813542237139279362656052281867232884441544453968311088394053554050635749180623447939439765468511739702334363899853502151789656035630003258718073595694437986500417937115004172785265950891129177337066306062034969909376735114170968379842906856950759568520982076594471779801642539291120555789309921719787368307025976063788026139588467230595678222434243131946847646500542556857112031159780985989079204451399961743996140694363529017312205328989159396652481026823141466000111655385956017391030001074023041001371613973190306616428418700660154752267825922396856770351019503667579946976292787297352900341602724309110993717039698553789198941101829264417705242310798739949170319242839338485641031683351919583434793401569962093152099351823490778446907799649463291534820219215304749213116345344232416355946280483058574725797099255312944394573980019978632945634869248821515168057322861899612632264523061669374634699087941998416765234852853654862968824899438542461886218447909429604098448468037471407107907249467378365052368438176497645352190057639794489720735624218921994863301148397275887166293667799854593133595851023168839390473205430863905749098311823167773026547908600745460955086596968827192332466179147723840378827156962735823770462885859870424078715542726277442326759801118194478035635971202331513212885121022969797946232393946503350470612702358539732990468330712963167236423391824372071894153388318998534929768058241579614989440574797681290884801797777851052575502939553970893680402987935160487873939952131588425951299385953026085376221004135674412016961723292882363462331097924283652165084761061009992069061553095248050530220534138629737706980841207324528108694486032374368210260331963787680016043669995405741732557463269612715191411471767383995551688740385199554686162576425359606705648422953930380077209982671495079444154701914057114675865214628833191634498764129431030722705628945317032547663097012210266655050320956589390003875080987556520759433620204745403139205380802027535365690535886599365670922003293866923447281242556306693714016427927644746151913194947509216039966123564576759278540445430409115718853318379630713644712981083269008095344707860277020083854702468230610550570387746639603144818394562415247330778695997210109834483154031215543381623837620543587487315705818777152511227465644618988332524851347189793789373807581582342120164143739661366952075902959703507946794926305555795909063515432183139036305255530351562633652209049123593022760689081726876889613063593194628424845331339923525453703399944533369538706382949188518635659275486195662095317420446362615435542118487376578887360971781322030178875903000228486225322359335238076737006328937823022064837692851811334866272893488240225928172637749673864719938928322703223523878634868803195153713727271998994511384001071407022111884497917923648189842640758033624320880007015898737672302996822435655546780434259616504172400984635127764194350038065231864272825820366764745101828317180283739279303107424759476100570273677618740914210616040343442110534909595658531697107320377298868789517866024866672456554034347999862909507575583970208453411138256426945725641507279415808719976936601536863263333800380828267063313698276997532311323254517611953689819865908482475601553171018773624867713751849338520672560250657670508473729576165839875759462673216174134999917243914117189672284681879838192427735597528189549651015804222793987924445171354089345675141754616331736002631105782809354149776985137146531418400362342076822213369493184784884447801123052170819885892632176523202987478214045620361289171269851664140747971846876551721714170105639429288553806319441090506416625623147789898645650931464226662203428914566115769827663440072462480681778101299590953986874013070560822430957532868874498610374109448607739357427271791766050677523523696699095528855945309188936402923944378440817573672520835337562709118438312768901607318328235552009353090782955018342689065208343736943625000888601869714649773157368753140957360773804164162126514803978036085037288364240545474389590330086165892939157682120525740432747305327381196969138668682125706740704101821410590487971969135910442049458321990677986348360036004803238907786079462656786089005950730098440502933439378458400110689288702221829312538461144482031119353952105022993102579893780690398811882824079664029327509590769460675746450180051498505011329871205958640891193181389714586170993830074418614733065534611559398014692801264689017982213481682542432011200987662431467919022183316768249705858644309710662316727971289173697867384127267944231138806671195422500214938847595336200163496418633803447163736245613898816365898821419167389040538311811711256130618630784970148195732856208461363737106323438034221131054655791277988821999605565435592435415298783573034750843365980376040467025106248104929070777108541914021456476299437738544027957781996657483422381051986953851910643089950431870660079210001120032841998718139988080957854383243132159653399290601896842283110102104391353947301808277301876306982099399006307964549537641530363648840261342289781043892675884972567744803813277050031836267739937814015825927693376791518635204152532496060032966822115243967006036367790115566652128807547558764597965575963156497161340946161222106305251562068646843911799305186839757235842639134909197754494967042606677768899008061081448098640373717573149047073255234219074577599125819585617196414197907939583914908001276228668693062338341343378649846139865406187657656670279438883555845655837556080045304693065497715402328110851815932654082482283316903259888108437830870098012361310609454290401780085809032936352942183240178442896234776321991055300551464104562999581063900406769484403848677319515272024625510202142135972105927348066208328419296406338658690583376799143567958534797798384602601781264594345746327854196338224976353112297004794239740830272397510327212743654051782681922586576623230064299568105170237391704346006761354623808663633955082525759899886086247048917787371511759106747369230874141241773309348118447993170573058273953545387226298691164345046614175593346988813270576547774091679692351514736414796248119765412606243861379537486386201139597442026705041810077632020500917598735472092461068345600840633846667213421452184812723920577509731585523567196741741068092685435264738973266130577995570287493115583927726737336405872091272909384036980925348176052664933489507608731374018618309241582258355216468451302664929111072718032974453319086825126936401205867257005972830317055687892040204992360958923569512571349078611331422936599176751519711411154088504320311027254481194650553914732996354660074295822736862600573413096909209304411992452646171241294679899887059907002322676716682907973200453386653951249578310788208302015574628791338915727340257431468372458544029326386375903625533521295790486562067188390053217259315377096522226144760824796541692928837926225321306523226206246780603413567271946853444652594298625043047928032078377582473441585654136927741729074494156275787747802098598075912423292456396042765123921685990602470666591884829796919573734086107193961153130247218833758804954861872435275709031414924109507392589325626378586970636822291177394905007549049108488850037900982473869640662208885489837041363347513386369439751024417503393281232281254011064545070568447006016118665288777784246776391628753348320591040331826433931763838659047159637886010632113712670699009402294624425297938829822831505572397159763085524955806553054071053084344374323847464813946382339222219954731764837574616411678669308804281099066487060979839489446215298419529660903080252458570548994301367929269865529091245156933588575629344205999738093425482708364420961112545689866120797058446370144372942532249579217969611089010065406658424898747703086186398580841221369751032894714035000457390154713949374048838182317148277666094990864278008178704527761827393515806144964345155765323307578095456183726124262111722290517294942770187559651428075054102403149750379264441421722394287432281187512342108961473346894319631275614889733463894789106106769238051183653819553539248799749711030156823362339068810722444761005145022215360099968700799616518783397423511600661606733353705837800589232238317081124034817753226740852956496176454795257840384471908096527348141843762954016544956380239123105210767542091376601096350694854725626528911962782436833761126310680530209450127117374501768824737037577563417359319658283249744977129645422125924943497493658940940314454625776261096646477851828399095811032332027791179548807826416731949652402935597640571322395581756075139022333259329339041652819195853344886788092156871482705873420338540688895716183439077370744224599770801753739163790915498855577048876002793214442003699194993792443193752473683869899680778797507269632389785031998214779724558758937355247220116254524995040495884035432646100437856263502725053618632995658556976620930193362828147794106240479704267940877389324779017219811744469028850760922930085799901358618943830755388450902207806607251884651707284953814987392763588657907444101656695559864962479266859481268784942924858791204132424976653172897063541697064033893167242559207095165727181506676035152895503003592535761846919782870924546405510201258717907511160807977343165885607283336739801334810818967285865977412317533309987341232182174720508727455881166377537686974505939599206121989568629031465568819705210950349377524297442136705339968965874615753279414251824659901718436533165845481509864353804347876214097706743375341938518129054216264840579810146775767274301453331749546483725658686722642116646473352972629974631434807995118716382064612290994053711710190173779263301457730667803812629299693611209083890667218591215848948095870885295287527174988279159520312567216156712602937475542921686812880007781620466992806994853194901055305250582400485012456539078926734211214241186315412209990943856012246393708464324529278748038261518859213974164457508058013039618238179669065069876420725043739945430718003758305872370249859701454736443035076103738013659473417809108917416687388305757003787856573553229656279443473771508139531958901247135105011681389890995869229702906064697224594992577749746877043305263113294937128048886431927178124120361466030836642441698887338865235658754643152672159861124006363070838249662384434342531255857154022380066567550573910925638273958280940739658258383440707925438313020247205953830862901937722736633337632050075952200942137719886101544237113735527361598453591103429994440298959854439479088201831728173569808623734868848974158862573729855294665865109730283494098866262365781301897653282254798857803202580083297907012379532707202655753707788892384470935031729413436414013207126602145404586793466971688394458953905203377005336270595407346551705402802784455597154785767051043294835602488443914344479754845862518238851400721274553037277759536733537384283751771807823846651233347802919715698075002009781580152441606215564462529276483859036323119040076654572684166442989121376829868445675232593814383530621696864559571057750905088621997646167878120933769348535734750575457753843319230576270343422078572574365599751387010419270783938686645107566886815781516206146129053154845095482080601905132472421643298397306608156302026740747955138022869496941968678699962513431217432185385098541004192503444519251879142423398866265665645858276115046788350797449572583297087097654796489490888024426347938799213460683700012531966068896775548948140997872159802512719664311195800898671854691663283581426607549199502575740786260239241101430867576317689219966856361353947509179047417351124893200614046671696819895191017951275024521985182937154744660560794670341747751513034553604272956846473330811941207781274823381704492746479559278988069076226812812067280766817089317244456375359122159665059703851324352036178189390962516476751749212329566852310327034851239132696386647102122018050840527055081226479146938219317557892849173949970126494175310997075185453037182146587476585477200178004455194378693046300562072034732946144753674120493606100287340848840493255056166575808061036316857286326158133644480052046473268668435777397262658519025602734511301014627119182841301176089857572792725161564328191178293165550991414823491928195549053446896542569576594924428184605261570304101629518513671072393999907976588827166998392411554609562768367656963287362319220110169484721864385225680878355938543794001397810710993126864307287802107372529949006378327265661951088578850186050585345915722379010321930342175498861196002837187066355536586571894594176473644379323880437859312811987275718237264030552841853138488863229023348639732389771624563190112894603377751141700122116937855280460581178085599856732931344228457672366950426712019864875672383993097150181323082014861701279924700027452629564078725087894065256661505051275335351926708114660236437123866347726173410021564736291457894409058810136609575703502377955486394078008607252163707434910668109615035750121328587434361497283565532703755195182149013454248581645332550438782441633029939118082814518141138061826813786432028485182077471100309420428282749036906426178727557524377045775399461336830172956614470616992027135523920959594412474708440751855227166022225645703202481208197847055837642358849982650318933186014393183569415165126878722474869807007319126601576673309346521319804275710480924236347445487111168196323740800934161599578319096063996872403545595763380498841080817513097414718312427023109667465804735456657259438718192604592269698374118744276356055782957839377660616373932650398232970048726391897735944719528591768602523961493369050643710313666642742436026164502751085923868965154821538111027986050908629445215725782892592407846049606370793464973133717978473389466883570452612792916945133551761587506955953062356424774031181366470645650576607507326097057918713944488487818138098223090244101411976614112496423859810599569356629505330148221730213735116306350324775980716853662878533072807178690924067270925614554463209690920494538560920409231148875958663766775789404787561960380436080356069704405879771511653921015295909934187162707944560568036798767982722178181009478830751958779938010062483831482561332134649480406527872474573838757200695389143167950602895722305575807864209012012916628659173146295454943189946051009288292753898767476388112723909130256900567261489846543481906094874597979069362545407055385277982272637444666432435655739953770969719131772414137022058278069503252585096452266414776015339098214626686919887524153518842799286172829175068555420601953015433004541517822311047461017986565264413238926095878473058698687729190063959849052240109722832815221265121066285084803506110640534265792013667495755998391793942723835143747289154466140931025826100049351001588949760008714446716805350532297277678100416420706292204084190591449769336712126463538548358804589589512977850683056431320358400920888330176974010849350085513859338920011224505702767484173628045083298939773420030568951283675935451391349625717126150241796793731956990918476286328906456607617541348243692482110676878229009097602060200895236125191398880327966930816013448270004068184364038059727757616448346232532869294476496365178552917264572000530195776218031648480972512143049551503470019320534059228312330104609782954166680366619522318098923956365002328061022005785680988133569605518827838777913269630181512511777376171428533095797042540536842336549079423265037804061403565527713611928499184309373591575529796959347851837651686355098677077510254264130086272203794626557425564299678539984092673986614075023484691689774090020914707201127068688072238589701029992863153177065954098944561379746269004513191180632717583342662722638541164677253233936830833202180691984012884992388447906115345260235883779529549591982605014522267180089224314345919494911476668458853833874765407224710698242322374256994302922787496314309565532991381886434906032483590383208676755182118468936877404805473817954676791403131403248987079978568352257978608459847803120940071927231076637119460615251436768193809220054858300854096483254597533690827644407443391673410795723346592584742435349669592421332935918866169254695531774565624220077043290881679576425475870398244114904250157612937903358990515255435380989460235102607547152388230150040904670527203347161723108514072176159418148493232253806871214502971014496575703946494582437892542548002857120830615673916529770728689153613390246596593132583006366607201789705897526209663486966485634543465278448550067096541685050453315777962728347421061770305561582526164190604301000906791291922845973749121235548814067191744687692562484111249251880767853357239080410776235343399726634707593797699791401530350860427894103279700720588004846845709128753741043100662312107035687693063460003608763203428432101181873608841651410940587657679444500433412943020901624747381040170895400796070585831598929507706779781086641012392874187986422643933320255458914088150424702172489714543345490386887270354734348932390651508001765093798191935079434847580747347938604964887179581500235040121039066926855952198112156218184383362005533429733781682238304017575351100284878896621175843886551315039277332287750729609173403980451252568404061550370207848219276649531420003518475359734956532624193560348467506128276263942122294475008992558857414567592252927082795702066258260245201361019723024212180230765787848069685566622363765319976985405369605987911834922102916778458417063870973240929499058384635739612049130247947222480421720344457836376204772342137257908919595643435705154787645151367313840884202268370492467356391737221626142460791715796437088530580279486682039060436212522231758499505541787498140693129803292148402377455750295184689678199009701611675710804629640570025390613779139400730635848858839809440353852482555968633999638129855877705659673730930954145212968052380489103356173471006852614914058974643081456351497453247201148336689265380349294100466387066918204881068286960742178123860818723126217484288784526224458311013931603649038791534823867712261734474409281608927326277763718020491155645341584441541219611680845966841247666842414363271213919683355757761048362306791711182290135222596164939074909701996997130799957954626357193965553389453260835921484818056651928785723087606232929274689933005050214129474379729412021725826439602368944047244922974470362537346923708353800184439780576889691162398863479309935035451057506130681745365293502209621751394839279377080379554154847730429441124815102552345698564831068747820992244421240617836978679385166663680859796422959306614716200374237369440891972552191276068032095746145612321689615594244033506389638445579860263682813398592066488127540551747144979804947648864714187476172493480895298966531920457161630003475630835720597735388779755921784522355888380309211269444621967743359258528892252767201740103428389933157555037981099601453830698232913084699591006009825252060082796150769875746377434635480636550821843467338055029418799774751599727309977487244740594042397990975495544915236388961020984755593292640269265894233080916255565809267538130398629815221053610881425373307151677383667878419019526839559510083506565477509146824697917939000175307778564134087177685432824967125817366461029361898335111353479743818505539741927398239805224236606295832158667953596397216543813202082804094857757505083845251076171432355056421943566333491791157194929497997710773629034542391857585208816388874959653807408793125218424394488966349273835226502507512683437182655513627804680709574819207833050882653471934539055681153218127380096783217026316295271540246401932122104358465606529939740143984897441020141581463339844855088048848729461929227053054381172799159105604445209343589868543177475518055335601009040859253763883930651524508166008073295592203948768486529451642313148256938796174520922308906284583863314999398051117770795313513147070362843066941569558864116439179023978982585928555946628789365368834411686812323870394171034273585913187782748030346736016109398247634052409788136276162356568467388829117015028683762159799169053154650496642472671655513829572288846066721644208683189001862937708971731782759267751023658075856515680189643047389263230500576305892273248321238345232889373652302332692048621542000476537465977122232374848177319137927813870757947106855224223384588102154901397211370067417124499927551360671822848705848036947141756578330710837944315599790192999329614038876552334759016524104784292676599079549990187732970317032892302575280618911501591062340015222644362756020072962502469347772827982191623717530224873375732475338577646980768857594715275710736474433844188006934208611007982273611185350457713304333872995045640559424487859078650224625974228973967545791132886857223040149675772631561365665397136746793530431431161319392103158385383575209445275302497546037778183266160417694667837352315268858174330775495051997645071295921502096455141128431373955614093370844594176207786128443221778558832225023269740663783900675658351995995260622318146134764317947872035552846592047158835782461404467233933124757409653416135839588354367681527198311710126967304951477619437725420837049888478608393342600458410786508496778227792704890096142655041851659124688003623686037416357347762013278196330373349947595507255097768709510973347459984919726647014083410856707084440726985864295106178224991699798797008203802289460863403587625094666158783432492232209463858352750542394298360633290285841310237450093256955977595564416757029412797818924367794355427209197115145978983394002864301897009885079928679909470033712483922010476452877131159423638642253747859803716513627376249024099686667618485191645400130537019565074321571393225630116738857169617564112818430144296815680896305491242625067512712845635647833950313074616117075269644662205930859589981108852169921850830197825975861619275126988425811075804052753414644765828286795982676945073953221703077825351430307398217583861880498096345905675363317982021604953253868538867549386218784808731595073794952575868097427605239735337715241319627142592005137123283409500919102582555402105401293518645000647944800350802683210020465000147092810603561139250918523689622686412132846006100030130567755167552292049564473425527439519461921899610368037313632925724017824323662796086353808728165647679726965696939032660799378591281784120611352902724726408427916374996342749423510452020216491200818264784535555512883279007053093845957891839117311894866401592382299403771392075325575451959862450659591140989219775186759074002601944212319055492177482127826835751236027203121289801535337354955448276092764561601618168373696883777784520406124451743462397039694342816274185046631922075728925569172259046778912744444690306769430380950810422921651776040999310829691079059109978852110450998025308950642712098053664677882973578034166996888169514258060279623220576155965355589890655291138887250640766508872830417742862224476048646406092484294568911353023506651137985088640539393370661812015666646506666828130367253204038681596095074240856485673837178104311247439975984493257808881222784322751685085474258220021386719476926831745226196269455056921473718228520624208779771810880067013801412630470358389989856712839939763589015728312042581786018326069744807565376707302166863493901584418065251063780680341168711122889388686229988088700469376037342757734327050784784883849938375577316631563577207988358777850103348422418108668898041041371411581058581437119999522937062576850387805638842345042219429491710462228671649480866184684034939169269918644746417902783935675882672943991188232416830084454404142004878949045854355546414794959751048857758693114650855585302930141717194075573781823821261580201027556380114028329011705930708996116015379290620488912529132349297055099168228132378379845319296779238005498636107054381783259857866948256433609739860883196726005798056250710157591436425161363310453509392557469347116366336696165381860686928246383546490177714650903758383537086888650380004520741209601187714760425284764087721119628495931070510255161999736879669376503484240161529448181418616029476488752071932402952042664856048083176710176145533596448377229437085946065666516004634287940809821873690788353994255581402650690268616934117262233140604943248849402053035983045530870735327034990129201533876233655801085047475680918426081019698759021561145533963859731913661270836242868796363785745719365412269260205638511624599913451874277339225896060884071069662238347240938621079974351890108653951410081381139813806669933053153418717774588104671143678535707548321565289070177436740666256448997354651376318133205583039070439613636815517203696896706567595475967704121862581539568251248359604119073202257566367846153088693314107456957154927940980151095554744615039173803527409270494922163274846898188311101604684101664458211049251834517178591716826711249066952208056589198787363263915545787425764917776668135859751627976486695614273343238212217137063069816375122627085822190714877443113402190588291792773072440647599824137651538180107114428945600880073037825352179226924306831099076026926176728979664497343630420972108503863381659552338064782703741992630796628781745839249570551465511284534965995425151403184386372106582336300960341832449390864038554814271991931516203405291445620135162033324903299310120363044061186796789359368663660098837461854051131815485051859509046495666791282804050250749356427328492898709425136516788085142302183804212014769512381059385869943250911957636323180257997345575109044498214786833842519000140791007677818334090694092087935985993164281290673954723757255461793665562372261349567145323406766442472970697070820448626488876853511256371343863128557690675721976359279598366545421727183437133302285628752778490163575276693226139022319683587485216879211854103564711785848801328746371984152617707916999474601591144227960689738903402709311801189135832740006823257404759498588885812727861764268919267682759682134630227375493518498668153002203662557912157908795142351510630372459025916747050817628162576738381558466995661108232208234271387126695741792702333692253945554826997387192691838843593744578565182055742759350135453427126606406234856752767803911280244946230011491085378842741854524325318506421246758263307652201002512046529687299217808089406271388939193776425174649319389141251874456708299909638289394676002744126107450019373725320610676470621473126806971168815545181788200300916370380765533359800874889913290376300441188807236560764790653895670777225686931454266395834639739072428999906595927339626003329182498144087635213724942105752094815915075171397006559346537520122960290738929374205070243734260141728027288992748470238706009751663506661910867182153001915370929989217781574291054860893761768667910579395106745168976532732065968333970628949783663169622901261634656817742826050850771501502848676385118245382968959403403570541436773293078849090189914761976684383283284112861933820915134405864814828198538823168776336651497771572895320003045945035350154377519953410801150806842038017785922935489165431785188650314368252951972872629390153842268205842329838231559779756202790266587772315553703510032071591623470785089783175352551399943855986341145662931991343815996306066024670939208571113921236328956823055530498009007490312878360374605581750471299302261027772547397496647799751290268110096856911411213862527835580831308565072851453998484454737575010784691115275336493449823022502760352968179580857528244185457298244656101843729513070596862202829215857130106305364192362637023123096587741367363626909551134932486929121984629109219023926535348380742097523614768260807730687942848623497282345953728341676674045476616568425449526159375869361754140409132164821653512737178716169670763793221783409690557211372103444451160740007986806945322161469603343133726193114440118292154880100174065841860698713388150696422324183317073017995272908118676426761717241498324445757591945052575611747875750185991599164176753037050058739942731517169560290381480043834273220305742864000574281513783541739064541870224725584216308685087841577770366752770091869566634832192758600576317599415750522104535618205150758326780655625808293830855688537688295744797587105938527051390707317189392405231255306323746665235542024769011224877704476505684156370408875744664113940436359794143232236859151789600240262018101420767378166963038896508661003742301978026279233835729923684326064068979032006914651580380192591180348912829601064509634500568084102691152008246282324832789759123721778155954518613602658785707666047688960215920737288225077355418794189618032282216069816992825991602206155760083852144383118567415390022641200530412482808824328310540643794162525080921721724965650807421859343028173907528684182495471245753694139846154784350124051862326672403753040614878482090175640593006693198599071056641322992227276358866423539120203207171040622999125080233760552730828425188361861596868028997956764309183941375095703337039065542708432034551228213603129900195350708056000362758860285251308619102480990724135163544717844900957198244305041887024501242879195084182593789822363027538188246348085365784001509823539797319306465763614682135869953911875139923087857063956158039891350778120974643793551485656423212277225409860867567726140943945354039728736058175250712061286532402583602140504020788380177994883940829027929633416918963801587443829894531132184980884275378694684075604160183677718267984228642634534539939776142347123640895978028029035204165884169985894763793879799002127858586730425035651073779177770655348575998692368307365585905904486283077903495853138887468883487164636687377082112285358515636803426482104990251164013956846954196900562532198861074128594961635280003251050204320633092489435769693554615326111744844597076197989540458769034317035677660585199512137174702958263371556923924778196098689638811060326626111006626019295634606332708521291389653950295141497247026559339182243926590801879023166804218016053494864828310502685415494051100255265643451436269738089022461484249457575006027358637989692876959986167722240907370342441372240748169215798683417641047879645938775550534930355834283564105788040932166593739300464045089675791202628660357409078786406886559555203396024712193841402852211902972413021118307509427372048170679507366836302490980558358664493241797730322566212206527058994368188861377692083444558394851733971057291744161192692806579430412788142690332158332897892140976764271329593097882861087665296988855733960365091550040115922791146690201899290528675496210290413119809038730620684081204458542424458833297958226860357384785163949475385881679991558151817726351968367412566138352144724475795207824822189428162311103323781932755048971267195802834116841398215885510035621524042733501205226888454096214012649886644461724988198560829692039681914736418465423535371403875160289311346788102322174936032368059494017385359082897407980752688041522249170524776694840629350714866065399935246623169387370988097859035053615626933703319103472133522171192652596334775718612729843602070893519045388101584998509474287656181954117900597418868571777846377212089229490558663897487382005710834203661065625427257719593310438805184850328983464012228134854367963355644768080318140541720324904757786332244062156647638674220045207617336482671348320177026622797805371655099355705202426428907215904691222526457371419087565128586019544312428556047961154255502656278680205127676071768524506886920676483893172394557863453990341147658146265285596495169380944585804061815485937891782289696785758046122759952784971765369851406319174950173119557956764526438728328891796349759828329538181762607074214596322029502218218876212224758226265219571517751185347798312619178825120255566490019326961502207152058904316447458882873652532195502463203748893096371086573594637958485823785804022790113265967226774920488968011475684071143158124749795835515524901719058482243323372717745268390016666082428928628097822465345956676338300463398564464474404023591896301319918513452995814656094762288662180772308793819692354950009642030622675802006358617791079990428582689787589713031930378635320707309735170829394734959630941441627295457693717079015423654156013319623089475623758810050548600139182309892301454988929745829365920164087766111180857423837614100512949941259387501713146615878188837194796056053054128155363057813888019846739229415711120531840155818599616592061459388741252953476774454727060165735099144210867242157961877006878690257348879263755990603740683156463253637217064599907058032759578838961024669142743818492520543938347503557596961471991683790074732686328931337276982733306744586900413157996364216486877022892062011098077077993569979195058804174214504120063050336545210280934609642459708592391250167185643074057807575537471623911657086638361099288909826977027784381286818488629566984034951964302634095213357011441947206107702235103506363829115496488251746234820345043435082110517610167049594568610906530846022498272872120415180080217798902918602593413211855893802107516362418887990685529609087725136209931682386179163703745061181376307820202358429089704674233135788997468543630293455037066347909518695962074157563196249001381056395899253197293670978267928591220171469329385764458800367163527135108111910428213881676453113709861571870386682626802809064111079881941607609965650318024726502689427923168083183420400181502481323365235101494145316794012044762788014919188004454905980980245758612634866350070655196883575015369310493696823604769193386368172054687456547307551355670590096240167244023513112249943187514440945843096781729905486925460707753877438767958229589367575370489299809018836242542123995787922274908529755372138867569103422801564295550748713207864586113434366054814606087491955424200201355336376513950586513736173180231880422266846117415757567732331503076734737174088815267670362017206105461018381725215351076859838317890793997605850474086690777815325143221782983017775608116124848554811701887337223281184770082909167337069259989982585217259239379489347296487784986693309386169519947508996452490783722910352725601385720205770540652245009025897429874477038842892727026867770455081351271258142569738128255681315998623216625543293061237158899044768516192149978982287690478839314712979711692060307493407460740325673546127331154003940872023398617165522976488484653265638760255409857027422030452129142813092146317458533672653413531328321206207044161044164386431981894010108031929195945147777302690619337780243195615316398240037819854857698059475078106211572548400403698397110843539307203723382445494652034808645390518420406263586799549964172744319122895928682343930350470530162696969534208585256585980652280394458521924067797607423557190901062359429746239938283230156286414522201326832928454419137444347671431334645766666781582180287257266728421567725637862497335011346842156155532267054721157378750204566800367651759384943201116997626083068004379799934615995982738937042701519113085222643793439485914593915717258918448760946087241142899684619414523207630182347952921063866374409416890811284396336312710184004425532223334964020905198991033023266777956560519494966160439090722128735357735022566036762528204674724738894182094134943624715191189841259383554395129927478096032789600425688333695692115800478316369645469100186563465543934464606388669850991080262915615435564291029144977926663005274544262726485808450305392760061688334860398983873171312732005470412635754702722869325903282328782390478056816413856398759713817911516512175484072216504915668945328810808719095623453356600331678307236439292964071832095959354337877348283064790210039250930595638214864764531449602731624115355960154458907626790986802155203620259300113440758065549571108323841887645735566303807100635676715731070823778044417768624190347394647401735385844685302257619574815638092770593327300546453587351066486398950322085666321489002842435559755574099550021667281339029613428352875509697958601179790170093301703495724707895980131587722755963905931856170854909306189456489879957808226717301767701756096261436362618179525620734922213676714499640722066127320039964884367236246617628479690781577396188447377408480179067294502744146686851771558509571245959933658336680813376649014819997157500665342037705686327275465142986868571481822249211393960803892590167193519710814349365056586410004318602764494842199861708555187695215361331046126990119900319848514407760962556804152302713809913191519779041459708399002955934992798172012205269445096915535910971907563240724598370954036092694395825510078063836813461171750442051338652958745394250060842801507363015000199847683913347710604877904176412183671166962676892624092164410121318799757044551635055022884963520467510399772926476222795101947127673205236587060197752011859163865212957950120383642285314137230959746641787271253813841847248085231265729856220611314479732042570477809669194201094113162951512098805744628639786110935509834029814000922728176809644883749264864388771566424334978565117490750855247713250655914488072001483679337291123397573575784203690712541665451468557358294602742727787910697511048716145337969383527119487819671988945068665804060178878886139280847594691704247547398681113866922052510321917394769019899071928971811074915087391046736661033469290538699966607662347879572130151097061355336383226709347930609287490497597087851367707465362185467395866379332886950155716141897986643992987138728078696763895681208199433062689025449176467129133859193790781989690665039183142010467878773027502130585105749403367706948019944806039715164920020698244423226025157247842594579285273563524657979124102466177370212957038912735020170127127183381070778764405760250099932530862031902439537961505439863955509906550924646381824651489919580497653485729132638892597844152098286101175475938745500503869586144098780409169253920671458378353310725453014468093924285924420227365326677164482194367261523958157399675697981396356311145749422085469262196963109716689493278422950214810914220755015036676091555804436322615986273412994659291442232168401955588774369524021796287504341497520490400480519876384792248127438935627577342120469374192404279071980218504797250690110398247748731940725357111089847311591625186734258873266974641349525770995448172665387020910865122395395011752670652589202758761562171569654497929473914389006214980278207046576749790745022335618467311057958295073249320568699699314659584187074182120777243543495109513151753845634804115585440648800641647862623836871078256341352458271644718285400788667733980821058803710811556325050111100261440782247702442380324729701458012857863034512673289752033759168658385115218451773467874212071309320311304375333205396602319498839657418415831708416346204346632284874522004450193905938701622424319202774815965704536028911170992588013736816947404114019929024378546110786715639241249863575967929801022797940695492601046355567739519633219310504306083193221098515063880774120914855995826536520968243130190595920663366670603029296384430112609926132795172041349922778574489315680373917132385326426592834781422063194059252974261297963906710629093406314527168047244210041550757573191673533340035886976346411620467032074000551591581059961984737142444335809171082905027788725038325263739283430075437661731808717162499098838238191801492862812916935000030989677560309220845932965996685352111191727071345346626620378727033128945602516392550237251545308201576186498915251699496649445836458752499645951315817665296779378365395785400956575880800757043334817093984422329589724811216780162925386434472699109759673369285256479651263527785341668742452183375669829128527799337964390126469298406000166329918624697320680920400079599250971139902570680880437721616928575684799826574053441483614553551618042507221503312824612299221728695281713121286343544026101719858326458734232029523747598932450511741768457344572485274043945674001246369212535835162536460135035530903672465913551752776436311550224116526755262160372214143282746671647189808622466648475941496954422090907496965163092228467486418991745115736668279449358910596405809918665542926772974307597701817716333436818269568067105694814718248526217674721843519866474608136019509587627327209290265422940083359067578069263066219607458706811012014643406427790785591940885424092578292062256298205705347081402738582051793211681767003407261677406686899018255302969036811363512490395905230667015757882944771003732822199382144976932370098230065644165824753691177366053603160876161627721902200547691994389113609275528601265804935901617394354684271470885594641383209672817475465131522107105332252805606736165671893522417932165269513315993381101818601065216859026856169064949226992831697857585631152993374762617875624055584711733143922161231999127102220422749925550187166868583134712215881907654905387806633038185533337332521896490008851375714152956488213570529346138191267148295639955258689311031545769073619999691912740863852331340888459810166993724560960184885610793083555311955391463835418956127113310449347629284090819935320958858174513569230446138998148062775249415265651362026012213497766581441126063816729592193305842736716201779600005235818612516635796641512295791487345815515117320150198413295541288039669501846454254425140970567731611394256873842848986469404937861511407549891985871413467330752120317134063352080555509105803198499945938887856880097665991533307976227985731802587341373680928248472956117658225066615654562097497842020885599299669374248388843618248140322075520579701909876104263257083291199229050224257996408956914666107973665377813693005075886305574552583046440908604627537992618289618181659069109024524267436755864746768034583978307209726890811346588014614310907418027462883849471934803998685979925656749413344887838906704067827099964226608155004464753888573772265124814558511688052249996361120243199072797368029687498793942682497031310430121019590838191688410227924240633811400937666836475729851130072463293022541398872617559722540984669316828266372581853486565109280697941298243690632057667028141292372338294726788571399724581928966187391469685047424295962103049422806881885577462103850698876473745794103247058224687354020005080266109489210003233736484515916191496356820090029042120083623065579304561066586193297821941737990386144145085939898323357722872091688996208574766508693083096996174637607270626727844475313640655454976298293382512624463563646848891113633360910058640059611426804886199336301903231582530923493049356295466211831497100965560177547891719676499604075376931231239252849104462723203634296951630151519663378300784939264148392844961035383956280372942042168135386021434314950328768550128300815460892644040042566811801619956857853163822196905225957753275540711324407138041364001982773594164767753842297295123988242743637917618316505780492793278005993843562203052463143430035445120665710639053977765435130646570765071638312775381724358292175303175369531145382835220635245434970239510141544861179688480122542610705026655845332538114398042178958070768982152355769365287280456453683187485215447120412131332694139128022101291771069543243246817042543033806852382853319326013862107435931023942475394513355565325993415532427358286232241591574990996046765632576110229072018632376496789793557103015041020480826678744429110039642547594545892262143433367846702607475832608817024321980465361455034460364756921853564824197365145762187146039411945590053730686069728438158912790864929513015500880053442314677035142517220821562840831402351352043410300891361860265259074280735867478547011457538709434171718755409649508290366540810068673475735441186839776297826316917355244638823513890940486561111118845947316713319270064965493344547266099920681140735136509007025481956641275043471431699001141274224730001279927530087544398058810763917456497867282784319838248355451399083582562640677985278076192151085832323629397634009799689142005798159622714830328850417577923747802662482352461449120415925828121494499574410638837152102030015269672729528861972396841446825083279926455417933115526925388485470334458008584075417200930503992524303709645530355840098869982843661342811088243862584445843190938043731773891668906761758710637744318616604838304697435314022717619296930349394204578197657034104524449892621203052387672030104459019954794526083571821901291085191946006630570139968526817073651814732772556319778260677901059249490587056446896230276238392765613415876798996080335891108368058600724368546526170072776995012118046075750704719051903467956693328720332114904151709401706634016520013272916475825180357635162075944488377669772914010558638761674942929125519597730352263511435041000135354166774560337246050774623149221027218987267470972478187995433667762495305817387037185214740327433396971083697217122721672561008585650444155507149112042424233237306690366878481127258232282555692953556048166361934524717921948470766792208169062596169364300065956556087572708613040072023645332073377226279153416629667588417218474184822790864268746069889153712330120416038850482922300164062796996711779878436931404771831214775436801402202994788000764317593092910136854937598504791489399955378190596099170567640940673678028958908346060127726757755866080372401074157512888308127782622776780846669641917769590693154967952184355883690111938955064647567940926267248479211004419860984624916828304718132977061094436476249364960106418038258817244362490695096739967775819477491608253670272165716596945453300993875334588361317264061648037204730995195204487994185724438086893440531016333518985055070782396062808915733717970651070450586001857253622956821978718248959224187802484553247738883809207262197395240499915823795736428560377755787156999749068748335146596204490626213938375520746644592482215250092192205345974013922764547542559920743401696311146479489555760441888051404634522515153064789310336688989671640866034268335173615735423485865096607695049341484452618360059295549669115726332333691097179332417833349766403264619811797667323767355085580804573782376720096267533208634987911469148658802045592564866940966591851466644540257178442877679618102166281560555744874365696022266855604500667242086331407537678546172525774191027584676208849329673626053605491966648798667690026475793012414511546706464740427823890042989215849161066085170168227516496555779357451947615143131109434658413042740695049267697652589493306412248564130110576055406628137992506731618296163965336150776333111686067995150815220488431180473115023891520795728120787558654045141555291000713335287208003387797525833898110467869652190304343063740307906295556775079945373090776577695661142383830573454805974620353686197240686438350244028340794501840737284183484812196093064349188420897233170234895534888600966470039598276945843181214360213255223896891145802471784622689601489831994216182542070310337066589560434614084953354317020904095242220807533730719421991964760810229223487763093403879306572331583419689886267788119681732176882333347277062351264256447265418815824129371175245688445521456353400341205545176484759057503725030448687722513707564941499948672466722923915726113880596671311564425201893042279325024295697344977035187284879714665997186120090224614024554261338854809542660406671042543685373367912269704714935596518985627737774725866061464712179431976958177032026246214279339111411778621358484571925397093809525956222279098297339995517365057489285937140698582412572605319307831173035636792433754747763518203324490644104572362368217585993590938986837270352652048971248353207226818116711000235690562793018731190879127518884185676442762606336584903221597566255011158978960764917703803006510301217428932196900747353936053546573875206932976217027803024154343681652913741264313787219367425713363844426777636567996415798997251435146901703931476043866560259705508016824516623389463500478689736078088275452443146229795328678337897487734223294961674678929203951771495115418521409005966437291605639767504385907755070337219728527754858861476274394684982577461315422690651742113094546192686044174308365554762407980245376548660836564793143020906535597883841214358041517776720329503532630002386054984348647240283893459340502321314871570473348717477343687681457549655478394928858585293906468546295441580322576146965134119036832883892469985466673690535226150672976912003262571049287898429961622019456753075610109553911355393962019857004146269017536928887710359954324714576958911374282975213691336917142464984358590706614096557986762832259756077560892869370589906620027296677541843430683634593060771237688982512028118703601063194018857251095982622140907738622915466884230893850483365755204846052247282792182071721013445235595093458116401552679323753627949635128116004186637622281724105271077760141130838321437039180064208389067229021994945978273979800543054911082999759786422365089461621592866514577209524843729884291313964151345123168864908030432058540895334813768998981249513159364818803737236454922732706001452700163566773983424536716512478880446137743771092952286886164674570614257462398437745246217311950323608184850179042130946526027085418516696013475188184834896639044941612077412071976786387973416186817578274143940064693814631939468173717822366586281703131821380025909391343806772664190598738875359243919324500638684966758253225235918496478786940848426369234546387951454466976375115261862485237313644454372379289894961476173317156376371780691067139076763724834248271950155818799613114860441387266307613061221094450227968337348283141200648475950109512770754163193515313124835616145492560963139777052149206516195402151037932033625046861805661960833889393884603953567419152697918192940773688097852036596765649808707082556700400138713048730495713577369625357622211163258368232329357978477002437182336049639988006739112438816082852112111749598938462844054443311956007362796983811957705151307213725434807739450718051396806748771505416667778530960171549063361133354404629835440885201387531546341341788726548528881994648237647972392238923875776697954037297688505054311134062349214274472305151145795929458981559139578741100763117559669828764724341583588523069787453508006117060070201536037158718263974165182893233618843737170786843591993418448020452354501976489304195449891870385302215773809443114660538081677286970561143750705613238741980684563911274422888352514034878833552496302810487940706112453010524639895345730640552081076122822693047413354643118578990551806952593819426832731401979957481424991788527345975711754878442508216848488629528210138772447870504590196509327254096692005441616682758778302783515960711711999292455818196765907208257846477200471377779106584608982710771848909052045423226147912877886262045349210385397082489520460708475682957402725859458759379070749400377875161802174434676202976106635701695547068357028864090482913831954163551018015629910334244585254439126056864235922858466638416879210805606217124485516958696197178815982389462242829507085526375425925055100613101687211799411245784925142704399150488059862447932444014913787165865731531256960614503821073498598706418905534061008190727207785076720722029814461479839811039500055154004915945109669342791822906061568689011186231500979521756074030201113271179322760723304869930875696821898831512461152933601560929716210108803336688310927775516959258772786702074331122209823704588784853780052415178154219972915570256458073189223737564293746995083764914021435032448235896408551004165196663510926995234664850820301938645239758426710685799335497832629695604453990837233415855586119462987028337595643973995419636216231188229493798236134952703797434102877421444496888158436974366593230930756713975250815994197046539744966302027328317581831282813506323678137586173591199834012142354626112343264391280329291950420697403584766574656925445536369033646811123975752588234893005510238763892443004987152781702324754678500528085775594576193074015339185174113956844281965592872412894297199787665737945173658003073405324537214208917762442597619594748608043503196020535928687361728039930747172412756507387006611146741127045022369113938493508245746303169247108421821282424940761625232772367477798870192952977266339261601061408391887182745326833552103361050579348384899253521633240979714755161273435759063809982863521338180386120413025681088307209577482217467219884097794696526967200939693675597737015807381314573018803299580747760605327395703960926604127358844516814186771345496610989428397096232401449336024562087059826013603260055681643140864758520973647198389711113747630582108698907893266650396651005924382350727961127669475814467538193419239294558685837359509510415130604424731303698475669223134060396286709449934931622208209095404106334656656471736114889733521976278887485479431195647948114109325107339676201256799427220706723491560105981050534099886433241525040804837265417041955703129906153155463636294452416100744704991800497764051038486393917574791987736457801989046217596166326878009273951797879752266102458387523727210976690304971611695743023621772018053466998002759842064573785353666535550099169080245582192191292997680357992994273281941183595053004285896459701227938945183910766267489967873739853078985511821392379491213767253448322125892380412364875032597096573530283909849509352489881769580222218768124573313460166860600062242458469711167627942207989099203194339725455346213061361715612565508178241163622135089667841793054392698660137217107775899050962043659840888348770604050871519648634777317182818387028944571237654329773468717489906299068092309332444174156604366800303464004272777478987900110839735067902669191158907039823675506626705548541476652299344817372881883050006685734303101502604410107133466444308601681248616188855202041914168265912770405905377642297558538018431410013759781250240655949382784939408562501108398950567024895556701746527754049308690470056068532855983614891522211503923236156037073582381289458634866979524714508443616926658678840538187933198247182121118523002760263322555734729330254079689028855356988029482640227151313160051236236241924824069558652253039499423540962670973618551300277962160823729153686820913158515982168926511955096060272718882688189304582657194539986257815605055194649199642930472797961569394933441905924215782762069246382006672685701963014956610657459136041872854823990944660753886013810813133213032164877062743542159400155271691591970985901803910097750221933283020970439577341812881241626113540578305854365627738108761217162568659636709496926243248697827036957764969947158488082113350907903927356220732805892629245657797353578614826805758832355118153358544850355307037392373480429785743306169970789944701157296165491298372111951006827016977824032978197310573452476962533822203949470404456684570227679150891051076808894466225601865554276049159555229826627342597921523127883174686321164989134148607683956234727997644040927566836316897701118401009071933465443238151842298491101133393905721446922861743648831551574494071401679073344965137827908126694955966909066286022161064358568902801202830127709514103545205522065688968393190852702026880041236377635685573755413695852180159507914037866000629428123868056835484095953357723123005852042602137678116604291664205774292940700070467258620378166667316410022437737806813019609356923271460404586322654741984823141501120104216949942874777413371961384381767966810188499470864705333611803814376269423615086818142984609520813576101363804135817017576285287615856676454962675216308470399100932796662800449715510399731136261408762453765732489857915753897965198053689267624794798082302780546289868343005187063736263987852175703873528229265828671969014778917884710418454245609674214765696938559005126941326690330544166390603959370112624368338623950236724198775661908583804025898014682621145874056337146442371813841678971741022787054828849015130992927485315579932634162921953018367473390021480924387845513383127499412599659213467557359295447661851611849995679798697605182201223094625735611521465700548598625889245672941983061972193929360496046544250268735467743916280887387960595264067338273457129722521839831160669638530119632121437842894540906836045507946192126749145910361085035137884221092783248977891637749834647024879413556674427473156724976386053687952455937629225902035668381854464511942032288407070558455194221006070170674266906169612362453887383086146677583639610181921640707093701336679313128651658163139481534328361207864332019474593624422409424719018732387797812640997865377142865007902031040335760605480445290864093641483640057898946733173358333260240842418698422242009658912882482860227435840545047675747429097147167194860782633591801478598063326880614818866160540292739086917029582327325192673843814895763353497041872089749167902239680812442460609041727705520654016339122693097417996691782440028994335181897246770783823662844694434339920520862502423303908438545368651554945675230288531010885560069148869868385493047626124879803540301863079145302489568046259680459017487073114180111532809481365052652796606665942221425719623075727947286017868150685341792691517233489850361120764801733701785747889144883415577815214370481772092355462657149322994869006674539094797225617229320231794867127057870037128990817007841768391763206248094699936009651301398642110699914423380063309794709181498237592280724215480042916784354270104611533224837538096684804574842905228753335145758023346363521412346744888800913245100120352233850546219079919797176940769182425237356027725176089127877153416278433915857982027145577575691682921239306499051675758742712278317320776455225613080944560048147181702578820766431146722609140120416912483785268197906778159262824652807557866036387220732474030582760662912642571683904200596162812928119385274283860076946465754502641884678951919786743295970515458557668402928014194867501643515401830030731158364455973568400062461651439494936372845355745441383633695003871303146590792043154708851030040795096288373941753201087163375410948468215848324938081974168352836122955180769867709151052023339681398400495757520167202669083089638100838815621290632474189576959046202940445080469815769907063120930419123255486575662693661060113569853712881091387032156959521130295298534116519749901764615124250280350364742960008054117529107968995335863860047083428768742008162957484816699703255520598643460240405391365551924703924228893972167315710097715076239682117469813277106254136077240919709628967944214202806827072467884641441733321312232189203610576038649839254097313881953835670939395297030049581686683969946282251629139748683457790181660647290688817994284710619541857228984696704466013669118229638333000684044682095939226382549157376031401970364493573329820537935734844734833151418050777916213537186212742934034656246514571188963121661062569092489207182639919612166513887286531894111916201322792808036158596214963096765963464947828978005105325066760909714028028309735168869075684007619476728318451654451434044865263106408165634902330213926285274230238909103354044099718026578095145315802067784517701433905354401877282707015512067220824574463514562674909149491368193883789034922280535047465082639795481865764473902054225849649068113819809837021034007910781463841075740773121738827359438780145959933916292150879184393912417701246920195647037707933245627011180827635174855606208136902598858743150714123799028701482622895907979822796983915894392233769689426559766447310701710187471095922477217043318374294689978619399925089854226712533668231215411454908729102955975955342303562236881635619555313508394330118091077726198888158878434580868420101535352700666944247131502117975285651668497440588739177915854800675374492964653395384930470954319879506468923673170570942043037598662973311222633586879468502576594103200358801861212441556750220688040692097468197734902008703115611084944121500997687071686774418622023658103010926266161334933697296426969411849033257272077358944056375922441631963172618342750680816214293809433681226909418132719971272829651191928212887605548552736272004751882082094186206628066246848955916048852158402256056635773893906024314738546674907159874050063214464368040595328250255421673998337978812749826028973334559968465447965115308326534665960861407856550412013796441937145135201761878787158543089129858614304143293676916087669619369783270893689804292501959910242171304009656010526373356303212115065301497586731436839633379156715427336088682445842873285452296011016861624960603118983573527944696332191183193358900560719631781012198653689404274136634292023421966147125640037632734048196536533884456881860231620623700148720257350693151246381178456838549013769469815776903584257138265387013012333170166394521486262010880462370596040085291145652028164917587963459243496363816352425921577057437680862955428873813068028560854760143958335668259100743495065519867185641234169118317786748624626741778158790555827551276022980990910488125662051928636293921305542787869057987329978506692727031896651790969631794658124915877874045594916542375712617268868265962916432443116785589166218846278105385964914020884822237498450787715622783740474038391228126059238345675012384691814604261142897237360173090134363983012031096204642860292961100893804334308691248430386719575236292719276026841867224073987013067386738691248089868849596943364173288002056890615255122021605157876750799334986850007106397093148396783834457943400012437675007531912144907371676666387167167800522390538540667631805327550003605539969830156744022883384105623375857384579959664215685049606933175710762707508433696912868503192376570772898819628365489966620906555989612060493407242455799867901063207017748331472417346997159477068595501245674840951075020381730823882807726607628364717494948475712243919325304660764827211175975135029640759905815377365864151800312208781119557096730089333793508367551778313101172122600003655312911282482726059558388742077512398968996706939252837271732249406283715625972930804560288672111853774981586512466628848801596168441794748199032710144371804794244130091798249715006506354401408592421894455299484333213276009273149251905141076670714938557861229537510288947103606822783376230520086565582422992549560975824589870036936107625536000353849764429901364020273391227883327943037444228174562131654337000441401873579791585473752202811695176255096923994209836532272070915125210803117636160892505025805885102672425212367351170023431986768586576108643701373697626629271669201729632708906755207026573177807238274504722805196817283548311888189202292962327604007191752594376850843884275488511488074227213561711656484836007688069985928060172751730208863385646168448017968437891892174302130764980031530683655786006395822224975666551294064350042552237945654709953781262147302941746331238536411577446223893633326585729415331937755601686303418268571324062818819137995737294668841803010943486630912575268984620528197912868804929057704437377487352689931606531076545262000062716179087545333784759894657575444542149256959146162447602411218126738744052550252963734941530888430017300620887431139515432660903526843601303568906002860761489737870413311233801827537982746630468935634509531720417114648072133034382465601730040554144957018975128261862940657237946649121204878649227269030449184887831420367211729619341319643483930522994140183207221865664705060194571405722400924066888519382840860816846007132844428411793093407798290889847299464921465476403292331754506062243019968559976171785198692117540084962598382870113058072327882086621205815911761037782609175742611179975401271184660766911211039598888599425317642402814887488773179045784955016973728154840000292668829061886656051314303391895193362696792249647501572164621827360260982994506918980419900948526739368384733585448990621058570558337131053678801136129147032664581539562129513560353008809566929051207198026641435789870238878230591191793736944457770247745500937262997519288795904422240717276927339617861762779177350752116254730004880661071069204637634100206671334826290474191968309776919166919710486664691156842645492472250067799050940757712195385284280017264038628828961278154700125924079505437993813030037311931490303453217014278575020788795031462464187464518776462291469771833648028778471714509330925443514988154822865727125370205277668217592990155654016354301132517471847414323513251348674265223341369039133679888898870475134668119379995271239888564510288486331108704594618392271623074550044757148352843074122875289487600939869548660429170732843924739094920602968410398323734637756021232766443813218444236989365490266298761384378801204170489216325429229703485088670281977553557131064901497634907488355282709550160878472926428676848451593455315174616327482851024398868335905624386639165599413484819717130613876883616838184176712406033597729270099769571749680169389056036753626725117141530684205517318006654998227854624082052217277008752189271275388809932311016821223035995842738434837759482829955794252523778855464529760038075932738644319114057427793455999270614201419719460064455082791295446514149947027537666180821687486260007791098235908098581249539442429790046497563553307538397102702515838648514383186141487335829626835066063565051724607513948190945435546591913292869303478514835925834343499355681349452819951736582671844031367736825187635713472186475224631132920368980869833038317846955245119283686378434048514695717197352240814601015719025318514314315606643606129622479228651812296041413724140398218507650121581759417420646741425020670605241178984329203795330595219230877031642245266385135946418460845171497088613965138080164649256510791165821785255560011872719906544133577217620298303628517412717670153756156694050431673611075407867524267771025735187305788353104111796894645786756966529044943756875228248345208161074802256506195253722215099866448444366670812542654713323740674144432948473928145233165949626330369070655041982092005234193214792950666596198401273872031260467073949904443585796260562795935564736464460085707825183267744188956987985940911522579749923057500455099134866881964646612679324315102405607477377259329446839884701932933464647385011991668835955975615871762953419719048377761419041034496485068838985296380749140682308500219297297612096050967039381610586511648093076666900872512995851737336146632222087736692800662623943445317407489622735770096184978281999266724929037375973572813486977191939193418997240321568638360406785179181731418338776466406279410220934628804502506892605289108602013374114467448993915818138339078240995516833035790445217853165758505150043940326680830292644917779481678817338117398814684760392772934930735900582418939832093299718593999760509399891993040537776634340834683664215731111052533905800276335842383828120372953856990343510051439782421007226250335154952694030448221551577493974544097576168937388781143225176138071876526904774804337042259929320434449154817582523320462004665516243808572942697286810940874185010531456458780133050767978478546663215833392886702612078461778133359077198053906600943833396220779137672670946410193533062637861700725748619370940159345801128653786672453117493162536386212840589975814990116179493117131098715801921104369011997306696385805152542020173733007416891079481732169901811865471833981006968669437408561405093606500531690181386184380120910739284688043815639290354606983221901913664198551960405153763435185918188543525474527890033858696389542238405539459091657703608197227546619661443903734697183934937678304954205958847065105051521373354169275440332424421148027901350042028572903783063474397392372592447027373246075103016965007736055054727855818517252755601743430453565896332083105568884233850868530269460864840956693601268532116193057318254650151562702131158786807545517850253390869210842058645483108165393908108634932254705139382121381774489726575127023416357707412365358862381426369890646557838216954082656187931797215264075695320071321978280941774830385880477562318893634510457173660452506598731584774324631888861242095365128481623373361633971486425893352982847226945277863371534716362489562770234444182387920614988168712160454323127508986386569948273426617912879342580406708767557769300637104288071171043949099226995525952916483610027877324154464225717729342855386551383029846907902607693754950757462899844740354108474980368405841407523172761153777239659584696774967746452796959342058884217714209585337760671124246832927631192460140814708258168622686054934774389333334991107948095192846347130425927007480861913163697086431952182573840525326711974341022724632186877892788501057865284307917860050029717778618489092444126923140898758342897712635394839756278223203161603744720035463990050818950697285799323569890461973139491213906883780835405769939628929907335367840791631747620516211812203675307592968172090655184185942538482038658859825222773931649751749452391795029804998150010821481370228642411578664116324441908676499847084082570471300576196983212287342118291324373442288022026407169490315621998105550089652032811843373331551771283971306754761622090520035267388127410176001798699898328036702876456585374300818942347195387585608683179146176675872943018348340426144971261983214030367185041241570770513624288123021477838844206130063013005758819577969364010427329082368024783153716276004370705097634608637109857471130912463221984419135775011453014555022351596758800075465978086408946645706454136182835344470725759737892521358642489062116092468489728666767286679730585256871624021692136113799397965397483392295348189532963225594459616672078276957161407302418785650007936128292120119231986939820595298976289329816419114197658884555474905371505872841160447473591828670121401929815159055240927559844261422301528631506392338230911473099271370225761517198636600172344344854208652502345359344629387585860812685241857331269094852356739625906767028525880121172596730483277198223261256916455606947993943080609417838376817921163232610531846295952580204045247682144618120862970050713122892970303112344095240234070009840309815124377312271635336393417732552108138736023091530303917440046830724132803320321887508827334685220320987086413144540044058430702862500372625872485613580442708260934410886629525194058301660636437284069253955183598551970118660527452635683323956236627901026465704415170518964974907330180196871884834122441366916914593584314743791923699335503114722103582790686226791097630761577729336000977283747856277499776448817237573557109236138065528216201304501921475465378811841860306210606325878567776811230178078788712934656030564749223935019898586682946485220240226182359834559248712554412842974832922619726967118379842900813439400487330490734779863216212418479825500017160487041941804390298940905337753961975592255121119214929363912732941261586378871079876087549357471658442908406848184599150576001621920587652272143905117428471327374831405230437889856336959757720390456850807206286743436957514010988797318492661697135754925858749982549391824544088814187525504752843185616376722554688242252300031193855297572689383011940236395715134847531754965188482286469569179397750689222644165366112119549541790087991278617391005428294680966321747199805193376750582565543568253777850239031040965175275051443818829501746495591169043847089255016692915805302402608963488663539219107880883272192105492252036876959672798563226601615066144981775116250553802200700095316777577793785625867284535923171052124132676632723258455415356815089304966195726390772960388396075559900472106119523457254475044235684977036588956858068902363915438271526242579956689044676640873212189091158331541330424743870808206466773732958161205936362887150951715928816487962892253079461000143479875730499801605860363478566574358596056552060992869090778506627949414657290997584641089743381099222285450765289157014545095327332830122253494585708070728150801934000651368596049100697934088209805882587664895658657975519328604914210009042588033240262429427391414176197802859086490068788696853153580246781372476999714404113428540657815464276564859531286221035656165897901237894854792912305408316010762350141287455545927659761198300144483475947287952488613422648447933423411818056637092527512840296431761697708087085446054695167278087962177916185762058648860713676277130921806630884170844885480226005719823215702973198915637886479677982366964010966056291216247986925426436652564765608590592193842932747760861021509845491993970236474417358735120619261580130461278952077704430985389583448562237218213934211332898072952351883489146748345560729359637594682006026967781390131357609658818111650829606538436638962095863490372708799499486042552185759547191670274796278742273516379773165421964641563989509081371501832289378741183986214366296709855897301713589414190063339890739821355260419449475025083643283011458151428253313342014987955157300285872230809023351362436178745457333384482700530704012864343803440763258788147500261408230560091371862473434310576645177967842559230375756434868414130069429097685818242152602486769885433133455026565489239356969364422176488242090575509761169318727019010900370231093547301051777180045345671940160176461095983760229953289050054889175671663089048725839681640303390634809381845326030674800065061221452662681268137673285164320923505243604065735948308765626282082965056917700425846860655371977206838254142547245361737008272961917852379477340665304213292463129482530543976163541916112514566491415615205759610514687830537142082684074315669480400879690577985038274878574311476952600186881992290111614808903757646688442721648681575211022932013501542526412716792041637675291142739083760485023666860773379759929599852486329533839270660551662413727396778917544831596762150079584297428685718725678634737096550202376461658296599379820225956646173779859286306330250974023261051163907576372582380288337853367209463547856545631020527077603480975168918946922474963587805989786614962583853367517641530328678482821370524036043307456705906646750575964464064446915242697260051801445400669734835902397637087338157094474695276401519227689358676972679154942726252187051111749411321346258544147142146947484061604444411547199469843894606679905898024332267109128978755056364299186357267488697475603056933328260171409615216713978992069144792564934572700363362854315927569094637243873617111413007403744596351280317650872529326742407940550138584205085500507241855137646259808250850508233228387540086991738077620437033171368847629961472456447032269217170236233033256316747486090988700214663665362421628358798420648404039987013350017605855914332984859826092660923768389204379266396498990309852694552564268433411361881202091260308599754831414199081761114773881706076199366721617921388867723825436226485720982255543660150619931375183709382329728656771008993492694116260188651707135399363872016529154746976553129043186532571185344515846828776893358757135336614374903295934465389155419654235034977710414192656727252595209186472363283519446108771989338246566316968651463460645356040569757376699088065991048581469330165262414762899635473157442476723110001718373029872419051325108429644385585574972717813218666372418263968839552066053894468998151869135657793384632614683313892719290678932715932656781617313906874784124096443606501174718241758694257981836903597351759153546186422445979692912735323256751007421980516980984333031417832624499148624154002417615070158776337944491771751527681567150435086442416004585711036522856975263552977129587792780468779412033352179811431934831253728988435202869101863101538938643983613108039271154612177884568700280401344657723376419471087264625693332431322210385169114818498506199197998444369232103347498119033345219460489645288027458698349941204657938049236591435174734860222316507114378014079229370737563691362066300003387554129654887960836619603840987476542675421519804961288113194899030943150768198719548141409869615114305107487161842572190070115583533871419933790924644780542934054974544754865599603633394684697733972460438425541897038029809797562718105350539723582188465320040166358601857889420087758462676027019761571477732381082599836195906063611274588260971943925931156937424488025626697082611589689662453057997008445616919909095766756157677113272083946277150792282988657699056155389166568997622025347250105215818672489265625699602971629435238461961878648209986323960109747392822540421736067102289324739713696541938853680230071138850928294470995839567929122461148387060895610822686374558800340359549663121997924244591321997525994514049530092271907276494297000809249482294738753923117489748007328616675407543994591765762380866902934739953118753209496305797508824499624524226697578601877067529383170958051474115334883170532868167462020972792817076157285014102174945450229641797248542734884638105947921808344300357288384088975655597245084463166317878414706771689748328829969477813492451881200427192828549883622850515568083804912616100230613825441097628245161365837856362367485924169109470228245692593146224287200598821444634765604751968556256497381663879673491571389713529435072105976341463186546949991467168977348767053680560626392243852337294369135545130923289546933569839362719700531660151578340298494278714226094638732330037313456742352464589638657757832448074140829355267520020925797229136592256678744294112887504096925336517266213824891396804072108678835675289900017793256905002170320742450389072143082000062109563130091522295843534872651310131737033021681287141513459704235318159286252563084350595767968766439405401909254832207863047626049015659212044345466493697709349202468786830748805340635261302450006555391598257253899895352360361339930633304256085188227245593749098282193734266726277512318809538299784380690790981932932862190699968644746788078695938309693156541292680657687244544696651303475880037120619952561140491172773346417390251274265206871466631342225262984946738959751169868090211258993695493685298389472864049061515307369051983479208376433424686175606060289893318976906268451615257205518344640705595542659402939400962881907907478107444625239779990692316722975983813565486489072690177171925848212742856839141586421922491504517226365047360071454674109617494441361962360389888708630806641978598137986337092451566676954009159185630618791963714610151020970219210910439110341473429537268229897809795124366732160885112491704811025036928462459947575657406219319457716171574347009117866237440893753387456232401796957852999531770707309379387351209939640168006162801380145302362967906610632063665170855432615751431178932013464357710514919104949956348145963010596054359908742064373593320442995140287777557707739627457161578225745698905067985640778248958673427037108383053283910805872938249431993472385933083273451433213590433454959961618258653296003587348937197791789661827683797119077678189534777292954231391917724276373186436759638060989627809404563470541986130528321793271464789673677560819809215895843967656351190001176912287633934280464760479188989617354779587105121899095794668757628737149180750752314481774391716730268572438837554644896740095534467371620539764660952891177855044040548369149389598888325110512665761988887815648283422654133019347433632424256647277849247818955403432965800050177093116890549564705743488764149197921370443436991114999412880737014320605907001792241441487407185465037152245589898334677549905209702704035161798846293486880071088172764351195471699109155412416575830753291378350237218602687858632655993957555804437226747348613400914273059666303208181529812239884145730313586734128542459003634219454941987638932262233753651872643570100270122005928823274372917548076994617417583766836691925951246770146095274978288491107009838270444424192261354029929395725262224298430611507048420438095440306829757919625501464077928674120820727289545161978409506607596707401321054507328485949028811443043779041452724066159755480704269611869449035425914190728872780712846503228206135381475511846877161285121385703057401312556387311500869421286508723499340988098878235292214068666205192292702419215454675113940514752986997539897451774847981734760004794434834108923675029463892956025419959379695545856594169380919031518678636180901679816862838475811391796453311130110533532138146626952881807307628731056376771901713571955566632919193288069991838313597637181509635387640947425101229939536078038871081738402476577533490065367201326104990851880406332253302641709290619600921440993793463082487250047270197116430447327035568143959209396057783945020581013374077302732845893642720445676804215661835227073937815107802973645778778501422903930094585294979564500308170377639171143182393372549925755205403388932903977301581058696013412231210844205187584211795124060090969304118374171748246735328123298903121795431980101412946193803443665117637003344212278980568982081702353135398286392116301856217280229901775866853086795123830041527316254646071902250464405344283352464421470729442253618255218535803573998247055315255440841197864041942376116662069153868846081906687932534888158708764905067257809625927663150651910172921961727811583054409208230541762096439284738834702662039145065533027311864296387181669764923864853860077089859365232157639317046737834797626070439155023944734050193786996543287697553115376257473665131864359523576170336877819838380617260308640452926414101816775241884783176995631962545644412455098928156086722010463918050580882680476662954499360863774159946711755827994068828517512379626042998043944316730466772950863598670377796937252803515051823338547366783606053031096135054684824535402660572971931104949524927606860878785625149899365404072610475589210566891813499845367561272373030838389996312636712863031704154105158456092159946570472488936062177184210638876723831562149730725097074244674327201404623789526100893142399415201453122350007747033977928338738450768009993863132449857007087299802585732344987588205604559777565376795160293347163356730942941207622223622805686347022321888265905165541122438103648775256974281059587678407629605434742399716438911831193273345669637251750867538717753186762988949168596558152182296854243537769039290516410609593964403149035177878640962912335581235293370099613274054161515507586402111139179433363027659703537147225828939973122228733373800979561508772749994796735167448830043366679386934792201259908113124934837449684941060678372811253188492172331047249717286196765406481994686455453968064655307800074346636516818340075439101480932696032606783998446219946303283853463812674149852681518639528740823715921170305856939741091088850743905898091339991354505295879155750682978510046751770601043338876757111109086873165975542981663532179189704000557852330164622162192089111153374538782856559737005700357234789045489085922695958841143486980989878327393264622603718248414485838281423260380346240183350993764162276317922123790493138570727909837885695417465298938034583583748626879111489728218172676235817192104992310954918568104176263199484408228340233598789265870975022769906305318640330318816389601997808403963520341345361525219756228602235574327699323692359983427249108879396053528597556936307391923182424256214186915106123301659482489854721811786171520185083672184186086163855827657275299719339366752053339022521316409824666601647669542863416037393719550475343502910215350979128616358963082658166930144648223232364823200360948678781720449926715672754700230251019560255075457746984605002611573571574928638893415706363868089222288870482643904660734346068997849813600643460021897835744780812558594902526171733732541902748348186364759748378388497683733867588201944865433259238832572196000694753317702867807898391295113517929992623431932440734077423867132728868675899003781999192355611809887490132289499405465474494934179929147706301403159962823790753337939305407512613122097980491215329626572415840339279618950409553792796806199707819246648896259033173896478284389657534516253504415334282530921659905486636228620454856588887120156977841286849214196758050843874380450964255579892977023693593656891839156163936639694427918577079501294895762011907773151984851575082466589568194215887689882028824060545613225985865145974116082106024414442293599633133672823335635071722249461168008137102971701565237454983290725448378670612441021085189016561787857121946133579808365558200019483501007084535374297349073947252171666858171545464481166440145308715067596133801382516208396880739171990308365782289370226476885198530520665211693029434452728671751270821907187779349640393810586520866190317341949354468382264808875854041086510417166112564395547518079741993072634944963329604992645655605263619262197911177332368304656849351035895538072901101500315868212163776601928063262989085344763917134902404974933036234840720852933487744779563033100238391760864295670768585724567207600229938094373753533930028647965962101376586856201023441944342190287488441361579919400448009824744334034868651037361476911908196865210010105031119922225524699718440369595600799328123838598722643605460394836904030040525972102602434900711580622334478148634648794184499912369603709746486259780348441554507967845548475002775168136014493927633136065179422015644678091596403174010266993159286470359469510689442024247759134505100504658646157993642905117552418759161239824043127814782735176309133186719467433626509416439649317793451070947811764475304813728723451121305274234973278805639521904780582911832557295671580083173677638001456777264147876447104158187052266040571603301051524628487790912134248717476374726594948091210525620203178717618388659296274542400877612490403240613169154438482053763130886487583961750155011871903741901603683428757351158892686643819733747942869510038205783296790144889277869666788430853675740741394466835381209252459446696814353050483118799297403024307994433333573981101549611424210155931063753504059323119579804941034727332614410052436572225528821917852316917105165135552843703425495676773926456962761275511880459161994622392902967477441197277190593429542505107798173905101519649101951089730647007426460583996264424311473123009992783020862168079366894532479347464727119868255788074167311357995475809420311557053531743938861028881431220440822772889200707281311239585724466141160754719833992234047777660502939974725147033411531167720943943442514515148395902443966148782924305886510146806843946386637645510285270539605155974112644097589053646269122325628519804241277182935522141472811780952116434600524336449534152190393292629441483977649741202948666836815847695160756717440582888047924254924632170550175581181811275939691938446632330532032732077497143158032597240809773620046653977783544324779733686520389408239707356345494439328424835027852321296299475088286141097352090782203699810280413745396657874062110212408073965435160215477667630838262710440237594655059561614071457608667367961974788878691165114201942826208513953485228239968190790877383104442826778776471335062165853851157932434585252550071201205257529576439511702684320814525130303545630206980522627444594009252409722240281505974374657579888850428869880144204686313771507671110669198357543949635418958298200357958011514867521605196042747070044198939552093957482971733955905274445483806528664373480559164516328609459663813635027608535987296480611662340289842177385407444175272462482744710258537740944264890173650256704377335072779600760829916447121173897968832590748064806825378253054575125683843180330058463296087337774056459163121427523936619692822494440193005762002410062972622046487755454290029255412810256901717509946530151914672118290855055120743249913372600753045272801371731109949326138603203768980235623963255024237038823023891169583149384993745657411303416287123377034947936490389834979244317409839271993879909385628686607471802648138148548250769159014698654904355880068523798400181294515362304462090041480535570278996727485323153957930229579328109207118975177956379858508821855456777670399673185695551732331524012039035178369156779337593601104014474846134464150523356095333875870410976335837447671810151954799976467554501721792346375592115000998574565782109943971644368615324937700987559863576910569356664779161345290036214704260244920098527910841498626642521282794817873854847080753342422743554017567737679593409260009205595608555659930480071645412375172791211338804718013732092467119057841311751256600560571448507426720408551533192819918026722824096796576694275663971530073729392934958133311085962661236654978093921200781503581869767144408585797800750929201032981106068679703371407975086691766164138130504334023463930884691294355003194164096674748556348931975274616279742282255583037028658043580903390549806986117764610649167188636159091494586830591752662288704513054610264821841990088390530234489009804864510363253071086164747154361195786388874965134522694236319637818642932465839360857448171146620914504702465610721539627350796531275506101469157294839099761853224336436666563238451952562107499768153983474574174541823859551033622551517980758999773398140321886522433940388061949294063572722669249563137087797079974835581794739571657166979315270394193131096666519455725745986101293473321759903936855455721609270980437168279224598934124037641576703895973587040851868229728040096194738334167405270968801670128434366599873753226769298064305679130915389087066153883309256702935873316526670926367179420237075777062076835409192142051015138895190396088437399834257798179990564071792852090108656837770762296602849825985316779389519518819451324584585977406447608918520873659658720515119111200384171027897482322483488734716206499043218594521710461229020024475645631925445004753115450061014914643000601201033456126654046772839894221697493900962053619246321816523577259123351225481762928650519107809915395634669244780193730943045554632875629094619878693986848374352543084378109463965097512784386169115937106628260242522389861348273177105220315699275186530259820407785003793915813338727681528036120943002749671228684849543386509803741014978099984330519092448418470242219609024617808583558844400421598038863946442503710612853854368898263038987543855471132493821315435080403401109433661072208824567742921216928450008056645260553771664478469561289370292155635076020502795290099946724922567044067296502414205187083382394523599540640341137772867371287672140450811572918983483400016461090791117448208075158187558430372571776220759890433513899645956084746064313149221483296806122677667251627185859065093545444829536708982145959443949467195152385213126570565649197971362600734029597662741228115841107866017821641392816129060372178994123681175622689975719910450870454187549163601956006376763743900358487578655083906916622021489691845364801226628912148954786335766276147131611326939955918598083490044524865479570553257142345364945986659244853722876916091462204899266721848245845494097619535958644296707433334017255168850998714108479057539481465308203340023936056560284334267964790974975724754289850894327215184278507510133756851656474418552511808370256814491624853658605196404901238076362811491365908925925552173687449867326210284220738306195429729964589810933892869215434648947163066167013471917240982652347101045264082141515185674159708830359231730423986867039273729824448285126318716848832354045743754952007156329377927663959629892193319769741863107936733981441349915614692106553808876594840653993083405491176417886165094614618420003744601851202399471787491840746839057189724992890761635719719969070404630220930599944762523610053965164510302251013586128143243553496243561712850304350185159860936316119707688025587014197844741247159223245415699408373480692227399688008886419609629113198905629644367514698200884642625670455569589943146273975234587738833810740228223193402769597350583523577639481132491471041902650973084820815674015463801242301216181159554771410314141098903378432114044275693511457127641450136893033435605129431001236853123332718484885531527966002029391761344868456043773041249823820112843183243065295091474911184946258425333034691978902073744068358750201118746743382153843212277061491630735569212252294940842999867243401517791977641203221111525755962137196580554302764839366420537911332975689005388300615980628246513423456085471548119110562110288745040774340168010956225457425225060018217685169594746692258610054072405708541274511917716029102213220935823593712178126086951293141262833669388315230951055664616731647695239020211886301156703623725903703904877128056826107571570771741256243508088456776684709081760797494761542615255482926100948950411841855135629089697753550276138845168133967860269070109371568505736857752712589409927298856881365015419277643694763167615219867308499000071326792309715958983642551974573160520691167127397808474817934833548960501999816850910429734545163002674970468880170219966731326320463670134436139650086061060903564881442744797532938975123081175777870468907504150874000630519836601287393722975565059382985915782153446955478953502545838836244994182470116994277514794401223226809504384029142708238890515258013583829749908632995973550545789309276433539581326527549620385254753420028100517587872726441377895842119560504461018120783565183544393815541410822302063398352101385516114753578989779572322512831627115202553208508356023467326831519757694889831561448902017918414884943035986068917335627680027840591532653595230134986271890378498881038010525947768747912288794531261893184179441050839704268290161408603370968027815671286172840913703022884324601386752109140456867179578302923158097644002045628415660872281814748057537341860122036654050853480314963411181598030578563182008548614181354200982470564628723438760084228421266154086183400967760107336715576193097291895293287371787202278716092146362775786635786432973094381556693252725719122558420194733764123982245094431537570820612213899892998274785669730362185016198878082717776533129864314678241481745764444921698705359402867953649355140987134608015369445388823691532769228300675779744859572758458883638626949817336603492868467875835305366921115300568723619747831225760257229679830866911921469898085596908524702103269336627647297541916654782725492786124537839114465192096991663786941828423868315529081937336420898942943629599906348689343147427025468932878541149663467291983116009489729797022948512361329319379314091735080337859692817933711183430572684504533463386586230238714494485959985745023338819629643091912912198499657208294809167335174088774302668015543417153160044029451005657233522037794597442282767022980256436679033831038708673208457548681257625607409424165651868975064965646692941615752131230881311954856844087710184128270715029146889576800086186671983849010060255971096759030469478043203330617616742529061322088388181058643362523931572766391677301680261786572861608183555906837076900023170635624350596815083138855273169700404943408318261961006071597106050705547560069029571054325080134320049595019200755941990588013929632506973071864558075094011024678004417282066036520898165803791090017838723952971179172674176908695367521392213485287960755282734025923102936120943804243607760947187609974824800996809000110098815664822200247050499073750716610745858295663735462527197197226347540049543943919527349461550937454255271085586573443599464837743888480697858196154795571071665498959911081997656756399633147117084664907638141189617318595599222625052957338656108065481785352836348205380718234183722313455216121587860246197843957946201408036659021698463464166603721544593051426842627735682970606131722000187711325546746361359294842820261084453637099256065174662757898045660970083019923551568270989471822101497502323360637545983363203541339584399531720020005148908393536578188680671534712505777536738412875252274830194043672753106000788714697489052947706053874539550277782455291013918512235060577627565786903864639867765693347595934609253685129294888414914382378346170481322483759857046281433626727074722732595541504556601223020740276822474550682568553407108289025329572114610533776389545568843003529227493662403595304332206832007068612390353677938578591048955651148274402458499253132934600534623079805979789552906165043284278012570229554905045383225604914033648716849887438174047035603569431566072172793104113353049941745201928007634483183837412734396216370844724906119353193861948926734263147649138902846381892449547904493914522220793995148217991855850022375269264669577690825769441159979094196630398251271736209159400160720671178955949295534394895190818475326815052954261960109135438733694553044877507199240386819205178516579965972459656867669269318699636022997165621738179798321788110615842471096217718586879421335424136106700068256620353523238501921353277730331696269264509695129550804537262087527296976386723130267537320505851649984481070109288777927506118797547466402118356563956581017918517177276385272133253675376975773867887815504296116705992041342648490556095469900010776265401436239178514604877477245198753991583721128767209586502532666853136996316212319323467809681133985601449073920580276138900562968547961697805930214189311469492164562560146604023708407552546526759523159926146717894241939115934840839582073846689301344073280449094018203757559273956618496808012212628739726836873170303585986634489094267440142755597833637543633484330354708050705911980593481349036635115809151733133764706288233062940987312337140019259485382090698227010130876465472242175792223006856066950601786867093192392261715037560175963872066576549729977381921595248253546089172254949876415027221718457947376580472189207397282868883172101463025314666879372924695548193100037275901483790054887888361696241578687403767472710974026480914764679087509183849473528009109921448652753553345837066538226991410513134977828074550907276517371342280373913481703863380262120404185938766855413979240715516705874738397091889673343086016537836318365089850726263691290566310953033926546927086791603378235842334963727087953959967048440311449521870673738934180805345622063410897476285796540526941804990471726369548819108514997380354301752145551513058532940864272623379626992355145987778944407027233224473289077543083609389071885898168779074371996725959619709674700899918485968845184795258758086439854048520104581868545050519343671405066585817655912012056932444828411983216885579669115343984628881464116810387162787954367486500719052153239488194971003072523511385667232031346598897499945247576937038254858550380127453614896469530846166082476619363820519286466086494855460012069358774854282000529754837716487824572527722561947102799106296086833609600024638450389714769901818034515726015761348240462909340361806545920501261113797999013046010376973260563401012777338279746223938599261834690436944108678303110450399880939087143512484496072146671991824504643289919156609869973326013080979010796435097963950973530511600785605464563415362182316689132880683592350483449687650912889883924964544622995357349633510971393886517844466834279392526362850376382373814208676870333510451958631901520630142441579783419115029128984043329841482359242484171259688461058884976852076853011620053797704912204470125080191458222844001725443880954191436307193701293746284439047014814958514398477050512767732811965345242960368480177169203709006395642506715442063442041351039045632520664707153523032082189395458806952999658060927886581981011920467132529718590690466622967595387796755614189177412898543442409753984138210408230485826232572826310612183061499632095944903676191794742476333974664411115089167734893121273755950093052745255360546298038253649403502490920855828579490793687622765578475534988811208112671350049468142113162303150930177908012308804324203523326919516408678298311120598045489983520191188156994944403294281306194949926387960193600796299655304868607164437692230669344970128565993485243682475683650071378760739488697668985461644163595439552263623127981430522277283776678289890961384467638100934567655647410020889275785822618451657645001899959769844156884968166694635904729284253788339545824562055115937841148103828085226584934142006388533964419856666876957879171623866908377389894191632326871015718138542995869958702270336611260257434696579475391673348185919497288160292463150001691469228691790705749697746034161506703753757627974668580037843551729914347602025890143607037519371116607907937865033488289675622545533717304593452572045881920904008915603896367277782940181877299131336602249748502834703087175180248535773703301443140500993912394012694326289325601731051192671091031052164394694209597318420301201323595705010297963343422817870445157895581146861667224217498256936143253548236197077268666447606944873128560580461520457123995475541011705968334043896371764468793226106209264975601212631901491735989890246851578687062998889717112508305665322181558305036720077014335680396846331942143371290182679190222708906483567721118877537688812616205701488860850387610655887698000012651543135391012615249671464507336093765093689057703249743243466817228441136919893684387302209974590106756538391682494655065359993829989362177604621525317103340131521805714539356574890189829423057753135251952545337985132700481488050955151999640358858251277428272644868457411978526388005756549679547419315945677117405495505315848417857853225980032857729262696573698131938633287522237727991951695786989644649959934848499538758195012817589486203419860839776809166516130974100190575099665677587018788054668773546818635307963010154018200591060526037785197545696877165211287587514882541172243468822515439542418912497513260424430686811691287527755958293540238634611182944214824857202573177263397371899835648599714480564918145694693833429836695068479123505143868746409693214881782069257895682762441433207622204361664606653514464098707202347819730469411524175682255952915574569787676759991661376749606592646523746133542078818671991338393322193093585913872822939682959165505324280712624016065287172904962626003754815468100572782611918672872732348607254312392344429316510230392640471350189604664219746883456915572634185690652878942865029202891194011712478105935085022367019688304519373224511893621856381611130820816280843740376566935664653211999104814103388706785361979568466705351188761587393215035131654298774770845723054004604034562508155583668432097599347806576864878873024752859065336035893609050855597395190859423069248736706073778388605421194022411110816803237188731781638649290404154111847036892893302471901177214742991295296417761904925277358746819209927962164430014831517731500611663263101123818925589534673543047126304792117152319114790963819372617426834981361977815908891703010213063415083452163109441238799844954432414184260617765379713030298261107987577503379495283504230013216242865451162467194849755605802653724877225180465410645853612341659206850452791506186969074974452444297427823072931427724416978844216063178901112109002085033807865880303976549657169272288735191303951358353306618460419138227427350085098359419711305381339404707260035291580834100852308645042531729247118787472137706422616385976364871246948393533815020926210545882574323235024863335019599551527030404022821675146743349594201850586699435900513392515917240845277128659100807971377236891125232197758358292388721896385750257723672880695939996577370767741377726946748113376520781620160665562574523231233778425247921388507991110012437111859009562925444613794081207963501573124308738216476658729689065637604966416005511048176468534449797094451624305630998321892611095155350770265366020087396847585069270542215234835415501278308165917090312114218303718453539712906492398259027930378680306300762995616939050033440172328511067718369815670268688424036217992010590006199304100684982762955998179353028926965597100866532498902862222788597100461653977160051368792630070454949727426323597131434664307259747487565883558392567458963208400748410087053685574107587180583487409731494342023044177291745016332106312099424281379148806700725709451120775603075441101758159341883382642376991902918719813713351383126665041469964183966332628528873306609151235220201523994932674048706641055310694744513700554238420060736907152138107964588363534153798943582196779872691849337299152180709394443017970123959937585317845243914621745444689053372465613988893443589726418323762117756613653328959584492685040925075764626417529785009301354930834362015377151862654331760891884798993290153064912577402086376648708783284499784147113502948429357488027302078619501074628477227533260924333158243437307545870014666604208630124998148293354067868365219169467665245161839958688772686647799072443807636726582582177959982270538173220011277550144312877365484825934617016765211109953767386342763741179519989935361397805534128920230849623453128846368794629554480334074335076064667974202840691170843692983834861230140009298385597664039612395870872652405121770760466526309964858526789027359593397152480072540043129283020613721909621493791863335123876934539288803476088110392464058724391282038483169979768930831761370718390677171957766600587361614175768732554757726238403233109428244075326091016664401791970187544657252032489162315020615331358283080068108447545130298941943585233892850328471540623333769411104460316333888136012580937346355411155010988883893818006072266134680170880376163503460466520711570458191637918503023164157823425891820881914029059185712353813551773006149526956789880095390137724734536461091447261038476074623131738638859635571921282401503662043575738967933589365708235882597666052059001585185397843253934635467971517518597547478335375321147787577856044088995940834589425963095796359018229190686270637338224337123075138106141880593721874765042587246844529622240726917089069438940901783683184262602820773627673267798543497659977573280672546458539597300870182970265361845026035652711753601434738555330131130622690354931537970078236669465793830736687763438065205522049435562453076505545272122246842388732109479266677369620976173227743811221313865357894403871504555136265622891951855183881445193608453935483380381450242270870518570278461914092380075510682532243115085969875193321798046636818451626268183083972617065119308670446133445139611503288992901431236856042929711715983381965486156581500300038652362159746356975736083505574573969474540629247014048669409888899237982450704529754217739133273569870573258158770937329820303370870880993729675510810671498051996309010153462064164091424300431039447453383821118656484341485589624352406571550821462103278803826837913337962921584222342686171440840449602121168179479017918403465615092016832828032543263995951715007778514610282404761731132855166064940403575291551196434864176257773836918809529790755804075824718199465967415269816684083518163392804719180659827883246767714120866440399603937619855083907167150207557930664223298059863125262932495277823677494969414788442932097210048366655392420219457710995848180833645865997722818443384117012648645058439657620773529945401867082340843395770020421878697407096520609504828945554922953603957907995478362978202375965908770104821611820066458132492186526253642555976141866458674276117034928227529932834071594559211823208538297174327147942532398507035892451139267411367242013622588354810823233111828160529948332636228992368448388769592461365301476498883372618246686139887679505072658574705128811674566391627115451306914518628838023740334029728945217561204860441590693818507322377986774738284365197547611900337184459017359617871732278913031827373399071984863154991478392131310859285168657778672473249077140529169777104877328602333344574611479265335106101257567124556255977513533767998599442169853027853582616107589984847057484373407054263924930620251425825688642303365226878440417206400935493785211786812276325355689538246703220405339048672624558230272055380686652225662731616923380642903984182764782401092613729364159463801859978436717192516081921214452943332784530989137148571041497002544569613275061640959313214351785056107917047487564173401360023451329791836443205076424738012806809979432292455051177884872938569860029268593070579017080814226629615425061411814539360112836532275980124487427275653220963577093581261057603823304177775280926508004520647028374616503081023715354488132379795300665689612894533941178870980288655626120139684035998574791401149672231851178767305548221752822528712778866910754849464166219989655101500147881442446253320787059478974184083481367991729576025995704050835811016557476686376922735884086077036303324331103386979836621282068422417885964510424761738576785391903229664091033104024355307971825947852139569828883666452309414495693099022911760538213077655455687428870620660407869033012884594856060844960090682863828454660434723509247770245690392002986503304329123383922198898665373274578944815869803524511771706036781682817935330435263428033191115389600058326642091987606269760500658676931644921797168247902614328705444151325211789608501830168374331753739810514822590842539792592585411595914474214129848618869375997196079450017593759672960178743834684874211914299286438922202575685675342953676611531697098195009155772450125342814621674202065242032639870208960495035441169504701039181004520208597077804008971182032168877262611571091427686089312881060702590863619459671644182973706238847211553853032699602471561893547671355214186601922772755998203276662748787141644709975399246879613669344689608717641313683366582183797683977345302706312962444562078112897129709983988102022167883803145454056342353644314086652947250703898862611133489771690194602894463136785918930204319274419155835931906165530904723629604357504075293862464604344850669272516107307664451005855808275243235704442731078435918147372727961750815903472173450458663215251747788755554258094402541238588346092886600994855876093031102142370100529572503953942211413510431289368046475738880109271092201915760988897888434174388577355524059078062075474259264675152160689182498205822122712057746068078833222744609304582826109924177059887211640327666813118241531036125179594048936876060332082587103807484847892523507239773150981936702489125611197241943707855613283734049835156342776614797696799709475851972173201902726605649364483910739618257942814715656917360742001432665990087614031351961150434171883359320721042135662444153387468300957528441280285196441205177604670939937749102692868223838026067617843155188649360635304576507415550598252846285412989076854906638184931775126884827142738491644619884871661376175826231871100737074752255573409015900765805975594098622685111934353185722019980394776451923629942207400348614276076635084503342397401201958630923194265259364322447624867018466819754998046632104647918185628526274653567772783782448824562745773909596402960383246581153476167128333071719166273547369688075512171660580846154592414877748886499376729135392027094063756379823518085148701719190940991452948755537800697034318587202403796849949374077824417583482699814442449543894476377824872238344018121594424400650533029680468553090408074443343452706699001352308886135031829805516529628828767588646941670149071437420455091684837007097542408483632662403792857079086735149773233287051388556372855039620425663403833809158578338917339436099343785282341392863300025776414994098576192378039464918282526581416212532728025752978464657607417180442106018094368733633386744151737504264431476767756402502458095360734919493642320350136403829216437852357691458917603966683857708688777745651873503229195725273603600640061691451458913920305875473648986759451851420160023252455475841813391080671146669004003852856159829022085003271440315522934520588510527609523253136669168515569067756535595205358349395000002916903237868795074117733582505659671217328583560437691377141870672043658222077886271055611372076597163550901561763496152625753172100468651489396026610012479062339021523953942457498054215246548401733207348678873115489903770389379736476319884708568521069853174795069780797610225434844723151939979500142138337088557615823833424166973711108598316486577901510350318790798608856496599555998538105154600969338091005395091678658046669793746281589340161721940511976290914758041072228177285897091873014286464659124672384808795388861444614244254445105337940999616965183644618503523047337843642729806262179310630122689147506849465522506518108363684466101831542206203250637431540214703526992739333634335313685643007328099672917156373696813801817555182977970841506097809123763065597715368924350491654388663482338895685730525576084407897472465966694077730303551220821603865231670324102394744543183467446370534484156526889362160705690570504126889636357719170964408315807323150427825159862886320251511150483054823006734008704451222051883861901010920620350287667842350268545506469141318839642356722891600504734586127248441263364529585804338013834918495473252050004681151919917064754745572224745068047036458325067917135163998780069663797382813747289586423036649705180340052783069037492146667021071878667417998659005340112368108758413885486575038937210014503030694917871053046944713452972332215676757885677589474681468480905471347818416026869113327733751414766634236423251203256880640459840963271237150960535020965511365788805328418831464415013466801780098195301483642884209982126553837624151606905007230389841212482886041250240339820553314381658459247565585410597140520896256865682023114561521337625665664851609691067600886557063487896227785265178723314597861767908124966752530146226832093494676928681941721409677266062607209623421515469137778186427252541862703319109256044318639899205490760946193174193119480693517784501988984424808725063870159571989724542512513411286924549767991876553880528012041941866553093918052561508143065948898825572635816974360753625405444200346460743707327271323725677696765127240898039444116376512312476309044726472673903485846761456247651642198590373096458517752415322779029152170298166050683626008200914655731397474482255602935729095920438081236080842323747708638883872553869020955159089730794714145616429166893774811686083123292351962589955508392628273964309820108054296910755633840640352080599434860543675389315710540290586582040107946155991980991768412600192070211883890628679782618076816588175664547980140571944796360235125250898887402002212095102146169910365241664777414821328875673618174998848501114275507747046081937703350776400628876143046400165593777990209035939349881570859927448512457896462752539797587313577852158208681160190356494559308820325233335013931380253449658285592558764370987371003328828696240968310527619057358226326088545940859204828121754913866690501305878579916288302689238603354562982285323308893615608193872308277385645596976881661317223912218760383014922542090937210141092573795561562437818628567608043669882487381050676495832967144758437622053633752080303064053335388848458566770273118282694074483524833750886724683181955740970516966370610556146445108727636746914031650763122260676351114383335199922151569928389945772041609232596487013402716128672915017966768499883649100314900471866467112610072534997066773187690027698899568746859770575477501016684004548780054567704792274356493247755193625165379786501529785543111671584682723265132407278707682944375543353567262080851977048767275419633054728909224652056057799037947754805372698429378878167011505946567677105941821640944973683681797662631388952382647826842257765552890122662355641283767409407306537052190441491608673408818966039233835416286796676849138032994305311357351358288795539957211110673994102949572594364230497001535844101497669830789042490981453566985748405697093533051883641260587583328753041038623055666806932068980991224280325408942180653574973777411830933555082322073587797688413822787893911645425697130978478695472098681251697165663788413755775561587883219654183792081294581613070030846054937960089562896013664576584263594942455997729262486471120164856587857260066979292342964808016259398288339067231869186652269950507474725299053275647441496292050804425955979663472896633962557656053153591274310093630489888281177094671469100324822011250957067044752154839543890907667319880978190980717126594987535393762304009116678159857303570588713808212543158364824822113284184686280279573320305395588388410232438264596629276116193740141352221090907906996149216590412388826606930687004646526405753843746189858032962635518382579883128007670432399408835732933930432460756790035030022323450799402538529163681602399622968158616650985309962195178743475322079567631426753643171760381727076044665531473616335518282280494961516940010989002865109718753712110425707268846972451420346341982351969296590444921077291697224238827534710040129643532793720846782554662780724478601716047284975591406775348224520501624799425619077198507992290027291534462489630466627833547063152535875736258838864769321893843870052325814553507013556598527993380029913732090064703417511635087379190314750015294680479910834647014099298206122722360609295769753976126971515951522632909453352055081255035030471402400737550571546235412758653678026895625442688689357320280642528144462491916135206954602256307607513358297728268936241549700451413085038399871941558938235995074890228429408949870344779405673003728446935065184710482159592312324093853392394060180544802704921427051321646479137120277662962879898339315880496155165337205819137328596513544733910453570173049149567966348244200103160936262311084670604877771226506323379493724677898171894275433395590928675841113411547148305338003086663782731025749059372353753827372504939128398701361825369349596762847080712464030621860761259585376764093623963242618930724449020492578887139225575219222348818568720704922545072668523526274953915629566778879991255472112127371066048026024110791972250077882426789954302262394194795845539037375679230729823007662040803636664853314279451328184477198723860142369814482134486227988326800881227429058103062557614265083990394550789913087231865636477484007673791727091519807171067416177427519558074264487825746763105279421863168688592538490409730737270570076113867150542598020432428640283969981023883866939446625371268436625141724467750604404558322632594848975403098769599092256986433142189591661524131790760524459337983192916655911283777223672472154463239191816741982276750017653389294942972958047515511003698700934455230974649945478980762354968301585971653960716216396061454567865658592940388180863277680437709240696944711615721766060753958177120543886194143436936822667958180085175080321362837613412563944108169160932680506095894633482826975601336093702666330820309757314757881024167158105701255981651302398019589206600844268069315660437901346974883403262062675616409123606089277114550426596734573616857609106142051747603776785673681634537471512836296032529679704131610645792963041306683329152482484542494319538778269331583202748545128536986027753119086000935273949436146252448197768228756928661567866374605299710166178184560667087034750903268292516428096942661783685414411606268039824752609688507206688908003527057248933680241730197999470806313206291009788535257937113430744890012228110043268847326301796539453055735343935095956023524772273797703563860059922643951992278967759094276733789679930851736706347885790671065544918458399888655270227891561336312074743870280397111885345430727539543875379186426530730820687521192033862958676531034127209065715659123551095314958206984834161274352246721528802298023281130602519998338324138955906179252921343918285336900848537415126414761336943351698653028033603338701397679900573111652981382910749183538800293155292320289300387921275204884192842237207708734582664573882364167980236293691088141566518645968383623735117829674799671734377323759281974788379216995751348800797517904201229438697223090744827731071232735019594977198064416628967746721801138876557347625846994421316308136802939390489117254863791509638302285405505932279088979895844353459004748922338201035460119177822264947963748735615869360804025181687204285335793496244627835161156489872392129471583011941649608588462406369228772138459821817993196705876414473091046502507293278067117019169507497180140287454799269665641297531074717176198751177809813586130683976129365063378587226789062832226030028968815304158446421385966190813490708197708967861848109363636527488013273980946851245823311082349257627318307880876460174097092563979438780738087358065291255027741345619624012122116527862917166017867310300037481872487486482552483766996058137662358824952225200098812884621290843704732651622621089585468110454333226392909838335253423795237485715107782055715955070924340373393441385423825545767794359141197876910869021560909193217595248725977591772597146946198509358631816797656978000247692844213495725224850317183822600980334630420035954383407959617038295681159262732580356205015887239413926378104365715355797362901333665644780482310022614566942965570299138409690655268826146164511137687559544891937392814948615860843593270637391819183448898514853915802907496936365056075593975832377454992134900578890145728210993619752686284110425369790965588849715611039045143771109994054375083447974770370721996755484237833767065898886165243520482756636585501494374041012392821098431760850471487551936647840239997212905345463671515680649420831382789026829721226169135650865358875823158461259167148993927308306234399695248049041756387189301773291679681984186698623653999632878835389234315697679792759572506539465821404036230247822981984710237624290166731145191074804422948463877781873580015855880142670730765007970301705206947473725641483242282442787035632122051618072488165955601824314703427656244337207183155477229697474995616951757391756390900454583081596469796511177770880487155786152712107506438452789944464425064761055496153431716700491980931341564437523644447771703875857470875418869445697236391798860324578019830875392655158999469440736867081329807390269655254268127007394654707413437234241608745660204430792074761059170530085297959604021683500409091239756310969557932421085699339941566450719464198752833331005296447478411557703682122258226718090425946015130045633830122842830533380827152508478649497276575612526467352352304451824109763364218615142704111289883008446626029672999470401046638378876695624274775193862255470577947277180859753451576586767657698471209574578369369193193671938867086755144920287576212694856921784986801486476167584414869065005473560572207654161576245414453949662204433034773762496726760157648995921700658209215926630772043371446474154913916345819235020854288407980983820950022619056993366961447382413393508389748169465845651771808783066663533409158552192130880433019048859839706240784542794558116463949611666688756419545962341355534357113325914316054415529546537750467662517571462894751027115878938255371256621544049525380820839694124503577318810157165965891331185251720420869078040240626278442079126047331527759974419401738149243156235288840000880730774432969421039618294886253627635287232483944555432486119070589826811599033899887421473223174211597920041252349004381062572121290824954559356504131076063098315220204198311503783175718534328186663991532320839172854760324778444791638724842239274289305027415632653426998601864934381635890585375938582427830212865101334331017540162938496547572880936000875672794488104221446045613424635501987218783228641179687613471458149946236648690330353837412046611268521377236836962574928571792887497492082367084301365558010618667215262700277574450114656272774337138372460360150015833956217801399846990488323793101488667745749616739757197144636249301080824357148160174802506046414455816182611573596006914617839027038493052909486400324582461736856777330292708446174258348434710911321820032399872391731574875000079734994420705990324414811418463086869746642267777727771062751458975452499779531610816752587668692028515824057367183782924824210623878873792427766732381286115809001695083412792638187878755659501237967130148623383737482453644885965572911869988398435247914392456940913684887743918426773607508013149730702696656257358573663630680791036592904325023156865211010472957919718613828435023806275710781039618752489363867698323710332733938388027741420374119639107749049719851923835792258048312472740505308628112708766841669999583599126451022442635089614518856912522474662051651055352981899817250319740280149299178732654650932706944147053147508855183873211287070307040049918050615183481259248386591453181938847765156121184341214505741797771583007575428913869079286095504866318590492948489079279434388049009547358250647133394310507994749316179851619951380814262739391896080636610076382564684743776663952359959196524254607991239636532652127853101664122706007995958025961602504278482951840581975589326672017553923446761168745588953850704643612933119787006734015136230851563127692140116446265762744656015881826208351764218162606362898017611366124555485407672092340312278567658973470242228295434838028312880691931583560916492601990751330355745325911942400662967540010715024837049395262304659684657902641750749864543984612833727930212538208260529174087330769458343681819087632689580585908670333283651421161677497470328337748087065929116985825793976033580145642265224420262208003206601293934686637273486767538168803726214981840765280384354530917961323936433384195721758916411429776770584767707066023934204044599402327038868810462016557108431860869735334178245505371653270993561793082904932922404064629411799811826813174978554130538920902956080417123976549532593685277308709264102906374149405798878836876061344371581745055185481633621086053872665997929440727338007243665924229367507637196282879728379335313613648025838239794483204739443833599492587415723320063823209803559529127017543221194735110852350151438837977625603243100705815170616436879909350642808253411156773178313310599934824356516041636094951396050956421987944010144940704565867390483539388655186523661621979512172510596608162789553906543847956107287968271978945004146193889019133158733307368606480821639261062523195421916923395373652722474882393227664039784284751957320068471083444641881348849041121909400300865560624779210780070474293526467260689258822601437049992333312172359848691082056837212719248795410346258570568403612644107769363611003896943047504069816849532234168878009196272168156189968367780695228829035187861919364473629099685871806350213792796295451887300363315806191961632895990528403175684766915872659825901773004332365956321541547601026040877148925110963057122619059940700133880397740238406939725381521736920438012811823855729749458722292696285726837236144614272078769141733113454276356722951249871504567050095893302242592578162515792661090988515201930827709201534426470154689109499968998296501876491189240819204822478538228938830927241934190232010698779564853749573391872645409362689948617487565489839889877785524790519964475499557059761541823687681790117548559055624834926340539816863111224211426019158046126863693915496667340141485145590135203336933554486990527334577519626121693577761250726201530277105627124388653900839910360695858372627102158613022227207205039580816776297991327202762195702188360537706910270342053534514231111663222037550286955207526015242631337229517661942947860474733330110058152845519805256327466629694928102949460856555701057790539893886500267718930033085993585211924955806156808437439233131895910244821457172560578238150312205775350329293174007081562193526986361425650679365515785231817203504510264278767685225492014379285590743196562280366121213726937886383506985527698869900695368107029385759037022611559919200104526333828375229186523348107429577173706254135264395398018266556445860571690197340646217842619989515827279480233731210852137461440556666527719879135267415451579400961594699784077383107683269463220482721516289509562513467504280501774420201097833403894850394249907662205648321648807084310686918780467011248229829767479926186318056959291794979263953646629197996331142060887647204965263052822757109502909998752616173537359346381390771763515831082664061056521910363403510671616801228524037222298715961553709835052537666106175830629845716618834505761243393687101199361434387755180718299293749123213498484859967610519593193384401410465037013461125271441076629266590198231806292919632005111033359271249511952374095063158326911485153849435518322846105879201733307632113510079014583083724646343561206161953808913902899772933023520863243691322041691267009891116828045484136602083542884123505696728285998793130758024808611000347823315972508890689159344608284652833295331696878310557771729179845100878950944980050236379543101521273831386288686129934856652305578251512004601304595335060055485537884799398256126095251973569165838275552396714819438252543595534997896970083246978053631513788982353284152187136637524951887574257854131490128606490768411923501643798088579339922668092055934135954216177796437744154353647872499109418190825427931725142929439573568881974063986944986048038251753931577181261202102888857620159193127198699141095164002388450784401431498245843775742303688214709446790313917451205197806259407268144401955197472671333487084783826247223764431710809513206413269760638801779119114158086861968819967551728738375888359037531878407179714065938045443393589785717421571971399760066824306019801643210338308383715147131727773595126773096888958120277227230948852770555191678698830311997756205013375370759550391615257630376589104254784241637231398004607509721852323798228272568142187877019195414425497128619316852436691546332540639058156095237062317309320565680518854047614342732657907119572586105579661984092348148623726483384433804298755750269532643128198943287488429537760103170702367590612530707188547414222597791680215493028121026370151439622093457350752624250073618905605541425183598716848825358751636404043831983966159407957596189620522347787635289272370768931507586948240848222317680136344945453100653016907095264010018783509466663463899610987314168298739790807550518091555072248255614056719058448407961545229092489703425437993235372416481343566727689104951880487553791806081085017856770934847918780630050037815763416952455066613106249075688818920098149883052154309522525057388686189177259242730081941663033457615652492228446975363054106194919282316158346363917915674023561547770218054946586446645795175354706802772795856426071234816421451372728765124542880443299502601034298878576151261393178205075890600269958992958210196948764609843618629574645307745863154626015728827818244988998920697015668587106653266525355267063093355015096393878056866382721823205699643079465865527276678518329722942418753334963776676831335142402488867687329922195148529029922518300377237343940706461586918042922447627475118943812689729803435156267490372270489926467364912731405436808327604229675559801125338642388853393621700030177231827936228397125662605727093853589257770073129103913671420467176856437860970585996677202013639323361266278642799072915173246262880274068491634545603803426639069036772351803125940269423168776901135436107414414844044966038014473386926679391623659766035531762125879012128541407845003661284428426478662693616624002151048866768483683105032097503966914859764071629345214204562234769306757039521966141593747542656458531955806374900505605668293505055064112649338688173799989504037816642347291300375406232748943403161692320891588592268772491449106899442204565883596983132688362746988721670954863485032333129941118690152268246867479798831846698966075328078743139587691889458181671132534941545096449841074892811431553728954060793099578096784638038241144416360233878573468748899083122562313419126005272939501174418787807845745713983896386456626836027578790765120091544805755553163499226013740101321628473356249086441920138536525276386118831795899430349771472275410014489783400005706203831001186526653134679863659948546177939449715521603315662537570792575216875087068285129466844001941704478516197223872390027434075675953567775102893979723528266938381315886193018453137242914202754775164046141854142280196715353359439977988184272220673227379564185879224459758039184431348177474657889481649736191102536327204445502648939346065805280320316046208315227558466101595801296819248252244210111695196476926505819015600861350371553430843746395876024847666006122454082727103326434710896612224215399754788946690051585555265351879454331625935910165921748231455479858387631717711461358475062271321044893434915431174909254883950241114283772469841062199848696008240357058642522274398014321527916114164933000296757783076605999201416291017157778532908388136165211991994947977159852309060681188776368756145361077075724946282760472065426798988168672068241831148569427654907751357247412528531985319230047378605531389022014203457366097694415319684287407826691825422596488983389714777717620016461838469626916337327449665460510690863051141125525962549851820501600852040957120099002361530753353403668569353074325732385064745383947248303762361889673116818226115830593737062751915959201337086466947481202160141101579540454092545569871362122200155100867772857943893209678941955341770812707443416117360736969345434305193803770097434523217499468694164648098049376354854656072274755270566033507239832498416878971233741057173974691243979670108237327015760186643102942037983315852879970411613882826037922672891119848258960701147083426917276786995212680050580093354058997782497430491045122392452065113466779504011060812283553168673749725863503877802325801287665935504604474312892436425759533649128440757690742997737027016363130983537279112723274070746207362994116179347996016663429139061999606921624622026247437765325454826609109371455110505160607943033791949189540703026162176916544224167934739590196375286055703922814643289717016892191461623829440400236518361449235883576629457739532919974432116023875626538520539138832284314252625532216662312681003006377993556692830952148409685926465331727838951767778049939090139927658980390186378629133241698221055691277744151263451275707571074765686562784543021104672765564968654709954931704859946939992545707574776128314875279995172018170561010844290858979742960935781338000905302165072355613756601644378229639792959581355918430606904572233996361595877971213550249456012634352044130384060057184433674278885233488712506520593717463678197823868918728697317672559548045916459267435232273930718775378418906449949679814282952154153024115981634075725949735899869445916042363502076913013509909341004104786917567482806055525608110020511777997632150703287053799309264220049524834491707136172454765775315250694837125557050477179243111708824357790803758585316698621260906650870230532677296436059713030376797416344802110188191742869145769511964281703354141958740851266633284051774866686391029877431411433723219654144826874322141407849491961496724571487245171046186125424332120711219245928562959936232981008861841706047121675449693180709510715377426888563625273051428791670480543510327815969198414167213747055693478524123338498227182887980049785524949356763591645744486862543363090701960454344788984245733717087620291917442553613730759678248459407982218205468650463947361168662019542938505781168476218032096317940158849065419724584266785954667955074801998996226012495792351263710722243871955803372020735064196142417825839513778710208148869827807190421348678081142733805877014911571865997721303781309369344974799656930676330524267049388305359639576446246352355102146990751807809131061914969637401541934281979269827967409606222400168194689535254188628487505707442526833376364495586695374806129797823608009093785937483605875913967477293450857672920957844655981602352704277426350342232973949122409972912343874098353493224510551726134102510707065071525485144933422929296138258390001624603249139321828628749155156419183958478296496410188420814920378321082604174004139297657359039256832940219937720088175742901360666897897929491091110811917850227589295911501153606441395643252755422598689725275111376952184454899629995733072240577265325552770504409106603673575102720827693207516236217579757457663136928557729668854042194135369539451442947871253719919576304974961013870370408873110109198583437564997428953728849612381791386635114807336671427417319904660884595158471964445598623047020493599928567038952577131940167407993461512847647638532188444536724149458211401154353892906602511159604593131585821890316409748139456521472095518132563948552325899724151927562058651244603475373887955051043033963037684976473558254261213361883363389265464838933255356038792964024210937431598703856466327083110201125761057258312001643282356021751170650468624722637142535644669763389721188216335097452698298689233724470278243262147365398285663537314190099114757524316692218435846476006798516325572005679667438866754230921798301812795384339197377736480223465092875460649680738885615134471772681111535592424444579978191431578092684658217029500418284296898509054410170851602556261719889574845094599754819060031784565235306817298566258425855734576047264000494708626395719402489503308545824408582356150304327737089072367975592999523697383301177759440683888691015618869444170854261265990907007087012392811293152136774956109088989197930300975163145802327707920859616036575331573654124121494835891423848205838345634283027202950899792985241060322824390049175342867446333756023833880244558040041523093843250157423687764426135183204103289785503061134392992947874235349171483041789261720353706242178881233229467816277803397768650224920338931774537026960761208009506414628964601751864004773166719964954235542552768296319763770784439610155163012392064927693949652172401382031977017872801840174546635779641634725342174367638335540314407506418786498378869997566106144943087807738142281979807541825854246471068896694517622224192832560515809374745631595662003562040092957953987858474794837315603924803209931780017529941256056023953682359372902887054765810912293495871122084778346500900758825075513880588691730555047628629911092709521658127543189129816764165487248050060391867278306006533902632239594122881376620721853336414628872333630481818604546610583666569304208159543112178256210894701678948542078720896622170863784340324454087204946443877137805454749129640510863699657496931296976633577728332543960827847558226061107450507273549026173358087027724002129944092412857677463711783638933476552141510186111537904148811610812893640891196180060581560594038724047992326241252246108481049597960511566268967176493382332504640792833641958123898016092663944711221108700274253007802522193130087944311012229411831062384999067892135785904553822991260241500449424066719420554936683350067980364752210360768664250653085380906252222387171788907253898960900453034646037599545428718223554806537917209943497244588860219446041988587352184024887128530651534610616742313079711261095454126137495142831344231983817966794990879004925028207355165021324973202129559963570778774994658267727647347936904278577843141407195482185297720281565768598664252609122563219776160732397226959907695620676456683035372809878967718979730997526790349129837173921435086950006611114407975414074287190450397361946526673260946383305248875207795605292077319393495182917313902103787776379629248198486961584598265137211665548380576226942522306405128188013691064520122074785659122836568256438913306008627838692122855200439336611016488862440673300355621120082903590052177548872600347785485782542020734722592026127526774393421834389323379020605859758185878105883942519892719619443853660409876521201811856071032824192944245214496484717699347176456274971180518795250712548384098275376555093600026662160624123440627196456263399032541837732628533918928621378396889044782383830931641290954524032188484414081024972270709839983233516277024111585619924447429200082653370743783975107554372333856355854239088337200441907467225610415251608716324199837058579169353491331752360024691318973485294190307489469896928566594035116539402110800250265013434209571288049480081405597248542300232504791552980534173171543339466661380048169838125957456653888350240389943731542170391542205333070847216147714149047419022881055279891471376654222018426136744395477210167808407014377767219170293104088122008758544458580821379641970727645359422377606142043029857949157373832998081146122228097704019168277646977259244601155682719132153968778551942150652305637918728692453402005217410235552213397285816279927802236230312437893114516395386982771918581234679541811954055549378444367076973127693382898201268809380280581488103815357261149268779296532960813779046544930688584028159950818612277097743011462874452474781300655528630798804251887096437902368799404830968193292669125590078053938027106889115748395909495071629852703147793879902018081357964599565811130536867783051786164201849632141688501011617086651770405279739792410314268056803461485479588331343566626432380251682052710073083319231452374576375427096409792258908077819793189188601882586268611042851277168724808147309439042797873336275669283848497409248522690492696886954492324251257155325311317560197591948827678310528264329979957074681499105039960537891322499055086748951277386428645563357670891277449265194617936608211029977795124260096383929403390902927370445821303322546334801415831410550697416458321588141677999318139711478615981248515652662755630225969432334775082965258789579734748850885645508211789630682852367536401946821960353409016559358666399261740551297300951406511182569820088897281470460566049047870780660238709743724502108001084923150222815445647976580615210830041386140179189385088060275131440056568297766934931452887604991688831037287345037943162355226948712086711811940865988723147588738040550035429631707213004984024993037433164175745704890720385615402992160736056961240893629451442123364164523388740204720127517973549593153406979088932780765491945079624446409894579924966597596643994390074700895497971736391754095516976523523633554842472683493139972086239927597677438258438651530218238392215893885489327218257438034704014325790003602203772444033388727785390541745275999404387759863345371908982085630014706441371618048010066159474412499101522457736387435827359090029565400134609892024550646944740253322421636812647563370215745303234098671701692424212731041703361736356819708181803219425174697771293405124099033197102145149351111425567904862429280503552071844327739327930523093938217739128209715703988457144608017711043524175639271224537677650713893685272837494911335104138678050436412072690405579078581472384236653072573294159784028622782563309407619186026929402776278632137249231370512319313479384978329051175093648578450686396440527599522420181261506797636209225163045352537076107499040173548674968466623041789142447878559752678510291631288887621528336510381745218899025757343236857608277589424418241149359825624587718534073252110182484182227141264751459724845791955278030483801750509688258125528008277064007732228638779290810461411817658028260530556200959332327216652492886306848723121102260604633157388884550754470640366706195497382646930188960517289839868128875594532135880120958040558918889817154687404750675075378131953082308556300496253828276132431134704343949791191816217261344003337433211819714728197086937744996960437008946107825197316793827463339846971077007371577245658984521935312439591954981944305942293139016426826957207040025278636293370431688888615571319573941364920478378290931824969560379673186330534416441087503952602759734152319061188355725547496504359340323156556694449427958114707486386545280827055181373550912256959437365818888237348367207812342142299527714027723843114139483643063826936427816261270028020352429827950330562003824566607940024631506102082690873265365881787932141264120496138009620882003946151135477988906841779841959000295679270175693635566735680024553582038939726379985591535994149954576219382432228109514391435964022163549857774130387951571560139996491053969376595420469027940986019762850348204121560969467694001513422491261588797274138066641464791326926888239676944377940477811605709261458234566956788579027757778065345608581001109056574068238894341641596772351897843341771568883220128761670951341848928226678662072745006040279469889213431103194773528537900324840522107460347148542770147060501137277535584764735791654904488856073428727108865983278540154737206515282736853705631422872882033625394302622053174812839103586640432874079669614034108178256834515538218242866196303282804080352704161350376591567645176935260358012990010491454552446099700663684856770042746670752590337591358634987363122995228084025983666159975530213497967466976405085683255833005350901886657692185934157345344584190259064283365922080410692003553914633555729266867083152323951143447235619734168749575162284277187083408498108320370818008822959745851220689321198191113748183250893925046049026332988702392407773935663106379056587985057096520101142276836381168186403185846256488907579942780288707520563861988256785106275557056941001972396194503614821418660581147073171778953611573244631946786413087757343470699151606796400606136264757073801252012381756263540447539031466491912989034597570682641835604791027785587908598306139386584161678848944578864081428255293879800293870776108335002955626983813700948298100419962272168956943603635861382997849909595506011713061169398904311149150278162380285515576290961534330421367674155415067310624328031663070506847235426552562027613127055641817627581813082563044332226584522641998673774428153774269743751607735150090436427141710939517667781070073627880680614609501221211208095355969420935733011571934928352331605728710800497963864724374611797409610554377166444309861034417210881972177031858541904946933323195426249114501754948320225832531493330731754490566016372355099157433324130824355350472472946544532596340477075390973925435037421806352645465409001222941050428172936505131253694720599710657379108143190543092224735778722225888050354391432680913498585941397641175851050241890239716612642739738825154359546101619308527889166200428553450800332938342017463957155511980413055615593433470230167314077635628406883032035652302089603900728540406379359390877722670219538937060275186461259920964705899957565176975398770895908553155967725678492364316030174149075617782072162163502143342341539037234205284185749158241768963781521385118452335189830027956032054290992868935783025836419228479499762032456912986952838396174290800692629374175591948932878681563252254974379482358651048147566149427805230365703982225171373815941771789917906401334324353485882880388830248944227165925353483300748993215426784662080091699702722984531467532865812368582731941109871579501537399232226186262946953916575154190393472593861732631791034342519611045641359640621103746103153995643623939232736079676967156778001804199968527881768598694288344261202985340109267494201323953365755712637494014129733321003842325444767344784876756117764091859696984583832567652179565149920562721405538101047278037481857801252316224674184369035939778508946598744937845409092125791982073083997270706647455930438464321639190308715366179605870699515336344890687967299317541121441093876903424788667609308629098996369606184579986827357557524811075462788143357244802217347639452257162558368505585020999833703058518843157794012256171228546608304403619416678381798198146635656537724951131805374218181120111616434166782349570825921333829118993983673959649290100410009666463082378252784183328698775528378683370728230308249621359042496761982130495677644509936968327585290155314249539691855138141615642896069892121444699905208600580029718130282338395932862136360562012433972115481244864565067247559313363092566793821103098493822872339922678248453006153120490070490134209816289966428044627755657942011053002019171687375351343084647931740694413480159832816313876460848852258226006576905848528704499114579583600739162992942612395113043287177917768890654118872041337109838377389264933283601536457249188965474345099086795686963312991702773233623562384035962008468960832472429160204238426923233192802014053576744499695220440679719403062897853787097781232440409298027032254841920036035776627815544560235903777813919886191004843135928387757233223484831086235405288407393559303131127051190336625504344363568331282542552871812495603736763577325400214212155745189953533324459732881228526986637616887356800709231517086426182620150372073005457038836856325937058862440363588783398581372744206135878025247757821019793041282554007438396091336462194892453681454557137936808582551134829736090437983597743837304758916809797428776934364370922671770429969324261842876332926003771480883270822708389460233228862330024610082983908990538502959928877438922026645895504365155543171215400986184576891138192744966131185349627451142530192494104560483169022010163750445398063477455300078364414177239891139939432025748037432655448531492833719190584237036716450220185277456160437003058521578679315697530312721633450228974502307925622770853955279691231523586779653061771929627661089202205167172203181341797666996773808949387692268639023938212784209281893824271978151049214186930398251092133932735040646549551705650675488434388658797697609225275195316336217500548377886432691622396939262380640878696526298433118591360793831889924642115722907914808786497532271865637772135721900004933047651911887191187859674961252698556024639130711406081587944892118443162290639556531390248609422708205246272650516369327187440842745120171959169551826095247740969256980059353737203916701552496038175421256333479316741123185388792555548972498272353397634943436243399239592009032852214895218319674852719641541081604601028737751424957940280247312095615586397993856077354731947592409101403434461866383396111010394716977013802340690740503371772982692047728125357121893584878539144423697860004571862987250982288854973882535243085366881888972756529850243330516144937813866717571064590171768961514407992619402302004720519318614329905568782632951848916854886250674727213550095493863174492053830964651188769826063083985425540247935245673958095949247681959782597313988290186401274975065032872565885208057001811397304929593115130794290817754547885374933997121220396557210687712887142839215535856424535649498492933670294902489864144807969225723888742399397242410852960658654720154373799179118036344485305732861385410491241456584109309727253078329189394044119885048413018101684432061000097025160236412951399311766882881609935640469288574460647381115223076641456138954287210110975360085256608295033704990030367671530186101354864788519222298041775310615486621068761486452111311475731446161044007787491866498977748268660868800649675204502420195074921969575241076328668435764222605547011721112165857553764758224947761735107889587641732078832597934660911480435428962707202799775839587062648454678112623422451241974043657613243632633309461767933932627080656780289447034109481211818802897719766782978450380174567760901080430338753666817465881014162757470297085244212053710056977734282029562895526208664858119007582947365697225765025218978063365822223435981340835461602387849718125658977229309839399831098573281550715443561259381798441906357968045075347618697460499863451636277593497945236412883041971797205968598342497382680165040894950769741805919411343991997312762330757152748005881266098545636274570813246776202942638373463802022802173147068924242457490815181618836065955682402867462209071536473932591407236123129269704981994379129722130441502824595980583570013111530682154878956072808849324718171547315297737771749594919651070491004202725138249664990179457813548207756223661659933210550775379967941397521665156403038838825619391176806697909577141047797730040680889137890025572315927674210441769275927184055938235958486679656129681675623733761932612924694248049581005098982499468467488094694890996999508089790752295572600344838438187733163451554123713909371012859704594503632661184814386390088725543055966288531541984138334897329059841804692685160507408871667628199291767696726575265024660010407785718352027340966522494397129388947816787168636824745024495127215028969929156875466986048421847559130780943372800360787935175845038983116293635331213838326983928743590057298773414217958825422700958259460121813593472228829886834794676787052705093830237857777363596999479267271199499041330624135241392368131505490271192282368405500261505242408684574844334975797533222618504607322394959099057518636591576836385797150838396380844517892763311837300558708872296120589889210857669997223284257969167340718819600880745260081595155745883657579033375813408971997702087264779360549425352039509412178312023677687255367814520480824249084896658530381130145713306907746020726996474343823924771039018881558316114785998816658461306918206226828925599266063683850424808637869581598368818069312040605803068678374139809737220002668638222597427462136968043175617602158417075074692818458479204540222718423364348424116625586861733231705780320183819499632641921013697180739238608595897797467953155255108581977819175774655610540003274632373145554638414984368519952910465857630580150958387256834173278204657671359258783379636410933279740617422410727933264799664145622293488554321066615374736702442919393984843151308775959184180945673132021028775286442310854819381999576176756840051952553475842897000060326615246549943516833677017792965109924166786536706342839389742412690797222041258544899939467945848219466708412434852421204352511616220574359834196183672111958486866889527345902120266217962924087909324035765759879718415175793305061006836772799240082898263171277004202002834441414972460753309227579602532622545970703189935575228209261456821450585334696566967996913203952471689695296445240190228487416437532224080158129030124068160201170228626937312054542136713032708362788177074028621085889983031708957442430682543897909005213967365260859957181678645265517965325212633158337704417284614975972864529927517080517705925310979156519445716446687394590126508196019110918779227942559500142814327645587282973694624934209195977093234364988423613421433551746075221138995228101003731164874070984882456774808225543016881091795504819130771128148039694929376259266277023474863198644491010695101967682308324813371138192948011474107989658924697768243675427585133595925792083296077361834324618976230903452179100223368159687197378356943494434261288330436785412008690476558135557420161207216908134289137210985999363872764873984321196945014165961866074378062922096755910219033686811120273338245338857013639896545852029210270846494635484527317405711949960004684435111074699548664058644404193839046817263811636679279385844934342094234990742765046307752974974233776113977649832405840690324573833519952976450496978971224936514350294961272849647409508307536396551044379133101126305861797581636033017897691362488567593652037636132893629548794121063926650134799925316071593866560099032353287274592483818547929353785472142714822308017755621531272041216274557809992823522991387444794675717136036025222668788979189479002311795466145167148455403224210741062511687602072212996876899014678190988421720773909845212282604281288882594545672180434629584372836518240758790446252425800380242862148004977063624676766052630611967218081863635382027374822787751385433588073054756844258389380654973870094766444644211492781694520190701767558791632576060604292750194091579671398679053287502652580320231521069022659569836250978309462851129752702014808823466526463231181490472437462275973604977074857531548743797068846027005641642578573547689492874346343773360221040706140185039037913469648457002490910434215529696134340737212888438740580088209173930727136288209422990006101706707676402126389195925893228135693612311701665039875385602210286289133743238772210750304482824882723408057019291066314758702695133601686657181647691652277079050045590201693005565972343176298796498950306825677911800956119319801835185957201050035816779789398854496039151101089946111676130243252295010655786772466661573214525636935245211716222850412254746166007493293299288715653822020644812959639028825343559654832709469884307917515678510801701237396114913839345430395414265222625769415507701978154519020856196810132904169238532587949151796094582529371541694255846156776077702535854552123640454797811664523109826383697641411204173980322900161564921848434560596500080682346738900039449633436012432892125188945580700799408011890080769682788567080089745042800590136165115904880876899151336459676287434341125406523113864812481698091773568416466683441203675221052162721800679050983136477889755272844644618062795436415710861324047162879435320670950842853757937527992859475140310880074495601284432443744024103520196875669866214033104640272275586019332263581937861213689592505633282708006838329289848516095226010734985609591845958201630076673220401456583342677611604493356819536847839953599931578530248539233074656812226097964203908856094793550595297910013891210044643663476858659820376244910595399977930524296840482716985819611496821465257063014930232333320027946737232262777312968651978631059834700558574945091494483987657785273546785650399381087768264103563608326332711317439650307650998025226174710948547713143945417556510757430046820365514938522726938888305593998087743681666255980537494258472935104103198682016269809211339746401798267511691662158922554114272003178807637980717964404571132624972201557404105775048233428485398435012233774405227871933783846529757255020556033378816188983025397239355658196252889972835344223294197552523763533056630437393903617116987776665674187993792650689436955222529464041957406184394945883283342811786452612405440950361293048424581285723224155788884955868682695485253669670789379901466308306622594814293896356451534002458456442015110482608915441934224590426906776777796986001447163539941813878481928314435148724799931400892749360330175746633538148709481005729013004405165995920288694979893277405367609684503731770305411771869124082613164435817822674393326059111140398238178171645101234957626023517663973297543502588927465742258087635284203175017696850326084984443897011050469257706516437123405942215058192413920543083044244181589537584377660045501283331415985421052725877083928692460782825047164677819512438722858853444481921565411925055492241106023678608099849886678100412419931485845118289357786987747740363424231919144343913762014689019346847964606361352787299966411774383690447561848251770514833744634149683710949529894173353827456653788494619022625781948290348674416661294554553907433344485210551678597443089152503060945689116147049356413307709460514060072880979658019775752393987150008109433036366034783850081905867932660183894504905447535785149598392968238993325949279946889499638784154420209666038199269344129560163142491231702350229119003021657460031463754350495549196162944538459007812195226624374455829958599155038241526981355894376010502361766494007727321608163008978623671061321515925427720787046315562685750150327111436962353418331355987281785285788958707765504390539505237271646271644192085391652259017396276497539498260128102638237812616147379937186995118745732297457157661160101258022446506919886196429092544121698047847592090242455147996239551182332833850851638153937247257434192498864889527501716766936030461820407029330921614398855286855753369301540389766417118467071685619414807688849259596111570818010417567065921468959615153427134215084433523422412156140347594475192209119303059063336181759877158450797381463536596863176195225192400031586901575655939370117337913314157630968387681342694646611054495184516699665309147478019825591930895760854688723618239237326975162902952765419775266623314882392763700435292484576711564742343011268442748604964892310177034756997134361402149030524843059552102334461922300820850881910912842919325111897406681232740299419391100776907083836628828992183385446840242521922491804142002017630899253340500234901874346431453100184792461798535402615472759407574374946098165047029135140687875183491446259349339588961430053343736156661129728997118691968144217834859613077761465266614361236558656360834801772725170604547229011399838887169203572040290233490749610388395572726835981330663857402987968571426470261643372300881334176606640262496297313202944414818136388505876560713120348341517902158135538940005423630472393961494272547839274640737940453910544881642802390344416707267915765415835906049565465060514039690614809321448329532918534246996152558241695938318277837111363319240216154564437757736828200151606250690058145476352906915405050356473574003532788728087667730155918075466990312535005048109209955284420198479648569635818218949104368526927288351817502151620643994877864156681119298470475670031861930528648572509911068867561466055734681848806002215071436263530756300575011770579403046240502771372769217875505792327836911055251597268429863647777836890867974594706971424262774554551225280633479140024347458815646960628564501807395929591187476416865562723525729999334460989943549221694030097696319425166338007451369994603612402898610782884898936969071769255349900162161823115974602294461612970338628566677228060973960929628241396314608502830102794421857296317046781261798683715306392902337176319776560520482490254787168565862842194032727745590983037415579966803679112018732760924308158582495886132603297506097069829704984370138290265292158616559316089650432919860459555577130580611529286172794935973308492328212100371631666672849071246610213035131120248017750566461273052316348310670116165277717430553168855039262582526317194673951465215670766149316077441259134855205814712058381313261940443372321920293685979194978520602601485835959680374065577437325531468559006563483943497992612256846463913604457190439048201907193998000544909517994398382747527510280046051511661667117590077649209718466752364723712803375229008923539337492228412369097339406946444030380816538160375564033696125751802582918484280661396076831009889298116754879035906111153995288587100929823017074654133481003675868590554003877962121572022397967899619411573627080583286654667521993320803782852010299277406967403219833447782697036425044503916065638925421606249594513375714985806135097840032939649952858926644671128661519214583252663091274212308195404134534601160295917189506428175023632618079618057425676989150359787387433545368253622056340636261683977495711731408156969655536487568856086138657445130367222807620933943102232425082750183894787069871971029280963008327948805966171684343922182359453120388103627083023004269843740283361012278678857489270412013515034674145255150627329791171987727568745263896218837088563984332094500602337224628490700417980587898572267619754293194960288528502418484556966388964054827410244795254111565690587146745637880467292631176154309063759516935634640138146536527258273660632843567562159616520600448957812605403166111609403888162900497241054892947423546697013483318922593221519304538845976654205819433861978437860086658140875893499646644911116694449159450804935641914241741220120359445658517033303267223141459845119162470746501355650077384653098832726673548680124970836122609047691976250882697225611934474953932899236933262392500576823492344230584192097835494345243082610697107319477551789761316735307712632582700381752959887741177208840648360313366549477988022168086940290021623740790262399359149683001427557807774036889024292031406748065677724804707507669718247917798789040358970410858438531063150947382415905969754771504905383720515782260935662547819176754802643153370558994609048473414102276959813649729006043423118863183306834782445233488831595475925833806015586649414951411250499007750294815777175761638727406511359302862178273364642448090581438967154932985616271158533789196369843174394149179886771566807759130106943755569478320822727435908149503735198272080096297584079499096225624087562290389535945859366037521990132848723691528639734441834566405689880980470256480735999173788138866035164912574804401061136008824273698348567481035027153671378396733965714289516967412670133365413595531242517757202070263884788117703829845114479611168673277582811078683151071270155715861214853517275344114431203298306075767184467119918368430915726148687012888550675683565617054153517140801662784340149505245658632819420484681847656184725049197059468423059292291961104287373201876606882278634002368171783695475108793338420119551133177412518479959719675461555617105740656361726626981729134614225926939404643722989114448406287445442831387748817843321806099328841739944095352209959754165182008046489436010427850405891874938564835845597106403558964180955119126635554018693607183285342015068876273550331235218286364062008930169214288642990636557405646301019217916232129276027045172901106386822732382197504708639413420155360413748640860070952794393530565929574779556625637824728009458383340289208802555470347948772952213668743568163772372850851267997364827897835270606216212993108505320417402946477358220551212320651919491824958600589351347858794963802867746937180396477225109478187237521774536629909416922750417157114065883848106703463773247063734145885962104951313868940796196602462671461220038707971679235520297070333645491763167408481426288464245695441295245949001882572367107186267175754240350032714579208052226404213170884115116578772472914782652649377361982311383865760175611451126204450641314028074210053079100359839077064173433743841229080907201627019919662405883412841596376630606616251354979946978966061005657286478359189360034355637608280260356943483803494351140475162410803433359830704180735772418124576202797837957215271051031203860811530974234827861906458230961665437304202629253018030034535758156179097639317665209510950084792818768079477775473910985612761857030048336902510220948576225271953301609485364057206672046634609907531279634054081068140392500194079012018588241365688163679907079998503217566900040424119921704223638076558185385164188610057388406167351255594988803778398598534828625679837210907092065874484934601887912599097274956637668465301020847873027416421263898721117432993737160932711148280763425212848053974863431845620473548408485724398829538491409654441076734973301499779255569072590102497665736270177050983637343343158225375828368909615432943173839481971072705180260192396382593013171580836954059403153291572210829811591069156342920332238936988672896515451758327251960806212988617336651995195457833497514060178693924055925949268747697143408012156280774552278796093189883157078052196870913413788237802874158127613065728757710117580337530986880249415073172201542869313153549117641308323621237900987525020024572121246836195841236401347581813292896550997101400581324024863454438006713105865006661141989491781932792210880229705960804318813743204106355363927509252009753928859859232284946585458953284548116117547764669125964564361298087204275896154625817365511909827639188547410960390581274181902862497353332569607240263124730887858546065529711816293397762272552767951459502311463860502568395856830030689744715822993852598365792007515470345579169608955397343274012952583340059185443889892933497904259267129198299784019209247451799280904759201697280253610263403180002408202867275635607437465345853677547517545675564030790235556066550506169338684334874382746380602815686385259902271856967653755022431996506780230060421045106239211360693590060268637659911042937494056136884735325884353127189753486491226279492249061665829551288669237473745044518119154619878106273191964347634189682732701096324286643504109222071390942243631823603347709364019898604348373495127659857154917372138531639246715567906221154455061434673122078997993677649309407864891940282479810585393830551267024056109740173222168137712260580834012228405921977309762608070108754471138292103506107082515778518627326292128760026831566557369912147723340664268140971063300665985476200356679088293427557255638784355217528858852876967141744604195486564514174287661605446955392695181299110538877324793020177429521600509649533448646228160170770184978348642637149163835224475216747583168998587554486283947408871885405517583869451321320298612717258015097436058437802454897592296498198942981678677483726360054646237004046628461363858120891979017276966826754313316938663484669517508956148111895591695735259996857926976488357577426423026529015138764019252785324561334665641497207673126495424279666489542578920184343944051612852142691308025704279594641143514732835743192755133269948680839517524888949249106439158659121113573993714314366490439980639420987916218878831168472757013714618841446397416416382096761415701172164436150796864109084107919778981253318038328159061110970289665747406888360348226493940842701304589341377678112011809604087829859386357613650931722111036384067162625098541035897936889271292973664094826418242745839807791723566611036080532279550017054577729578791930056366738458706787270849891916203423255586457388787517054934806330319224859088304767763618862235349868552976537895924447524551033201939254701445472668342073248439592315812325653531898675758424444770902672522120255159499327320525181875155637085415658276221619354954464463484937539735873715450385253021061348496481444849882208776908271587046993184746493603619070826441611918551968395852196383010069227586177991790498707424745245392917945376882603637177927688897440046411889187459577086882984769167916222357316633066289504961372687855343427021669272526069764644324257352047349074265155636329073613091213716019236847316008202271593628503183171535363566953337310954487251517671953507579983033735252321408414544700027841591147918789188267508174704328741609892611176196911347012789453636091065462066440994302424855147318500385150083782742768664337740575747517108389084917322491437803508623261346981031189995532007403591121057868374406420705433279576296775293228187923699827790415816324846700443260541899294562604048945864644502942291068988351602643440064452761491743975259239112292958284003385911814402023658587665055113699638178073355348147522456871288385645187346183288160714057654484334052969051279742628471917182875274907784699925764386129783493780017837265714132894934724064673101263487711686794920163719780009303875596378521060078830030431782265278688622451841934819482631564354870279838498194948899379032516020040278217524698984823335289613160928107435438040996809453749517189791679711453422681101492893516959198196465917532513138745353796414321403544543662558087665916667108076544247528475320783306777725339843485769368355570540726446177192147157315854558920944278044303221607385850281849883875716011035339442025108765427281448355687926981838085327414925652981115066082948689206767985297356846678498924492950652714324011329531672667215598565141663771822459476538390144347663366140821425944785329747544846017844797360359843416082355610695772079551403217943804976095679445506661936597744174553326559905220690796787657574811295605150309008142599179871914517196104972225478978553919839612919324305508541522879803078448613495867591693851864700751895070488698566021011370252665517314582984596487739539610836325377785395114482179265299178769628632099061774353710859688649916676308246661354115366624902103341087482246900494839232253214525780440387479475288917750556096385763153234538321641063552517434102777423830036634232777309791590571742189245151669697418506188053110330147793901582531842730164648855425388742272160072865113643418282645067671652487643533378475696908611668701360895709956738681054675595523577620102892532517546223053206485726647632541797337075735887020160071701904613037689867344136976433513095529823575128283858707295870991868456273199000958178461156593381688461483974881008670040222156264405818100285160769710700196372800501046018918616423134454740805883672097212207844872996062599903751358551419204868922296598390834411567847461701848435733694657552062866070698002294046999953120847022357817047775779831372146128397532034174661479304911033180421689340734119091739300263296156359357695351027047168918138932986159215588857601061932622284600923997856084277992312828691145480814393942120619339139728847305152964426959148815419908221017669853195620598832908553305835189254901747400340188952490787558627023557576415608461328291112533241727721849866636061284174412160175119097530084725061066815115027351177926953344164597419735797980790283453300576752560892001352142216090317576014036179582063345093944306118359844520866618326713763575293677929262474043827770610372866281577186743919651327244773481220294186537403024987288755299112819301510672610884382300244609022944616056897672306535832906181583492819556362942115716682312516207023188865137389184880760989116347029307956652429952895409319686069338002230361834190781094704148829995083278384164836512426764130207697613814992414309277545016989839212513923471755166995452503494607665802395407233929183523783764547833097244840986671193560728803322294506452364355990046957286808571495478889238898834934439272741381036964333215857777578956930586916409628976238660716486972958595885860490538545161926210772279818187130496862497640262894935356199080399719020804419451204886602195555198836079529274227763345389552116872934431531815742878693183997910641194694081514857189891669987221525343663962701877306996871086981255841347834624971949133454335356821055504449500115762084227080338908550994566956056251670653446114997615891269486586405072613616649508137877371891424011040730779335977876248212558742163441631556817346566275091776455405821831467915775306048434281035057416118681464960992003238339289037035557370119931269679840149172995110890348802156090257046928517199722882091536568240913029861114873903719749250693541715002495261979156446547521891975204846636037601917247699740482610203499569124075461733605674179326105805644447494126997119169301222974634978607967052818450296555515434805406652090188596524990890673260059527483819286968336305319127021435570682595617429504829969547329465211615626109380529263274960156754040835522474228878167377245685039344012687582273958845407522582513319013278795382308707729205084342374840982320136552801530221721206436760470059527600501230239990997817105836392929351475090700149951778027443399372962486029637708384878079147180656980288339592363446993143599882593254034429709702213032675406814645501706604192499245831064881065444768091834261430189357885491976268288310717981196162853625363282683194174450809860337442860959407226116576358515282500194313912397193301690094629108454190324664632404531068645124922183634716299557775261842475706515225620502790453451301567099931086013219628248139002893615782950985853750166167420344325132600133488891719049073777226163130765903840155530741789647687408854267933825231748750622685249614049809153260338786414681516770477446127248701556811425625049713672120016631638209187395891302536928501062418014610147247406596894576555902575009196398174196248988760733267901581852887624036499667564440935165441192356482216265628277568156152248278622632399192683179555579460666739509381981825898765609053523613363937347449131547105019936982835026916257497810359491439453116358802257196646394936745701611278992780113304768337863071659895996555957771219377129247068918204687091198707334972712285652913515042349526436550943911016245391062482401084157175000963741149398867303321668155593507929361195433100806332167789513772580226659694606049463593908754768583449640371199406626918865258837512466048840568911776084269716081690357596983467786440041344459340666557775979184950443914709818459463646892220587811834980989758994408296268740139290856856337565264385152793939774420555333743124834121469992365273666816394979489556201853179975997625838446358652400606779401302936175983082081344042361009134237799021598845998920943486879348906660062746454722728611664569575100529133935040710518869798730560278420548528083635765337049756534008496162740344506821406760439975851994776723328631132551718980906159447904183664757766688078340922237142668392020013671433690349340437829460691368342572749797348480192447029297404573127663705978447302035941408719108398589895288005629223365690986483512381243038476529865473169950049321248457445301115275133907705418439249904594076950264428354863556329523883768180702903708473285723466138081403703710881832749004303783783797239976753694830676083365854564184164270341778280028259016947697458943659626050993633903105553036316315940023531861586012500250940978389604099735886615284574650669085309565225879745085882108603967325497247463508055042646864987789973846843949919317704555502546284027080183449797181825388335028071341266088797054157015070556020696724613554158097271451621656163597123055975423559640240169002542977393947268269185198574745680801596878990966188929518025264679033733278691989033151356514941700598289613238324186838553308292217701607682421726110863100587362038649224197766803452915327338795383961939515034045724193245331958829456173771150452783393564782918198140952441766776976262099009494616496370574300773026683502261159294742163215905915546639630116784160961392445684257176741405708663108079460455017490533894197267685835323845241332768082563990787418049893210646760944590536476435587028368940565854466692165213106086215756258428500483837701391441189747033380308322897799023780630176536803323328014441780863336349627270055112010854844908173629348887311954331494329524797274542324354742165772995060232292663719856889334980523486656938206384885760859840739938669912278535682663125558979646815235167994123569234993655518554994834186277382104708482847235418051771934726254965631307765153768855494283166192133842111518237306648768543365441713491760073257627068692645599548910155093778284616052765036202873842104264107499526374282508407219897363985518825337103223057139418423585518054932845772704451847140094076338852709457196263577715549596675603711965767410330963974506985908259289366297655665394608023836595887115650057370933019484172252437192377487023514213687592754552900482504474075780448412113842707725439008652930156436142545234043028562609738809280020891283333920517815334198542907856084255272485487019969754324323445121240820042627809671280619236262648476073311577967118307053636388485035554784366816528141373560563168988424070537835968675869430570877181913109607054176734311562516241840338197736234953538038203260054203199169828294191654736701284838324144332891613616179007765746864586088250990417499880247585218046579930620851554912053369482434963891002007462248767833373057066502387984941470942837541359677965574295451873384843011627616584485524719101888609852799644558883790714289841857001933977688163237038810728389511627616374309630255783688210864470370848577275134501910207473446927809081422482222861890935287758142706311255197934035847622887582809062178588196853184527457422695524866278157631462113718781689830268767801358345483454166362015406120302509350752560639899382791815418679049570173185115334788925036549138025794295268071724968080663223168342363149831943501165848440619139273008021793780954898565009636146925270374945832295185960319040859258843030264221724113920288097209033109845966734254140037117712489879895010829020824662438078201697117540663595943077545743574320846395516291804450746399355611742923543659649677660333571822345399177700410878911998841738301200120240639331337052109527493275371648378924411193911286932025274186300056680493925725016308581831276681693796523350310462512175538726968491427509496683894446789143050476521382032290561030606623330699276172333742923476670060252386690785997193888545874000180650043442211987851537934026598600698560887912734768601756025283529285905037216430781521974070833901205225965972860361357418768235630768155673554632525170968988807358450267910097941717034486392717083741847667529859231959544553390976569908153604894425572002851017608466258125016834291364032701297803860702957464430019302232493286637837463419111563188898263362402793097791273385949336317055342410145615391613493493782946916454936300074960988526007566181138662864710527549478788031373910793946572840529281566946273766030566406526207540184112422309127944712921672189905876682109264002646336927969461712911529587680805821454429037230721696032373256036558511818167494272949084135301574769098814267043870695904296184237573386618857964822606879676034401622216521057833240077714934092047830126466764256882641636122778405406230713118905716214846036592155337771254137532583342789607234512961835786959457721460280603754101532792983709713627079357674341994038268178296038203302007447231381395619904417789614637402697579150049435674784141056052414967305400637428989690537131767838224997084539846242206877835158055899863764191993808444708179769298392044645811868978506332208207573739010783805191830722041115081722272628699785819400124992731143098564721528717901165253664567648107960741019120476645212976733613777859836857692676553925650440583659585439709199144468194849999348781599744343142554783862866301465030973843103258114105158736203371423370375033222771054666924874210237622125914085433304088016742310774140651740446743937192964063410669759795396719762307943968435535805006919602124294226622903180268645220333914371823351850948320960570875287254471287449238847102592860370880305016211682082974574941061181599614958294392997499936750799911549406089565528589798742835937463997861838147809132459603820982132108753842441654739687023299328928350285381306972870405102382457569303829575040057015872764448096871643109883992234638888083021110642613201987047089788098720080771199548183518204836433895938152920032817289565014861688871694725372705070679584887816075644182749028277306912014840024742163944772569658502176961589438663398741040620950071840189035602551391675836094069021841274929147744894497026715668043467859582198214565789539713926817783484325373268047341180211895253150783041230394090798116978190173110133991913766862648414417618139394135992610810808353467963339498348072215037488612062921389751351897523840558829323006979310474707314899952434777767102638782090479650932746406983088576326224523570659869481497659604120743714424542555884718411323612054988867603472241129025232921769282210329310241145697074668302965911622275282301563295343269409511023109847843538145702499568582158098163051961474760194855692486026395136405812275533874344359817289251148542371322054283597759922729859567406553964197693269241703152240652384705434405799068532688482887651817265851750049552634686504280464410458928609101710274602887824425994585358268638008128915456629357299369017587616865339044462173858059776500188365118903586449535382647854345469061785048550327901412417796543874205507359407944451669847811995588476773232662807073477890291310571590699307969547815358650005736192871135284782613301106763910620685963123225789379672540863132102174989834782273665401883071333168116739685630696389914885444185740920522511859216344688406406606086414942570965539881025951115722742467704886034811558510252624667161948037449812023967071668662009317176361903354823351471098999340233036166786924759222814197619673845080963571383551235733109586668970713846553488128539346231751462905132171226455854273981331362816706157845054303420762985204999867582360383682945518384554492378663899086223607696497982779494495296932922375769470591593282202404532956633630469889149023287348784314054720104263130693052512884159070283671331296743308448485174212975418484846403986443575968681634413685981384067853551576272165892938651111097528070455820782097659677684626565513461419587971382296600792073427931911388739219284760703007633298201004090048974429789217651694841144540902626997901576001918564442916743336373196897022111295575367909483888638612013612245443769781301390586027372671845461606025794812703820127548860567864297721658235012880131287274087209530649177733928332494807626343865206580211254522551659491959200285450619290924593197711132597255861829580523634748440401030541057824793111309753458524585839693328326251105454272824793441239194979691859850601805946361181483725821806620724650054900873994680310808919700479714802836472309745725716388931483940370574737062356188924014388530889580661514321459486320276462660608329035799550767978216360346270280137348344158986022294387007574278657137266868582926687913271504077929823382255194462097674270009606625158063513230161291745896780167828210674552755543227428726031673536723815013613178396175236688603476664769630352191993795173768256529687532639457556323474442130574262182440686564695809341045578091640912483928284842389510979169044623477875928503674837863448560001462550765446200642355515779645063591621972717764358858632613879613612128537735734817837619996477165166688873546013341280331922887033794934311522518306855356188494383483899599599275592835047470360518745116498503378292682292145468458382975109038250995530200186817827894699676896085211029262763712943277592354222487594280018827909113532631786965165553523821307534333585943624017486773321440358011836491704211089035222779878825243914824736423497903406047467125253476979906374551235032916483849835637909216987641695106854082819598371509919986383774853605472066131568374387861600297803137053420421434671176794338722174852187351546076720442253882909425962466769894527713859087994839820849622678361569725233968285275182360262884187795999985998369843514806297346894666251664127351345820483357543623976438580873614002563627025044116062308831089857811548642339526039861195701143742214209100503913209490485905810946006023885650470817661358028888826757208045729794109785759936147039903224476458419885640200201812077148687228116232799047465313416205578505227434926131067593869575282810154637116631274695110846984256538066094065414167050146883744953891298481528024020731235436762961444290759232120092196305865415117066835860266208944022216238637538989443796267771095093488045979330831285372467591996097270374737310908558341292673034223437530861731867972892226772472069502172392314421552586323386367991164633216618289030561471592285972515170642303174633187318630252041618125614449111209030990304900436429089545949372065588301569146172191729226042018322573766868117040357210264304295266158073728783535786941979066842604044454282398648547926204226989149660436129721052781094637392905702033388020122169755593361342452614607354354441140342883012859669879246631783232784983739718116749166511670994612786772790777974282287003970573194561882280412490420785472345297817765822882126259204851110813040037080805948795432430831500730103014114638928781049512710391491766864788240642276601047953603888705183003360584218332818418944017836430032664914400367368783254390270237649669020719550194222215983663215794543234423089966288507357541513937853236424539354516587857337890152078724220758097698138633318842824752768060074450128380735922122401432004710191749963786676688515776589355727260481966434311057194773597015661768130257371945117998798779664935660619585118774701915380432028705647140712910675026924702561352561376059361324501933701365559360943762452790447321716180295495602512034589918688271805001163123567887226057413684677028555832135231677194928727453296224781290665550954549765989593661400394448659351440162849212749406114360235501916815657138300783475089368622784307927994119006151615412960204178938538188265373130301496597629530871772193096179283669363595206672268124777057399290303365226944515344147274524731269516208383113968933152705153723157383871717701677417952002678467894984707486049111277189328288928091567931464269322973040616162237433915223526303601021733332944933814958265971543197170691617783182677826950148719662535719552137153738126947706378435905788396277487242143508139015616212116232397988159640310827597663916153780206116882254778288507093700114110303267261385647422588268269103556284739280414856938436445962905682231888689710685001998548972999752977862237374375227985968857252066439922040972598150302982195720229485435672999072981983564713347926615372701488197249193828585811521035687779322346261176473587725028377515339402862213442529071558826091845696163616687271091243422885022421234394072087438032861082614461041947573931409054993189376376089788168978601773406718337711852272466212806191377355097194683268028329340232056109901046658678034941856780678442248502822643002041494540569899288591884832462864478242974195284992832386285753215731700424916129573228895517342298254109527922592970918420799691133994559912328566879798986141535684788668913817951073942574769280560870902706899268251662276635755787734529231381659871814465305075631274148205981746412166767697075708004473836787211966132789773836182156302735789899726359561475057180226346157851975668379970458507449191187737801861009100460264397516870550447792255526704837428051496465957528614479896652887660745877437353467973188979476276139866712956562287492217677644284687780281183763682022214315833033808568554281534582004258610526392247616278562287221798160640783498353995605714521737510401003651405223992471372479702832019876246267656768682373995370833337798952665418980816130409998275597856547278544019756911500760829139598595384467664017863536638284521225620185794911390233390856834188683228174645265669796119851603175206303264201462199790847044107810922254552275023351311131987838178656394376370025179270947614284941976379757254673032466189148104957178739188011683393615310453116584936452023045681812219507338860527211586707190942552118228521908167268660988976712154862129182350426033359981577337172969108630883464903886425879275933054196425498515687873858093725067692356371892262742742086986271237630285474832505383118870111912988496456751451775234282906522034988806770379025655273280599383669375126455485572603643423889659568163269720871271822764379556838013093004347908884356206056813990291048838000897392764961538540209196477832320559007929892144322776622471609895011158950453422030427456342135149844987942839043768436382006503767464711089004703267683241298613634119476055315623695733417363902245763599003341729228291670132343427209720367323193205366449828999427188452306117982184912465093675880915239361743560462139438595477922307811934288652117026541803439170415232995201907482139427034618251510129700350803617745900920467713948650308406250817744036102671497659345905989617781664302835918219941899454271007756775731839201467138141954284347822422597922524644186275557227895571240384018134748605786019314721703997565837173634013883447980589468842416329451609971236485391370293014197046725672281919784709191704133628365703103071755895595358174298777660767481913860121090601395917030150337555431675701493509749729985562902115561112377730473263562872028866834139551185064038925597425747309300465106397655522883295057849923351582602348365298848396175297755638171821796433486241983962613420962584220434998577553812154037610747721260610328703760869744455189799064850105079203074575064075386634301442753034196380847756889658076915803194261163031358564762869059593359680961495704958966164960854516608077540543097307576499508785171708226292984007525756040241535297286795372800777622642055418163643475660123137014503572731966429313779301718813694505500901826434213783854062844807202641416850522552442691752198145293704199738395236332450804331489966739043337134894795727498898538584936859430085725582314928487767457128163537361173527205322718093428888407991200105746259416439538338194312271863312432605678664406783160875738675321654342432541881033222454839150866014272313682032521381414248694860718770341968507449436139550562607515125835512991608284846641094656695849427318652554713121174449580675082252194545156905936557808497172663410864808505446437657313055084144910009631407004617972281171739558314616711210038838735725866550745861838609708640630540387297746465121676291714721827850143009455481618221253647784745104567207492833818816527460656087363822655678936297545519335648998879124194144478862377235196509533661703422402526999734706795476033666374765298538741621298402813855069354514801651171842732477058628557946489830006795442797425712621597551925134404347377147796796821306405466789850616944303869529388559979130546242871333810931277686584703520289074187787414253855750189035087051929250993051223772179388235134422499759747795388067430557989720831674143467412147005986482593139036281215592635040427075476861760034796534934079835502903069768812749385944864084313525816463429899614602852644454511866051881544502138425676810269988023752608484792837394282266440097822911342882221727280818769156127225736804322415168954858805019395632691659989323239514633114201668836845252782496600029086558756717548715201861849422681597776861613374863222400830149561587436533855567747114486210248477568267635738850869899191809664794295279220620241508549582013578587198506223608644659594792146101881214147261123895622782630362940331967348199757082672369693873532944836223980882084070377117820780273450912786113885852711726027187152135743994577581573919951906383681574303093385020079831853938717606747960561323586884587522969304408967739432374578136705303956818505437979532063077671748866073181158380400388221613296139448174999788550850741795880482162400396184620696956131927027084041819213156126494877511800648879140141621159351872985883917021508048625072689091294658324613090182768277722562199117661624490638291887508075751874523347411689682334350118485285051012577662035224888531237420113444845024006127139055489896871131147935474558821852004677481007017376800230704069819984706448720471593120237685527261749070539185407132973753144996773646679890869944704300803805987583507926032746147864426452349115432982538784650915508757953041978327164849497817839422812914979710861656775529754375861799218640695401598571275004415789078303112456057967020895438377114177562344618763700093441865089639237233366258984346612254720905091337415231066732719645435097643343650642227293229019950752949740282099326458018802907792910038162588890794417132649047546083494046803090544268503388650076874721538944003095612932370958862578972687308075022137386585906386462084720701642728577310764834652926186540340581306746054688223147304330809100300245298714887447979253237757613609599510175084341244857793901171449779725049859380068381727738036210515928885042618850016657703094235047786249646276728691048462684152882889637491222406321372795089733257319878265934745204608166587997407897277891003351529482633644461459169971183421866577461492764681665921051525519204829360590810862660366324557096654411761259493451566631664126134400903244709471123951632094907160990733619598181624467019586503791262945034017780911549209959948613828500200826446022713274378184625212271373503449568315764178442919360727433544485570577138252963451769918271016566217397280750462822805321293995874538060318867045076020179566781970514855471826708676306050778718531445939615902159871107314399568268300116296931317470757290596193573088093901003041315567540986327291700255708771114869411083577151149720615538611685785824012812901978856041034289948367553650305575653629303475757521917343814150726916042439576941188469380708773488428157126438590357842577212264447947423111506814206172145357446550186989406003123731696948150410955667127947705429036723782452384518810699680624988076773344084304506200171270612629424934166803990382751854641453667644349747526657096568896155935312877497529289760571936415404371977542954308784030315437560406741220376824656229029532680508998834412194529934625183760742457388574945256215699958167738098690842915335786269000152433071772558219822541340755795093235472281381306742348452984848713477177131418989916028843770672377826117305512265192394946533748451111990372091614747994901111314935649787684970742538033321446991243732965700314422515847331045125295808037813943895403904534825555144275155566903181785091975815318537584655246207605639639248867394224006179355830586670798025037111704265914419058130848065729978579985794920149283631449173486851543232957838945562035256212229128508615487999978297498979825088336235485128646208791826551960698597458783045108561669228561869919598493179644921692647582734633033021813370503883163998070119605990138330362063064225214858199413576058641216581927152453972763359259811965339287820091516991882061159951836252643967775997878292326844129692656158047288348680820399668365509960866646273412608254026969782180384891597528577496755416301559788924366776622593288503582653533883077353943970258648957923973956685215169741060246647579937440640913173644476329930725872343620250620392292769068613875452395113373117652450205855863006703658793862770755903088329294121323145174623353925206385548979894633538569655539993425382959859429303183983541392344069750255964392376197884500343555612795651130557788683757818731650189764337090214828989094658851315320450534229915143867679006767394828142771316545559536298743055504263973191628868055771382313886547571471798605026287408736438657695623033000334857682556455084046765475100666207099088778763275712156955424636490290764632845789787989884848870842506074052428529134889805718226510193024895540131950236323942176470325720315518113965511868744563264812567836059965814156852281319013853397451324174895920292509223954694633588146207732355330330391486409271663927382554728655323761101856633417505792947019107113904739618060183844773265609328077153406862076792968879162285822439109068532830319502179688327713530846593172732140505129255059346987080161247085447288778532025583135877779821364944414405843328529084161201776549127281721009589352677606055010874113694415699532181277706184133506003587410202309914761113578203618874580313592225536242087516963846130561085120598135238932921383913566204330107709324764369603674260898899440097729992979064718766971703570265509266222520794813340254485822828516485704368642127050555860453705460267642173825980161497630931415226701365840068247378628290108617765756551627731725931540617716743939351163385164861993550313415392123470851136040109510374825698331189616719180223941631218922539280818311574725147997244226786608715210895464789918687446986893399748137038301240809075698801999908998772289939991971891919214059069714100114129200939069263747096607940385888587465826971624697084383396800752690316993536607062475922965084192884357185284808776820380973965257101561363008107681664971357756832204640345567732135008886321059795516421826047023518563699601945157709586413591540372378817776150171843186732229484578798134976901310890352581396823413506883002502714555744604942624975565450167189511896235203809798224102547782382282419473100562693154776596581320576638828119784851535861846592934008991289787673798724190147162358598700647241411313661713951407653992241196716872900919009576288975390059508217962085807272775796906898260965752913632494379969166950933146629584584635156286554436891841308009995520689942605492182581159763680328333350815271421596106555529829377769072112178224546494453935893245493826206729638574298212212622215173059575324507435677472152796634489537701610001238659800839022306808612815989398477930290665873778197390589604492988456484381363907382062653659467235820600226932577937781774851059130197107635832117430302096192277825112766851505349555881562215456087050877586737638583098004134113082838641290178749223723529683807614686253580544277390410311418140868842543786722131832684347077668022263921715418579177152751523337514048925843498662804918225284041350766558903038954902898734686969082300007692653505201152159747472834939609717105379878518247645640139831624863001859426069148595578464888564576167942801268570246363592715582008305002729678039556636020720008114158148533621001794304203324017944430848602059996421825281694071356210248748488212529305318976895219356194372569154647108142885675316356475143103639202741577751666792174046344211579140349628013916855769237825356672396384347401135889392364632606162420577801060693130924217506547149799294585814076691114972372623231844689407448021557501983681855131866660121974557632534020328366210924076287286786890321944793908836190960891242569126770679946884352655262094378091254708676095540225896559723409216764909571218313414254970991478498468840790330473830306458628458704429063667358776489511015654242881244606202685361580348246850212093719269537567412009642654052920914841172655188870481470273477993425165880921735489272125264488906263920394840216508688694935868357558618339705948095764571539090557148673274141957019372930817727754837620499353736296250396409989982454052644850983898902028562047698201534553641333758005094660214634303256351354587578119527577047859216050764698218308186559201931022093079161622731234163974922745618575512399442662483400060862869976709097047200622496878793522603292317273571402286658812101298715827411782421001272725464077210174333536820980617797831798512943476042030984296922322809376057181572528053974652023541456549701689065613290277727907458892913010300497380226669520107564594406728699772960551772667236098819292711361129635163350284615210666622708588751652815655239386320586981987258375314987051866853012941308387743167867698652988303572211558234217501804620043137800884098757553255806864547919671560048038186510058728853185776404207111815647034285068987721525866660794701292277593000656158409259588783347632042100263808285748242925398341310574917204039007191347914356623481601684678449041019152317059238329029368490847225308866607630405423698721136022131962601174807193131418710409282655438858648740254013233277685147259649032834598533322908536995848373384669005427699212044178073708719387042179851786105817477539348371569446195981792840377822070477147360019603143559762179198442206034599402285252842162918737250744369087363325139103353613998005885059203031444406979233552589076942668637007297069202054597133636805358709154297382614447391632950106735930021349004762240877677055003509166129393598372821321850291175607037250276771909651103389813145898869021161041935058688665785165875017861033407014001795383217662106281662945455992129413225447512548752110296354980643688115983847776730793343732452394237239937983956273105693303256978669811183855725603201218507449305722368034051213188929426588016668571748105791574777306405942659319643859660069871620073717359788409256674304716930428716325455538152232038856802512905772973679117929195929736967043088602759379935821392971777001645871245209296604566730901530818940785382127851987561683396375696345806099274409083060025822428259088227857264910056200607593918008717549595587526028127765191769416814038096370300671403373547966251838205626302571697835904261427419982603642574831973625418917240936093520130921847805470824281788064957929901289250279453135186849730635309074795255739031315829503169631149617535569925387471215055484721999297939590590681807811129980892424585357708218564593258672960304097338619185860165764378027122153902957085934508249111189334114961783723708043971457739030910528456797610825388350841789441923069289367406067462586290537696001481509501494350539736112381926322797196204221377748204538600701500115587572559222617521789752096206969318448705280836803618141913712373135286408218218670183657384525257797524062921962377626584281511174760070728390318149503742385879421283328995927735846459755353408718660867950458971508467273721365610878764557777436328734826255515743353714488995908537140144985717853560577034558144139668452925679451745747890119281549850149026923476734826980222253008337863384081945979668702145896987415785307522018551933710844277530877024727685059606763754514219128884111228061768242733475664247223733775316336343080611857696641295769167171405321704683490146970033707996886558066299884002834727324578281776749426221699028607908845398075133612186219827585508339277453104281035546008626239353867243357915099149038037374382086914421892549313825117075084198690979518650565154635588350937100025740926340778293998899779609873093587779215854496738723481597912680520413772983796875826555030296669319870789637912763397360973564898671599865912066057145910910453581099960124283846310701385484286284237376865259339629216050181215530520300492604780792855283002074008663851515187788142704884068415635579782578121764072186121048437704753147801059013654341028528136352869414246895729983033257739508177460742845613337001422670815962343709566351944072213166264017551584466694194824003013550658155903189666846554929637442234348574896291623616055323732460497435363307980608237823033854190150814933892219328302046514663241641608262723461601667063557390343196575590246498696975485052606614955474879343080245025373427408105638335898569053377840086857121893999542417462967372044453447584088799637256603384158038605373577458670887828681876109261327447302146259685628383963889474111344753812941694573189296415751105509016652839105503947384248640151311533610811478248848429514839264788774372375452575132664241083381836370036265408928181041240164801312391158574265867879468018106251591181228057330764167652080096141537663602371600405633957250081294703355358248286830072851780161619890576148441217212248459501929402098551688006780457206233831158590733710672804823991046539843855993707162628378647090634867930878671128758095849510678602629396849814929310425091916397852723580281186004391272552911439315397436816032197319956643121003355028214671796985414453302049301658103803928027961625702015276317122878469636160265135009091935639434330333640119450158586365698276120916960788213872527400205010070565394606171432285943648692545213074959320307647706503166956824039352985793828003327762714048376711560994914890149477327767402402713607462530897104934645330591224463249025231351807021645968328745702347035110240580426309488954107599898484354827099717878043723067540959130501713513850387584138130898732538526748055934860475749545759319737625165652424215963615590244413935239777914693315398712739017187042034786795458973060935931773802615759856184531960479761106907549497785083848395451059703863523221120549889129831932826128301394906948512727845439472877442392421974357033038920942400531926286228443592054240348525889873426921979044280783517110838908764267821763785165802744855134497260480047878075777888455112946831697831797352344790178390559234733981405491186379645967928415129872138388724655268314602028642577931905272456704121817813522875597965526435560340262162450964885647321819390451060221280953625409974985336560010754407417496168535979867342453993476625171777484380546758307402444615452029425511637305654253555451572269292665998858893014341447081640368369479215691531665341138259117318046471732684702798328454984920556866880112022828774839655625602882120282846818102818948575756516915324579688339478697980337556885805960574968117529210062441044790595556121512333255680884365935433207719154787973871223899163707015995336571740340885192461236433794207677388076088076951267578468912213522949530402767127398134090696204002995839545376800661154650742230091266711731884533526227203693913651437176239952709537616941049928266599519765316246495424874644294687570810126679859673467860173068849651034028429296641679407142833965081975983833002609564059696545398441417728061059408156028176947939422178574946551751531013057902757027084661755942281469650462302425293244050321469569081933738639148131926135531299293906887939454987078008460887862446318584455322219890843777384719458545254676128065233199344188248839720111008242709302251829366254995158070889990763634911444497260379651897396351402685219259431315237364465145417358273734904675138684671610294890323231483585552667803923588316328413785617213072645670749040320343402312102859059742537691018314002109919780554125205852161231601802862352097983235061355913581387199606638846616219464254847935016675231925530357781654081941995927459734074414077280301669207671522615100953337520425018631270837711246947800602632572170140917783277882978374317581236179563244446053141579512403577964576206075015866815469502862603843058156594772896604837049660859060598812811022260498985360879572162494133045572047102316530822358633279756316868801567254137228162721052698570617182063614104208395341485939781912396430889656981933028027560288717415642879240787759124024413718227760073196495387405682786935750396723408951931963637215378193116630165581974727463707594818934325073375289278665401001299755539441251362006281556306408200092564017859511853124250060202500478335482882772317286865253350827467150931835038866609935124209260157437177492231899660253481425585244336941487816765162881273210102800614778541319116488433369860880790914717431253917952085669917645192550895645914972345759056757611645616113007470708290150618541057898852238765196997281196130161041834853709040808257541778839024361216643647555429473323283930877713768648751980469885492989239131536576009498116388224530017655158510083469135075561784899149215402829674993241538824533082697434869387745244757006420840330011732552722099444860389919969110887443045764210198457860400787252874751928147559309602109028592589028697756190043962750823194765317777385805852346689478620351095248744869922018923398203704047514485983644813570823488647963570695570321769479731660721232528615398280023230282990474318954582598737475103890178112605999247054406999554183289210106412698298601996043751668829891003771443000952440885682324040627342067231442023905271860062186491026107291573923651018180959655263975271031096185490479596374950200391066919346414204550062183906838099903029878213519252323298634772559509845786220243037949297542188805627968190405726397438905774727764525130185867183880420930843310756633189898823916617914595926891809432962463420400194614901737428440557977409647033822076091012264633066362265820080055666878330758342659674738301921984700919222176311092733413439135732149897672008596157172491491099346086831230835976565554505810340886936656324543975189156614109446659929758586864212266793633026349748226509115115522805289471309341828275498480903089353458867684726002994503621761026881582588379173596880048144518028280434976416436057140735770815162733125506830551390030818884390504781619962308461266270508318883967871903823110269681656394671612555899096708857511680024018722400304945222609041270363032470691882748746103527967219383071910544275706002810548805670018073005691532330574590033432899050473313958979510477514413013539581471103240148531411129498107056481119872729811766599416671948662425693764450120701167935955136585155567741044500024789754202412111849017903547835416305503308217806998846426433445289393461884827284313911924452329746944072856538657921154787594107502253131944453257933069191629979409310748093403805013305533880951453238027105044963943650932782779045496886153825537748762042710508728371992426990355845788150401420593769418076202603301986377292307862540116735038854988198519324518774841114131700670203652506567457427784469357739650661582625047463847879445071789934356703105088446689656774822130605580106154108776683386590928087810940821983299411364223489562252676655383549869826919888408601208510503315429053400739591593178736951056050076189045378694661107519696059637828493939055405364643567284523915286453445149657611311349673182902679628934265516299369525149984678561443805491098431658437787322235967978980519836183506541182255132316567053365472077085665582169974737831567382379298287672145800062321218341344244284142810184488542343677983748258087949510390276280616587619025486685984628255110582547582546725222283627290535244563120800049607549623571732362416864376743317773820231781737251491104339651478383450778395145603844993243105797104677133945866500304797137075652713302361391123639207963540108494766518354340489029534037173078070806638093253008774945755870850672354339552652073525732790884946857314591830134045822979300540297214535614526829857184343660117136049423828752516942459542901154392299097176966252572398770417794308233985816622924188987374290186493919371541119547310480118872217869275859286534460545558778354720263572791113686754965975827107084261818130931530257685989283292986242148711587746816194508479573550492957163622725671355475019361733861315379906876118110649010663619662440226433647930825492284276380691959863368281199654147665629617870156881243917573096545576893454163102024427147726030934853379414175862040009461719800150906999033881747635051151948757174961116299672658326460431133098516851979475673869820463307284459203973018970195732979622148668849849963783784430841649222969302211428194505721658911262341748256513556079256529530811314795885410876613327400486827088955358092805080861146475791397184022335237921274342929908781390413407735360612320056663455497611223694605935421869930897025996313332603294377420589881575177035023697939581008935188313909099517558096818036026183139427046209876521814546253368886500419481970903976867549964441315421873715626403263430261522143798080174003819973335637373696860973167073925972962546027515596967624935679884853396372678452785422206588619477449626860467572886640003670831580485365031885778459439207463975842161172326688995215398315723151790619175433396449183671632013849008470378102982691156026665768120051690858844965610065156292212573863798993842402052664687334826535971966169832540383037203106661446227305307443974300054856745811644137258243363675343901088197170486125526229101612011740588806131703436816541985696846956201289952107122942668659128799145031635108372737653606377984750210741864683190185356643316412116160618344814492772631491081555002049215857243103669027871683552341101394454767826528329472668205861063156779834986519487923305013460292905868940416122663720517898651044566735222228305546002912041604795126303552313471561236789876777791822019893689680251922036110280776529589826082742115061946449840456844370652679714276861075773344297170667484952797832296001640978904291214830133343479457434717035737353568493256013749525501512339126741125967573551678904828553273881160650777813630883502740666537587513580127350846924551988873769809679753827214424133056085472771684432088296094414502226802933254585228358829344187016866476307213362283029883013147533975257194998570033989057987689220957901328746229593757065055799355656967796740218538192118935613090113284063003867139429241068634418898054500694284634990220632596067134168028516163712030955891476973329396874174398713805874153215495238496408802224252622229627066074752223364823329472571406851319431137350380010700922056804310284331125100506886018204485390068434383325482650330287943733596504697769297680056736625936995016410571956915529482955524833546472717599749724193029789041841414949696822129676460573423489873167160084488639290033360445677370587760510697425380350454322714573040263649731035730455205845673757610669583943204737292381111118329760059238763630664573828990474647512112595706220926853807675209981833449274106227538379510479035523519731223423648984352557241941766205558960872215993560018807500400454024342335435599602602876092865490086861453074417863034036154144611304376478080900657646634642371388156016907982948849186457070294995572168273109196216059063793598027753739942007152296908285969246177257033819192359923008502246792733172617699627454157823204253317779397964925145232486351999736267571917433518287432072429485089002557165217046118609328696160787354867119434401622308545618718108703516239849988964130692862729172570033098934055979701305145790732795313266427282632200411179748671269411737589753118038475523688368581781003724443748111534749650287500616566924507609671662871068284076548274988957141585515126368843547858291670994555495646608792664028579204802843549913429440439040467413354079375743809256717312347528269095721319695356343023799275322563707874905411430674072171855548462209882447257076489806375638385505383143456913573652947257954237846245078242119389189387310412216736177154171353377771570844919250296414964534010206740976113682856879278757046054509235769888763183913170395056263610683283625525578379198685091960631066191896453811496947025452827522968182266068339411671585852789457632949899934094956722453767109558040718793735490992473451781707592700323524649995613404385836810483604722446091737996079592214980052943576621470250885159688989005887510997081582468355943817436438226264658414275008640529549645344657233365653571069813784080319667117878026393237385073287324711457124810955981197109070308804300330092455571174438403198062056848293647845428573554327345620317306260173241006603369917854004900592042789339626895046905714553370122956659320176293564415867631670086860385908025653951408893135879205508276933976932643522788598840925985592171905299771710939776830917368579957413889758282305171013055167650769113589850274359442430316968997895596198670611022994342524661642442085261657234388056297487575743275157206405961697866815490042561492905733892456625179035226020177204210164176703049529376718398151102574535405287876070716513391617774379394697495432558693323279404965316173104510957647740058251429546186371896077370905450335012999763221946857485750038723056955360758522278526344679702221423721801482242252011385181585120635927165086194599340920192296987855052751383009372527730846541953415175391384444225140719327011906791953633615120985489649409719194076385552770882263393157902364332559974497835792305872742552812680436585156919043390048048703187261178783019029462173308505965712967784468125568337699009891652669170073560810400457994568885356891735960747954529561247106826045830175863780378783509426493574377752913873528611308628026566789502818231092727647512005095903854498307160524559918939576168446197425041469466054706760871963106245479417733792470671855554398669934786015165572783976497309432849968102139156578865243094680818837681311779252594748167754086425248247086223562280790363298702648273023556122977850860879079918207398285922687214774533710062125677655052609704788048849889825035616321222272248351774065188587345851605511789888694758339222304943118666258159314410948042356044674565400862836332822223794705310952697531908427487602282361822187146513913849404435051089372160954235752638072631815635394827074989052216088383303371924491298095892420233666697179124266243141837508718763907455599934127240185114105794021970392308390512834347314132316275199913980395847722643381423596554200056697958531887457511313262381989479053222213376768222946262956964752743732503287358187009216425179614749611646016413481850744249889658171299504336036517672513000115614355691067359212887685203812479776897934188440612690672411887645734408010881831057452790442594626235383436193776357254336588277800593878059612668683031667445329596525524117340959139282134432345490450390223684940311611823468830262203349113607089434108248196732240505867604423013281080654055862422395359056616189462029457472280473420123386378799122926985358886192676487476212415064631649771082076085459808446560179523259653471185171808050822608320179467873711968236533940706570675348712727499022357255664941931652671243597525526282725380610679258502808283215751388460992556879485800446975466039462533859296956642998357373042131191935908087469510533786563949125672223056688618680026876215535463871217361991299527076258528376671662210990143423211747885441511758015266418511990046378599776631077692989074955978544603046397831315587396058187385523617085135973682965022024999570754733519117812663977624005253634943076944060884396733341492294173247633772584122585322214364915160418018277462094793262867914539745059707766604350452567129071427077464359629562672940465480814113059908577428057099574029805829737561713408209601578483556854774384469934755377716277942682334739420656228937199478613068625638707916261917839675323296057859797896770942132371171826750919588410651203578269185415609255487155234889094458668332857786352164466838573107815978881943770941693398929603882573462604562386694814619965600181217865198978605814205329477126024314789873034910697375344918063209735941066635141505856895187473798119195041555695799607911221005779239079204522040710676951574428762902686462672355958991512705870484340312202548526803073282913471478321246552620224674685645101104440818959341108297272675682881881076589121097254306679478017335049026162562391260904086613568852593869646529236850307052851755330453847064177176963794950264500244879616658031080326071917397760180602358684605659342710453644065036014207714718109653559454665793193495407956457082434815399117364554425185728093731507758069399241409882100818427985129607683358158423191370655324676777469118897284886849980413066489029562132419658956761983775018307273705755451180672150478176089443158821457844423543093734859945287698499028311673390310385416338328594673096005343785388657799979535109330533811123688058804913535762627777085540955829555154081114432315762167000771048894753671754961044848763874148510397715981131488446657538774212129726958610754203242677792354166413160107156012631808638847471846982010441761427026983366919380110221150896178553141834209911552792286869129593231060087152159429894519346608952108699084200773345812568774052009901696197262106203139873945062818553969025144127984739793541249656570316551759342834166922258254907628974560799736623057282215972658396262011599660803543160232414657709301662993609297419196131894680947862081575653468743806280604687093447202146672272830131683523957173735800915247965323105902974185206735870798977200556796787968627490741202975417092663018305604996655667112448457948215966676144434799456892327863084625104977033964000252662152554976782106792378163991619043020256685303067743927926445243795741396160372091428805023081302934344924883874146208199481050644363542176715691726719482401110175343107021984012204759214639842465010020893043921487413768187347572638086827945464911483870861121531816344296624001201700487346808534504685133199922342356035544759416769702104849539094443815143223260519588405069304521607089646601008530869657620549900051358342493857849795889748434025132913707303477581558465664322123930891433473333891943274641733364783751491459568757527356674890429660159583868570085100954889972886238732036344448203123288450919599877162485852089581150425368120456209432256557123023547924060476161121470475181226295909712323090601556424973738972083698781032237142978857098171192889931863254594012288213217669173826708171642371003806555300466957217030985019429166548333618730784545855508585153251207536454732030633968775751430134062135301725797231372076841798132266341560979207799572632145106377094971149474691623376325940594483500413339622998306898851836929788724071249831708024340638522897559084329666830254243901911721465895352109443168769396649191208304685898762963694473788313092655967337796064409367123456474815468389931023407880643666134900027404066544719583313738513697097865263770970605328997327607540847630076502032440362302015416056395327550648840510998814322700091432161956065950615164754399675679548244303346817899512387433521038395474314430558777576215373811605977574149419255377362214865334322872260619694493799967210423668525340615884905163813797355637016248925941702654823984415610957559868741968768681636501088358901508653389381286692161343701034470098485978849759759340406147351415884582600623009576774489258530557238367821241189283797991118026785295809005758458108192867115976427877723731740104528879250830185069254699799799917918498417992508888499306363331471748283169749537250571105720455989094402359492636307848738746922859818738601754277840375750454771467539579668268375033832021200465757862519115721037109021074404718788678300086616270593678966383932648113328331936321164181213044478219185081603107083359926468447461251461963148304764394342912889561157343521150923922460090599537584844387735728949145771743726240882742267301727684987407183490588361534948454499321766228033213523628043486311603439258496712880356350587612007193676783912964165429652921677823900635230661396367556243812009512940354099124763122028199686641743354615079290827466077550735246116576378470662253056378610706267073491884218513097712946292036484010901253086277832392774317710746965692144213543606586696576498717038283700925927111280366296859040053728255458136518810377864281194455932710243955739172066254401733842791343123761602334342919019840878747264085513685519187827264609001999720500756075484411836068312309246043142725538792363540979590468899971185272387021302908373130154503376867797871214624827379773838619820633198264352253106719114423393626020837365615715228582028025131769201263191333290366037345689480256239692376921503997579965739612217629635585828521999341702375456377630148939577666391615295012717110149510348505133316926774301134034866337100316928445859567295498351041932003106048352799082940447686168166162481227669959781099368944715298791321707751963581822169622699938169642065367414703825871891847208305258138337391732084198241403523475486416885815372876331778773840491265517964264922772345255209811334566535645433240018355752718149514040670813495072802346174873948282850699148235157230157467779786180113122354621562941449640358618104108065379490162482576086355509760606485721363273091629618391769109797029921162545557043494699638808250910027417191941875946925030742248294423424258088353954289146604638211916204246101805248058215131839264471735317986935023753331320710150208441769242298486622845163359995950322740759969188256201258892667604242722493378818621123444380343158639990035822614439251161318566132562453129707130596387107925831431187318033529723701045702135384468113230625566892950856713022835323887226772802751995483982727657994116036034663766350677270534104759536432110619675476282250720049714973931617293861206293028330992279155954868476217739759808124713080478497129067305005929661534081282534869406947055283112556266614717691945560198064314685871276760285503110609078910517998673612037833046607166199844844465900144365096256865176628587366573441038086414199623497482279523811424715785135549711594777181517159745011858841405192130945945712222203282148056531285145072609930969592268731228397834570827653796732877391965620197252477147017340989404550794315760141236308400278645269240874673943647859723043003900468248212277963044686200921544158962435677247995216186270633927496968773757977570380151005630044685381998737671048361243085360589422489410339312415115273699689698490035333609779693110817762203665235121350014738309789403091156700721295665124785797002103739784130457587617594903537279752119023151675636160338104097877760939731069058291624445479107016253137723648067063654122811927421541212346060058199572193459260555376145043755736182925681847445469780172238738092883364298718848731574408172225536979473131614510322281605248694812894976222129506112157758378457488778028241503238677549084002245566608322071836791509077197145155604866924003143385188992730257216519648068480407613530573705315853408609352600475225392711674085127957669342195278518805228253953352612541507098230099551431218613782503297983246965176168576425349429883455090691639897272797236221192499879976448304150273296090341892578096116936621884676293752103126112699527916629715572595660795655231247867452904536739099042589038359629430067861736321913478166023377546350734932654334501328076659829802003800023220698191962303830613784876896244682622728726643434848390900042133462747149784986832762207681472195836230639522934376101435176839783411542176999081264962660175257842161713144468561403771682421947330766380466096090402139092200316872275923784572171428070773163677732700712910679202241213992222196826116790881955770142860800224055777936104041475136000149862070525877003316095003231867160416226490827914306064299927494613044076688003446192275483158726564868206730866267715820041507390700711793730465731615843230448795866970433101418927256484161712219200537683696495043305271503796150143276645047454691199459924689655653338765182070581507111615362728233861521203291909139631144731644467316033004216389014489823101535006626079909169281931584205256549649701177748891093835673996864356278395170791284969890730963577744201178508406374933390156320516105675177665265170385060024324127418210855128118318893713235974212977334058834484203314477916406018355560608554913467956512438906395419976973953353368492439379177788875464595573097630079403495302176457718660741296870906894413172268674626026659660926769831435271380735986648541066641266579871756156559758301644320523502750038621659570897873104027405980424290478778988008750487213969511209116710888758099704136012558180539964403464181216751338962976609220663881577587888414336166480901697957244721727665308023800683930015579799163407164787806996935228384391052476044298185244922969652448579380177461311021319673254984012831640536720327207808940932646133129004518332099956401134040160209239741817925025080004835059263330891816823747771593055887978064669562031582620210989573835659084193714491981836449425790336283304541904846458125130990020778507573111201108891737513654861465206350959128605072209216014929132449823859872061356907052660503340702295917133409103738511393377624386088859751742195607204066449563795886109270395409556292460343659239715552622234822410625100005067227306375568298544779212939869469016964603848320106035664474083365711357131370776790902867877162898838462362901548150488338121465639628531848208496623815182244973392880394555251045300605199089846949164183541917645970394847790632050476244899741098447905853505935602084950673733932657457358961055313272971359143450610104103558130810657432575258046221470525119482268780287975138567068697547207042176742948400018541444630399868404457224510177356847326598069224112719276736087188769860544573028145558521400493068566004998275962798329975213919428941959028908628794569414700438354276295894557575033244486128830334329167357757018170740821916680215791223188513878578987048994931620335814033006551787100215751649832565631231018136072963334536788499142025652518222209473362771221669047513123309185614488403405220269828220546690621353952406279252658719027210720878488985926204786587851651270972436934042442996982920068831793721491625196203163995503364888308151409588901166737795435133141240402257298234384669336141418550078943147535512295942766656305983875469281200962815221388391198471682682285436338940335872148980864661126036438048102116757320306212344564083613392267683431208451529580691165146431412152006870864565669596076192020473648930694721907805635103798230221168780648831902975697372163931018161623952762422369606171157437295930116991618103261962709253114752091046829502780315048834618821348309891276337349600452774791601955138230428488935944006672077161256383389728089037099660652067057280540424190523975742944139774513460259009656539206972653867841096072166288476139744855631309399913199585572778465132575300683529630913013930442367906108336374714866985665522039736326472945776457199986430609115451862629016963742416568970880324561977351004129395462233815049016424324841018389148617747202299510068548398170781172764018943295553140539616788076618157324333643973305163151947277779564478028213281266697269922657701596038826871555683583733066797296883284851289830147111392402751104053873283086201396812044731897705194350149126405585957010592409238471942077616826949919298909911307813925521061683384648091789944264918143302005602670036907457275836520386670532561120070520058266663361978029279190954493092657568167589165289070296458331173156651557356638640027218496565254142870533532448180864175234150383324437452964815947277219562831389462817827523652984249483567334950908407276305918504171599102417103464597402526738231846501231233353218162950053104272036464455884650383349848227622315067212663810302706761560310820465061479871682870869818695083832802536506871371005022631555547873449549207424234701870469524925070067113413359713345220037033676881625527660885839585007577276210886176465273827820949962010474881720545520967647868451393537074447756032520123578618414272372459923825877429916940481337815931519389598100307992502597340029986975296407893711508353515745381847814386979315914763388570381832036345973319465758677519059498463365857215595594445191699785952164734698576724198702503053158478164362854471157524774143103861706207532352991236542819684394294071073368278050643203021703818037330394318386811292795676060132313573712084349605972614115330684149679248236853864126842206387402044197499279934538271092352073820178727904056358903230040412087919565818952158514813918359832498400302058510960384548860610919644712758613501847926768483322335820426522658864036961259816286020043005481403672301844950023460527762183980614649343888616073742000642270434296038134610956267732788343295321615310332679068001189430160241041043326922917217160079972782195400571077926779518466271356466336202426249010548379924480235540312347818236367994914935688128894588769862668772014518849948561632235148125045853090022952911056555303302248610212947190646002839783327845611746267664233827741703721386135739702906890367679951585200099017230447370624934929683825895551921736710023260312493832409848711382796764204168745975047799920214222963048580990982615986265774733307848725262058682225018350278529054268306718879489926650574647249478410652928284036302939038247201356427246838213856746393837482581579737464854911282353146244846818636912034202221663666779495867816335496820514797418578013410794330644757240038419694415292435410814568272399752426432515618949032401022861250356748960943989769714997201357725650815931196560294955759347321824198437062105146774007467132349103344232394901098373839105639583700975285644660789752321159837867399737764937116701766028462986569838569373884523203505143230720284006781406737358698891955952810908038785302868253640518281195907180445919313531624946854078241363411515533123770798939440884492296194139719007250005980205569523484301478424302390018572698226518005939869806624556646019376846910747382818599611415741026148150235532228309924141691401525889472661177337877523427390192283723655111041887929173679083567118091502560763515147663001382428895845220825760693799217805555926318194249665013916004174338090775637793875649954582193002173341870856036895550917899728000931676548435159027193946467344255695662444915050222192095670401546474490615756904979658953261903766484152995706691051830471197641513411481712196172151468201244342324398806570284981511704179410997562790320945726866427013642073804152090282641354516369325117051833994398502938871335396344253087842405569805176311137723964464050979042951036467303044213284815989530952408634283500210554467084665518200477268009092982656588485601993527134029431152370920359446342506963412698832026396410990734397074477642818471795780186604380023799992393015711094112292612879453022598848052842864966189903741027047413378715557395735928465596693902354038161019975673781701817667544708475404001775188832429059563389069004165400482203211592549719460317411524089798501192283661347545545783277014344327607049872343705973492117255254843871225960276047233365793893652665651511384495566379168070777673156049344112658441190510977401365182306301256804042428874654037594808076027664458322688671141045974473025350715373378301873275447973837830182186992240784419326979881707188254684691457195008244015473463532880364126974016024898759922972438226418298378610216169586200139643201499200136325517095484998809848974485642192360842073048319049800153302928020725779138452405628393675305620004068028729438674253513336635215761782873987037220736240215848907828837260562541768927423543242398996153962247931358231123572918550296921752672847863646984202437589753504431068658138996695950545075906634012010863636476710225871686616355182708570318189255911566464617780103745597448847537412254464409113339658305447560433705164109649289085971823879294543533476979232730459903958197568230640008272365624192250131873648367831623343340684887653828391609488698387411168311083236179440352768488612621637466017600497252770937992264748507455825160063312855174302839979944706651544435488530253652228606802821396100064358615787750489462210462938171584102691257078707618776399826935942461445430531654993186655155996163352948603451049750348672365467330257746354936022444196831282396205288453503655142777557720988956447033741705375443847245940218622314320806059248756688140306850997287927774806636891300289397635163230225292012412303918927141518389930574380088879869309768851204280705687392977714756004565566449512222679835138689588136179914790284368720814363889004011310298514415871742389263834880306667974336876771164791093377400823605712987466012605009655227741586984356125115107408501649265909283357828194714174909108836277977644514327522104947284283034849555964127579826106496367711898409995909524544971982232982917076611504135936333323348417490454108511632084102481512061275502685546514131243107682547996888061215001926892782395920719873345182480158177128207698049603725955526438615557976564246665659880032108131826314428956000534424314724902378667266997056575278338838688673881377070269352426892895141495514917739780046359592341306343541061824811174489506323672119264373520731679258273342839014616271989048829827175669684005674699310901738558782243565644593270231839602899248013875954905092298273153226154495065473697017924186515109929568001475429888948211505428495707292495353688992786224416386270901095020367270580393911050816169150250715389951467630907048842483227193210785472741844025001276895206943776274979116933443119758888611547821340555993093868588468520389352581099973347094843108118902314349945603038836236698501661951958165812998199264457928059216287202673027573769381163187879303892205851435502327598074925678664326858266395416247896851022646795543938126233357218962481231605822002998244046177323764413407697058847348785239833181159490953240111274651120895643182985886333886754408340788964234358750608483794105818117375413432573976484264165271016326427681082788497182352063913184805558206489429878379385913866662340935447035839151708438982712115569504253888774824109486108522337017353137799894953322844641458548339474912167793461619123649546289155879563479463720175982221652538313765038618164504575610342615881852999182969321112948258861946523988959695646255467451278060991626958533728103511709527415676844179826612386883189458195148126374917567964316775307567447632165473761496603763974272321194006988116669850037360585155281411558072992068487800170210301323595195547700737053688268918237679240620486167816114278417249271414752630937601322979501808144423475379143628490293985425969360609342871150858042528872442932462091277468140702403454167797158479284969883619736402048387050943594972293145310539943328264345120990435372760514123925258971266275230918433465079265180334740466637786288597249792119919273570341210954326163842996775222426163287724168694957366220779235012065957184531536942328739413643028498292509946561778827896520782156320576501524617028842124522932713502194911740996647511327938820135308444436221346036236429912625806991286227650856908038820753043202501694107679514506014125930453741049641751661310114920246657669077367831495808418301931099696365994205006728507138866694639661534165417003505881780356208137994271065629630189886256365969493527690314084838301602972830723969454146147167393780681919727846603035895605139755846769712861321161548076429541549670565858922712452493594069594275549219765636841248363155061551061647711374765839518378692920336884556199838658424110714134036545938668478351023612310208875604151696794841943113143480225077291153924062574148387831965695520536603543055420966268460220066741278344447550261035388538240908891091728327597355150115376906908062048241887766188020801802958077453306610780305539460896267329234987398367065102727499931910030444149613988338252275978947951520745518542095042207045663062545315139846294014456861179387377104584206749054311646999849774145028660561436820717771605674130971357177958771942859960696163973333316166421623767745915515095148279774418116030040990463921651799793526485990801504325979542387726796660945831459216376766076761231881634008631612418933934476531952377585499929883842339512264259648079938530455381739760051448607906985335554799641422061140338193250792381644870887505209921218176987140507509273799313650064212582143320031207394037192352553595180284173413486427362699284225845340289442640152468343159714829656907611589544448234471269449628412224535252440695918878699888986725715568514461584463601976376679337546542130651781939651328862310117031482039990052861400541632036535012167113403677199601132526452752485445386592859232560235393310807932795252651960954610946773904417732185592915793796985575421410314153943854385115948768214844332613245746067244332232333720403819812969244517606612510336270423565029197101251037366536833587237872651817244292258670073548477221613033662851544391527886748917079317300320253752930132158918638253160342200429668295395754806539249867969091692918107731906289544298275703583479697807474347557491702115459741081009052792181366823776170370470248303456384876320190522157826768424276814334859992753609036920982843757470336447140735759152681825867304582614407393665818869315033556501087898604439948375730101169885981133606223311687221279278040971806312944259745565376040276833731606447398454182514258365508889697430970465940604516376967936589862147002254251274020052589109698410416157186379068886118487298592534340378378904978597220181846216144333337386727409181788555158611134583500688908463921684829649684340075737514249932023555592031416566837877763740052410101942542547178762382377862963463450913508206420259527465008489508049053605612610163919524226949532216565534530714175088204504618513183203261598398742057694120359039957731043018908895184848037551921735640755815435283761170956540306879814152514469853868078660266272743003638677550353232177523528120405506659270435889836343577601939218765576863625066341477386088245472831208889525275510049825633582100311894868359005694526696757964191809775276013458296145641455647715406768555946563556698923799414553326736100006559430125221835527276862965019120971050957264389112071287779957942376529906671120006025088160057298728702818431139288461634524713081672956828908599361915284231874050935303833788655777482497789257655710359388194369822263293768982583677960566286974132229206887304732172835752141084129320327649957476542562418305518824939379299444150080770520112403319247238113883119541736983987156833978129793167719918950414747101589477826604037849674873345507049630131692041558071655524705332339641058237801775495991636685080983406187020190251906679354866340440891370008352249135446340293435532627391277258989759456073103807296858747084093707242883663441807828675608317373120026271770502520642608834719394078408099182607355388916308828314811099265746741581109687573002546957203130411569445263747219431197949561687606210430824765551921647656258193827399738531034112294567629363617757386839274636352862159360740135042758268143889848200035441802371814164876717420249443657879980202715329025778002632955220552131169758982860588679134052240015240163508896307053168284066624185806471568503171858947897676913315363527250031305857834601775291155277478046066212067958258725548235237890489768183970972870846518476142791714209324940118955370796343591767647500479836146981170332813588450039234228517874074806423633854191466316700268146014209961787763731975143185059871197943597674974692806114720640877867149540994437934549397671320487970084069371190316957732271758609316882171708535031937191042951751677122494288639322475804893886593327768626935863935199905386487227902758964827806912617023619236982042049179520431464538460353338694406601014551457962483476254432786895817042049221239534150429445354944141501863828390980071448600003158971156136953696991226753284935629022659086246655697679041620211700456436071710493135706922632229718756545395898752037457017699894951310537262593437284504204189051714587200697418966836306987238347899463780355112091177041832538721003737392742737763992798414108382164021411571857029836405828518287493879105420073471574174998437905443526684600401270320795318390024749984933790118906956757545429601504631212996782738887094806759761490328032826663311133194441239715366247402526222356859708074282730845532026660626489950795822390739137063617878797024450039342390541440962519466249592081194337293437444254791762535042397622447263644636075220992688757511876964038638569698924483008403925739581648290479106490697870794909538963513863121308718866186045391923191810204543961076455299015013907229441743547376343109680985088720468830282387473672854024117881384582840783883761409795989573182698261447134934789499710846387198850163427020460073401613078843881209154981815590677491871072404794642870609288948723111933840483821803767692187265630951057717453879108522211595767777849618499696286807121537727089969259715455869755357871199573406288926180985320762798606061191152426993761913069513175463728682174705226495043534437272200399038973143996035178538863974097423390936635254431349240708741935719909591848834679545525621570221683351222807261160484256902847441495870194424476729858656603635983075978554668859922023542743225304888356355082607162850736099529199642128673133943184888943593506113863505307448552646794024292910955403791307696609122824881807082370551188472445205023036716242808692225497730622518601874906639408845800858142800120401670498781977182139686528377714299831965261419287764485417711573876336238094380303449574596841645716601602692287707921679827856439873656750870907756477870877998164135645272988515114753738962414934376328773140817092643290862234135987202279890732376720334530817441034058443964569758288567415951589212088578890231529697841841932654836424753346200928556136144091280669888812605877131971064840261172274073208468880766187142919452949807978400544390506094794421244787487512441352154656635918108388584931299541551634974756062814966064391840434606853297335026591767008482555313298861622024643202151617460896927438420305257697366546234837219246214145893763082077578209637925036575360197883975753965526409508082231781310388349000312944849722748850336795286671848278788197898894552482516927851278685869048936545031900923937029845604507120381604451249673243198989968447992520064016165653765722042899365700084484637148885249407105466796905855805772563517961285913384825940665958118733012249451641033627811787628829892096219331330730737476496767248511026296090760796906434643791466084215047056382444691535803309766584726351933964666079701206131042301158966880665857914462916396584209801277374365806820044141786579165596625730952023247902435117904139376564953626684412313024711190208823471135188569207166168862501685681084170725608709708102108618250204316906069536254285817330742125992986973974350812225620631646066402844903019576675021613631559712120772746825635701981098317479368354342688875794009900746728828305663778189532692775776373324728104140828947059608272458607983884179434347677475997537048764189019183101894279646358668401618304541258550102197644364058150863233977329633849232766516522178304032212273055576085806101838032540170232086770422721259453903364907013197429352013735662805515389300583417128431990265124212320827197927435053424405966583499011568617330072223428268575522778723875737744124176945617594404019687766735260806293384952510176519992451329436570449240954893347069367674370819526475720731601313439136559105662829656729857096049535359489582590417641917626732240390040636352744295473673471480869821048794838475773989381290720685209071384921788998022494041845363798044407089419743098519601161585823342600750565869274604652291792414987527559499244183942096830222941098656261672114384729812034648764149147217226960153814623984637177617121614201088392773479379943525409173126667315745333640990174698834884761860775408872784441390999505658584019852313904942116610957623966730990500505246214206989339085633923488214121157383007168574686150113035466287099779529589847236256660282410396510202908567556624705318683582860524753326671255142919105622792568798712561983087273522441452764741488426789888628501374119268097369997691134375785738394460707996512606758331872737702147597416298581319252080508596776308312334811167692290962059540224827193097274932451827047963442282627086142407505671220701436973768169315909524723149101624179656666205162390903612439425932073820435027454533211815382956281097125648589217387067075370549913756553694733685826079467579825998928720910563278817906588075372628678307617124806224916840988285369094562900640185036385886723401583915900824223885430358017962585296479302979139354890801814430282101811183320489361841981178953754521136233857913979624275527247785406889789698322220217467164596142105723144149453081350813936141253868850524530409331603859230983550484080349628087669537239441508413822629938542750098827001769949884916953317167269197584468159097713275740571284812183620890024763143703767250004589638990005665222221959978342118677864611526718035975802820010764494009785313761646969049438777714354366169504214076886956732243562412867981078482528700427792579669132381923840039836480306228381813415565953136412066497664321440968763730965993716671588343837047739542591560816343703646018665842953280387262668943773763839583526905418472846183876936699877447933995543834765697011240963211635717169778845498756877011762245005349690793639839706731745797976655179905543977560893553738377426263758084413733801422326639014969456707533704391305263423335381754750047006230507189536677954896177661107638641310048102518904498509426145464186024914275122712632546692132549431177838791471271839162266679898793281849690815901301471878021140760140720201662729582932159306064776635252301974799256738805243263719198851182179078559114712303724924437026642207049169817435867106504596495176060536808762509190236938623218547947440268185970034377057028297664742566471376134025726373781443014077263533820817863072612908378758750887627552879520733899068343878000524088497849378122219089246991925121595877093041752702368438396055540470890184670119850022992011118507227644372894357118030162477321658849830667040418758883929805137198615731698980754169180183676619148175198179702960311910042060284086437607931142567150037656910230438854990674555665940352823050323229792453470329153316543645890763984646444809740813744332722321188093404574379794368871293736129648351346426630540125443268707563768850216334278866271164765693269234707277940974484359247174851733786432197283355808082468259810681780898997075433528587929110583627625220794743903658429447765398087153611715096875338048130770272138439752948515236768914394821232275595796844524230009100971078189884841028527878237404228588052088080997734865539499346579103109329462694078037735481635073519318776644241649620255486851040449172389883291084658520403706988289240880901005033492950043908339690253747285317763057517644777575310222415913966658999958993339305578700660763490444818998531435761840114727377393492733696897767815842903724517125207313426332862935407051577356998077570007382822852996993172897716289751912825289250459307889894573916417205897458393597128553310365612338487877662394333322246823973787810594386670249064219219021943619973159174440180063769591966930678715609854711131271383189632889911507952485879087078608425332134275530986813589080223746427943510226315710650895059598288786257865878480708529079077826614217956703829050041401448836039860377703505603745588568081744406276361727668499824850390496771416218108707141778914083499054439470938489527005907709697095957497005055921600439574883543752098938538511887221188345647933115340861890520424612083731604287960233363514466860978317562363457814175122988322258211517569067104879606620766422798388190390152236477208974821873785726501508175498323854670642982909982823834235718751871800086972770074987652311001476803667674904252838374471059702625401489765334057190767203967162389301088159604847953485293838467512331216296974070122240434872919790148857561907087195644174654006637542061019418051505805429172530474402775377248216636451822780373223611781766025357710307863904466377946198035681332894994157273955891228422822595968953413251311256277667651714307355661612941331038567273007956568050799780710622896853065573187901407400303331866511530219948801218100266990635983670642646483078426986853680186384815827070398019294681230919990194578481889847071578136898668098282888204838604411045849910845679927105144172304967117055139515893729021903076806915730516754188774879678650016710123969206646216376009366647936723792492119887246981773004736130363349464267111000639405454021768633833769815822873092712904876117582851648882676008026061917974649776099076649390964377472026559889019879814294447996387959903656871494074575992518686698424361391730530215113501223926484113852981523039136216423772294894952633364550451430035338020444584946258294974302438665410761721616689955892364392137801025553021584164163524646195214477587902238322779064885586835054428069722578585370006247513919538456203014706913159390096255336802755521155647397506791591524647450714133906953605965036562491850810360153421590127159694357784664553586339877997329529327328404666714492093695276244998409874488379036897524060435065890934337191788789163806957001357308339342291299561230400904697160991675131241050692497321556422723362522788645516050987235234735222567871196529939221332925853009546499325065025265236412947382674401008529439702270398385439871951034102479570435869544332922276232280836846312322188004692290385648713711265724508053117888845854459672699757752953069621298335249928076047840452938955771734117438965057521468952983137352437450325077641895574353337329561928613102739330521948504005900980599079316523697175693526840555497303603806769855782849639554749098490711251686687585595164027593068816399527501420284456037278291214021792801400210930898314443690134903843676875714795908662667761681088975673467503119933086131020988491613884796161994584495349601804241079107728628812541958093003571365055569169252983116824343311786484958301160646909702490371151692328540150844507410242277471617363714214823241572185906333615957586668806215854567187955202852741125034488135659631842822496189018174031821580042782075129075943219289457933071839599843047769943153626075570308543380909473765272709022993221819426950483462261034632276325815052815217800707539140390128920944086470522518919296821736818210025170189782174572602580107330041442431144036461411657007794857919926258101939253655437538105434644554261390122268182051186046176585255209307692284997278771499550153146430329158717833877112543577733960053162314919902487681155992511954650877427691434524083079614255466297963540245218654753465117025859878225221555110854707717485073814071673401773820934631940381095131639325636024851309720746136143784183433105592194417083707421618165705584915381446165663280933618892994483838316460015760171772464971722519566917161034262995760029788761596444664237987264380085959633745742866569662543461878572694567596611180679829445242656072958150896579845417156094850058747619959050707474312605871775666557108515655035803427908561940497697021367599979082451008677684940963577392789379712781403520643101083148109630752385680611562604770416637123695851370131215537727681659007051496328707508829874003402319105727937244274462470000344491654910969233106395721793930927007733645191819411527952184039421316379633611830618050268064744465564562135704985992352087714764998170816499316369212700953634561832919587501731309664753204375645538685023614227460985059994283867342675559995581637337529824033231865602170339984983595556741085118131102720308200589309351581196638421724630304391019138164653106311160615513033059566633864542561548133439765777794770279011633617966148309610988001833587673212066367232316294681408167330985676417569860149087857052424526539074779352374742741009415456526829766259877615126955455160000547127219777227506810524233396257907756469887329766269316787238628330954647050800977146695332864755873643916382240593772459957889403600008452955607607057274005094850328300111867744038595537052028866460210816182881605996233746701613445476465491306526505295250965279676356716472118185480734800199831204290679018222044296945562113504979599715780204980181221523271109397258285115398670865354473608687415941092700094352259222255247824105754359147793370258510149381807749195668972565134411073312241157620132786136389483887991037237767742989275842136390280921088658954363445425009123659778367141343283563778810382499502289551641887023853794934039454943820291063988552790719153344956257463123706728780168661554837549398098911148830739063194088784800738412208908833032291757823986771558400558858058589163665640579765338483956804526527677283687378398854829628392704226442379342755709614360822081618819779319271789547432145951059453596327523872861619283233114776278607636935691769225819031180161443592635872826098918970824413666996823148223005439805088641877848810251466766131678528238521632665346611616589959653756873591776722479990911236534394042165927146948106972833260568352653978130630533208093179234670880815102077751706455049666545512317655057669220656925162809637998358367050736837662593598873117650020359015042694625668441023653852662879560855573313973986736392894503314103209891144382713144856682413879200523256678159723706303566627424133310336434565569259298660189672416676296495400247232616974042335817130610835875413386375911019906890218147989067558757187615740749971060517891239113459131144379163421760528092555302803309803904720679972622365977726155245145956719180220119404634074117943372454542687522914395594788923377448272186340157931397555129650694341120792678217355137522798982104537325593828293250621165152441950194427952135970027316578408020363188569052964562156530439303169827552548092012559802487614699827823183271082417692847295152653728056891341565411386132792500026762308570036867282240544242941103811743115347137602459105477240950253854903735307433714709664827861301314387218711001534367367012889346412116427202254025229458084211055800697572498669778784846219646075606831432125462152919566651836077218836152064044155970452309529336640199870234243606337504123631239830086520153385534204256704270401825636355772469892622882574681040471655700083133295453379997618221010709396601846080566925628309268601224552822201374414270453120101558338026989718074425026123746726411841636371512983128341628519840746124986408416210075383571078846658747260228249860612072585412371000522365615305138002131262616923847857445173061329398373440756348881943285174655782711132584561775120349714187743778045846653701019532377476928656246585194291526145044557718998200704264085772855749148302389687820932922662603665107428126212238047364966857109165011295727482674930234089470442770818202311897757023713223667587403168753840643858886997721863906891660131524301463139337282209617929757260931119974189772332430380346953499558866285192212776086831906121886940772725849100317185111515701158137314733987066337921579824465580652974365539792215334767514024006761334347213409486781588532403565402920522325982790363873280903620757065728545901399820636393148841401612347257329194732210604102830279865186076813970387779956953089825873230481450826658567876929846370665329335899043183259579654177953076843807547415754894904268030454987416133189923120433591380232711069632033066218675930642297094537988773657719303746237742719910435094298984079358968677904876163394359390419698025385554563784749448517205433537940268294156812167189649375010344042925314145766113265882307618960853594984495228459668464063707618104795727384779299565116469859289042188219365489663924770829783229990234658450292412318717419692647162732660701845620378208218463016625380606541978447188763169794581379187703139722266655319503178003393011264806156943373596901652856616735163548151197976365769969133287690317401154957561068884385706181345511879384710314733390946763755792555522784971400984726820569479420988492997860339193341127367668611222042199621556834009968679010712355686706298694349043533783415663601883681771761621803228035025032145592592292434853395337488442137007213010614143032001169667423820460059868024162189649577177468953342334345272125280195587024475321063289277002646340042496266933083534362212846120334648591472373547852033245693091156609063151229378379854981468039599285843603960082244349601135768861712557493656667153740233509295795262670541929920662660106240686578573587571665460910236098166290938589635146997323993921577551471258436209720658114194183914309644885244373631297892981006765118113956298933557333498874891630144909633846626039990930120996106245166787765521209848932090990257351735042022893137450466037511249751873812707203627564387943466847616672333140691236566596753056977562847817613116102399458568962985399750312969432770218620195900011802468718333084441493817048477975904805373590071076955051110107147133677614828501255205072790003684123414542039797351479056975024955032737479993676385049012308318300816774596064307298326748772828870377700446280773483266181878191021202514532550849057464872978901906726084182589818357250242706430774867622534333833927507912665804060640411689271515145181553921456502769436273566737140895752703314056698000381970385497876277806606871338572652057194352090746648399288037619207885050221406990166817541748075759927515592622421743130229981154168197413745441663009466899698642698183549235842604911753480019050706219841609117409952140815788481248517755048897887360104042127229109859880281930808989779743069667303977286479188515252281085110397274826448989423431929019158468550629598745723818862532022637432546357753233197117081421594028848170786467741558905719252864050785163674268755228712117399223746996333715999635093373468809580397676426835665909821995183164143091899430548215708127918888486656299644569794345552015283776180271619726848918671023126272074916052847463907949380461280687147913644783824810253454851540993636148097209549293240395816509220202922775589626624235980610690637192380264248045498385172849733213341754377448316698446214024062813934615765876661640590709051986323990125470716276311360333035404291029567179958981987660863962060091401497382787089885197835711899944459198400658128026470532304146538097375173426995435794952500349331238923087572808358541276422886532335849398822489243529502173350909855854445349765741930615387628828314382194587398963109064364062519650421483109123397683568620742148897208324197148876751458375085541404722727422925605620439152848982986419088950071921442891311359428214183080173135529570360933059522522832529992373685876665939387528815729217494234872457862729912709352507293462232426466176879966405709781635194109864001543143382462666732003101007439407902360372564895653751953580606105651898334515647511866211731500187741103832209868032523995934042475107525800570166529481193098809073411323986748344251899929269504646119806669321952587867776008181481379409590950029233476021635295712636114153091173557203313311871549093475196152286345278618142973028024712134808037465704583253536997894822252294794477395458040660772447236024384934924814329752472035240520699867253737453506841664053747002985847906637156456571935557768925639697143007047283561376822258808186733378024576055349790874356638246589576151938132220912619625553059710755391805460753320973150766555915083894813336861838132776932217622696225041361684759891009550383549023621162820679453575351985007706917977188948473786952921836587039463142149292103723179201353279563069965825801390291583051921247924344836456909049491583273847673519865341141131551899793551749612287715667492490849487661728612289657225357335681462100281208609832289814874780203196996188182895432648827735544600048514096398032607737784181461330198642314222167799246477139287158195898795019544106198244680314339033220718009901593932354780877948231535644148775131644859738554339959120439121805283928419647277076056633658012257867939006966587322386099925813896546340804314627782068855150159287832032445467723551591694767551972577788034109504622013161804526565266530315720986427128067981583014095710212281967971830933876496009573439178334107565795732175164679317925325202966283644662579318737135173582695687593073545573963959724225182542044757449896536423455777194212901828230205691060774392075177394256381662958903216974689686836608500593246234314639646881280447804790808216823398717060707219543740000103071528412692183934621232377107676740345977179471434112656460154389229295242122711461480879912278659121208512440387811517849514321964702233024895971008550393864670742065209140136701797374590630970487291602998448197236362694767737131573415533513649860765646427384296179018393857592990589871164101062366772541976898772360133126029050309974612172385792234005156412557160712910082098178400940073594237992835840393471983693623786372746543518907919098777857796589418589271077974409434518817057535171278420799424021025370218610789326774246677544824068680627944823459074997925451224078097841367621171042845802673280046176027394810789412298970908783331306657828605513929753607436751964943692891812917405067307809733193035999403858582962851056599653635466519802852435899672578956028709597996472068442865228908736893130048334060175832706322843522241999748563609171108348857205403320218510843038730833748227243415587109974198715285190639148975650552139875006395074219500552180670501190032292240103060825789686461307954145985886617077751262270807850482548370351916328253762921858531554990401084708742022556247666632515336834444788212744857304123818205650591002040126919293581768900313958484658630219149467107220163056961060115395392401352361078327551401202262447693091185812155320840940569743813367378783828150285352376733221763969380375866349007294950819518830421766856681528986846776052933797733349561283448522549390564981300440643970905249776121085732832986648165717087821696119364108995704031235308170431447238918964165989768227613552088582117043977714245176935877904917301002877263078343960336812254231489108997524047857481031890290530932992191269705804555774132255096140974079575494095454421949104258685834642276004428331511493184049894230876284773951308453646982922075150612988519821288726449726592912038510397481682241820347832893034570880572856333605747735135348298406522385164892578446608702809183734254568704006024441442246131692644434729877484229292131472419452593084047010464094095829325441652039893696778065499250909168611766243659721093897410797409169456863501221833152032108980772658465363748114190843575090766810107431550742499592561499316447502381539551914439209483061388770999668880855267119038105740731021055788931850952882258681528232034905813309477928152867626737981371044984503243530752652355125946301690652707534872046149086767126182254405252542930439600119940802902229867030131276703405387440579645555744004700002350966055988734402456726451195585344591447784442660580328383804854072572312677803539056810377458412325350401781657999160951218699487674150188664658728841714223383840093791687172257212531216064803564333508100409725308650289285440417207176494887516136330107170810790119194862805230649780517173875014118539702122047062717301912406439151982451803531209018913383612186257820178951581947724163889269238678436545980837301807303457272386012118411526428952883855175575690768387614527050810831860549734625083332098594033764822674409290530444105017667440657428914345397309569688284840274447920481056977521174158859099605548245483409361169347688717742066204719900753864420016760006885048313756416821170776788976187404743203631569135063758544354953453620598338096755887662049792982534333455802488826257910184541333189507451931286421220184504110196127212800028486462497566660210599015198948494759010309267106617491596040525323314471537216373095200348216607287494695015628471541784963576236574705270536595574881044144800171860288444612256214878778842855214085544354197758581508929151977816254582431235001848980756387278072854671645518263831846019763896059013993501233291919212338383458281418964467653339211013953936790089414813995936818977352680670832107741883973525647621434299538710383531051317086628293522771616447131653619894127017584075484292405398050151297352344445362645811234518866305406003662574187629477933220382365614979858628290979986383359172672024062132268855711981935430079672976847501234285312833779978723009651586970920541165964903796471568572161350273324126680874831586566780711641627767102928472422646722966835737962453809453227416476773746648519304957016946924912285931055510045991137340810643276253021068387519274363216509359342717964315266333832080652175286555453781277011459440436569820000339654541720889340831703515412081438578994353841541456665521858301448921155010905773541636945222365400644252660559654375920249132857846039002000419200579667886067618576494959648769860047943568718442426392948446862759871952821094676633147697032161987152268856492203328282877058544896282450559479733427873499891977625469437658972440408182267060238476567021489852651585172924198258103564377868504364493580813280176549164044820602357788031965004604927440800995254330671137927813640561140111925587046368066854165063716767911454484443692046889922692239470178060455258642814687112100570390107407482766980614644639738433900503538728872178933796480829723641199229314834075639834188811190499913855813222120579648297678569660203202724352328154040419115339083447958599336643694034827710192291483351891953800408789071848917093553161906661337826065702572775730561103633488520919293145731152093845423783696914572431676977232571089421425759242856117643391509208367523482117986309231827510144428490012500345132817194163473974309969561268221059650998170588578189785082841773994757515740349177107971581022066737459175236426724241817592838071320694729365630421664869227325540328309999996046197905175277532087016112213209858341156331868612627478350503868118016111795141433273279641463435341258010128345976525730661849545835003506867763769962431282964742264255412462119760522844455050129503400198231405146953872631849492740594053856587008968227833751657491958127551801225514400248331888153077005042551920261999661947997074223855129666104029907777188896725459766407945195293269730779146327466120004671512530680626297661173936184452370160768448853659979104036492027499227813836689637277530272311297594935395579063875080384491249564277702450956574526991753808628052283373963602313906127033859003069508545089867061871110799609034841644887831686911235667409657438605164428414540896697055397211990647275629705124773031070019299652388523848715885877139119010145363479846266245254710306367311846386730577136600151786465472213611101133465108517582568537440037348231476254541518177744498957814080387325480744910473738526813497145488904793574640759584606158126409358152418299152478591451869170399192121485031238874074195308154621926958658182194650074281746649273915946999131749474134849659776584682366163230845990801938804712614129297201361334461231266272601735493471391549346070787443676782723500054983179569069598643728026423035239822233707762933278182802897720240120126852047568304121225487576578143456416916669859800339347978581945080191807154934003791511085673441819541491248814573409456478303433830948798605844538986195984152382642236901642387606492693779163146973934746405657395539210631114519002196012483645920895655106137972344725121179515120826196123628172176140082181777358972756846887983990436564076588971411422357526635216974185504903907008769566497924229373448181158995795555794593144796354545425961639993978613621810812993305634249641956480408606642220361864684255338933369249193344390620746923036059325475962945396551498481921912687421053407366436005800679980692406430070059260402012888137622923818967498358992435673756984877889988390246824762785347557263591390179646942260246290531691013195812235886188850406131233010199535161332607455362185185169604080969243031790546134696517825231544761262645721545827114610694087064253148903014152478091922316667090046974008747458132385410033677041381452032610394230508187297692426293285369362127773070383435517821112893482657119099277011906060691862464002833530681201980674908971302251233958690339795824382065555213597155428073939203797307592868358012230475944702681632172020378684061027086654272046851727581631497835076578106006700728430916217010595674981458866735474221727076805567377011152230893867673792451949716069181270940981910702163606657467454076818333897955022410529816687637689653354679957065552825852452062783641666099451395030392073946831275755397652278430877800865124442379256666681031434282609639587270983135189338397577461590708619215647346701609927034025649094723266556476289206754147031003617438007452193114921700978079964477492379471011307870922054435132568182203332226347046537621405297905455313840262206577187835034613862384081340759048330935156768684466068772331466205827804233015819365566881956559126684051866797666865506159568839642964081169874641750504128598078192168426190700983743934055800342514546552889910901175745123794443325316785452048542193858746136786155036793706180337815195337244082517634462499580639167214200901400815444014268690648718843489064928450631443517392763400826628555190065662180284583321212983473811576825814341213719579600493921604083430683842431893758852510632959010034118659898027863228441948905096787610546202845978019209435868156523631075089722851481616392350642063833675810853886146222793592370620471571074173311868023135342771114768262402350453914418976674096703058661497739143607897298991888926966687442249943590469432863075891413137696619870254209654435008688075746318319801453854994199257786517417054169510437284886517184573570834735011531755844072389843416884469567867006685335285050344565678191673934106614550849242470661776262224038801849739584097284901802178779628976275407743232884729513239678083549739097632248436621789774333749193369770475630485223148458527366469659944615833563478734631097908735166926016383842536854055957431054287341542061928539774783459443191530820653360018897331420990142103012301999350288062879929218130946522693845947557353328396948260426947353040204683041376738405296276055695287377785163061314121617919193076573850608940620695431038843370795802588200327747840535001999999843628805877170564628433149578413353500665301853420668091155735111712136985758048099518957012401062234021932013236458152157912620091687237487752582470471645259361754994482977450948942499796985466883691018416375011729748448192641942850012921679553283731427407349859876446687342253418096451624122594948066516217215949377496647504604902496362697820013801681596664095312129486065308573656197627679982418576621901501328169266594147725318485492136021488083672950000358550238380201554054991482991455685920042463295584150646090294415495310661601707906534389537697611377119110112380502660246824358702253636025938757470996404091848345564626434832112796860745501809775476946640463825162459239320247022296183416970508331447623868684356824950520751912945087869754210703157538572427377666056670497281091858797685820842695009873864710608998281286908909898380093096415539615524745566083892811128018951306220760068335629853462940665161775183823184753098524514059897998235543267805019023853081671827540630755589032310918452531330495396802160301509572236053799469578181570815391009273290447774847516662564753071123780086402966979958110315050493479046757817263938327721434844342087381761291841534207139999480158993198144613523899827424255523152453750133943174062730373245981685620141227535115975966779970915585471250604496857671350646407412512224955245350425956398505516641891441549327154290165403558138878753796398067750723830173697059987676693803081892433770193966312504107541656026602567095266322696189829109257463966367640184613512244950410727722437576759999261883185727195588255762809963264008996455645526252984796650279596233653958514299285182452655065455633702383385935946027223231274357458160694265858600429874522458717212192961489573604359625144382388354748232071298108245380918831008628380711960648376980213273274546855599374774584012146623431477463066128958998558833745943857397253609619046200190466405194910550852408012418703170976124405574673992321419087063929529600922952655375323283010563482417148124159448231927827709877236406466086294521749148121786987739448172931749231283571966344483192462303384016204269878260661756770807408552837399889957806605269037247779312318816603230079803013744587034878587861243178832724049724884398811188460762172037440833427494170099111995991043535529034036132917291117523416090863578108711259032035937168957501023459737151953855204376142845355963921716577443520955761779824846891614650299405272145139910027328947324874905021136232436288947601738973931521385090532341271777691855589961532746504910878465676293896286540338779222788754167974135239099258846159092899083870057917018962763704762092500705854986784361957555447926440685203653820077283769250119225952303375920522050344041060971748513647424267513791796402922328671374068552073532125854426375418688896950581771762659112191600588520127849323203735960870607921688194144076370330195592518156873228740876559772648935046528315994637273194138204532097449185846573461469141779859580514683128942065453259224691837440107521896469289766514519776333385905664802108946636699128062776928331666049647708928578403154354364849185591434673683352142539578170111988697543572312537271193650236834315645205105722190199366776280416766955526760044874982745529732398058940081967017154905829969495566813881123467501862204512102904778684980405229116622588555307892100907322627550458921076952545619664115687573997139577394421247688346458388275094613153323988729322195581105670588143941868135015469540364882142027911371372141030878621178829651921932387418749343611664259440493641743643293184987702231605330233949677291331817495098190938001238981207759837385888578631943898859181392076241094719321585364220082856869958877068353161869376021803315425244341127734126182534814807073303836515719772479088982879450956850098466431252010242492596924172311878883667595736901615980584626891305550946331272903353480953278385597779520664609483346134345459816875999832060057131502130901026027580898077377993117418113745382323741013102749187904189909259057200701634959944070703592484747823082978266168785262731331129340190816198018932817615992280373342856072491597445828386119527770286790588628972802620219551999544496280522228400885605890435104895689427559637597424352893206149592348425985263010004023522246308618239883018619568217382040531242706483938476311398271022806362656429898439968078935301006445291998790477011978562892448692435994886305646335463179576218703484640894466537368521170891891698336042157960589295274899445290010360562847008966826911719949262487540648490612568474386544692051007357067006375538631104656750551720376975673561266609642317352233247909303231291176933783195977195815506434098322642527981181710367610150230006230620323302429907260950810875297886704983436527852154184388430983743136665456710504060333279866825312244109601234107296835910930219772346244290911831722274803907838598662615904497216239570617938951514512320859713716856126576249634042665769165070092246875330080237147212732417349032690329125183284558329098395747617894302906464812824861422707952314755203897145507448072712299618195895830489521179383562502620073767440166606408287079915741714208441577836313867849646085744950809885371986548912796451231482652717507877049137200537360460689458699354514273021137141558029645107502809395109980345040563870185594974398069800485506960685819253852657262651285184075512149992595314775849900336047850606165165352728155865694075275523022736881835379171171896470954250589413605500972276410188902113708538061971672491351606825801766012009511389360456928369635115830325390140061238978828467476658197635384120693751625179430622456836427159129394150641110710053981998157776694336142646490370502554781759989480284456183259314420513894242403641053956277407573015871475581185254015292201804289217441254134527002872704335675105808238944325121113446144728250371736745765583101921595400861783244860801936312979345508401334810887983849711320883436963153859535414650047178106915147352829471710824029768728808927096819378214558962844120473060236829760527518900658868764982405965447432614934756046878979423367923508024491229956981286470508683063598655983611431139542075716955766823326653616850249754987272753942749727045672247089634606207730496167463731696307664870839178304715486244114982035875391521031312503934548528729138715617326213074666104752282541497584079769539677737604968105130448792431319940858532991782257701355889455708975662942977538593892256842996588649330315979178881955148703867714085568085207005596901975382044595384081213542408268007926912858889306560362729157045143062293635343658374624335238727061968856980478860616745102215485483658804774126882289950368721263562168005928459250852239719014012522986174547203346057761413181810820434984496918822705584057449813841142842974117349300694898977419300756070925414700688401480864169018407324331432183105429798634119240461367394470120390892153553197140720444198867499694776059757558846997802665693551440439242152128678539040524959306622729898683549703302542775771809426928253723779522429302712541280715687506806728413453626591142913989786069584691669952746600019534466005746500104094574775997508755068836616299086021318627523609045120846226374206706167776272303619284035499191326376177226015435041101772061814493724711842271967229507997588969313165919193821485826949308490414464028148338333923699962020232502669576217406520882692308199724828645228856153938665078645344276267977317300637456130132456500498851771235958364205592662663519957903879654270230831431109583312174420387105519721188644118585237505706031785108285390977978817151547907859715031867210775196341685754085936563044307696648258790968258230598700526881983570771567615296881122292726736051661818230972704291343494732852301768029990285138873811419744460962486890902961106676631679784637738060680000289912436759793497990921715452173565563958842616839192893492483745797211985520163255553440217802740897561743066620393298111447986612436563764945517749213524087739220318101417391524251022434971272410446653916686542909472722642747394082606706256724745203572287754525359971529565142133068827569445091990214984050629133992708137544592543736641872909201786610312577066923076887028434949140840482796600485959255459528302777211362744122426323449972556401419098808168118474954399687002340760640786958872123033766329917070310933379954159677447055038781569847397593350902678735119056146236753352427352723159146573014493195898894130437465863264434107245661669154468578312710473646999499162222621753539545928246084549740638095524805136957031070864114733965964221667921112926571143007572966021945885575657936620525482655226855670263506027118044203300345857153458397724455425117547592476737120761114523702558877304698293573174675313062150682879743672877443595443576418804295186923053559329023126001495814994758551889880157182597143710831165301957978987681915365728501901756194648230978080539552506393523476339882449317206988919080002181801278992105923472054895312944091078059192122005372870745324407749105997929163021799886949624952273479834765678403226461737585123046482243533424611072558287039685382915736746652065054713564419165602203080965044796232105390781093250643139138896764844149943702560571244466346412167485774338041130571507172400589679930401778029288389187958448712087439667147263807725634995699678037141353660478744736383082521538641351993180082806761362636458749781610928060952467242798166232704232228939739783509140263579002632258594694023372947572981661798025568675096948519710034894432638261390477836061024630300399571234769507524109554077577242785752077828282752250801029855638998130105968269016314297726794904143943053431537287741904862989072008803960273989724961982319980986406321561196333975291184110376442580563102383916093103572735363160319194274776560905242681155262772213602156163132852019479503492865472903521021924779491669058394077829635833034605794993501731226291847239116551807337359388885668488712927875144290630028909268046597709598495671519500642623602717549398970673418761032077727789185570061593365127206705507850908784495794215603315724528019596780303412735539664835333880401531852325048611417768360194289178185823740293818089711152610093736813898480392787545400572935355390025861930246503946325206091230671077772172805737571947653028691929936582162338805469510739580503142046929195112989590313881442379607874257582096618812939470040258800747991778450584985677841498069881820161403483167584975952839903134246758012993960109646449104564916076895387570410459607499724407872369210475873091443753938933283952108324974860167374296500417673569598255921765984241634360395812495347559997733865414953692827493483469146856170551461603507827015444455887519523587798284123961355611084218279044382306410513450224464011065495936056982986025893467136962910762859388126185345689393966122753601295653975002259474729568772625885548984112223959659745294025979163222506998555646914854266426873905910343864707820962495384827552627723597640505795978209862887415915042497045421426343715150853077364639852893176124664624491923445441381007651828161767806134335398774074396606347926068887505801310249888216969361905853619291443467084908365969897123998289711758908801671580084040288059011067885335867967775428025000748087201733840895662962838928112980651720023106962655654829908198401083744437449586300204175318870824617450646348903195262423570477722807250505916477867453564864049454563459279602964458062110651480525900931242945107577892291421868023366253955634918029592598370295843975399794163182035101290016076441399020098268142424665837498294369397663962601204426846862417296731019565875713925566171572066798433663022896548211426701354223729677177843828448167575366136281536674525163919161450136907992024493243801676108444426488656270742514973928367235681541531616207575053379685788683750966495071404886003856732523619971993138851468701277855556528737610046762134934560010470432572954905679258921934018169727846611828542683272621874374516562221078003963640104338060848257579382177375555133697184726581126138362346309123102733409544108772844759635484093148294664165343839698816014016617735731692821419029644123253020523944577298299499440740276306225889062662592218794475153547939378984293811656236360352922193395374434049332377155121118916429121382159531338308641985172284577088874858390495250305074624408706695133767636136491298527330702486419907712715543376590750715814554994581989314526472568105394974449571400016887737841783916674429977588994346861793048720416966571953941798608455726151479902189973026509535584839995446800887219855883562600300571953544675575001358418216784997350376295851989925579718934804120897711896712082537929052270336514011656357240689236324950154625855599569963416550342650996256563402731834229007595352972612408646106244938063471735353062749814559576940727089569214606650159005186406398430114730844441835692763744121031167341975596950673807267572410392773701402416720417419854472370387839580114272636918262670091618253126476489152327442362470272468570607674162241876088640254435103207067107817827055265996742237594361459479788674310636924170580554822126575534056829384823419717916902808941366063930891809377073990469289062425875706188200373951469287086767524654955640206080024613095198629429810935703174547375645103447119956192207964859564816223743703119852944126877954804532461801807251740063755064388718472759314020245530122556362401672973371796651858356338602338928169148067853134606203599090787249014070937210171909457042484769890285446774265185322295015944239368568769417625172618421640367924880968364785022322587737779817467080264650664870046014952978225486468041980984860231668488760028978744766958852913748435993402968456657672899556902056070211219745030155010979302775236200634550569652173379026849224649859514543149217783204580682508245829829327880674976327619444192209718094666813177848369601169769505453947423743675915770686713216598970170676684549531498891938326101338444235735488197683363681905325663505019483892671183907814561936813448867200965789438370002944855906361520443295686806436934410053725121094141309490574323749525929940174503515857086107952968056901873407314272815521727815420284220680172795280389274482689812559785017629460250472317946916374335362055555644768818819038674046332846381484064861568286699506962300674500171021151571888372828530297528150246313031308251034462646188044347937379428159547511098393806210481651876961534091141079693309447263553433918647820777435985675863577459987873678475157712149308922377623901214064973789682149302231688160979247285575027083139482306481611116639896502766378513393356329423431017028066216529812394537390352259379557505330405806525620527038420488374242585352065607741854721595526701416884761719509129221769932697081385522423019127267703541200869766983395569159590276328438727966630560651649372789177701847186860002975338409876356224619542163929736709107317067824583275043818120449768409613540893043159980548071628225145035196308453212825511262691991903930344321196873027723021390272147442609290408084245093399544679398035819260467931955073408359956344488940253482892586848024971542135278855250054342505809934126860676662474866787545511707678214770013436883540204860854630593369269941903559839911712544656753305862724695429299348958303053985498566913362761760850998182375671926357780612352046339867698148172051426935548022090280992123263131150950840430575791511204500354310768022352310380457873679567898492297341328258628825895978723373787369629600916034689736894627578806883620676753377868651298657383267298061636030260484301048749469813035789897987567403434510544765838528860637285565791631032168780452235930436420935848301015496235383678371555959118281794062877349301106504979509742520286942707635509042795624680712352447625171369593349556066205030033725345517343139146589305926963236276682055539454785563018095673862691327672622213781606855265254963160747419178697326125788797962503323128453803875864659911442564406501207664754661291892539600084967725572016112070056649989692352069542365921593582890858104803765918714184733094155307140723641144224101164844377652926238715466971203740038064380125437179972747941112819202109034180455897572116911538118526987108823819847436837066301663780517213682715082472684288568328565179878941777879479929424336029316388377514372031997750798546402345922141567534236724715554382839901733701498380192201103108528405314482523747265976283459711443041515591111508454101548720483185282988301519187869482622703243010736258772297406476444180524231252243055920444443756744816650881918488261789964340965857329225978772230155193001808345738863487646206460096045263204451055844257142402948300885048657911233686886846318673892672711839126981154151095602838441678401457600194797731567442087185400800790952249434757947671663260855776277361567692928603185500882365467484908864428637230668840748351228448048426795380031973095342246894718032405072427351796105855917218045292270788714041943154477190308135704131715647398394466392749127461001255895231979467228750835151314323673884252906104127651233802210893333312817678903681296089397655105530523101999435123473593116001189369877674911355297990620755131404264125482849713232480835368657917489003359150303014915771321493570339531517380310716402450985883483535666662712658701713326681768555478005519426189593985535161593745780394979267549287293619707924898262370456498255423549540423807246101186203848980646862738803928569821560155148937508071429726860270739503732198055666352558820202173627639061498116004966614637997619527080381222963552646556741608076914991408902713884118259276975915772251811766303323156748780009028500150512106284977287782056623546008018206707953034924648104863229544782129370369364430498569594644434388147757337829047020001872231392446211451063455218556117923266249958091264770123654026407202644950656957373133795442745932912833644401529279936719748385783882353123065494221583512499580854354275901873556839269895809686613979111447337707854010681293812366827902479927947836353294544902706462382453594888526579841960575674718065926482331560989650620342332251037213127195326503996670026346111182963024747654148054515069223132816910963617723258094994808912221623728881540207979651797654798140496575546291737009959182104240355993876263248806339659965562782723662956176427457717740813606130621422108714858888057037478741531289008754123061955277727628794449158317308567954466954148389414016297259483620412141765551623817806658027780429733855647997857515636173669188694242678834687149922612301060358464230233865897290807740946969746677665424867072390056434753866254002101348727642488906930038866885894900431306991100965515728756501924226693072282307933694911710246796817464387019938246772041422477192564097080532552361951413303571329802954988327198844088698202147317444371133600666562657611737140265700275181055365070894190926829941983876983224283242993253011912178318281765969994361539689863074974276934111423714235446001624129865936673652239332708040916842574740753287785447719128669786911955510780456594266672989375302061807045849781328099990312729609983620695247492924042358207589781588573685439423444986816039519075723302809282966027918777848571242865523973131371642696008008542596051127049138983404378685958502782143151655266547669498562307821111519367184336930123622612326559716719916790473552264780865713412430806478082507308564132710729412030328100803833679202592468311116167302170564574172921800966096468782660493016580672922597985365165354527343006639512225902693071589053254497126225987477128981516896395845386133954713091029183801118998005761914008264283157470233902550689923989436936050011130675133391448296217072736855117863960114148157742112563126857616797009213848202180795290673693243284495597977114094095772116730793442769842043747387122689772997795748871808549674498913992083106326628366589469482090525604533084032033899826153812062274755782526147819756353199833497308771837650600219405569519670113640557527812849481686520852052978246635601442214066969260461453727163970498098249121887010629842647666645934586388305343001884263948416976616691911305692474928210973387386338272052209594408002917209809410922258226612404620007948552382768871689539696646871735937647854738297494332884992845222261513810630748375526375651765661505362223390788786734680336774055983929838160213843836376738399910392508379718848182099078496957897988803615482896873735617368504084206540200684031015146910653311606011096025247391703366269070000977111405922455175075991326791769343316711814867844708583499931414577133314709457085948222728874569513910939592481959536081437500060133964308609231577934784291614932628505976595147181637306497431842522838554597727797350067995420003453458525420156607016243728723220549917946581196993915873118233165376156643209038873585703582814586302420664937109279062017833190421414167390333907071632355162788388301602544809261051105013531044857554603996812359388950558469190639360716604159033182828528067631569180446787967359923564967040300353224427229581829701278625053500161695520719312008521303514721866032816506108423344279079922598655064508916082036938391307299170557915187028156905436573645774511968677716299979783223192895784643653539181683197391449141164551719341350722298328901781217924590232902948676239127006292251336710643259008995920190390403619876949315724082088983461287281614651426203113283584901919279798544861920504762563034617205464690365017742112499751903541331243723609064554908960956257694891557950811842765428454130106928836260052926412962232745515719362349133034974208475186137030093422243884648270301402987273312583348151447245145965764896775856475235834806368300852237660929860240608597024254552435290326340796251657803180380461179328698121473897896034654896464612315906300392230902834738783287560399370474214185268224014473910371295744220812000930915950395566662475674626442071603464647654528195638979424872000398639765855482526028313840049699327492722589801238592240183925535526490689683298002831460722065517232386742293276767678236853223503723197906276637182038442570547619821299088532491801240317418106614479723285418553369985140491366418466230601723841301300514231411242933413033101430466939827449206872763315049792527161488118596255262174848275036672988549435912889509365914433516747469738280345264250912074176384009290986267951299201380557511464305321320047484655728633978518149262278152632892102408692942838937781975398991960344895583511419231623503976623884727570617339501310549772722154242868108263368379944879883678034582420053301892376242768172821004776812468727034977099676385327449333206210734905592679669002982007025085945102668077483131632585196015199150702231133757854250435028023873362897402252007541533552595971945040341752105757007804001417330843057272172968622162388557001077046952788075950605354565883024578049172103228108014090481038283783392889563247640586014054962766328916313537572049807844693223770379988899480495924949853220471947417660842115591024507833090146915063987617566054819341916567307869345406373976756262579930277127495214248617153371237085642192783824799924539724909248686445095578631937900021275401007680547792511271222197052381401206910547495662094396967187757798003708134691464696145116797011129525511752253912563214966793869674753063032895679904502566502385109818989504686578649918634510165917473059675620292816426722831986105213389044161681154783650176197119290581726394233151280462150513250649021276899161874459348268553439842480258039986659678429491650948711939621872507064716349676654102598500007513054264100275858733866633180263715583245951083444990798966844514005224443130861358377332574493643104318511803810826817308597021799142307558764762371981638433662813356747615124089563263257118660696415041359122443777629282729086085200226090080123920533086847515680882298780952507117696375700637270142667067020763202113153791943914793939704963864976936688122786851694959449351697924997119093873935782448064845929538094178297293309320306786336569773782352457952917876526635170759698137343175135524088943505599393248477275130732181453141600331057850278077134012576277695411663546907707131906847850858325803151031147188042981412192655356511026160458165337813683910542011065995438734382798107427959786475791238080187036708179837901484365411945682114068492159525476864207916212483821855395177807734570019547701748563047390957543966720390548344680613722755638026805135369172519415054367076043300671837985203554521941299614629297902735711580145220226676901869779104276059402771841088522100710001516874640204736429567326014340717571473304225300590389026739984314649212227605713818355159723416524148434502244821415991437677584339473163238781296744677226997963110993689041512396192631843157352175786109810561051447526270629471399719861341975153021641991054819877265302483018125580530889015274410664198866931256455468356195068196736576249759913294403854662818921090031879896029111777956411673078750183291097533761502773424882952294631591241275588890824249618643139282482061576261800263104922520324993426653899959464087578734337555321504764828032359296562496291031768201597616097039242948880525896087126403559470574083620529583505716101168920067111413926088055333768405886233164242795134297174435916623847348085994218859021810526850652411421008357820209415376243285397711587639012903291220434542594254493366435281959244814887895271665804294998512690000002915776383703192910584907594566136315801990663153814417635185830185320064733602281620573195733178618187280784991504148335782927436163459974125862238805375736486650787815775756958457847693149588217530398125194898004407089784490089786065841754484278889395507462811510969822382077609834163474349929035271819876756790378836929946448754029569870285407683392687665277615553364996310141398751830084116702440732348644231224253613428340384403312635236123789871939641329918784384776007459943624661972981743964668290242850841432204681314106887924088733493165483358253989817264136319566236537756125843162936601873676528614480614266078534881972334941270770055029669483836892426959009515544878940673728473445490399295185972444139811589445801598678376197034274505383724849130757367503319262631710006431473769223169739063868911064094362718006891578072170336797749657102622901495782858746976369174354042704376768857882949448876813304350321642988545429168876480166548773841589115910364028935418744106120502253303751602604982200020950765914807556607925387482553443717900684099400271030260808069483256180322448902695369534092327773819124150349138582112232536978678684791906324832043935152859913533385556614853410559451646015164592418073989222652842789009076431485969759952266493932992367477844232724337343791113090559430186439808280060643222170132199679826019084827571967185437341516477139563536581553021410930542906034740569110555100595639846535125604029619324983855522050363280529865933304114753847243117524754921843306117433960008336784640359977819681362502339362452968576786875953690980598497265901677566000177519471562043939407525376838081164058503300341859589622647350072694278486310843265408280042252528043954491920183030170880667793038928785368030111319557823861665030324111677249589110256494048767925422408052891870373212696965929193981461836325990540476570852900809134184492281005648834261446183997153560784880865542350838597724852766062171628244807752149063768141306216515960094623951597826018178621933948556950991223180073420067742781906037796263523959495046358561227792486906184465447607498730365141080976672601423091449953708996930127232679999411112788584602248724363656622378698799974068030089959650181718837582004047038079678353949071832311663032341766804072505422082608883848928874630006371411702827004114164372773132634229409094692856767865673039631084066290199095986690751505731428145230489666839890724184919224339392505329519348195009145162594058613350388065108933401735827849172644704511325273872672188463675088293960781175866160423100055871504276004135444184768393243546025528019993016450506036269174489780379700641828340487040010197606560700642854555624140796387233972631937023414751836927187513109629822749543518285159482319875024344223795673596654952433419317599316707716735992627293075733334675382750796866650618758211484878157582790470618266414568082670054669947196464736270787370555332969953078890855123009023410587010063417351847323231615742852810172714870974164405134019154009204633997139266777254047783387644524733944835365405987501466433780490723652645868145413388736016964555784795861749286939898289226067560666628177687069382619800067826459931403040365740398184229193868202758686159110271971546332920455279819127678027032509859831656130582875322049194393114951229535637882570355278041591506614567461123875614852406761425446681096536921800790042283967376055714863182009534648872907104533706644742256467547142332770102059126594194733967170175714566862387456356829699884334468085375178722801901026661937578695516239969208902591428181702173898166862483576664599297426249195448918838355154952111983094103264610808214570919458579320168722677241909189858502971270482589237133137947402736832818870250796544613124058082652082372669974806119429961983025458405421124098811636727840334302749767028152848714578841866272921453642968575798473139802084492972839179924283736524668809770893573662682800389525271161164620579086590109635481090230665045601974643049596333875518901627152518499116728783943883523150614086561449040433856534788995810414442593121301908217158260963004071802164070079139493066684006833734350560007256304686682872784435913767417472415413260131085844424632388633876823804720555259938945879079848341666689147738338776176154857518558521974942432969050615369928572000259728324829899860959537472905049974347346074204173500667566649918187012047809998742354251466951790008297269331773228111687725806331886073169909475273217772561131532807923187342205251742532873284549033526370300334379644503085922621247060495882658133736495517273136274606977574259885801842531797309960183146626714695763806059329298121288877385574524198796375411998019426035402320151298271331944070499078712753859072444624349786279652552871660962342965498116751406804928922175964191843915418973378189011567528268373450859836470615988208197223185828278182866281310205601974729244883674504074519116856646116271610041756890439383247208150325708114639518106310421705067169970577295191234886644256421767736783250958626314089620182590787100429145292113856192182519147515502395613449399303476584838962853798824806262365418307864763986797626125315193959657605793535512605915723933701722331216447982672152156585250764530455506210565075463152545500443199691448525144206325734410890960609478940666486029822727477199872155066091655716945343626603099757157996759513937887321475659600575675482289784069767351543714450391167683869528474302148090246739029071197803075884558476964316017655748036170880993896288208053482224748461494912001066902021549626667345906956498132020005227976990366864556511887090054480848848017494419465307621853144888620411515810388488568405383869732633959058787830130718269946023052904255295358382183618939246515370599589008242351929534938811192562797716898642649778634199742174765175484768556441356937711502171578769363559142493142922113638484480030658719748603480778041364730713763279238366723539119962447292397169137973854053131528207969886276154009993265999641353871714214992557433355676252969339540187793641946409781192238592997813240533453312048751666730388707101209546421000680346587852864989732286926445283413381094444612435213217073510613012411243206040532549616738766222381587968101544666570754145134249519084324807146793271289740780209328033387590888228371244291205027945361652702019146802443740452793627024312128202883436163941372904601688232243525883737310568078634432034530090766827674394053693611927665209156600981645241193894033552919790224348877078445717927974085569172997182897433475985515899906087245500046029930847290443779106996832529113781614771396257939706223732470772647926059536995590747828480472242955465601712324845152812446038278599746076028641937721702898043975746903293271700555192662579987240391073300819096170860533394883827894652719689836227524784975205363043116247618035045351876590536029396881422655570952594033115795441980268309145325203657751004520429511468413844547912770368075953531016500971747014483073876970427681807959462927913504759985765515210099053931180812526343918308110406368124777388465047908411765633915534349903819280210755748804484593730712277070581145311870053488642350452190337968835898905521952476443853658351802118889685710308087757790746741301996027529151351588334303857634995502541767360063961197783621828946968802731791343056964001045039397379615678962350905152974610281697499899983305441324091119909697741951418521266665728223750825067562614199875383447980640824749968560398325100385414236765629638757644310755696712330030207467949976519429711020513628744489371035354073825362629737252979868651191644824508834572361947634633238930196763612112331764918083602741937601614859880337154207955110313483865801345949878026804870906073705456458583022177786469802715683309013769787752756561136145840015574090202759686425855522033466584992417270088990025087004538114658065075702532238226334941550250664596842064119579016685052661192024734321822783737740386777415628865444981126337194153817464366658115673018881015750097653173302603959331423509634447132527262414244681642120711564480207455107801840411517793828731297204138872330751014752334739817519806810936009527036547485780916167676925983285323723329989241136410637429934966863383259759700248453081986605850012779720557434556897554611089847206897178771631603668089455911135124109284085632207056821474698551982780259869477252907219296927459570375031432210529873314669597327040971567449459226600624989683843241327047947415561067236507117173410894367630350238262175320019944664456823197839152334701228196459043330094618872759282850125652542227407082197140860333980194360380564368237387584838117618552427554484916804268763682477793776282349448725446469963306289867647755798605213751884125684188336206957068480325378124892048819093823608540653336256350631982298030179535038460553149705763741350058975742958298358181652796422118115354786250878107768612471035316004472436765960765463561062990034173941401493802267400544563567233340571155937875756600105756785121184934819465326489852747260537682703943865539836159503946535759117539769828384446121502557230582652828154871891844823143769411377189697164079668853576226411154225959467274232199827204673048752436579139762599770947994807974591797883679846803792991904244831953010136345947730409376081655351988854509190906203853153750027509035249308589425703104040728415966266448889526058057129403393709839068703469035176126127634734547869227361595460989364998894919693804178053262964363553538725515028002698380162375145246978831537684375252485555126985941908859162364757267839227792394087201881535035265260302046834479263073225157323939286304927758942152105680797766764167047388117866910478507843502149943482051624112096940790617744107473101552957244422549671647427226233709940670452008077112225808690808689492828888975478752222435601395117260718746632915102098698439743176134464747457039336468840463486801394953017502760362802898626545403138730559440070741132671567596142861901569278723674399159818484954832372177560030139772416175400683846386261347038066669160818588610096994353187075251929177454981922185774999476085362107572223158600873958459934407081715971145611633479969762579151224261819194977619521288032505149623356876481028472061769704051450733885914874253841041390242823271962659378837687901093774253617435116182515945709114808255132648776653215226553103266426047200126124638022043391326126753897014036434835463580125268751837691622556517724536412878391276581058700274182399424686888833799055542697334286944313313606365908312556687537192108094777038567767576406477955956487262183510365108979749748699004419111927461369472542239980959939071828157782135555235589587932251406852641522434738803972676540898954844833526956377924940183912068066672323462563005387460161862430353116328435175294068462340275758764268274770458008667742637545321231178432594117484916044112174057249234172706574811354259885899901410152155526713938437737362228434347651365404635950201220639461417669017246425754413611799363991940865813700876538005711850993911974217796698792468922446012681100517438705539334182320575845631570725227443824815477809218446339325611681764316326002483117033908881412783046229957332982300404416996048491361363069555364630508262541372628114426851214694361590993808248528569135501736648937908646402266466793197228929136523781947214313386466424327269976104859792624493779772116339119944640504451360241769465287523900314900386900446527338496932279585300514291151342013400723249949440136968846857755893561898286689847625215948291661483386765853797671820146056300961175779849243773637604743346995024102233982207843145092741920289353013045805160744599156783816071067345304869687345146179270561270153465203479642641082613155377357348128569522475083420660906858320673125132586897459152243071605174232379406527413432063723353223259956642884815841575650541159639309973003044183936497696684471144324831458986491661167183242025833228384630477987040011971617362686382922787326267936476618147542721871019842477556731016761798297458532880834719929776015665752513949939613928962710773153928110855459826863231944622135430162068579381725571767639659254087531050682709980852018455278957128294843362398739201026576128227983864141035175523310926410282702020555705632061797177278215581441504996278798606738698296646703481889395203752628331555549869502582876935213126170328783710254619636031979723067482604100324466362846395558077667240157342102755507298679140431407661992927853111134887593476811193025769435005393444486903765171058933362891687506157869791446645031159945097355163914210741354359223407228457088422451716898828712372207963213662621126656069861472675328063000464250187142886390427185104217126630613847624110062649380756004848610037066135282794046718711821369557015973363202266588898363813050922175651253652167649835763592187280500019704350538456218425966555929992701359721730297316493227345641836720630404549446805029513260620631324696391889426112715267985020086184604823704307004121807642625907070062497997262693702785882401555120242157793954036565952866420873318157233950105161513293911072113080600760623813391840626697807363880426488630709360605902162190575168047878714325986986685746113435968735172898099709242786700375576190787074706937064291403497768350300405541923924489297365984985880236978900944119319854529941565379619664862221599966791998650905418647372182204726479699829951130151823166910326878963596970912828120157488422999713704878838220551175490995503065002313935014316673743977365002142041661023101908228896305014414417371568160529372495023433895851812930865965694509280079550634909587327389783465842937492668037916589827244483118286889488106653139472740425645443257098885108273476256681517108351808917481301351559101462632446530928892737654531618881005259816381123304358445181492041711083897720774579206207419352255737882845775876039299488400709427707839055379886396656510461841270308981712308384647373977506251067809688204427145155539650780829908913779789073801074198647179713927441034806407088797710289592016024172853456159263590487712929635036760855742175800386160066027486039932100873982898330205233554483317860216788402301926299370388530992139745294263797702536146412655382838396813020405328133870322913828991894026361957587526297169941055131054429801845695058283221288537499105583732115037430528503067649744118636859088642050984703212298909717902916487226577463669464123401058207826758582864608351602547611608375451978004595479054276770739015024312538070552617397444082638548730407376640433004120144071636691527843769389980709336050207155826250703369095117346487498559176409400047959202442112184862291916427188295635637430299055266921649706133811064896929848816310159813589600757222926940449093740676805753020033415378594931242470594214919950151883140929947663640177595378638886853714884122680693414919797183223961947966695475752302891559867883602180856122520618246238792820207989377089393456745285144253057788868827012521652920162009952983854932805194217497798937954621590036922730505307699257317006090884954468464067842984029162438586018838655879068195173554802433544444643712457589424704752490270318204347062413751228333773229024717054946514914836058015598910866446356087595364471963793714443330712213941038881851835951298692739249676816504959873939411504654854448928294173619122662207492274707244911121929540429193981182342572261452918844208189781741190419596958630690575155184096307961332223455211097871182382602372276440872616022614805343825281165766087083549261509433773727465003238906426310435712419448732317084143737466857269999518536386629078920139354542344335444708839398482172000807538695368386789293809248322752491723486384257146973533854275198734052276676224585031086873395003935266873794972282747935871159631380485701624100374995368739386300105415656050859505868908536202322062033321432805827033586928606563416844365829580380015664769851591752613533836504991820327591646816348099149959149398571518242567287386690438147208880387457627946400803868501392258092701705101792609882096004888827456284078036702172191023617642715854598783835617055777062851661741029332159475488396941124460211979404027917581302778154803325907758426286774876497959759001599914004499653103336889389316888141485521118572178312991509222042896351181466506928027300481502329371583713931644000612936145998061467451750653010169876100663335462520604128274662577576053006884531374361774136527218959331284493303342549805943458289764045172349432856661638328556235485407677066184914184538081688496305146756290814223030169864949340401493778499476976890196236018849887318971808646677321384416767047986213590759822285606003420007142304726154667097801436643359746694400247165419770201457048659240618402598116829892110273256490077411419256734369870194734919944858228065756703274112363891844681688167154091481963449664574318652892438441521027711187139753524661656928144312190029545568661613907824514018830943898612567576731295160964429365640336219775023901693494076838935236797865979336389012701994032316979683387504115728933807297062330671770017647481863896210567570430708980047145307973026388006453662566481233999757650546825425629732155151570355112078024480956580130593512276845056662853067396263200085021176735477571597688724144882129649862608505774503044316259314476910226119310447985122743138218292472344987618526063971642439192832196252864094377773034500739478702778835362637250036940939265314872065716072315176552577482240258718958344192609040774217230439849260047771027674510078301722161063576374117586238401746970768448609051312800546231947400481595081603906434668948061055334032207543328191754389325557767173403132335539745700681846720079946558238830567389979333958950602408432539599117041083782765515481094701266076026752109852654598908091957673049207086065761018781328026250914385951783223422519961460184354214887430317166219711933392569720880265012347193575336827454641753109906977199132813382574448074417439862430532137382912881022807814876988568373164885284716809602940236808682132125506244481092595705193611237390518898620047298744618463989192092714093292542551746493849498741389733171086261293207691756840824082523793828865627390169556455597046752272622921898481503584732650813686391501580595095094050132038932398795199287936931437075759477473464374067236057452279995322865913052043390781121837223480506936861957050628311301923901140414729617389864526684239114355665690320227662970529672063745762626362493822900197444168186903462025668242536608811031988624167274898310724906918861044603436079374644240047718879256471011975518152664200672517656444647725151829999279220775165304024251163103373812171596169033153483073405624484069917629838709662962796154067483624207042191909692336935173425803899799320529519195976959921322989396187055756680523687400957059289594104700719758819273946193623562093470333583642114713563520370034859954196778912901884519257646119104787744511776564563705006944903225596054426160717972268044620399698914440766625272243781995067598270144601166717317582627676457648533399679377335170147516653118105215838281803888868307248803165584350637657215098526732591758589687912351828361554386418959624670379707154719992093997813509552811041124643017695771588357154458580375422824640934335592474792355421655098792466853792603035170867816057237655911674298864471307944881000885253559559348881580775615690202274389555370644808292387856366811844513592700623148504478460751901954533507298311034044567602281363663946442470607584005082198402571569461460021301137102863881399349897683943701770297740194074622907837813313370243554412127162340349736707796462108813627423681034341567492752992561287058856264083616811599775373953848949273767780605685724519494006452764352803187582732583575517201102926432782542676599441239616184004997213766013965614803467661811315224247654592290204676867926233502492205231560290016816040877079896210405777844992082332942612577717198693627445508741607317174258229496870309886712367257896693357642009570125592332815306489709879782863160207861766688550976635103485869997610701478510545241419526258559453165837407310326421154293088899165579198174237522060100221830391827544255434664037159143959238435340435601218663572808750632350867033489738234579916346936308320167650502538935794532618994785968502376934780796641187132899512933365136026741708615813637426864891799068419576953844105262652746556263915593133075155431843218237254993254058305176306887150318384707128021145986272805402499605333677338909829490570413270430686577266919031479410200270079143831949045595161184360912709853655882723130585744585838654765191893547959453314861231393168627690480645273268484570550847384058401334042146171812098144134197887778923450752016613607240124199103774401879902435417654542229011654066477072796360783328266948401999732999854663462708271864966628887260563531881549337740151550383452327805416341158642813730942949271317803220395157459838129783124440715073525119901890427580216247789694508754651930398235109851834111692265415463960189497339807951809694235941435982675577226179938037960588843485111190143503034917896643126795965776507090294414139866869428249985837547493384617461657354254988405447355378073917227670737426032188154084031612498758280376842563140924809340486310859530713880442428776929233350496560412957817253938363106082051134626635809691675597633982310396847522035371550334177078755000050373237931828385137662443075639446541782314479291708032957601823187152482794110393363552500187851852650365216028907774521114834118641373104309902818680103404320819879588723457220781004024523823345190633844862814919798404121326800312048164552179385866675237014530856695912038197279398701594413335661816836376824875149129172234071052779627822849420762682527159809387369442278732007355781236505769782746692496547154430191787687496358664156651290931011644490205416167551244790699647674587520299790167786279311125454905192152949672183459047712049777507975629954058085553566387160481735327394436719259872233027244528076072128787872610824811597016608152220257734937868267509226271355115668426290032531182385076672726171320576591162892992092023685568476535506369963266298098497153428709843067116035738988708602656907200616369501323407976845732544412333491176257487884556487243675164870263178443233135436410027564805859719288609979088083353293045602744169334786787809681937135309562756886714965041435823718358902701234841246036623483619942337447937854128975576380247821100270555120769432403667594773348930559032051688765731163012758910783662718832278564954260676799807431388382686953334105749495516290041040181112024828500783280022446524047149198698672361093907928808948926447055666462385138924829473256308582148083589782759657185732687570857732563998524936814376047153546752799673405799138385987472425694248447903474706459209341948389097224499757709302109129977589636086286228695107119202862225059564156372777444173403941391458784126393487422846107212452783034212003787449923031047787037795464393758165303695495254671433929050458533581518496049448417295415289923633693686749203251629571454384624309340170093852024978784825393897968861843338692438240952658534725783885050745199575219209412869235263278948624582268371050705856276499804370574459338833560241991142284599525032258429003168487231972246435772950391111415530070890350553436563605815234835944660645154287739177731239713331830637648289064109748051100152118726612163335014293296743215752023067923080449910682729967348262503940153689254140752268298871009701125051476844827859245855867293027236814306655167585390475079982380215850480728094805304354198059285954394400760565323544057895950735524611525021031198341293528342489142987590114360501407776292513829525849200448336328061870101219724736428725349325998674850087154632300966364307793822270904680458175700221910172140877011602630735903412794387379519181607253993563182513164857500808185616577114100801234012246930618053453132375803008150886986989702002249193081598869829367415297623211751548852555320818405762766053239688588686597534544314372294558507177277047501540869623826749869993143655443620461375019194297448234035212083365903637879821933448109147129521772547035310469977133473940027564199547594580951210990982675753570135785878059581367697259503812955033836706476481826761013309008936104166753121121758216290020275500705142258926227410016177450177237561679409204643462488508167730824260706346353490802790811079770057108108273718334726347611447034808846215820960128984248423510593879333967438630378758235950463957073161447524715433175263819006440519877647131007004981031233827527548953376561246776506511421045273552971551182059472885072012387584884405828456593848408651788100748918499191294076255212129763326988276721585391517295002627107184273374716325065774059047584400522015572284577850925070462705266175093011567181099317422799337371736957355461534067095148160524905859362114145075908752227662734566716535781295911165552606084719532911879887271278283741426703672192492695471747550721359946540488804032818607369941926021682820330170155099709466047150664931097719850706898764605726829049655304495988901430754032306658113402133748838817423625285892598387274439367831181335165379910673380249343826480578100635052609243352000102823027957017062828916245012179808550110915143612254497120686730326649477653538517106147422528305477841287104575510252267292800647339296008550858235536027011123022011246706895337417485113480818535825989953174236926778073642528176541654256610985484788705925735066858709934804866329185267806300900873613917602217989402079922792266500452133102946493408850979738997182392421649688877839142274053796655604352263197698583435151352514242447055297235216167362026164195160863695386779548640013805295581859787010738256123215550749462804031864543861361201255537572686511795989742528493753903973047076934822542555633503898441799165890034707016374656517472060675506083620773676008371342175531101711899507604196601758775727879349293350018169404434047981347080546441479608451733001597142166585893050415235796641519115343612543124705912388039356124281920663668828610810636668266791527762596765020500768540673118240402506798948860177345036228472559972439110890654652082130903216031470355630868892543844739002640570588839758441965851133842986945461005679413500546641542423211779847847321392094482979590953915050138447043957336857384863878671797670880513906000088821652672014122996787506697119281652330057011583104520341936575431140945939784964009981992129189419026793335512515337392967101523723458611528573424877582396194545216418719686916785437079546877626202498960692626030178091750720058817675407842161719241724994852223635463156176513615061240740214406017850999987252398274681433480150836371250622617304454422486259233261529106618628885572628430022040758625024795584292356712312515023695331181790583443553189792332472678837818546603518219773895531693315752908500220153044584443359034110561449732118557500877674869266558042948970751915151390192447980187098301926489533512292735832128721427352041256026954663685934558678304416271826052661034049210731375379032786692310076716305895347273350938848345230960195471714219798725980929740836109183577074531371469641489642256053592705150736505720763993680977340536405261409981460573881057920246313119886243785030627441593165319359534866410301715715095149527429981749412907515628550316785045398396161002364888898278351846494504485763062098779697307771283753059244136932065684720054066997656993478915750509404674949190287981811077649757694729437815049149293458370910130915522662036575021092526299228239519263730600737778344653010026052854578320907998434984502709986890663524768088288076715472531832469107184002207827333348222146337343609669721968216186796469059493069070271239229670589185470029853408921508754363402668112296390355402883851598164335974365292187044093822121384642528533385667179073214633905095957885960878974009614772970529828960934922973172518485327210080014960220464842102639240536808479027791589512928938631226369811147981220439215297636889519966210840939694741125244621475093208132430816928158508693269924758979465712728654508706577262255950269403739681757480085468329735896643439274217166453673261836983973889194939202534729491199951070052036797772028230720613436535046696674522350454711766022894083023483735136488373461113635264680501949007631856523152289648397765492842724001784563278981049341004227049408543665116627982640566431438750591379338276224025625201815793080305042005729138962957748163478719614469951237427284924537030666869257291639927906043310020845548824964830825535582253443736057528031311040560357019028499942436666322330584771847690380496447031631473258776517897116416212201329446770856700038524615257041635889583931377988829621024688786559472569211436395712180634728240833857041927438994784477725664677725343318861341971881455345946004171875016708311346321052581651696254390105686536733497581402282266072259240842372691783914413889460838294680001985794554217512404222450643200377305935551163217867584839881642800078024145016340585704318674051349234671836715795309200188368558890067127562831612267559656522582562826237817631577210041976706633746860492724491667116013043936446124498784525306245121992437611555751607087681539239015780649986084019048709924525349601850789331846080782758200831335144465165658554910874668807979605516577041165645788599066775305213160103327070886460563920767167392191825104272369999949533947913840450346735890960446408820519208543776837621012876748161605177123489138564243777659793995013353897183300795365016208277177260296348208504069515478588594340344623813104691076222062942921164725201825776714086438952776631356396421523402302795288457218423522228918542292957227915253696946368611844667104080294135205531929541469005769571686976889789285039385701898643899121578810166280437254953593141586846764695426041733082306630061422729209270127157686218727492863490888918882348873086403225154323208657904944605293187547318356002968353913981845582738361809648726417814464251725501019213476774504500874474373183369437295823109168617637018874868398585845935349481831132504159524756608757175587005384570893691223877042117901563246550231557774899781029984886028771710055508463945847525396701341055247189100947584178276956683409459578935878785682826088808304490723962769013395609506148009040706799896829783656597769264125311067792012397556824639593800876451547255347349988524604936213316573797250474401821766127750972034609729002091552799802538463583140010727767556116544550538977429291842336389077190983863862439901375713559712269256800117695608718751769583117882751474990898977892569724530243267852426873565451828710066209647483352074468565009479481732350954520498675315233280231857116809484574456267686783770616510255103445137085984149086392013604606301541185861545470689202038695489580642319288805916246928933258145025256494692701675525174475452871276242279391273515010242861069221919502771898073655682002381270718339714299696708914029744345208116561414629885615669791016428743705087898075480916055625219900858810077942870106847988072940570491590567106241303594936063189375431095895136389383375722541738338983196728625412992868491451431320734539968903325376696419502323368769393661479077246317779858840726230886951401054322913016662927162553411973734090285972991142924720221000190834969803681326548144388944986916140612131606846125221330038282475964596734505567032389593196145227566110166144911798766860351577734372666819186127522992214898458531347876764521748949759843810547948007850833787190901547679307300795878565869577253556848987521685080679638473031721929690873186034894850517556288035100574341022671645834768772176952598431953635109401678279859117574455621009872041358952400398242761772340064406165045566067211414969421429656368256241905852838726340265769898623513261191417541196970024378865889662443700942444705922239449883242196034499715088809814875503010589394184009134652901559818191356411234346599457184215479922305985580599255821549327355100407242512383716532042410496640964200108608108373076589773749400483597271426405444133617475429241370046458786985233925060700487180822525143793598099191519178413518322159100492028155138582918572425318637046140039935860793143874568301418620375809256323663739773721466514111483336640853897985509345772459971183276474361169349970926297976435186004108330316142928422478774042301592400492812908599414071811979726598076017716500060997362114027410668755667969158780547674682562114072755717562935847427403836560964060134061260830420863297243397916208693017439728364103222064051731824707365739314829387633204275562830667533258759914106571228524829649783778690420113284012414915286316872721696605827539358661372798130108777709359105562650471105544989634000617823626838109180023439414864068178171106655155901947850370695758023912845562295748999197069284279934500916194471121909366262537729492468239347646458884387735786574630629946799359205477110847559780088813158341217220617021482630692069950516063155562882597973208619259573259174977876502198878517043779509298794869524827241803358173008497747203091763625854731946043079118005260029139823123497639011935479923588850332378976866306342058841863764525186216316608512893918926999757327068988906597933046753178186638927186527725749141537403763015964823259296517951986824677992274554954935444365077992704548923504195234738577718379790597894935252282492807655092817910459891008597281814416303338414817741363899242218940054412852661835432182377190820274429137942603280337849967158798705425862397428395834353414058559559118183977975032464983714687130772235648813641740939269831197297262404501605081248387559484116692908983918423385914791104892627588489316954919831638904119477422339063470572730656428305766331409186982307654856511128823224267479244133416929416299771147039958675740423444933242645335829252568541811293858239781228964852928243321408145302917342412354358347819055648586518992536426671939893847854600009887169279061659118490113963528816395132044118452674244219383020593487416064724318004237640845101061276863285194108978185325323380872868148509057816608795635235712224357982269965436599674760983042059892933832341977322296218237343483793792848007720066484125800481995714382495302473629230771410107723884451280891668741509405154085166155215028191653555996701050387082291574384719651704395609638137663015853434564556018997157438327091157205122244502569540916288543257057255374946668355060813983563397055691953665230428833576989884730743880174024755939292467815460145360659421702553510767772256256141701207033126931398786568175788327629005770127425200297578691045987974250420595836250983678655135728724707584218078010085180170899478358400496666482344890748021197985187670363950192277359780260142156165699294654313126715969139891818488771205014034814280068985148168368228352299895141509544634080865700120610198422339383513511287936916432207918968512907674936573158154934611354766692392103637255001945519880615988366404487022826339498884049990343796396711301514208918280467286060150197750552915441476152999532719553312089716522522761783987584224474894127520585327043611535336087896533707974472808802110651776111843070301442172272081153162110516264775962051676840600321454981735818942542607867274338631619302186876996189513898606425417189526431427259369224374804416907105894372663371228218985688282451100106143780579289153263763089095885924999260567951529247663338592924926899166425531236531121003156155744928024476582268798772004944981744122479837322694767658461978680470535093041030938225010449483629841466582054427167997437298838905971266058243665204536796982351550454111672082137156241064035592565926910068570789214735873908721587576858859741464141677641873265711723238971611567880133239207694376517975352221017244689549476305439275765103660715820420720818024420670640712567460406938425573735119161702993437861902365245167828528566385064051639079993812008354171823438941126147109337143811288601575640783727019517484841169867932523565844051041801915493564323813205360981278123279311742149321383726730897087993655676946978318549922864466656011515254573111202829178947511319965812945167211777519482577137157168849491953469392609468598424697013785073238043044667647593196804687711248060090766219209650839577387164063379619003419684527788213551168725182646409982421793902597047173493520616017013612998107906876734141114195668502520568724124716839252910240193284860680998848590679825411399164746689342935394083440669776230526949207651305870516563838425966229307968864303952147842245736899976450753949663683291246290206250380550417142535740104059125228481340153808383418324435461062160556817063230315028374698314487672778550683224914199684662043304820480148963331946774107628065921778112791543008777709441120070753149997408421472049140223453585276447707229178589638037121915405899933239706322735710029206821519956083494926225476230767351696242722648308243771770056857928434581486112475571839049097557840189624896527443730860147586338383193594569805692805659368438194433870923657205159936251295575725881114443088402316769945081229693494247552634600123984324885856618110689167252690519933360218259136624674409591016111915655932706685909463739801283598740168998848884710958657604270942159865276043493263197023910917963449818243370250851657034376369507130325237033932134485877318653967096575141051336542488462664355053874760464376829922625744454193004451290355849850160396775757075885423893082000352115195831148095043414552186417581515270475250753325165924001747779983959576693549441572523195713452999618933518922106935016352701111148685001489380818796651031569663606909858974699128143173488899504766835910407042651493659100355708896407800274589656490985657052222589697490728875579714298392291655315180790187074730917400060987906419188133517027357994782037408471828963326175683150690674392930088321484813326159192525310925529250417582379759121142301656813626837164829730366669502467366490422988317950309897419390419766447428594694016467462196660783441899949434241163985160405836085392862615320788524489587021663539202965929166982925007601321830944148390594766712959767765332386994367211182981619764519824564941578306947489108379893154494025449985350310907139877898339557028495106808707390720028175989774034385437530835880933747190001662744098163988022576864668193515017860203169006926060454347503681170432284278583978710045714874183786953852586875257074297493440798721928204145822161365021924150581774104319525403790063705774054874909131824594953263277738263405884515857236337461256888109204091395674562315516487456454677252536436623228169820561352864217063442713724512753245098073226109603078292938611475588130610695807538547826726235694435267460251971355451645149178930606343477455439695006519896913484936782218988976203447800804361105141465773891578944176851887452418922144152154932605741334238190918033120366637822514883495976294615109524932116999466696962948838965583711206072942531700026529474710244185564048858112895591270888359138559179871915254953520194190670435318466271499560650113693205505110592464623377456435958845255721603577254470032554492535672737421244908390694117986790599734727077461384378701938942308183356068926118752583097523602798408460306189038403307692954857500656725900321851869192243853179490116217698872688961782226279697546053195297323768649205854785396463466816726224526162543336176955696060362464125365324210558236447393038183733211014192475286973058622077762743400755703069048776311837306791233000679966861293502726104530847517403422740354219535524838528635391939325800035565899759739030169534961359684393683310645078834947380987782075763751686143573034537345510955452851770480764046357229006213861318938897622416575239141340040062359106933169896519490598559587114973981499341243412661335321124951603426365403213126604836782444160825710730721867758256945475904544701515632599621019736529836420389362673643805292923531783473508434735076168943088635071979628813495798075690901129030777339959155098240574688088691553107033596876036123028052987411720377837376861925523562368288545026727008144404715651755897632814406453704835551419609887955273862111812447701547492758469269882792878753002162422071379837403302506852050614612601238575189719733742154545608690814408860850812794914587287677445696883550696219313687188117861734092200561850086552523867150852771116716126858624815646719079378486036531906394663709790995135132984472129719298549024906892835061166940218207256875753456384897046694117560118354987781119247118785475745965517832764630004817768114343633669410804263517764878658996869993829587400520194533252547899607336321791151280769832879980663256111470078616497575118402820738065176475014723970756559826332185985140718768669131322450757251607571492805659145331034084133699864795478991387595907884011498644348563353478822684281073132110399604193052570685301666138607229207989682868524776179894713562894956446353854115610759874870252469095618036983688007890145960959863554080867086603961020214180261498151229621779273116772180039985976260747170048659362171781672503774016286847827645542649564420332084023024286387397724177995952411379893592197899708315141672641030226129378770709876124701388080413938140967819402807748099374582706448188861535952766532447723372551123020955108907094902185124328578158795373131554658064208466956013894163508238457438115054933872551807356785484329165383975557914044553982477730341691671719000631172463757468332207220749850260184684596518513978424624234630760307610080771753918713415696466784447413524587548216797357497017460992382166483417898996016296447074831941523505555544682509205420586714086463556328715176369387776400859626879229102579620552959142961639206341349814009316855949403574886829561747587105067965432046241321350082274040546575216671765279445119791590916025910101877255907084628415728084564117995258823688152318104645139412617606254100127777607971527581947907105146313665595385880039291214877592254338900249255067284282965066095345011196624254227976469589145708008386344957868925753872481478752807355593143229502027390899212327898201279152430164935995500707904568839969929954523836157967171559265174180837636148001763127704621662129124784763697602380930247706804226410318512630803985217451223159523500661058186384055015110147006732564301763621221141121086303367460960530140215127809282089678245167236702930298872272764469869856479872817749974491423678109489621458657634480886215449448925107655520743056864715816945538387275535686848628565457791431190906165439673385490302135867387331014103815483984885053552941096504225282263221263138022201832198047236518226408600064414687750720052070709653347999190345886125639608409419305121278889652234021440463264143465663594879008852198410319745644133185988328353616191376359633946467707192360070780418422630913526837622036624626630298378066496834913510824259598126072322793648242319508393237742296018100258420204675271490569331432425190813240306877171839735612203215213139912831503362876929363636357718657836434576747667447740248364967617139197658585850933219194267840347304521840289241749726335523591287980329385024271789353204851486673587625197624800973687698041050848802367033183036393038765467166935423102317656398817499297321406360833395983244750065810873776593591589860056668466107981710952868258188880602203413336325801989285523241875470519303908051759256186184220863722702807410559546469825037301703764135352310923930778315341468564827559532195828184139768675680632828952720942636133986213843663496155772727668233549142533450697087562644164811498434472768339411350701639686108629592868538111445265022110987121573269217810406392470595884702664175339494323031672561206345580914188941536961816914758304365200740500140927042767651849156773230167267700975756096873424069000756361733609910845033170139014809198823228907271363078218576844444490164614487840654690723503232523075090488242876386042210727301790412590881249837168294641875473880164776766784256323438538586648685941467669063483984981891903973874558463240294547988960483033681281985727486775797221902956401236335239079323931441186791967544471254988227908019473649503515687699842056851565452078418685176844294145917272187140004733362430612174511884602726992208197849349501444645927574017145691482546173902491601823943322604666127050834317668202784396874536935808531702693352357844582645019625854666087559775311215641360423225578538821297430572730949191319664657509519815319948578361775575684967254381917146246705501849720126688520856433522606006633684685779387746348504328110047659865689921988972971764881913621198186822620154539649029486331062757996442698685821594744523649952154744736250642875362370150377648584294462986234226667944942654576961150951510136537165425738419591621218683629016273961400274852378246487934083490528439976728683671011801591974785225688306005251667353801745974004707457488005616525150700770851849804693764183419153145681726559564447857296568153681210394305026864457708082673463272479304923528311383941329490584015563351328217250255351843311299025994111048586381654933443758170799521473894420170399886222442979687603204688496836459444872652838730367418789052295705548350370757699892463958216758511089311718358408901045026257431286830164831054871512240434894153568872891006388006530522703064722990318457849536596403969930623187972713031674008499944813655745789917645876678645814087755506472438334092504634541755714039889771995576194819024588775221916773239269215716728715771994509872434760079577643712125073537050097180179045333142097096750338196924042563987502431391029277321779250288361163716649477555588325540418603790627914365394227277956144212666952330805013380279493125830726107176741433382637112642843072836098074129562732799258051520332987253034232776955517505894572797811501524896643250352539292764436540026399443110511141131168432933638712712315511665842626090134482932416993069054475521562897111481282740951526417319774456099347950504466249760346265506409444605253765271224544157234173856373020551106838302500496352802798447285070151360800354267570811448946067082335554899129348473478179047634686676067111725353385175397814503790573990138467757789223005262891677595040019742334957710296924975600997779977692441642967168195251025366883323905554369673770305605691601892797305054264010280195603564682978669505159507709831822104129754982465437337499759580638907748076166451412894506407518909805521402535362812828590474851237690383566680744540587258432450286159293300935626279359430341126814890193416911483174848162244398846542947835839431719639809456861755047553771622640816129917388830032506090768809261128642701439309942694341002757155604770568685733885730340598420244764499423303035062090435280270906346622884503954651054056521118068734131990551854287193968593005577116698898019409271777475727928337313308220627442729481301671927982260012179788776580430329950482146079300383197025803764307027164826950039023100831985206088097145209136130583175043025330042946806318866311078768059135350057963310834437760206772932741007728551907231360728405042411396991652334063754754656001131426267877195596555086633564772270552186217633519793364002809767036041592853166633515804171305394109836175489726703608634894942595935235504774611809221002302066022604537876299860597194197419639726620217154119741910533130728008850747233566408523439862202793841570797767454326289178243897864912295881668179524165414375563309250367530260456874848479696779673410768421431965825333704066167677816259478955941506335517136794160863124720811684922972516405144107809126822862736608268215789985580881286140647562469504308427828747443210731023559654237841354114150226716198225522048441417338352772371232437483492408111616126524083813265073552358488287698111272378423304825902432531071024482515875626367516089307810883850271891232425372322777462606534359090340050660037581768367571090244198943379566868766306573910705156755184270170881856263309990408905815445626359418183962718891914337573353854286100620115258565961925758860278801656401900416370753588053117436969096867965391441017948001659603366448543906396138467200162208788771905370261946460900367249810600700194774339568213321519920471996141061129627948268651479102161369558558547683805357601525324219400141876501156843747764958747205395660181456505176328367760828447656369358985678240668171348644074967858702156422128770267716184633120628582609552186788059646815950624719412543688449772814194360308346467583185203274627875041889404409415718274315869553005477173099234132635727988193802145848767935654131219184942410523420352898339846545339443173901206794424940353959776248138371612913875177641878551552492616616171685440529484311578434754986273967860358820553794979516531147207281481681721055936776767058738012969321797007643828911016325243013480328812572764527379067528296998085986858545621303079937331333559013708901401225818669195963259716566221770172826836963252428625577225160564571973441198246022666091733984874808683353927525367339560499305184556674592014052789025099041024490183737205634537342515523261328588236138942459442924033171251272464698979639498600098843457643645510721634619777866645728880642810866858447291159843833519011591805242228358034732133600103022896574727624753696583579662779664642123557266903637960002191811717502642897039597260729955102124629826131514420341930235028650693392443938301472060150639918052581674958388792519767259122927684039458189857542865995267395467961712543504050572619455254353591668045332324512406021066896384204882653503984998885987968386746234885918738475194321627396672535137233697995936445754786211670538737978806646882016990732714845325109215119035489997588293788304721494776072199903514750784421632680488551608119373133333736419952289867195132533252884340420938543745295019527407295534590274149761297969929507662415287668525319100506048318129202433136129456808262015174633990586021466608644467572142934322508672054791071280727460091606178021625567772768547806794949146831631234982298478401123872782804391999710973886400617287740765669125280165932061544107141884498897767571878462414174392432087252216269049379447396624794046306864601531143640206503500813789237164646971203684869988163301184997708606341534091840702587261485294707524281634743453037982937325120974409019741990211217171625239673129100689999721106804900991777442434625606258650629906725887666261492394705363235329141012654760201769575592557817955915282092630099969306975964923941594651336201658831119855336606374354438526234916051156992622099647217218973835934492718278357614678812163938906276672405878311735024380224215617912340925119368441446702442053387214471102119334747586976763145507174119414899986970512198431786635520494380137013882542121865845925052754037870090133644161366694445376192471163121500958515699406165438124764071040333606080486030708240355630027318028831903183706484113893030864764820550461055086499002006576152200491803348717551352305738237617936535943290904359742324875827455940361401572905732378039846857273198232595102629865928188121589764395709238802146712733921352078576319653379384402608077049952136268759170382840247232165390133625112876867041833009702756822059748502231889861115703317019118338328919562128342671942485779842325420249273840848725238050460846725597870182616815848377950549289807021407834433550481647980119976239787746883939485594560949878335682863242712885070128999149259810264324053298207231940737976250315278332405398317176780717891681827740869923326741107724693795236539226540890431961914056504324948881527325268935844962903653304994555285185865856912936952835663688207412935430865093691209132867331863729076201733246857787450926310194388717469866014690451249835101485609538080563827713980880114957220614703575413585637044822451032038034817921684361392580138721329858165360907534084809111140744270235318706425647417262415886788948040944701556212098731073131989429005819517919351110762219153198209744164011015543957155939624000468265215931288350565568665069995569675750792786851074453789139931139259992070446264588830578327143858716286770506323146210650306519400996155861086676265398588718382818889400418155665086668499056503099495646205844614712834008191442912409362575024426038370758407384266343213912461617857512448500625251518277262392548904714012292826068969411260262517394649154594840522489835661072169034446129615041928139408673383340350506212653006499686636511398021516952136865914475001941056671269484315343819112702247360148158239887415444033491771263038669586855638832771870079876589269797341164451637363170990328491948808791055207027555215992206952604904423749654007017560360387465926206643843847694023946241570622105985652865397498653311729610284235630592655778376381264928607836271093576466890183031581798958645647514595815407700684585143739638510238132580914976855937600329819439688809301925951651903076265177134289262022195864553622963062405033635664394897125574479055576793964966388767670298274312058870581817066875202180063475835316770947393068118835292488306463297622000921572108579624779968142875151966789941024339740029632395468794756441601188843574001071618774229517913106689033003434566704358793209431133121792940373892758956297921809114339033678604283506676389645339346377613358419953319910926621837595538984705342710541333912764455708985884210814318669394855036052643252796955167457252021676064352587515771235620487403629568109318071259355167496832825500161612932188503868633453879883193145239531113741660753290129814847450212256095228670095487001643704487055538947035090046169956729953325059502826443502732293767738288960499435294131577526987074663451590490338853545154623844205606085620438827979756540345411779824577373541354883478527294018604983609392527191260931893898427081305600119627248597559764027713108566233081502041957361711459007580536215711072650790705418912461717722869227762596502365359049224008152702951490873129348609134623557376989694377784786762439861100529876061251257068175402652766336039077332212284058924317858415402873208960455303458937829032669980394727723635105833215343447623295446025672358916206722512410732310919612940618877620106893242532548305340706472805111848470823609605408385457914815524348226154586090649490888916065919631856212738915017517332898436711160241251867176367123979828276587136179292523374325786619763238039331535514661256926200048961671742491279707478849355598556442944205401648046017265214329506013671869544675030392223692637299073139524361300240771037974991948024799997799103757605226131162534974785834167566428159631688742912284722206787359009486461740141671727416756852742848221957213248933887587948550350243766833706785106271712835986914398100662786054347850487907726755397619625508373798386265848135831175488698808848502761258300193273248939884777117571004156174247099609985076074828948070827764823048412870325935111206583985912976145527243261631281233896158785640469226166207935236730593125359273165217024764330875422262081919109064989442791079884556218752986371902109008743255030421635524998598757921591621429674355490032984697847872450881077676676053376827853968055128880214174718428490580539955910723191586487492492110780556264420604964755421040625255746568778150165293264113381625059223712016794592685361182407086442447682649839136287718367604483371009281667258795760419245253023337731342348370496587546011693993933804444105792751576782063871754112818359279931316145556367741013892870157101854255411566973882644735134108990781465683218817476493462615589446116375794846592741338992603778845901497564583562216017689747923943406913002030019235226758629857599133637172320796332920094367438740963237696804516366395584366136358319760393805094488957210427383972484542117984848782907528616015453197113490764314596359832169945606324505224012969437210604109776766111117754598888683873567641070364238971497454721393005081660551252608166087409329936678303242603191880246523818130315298279053493361837648556525906737090443374611870344009366033620273765931786351583307928770897191259486411828664442703788427539714380201547411457854738298346446101472279848868231507601597012227171038830722681107078410274916102229450225267106200034747942881738719320126728185851636331855324163920889891422623795300787359978630365785786994366309661023116074909949230297721813722057714407616798224380937243943413827712647036982839432000618500351229719487792257478773047899911884626588423675161647863427220027906105104157103001603675356971744495063864829178780376709625347063962504463005524295135857677249547184593170586571175815714745021272243481657331395310398610609385369110504281651944409340566813532725613337627037799470493607832562083087931778731950848341260318052919985048883363609810711887108796491781094545470458008014107166427987867074282589882019829306641906611244874667806261319304757387604482525743313662159880234995095453910588352044455730241362712839627892931236130757072489290365612813551016289488401037495740686677006375417703316429831386087604266673384030839395391104986586039716318983847638084089277591759451885486941616142139730470352178596589316097246437334294748239810478266680310590552541101181774091163534596089055328740936751500864792673829958529830066011329230875105727255651868642184765714422604699669613674788320240943117967874740503887727414589596808076351408801032711426464740207361891577119992603359571412968569537843058561867168222205539962392718324937487565310726098769072287370351996144805466359471032993222766876301277362060137735828363473827450844674840171985481849791849728073350110515723174996485701016503623554678096257798722044963927513491081242977822072550421987665228691881281172848062095641481672866069581134179100346659346148337894177074379155524311422463304804022635856899632750397538959827115419731247723676223864148298018582250494538279409232341867791377039406456185736781303572237726362189496688928409456840684385396399774821551248107399951014885611019220391799294037933867965496575743933208099997605224918466422967706134380224315240736875966903379803895134409244576479697820729172316609211619549085568268714261282739709722308910319843412706235975570597163230427624751464637062148809002600309924943335697968204916594802322640385177474141557533344307993910315251333616425480747480181828930727761393405795935023720481488821960164726266265645701735571482957561454651214186731389981450482337584052825753752003741940806637106561919197453122913114801748671051804191168028064625505727873414823308812387173528982485596801375181346358733173520237753994402538458358771698661587848233586362767850311902746499981457109168335169809840153153402796759107544522800942586139770367445656891223934677378929472760299967987746814256821073676410931477657519383129640985147800861969937929700195475614298587756188777244389251857769453734564915936544955696862279455099374687434511206536733072726080010550779764577480184726360811537115764098898901604910613210502289221858481626634731479982834507762336013912757124011351547815118133722663701146241768535766396030442680168326440311208721247250125945254379798766417148832655393959994596481299502439286389776904976943711449108716033242791186325458293671773165340100373014238071280831523393138060001530341646069071668008270759361189821021140575967228973929087611523313908362952031431132876268851832374341452499068554179777838075534695125803361864038034110850496379790072290144896825769341457695486694966941850013950121558064583610516337196052943621879814576953073497134793336580850003878997893345211608334450675128116668309461147666638891901033215551542552080555590578224019872072369781319700797607833787875372456636038070769665854023857731442897468037922775568641670070049312563895292563026943383189089959110186914848556375776454719797125687042747959520567069893123003668865678996122300728365368546972065942793491757096172017532723262970437245861187034451329791754740408469159670291857907216390518351736645284205646844483719676841910066710562290874695996420639914796058739884727619913188972163023994960560860756797270018126053393403091626621683027209879237619180567888249176044980822991688791364309550731614552599129876350170764444302697857956382218528751392505925557654732039119094196976052213908821767373646704815495872098796253828531084956371097796191861006166309761888199289269583593254906819394883996544328055769954113203242720900369149436123281129184474940759103656685522499232007416373715602477292747589359433850367371328622119671418813327228443042614840275242477307216747081065197652796486551630532742081562888743933945103562492441424571738073710826163935617170388814762826999546848119463849154966998886282235693698177935564195951611875070930082686475631671119154907477953879054179919354785369655188602847175980710496000127046114951967490752701600943166264327508491834935711917444298970442057533337525121643225094428222393265095475524663511707016776516186658298713265147805039691374995776491300661138803041480745368909294079831101479869421384843428856343217386820268466750388200571312150594576631602967080513775755943734662047315997009218601638456147071498730502557078515584027010428927993240966625826255040939560122187867751882369998719049673449995216255297714888865652031241875413090519797369479990334968356968328635392788975794139649862365940744456895032707622655772068585711656388811892341141869920885970417277554680210328543176077437721145783087941630616888658788782232020136261431201141946864612070078015685846484516206170204629986744849001985476697429691421124956379532900831299928494983478055270534187785791273823870320700095336878505695560747832363556438158887551663281140725537886625794832152954479227256025032312927739498192299955899235511296912814119323244914071663482438522439604103849464268916793227800802060631738391510614877829688238797210287207522243178883675870723946142497379647955108717798720151399180055877292973957867444930068097696956580957856574037001451560586641237958358896850291545786860790332762493779034346216880387638462657428258522857457243826659696867543823489709146704365592547205955277937303275269277280672587378134929417885162492574309783153391262357917607137206192538274280861401802568188603055090847967258943335272448926674385443354678463689279448718867742690820664308878066678027682420169164686283978799381468767369843232737927918037762425789966784291788033727092742416872641936905106697466607098060137965813597158327199382550072248571899757836621950693800885206116091110665455851460315906102130423917769523518906627486109192523122892133244690256368836793245479968611457429339852960136982856263264309420054077088993858541377702460186412765892654765518970334197430353836903381297874879889598554457344048998597270521303965324028172870817506077187019803696461616028195108111057613291422071176344014688416882967540602946075237903231225357365565022838820701266761519635561536953859848311889767879012248311717767585841245822260836784145220727064135954598902538573153684125950432762566533700585101148937197371441955001014617738962980468566760348566595549427979342710871434712510267381889961198483698770482287863373012707952824093083322694079541470530266632179364393703397419160282193179356067425572226368490572888024165213569317034840412595940370372916827043920545370394157121732087544800459405890516711082311163365324858714634386337328925926469943240950520180967980301859846314742747609792603351836278081634853245158476401664899416250432213988623835956631566316421995762517034680028404011783014568153972688553888769996043829683035074514886617431676911967455171557214635568557653886217860027870524143916997296911977503483452838934742034687610573213539639265763897963445354240161600033528976074037232770394213815580370629480333464291997829969415708064473813131060626179133148727043727289947366831654249232142735483802963949241759136428465308192944919689174423998491770964770371684398520387866731573347500991600220666042187531448696835662552731372927876667507591523124803402303080392775513632349458568299031143680800235450245244189841023493285484709541431157964146670046647168994936763896084796269431213915350364291894538912447729232766986024929083126681257265289490865496739283889014349694778335580220205721132951924477848856742588762290735758487551640720845471282314770543793057475319061763656456605258650589895149308236571740208798514626076199757392456133613981532754943476411209934548692742085544907509878061641360728396328389167759395131001312378885846825611429251069097123448404368829247959209192332813244587155826017861909520591185129324694326743329197642159881826566805792206053125820761389383144831964703195550239842230591444168959898817853966869863172308883675217252715707592274623413537041320313585037713317457740136376334228389465473769817645583690776268865248282278562113982638897434601898946603977149028250651423669772843539039017006973564348195415168193345578768153488031466307514371463954914564073622410593051810599744937298709315024791460761179201640982108236724990869451977297426069529466995076058308273614156601361224752820871336924224462987766349374140927155695266279860475382838112324086412557675596901689604113597215936096885997810747784542734843312695581635831787931873246242325191312875930084139012992673876205545476001239031026189164969081514689960423560661994412886468504891952087409957779200153098576363620362699986159754438122144279369997066996356719678562449015887245806679383125595212113004860122455171466416340395270777350696277047327450625595468257921943774896291152184854926910234950020105156834017131076339159884200337467710398266239277851471429935081400414718631465232129794209723877975572286709684799857034373674598335954569968390003529640941886930902279641751946876681413712050962601606459342379682747435678590291669938521961569468128968407693246021769991777754951289169125018197537859133782317986275287899385841841208335116209415714870202457023606286138950897087447474037116394003595626926372347003813351216832736121357829807099948398651494585912294973790503187559544863161892104885993890697716034025807496856867084284186397804404571197756549417356671533897031419726541730948707154521990324104792288876493847625471998911242521749023577873824898086860202757082265268181362850143922879281939257702838636169597904656807862811134759668792065900610237877555473338240449596968974662668204669315215721641418459877120348086800988657265936756625598495446725811639933974235015303014644580051610917063282951309807354537586045997376804098956251002101595119841763194871377025321209243039807071973450817126219090364442627983637661213973655987855162115079658801669610090567151179135963409089015784025478642544150527320958085140767339827100150445547993432983742823823131662348476785470807981081498088383211451969150491287108127418584262751046934467799161904695624439624055632945925788140377683330325475386465071996711406095891874125220408934403701321994464689361906672820380277486271153782490058147854602376539128018854524861687282516619974004049829971614209283904021634431788737062252605686948568268555073942455826897422291514891687138634493027510261422581984405251397655289875962902878878485815578211227988126061278303578830777383606730786916046489512235252007309531829885129402732770589303402130248325688404243448309278173512939274031251595946944743708503136144686794940223165191595920220482346726329485147588710785814859025018049994385098459832293923839183347630216663279217185393450039109968241962099765840238502411293379505059666607389509151337893511160775663890279712178094561286069890191956752956964051632521938406238707290819093355927403365223962989958943932980301966920005652820303062936166150795268287579591974300417836176979183056150143963339101924523339294720108505989236008926601475235324734847740762840032885517440304796959073762275651858460410141500174120316723674762340142017238520408212055198154023507044790499479969759733580662875279854205952495374543620355174524315201719189414347048228453943195643294600916555370893341918627909958921196460342436899356871014226505907775985370024640480159793670520678584922552956962475260928753627537976092373293333741790876534131285062191279841650393973007486397731730057487859250300300769783840405497246004502119529185592666773025254023829155051179687567538230460083256839900184509402783365940487070648928008655568667812860745606178623790918919944415392165727929796347359139700642142126991318060363626736357854815497724467331129341771065213504786442201307299689906240067385692128274636953383920497090501869049095460670566122132868097763322515741303333547848129247418508385005731348237354503445656105732432077272646676447372869457651979765031656032845042031400017746654688271203532325361362959317513692969893675601740635286674487721369460833052751627756008017626513763713160578732519167496199254611138690335000988088931858602175283582215709215735043722007374781894349492519721400857503596434921413960223515055699203509713778584776633866158672694274505707660432741062080629660390670993463729492533910429274609545890944956011274227975627089150093918803979715483578093201186892021963430779394559998657715428297273297798843822861570881730244477689045841482674507511792500990130419003033608930820489273669426753267674414015402546154011157411298790870341982638302223652728328555989651994569236586855987860068204142704862952295290680615732214109461404057491981346293818417505769215810064588211020792694871997192331606170442503429633833480263635482243289892079949491004409060824049443418685930973158219785782845975971773498061893940236287108337168861148700264874077463984279215054003909961011029927709124653045666976372667185266981413313752193235415778962305878995230841672799046698496238282172249687864228084265849884270958259160395660167454146456491209510377123478411900620357362781297479125113858201496337512020044563742942428305001540167348945283812712077544617026228827817787280207502329635376562377543831107186523576818268621997715187023656921788409198721021362375182857428674598011982028489782122082167367826092209631276788599801182163454624927536526518902682063025049569246217371721401716265137482950679502149175892776236408384457455534681250162137972561799449342484400044551250589356222896968435053927504640719969328854242689578384401020740128904632536929651094936230642629394906968035356435394068814005040102576140838195147090408788540273230456359076612944914338529220859704367163164369538953737799969300683682723436911500379482470514452049928864988368239267166936678068365712579714572692687722666476091246701564574159526611141464274372707427058522674588047280083224184219051551006854301736996244731148211151197011730666940237311012264066336170787579271696125514723433575546812553648136707276454479181951732375281547819769872796498503775665151612781008023462947657767420487825896246591034503963295672986118937743032334850315193380972616717085049508944208466181356677246719709868881227074402326369842530356835068230968469166913988715293903401545265914092353823551333242929090462485349351191935651979740761516351818774940473076514543196992417797016266027440803442369011324230155330818374506133049363378562070052709143403495046105525338996742929834776431214332135608098588325617245600760315531164169468301247340887554727299336544031717925525014568489498147566340137600683887111684401290471023426567802336410324609298450524138885745038229972571439287545533166624326565949214357659957100747223349132908594297871737578520910260812479128896878070823433047607355503816652248342927685991114383132469020702247300781902149040467876509845432458566114198316419096030468384233577564595606863657715408392424948963450073953056733159507936362244776539320359691924044149265316476912893042308872707557555377057427616515901719936429258743212691735044681366749737393607777468736010451144517697659700915689410597719833669020873215377813404637521426827690860211348290116959236545809778565351985605227364248578316791076152125702107693890836117754429679385563884831209350715350081708345473398315842047932128076003175980669146949423569920812357623890273056535830315942677606205652324945387233434894654188386627061423111432304056270376322153005173158042758031344274081956298244486633703975764550522843297811795288622043797200935885590837669889351417837809402506425822748894307624239768108969989282326436592062279484793998372541266656758677223946660778448761789942887746594254036903091176925249301753861642536180652111526271019438542700802639126483822833168470368230909965073179481003407726931079503613581731698154537722099998185700652212469398570477522798774814686629922648599120209176690273923079879880179989609661557927308917502731096684648226877459093493708468258565882466343110108231103261243181594600706263001183425264612432095405010078310025544091656285860943558508237868816724723539846041624955896932643906464727547291253007335986562705681692132612303778117416510587970001555220886769288328064843085346040014509879906633754881080354119800209539800505676526575830534483843230453794622397096770588447269270247125175317428292222691785038723869792643300521876664079543921260719057998822841039339272309086903874705796007562653769383674171700391976451152543326744761436986752161237528945452206965781460225104634772434089113482530558769568356665413447955271323227212984526388813202860431093807875758910049467528708529687797112600440480476235801768361353708325554183117466388931838766394578612919014665034215726884656963595142361805066193958318035152217928291513653211186626471005100189805744615430039097182871913158422432064831714855889350689799626488463751001663382992289101286080943859605737175206828688247695411330019122207527884366219189477365971265097126303423864867637433676814971036008530768094208097936689706925584317502065090997115573204551655300239774959157939428055089075757091594872108442552688346794727588801572976848792811455746559184279962708297612566538525096553140213615441782162671826945259514697652417390339597224141976937781161111118992830958658042015037803746700114610664016281064891786695741332388512776077694947240348516054325339819082556073206826900238046543367016806609812902617758448014987702035208584028651520499650959991173492388907667531686941953667739683586942704211086631222003965128155190665279639929197034125406127799581092546384584129936051470164025534415379687036046830378669201156180271849976509188817350339486535953564766581727631590298614143396618423718653869036293420683071074982827158464504925633599807550916982566199996347227449419862026129699300581925404078870541520467652693721986700721727241824462694263428696727815899050937541420815316962537199025695284100548540128082410579421175198546941466946867508414760884344171334429092084399510392819749357208932957013530786412551026407590362100867025320429173456836366525656001707264970338573964399347454358699512491044903583631139392677635186315045645159290308674770128604078559671914014234861784851263456549807405304495123485045702663656375165584166974019983286049394380525369687224499437798606522423126946878399655837249235996337014165357006441487301720173053223806139024740235289167787255502507414299806339005076364496127521273412165305886253176727070661224230146604216053754633238208919965578452893065386942372610489818358621479463037510067102843375633897410114036718711414355660931396454950828495291917354100827699063127572244740577023130123766724384712152275376180352857549856652596251785426737145279184601437983693872068316129580984098377090363055703178414081416424063687364713036380660385825708445096260736976401180430627733008002380269871844902124957298203587515508103914255544098513625684502238906591202369068147882812272646897705761467625273886359435119709219408188526577148194299436309803164919979738302983382316740331746366246227686804232251053909681632329142580362105466022068739905995820937920368561885009441571043809234200077083308344114256901286287185918848710702368013207889345671324779407009219287312974232906795002870986580861384538960614027353346869276281576610326683167463598023986266424955406533487412982856729068737120503435957746920450663426538338113485397929784943140518672464088245022672487600189747741449906386513102789962986755940860735570139097104805708084950488668384458812220398558207541297372020341282098996830950265411422134709531707868693321003724806149782868906233488345734402636714715041768777160005987862329959072140240099342410419698223397031980939069804381569186814005039207473268497133412013614347450697832597427937580197007646579601093926565191641590870927936386042297367395067931526569460921078532386956616866532366526898802744309334404534902716706605425110718345596699093048457131662713145365017156019243508384379966530528756876922627699666187233726378232976705774839455027898341809377073994094121743683017595698407821652902812178111559555778166370715404902530771755223933830900899935173457490880774341096864430307452442818284294793516874314620933922432635667487417675960717969309114198810084370520829291160815665444681589469075200023913585909426560218877775202465262010741831552798577266761520414324875941283830867906078304267671566077385713485511804860160043086374638113590539459960455936349036845429727907652178809969287443714812968069204893456759652471485424720043387482845053183494893707546747911433598507697854166294544287492607147832065187970645051322794123869624300494726917026271767188175320220656801071612856789859140365916630756021936377033194619826086917239082014407497529155294737050404203884547194010646374251856279377281540311926926411231243971081243776056021818380220357441905759594003041609395033075370791159275898392809781452346193468389352346191107677747086323059005159659000414918664782589118818652536506806962848871314519991463715301602378979981653820761108014917857331054358146086716189726201747592432739232483216218692498567554036162550625706443605924163809751304561580998840060097590772214704154763059542474507660188963073722535634813117751533073778018119381725406488577005681473987902226178901559631357188510887377960083329398633093438815672137884123329957696963510606453247280188794069007422093433651765136161188928445963414618939934677715268324045942728743951847087344533482154600821013966571509343596422883937177018106970884775836158661105719809300100804442783198511672840420450988830159934213012303448967406876075183017802514088827802592195006107779225756847570667486146507535886975937365093233481488007229809589784752706173295547091697096430571702366239658799842893832754686418411410229513690204271486554718453367747293545211058087887566257348191340263149434013225069696113547435845673504704049179418161199755389342834047237299198478354328544554035516214751878247772980887116511110313861632634315385510736908731421241830667564248237028235212857524043737535638362500623264942314297735998861445451431210044205267912506894212301304943525142778929952183934145793055346263199154672545225312033349784845703939916750046071453791979752633402660648479622301314108611554479329743612454740448659858178979214027207248796750596097861970215248990671081267650020127152689497300617478579495436355001367664525676285077463852506099372750489184047745979654940811849805447890508831967617883325948129422508645854522077969228783497338106597583738944933901138965330360365307724837127282535543656853127455298240546229279747031797744028517325945901008375348428205099360553783536456228730028690709920213829685475918221321540195864968001915280548635864523974364859526514950418822160835526392655929493884999986769714627586585324676213018584155577171668203493091277674146439511451231180637180695369822352077119172319486627850459358811649931179159280192824240090303870505608015490861728771529305572901148287010505386494912326225068158349552258670161738594288505977032435573969103010981224973227761809319949942606000256288966694256310427827347208113651191837366509488270010605162209410368652303626141933708778455798304338912318906042666059944508330477996829675100166396696748218775149690221002958791991725403746793796067984589638603455415937621363030426691808552840380131651607776501337466918778049016788884623290511437655747867834473909432400046894884618271805646013595110393224595749832882059794678284059170842122587087254279059580157847208176727696529575316547253134251060535864286634554775071093079929966444350598328896158225889655575685850008474304755219007380954349678563809059555987706932518978619875072520497404755088760670378682693436782045538803199240838902839362103297841549237831021082320961898981315691121763653959873214232340473251041565584607505923776851153170475457202771648809786181678431676191188237415869242125730904673622368365607338451622859932213871930522379743780342707774281564377454860043453033362404256524324113416722260901646971760489296228009494816666004506039545780739205369924627489697108469442880400918290813913759009585357639881229487938861013195965669613903757043703823966648234938704322681531749135667502192758271650634043929571226176287951020870903646466177702171473631482084056196676614366482673804692076455506636589962523218278113782825504923640022553559410977733045270448408013244169835160805439633169079311915788345216509127540791359277149129574857650885666912650949881529993708635447854111171505034330185766964255872542021012781894680478166162637475082686820965004384857154879114364713460520401720016548094519632198578431993853479690311404942663395820487073764960734385569717095904817119543203752107719009804601246153303099409885745390641386897986666720242795179323354272326792912040991564104872981822836431084127938527914663759121982219317034227696056996760673307640061105861939415565338120458740729679740743087953543872480984969234656559972554345052906109394024284457546242860870496453541529052304999410340287827117406924192866909693655137164353795192275186468217650317481385287538967273978444784081848503981079663830600820254181262095390529560758413315150563116226488891011112337541426887482559247057953565831130150406883689623405779701368243431555208806035898200154531130256404995188171489214072130684905140978493498841570472760742929382546011493466461428981561892072948137420117233533958060383912077478082152661113665144176788039867762441719004266236861457620428686530163686178708267793282257304372188906024272699871948066976400438294328389156717327988355005903619618667009323629931530289927963066304195958369794968788976542710000372587565789178293309979955716429167839909906671041190120176899661693512538588229878395889520886516149271191125620159227129357065611862688134372800239181844258307648667754535210287015100413443799620386447079294703344401807879599312986548469178769867471018965932237468437192869067720801026028671900945484782487206183325018058811514580629195447489583812664970397021124960492071446742366050149233991261151172380853633411549495842151543567691437169874295309221733626242230235371745849384015992240127004425807864228931108045304664849152381636668674044110474368942946796551620545235706378148807748865797548087364179814783131898824202113167819980248950999068372469735019286189104426468458974522089317864899482513942194455645852954748254337946818916442034563087466375057018046570417464409271161043170785616746299608250402881881388204040270097197914604807654858603876403753729015110293163834046620797925664948883164857485734224201472346987164838207741151184914037740065374616041999729508415214654443254969925285106090945502868868834133233744401235773433456332463906796178483204951024265300417845864024827715347228380910848096271750960347137178848597254327091300258571950419498795509693251045672594456871681494652689918391934184221749991667015936565156636335832968394000610622761763346451216316911769011015141981485330816607019161586424161734401071740448218509740414798139961918721831796835661334981059573339022740101663128777948413576150441496534474347207852978473803121020064438743984568339696853668645472867038202815394339872938459996167481711453464480564539077697387786849536776160491172982924674557590602907820890929231408660709119989471801586174653700903712194121256750426627772650707157653842947012048202793312914863282074838135324041772818239406115345313996083361631619774774363491539900044489044860218701241958181610028666165085341401611068564091434975693544032847501900140208426650032871210849489572181788361854247006606714825955185472778733576169151751221208740858013878651773847722506699540282198942708514942319972022040616021092286150656360959592229707471313674745460262674908289689365152316142015288577119804874495056745482935030786438966263433499599890169408767690062734266047195159829150482576939157612654933499503639423936587964418032872626212858095414271807935457541794499779476196200497904835806716079763347110575281011371241015370342987194107372677373822644776376706591643591217403990077500290521696227983875747203108788225313358110818114796328639148469944430632395664536646396986154579093444708383522186989948444628548724857757149958717833029871672401328122082728978376060216848963957900613365230960117770271406704018100723019307562093902224018863791852960821880893655291981930054002214451050903215008633830509989452239277280123255236737448743413446921695963295700454394947130502827524408208676538137607118165393998192156767916839493002580903689155178355829016806175604586090745020492287344151254311157668302390101655203907028690279364925541219573405414482681423388140920824018993355119390542061335722321636951401651681132397967378627804880324163549372097713418736513229515373724037686382552137989233723664966138893631561313706709652403171412104602676801161236862165498204850984149614425826418802028819657596954129478756122919652533823190126816113429667185510930836308734869089980127820564781420714510992750766159975737435366886906739136949592795078234925180181685012878700751589563289054496953495134795726918835484215995909710085300381098772241185113062543856451577457562448668050254559859697028579057020994384864395084893485906206597844212663452869336122979146956908992199860820040200469209148135574961072459044545843538564089251760821277910797389514304309825098424256595841782655295783266500802909770649591403122261594501236475032244651095202138135274205924371370709360279487535114308317243166854958542007157290500120657875699782446917592852294634924688581522852928253947296996522372462144334801997078009354684512123024649245018047231166247567466619658904034613225070246031625034343759334246279800380072865517116698095023058336881226511567882229508995495358666843192415908159176899165923598864541153143508712053847703088776894405108153608974427016943782253094933856292490345749889601532929948662385946466765086642802805553524109125482829341273797170645964274730756887893933332162176038235522836226537149030818251239698493910949957553848853483413115705431011222286057715779326011211267768059935922831472262795126067260229992131373618174067415807172706072563574807682546136745017857376410372557430224288494783214821836495216555367536859662593181948419140977265433519920637061020657268588249113150007028272045357397494237148501427215995073790042596118480300668735990980568980923365078089930567420924113681891914342636719849056788919430361321257992616848284247214376455966382768151354728991323382339513213461265664639362821826179822231693083017675846974036730472679922607839047068806037243640903040225188788136587162797787726873269302777728268360304395080845246222566363907303645485689091190620032208085516788837634079066877873341659685761519199968731927595934382698300858485356054817904542973801398963625695180327548627324309330113514117169908353021621050960706426656342352108462609957130324195082499401494647404198743739739262673973972479042183592260587697133202715224029169887166350477963041734047855542207020041082822739528769966236302216977227657853257129343224821564593618539326001336624144752920491791006241115975194873522903977058550353010890248552151698304296459260514609439997724022796616913663973112134991238410045784785391601694116084523715122157376689827922847425511401885650362269925349564510291070889206938214224792739636101143245440310712301721263216565812220452396833252903000719238576029411895501125887931440393069658219273884670383037642087852219905371534309215450676589013622447433981592383093344411338399845267466972253892510442474554354497229090398320162613962177046404307630255104966262042619345096939173233450322236741258507193618362559192660690937623317897108615088520532365801611997453302485575937035537911686975492285167321515754307155768948581436860628885377631416392400465242723443933438954544835023965335680592433802053028526712586897671802711642262877412213509689595350424234386610155933218597842910630647434356536904260167713976364902702770783379988198549274897669690324390376404560680262833606965958542217107879331184724524509710047218323485874562425917477170468103100774606960108009129179881855155689164141261276708769348955122693872625361787832778344059476494708313164809513253684669910856483142819203580506479922364889651604499484169477338421224257009371289145454593717835986971295036867474546585767531167065830490591213775431062748760452533870924177869389042553318328153990355974889886119624583366979126106879450890609074782707986025429398033910195406991791436837019219647712663206746398488490242712797981959609631947275941481225762557886378777210352891634325581605023000643161538741429614315798899118163724321587433022134903846661791301525047977731118581159555203291608680126987126698172476866881056939183805598629111528507430360959591282617024873230699499970842095873174298368287816227261973457520542119423405892652348610144649364876518269785239599485055453932975471510138190659516809630467746626394131155931345601380557972308037251466650183503413935231973178969237722589081921472631026363189222387939528558959865600342814189583969702529144231589521932836223701432927696365586284396412370225469622711634076857213129234752578665668019013403675603036659492058955611272926026763212247769893887034990870400786098192549884970999770463949370985556212256161139911923729226094087401674732393907195823113478544577596908290262683891443968808806063363557944206582949054301491473996579707282139241752698230812041679361679740835301724821824478711362975254928664961930817310282249617278439498944825685432194724109977073217988986920857823574257492848716120582192824777442673343896817929297687645385956177908940181930266466162513419642857186295240394528259662539651732000143054396724097841989450797123057032899498284534810189336307968692214454372556748451779738381710623349042600195238136491566591634836588889088973568943983557129520538041593468900468128575939511982076377173495085652818795618970840634855724727992524349706749573297804016331046801187144087070742099524784625182226591519433832313431645891435770729080185869702477657425914381010288565282917960318927211086954530382731059400880251114642830887738627881857081389602985021737122402172968019341220383236708596783189992342296789533775680586313371057102945961550753714918897477385864216690635532523971856780336681198102938931072480537412373780127812698874690505742759092516201882446671802379712760869179465488427712225308237390100185749851470171413341732177957371829800089190922071343917921360593333004582570581998360501489954560267966149256954862632001787172170296519305856214825582269045709641286446575795787261030966059036772152759244203913359305390373155146016448736684089228035667737326261993047804129320515998492013854639673783555348364053846136708833635201530878217931200105843712404755281615578713685486405717556181098634771704984769601948072392344961497475856904098412889007892525065138101442185008834884608194943791219404184641570841030438680010507220586607135592917117160300076664214752348609628542840536133458857848253935909732950359255038273833562513361967978582689704340325806844542629801452801621218486540309591116199947762462099554809362229184675947217120889336806639627626432284003758801606871748163625609068493735898870678370604507794573715910920693705511484449066051718503578888976401470347167130880407156021054126485887497548100633350051087618561492036313525609230553701580366693528552703714412926074026161673449826557031205064643986543720301749954066730192400544127947719512355663058828123037945648634800570464209003402429223003887517380620338709960015114644465523005571497454777322501016210942894538576380584578784708815613659133927909036460158243390593788370491189219143627922072483196694344009685701650498642060664208665422115638490435352879121856158157735969163017528556243091376887456152023471430529050259789851663383175657133065882272370673526672537386382015048467535678752734277940790466125282957250524976975364617939349671548249962376318792568053288641749739625810303393665481761575586955165802598365232563341184150963703024771416103731885668525633323237472041808294713473889615595093377953664825238668392805115628446443961754476920931606450520101803368996392422508759397357517755897152442088788959611128627991864408644174181309326097025871763327639245037625990405187976236010064385018204612461078286262077398307683797267826969487672108065781918336307427861276842463691486356212068152371772496735738429092691598035667830714847606084821503317088401758669047235970929231727589731472582706774016085344121495944743412138813089096796769038555254955440699707704402545953788940375133987515863394801979828532049908017098776591080813422439329698674913854690059470479288988562107635003097035354070050068072023370730465423968851215091068396117687837842290603177818496058531571310548421629651805543566740947852425183541888159029781016674629734464492673815060478158082428205268332601011249058795173621615239269009789785725585001186380414076066829513311928457129880146717108062667701640429969634358388980642892599193010302089292297603974854972319184348657338182111084692574609003295252447637764511189527320892567735229590321129308837053342246186098308799514417430468080651306851380811628649165233117412887538107707820412569433284934489559273697697509578120591180500423425996130415021982273776511228492143344772573160206000484874285083427891470466229420076572711447317189687458424595510393246809855247860025951516034139339956590234090116365451297150851214436318189668129976681161182125721045892118704554011138682778356992655752398299443919552906792881850805174220645239989385444193081776663940247547968167460407312313649820841547329669520760497677216475984073930709525883195707103334367707195592645092006970586591962023844509470500130964286639895511141129415912516651867935348575629049789921487693787759165106360688661210651636628031153228869397148988602616893848528929083475317665919001336495269063342666662780694848139093818937859169902289122558977036563789791572669054573906873579055590343156176707643694994652580156272112163678166583897759536637607969384519768926760106200436416941346312485846043821008795150410202854234062823482409482785360481956575109907523643584411129180251892097606616381259961307570563043531434298712348516993366520661205856688150059738575528082428073484393406103433747982210058303921331876407105124731892935573483469121976535824300157350980323042319233391769151600715975557315495440851644897587184231966688652813623812973100629155192144134741224451686651664414465548197478662889438872635358307147578240893473881679622451827418763915978840518853074660975516074545305373568406738307139420543020794873081943937683918439343913733682182186060895691274747596808496832199082010272976000580071826855952548674377031665535023082057119507512154482968474125432876562857456114690386964902226010849731684160386834604504032419328954240968427183959817136035048061258420849056141487207531318368103533287165939305084596080460286598642376300766267404044959348692689391036541216166018358618935289936063737739653557502107290848506793628364135543934156364943379760624747947898580702264954899515727677856696077923873519205356146716593039794804813593215306742715028322549093694962522197464318973149095862273271573343513741364817115732320479463226996039593838019961727387428632475873047861850003074974416350631342500445591255865402754853336276905494958996716603757971158372553645989818603152373428786696805845763655075793791282223067232932410991827508266145191495328533574738644248598797112532980881365480959828602829765885972988665537790908339431165606725978326918598494963168984783809624301557644469771036653626174392068251240855065308557502330803459300922358281770689725208511711744355575845504311932098152275506667603769733320708956783015483207954846398633795401127949066011992760196626246148995125235438297904873094525758593522265433700170437931574179711785252243184238649453327014106936079327863695924829950455505645136430841066346982753825589472477555603490068275626681057949957999386476840998163313381301284791289766242605345052958115948971854262029714222755942871411643100293393946293584195330533688713563693939610959581577725997228993341253865986453618515606065758903936303687907065586292655596166879880419280380839931323951655391095416801368647582052380899109637732852603373337146120399922964300960469491546468181016180738026775958568935841988699529584272958427428450266760103751437345821890198110804518026318418292896586284230401755251104517667983276368490983735169300072458020454877453977327169118223911143390103385805067970919142018112277510584602501065001500365056495725433779913928035416024924354256667899478947018604116745733660163911053071167240857547551983039220582469878688843123907143747280324243861994106929578293351759493828318652992126659715728290123336654081545727232950491722368836048816205650506433020829591689194344935533252820098385779214320906021332748432658309684779490842152171696536966575256095180085382405711567594909889213186965447460535424647852261889481229698141755869703083421610722588844416019341984895095271959078118940596652381448354855718168366473609751763444250100764183154988470345971660362173717865602608764767407782401453971790256535186543315749386658013873398259976942741491098456679719704159794014672114152876794436679054791666117925092595319658578771777197572676164330061718973743276858607892343147039648366169030934932351883441843993598312798571714373651335267728813889265811946561809127426166848819992465235984143878514620145797047073510990832412657080160075555240110530892412252432141215485426300894401565591148391547036612920964039350942541893859512048964299920061639302363293649343825420450094221558214204449894980546453893633682187254844954226274049396055552755628643092432879889677522040803871481115627404747977246644591354499070423829747543691335621482114559195246902462152134337272992760579043636758196483885479851397641777501851857890064412310616827700804052229615173182233583134748714832272146799204950030756950621268292002396153146668887197138251247146397984223258962320220662531253346590667054842413807015916017779254976991565669228541129947209559703469262430581511484492446522687404771559688413354724319618535748626773411481760470283890892647697923775061836268647835741054531552777758777035270462068737378789420399802620455795389614775456318052754457293529179566002719972126095664956462664935628052464492985277279915501631151856112959537917565413414882036641981642112181295221355508965526941504059517206834587388110188570990983219275242707381703081294058786738992329158767425848289279432431558441421093229564920056490750242318152231082260945346103783920003059000553993091488399894756570075350860653452173336087224905963750916747122782831660368381713263276611209780032428749363773578476931813152272531987268824236548580648620684608756488274185940281690017820621504074834989990188233848476553354319436664072023983173043624035280982622879783987726139147170889842174888086200969779312170738361884508721355089289033454479795525169587709059972326898483118907451537354306841054441963879103892143773238670521159350291495240872475576404087056155482046995122675765145350815108706989321380694944393275639644276607951595611253211757828735716961158596913941596582224554925034596817343590002067250554079224320992521022386456334802749202750490242593401025785429957183400220607225726449564015365532464101498158982006068738623847117922957960822595930363843216884697211596810617074408058908719678208011020311513079662571391073587733110907681469889673049724606750321650637556878207950174557122860869430358233205876499268753581350318129610574574183628788618256406664576159679898534865585258030724475389269152865673993258155682430666938847111719163632237960068115943068741739104316225478595090449610735406053611976843370671165582886537307907322393747949980635011854767334080426989137413263222513833056085229793623052479018612800306736008990323316941615821616287264973737759611296038371062922640494928523730067112473962213707983786576243636589632947610767012173502809819715001021486452624424113926792770717670407991838983978773289467570366305865623181820451074339087969138791904750675873435763373495770559813524118613200661624781966893077615414875230990803155256056971545605298259776214144425905893542630886777522384513882423632198074192143547448469850888855112905698278412191342313509680634034290744160720898329769553829064589310436449585670088692546539080928097773782267151208373940448465812282199468780677294671551907504253452288647867581443624795200025517814608722851119859443706083195513954204119269213278203498749840876961572531868560461175886074976878371695786619344392956392850711704709326860158346152475274374004608545872202773839068947520874286898832994065127286851996033215668643796950214175201310673282019493070477875464561584414128868683705131542408713659463575652156888691918839019319308557849102475144653986712086350831648801593879562621461042279573182575518841051830792874283522766054317639155278031816617131886942768298826573115453433823039934070220961897917607844062685189213076747593563772641498531078614444542197863733271389836138765031679896711642696691503038827115566924858148121068735863811329171504832401350405175519729591412771055332941802834959551338665218708313307873544960664968935486029426832482080922012728502707544696686686924874696793003425756076812122771048265885268979419011142416646215437263613607742968771566598042127717778532978057207126022675642400652257676683448186198815713620772454439258736934565653014718715070329443388175088167526123461644383808115656603076799806347948827447505195340624518988014633401154476165525479091440141777266638817963372235834225792150526954992023423892695156806976356392540740170262187814071345520067220674612617878797992546922282891062899961286263504915488105176948662469080469006620505801135459736130398992358534764539818254018907862049990505670475670865115532256048972158843415931627475335117043485734789105957072960233542760216683226897299146091904926779521991891235017731281842068279473505688447844086704948123942769549334419485769157496928073171673760974570578599888121493445673898296882142885804890041739400455080844691022197835546414316230471591244750425316237826212932382721868943327151462954200186983330591447707611131057419741894352577729304219192156046599038626582021646382853043671581529866656980268698622081428833401673298018861738500476715788474766726310569640588904048609907861868286240911148495910747148987025298024063343652853741091162214811073915025210627212675770949018207187957200016264850079144160410961002803299461316100884446709644508853354914072439832089398604491299528563247949992325047547193735912840846840749107042626297650786963082608989291025339452429330758244840323090155990241951990356179433793890032847256046525537702251921387689549122863436356639270094752258706709984389524592471670840797514818499882218021349113884125088306075958709311850015469637554121137004791835201370260892194790771974159178298836172421547325580892822155866675364924821597051164201972240832192380770609004333027179322349971243567003063903740014901331685297244887268961369421720186556393006061833275290911679005388866991062099152776356887559531638387372575578498197741415598247216337228579801165831158416167725333316020322480615113206908051696761484379062301344936047633133049845971387818311855189677972992986386366448261000821803658356098494078336886404899659568677803395251923728866538936946967154311745852373736832196811874539761956878201653547832694128792762929677066895772880293255119985649195637908050082902662805715214667129848946041532904468902050634803052089638411017875301317549632470445962685501495371707442181726163957115912777835531883534039014825714172387920209391419452641540790054879419279258746512406679339118964094929216019125260471083135779959974178773549232487221896098492875387165600644651214374182371791412751477127152081292628077784209307983017939495317435011610373985725337461965732546327935915762297117509041433122904801184939290012565479993002116321974559022552665461438133807579011790599484011401308979860102442527806948501121206618808384787956622595793177626956883295431563188655774771599878504962476196958207386679243275938262704491199537334199592013008468328793966944137829925695101357927998419582084721665826523802814644800412944340081214720488550340215203528909402375482904726991889973784499902948464598816370056125564342085885592286596065465552918047426901491752258219553855249702317437107930340541998077316781730333130484435597867017570229158338461433382475321586032861537270812319423532573883221834693128438037621919182170779460973326432429258366830633275893432773249613105075477469469762786577892545943925464835696805557855801998679857428752939616155164538929187999909801525303610203765724037645927660338887598462834258401627151579579553645446966427719458623506688114792254844539123482525261891457679738803515598235407696521584179262899041453888221209525920499034451023590666160266882991488845011933989511568435190856544403740195773494819534949679936188341898016337977233876606205668611409628015251297950447783691440928763220490755913041505629755496938739110289843419456573794508126691712937697213372195745299758974454726966665675000386123015859516106619676632720921848491925304634915883038519448615191273677835381733535299879692068670267386527462223473807154260472696551076741566899032511822840916408658736952436170473942236039308632808236260996108818004431797574827438881735218885968487285103929861864015221876729746530684859396466302412691028647535229649389177746224964672250903692910447251143224474658006658160846174114391558501124942661598040667774421650466922466320979297606566161163834435493815174807109218209365889886681432333151540836003604834542938098283550054273915684792570359612114979755684383879097391416639612028722259128010553608008196354020686626242513394448636566606430015302000012491683082396058700578259816316344216263829419761153972201289664000035476522034938266519980867085973044878315961566869399299695409196793842139054237367177671399337540673808608690886693054608473504787500353567798487597421872446663388048729248370110011883508755603993777819160250825073850460125961665047948883049604016362885820090262463829878125751300828631751868787761914136615853435675597585294957838469054150656264273858648753645883852990194947536594082100888121691133225391463894896025615782633453177822676653678780586172139710519399748298665010333751547208719247060201038516325683419521765819022070346193418108788470841788433589338288723627834864600839550246662235960895448558936439848638463355252350640247672027887973589986023092393982257025512449187021691499584801988378811522086940680727370396545727083358176962748021965416113536415162337609599345651880942295043022225910460665970977778238339104855390455764959191950576977551517703937606082235697267043633892727937124433795054851868479378020180877631515919885553354404420292143550139527004628741789909566840693093267650671783511951264861518232249311979832844300034577078217327245935530137369810096098594208987109288786611048902765555778740835676993838884401778984783594903911965751540353640424826126478873804026630560173958152010878458900879504390759460912808537422178141793277956515924381200565392142926865710930094187442767371393626886759555852999738874745919371839860105501285575300899073281124110361645424277817730724520464074682492449306526973660701396336611908394364931971202065550560469897766393959251114109731522761420460332202612167402341174301851660104869118065137264274858303622193856247174478821292350822489887956416348917079151662798239200930431560593759788088773034263917921833944605892225535620597466617119749447333551136699175145134542657285161932000498912341584416576440433669058279480819590017654346694879675957736395566914032106799308747736388330705531674888311461489521705734041641170217418203897022515739092830594984910758217289212741028614375086866509688674694336462302032878636521277337450177351808434065812072985770893961347388155436413781983855830106401961996555272336290533247446611064540339492079588721440103083144853242477630059469234279536535499240585253913665886191006364108058164477893420925901080803010551949596952707207166865553476462723015916690660283529989388499739567715641189190914819560581855299576949045488513358269205532240597121529190053570137656593720851613025565370158145354224767136849414566602248914830976056029517235353789125372778750679459330860359888372510239930441567549915669661395761515017690693825870612365032357422696621756244903652172361290179274723218704590821865804878442754447361665450934435395913834719598402531345893054279230261735321297633766633837438610308010403678741280603768023637076320174075249773172110729618754281834337222750086013892447334310430989559869807635677643783898311191211638238734991623404781428034329521937857906313351150530769644345614312646305674540181833739533419269538065249507750810510562215281758534320758700346246514301620425871921566576609908982440587034104487303518180676253512072110147878244530774706491004724658287392622603731805584796693032206274380143811627664506092681421376153494409113028161912527790185040335522253207302645954484221008723526795364490676090556652043252404419468210508319410326871660670893431884201744098739039912980163471674620233308488826356918713829069821603859364116229277480819728581430385845646947179052755183170801233552555611059038596323235564739847230612871969896548144949684639727007481592322844441694527303227662764822173927688324419539380110717597602455746896862232422565610199907864211919327580917704073267859520461423068375370292343559949500463289870013635996323041680893832888493400868212264422350959546036955606698923467183012001476040441408243764600266828341905398685103182594784695087702356640056526237948086078752292860030369760995502579232393407347245583987592766544628487307399960710085253306632026149889486074967019728832620459527392770761049006552663134995162523421753276603852217232796399076237563636611561618947261776589702276684522083959018491463488175702170144918012000054714713527323927269993316447388143278570475367522836098437156125433689234790106620210821200629058476103366225420031438291265280985200229504589171486594106450736622179998725384929432432338648223481917413031530159764246899199065296713329712396455769191760297686968604667796054345704416045350051203579175100109733398385379025774752000766424602392657227953170647527058443989322365043031828494511247720310838521262327537307440578693207342108912092118606759706512134704364734967571892703377864423248653395783964448056004275767100779353797252914550606186142786053686857740083892220794884552593151708088707892780443512395002504455423658716890869591374754841313840301931574527351271098646488875454200977816155241300598385210262886012382388479031549442522460505971840485482917102640419002543195403107171490181099802529335026436314210623626155967210285671031025821832220897843036378472673400850184821128127259992138591938633900440011874849290579776949762759708268744082163743359349172328916227939390007725053595588465533512301755082982418727560381795796273750209854102225858019640626318195424834596622922807998519816493441443375116530799023568107442734555305171634109183384265441304059531481324709073412960828364044402337254213017827922150119038230126915682456910924412820023641121916159670036907743647360777312007767556236789549693769805837780823188967047707348407399873544744102136564997689564593844780808580177095180548434880381342539580002865147062159620186671027397564507826833925719429126590621207801072816772645471499267085382695685985190008751534607199342476469575000717177862854762692579742326159007789899683306082780618214715470221997222693024788689413159888938015232339840894565913730836886359330645851114715121085177585402569939583508407194552592740607414774230890672615224833661604229932483958275378696978539599908843491376584439290868241290198050111311548217172856300356897416697301379778013934209687896363975600162546103234367342312642087856685223161492584571422741899794285709040784001867867037790722222179838887173020526278890570861885069971692905631689886878807393899368525121520730148073300048489782180930232469037639021144904968914865192863474410911872366911550974158979648775029911262506704870686082977091140698617874702355323459338701568519048533201033201883376605641478693709785141327572592473523349398028510367374583945693967379349272013577487582822124120176179186703051586036970228459615726255474032828228008949107237437882647132736518703201617552808184791453234591785164712799670298496833648462036623999768522697568798673401488776834857433634339135454346836125139580894444149992786617854580418617924833232710217484477826100286331409573074213841929841760654669325294509681709786499012623162767618344779369368183542540864562161584443142381821970444255740674277632252543247482272693369933469366992783024194515130719025709101974313804719153203737354349665565712617831752072014212277469783427507198193475909256837761821652358918235395937982802618018928705391920186921017137307470998895879441711780295059157620701320649188798098887939289083414072439533943756898838584941301124569325994341067356220932038832986384017828669593734203862895467030473520728027841973763415705332704340844034720697047294870045061503283890914869643438800155718557474291485302488959872865497386114713574225674499782296229368489051612206022547220472506174423129849964989877052818868904027633066840261852877527515181706513780071686620494659614331841800118001855649379996462710865478956075378403899435039096572587621138147235741920076263641709083917526678985260494140768456199076821178916750911846349094336462778761868880971546730789415604219786766322962386107606485599787526006151550641551499432521343264748995733153932959610912840708581256710030264276030338193656290456459057013122301784224137470180766427512120312156981338471302466430614065188492579572767261115671049338557969056137088743692789817495390075006515658685884100037218982031861034239630818964757348235051704640248389577046657760238674450344364186405918866942813031934428247656850428885812239061598942912244862809794764670160211761486212692568991742652996850914606956956743549809647228686316273125404712012373343529214547569662336303481995874626996800042537818500149505446270045278574237836068234116855400608499015768800896097078917485075038358559478270917142602808674752406446792826139558517971665706010563382584494414756564189751833939490979546683493751938832903267833099084456477451082840694841215496796299270153658060237646423180764126872893029254760737713405791409123976268620684399683697378802538525881245448822842946405047989309763857292817612993312626323854041367904494294785577758028048791618346631131324885259216854142667701550159462297623002021311280115092390850930939951449239093405668725315796857778811043506952802992488668265647297078968288364695913157000319729956029751527002237979083282912173334809087518203810213260237393200935614737636636993389283211343919657816702788737970397648483055283938833417196359705712565025041221211544613748455950457254536768244542371478977854041493847887371664112987498586007459741850017931735574198969476620557229121749344127674517337001318255922571410595268316382503735407452138001950616943559226140956609380265020045253893181372472871961272382923352949529778994640668007247063347990941370080806967639366704014580112371296626145833570207344399390928094409755269687486170438873894479712432480793019985967092299944243797470261893881676857025817825037650670212229707362343863987370020706550635658567777092848861774618436602825939811955381982754510539515325190301006205194486710517796791052043315709740203907219572790082944144275822575470244612132290020864827451227599099145708667707181144117820634708995639187170215608151549702966531028842531539376282037111979437635130515987979481296576906337692511602952634064036652717154012349186148411204495403006427279991072635130516455994743031288416299069699277509729248540837764546535807046010994147736429298305761459017907327429190311960785188551593949071784567783170393578865219538018903386378176516911345977747368280180267387328348672147004667367304839192847926955793130289639075007650963327282768703819998420121906716891836836662193738780570867120261843563291515979374378877267774211118310153612738745634452149712493348347818524891535943490644865780215232420737278292523717776593176152149238181407670604140537081234700585452178091923197796095899003409072295581028445653649481910734374676181682862689857953029379460235745859767817703484709943353904939050110491202219136668057100578697649763714800046385479764589823104215445627023890495217739583937181126693278154337387518701818480572753530043251038491187332603607228183352813429538464402470199895013813090873497061281472923331360558023273346970165262926275353669273228862077688148737977703135130591074456844311666058944040986710667775800635320383534430400197505316732109674365213565329537285445298779696293358200136026000061229925498081970494604141188561948716169169029297137861854440991811503315046174342571904048832883845931247677195531374114146605591203493914773700163803875400132072933998666884759611977018248511913808951633100872059990238121432796685565530930964532159067341538166374485643121675093228189416273718346967941364979933969850871162072913990227912024896896353293571836528126152291545420128970792658468719729587891239166027605319547458203797737727800904549566501044837086184015475177575841408989795390159638981749691320510906182271559734400464155118981134512571151969391894837187507530693310167852398783279759383800572492621226153486438277123715274726559741627326767882277821840030794414738531883667145742732855441869124398531487889460919510118314244261195043251095269124974262405099371700539709834963108741261930206891456548115120298623318417352647253394281310104817195554137547336237200290099565177447433708718037475490282952796832564352327106863548175311284203355262283680345283289832438135190856066466553775211298216932299457223039567171337061615883625519636764896117064265592040303533829289443769783373354602693382710917066830604103922629006606167738993547270181191532467023795081241539145741776606606576308567128497683749895836904895072137619367893528073214322759118348332517302925923105164464013275879978032998031661864698645334004807001683566512530161104638849989599085390769694175169288129917645258141186710680548841297740750191939937415249667053391480201423429278083573522017948783570740822375201731750612157789806635811298310299212218873980539074854447119989296229728536154792894229074960143247943527156150073990971379896737936477940365927112857795331298005454512933281084863839722144854289865347109124911200288595246601665670466381823161703407648816890617328578794553607116036885998512367328731764575249753624295314233021363972909767194768706245783876177081774020677240762091430800296496984253369586698923948412343782401637934686540383022212448097006629087675882426670165687535493923935055837036496619954108712641529939811672974881128772467296630113274895545852571037289675667951060738442309129950906499519563422370082149870490692675033122469363053339218487364752695505068882029700740017962590498383572949087911860094429577399742314690808312317778710751704230305094051105217227128769813755719923636171196437690629139487351526940664340000367799403073169434961966515541813528981970869271644453023996910442633493285272710069002199805420873636078632461804851321878065204050890442472460304504770534198183649925125615042992976896414721718379420827778651685081846229252036106873343469257131340718605178606494494683585209999634875837392116531338882071631268030051980059313914825667997539709015775569897915981805776388754164167131107774685082972329782618155500109422018502466975906444838945884485836057059631886034188219371670819649048614707759359337218573503093320378638762024381388694149153935244283439616118709705213844805450661250665702361464942966082526928851556119983924109943254877601094570467302201946242873866276349247765431786081739392345695867840814555362741908416168107428470800085551856880169286694150667109549741848878090777065004528360740299779486442156500386887010452793265477501999415295498842795684678840770040924692315871855853465991734917575853409080060083983566932090653302101849760031464303505341790365159378441935286837363954715644447430271238029312061405009594701110163112718128693636106198286886075774369798237390420913320862686085926715980011023570747997078514197302816778389937215054771180799980710217406784881132493376952799363519706032224114737904318987568605805274308670567117915359641788648978754596839255592742889022542114431409972593143835303938774921544476794418567415467330744520247117048995973204301738969013692013840787210106004986227319595669148064334186714636530800376725509918804443131655632483255675372009893353699094847981367442934324788330292225301465681891881887218081400995417451402884131636571909693585554220215037035757266749860209384018018798130941853940346745574670138757119263097092439587569494441581302648296137679846010019595797680871008118252962821775727405018327533316156869341327639908959361929116040471105493318908214218448259044746648890318058665812365340035483872874822667181629657408316498925572600179124396744626497164902025274013689070797719813273325977977783237879956248242563073172096390480527240728836250618996095999546274719891086735137401176692795134289662988832339351361481142023021888984485762418563295399068699559358528381427107488208246441486512803683875383772510850299048371744589650872764873838191846259225817959843609854636028442909668782444623782950134026667868691074741905083137715536998743440323832194525894915959756515648016798684042131785399335787396686084146730119870263479999169222671348255731551393933697170335612072775288228332862190080720950927013251988975063000918335331139584032045820730378560614140586996465560268173665706755857825460234889481032724777405179058066307472743525487488229692029697517489575768473536301908951171645509675530039758426141043785829021855172583680025841119359277778421592419978962031134087177185641032616220777213280397367702536522848218686537621903544008687668200006103174703132812490536121445594585723297298288536599461398551223925713279038597217818642298428490028522922857128970994222821175160756769654461013469457059041326251633289291007278608983878815813459464126226135382112018881342396966692483636076993127826838080915510435126222524863781045764283571857969220202801587140778271833784503564499876818922639741515174210620490828719647513883524068965139467121876975604054933357571057026780936541062667068195557141429390024328693982993478385857255313614569683543670957775848569298184839073288838294677745595340435367800388617072379664337547722475561578395724509714974278999360232834257349710906385617116311971336162105735756151096167430677366193507388804856126177877711662612044224182800313199793321131544147191618644427411099082701644587773088970580696449020530236165891288473483906599127319614580315673840653391829647002863629775655680082784039149963854630877346147315934367667349750634276717118190483721852760375753643508540996234838799256359573290366662368406231138414781946661904460930077009121630342805481518300555408289179176182475771692708020600341776276410662659195051444355318434447715852161087420088475055262134894499878928625908048847485994716767176868834318543710359528816710350309185923305712440408526286411988497550745900828983277456845167577171970346230420252565996225160438233331038459012532627863210053251017700138129416048208437301364724637168098932057586825659384676293412889500278108525600858195384825715486753126903568032792927145073931768589706211464288319245612241042858560058106552096211542808087707686783143986183530845826522199168320883991120942029048257194902592873594771178157737960923375427035570338516685402814749694813343053799153717502652188608216312775814186861053910150451744818509137055451129489340767215988545510106502827740339625916842662005482603652274188988210208731210616250411120983870385624409581648342507819520269127213216516807592690428944533400224927159114091781944883172305006086082440737307269801370512052502132090472142130136336565931528961785315588333869405053290444544159924282718793249649092314978096197598543432477608646077831784213169296337100248828275061161136073280751054979310049041989239229432575321282680250008426095557275522271677183860712507770283659227244044861400073400037835144845032802689451257134361101346018194825640792623023265840840753237973628145970270536204985446036897623625553008311638772002449791676017520900008694689907095400416747955125057654434589729213529450630657063023338760632125774800623566111992812578362256185304798000954999039990385653414510777268738078810918357966334252199591024709142194327172558012574749528384679940951361141447024360020889362029213278784781585167309903296387266618036935716889055482489685498687835818535821032823510502520014293692191867675306142715734504103186149245605813350916385968613319973668233654522060505011055809954748789697771810933785517179174922148280077374723483761310962117574853035577676249666277526612270975996253763044258053830924506951843493379691185725458329642300882899636205749290789251417705244416847340631062221518650066102664635752315056065454470710075021692949159405841852402503859510209488248849718207620881407376314963400232043510813217898702384387870539264069196479062443475596863634499536985464793558127285477708789021958742256605810013019354145777241544495294122453217607894633826189717081302032185107785162499141418159985152715176670948637149469076946588078996409450200768260630175340960064041364521274143991106015042665634665291250479180033622754164776573195003275314384680006331156854650769598006302371768111282605329268073123580520445303218180956303132148513935289851637823977190211921353694780574178723466701241046477150872718371052228054990250001717362735983349569476992386766387523274503821168439893718441743925594989687885775273885787451920633036194737583741804625580879896150148394550234864748469643528883642651500360530308473101595679633250463354865282516357550009694645322813672126501704314174833962610843064658288782565697696245825417168595878316890595130759064047814915338058956667068369606861861897572522005774403942389886194369913407189886589197675998192168272633309568855082046100269823132880290714160006171379828601000222737660769448607455354840537747875930037077460585516778235137735864543790557768982749552571959619170020988015646349856840490486664047182816561828110382762945717874444139364700457695632891842314294475496296179050171336550713060788615503173528747651317971101703221648339563436452878316761366178940696014093226355516911558730399145872848195496069647045259346530583298276769764582926860852842341007040115066274576556288701172940001581645458141900980852240081269464270157904238555960439859493553696902161965633752066012039078718511883529257518070783801659890471531708683745805563812672055807082577105358552847500626559413363655837305501450882114716141493579056476114403190140282924291811978592209124602901207380353057471573030809716061817996424807934075167189087667345873969828519127250982813878851180600076213049098877250726511591186466889069185900515397027452791437967389497557620706596574911771475021428436239334181026687322617879626202136336805318899121395063427643439002873619603466311404950991894105719176295452195832743763146590088653008398246106608127960364243203848821748718295240975813634384453141940736572765002565735307983944100306413695218709616959345107016563572040987416920578623410106164344902960403244021452073787686208182596509165178774901269170615230995782983245139176166319981600934894459049388455741126441738595261677627901921234086167703024080816606674087852882833579579762978119451563012759017450218681645885406393876111309975864435105401838451502734953339877162981611825944258258743211854784872232216921750927195195044607221888302379811085449623207715663320092777760452513417387734554668454908986185052057395994964828091131662520688512666290165179258471839319337963300792650472256174955982396607424925202917671802616372703553657311428175162301915397595416926643773607004525307656101865812831252540543224691137319639655963267811271619752983207532150416373562083091547162766510885130054261792131391525995760438053276465257936538153457469935764976857003617241634206007628381768614246198036587825985793437982790009205544302959866307077465921469724129091274512412621547002319989888358070016558571872710004283465081212448296919755225278666448867048953213659256438313673047607942976109366139541592324572392141771289682467126480044420386059877623379156725184645899437740664225606982650866835189888284755838363355448197129411894193943240552583210183410927860626024411689457643935233168444113878076131403830011842575299312108133209103957117926428643944064926917960150057349978248506064945146307876431556639169069069696811763769502665445982072032140949365158239081262681552817751889209253081797170810070475231468726683844287642904541641052622401172757756427975790580106024607251886876240030004191265895854868857657071637677108909678749190894536175487719090518313159107140394599144073920823649565780269221905268504355280672916512507130187209687135841897866785571402459476664211949462006750274160455340305119885752173357348916858185793509625680251428231553649880805784088837709611077399606565762111300355726693648564428029817415973850394100347980150467755870443346382781689834303852631947599680585019397851234042108861952105655986267377689978359322710131221839855386869262979445500192577827751206888047429460651895961535488463379538692701483637253617484676229637297306240684161591306971944541135370630148553251824894608232824364794494454601952108008133898076791125099107882910093668100358951144225450621711526776249432330260008685402669173749324860124389514577037082927016516234242676153112579343778022854723028429671570161361230172234798789028108700708118675584818922030733188553140206024559196879690714740685884280482020298707429287664611022496087662441559069852218244526872522544618633543344666171701144195854033306407300995726363620674839618317188652867025368723025600555382941752041827147855570335913226961501056490100022652957685393037256955285292799612856530156367982263227466713710172038328835487384291180848766420693668588147181169998292448200718028024593572755536645753660077042191135541669319398700295047425910963157679187873236728799186022637296986166444556428508585730509883448390156478012949602934922319619570364251538923068060950888624649136625747757078240590536878452773111289552550746910704468867633386188772158178282642366248166109407987132085527500936561230882334368732024600177901494721466688829038228146301729270604168607782499140499692273539166572552783531884314344892164049796037375033381596112642717537112302613172337078291940227814366549119644417140707544866893678890269384805893844957186557057617097824716618366459810988501723838086891662465430736049367826344608061100718998374152805521758075551555620076581254398968350379839108055269017038619133270488516639179176051982230340313376627099910319655663956156264953474010111482837079257373818681493448155813826890203058157351049098366870179208934575618038054353712904002881830430648669314482822598976112426416091254343197980996336857050749202880164445600994532237821011797210566340007622159983748659941466897627420455824176960365634206951084575260390865215610109501408920858706960156663175295218797229541117717892919744082167470043347794715477485345802278230522169006980132886202243846670102358497802121527668483270914689671973376353039831058349169781994561855139570480740531227502135839578732810666933349104915516871317827424544468508617400300234344518217828888268470993285077465165288107201054296370584431112653057430256544126887842424520030643961090101495166276532401615133092495889996511274940355527432781034183839554667999296917299240747013183079337103984139601242255605900736689467392024399953683564694254845305783023334403140310321275682449744115049960012003615006949966291428174970797398390538417776565391541251175399441694553715396580466637942625230295207015864654308474782031341136772343955803380777036366409090727651583602297830045181030941326464773983407760308444723432692883081310230042692876964156228585896872357300003809514208676024008041483386272576321913248080995509275464385104823305387844791892282102041731975065657907086497189298275300776116415548946281241133451380240189786352818862746207540553685474068451512430612997057369461277049653118454428127507787556480878340778922227739023470749436089102422056712814655079975862157521084551851883323722320450961542620435074434968638389507768968339525304194574607183511483570836476476702505058330431411891609329047717990560683502269564878796683790494961124333813873816538793268856491171590719767728649923517154587138932262594532557747214097505594885820696974026677742387553296080795638976900703755971071139461918883023555292705458602072235725149139520351145927081415907022334509186428718142010371200241716172956259763313878148185379576021215915011311045808884216832944115614293494424634717399463912626749897345336442635912465226759653738120143040989114082785111886719573882727857844677828056981139635441755556989137580422276376542262439617697349904738026091518378898633276706190379007390504864279825458258578481682312451116478005843470537094290282091282082626920344366246376045749426745244960554216795080596070564571441837377197448918298506781529608232199473417519548227348237689158892044010463028021118373281648548439083115648706048761137877729228049892025033315849953272011776927411032039844872432201250279058869102855101911853594593911182481099473185082197037467259293527935095442555293765535495210655521986848212511603238938620261816250509370596666956982727706495920161548044034876521262581650305107453297668796235300253322908842080213401373361259144272384807396559871563495882586989856409396805040066218326457329759370721843107560948514800405895826470022474528472547129084165776140333399079687943609048451893924160707121645908028011090623951133541928448339081347601345526226838189682671905017362301992214201376396530473896169787901696801956741560764588558823182977127480871812081699530486151736840723405080725860904489276607474532325145458755764226068773456013137523664137705085571470418593100534910682804078885568640133356142670161718242251434787448256263733790661359246740061819713704447684793009660161587407026138433131143602139551964986817452163673738219909078377056413779333478525881550690574801338651404447111760175850171201911314931036374217932355031032664750143287199805534816681826900754656155967792689013200362415317210677365502856594245551770373902737045848115258725801126080958899027433085662927233339808268666984521847233429003464675830363651098250257775958005539554167186906065552649729836301661587022691298183188699868507833716150444627206633297698494386240002488306961197665008059783918839950907023141850351467558683765566018005047961628196952871568703500322928110302893078389225713299385577625302866461830426823963034026674646638616913705354373866012467833865674181043410706102158350740998575556586703858087187285332884666304898770150596153471517237893580397502395288366106630788055264481131231795028444217202169075181114510669707132107513332000148092397829329377884945348723014784747021748067309514003545175587195985085541644872008478748036252240377159932844531628062683860428576495779431853149870986785184559566703986580117222995447778767091712306364074147605140578959491348290857305053266074066311299922828650902850132854933149196238933552185128131528340617145464669562966217473425149191472003584864113896759810266546845495430824227153605759471111171304208319204865908886616476658786485391791126455992347674138995169188584724127082765201133622441648880650568522422573198917838650052564324516099724286578217381167686345828566891771599554199298045065809856072753488866988230210062049262013667389972656115592056831541773451455954561393116239044548524356296139529399939369899840919261734061733042764948741113105505385996262273735907842109299224931453086016000140206110662227025339138838833761410956793959302259199764989240780848960915723169809509827218857913274300770709981932141516023705380308108464249978152863806210613579898493829651694349327880222800761299268025248091619213543649985159683795852540509176399079635391105304592861259605393112862651875926130919549358301453019425334077019932276549406694036176614620602068514642397833250330985689664830299700845010710000000457971217717832197365544221173535789736868447261489959976897569139427166293568407264011367644163356552348887186780426876862800936844073605593160802167011264166661429999270654797620036258969160904286025204556711833866006043826205170921114362150384911575792928795966391972158333341692162134479624962637458716766817317088359152616682987074308187864719519461567859313284335654215583334604187520132907177597685257178376976717786407281770842128924951188111472069290711823023848002576728826441735752773775652484939601155984911297374403160496993965408526969190307593544606752570699085611255828777484073200604736655487888632797752057539652848375364688167407911083121573387931165218104925137326862766439048107048632217961739168495996931069424177307432225748030952601515329130149456571701043964922988218866744607833389881170604075755889567624270622861683462798180187868263494179572397637159738290220024029810700705126020598638766642664444096651394459247240958151178880935760017629387303778519738800317275615144253847366356519967477844088015933819668134883992529762352013331906771997007969465281653140103363675408492368416426578463223020671041672465391251068803241355424907233180852307012156962256183643816233189370068987469013364428660809864423088896874582535694963352457655858345838356067040932223175596808290450666266976928617406650728768526802598672389726416039821219807661881298212752550179736820742062481224610204228563078972454911828828877686333321582809299812175282487428466744836527292185571828976079024402406965900489465703181530622174693214598774219723467548169826565397781811736117652307442881557454576321088270410390146071728708538014262993831307433281737305908051008379498653701082025462416697079274594799789840809665743303824059002789487478533497536445004638718463206814731404889092548092637409414772949791859218540695643829226574226411979621995053347127360752235511174493243085542668119954396595684542908674388499678572165899026991582731056112098528622551232622875561309851129055017144910620882455237866914651215936297141104430518241651616093915712319684112911987079293625341941322391534682285732892046247174172013376586865156286349938693936888068670281991874915451039018298524749129104456751037154912616106805028720531433250628361407078929562387352809758774484289602878030348793339603797755135475918909174008566925116215310937327996088054846636355204823972138493406798644627582063273027915625137190392934878229703633688766242709697267554660511528279213498293749999243869746382072046734144619552093789060908595344698571732370266076683306057306785756038779173000152916642169492824516015640723489773440051948886322924835703744278003557922660937628161098151132310652759916880331524331183946485822729955059901848654969533519176568254550147150257442377113482369374656024189115815337286690686272231211841994726720014167212095694032241858785959412403704771797243662356130190317236753644953599031898327535835906220979813450470636136142860779680631738351103244939869605081968836068657355962966210578694028600601353184465838653914442007816027506490648778697181915229634925613938774157481869547877845043684673314194741587440885416432979153237649907029802679669431083517945570135216163096023370291414052077655393425007734703883454917488367301127469608739832441459721442725994620023308535325487412502469039120293805420871451940837780911052914995910926914052233502240057074125789296195640360779327537169105684941143280260711241725919890532127132702531026548179595216275245288453815841752366872849227074477194085035367408019722934658078979584918763423825342787820513431319782796113429978954089293254379235101666793283082296965968751916385416127293824969386813095199188131253378203977297544472114250823311353747377049907205427169451930736539681841784308801791866474060661690456274941460451532304323345072587815653291428166928390112693182450460478474165488942377918147087689957190304577204501517356759718604352848097200088104638844790615248552702619769930187261510808274231290135663751542508085237618077635529569204045430969252703768258994181409134062338795363015355062156211037833097214929410864802592788318848229780285870002770273399199969796473920004351030356950404019594792204303519901149649823545109863435317254237332297758817737112815096286564447627353086627467967263196840695957783662074033640342248676065986457879313366853665052485391456952474091772417741079476800462045285745095121235242322641491521105599097056460595065858777536085654849700478529288453560109592028013150079272286356727832518498245872507093505249518254199040256336899186169705372530016324918378272751031066664628511515100577337598663681105344928692162230650832662926408704224041173843464741900421307637816304920334124613279732836719273967153427954230736924080968767565498008667469208048437182719924981702785253949366040265774967984210306217389829049288305872522858712646779515833356788824776876659973550959773122764129433186861465326371100381919555455166604694188814254925430657417783998759475768944611138404476260576040782807813466082201560219871182380824229223064618815577145057983668837227644563483444316412569839092223622233730045339528366938662203574648973111693090892530725180376744981390220184897754256297879650693128178057563510354417799211887483458796803312803594680313939792500393031665395778456497954788409243070451862385548784025429640183751092374110306468297588240605918441860747349110340712566619650369426665324780982556017816095281521286564960304063589396365954402763355444249205552663057876824908323264211342279253823724182458808595036691725909292504542886505841629637912379711794058587368098883725783211909341611705407532018849032350784072190820204388873306746181049311741148011544496087151691895008834890968668082582296904976908757621872670609185502471223931319148989687434605241962323656517323680851259019617335899260973876673934445488928149438777706396363624237467655930088442268148886846781559281484161293685957422884401883205196120602633416940851761832027759965115153330304269812555612955073157513281796151150860683836746533553287278004018543672368213102993639211207865926084090513361116103764566366170699509023254890541695758977183169144758307282390817904361357956934723948267031802557497153166937684430952915814682086717769495138634700052841180575822832013126775701482184990721938645752681507377273015368783719264328128579772441917081496843973322264556927492789480902883744031072468552137407361015314320786648654628780764063325677009137984862381439358951965023333463901165577771311577439985404986564724501726488245902908850871595525977604543302399321806905688865817211974880213823171976213727428217196525349364983161973398279111358004547309482285196828246605297681822451255869470817547443919611831227960205474259019439015596853656806576768633943959402106780849291246683086074317117674946238754168098231391960627168256672520418122689945578460279491610782865611590524845073345508924779040189902884979491371664245435824483769460283111870773659110660158360404842819098892994608011536754627081299690396672691952115559917273563979332880074105474976583943289538184871674744500856126359931714162747109826678394493560364556147126129658556186704764625591711055892749828245545635650914268083947297332724527510169959836395243312838426740384276165361871378105332453903248986908786439051482859031545665713302014443158631861405587487482376633818888021023460742161219591034078564429254839996802218665173140374215915482550921238622605682007780709372406135488602859106757928956599261862111726911859453166143177170016545917149099510194367399549851678102803604350216977543565345772022920358490004930608182352336971278410435082211530637288466465306208217804514698089811150970862874235270944299634481714679613119067009257960436707510513432519141022078301354524735217801024384512475040615221432992793790257649332379508238162262577911124090667505088792851683976373189609600689739136979288042671022917393300692483295435431664804342614239919438956259322364544297095556236058668163485865030375761403429810350046719574678477682814144441586979786494457812668560757737670443131604075653052367988333426545514418808949741758579499215741955932419226992957086238230742408999246053363052095163368777469319242073226115634402712218904799642767762487263998364558494433314118341177511667419773791287797911937833067248704448195986173674912152903178543230243971479154326673171853410146850873915378273083659041334590428488855375330241218350659938221084327527197505551073675181571980185221147019539336224262975566286345551854740397089071080057543871639212437001159750141091210526226800526573266633654430128144835017987927257536257168549713253345144113150571710395073598050553281207885623532004532623404903465642932845163276428817916910577622274037163242586361729002509311402326976505514068770055787843195068389673294894429041334225681660165407517282121393187394896816498966859105758406030520200391155547319466751446147090484823399908137939767814961299043106850932494581737344224005923562191101914785924331760654465683123308984798402924659124663903438375747024634461192318169312918870913660206791260970529971617154520402227730494896112548472449889857350760981139594074830472171173775032802858070706939096990006396049515904192123651112949783577918218526265761648291418554386139790935419948414997127051029993921780054370275168616302580908911478811263537795161427603746600388645193122944584438806640247130296978655654572729453856334701168089759540926792758917157956718926024684384114272807368043218218755646867258294832418660628384481926550302079534703470969984259251017525247162864787267010057522295626238827460218571926910312763980202942383171300428964120464199307299471011738657311463973019892530791771039715710272332518338572016814776982353319139853709646356537043398076774235381104182560118757525154802277304805918790200393485184800937978837399093247525002063897536280044540618715190849298583479331458642576889272844324669361963114908534888870809948625785603921242412599488339183172192407347278672260921877652815049633653640655108480543332814430712711609732757241071241393822427752023327295124946387775539383648337114131603620997092622926697897820733039652915650350940901146845816180155381315838069559469815850799473131135073167684364311171394065173563997165809404168003895945079240795139956240149186587559775036943818372451077554150119715362517101064746217843091561371626979569398952093181079409323608846080546967440894566209853225051103238907015062226457919211560889427548692324831138322778780916523482209196464104136079388676439517420154280780262907636095251551592179958942720086410883750866531662123459157979769745526612349912193767229792773382742032204693011744398085353519439484185952653891664838992017218058285885161806895550115271197249480130250014458690642630407561953338442979576260916564682262116821667506016231846715710657539272793638139550492598296261503136858386602408660386556951445285118266225799095819080506892626888051637719845259106716419241449701772446926598056049159204674086309516524954805903485800815812859850932833910958114250661922935813760478849411150050796837485074199577118895738858132672699286225635737600533076537650355310318844758318620585200104430864450396475028027966805276823214088405775196609670768132968712170977933773377584193583606690331511963998140869598280982301939500977652191309681453461080311867792255956793164861756052247762370481794037632905411402751178050914707735371367851608666836141996591851914875446652098576198062802254141964492980204001317801025736039334330441319280275118265249686166412768198495186862715756032333677673196741645936645042933286806097393369446161019947263938187572720629897759577347673801467843928950618574212082083668689824864727530338871565996310346536143655141209957091317266992480614136097489418048185678503399414306478411108088437648273035967090571381899119871983870105321706885952516181560193222679655552554437454146689486880168831998981004627175294872559301268364813632432897059604891620412097270093699643734671138885872813094802590345008020842020844654347565441391943992074459892471509170528143419387970395987396435187085730835056920117415053653452953431318728439826988418718006336647181520870819125806873101878946235099427261563345439374295890158842795344854477629429751320294024093066460937986612124215095963000626205701080700586297820272535972673705010828877682710477839694137945239379282462393730384679188620526671987300480460521176318132258330310579902262871413895787432241118057921492429893663744274428230755711439465283125473384858597327642711269187032523705567942086017475832611862926143715127329667292257605055255767444175122933176665246271064024350525232687763775845459051750322006195985143799215392414940121093490833280560812118838743811388651902610584291468076500463896364202678793327139367104287526212299067328210966958794107412692310685259810889493818648740273802900433144801201584293764484485497354463735644512131826429735238014862982142522676591963571790916585225572585730104380943890859485129517167280912159238131207929908338739269471258421265712313671046741019414433164504015983886191776633802276153954717745530926595450927159449846890935319425059146179072606218327305697315389484381225284271382787164068823224836543419660531109088971196387344832800073366674713633352483076647066821503099777621931300910511837703798476451615263791657854861083692784954664492168540884655750919461053199947200637834727275004094514354861457941828754770572886611462025766796720603644307674437825635893694083098371193534000215167718588800256473697679239695055632503678778528639577458266442246676967502951974895088762210361058619448091479089352660488841317120709572024620019776667732187666628947598450051910120873759690954870769772912399415865810860847417689099319816604936201935756751255116752056087635348480061192319308401949934251969500880795645707114974960365568431137412418962242076465173219156540082758149129752561572928363544445099052649447701348339720535571034379107580205217693663213015090439651109844026325108432476814883030215135012258191984339515350441365598521602251703856372526814825117097226126803166112495945535263462019341736990482628647233609618132522264275541189059230752251386478678003068440225336179890300010415533559642390801767704486137764670675410851652982509620148549344213307467701825024194125375948289992923784591407790353320091687263009637493865062459732321739425403254744237412088783835083015559461973893829643149117836812283313615906026436268624459669731101731923212299995647201416188361937216258427692296742580422533594178477262253983173174770496525865466178211659190264329206490976341596239162219265378454637164668066934115500622079040752839110648743622211714623800954740504392906167812848637157025928053046693892391922777805927914300994914038057067134003970074309219618986695415076588035577597780796655638369280105895233880667766513118189662800870587043307182337175814595357329299872356621214493236572200248181339599826539506211437611233658128805901232291642698759089941883686839395325867394697662256261187606932264324972618989441869041321325557531384701419030505731021393220962933404819259689153096372575102660699049940570483450779162195514511919056961311153423105026594589689840976542449230705930070716497604950464502199538689638321120961795650518728902633502116068340912089318761717847388083075172488931256179929386948253746737698683719219656195908423041130437558345956186803649170225565328509032297319525769139747767231148351480868309734186161934696817552240302723105966951827051836989989166644738587047316940492325389599873198725049086726108319907907709481687279149418478245896197235575882089814390932166339195165999361878141682793107463621774905528269706885637145988256950115597452074072569958304696362797136984982574328307532095408246420943718378597878508425854941116922918689173189022849551891812855828843670267579572709146032979528989821466497475664591423361796691411303809362177711022656696615735707775525427027485058057282843490940070697941161047172988237087895109339942345968745042739978142516510879357450417161928367132203644557692326663625211146834928570761833105927962774914266795783221197560948130573077398255333702315419618414126917940575235665980203918505674748957764158765880639760207153632853931927460321367176131335339593074095403872551939116470687233623590603779064364317799487035081735589633789555876988584464382072058220001610358832244516836062485796426821534123529241526587022647104105847489873240561405835111024975062919491448093952112834520421154320810020039475659090464773999610002676939500168953690963226021656161517625886859548338872276289039246142559751345132028588644122240996496193891098627865063200947320686363611306319009101932624760842994170505024445363425338633716780975907056063309843825859149538075212721798952178294708680764466714666959362272029756400050653278706314616027147467160579603676096731777922530651521726333797290141775131245721625375103192474965079564340442914943768629426899591197553779450943310052644703433444905363746697012866856788632357348354046347728054348012430265009206107453071751272731579548082406490541823244047686321099737454510041120790338977753614431989124592485148446594801726280262624725086230354602202516998766063451046515635380479924801383214209966899322657200264706397222161406321679515451479201225291900679219886575410270611770447646943069614203828256808532453364051575487969948201235495400572212876700607524071323845271810559542076559261910784121393762727385004639797708799330195790560984604741277405226946134519275187070241883259946503758546680886063399008874988700864502052555104531325082614709765177208277849186003109322603266629136839728020175696712838177517502274645258213898220018095461723534733351970330351610304134818248104910393413434998112263292863758336070163346133278734557534495674772223997602594494548447748577146318054284126324782976605417260468102654668153725075989906133758882641397234167800415628378837589505775844292049624093061864415069433420572229015659891878175878686455822882009130483016348621771304774021184937879662958988326929483293779215112674947850613987413718110878829388709762668312532962551757963192147650368753928799732278036701442364053275196447214897378103707092803688488031615640617270057367085557580562514417192442253420369922335063583687068960479042074478354789790923671161562314524843580729451408181610004779014700998252205465795809387332634085183960262840987697089967398045282512064448868232912592331478065156356855272445889572242978686350277858361192070038505746022095592431022323911094702510078750057732097059161184945524172494510211423967615375421581488111678526031879669992745882637454759378113828659001179710807056728423318195748318899390325571734818132907173331006358397348179309302058628219102151437166585962563343029346206733715840559119737238719742848097027906377583235392456097335668306524624112667790907204883986282288809757540981476871479783279849899534479906966846128510747929952718355441177534136558768223348470928427533152745834226634386364915106976533829676532534731233169095993896753353075037296705661088063711955940249944294409927568826649360563483516059602736631071370905186333179166288665196861027374950171663396140607890109350359119160299831305534317865336655305659274186916132787666883436853378417586497706445385388453448130943997949969197293914569861441891641452615566993766436100487877052930213456244743377073945776830618757669127530724824185118751061113195730881626039674428124789594509010488476364430119085705696502380921203530664012980362297116572273910313727608171001435067489386222765393647473354662555614126736548984439547417593878740691001251529340537795371324160793544057629274284262918761983666146720773804261564418611319034297641863870320188976112607753889510122579252580749488046566634184871185526681871101108999577621821897011839186634380406284604635271239982601579048169700749194459751931392841282629323540970983334380281031214676127918812295981013550571166511062362023941968101357274636156639081607931221772325619762993294511778168430171851691488514094886473568611043203900236392320247901738380160265103202516968380560632971062890876445728994039664122431676603715323403491428693859071963909836264990201581951860286836546917001722742066793956462970153437755918112020700423332867779751995205757178589474256966112750664346597922329919724283300393235728884088714710837348680836146487328080274564241410357347359993778698992563994657101018599869912613778608260850407031874718685497989867313095156899558128621354839833576795159622247936207160681168563862166131419688474377605742109607075293071803328218062946112994039091468609259919512661291251946830542774478047768785584572039939796189948021210668192682530992067828193327806108241237825326248724399781173253932997687438123675873578731483313900313961408315252782916381758143054422844125307394623844189243118926897715496329759223435152145569497247896741868905473953307117998254763896464686705568638388529313650376174635077394297296612342414327892447775232590449205255063140636563479053031116832485908130234650200283368904698930242752765367729609153560332814071615091203097723224590832877712595522104233034293415535146041166990421727324192758866833328370531408877828233848999667316817353630656105198315369902422838043291872988255251766079325704923709666933986270557271193082101665533131765852532759713548154992959933514340330521714278226168978879464928315003142102626817416691880698065743853551513897417427727143420336377672274815399494653137439699580500099200585326478856773812325408475509646814293975344087306487355152812199729744161813904484788740272537580112895035622838458953196466548237416254152570488611046575133561240321369875358781538828538275097455440765172907755177790221857592210366014902986514121956222558731917218517921168674620063301626652625752217628545057345909017974949501776582539116721141911698254796096055447193401334223253130149865387782825350236474005464787438791858819273976100430919475379783973319533743952268866503279495030761960633410017916201512795246085239725160158949347447235154049172793163687341025932662145451317056035468261184718226471789706354845460759480114278013295502103222171257476808652361254994890743355229248311905186022171675457650589594932909360545167148159906249128366345560127524558034699953048448610574886100541995223567621682320375080715618704398803260452105159318706691936180953056159733260402303797622126393069381738955958955399234041226812477988006308347130118040014587556652765875123979424028902442064060038977003616973745630559237597231521235519077820196096550529317448581491173234823701205574793486614475335445788853652419760861853732940647469613102550999154499170945373522609701833309857873605245113272663407652372774411226493335845805139896737045379044578055226597030744605831646762333469755594693231418189191560128977534324466715878897261803289345324400712355725810295856820997921517775335611694751783223284667531181779355294112543636426430226113277335873450358281775577027642121819761723758892101382594129678377988463841654590816135402900436014094841349573199541266621542376781241488949077237507292173218465635737658386324035597696813679953780903897207794444150397140913520393578682503288519688360601245262659559577902960857884877537092568596944688460387741277517525938064796159294332543022138365531812455396395997747831851052161898725961474294953050532993260156666230895795602180413835371161258110768470885208483394676566355134457747572876532251902967046147417823752801803773081399002177644468468846407396555475128797079819031719882804982341830792469203824120312796124846518160449273796416760239356632362790078914990396485053068214548584966668603548086855811807780936492809571909910099074876121772179225708843815656653271962427032092197844435093410248527110813273521488124676122310325272968848101400453484420890452563917004715511841953270801652935738139733702127517688044784122027520138841500007817804490716816756801903343836812524157175247539079438561721235025034870191877022579403313606424297551522970981897467510699512654565485971982031406581396181879841046234517320713192405264912034906925089650692320479126806829164697634991423832939734547256187415413494850824295856116638342683318757791476398175212537058010685030767490863119857414030429038711640341842894044565346346085813546215179567495327431364222035592210165228770273806904654866536680433914569152435178801445476881513313963819882354732030328840287335160658054026634075268475216746505493986607022471632133840384542085612949343914717875490343307448173137569444041903803398747541237259105703955021310527087104483088308345961808120112440828366057841012458717083510758535270236592648225086800320425090878528114991767590584077369886547477498435489745569021066872224731590573839817414630263481459000084796017186225505886658889143458227382649541002297769008355397252634430158157631842519335898035246664247566401514909220105954152759336178473565054031876333092352556789614786965837196668535327002440917549872955118916478800224265025911408902286360538723123995237117058645050013658763417332193139521663487055190895431864766429937632966606692118900737325997663123570995288994486227316254946284649314394184666424761203376292490547502061710680438945279848799429140412631571796536745567524014681409835203168025150507166160103992804121125969032530006409332084774549094860917445431873946846709574598440490990396191391309261274642989931146447170382885063710356148474621923679405695979372896168952906233409700620628789199431796270361157695889339562367017980965426780386039906359043304271457637212531149213453781730587255228078919799904288823474106789175333126489828460649046334607880032926229000475008395738329034152333530576385960522036209102548132684936223673168278472230006976029957583579978461954290850623633593346973074665826728050512746772695919361367828023125692951646819076924216217050498430332514479306652362288922295684418214647813163302794521907807958978949289225345196427961156257258975593063371563811339425049384455909646987097499191905175564797835006905284715213349579899412353713629077475208960164993386310636407616696088121010361026861695845863208059017838892730150595613473577204458283769669023877586008190092183574031218288784216414660259806670727387165035213269975050179129782061745967828818242945583285062485441749516704565481314128003753230310494010247295595759441008285021740049132156896405716849710669335293837364939119085613400983033192323256458378865936744447518193296551377590543115207659664814291791713817412970136020452038367673690676736038101284213848014669224129686934465946148295440372289805494950469262727396209629548591696786650339883662868866560898924828243285770334710016461446195185729086689338224165629735025922119263022492669226225600940102442477264432873400475437394882075061500810384113402120838668416711258669362442027412349476744594589302706642469700997995589351995300290242205214767723432177603555238677747317771475777039065718995066548976950033577040401783824207264016775605213326586659455550399179828678701842944496359915849771025704784940125819750687576743057719964900035930178636013984377606404233585701736816964550242973132672948706275966830158308067423747958615355829716787285372154548332878110416866261940580209397511921104258298401032102161733886408244540467505847707524255801869006724173424496904901669323104825552648843112859408472231098213687725769460817274899753469007598987453695434037255130451175498046728998999422426710801566932636145783267072441010832698105427005508299764492670517699933861697131532674102705265092202581781570736710555859809980612075033573771527862195941013211285239661836532884385283574998418519596418323885617403906147919864582460685359024388544776127970806560149729082742536500846410081159004697336008057645695873335959994583285424897576120007219440273662897053247117220164943008413405902271811341565256174937238450397768920525952354351664935072755918403835503414644937850228290136203764058655169630653822630060819785435526970352086690870379675481037384536694462193265820187319943534346972138603556767816240536694529050242601105452362931520691042219189358304862040738818869520174243215025006524888226389619044370199775136495668654058303535214169459200556527768149208605022244913338361462680054246593467372022307450026484064221871607298976729312294234552901791914530651853483716680977250597885412207394480423761372206671265368448834216784230054660756208668669491790109029641147394987425054676001821569258485225144979301374031132916219710535559079407664340830792715866632761049957158233285834820647210796715192286653360816758127355097151501757927285870698806480930940316394954825107595824620031474577160774681620284989815470073881826808498395876424789721730943019604099956773051379265153040772654317615923744754216822591428382655023375015627854116214665952733754765015149657300909994616161609986542247745596385808277269389754785386356767731415049077022102280306339738959197148700169751249168013653575982659346471798131214368490882180275452994252353111826234504840281457243896966891711816541530178706253331246262739669296535476310120801996078874241973006721758583938665495395416984693390491972262985905067542511263351602134456630901121915701981064844077848222613188109033094070697609328280478698480034082486343676857549011178360237746245565374412861907315741768201134027511700488989093284363416571067799355566200231452500190228107814257974660403335946782993672243636616627089404875667615908724330621591910990212868699147308842500145146827101501611979084679109208963889428191307456524480020336590237190338512142481474821535101120419543233786701847405030957309179534062143748622340128434574686597716865118057790285530164260924432562884016447896025021966752414037926407167812609456541933969769111551044119969956148227780768363368131611467430233458411621329614213796546027992467226482987495613785816288548154173065591711730560331528701495749456302808665889466958381246935831342839803770350781591870926725515813384286671619083104570851958600896365339387574874492838875668097563268610177822947646306947164670675620949166280816653129125365140746765128422586322507946509608006530840380032061532711615714785472396201872225012008612570069836518954165247039594217318444348397040534046670481574962636406115193344956570552426491332265916104989647768693621088527921680830832187018162500355249449690586363448027734190169088121423510607853013540329023700588198573387634740917340552028185537386247526341500374974405490101987491399279898183204077390003664053890529552720916728588639576710563848722300012444563831527510279239155888492516785861357310114611611476206476807671232497974420050734676205254953158828854108165355392921289295857650082121955206064498025311018160761874711616337890413400158160238777526849805389759074749275311507664106257007963041611555766411381308645370841408249222911967492356187827128121412376607127930509684643918719214848153578245605273928788411612781053297540189717609983043367354464480368026456939645213798357584876262179533769671524680512120857408179635372911871287060131810669114800505691125935382758826258087042446953726079060699426891756054772997543481056355140077965932742508854484839197604146229540643519308959139827413822777059538869590422209197896039624637290337278117913858699429698872761705958729960459186614286474372553887794977739233523937978425877905375540770403092634299445458220783737364563324186508843503430407151217854702802107644239819001901934222470922281448454737832925470437940243113825749411832158090586334874905612881187731896964397644576146439519550660991259535556524057242633151428727180627517078475091216482359613538923245560765746193489344044426659796071324814192627768754694745281767157322718469858308266811416735879023364186830030912282896564032260407880814823974587624532553409387878122000158428686100781905535278375203252094675688585157721715511204152050616749739701129675780802921662573941264238010181516136710081458936953957614264129972394810145355746897915446408121017059578768169566562411117641749522791464661709502667087829561280315233439553229685202987050274067351675711861330202901546927423616356412245329880444974182364595125629793937444605297289333218121778041262773604604219251508730527948053113541350203630288926779193103757550085686266582639471608088744503546031516232331945036297031599538245956303615739378416423564213385015418665081363429513516214991861821096125420877479631203268594334049699129179555595097291628430825935708791059722561172241937195974990698203912470970233892584529153801784286543841182539657694277004991940373394180961760582057995085482557907812586252793905806363700634222356084697124280808077776433382430715104942176909274840507694683946592001524632742557320926073560025813303367974784238595921292061797175989542235215198052424370264532864318574237054858863207657355108360866985522292422898852180956452162195714237888889528712308355025919082567466149428334046063906282183650754285930121321686534013037729516581108638987949018521178024258247767278100375466590742674354851866152289121026745833470770154643479618351371836771865607362445624137778284033021170566556257555855843252785391869429801034201886203469286438554607196496265089778611672047158344493096325587635676573365060051171733878175898187842367738370025229233648709023003761688173895743734820829588480177207762980742719380116137139603505032179899850815699878451913590659163880119652254609140196187438089500956413341125940646726145002639752543075127184735223333151894304717544120102533807278983406380441334284821112951919147250846009686301397104867561875544064018925504311071510755013429289013859541330078715415419835032342890526084615598716878236823991696841400732745900209871517143043545591598411778210004455361698088568799149847741602073053278919161515933456291700750973469391702618177716475102891582459938937657994411227114176241026698084523992122243823599636374439545458533524155775922963035614608347260881191915815168841895110140383134368156876795636007054838323193558726479963704100694915895991849191120616468477698558546545561123663867331492512266832382099545645736603829601466870222385015560782338559170224938061327385124386602749313743119333066907970089917501067778941123601028213126838474376233895215872043147851034312092791480211243273986453768489796173644466387364892126410685921122918683329088773571985959729139951581600379119339119999659921829055926525029867773550296583382470035679063971898553322265263678989424901485307185501426260938132183927860067671501778370024027857201263790190561104689915158983627087690732699154379942451624424189978825232128133981753949280406918064265967177300916633715760074672945747435672719047928865717264297697128887972174499276567794883944254460154244322274648655082549263485593058156329531303405172734220502804974841861100421151618441200814464998607256363720540038213536179083448313660225139365679341686393816545955718578722042235707595980154651452967682156761120219153188010556058099723969614458907357802778026551925839706572708789918102870163408567129232171076751401461244199215490043035124743565962283755042993795929540292376945511545448920062474820845880043664169171640531827195378962407605490783647333004413389609456858093348852740324488674652600552758899452888081031770157503589622000082562726357758156983093016948954431321394774978758812515950993499293541391962235827725223014717839636537484115624161726823461496948361109508548800736522248041947918383369331739609482553843328645478317288763009251393287511888960441974748922308569237290860145913178973291775282170143099879695746795724248989483489291289284573461981917744606301508741274358075911412282728344610006188063506533457166677538192068047874594920157131313971082782311046106390186524051440094278983384541968901479489805736198517500292275681751340908288678950675171899245777478102556820382589920676361381146106588264117516812992912552485436170970702289033377858644973270302284193418249211282409942347281893741937903306486199417524717812654695404693106819769119533325575202673618180069212900127273628316053106005914541593030027817720803944311008962543960522662319659385231917662506592872252438986692084343372129315920509900915278889912136764453951981915202036614150620247665524770884608425907362912917282560216144176836999791961559777954766958482860872088889871142823694259528434485778948243485119161282472885627753333427199817115457180694023544251951907070949388840910659991383463681916881151091079752584065556446373308488934352211586959288819046660567604097095901849842989091473625493921112829728124675146667905121623951968331731272600468824374656474759105015095156085231894065415059741437896120195071936844720674839448112820328534853544006959810269969716908279783123927241588937679962733240354576676016751075029682080532094580243260949861486324592583419908074703940443521151344621599256817890430840282819922365589686981926019776968546600314673862391999671607814105001845308137415376605244898125757032006478588846164712375935023019874330981787401704844379667947584621925677826769543565354103002520256859539823570266575199047195379059771642724785262364855971099723195669002536261913633331521844366262966625499024346716846804908135570857391878460548125705580841275885157717736593181104462625039960999737987570688057427714194951441716923958711993201707590421036564319889958497107670440064763688347452183494731893157428479105013928551550880211538609739552662837623430572724550647608166859557836206020085694269040727514418855231500037273050075856783483033259038423412848452773149945475388901344818545028344180211855894206679595076490014119918047294751803988187198659716475834542327901453094728363313362395767310204437737579699529438176424141670051738776841509794898445985142344207984195007985777630272819160987820062253129673924127468083796811806178462054457312676591249824579154605418342562653435946725697430857554217939964046133295810519758546603300285099124215104284775522134494426754617308422284264409479951961646423207707383210089884912422862213993651627240433205443747759255221149666729653935231039971190448061010462938633368528253723013012878694936751468426252940700001786580048271736613592252210716719427143268702096952888154538261772812649730476718543964900432966111759012869363652309221780844047819399492059513516237223391371789469292116926568113240993022193497889733553365799996990160545118380434285035058432883706035327213024478923481653155207576700396444456209985784345962151676718608274540274921690364395258575225101269501698282545922248443451494241412274393319944507675462226559402941486339530556852094513467974443850653138089311373107317863757160933886177302988868194525154649261213263823062867682635175555124835502712731586830232244907148396455843470793799297558680303870405354059543424032495146322638583591163312598781016389446718746747821922400522299244355917067377381329633867741713591815963852146719886030059770996591563997748678165206484400798932081533504460272201163454145973742479326748502520646034884159688529704745940660961070646545541472751452168044386689819909132586239561481457407988989339336780689793987298944715638676192050580501597912329053495847425351712000527321929832369652741738814430082201197472673401021616198756297711817366603119297352597258075223586862205473747083765552253059839441103879073438916934128177617980554310212513350332464180908724856084263837931870905971896976615812986545036922361940481271487595803274785647219944186741547494082093321277999739873164370548010351183362831989843085575720480687147383189778865983825028374293104245936183740313382915377020544141048007635417576029437516101982670571040771929555876402017332762625923118928740333914474774139503542018742193410011366092288463817578560663042925964386605943900320405655443527383051453643735273163723570216916256663422983716581135467846292921805433585056290147428127724730228579289354746650030684925442769531266612326497087046596568114317908852588087757464036014602095279466839105911375821085624996777192907321492115793402121743603776296240691431197047913275135631452019771719098006490496107772749422538967861627982835842698819183721752035778393361891437783516941903551219777047995770417074975279960129100810448182350413189689506549216296395498147281319984393685752660528275921605564072359544748647929826138791845454540330688268016115253134166124811391944789224109848872258934845242713361332034426762272400716565711947282877945728107587297959726174556514335813995269939349163363221780568269229050525751359375765425224094555674418676824196187542992030745586733895124207598234466454901638646030957154268729630017802994587276231405238412788001730777022452550191363273162500126063321409840290250401549221253493936557719076542370630176935589237823517953584223359228542843637179310837992720261979265970182284974861981105867507954420514185413721975508048132828590691449718912429437083682774117662816521727243301564921649301476556269492572525497248534135669652152692624308450271875640775181065295074025675993081533813829802655264239111211656869610124957140194725892225217046546926815013675916950913982240648196902926192260159566411686775430796820888372829899174606474497190871518018828468253715617864444717131667299426838808127173606886465737426879947260243514454581296128061828548405354653436473467895359041519507781837796405377703441553057830110752133259243051102311923837361847077171769185240744352728565456198817675602012924233355973361452321909526204391278882318752682245142230191606575812766052816679806879175615388017009963824751216639973159975188520988477553925111733069730215332154352966371866513688567215078446163955650840204413414205612851374310508842821657387973456596211820767321547215635516831742974804642066310605008658538995219420918309693681166621660014341167613392037063801072633842348749275521458956684155386738263115387350660882338964376311436600649450489342673839764283663257058050615973759262510033065068923042729537738055976737991844078928199591771312291980175383310461951404377819903856773396655011245371660893837652434583879721217607928449544357985370559890130947090789108488207527686066911142593088205021030506278305172927893086458876105238571664443291999139339821900984707671133081858348357158601362382520886265201959831366236253270287850394616638312243415745658710936342801968635528860897439655373707693176194044351283750280527260713315626433640354370188813092488560140996324301686671731254842420891965330778703111138715135668389280077739142432212950624957750245398823515863396625145440185470926916987569094974851326217095107083770855057702044103568140805528361301905592474319981071924659101888167910813824356366315330293391995161753924998354352766302347137717828486737887461576543888570660701440878793762009238134803015379979411917415961664990679501010760363165430112603555745409523219471358364524454739432196899975686259857729925645973399441087689934461865590891340934935272252689020951467344861828577166743764737920687616051024081404111358838899632456091047856636352538866310323678564175945346563916934145326681279267314077486210290405917139449429312125602611550297384700620258977724862076028261529726861423565129853093394826777579418012065340569488920963409596488401793150074808704334316943069599084134241454650112360535661623677869206935671749381125413892755709742433783554063761112271756858266624709510022210020546822591188327909089327341882048607228671595417138426873309663295134426944421392193910660408653075918637494398650435697370879808822426201102137868783593973343582775292759048006494075274777825306281348500410906532918177730511327267322512461758063231233396807552636541513667332658098295781718082709714324797064637281160131731569890800107940357304786757511022792549525174761933469656807540891403614694852040635703898576634598714261399091369224723808024280410291667412076199464574992184002799104514134190982949075876374684713770711263149292777544222594128225616793581875103288045484624398925992633423808900053736365707360320807943393504091696896639088642719605016806941552617803753548889955567917907266159551204070529386115153923363122216228138642039707206203894962084314828237651716214965093042572183574137751249432835957162967180101010142069924160456396040531866463199144893119213565130746585924955218674773154027122140986278727339287916459858898736941584613756139705564510097540022766736246246589670787425685152943715086030077092706073304275012424119692670082577217500936445354121527744143450881917900443041539326947708969781892618670078043269951510396939461815268177910721897278012864326806538863916137255120154462846601750332133650538501096625221214416246943986312825007557724779114478484610047020213697823825693349970492285110240115011427147237118016301652964329912659370146867052128311311308243416997103171233759571341858313153918218333262678746709922717435135165212587634058827220721337357797548792776544797440006674487873714518343816888408783763168757698487157120103077562652277347804371690651110793955165002389719882800222596872953562461378146384122131592910773229127551543095495066879563572958760227443423908704244304636375075502118123860799512587616153462322445374874808736288100249169952002390236524756494962305911840289253875573800579238834109764023934434015465822182890371916718747536353515120678996303568704104408945738168272012546004427102637039445856356136895144741587043312923678619934665204043958930741339494147977053913252121943906844059138849886737605432573848446201197408512038087281995962258201400143031980010498224361061595205810158258321215150021919633674281274137696411198473808512550252401586750025556705818309825710281336090614621160180370075364909121868657216142201437888346792134726535612922258932315134153621893720645432488802166016135639885587926255128459748792561448935724995681128100015647044893242400991638067596999353625312645010680850597873034404333421040442650905398834744045654433234827116676916757362519803552587210751247128726324135592984580613871841893895807057765183774616933307802379010562163224327230608348881855066330818200597868448075338486223417406043861067531261990342994511834312394302207092096548819237000731289357184425300925530250341098311139883969437707367462009542307466384794924829032471891237816267260003312284649933907375656285620079112931331643142636252276154700206310085622364065105287579717108303877609257256763340057892765336843460231529531842413632332155122719463340022530082427563201791751345224853340366549983457496259675942277824900749544824250518576474246641998413315935604869459108323338731251864287030740489352986166327866885751810041610510931444462230793683719055154104836959019164572109227151407329560295290816675021095950745582578874589094489416638640192237277087007620533978697269898862357798698202941179903902282722441081705337283259756121328369648115036183021555915546320871296786341761654898028975059590219140252644486594270520612650566353772965315427933269535104550632707610682521354122893769760132225699845072061780769829715376854132151308122710705884172051341318442534484953809189399267408738217172027348682955458036030149832515677706765335400175712788896870275114016358821127007408723288952500909867779244867258417669075689488469305914056174457225112723182621452808766650669089950265835724324785866983602669547912885163073224517665240578569398424314669968225006707153755651851185754530810743242858192728518117024364458036123863077075205108835040330020200329746361356147110796611169323858088629056864724200705377802939601862093859506187317286307348128146663853760504686744137454772996980221883538778011342399967360866369117799608824473724956651772029920280693888418014561254237626802475241236891661699405798279314784445283065312874091376602251721936107539026344827423041074508900062631085842331792026652466255125286982811444252490431863621813820732088143426783139954029829629420831372141892995250260861933805282417067754335851257084715879795816270382288921578090455015500330144582146608146375018807652505746141259767164917357631982740167360605627801874788366069457130790321524644875068203593843670101062788402999674168969503302646327503693527301504219661273746766071541628853975251336868696390751280567150512199999506223891989103071982292508453530990760679888910366623304445555950153450830483562574413748631083142689744199266927559548475627010173405590264882028558126215881897874733165298562108982787931731755038454756481025028005041215281424190626826857265656819120078857987907073691783927272968208231502686224520580855155367621069806390459674123179305125831108479472877335095931514814873488977769316914450359217969051742293908461615638193287445411728493518071533658915072124958559779258650535061813243563510974790554190174409009701783528599614940737684340372344505809910074685740126280330515098674942191378409181649356664158819967483573848954935859844273550566607503838789606631672132596266628168936319823981795660751068436967182222083318055346518967557922888248823077459601800630882631097865192359041114015062004441376088059938790976954812678495058301948646490378786708415536800798379043720670685581899014272732203665158726631015681785259018301484331666884289094336655721957153684984658686205999706244670473424188972591984629511552521291401613512764433059049968798382938763926439460281674714647534992848673987537564999550919582069899716354214803535119587324178599512082569826374061772785499560643388630562335728036504917584969413081007143411489620077884195573277643536586115498261595580999363433552372889365355988237290935951179853915041795254132423148305038925064442829509001761276272971322675352994745961386374119875962528362274195059327719271820345399933135709982938636122724120998608401634449754705751206154524200113331220934600088965625482835634930812392505716200691291683017198996272430378448077458209254373848114869733948920644471264314077715965976450968647432224136347404621576987099175892562095653916440934338974175327426515452551879460677632914496296304691681401559478970972328526358909809093325700501931113769029099564590973988842895974632475670534274504670600526280291479807897769912365977615300909501024638334720457549088964738324852696868174821672472186080515624889093709695751075884467067640782809077073387042261993959917742769948603854047247591160185933486516006689611668115958519133494516045814695826650522711237443064242852596356184118576611768718212853520235069230365197572884754899715762118140451129213300617783817440217940304656320414517672002448182778105046211197543680609474832541516627952253212415086348356421222281637426437473063118563406442093147683122852946376748797150725085402802974015498711950690798006755296274914069903658164903308308666417737336785151299555483175664910132632902048172423351056843176997541079540337225888910338087395964278239693497184370665932212844726754388431160575669249848101507940712571689752068962529503743694765216085959299779682297675262351715869325936259502981025441224485058653806907963245513114514068926121367771875589397503091761782390261994653575387739701974934430681459419073011949521291506774139491195903580224770531577134127680686055496106464000456232888678750489413720929119826523586282611845109779209207158912046784979483995551586005843536285748606816624735789880442143645715477558210136525060120032661487764018314441606762115905665432666498145798316591681229964516371121870546028478397993596856217577637510577091360665474194746881130329950080146449791990092244770578601448261544187549060889955958745374103601230746836110048959517197163827276405434839558184367866360013022347098100637723327121786624001216033948291136321095844123141225918970563763904541966530410538680963460518312623853630281722399935012815246852135022130780226662785937233173879960512541181314398438802666995279580991865092215216035333006559224126946894381101988826721491024699365565095761670777353884999963427173663311328641797825819420554528831370782056135901304006393369174669071322346011363042349857647207672945592591308724987974161921551479013407583070877792949055308530824341843757902796020011661490782014438732609339798157178588266209532226556023839973935646336885587193999086760651416633480421854476083094784615025051019608514183936958317684867234981202130550846921406568625447911260792669872443028954950501969036382773596064455019438903410911464668048759329142564640676997205778785275461898615094093475427090092994135173302748360983445855561602181660393062238649701032629253699826038993982509501577442473819940569097546076375891104194481159162519329256999405939826914866622841754198252366614585316026415608653838241135756367987930870313288055314093932738544091204871400046705491544846195099787597381062577636665640144711580857063782259455700943486021908369311230791454713730242258541708404238137110383445087446256534193982599329228236218451870308698751894619028830512055018594516170948675067913109439149984737520130886505992725063619185153602346383768833453016371384600092695780704259299849996821253438574655694000135582618672985901352286372194017358128927050613676468617942288430620695149713832644748301317304135279240414395302510558288940654747143933672528748123653026423725877096628096115853900782383703696736919937772407618865275837331153817123929466592786833356153533221554724097769687431326848663559438665089702872887759201684394625892811291722464332340103165623167382137129070248570333743654511155292926448242571613921493553835209652235117699775292694401948478451656831109790111569106693648129336776846453379244558980354638436298025064877415496914863369139310945221269493630199560839958923369102833237237224924585814889451884467273172959994597801041196966661556018983463274624010686726725118150330087501888073491966586056098310759437613170200458693353600514345032354770347986249924286627009529398845281013957475659674981567706728064911163723147659797584915075066942578319097897051244222198617578684245559159987854626839635572587807893453635218252663175575867371997686739466398452589453672246815422450220288524919954671347537418529203236748829732879567039638472175989207123085604999832538513416331206725295311208903448918810452821212686414978234736483234153546507753542103318026941596997070770716049614598636622977562836184476831238557868294473852357385015645507287523031506989074489973326624089312955269168044779417806600592478601567385610392460044088501752234791669037823584876526944095650576117888621803960306369691751087841460113792137204361005143604118646349054806250045284888558507582146506191218811768638128722892645116589845333140162803638925883689504280975511940039086053777278404468269392135255461254190933538339667827734331700460237937470756348627615098080406055688728016450819688514136379423925073095909811212972212991207491849769240482272756447266331333046846340789917560101148083101679728696641825541614610374685524575182617423577297626509389488117805297861733604953753589722194437844853421314479731347816849619208346473628392083965231021900394015966155987094776439305314615916129627677010830936267089429095535253240208867615920953052001332054315185838235499452225310463919431158479054855925095413919561875449597849105917199180329531918918106595099433192051773876915810419400569084175935330094240711628127794636266539645226977800693040091360253241315511815948067906770127740790294386436734378327730679358018298748321648892528447759737105836358482524033571547767491986017548466033665854258883712519176212246952736015750702485653526736422217848757219226875614291474719639931977674734352755946999050991895865752334680985752827252463855286127762378653569978527850220325163058677998258531667796496491113804381937628057270499123673285022852634980320118218191082131418065507441019644924410625717152606038088485211092960932931686864012881539697702206468619750275585479712686665265167418612081825800084405573995764837933973720469093499800656505789736240685499163416890115909359129148865456381367081026460001818442564300018559049971397135795549548458870924130582045704940991722284560161261110660726937198829103806763530992491225719637047281185485428466642495583584902447393117567985437887448428995102420474479819407715129811031435407584614081341443886905260355253580650491055501139005199132102484732158210936760754936987846308558131437341143355597987953994762459229333983296262342929365011026915430015366795733743715464501658546126467925044414761475100291227059106963957446882123741177293405186483027402544332962373029922387978615908913386861775259394900647972480277291541248037806441549511615432006115093669366642358747031112747669802187381825047394587974153600449482907851559088271274360429397818088852399056486675507390170177863890525767393609628759994081439272851255658514819220420945874651010784080632360081144118648253059867359164040650598569825127917980115933266194984866269706403415149494333176162836683388516620588718614321863758626769697077912825432418563457828606264246731200457286319663207873288439393572392788900998829295806004564333500171673268524588698221224734828536984072707805634694228780687425104530420870597777064978231850060029836195972494064519705502162092188253899875106891638292344994387926008536960432222187233647431606716000389582920782351304539290960751925739283848530817110400946409252478790165383186624256596004235034181540371489830918129723900362726490873680521288361378590556406701087402771086959063644115490453282975602475925031015395647687407942675259744385033036946163458435350987032216825623748331404401495089493339751307089187163044243866770198553045808124429878202644427635483012721098173082447405470178409081004036947542419133211525247238768459497724987430656856108083357537278305320101978504577222389676926787656267151943206915769175344647869161688453387419054969513542797612148381261922442073618421167089121831514594581255543354591202515627473066105407140167863174169500946357332672840554895822955330512860397853876410920349318209637268343534871353613946496490950218543500319605296288777857523996616968263936493459874881204455985493154713050110091010431327157242543259405640239588414947117903550540565959226357658160631614117775064429064251865320757486532186872989201926555976062219763911506956876286681813184161890204562856932889770054117309947786571203876912917120903890641771776091225504457978167804160132738630514474039663564618339911500673790363159557161840860653311661552089300230366651693973745166332627379449346361051574983824368219196737447539590627809347920342591006345618437362882865451853999237592478942379856811847289920168472173051701337484255443910193646639610109332999309145246354505574508494651964695858842973771149325107663303725600020845382925639969187527082742640819541583932143510776913374892986252087506871183982642351383981938011616849009121273123586199784492105081405415129370965477581566144441546460658193319469625453576257744190221960963627798247168440756044116405223287966533354271515818368090980697555884662598364310178007339706745080505882288373574318055671857588309795379740571996283506342009839922494113031012862627384122500690574734884915647893096829552382821820567725950980281175837677328230355112488649719416929795980462747950311471794059980559898893835893280695544771146563887995113995866600168146616207178859378627643343610678218004860042539012742611824421571603000067339227499417302956332238343714004808526835723552246699200439759932914013639014337077056120736085843061910521803835462296359684198959557324842769053719863325955897969842769631198766921503156269725175038308171799348240824258832457146077334599742014848611014342264771230210682878687782621680280954798809171569730599058465162929245971106857788484630300270281283445573124724988766450603939597788110806105538455485678817601601649629759715349011928001989967327124653264149064261766284489647629974195519608659932650999477419226354665463656962657229209713222177525857587250494439386731911824372281791690731871251275676292041784616710598213969318601785921987653344426762091481038111244610662402445697335430171342836565810971455488649977652363660328298951743912053645653456461057017701898672432262597671405966395877370059773119079395411258422732481672600115549284364592017699928790496734916211497462162791736232620389153375978272172014553951139212778378064433927281648519066655409539968302897695000105739847168101764908901472055626731902761082658961452425266869105882770816921194148653872190909094700661243609809536010324617192199044806072575242092910958346562403472737984005619021263667270169651360694562880175521287064502156718322620671581903453530350804036053046908668894052000580864738670665299445793224250936790511365838149636053639486123998122183153897215420012027543893009690700659085720261341522760524364608667759975524097207350715632974776291947895141343038475357299977153541075726748062582569473602376889245665253976030034733603892960857284986215888861861456256463141548690513380271886648851977345737244534909320583319789399334953491895311694564242764326198899126610168364378425848587357147166538226572805175167905078062863479223083477915245286473021527612730697303204009874075374483720451586320180524855355735520377901019086198944336991893237723741438053692950276735167467204320721886538509477289101585312819408495722978135321621509177926759052722504144368419251476503158886873804039114644394007609166731694929310659976777096277716635397432060003513198067380145523698684489909372213121743770668968681387529310389204502490138179876629514363722956164406589798420787151476191446592464683649670826580744987130914829483193224180167507612005934755329478132239501274144478532238404705989609595795316755757087939752532258933129138814496332593200206766611663467360684306981857600263069337400813961651327238378888510040600092549754295775933776470911765282760844718758047646111962398113255151291317700093906098184501695104639083323459840126360065941047025062470482223207465571658092351890197383002399575675620267075981183892625673008609977588805207863782879073857051217232978967013508299795357371981760338764442998788308842550909295638011671188201709455983923763311673197088860183247119961853457599417707444725611805088025548760953722806580077231717458463829240453153627412184368599968101847227909856048827794158030916764177679558780199232699788914947744164999085779330263307397684923765667419417776319369719787748381704482978660316911212864449853833861695779491693878785526072474054945312638942633442241538092144699048654902402002384252780042029963043414672906027450136729394258152137040965321366361883742590134334940322546400333560866457176353560564845425553555421321977464135749628714120424765625098529686505365430077142871767133903566380935467372057776893070314275608694129516688666449635780876627857561704054340964828368317897289962984413311105308566773055494615084629450594558128052942523036681012081438125128983313651937653724419431668479214143035657405848763501383351166366526226867872728625690073429982645914797034926476185810055934837076735981734360325217328664209082776208808845133328203541944802270290337045823885814174444918497365195660223145766668798936429633587778755253277611847407919469548031695361594031032388408766217983194690761253930852142733449830844338285173857321935976022535420596753614331802755871397896013157582671048337679321685778520498521936574247230221526949342198950522317420599527993108095894711641999774466686212016913742973460502294980391892652105585690062070871839203131239137851411337653220570567381745410403521978518981174386009551109258233162667579823540158862731719962235520109016776553019171062385331594821775403475603154117014139431916288499205718190399737765767320998314774222795691780196637705426532538977938676095197361416713545098910572316532988886015931556000524935695253655650773508764658491407373134418371133350103641493404595411222863803182176532629483634046416566078498571025954248373587573135532835229266027844427270404052695940965082904598097556938018857615504274361974419125122526110580523333644190801650530486423243304962317167456282044923222582234369920473632461023813705645280824696776257107139673995163113068171573166021117020792349426241632739081565017147505599722937391617462244810237886339329423075916636274839923030500503677162534350117432791701380249472095945993864679547407259188791756480727351262035577141762139971319390767294311497367776185752533953369189287515456805728659677062421630696411237685093835228686938243843281467591908419409162779798002033695931717402498029083715396206614098111271203386641499899723941474128321001789102574108536889736763479766384334755527180700660431594284105980675695965734983179405087548475656200253600758895821264726432015607140415188437042786631843328261817432373608122456664034919795094084471899237039096011036612020692209623665940648497511763199269318264437786441486442210893305868172386812135687887826318468971021129458671962787638552365538597595989986680336340521796509912765703551202978385516376428673037458404887607377148414457490234527572501008111352781205491933591198831816901417345689035667262641689384364651749703216871755282940732831315973341486887630830229159997419584121405463245269860338093775558767086459515948538218077323125176207372304008237501081575948512399496914673203948160814891459347584752149409455965297633646000195746716882741885189357498797588605438592460376743214329418543995614155160361795469643643650171053481112631693524125296835108693287945283665999718065033481980741927561819326934116591355703479844626204847559011852032445922738047317713020331559574370860924513823378714432334046699647224031110591321873863305859577348553037177502600202544836908072592490841517002829791472148599611631259964284764277790298296959658378711527990122487174087766013953715615545347831736453753977398217484614401168340133365650739158259486380892593721485722432886170238814768369519794020799119591420786355396892067295344373373811780785770610533708268481271729250589922792604466308624005358863804317058848635586043851107092649601907337892188376766000671012022933244573585181480680939220031538434363576770192795810384710947886306522083855754336377184008427262306775552360105449711077534427378812749793010772978668896217458590790807707267702702777878060201125729026951545454853457358862399313511888574523571395572087058580458913123849707997763118537166115338083428662666783729470014316511644007117731968993412814566791883485911183971147423140545329995730001667393153754874769633825515447404793363536593889192230695804979868466783946220508876683465953907152480983442327229448375195637571751209362731558771009439612520383490485236944681955062594893006971812635476646123665885477114015381481124161242754196470020798962611312373483250782449446508768638166647083893166411131021008744672905886813883489931807054399922430280582816840084190329032302660352280945176345314123396795821728868964270395189279905842416042248668023902400396141526238711937978021945704940539105067955152180808176195035840573759587353474109105854789930626128721834066262949546008089435783909920176846940428119601797852642433727623579892837662481251896482752288821181988678009134575256153048594110610184877001956164229333950581812571216084590872207648986373610076526694798557405505114257755844669078786961851381909090074620120721100337792888029152594741171985644761507029236763466827804252447062016416485531891802833693181878944751043347435641324984653535192091953669349944385307117374123714938324135463108734331556620736795026525638466836351254184678720665104295283164448467341579390183291727626776620913683665186034771258079971175349538970181850383767245934183134911679074287881738484633488899524567347605729708220430135162185470987516661669243114652070126013823991712198357083212742329044230107323062585733746313258910597733621824468531308462370333138072253633526691778214026372977008721915331956048552042908268133643958088732151095024113064913766622232320121267253611975652247741422444977773630727278331045228372374864109295743916109134090725103410284824034368400121467163854967286570565001377939559864227806828957363311719866992439325554667859658260745979668063232618022646154533352608822501608039102735420941225932611220535713067036466441583243208124565930103258502872963633241113110605727301203321835249883208346494727036837986584525862170015959127656018900954190762693174750631252835019297396444585614878446576556720538649346179045994616920919003568942197989979233819887781505875332550483367346739661035494048752100449234610608743687208027304527948948419710749960886510563311186791050582829742607335441963122063220892616105272481515845184690726393911919947833914658331363133434463611798582424272248148987230751600093139731930168372029357868574584585423445314332616181269052631278829619795511066114626449635977265278888083652222178779808647365006759641884783387037210078726490591998094467568021297247457458562847546728013673088128052062992051600142600814411013424555682614636249318400034020800923856573326796971604839101037172692202930982449455387572736657470156481356389663558890360417651853789078158904675314639743073352271873622592847038562665413393530355201682318740681506683467926143751927043947437807088540818944776677667677911841620919402883549911456530843650001643864508382259231983218967200238665450124163858272494485270659188303881017063504043153978476585773673370304947371391264712323637552518027089365525263991258476852102282250562005388019829131750966529659107749938528353585154667517931247606360847982483743806997859216701434360233599022499803709010465661932544340121873232847951605919376409329584385858890747199688762276342815483465438171368413035862479438490244791314601772682046087244185755645997709826713122517987813465735767635499216669499078938678265884550986592785155739461911333372644072071799922000256947118854908804712851951790688067426727265624679127646857434987094262379806452565816735859827574387297883754938639600205123076032380413284354953437780630742285437599972074531379080282264536286012920628910372891705173134791370170308166448452444266986053262037332809261219012532188518783425022352818334816851414147320617107459266446930157603518240332988416983146123218370948920747340586649064134932823075318129860686237623993332369670770361330487965062665620599613779014847217745885605877468373773257625467681984686911993222641380679120533355999605209318705426406942872895865949151501170355141057797543721653302507856551301770864412343915912691290205221422937611400067512903357700308433405713673872393865063931871083863375844199240427184416080712568307637336566267248877347861833844876733082016659425776010423479062786779387075903362277599160588516971769338572389610442550816123929131098662988782380831757373442701403531416485245471405602760328757640669020346925212838495226605923674403953850987497465460675435105821849490650796133074754602212900868084359715034582696087998022320557336516151992906235683099861283800056881606340138093294413932146126773614205660900119107821686950050234691905294635924997629994056315945070022046259225527825271063286465583700792903404400687087881473549473312120391966905788401905699084622524302196846125261563390503370850275708399547895591696459987841727663600055682377843008671133570559950388658944999517968868200067307231721332760235327740865665540827373072354977914134344694203574628320293973190920230370039460343707360240359897815602316973606920664788989899841394685267137456637067771569885302554406075281582332546285363220949273848783712011798796862702839352261105528404775485858516709532480552912794361438875748823839819858916010416572768298721226464800674852169232695050902055556454542647648779045930652577171980295372403203658892621403466917372190844565695987970965300277395773767398184197813877847259551688150528376019663511146187638127185934697466461412030799160048175286610717666570571731550919686129408266013373794686274590189253478728101909327996221056132705029209017515668386826089676914473133228358883785724105406717592208083392832691402667103460561534016865292986916011298351315599756530761255434021748134222289367832950999197510659357287306941468885153598057966525605585692626449142300174617611081927522438280314904369484615677037868907979207144708926535903870211598468033059788880703356793135393466475771987411783738144807314093057307946399870397879275412900751899214290145983298161733506929522546245000045653283061780718571984909482167980549661925685835117256164271584234104965743048856819288298553093140913190351844702455925258823516799708174335105679258988421797976253137680218515796489411949437350583106021453636973512467600347211918395503685760964351378225443416715345317615443238085091773997660736060202131317270108294063772230135798782195805548669002497738622558120380440106726288415526324595487514209834208487237319377426225172646348277279139117812762660775364577976463710486104896583551975457132777051176404625174297180849213668958463209536123297212923588738373290271850863889223440431310764864774856675231843873785925395971588359901486926011481838376165341213520514531195040321763649447138444720884811918554704713747542512946992083356343124704517737893872822872481912936541354684382943433193606944600771213295072813942021417340746424726207677949521265974443365201000633765947572239700029196507942506874466423149723224214965434915822955934885798438369060957739480773127633117629123962252659789574643850005032790899638590966308849742848840429628535816151370453889635869876280501844256488958167580330881473796132204134713050177989184551352683354758942877721028940762887749576057888014729185765206050485037945653877151721680184640586986664472488805871421992267309274695672891326196327484004169381723767048280561917400221847229718493192183661066813264160720011282534315642644117826963181677569380281501488043165170440304913023587629171268914385447779997367018334636967709678839308605086700729543946723005175646369153843482801611152233746163718392409891741657364336869035118781791075718045454579924107981134422607947409618297524716835704001152972065939450978550697465980328177804240027637452826359389867195077437165848033530871173566426413149512482554347591438091207873530329370463835778643910701331986831252557208979713072162962297000844188755341787258097451099134409716156813842967455930680877858813623948546049720896038221277918580335393134755106587146033947379971421929608056454558672268198143435900538664217868520832557583503951431759218692053560771060579874974150560258762087904392568094952070626324960903599192380873086901138487773270280410204691459219947599156601991988310500485609755355124068812702733012273999623470350950301203903600093106470224142528331411658896272020083006494191792213744578850185069225016774310962569503228827343957690827201289015984832491666310525914212815561684705566009613149175978295420402126816221282566315867676628430978565457942523058559659622659612551244766945648654310831714024741255288597920876606517312710441105110482871837286103556133628143028119432421370745964961876676500407027803827388197161499230424242614538948791246840304934543633417356002970980805748322734671420636094264891725599419550239042417971859216893610970739174947230204584580419741301744728586466407781585001833048588126417239684884986450170320748051157948922154470667318846877211840333528116118093069148774298659443518397739768204099081086573773787352794866448568743365801599057182855421371055350499809306140960299088517474104034350265410828769834793831662067114441810146857260983463129109249846491253948371115551926332632392500233674370981700375889506726398117961788905622277673368311990897520727468135424116726306883363281882012625717426582459920249492961873769793466719080490735599725354249836127925022647722051429860093496616422506818770137816798084383181013480201674845947050468258109676585674854921374018833353483753973294062899692457726070628946527691781788290113450688459820535839912737279420009844544639466565996577790804345183631937655008166995094184311098855197434952200981126874210575112095251546614207253852783445710854340673491494123237543707527621658239398916805287398584701874747775446764470037486090589254692513109886598842227181885733052411952452763340160650082758273449416247226880813117782137989288115116393370775210200311150345919562441156461883410027540818872351285799510294038733310862043907709564799433608054055721056314224023037106697442976868371715759924311476191419474011835292777895310121129118099249964225445845834242950197026137913649608613941305671496637501004931893586896518185435106889586342216027172144275019749425214281121766635114026614925304040658368817979996427157838287034927835321470497540780093957919563107245924062262386296731065054234633321570742666140116756851940988776290164664744049085805839739748220396781454519213510948445671851643535323096006313468876823076076267139162997851393424582051820780601480234716752453971124113530995471645826008495244049520254864675295023927260025653405898311000331119266842187905501449138066322982017018759447057221962699102565067921537476853222119232439712722244187128334326980914865591990205257125181566250810013405964767710438996514574027486670909168703331002600395437235909571289924873665101220249462499471673530188330927655388764307143790164322752881268841934682693984048270788975443135499587257356869600704209708928604426569146330434261483059169759484733371138676604554806470280333517955627815528059764451905647535424274288016207977207522142458898637095285165762192704809029836381062429981326619988631847131823240822445948799751217508192442600186698336126033278803333063953965733284023740976487139738082701958556675019032674880083251454293249512307711064383776894828820311723006011555656764661677752024197096142521842837709719666153698791446361167491190676357649297726039939298742402561864799611105594153725759909076919882613708828301142087476688053490409393587989909710996997255678082782654223007288220895900681756897654241724576175411068920564818150948132457953152369011738286626158431356094140815633421863071906450350853613912400350146050171744687127719137405326490850120659264358575018153498477563106083821823608377064480204181492212757477870940465929171422200581810927382565411825014662218739140321730003584931200071249113151869140199181067113566806336232879326180725198155479888719394114646913966381382257812693323076972960354672690680001911702016652207908096586565111598652933727358161828054532047547428193398531645820394851107551744352834519600682370208946242908940096169968926712083131867062455831684669933304926532368517594398446963980433985895051247088593482378992449100214473043840196424195879846269003341882389991810270327215794344580076650269629866824882415751388494882463999071905479224192611769323468017903150076881783026507823344331813328031129526062140477036112619679640198250681340927203371625257676821423811516232716218989393647118418274138023493273391764486016879788086626846493086017014928891886508309987918069885054932145415006814544118186209561273791716643836100399258305873338478993870342330524722122414547372865917683717128412121230823370616474665066336549063920733073553570711285191233952841208899998891519976627749867305787108015031202539176281650557935679763770122973520446291970078956002985055294749235278092914863692761355637259407140741445984109851726566187068222108647782345377318148548846249488064774069345091502189072835001561143995634326315391481672693622827516236754920077329177199670212603267131361578481321299944717151621722109308722268285514586165927614626856248375658859236038171252477412353860047662055786169965811484833269358113992328457387213699834192385622909613450035213783447420145311329485155797639554762530109126484083259595499176971763623243081800769854859064950937193342131122516776702998049501489051257284023405355539271903877585235540103810590734299636279762210744232289245326247572063386480249212229823022822623513748719275741228854344028470602109987613649848886747643836924298378113119469265399783079135882280257985396131395054517364958270143771128198057569600483363289261386979267417018041734561114228372813459809208910010470543362566319427514992751531075446035754412785246485752812834275705525169805458337808734442121740348187829322245413342664837975755345154510784847342812167774402116573330058472152477736079877748807257027135479086763498531631794236745869433387269119289422921546017818067530004202069549619712816579193976623636250400685192253420917534213266378001535207786859447755863095427818377950425958642632722131778105993251144371938964765042156044448871895117286587020054860913500346006183252698420858129875353356962814043699390533411434221729068976209108115403319944072283617457264009549786638196997051803794181134274139866775325814451566843727772632097298185953015870770240279709079623533639225088032628466396295237520250593029160474159296773962202995126295770439869204403264800275730638998336937530708560528358168400115364711374253828493611297177489394050821954107167671183986484473698766280952369808852887215731741434315013819125196878318682885891599738224828158829244129286996776056368994126771112837892143607203520733333620175484626299065936539196197930289537811722897477341920651760088892022234614558060767516928934083661388534357400005570478505455317534881135550645859838026259549884608375435578373504489885079887584039369807150952066012634203926189847348517317115691080607053048923927824711094788682824854570578443421887320578174152270831499872779495673296189184396720940467353581734512792785120488224607459591295562134724071393093442011423616766681152047687072190554275626744092653696763203166745855511863994272000688971240764005882621220493720793083499419364319109236866236990195819030600763011334311789436795342516116298052452953626543183206632772585499230599176296590313816333921536300703178996278756902923533133555524958765102286339854304607988061702939478790250429401196471861296327383328059168070566944644199935326930438675691504269027041048843916971286661666897506234020863307886405947848843069174494869411389111437945077857012880242351460463143398083617653638110164683725906229896985819960754465029854773165550426729724239489436041756537602664367188743611364234138946219234726590620568523998642626088159221927830319084308327147647841758126382362039459716980206008660798777550342384008622934326723158023671923673730711655277151635663513340965381618569916039655628501122267645862964078006199143617642162214560265733821721664728721433183484964052872060371313990515030689089144087752904692575618088565168197892528773363138225018449892479302986508819076419045379006859781580193610331145003943920371555984572404405455481493164560693358861921369911765436665379642951086341581675714143222503287582445050079273777457708610590106510444343957416497542315511481957372482318317907761512295006481967836708955746945491190659412165275464564499753106998549077395639414959404087815785740046607484562514008891344940247009147061072323039277036006567954250344983513044464248164374287925122936524503056501093404188369357883528169317101734297624521405647976091554006657283637853488844264944149735781797760983592968798831756728833311061473556273434291208968612401031727869762303543020100928494243933073059320978398470532485699158561175995516857650286581432835436128129075594590533655313949703022913504025609532704432640697707988505562460706565632687955687787648079495435358169889656093432022613147314104835563297741290469839335219656976901552894871997526086034886936293990267123991219078274735890775945708041002588937413318142380165117017621895706306537057121586633173153125263232187881769694307404707088722944142609577300734221243564247711840592332911307171673784183552181474391771600963908833318033497181093285730347423481373284973147354829367788469628758371501943628690481395458282553846696632285210060722797020193219893674729016982728104310060391783539980958447637840939278971951353640966500840507226824708934908676623527241397207608373448660754275354749457362756646215970871750816568284855136316250550486783448829089990421074304747849205155239496831074274153268966173997705026233976431074192721560265928446125000922360160240951393489933152668713510354463294353917093962952098363702348408293857384883985426294357828420618429291956030223203625921503475630718001283573743024631680508982865654496790072018421215122210337852117114397706538678065270241087101946649840983297450671332896687999254186508229683947377173877214012423856820004230118840189789773449245740571653145082871648291760427131577395221767579459039254336271907048127126326747322471287325019249767437710867182327612439090292966228640728272619900344329542697740649206502784816209066683675278591607957359127232948539835335004451033098197426167566271947081015831368536696762903993810445696677190625984726265221918694305999326600675908778309129235220276105257311780996102682955235850799251662281003181697427741904089945614927342457419706308781885226708887414973252208817112592388366843941953865363241440936611056141079174347206777064936209378446982980277049420305662964203974193361827243757687250464559817418526871388362905543245862209708803166488113142620851821289382743044890266894909715575677710572997713911815475314678635677723019744301533254637977332424119498161440283980038603844553232137409786623262076741746314192644145357490925688285226342769920162899433613350177998258887672393161305557313226706691529864337127466272394422971350474717360246774387232985739513468079396097187019524672907927191478549967996516920301978569288546548331879704062038890956493277352418056953959492217039408509957743150688519441716157826845478972586847738484473711633605217611998131157694510354675003164829872680145438056899142200334568857727824920145141205195192394718677126608201808174166833192657479988840344314519009109745638218550790408527787011031734939878018509827923230887325119161914831921844057692075262008742605559723950229933007713853125101924359914864317170848270665844890692234775725170694485131511693861491460903571052434147464155571430271862721704311120354357117658759362226425809205652278026401790197228499360670055011184911357720435812317964575737750157856978322142788825114951396066883317607354009713689998192251505600439315586111780436050862311593528511784290991452603736581530140454870887527481812844871556872949353284971044735118081058371447282276590135763547598634135228914713694036914266404947399328102215608456527392533032558196314251564330545756604352030217136731461533580713276937773586616688065624916220451873791261286304856353263467389476208207778489888595306609218685546709017106246146332741367071912333408878496187385380978987933839714184086802827624565132951419309580790164935761384842866244229541845296962568830766986382185492931560772478935059481905002934959256243857247962333128339495538681505595221449313118478662872018219161435684992918287045266086868292451600527229102329886702996001632424442574809755048333818586824457575817522593752103188022367677341596140158386403219251453074734429107302674661682587438586746934476053061995071838655515204879501783297798778523415688360719897202920924640479199587811571978417408678593666919152460953356229335134451443310929746287943830247815730646123039601190965704885771391616831352280418811008232578324651547860368902020510605217730104777745848898868329419498137986229794217739167191817145672431254219550076861822298065471581505523726333320942288877499578742972121667268780822277384690421364929890918715672014532400315487571652510228238243599848994991458325886247022879729250993289396689616657726220201282866153036037725885858971130919944008862591721976552465903743519155343311724715152544336778768075349385205136040254797277031615776380189633197826603996127781944767186861294770764221478772331238651004457748648726821101544620471473649099641386566313810261502238564732346538743924640115735409366049744447864671246818211063761300514199208892758119608884983134296196372472815980344644576789029941420756769888058826989072126565204639025155105126211502758597455648741688505166198212745479947215171713292721406632898623940689478590440810365671723549919272885671468678271740976083949308832755815729159365369297832421785219271376124531204127046953595312128319392675780429168440939682037627756850700846304914298875773974049547450343627616273258035643778932231198580159555197972256419323719037004081510020843593123645359555897137762339539330650267723029437274890173733139756432097492420773906699892405329084853213600246365224616238709791369625256399997653036833422205885352754613411307021594206189837264849762966820434784187702874592180302429531530482360352512013798992711949737437584254099900679230715401227694367845057961516834666369300955362237740839315705932825718950913043348911041691854386239634210458334469356157048021957733960889857446281918347617773407784123494943361021119662185896302095601469814589782096795198983962217884243073712502407650737204504475219369730208859614960760966819504615038652504088419647318827354794239557998231338556750227013441208183393415735127574459832644183452121300479305559726093697827511312649701068913810206911309415621966373502937632091459435756492095962990691319369832114271040370671460041772662852843682976909893206154309139873525015059597681167336139446401739638356828954436522621627663372097493796451316494145839217761474601827076035111892107103410814486369036572935651522739762015099560207182429702104592091517690570840089539555690688804747762201483558359082476666260073943372991754588124532750131937920264012013353408445141223159274353340433984562358653590181582127883202809940419660373805407554048171448272994594109343258042967722613398827142830949657005214214174409758201435982329733894194398188603153798893469310631853891070536753262290341462032347622289112905814341451164165092594175397616905442486326253796844384032407834625551527465022065617327408902709672639416290650511098777338515373043686967879891497911876436061163139518660347502754584367240251107012128425091324891054072078317101157262745923930956544478658436231389097467668993257167880919054384157633488152812057902044274580200676377362379369824961319521379209413722793762378127279557341341918462279435705024267572107138155130290962152249447016297733881311218348713885587063560926034708294818718362912552394870504064116139055153493576213914991375831749294363498669818032498026891797272184334700403758351071898463944828808987515611068963509981735981155057135818359403677147865794544993899098815957933999141166349712797580655033787801085169556938415182027645330833433640688280439883911565686894546307977028461617447103786373732789761918276508829776962459852944766995456067782842873045264991603542806403534013747589563894699078543014412166047644334149878849988687145669404997458663392762278993072152725727075904584998639884007447337258851937792338080066291280010093504493712633856298748884330437534432208851888287053672224904414664346000615589049753335009752866700391106422903565315114901394467309357716103072431354023415412853111343234614808293020705378386609092742172675062772158097609192588666549537275683441327094711635324253084070744097985242353422629085009486218277853548123963379906791839311617325329143214190005120985616302945515277993221573694293167610146865791126157435975440629087208739448424690990048694207608656627507544413910549570384857425107614400635035272815747640639550417374691023341579531372077966071994847894196875039939864109662314143921305096874889387166533949788399149500862637355717436674977655000467191476670005951749236487543323981085207977357778612655069689132487758055025039278492813890063287711517608891946969872392909342395220507563841695059707151328574587035726864975470564608718412996378924383442713571503764680251774861137107761466330652445855069239950812957901370646422771173252058758158888507163975931747363346407312837149239902924148451799108657386988253023231873900877052757644008216538878673969702648741975072094848501843465566507365734278743405763768290875583779216037853537390180616190576697962123636641019207591146169590141294477614524324436984252889397381328429938966442228884980367182184655996724437831616817895395518201043439267467336276874581411410460341195761321093820802788997526096175262009812994074857120371056011973054370260629556029122266798166589296130634780525837204057147341551040839937384872105639812276966967394895937293575268951945816473048955750476369716311855054622424891259811440562410254964922346840358126222590831204667378747981635135357109627424836114447937628976026091408360746529036401069381560707841145276498358392435343639641562558251553852701334375817149436460520366058490539880814377841400202706050464815757834905852717223827550839367373628261714310173803426514213642819254379819189317510898032521238046721280190940191062314123074402167555836188387916256440848471217457491228359924811268980012202889851142063048982286820749991675138204399665796217026315656715400643216270554683135100596385420219753069072544754650060278507995132942903517484391132414989233351653967559358465528521451858525742144542024906164234922782303692859608828052701738233040040785171445622273267702533102691615916816369882903645922414746511968503579329119135356856573490393199692465064123290510232359509431457435915564071685357017966992656720042833990265791024171938117980574466678824677056315889948365651987487571236167227309331684262130679686576932634372968730534249695682570424627256065142792428933615972132984936300568608409823716325315374289691542183190063237062587161269635060749030907000721049134272345045639853395393480937604435631709218001288051476773490652812378268800659057008098415357993325345010066507646726973833112145577283817058545608830917837804089292892412652823200471182494226605703041647375781139714364688738108201575468163709787183489977433344877187581049613383451292146792930444632135717537265012110287326101792973035574547418850616439974881715728380110295253444476601281035151580644712458157636646067025219924580397808172086556186179314394747661470225549531935606953377471812186221746994456870332831688480884956925785352445188945159357521810364637721388159844059976645099392113200339866013952223578654397999618235333651603655252926623006263745361524503289406085648377905703435474324481624073060631226238587556687810493985964716457770666280158543550361006147072833304668873707458233573242397901065759030943711174926196303641958559905453154092167066521389387251472368704249038989643120276299341758643295195996471323512905400463373264105958903531241629303676875116300960600394609307605150675175461015141905739250454184541725478081058109796931076580011849726702099643111260527991110751943436444088120612261642761253081553651709587279009221581485120886819545746863973212790219980834779099993367328055542725762602180780817958167458122700059048851742970699012695386193886015742327709439262804260286722199057828411991133832151808638621270985785755790933429719558696838177508684453363813752670061399305308400242225511375229750867236948948534123027367306052645025229794461033135025337511247658322300238191253218419120157304333443688691057257361524508561794096590630298091434179733581921088325496031887770883040102583166886375544733587078749182629810550662775949070740030271421115647701685027794613693338285114967840327270778358417383441530696646172182752096629440969503315674938831955482500783914353081566293293123539898135737349980051903291487636911242064137126994236986728635322488047416640934079272971982686258644481877404504844388724490861174751368663519793138703068013797513935311740329486632231469686112553748277441149018168662828967650724900878799912992538945855199061674082575922903909699965112611140214337103610049439094281894454234402158303248692605842397584531191902817784100762822522864665887648817923371628848651766265602481965303355872109673003139484322685558966341009898272251909983107837711979830053701533787224788903110549634243400005461942490801181533764767147758934741717087318695758929999743599376280449272557848601922121653258366895581887061523776122320998840719510886421906387538569297036876311948488796359112648497275001373837947360506260010417094242503815367773621763019215678174386111559084253979668819710958435437762750792221375929467155970948249204367081672850708953238389003100292377969220847343259434668661968918716941917552860650816298589355345567198205829312117100680610327434237580408855344918624614280689780412884386380145734007727785795306802726999297784497733122118074002548348000946284085741797725928309827371886517280563632642179475096456778505764172184817371839015274278547083080060062083025361126097866116911960479670078951189974841555422419859355401025946815330223892817891961564918540416259089889746958996125918408927280897963913396492922892950059242573037463791154369190189100229881449643151256099344554589513402168589798556074976397354043906756296603928614497587026411887708960042411907502584936525223406219111426146194758875266070502336141344441085951721468320482647628149439617723115864496582253159975372199308431566225379201417379231288112423844488491995243132928045401968457018027702951924784962886567256762416858594898115409710433593044012115678758100434149603376325355856470110654278067891324313688344598591603672614338786039149525454298134011688319208563815106838457069695433877771984114779538203600902550606237387872737020912420362264442612766779782602417768856269764161646891712094856346837936268530053373822617995028463077573200952730166511155376835433329362244797716098947236897679156194402123904312086047270346978946718546561231812446779431088171705427654529884491340736017688334428822110922692041057645797490370794440488940468353233610375061589645482343414809516321667451943806630682822039523574880661641321276298815892744331967759469607004687092266281385213348693350971222625002092936123377947704969555913101790440379230184787551209834752347831167001510105306439209130636429579461648276128747993144052898075587088904817204965948874274721034145021205958941026418322889593251075287935256460090949807933884658903778665603641793800395072002506124200145328058815581648702635356842662681052093350978479002096304303682369285567746716484183962310379462984764096870006515992078636350133796075395700063935857745307055286654019373320541259616164250796021181371323092552532879098867756035206479771771075134802127124328853894683782530721296464293443361277045595817932443247928477703262526147565867830748034446233163146877227265803948835162151280769514916824923329848753336990286515913796801764748054070138442928781934078447177248614572004421654976058323025451106363350494209097298470946626848967648863635485990118669852743329885109394104604803707879872774897019141470388599147425190108404412245916524081774572059982499286599402104095563833685690719493816519466243546571375487978724443988273820414091114744187976070311853157772280573845343202693379405852379812772137969572774843305257293030067575169670919173250792423701710390021285410850772631955280066977027076480682634398138515372023783103907474284331418240388689239088441204991731180511418808352869411924059445326882065365086789648692264446191029587083993605255268405664185991913101575041609843929659466170987740087123912583103979689043244092126608724476314980424845727605254903214766974437159232585945651819547479343087781459804947213111881503123967958095804921942266373225612511959770074469384660938841909687414243267297157197784662659387606056059087945498420464889282207288618401222758964913712540166519427452841831288396099836303033457424772131724360657583070055129219967448335110894456087388435272726811317831948371588024316511737089225215982451866628165546698980321947965115097245397328932058159673889161493251472102968559206568632289152325494780041182295154430279662351999126239738750314298891957714351381367904949453329768057051496202801136996696489798830053431201412008794929196836026859055416451869564673466672922943648086081954003701531001232191085125045834368590287749049040676984913841415635673572018141765093552216489473204842249321868765356694268966219936734876167983320037489214162732700782691555680337139550498571152948628215975332838386861464964403144247756216887206228774537420252672960353606110027257555759358225865570395973004797126025087604132362107297738441097157284358995741545561221658209923450808582731684029518811068604779912287443065457208718423341094061447461747517104919996613121524416556789313911337906010097054422571598163895345197679288732168270042303715989041214525536015199691931084594450479369227260231945658418896059059827294245080492088560219851498224343009757510744583620754902117620720234528984878814946643118152069747926499930390873744013767939429292957835316556955614121325549661350391551262149400920832587155300624133192800975087842463778269355901565803395050275686589372124573435654655666686309376021271406316369952174311950788841185021652286596650023256024453286519762520394483099980607588300262484805983265059253601184959463033628650814008449014301913742005305904999790386894109082048063739322012840869528982258040237087788198638554412682408566149870127147205184124456346957212927993127370510955731758137923808391014119045419760827946495847829350304935506112716229108973557282380672428368620293448261308845317070318147166225177587361455163155893736700164535868109458658944088565889102210095771777028623304247534024942694902230839484312353498954815627247598402440658314635513769797848531746902116349795881415054854822556174443347876154728209112584524823913342592261242577617063960373016191831478086111979282923072975429881101176487826278507537432978856688206739000128330159992381509115657678563559704611363800767765353668906705923778140142578367343739977036307877866263477113403497089244829792395120450549466376303262750855733835224288606817686347502265085908533562177876256938755392279284374927572628781779906889389681008396652466346426323605899302931606290416167528339207215858975649903376795822364363643463211655131958291431284460305961613130271891122463586582795850236675303788640007104441831753557700334852945640317339059635378693343284651520666749050398827702769198088974673619034516859616792069194978395051620572119224765100578201725931522917239138864082530605186461058264142635272075342909001033365033113753534716045317508605995700031990701898710743283580106482378491787297683220702439586616604290439643006764814930781305800052007418013031559665484271513917287336237731403073799049477811304122143329197327846251557368526213003104548921004958881698116056709310514748943991785237881921068471999208342401566978273682292547095349574815295722694635348403491363511756025670066548617250483132273387351638909037575298220144121559325184523084489681841270360399967214738151971769654474370978038460656595237158819060631052909667399648938753672839638173833693957087991326473639517404989642581256686204568083701464841818463829449405147519311659114115113221794639805793369388289532732930081589358259471919863326764450876974828486963699599555269353382325185898911757800628379791172008686426371065044789083668832572947081760902635075935765610251434675752497188915313895290090463464063307155500870359859188153336672253665746546500815218899767003566051733291980944402499638307368378977822977847707140562633899827501983302907545357990138726818354680578968256083404812374990690882403086975967339978410822380329583965931054542282306059522815644960223946276794007447851836875961497552522254843974165651554271819352767764397449512337823678811517779446653039070874984379137874925049553482349466075501179112491616711847388928219499119119596814094643171071051561916478962501102317219339343121739415620405791124576653872158058413027461355255124942024726437625157244572501920811520989640229239650229121888977815478580199074098720675091706968434960269589433684195018899234642030218562920451179259485906611995297529653674354795565739479413231827100806930824813865155671764184449328593226993587782739807670050388827488478199284320539164496781378754829022365559718533826888160708591413770271604411848486851273869056768895492641165162000046694433828957915648190620503370108808018474365176683213772145702745185560391425400014945001641029573246389157827584300380571459077257838573304258293085518746347946433556693113574857064310559158854763433372760245673904910621883498551424459406260412950007000852791617796209401153682106347044997136052790619426821163810927209985583335225002349086825758086985976499807566665425703794976563118638323308983248087736671184829399986764221967977839451613774658362685141631566464492898588685152422213671565608906733452931948126040771799611705172290100989729862542744685938350065264763503733969224634169611001379747344807933846762708507379741404089966146156760124927982971183213622667434830204065953738349783030942143118181432661518067920559593715031660203360165361308807200173778063680185166233605499368825110611363255656721307923185126978075611763208898542422362422415161079860843634654808796045668203317646097534139378130466613667274134824210903719753329302636621851537458038842206113482771392258508223639611186845946667092303417298938485023944559462945323430135470790426730490427185111223324955233100855993645641510300749271122899285528810128929176670001731177589049873784246118867292857000358320943224083304661621173343490982470732032532370909041840153763430880976911584402501994649159932491322573587780068952888599251436801513180066301743917166457969059595412311955059987861376965848831026903390735780568773758509452925829399058741802112002247413317530660376864112653227407505507038658289368939329964451552942214503127406553080333000315987969895976538925006489625498941109231724851623113324073992350733142790799890756808276211013338715487770998205500593336085822484084753651388539794068767434495315522359211125576536010982549406427645793417659506478892905270044636216335368686097071821368068633188311570551315755004790684919162346485311573176046561788741510516851804385446186511983809715009232754107468781876080943037781903473375539429851830805396360134582162924876825558093553261348925077056079408279120830402485518526067750385830574014950429905007609013019052395545450201346052944535424433988909154516058773489599933613837946344217723602527052594341224394509057287948354207500925535526606596857559124721832450725869028734318575298440672354870428251812342706427934077433122364360101839857238142401485291960946698609327857386119150717018205718710916124656577580112053353129260168934658037716652373639684129895119953404760527542856057768288361191584997203053996763250720203371364176306148531672584484664040873787073626825942671667658281777221908727812550168056330265977440293699298690504464067640543802714828445263850871129513858455890681662831047922956408001793503117426826752629319195571640373206795706438161224908237403034158528674156752926256893748827784374527112406728223071395780300559906823216276863795690181904131013284948658192600032146145651948138094927798696670355482244294363345035322144451425842365063520795069604619806111613934283790159588009236406964571608608362194728627307110922337017732400402246838199777162830287488830264678450947635842382323531958662220830704916801082579907142410086147305289080154733950726421468782745444052460212313303283188906541276546930609466609803072982319182681743866329455590991703876568690868361874818977237061300113347811358627465839108822123329125022330777640385215127060933136650413099465166524308261842477965646814636127809737842145719202273577727705624246341928899026250063961331624358898901159609877350239898968180757042732125983306660370106802483658715561816394622403809045041017382497754045185056506260410804902184449487129057413688143805135012261955361270146266173075756811388675956548101271217140062723054976616493513204879024383252197288802359363354350271565801274398612087606974370382814975631651106559852475148079595063415847594569912300383099447067483647840350782484566317180642191773653514443452677259758038962835751986702691594953331750644989087156418138542607606378582965933581010638760735190691913561647096305738645189916454284027012217915978732468753106584011346095197506975333475537997771695761837272627254013735332700753222890807070139164943395538602163738999901206680513541165574963252981929447425231251526991468966268596893582528482441689588237786336600720593128272224734270458856813863431497495154876395490126824057113690467336296276552847332411465155196228606210591434190804718530643344947289051322193662842597504048765089374213844865444635852431568791499139366799625228421404844483199788507100426698509436839295944396988719804433442220833559595598876298692377572464326835429049833949272852231363691324495431856354466594906089446420250413480075773105235142152946259787575624217142177063302801733283356484997919465484177793436377786716130255423064879541635412405656948223473503224904987880088121770972859947170165202174610231693555320168324673312843829596733007985511926384336163691398239807255571584740684038474629778643420697622750679967187673215234151503898231720055791981995162983079356442539665758023454808884645722245868797622084250811579894817955751060807105441623378194387217249022939338812197931366560955189111252844495887063016648025338258727600222164141873320452887512142342041036501267506234752907652324444270768547810298067085305370658387051964463658378439532736280331796100845024361384177027616804163793754466184842033225884635976773974809875767527827610712192653261709614329181775542064820838246099327382391820016130072902799170154449921753864647001718602638053913653127375393997365603848796228750537211886084394868154566354960903594097950728535004106014936882168185589940935827891933962384763431942457204036051153453085401088021534537401817677313996932277263350856962920209295974683619905111091745718180705561107541301375594784290172920917186073164446759539800292767608394749488701350636403771125199495319580305726977365915307670589769578209597000870650849405437014511911306934147993698030428532860389251334442931771312669112241761731926002823586570109039215826202878683061024835884415497781788488820313247736625698751009866250284243257636481247452221544442731073575053262696698649054472201426541651286789312744932042912326225513880244148698496390050286122907045379879473878582481551590682369242782604620041243320619894314607600620447650972628344370021339834237670576411362212987587545370889926263363456144503441894243284294263235478744119180314973066491459825395957257430239150052968862221086067314687164746480670718233956344717531148647276036980857637451664808609755576142993195400255573942154523586355354698779378958000153445706101904545258714342919951624961203174019847332246684993769579684102909130441970490786285432411569971858324428646638696195531577491651064075032488127243995097731997025057831869025450255583832541568014138790046560627841195001393570559944738698173755646466011884967431355903912101732153661774111960575119525847232253907492044435080304019403038296596768159411040332226533472849738924379532439738094855193596894492826939303823189237627697951245750982603382579008071012442837319922762722673900417065889106958123459701708519501545430290048539538558575999657184288006828309700463525604188118201288576512985984797592542550334981839170249554506484963969402782606917007621422912609625090609772642148350403344408688913038535160763408609564076321870367527955325008238871124934873100578453853537531123358089614772901610217391173479533135902333411920320842495211696864692995286861559753331612264791303268024278683123442537347157337281535893190946042082761032598640983281831235289839733734999931484583157991760952855853700448839799601947169864619612139301617585579555506877705114993172959487166544011485575826461700103385734311703445361895779847320952094884345193011426670358584508225557979871918219662753935979139293570050128841272207054663863471615605718821828000012842282376850248355997163515713236675498683570632803016899257278730292643875387485853490470594125534975176423102682341695296454954176776862500339982712127293129468293725284433336758748210019278811807569707140202945535059371598176387730126563812392180239923364068492682251657380555452096531369837794042245499522088180249075296718216491941504497307304885141886219372249877622593248596321832049750191965843080509134920754452584452975639017493512898974443671092619107117196225370561519887614297591448280126223181240554247851220758488204342895004456172487257710250590515539060595190837296720064570926401124071506016497616844465155893025323755104429694447689595730857037261140382157077562947265064479683215211454842198698038700777146355177026036258972843245647948248359041678595974877039100175769562781814775136925272720555604738884670741830399442366814967952679942979104314770999973055046843576010496607515838842166499011749668892159130264934618191160728522554065506838665659451397244036485135262032628691288233430565108610581202617384890094572141001792309346509969276193157584617260405353425267814363457152196659724538768891133671094862089639599513576228338943050625763886120167677662454904032699377709498783373394299025666878216913130731968037610446923236356615035679856124418616425543469854758807861777506506570505688218571989014655045369423733184303476438439569607862630796724925287203244995867628713027836482153142823536185794494945047892505451284621527199342037337389387985590065928711937905265933403055594680831692546459502249734043694229524488509425361974333582429013395868855371111073783066615075180138344794613515638873004889824365798856273135769530086526796420892598088215192984773860495800558043413119793604645302037864315980045380709108212326846072475231699180333967166324154830228052673754748690876532639973605437503129796665212265595553610901061612558355493637492750482919034076759814188007983729056931257302606498402492659910836590289972688714552005941952985627574811403218076939651591443368478913391340287803393577902703724733996220413742211976572345741770470661356086158922502675306299393173482785770824443291186052433252319641054611850299080717216694202723349213516284788861326860888864301020153035755798007867658011693674946664791782394424025473898508329198834721840706105733408007343899726626632813071498213078758095997920818009648925982467816810836476149604319443412728694829135375344932071315096313149571738829710136923135855269345351729811383093868850625273438515718234446204945872249946537714366131396412797637414023091709919430348211696748150625386487080352487135497442787801665311852204750411525743065049490988620264405178902200069225677058264427112758260321890753524564997429125580203156220899200599747248873619467916457680704229077278056571098137623036088721597793183796783352140561376954615507887960182653591439621292420594273648592617293544825234641178552646866871502848899192213108237076569373505478440029051815870074464905615466261612939167456903645986746081775692307673131780823312026597834242231488917184838541358561164784498157589066528989544986146046315518412179732826560428759891384103997947857633904307162920618711630224807689644075714774862666975858117718241840649857970049293644879110631312985880134845041520444503789877914659045700426479224075920812331856095843839975787669000859595846004699720984104395071519376705678362990680324135148807097168618199182528951660646275337165816728393120036869522621129685638028234644260806221006179868313605335607891038992675190872570647475192290162966691345277872625330987267913639532809484726155921077567049100845667387191984042830136558644547279742376117662481281994776792604772434010923570110304680093172901899564671245729782510790191038078768389858820578835722813426099899418052649554213189557754558325500934655218173356125072588257817903516616882952299133929256967976893655215597700525308777386425327669540281366033991358406801117126865993944509455873005465056251302035791643356634056652258345966723760756776829426707825120876177758679620966716725792212764960593554057219897237566127918930722916925832333919837347775257103954381999362502937333594354103259828201889878654916722896336406324874275504369358214831275783178809747663011592308374956725485729001491538878356093068101361230120365708810683866301118467294745807483758806984678024365098877188099038144672648003046879990195143445951533035792267028801541389509543270053202908420972210073821086615853326977970634319879742255930011741253537757275799128100141407708210676004619532561393871859875226504621190762060020372578679118072838792981368449834250388506110499650078284594765247940486164790584542577214194325081208740732374429348835070192352094438797964975213801681324217044909680192770906247522664947989363634583485458440068196791108208289616702272279258913569954301210476855609362547179494991001710596003671637728862530298273367270767497473115616335064921197524323538245176511089163308358127103340037590856365115275678516081529871014397990189803053650169219150944138060926479418793378047389228888398054883469042301379386129401859473158486354832500875288957450554760861768022757661183474313671657803758689387179679907824622303893671987035034940330059134125160479784568441291300034522848576208773881323532625409104435832440270167226610095270834938110494182390228913119328015001104838083085599298707498796520359260712944899737263543765273761849235622069957355891516248467213572804828736669096995310154438627340210907706627727512533860220109379306683412807127792273446674077919141438820914825868264117055684648672962186115697885631339277637648488186405093500111960943968369959329481780410298825803311220038501020728527343606570071184850997038111604385377231383808835662349347568982603649672841602186251507597990562416035328378103429037332077809885444507010787114137464656951231514461329663307515440693560174054617446911014199736712064570363379178999675698726480124068021266562018118797470549791440202203981377751307920500812499651757606103325988681640698022326741580348963965155178536692623928394678261115928809409684598283456710176242343082354278965248519213042007215475572139230428947267946429509179315454219819716730353903956685412128738713531933290142415858040211601722275508421261056845789886732334319992183698309743956192364681954600857172182973343947216241074937013856128962643230072655226460439820802640934675405756023549961548460824352717314505903010536897071310184910664620920116755069678029855629407252792082647848526303186975101523925580229311507735251070255966497331285814784784136368042379639696136040608767686063035443464402269377654138732819322828095219520078683546236030665779758797650571563483183404273913355989235037228963328420186721774803878638538851806852867693095107490469367253654118626563573640119438677470679386216481877048668119818763024212747561160860840460977666337111587944500503295628843674127839774701129399321155894706113364356113060138757251216664061752612014890914618498120701144944982378070318896450957836474977704480109915433620212093821017464269201315725493754361747411684135746737364147497648905411325731802516966337920643456885087879211656342508470630523467480246465487885387375289547333951700981377195679015244261578795010431192118385666813582122701816109731578608155212650821252957877753313965148036275571686104244381455672044781134342109248885805186775911190275539865161884042409049515870079397995061682312064250179988810856839362763350112152655857299362248959744121820270856450256699204569171097121279079806723621287957301624893207635969340953108861394053690676980460827099979781094517811926183874151499224047763158185956608990841173665727645636368734601381592038403072960870680564604037900969802229735787680908208432600430269273303518105847690383455047359773863792735284923289001935664007822090042333001521229148355167156449514823292042585906960140029184697779479253586266216853526723552529448747876391519527388130953293108483443670793012286685313449418577939230503829102097045282821744100334650990151284314105566205943524747236718325494194707633156538860335337237743732394679156100612282482187787227876680225190766031422231961528617414891019369392376178878083839454021544124736670804150028386298178108548159585694055919636423471637759468524688924800582963391648856576995259388001365593324102713250625555259769682477064859354355213182141476200100453783894869800110749180663200205613308944818511430117769085236329819036522873560982982597586240022840309904099271528875902690554236271819186777306349317933163576160648365517267905377175503966283911274015615893643197862019137035972613346601080078989544741833425772980740885947394038657956543089468772348950250834296598134936460961488593066282871613772561986914675396193721024589806399707682293469726051269374899916799292911734590064068922073802766223951268867320533373706940611926167229453931168647587138001238108665193626855218563778293129807575542684915004110297691446631937029481722192075719413043140665656800130463264109517048332471392228421221892913569827504544559834697463259338942464425561907754317694468111367308467352193187990197676152493671090257061955092052427037462241707512257256273156526613151315243124769988587487826775511442773977025329747913298662559943096619800564741330768134179804912376041296006167697975258945064288917721451735572340068718792384150228508547064167073117595066341434887971867535121115535783906383582267073456040849713721486764850077731180567596942174089362367015951780267476367694058200647027032435143274675072315505814413664298354543381672042325644260560151310157984983404124583952353047345123311419062426808177260843969579097903092759751495205003202211951207918371872365700559520821610315696482885395931928315062335775895654909327556381564957670329477693381198612823030163925757218216299093854326121584900310136797966787326295381866633611662083051483433050905046956658152087264124593039861982184584492267375107088899703777497641982389112917234692429519699251007125241628621731513622737872601332457073860794031735275127764626135783802163136888432698078915616224089027590259702512090605785095656792472052070859569283776643987740364641064344332187279709869834515485235749213812901271546900701304942747828723356730565625189048553585528677458576646515082202071083290561825908680414374152270255369174733476115781785086839046652331257475254215166687935956267877539135563971537287604793686054167901237049211627209901487585328208526669162465409440770295751478016115118477636816053140783353580094172841195994762890837932751400952972274285040682480432762604423721143660682186689369218419709474363683493685534021423532867768159732557399048086117725140331091638740704757280104378221166706242447727805603359489481118877756049351694077589339820923995714765562253241496113899541025723820281115279875089488654593200845119309710020721106298203590798977435766960351422734867635445695797074319002514068702830034616400502100921901770579595652759627250020563541622767369174620224058989967035446231707774714133796196173133292355264764991209781153354673847514871387445407486709378138039185194718599560318264280338622883312461181819556004279884959741552439729744567851200523505863057772159227295791442204369046354257779917971054899518902754505539779714511603887249356851676535781292086021924324784713277562013473061658265281899331836037567582139461334874500435233215548502092692442894277678989159295889290799967988443501352949452861049419973423232950099038574309038259257663969625540367342755444993680655721213110454892407378860973611373463815311391005999721146779981334012742859988274516475919549244782691135524751801478727842396494704021024648815419462029363678311698847550128549428543121642197137188183761502012723116847459364521325876335431990198953473856047323311359785597970286727557035674614829985605782528749964337718387030894263507014244334474696966017599164431172784628789793845177790077604646122322155575409890837693886612982673862549061716858502992264920030446732586451064069279465244712211697020444950666989370215910646727296306448097001413659708372250905843135470364507711894542126310002204693281054618047268894633971054344180715303602722204108634066614039203472722035662640735101146420599244669864339299329405465114331071364763259486448355185010418383138833264652804029052385605519458552652550956329381419088667682396205483825993704966401859322412667970856015580204870850397767020992911198678415842223179496880952662658172194952647946550915248844646788515152555589779156072824089829908921544455033732341482924772673500655203896918044324343318266012688041292575303727734743801582536364406834332001196316508345015576579651568907097887358120135621010893698323972717279561854422817784536583105391535489872140409092668366471256481875842555598573949849174347308497709588009286724335412136691392405374285940596304185239110560824097777112355951623866952162878430617112603811580723345319455656041994485857902006404067612651174984018488923158846636817001901376603523519870925675462330692017977851766689240936516743744115982397783631630848685178745038496172210574027947782735737240340851136850809002307345167765139896222479174016578345206720016671296742845100387326038139902603849259650375879838114455898045358954255932357304504997293468449297135098409907097823344682339607389097773219974237676846543060626721305152578046641416319065136391900738348507168382104001774557763242420269385586641334389330105028833036841825805596031219116763685151472758717181874242422817501966901851045510109222304456801337496884417699833139739641188128273322959534724698901515206316769020651839605314527620916084413884337935101307570227974090754699142757254310458327924099109198284894186614385681529306134245226506512515525185324210057267167869655418739052309533944658503332504029877737485838270408012129033015162372496202348574849990531611268358445873299745024852725871975241072662223007813181464483077494696694706239698501758951269393922169157353577526271197929190682410112902399176149117516462140451997648758021944020524780527079493585162211195356607548479403982782027727340638123984214649025272995678706328110206481100145867998467607804317794234904332711448520655191337849533869944099718722431880718373003922705419075290046704913260346283180417420751302336956953636518934845826747265847270669335464337402975040643323782836529549109136041037769867747580313927281473610624323680289953457872306622649819661424358613801201959987171902191047802714308089384829434800589218602233180212844927023721491194411924488066595979826732128336622491479915793323688032933100261809076812879801161659285448510802471229894925739299416512576894215543664169435114135092327189546531417701194100514300661702670288031606444765651913014584632564038680304829623545891157879765258365804844598521461813775826270158900331356326546860301888618026403387189052353112384278844323976722080138556074258565060961660696515209670962367921960634148428938094414220015413058724295113543524489798031986597111987419975323220839266096992224138478820249119067745734764263778359394556205970286831392902331668661803000291607401123683244007231455457523136293294073660013020703609675023544608172741057961711519334568857064601403609713004795243927310893730330598025822235801018606330978576941413356189383387845533538111720783967454846908902927793437406976259979597972478165859174565080492230659784115698277418631773108108446045367717820341336087202303704502852013327848629599671099839892973337639890200869136456349081437223318041840333932019965892114042327566199801297165821879697271813608142572752114242947864739068209108269602088960445619780747886211025527130657063419333596269746622739760362572808085626297653188559375100223125732195915253043575702021815919447597910692982124405149879291467326589342480480565120056659668477706728850914770440924128335300938643043089411815412844851189721778767578220533103972631138258597847541237851997830596916688042427727683119556362251258456932766203320020637421710140570110567109119995072530547649358250113474401739752603307350142552473329888688560276537056605359020118067344019322622925347704095136916252842108335542229301125625485759537302892936340893848114122437537142686684408106378852491857971170434236689163863688501618107039927944874523014548629075538401976217684118319599070072669850317787730662220250931927570336891781038629884584289333235213632981812351611163753829913116522358586534077962810978226311701207981800425981164906994199420763276662208578830303324938580738739346435581544577274186328640386516575249535891111966026054466618715516110708425830057963062134546200916519483555013436366280538384729989619260498977188964949312129408530339427163473410901441241002798132702385103161341732028206410674255130013611803496502088321889545114809088393471386437398829476688412572932972424302906304641742284729546854882883922433292949771380450653467947045101976331464329605968516170042239357895427239467030607145619739673542330901961339954910698075144085422352260279040066107861114684270444582043269309336386113923805539744671144865103105612556503797966611576901852254162190288064295086731882126514599318940719768411334743853390226584997117807351301049452177410867609990218864074775275388706840028760208088197094179675760154216335512645510333742381676746223336454863853767982536487042006312757159356814908239120540705298197252491670689579860282573569402264820869521410822778196276970569610097729136359299223006929153398686198590160956268002440810814343057767989975707131023761672583909561061902155295157948782869386883362525127531970217725868938483305848579886671470510614234564594205995320099904135509816064648641704307282715767395315946783108276809191638797728087603931293271083806786055611027191365989263605162020264365173741623725985658985698271220950483443225318552040347508325292580761781963836873479611815644883671321955362791074360091721416960393485860150623230061021395193634977665872162366885345432280166005640080356126487355009208278796841278799370127683390376982605035541193739293838211399307746533151260583064753229812232178654772873895056633504793820484184331848001052700743992843214367286239569337001348762664461126195439758970948027849658341992459934596134661343029526259321209164963582765016997057030648385273259069090045132498687590400330720564905404909637636737668703276944677200251285808624535208220741181799506702820442758846405381567485195493815566196699708305196702838953491883387934349077008403594765859306600902553976424960673261490956949499472684883563127614419442499915544085335026982125111450775194511879016240056852104947768231482593437309261487564766222884368229486960153320302000859798703149443018961358914155834319533605155389391564784685486056133027417520604535114977388989115763507514703745931734007237686408425552285359934888411357103632425838759217404705441291372294201596042732220459776361810898542883349366372196684986688161301757409926864162319185161512846261326489947072850233190299395270607001152036351422023086883053772650843307656385684302177098730805320137540662299488432024793683037562704744086781337763980084902350873126997052531314418265556657702632587808937926587425457391157921367544017827000096694057251679992048993147479456542201652095904399289834153403963261589763565176052433363840359672120740082864260180943110385164654058050298341033311077113216102780341941558397911715944157516296790517597932377065066054199453574339340139620971450802937498359978399097057225335112734951413191186631517157463186847589431303039816858987065502054463733146575153040199342387407204303199417522658718386698195095079428077290685364514680613672269339506519299472715155811300976852724737161678832683638319168085546699159180500858298156960363859613555192054057918519062857631935430427608961416790430905754628613546670644703092051226612419112155230244280872892507443741413822881753018113854907571165565090071237513253552773415559299502907934026509168342306737002717422604705674585690162185222692628560445269122199961296404050390277640844401669426475132116490071132249532419158658058425158355334648011264746264621552202082178121923387263153767864626916925451316685001965776296700511678132310180959647454048706932678242816593453844399077425717837012113270987167323701913732262371587901907326229926802523083736199683826742078250432220181359193086143805143706136072722991867477291161582887013247110259832598725662177140617831940568742183738807825835370185277478978075041015511469057596315075776204300261487724749396856044896101661610993020641178599431460596710558660693449114265604852015212775233551869617163595385684820706830255171669031578152898611121691390510307074029327482660851730659927586318311788278104580401167629698663558540518363371362988821318535068138017966598446781718396153016660505890197991735363677450002881148742362831014177919508212341888400990298321058619052000507941413832599224541596341296354805672696284817380814884557487896830013338498835907809475711716242356666082827053499144772482013555300719084059419761692804888360548691771894290254436846376087197558537201147916578104884818270829361637790905968282070889694185010724033408559583045811434537571365663428221794661494078361942387172958933531737386884585015902092589080724109261014127438190248447823010723142948403738461341293797001052560478870983533918959243053416185956340360837343411837036912314054414710450062219280277174128641444394849223937009292487427849360819428608849525418232691820319862079811254638166770886358130579449831288402234397817719410227556196784659175283236791528538921802388506153462261542464302373144736408955647477614979320045051571763792497177075059404312985250631870054710531026656686758683003117982233424252157203826388108012466387261286962531355628056247546745403330346540361905897933626384399780203308072581888761606079449560079801336257290057844215129055287420133602228477746589623477960029985289353159853304390634141697689117597709104231682228855629888563480040199715612740243237875569149932797263753200420053300372632944047546756184109957120302284422053392127109995318367755139928233728405015905629684231447198580454830383814514132264445466119002192556576807450235998343509224549076930540006812583969177717738693899149756475597994039793795777438027605719039563030280428829249890248458652737420209488710478089058873151518884026490006672307027941793721401745944562950584241328131253223733925493338475807921550303458183817588272028792067264322309884026242453370822098151097309404990517614305069605404420393566094169102302685019365793458216113999348873475364796422910968570213328271216616357738524776767002600585421497690713552537688040451350701115100987566555381280800294424431639143900443574812603913334168376274516330638955488416144115369541317143657765445397151272460432348588789629827289418563058837129229710391552026586580776885480150249626784566710005405858603521749947930802166574020724855167081356963287061937255536242946972286920285914941828949710488988035290666090601899178995574989917608907594510701165952042894422238056309962733758910171343969362558550976084554450539569912015647958095717192325668157520206459215943019757617024741256275715483591547945749152738616400235138040600852004956803971460398489021560730134949891690644460834356072332355162081557666845613490609779695257396625003795544771872577217758469355924272346584422933201312304434502120463124709362731637041349273425690274940342507986089397500228128257913692332764323072485924613524607183764135305842791744187059976219981802175354580363603550739346094398003077197990644526576198946521324226227754271470180486177884698941440501704578749138866348240557158619381068344943433174578237689054445482217227165660208462064858723579081537253195571745068081217787237980765951188838734541799902433942167475093485758714735831869663080587562662734167336394644121037239972751377287895921344156388243783380332232835740325262588477302385914622200813601084965826237326301247937655631937064476187958965590298943301490026276611655155513189766843362602276735963774720656496791874579794783333708653106687683631434013395976461413308777601721570588891305225701898087683449864699324448477937361475685720319606602560857864629685223622259358125232516583461325313864640447358583594234018951271246237355725258386380179131520170448806960704185287209987360653657982671328275052423854245476447083976476075435842285542144564438024986058720681907350278284718167084014890518258041307079454833073383415489676679110521860904634869568339125974291642275580999589987630037379376017063939743027592240830679600540737854429964776108433678012761988256359074059567811674147457370776174674896227135882639739432987112489672678381956333760100799242745745993657564726460849178620294037368635002748659415278283516000746441422342956719629214469341175427890643568489459876234777117451001681284309721709176859400545313165815553514058291712369502034434817208316083878761304036577099740959052225719058386333995941433881275427980545308061209126335045340422218856287434243695853568665896495001360097327024811734794361469253303906400704449398483886033261822846955607335378828311943933356644219433896690478507292023640930872641694336962939680255272323027471289956806697747590196295192014379230853876429376418483376188768939111619417773610551477481672476899751832314449120489411335664148723056212509937561040776368578039346881726768449298652326663094645094880413978781788403757757761600715220109017808331806624663943254793245213826376353649247003891949157934144837309527605237175576317077620522635383002968956939085422922877311385297704823565802241571538409081467910636065674708335926229603621301040498829298380567392654873022143793941819548021930220397192489198664887386089555677840896105406299537370831619167269560162954968423995307412642270409067938791067753734086548619937268926194457220460590555409660772607814703619193548766677795711216238758419200822302216541338144485440570644090945286511616737132182359564929316159867841306136685273615288522773564261781059781705724451337151789832728826785894028032769268057073570749152306501260940710582533756566968787739342562177427122698635636319013760956176965555304243956607975041184209604010835541119129043142634773316817416659855881518631468399941403649546153870765569164416624255547894444724800912040939905119169100841550096413058473413634297699399414826886416928039736523598022473362479261717163791200425514731100473592655284128280513352547008151276770900060962066133053099219214700268256870862947620435367377997702656316009077442051192710286636364556875965695479551970138175941231253678643401310716407454930650929865112634805865894082493884050410713259475613216274275722266721248433267979691469185231050723680279678644887119522095643997698365713534904877105670497103605652269534425277311793722772207453280821948387690297874758421949522797081272243501249563097068964727567025205899704297140739863166992542276865804737882452455275792672763502424157991205050182029536546290096535320267716359281139279718266814744902717210928849112137921036525660424748315623953177769853807756595013602157568422963542311678534504716132375051316010640601326692325075790323457843516129596878823170559964621232466598487935285101892043943081003544182568707825872663379987117620253422849499343453709608873457467123159377828529450049065226594960620319431079470840263749199748047307443812176336806887608744253666454313776301842187803377668228473515530820741533831754850499869520844670070912752342378402698342850397713745381846158157471582521801514648945380805771965828465236255811062394650037084923882298626651542486227755592335624754269686697893155165999958621215643652578792625663169309009420163142593307131331797836261406295612297354392888588013676062395646781117783103439056020725182460440856348825666862782356059419042791550598533450260578264908587551556176674707639125092219382301267157717407930414621216398206766827913592601989820481827580548753748626062662612313635369657789458740867634559046101492991124522609689733157434908943627066708987099148196699512007095274628532305205443228173965512202365215554083200416614187845116727911173467694750162278386506114647214626450303369555227834249768844890870815963265245142570459522101313569093829074791936419825927319839835051836563965220615831585625608978546440766696401253666629789341035316878960063670726009463883648123185043524923850013905797387472990509199955509199269815237745184018759889024127211572600068881666129804131504432145045133039564544692196565448973030356295505929756166321578874041537635808051870765249539175234530392780806995046925615863038598693157976818172170414243407149598490600719021990901281087525004980478028146367327535124924055253687767573431647312502891118861634363893595196212429370899935829862503209173235179217058154592542556451514141401998477621211859740493475373403115140933898383543590409196043061472336439023996891938657796577951398133303539359118982989538240506205587493661055616085866588938889608098317832722108656909758783052107240468676300404348272833081552816860511573813384925233704442257883496864916896343566075051013773173997326151071911460176933975880305493983682088739377838240078683509570985812432943913229869822309413032736332098898031173494528992992233786368568185766765575339174202325038253087056846119521613649816461910107412242019874221445336500025450228745956533453195644050065422795741929674233198766649925382686737816487730210644193637467673052377704280070953766407627600940098886742551537266423813869495055027361088230503567144033244810579135951566973605715595383051678848740169625950245161316684753684015139095150411705454605723415588681227989558387944824846383845690406826903630965214663930949441202920351414930527536313985109181558715834033753138066181147522554601545531561844524437916596325508990649683320335572503350943608387663722676501109916127394442212190342976207384521511516861331229316069320269955351669626377334681892183647009630762570315888486089162075818161982328273552214283829050059578648065542054528828056619457545466885967729896649842935420652521346612594125192567916563315537004002511122292849851035005008825669681851612984894879278756557182855779741995424192062206290546526137942877396918568822433752344102205561079559261161471896799785354269132491272423620281609200442849833233862928768876412926089408979287967552548645119040145188869798536362028494052791686250056163190158590101719469408680689164685916303673196702890419036923513659098107498823020080374843854548632652060298653390458659493207311722209912378473620098993257946241242556011394631225446691148956641078320156865632988950013696801777283732648345548220031647544666721145905539750705048884433678165995863035393173150843435627701260150482049160837057583275588045446445037955309552469224724446559221980115143723026772375833284323350526476663326701584955936546783853925703778161439655305409287280948016537630317246599704942177484814811202442158471658948517974540698452660427541175080908034213539369614163867320574489398387098029784115574736931409948164668494137432653808278069680756291482347884191625972616311953660111291501626618031737634029427364327941118478943566099059880915882901327612453250887849312629399529785673049295474166627979244946429606741712295688840107625892277498630309419366553911326990969101844012117303849372252418574394887560027337128629565754858225639324019339122093732728921347198758437293398636870365740878377196428232547648869057995623347342757033788528779573869460727343935256720677959882403352748021098888095626327915011356265941347304338814634856138091090161510530125608648098458264344700843522317892663870978548197532658634619999400476426818411032486691956535856021440581417478035993729479014596734181024344571542367919422111534337666149120567905928031713471065998278646436591748267803439414821379595189616983084710020145905516582734723849608565152726134010239604876715863168420049902380680489197742909128708292864974764884048813535984066376097552553294103382349328151456762215835312919021803418909476126168696977284022257987508254507445329084626560131797754545100375641415398435972704149210896585712160860291042673166185700547910732320001272508417476334738141331201601381575226915864863076329852603018457202834225886003907895535370671801329220213834276553666534279341340920060084310174902612562194468475262058892196535681627624709443564234496817823219532204614810063702460263484771614588130551917879169906631299273825047701570892573874660560926561448885223608912083802378133386263131064927557115790973980575186639713862075871695784610013434091501161684915270529884619205057417110529581017836002861635885510114288188724669612829588217498020402766399071575478331084037965013272934742062227951119767814893495062304907572819071115802623064052762586642672160055550911324355596334843633865618585424653345217486406234873406013630394443235654051497371171752863130155580093991156540468116964909079175704166962222707481493416704384413273957276842015979545622470214236138873867098094517184555429795801533534246181137988796830496063715219088365487501009717034494884393302640526016774918817769651715994873381155089214214607310879629671165010214037290180673791043795802242801612211506387152094017035681626789287190645092616006772314978676382697104623924659525222947382434953391216969034865443192935476531576780564656430610257717919914529316068089280616268724112794968417010443247511124560087472675290198794444227226706000532952175738401939735310836817430777141386395247325384424163605593641056229032863810811524932453325266449427356031203214980970720804052343534710498057693720111774806121457651717828786877744341846114297930866837776321163847514296141677732059614331073781934997085241483444787310528396156720243517746937724897540737394899987054545076797164860370076125424236684781077094098613426927929657586312648845328491317330069771761096444035618954266680150164348796270944844235638480580577424669116146412876016114611132193718247277394910205160790221744646261877325728679656322670063237581689754989927349882728682279532407156444353067041996451416116238541509765872625209660508375352733370304776994450790109489556648688095039964664465828507705940467162094645688262393909780897118049963997326334533311779816056001845493532415799906962994271488424208765590548071704556983974973720183231015903758274603375856838739965304808462071704498029567626894656833051013841377094757774261055130024606876617952925330937894105389215211789194992651432976055767570407191819773735300351100560136417015656200569932279554878322461622777368331182938241029859393466250878856281780465852888906261873397701708073281229458655936452601978269065548427974324552940468633756363814100926155496596183145891898981721124968786501210668123378833690899109083611530061322803216897341390795945117303864894917049544018175245171366257072267542418505526677940483991855591744142446838323712192233851316394569420459812252939539064085530087877253365722508653616638332834859209551535613419851188232124141484291545708730764747817328242717918564020470451035441285243290266915245271444542450867248487115668140193170896594461677175400049968064347073879884615366352414980655259750142451371073107175249454782515355267097623017917922323610570954279008726361135570925843379680011331898898543082372303514771779519262249719674160190424744858639679352878870876308871997640871281917022708500201935061874167817109323986542404335318030477247516106455648861045311106232518196486532186503115796700976812370639485799436050715119002150761624594156461325139954679291042130590679706186680867597189942074002580996558949145078493950665447180050441150106537894323443524165003733770503340497594200679449375827038280424298416988097915277581038892833805757685832669928575015901853614766412198399036134638615710114841025771490292286819867276283403127519680414648925932834769906054958519859564450151939366170308798487857707748519639052464500091050414441343128277880568409915820113319955587793874510196752242074597450813715626358600763349113506900430905888400035333977019692841203675965542705761510513639489113168881429611884566092447631817738012723221980630115918489413180126791014160930373869883429899523791877951857985878900990568412884168463734801491405294070002766308257445697848776275917778104459728178187770907976512936832008361309125200661464033852219865643649254561097211021576880935764594372973393171904216555644092699488970107136920330087263909242022552386859716484553702854809290049295074135742595047198327503319448998298646648561868822634989443158303293197257428692743579804714802501545096337810558513240844236351266990485225538345788043723516316793193307729967184384318158181135225010161388874187640326168534570985151194557365583282282957491933659895076072164089051262138158621200598266817916725809759916389270958182212428634845830132495621269451791588151889468983244395898505785678525606726115784082827771853978787736738507026803664091863795893713509902796168959051362080163263927004696854160257387951022690381732433792638775203511244836265383689359756054975442159315094843289021214191370872059584535571766433596210676472356474557665038801316465446840800974502344550281540649212246494767216417475500994649154493929062423196357548474845227492035193218659766458335337020782150814408108625524011389026383441799083264162698554378638627261241283506453048712433203163880074766206132399381136032832267429252043083449194888529267067607112625774115242356573327996616292881755030491093948577901198689984946939245190722664218996721195105934252653564997539508247384787390838570207507952838348408162056476313796986384963165141884885834262392921479878954955676538864297884904408176410062845800735496631639826723970426702520244729591356993750944661162652007665680257939562948448340932906448137037257492441911479408141342651037632895299392936587298083482150243180524988874822601660914129347720216505041928641860078579677694237074751792497097351876667973317135585806491523076192702932851813252894034820009644840393281543069311635344481201763918516710275713614225651940838541810527996071680025686705279272187231228860105289653236400975119133046655980929617806709630854606670892550700363696891390321472987100292300516745461833390065419441367035002088648849839700330266569368519195766479597913608843194635208242069718452280800549591863369502513716649155103449388134433624037576308600920086461430987389033740190867846837517559075751941066133379791763232083107493520224622459924875863483697283065945543753560457768504041771303229316132902406722598367281503924364010816133493088805265846679786912935568366968972791236791855891458022127424958844705790699808006552490266607506804759744675463164611580290989277364332593256926585495715995965875561887919752441779217254942557348096464680129317195497138628367450094967280030458614907500256561608013880614354822577709194729290472836326312083517767432048033537772296800710465464043092924759752928024040628914478126352836383684552316199191868637305571537313855187368902744326271328781125105012165195672100824750354337523541737227091200286229763695465425861271888840605153969743664886479365981473125572298210706514410266651662955361707911567873511582122131304346325195537830684577945329263827540602294096256635601651939010532525131077028049183542104140664009919463316250832641093529485505730135418151581700094951449867748856500006460382714930365457563964448717101205881006238548080731074455151132398977732384645687418623958617985667359131044516723748199102238050529935804403505320011709361302209186138353186065142241862548210319149998754470960931415311710501459213756986079114514965674167826189086826961160948742917754557435445922236269787418308688880374346888294711309415415497540118609823643044663776653551639950411616407522811271498002997112144220875152179289950718771243250772288523611371405054285938947842277606589865267970429512831444364104760725921402055424085086743526395591746137301649885921629815371927235361926581894985799993792078171223955226650599589131309159966908540786880002936122647385083454762297478463361340175191991986829546979675786192122736294899869805614453917904800849751680638713558316910319241142063009355215613472806727922446061673168415051983401643149436250578640795497369764825276346877050493523660411312940774346440650359850073763905466474862028196696825802274409082902952477464913508577366278690143409860237839319296429006012449374999816307936483219955749118329800919418582999724698469624402813432442562591442777294523888761849739373534443277186473201770109400964096480113801704492437160772793454200755866206746035673841523646201153198478640690744838145233072198944587656708963581577406863850419933752698312936307464938526886055184481789017804967247145476920754698103521031061751533167490769405725249463230226194478852636233448251009968608807280788808133334395426582163066042296607742079458237946425076432019769426953827478053791383336822855459570416898289505511655579827836999317883618566200036623334774836879911253967635609784757933003745220478585361521829074886135306559293499805461650992946088963171838476336316762161383775137529713450924535951801764343054888260498385439301581202681919067839928507566296926628263312370708632638704466235886657894324759264622530258731469762653010523958614293510847557405385508143560903819888936197881336567873794824938997558084660271154836737543597052367851026337035464495150536262032048161609074195249471838047894475370832825952892186429141977686007153218656148292678976705241091218601689620966163904358697171133554332535592313659942721149968034767703921819638948290787862312876443921127175893014672697789691378109106571999415580340597551285902581667707414643232952230148036989097855742765668525130163605466798217422900389500423605044811113661082214865041990116968653642834822328900766463230981529925794374505875438904181710051975246328549126976189953928842817667308710168197169430695258219949370177345123185206806747806244696655307077041910912573348949845366107002341028776923424208627769318619591941317881673173110589175996662301069758835991310372489565883620496203658199375605427315352944933846496847381959248780979047651570444422000983812129696527831336320265838350419256740415802412919885742257359406419277840103746635883289431303222415636005693828487108768853159175870029821399140348816215758622232790053888459424190251109647242886854846683364961130124283431623373557338657639847594847267071477642386243118347623410026582258505464415942665192240292434626631106622094363000053557547889399439762269162618457810376025235409592146598570881331223370574797497072514915468948272525525888432605036353805697546254028558841830749023730488404528925260189327992585542029918674752252721781587082373776235350395302325626445450277394224022947392230208224720759615353321751095759618497853558590571951449934115165799734349135196183378310919823289831369419520543402876744202590011348162832063263344003235820892226997539671727295164739735094806549785252886159317990654787450080327096546268920387815079003616444129124202677218898410129482780576120081001610518348497018556775178039309151081859354714683705804908184077634242634231317531268706855106438756804870918734890583841614615698565518392087012289338136685567755837163033206217684221002787891679457283569679244923699751986488287072559275152516238253219269674071120440194339043727932658663025435571365856948145167364941505079576036334545411645984683467862459267898878285171466148778470815738553399826367276927393178916217687230454978897098067330365815217753709124101383836553006429842308993803321450052819450603539126657692996328668472631538831440862288541591958190033298496946331478638573785634403238019767088551691171116671831309161087384477000398336168254328737550193646912632857153780178034575620784184668717480205308235611705743055148304346852540017836537589018516472350512167654003782013184890133503749198318224936335628109158012069762748767068499244711396417879419496937561802665593762237214811063430625672453923688786502311396461965729380225461047738417235289448151722269181439823772429920750933135295659925852638575544640387620086865618837993150809389027759438899257221973302430085018264826959751975292937907814097814071598711280946826470742963110429477891365973585075227910004324882290152957688705616150582164326373178028831764332981142577868790776731636072457872083309806950151302385643113043521701561244782517754008137782331417941661345600770461014872347222781560489875882449388441488980053380197821425710869708150631522677118066933913394160615919633453371014454954937901159964619317631420168246164711926536522917220693634934357694798834433045327616932029289215031118324965909527882956669760096367621293455016754723944283455745757487590731944705073768352552366072977199760297183421608296981184217033837175789000693178734514761789352511793478202869254760394519880100519672606776778881507011999827687150712214321802040411568483126074074899036603079156969997530616478362972015858582913582537195168654803860395560101990540251730093283312301977163503307442419237538978304542158732113023549047276796856614172817428111778747985908644751689546669119323657145858243774643425426556219086338551078370376861514212669257043528819462400417459582638972704522811616655776802833254293359060732101690200640554617017577758993077583543365674128238168367218938283540900661706139957791758763421486506612177635279099057704519366727369117411764220557529567110170600117731754560732132110289264789099001415639190735306611340460185328642521005994936255138870330977980007033766142961209915841636288850156769199517960421556191352487025920625697610825095026938603969496252509583900904999720017942915312439792568734305302805614826526065776628767467340145175932176150302490754671511214505673924764967279404202736422142581042555932751980225831209573493314612861915573723057532105791175772076716232386953033146708815095620311625358028531510605460218793232687054429826443493053719257247445129871514124150883602533486767700292130843699647331302190502458899213636683654708224799643143562802726942972687952924996327036940993861782856330855906439829485601371902083587634140370070261255272887809346821688057932238966050594323573605016388277555358920308301940187419623556721965492296241734934571983268315352749679453335232620374911446182474964359872529154541139452483230484017916084210976389551438746136631573716554061437244927299158763022932710246513922168988780941413761151788861006543199410235907890008443771958760994459642220922999373543435117696799274372916493928483017012743626852151206397558190265390294467118029677203855808193682780777164527917317682349802621847917255208194840552700991811656347797612773034354544323392819367750888867850878058107394254380730536945711086196542900699468103755871467522759023121480997833424996006591429946806481198501990456737057798433076127673596162407204270883315198422281201845380481981750350673217142327581977890365653686534612120250255670083409493313073323032178163283475081282453335705348981968685790710118240525226980137341927705212272198765104265373879425384038149863434404625186795233290487823397777577197047095320346596339017916207829616167005256546651225733383107486821540237594128867881614243781204628748234816133812224069945890927028108054069716222136620865412427873421758921293657914666718890331507422559171322358271929719728746650306613012420693823284413105545627809046000603799651778759274669762080286487540579423518246526302612302280295235568805794547529557690425338313974779983055690361145893690450339608452218104525137646176605357909140578016547867160240082002358502861705753193931912930760920291904896076396631715385699277112650200204453993530315791885281780218584801554969688113077706446581564673242451161353079389858709382585049808245336126754043044882058593437769792374575413601836382959096494050628814633982776863540530541151517345874411806918957342687998343250932048571219506949560733521348431356301705680827792367075613804843827868883801509960191599998762570798033229949316709466886085836826316869897801011787776046365723911265461064498914673912988998022569062179116083036396607817059143416244928618146938341755089135969327810367799485700287095324382413250495642617639991682619748241670039132251977701418236071638583914317761181655528083874285357532496725529450078005029646483302821076820152393295414228429478392332697461546859697001537487753096374751199176820574286700011311119948380168319922760119614398767777798825355096481012954510349707139080843976960853123272451601265046185570313236431015797734875379713512959862757692969649123321110115024758043094988208228528236938940354749627537898784036483621642068243152729708024841067094297302517993636756643713258515873649141429811503947961010430303988727338262032538015728222748691756394198767234243423984913104064992698789676141387384940670941097137387657604402372603308892837865847620289170976651198367913280999297953150756878619431937081505561452963433378810053557797651772760329539420357003397615690274484196370835225506689081395192913351425782740674341596422203264315622550456818555868925355683644545173395877993912289805463568777052426039096320107138925364276539803871405159809280152376886082959110097325222565432445976453529860694946994881824404610910442244500926047333431757132476234958164845636861360907060938918606440994372620582393151003556897460231761095545918130361473692985802575847759405178559531958291804675556605038353252352630551703196448953411522915530269730027802323979061620031477579437632767477973224521894459975180859486124428850014450789402180108944452816279724079641377896472060700315542767921336108252504276273745068045629750627102652189774870379369015641046974549103355668170497198390501186472924842664207876109769228595632262459910150183622508519123509080757470167673914098196507190344396698986768878014089581844674445983203744125045125835343269747044149337293991755565978485600992478864973751838987309194237625739104938088766278962726197449669849599178804809505906684028991277570244912096580837587086853679190493726900378387327341589646190636428003548478485218469093556876764869931671253519663568816777099749265332511749831318329612513315883977224336754336338714656188749630873536616795303647747463791189720824139985327647154949442762214777382690287846958817812416478927838091731123380377076168554873829336140422008847450409752871526115870888199568529131723588942849851044231934077265513859570111339941038988610254221606164549809168427025621308001411568799820851550191060049427699676194592152905109893226881717087562563915938525136782891815264638173557211022678093812425205785084322544441995009437671852224063393116461337429944317669146355553415039072583481158975163043023148709222803448911373181153807567124626459860983025825262087332160038135867732651023570637888431092288473936904452515218681312056301653062391835140188041233587684788180195589380592955929404949438420613039777757963465041594346866614032951204738655947455780262454337824893466261747930218358135188081126844288803298593985814172940534704156257362391759520246394570584377203455892359927076199064826110510427792373917693110327752062439421006922968926737178139644399245895651312251461077734123237708859808766282482928553680972593717638986616575810067643129421043734184802372652766840477481992690411987234696334940701012052448648788688185201099272978121574124725800181573405586223953414338985708924524106352559466293642310084874920804411390749323424878968725151726820202284060490091370387464924235726564603204890317829127094524924923214017380503044432463102804141408361619638184890859891109217102243563405090293410074396805808833545647723182984100710109624793893466361584891384528581520302663971187291453378662141322878174437684430982982817047838316297062981220600762749664383162441206484744783756201332911701870807597259610959352242003166784250706669388272830043985217337078829838274236138604432296613834774004064970278616576349924661491281568382743879001234606878845088847840617302100863375372847703910881109702925077503088850050753272903153899425623340727250682569413993611744893217915934323220714750394721258503004465851689183357615991634609255850923590203562365265015697446856966483107034955815764628073282035447827157693068842463611662894537635879950758725972908886248589899016346078802575798131200621073312841467327044708780959178065836918929370454626584644189928529396639686659253906184585704201461586235504366925720990877055828659743849697248259302903763555208512251169886462968811715521965721965423722602301709730716968250641668758107648154502097418610770887906013927267251847063009222198813744385567853105255813145807393431533589890869242250530485248578460787294728032646047612287118128075067030814239681084109326808039622160093649324887359969950140803350416743871146781253146604575086699758783452039432744354083773450246730269466439925423527886106550601610419215260634140304052451411137002444878751366068392712879700879632105955304118690794403849950646443784049938560564341574022873238039212233243581929745723584795010091360337235955384254712334711384364155615796330419434886195169736204956358005749521940137046866799035914860702193578188784629786338042160701724194187489264713633632579699339481858561842660310218931112693606896877374038953857739853995748857588054842302282878403142100029285033080543392276903959992952524174538759434109038253038016808790736835514749949802118230886482557665084148772120917794135589984658231217791388847492746730381539969966390241567101674135548993539388986905326523489534518096475930880660338074763042775069825398109117296221480523160993002638487772166475471087683887605253778029893995969500029618441805932024721831366702734208747154917915640714387929248568899721185911680846132285845400345913882405292456310415509737563182479574498957950154619440377806295071762107617981268615347233709802815450545195754364484700325373695692089934631622158650587422814292250506570020238883403803087172867903161400919599837211048222214284449439496698644412661104485073383107648256949161261349315117433014444711921366004680178262816855881575139712051511793772004287936366421446256663196586864107223592856419541881649749628680668015706121086324514960113488812440783179508609228284990927104901145444494171290809398863139672681161963473054347966070813933018204272096413824658158794653839324325595617726400996678860925165771633008842574342154708225688321455876456726917630752129139282774636422721933744939932494724433633495785825002377324050567457616014395449041888304068247061803622865838880657213794906130574275343896040708699573493974259104119686993414317131181127305710087746147919722121710687582710958792165755984255124060429128715902910930597970027260473859658448489400255796981065581976110563095447345806728507695489514657409396273148159156304676697682982119739586379958281200703678366716469834447887904384426032321337479955633090834182844293219023993365019571789891512215766381449178017881013251218935604769776338636500006754461167968995150190798469649789103585628550167467246117543177084097012079123747224335200546820606901494272915738348141989071460251996351097541233436894439797622775869291225117307934786054693705295956779921206505979474001895530144111513523142159999095192138926782450412196501053307824050186029663822027420711130141513935879061974476571551088797417561524840432482769042097777269997352612336723280598396459613611409223653524263060867784008966643282089446834044436906215721624609678437337558925882123189411318120647673931357971284164411202907075789727303471393574979432805174755258993031031366509641429936233882818509412697011439469204239012433348528479172157828975919899947558861140246684171503256983120988285843583338663733446207994008995126460824264541524409465714357124674751239709077984827712465726413988264671756786265316290830963751278740665042141608785739637631902503526225728186560920768054213460673428632482637879361516998028532726799713077303549586212208380448910819935687002608639451138003674068037074755971262033752244706410668125557016999620917358135176943672204261254126220566680960707336573207520096842668506270307708442752646916245882694994119822892054298103410342872783833907392441791766080177033369326269667057073432817062834865173322021652701609307409038248686057914856814602804662243168618665010040436784677022509504066628096209097343872216306707944660181208745641147766920263706725175267542805932756787635220818384477974742107273910080968052032350625106512253514749663670125193398919814243672497250448721069710044487586596854439383932085445496785215343683067613669056061566038048554472254323465669007415374253939254999602646319335332203807868076165289329498273363128157072401172158846234824565668068939782096532749825523923740046018741110484469599957003119688619874428574864143153793345263016270230057314486654503760008013443585603994300028777177711587968396457891994847589210268862694699437869029364871148917782627937231765945672217433872024088111901747899529844940272612083166796997994812434226582281765262160817381000533030178988674973155027228522018441221876916350236046426723211930708190700296179870203701286574651805929890684650191889575391233477797403170481492672665318074709579927376129833684413644706977368961101091014742536262273136922879114434711909104058914592299939405344331230619789788044438574044512069174990957616893582920176174929561294570973512460952152867858736473484670805891451369469621789492512513219218355864649221754804649563510777992678210262856635472426022887773122697457378654471597745617677494702270940344304354411962652352943532550292902817325753135784016501391008009407922287277755957386345033447642094120958730590072602300870862604330811621733764973835490433097298656767592714527922530016922738294834603468184086624493646189385650801972508846952174098727245865476699670316456243056263119689642910709090185982438773398372852079289383007583236974092728821723494092592111160292804952588337889477229475761699145641654364067050760854826930366415922478593550340809636349676146070594342230139583520268933343884625671078989030715104070185715326572637221896128593025523766088006877732156881615787794875363311586856868917764786475276724527156958343496875634778780579874076716574928084196159053969615320017530884378422599866510010002799173022954697037756992301818715160965607722700009196687007877242078366251618331021751543961382512675007029847416867139987067884512510899627578767018122109437353826968991239128627442351700414875758952306882772187054516888732671823476299072405913044178393322114886076836171973555623006119489807415398219522444766481412384346114898924007457176761889099891877393576011348356365220412062919717765412678053306574487387598448386156712999057246051667477339801055809643587087324914557179944628066829333135208270228076509159018250289826964037975339166974890916302337023047999276781665002339964635957732528561837141029076739613703183329053901430112867173213102254595675187396489920399095149393861641312276350276993233354739367836864333901505821158231041397571283078474625790452650254083677388225263375496332829355430463148913414246770826020169209571618469648923214944849118727865838819597047983113630970008714334953304011937595941140341740587409037238833500337591677881980709346311439377425788686740594706935035556497240618121341998737714353677381492989367898196973617536970681473307162605713590948834917126311544259767835314925057546392833856360146154954769490218074541635839944050279070426818224698325053649286280186901471101603983686154999216290047847359262427318822237103049253444356347392215930432501600083477529913366772608267900727085127921542868340114672606121854305244110330396074434454089137185463851982976432896036541478002010379641029046815248211572227597633060155983363539260279825210812074661625888597466115822980234000452967061540586143181984014922940726927264529286046099422816976313363791426055468567345644799854743827001963951539865623767322022695378899563338475512772168167712495291177034780892036106527157569273284972825936573684405153107700175338407966731297382119984377829512052041394377047080961217467229495926580057494632241463086458603854666914923296067759097583825448070836429391788120184348875775311172856265839698131788701408864762065092504436663217300257471748977008479549138883462769556949005419161775110483952201376839576325799820779203295831805492071103277156287077378985333004769787033229354154576933620999087129296116904641761332970713531798011408227239049668384052846130676752223951390941375615197016566842704589594612618886466259247999528815145446546014812933296967484258326559764584190429076177555526105972240584855326517194419839476660826886415888345523096849319221142128898777035150724531996846450620016691678246021774617295259030942464110234140508910076525294114129256673402505000832709247260161131464986344919156720998010236793738508856674563047597329735769323874450060446566713830418920713813493427514870779405403632645758103682308240469328046574909325079719177767079277097117372923751828549711905968868691040742660727161459229583722288602106835014934715576285695022097210246865214753717665991317255786472473208057210812331328006829586853732433286008008307414243552167560660565858846871981038983482318912794449613077711965610205834159210348098704627236993074254990730799584745431367534696768312346328882550241883731834921640231815726043991867725330814220258693393232922146246542256355021341622059017221291598720050639512900775655526937290737725263248638950216301840724797368850044900171089348031186382912852124479623414865078364868623953418694883404555097658823682546859057286089990128737403052243262420593735677176529802898038792064869086887514865110270727137239881832168745641100459065457728149842111848620023956434274874537962179600688446963051879549717016956075891020721757630981236947869584985398311524017122430428623196919707293019419329717390610408044459029336660423954617252623086158365679691045083233295480677495131068515698757336371532375809510690357134735174561287739574615460512775210827812752112516888382755377263868493403569103836475145910282386086766408829020224424732748915531589768285275823326888811163296283841121139690223459008203274771729633968412584245439231980369273188746210728345911923136276663342684284601301234513529134143250973008703149110693580631788433275878575489207290290368591111234192983005161611173368804285394376208730059744867802397608371272563106136063095202985241494002610088292883801995520601496943830120757362476347244087611029598390965173181441382560470674680809999179603081331562800539596893732236462137529074606480815186765276753113718725206061472303172042114226069611910147083461163701826888472544140452079153983556700851626003159006765322595069797368843453054824028612549363366805175127387167414347131518999382631904044066671259023356051158801355369236937187383662538155605865802291965073978387883647750148450879508631810492525596877743909236452248544973254705444931737436440833132051738065078523746158944753623782323652305443163340802486564361683181710394356784684992859090534982018823397684176525726548003614470578451997539208468238857335904554599893082440397486933440323305174574813486711144395167388139931366481205405568066504826229478665579501987903513891883727834988490879299260506565643685829758233953207225362531105843957763549850476080334570569123862765976953247655681479648223329142207028794365028621269175855566087906548531408018840273951622429708581333770044477297484260479520184053589957149822432114241443846989869122017156253507687857879527289451478745879108073236651098120958038215188193091829330050591825154686527882850099906553743279213657714967554672188320459928933649419388113363406382796665369915556547640974888011654624296998044980360404957108122221838317964829799727824613909278444872450433761151885078172156076486452119057920934319290138319070752817948444307699064783477234876251715328700016591708893824586976560057757583706968833515498559713885302271583474770574058642094486053582153866623884715033395085660518320596727391164212477272214203334502839450965462934471436625494985102255687695724437485602526919294422069295990416426077437663522135676993805115224351314233551601389193669146804963645381899119432361825321113957195679542806476781690301676258252384761219353964475034411245939741935704412338873466294389149322664961486893992060209096025012882932667490173235648231860983294357711902888288515060694137843298013373690367781926356426858312608587285972271458870686605459744189440639587627190887840482007509690269029154395530854612670022100179040761197497721906333845974085541429468903573767010206781946619515190534854886643040721722607225126357550951010293577051515971156866722180151198724320427006524831880970814671736929634119803953035285827097958341404121116759156515218297247523488025607922007616200556918814098887928835400999253938574385213059819819412453422669673802714100409583660420594318904176929674370503071660395523465849924078008612224406201577630775202871181488565535580264316353855966288858774580539282656177828836564781694237237428795665588887754838764206239474054840802174044064654520093667254780257180787629440738655057091339727302880540973310973291859958820255303687856052465784324541408008015515424084643250712316218790458008318957688724227961393585409096750734254794264554219857196762152479289951523659652454677768369662113026029923618118048015237817404957959154293655708550408640710971041097973329567057810383356546357932390072520892825204793993851018511549962135362113387480490814635242396523751925235732561769504557811241972598116229420782942338698477706462014804156758745558746410181644180708345572458092195573367096270207252620969591371860261276018071106682709565560452618746894359958367025746274592656151762176884922572913387863221650725460208473430483941092269635895950464190791184983495266991410282734593055485655306542992223443681962470043296630778543959425553831121349807596581206514123416599115271134133216319962353296627841798543119108315283290399176372484423748518735150306452493532583960307583185832278106517399034680637628232663367577087702031421897748274598141741632380403043727539633939575163469621071909075728482535357793072993873031416508975480718543726620436015281891883559667241047257975482062168822301205604123175161055944174773527219037235515655110212020912895084555431576120482491116164092906407615449632531798957855757912124718600221984583533707339435009904786823870429271431102694331567051323058931839377338077077295192254336826363563436011891588965107522008216501597095186114117386457691031718121147105133613912437041603055727230971882664052272831127252086819599216248561199680635144590812872405592477801086260908369022115022566959557494276632710657837422457147371105105335080128551338479928639968698702997633313220707451417289917517450273701707698677848962154319014493173488687361515582960514611085485805087205173364891035131705851837250686397210460932469310564742577417186099958963851414096824898607813124048153056792199890523818287023075105934021203575552444527034646592628802238708925598671953771318600139892665383890975178758861494382272920416956338586352914475887893271470780486413690156980049945261321384487434878720474391808717284893906653841471317248045442108846446091397057262552597132077025675059706738905186239547984499543732082543154382874626207340000854142177093223398233796585788325105712208801449624510344613588453863582842131819613686219096677912751795512377938524667437899313551112010698680224029090753005709808528079330018103592123321294684392900356958892562873538258357342553802669758626412226277732329091651095658738849468254582127069128248147909147088462867625882071303156792947171877827298783520511341044961604905340659095956172623034219169794207543379238399888105557741028654352333950466043142287483634436923491293960962089504062913574979661415128807534152079549050507587590194548627622683438429073274543595580764604959788296058622043654176349591879604321472443909530314264893587928060293114296932938825394949013705918743273487023874716202754147340953193618513443515833265404997413752885684458527820774021336130250779774181180392115633321541352338280708184829517642612680330191644517066976850150217525697347817849840761594807414346596519267025454625780536339452387653567842274318443198907855840521038892092659567670686128049031562237433742367895366891357328627562893307506159157440860811781901916767651621776181632331762570300888969643489900775913189633143160335917419407137474822043673648260880079312520581216054277086236416317946494658838034972322538243969975792472575079915211197983559412688289214740364267891970640424238484228213651021336957174603278692692030719145498079129924849297316127846575261262115427629518867216159140863665993772923730409148415088914100578947665640857852743742201851752922561264478307030586452667900460843692387122109988779713513332718772625660357876237748550332169179344268717292786740394241883107752589710015932705239562105203336852750065178094157886096042690487299055319825685107917401128232211445613797154630523425444256876987104564514242677932900411552220972756827702257262508522130657399231223675363933190133450346108621489113725068673499633631562205916556020460154858302649087030216494484387216782251935377459677864822062632087782111459578289980492298908593712819962964917879567730914630756017959491931909369797636759508034647108116622812758276584500972113172230374855180095453730271301681693425888753962087325367316305253432633515630495070854556816914931335890559310137419890757815679089873348633081144983093282050779308819517099690554596672033805678963236781848458899524148726854726230920262546458470872443180181132723359296320388002205989289279232341609434025747532468555198132796705658613329505220547847557490402264921131690130039484122849615149417174368089075214601283913038168740666950601451685256061172831458972146321470025498067628334567354148536634053525575622104481106317825202241571165689733831499608742334321800384294086699262689291241512916529642847397369889978686824907235900554487919204935485775590389659408713810855743266501856664176840344086261058790092164554935321782497404008471227171418770695116373827357571431610559170063366144408566172069648741296154801491769055571998216802978447693458853518939286675815907318531644016823299873273819509464521037955029298233532053182940974096905673064435191601900295355772141300517323063607475240640978447800005170593650387774838519774419452679886569170793917634740868583907940665629231609630837959304668198005760244499426305438937476629078728793249147431814732889746418569481325132652879958715615337631686497988330276834301432901162939506479695292238499809537312352757946696498076652473564545511372871972094828732268962854927951983117104026031246187570962619944517836101799988145389661457533673307986746811125719337006977165609943090922249941717345887525332145443970703529465838089119292951529760202586287183588614887683076151006342089718755942118042531487404298956734278804438883447608439665371638978124701973556068185334711286597331927005050037348229537166611887722455613192255820709588528957647095160138469462957106254363035380283872814591806387504662763512835768295610540464744339890611275488424153162345865068850549231064237597100403126486851694059265356403720747047007932837527579927213078709299823880946152809967758039898134844026860305250033184245302051681489561999427596593900871859687022398227351929543781056808157991871006677367720739899566195889259740920846941570277084945699052549357795834180392881092936888954662141418729742695060933253427681418758639967478297541307531493499520421146077488496595255328231748840160860125876636124412763937857519632554310783541107403394456085199189447181846532018924436892535604603284084390237558289169878640044949941325766195697023580918606000473487317249347373270760672362571839969197884147235869892313128984032295470627138515471935584084816787226369669296139428512246249451200219899051605310511250417428581134160151129688451275307069617940893364035508672661762673496863001811909991539627863531985464152194826146045727848993849640218035795747058938396209218887824019873444395908918676525101712451607331481640469606588319137917935071655045627732565993870200765985484605056603551981807633311979886652251399427638775984305387912913150868663503373509032736614497285033445662386535621535944237002345346798724980149439071730784312471116730260563910524985354577190788226749790340460672685718567039392193398403941028767601188284968372748883013063512602954773926443492572278099433937790013812388407450498802804878094396538336259549486808043475515159627826232776823420461195878494056092247429905160360522838308559702509498116766373388519952803763392636462538104236233290559821407157255152258586649648954044882362688380368135025789557041658690370828162924219723018136685682542174086222527173245749898850895371737035363167207318660334956099207826658807054878040214645953954934064336359641438688231491949341290100976142756486141941414632731324406198487718954105064576428813921057117326095073021683059611663251835590862270193544782235650366445604431712570993488854830986600299872533865696731569179191146829882464652457085132454049149096700019960502216196213872578730235362290750138347449848701033439913770407285577322931428941151786491707842047863303038502259506312427010157394804570096151470726900606709505333987215786521595198542957266120740659570086661774974199952386639106107888755826035545833844725026729633270319855385566261395763115309380174954946806753316158853333580134581806101646885232432779843728757623615335205821338587298938063635308907149299200399786335158229582406193470943269481829255408316148924328063936711983534708054725439677695336566988318195755610643727779096459728139049675989128794050559534970845018169318125172879664614992088555910602321655628550958976795727000732640912685997448190931061734372507912178565080879381544567765229594723420150005297944314714814244876212138993287124906016317586221341451694883732492168086924873739496917588000523269518889289645118942589292457472483477911320546261907145266154932053288407216442818966225371867799748897651689311193718129023152420998608498963111044249140917262660305694625158473836841525959274561117485306365680272368296037509460353578726700860108046140056688242282975942544470685894344009513054029614987025544196769246615478628645363794964839687946853945131523116326505703859495935313248296988965787618214000421684193447868482659179049288126506806643841542920087264002931900480812421375640646142083656868756142645971788572687683631986968634447647193429043540880130718243301856088084678744761690158202182438268463639946458693207769022817780353730962089911059369549297604896045271385586529800945170208361504953348015694678930420063290009182653803188668604424996143241402922331557786052393659205725176683442735932117965759456056188043087861684278746456811486973760198744616442719299838377310361457702409664426912588678633569084715463500159153150593353255700008660549988190818142545940793495046000782045238289679510640090410163884211427553692670919459462882555796438842809385689691737327933133740829944989449895000186012928906386447955172134154410571933443746961268721006287411646638109730902573502789321098700366498605567601260288794949167009639098195497318106793446066389580370328339113388204904538762164483063787057631001130382386413132314457972405275998385074049098545652601021774923561538976464192215118883057711488130162251507576977732665284569921492857475659924023736869186054664907023681450606319796180591469755373345504450187797744182686671025389442631593026050611439791594926689044680224325838170667419403209566532790050618258768390545568679207332356540274189821899160395530112522966546112591786079366003102961134020848143216476544076769133455679036374452099702988064193916529521918964385875157181497834169585429964451361262593614013844432122669226450884896759829992828298099781798886206390405061718753970009474641246266942391425312212516883827231399982879109987883813173231923872439453809624359268318180450983416526260991336577213358184342251857588407585010749360881214396897281489658545430697945115681605960116250397266022507388303157149334019646709551999187513933960529329379204007907565921811404152259676067352440120922502652348109252069214841177321086685246169748116044181616298993852539342427451644756718083980845470243013144588534465283249933652621995382750299301398651048405833075429724631275898003378682443174703962414577954357630141295285754730573929252710663436981428796961977845202532870560257437581041679807199314905092611321420662575316273640048042757623850582079215862076469567582992194563725989321636943065754897988992411692405273337520937816360709620473781564197268783937776005650944585347106819444252314864514017363917996981035426047552187240386091811937446285121156471392885240312693764862180990177416839518656955825950688572043017234352777366754128902266536074041133056361575226066170539135238943908757002132256064595470486380349383663337566437601297109411729375043326608555745619786477455472392040372765774766613284007936860519382239678128872215482851821833540831797896649364680848230348154973422078298087436794277436486376218698038330288086690220005297676680139509803769421895100508932230372780961746036132973436035410431647117874927840332993908861052828789194437123319766665727940798875676931241148569693706386614258933816267593981402256786884896795733265205119405917085087700408419794104111292403013107187467237555082567225920613510500066897403178903736952676959697425701870967443822151044830403170436216164038966760398779327351942009672804709585263463354313034719297403396086572697585134957897691089104768427334301898234127612073218929577027072032290524742232183455498008700661094016549241898554437237056346570816981582676524114087331176460730230093963425141328638917547043187745330127250036175840043650609198246388471791745705050460691212352242937518576315265623457462558037496720095840316111998856310942971804665270226824982601097894413837334563045005747747943513255592610131611653083880452410906978903670674653599393338292158181248880927828852234584876541136152744138797557887250259846315952472700991827367465525360084810451815494831792881164802162536884120759368445005532898111355747910534664527369102562524269696356845913227299491951821008496279546477733286426504983013420659723665313002510947565535537904586006751955760072626192743124516933796858409217474516711769260548224897698266626957144487580655266893506842989077297493360289468291646473445838262400357801146232845723710753354936463433038170924508949729784622849232093915957201628415496400414768261147957514796378403533244193571574545057517016382445346233987405593636902106589724134267088163149520796755940929070755058217283659465963579033791879897652422179870359720476708667453620557840842189223517016947692443384490299945967240609320452531608347834134460264798050572843111850590390121891948850064921793461772871075133712911151832792319879179691168652730087615496612771121073183393632458022511559077928788859647679145206719598166516040263650639669236345235273222322671413052609966290446941356712869469292887260758430884981225157433545307365206558560032414901030054037602439111850380942417133056578826717703516436001229131629595571237485740628818193202637117960356461781313525036585292240692221453663927863051918496733618026710509487428970796359027346340998411171409660618762110436655204413667814611515646897911868110159655948023469247562560734452301219784463570682826491729385108767802600305713288528323473138478006341690191902945337902883859493299601724193851989253494963731575152655964474277842301947631229606518748604070081771819676596592057158709579553411113874666239389675702915383988901205054786771713492364878456758411828946504869077208029736358159493556583352290550484764365152183579682611867753326962012525030102826468325180571978418337276845834759029101178453014593682898705712973285289284587557282696977263876377840606578873683756372165537229723358902722114851194393965924241227636267086770516257910245615739010130481533214162844694071360306591082274314953077430134493320155078915477122196460545764031935603980112678018926282543398921761290165854821142664657549899800623791524971210390245250061980135996509611104097651937390488448954734847901918996906548807152806211285355530031127771652505837833594133646947307541075078678428389368089236883754656282500597332471754610447756106749942239614644881247946584613000843617867569210910612733410705858132594490686211536778881529662521709735263218027044655504960850295876741538872989374571116791673073883965995543844325187471884862982633096605915105048267817783569835729250086312318397499889999809360526200702057457454000074877892647219029835791269937687100854378271636316035554950648876643555158515685582326241792481746037061572498026687773158796183717786462969400852684362348544693533739774023043330172463304599565608582569619705618105111006255581349219513219155845458890867931940351604192007564791653842296353119613800767884546333691774677046686068472719660321079571793871422318889753873852643098843855484985876615684669285767348831954861212025422344410169937883445060520091522027887403980978255665920786482007304065095434378980386535555530084088020970615129366861440903470389216101514026256336290260192940466084116095308407112049686112218993982528370858141358856029325926215031108409033083303152889046038679865711413256794963907727548341579448080517696435303941654229664173777595183448176880933583565798496477875626271036364535041773982359626831553665469920219744495559287512171744040600437877105074259195899210531432702807164330301622573286761117089378814132568768594586727610312596872960852526630502674264181801675502393577977179168156057786500075128834212206406616706714882810281713583685525203007906088594603950998529294827759911113691189640851273627506076624082583633484717880864701565295031549243976526346322238832972338612194736453067790917018866796877843061571233408947722936132835919535287526171300440301042438567230901278461826977481531732469907329141173681411911458998244415614246630393719760222866999173136642241199411418669051830369371914421327872842494340579260593342066944142429678949561855366145792297344788960668348428981251053587976889982350274131180832888669718663342233495669088113981011309349099101012152570717602909171373454830642538445145670301055649603843962011768356832764450296511346516782298771189846058178223106615239566830200351462119123161139686016590944985288074571982518286845245403799976286880740185034632584257867887214558705632609316896979209745172391766934229910790194371377225853669212211332387938407198740804074481388063870030903050315238043460035011745612401303074868976112089898512335965933872527088212822134977944555815688364802748329670257023452775009456671469179367704683414250999008892070260910815356066795264680653848674036273700910167215443459019791317385530906460032189147950172892739261087064988669326399816967712502963626857979944774987246461506147323359188362461876741659817583583348369407210819626613527320035640745172244217955640615530778746861782191564406022463011147473022429517589422822600450310900849186231718177028076753603344512306947284374977428075798248684670555558528728936616070789984073009862085124528785193849357470435920808528378430892719878988057969700633195361411089973213928377938510252391834133502446648230820689479878203586172814820279840828289997133278471651708220807032291101788298679811837981312512089218860554433336218315439731495901319833454634923073298369489041108845858718076495319946934043851612172246688162396651498495701005909761079055065071586642448068289785070491529617771593119134988930199776524949592152976917718820955542027401543495603752219292570151220291325254389872408160168330245927872146510165887202629350298084592556985458022562465343717482056489802944322919753802455148681753211341269538662161887336317162738309446487584418041445986278604147855382213993579624050574223406351105525934302777166772578007445483457182796445105434984019475407097998169438182480962102990014452508305338207395448149465188336781427596946144047087273931153055139269562930706710640932526721368615417741013910132995052940329603037268453400616516497583008201926072928656048161409540544812606021745485150469872506325317517810765913868791483090166561184718931570890916210707971661561078826076661591595946149213649877774579756767267112674565175893485460782806524273451583149221629859764731737740495413984272959215791302576177755167346834118048249373653542752353948737612567364494515887918762597870936174749835298464412254880170903556882821709717168417267406013603895822215641873424858899143132996446257657787201384744414449334280449432045260516770969757128188225234179151739372473854920038504285100221600895991380283953324287777882563897899067066293552777431351410874374071203503572342208489036531261076006223001515985842496033185182018384316577771748197866630057083245480665403506406428660025146350899191345916957127878346321162451347221408656252363361166950467651749681174800060652918939817294545380855932630638254633870775350187644851090761344918101251671086243013744436025192125889026508716479169619881781729083759849171650755517379645289316601575956606084139470420379238557858931032876028922222565209418111912434350602922481332427645323741783746249691811428068324252441657682034541270891318143131782765735620145343590373807065356163487704113065191596026260774181879525555168304407407908995545567941061062332131794602372931408873716326988137078612654678962841148849682306547892412350390997581973454132171425370461837924106421288849190922737503927366735940859005087239389909922231041773989427747831290893256291932525769764965287395016129231211756131179450676409742177592385656908967495800744687502401712766781900628478042039046672282046003612439511033375526366969326727469915695234175302431066741235717838171320101503168851682803524785552756249467908356125944975297248680178374122633183703586181164562586383149067685914357036057725544406807805320048033953428766584156602205034502024945053847810474511132188014071258520271486662552879351144984890850372042413639865103489194887663044269713016916931548738054683493614854845921816297686131661562504391636069516865446441070142017822653394787904715893590170209269976832216503773460692671775386728380685265058838085430534692712924103310744553597015290968275388024513318111187454962267626100728594602964835663163776641316441824119333961382149283108056930862229172751227280635723507551987027318528804454456325830922889639495408950725977532083721351406117101286429798055760955465914090015587086738599642454448336421363238665706104118013562884970782184577988464094073845027946435547169045653854349667009601290616153324968790237476189361141041527860798569275772240761225850121380383183089574426778836280260199477164848318451966740912662488746502202166866675334325200833334609908683586604754625860746471043029402932509985644092703922347383346731168198302591070383830231014239422878309122427287502497267496597646885016752955864149552134417234844961355323060215098936549748874269433881744463454882014712878326724526641757000863810740443692032078827325562827026933663499446556865424690826421688536482299846841019294762441542044959363148142513806428588983803796520852022732846052259180922330370225080145178558962166965233749441269965899778612636169003711411981525028406318208265760773633277395397187305961716130718478210950678932953941138333929178327635655670414319331864019068346355962871161606673023489407322527569416335351739445714294710666929509174804694514728608226003829341639417346896401948567893062261714007570034670286572662389903390592735191586515360100276261382419077482964773811119875088246398578813263250103950989842586158335767926923265953556194543378895592098453907123189169870921715323746532839569272821997394244803485235479539256598960437128079781324181121473754837436249453187574384635743502039344581648869506028084119611435444404646907298897780728680620295140374402853893247711317115004859629198142555643549321871664780792089879517005388390216754004230345670309632570823562710604930812031600370929265516001934146020961509142753229484377297840145243956253774899518638765883536546331024473733372066163440270049545765018542725972023774236714648973833951546943641639151352979960771307671894841359067896616025641461272362479140095603024139649540025255170764193183823427243737369851292657148815283902562246223423171724033097995358216870681819631941810679311478441088695652404743787589035955067949337908479800385798228700099115719139757619890666512463070554728981981418717801806764199264018073602793673850559877468079532106740129159873557377870902678500552737579363435600692789703231474301771886403668621384362855233071149668112917795624350563727643657300471912334541095251296986349635192935459833093639173947914845465930408036149147082718756402601532865606642537717722858376533987126283327033157810963485510750105319615598622871683457510923513797343872648891493136986753872806963286273677784701052665611303247964697328285600625173754778418181544951238993362683721053162726874862898199070648702541893305907543417802096438082210072629529816553942745649468027632952332546814464759516164416590451406714290237730010875158779687459902460434351645049141402756605636196087109372042988729008183119112593354163127261981264900608252509095944053823558078822386718134066112564713266631748382013051423219532926074422446729207733140368945812684939821339778816692850937775761500091750173472498554762184900334486417836542356173679805502148770372587481485434658598215180745440216875219918164722926964866166101900919267698711765874904132804951028335456506860929247599437361465349642953921338107921927211061394574742984129524481687576678747370094542060524980218383807245330428477232549103602559357855905997811299037665423975768646055097360294591673464959885102314153225962245856024157165014011449807446163070062853891033820414802705574774076038979288526461699761873351276015799130270484662660842210407038242870167040265703398956217448376981282794189835579090299108052300148457042474763555304759514880424080351342650776949027328498655591387553809270863649904661303949781192884210074648239215222660571582148520407236035057574126172788218525961977874444568564212519936789916031195070582011195310960966401591554482301710332657368354988152049999327738725183095049093607964920929455307240482576601096569476241784830784853835784352438703223775245938857318837230613490459076851090858305041683413224463679959920856168534500734574487951793460465734556275001547575711725937613472111547660232778889824049975400535618938177863853188296526069618217041887078656935636544294972838639952185139923841230864155283931071133527369208347441484329909685765452757878719559947541671666009416247060627621006785126044556256164743232103152713281890681934578469846208817878558742479238500742043099806248038260958715450848796678847452744486564473899106109933542857732169605288078452648253082905808150566710709318586906722881854704318439171756805482093610574811538623064218540491375178465020127044802266368627741731092595900032143697453121582847685004488605479662108731159457622717082890449678662875871518455417641733059273815590391855084299540879363132244174514618437747296164892687031207874535609663636184718848582683358822134363769085008520612787064542553853694614131047081225589333809018375917338612621659093984916690953912354673622035244361156125750746285777356118944824874414899855409283238553838141552516761172489678515008403314119419603814343559670245909787454068174129877330610452095880186401656197932696461026118821748564743153859874853213950221432972558656140291734762471805489258992760761311695385237851394870780709449575833645519609852881807599717135649456066376937868957332163714463906690175944456510269733588652454646826526434335427131708448219532260826148446116045031289298037301375013114955954361045344380840208516525650217142869555819145154714330953007177545571428867472452446087996970827206217060908813447222283858814283272556378580191818631935173344741128024285166561538323439841861275387274773900565426424774533813328675221714643234614792787199475442744219087539099960524515460569420029644594903615407821787232045562814460559924491919289278260629055609755681189158510815668554722138493321916480994249756372176898184570113006824596921231164751155268769283042355268405195055309792966046922610405043356810518462099034611370742533878624027905087810170696555911613891208667509826395560470787326804966274287997002652154856665989476023902257363466763472128018130617702382918102739267698345241427317192768905105714185265269076457145850083538467760619134526698892106576261660424384290964754432866902945315924616534891695950342097498729375282080368443698138496377027531358096714915743504394078681126097788453535200973426515498408800210632158875250410559811187624321915643963525042694664852843848548958127286554536181430252630287950843468844016989709525185252517414033106198248713937673388158330679500247060976776123823456498294156927648290098611390395227942486182708681776287444278406090128336650742453370779076490542615698534886320079588361442737784659357262374573571310179039315602029284407504390205678642827077855793803067270253074136887911848657394770208329072927791270600337771798185214180476404595302200792787390313734506905512777290168348873161158022536878027077403326544948013786645720526799725986955661188794247050412035145479514094600844092460517557581853812428803776829517589844614024301874023384029610431884880420929547637514280504781930488436579953257470146307870369318107900939531743595395144171327944252331134457030103153316301876819131882443219915346267601024474768273431745240194557035162278369734528219669881215183825226800474978694231830664348360332391591287202073294770160098817052965649765351456235632256682651567754658991421695802757178402510896306799832120549507118126498949162176357696158184685023651057846785983680088787962018982678679716566623201973618634618724316079298048789307316525537821073596500434868109413658143653221773852904306271599385967265424042181929615176982834888397300152457630508838342971490530788343617808584981455188770130124256291466099042476504085718989223642765083229057467220502436840732496641730458398931520051349259602439899081942628800153759381900305630696833486650634643666867406095396058157166897253540777127672707121988729280297311081932925187186887316603595417264992587642745310037329899702703412955756440672631048140048836195043293601286975273817650798048811483454854243777598639386381159947439877175897109906595615255551133197714435055475164004215335958933622881953243901994334762781467666639665098545214175167988051155778439409270688586223001515151950943392399796870473322463735480404219677944771430809997713906981067221753061005502331518628919365463384278013370674847134792734904367102687458373455079806579933265833315652514005409263904875755263975783311733330413309970519028745861092185884513179523917789552463013202169137563878209915825749305675033678541738791929174575755138572937626072747478492287578120091716383630709100246569177111215328149379902620878403633428915011591508739325624916452758316191063671524794452743028538571043304533060595236805663638137606856457134492383952454758773903677929876433521867183717240935980748268428504498298869323608356110147577586711711509280275373410292869040785331144138928099663301788314460614747488557890172925582981626342766742099135163464096834330476108153232709231464744677237256152516435787049274368893045093807554285936257070900272831781368301581699654447414174365671892238157941429979418705267659330233934554004848578538782307787010407324713410943484772555512237827692395144218551663964120539043482024612001061836140448916604756305486767619074686729753018715254316765717756315661165142202818294781793046621715762297427533047203547780168086855820688692074499294831325860258459702830251682039958055599792550245515805300955989732150073509544792938049692937326767924543852225772765460199471315849613283076007814915543972214589353815474317498557671912108049610869893916196140271484089370619258523172600397463197467213807873595340439069722663739216951726625306292867376320299065826030547803949931661609625285310756697387420849881095926997585226761809681046670765577676346500162275889984624000655732462691988263470635740891816106161965914350783183661904975130902294346103771522476838024883790317101106075064037926984995538611137426412580995696747716907011182222410597439468985542657991496552567299774673524419467029525458457816672081738375196311009767894727634157519929300552081695566733219897872177883011348606610982156141841888915636611560293232003992139228246046536110586368675388310720186731233299156661322536339548259010646871386755648061781166189141796647913170574806332114364292857059438343013836316903582908701581816778324509523140049966765483157841305020516416835363908058470749308883740115692215395015819219247616184725187649882604594246460878653582585963476754029174171968816926953529060726752016711912187467677593218263965863924550758900297762091257611044035718131472714634042486068857396074734853674120435436187603134140857908213428891920648347998532969980955219665286409742783633982157528771300035247554426736538511186129821690447706107492574534420087460287443515810102983292926723628613536243024535587083173503085150601986955505495724661919539441605166973961801362192869282474696945762140076839906969962013185635948192540846039787672700404956530984346128341902667918104692732207657149020385970718142168487425997724550619838264373345394337275201629936114055236515251015881215211377528511232469489219941906917905182163651154710674887809364742253336756574637136209408917054120585799086462515154872777065882170388780476612634331626506641871560791061165803377862468816070522779770148025841019963715361161007801040920424115384898681701562233104905685196954621136889184085777950632256339212171969721841577651184440864293851543524482758917194602055797783610000149522650824221243080665157946473066763581920580947627660810277057887147865455557180253812969614747461281978320545176640464070082352870194382616758710270459465030534938768066260019774537921334666785293396316191739970357647283241418413427577064168946834676789361012154781403648351190474396913236438057146692247968227594116259235549839578638759516913879286521093444604836490990771867627116097344731424288176039096037357204659510919912357781012711402977517608900284526362564801449643553978727148884137298706596625341076132061218717527458681014452848289387921651583875443127692494005517077095548262135783229389118987081660513205902921220627959407072396053618412756206110455722225305543533568335016423323109798949235128346854009382989038861898387075155269106779564124290631896441535547437374554784281541673048242820555440675053914499523658856849183722163711722445612956571143037437660086637532297353423245516111895824970244628936319831535873434716834675797911203446869074992040167151146401445409175327279456806064742422959048365996998590817650370621757225716737084502444425277745201044435756568425589584417171121624532425725740064474328650390560981479891695534363431356097241648397501541143446513165843057417993335983136432397103810189171307609900697460747052235285356992717092155628352645966174056758176423921005070152630285463376100532281734427699975051074396774361761444631644498629430243331113447413033444881125136761934921453378263245046080863558137283665708391002984143877345054909635527668082138282850509232698257364857753032304724634288240719361739301092254968459649427900512264952914320937916217250059602179004195301663089750312649401899713146276222782093459645161157433507484419686173457050248069792894899863359155582368101591657813189777122196730950634776296309074127579359777585374581433012490767701016893987789693589290899547217439114908637358187599541181827734149452792147587354857504312798089322853842723649092143567312793411946714861905059906356662198255953413582381263960462450027437387133415749265086376118710975849628187265961943225990200469204467377842285464137187474111237322455540407461786085841114204164347162072214693079845748936243831131017650493102794347961078354417852674005075518517815245734432830984957320038321747425775195209330801466583471601393871639975105850468570766943068252426463727657257069309209074296044062674739155691005489411080981933989228317441719618592625555173369898754344620988877967665371321949162913057745835032335248091279399916561016990629893696335307093278776715745196210183392787966168924818269380727232837000413977836740475172105697009121193528551650370361906618327660659894482634250805619178308447532074529641831397623653365977181043795614546525773767135082290475666908947363172736325583142170248032843201554274487142645990268677153171504043873153012567534940393002453707675561607966214141408342176234558996502051918406163505437337950691881377565323689653903106819537377264341871692807253116246403392582723000405252384403324215931640908699458154155120094829402111439056374326973778669331039920648928480018694384780396623343808587744645737055035961134873829542623910923340654435333491820650864023858814958334994362244682302915397461266111407078685787223621992095510198619450119376819609552222727852463014958266151155125489574835622664233462391469135262128276719356745516780237389043942024717295995806079422848875319207506919562210373752803197045094191809267594417933306381970857417039311393026440521114905688796837995986086856238345517722846901318015509743715107022426870342065761081737057952988867028827089065439616387894962062774428614666012248020890292073816986593066612238738777347511199218323892097826429116336897776239430095308901103498805402132721124248811200884002445243630063725053630573178257578710178409578830325594942827533886877567461375564775390258915668387720678336452511923997437893762244301346666023401863645370797472243369192927769776675049850257706086121289120915733023849349035450604323019523001629471890891741573405532138518916424730117028049527223818582366110664433102954460320370510920812646591397850509221732735089624786187846414251826267973279879223482452353489348954691596467036685145507895026266847935128760080072647738396866700734152245341561970688103617458233248534835151174508039836953032158318421103417516279896829889918990496354902802965352649997449885537173646883862172395706903178698322502847169823314856152541257492937218863008858519537443529077020231807825303013640796086822066154865240267003859013107359327403741271781573177246829539838176287354774283933303023509402279078809341449311319552967631781866657026387894494910293682654849105930160763072094224283690149509128680455006266430560513882790611947808627264351341685473518943871285705077648863304246804906669889079676641705076887705419079904181445744934801022038939489176921355680556943941610011558915131023011834130074220686557903388028270014782772437059056333083124175843472826051016746141324793085750802743469926649735954282278910914366124618075021586631638145009126451056720199664687768598936468852617186390299494248322201885679616812474188773387896069919467809513185640510050127589755740378100771447543967718584835907898040562217412129754496399695174771830965645536407676574914064709424213137565703774887476982254370226554338834995771719521229879214843007894454298957197871749914152933733326009399549332414210936901296492248925653069426645942165239336069093751642359607880919804172742575392335471250274293760876697916314852797033143476415824954008944075266571220076287945658301561172160848474028441551750102181902631888933938872588795237135620741022067327853676884717085656302272878089479874104796769219941380781922540829891848539746507771349109411681427081251598872352089729027680570563192019962873627553148999708015580550413453742214072047204142801144357304911619096312821442008674266656592063636015885332887966469325990174319381440938872497530774302243689267244756421114778841863036060680412708081916644207106214942098353125524307721531582831655028712101081145679050010636989278384564965164531872319926278564235085640722954805443860668241057982882808835974896911890107464099113206738244438576941683835269294079500491041200350687961807904145448384907636314833718439083741016114771893957826768063883629637781632729332052876135964638022697531960616222700950998219256651853196853846690661791318820479032867545871173286989857189453495216124265852083954738421644805341099946811436578793375986243768251558097820727629740530980225655723386326172868797898311115412800207674587283361513668782888284919115575681477668730989217067900983639180476381282598744687437947442126450712797496206985187054638434215719913026155410653025018485014241990287143438758200979933717932380149202466781798466021679349057970744590794509054157198469112598933276639712742478494250982092373046882592989099539325382568406958676125574843185045178155186861475505088597733612364501234097602528402684593502234239868757404051397389416178922988201937672564628102748322294376679982791158831804642344765103900860990555712040663887915886448240033428818884916906826271367084238959424390601702488983921241240827421125448548893876788055835619144769622858236641579489979878560683134563294629831592625272518348363495141045068819687147105113650252213982955630664007474073965154048708996086534077783976704528121787896799195923335100369933599914969046440684246299223498746831097993661131081982112243558887600260625652179936195445017474281768932598086829444178567839426436448184036101327637598419541349411507194691038841832795302913538765131853104477410495773412259313571491872476934586608098662559830741620382006272347920235647937447395311418181486673541491671969645939253192213500854698396446318940668062271824714227046184402114823365453939096857168187050497464346187041855093757308523829335328737861076533484508664173201041150414372593144906956373410901611793081137950045994609541736042090319260098844819179249479927077896193387288895207048156560585348180639360249274033407259990944423718233228497147793090509243597691283065792069099964918075189506123392450123019242408061726061173508888681873634792400265167176769960266827248196573752049380328557536078969200189497330731216350153581577623431113859201606644312052965626481154795296025184999318599382277703794307933604299964949096268240365984058954876047865153484146587061108055038777942522318962986082747047401024134757136196949804693254670586928340110772631280161812461512502847590458783830253883245911472275903034848773507182211202725851457333886986052240699177347665531417928268978190954134948559395049893477922566070062551379284423065891615025546411721086335303088342203601728780858396075956950409405656528267331659837384916896923124001980462892977322716487607661698126782397569807789017167775077095334374662813375154293991775010700597045714726958361593955166891448203918050939077140422711230083134845189451061631029087352885331122718378706427453274684400725704757932420284708173964119498637819677950264050092180372009665209762007716888464441083457783504105728111172336698628899297062169185017550037387143440750012575041332301470848158547282824514778316835048351599840126961721409442431580524030660034805434638328294894821739589041675759418318548949761236263493036339503969213074010935305123138719297985919829167650740829629420198666993459807476184706137697514657665052130365014094115351886613922449443958229722184014422911075322630930478972549358583604202709343222664142255808735525921893175705176224664619326454304191162902843788747489109658319935513139711424576463890775329683936382481649611886886014814979906738450651497733713001800029029418929117723696756721149415200568600396749536000684131388398328910129035777698858360833641061233329981562061880269933469577992192141019557955297184141467156792606295689935720330181857790734763684335727909509564136004733714704953005239409315299614832623418045335245309689441224883667155099307090884625568365483401763055055303223577812439702626954629230385453853216345215109539737307225345769117453221673303263609773495584291065133055696912511223229221347897487854446831176134009493550279944912322969117856962133841953495126325028842355437132826555925551563520172563863730007601159283559525362604284856909024325359210691542156702108689095121332449492363026080035101619165334391810466533366877595917727407869220287039985514821282225676433792506599489126648677321583942436138211375913763443587411993461626479826434171580337933850728404836545420383035643018093277798780168074990632197825606901756425670279082096070159767560811823663638510851507884662618169480289597487785243700187408810083730911137880979749803067334721130586943305217377277924720979497453335398391641403182308905377306481414553763588864908291328616601985855693812510787778501319062745922588400742623147013185434681678571952554738630518394076216561759623801596495909556108655765056501954013432891482226575282109347728345026654051779091395031697700871418059441352030560817250388507807801402692119466522013089272315989851139216528707500637903293005442835467082467960172791165146938517048707212116036701191504550209484285452225287026703895715878999502204500714296557605981433957593595451417199124948215361540133882881389480348610327472080054150440690496386737820752211921451297492829273309443440897713237479748501833227582861760036082306113458272720086933072769532744186770570043247193087810304893583685949270129112029098374089675176359699089243171249369444595798560589988963123612577160983345923146933598438577024258994866755164895245382296294943250191827322033483995534523521850402533288094160793343665851700716065762034250520834805352045776580239978820330171029688667230130048522591370446707280974469328737171424803777437739862663505938770875929723631773370830309759176907491368870383701282470939364941782645625396863728321515295429752103594844585300832370281467304370180668031337289752381118403688807903178425143162283717361797236476085883068975576460094363259058802830068146495669502755212284672954154641574290386439504215400409260064290414501241835178053504520958047418202157592472058710321081265422116013967975098749946071709868621398259262444341132071596728580756410646216166125513092270630483722508936344606371132955522960118701945805326035396179577694657098702721430194971959004443487829680050421227214112580000417791193538343024063235845259564450631253685035915890532807676695566415402267399849393171108220902997297032227749730361109496166922988521827347811722914155108055948952142742813765965794127595037918118183537989329174623659675750807160181010719051552410319080824491753261980144532349489105515666498556310156342010615085928809885184956994002518953681137020121973407746135328079743268534526060549737407087232254922344065913712975522334756832884626913209674662480403199903117995395204837229382550637085158118687173108859651930482875485207236465190873726728174548533973468634841287633631476707132930424979290303479032897336600844667946701348345801301731609651606876797298973284854530349595463869409218459884488543726016276849400243354400053404021189992459430553352717299794197638290738892444014572043611117559645751950284076360675226147834376111856641638511727054253083546548224889757408581777909818741266603272878514867870012482080115349586004805706017784899410367568736548548238749597676099932523234479755086840246291184670598955242660361823548148937410735399158267736863223528732456307841435247060552102924364039655862130380592116890427684673278905125220186678577989879526287337047419355735511063329533668327561294078199507030737834625701986378202755357173008449812547652328340714902721180472213098552571494831957419821971915273286535604365274978341608671834833058806404342624388679980178357652547594978052214475781792475963311014934513632999109511986960532328753944404594263792711933888591979575245431609549906368605825494985959739680747744093671392909785589610721331740001137877431973460620643373705504613892200339265273057252956917648182733780146971957671799850531959466729426332217617821374545002104886484146654793540660164538717484004564853310845356891188966134732641045001219073503304200497230619078822587502703088454718655095956446160037481329086627964526009226588758565010439277187963849560706249557714854172761455485378715151188507611808961144050808316150496298516661019107615774675793116339465502175888543271888245717951709366782360233274258656037679387370352836613493870997584612172445894446502570744699102901638773301437936680906790349102777165683150452427381989850053359355608785853934796434399976513760474728314870311054851482947350473395795156128844192342358794327608855028408480196310327646289622541051793229127293894014555414158783342203011936370061189922108636389066044067461887519103574904876574357874569882411886634852058815976920397654916318811885380100267351307643383564926462590116518546902726438516276471863638720931064301719331294489435538775989980953842498812030449707799487012812659875647521441690971578132047076700354333741178731904866879424060671197242979261157372450025153488437770507809136966885220289820729229716930860364804584649881010389121544052129933668678014544366959494936817783630332888149705914296540996456229863801207498185491549918934746702106566393412066886755378051764482123935780915644947168056882680897523718452572748667324986309740256017490841484008832988096534216616713765665448521021466260151750240315810726356317604962520935989730867695121518780733717188670663424755053374661004312131345333480291439241074836993961516832644471535915739050682132706794647590575511445400338720758741212564042970332197302262619088400564007772186981592691252937898905460378636009426890428608096930308064990497300822099730339519489645552929566745727059106250963392649439857775750717662856617773845691597490357839999805993628507589195005184112012005328686346252742352141548876150028280141671175813546558946933813751227374689159109274031390292086760286583612466456221073972520020391926078982853770398690467610205364385018033736908530293777042696812079100282395679848368188553341292661232236798930630644234097393479100602438352224685335589373604157160389467047956625913873357614176271425287864322382399077243183795225668577799324994381197994529817452870072736563461868735365657415253405241750416440559546426156966513857952539406965643047604712253269965819430329182389445648658827543889542850599421656775450344299245015433345236102812169699756293648574971246116784110873162925196153248859812962223565113434442592229049438801867813897588325782620449626066649973857070577208403432974690253109304688913128417177736641254359348737015223563516896480661646607547725733957196626537714965474804316880837444503731954681934725869715675684487799393788721043731978501602773004879319071861183736354818384315138089579865469546655205127198492687246551820293033674786125686838783537413960455725460049946434814917608776616601432424039268026345202544724533221602563429494263784858556830101876618470194075094742860860891979889474226627921569455346660367009477019823054869373695055901656633150410835111540863664883210934417779174056754693972502461932734070692865856416675146448899735698592823524386737506030031741350961573493559147253785665412414906185989513598744714653039523623149464250498018786779506843390882348799034654373220511416417993441991697751074690379247453905933449072123659077435993489513990452987647103892188263443516270177679804832554771605179864149746214043786234294443906775797442777367849936351182663545230436723855605139748099653437662436192858936293796828628032521145955422806129448999692161233181535124972015142654550557625387132200100775684746318133659152796294919724497099842380434285538793956647806410966106299150745450068375878516124819964951122668234456239278682521298010025514251232447627046594389964925239861321671204990985963568513330552714105234549708334830854632320478067747475319872745131247325469424020033603364016858593708270004911481083352720422147537510482107404593064003498583924248537659047001270065400369995560469740552064156042399202840319820122297887934212694490517111557589013844029975871109695740212907154789683314446970235478069707543588194850342032914594091571731306483986035251286015271665929199219031556766719088117036495759288565807709702219354930085298831898573265049925034841040578910703525615336011574747180481557277042678298129082874611718241982783751881070256612958411560680422668547798860698870227548256454383526967269103425185535037830668987823951296670875773020135810641941886498899730331619508878022131820352634873481476131363593638868243717716826301221648355567504046660860507839904983716760599933636583544278514424565315462648587650210996559869810497372520954720194707116496863784259410381783917453426589322866295979972632864109367468774617520700406859237379561699597817509190251671674327216130872601376650450927956037710262545038832062001156851848902097694554599161915955380244550604213179847862477069642128560377729619746372897980526294786799745766687047307609453231974310961283596291347855347682260818941140048860312330923849216695648889408363866987766359467466806846053800047684076234652227173973644396319763816526730462922257596232369624335003701670147030728995133352972704698818168046644657481221699357607384219457016310934832422372018876059257823504073513845503078007408446562779713047588389368543214360603974283283977598690059484236639351929900729600253134904835708144817416935590704890891883491662418785952680764193978350784375437309392596352094292234761797964340522985524274519741471020912684955049200559594708626595622760488762742729606778002288589138281560469646576693647388388946844127220973785796693761997734751603416781754276822908912224826056670893837540915746304711384925937973855338646859370279071644282973469195998182815639901253670921186484831285584964614190730941292529213876722074554941774274707522142709513022722980185466764776219461127189374252631754191743821688141217581888916598281121460805786345483270999968218841812997320140630936107467002143028187423444876412210738548814533705420044155012824257370172432168308091989126768971321031460781185237943677804685844572276058443326841163019524923122267686578245814530243996748990957115883199261712455827990530818475006951331063380288743083417012269429840685932757632981325788508003690121077298791899246842240631195620614242788656650104917586684374979885284422265234866129060243337972352143236591032017699616454211673998614266419306576743312921589981982148715608833079089179461974495755564446599460562874318306746633416037439935346859549352500521269407264931707457533777741009409060838727408077156028871018744335400994092744240477158694671555471684098416592472058982025059052487153461179141106193066024442195568070506582836864240760847528746213704251760637429667691992695217238565413084001580910151554957142588638794295763032939466783239280250398088864991663413375237841060643466956382755496698997597348588097021471616301365341509893803152581666585292219421178012810614719420322780762492738052621756078175695467332899557428151990592607291883716258681686501249633383957179130140265693814956516857603410152449576914050754669540431148732856126480648319650670395804206557245362559320388327747921577033605313405678557700440011328913449927242190785760555543167498492441884272549149387707235791793571322666669408955938986032814370424151752590674784836030134993775057868877232118621353671780848238969566794830489458764042126620350345304554284088427235366780693339135843810127573787995779497521623714517643326583658621703629689561990520142535439734578629265164653054396230015108799240669291540981721547107700913016296781025268921905091439423613066840355109688598335719453204196486013819172244338459067476421948541129731195239895003592823992268390321968580561669783382095914526793014726548538460818594257423989311093941948951834729483706526341379615645012458749901762679578642778092556413165160147453834557486435027769067480866159961489308308149066764305515423174590202600778401929367070761356608831960526216070266725574333999213849087496919625043864761085824618376851518178754666210448041616638527380560799039033714165309185367892457952839819807488087951663373563490569259850520104320778847169351878226179749362302433538672226334307345210001644526870580519620109036849207781561511406961510691926761954927749923296044633047923263428290768093634407432776581580886030416436184221675527599610029007764012607282387437807101697012641234741423233164973053907269874518974467130058281559904750779544960366165114989959120976676269834769022945392147979512025988547410626603496772612983469586191406960360909508720118736094948050031880220695600637360671035564214671829063937227474693011952225139379564461981222616533667014696254378980270313611720559299979396215839606723026325614238368554269768937929103822296616589457520873840909005736200470070205646819039218741702737783400668705134194338503500002617481385324945459428622862088916973029865410688161135045961712530228668952668158853393866209890894499511472046957024280307387951098501492133057161413862876474985254664158987924614293201012966098665869510230230803059885327161952526596342185547314402624588997413466698804808494915777204571337913613731288133868490218832463320642544161763041819484885301239676465880787104276756434604682986073524524723136745008457908817496415644753990209966677432426211042330368438633731316502602563892199481265596191991918425855105106181511617996929511131447326874590382516153025759778396480037264801037912165895450458060857396350171222573225068440658858625204327700521474193312122310605007698990180809279245459199926679794186594583014137433197702470266278708681052529402291826277759953601701965737833026344445515528278214863210918984775043155811913597204957345547128618095866474760105746163092493135832410723029484070754893131118559635344153696546956871417254453005767288442871162863302027066134620694576922667760736859988238940460981069281707156796906782215041515988627424514789739674843346932519037360434279964112063766095826212181374996875351736067388857818470803906851793873277467452318978680584582714961531288980388653345455566254238843222381003815297306594908171726252506226482973346936346657169294312859476079710078169455026159474148039023782023100984318004528189895609266419923325002988911974168470974036548394006948060591895010247845542457394362338405633091257422978022974382270323439678310866799633604952804066578396169751368263064290573427912296626285169263202911875002278032296805101620653814814115347223164435787349480434173892064227819223169127803664956672841977841580533659285337849238836353636879801471183728111072672747939688525563736332401682452016756736832209235269123693822877174589502161978251899226984747470223570983981659982893573889348870834460597742646594936476128546584350373503234967158072767364026373108152786787848177790690665823418642206043010732969747058512027481585926169629997558803252206291879378560053942857534209846849156305911319672243604544403203332042722037922954807512589166953385162206685976316621694982667959900728220103820675676076899985389381172234501326407846506306296015643729763128923012229378380757946039003939177842899944897712246402387962134285653496039522724927891819266436872153520299786521794794211382901746259751631402536793781704740613561932563038837630701453939363142030093824241871070402291011139871174956350371661902914984498390622786606876526645095210913947564872810268800668752074220382984042637089124705573445219609439533278962103399486892336256591337872168118561414066303934669595862735835868982531855888421012825677060777482803357415022807629323850276017347513025675678181630804883343249261250587308527250345218929609455796678175396901638780718677730454284135615157533690719552176822715675460725517871086626613928579624914473579234103372320422016136857799056205182386488483011262882729359624105312334817385258480474396589976668321861071112386984785220127682006209877589962657365899719277023394368580274361731455252252432607188209533587649815368341287659265627327474707832519441113451230932849598045299266709757826356072527442263715311859860407773336176642321914709931136767445266058459355126058481628973408505658874594231265508290103941131095731430997864202379410735864607108314867196465233188954325400900168052285123746836531685058613303936553125646339895846792869656334442092587253251215886200193656558153394457244033256975624067406387721903405865537838430752706990960090494983929407135629160252960092558560656805713293870392055805816503796192954914923326678300768462957695455010866898814226728663567510158773633258529296279974615340203123336904245255988117729391243720657189133526485374575901355601409529115689503586645040078410875952891680115809338063191305296348369045091603263249497643701151466987140162572838222711883464799740787193018598788084624082489213381210000490320500929497860303199829488029125201511307416283164326092666781899847606885728188124530318452480740718436506521163571705348423657111210149947034721736880624720393771914189229085099637930900710325551589331471252627687493955336552069877642542062341858601340503364516051460312773893152848956429510116201162017925826366171052088772999289066156758840717713961788328346259199276331766011986727680783235782798446120660826125892596152403757878192559208243271319007196080147995286175165807284010547505053649467295033754862667119658391614103915218179022493252690865631238502935455353119825027705103220181560734715125947950349056080251759916471540524838136726665015785309154032946324364417421219111050819339519030696933190543830094808082591218354958229190854750244281264874333679750462838008541693892302038894941503619102566161999655897339606076771737351488647020908742387220187708570699239277048223158105396096494419993735367963033472765292241741944608572123891439940309813981868083314234025475586593959114331753224320402047466508707292178840293905523739431226687092068306920799042261768515979650660873086117810144022286955223630200010468189115141252965818661612063659701512239562447815433536542895440806277434348562457381046174739185578448675572788382197906029631305598055338470033410461188223156760135747536131950756838378488536150792755342259722657344665834035271593764679401006082859810433890747464845305118492578208055319254455062402904884649260582087338336990286555801427219029154330480931796566095951467167713611956472115380560098969017131190830935620510546842290395743164727624455374505507281059098332492856082487445269455750635990022596754319936386171190174000290994220797568643995330934831425233544655145808758190764610010918311634046194560792228617018714914501904411884969260782605730858823918839101802467506047787656059728203585253043641801151340846687911583947465133425389236901733039091882530929959084063580207274207301295207045997148778810581918747076769564431215814127585581075881121860246815794908093360547805093783145192942912144222689814201024166087449635413125788486089720638969922204800070682505641303362222295897056412074585025921142979799187646870772201809126119660944158601332790149362843076193157629382738894008655690889267345200017881711365970808433183760892175361597324440006211901935771444560761826718819150432985352987749545455272648116846322296548545078734290955024634678981934449026402195063857784838319522220051629356031540566520626896737258247607322514434316947164346322106076044529749152268385258762491637237428810221929603269808812994216212429168872694534073911927921812427904155920013032417175021964478506278381970081168863054160150547217796174210868155909984991121932167042865549021833300328929775204564138358285631976390844336700855477859153029948392143324359017927474899317101554621969387666696276332328020164749947579384497678032512261383850325002410084728089107385112060361510261711458419488250374506604396937559148266191608617037728954832593575459516429768064471359492711160401486790362503740192594916052315620447223697206815711711272033891963869843849819025720614672523710067311577097041729784384291200206917004582067671235932996500032436079849103901550404428181751926472879067766759123117206622538315366197291933161857988027304984173296801185231719551937520066733447184381729366061915977019650005591694593486601643151282288333246238476188924456241763480513604858654011570823605984578288659406810524071428899656277147774482763649441419830490153035810880072089570737986279930628216387065630813621752685734262273791147556019057925528000887760975978208119124378986179457889014417021090594484418424698067214165627201509141186305749372025080308412897602237665785650495103603057396224656517886876910183983084992787959356936041331953295754990838641755817359566625603990453089783860732107023404710323618401785730200480669057703088589991180618679006511881915638623930543211524893079656668514426744888849920233288622561183526985102459517515987731776056887119785039037316542363635132471163501270360920660384443350420209227819296649442337144865107396848930487314612043092986658636542691461025232535448757950772215065006631751167370221032517793510457640350029521713134768815076319576802367400643183453213417009038162879790141386931092135584170966402376019470927445502441609416007582084246124185978053485229672111731708768683883904100272359211721958688402521540117442625164774706603964562071812378533971841511093411440854520015166503206579445109361044128993240723214293888605069222937934990282890320048037947307508317745539281359614427804965804295989697536099215652508843256206882539431967019925552734812939989486360865216579870287876968691950763915240749594947551937347811925047222056808615504461854880846790394046189744004241777689839012717488386432721553619784703263383621954431277038657476121701062969006854169307471106911646571508126874139663492508925358458913593092673174544977610901786536799953748578813467189552460281477444818310886463161242514426033651658015074111521033448764084318340387074713227435515835240239103430094581022485134446054142806713269291341133928720980786240659270916743196054960448415238238971821487650401493326408806994212586362555578490709590943994386157143922880541744905809045337241883093535537865239588519194970705400403093201442942827207190579662189079033209692748456429346858960704195987419783036695893595095433833909955924925745076267393123813718424290267755963723425273699941154194739163746745044255302194838559124252972868201155930000206920029204474935576863926324251234368451451139414883668044202853611092554135679792770853919008923321638387356429821205514799505166702884786057578711620848222287212799673809055339810356687315548388247331461887976477736065955313907826118074918944282901160211290814934572836234078556607019097954424372532518369993057920260864895285121472690401994323048822894857305155225376398196856990889807982612212696404491109490298443108514157700591796112270293792921870953128577548066498262114418731177190051135131399337010109895428473847615895689228598847824647580771541907265717044938859285844235881112035398630051357512299428333479453508983917209636132105165065336041829285551925066220566445380142182966926951789190141723392002105544508123747515852766425970415901235464479117836894289642192429407952025706928133010135289281757326825510920998585539884749337738744986523541357598368690771656571352179576808362768523516959029801266881993066485384825414111868669784022689445405648990111993648492960909999363870900439281163332832420664723667029968848223151123085462859245585128962862658965693736943915028057318954412439053868383024903408985693684394774641477831182171673768657766639988970074058458596493415770009837241542753656942631495413006027682396389478107302584205842344469147781366790129275568085632116677706961773513238472927419105879789034561309124969383456552563513172750393178916420672088056690840059383973904573337800975536318169660413459037996601847097959571080278643122293292314609990541101081009130974495139100152482841017386910262464214554132122455073355114875701816781916283862510406322593748880246165725117103381958180277813107458986831321894870728716341258205720067044051645184054845374223262056456462675435687850685297730761578908440064639162072015585375351461272678528271746322290539365218245628086182815444222156353584163884813020314246533064432183218275415582879074362689842900363290088471724031348042341270151769190375763727814300687338851044017250988183225698640556142743886109716041808123643032273496913759173710325782428203541764205454757231638161444168729538974190395545084324643383174801913983656273686167828391401744166453919107265298612869629903858430724041154042030899014789184326830954786444963860807403747864496329253618327863248761777179235147193746983624203329258348106119453804435398502817955241112609297606217825795520714502848951499488723209335496499593228567906719839114310419561791793954569786548446177895086204180584358534073144938276252048759421879922361580300885132995124616947802583865229962627657142662530113347322908006444157635503770046291046358563516973044631171711977232298801127643489535308671709456459330385551340658457839679285641200169824731283297122657068435460233490341567020940051495850167629042749144207872216253265437938311277633759274529277382753703116874985678593264249543253671677142363882781534496055951506084811296616775592661482407070280739471005856342178065547404645010103113461834929447072836872708811321869102357486106872997845509672490397274322072067731508671371704438915592714795745539505074315642944671878083551477069692758221876750590044030877663920883074455326615652155010991169301537567162340817112704788011350819239116975338854889726095280589448675041077578434522209520664663586020768492995964166441062062686631302258472704807711145302697579578607632018599919127841425908588093608802210787277798991910682981276039928341318512238891868597370868435226002578206855496032335947795947243395971421540708176708969204407745448671220253243807067168756449713142407700777933223824443669365942806030795918194564526779753032543019988453338839394825649097854691179580863958770260080991247623228867125661389572901921671693291144685393978294447928557844234526190323933838153234930211350491972539205096592795243962829877104222929972125817404803442584263395898578917209032119716022156811358547117027459918996084208190710785048477987263191148896714305264740245248115793990312303891933007461522275565195255769450422462676187862420560192093852844575424926875239997736540743581028447649722995505233065853567852041300006429459089351995806320061017014505896456810160927817815958369118369062273104457309513397158857065887349968753498127085541380815237119844462140976181797371260445280721384740442638140320727344223821157242772120574621920351967174347899320984397350390861571958804905629681550201059774959645013910533897964110506183763236864271978854482263342864580105842040171280500322387539497855008018703375160320259058599613532243061773216345344495702315644778234122713833482421649852635026970009637470789964283349687582677212990132391276971955245197104203091908454309912482258798996095784819902343610639348024903170727009380009776123602557326054243197442698795881155730675741398236326993014223504758203841242799489875038317415220460744466759081491177002830113480001754535473312249934879917297726569281755196819000870128259674660897637309260941153383671845389803319400008719451217361954872929000054225787249389854302133841659962520149052043466291121784134625648045312163048006681811454928456097181980884809855903566694511305871227720407327856659853454666477886069980495207641936102748701612786203157718336821237127826206683630075300389994576291585096456160266200081777537345259801726135856890683241247139197465391775100069479356538543648791726525539592748828604386590667468804261353658821220959542544829936342201789167764067341469210992261978064672571246303937255504191764865491774120867696986578620100246175283458165092663325320236989797433253378498208826453965370550047002874959144322415400176026806110053835529231642736325958572985261221410662485640586101702865017249293462892469666444216717702611332948219484282602104654190322900203253708875934833034120585875309054416058222961300036755723961704692965668671254127180496320794464368057173665922589988735883477273409453979472236293831174842092161223541435004428321912023718385640770624024547076007297509239190755372142514062798922627896773071218104261296919216717012536998567003062048317053875579485580269093284178539388389465314399140842449553502484528671083161412015228357770885388724255761970563027319726482166460210532720087852309829783606301878028867572453129066843374932488653673849765841736772068697761442379335516672055110430109370629175435978080507693085875408620244313836601697806013679853823716182393300669731763764771794995215131243229422929693074235335666457726974624609575882895618745828963926041582610742610566743701225617456612950901906951702806036131048702491451268145959131268740645445181186780626961503013427759900536426619717173818756477713428453020498109236062603328882646005587606766761296318988625297846319064361491805969522516870560643754103112574734831291113214628995607369017654828130992308736989942171822651534947487065662997665042713344613360732284848379030636121781409554190802467716210176184955326569264153413599751989925405792527757167993562202157744688333563719933686920856219196771954709006064190244982916508593517962781708034755688801336486699041801764573534939213934690464925260269772429521133820341720413675410113275843102923889453030300760277517781041463848808366867586262656727446698294604678784869977964041668536803046070090891431189987051903574702209402617581173920998615702910239849403761337443753097490450462918585820559534184819593759962372072368926818519989962308403553297530197483971229850894735140884709451003905042897095770301925490139748426999700364139516742329785943865343491933972299166038103570913795120364767132404663836195597338921114379600725100962510456406578591149388890585801350894401575307939386941662931395877023344682320485595136432996898551333619587211490052554195898257403094952366553918365315486251471617994081961304910499762039463787588578040751625741370493432802077636294353852401080999683199011166628607723074740842412583378304258668079007219292046260910635974519250255814310868550408034109877601023826773425302868124796733424103077230095264831023395442405099613737768339433519287686892492417599842304165584792086636221587583239204851781307674970503221828204727982425034813855582912261874058230182563314306265660486774573414242244804664411062407256842556007439279194707276711191163808382997116252682491426693056898756411045564376042081406238414640520615380127929755898256081963364269540555656624673802956622764889363245550206996240511698398200978508806375543999613496379227589470954603036657829488150330928027640374294069972582627879426062423881727942408136686019017839478307884502655946117468904652477116420370765012571104093249343139842962302668096918891969095489365461352975899535885032661259967882183344587519455767409814455357917778988111701973368282814200793095042571116878232964589554005785762780653303506607551576854960553630266445342899440283352268414386919145996263521428952310580698427697747981971766236528311146064983144835377603563823339592543103063497606157233145372295405490862796820030307186706042974685906689511170247419387333288259764732258869818233631654229008163388221448688809522828372674907372468697167283203807934046373030470895202939806749087707180849121551703978047425801800421447227704141173751317238703439607189110943810473298514409227185082463734365416644335793369303406922983004169993391410201359257570847706242007448595429231870701111603338589088526387167148154673120081019505046059436368750767707389773191306279518417039345592344743233032756285704412545195980828450243236246714541716155490632617717680121879098035566630298264465812807037546528964518068781541794747103214000380928717022572505061155160251082387515237389633437846338215859872671268978089924225921010099982549628960323900483853060630858274176684176870245942926865099133565955907443014356143135303494554263826469414789230371120510656897113741635672048595121227105134351824530698084464467378399619624202121331879851911094310970728790459008182985768377722113324013930723168888826325687525423669241110540618897849413530401737636541901061163798724700968233291631705262674262254844526575067990834947443932915183219293844650634732809692186140672463445955970921729324870290288925920465914903936798224644517391404949800544046288255908447953706462070867325641929304659051304855839763499431916870534014648316425129411776027750235628196186700535878542754183168753116270262676920513110621948727266168928353708187778963412988082739123503847366249627028508598832334469976774865138672998450786641043977882766437576256561188059675560956258748111567930591705668321787215718447788295750361733551755026822091518145771518541117387418817855539826317286631146158218889731466000215024236028721596029248432751231396665589397479873887498108309851681593242320682079504472486141287703311492207980775902933898655822425366165032362855760023662497833523934830876989067413263288865567745573338072580374743222858419651001774236661434885518892575869366282998384889124603297679966548770460336318315993666002803344853916601713606896311206276317940748175100588968592953071969591858116028318727131741033735775878555545893271007525345330470332117759255729144608743120727765770807594688774367315860219999872905118241714085920502567956049126947475399144857595823226164108227855768104376315857338147590986211606043782135512458253613543632401300641937645081506806853108367022940363696380524245910717034314986400813188975057837242736913641548052089523821743106748446176373894869142542511528780528873266056654499049590100466352842526475461788622570092462604905916175893213914658759092805685809195441156801893241310469618610085988526677724906328513777087518263625202416851854722128111638996465781392558484153748139217347389512000503378113932547677213576777489180307749490889106488548564478470822408729669300456231184103833634125008134248655873290368726378133798753388568358529035133004797191643635751380836157110115281948657716341840558617014184866455678012493469111620014890539420755392835158635682882928404062702525680766000977922724539164245539346068659380241782653153183649396554237872029523812207036032282533944242792981274068441642747087733166010400137132169366887451100548391167875527056322661044306601404972127985391744926764098612077615477756868059741220035428025597400824650992486492542606912908963542418029421776623139148115312318697655831764427052080946673096328400659159103693753035887381822044497762434501419882433960087514851918519739152975530966252308655092273583664763649200222490092928490154559644148941114304110163605913654678525614730431939240633877423933861846341567500812256680099125948879953465418199270448824509352710528707959592013613980816294890218596511423042167440531072120959020981046827479415065500708134774769083987662768617277926027730475438429003522328556646999039280233244982888016066137733659956680499766021994726177901705420730421092015988267372080779759737341192876643704761268694660787795177604564983307834189102127053955012159935826531206840845399406330348492293094988230921505527402612577576233162011455954525393636863979219402590551452375195529148205058075782938971092744090287874378768758474217035223943364977898398246418692524492179656706170447275573680092224052482842569818289224923896133940447032841789690421010205172597339948705822588153375407449097992747531203505689343225989119111325936901178935385261473559609530143940666894860409629599834364601681679611980121954443458429975972866826237273429562506364510257740126792823275136352802839588953230896721014845372078804382784749123839900523449506252581891131075264601986013999452770567897220740343744843760526288288460574680679139313685745478189024024638398781181993987938786556908413164121270821221112196312932579614391251480122722151843385058236950076254577331679887509721146848937361110725185946655492294513490345885054691048954160450544084368592609353278077658471497455765915140197384916344907066904042736788844505760002424354545000106700238661105970789314005967645924916761224322610565882012934761080646264406357681064137639522873639315739499592748190218663165477472892130026120943856986610484862720579736671138988889051974981501477584594759846290967004769034738612539262149203032207591459962509162717377686771470908044539492913481174210685860708370426935960392912470112478555629757400131120999014683700626676819723084117125742707966329854248257961019475165081100315175534618833737208653307195479073918065501162796431250383303857978209753370030555273792085020654524402591441521859237867528982690205042021559565380795997738533968829047766551526844205485353579394849253038884292237264797683465072539580020087528833820469991707786563640919622439182275015290885754140013058686328343841525885025265560778981347682181224567907752951917311769770337674625840776621300494011477292264279917559838140625056125577090973097793793229798971834107242661239436004372382189593963733820691069803578452792625580930722259584379642986018462609458001571303047998268687261206401156946443091570862859020237927284540528209521680473184335157633623556653868542520650518203622214465059049675163889451828539951005408294194071642462413687318369927057141549734241598786887859620827562666561603415020818584469266581003129746895373002194679760764054652105032616509161745787273045376111745331429960320438394402842854633867320060762312781029231171683826289639548747408813286417793503565519775103409515922737130352130890700115381000088760212079613531322709756429367651301473359205074073840951687362704076880993129896942134947038499928442346489290221092624559493797665872890865513450826079795582722767797151435907317242319775129596028522131479493341453799249886249204877243655508373765576709831657144216482387703756628094512000385343561697916705286641702709328962044505414759369694809339532878828279866922889997984043317532916773115395101800056085735614876455376222700260919124009011723308599830293461928117720005616601400746186664054604796533619817758213041770998277567802448283155129644062862723527036726151017891889857381517387106959451315689296005935006628189522459930720312552536205915380316997132447027121809534648578276674790611377583881995373448152562187887146849329808731001302476634035052866722151337465688396511424797408647526207812658255535582642949877313063129166119157103859874514237987021611332380563227045452527829493106054475150535162204827905435453715372579187037947290227471706471911203332802017681460626263283970550542239408365307385776068639759740677822976560995949398085230863105807958090291199817204757295821363963517878990460072996843156288161958328567068328983254679674613168050806879465445145054770568869434411315746542003548583042571057954674729167516287333293224098480744707540500814458442574524254932367011005969127632341062636584334196769089057087786271328008856905019103694936885906965071554326221375799118327022956219565935831449863343040093262104049178531586531269935422007411129773453770820564790756744095282204690979498024234911164865914152990532617388656320110533445099676252975197493415482541037164601712681530899499437203860356651288353667895051896154631927330292656075426127549105138966700104193548721467468984669702814937743324756924435181730607712377490885940695601143611881190992093955231867623217079339973081201349986683344944510961843209546289042838480017090768156805874992960929414052453481967283420852748901347187673700351127252884010663787345017419335389801883163276927226392478837575046062889915341698231601465148158332060659538706578411433857595044510468629016955534041098346128125277929822188827624431337315289024234875256096233609794061928830100382239521572919400858032207243826993925674248412720575667024069461035664649599911183812129352223858735713509104477940661816408045803338073040305878242322520575854706480977190699847350546624944875142978987604162310297981261600199438300918640126428955074995963983677490048030610852133506027786890543476005407948774982844646812177362160524977765081259269912820451981009942509351247447860893816420322699308047548421539134206752588823747770240538724687014677475348094684859054303711034321796698620117176343644050137059522906467595853212289131081485890477294454866940289088636906234374773250420618390776365426396057580362549306774937085424157020940530942505297146206373838606216660952128092394873108106291513006948519999275526197377683268793116220883362022730352530007191951082528134185178960803002112673932227941264983984256062995924841263583281157226139681570399374776830800583957227187901041820445548271271774606289527651595073822554498189093309888146961557115871434571742819695388373096036271034062169586019000528983551090626348154170310963608914817732821789618246241012448687279504803951516028352057178472131149995193029014601055822071438737088227133248452329017343349720150759126008324929728521436036114519463602805349488457799952266406644159465792940230753273980000734390592648766482751231258487337902740167243378471836792695861491910423945016874822724414287603520922019128220026286374086806705819328889041148334663697323159765140892016018925901460414300737739661176197069105655572824764320252117429013383141624185648232109522730705066509217425199219350933567173709190388262603512269759215635808638454387355403657362434038251170616330658187273621003127834255608476965887390203147333749549648485658104895468143410388153589419752345831363519843830458916492195191616954501187690823344168999634584696414499434504762412052368150085711588054840409379420503951409587200596003207772375001234572564208756669860896521681116165598880233416408837385802084295250916497971765954438686766186791870760990648706864004599376860607351258236144678261593198085822266063177061907643417805596485066687208820083732426011815888366282235297064002442490507833285565432086114965865281806115322344038295467535620255916218795298771818348086290217602740687834365590597536830142193175021008795037678750047588919530453526398566890620234274094134010245902020515504531349529011189779768874422981187717074538007112584781371654923712989278434883064928731481495803263204548050457367653571618916781810753258439038823981568287598709776976524021945920952131206493798263847648462239724706238929165507034714275090378907827107078784821746145594910456884643328948114467919862470935784087200606307553747454596895425871659924460480947447843340389444036603545899238552311592541760635977076380262022708992736255473772330109896181751036847573700729601286955601423860958593611708008217679469405426819344287220103053401366200965334863036014062793515754070115937807215692517881199995969131619834471917388141204796591744228086942679052592166007579289013533617326251101103902595514391347992180254764447688289572296082646453797989552268642326810157412056712287798981529909939383555463487735360929061195965932247982122470520906908551633551236593152686649329603722196291098226714884116647456244141127817405460185930416480158555538036310223838611128140994995215559260486222989562201157010330401139323329685529218487752706926882633058705488137591855447986640628258974692732664850725664095267635449172745872240117671913622031331747584248637971332260674903528595679486895557182216189204109559376541951677711565049203165012469348679627098982932241447978116150714803316872384266024001890843554309877888080052806926770771384852913777582708174225568904902128057845614196603305374928030460605407194559832316418579149488656228146857198431095736653784312528944791627983060370127428131392344899039278924532645003030189586950247763181873097571753243273393520942043861101354633279782510403582693435836351449987407219406090821032628535092288527806554108699429533052690151669078493670882731627034664336563936327446203706693515977966727018200932801342777535191646403895906860759795130298939284244895125930840146659535720522824578503093368294708128013000990621258114343660137084748378592745534049487143257336173901294846061630342908145262123006791821201645840092582440507363003616100926119296205956653519046971623517948214047468831927478874665513270102044341812666104446632314003967722457962553290407005643835583223738338632718824773812701190113119905627272458626186780701011873465026529169606138647163455875661915032748193423303392280538662470879741060707768530062954740062426636329099061379925618975794853426388132590368414458016415595028113389937854074733305589392425769214148223661268346523864710368178340744874935920312021338173513993055747366998225310153664333062461526845642405781340884652827242535708455318519727518119291722979937616276135249505990408170955790848153410312946325847520478401842551736825191790594870743087976910490788033436880810728154753049137043008141352983999667136016591120043305702189106445115777657127112874189756210595926128637636677518145399321451106231242346620005493131233640734009824329374284503815928486461726574417147444821167261194851089163810453033506763734984364328574521115423873920445154320978730065833031875157025420094514878239396162656155559992761260922514857586635221118032736613075607768483717638369887524097330012683042178383190299027673814980326501932251175119519700435780381380963015246114842967017367968494555778236722366082910384636945817981137615517919690458392501594681410474132580463866563338464874536184329709151405701192256814982170838470683272224558623938722803233829686220717920319068803593428474726425381082155055953303653772263190710406281813154251588292290696737646868915803578416630206200597318050670563261111410171903548900295210575955412663997307755936232995381329787215961346968305150721766310076695434997156534148893185877134245523292429890458177372401795260568294860077577492168515317489406939835118926838843834793680453655042744768878860745594678024007133519340178952406339441683820645499741007135839597989878449050927925581634651553689262580959970561005505692311120521121502383880760936707196626526772892255870436698526132385571498528739407466997300662086959335841139476870503432988782999385865059648037682512979811099746525298862474597058706487322093494236880824146154293041755525848272117028994791917444508062956798535403016720170602637288844049140285724523650525120595066782022389629075347546817059344148346367817610466184511801048995725026497193442055580507510481325276860940154291093429508359537258747512442285436773624585700787657786098096725979726010647226759734404733483958288445855582643126956041095522778259198433283331065332028465561259655917633127197962908911855674739901114620035620718090449302831215735430199517380231752675889785831692896004619308152574961854472786369566568425257537059412918191697264269092940839342803614416972459738303407440760332133644660350033967442683658179446940152454406571265944932990851136537489206868784799391167563988055957343809538151439312352208049523297603387205841264422742469204193416710266233918688528358265418001039280327407939812968127609312248030422743444496124109831710519834972842000959020897002495940410648414999781043824536768785056281621547014497206937179825802787417135884993880479510623733377213129692070297406500270937013878046062108197710406123985226321137973248461825393759698109713254317364001481854919099951072171291227451565992004943043095102110172954997492448912754665104775309138581227417820893110000180903072132419325885523081482672611420723562841997936207909865263490110413291892687859011038009969227721736714436014218599657767044019807465551559686039734497938596361824296130353264741341569121185251312154449299593106638925421719498248738913956103453818646966212524523543983089306099202401005341956662123684651938219013475258420490704514710862129393768569494267446081064207913654856293719838405142456039840854489998709148392049165047757988004318622460872890713070848450780822055989381065962480944853721494935801868513419542990006977910064623148219001848378722639514828625976491927041985002192877925648407710753158581455800984796119120319893219433983242158586865756904056065894787109584657108499438352695257645089508972987053920845873291280563883884991861335877833966796441098236187340002785643988357901909683671225240123037979688402605919159280037678358570544212206378418960532577055428631805336332079633659224169824081966211890634853626833762045742502290677164582881536365967500016682622878130496455715283001801714357733750391532087241356475208884373482965396953706871066580298691708374901686723421239177921277014531227434637433845497258261636887502276465432791653504035886918222957482678875449295751511216701536955621822832875912214417385027273156456991592059089204155451167149047672713360795583364329884248262434697434563545436822301011719545272636390775290431408283264070526055674224973261798730009153851803686971375668543014191661895096935524287528519106657614534042513116199499175635199768280364233992141006317724970908480668298387127039258634954248661453625301197261676509509891453814608094058645587817178714704141354191523211544768152967994522626805674306927415487590069567893504008272808154905022434991859064488638203807054834686747889044141042096620795598268954071417551311650219360971924242141095146456938918053340527180877890370223981802770951489997497221772968190265776383863780242128669659844396302561440511975064067445434562277296652353035243834865328679336331464692048280574826809126755235378404460397385736359428172931723596508992793173529018748832452323136023814812866366953783002357134092920703376865906171531306732658924621801235944702969320260494635457230738964907072581622838562845138950514626585114720662175921309788852366461301402242924571734187498253277852022385897522443633106276931556321928824449091683131821120183632412659499707300896926670598081114119640165620082777773178032138174308902710534305558982569738623226630056250638421982248202137605418742653064296296008061634494939171825768913656216988543362486604457616433260833265053779343647174933752037407506078965550757984433924606379473507346611301242235526980575381302041404417982025399165107679370371899956456165800431351606338575968537911813145560182547064335887130862776378383370369941779890397157015324002900966901392716309433403466041145705436017854811553518894900934176162135771042409176164545275923316476648506860887604085969515471470500992778105253565828371294561305787883167146566698968020307754576240688261554395492075510977568749938643651317406172842757093871594252176368954834861551058611585584997035218290648185667236888170354455183674441269881131087189709392324044372332637959836717391077668901998890423298471096779551319637917730377886555935918408956655319476343541053362252875732140144326721033197465543056285509173434561664751928281382512766823863156547695913834364805704794289001323143604564900727048315816236172935315426313603534954315567815444047003551396093027648499541235109104051264789497113422899358292308591806027869112692381094246979848582471953612651049663442770917029323284688258736067369431449073231130036123363087029857931022179415330917726375348275882214739681874349259609790517239090063295817279336595586535466241060826488441356113962242687626776570013084609645349023470994863106459185847439754012140451958327659550417298324716922881510763003766348098989650011378746200678399095720562185170271805673962986812983791743741688227961470521119219006237252454704336161340764263303503455461946436675807115069959865201750646794463441684429062252507798565984183996941639542025715191522872416254901966775248383007377785625232601521976694036909894445607687576424716836690143980447966271276176771663640358566421758998986876628832301802332870784785620070638321598953199925212542138149166369614984682556981300508455748469886130058322460363288216029278087972626524671846228084922425524348704107352823316344261226451878285666188831172806995134055045986139533579841596504339477906979373694506170361606434945353370516628383601529808487742518104518492987048983233531484956395947599722700294499015859387847569171518745406675892577390166662260367468069482982280414485968374131801577765859328695109354852977720920664458505485928040024369023548309193590145123147597420688623795615343124294728690497612102561623657091928024218346542191587703436125200526846482042582036117396186652469705059096925069827104058273866287197123788893460971938901558242350113625340681888250290035627783001813550925058290551954928703469641499146988124716395709627336039161211720711203524133331766859478928692444022569235631463899930095452858233684573651318216411441538115119913978890368494547657031681948512428921564185201664917455097335615493245418860359614588147578891356954328287269022525725390605450177945163959823033330298519933591403279400198068426560260037791497539615557510115357776666419028350254268717040042317063647612123531130884983804896209311075477370089764157325955461880759589580352730315677247441514438268847669766079419705415320220660623298767597068653194939856382070497346018577710529251715859609403888821281465722269811538710778239629041607787217072779425323852182500626711989741996414674154304724269998008665444393281665173924810882869471446541015004422813033974767440907192462455435813898413149182619356082336195420338342501346149110898461061720948695555396370168333963645297465188417117818254168820395744434081352899641345171676777164239198838950383717498537213590983784441775248260354146518531983505580947750414766044869468145360449213902460191968053189086305730377426075924348655086759192414729510748443621928608980814326904992825605563218908141116352788744892884591799576710658475157722404322089062273034594507451889911596187647968272120558122945509751088597973668832093188515070172425663133800595152525069744442417931095129390297217497127181160681443803165356127645803578247224500947280865863329939745078023159280841051826128082775492869383864327559739688615825586396668915287780399069575206927454491785128315474747266941732468994386810736210348808146799606302491885147438102300132275519205767028035922872803760304095147944730528567169891739430307330005971010935375436135649459241766254947943984446695850932902194510575285942790824826784316411479770309846222501600334235514633348200872878433993191576244968612789388247568471170738008526299353113355346636233247853191265561709649598203275688119250347456108671901485074111449487480817338345303742567393548760516612425011446526009967526652570174638604344946020772072433515833057667421702084211845937745694774579081652305849017614971118403985134679996820224308077668746450691889970999598037670164624097672063209511680494867674631096848670258888715101033495325538042335947555652800060354811022828733953914357155414474262886960919091043733176132344740438033927463100168797634269118177658129907982450607939956626890382757788989098997233746097846470960539229009943116095424695203444271163732114060469632910469464513610679482669190816856222310496759942167513993547704086970767454492585634714954261003668398113601056700525269311886030385304907882981246868585501255814175085567506327530903216169699758999109277444089798540428899079411670700478872847020753379513034906413029058545850856823218380751586405881022678778109940830952989740418074852567161154766998340021563324503157777285444616701205916689569262293217669526166510981563045896014567745427620233534920429500482483512961930684523562690464256232467583162683141150418486101073802194215647724997990227035906035641152317349950745617403995805321623051637060829806381132284480994174138686327334657735655933545276866929794663094339169644836248753582999357215898353303925272795655864974296564328305524595760346940055979158178337346698422702723530735088790610471603182141127923192674026766926054991101998479129485478246200431169564391032833252002074702583316244122612844720996206632910043599571608966588129868953446307208527276739356354268761277327417701495176315227800242295558674908992636691776285009664366436077555374470180943677309298022262662250822499328558514268286889293904384836449671918335745740416849449134687944313081974969767201128217658954238459126648881085499821911796860407503804328339989858270453578521464571858164217858445294008618019720693532472985452084593832332328166704242367944593426028515577045880258806628458123195638283947043830674901483752455484347403688840475429274139676812171055760762014798883344855269844889615796127334982196378067732357771065824392507127870703921762332492874852990548085380953783897764135595112868514553786063104032297920009991990959653675961635447435534658722260040509778682561099678279528104439437697075511285689524111420588450251661389327439001626423605670607888635839974047981802214448221913263215290963500358930999795864454855029994378081013365787998992705315258157454065093504450278423796502643981164912912183527603228128186112342055905980640371390144983873878672640987891862182861565023383589054793531407237983417474607161728155149909164374932636476310749312717775447203721913504731846056847806642376125666840095934938519769707943462933351648322522008713463571663003014591391864815776081799612180102313660725359809702616324360370713511078585143373884765605339314304140882915341358105736185333993649190721689252236663064864894247516239210875511890855826877599388264193232092185131610408681404050031031344766954881160038439788976396108746838329877038656495228649318244282421764940145494959595690974402767927342496873713352384473224679462247846767129276387498889241632140807102497008954528715589037034489412673523772532157726357998437630909374331466697342384670875445732421514427104673544028770575574404874208612215592233730771513839870893032401462388536062470418535571234117846086937077771978603980711285553754440366733641923316361806886284439041595499878985836325763029822424572436836320354364362415679827897368279315236282341181083824133337621596502214495155953003231391531308992914681855515883671801617915188662161592000245355138206689119872802482907740167544487780279374002731430661253742528646931765715109407105146946334115281938433597901015526977484503841345824725739622585125367287126130324562794095241066838404527915452599793927139329969574101054834761569321085558346072337759174463440296396690035904532473010379898214633104715489174418246923427569424307102790402691822866212887830556131907854854832699213245204965029787671132457753555227058178722670102588388144926832094301056481089542857877296261159830364697578911639950147721540292849297703826220963057705933044833733945682823516457624733183547843352862926867711517824834560080092215863764931509901204372756902343223332456380958552401982464641326260570726114771184673832884486944485531213911373292512253041435189692973053214910111228339387732738140566759738076763480867474615449008088361539939441826239721537540556308579134331533051943106283569735688603245718183909789695731924433774408344782321260972524929451084807604070895423634591346110372952358753210210540331147492937149340571680349179902038515795249339022759092054050376971236689043847972917504686401926270247089248441478380739425690357982263388555724569155188995645753856146100288385304903388802798097489466053310878761758151128751092752224682154892443065688016402694943762413684841216891782378722867252159593377403761202216326048811867751817950150110256353697127349908542432191160967855922450555229145419519582526043025664315309979329763860635375904038574635598698709826640689409307834253784958841736348296022118305840449161552519176383015973699320707523435887293956503579560234601644829037285738697064446362627382410027311288176797834844040337388665384466218739596996511129753748182001528878290824083173847307982280076742646784393588034544565066295921258144191484856972276417706728672409257383989587139515025143329842197631546320294626907047919077473342966561726173495586715149662445496671424220006855408597069281363691670686186502330332521280995745548949318123295437320888054135623762926016037219027280681041854066946196274335836224534438784905293841358572469414573766847498520914612284821134254756599698807167547607624058731314587508508796108546208738596125726351978855532698548431650480439888509929882362588164766040286317606440995428438696164040175419458568489142187134758227373705377184324163662942574139381438664779644061249379130134306445420564086982070153080656998370616387450240877899920922853309129634387072000604466285120002491697175477227053254299847106341662359191631019423821694200486310613235778406985900987307882807101309299366117320394456544200361435924835616012290185937033785095075552773495428773881699961320478247321952010189977234312160532794444765436268785702528672642359769978574205694946647587568068181597395227092071448421842881201903722797723126722429795059303652275573067997336398500033359536289078729395751448304709472161921261357166437709574153532463271824832388044499186511196530657121654732267224752586155846846412391266983388691078029397078563005146692620709543028671036573852983461886083019078315611359471636872495517995343563121315967607505711237101881923303237047742390836465741676742737604809624300800013871251580962389653130621438961021564845255579773696008810056041921479646627925523610503051062298992214583221107294415920414090324779201097714659140256076539698043191029058912578830015666261576590789571806521449280673273362622426646458593857029027825972131533970693772135898130723104252934116127393408677984748657446645859525632547437283384492112450400633801370696850759856287068309863483853642507197343841666391937292926035211787717575499251484298749932386223075716528819813445612283791875180895938377053712553390018919082082614074042055931356007619925362901981944474528468918236541809724566740805650324789569445445245373709208673939991748723418361318416246460908796800557812114927765940435795583634286479714351775771510889978662902105938610718760972954451857232838116729628804578988910297265124694889495154268128301341226304569897002124774286319623712109150573063491971981569904750140243764246947404568972931340745139962864363579816790998752745637765399687170616855411785538851892688360654634224928225029030501823961991896148196506015315710743308656536812179523575976521911245818609415897921165240501372569913923871497518693120968567787906484718956697515657409090870811431092380368196599411701485160548147253872497426552282694484043297190977457397769136490826205384116198772892927654465605785762118329613709079553375003532630779687798135229196140503685437060372750851399192304753085024976420525893349221750442148936045264738018559160970854516199493046948022726898733481095283465914730970724861684757387086657177696407483520144167659505999997041091108698825879127728723815942949642090588858118772700985952619650490410153519974551446623819229833839503335846073842317035367528307831543547968226509412780585704389289857057436944362903059668174320724578607593198865945918324496113186570532354819696375522868353829676627687414041179195279785447860703867250928868808798126122516958128216694673027574914514404133969629772543495803380612906764039540267595575324981766577582183781576862211529700218764990850470279378254243891530949855230567603996473056573804451003716221270223630053573132289030301326432937335868023771411243166507894087660400023789147798661882603424349812251429507049590654873033590903676707698519028533620895690225177156809856156387430437569660731063374145921895057426154331874065853778696180833798350677095815657507686764733033103407710000457647408936190894577549677936694771102142306960605357673694614836108533771464548303465694320994527393374398985875380510537247748747587874275268166429759480102201924550043254158178923735296482340252449914169347260001555567513087215236547183271734100245734185378299899133151482723630092311690371333393662567303189047289994974203002002813134047443382956137962224589812618359653230788901567138053202176531495157178013422916520673432876701125179083029335466589133010146307777865179837761477106761345310974503455062997671627185501431771960636891278044505660197510694548206472484800051127660257849424205159536777431222063362471230312101277824083597242047766277723995910036172134254979205631412579911119310845759459670525572968138335237590047918514715245978786720892677760649072778723498837877635449409836347135423817053335707551124188537871837033438603622200830321112182429554760217757207832893909789764802243003463089094049123642121373317220021019494708971155686611820579673309626699470008086146967335796905488125260374401728606966975055371789954429847333788440611140007933573706138125885010369140364343559987249676209469576298644724106542027259629534114498280192490933373133551637506781889292655699634577202344665059401677237832460443081063754278527850926210939421155930610865668631320682865890368852206707143007845337462992769153379452586787059009731038333226667825313016105513044600713569780982990649400084169221141859114287461355417317057598896799867761876889587318394032039286694392639416824955277886618799892727889615498724777456049708202371177062009927731453754798423338120093365390769640321841990593903668366929332224944193891652310381861480168425631053221644288341603921507236082634981781822049516521326539073379164327359165803231842151121386913292984968136389357590577986932605125305290846882109098809542761000032613345844275192912840627220619509319377446822540365521344871511964043952177466860336783160619417100639377946979962138416873605454813248357967561598367683131536165336782087984327101959609107155233565898510462597663532407003760204304581768539623640616401754253436212832784959201586264506694200239479278136770502718503631523921108643274632322020555269157561965016695351811873673002529980292535620191182327834162420939861090063096177871094890334023667361366212890639451941651279840105408244653761797007036010220717374027924087852238205897082527046581693346365478651862583270552540725713564538914142731731585214796311111172188170274971315998703328893158287256439019297170045946422175178235235581567652156595108316162639550695603966200087456477354187225122276648293521384937309735835704335502267289921565538953198111066277570704398381394257251000123516903706577046181910692040457910035374024099602244481473695086500164628487989050413116181571807865808687847629554643094281894824344284163098434216144746400374830984753157027846635852341148868181296767809712703688991407452279470820900758170170768043573904767611372859747994652246376842143851178488904474856508224097570620866360125977941571678029235062965456614958059255565533680819590484575044240410719975398108820755042523845162823371614679821714800679593441152738855403043997085751741830762389175310264357105807116510117958503467029469095804708817243822032639838505157670019186343123022058233311772040797633963878684823472955624193602457993816551620856981961614373178619885266904653364123677628470197326573771086345566855408378451562507679714178417013112927183640764802762155918139822145879004136690687675103365891941056154704081156647441589807731774704546299322433476976136841503111766720681084397575860786427921460654426690956455731434847357229543956550263830743248351222862209462263284063933742193183751183092940145519703112671974181202235616780310781933968360691080610546727906782968397163578729250745367148261869316193453049354149876511285150953661149961459684915731960698439381930636566585651040964797879082925305983741548885939955269589608314504202088839144192941633503463874367907405227348514009475909247356335073461196717594709954091988852756851890174800082640971569856202329415213640720443348744941226644722948105125798708884029893710706873233514703041840261125209476380613906472178998139672724271969225925956298304962654618381789119470998663911464977916710819368314232840621338469153754264638885100805326879610672712082374387215670192512012891139562014040386776715835348285854090900117686884299543417694274015731096536936873901372463179621038536977406517203291536873750629859174805809956441551263794847439392189541382676967770455938658444114437710038767699574583654264258311311699471268149350600240738128344326478275601822527958703701843642343276787939587212388466892596647134614387339136979736511845286714411089777018749518113344689014470073701180568160431724623654472271954306426576486398141238854350920265940563228717122973454554396842826243216379292732567598433332816743119053388057773608240869734754418169060470033646796713586593724569789032005169687540101420000478845974230921979778993873876056343022312059319501430943018302330865819013292968596198852605971245122805739043128245534924332401670340116169608371732880663130951893750840180216651400057577011649596786816828348938548516771491469883946494418279844987962158916246818751857740224212309400741610866630883997563606533879433016785771703934294195327542676284369175870819024904845561655065612110162720937895788900913635582416570112799341209069102761242128436198578422891946386693318971695351690139319221479794390936359123548855371923903913202390557981661151851192624232269542082955938135082263756420060386263844401057480517252687586770334066114358021492218722664515597465017407167109254203851426880976154474556745263358940925317515405673997485140881597234784762888395803345527684970703284585799994222034214004897257495836590984207916798190958498138188862792749340417122369519558291211999529298150974259022163930091130418577840955311213619530120578637689791656887551987476173827770009679902317013951393690695784240070591636465688766373939887171847466629727928676452229013328643047360809227148174873087611285761549490216238337606303247692878767647992712009472202307139911948279807268176127151232313113922066974513225473652386621125137069972277362363548024250943522040284231054943854930352193004765972739425113024200213116288016628069047834663876718629551390480528260151217688866116482262270726199870179989799751800723952240437191360415662057482404396851763448478306926873764359763368587937760153257637700554066734922463483240855726459645045585323270553962005383295545440358036887638239401923601554209888409166827933929482010829614690591345135179272448396016140971742619649366379579306554235720757432388113884543303254751249268572163689303255945071672536919494662310502659086063078593405893145637708374301838918808915558192843447048677911795924083202808764338061313919797098987122429329404088475892034579682595045657015101828639983460904368988094599103863347736933111762512277350788779148918627521434628300794405147952973632217991443953123917655886390423758889865098872642937625558904038480448679151368893399185021310838526322125041634103270983848870673450829388511089126717491855464109075577230287018207313510193902884585358740876441252897309295477119912580376914538099485320937708245913076140851003677340916462590993165376534278208346263647982057532742429704511044725661486932866592204438157922981908217376239714772105296655104464216734092173783979463084130972482765154687325236364112833812196217318112119138582834886000638834134349266760550374022238309776149528645535140786205312795753753277865331951732118663279017194302268646313042137645437359022375254707918433901561331532537353674267927257659276427037571755137389154002382414882038898801373348064375005024460624295768589697481383653843568111686865504673052347205633502192353934985498887872166259897759405008719157430950062549641344565814307406018867184483366025055302710674683009475655664629518114334730291340200638254469566256719341023480051458242630694140517305872826647449086188324890783119425948322535555261132776180559385665643414687920844657209477918808225979508367519014471162592020150438787011971973773429428640424540000687565325531643169151475549281135030850019034159905825479092938379172421127205579796171301540371934386514645002597035383745666096395061346192769788334693359095076321386153110910939969579314089789248772865077978852665513627048089547443780939505305824062602800632269501445665583385763642046999400352884330200150900768158659841778091697251467432684440465774224500206522523287832573976600549093939301259135748964636095815317031782967359578637464345291211255273313907208104143925505702173787274684018946007460357661838901039660703360308787449404502105287804597719302779809585247413561049738982679434772375945197118987472748062118203758831550243794697774825834035638913937138066325920809883097083841737076338821546009099390150516031470792083796177970011815457502700066698400077805147693982260968627064747129426481910194251464571903131319695975149487145682011511327405229435960862427560138140134057032352518809067069090352330726941022460757577295273198887635446873733630886229546216887709533838573372485976958811724269143970904825389640230426316320030313299110661353055254817552105733185409122567637638178445233970880903951493735371184982310111363220514031969724992916073830797779409108560504248524383363227731926845436237270650929843432717091705499236387859605165148053156324398289470011199293708166452510125525700172438271327326086500598128451789359879242765089861965765136045886499088971097892184340451078020269592109007994902692364487578474472187593417506413193980870351895114619240792730711685965478234038785279373298606079368511105843000314644378756284125132004999672071041470063681746114746516364090703041549740143432431829927069750509090902422047173608334174733540324439266241296933130885488762048075870486479760972802312624572078523673279026552275476374017460540929520754484558213625124230551510425011976500894966877022632467574190173774095597017747365266747790846102704063651767434836134610424479725536173031012420884608421990722468929178045139938624440344722397669552190884636015382500845567862406542244419096585945829957938462548252489940917143986513920856118470217322139066154575156715754209476875240776607956890864165383569297565516857414621863931388574314358555784186994458971879352682230746479835243737535613647250174295921857413800164469153410036585087552688279619351137501819464174791779844822483728241843426209848851866249735887147511944501424860169816025134211204157461226775054243598410211932260776456410100195543111541062935534310411852325249579878805431514038138851009403808538350381830782178009213591659926324361012922600043554840103609953820714336641436503834927441450853215926894814763996803965646041801991968599055163519814670190543040811894346988548553833938895624108127312672027736906584269634593622821614496155676040817226479896115829179933782916742540351437467283870995706062462627674496694882854709405355174198140097314809110681047619418105081857266576430964519678529393531538118382880194599331095782369007818123822803444770714240140875815027769825222846779172433992116228158847890894143063739642971855729654777985771571736830538112018954133397417378296705767049152042498515046878329884839228245794113174888871844888947279032695157516846446929992042337078680814469533372753366039828345015066463988106160238577612081947966456485260769070578094953284679824027164933896714608354435267814437407466708016156347161865003102313942211094232211706272728843253147555570827314712216718851187354693263878499480582056666097458175985310370720589652379524919362846390312974076997558368453061352059753342587209539287615237913969873567340381242162649158602008220175291864717738593280915030192984581156172751295518796923835981073026432928729105896910143714561915289450152415451617600726934775220617269503324934352277283613772251921529769499055499056393098377423282003341587295107624879780678686629567654573615387690429502030157659659799445879957166397231565953816639981549269642815065843749657074335789306019212430731693985566174934547051005691438324350554368636479363209140262379241826913565541722028910696270916357828189871099822499960473904779989587040118791089785528564277649237573220110465636914844032964404068759870443273487363034590112708467847798071886819423454750894706260878529597741929703423725636368163894791392225571702684044251896747781899683694123904244661544333547564534005530209518221095252150241661356602468246764119486286405639422007559952396119067894946118990467579274862765994242553326080335472319050182085990892602230028743084499825269920793669219489286927961808469726107469356144671897044584774843705551294428510107084470861328227889656799409067300186963932145069763842285830828454733036233553986762002684452103591077571750168983943892683861820560119210844364691516959801955496721116308287719304870501316754088164131189621216862279140546508367588004914789578692773089593444893922330619660443327617704976310693681962094800489745003460692727938294146758337014919386251827914258837128133371508414167806608287802334027449135948732759135296157222531453275921082758158355831428021112189837965619725008855461043468178992621817869220646172678289438945392908181169598754852309079181463887931682734474402521718145734903500784913557123615883431968241954191401700880276138313922013120557958963323688832014967760915476566825081137186876023119550615045804931816020170855331661792313196193288177552661343756955597572078313369755946142973365535864736109548546698000124414343212676176158753226979334687784573831745027705758040329550449249627395045514533023450708602624424869632285729738175186580019942501202119571313995352073215568256591994950599787960601424621622368069682969698865031247761319564911973083987705560613982801458362105325807432537423736056589474461656715860980901921890106480281245624693709134809334096313819917907048334290810893325599521236854323715583705649036145588685843094846815284407854846261993257926849643048659095894305766780977568347609506280902345845971971187639477987266059228042620109545766823579249601292360332861324945136801211349608936399871202589859723429044622611942700853284883037367199074963263525091362341306896174225689269377994153079337697822138917935948747965575717000446971363806031476302914248652793041341818674439232253104942688568227164956917233451157537695744210101820119892066571024214233414982394918630866668596777924499175188397960503589482992884535025819199377414873438132407511602709410412715898864034219783607541287157680260695563576725146400754498896016962909837070369158530304914804477394283344312243772888672924788892903855747114467276597275527938852676618039849419484734666378198643782433290259315195736501100994096627373001204445516424560599668909434847194825772561380674889674295166520057611931007305200565842859558085138439383336369354396801248350439677257455077058665550003037018683457399380294559076977124666235281820205316053859315428299547337177748441150414267248720450541574796429698623399158902058184151150935397562665221909776222766926288583535842373105909331987210046523379334544005757959356261603850129645107869247338691453515742496537915250211612231880077419395411000216330482587134272109611070023364848036921891506271522257188325024430134112229727691095150283838546959148020220336806717166386729216148924799282498276268835293732733062232250005125796232511218474142078004149394097631153034992000597170415811435453650505032784794441916560977698025296841482061123568535872235903487721371304131685498496794151243324878712821446186699304444727195860982212452000111610530356961554142983749997428902729133705568976214366007012764205176284294232978879498262982655904539129148438068284862562088569367999963717200065091010465476225157584660028901710988549509136351288464677862508706694582607363957204528685532404792463202598892376869781666219181655980265219567974035075861346842508350552328734488248720165716522266875708230778543897980584218446410847941004035746492762749531232687913676686458828002262150843021861021320351078092777990435974710851835722376452256068376268655876835520523662231695331402586490526031989901134893697391534696568067934900810805722914688648714111231887963783851574674614617243397632557178134322171021155835287709330244382711302926716117715766236505873230851010013069859681601479777593894168021112008104510636441860776684911924698431393020778285929664715032851187862777461165063244998877914320411978847424435635275641597487325827376693513443168414721186949439869684505516038924937224846599845036895107068836760781520346851456884742367452943139190865878918036418808448914677317186176906095800044797950849072994058159494196241244281735261241137268132370925654221016371604467014814409229049023326150124533390721644162431030025943314262367394160215365330208969982622310032022245349297462491109004118710574578144505593864683764089022576620519573829780609761216511793913099860581358459316162701664811137889292145174392772362284506929845442149145022142825857749507860854433670804726249164248615184520493897911309127103144145211271062936044965267769452828248542031340356717644660571167137126288989744483699484120466260412101033852952577992360487213460117314568329908763448979110537682421399442768403417580498839843563562445756309428907511190270482157238338009477931776549386909817631504271537543875793547918993437815900311441020530478651196433590046722768914226033986178473679046386334164539576737778601146085449328353119460962878534323271778547006909946020927694593242692127632500315756973000093503272238143776963432259116188199449939990130582596873739644531094357226385228418698248272283300326816718491540021700113009453294329701684676753097338516711836993069410019343362911087623913572230579846428923771654895247883820609061216740439554921503681614307120796130098471395836771767616599072005171475300862200492894054512236011789117024924045498149052947465345526486839503119261441629849050114612175723245851169739779604441186281169774735099906324815160780843400623460640539910386153979143128751907392987987528075724698881885098459895102850707372757965402237625828889037671208585786575644608043589255320368084559701484889646223046251358623513268210825248834124675293434305000590496175475119330169624901205935201751101954737436237053303891741066946979155586519589842012151461352953240951647637445379753794939866701637469235396052266467156906967984029846575289068867263142030011021549918257391718796622033219853102737475131761893554907333069688824541834398410675139649649711070797720379455184397945981764561861263821362196829165533956454187817201077044995713372225557134287712154125905413226083926131086353776580579624862783304865083626896029677032683236494375292608010220108350891280239264297096081376975859468269178766425297507728988048795595519545137481219776522417591628561594735657793379463985407889528852920680458533861111748834565422490885693418848251065172300547695648242751770904894330890072072854133777171956302198016223025234877551392620291210296577709736192046678600608794156412374027450917851334451102305429415120086211387403985111317849523826504395326627767103850029849682001257626650194110868631822162464204383095195874055466329919952751229440350338444431809867938557292979105508687273161436816330948971421263676973749957634042975971314854827967895740649703151768909561604112636766998421007423152622194594283240962475255021176983008591483351459674332346047375334284641516200319295037562874680806393562822901257127158242754157664324554093491901526940930976606904843094536778332220178330203171874060637426357527730137953978245057488594534384471238563306586207181872500296913050087694776277175767974846175626399462848124800721780585594160539226801600175971421326350062706196529736435012974419635933621431114495113274286572789205520062593713383764923657575257394521536868048541741105038716175564352370516541217516663036190339897538255331475119382414015116497559429558498064807662435233293679919253286679946135964210929568548301553465451554143161030043327679145291045754775412553706452172220577840430986546671611015185012404599714253397777339958415136063376407132061993096916461390806896387334940583109416920532561551238801416844104867928138190539116675075468052207695885919101110137344268766947449801377482445303420310533929861628392677014820725363598190798289626313903713564665941280053883669185007916340900728258250960558838123495973052026008251149689421959409367397028448553774989333742812352026265156187894217456507468837432834275275098117799328165100530463657718791634176583999054961213531130514183445739922509269270681858143958225343875475482087196904923255331946822850277810455531190158578365922523994747513972748779931578580802320121215527028959121339371045200423167679203787298715445158684984046690972619079733332288552844504330923118723034227758412480301980721935094428156645053060026430498925224635239219311341213007810016380977110518456024387529890542921828435405381469537796848660203719330600284599786793546285598300922528640309980200992112340563039785851196701346801935394974728644117465370227564323111204466065288010511841653592062451010314168464885357416791906875924132713194796445976632514346419735735344575458219700272809519601561538813191969433927317244398580781535102835419868412034751150614391146043004276193941088239737929409090794159741131314194747670119403235323704485568484675466886312051737701052677521859186288354910061941104770942727718324589681556554412625783495601007377508915468453710665664890321606171455160453802828774829255676492059916627005767719661497764841998239575111110198972352572817192590544882588012421388825750785345663778531628951007957792021513565385447098895918810234077208794576392898191948002962841242083110496230013213437073476623525217776354567639208045848629224383842122423189373108979079637104372776518390949034398747197613337295217990635793697735788062382387127979563845500441530359083636004710171066293771033645879783669788354579423622138321051900063911043693229133504536003408162962615406126807550398093304227163342223353363869522860488262485057377821076210656540479871629210867651100493305375040620006670851559589479193091560692982443853130783673488469850563176618135682314291271371879175490394938500604904618200784715602145020815781168899325036281532811695614505651949703098475814621181969952907601768831235444416211803225862000784311606994052734950193751837605200761361000695344985939752982362176379124401619792693327146672460351211315237720872535973241978311761005165028701949165674672681238253074668486196908583853445494937897472731287558664549175476112838999728704387957053806266271282198838956970748973765475793424279451250928254716821184791934455910905689423535089674634480984335780064404144179885683275865193968428596111676882187897135733816388898290062918515000177597117143074497534562854325292555690752424795430655642192177185371958871217204986257465978621974164058697441949584616106722195847649843065875715289154243251306749758507201789302292774125565541948650386128115429203274969820151845977226144800240445012552633738620591728094055459844280384282102078126555927938202758368585351732440425704631615297124859353066441759251369229602787765590617400763020656213511449947839066385149708330344018026601042687359536094478525977365751408218176550861128679284070880459795023955889560476619429907812000497348112553096318756309544123541218799910900207292771945985415746594302021476776351331783459099364978190065170936685721940229275822058427659683515525805857022703530523490428837479160106724983009419862722676552868139563076682220246520064153079252479097028175591939487088948753357544765116906802633050682735082639359562347710032548435635979497665515874893384146065065961864971026892957435892138803453635801487037048563210667862372977641951145669256386094372245997906105092854050947298771139767668439375614149913292119461199747922435035860163405236870301482090601700290264136603724886215954211865035291890559376176170465115872390879787698803333799015464150923968482953511996442379078909711768800194352571072947976699701747054157746949697175784660774597536429328432001160279036343651103152887502892945460195000844129783782216943786085881531465324536482420220988634320246927680588073785285086065005286361645382323309072720382743310851402209943523747017978853890589231382028372533294945546492122896743592671475394133685446770633431537498618345389880157670580857592676487050222579316754841306377698877817205252524827789394240528136033974427931041975926210107277912892406750521993671048351584316817618794742642609426521352715269552224856297171190153927036350685093241497418974400608679538330270100661164526113601882963813451047998633934431903237037986697833368407740249992748119421846251821281717651119319101702149144820115802754177460090503730270780096561809720794606709174611336427296748059702226215178767620864795299639418390228826356172188193558946060547964457509287558875196125566324158807101745227997856103287238971970303343535436980492080687268850646414890071878041712533480876090002662009505625361599060577390485539689985042219906731385114805860247985732579929333423910362023718399522429889753986698811623078317705618947779662085710777587890994066722373672655843575747293400187369959911564461601705671168543609247789483649163018719307068224676243321352816690407305326994712432188038301483852487070554922950133419854975541923665628648416378191333864689649787870890620570962852079136569381032055848589625963069648394527814166809604398485123550811846655807582859012951168815027216599663172257016585857656236153048810003320131772215112402317503164829052379987628015008053335730358848538270022160774958326086541292141632584474641666693429768159377061535184255775235284492087325764454854904835078254945427056430224910458378280872664779926262683527230898197632981752731745607678480807612098531729991729197823940592352085853934798484599529037873274599201277720056638840964194098271499271116337150908655606827934685838479820578152129491570685841132892398867713375112774433344157147193884388428406361461528635113670221817247597138605254629734388389991080247879691544760958581109816231775340285218057084498276268945676587075699342646300145742313556648841439976289641470046056542273161295688336971766986273284429220922826846856775937919951055553069001274632962863617100588170985004378938644497211869125545771639838733021433988328919755435932477682879890414384814829809194818954635658453640467097196987601925282489892721411205653776022843641075162133818523678065507783276437502303977049605408851756625086215510380119711900558788672254591513192906487793850295432112987468592640568844021342748461280179902668095290041945609490973123725260053506678486702205128144382009649828769154861215405455510510305705192311655966018751041684535850966659832886822816054630837511649391927075808595628616783479985501637519105923305699012406923381895938142490047131610252436992099366205868978375751544543209869588315560445699667478795434084934980114655016715328555815697736742328118616357477858795601010997797166548266743323685512349099131442033844393834990402917760813956493766138619662801612794635900660873680458698830102933225214656399990686809317504838710828703247774752860838021711053580263668435173739824881762855273486948287407673118211512212697352831783009429795135951094539474598223682277801838974072189344854381836565028361814804724964468172333946195087537025021251033693384267217074627742005436633583943659258823040892491049634836251213814109516222304380851941397025820117716830108867880481561163580548595439717882692715446194913447808439045810105559224369596189566661027406667543348640080627048656000371088947814843290717318806307275444829072192207974082424879230758230058344393116380608035759539842798178255947714261913341050857579372980927561272193608386467628476143323732160553029979667566918840026749277748479221971776997013798278145550288904763154884422033850582435347999738452088608740724949248284282894663906166194310394858216503390262650888278068452095199380845705809561051606934209931477450799348995474772443268294515683714889814385577571117760324855912289308378315023875914392719529164957022665870830732871757789277537339484858957266601129459380189371714972990865869831112334184797759813316508942522783962719442372467473213828820997570866462304861745768171054073554349529605988959814577626514220814199253405697319694185993613011544660034287084871239108729795191233962873740698696103898172541860186270709299413512881062048761893121324034637110042364298194181213124547967784374977491028483024203536989102240167299240651477484169592938458643483592630299556226115156295418683270572699550059733585353449865162066184182648074240787072420312639462725573715506259268201549029191924457482711925444059302058101028740480735476221644128673978453411565167685540238114930225055796702565025512540946396312080550771159969385020126722984665212567531796760266153704614051905425154148682174111446937867086695238925935584940522783358486349806069183015601498861500376402030639158617295508533072297046705267946334400448192870960319507586355611804546142178926111993278366250266341347008076980057316912789671610418339541504679808443816517464406495750802089197364540023105788808808583228190624978146819462171274841538134304621196065929566455756441283188094922473496170671334867558293861932890338527561693816243534762493505082998334273363309645789278630805615437901286779775485570501290510123829140786829942874314624755018477218746433900223246710619374398003146149767438073566920119699047607983455132240584240149056399823513402674619834078306815578511441870879441070441940203058649878857329684481431671925566609993698590870964183027295809219740243350038054787339617905242208079855095562594833407453154717670424000133822537146842047445425018637225830202499841596492783573579318218598667738124153834457807615369278066237228927562679706945509783996318703899512254339569681788527914948035644525943023828192874954000935122882145517337860281115661177450260738980331541687687149675617155015934889991740174081752934653560987572849515558351874517159658162893392298869774173211664827599403319273192124449140001088477160809492891165607037615237065580841610818421964260992263227094945292650775144398103147156058628804122273864189971198740778797607444472217060956756543714738104306773134752877513171992949884373372929076434541485333373033206661776387304968830773804569021349071561716265992247790309274170239390827405842664607767655418126297445507385572589354452217538469676260918006471355398257058141250462114650471570381548280314430455892208470344079428311968694835403406511719279164261597129142920528933093775254743061964519393073601752267541854593975036292002901382034347902341053995699623206962732609585322365444806547984102026321184165596964777741525033123336799621191529425308459064034749377788672763861034297540068818176510832369449870218738872337239744118070894098696383509929792887461915779947744602392568746280428280533190534296347325083499421548638341864651769710752255188220564937735251236033777778125149666559612182617664703940812769480259115544372658859931711453383025486847916116941620022559903882016261525257312553853703332653168997385531894190667672598857954260065068151778672930369441932096474635492978468770475809829497541156603279896198690939233111144165007010605919448766497434286550314931241416126009170622055377333741496324081662929622919630670436734678151756910989536498473634160308732495167445642295682536854374190804948387179322403022634123256748843787623140886287665461371749300783795171758819320833017378054651959715556647526031309868750649069495744727772320140118804198508492657042181284848470031379526916920904703248139258752514801656197193890478780504115537318907935240582906371063352522614929621205312512133573504596878005102571204279222308156113433541479263545645481328262281742143651196209381816426928587518364743455548815495737815401945742340784139367588700511193768529047259360247140725977233404869133170888836861389013255218637292842402239262483058988678696411199369813530213942835029543989302408361298646787175120604548602191804753400960229816776648413085628012943111923492265601854809048539232432280280881276764036772313737192788182412944782312255262034518382381218749183031502412980206191769522983167593806169110738995303528244424048541327718252088164793332594709322214325590211629369544066767341907209753080059349119593555409942180182296110486439817620120269907241379236790369594961569293212186699515470635181292555307180940381741820198655819300104514075879612881741362504807590735486433238177467610250808139662180670360237333363060423012299356150315304343118451357362648053237763647111007212730265199833913763718172020999103872611361657223707467598435873867395503970614348218045140425218071754641080578561151826249188505479709170272141838732220027935909584062634128519890473151706501406428128394816649112415141179886843065376152652623697135882887277059109641066406550708550938626626774231153454238684923666940571142695746477785348870869909412401902299619545322137504448326537353393350760918802963786540780895627645826891521480232579902189676657151692007435711291576515183065584783757615496774502226207526300442056996913563128083297476105552604978537805306924503886643949268631560722893122423784205667877728984716995668274531948584841973714589528154723939452006888621163648359678221834158277310544168474131624908596140238744537916230484795944426915357211475627861119188570139283782776751773632137190847725338359239249160266304900303568877328649140278450512213010692666079413982292522875558925169372588551301739306159875528608014354786745556904267705547597152415949272722628283905715516870158348949818007922140916315053184069318046684430092965418834948687301479801083298950889778139028620281678577228088531338527705993470266454627966270482678946130188358918443550507742005556462484034453276055265785640430282371966463628469671412824308651996641909786830789613791522481765619851761749394143626271306516839672996526646191589203620652645363159281481911147486503960303099315337615242405149421327727733283313127782523869947208696243209894407511361713998235692813195589702799203453950352963802713745202243910114357498436448002882384138694912501150906912924741517100717834173624257035656000404080040489265976476784723915014579008539764878744479799154308947291503927146483290577514711744080240482589661942240911632721115579818268889715139798841651516177442027391979486563592545065074496265917998259206277052756062087873424597606358636224286325844325450359321799864457253816862247717646083437385093247419566655366078552572047900664585466460644950042188500060369126357092034823820773624541226675206734776318404152742923416685494486457172270035099972085889596814720590980501090603872711003920167687615757015378339591741744580108679944334867651254306031047856621347838683297278731089349666052061477678500177698489526233853206782175998270849781681824644621949151881866855038235782603918588672575500517969098799614896176122422934560681914441818942214487566571604472912665263376628091677188597984641173034377595979621290178422003256617314939591987764607042770634438042151191339924543964351177006790486284777897033183948655143724104037783429374552938340200131228201974436152597386612607274782822937846821004068745469520671379090997439618913231226874160363854316821628019157544375038592163095599233382505983799778088277624183105601990198293378107288638732035225904968572904468019990336767008516344417370310170763518249431662222185097314946920384434840130429966617489040483829163356389247662768744677052558280770249004327373383250029550902701150392205424659197745266216659923748437827544623748557331047471750943554557542821975687460350466463795428123966932815980072913087429082902192133213068765426190395249513454800924193655407251349430002205533492068787666793545811330115570390174778358517074265912525904462621265346402962690959840793954204327620416494455575900232810707651091518087832392043994977702864068720752207053202995821446478552856533337887448969955294496498707044559913250587368550738901989701769857897553263318191813332487665554449848300159944842563742718638987878284282844676624456740325969741522097520264483578861095698142600616553123797827389599941549036410564491775889089417276499165821413660210290151867678534404238476508180846494122608905624055179831879109613610087905291372674130148080710646357266560260766323540871723742912426373426578077824882291714506345701108840358562618267214706426989763328433128118568629235485129026143618807231676521864450634305041126856167698353462037869396355131665527576926775858560139850831670618353200037869638653783409868142741922387190200412000352499109582635195217364957981018056892843433427337440744840647947262873418303914579488172398701947504872760963120026309357931619360106903401761066110865642140018446732599105023896966119412031156762412537854637149068225176060456244509047952756454100818781137971506657036544127301306240596643457290482567359716448743706661247909623173654257760824019344414715252545451819950797761443965194009942260779449515272526930237157394373390556949691765329748555851183810973033071933597226470178544243692260852569641403416399512362324476617590282131824133232662487066236529800491188172332620547775445486636220782819125239251414256103771446459877788348369651742399879021635476789477659978692397406131143848145600553774364758486525715216487487835037144893580164487438997877389358535481975140312557303549792721444830703203616610156555390777981745386342953367186749997172634149391264322904160740571684339132536351709782649396846835906141614386828578962683270102701107354135483893447688067347279636095416669359731823082078470536800107582720483711333478423441399329559122689472372538990079366698865035452045702018385596495749607267961537281766879286862232893878150978660273099883340468415382264550892853694933567298947025179886614529416078297722775099630361404676331829158828578016714932698723228376930670524866452580514664411127332147843771260117597617468390215063527103880944928983152731671301255267832784378151045903711589157441420548112459811036771491305259882328237514979961368375187459145671454305542081327404640651213415502671629314013938789513265299295644295284118473266176399749499752721880659968129387950963058293653520338647869668436702446608774553566768414401145477714833040428176197344342041401637276645050074673253059883027039942542638111737832932842125212787641604750627843928426559200361515968130028504150714707044621109236549068499913653420255925869761165884426005447435579315264981996813726682572071248284636051241539553209723946378617694226848156523495012156699277264835344365297688292918445988210971711748086209396691387527440193990151012464234193626764980910085325156702790710503594630282285688098360618746737236033503487274848216126613064158614366677945118788974427252526079890338652787795531735438108484990973474293176160574909581302861396805140556128772373358260773438789638339686264181502514736664310988214253090733857693978154832212292814603285072093320476744915899173769482153833004724859436048310878776618830696858329479355498512244891560871755325637433961196613804214709823187608509213375291628983052456845922963498712009173767450937428505543258353109484805363924899475094398262364486584315191476236535568878927040282618159858460967404530544656543487250117213406351342596904496624014858283865787058029953041994722110881136198378040202272936930145010913736568475500439145317537875485930037569561120435234585411459706917595393661086349998057461726523627070860655020032649289580050005663268497742090115726795619665960578340196091716952121600555249546969073483430899127410234983538811824186721369441515544125650009558648142034447788207608553839068273198815439489045267284701773388228729481046747407415253985657520464903494943576566041455933108736732431594181905528032684736191526358438660673517444166168166183137733362974328572563360628469291342023685867595029246404747611740643829987282826382001249632406765965681138867585145522993125860558820979761304167053379413986234177817870456075208729653883696286069440314030711498149370073640878024475691566910934878432684460976805484112397861479373797576480785202364482421290295404127853219022262465527423866848008185791537694931022477383491595791820848239446106063645262658189779865689643878049771427527122905800115455745946571738054066705566085998630066473076803574817078671438456269260761368645686084169330849004679578659976816651137401384945024608676888441655992772661735559432850538974605566307625453836988005133432419017275167764003888978799370224547424139714293854577046784744836969848580851069331812596413268396680983948720834109746040004003171421457995483001554590853406770478270301543497012591795289703976911699073551333987813843265174628520565151738072859766580567790675431692044870447853597086824184930176574507307858602967052126883853455467520755898708983276332485115928467554780585096922855818920313796246163149731244529906553055420148275476677021710935868940092273625218199122962659667375127066261329452180778033127516973635017495068465387107722812564062988064561756980404302151527677997753971945417344459778695126429274720517554394047848626822271233059097339632844180550054017232809941315894467550009493769908366272793765863375410515457089422472922114492757281885581590951193951706994727627193680497919306725174556257144247713642980253596464916738266971194680065843571329086997843245954720026737176785501475929770908044866519214506067154373268436273087957478979697967632804278061214550961097360002535463209947501098133384535127666832565464096068921206841163627524993624885227592057113143326159750380964821361765549189606220820691138037445785998031275560623597834191631087174258376889749402921557437561283539527725320197197926285657199640337656778221983143816605616792502932947109527674466176749070778988742931589958041353174893914097336857581633724222337734286610565194440004043547749775943984445832944471464425977468175179982551254773044664490842882138850990737361129250452163619159085654061544395494523972440647548353724607076574411899940726172584929462575682829798024055881705784381076295986502863438159808468326985832530147637294942078509102232171958432102420833784232387929085432729002888249842719675087155207879369975814739031630839366560535581097059987326870460249235092761848501555040733331739894251075785730807570934584362538098624446994832034161431008791089742108900991595863611634640302208972342879284816431398721157175806239186168187813447930551751857588205970738719919930993431641038846298489499594764996018337374672562423310597573224362222714851808804904792855950494154257574053839046689029009153818176448741471540652113398600070028875937635629860778200954556587472418391216912117346516741071038583113277440482086165035192818955151760945560272126536272040662643062113201003382738041841684434276816456520335536028261837360413088539066886576004326430466878791792379173573864491063939863306475325332040289335518855966661200863193997855665669515323967478947992986034506308426694584535579053276109290075175539085203379171552526935966068900367912855183588799116605400262704414146917134941813917346838146613257434408020982462066238721849629773660110436027704479911508929440480586289493534610058979609990635543321900156819209177928514487794298333944603422554389190603012235366861766029923954604336675558012803973003226218495211615450702854289532603099686379812651950393555560221181867419069432877662437754569727193859273766566880038437103112842660054970747477108046077479499572148098900080735126227364944955255649829033112579935393465373946341445533263056583970353461440772761747028685255656031477095820510027220135164200933649366666692558896083496368081142336353146354417005463546275361628217479802563923199029176090863698265906490917846250828826180623674891562929357798458149572765929737375865479686439081445863526598471591729645512046059529306864995620221383060614520149616969325006942761772533567132820705830363587008483425979843733667773732703296484553196740299165520235403047857773002512568709990795319752989257467928633812007139103504993715323161887127042071849133682944986510807783939618776582367546934432176961882048239560842191908776973243167251675192173216920177083799211687455542979894718166808769096772458116169556614094109606540413933693298056644797711071187064990874385509350160638897090343058875324769261132358458557081774364407334121082835091034264894834185889678063291089109389871997887513204054059325992882229851313266545851791070192570290133687739882453405421426976839363657102406876139647717272825099490416557887032661137591615001915489200837634214951852613730590123194168363664830743614726916377835245464975910582791349508669799875857364480225173187687427379287217158574780287719701291590044883200712418629019773237475458397016706331558678603601363425867399314787509591949544157478513851722381939341289107596376121302293561530233338928579214065297849117841122875250523510404671661558637487559265324190650830132510458136484178355246544021027208631514342673529023184501505129193755961708576236961758291989217196802599164716369754269432552703729406912624377288887517431926454836751830886056757604219513030256486812421728782538413408948199411812041323298049589202941327303063265252700683696455994789962874881007967254004705371992152908515135279216286789425401831802023824546977856214945306108708807152945233301640462214534504459957124850621787573877506681655461884170539738681194938347239314990167564959093327775253834068394258545321419197489852388399572059599393234051751175285165215287138843337857856792011804267558644360924281728792341856408175483666736101797480608984828409538436842868206729248268990207540909117884589058604377528962745968332906496047660244683462498217100593086449268048618402650885342559249840702549669189857528029953310670260133710500761503232070679129117054571124370814598846736314870843261716131734232661183421594176529148405465231959165224368402942562959944845067916860948442097567550666562550048581001554157151352324873065534517409307095127894336480589701631172384640292163474278307115394584026684643193000962005174654705392197794683699084105367761933170020302843280851738673557705485538974194373868576613571679352151986494605556397582474604017704335285930825671097584482410818794585259548180357536254818177335452591456661953880744406028927143028846288928526513026573643712114973842052841863849656169271636730977365742950422380495043719287440397661867342050255871077997102191634228980945362413988351012616586265715856401857019297022880377339951905526329235121287518366310455012812033237184519209375503034823722718093803905574616574283304593674348724817860785801163134315404918704708925317766014231902815092731933136016678549861972846217013569792168073984025264893416709598550429017920112739079730765853384566714993944073022610145011162016091498958159019415836682869555108855460597149617640604075089892624720810243675637134241976445159693999198424270450187630417571475662414698774086096288794679039528454108369816237900085574572560811418272891930158888578500404202523867800536695295770303861077409458178224882932477042384210433391013903446866224274653954522070777928351106445169504376187404408936216836435920990072912483882084538411693370281199353270854961398007021681136600907374004271293940492691910609599265956096235333361517535832531936897646287571073285460905250168319381504225415086936573357742195284771911583612369017300504273580694393252518967055470707626013478542738596203921244958694161239184099831199210646969182572557093505173046513269467773989557709528778960472506661495060470821935502646425475588701894788145466972561441358263934807803586666792581527525867777328047260504080427781246518870537553585383000231473356466439542101193228846881790980163561408064262607348554095832719128935919873242923816251565769286889319405282482738783113130666295887308690787616461968631007007846619000379739867360081760527714126782514545004391517254918528903549693142560871626254446039461788663242401569483263188230043237475386036690405384804899132781205346384244671399693432940176454312169560216404575693573239639716228611133826325825017445081158385563995413583818318178728983684953372066602372614364495473744809771207430987212948598799422408209630518927289168363183138933543358898990796079726936464244967990465350991863419512958382382433728450075726840257789137133330022061745476798213001964984936323972462403933003436562950286384882331177175664429018038336641092106387951388447841540024770942394669602878250114689352268148814138899453938201215448764124911210145223549653082273381652743338731099314976947135847187342890052468492739678480378539570317660755791713176731635133130169662132517979407100030899458748409386655295258935879153943942177210149728515919783755074098652989058921015949919478803724145595583640223165958149134270972239848954707215402750780130307090357092160338549734091305016637440591387482547172636258384670517412526448710929258310264244163685552238592510993051289079114337247381507342714826917901598987778356359466267581761075163802485846947275058618050091453800795578342320425325318772803279809267558870270014256223771813222313856236681046263240635706508569336239720905375902322100885202454151247057752369094030123918954400970529372123938321114432900345739402928573659860934382522956380201709113045005249664318689211096095163234252759370939992736985584445454007928089836597781291690439453377093388201096773645819910009420821961880094118682383244090641097811064149430700640156692423029287258803540602144918605784738695160517213421508085464140183406597376049496616970259156511808026572727143130278807149894788729754295787624213499848028980230923009748870320888637548208102913527443509066574214462737983649485360341959507469435697137854992802034085358920094477353366377640658916634433438720144387532595713942281403687201551934616378497254005715521854975373978233742505471826166245030332146071836825740346145575729038135757139888998007077029243916045925029785776927775364662575161279859459590796940822834428568625533804371628239824477326332626479191397213128783522766562133816660980784367825735762987023490723505114733066715216057298318830264950547891644697999669017148627929009805822622488648243025671006413309046380113608835999822434268816389332541717917959858545246762905126577881000937012772512895788047984373242350109048119991147535391842536133025835984281492168177146918220920780303613716910467321386462547920161113827937346656320364240973667997885040393689806704337399376413779290741262641342368612873203017247568289423874671309507843954273374795812584546373043086230364655555111073650143536553302023950838494935771656877809009426341871572902181318738425988187074893898761128701425760699605413317680642130735517824135599069479399406301597999346411244090447463127415589177218032076574637951660938729410779683204363492550281254219329353329373238052371694178241074479233645362318413416274862532051553199013708815160045053503378879297293398654332507171818528416004638182318741783488983868013050517366780166871331559194156635615038916282129200306864683557000512470096559174945967095074248223058193665927801082921123371429720871289419664973016151691870643496588578282182179120296400230196210340759426727043793750191220324749356009851737042070567125291902141658984127644419165057651554618327192213758868509035285343878735539584902458755363918442032291858800907152012386047746206323181463306519266268139673612160634067406274022651937306870866957486808221643022665326195378803298213593151252653676940227287504055188850780658904815951110964138816701798908428502068219382669447440627656124362362523574694314586642293069742456366980116170910421868712615930368096960233729936624027919560337218706708257179502467573220605588517599031726886159352074909825566298221209635426732823517283917266744335917980902608043706785098460297185326519857398005436383869599674624102106108731440805420059944516673688804709226874212696000004250874378715075615133874956792557786539911236237885485256215928123518465403831576502727072889274546679934883101753075167401420204654606460546478054834387791905520609255668566064303620202117582925137969146797266930061572077990872615057684487061472367553310710782977118805140542266061154553825504423376493087337217780176941465047938250831717552781061849113613447978897352285804990754572236512109408784577715722899563150981118931683243022167797742966833342642986623063519129079087777231336258134667405038450244930256055514145903003273710362652238831752747336778879934963605562806730565201423126145130476355111745469410583248129032456602342233182717110263631387385835483645324764797371490949401684937205091375226992065436499471011133857327650527160937720678818199554497395488574477627044296108102505905269071162334774045771887767231528299374606710615313350643360512408296665102272918872906833646698582704961679289850439064183516116748771507442791824753770599773419737169921604289432798576134579827864127840303076842197452052564380974015263669940541100373954573851923522922872294843772475457703516753224825645289614291621171946550137642335768724803772696471529103482327467526891032499691372115745071157607956851256550009912239256946068039319319447256982257445514691200311134093857846797974656149997010559305038639876661702000829227500890450073951487622450349995691904631845287624026725087214906628599533576767169110801908081518354559072135397039631659333992058568976757786477322140690685717743188540309079746349950757683643652802105210361228033510504628709077736454923043606363487207840757221860474329254928476813098162581285591408123591835580824230140483465897061521853238538412459821450748537400608532329121742690154386201291192289395476610260434565403121422284993989572703903980213149887226295589843777345547797521473954729310016511295709484401240098761141186423400706996871009467534965438010406795752271612908418526254725860642455194496083269517871133604540709032585011712768957069558189491975075726390351380415103009646325995202387603239864860812483510021169746002527151254299356980602212767736614645622030838893162629779754510837663691841240012570136937651960213959392048962064726883589590495275677287536627264976854308479070891042178754429534626767516256377017839400186398302056904354997946448788169762189111673088127989758415367406039917864676845313230391906174644362193221827052930120648786388411413492679769684142910768174140211310282787602953204229166791108485034440820693288148536335901911963101735899331471358883154960614151697632471824714012759731689556802913929664682129971574925802185752477255245501924969082801897674793827270157417412851782004858479585638912852180364629892295038172468819246877370576208511752809880001794391408145634328048785320028685083843534271741435571246238656641042535022021315207376726952254379889229838161387617796212940569631472673917353951281325414200143963359616335122149552401691333811102983043368214715045304822277836132757479406809772413895634765592665969460408983259196761606004035305015463837863964935520356091689722620766976116247641882616437907742425632537733292754879572400918973371200464887326723493180274765813690649456655900900066843245380044375114179372291411264030590629029997263644636933081031360775755178420014549359728802360952481236549742544549488268498251551578420614988861079248614900891233071733814627973447992532366634635573588979216133531331948166550764054503534179299982134602840157112827375160127948531850792524750672377346708042439811056970012332902690231002541224499801367632573548689374163847623645112551071777822578268841009741825066411937842335868986101941799244193020725171582827492483548125388524341642111966087760967186016286070279800347426964598879710333635678376869692317997168630250564510808320091342157084195064992438410937113317910775709752760471183298774245284708996322096201266640169548205700943178089415123676415345718501897851945770827143190075423434803002257368563296583048843773203225987202767776129221075736156443875464469262052624707355574848821891793713456911742736446344319644337558485638187329003353053525677267851462335348958375331414539608322532068348333393651645581188288838392140162270124651501620471572513210374954502426415111768529424494907899871976190600318823564173062943200161185804913458148400844337043609755260873435660903754965060434366769760433340124945728764925332114911071986934351833278910014433732642298519861505801273240518389146385052733627884966033296771795467800733650051403326413055612910916614650759386309254476336780010415005288193258962437121927640732453527312792941426785748341337114845988485224614284487836739717209909113324686393168295856117407324406625799359130368892326852423469308779109157431122304876852873706539719813200490350685955209316336170224380125412178576562881053152096623408674429258831359992484611553256319980626135681994704994136934746577084698999711217957281979748714297796708255353695693764635454806835382497943466403779365206940878467123648324080131770547251356142746606641417685688817858099947578433871600750337888300407894674116329078240234616245960843977791030641992010996597263666571901153915441784764300820106771674597343899835865958600797880267300320505373962623473912922048677697629758442317938323208803625154157391935473312527986996498782825361788864486832160843722057205299203586123028172124521276475865761182366252059885200518739038707045860111294940060439064722196857155257920753957333166784131483135019107117940583450044185287972043979700077088537282068328275681148326110544358627659894886929404843826093530778117729399856404236193416690622993500788066910014767749780874391889351255778916832960873537231960193203030278268472335949493466166556785380078662869952575855585742000888638383437908611727916998208557915621967669232070727633881885169497469570842552206471229255612024801274337595747164097350903423805369301288181358781613802452175903136607301939259334908620010137243054624018896986480035883022065538532501430545892528103381730213582412424839564551164285679910743697176798489844808080475297065982584594537973775064349220183519410885959742836392215542377298264920858865526897153134257614209445396697528781515841625303962868554643205134957795935231928264720633788079165261620715394235970920505472292224523204083145357644891304321961457624527744867015975831862137611074986082898546885918488593769090121278592057808423694117126154802757985011063769338574982819904118235161144758651001761140703483677329074261980973324683184386012924732627663774745105756039560617885569171279145076223502103766183714882829525533000311933965513013101783466037067091713180368731003087151559143203805935642012228978012587132189269766517500316174235526183405031134432284859432249652292543897214943459137997040959877663548703177281341343201365879842629581594051682024870038153149218229115558277993021392580274713231867509225367309030232692579991475131739207155880699334495271955636680743797855303832276177682339042048622339299661802180538843191785153119801100199631051627741071581328536074298020536866548238515454399107717158858458199240946152188415611673747494149423242520093500774577458205119236241462220239985365500763683985134472944291125279115684059237014285140249543180161037200247663705847563306262399605080201986067598867851292373467470165578265917461462010402225433214802858939863112284838727900668740103818615082651694645766339196131099144104842907177334867463912013341316909487547996431909971223920994034912326554638974597232253640890908989576913636676692544340400308656292871565647388775592254513405755778074169501271773236806756721389329152895832600196603469072800947646468073610787244347275130574895458553599031846278433582807179439916483655617176489837671426742027632353001847456035400790452585927671685377076226369454790430888598454142980300531974847485279729308786362202167343876754803018030688388675743077334927732156802686833938587922185289544880483741551155775804423312718848463572186376331154269091770359721415405873103443077901927500821314154486001220799426908499762201069250823070175428427271508827759485317195388121495636917671951404719587251400673797973157672989017084186392049217935469279973286982271474166073773517928958716875236717020276030022798728857831095602191614238491556079356623865117192292926359830889140647492715109782211891268452649341582757667618057552604279975065648737205110253597767679043906576200133086624949244031108877544306663783470282687742985646614659522782747528814748474089302679739532511007620979139251899099876062338382685135373141938000996217045806719515406126299964995658114066854545966835207490579149870026506395934805729787553746343881589684236664784968421637563428795891426040553955026098741989878082688356259254115032728574500188347506524287952391033031362267752066091922181595736141140241766978084001561977880088214566565487469978569150104620441957833412542649219604070363166439916670312496765902714812920777272018206848779155335694453415845320424150728763031214347964039508159797511095156917767167641564335271193684056689530816423864846048652609474864140173751180434521672058466846415661708400951370312714455735539779094130571392765971613246240499373697255631468520919178793476704272104983957636575087183794829002832767141858425983405078177660398129659234499633781004183052906506763130258522237446346996973264486705959784140124179862220430792498237757524283969550290744951240690663889090303192050555550543465274550786161384543599312365241591494150315713653991291754659369968948228454773448404567228598095598587906932352149725221857804637523630822636335223097796745846645127451269989707514076095304823496790867764846717204610850803064979721120874566411036856486991371343485010286017304773975801953709815476098642319975758061763565947869464655720995689038380610374890642866181286004219955820282494230445112722455492158126830642054969066466720020277895041675936891288810810717586095199385710926549425094077579236473347279581536946901134139727875746093492006793040535473294465038717087270438728500164387029737147653270162118134855849229473661011716191288561034510086838722832920630077923351294397663904855165372807425548983585075030910917351304472696884571431787045431340156066451473377540256266692354867025697168261817932997403989577419247968689345147858151439781130208821023709550617711804862023638565964372967363939002199806254274572052536216818966961918408133767302298589608238023695209154286522803881725009172569815324730466605756060521521902660864469949708913128117036458236658663001120196275832364207629204841164882329343618373331970137781229412237767001096842453100625325566658608739738257077313289053981770806642515033367962785084967185951112640917032904856177854171573777088241477409315304039032454611504623943286156149016929915557071872445467943417259109598165017376309207546178346649237932479261147695242719881082212742230082947672816579375522419218352148240068842421194745316736514776851238242726644027670783963943938725002108327508282895155484473376642029501981792371834772303749314401245929850513931140177002586025554290842251868510543907054004938239166641724055324023874201715728228853297318525803493956738261849822676864540630869547462690834634878835494543812790360746286996432086672288370560682785722997466526470347172741489696560872227449404319432404014326462422389343070489903898231107499725140810258703693249354992215360639882266081015025421668501719058061910209158096930035130668319136737226156680988469750841142893884422840086601047880809958932558170465284167694165257280088280369287333976106029002745774855975043599909838307570513565543549532784132047016619965742179146969000584648581449315595679723358743299393068372560076771329497300891929631853813370474418607115605818229271465806155787677988745664933354566272833123857167264935456901058073181329363955283476642564321621973091554792206495480495525084601186674382307705159838370922947584044513243435302130242082860297384544407110687783750656592523327896931789974283528424475910440837070138743751951715831152294349744211509702826747212847669061016836567696057106574239337711932531528679485908525111395635779267024859953201219677213634716424914341714293558328696955857607011305670534696168346069510467174431626826674543565557552309900789408620714767425812921561966348012828440588788463274456270466597931358831721046833416430632645882384217067584783498298162178126794821044961437226460642423496189484334863600209124006661482337569720277607734129036507731808979099426742268303624771606883963867786332734812296075797836200022332708540204747959714530420019553687980878192102131055245729271891397350563653146666586122681912947075894750559565772485199143972365011655695951690068687981253040928240320988665101723094279564059050789200249132536853730769033496902278692761945711277559129230879473287490461417092159188238096781633924132160455558540374947337190567003526618893662429032389323733351440073341224700069972329643347120949706737362454701329906649279179441571062817874165800543511117964117310574465134712003564641599428772514510791606063530002996960323872125867567837555518217925331260504840112166741024012690228259783905149536138154898113887938189847394346668276936109459541937433461833920822319848758301470208656096595009878473686824603070213020575815017335093169989916556493286948144145039572939750536694562256023371796164882334668703151746653086414511224936647062509736962120081082898480734256446369087799841226233595655105774888345910063048169407883795754153767116229160200599231796968058781934540239203432986255753821237267132392526239584540565490913781200165764931892701602477377682555934158470931776046021542013591476074584259818169992313858125354243512613375490406471451909621679236249262662263306457569088959979084629589761855825389451896357665978554159096624879606436456152796755315024595053863227147991503705990043168734106124958861274068283867095350768625397628490187569353707441842621818893608150411858179333496485537165066089942463116633827211541633835082373972792094180380295172126404067870547669472417121840796147012193048797194719705380882010020502823527725584904516882428881979841936636391296072220653631823005980481996667206106789469640870870283931699140707595998334635979702879977639999179817795191025328279004918025722540244979915348839784810995459553477664206786972594466605464383208885500772529788223148266198170374739437013065386298205078088082854964960855921340318307730462834014058626510996256834847787011540765724524019441897449018268483752250738930250388318162912421345264049772272467061905805127286595338775729701427738439844311761990103847583441691406748493359902279633115348626200011946502761713901189147605418052158024001625547264125320793123361212845049191625113974562910577966625809376290051256572536654813707903593216575182028020108044324341978503184415044335980723314783382242316956022392933445939575771037590170143520853770586729587947359940290093370407917501582896132408883700084603882251509778120874259994024073843919321380434901569652229252545068700134066833999821800556179514339049867684830720722207135112164902723594685805807634766141972632577413165611047693053590250865948278673852129099794077878880221150342011768408890878166112477758912147824908823678811624152559529601216247383008465633011643737023729965798172386168831397349335120598285953817813602128827281994211624686255278111729384970062106323721039501990851919520512280029326286149273580357114405709324916820667202608951538201900479330088728901522440563840568731965810094557453568133492321627917872625672269481246961498516154127934614982730692653452839767284330715859086256253442753017878150367120207430780477572077075686576670689798208745850334976761717620297516898950722930316440101504233272897526828208720018606977345940903890945526585707088685958367439192970728481539391532676180797551472033461319004511976671640738653490443959725085338726615845405589261757471478298568850264167482790455419340015438961165581602343684810642443107984387927074740105400777460865680832601136841041860272341061974803877447439001624915697918667399170373459941409246018930500082640651201954272935411283890252670483010483800064671972815473629394507541458545346784391139652778666230389566281249809691125404669026559988192676067768641487716700876488770660575999842302290926268608478308236326564347719277602194063900534263961857522942294794684618743109811041080284145103385516393704901170162711322613886899948892503361755890410539278586724317784117517106178300858748830044080757096291685408753284389391104011449551506716547873269493275716295294059944817814599295666711697446408645209633102487714900425036447675190320855518812207814596504795610192397302749475658146879276807475034912531383240267969448048289502978912559808103928862885891519164607579898183360361730698468144161078511632651886738837428722895675884754269621439776941155224862875552321651652940199070276315319792418788799236090049846222707069218589579783310883732111423414017597645911352662505436218907356139652025801872158592251214204168792903426165227751489582907120917016715922999450456989141285466942103734580649634355996188955761674195782602652730803501644767686465624400335681762545649184925504213877334161740365932290917413893348688464953912869123065939590963739614565765308745376958272432076708570460315656782684781546020506719850484119432893621988545803225336680188465135241033214641859229436914316183274653797015033862572169512503609400201415434496375782113726160464789142289897733223682710881749628638831144899848432715063342353582333981896211780957324639356620531853222785473473116882994770004379412883100153453590001607850643772033990681581152001805019346011539335890713327133228663975139223681937139013929932828337917318051511513767869429544349651902938589036734165803613149805104491729140493212205382817661797602397635483319930248820517753285393239438579881172583936777679360586842811153010368390855400004763824063970193493168374208135662497890010415209183781710115285996326558448072031223865812648486503260881479629074362354482902704616301420277475800014220442009086659327041339272016599366488441208879275742961072104019021640128248400338276825164288127336521837458027870092022435658507947814117396392360618661148647949899733179408164898004145361082579652938526659287798169130863276922648876398010550007983534916689494798438661609709374321028495864565002726558655919537963914742539770401859662732484708864545504569044768005749138607224170847136920091278811710483090575946380638582882287820390383220706305935088146407232864846056853853860838608292033799104909278752521778891924072375289814003299604765553270290558230697534686121055525717732318142199012147264868152001565524708657200340959710479115226342599100361903403979934523743400257030155943150659301796680594838294296925560968790162849326101586739615514384376381812268478868328189439224011685353364976472472523549793781415718047511186640560087425010927523385272725258431398916440633426149363482263343355077458389974620161540282609078837457236864931857514379284441346485197749629032914582004739292972595838749682458994672798091769488191413188503905743178929523413465088443014583173468735996593206824538437318233635932954087807006921439634768426770718341388512834364878045119970997246030378362435140214639336594561163808673427690985219928839303011871838763483796660376048594824621097333990253014815419159692401772204746577169240212727093440300917530649416894705271887518255185507119936261587983213497300277972686702121391453344412930837799717885263388493113237608399394791653974659811058647961838274422621029585700146850717292594657116412308480561511711208190180426688664964947069324332431633795069495253169149559735893150088207592197945446477060948528222102440927486621504569069416856920684208431126828112359365151537804544217425636731001318613361448300939200444202781743354594225084108518739476468688752493588937471952323161396811762100029937812441386768278486988925334210608765277840645657002374602777095382232134986320902231100130320241108440983316005888578347356442982565265313170295016693595708784272787336816763385245086388111582545379321318496823756629689470041960675894069311858577358124400537748324482975757465655220075531764402289735285821907965635942119231830271838724756994459719989818376214705182077613967680569035249213877169587274702196479978894354196935010627462478413999851126441017101102448294414736266461337033506041166881271237407291389227746002641244662690099774024337737582786306100697803572368646658949250739573736620785474033066507168309618059895189894592081072765250599790527429671111069950552055341653128923503321972565579000254466343978309047021167490621420700740454478212060176745798396990566157065157267170552009248770302870710202645624466851011014525604613772625878684118088080508157549746867716011922249470059314782572951169025795811184938089337948157111674405263800980068267483127303947651434479232046429684489585861781866294695885040223478135195793239551976392530714418371867982957359185319593171743649691680709543944311943842528945763378622255375551395461903301884164644339148466151668160188281513387405225598694157374017832209943147989214835189158958439944674043284124897013629004627640878888325175923810357274568157396019364433194794559086725970620591717435514910976280457821110481696474190614886162905955583107262540723785280563037606605113919953544894463141921680375631258480410300097044084823837609583846815126294005371903193711473397064263577009469398748085117183639275125865536445018781868147470986911656345438580415856388307126176906093807031131921195951077110487254448262549097399863471855882636940399245947603531078877502391363825527921534545212524951928423894665607357748378009448166173267527364674116879298670449295355613488876379164432166044962109399677289530628778701727328965607601348636619464570740647590465533967785052881324704956734276864631464518213249424038164451078364193334676702782979551402254522714713069535996214788183529619587478173696367264483392455614206679837419026287258502458783507440385127869146254221752305412317764001432685280501737797386865181788181977981266380992665662699368087311279006722145404066195364244139947639603988972767237844212040393376486577481296870819134039444969036806028797611266262898724192179983798816461879992194411010089220347268657780014759339430439882604695466801745117106809691559500125786640084926649134685783713417834890935721940024582416918035930635545684729775302648068354371963436254141482542055819049705634993075583917610586961483597070202069394183064175881749035796673958986492690961990202550793604720629533816446871893168023138316312406469382528060025292453034748633951552205209336029822003306438749049744010651731849421779449730232900123294985451514053802148866564194709205584334701223338863868815199321723235326326044735096728203831403654457375468530147663265392988796256767476188303026033105175997203477913555037448516347453165514339386466445923961057483828923965002258925260009505635975980268781819200247226091631561524735054903148995968382387107645306760261111952504135515768260487263691913918111873471939506288151842298483075849545010274725920462947577489439698041185882039552890594577470770592388491690715093779277090620767625812805508511945868864349377286861139422851478884716937825880706855786892849350954416341295377417089876497699381957496199035682524110578127353203255472820662662925549913117446676355746757861092937342647736875571038971785360652671456279153029487438850834610515801411380210526449299824227150013330650837300636071140016514630901810965470366399366750840741369749225417822748616134610330985780834101557949168629161889076736146321903812307371522433845096551118963088821464293756157612045283256211045146739913666645661696787097868529095390684758752451206083513889316713946134862884209598560528474027110426150029193534015953436004385353935009223610591070477132147723637936251161753562045556973125215502724680763396373268582288746629188384908140932708756098077908245979782220266056537655377904977151841432758897318319573504515222459026185472411484757693956884681217195518259717275830524457061815473984585604612206982289590232353399055204010259181223856963519076271756270528587653957973957251821032664154426968492274197732756417604869659279241720188839425184926932003270086455785507262073703483323330302168195300691684417299137467841250650805397310320240102460976422756605873107257399168132681708838928505906074642272961502205164532203161168868554224889307892475264132617741811620105389991094725769202200745460398624696469374640391863112138663776992210379227697782826684213130796126408495768763076392384964296616697580034518485760639013536854339416302495963253907662477971808107080574251169925239221532032137709643530786454022007640261388659639730102217497695825635876038155718666322079665068084101780468925231085809889979913454344428519842244222914343521531578130923469381372114542076653767126111322708486547883131389298344218522543794717692150308996480766992069383265315021787609845399964299106470015895441301972284864374398771406415398839755585838419405178358336369013844756844716011675520174514288505390032461278205531836543602539755597700759193109672567517181737129248394508708979210015035996375658768589609812036670340723153240474823899170767179653122545199003302007786793543977481092286571561883371716436454345374354093634489034511950829297638036678648201201076355824203512129103922291211763079010259476380458036097745652814015493675324880422428839310375532408219013443018928248765835811843959317516028757544777989403011768655173911273796464004979930725776951872133327967323741224366563426473020204155249219626524600738229703767466624867543537215594820246013216863489955010705279698699257523914612286541387085627892366186600407305459457433892319769483040447167048099214603420089709294950670905610867049895894188432087241235863062265416772843658200611893946973142541050615220459387133626228149450694431739806244203252175217644514306532549665572221522091731091697897894701772634135753577337603324840162207757554571460400267602603122446033795166443184337234611022089520532510791483297823969896127881551338399362554283125885207497241479012687754875021660182524037808550334578790058808924644288923246906464772841976009155543862776099856791233277956794846300329751010421574188801004802713874400046101810152615140176537082976446776431231687004249612619623315142839587448673967386182361041405479409497634573367964736664893559039757839259541990548924897898099267670506920298275464046551467810015311972700698876227087253002605210265473523960960947076496703295150824674016626421368002693222020486585534996841767774052364445987010509358700647270369172717919587750435917580225381274892916887994020531640805389990776926735700285355371015220470057074513967071263504880396629500158889394152948434142282638440233531875169455041463108070716112161922524314569569559973483889196762416064094082852619560436899035524856061934904192008270968749371723965209626796713188254068936213962936354908574490756668279926035583478888874866424126868750684953215661350923629717553762359071012801253053555826085742016860857955304177245596093294477597263079169886789658202266144292100780213303086260282004501212077793923557358844481267785879054002387819387248235126467563382495838621510618718354778180272142020361562782448462805058151293485503132591941860779925896552061213548421516924579107322940228316070350637675764956380715808590268582050812189668874338067840709180379883600897800796229235357646808213246776159227045711663330327192903343590678124694883988338061489087705546703411544380735360155751004918505863208713212534809220265507924697536646422071119642000606754124285304417784261156974506737848665439400584995191223142760730880978281800800189543856405289069323413878564145446138623341130510109861727233795513824667579510512205416167799771652085521130155769693173357305711215026970942462444388059190801791982550928164248818433305165395319095963912236864940491249981654092977238356845663071009858401301913954118861676997795070342585701822907712354733801292646547521792935494400278189893623362875264943638177993207870537970216014101602417645465817686941685404555507389879987329021356331988728489194840835884328206978591721869229592990991338940806972452684505112836181560872429516234031961044596539885963546901248813643422324119318489310840343414083687820343145999132039499524616506756477638648416811638303585981595382593722875045202572733112730676623911458614136660603718695525325325683684717463802427702973754953592471583137680723760614246268437530323661786602449658307713286449830837832948967295024901665815731199434833424412858749694119270948472311460450762761922316082079079159315534754553056383971608616721422789057986889881789451809503844190600768698214331855300590870051113869913584894881305780031531978149708930175343242451788312483521009957255336561398202039347158532186949657443887353348914697418215664986141077094164465416254970135304483830864991158096126755331762323159502892660371087282181289690305082023532510556117404173989953757552594016359928658360761385096823873669867454487136110058523766198773489933032901613164541274498739813421854476425497819235268143713466020767886224665421211298948733840401050508765938541271581437275705342236755873838452843927118019390269553541264677894445572995814720394495393837687899156481114764006184140936088629003795429853134775445479446493194081640639406743308227740483562851693370606274945226667959970536776966459083120923219539114853764569324350570605275926892308165268503221379897427907662731473081988922003703467593682586203955866504860846035745717065035973307220909068730805059195599826737271669214776341100295923286085919696957006551122417086796645781454416534050765424661183896250835441083914068782726121544290033037969975337701796996898115153767374478479818328233558224247381324632889741948664673008041383074816290050196489033830061403762764651025637520825617930296701526643501646112086930534541802264516341029021672022749617519559084526219424763235944526445315183520620754569148023113925248068421701686741762648825301117601080682240612313619529609716724442916406906225142668194083968286664166238596058634223826320402979544722667852761190568644648789980538125926803674236990139949716176545315163815111641463862236552710364428325404122359757472042842737860992459210892031533229238166425895733837486338073836141278829906403501573137396724174538405853782138990069662570102523634026114452655485542297354214823107803473330662089896807721808225496032536557710190937462798448070468580720346550138834151564462033442740991940455464161518003562017897315669599844110542975954880531300086209471681429447506008394846533226640056479497368941842493597014786850920595120972415513193369510973916675008696020420322021636842708897139134912715644708156608268407437598460519390726420990689055316954991880425733474444554375315812344376034523021978977146992543037806887951733542995528435428831466187526035406441544077248066477653516698434972267087231924272095539924618447985132017468690757023715677172447322296563564073676347247932079611214154205081402388215520307022195031418246588481234641323259369968404087854324865383195179317606082167295421837962507868468102406753741529125174217983517481318216421427541591369737498711045361052810401895853546772327945644142971587982184639761864203019052787687549656958636575735213503946173416376379210193405883193163435354786004509557637763973678660218155548348168144640580860930012317352971935553670551508007476531670813105769133139693568631332255300467784177115496860640409843827091331150220802675012915192826084766215723293104763320106213444421494789130927831554820836993885588416623788775693624183387960950224666200800983126940417914054674569294792314896326967691187868981901697023440546034379138254082055935223506956334908722957528602492059694362620812836865080741759381229959954579055205657151026593302030025708030607944301199933391490571908148766588666257710288126419384721522372846382421334627797089846260989229066392318176930855127172348435705897386093743156831266139043479491306484782048163537135214909057131667614600177794237383556129337895050474193362728451510549564493588257390848084013516712313442528106276937129815120290342732634032603250459450295737311848254065871643267233826039678069789806092869632453550362719151886635825335128661245986009568706809477493967618881358353090577180845582448285345720772318028442543015682780533685624811433676976900820556741058613295342833052337986050570576516954426242115807080608757814176809490737498523021722457320444347770456294052764210057796122265193115883656488921030607349700924990748216424821302283823838033287564900988807404317522252531498510820142087516712862869679756050689294134416409549570147933254601290741283430746426914165031125055025651670337812519710776844534753796386620256729177264151139643291491109035694676964994103228124449225386919814623463009579246203314392710281486030625999464746801999133508640486040371378173511343712865493763069153040665523657751266005181418974739024010789998641677975132569215581558414627137801209476100313345599813708169721215637317745431847899983114148045852982200677923042209514845532772950693317377231779396555812325440813387113149640615220487334702620905846378592257104802444795037601653554220595335859983539515386647003045517481203586696382958379395024280582206939580986789884067487474481195481770549147511367891298590778770157999571663133586811740417283634115154002661659000772587845585275176531793616771845829309421448262452359460091275853299056736238593957016102944994808060636656766383482271297329590349987882535716631698402637654506674435076215937092584544882857115250764374616947986251694432879519970776610498391342380294138853721879522038488133620858142251029928369671625715919324466962159854934073801092343970797128565966959048423541381513582585829468969207887229208096595752594947933390395853632694944471472802650935091124908395104848068582230870172048830011723526710785855515304414572363675687413372109545620932181934541165065716074627740920405299195899420382998380309455249464014125052223578594781016561706940886867368833020550308714304568287832301584050114528108991132325934033303735934414560677353521992394863089475174075263607136185960852634414329434911458667679418397561519651945276822460948044521227065550624678230664798464824047632150339590192717568254092138647287774442425785836690192049430963544961851673315397980604441400769912986235402786100567189357550592195718389601367718667525464800497045110585753558392641717336826901686739632900382014850166507653876075209327121701364802274224698569468595661475011756555877920905808696595363159481186784395509692182442971858201671032170563262393833043594049298481368052005609220198739036801455386520641394871305525141083213843078113835821819375045240075198957755938089033163810614071416022326268537209428963460300566432920327161449019816639011144455268739130309494919666385031266300788852990154745380331665591035719790253994574690807603655308908943807222483077183914424514926964851467628741556052878466456271055629865761880026851705752578067247720628953869277657212973885955442237335629387114147236490989180200646456823991332182495133091168735067570452504433064639853203021142626738949264587458581881134650484279359634998148336984511883387012397445259857981705621008261044464477091605562569125681406649187231444633542651736670516881931495151977832940184243172690303310271588643108126513728677913191716715166349615678494656353088553580129779149465838624159993026856041523311983493995490226581937831692259804115502865494620913663816723285957627417975548485523618490759810903281266905851692350402674644649397967124714561784486723866693928795870084659916719618355911597135597027250057796740465213888492064817054241501370707065860540403566162067669402947717012013712242864711772392577623968127390790424321630106847016033074836385927970520845698269263472272055446561117474568584082318049803238618997022351819024298618030556789718065815532003158794751967197942292259236020641892485094371619496257113603466677384838069280665181980821510944801029711068092435584110630825195719292694582632154758665486035862760386715846140314307904667716514920223393492939844470376506404366741762278774911259160028812076308281482043924491934015611457540844488792418168110854787754484073470027760557919498066301315959009278289738867078528991495901733271840440686940166056477785912340932740065269357573233673150267350775763111533282669723727136512375366264364130253775209597966553879740351630046458535774315752403457754445336745723072528407784607301119900063414045247719434880498166052411902339823894163406194018046900905593269153406051179735685440195350500141369923628915602301980104171683574634640355092910333799599026375255555503778952428926735674736993065689512828800110674641109981358708612951353301283473741742468258338192801311368753771884161453145008601950348744755427571412876902424361409777620156845453624061127884371100693635284233142220485917103703815199871884183084148360823780504707231541232170428867753529502879901912214981648100994429346303982720338932450300954152883800410150963400646751422235008963468068791658247198894171269732277513582190581898021269917769421992041926729895106185925697779165581175616321088153226548679424624409504314668238590195876745329629362128079700472716812256730226083564211481069464635305524841991488972602474655984396909463823832912410792445436763329539323912198446788732276730538718431740819424031125611498977520000467466838667573163977093714908044215438252570537197240350238765717622240747677070544754417499582583792535780656502035422035207144909272317534342047523569860821336762081916511093505892793736968577866486773277444498179729176479559153302362056649781735632229775666302656353554089514088393807615211495518932030519069335773472226769411115157841261771316856604518092166537847196169921075486266643660114277900566537559192764457291491465496131498024174649143340293086265581122665633043154936783583144818600890578561226435760469482318837252564237725627745609687483725928875045729524384639679500905264476229092839125420275593174721830271083290085313299231178220474773419258223462574265201394354719808300468792364642332219366194584266546292149589187086428775453480263781039259637323564689444548802280708731394433650927405428417725963329968819506870671294732297030275056030329818067962104450949314401541249912871208691248404612893755731719277307756940059817550102017586420797397036489519745858781680865564109041225369196222053995956150207528531294890344252679646530134954945375235771364222810838418617849050280704223742322898335427112567587481580525920947261070572274016583367363838358065306557810830270597822656389456671058846522438860850887512435369053307790146877263831655972510493458039511112779778878234821911174380170603836998511545601422867029372527554777790289022252094299893807726602672679274388686795554013848111315776475301090690912016016271131029298076617762924908230148380789819198955246880675974169238327479688000307467004939933108745195742964897864355395710315394530526002550931721033593958478865857483659677801694019961160716729763327641396166060809294631532798145366165299989392657014799495906985415139359009635697629433781463017189059611598379943468879075358666092537365557228027345295652602544216072451206123743273170762858047133604460920543903246153575437038049808554591879674673864918121162716739015502529625351445722174207183034534710434258358033927061392049614708558464907204747630634990736756534110673058755510726451785400752857930066129194212577395875897113475387899221117461570026888548327485652260384616022269035532377101191884717561868012353643617320146855645115417807210201240682776763484499492809204545782539810766402839974327228297034726988103205795082287048250149907523811424593804836257411349089417403843625057518925092593277643286859102417773544108684738865904228030953527314563915715094400859957343552077653329638643954489525461680455261779556077046979902870529680544777691776203193860352769198283220218887409188914566726561806002647503712531259946545380301824776123558440180136901125649495960043113226888555703544887258213996471442458046347675879757016383256786309463468707834340115085643438062276291163589710331724780624534667275237196093035677161864547019683848353894300510158953893672893440121098973237829241142909239853218024173092037256254289582509562478866072123118107969048887825292568495201853021833636323914125587484577587078999804029943892271927476832482333826251747175714929147049540625081019453109844691017673860819705205352557001977789952256654846154713507782776596606519772777811783145013425089374130640988295022738566924876206365842091083018817117964786748423897589921952099344277710732718853341846474779374694871802053044755578027174664569231554475283124978659321289882082386409853407372852851378344512405346290292041988640904219560545679046363253120466126067950270648137643656203347350759929579169776748226716522668081493372226389996404381447073958966395699337720535305812093739434417619145308289998215992264274265934389122246894897630276421843012569465346404990677680284635111087241627781044607766472679277816946914893462001695623573086836178284864191823703476220081401079113577463308555056444193534344703078262203226005461922094865110078702358826638356573443224266193635426509331187182980560006296882826332202896602199700787038271063267795410552331682449351440194669405925783375599992007193917390262818826132139603866039035988130621616650095034627008559117616617648465423490560507623175641783574794300767107912701818220718358448612181691001605339577888210549540313201011208036255879647477904056337265576322405332724570339560033911461455814542052899588102726461487049105250620162765964717153066243921960459098982293757990525864825404299351675544824836000006971904449454226537517419294807479484384415456813011461488820525514945318404031546629072097982363535904377007149524395398966904768948016464939369934389718399534524151803303963973732829211055128806105813153017300036681512718820271659285227861428503602461774951650647080337138158372554160728084255299771098244672781722100126874121573588065017995643236796586476276564908145075621422307221128259431909840769136584975865018083324448705717923789514915889897762722869949362768147958646859073904144860985618554475512541888952830108511878942796402229120287519753845513115247776977765294814456563769018689671491536686828845651798169378810194073774711306433120185852635619621413897941287124682762403195975916713700373985851514229773210456317695090931266445596669771028632400261067752849651233593112206640847585005127889454803845853376047805023159280159620284658987265435030969055838343200152721184127389313716337079218396073803310643068787264541760685273136517104264669126777632990730810176821760879662341791772850152392352182388431286387961675775222699067480171145751013872999050656322111688292702910865406518198816434889422071904485958071882425312481828723283510661903521261424917492769506294699593030032548985161358114480637837659424441798811219952151227370558833104868068950765248753959334306500400054039293421874791205339378050861620217089045733648389419319936747373902324266419842468831365828412317445088645726533415390456036622168337087522899145201616671013117164524664143218769091507541864777720939971960544233956800566719496370379158233278325291176195114642879951545585172815958786568090310212643631735581427292097385719869500326563916665117660339778572732560879804658590631709780406217178987529162695701065413161160921917357587863341740634817116786303259452227447163845303401712070316582825375106702740321889127668487389974000026988495782870089706356465329357396391000966878304013480441910497923909128533229671942539239135097192239281761542319973769394670566887030330043885826058534022602080600511625659532210299449535968452006388047859163764310805317435113634621638498444101581759108655939364786040816400209677269183225125334886459312071490758406929358136662324248167495955687105254216454216260620179393814632050715409066467750381114569908875960597612898994971346378706915523519466512182760914875879009349307455194272885753965615947080764376067483617916121281315585050241599714122841172838349509132337899682812975489960125063890627789015338290789109368395115567994262085253845351929004338874923736435226384955242718753696298650399726040785928095886881703144651079105418765220841726660669420593008139808037914600696002066661472619338227143340075783684298193885912089358566354339768480068961094143094756633315351253169608976316554175972195543899723468600079423587480411125653769900212623112595679012319531436836561930251287705784366299640684235636286168498499935234238735857833933009672215241631743224705380436824616300289068546464990916070055345199022936397258178137207276513353810531616999188672531767392508852656061013880499337516063456400429135914401005288990832935509800555610445578046679519569598148486527239299887074297471065017550094567915205316711126954904894775203935821830211554103178488111342815584372001217236415518083339252819740269869744947102292693028254018822796879068073616987472774950295486475387051536272370313276419514506480225118781039214755604998370398627949747140031533473558355227521975505719281823395375666490504871106399744927526852108765304581188982489817369436658834219900015521200560207679199927840192629044864254705823866312968447714854650937318263650967486519831822297800616105608175570896062892484232072537791928367377148765492661745660044244268387700152838477129658169022630812428499016946325557367366299923845679515988056249412518472563239034137531934877414696379626219421797365313061102045254804532122282607054298662915673641965514101082295311206391680888352474017677327986325207704882322480745160128841308432945828607308659443154976273924815983476421374367752011438464768593918723058053033490520991904620036972349399419252708966115597310554262739787100007690577334817108082628316133422424718180155429985354248491849042313923352796351750036579762632560750899222565765750369498667887026817104607609456937170407924607733164374007426717989396760202039074708263287695164593497362876975603357848374553362681894632396333794239964365216080503613347546058345708301054796535025536633358344838745145783692265813426212338779904399391216894365409504436460182166734558849560038490440902440997592621364833143849169460884114659054888700458371309824299587333548194601730937646892760058098799414313709438056735818675248954814246360138881644714825873750240584512558910395704563499621768158488660026760090505452263129581958757401913164853359829633037239867557577117148603435065031732304515583649694453570013097334596647820128790371060155040810795222213186582199203697263463655348710998608018417821723207926286326170731058515840206716603870780355429473943958759909769114359489311917323397474238747619301038938139185699559236511538856595813021392697426343952495011710428745334539438057999382023642948513030019554791664487337294296677806279666235502112545635361671736227108782999101149219411461210214865759026559872708670275446292814322469876584950592942549553944019212816634607738220163358016648902313840326011421935722668023907232861902057909267027277111877948464055028030715988485053559889099273047358739658271812958456466602032555210468545495414209660507961092561525539486559626403420941567162741263341505311290220812809630684243765131002066885175740228953650315701751144745045687970703053221597141135522482069937585585754118443647902068898337298735306297803614629472520228720892419076470797977276215976857132047335123159864047502288464056327980282791826693284455567463997443405862855156467410845195806190466941479927964573078492518920880889891753751625228239202553156948952940166386130459129731329677113071104272364196954407591472390343100907452773151667136012322039433822783315252614188795839140367634561330539623339608478443969571110942245502699432197342207315199653068295801715843796874410468959696794412617909515784565920316786732885642886903019711448992029084289957194012865743689884082978772574278993608357568396479832827824037545304532502487283223396916500199398215523055980474859419175158191135331207167083688261866418073311977417484106618423771554102713901197986012151384304095791854108901128957137715590055855875867138374588155379021951950175004500834543957753191099552194273505675346525351452657922908794343450917653974291174235346787535884467706579178057495582599273293441328320507583584931750526526525887764749854011382879919038569814570606649526163368794486437057374419257925284530361940011858449355598899434109467689304670263123929281515891285192235438305134506767329670143251379053988162215480787981532926037176085753918713403267965356591282423303144406317076868750587636644873766010609779700929521928345053958858512910130983575667606079621662761610988800886128175848705421131601460693087821581720351476512275785460532671717463450994442133391504332327651362759241928357156708666769517152265412133158408776777921262967943837128478599173100730355602839103945946993153600662580812620777551847868296830286972352220419528498163171803817379990817449399892061011929234177910131234618172541471005224295669441187255032127555668170629367683515210796801929544745029571870148631303270361382123658938590020596360828770692917142225392679339533281700740604007204240433915880492880194331314522937281244042786450398939631471229319154978788824146675427229397290996736586578213854557024833480533668457473846862346979944411634132942458422507188362570286541491403241644113349323121452579345956324537319427052495017437056766668264365065988958927513687567605892494009379220065387860207719806099105633601769950006505786952158534077071032646131519927360971310632046800660590141598209736902195490153052738185216330417474888887647682653185403613725376918197044425153813871745464627367257127444500509612603751055993093790046502554612282243626657081831936866277743766245784738860826177130291187913569033896498493118809216061601897554746237178616059380671864867558257586652591716707195918164620559944995741079714009456404450768399205184184608150276438652681526059521796110584485547114043062365451558701553248840642953226036323227916804449932572872732751110649548224791981776212396261522400508816906042893371001277846008335052974281060258737684012890171406091871166985268877090736808803380229774165974437737664142501140808962614312194225395351632730252364905606297209433436922579297342600275301570821625062451032076270846022352883719286492319623661476750579259885998843457634203741928640258689028709082568798103555434233772356437885125475052634310634405277134082381410332306015593457703499726330929737450358472380357866506459033129345924024896286408684029707509966725095687604564687940496253975513417482098976155319580198723517000351308183960257877657655137219948936590756167786826289119286040952504546230175496210251322651546003536346057287324035312419720306134976771769454095879066430682924707934959853746117783372698930756421508813292820506953216992272787554275763314846775459209326697962499764134619518767879871567234247289215811923694759676255579197824832289326796450817153826483521845822723391010666386728499081777760068095727988078132069815223959587368017176893923898635698769562695335656560143116410690822599322034048096236375936704371425408030947549751058423879101939152403499115271890139956426190678298111212151054614654494526410455022973716895850344619732170048648728240958672477279213697992170186681077053204433729091373093965752237085946101084759503544470609507958670381490423749874352546289085293867561504686825738689305627014928007950866474442500050294393289511149057496060412900967927102062960029502292132886042719978591865695396543706966405402001117527135603418819568186753297497906771035198268121000620688912038892440203838112330653719736601890512654304280966141361562456829845622140281002117037297960737622558260690908429697336364788865180108842915561326745295157280896167152233881950026684767647709640831094624067899109872645515890524871865479898048994549168104238772442462611102850113717951161363238838121094495863832067696594273494747018855276366477821458931179405186878238385640932448512478829421015060778945104001123828005951848081059104498101689176823029016560222261858261947074886481570966112225339271581623974968403509091695032506595353534336843315570240819764677311275563628797146758315830656794758987859561778636102376430126481799696361916552827093396200726857374272877183796439353337681121005483907457704856915205218108639098704417714535122389092393926682420585398127067693952940201186968012912838984988662130878898633782638816546905344112819841591899103707013015249333403060910003365734471645122278170113010913725688656946642933869273481601989788906250086173824531978455709626305841311512271665327732083128683633717968872967707025656661703674765274942098524431636343311357819174455531209481755349849080398482471937016680722102401553000188532345977494563445109204920139566932390928209185649152038118721271175942648690876584598012545631002280030817521721470618000852633158962785335637630765619401470387864752987452297837542565400257833990852264446967434435857204291378705493138904699401774759438537674456432570180168240660948671155933913371292755166243033116974897514816417872545284991080549312365920911720075216705632346156932296862431140162033693790663367134597001046938435654156218823183273697559447442485600856635945202918750079419688111574334442668218127328797485888205663604794241567864108726581947825716567706049024027326972482146094710594477496409374785064184411364862684002248670845880617856700260173139377201594302521299768059048581364311143847548359970572902230805476987307658339948790558513654180593379866235773549263578787225982219728639271456167515277838913092791380153575462112555838336010457152591359514344118488237441310024886718916186373908307486559367764904308925554204019168429657289962288338417625973752188651548724371134476457030202264219765520130719533855628997830590809346091640265395381277013920531376744017651919218134078299370009471492457456263585274675869523069113946419627001571598798050794045475096076999284356394174529311642532105318298386260506370406849788823898325629740148759418936748600688759357807386414403647046178729459055933140168336199371567928853475181494512467720939195187435137485452494232937071879153821914324753209596365368732663326159176216748067084813142103985437560347304209102711855489063856729813054400502906462499985232547180805372801884175449753114542829332139048512360448894461863469115244627138332439417190662016417418886898519493160580146280961360587653206208117176482409576340481883925340356565365666415862095083405494413617481546265635117043319527697124249369114456875651061564896847194151220115021146111316038693957512336997627445930950036322688012094691671834032020807882788916933549440233609808097122423832013081568822286418730289873682824834020376502680383794633681804351345988074522566319847706667592029575784298295808264378189778484604816501971099126530242249381047864269059090274641535050650360911134199490706323138028572554826339973896065196334590634823499443230107606374357878043520071764550995468183390236333227281704715749539013014605924260852766885099575727880382000083227592472319335536834152714048695276058839756818233251362891884827484721304135123877928854124692929949438408121869775995902324798463997927704864092379476958426828917449816902092851839073333402955526244642567631600558917723996916783670084212431379522579064210469846676606754777163734376492258592747556868191592372944031137687909781052955451237346455770475342968334469073088797890825237420177151985001573562203597410270430390793338544520594764358257803414351589785034907931567172602019130764305950664208207524689567974139758629605390765460838315870060512078955348441783215752601977604311360140944661775671047129924318820851670819073928358756984966814836797486572756485792497112315228391246006824456874000929421984697735802811044220051721025742526540656268925805351312558975849661802533983826437551508917383301912197250951701956013004366696471319686427155743983173186092096353582735990316102051281293115725217760090897498146520598300941038650415235509764771342474045890723456689726576284318974317456401200809226498255125596956690744568811663154318157053166555828235811479944710274245258535132734523839704853009878688916001114969229217030328228519473620861843072925973587741969694297812749468883803933797939273961286948458276229437182021122539410239884224310234385124020786668862528871908256131680878131463077546647341183058947103097844835002724725393225905588756429226012732087726762494248946713691367045402022455108716021736383529843811455006385590581041254815516746267191180907705034565048903494772531227457208248591215612757210790211611946460409113378450845615307585294173235604490272196831205041874279279456863522105698160196913043721902125665732506704057986520684473790882028222547963156944160090928820163014309693410780670381223891944193852231608704917785161858888209927440199707574343220115034464456610025426787492064127890850520441394754742984847071040905917045102430448338790569961295102960460363259487865604430575847713734805492394246341654534965232560381437949351886345458029179187504948090799854853845032509443171064483108424291113991490606024169721602841335317303543960412145555067655568402881996953069304451084364315547740295693513531119118562216384389502800976866993911459880605025640825712425837426650430445664235631977664170598334194088804323319341569319626702880592001782034783030649624073598172364079885893055959064469901413757522587054363150414078990415496625188410394256269422375965224401885718762995289379639541402460275577158112292546596655712720025194530150774435120457632218771892787189246957895979179867238680972322515085792389980105540975788888708552512223647647217626392884578810557930112462882346715824434936512263123843054000363819727965680693576250271020166805421180726285753886950760668142215230636722047453897556278788506235905295249178863846237548110801906239766035411574935205131395337741819163214363213806626346939081286928187242900493548534081218198675993755858756987188091441485057068365331350397452012160343789320170059777823555593892339119798337301008646125220842276416058007785604636667892891607525903344625432942608123846219174102534363546924482307233273526688395341342146964284655290745574953229898698611177551851766150357782465837135582305101914634759992874577337413522949143691038628483904395547170707093398318235480696112956976623357314980622709755396362140918831410048322124683499471944684272215030962378141728646917720092931496227399529173766649464923338765811061226782426888267239378247111072997773482009241398783395848775363777788593061068838412094549306322318493559372809032319416036383819991804393435751394513537546584362708638273926531209963683355054136148508034892561939709343838821821961763187321893298570677495306812281574767113793230378180864169273528799821287294023730004772503686124317714801691658482272233735367076670159923424076178938990943331920690354709788403364604424379540893687321190380208695469377038468049023672801608955308336849735727724917657830981454703408764399760742515984022402172716203369947680889600244708400809963750203407081906419992307549506048612940582615761260168342131075870074639542380070167992378298058562518862910298259891533424260965843000109884248442928628640038293432898477858314487881553701527979439309702173516057258192069253521515061698898399614445397206337294106696184184945817359591159536086323330778958806335013583499367436960356029960289068953355246349319204809887642150315415522634412280277511376994042355454358400931953415163971323889525284488183930714319847041559699254580343365895239641452739540363622552298057219130649847117895948209333241048264678955607306343405860526876053151238992570136708148417554254586291006959133582660037548484558271807667131951230105905410303398461198474237463329289332515782862409913110043205835259299162482057108496085001182732075440051277090205960036741367502892374870970333776064146660861185060044257278147528455886784281734277694459031051433157558575093600178651241449837527385122865895864712323636710938507587590796147148681160959441369384853760559107221831784567173402742879676922478358294282518775954011658219428160177992604682457463886575708172521409098983782312598422541799002142690576597041818330489043533300538221256896129830275969989246339367091992620200032161666114348406759607860960613419246450932430820329296049375812403019847188409933396116735010327856363190954163116530555905825606669088330575822788106287664838632510733708642835897387410660024223351428894842181703437686557106868964290971444380754099213252574293237171939436442785586144274722731914115433032861570804499953706653657242935052979828863990545058882916830170119795457135035665937830420418864153495747124781555767324462538817010257852177321422533994068097172542098300602650055022038225417051046985173624976468606856206693098813503718102397085796128152891741001562051563393124065707790344498445559298995781237399553286603980914431774994339710686372627661394065305736184637764869057228079623274351688352535941829366534533846222246411791621651142145067278647701001832955874296435105879567245570937087424187703278617568105924717403255557736302980946987672381385402975190886968461025760756913450070386575282980599112685469544100733889863710916474932833399793879915396716806888021067104008122686613288435699614650801148528559419156299413656658505168568867413688505570657783580411627121295880540096667901987547931726335310696049961199012885420549227805002629502163360749010828008364784629344924684141850714336852600020895737703416534511570780763989087639246752956970968881567196748687680400022724978008977484038507695974986544360154652351763566669283125561914020276942853512997932407807218578056733366272337630129315134286472759570171690349656588684585892329118526270845161090000755607260405467172414077149444736574940359205546554858797467989157777456192692099383784436433049523072369635674153503414332795916650580340403369653451054305624452203591727051002925116914108012442585092123629030217613235610284304160293885791452682879892344177388684718216127755084424392302544603477743234468017338261393854567980970314487997527298562667727985115661018753595759379512086013577744035946905918744755782824778065621822247818197796204062302951069146083005785359174243141750376997491923058225446311681530173769543189150582508296647575982551726254623498163555201401266267977351256454642636730777826642033775472024528737388971274442096819659635644683730455027790736461033485797842938328526376296818957744752500563983716188884749276275502552430949457252018506849027631483482489449849810733267089748119384211002568584116298941733994112703288482253708178817271869122373981309472043368971247207462752057251574307265575509495291635626921255561947396727622864466724142629505828679912767876538649603048962977516603601507252314084550952412450642900857562604687671542585066557817054775694587553927660023314528347084498698743877341776463225177712933772476369136041314997084159608707917510999700282348161944153998100837079697267102444202001794082582097399849198293500013587576329054636758317658362562438229897677887706447367554818755982986427365306617683552415403129567800816613084067271971592672687495872301117001374559450333342192700637318217365518980691910591732152294065224383341712064181596665783633431262416341534870916111182023421594673597815584895597724972894615742630210484406790059620850883951457433876282955963106224432633163921121590469425041407521386644881235311116891360852985683286655836248635673458617070868645600912203318954357869511724076908725800400082764879308828752825606976915400843006038867272015795697802259272624385886805727664606359993272044162186438277635847634374076928371425638095775025307907880989374007893242177307531888767407836486178689729258748761060502693722236564777432008862789176027994082116028322755612130953439310989443659062146392684503094388355102359876650756205334450810860927666664717077133424454290977056318387954817643915427983583919772942159589844058561124386745854148455904937110295550604086727917043092424408760033016223106159779124245021854526749086314227310769076200007952060944851223604046571768735746017992123249179353750363457634239093190018440850195586376046696087017305601401478590522028746076587924404505754950586128184221730242577852276480287291343190661909220151229066543338276601960456783123113088834304290509389494817717523134796662730818287503722125261986438876697543079848615465703421069108611000661416157064593395842731187448980224859289944977950398790209249527124819885714397045524939683526007389141718552390051156741865480313817424010055439897756498883608978648609338285017855871646864854390816529141104296741323373475003882957269090408971266423193879600790481287088252151346510408119620392504498886097458744478816141192276484207126145633210042002919858161508473141234011332653478998590587549899371256770828818281914532790113566410927739019738076083405022899694392263225640896545072825456761800306468309270839718777575519084999035028855101133045827342825293425297540587455872218806544004970579257915739093079037283871476526613155910368563167663471024652139753697926486714078160537420854473073708273591805124941782332564714049443706487958066736988614068324337624821895556988782463494548534799845315085361798332209137866084156306234117451763181149107014761537413443258062782861850322044656266796909661394291778162514515621242245536373022382928689498133446654405023876144728182522489499661102620185823692517225969031260930476480495640611719702282691022922234668896076123831507437202193117324710662906502250900388415471132024368269745787971473047743346823123957859982328019609785955737319533230316706942655741536557164605844704178558652670273366906954217416321020028436812493455021644598043270487079553220120358845631341769433506441906344743975438327704744291328884700296228951703878442667492454235689924067870068444758261412228485573346064033005357282329841521249138632514123064923397110413460023598615934465227618398190964652794743295871342904915953947607611325817835019942122817098833769736462094070700567708754430354988579332229225815167741602567026422855897779031314521395409763128638902444702876623022699083996961625960068418519491473779704741554604748022996398416038589738812626405593228764560270896600076263809615131059982960139895926808158678801621557458900933111035500997175895862597840332793624610858334558058488837233584763135440807834490046012703261616872051937320692137137757640958622488313536985814446774451946633334030885152368496415732762637733060981823530923403867396370786536497480442161650910702006932164068458212084689739864460411315983626127112863553597009431040270470100311439642515154463622276652299233998342721046023767136160680090352683984304802201697401889904785714447796245048364674326503946549023293233401963385381206235172932899016525986443166116552618190287187383312878718717503874640610400287378480411779440115764309797010475734496222824015289568963606159821909032509658821076913671882323565152207481976257898057445185018526545568664545144029594928109205419291816714709712527185961298587638281553587925140228984721654696626956745410639801970338238233301769649205108050826118488479188981255455395481563727556708739396541644790376080866581764767367336946757575923690750794656196432144706717185013424036531643823032218888797932378751961447806952590612372332466878765095749716158931854441890790301838545919588157332210319087915530065225838759539404616735901085665017801023694765708591454310476526966626289975264879302851524282858535079527712155232427993375647314382707398809103856030124283297414816182110811473310847710914221828675158051618385208014256093245750593238806073943680165215385273584146166504382833357462270633710686992505163127278694741187616701465715057341590306556570452704577420856397283457599841355180100099519681343470797347140599271258412772407926927574677270443926536646599894172023398830422199450159943191140008103316362038366494173783108083612897009309692770361196697978212601117302882597518718535191173561652769435113291877478144539443020473447267137858701518372601833159326484952383257135576046683767006941776826775471001042210814653326681535376262273518734303503682934609214088367760500345918623020449195855560707542795416426351653973697039885487840611363886411253901612932748259746265133590829107550914951156069181931907340476908710181419380652520587142469144602595647361914447568458783413922016057518815964576543322460212150313180906017512928589782581063390553725530896653773357733734703078975958400326296029013995530046516731414432866775734735925774744708861346636844194974579623425233974103944905171736695707069299167443625946814409980781153350560989109359086217643016421028607207598840433849864001397697666549405134909519306941391128846581996036078682952169287563453314691723624395263511891202589963339590655631345979696209036500983873910222561834699984052676377617200798672504008557939619002651843209023331576372633803830789290832223089565987878188614324248891695544167256904361567723260175520754067846891184684780530895830844061142335114237693957612794103987532583326900668089674355516692291964918202653815227224307888945273473748088261581901271182290538819761847639471822472544996373541814747723211852619139532615861177980561731555405956769220998660910993209783342482926459487006335408875547536570611129104560988349379986250030031614194048163632782101093874848166204505888085508207440962382779627992273892662186159330593117182990273223395830861266836483566993518346784932346556693176704058275403966151999098760776790602769450013645315545195154854663867033334108141061759912397128975708043892208358096595319549313259810449991315612808667813351398000605465420775331503062218687232960423573037474092500498559347097199624228481683798361533311538847035505882679040541502036136815538088314583305942068665516679021173846545037590780260231195072443778236472637992474498331603782182214554082038247410596138546784631669391574694246078216757025898406877659647525396696306644087520592658906487139858994794530650879629792288644766433043861373110075449076225803848059838925749369213016561739090218836056004918770710713599286462913839504440100748275290535162449636499286231976599413148449382017039449763466993273412688456752871831647277812077043794098537747573227091547286782171877056248415027439577731600046742798002553877185171380728965069197736996111742791670349690075410180192047690467228331849842561487947774091508809373456287864319927843484493730393834861376719470469337754565734662863648816128433297314103967292048434482417080206518147204719022254484714672083150185179241617227742270114612254613090808324559127541761061944077046773788416587186424048907690786498052070813460821632632831702599649190596599639289153253297909238826856195613333186935384084459282893413909747433166940450092774565759241309566018705285465339273545927165538412456550373008256568849858473950232571410045049797195334904352307557051535608309500759924770191021136763629458717737242914960679133040918112192699500867936510036546454775387913274137290595887614615808841948460746682470321473948503224103496961737602976930938476305273024355047414462485969536553458300736811075366125551795131380714893045923105199480823882145073648953494594752973468357644942111891444690897727856958450909537042575113840902859917254541683515053840984572938642573593691001764583470460433941652548122063665153315745852905917600542854917594325870152999013658922676579581397092420080566561286783280280172300638794759589064199036100003556971732424905034529603592063710500139860155193217962221496656690914608731176713875323792546582248861120050573605537968000568365219646252614070474571992237492791071038314377454829474842513972393662889322633999332010770278469819500596503758232814282646548568213619068174420537351339774606391416584034043887986025714486306372430379428590870243307417896017471928797258087612295167940100018763390721363206815026055905305716520711991246653481947566453531268281125275747805051966026420875297681673450617192764333310271898505119774718905203024761245114116101522831363873844893232877869666444006845149689839893722680570883407814267801185036796881486626819305832134549611238169366577053039874014805662520108351891603044917613269714899229226096654609990429515927356630296111998629205170054174457863960716105176145875500180754304733663149849819524189343847974452148550753873446189958831004683212138776286010651072993024258311088128118483124941390825271743463839778878181645678820070199910916866299824041325271540518896188284195644490999603961458085735664960064806528826953877231245822126293642608551738929510117838912462710411198307763911647166490298672267867801374293013077970826964479617870284715768954240508648888359154751913365514357133495070838190420598334007672382631694298882880389270548571061751498381190513635357972024231655205751831218205018873810855796954901457663049810434707130439598604775104675936230876889067666818944220898042953656681282612705294433816826707991201399366518716562524333465071193772071957804617820937033454905986295870705954715439816536522217797166694123846174973510046460076509021024731722992166924239493483412457027287233647062305873204509124361389798243782124991667223829188319784735738900063969778758654500775128552100540384178335347566312842979096323539588640262838036345829812322071196098391389548820818388199576916379229842602665957266675359331828907296641874900885538045080334889968834636516405902307992877910953464687386670746061006426759957908624401395936092606748399073053837113661378330830539932092436983371909363675549893188071444159513049794180313666797285417828400425603061002254527835716559555936241376950543948664599308043417873279522400549399995589794095515751854276219964106013675986885520633779740765589915406049824207606317304675979069117707489701088052078239078479637026554387818237363948206783822289970958492101162195392932560183645111925462598541441840720737919580205149875395414232847463400973324937761189277636913367874671475148325794095681499514926102046891226409655621989083132824490434716670098985660485510586214967655381161748675416559141448453932920358240715195190415511337143646782612191913197213628228060975844278949603860981954716699044467024130338268303189093939701524445851262196647487220392532704900284828232036085642112472278809863638646211250437928306157214970750481349517391516276692170630842295164768591200154234254350775630020041728155928160048696755916256372118188704984696050420362320805921571222826894038808602220255459163393708756453070475992969290117111432748388130337952846699160778596059225968241867911278375429296548032251181049424820507974841537557756265407369051619316917924751347271457146991656134043737559729047742555798172852904071809947230007272352719838441265421934102174693701755972370176714476271320233755446734730438388046468952903386573972032308654295620185493292780530490080394666629325082521389260495120582949533691924916251093924766679190805072049678238460923084391320654287359616997367734610298134191439720063301273705638129937819777884869542208822211075074586551836625073443611472825762037548803437992428419045757128417586809830003803485681089727285443603879332874307375048419842882192660308099349409092361870932546993152498498975633146114432645054422812938935361004249177126272197680292607814799229554714814251030475466374705171932173795316545862059448750948148426538766359202516270686085959529918746090958932215608392221050777812472746503386726913638739067194633805495605283713195427861855966673852605907839883791797476850711910467679402745865082621383574029707351181610290035848934481125214006222275675724049475217271667849257691891402436387126928542523349911256837458884560885299480316608300039012458022483769892668689918433053726409958687567094200266653724288373565305653375991429383667659920844536562918759618577736462911942048889933841869426534116084169624479205844109774652748938338815666365651049422144221008161785153491363069567851928630095126014981836674908690542772432419746089458259580434609170923933062356235599487244315665072397217249553731130098164603105952631450272662046432583640830227985099220943508592465312232594583681447502051857975315557388080916504235032557295739057791540400445222608715024669737974177669844429383576642762140029551432152362864351829941896213632080426420947169250351968147524085728179770025986767230358510788332559357286240452392576005882768933909679708053291548194068403415089328046878160961679801468147642995772969642084770774894621406884639794071453832227494312399966321387373722446933683787979312969000798272102741965330647014327447897888004475630022266227038548230300589579283577871557278370338211230516161024072027009076399043017954917256276696526404915145458485552555143053720285649940443186962746432264013585516872234692920671332031395355302529564793358599307691012752954008434940303671252626803287655653543342900010212629354097034396672473118070118473221853130963961577435987430336591997322115744465433415801079772582456810489460366488718222166388702663576757405629447691515858706607203271684645443037841880652467469883720874048776359677365144234826118295606568929682141259565606274101339253880716667857411733429134351062695681445500471764224731524044719191832560809342510181911009599710442012938522667601343344061029831263334730786253746810928621864766994215636618208676303914015070915469429840349488697231273886461845741867523038734505947767026504548386882481063782889401112741136887293887431320505714095050274109975959440016322087534276054618384237667286304783200872347910294400600200052485192504321589285884092048640641007469083463604745107647820601366948858285353388849961134067017168156685871661329401128033866816775129896168190457008269187676259096771689191785258468399761390031646496316872767707995158774935385528030996489757064053834078117804161399495969751664388704424309305666489590274922400030449010733089543316294667721388646937265604434722073857058461110544963326452886049258439600718970193049774008524625650522711034155340485991803904983636307165191364304636862660554468442921671429542174308931548355191466301465505867480277269885908539291723446932297719925224427302293502491041069062571148006887008148834568301587101228788831065198885612578490174637789607821319742471853077768541981233231185343347145570120055622365295794209550450881390030771874645684302498425558367344229123555544479842483566910648815081045005433724434897580617971475417286673290004691587479655642502854705065935162203979277025166075095627758123188597387995991601150501075222891116425445370152142652449390718715491829917100301610259596193846724109621406583150800489095190172331098447384616647709857567434025997608835846955124650963369735297877039227111086822736745545683245748179106635277634141930077120196250355237102036153207447893735922627559686710503594132622970136287618179903209998114993795197595308619605231746268345590906108273676258264140994984906217322582933566271957012414245100412701846788415201118988485145758529953990062951507754030860315749909811314698271381831581020589768440185663101065843607985756310071755894403805045433338875388978199976295277475548257094336446151524481954053439403555009527028554809639589511636069488885383597046474689212658035404610357720363829002216816898254114678708589337176331710648222306773563043889159864318903894816260941066768822640878619054213971639944246552950532834393058022425373391811395212525241085983164570774963727148882630814096319982019216233403116691860487104878185158081774976826989458733066738663090223915675857125611040847039429590897509800363736889228224893932873128172573927256404905460553536434682330696886421131699350766967427279357838422565245564701385491067084205659005292228075491525267990627760768318344628501266469933077164944708946274199425516981487026646242042546799233716919126028976567607254647511938034849548079003457597384150656479427909333155062980575407670075149390325826122890705625428225914187844436131479981808935223677703540040462394253486159732970080741346821619309538579246437216248399366816665490833000356734005447743394394771826384906081629759746180352746160436559138692374697870537004064514855208462819318194338589278150892613792125018204322492865146799312024310930045754040865327773690609418557199447759226953394657366287065198139079003772951573185599751164403495857049403345200252927045673397825229778919001694261190786507650139316888775713736350116689312841336179304312569832447933898735536323668882846753454284239651745025554756432118132958384314106104094796652690768360601047855983329932216438570656373360937049947769827534987499830240142600931510580885200165162944760936605975872974726167326222920824017382303814768073766886655233277878337234801888956972552633933213693406318758325094777352434784432702124079471429954800866006462852120910095482109383278389294244007406216561620055358957336197971344685924447737018533429963432850804135036861523672619010294968360787083097934269422829888002170433312290729134921867890797941081730819526250961871534767507215517853924285678663757664572981251140100036347482857034475756305224329202641241370618963058834659440140738773512602246155070029068229543923061016086096957436190649921422552849586620200371229842180348044125865155622857155484174734689881216733323871583406011310177840539153006349974639472927576987517499760648982032213708817431046689526322370364083857359949131720289812423402203818660717165830241526375776295987175572306528204355598127202864963724783771174402175694899835092025743957186170356735713140394512084173358952027357290097754268238920448102681505733405643141157212934534163541678863651019834634426285676264928767356063814500038162816855582958127063141890676211619655717894436785713973398777881499440763187653968936808281817479924744602010699091086899202979233677423421117647156034036211900836776676332852112277801859561904082203631189707954581338675397567544911746154577610577238468849935753628689525349817645517499675957787824475568865236434472327697726302986258625647509221380643702893659106095181141776960577580858773423234680816869303928659208651743707426511942088746106220027849796968741615604115049124416129371868873960823156441016025257759513551452741529232061034661720643424023571440920297214302070634522210681519615033073416206427856288854907644659633835998469756819481850139976160323657989081782655253174843072677044414536065061466543553432548692318942170179220470989717007235652919841589450879938541381085155691337442034445624073874113834446238925081859879251217244613921023694192543439486997090374433991590304998915317569083490522809977239043139285961999936343969189318172763427382008194465011672267099007883851946421097632740736529840901316823088338295574394006436158228012266464732467666088969079704133739057224097973103900561424725799256855002664888625781691360338818659016039192007583184619924694016396001209244685152113541402093632172734551444682687354081336083595167798652222308598170737841078445651318077793336875926307377946367377096510754166181877684505557978092988039794281928789219680335006812129906907013748289954103171559920344416555042840934227082422066168442110535906515236928045808158571712763875319406983502556503355348110442111791783724746733741600964864944509540386341121772768592140336816485917353622259357782754322494500613163076322567313970611506506490474973732670992960493180234678517880139067825510635799271638043777592002341717407316875672429320281963229327291569083684956924721173877878353813626771826004107147988700232669009753118900126711875667394244839172754649338993605087724633665613933678720932354392716054926419706043976970210613285934860712235419520807875007589830085629182341470650913024342201251996041637040149440823517613772096660419837470442776330853672104096367322041669774052160021451182818017355124948283747782238074003063952523146983718176271701387317201623376502913052919034817768141328718654287562863072449361112733498726644777837845135404321689237459037470369368968310881251406829652405538743758481969505928015407456012365459119967061938396606787593140732254765138988860511000027817697670372731321898971889493940010534793268987234537574128872070209859214301729748610064880823035276000628737716788079035890016948436176590382058998770583162598062075796486336227498931699105036263323726626644862025476436928309297991763387553794420786314150869096638416827904515144467214915845322601890312141974023916523905851208672243927888190478880820617801569512627290127949419366329248944689637119471262505535973955005571240054957448950236136941063321587663941267761459393586327358268998609365311595148969081111697359588924215326212828654541365222853051639486306166034621644312330139588876184237720151275305967302484557803595907367342286338161040797304561655104193992778430392162926046178993437283249719598330720235203218847613101134635682879238075911860905111819987317911458343977950562964862118529645668081729949701128314154678308217557197454023662713048159896108076933213571794458467768638966382661290606328827631091485870151106249244510348995713744809183712365813447504268715430005417049335296399876062071164999926359735143752607139510249996195425943244379693022929396928434376086678740866985481346571069876324340059677382703076104052886389628752615166601829229391993868592303713267774968259596926173079622766997178852137417919037550211303658727943981370357936358987072328882325868750784456582081714745163679822103274765976369097528113521626943605833626149980473297313674916225980782968722009380914017485540607938319816669956017603442636705490446693765108419834691287295184223410198585235185088162923824936669927652480954209819954347548635862000308466584191996269839320923279091792239910081828240673529853052681122832594394568594752407732999100403963387896395806819153330773460388874688943036396485256276024165582842613878555288478454129837968361564289574626506288038728411594996795038046205592822702591240043809914904150517550282244744277035604088126591979383459165984393643574786869707816519270496395599296117028295771904282956114852906132881367600487890025143937682195612324107947642390716872628435068620928358442810966482298299375504284721958786529838423135031713984748820978825908880276910355765467568144996478187124729580120641982373068110516375981856639308741021322284998645329093228445717682896293707064295867667841506479557990662730183181651183266049378352415366568227891752706260926351404325830427745834423798275621804070640352385116715365960802702773269941133211695740117306995806384220459274101847937850780266233958391000841272617521067083400410778956151401650491668993055262941873865129699401058250269163363221257841935972912560117633366790723832265288581422551453812785935660568268995821951013285773533644938442246996882238607586175818688006864323722958747615435566412332323571364678938532232434828618063845414568950426880314564050615950210573943791845142671264246470351354675571822383283681702839716845569161387807571755324612636768623689995602668751968337697043114019877423369201678545387581912004305061427583520798025447086998274377636973139857239979701745874618625152348267952002358458383650913767504735129203049888236147442744894174546138854738575804095866130022943635979014454700438674496002646758998459080921822695685848203904781089083719487374682674199712071683807412656022364434412823168170312977518614312651642900067288768561159981170376123656157986118378784016273484638288425967976420713369255931778790774934036203535325531334683656342484296531684591142252313053192861275542924026858075146306100832670255367527089547116245470727886240574404513749968065455687636345372549872173525944982910904448135018277103981382058203110530424662670608674440583152643795353653726434009236461176926995274340541110106561305702113236687567238353747391617051583079071988375975176487645531994220257541133202893552960230567772456237372764718108255666613382063818605711117697629900598127623171157461082543247763013365229795101022537271366558287974491384656644209376812613116910667670616339097212823127201564246465262718869781966595953306683647493991871631731681483223981233856470531374109338400248881209607101066044130818856298985085791039904305851845617074762989516603227587064388138058965020351780935791598206375872399828592540237291711817598964959202512837089336440866565839046800504527999435946536726817146205058843705246812773311555508860428717809979802768337668497778990649395665694811779886299161630109815862515795477229106444426268767680533424223497678354733179573116863296625086166486572481530086031861659649825711254838815093673270492098643238615350683458646929874451062307141593573248459370048321437538709345049533010173631645014914004185878473907744760699644842204206738261158806874530531138413772210507142034110417782406337283635110535704400028202762726924254685311970112478840558001470738765360475121406734611139061250780138572101389024276872489541345763436188675542326507804352952402471874174530216844064477250777073640253703697439075802425542253345237641010437962866682594980214062399202789679033161780202578855552895390614689195566556972111293653144437524408831736886023237284908429257122963360916951824112366307413710104736696689759362539489445149639549759936526796891625405068532433460027539502466622271756849904068338974029357608425170586158928967244161877053420552333288724311264091929239402107968297164982418047299664811924343935076421570192106873613356533791158363191543926086909963076132624539569928655707931373270075945893780714008726261831537627204339526388539579508501907107616190838909375944457783599103740396165934399412415626458817818933166888191768066213134971922084541256024987440794321793366271259295127064387761749190342692119356754892999953606901669985841945910024727431343612167466241474039851283419855432644520009947907821166066197034783068965500377893471855396034721536234061548657763619088462092269274137814069973118777415536438587053684219487970538460050665623488677820978910785572454305158988933144252635142937282382575123860276175337233874582698101508132437055863651227100410305005192057583967973642816194954214636047881241017925855505656565364598556850438918672414250828139869153774640226036120192652437399251152780937501236506099867126586224058484341220104382060267221152770224352760251431865336612673208508596759310333276346802352722625390659121397896197337258496116987489593464882335638256103828663515642216488123940712330152291730919374892148479347557018191679319148848831839408364478167724572315032885654894411098384257385292209123457007460831885277101658023019014159327115434896130462151906756194169193046425885992976661035785240879568544424684437574904352951134753404753772059795974838641075393555431479341025062323072227768203621886965381842904350995630766626855171992336037562591287840197077240175778242949879505745405647308356345151338104955546958343169215593559130337715494779789022802995960467252246976096849787837031267925406880516510524561404901047471390982397004060798631847537656027224849164561491272193649359592872794902376688685833802908634439270433978070105350988276398211898982097759303461501703993562588022699411610760977218432077071961336455478756911048994061678207458246762268141997724589529527342877483130530616097290214062024615835996290859084239439153531669815678373360670316562705053035977482974343039301336377273347068985792745949029252865705156167537348877659702876382371255847679099567886336328554887520028446808838762852747379003070697836370790094819343208024922070535630356452920271003936315292876477135621699233794020234770453113124264221888513566544045099827157489118845720077846878204259847647259033863287468548398971806747875875463189192876295984565872222147721185546973806546881626752463667442953906899546968234873167888043133732097225416459411440817730181761646162804244706499300886347232406842341987215175655803389574946212739226538141791482621504980434606753383638857584244991652222188942126431283228210683166287748054570370007369022536274056310868956104679372480665255632610266899697875945651599152584645090255486372630923048146195590236290100271225515721773802213464482264415472594031404710419354124513324266087798914011611867992280697744502619656113173794673890766608170567654014695068474592515350722956431461314706839855764967800169772485156396946149641868021973109204591280868069755511733111806032120750158813297650596657192009971966056799727459940372108145416584022796847003433315985263999615282273021825414967114988921628674385620289800898307544813369615535136844535165666432942860413244447312914926750953558733111086747508754595596562346547843124968845030339943644151801522861364593620132732829017504868225851855114990348938282374525784562357252216074795374065463656765418131249587376253732302192252751951390323680284619538775946888718981458680741947922851775754587189454524346423393954883089702405583682851736129502825036838071576910110760371425334633789753831657947248904625630628829989945386046773202587984614433017532152776741904533556612375168416064103261038595124876856836921085291825835732715394428589982888322613934060220594678475448941997091863434904628036513699942634822216248827598884752416719576271011591196219696837268800735557773065464444325969123511520100469109211173338461510718532162980003851786629553451160850592516617700202821771879751184838061331717615686194113250694072768058204420012210475750731965978465686413343111708245704275107563754148156190355350261907739130810533943282947463963188169353358748599318642667304539969437595595289842266328184679794919287825467403581253873800573526633815759894707575062126330320925724399846448808687587268195761635484139981130540957277161234570006504864502461236774417944574420823691663113740602579907334558743176597587860192729044156849413092159396369060777977035910570203972930618877979676843203739367764620157807078492663808714684765548094325379183303961699113262113412795210360724945497940865148716873032572885302389703406597493396601567515944387323233552344327808677050266022079176585862847939365587961695138009137085470743191992645512417393358265937173610593021368132895563721227465093206841560179218187328108812857919694910752386230427878657271799851022219709951417714112785863889354414875484870473583737877435210681961558785480835952001024065560951181044534985065679864079805212172274151000283623811918519643113207772593785167717242127072746028723288587233774678046978545857444988977367557814737255202158541189749044350955571042831235732161635619256340842045297630056907165981633801910753695045683845300396102420767020702780507672103877131070913654174504090479159097507899504518810945422998319702790320781885787039425320073923913563644001095692246396295372556704919393799989657681066687138411732096989891822805415717894407303232678710620203137532498708537538980015092344702877152780854584432528538879731386028553116370425065901203327008319773694544179154927540123181827937684987256921952343932841752701944116953845476170434672169722752767070171265790282592589615849985494148225432593629297835922803344506797029449611154897963919106072684487628784502156259063779568982770133151852364550903451545595532564919199917907057636103353981718303939106059279351264793575694837737545755320857730392495909966322948283155744087851371002866378915472757582363565092325326059923306645052365433341202165212255287762575144385845358401117439981540999709306620589213359503131389959036183123665892105266963955035174591783723940068039982689923175105630425825348604099170992365457536268658742231983320654990383785576609477821003047740929469045628134259792554031464457905124244306780916293185556441280643060278271814177705100829076067294554072279641342691910979756065560705348189363526210255548646727900669353794105200028082829694651551895066293026586341965966737115545491851270591154513166641874769308639295203503628681650931104292211765963125389230629956043318675453789475591945027154760120581733329497234737026745672673747412850918103044473191573217246752226020938808908944855047472289161663254937301943510432402866119636425511173241220806396991103544527068300746592031196175390410533723070175792696757125057490178637261161114316828440243821954285246496807729654592259973602218298841789373569958357722532464854731700226872515912339816739665805451429193848056077673167432486547289975104060390022868965251013517327514545477122158487912599335158836567204814795324461205503588815255306874286205595458303955967378491914992928183734117241867703760749984433097670592653282091125043713505244619901158468134519292025396290594465186699183176289426463677810642019763382031207999350466295188900169306606492834533892272947102311490157798803514716259601770848351977769362266220031949405333627863337725923115381485514701425464378092881856069035331923612041935192963341588248309548462735003873325581292488255164772313055226814478128609049934313811260311853834841119404338097710752540860060736058704403480412342842693580483881497764781651799371706385490090256091423082729116773168452851433885727290398155936623141846381256284207390029965352687831733584906507952104739050085461984702767890695446755762120226474403670712007965995607435078473709179696962290297254288815241044592596479808256476852173559339181761600171444904052652569712311996913519849213942772148318564610714130455174282283037389164845632114363823463405019887101454028698885477418273572396102120988672359288942133087063797179042614242018897505949910811942812052303578675741134887314470688356465064021848465393901194867442119444514577836279781957414821867961172423357959762190666319704137016647989290766974979240487788053489455267551585460329304760402884478510221071438740859118383936466393895007813498353297963841441385483236838791846174436686519140766619144482406419744226258686520838712318576259958940908767143445933009097816249111242604944686532028097015376298413271378678376173089879086771030445682488376405949504305630854387590444004559758898565267230503604494732970254651429412552843655294439328504491955104455957423333650018657783370464215898639005529969380444313299958003880191621451914359554684041115752599731663296740121500443568607340784440501401321873617227336548096419422246885315696523191927805032730258948981859719023663028914288029375467128161539769147792980036786182094795032430285133489004767753498560839015092655699788397979094561420891119728345019286148414943040755446210366033261432545801992220882289438889127810367665849944531497733157016941475878603462856019958499965737858065998008688590879184942126207419638349939991806616653071269084222810637733999765658712474725580364874715953961331301263439787263166593878885462453192015202345989270813007580448406291133076130416599254539984323775120300391860096997551042285436847298788602638058028669352419221978246541117785923187159858849921558389060892606364684529000656903513999957358277747510674446217038194137076278849260849823675238611125458041279774156474888575451204218831610937693346013651350647919739300640422696591175865938779091412662957249130119748948814013690674340180468024175469667670553261607411215336410313046789145086086822388792078728074183413679368320923024627001359232562673094848157127247878239215948243809294683182044242683916169960475901343290871305888387567820873825416237932543582048442080198898206742512895033906492004629954852813147397614671375408232799476383645571983936566014614676074391849694299968386605661117296157667177820882869640690031555701569236473856805152643425954200253177799540472529575664318972979086828196027963461893531294575951669341486445939803103439286067441151017091084556003320292708326769803119199527968934767077249723201030887972427463193644711992733202998488278688789198254859794293484741390672202679177296550837718895341038614899656703555711274377324233354817102636385284275049484196547887345956616468020873099724118990190715087946232660912818891445171826213368121453563102438158965348487236335548826237801033818514792036175438766568655546071808213858892575805442237227436238223356229060532723549840068061144220731307130159051083343475198903882174631649108703868211861438601351174042875972094638326852043613276892546731002934704098389356261017189799453291717154429503490031097130194147029238874203763512749917059945053609265175698821300714522536192875024877270852919282096062537455370387815482887734096944857992013698316407592786180409797829611412758640192022568188088715617444440998776026569471639450828069843412008604291576472432365746407263471527758843073633447972894144011003114293227839773386904443140417542702345060647905395875750315095569843228255287671199465638798228180112742482649696454299556596399950629042574651135606074476550357398927902035972325264521048650992112306907221704352240893195585302774504578642576006147141617017075091713906009232891394277080865829113137028940261888398131767820160271040962733608262639895849859518641088795738523942563876363947722632425598050330936645573471421112093531846917381609904605699683178301091296195707833340826750881350516204821918841060765401133961442074767485963514174061193810593439077708712289069010988778114425421662265086170625593973090966550956897485452601277925460320158380401792539224132144005405009156430558607332797725224590893571524687419201313403762039672153497901576212692015243163735230324741516044633293562659304699277099688646824430315371156605385797964717787624230458481315195823124020232735449492306669159924445336234483824207147271161364533638865230050627728639443199320195762492786028343123818292339495585913408579878017743751149732367021350030153769451437923126873808612949694464920558280950933734568442296553941462970081946135988552330096764302427519135570501013492924772048506252186588585629460988783979618680812369681262404333422004338531014689494668886418221543579693137589639385708258116466225443164432110902340928666347072067224030293987814125145952469464265245623941757726362525185126143455935724147474853720792160711269911653124662382597243339137291133770507781601464833891097603611463785624447353058963283831685113909873502384215664897308635125786005985591339352737610331545139230267552511539927829778632753523516500875027202925106180754673771568484079098967137681096273405705998902317346371907221452986480975446323056531649390352979385545884026963153497505341208764920577534339141563791681253428162068456003355644201947516233321756190516075063724883666540060758822469710967136002325745920783883745088080578688035521590056940520260426970235648536671618826939919519948562080349344266163544367869391303864518702314229166596703352048945783074753736853856695645061395500390326582116360985618739631079445832531755628153382560343679726010708659626662172161104938198100274298175978883051319859428677336399508981757977302210929593988656925328242420033025404138684993519582263763740995198883534584715371420546709564464573644403657239032206623666947983160805781076957392554748833439154925065768369762223030961197622256113765704547375122237711579475402424641740792238958035974478927755788174444205475297670715396425244898144751997585773352183775344687800832884931845778168905550556207706692131142902305849362888253524622046455982199246088515235707474984500503784525880009257257480299738779955213911826194057369143071500836730374127092245940711793921835523821526735836184146357761602889737794621670321603616049704213131300936604475091766262690724883350598222940583011089712442388895682039638485307746684916329355876566036242054848605851595693559749648263517220915860277530412403335026246854013322390225894584207414587423365512083167711373238993104052751204512473703711450422265908104373014509747050239071283417676882739093183224148307587970390149052367573673176228622523775480123385965358163426272550749499988367098003419367590011967909796715698999560884648358877716938658717365737215986942973657039526354345110155012820684540492856251442434136548687456455197120122799118531194206619641158449241293124857492910058952553079553956419672178347731120291846801659663710012205818614238399064228503908007260190137130603109163518007606039944852438056092112955208003980193016226851203430002545700001948368584294033320988298155551420882363813093266986438528295911267312632808871083152399068465797764065467051905051600848070047831453093665898051733520304082560555672490895741747166086275098795568824850999576017469344375768216453141689792883572281764839256781671910210335167723146105578784972590337812810234704046841161264771570348569832279265217912457261290981077949950852724689631367085993244041252969774370141674006215623367582814876947629766075090272720188906125386716714903681908864026600678669048814094515202889930602777745357217015807223048075799088794560098399662802351975104975882005090432754299156422064369775668979943911789082931679677214381085910839079541053202669931916100078285524178637393283854477153251712511640851645116676997624689503447592133670315572302839755757866045371091851798146143626290680153143751843230002053080419242716215400441697615603552325069101960103273696482780455144811521759154761108008165502694621340811640979328239702766002334685067764156433053730355543722491578119454888317455907671170718247226529161686448173398157259953947565521849927738241833742349878317367265780040437833318028687942033944536149041751868539808494810197325924697231075428293830908263023193924582369013620227670043306423006969248113791008980165610446500853728348565126311484585707809027262402456602693983369054887036015374240843912660218412874080215215605875829077948471726953598663061907037575376841467486082820989346353545017096733828502813706329381891066834337830068223989913899188417276504856124718472977705514882597172292997691210996774711246469471508168883852568061623908164808294105784081482230932272294000445055747613934797061698284373909849970518670235354249371042592795847070775391691276116811132786338031664382715041000864642228400242552316464349947235243955312568402888132100737442440469995384888018915462138259138714124452333893024848442210241410922972052710433799801723655415006168195482626661076389850744850160061979048778670271437388732507239873498142941351167760297196905218217140880704953066941249400506030077692120521407115624817010566109123545395527858520660426880633334489247677381514678092429186277319367705197865790120266259921899915511646173569627027237935772962692802499852270181589375052657748502144781452546283688808008880237359889223620867017891043361108691680702318610133921441931906075504586068045830734506775616906327736662809409001151785434955229063076989919724454286485050370372248572926893702196794100572371379062518705105476313571214753395337273097021443175519154908204494952982972055497969315230132305766315017918048424904429732367457662728425538348561284223938106968882782448137580478084673015565961979434542558190015228484986453235042641863131795727517115413118403477122055035303525062819263861735231781501419251778897893717864870737565960575148549935456638700720320361297259459587516515049608271322676868626751360295398141749269837924493696339196240574177814769554476407568901499725788126880601989263906735951624743001411641510909658538839713805495669702578449419435686690539971378515422361319278429529578897626527461419978610734778583069200443196500864046609470780454123739905587805324546615968080311000486080059013156217285637307501782993250099132920015049836827524454682663794692735760937760642567451475802312803014321197424128294392499662128536789749258560259243035668741020080117611795742209499313080341773990482240023568536700858191111784564934223776795693997558404866408563161818248129173380810076608247886175484202794255324574783820160158820771875710502677437165830556120930248069065368364187849845885658111461960741652223718076478966621080745198994829129689778864317111380045136347800747980795527818456157307136029423734673783737591202862496568103908495375550539174492644287717494473369361706417307396237540306506535652715419903873811769453269863775004705238159661952395477765892985909969603504361855853707016563544347695606316150040370817833673079754077820684691335351508824190262487671860251962344810662567455496566089672276041899619408406112857392390848555183371375685896685082256342912356071805067049864688308502242013681540114965285724678271754232775821478934622257286970561938315419715958852888936587597765588622569938253102897526083434961741125833735346007264541042147464914778486015951373624677720358772712872323820985316191548056350073608547364932668336938810219629520825200070929104168882268847001931413964592385023927020260426902608293426677409146260036476448101898779458576011450406387550839813649650021208856602707977134611063479799173353904108956913112756975034933965703493934963528356578526900588808024517207494524888842721099382695370878717934190788381277595064729097859692962536910057007666285637452524714869935046425092976466382014810541731919594746826818276371561322097521614491219197220392744650589814664539975224315700886288137793401326296514938678582365112032008555459496386493421102326796435475615515379236587236419315298822152619046823310179241277243034371358522605924375854766679573627029011365444745374295191859423221283099139457533457115041107752082490322584732422191364346595942552065620472723754529583471477550362972586341778971988348213429894868948787263386165578954959401221924052780084398215940300898217120414448340359063009969351691349865399349126812942894952355396325929881774796064813853041183266467374575664994536118278097879228476209820802219456873008592040166865994808300942515952208576761733737002577408005880241279783088871711688506224636360552741220300370773956508811797254829619905403393563166618966029701304302828048848803091298946886183778367691014423943662344147666949712812468375867351016619534349151260928405789258019775263910152458555336984482053611712561907353706552253607107279722507448260523187216768488879045941628086477317664137702140675600897128995649239881940231918052551912040675430920989901642866892100835751015686337969983673657929874699125699594091318562291712276163463058610640407686287154497411626189539785422843002635242163039213710010051385983480557471017357107295565079167755130202399591095539130031379096692477229711156364900459410077226921382895100325579089642605070514814011706329727171956823577833616067534159037896222846740644258993451810684152846571626644469468227961729201227544007891294896163235459652634365667529100598022179470132367770125940328624404780180110419400143666598292047842309879485395132381326216356396787023304708090946564241511677037877537439346454555271214521198659429754011819993598735440647276394919612476996990511258205183548895852562455437514668806944700694917143480489961542898122045057740116309537747446975417862489564881998236007029133447233473601663039207260625557802632066164945757440089631919566996688870139879334459497892453481141471496593362505599191286621662412407248722169054081442448536841220889104427846605449204643038381719354777437359355114317255100304839732019420910275200721145151187807734687060343454096444331048889002724791384418438719241808657406044788766507909178501645235493979173796321004759687749993978480327601710508001029636880228631022751072418359838776974382799756830569905885228075402460169470936960855336898924854225944552834025055561546871839701260196407600332934889525592675971983859715380263586815176398181174250730636398935894607952334996729293351749458754801857415371326825908335968062723005625662838642640311981516641991424100654184446215245684655005153388341180144771379747631184826478615155683032723407903088944260052659806004478662496029829324598268222987877629002496622344266237365819489542211203794155931295514790229034384853086912647720698616245791421375476444354495598596543652112042273709141893290778140262727257895508724409279735480095622142860833307882983481659474812750095406261462403642200724358651990818884004517811811413272765125878612981640987915528443839689060960095330907394924347925236563660248448550622195787065568411615038354180664437729585715033101656813390070123965649305304106938411366290676227919496810928181062196893855108554723881234276333963032722821295341203586257960587014441341459785341415995540254358210650772527178804517993787895617417410933614380900698023810918778246340200189335233634078562787349833643010767764100199022840083752609809778415551202403742052988230976136368120996646090651742298681217189238300847618990030570479403722303726542768285961664844309174901931285987759492222578581447138110397848196036670387385324859096535678794920472986771959421146903089761089379903992881288169781227562635353379476910239532946083494320231632615447184315100942471428359464181698038045634842785562573998619930205308342492221996894327221106443688354650215014396444172204520686153612366737659847067570482020537104946494803901278302274032545887684216424944801266674412585998633587618023515790419557881601563451562078210272462176046281588423053257325900195026907974016635846616193513252482622734886715663876522967919409193738803710713274360513938157895135627789826930253890499647318399745286157436996939823756863511516165958098971719070819997383389806510096130123344140469488113835033414678916849464557901710151232598177654824170971758089236579963866928690403641924769676769364896792474261745154457904791723740393722055236452415191996873418258585061097101771270721740983645626731789607509132080946330270257271115867600265180063467987509014797643630715057077835485368840917327667095875260528840497711676462562550734372671130584933730296445377963128617649895037853355082555695998726013273380969358658632232158557743399766864785537447437164697585779387547556784864422721968619368728724817625488013424727686395070381693408105958636752045583590413321578643355297582251861616889652718846517867607520116019090676850714526297724531336216271133340726664869475151205094761811569173769353231076059243102519255664285182245624213163334960142546754939897417762174394129714676410729071130106464925478174495607592385175921844051532977187229096754461426473386956055527703796110505396786504464317706083337890607746891340784286243335854311942723986520992558661021694641760070108752535353621791720102841097105372869749194844801672236053633513108431102406328915538316838444492476809610267912470329613714964035169065260390190261718941907222226186829645557256412953102572419919270863658630609042385145039729878461917695657025763310443055512395935418556406585230563950879817773469925991176888340794091545902212667615896473862258962443983631114456469441573471727097138997640510566926997079816793296617782017470517390765056199725584302540341562828402300334545451881424900913210777176231794359307084869774638063076250158371350156395244850040518655811009718081037661488460594482052265065850622476066070998883114225979041813414660675674669916803029594353981512124171055871662943662183740562681869610289710218013859125172262687292927396216977623977851648519842744445018685815694658772317028533124651631275328513838434223240457872350032947855410287363014022858679021528079336011472494090191473979234390756447308710171895528716616584811013003515723354248443910199808528798944938829927322717709954352488662984396766845869930003749932094113728564835827112532585641072907156805499430011427106339916187332805764113479911394462606784065420371244138728072205071569689894981184031395991864450986820108857137340992916352800345382574020539177312821817989071968092795328579578460520093289542794312691784449782988227666097882876340480654798786971508948548901435763828760427940117596746148579724177889102210803858438924146564226814246879620990230690800329199271542666714370707132458488742098782328692854575481817270076643388773317698769366236452662615338098703257004997260939232948224498094117486440563801733746088721155843073389194546685355613204966456802616563605298388303413137774163063760899361222573255517342007374240644883601511869731419901485359265242443204852354659430592070601601748788975959026949703824879132084033114073256130194055308653727643112913946466292690276010313818616231647473198398945447974420197641936304102390610761604108732134502283452271457111198136160141630395029099032995481626436838434768185675148385101089897894746282656044809230070186155709099042286239926185385832603382620638639819460912705925276173493022958504510455761731257144021853514984791798211863087900813386761441131927291649278972037435337121829579941270554319437437295334427868280133454043849389387973539740341465236117704106653213238117146008608505232759940666940843773045694121959844274380060953045046724212455895605066764864079476470420541853441888646320322638827781551948179946762018171654118114991946157404177949433328747962869059510223661342605770122290519143082154267933132038237190151247711203891680192318656848204509520335324305978926084844100841340705566064273568041218350924532418387206315043404007102693552700384868110575992374054808554588087451035374090082566683107095866979827330962455536320400368326150299370979021904981250688173558285128862432520772943933801306919676442481209506858101128921360641536201821835792751426077491023501798830877244877810442204568443583993103439048786763861758626255066765015951486518758443884308437801976954115009565171710328749075089483503793753327324386054132076462765146125417694401376921534166256630290433473081582101686645438706716334150037206459192362391502772354148408918030347225504576385462239874432484706684565356157150808626042210176871717270030966906187932390725408563947140393134621837733867843076268945314869271935209242722391324625926023057800634285315785840982444254457204303407938584340310698626838328282173464711528043603199297933395049593888163211764491253463974873662341066523237813925164089891069728933092998118993870803106572011760271744280714464709801255175363004582523960848944973311576545479643887714792990235594188041562873268517054089691036189021190629011844815317930052942544420893378887988611532004582305127071173653740443248874195396921152088925657337188277295296317110583964663044509142110387904896234794004537696568823926914715478409966435037807536145749735381101554545956163562012423706049873410360003359600847560838451922536899485165641625983670010605556029128627859498640558279399706236728305725662583017811686131901036155477447017410855418577094229839358492424412996164863768233419194557279825356999922901764319500636417118169926866747716972152291619637586464438724338794312777517891205068147865654620811364918646055815602746931750257895707506262128902711554865307809512166238024897317290115375733168192733943171385680784626928424785826764624509354600610298555715449848281823347090535737227727584938802527125072444529947208776856821717037043172593952536026076432451207618382262837462522984799466858330908452228852426297962774831158576459797902109304754684686186406548533050945656203552666077818561451300262431658247580084602022332963319801696907373652102549365454318173069754355522762842783795129050411982149518606234028126725746101274105806747892394508129993560349578841972440727916004567515956558666296826062223798747503156827753613487180703576110737127949550356206079368976092290235295682573110787633221097868452349084762101442707534645093666563713431690391835453492958692098525735704613393260403965427156246630165922093507293320765320711960408926687548116054581328978469699086121033603523883173070683568545947797362743249542977312456541946535231532706399594737365663283310790509798132680729648548443664578872901513481301953064390548354363436615257356998554165108487406685614549286842427742039604455624043278994372397980799673698670073773668872554516829996267361969043008665045210728647566458500789863286308984307811620825719676499552830763614121085713617649745222470018444335512081356929679728881028245136280481864220932296382976832811714704255199236034122055638730781575626336388808519263321074622275336226436680279581810491956268339557841510490379654193314251916619738628347249439309138177574005860604409579176433547848317305879988918878223502294930007555067580666562472800517198309251394369162216144362922770504359545346357976644283326032501065550508695301455483553541934447408131216640854864176358517333896583429365082310813879505225855273601671574757461074269112135614157499607900960824772287421983536299963355245388690479982114948772855374385725204933078948205410931847091267242448841876563599479970144687111567400767936391778400938593109277306969034635215881386323256773035069520396029119577658896126247541651266040681150626856433250644216845680858450298152870277264884303972598765258735575788331555340796121431062420111119234418242103845401240194744252654628672124128645660960753596750669570967982351829794703790503177776057993966464453685498202603941271315895170668794739875970321934475442889840248946615628648974612899797848326708857428731098810378710448185169374789414074681819159601897914590891532311580717388475638302898745127913397288174045629125958332616391971520360507540448205657074904720723102120850895469003037328045263076108291676080795727774542599303148750896543872476827546186829205343575626370087426224653142256002895865354507914627335608197991863623538188663130214592007064314879829929478874323612998538649265966044953146500820847871178693268122895259324120258168143979444346332275495484386925023496086529193809187261367449270024966670814698174492871817969901715318096446733942528388880527750081332792179251341975166175064062104458766668231027207348661909722467319236290713098235261955561206417992888106934600904671430240728746757721610643975327987740836641755746851827289191530964248817688307063302634645281137421042166186072730077828282255821570293574035757499469926158916445639913900859609032405249495213839714721606762495301474534861972246152776836323666990714590099378971290275755942398095178721783132024295388837709628861359787117733229711731154465969761854502638683182098570208118448757760311322743663503449187091909744728280970294462385041508592552555820333106301516350561473418893442406768438110678732787946888039725231842287109577842909422983843141342260465860671456541341795874118481879838753481711649720264074382233108883835425129232693621239108137567136643483803912341691427224658966241315078225452021825171688748168860039143774732206608960650477645379010529220547387083394896078345771728788456791759973770107201516855827221290718383399315389447848135379750470309673589370571636624286390386551576063555166589305584410343835719883675186694260639382892328596443637473978442074646985717177518695664314939899457137711546637670677245466571710780306542357783307563892279434011885046886547156939888366288144343527032246833972717502272084502331232158979748141994928537113963110935224572982290926761465394331616063224358575382262650013896595600641226120984176117314660209935668217438772158338094625015909749646648977559169088317629381253693821036672064068331301879782279921673715795372145439117685283322464776294590132440158187501424302888630660702957270054329909083569211625782975957372775774473617831061407469971332328269380245773823460014509424985026815862858015225095996292485840731471602606232206038621056279013573772201767546833121813751636680403120516601695492894746390979792445074798214944126679961890437658012044413089923792727014572961332401753875023802476185018036507513229645337748803702446101654901103888402058146933636070431191036215642748498654628510244222570024102383967196240679267366850133706225698503232055624677016934903738247346255205546086589835504455134042929510128612195805145895547020300321152198242177689368643863378342318208411666742971485155161112701402590759057013463362830106322309560229266939410149331937603456827203923276000812725706067322711234445982507597456810972650980939727111047134471597394021363664293242756692519172013002668519270637473624298447109819082993190978727262521050973425193383702363638517254445227249030928294878048006936507754920652855754645689164236930129588229167672989250230020322014106275601824460584452853738103069142152425193322383411003265897604160580081539895854633189942969814505113728135865063876046999444514295086002574941322074134464475112843901469030164317336072955962744892883067576179985553210416658911009791883364973497766967266886947793762785856635678891086544120107869731086005016170592837819754736652587222097268954993930108579760960852064022902755481760959673196754248359496940528486876501184114690053227649542375401443461463013782738353273582179571324660790974403432690673793901843001869616365756365660190500183189179407048441820897572885058572407374324071996472444764411489763449884648686537690974193614216318429748340883156594672103956741508573354046044871760829605639394140148408111760348446552655761098470668957408762912371204309240100357779293773095341785217323890157162815685648535045106463667251248315401876798553697067674309545702524274055576252917879622619310509333007068349877111136517540950154495073116107999421847158174313363702093856026937690099720935026214982062479315533525781585032105665914099670234319727874129003466543604640702031118399998558170409280482135310410077805899094451788211638459139266794134347522037592437393423433050913232419915950643050796672571286077057121961916813189987398959263294129026434300167988546473488008581494627343089851310115533655871474492515801065240731587116896934098545869454164804720774832232611265669012430399569164730535257062215993120887772886984931996091097266324797303385741926610302375035636221356728802773533320243372404851048538328292522008118499596340352335622796463307511655825132762341099505381183957678972575986306840173308120682371017513263843144368400334571259986989050739123876128753139456443659947817799733076731517204078974571452657670556137481569779590792866278412539592259275414714720706177948375740402670993360354540444381258687058402262960314225205618225542203083014902610709975500310156015325985540710541450518502946512251708993301810819596151426318504928482377923967975188000266669816741179034552792016833155734841127895626279174162232894687272464825753604981634814546663932309433361085612538734350810957577334601683206011164520672784507475464781147764693900239355182457364539031155135959723768729725184757917432205401182445517045778321394959229280100356453793344486186119630803264726164074798322010962647239926006014676793893324709247388134614000567959228135960008055884871812671591616714224251273770535362250835303552050315781902970188387503881300551269322777031438332391922151708873264038059111319194392241918890779767388470656962853381916663123644959731075080675171448108034640307184816355206181543796759985826150640311048986613518134677683404373175669651196288582056096976769785312330616463484765287577530963670701171047119106662079084391691416311899225943870671101503572136967078084789350138471846362448844902474847325935731089128432033684764739374261087094994753328270217502564428629622812226383234948787532807793151267001777537473373370233020001340397140448612780001317498658617490866220219667308218339270181613735949669644253251767360048788812538722182407683977964038552017130766457942050888042579099834531206323173652939946325261446109529685156942832889473041642268163258345020700896544908626942963768778217265630149696748943673758495759988877548592379652409966258915320116641600404825059041154032015633091853542495913938177938476263490417634294767315359967503178038684708176005806975618903730619199985218502667791310078842249386381145064916361570017815774053339925718689956908272827803610686823283594226409140382285062152986095491737026069828474104904467402722663229820565597386870528412389840991184220702755435240057625882262860042901179372027458785078947066173798450588704038802426172053176882462538441475406797249537164747992120228118675222990086948111067508625701013508632008323990838492521490542721599046649421500039400858181202500348677674015625228449902633550346319714391489017516430672158354184185040331965441553075284913875253538131456663263246135004001161260691207216417303334559261842049922108235628826049181004692177386513366543235366964699729709091641728189097707917903628968304958810870757812803160632662292200253226997580292172685989185352825586833043413080141823828474136096652040060480154235242553301864863926787330373554621770573243566501723253765315417602797956057882650702505375447987676868283044495651890329636527685549503684831676522700894228747444206500594942165016847729064370954619603625808947871711506565724961794346206510127359348695868958829195642424759113375264551081203020569494641288963186178264265611735982200918617728271762286096968731554390183603521758579482963815017199038636939179308669743407068237008863789505662582737294228011854828338906837640520521258246398904553910938608015661600316464722149517457916396039511604027829072659991724535800340152054814528499762320195571272521177584184157930481811787509503487661029484723342421949438543482258448383848915124287676295872973598435439350375121538988961837280250950750320522976409886945864856806117149314160396532501440884999944050534398395212371309213352989251610935803175969797946924671358374874532603083912064704183722495227659483794983937929620916208922162636038079933452661146632627936981372070708432650673070020139642221384488751143328805363822320172313504717733988287568245449520045753962862904180247560833383636895218181051614918058022710430060830071169511935263699366691751841018983980629320372700916001272119910822589384985853746408570402661143676469025233048867357928416807775174528741173997619061418156430188573609861811389064380399063467582150011424898686878260454665722464357903718166766876844048406715142692855535204130478921404050944792207393174526252631887013310037163958810693312104931114510257372931717819982540703920090242312733445843855996214140309834976795936627469492893585925427816286084322533197410406178930315296412756604230026286095903229659744588488706857033488778254679900389747658087387187811704724054285369823532871351964994860849888977022459542072202104320069784315305965338430651770136067262478031196235759489068602069279438173629125221840401367230598835880257270746264442893188199762601244371089285262426340644744586329310036210470013717327881794889119710102842366865090527531479539346572775144634857352131840271264559504628654719068491094274873407818871016690342322737064514110353386033196711290226539861610735873219769266444192880998778812640056545251929268013250021802751315272316328809036993852440900918596317882208851341502793823769296745955248082890330612546293119882290575617451238524748660985290798487820834558855462915444263264423252234183053914844648973110880288196791365271442487508987097272056191799436207360324458150440123355113102538600795280676523016204108278531217791603362811078580338971206819467201477630151437454244355375867723402231894696700555092027433761270935120179224489287275677127979890277253374053318859259946056068718751989980013330370855928461297287563835251279583713744804475080384237627465762479661736053546844384158431032295641894393816229935549298536355169264259117046933472973302650402023472529460063084784002212287720749744503372496449337543987968212607781638925998895713703965270996976929439681468065719252193376898600375376837741174782472288389306401720152709511116010126610943526145388215396196680172822353706715050980438772935998455595207811981246559551226301142113323088017513669323514471014799690817737019721931887544861940347093702212938619240668981280474784234068728686163115678119773486811341022009249258276196491042323128943700841812697804786309233589354315031470354736170599446634730161070289514113964002274487999320065770379967670013923927535275751214890424103228486690922766083023118488450511808583192308563881323700304821433442174437061532978647214293374955809980718531904925703888279204656032588134341712026822780930317294849526187024384231865410876497655546108737949273543675999826280804825746273644394352457100270624216102094249370720629357581895140565724637152254749256956147583647953296762014299815218085083111856651274315673494968361936053241834984647455350958422387691878204308801595438656923444644168232631356879765312463937591024310773973123978542634036144946141173536957165828568223748980185184108656771744068040728113882765884345873750730991277509481574389742082498006581746439378390589865345347864415183952223979728039738646136170787691528729204580725661580275753246305488887059685217740045082609373250485728917890378595037092903104263265100254306257110834453021241755422731159298079354899900943773325853537789030467731801086749257930548513193311806829261041178670709043715426498626738135126180078412432693227990313437780661481368371516794344754428826421622305569794373008862634517996006048351235641390342035077528091167288959392158494371550417325654195412998104385313694175332935264741042158414043095737626659182782458448214262812989444025662511529702072572567994197340208930465678738405892446155206999327467874548670262290682169678783630563824904128716285002276999334218705403743872661332137325959445318107974405759432837809626407899713142679550281408141890715310988213384822591157989119951306036411756121657954866289329670650785459656703529118052931033583163470925265206390316000008215870440312313613764199998340283664410138565514379133977336533158866560767344528420451367333242374541660868297836530238675622396826471491532443113869897875995392071020811822039905065039095220289942822309823830013987865085922242960624255698649867710533372237082834957706888206141272333621289418471518119580720364465587493097628641099784503809163006302247451079042343776124804621934277158287911201165392586163199928602123998626698688126360080758046701904935389493105934991980517171371258110784363179070102938200328163503053345151081794486051750715459520599824928501092079291121750517940859025064782799759873351492199051745867047905505077377995543834377741863282950518384956786736902776530059970779433764834171803662932724811609982384245291116900764287424622475084729898256332227271214184336671440306053597383212987597450592361249234395026576207277523273084663352272632993092047914057693222796306510617051366945569718958906347217393640883180283350951392441782531406647967651365985894194754959516995942890163036244077048052907446693437146555378193942983074066564963283886410929951375553802368612626135431659552786432978710817164653551481121271489106878191882530650752051206187793996229655408610635667599482850957935513359316909223385712777407014176203033679177153984539682460387385800398310649896804978936373396371874135449187367959209718672566633742986573586165517987659482500525870619742854165940412273853533792581846373973904940926184418484482912681055861060012488098505724811884263207717714427652292934407491946136944532655172661278381968937067985973872746533876451239947409063923379992182462195522569544731781862008705922150857513505573144758355316295265323462785835153622728015783255104531882736459840071595474974369601112273613279071770400475776570867169160043562603159636897464685120174639617746710937173064877333624965951539460913513461518086767544908119479287393564287797587091011958924854707076084123362516474706654939117350596585762515465800986493601285270282831782973769697946352520963898698746362020891914269286954201628684385985986694638077150783122054136432231315896426987640799780867753041740081670241029327170042221023511706978885306837424439820626599713734682710602043122742177837302692815197231924720461976177071099063328518548160760400889386187993357129370521698121837749963294083744031575638043436384705037777234285476102960274961233414932804623627905779975475619839964529441290127592697843717948033872144427185697667417397456362566090811886797848113208117704518939736496079249555031910899701461927932832036672667500621121417899673926535156182668034605987828273103083425786063898572810642095436179284395023783710803040243989495342358789315490313342009653601337411344863220534420418860583145537684223202590828653833980108722281920553100645187382825026318475002861533497751387334431995382050354354463119448926233154622213431090353774988253760443285324108011827248334712117036695121922361818956527968506346082438263074024481862168835947799652487837887337906461796321363783781262000608577340035442289197672339569924084548002889402680031339045280309220269039827197485077813517998819705636348263140317021501541794467558659867766585913126741199107958029544875795014229507721464123048540033093485339092920825781208565646707418966932611026994606725435604560113916930327098321703092815628213559847109963296369732029415494846403505059415384960350610006634792023365999165267994403529804942221881647838475173880566898270060719150968426456231037340822597808555393818151389071197748119457674149513203461869809084851914153247822727002565294393291434491496227710625927487589157920868693970071349548330486123704433842230681173218007982492594536176050416436995879520644105125007319944544178435946817781310069979298731852487097453542727627417529610345120127659383091635938864788428895731895170290004352008312597645088038041111347134901160965080088134547092940744501556563804199531164845299749037266228006102764318263811506235755177245925520489481201016068395940449365967100535607422019229390797201800619803363788743294577807333936859258100351294666500910164876706257380460544888303603356032987801643158855825437995894629501110226215392338531712988703112954866510772907513654815445273857833945491245891870236858629718620444545736487886194827538910252630474334781075803382867944169746533005959250662325382851182205278566888724067770612976445317610833822782354782327370805367671982320189237583318471527495348247419033563999595064415679647989515187863478830711681996660858853916322795433210588237078639461259245995925167252284476001313840897139001453204145775812693745057392045222577722184934931788483695413981309354025769155156196289675541474487367437187982861197995820374125349771807511555270902805311449777696484590150633667704312107989148533306998763491545416011669515840843258368942931531412684099839269919653435756828893919347449061700136362001342568035956521149615141641934654821187235365688851304541922366407938744496372807420120444090504958785903129240081806324139763075814508271874483514427336020743116648132944535023037310956138393677778262470283489163081220393493188636357033364185635616585592329626793776077737578666654819312020798467141806762199896545941007343060515328830850891607169138170389225267228732072702984316751347453135967345199657410318291579527845243226923001453588568506338590362474162049259459945869124476696678133260486591990093584469265097717392961597206170738442420239740042892317585551183901554909516402907555023538634315212344632342671634060945671823308687799980367760855311396605891747253398498040601893454540321298890186002674205647869198875070720414798251957046286064479867455671369522628152576648524635141596731714406311464205328720135628035837392280304043874613600337342536785930419495657260150569200654310957971642893028440806591381322845855797810624954225181331490692321270226106226949925317958591470872068931739251079288114338120055457580703319422294714335742084363228157134290642344683098122186889697008361525371004913247305260128924072444025699612387519780916744157240824393353235706089910550641088031976680936049028452614872994267046538077567751404254180963560360596705091955573914954820541615760130484469791467176317323830627949348862426639913388250837333757595411084581359031747470291151818863632339242203587603574361785164837889701760011271881140449946012362352402969506789004390058989855512796765299547607615219838081601360633457826763595627743099340722546004413503808847184751731953333838013140867833430062969021603656386236871469406309792118160022025666814862960661444849169277386780923991837264553003168799424464742590344624360168243364395976605720731770203737911362198149535883952422759078122784304653450302967767970092239726594428874003435478760966176669414073449764426514422110494673332363265441737883298753989776852407081643128982392444397326380902611395321983723828755363221558937801914370843134694481991830892238872668110380397582665616928285254569069621568821949589459502347632275128918684711281662010044630112479846307423741053152159167569120298195583029682056730820865344395116532321016663523263095959054169851225668827930260361973606051360198248289139833103801681665557180238646460189598820042155064923580435052213171011358935525502983640176865890858296754776283420687481748089904555025913955758285576087383752781776527365299358303596579402170869897597725651682422194267551530492713167653816056642282826105775534706200714311940977218787485906631261398079230043048805157236678369294644412207281693990785811643643558040846531080745719967461024343822996969230156139349273954483015477572729238102825183163534638324137604648183804527644205942154176229385530680442356965081982921524224092821338273049993181828508117017151406700763966181976914795644055608741869831132995090571478061297498170822204892856977965241777051892030884683014555512273806606558360256794427589770370759585497953054159302266676378551476934505548087403120960663869845456840227583300757573914473001168865759077460773766993194633580623603598312448715509432720211765485893773776622885107511121022513739935032989218427144252155955450082417186486306203430307534911911323901230867538881619140593028581693160359706652588129629400728458715406802040478718317991629836551424824292936782466338163894642548154375465560407859471021976919819842957033795705507326722706220166218446385599149855235348953528153585801938196790299084033783037963543671300371234466976084142349355839748552390059066082805805682281870505059699285956483942933469320520114687510334688962546724296524314994757916192626956392885807516724300808381071720960206434226914977241656069474717693299163973779890146100787524158692309272290223456325459734815988167874443386152598168694329229946844034161323973364598391014137420401616479247652240346619329771473313022489151367990455685370986258192570068052181804058129020867517328140255759245258103987575174022442277319946986051336909684151509790180189300058423237243806139389374497606477253967196606180873304224837910779616678419311157809082924818824626323923038575024421497005934222631232224335538557960213263455869988699340505059584000793075368015505913708228349082457634657452516913432970392338416200061339481657585491674746115443756410979473342603270751451883362670290446325399146035129542682448403758908329763192408148811616621877590728221107103806334762469931836781160284910064190483872308589932731430583862722709689461877606899889526233308596388310607400373545648538786640977455709560896429870338657151369505853484098998362446204492740220328997557831426694201266794349064152941310094469387243894265606980695122026240857867830467667210754904159256692034037592158546615423601466830033801217630710333834106186514985644696147426051700455035905969654459098126836630705666252968227862196296206972839987766171179232483649119684859401907730471693178111801451544138106702008852578633293732752496110079578232299916942069100435566047167128600374081637399020293423704137721804024282463225727498518394402840593248987113920884123307103804573615340782652789603298970193721508024905950898472867719985325802520835152613319236263242488185221395710937222832994373731819605729623859323207977742989033583120440182948656324554588709100125188875966718584619151986590503530379709291185199983064232616260767621840340251161536446119322854421750009957923124846604694483852890500930313183859426887441161911550153151381040394921725003723314969945229761664254228962843317251036236093253080799165126243485412165980427365319941177910996070515909378578792997907724640030551703213644263897664906279305967796215288805059282567705864886059841473642074569955079227945962511490338658138650273242924303482678990931966626597386570145735630209761399320734008873875900136732895598492138177290368851778616606628005002569694733605826565425105947794485506269186543408639252420617089286384727987962918703881606863507221827421357637596170966095618445934253595868073335504644208548140978850856234889894653796508046689598195312720518545582349033160315216290312661047618830811545405817904824266770895967632430481897866576576033723725569883086637064241241185181940339885798815503175838130198515679785887392974584801851885527362404059141692645123615410798565249132400153058497374150841393723442135310865534888159789823604952075055797155111995225775095251191090885029009767393167455278781598343254510152676272955446833447789308808829174479429275557624448583311051380731182955413901094381869816015469783702092266993755978582842432958000780787122675958177454089566007594637253795344489632944039530551581455804304782346272213092521955016503792356565131422734206604871019409269364533038529906319057192770193576025087486176665636056364499878227122296524490293187130666370677032181630480691307441045937884817387709114071014820242722800320505451555997529699601532146730354760304593773143913977166306615830168813222074711820187241895292000368633788876623687474855447765166270642315337545689529471649252175089740436000467437730162979653459272799897048864871690441726980431034321863262025800087851701872690077149498639764262152226202262994025571925770863964305020471509710005170964944461140130551623027604204961957586754045561537245037055902056176144749217438521730017698267092701705950326980611113689243465556151077882294009023578490576539765528464775185783099582797056082331623670841797061119343255583201854076144986357432027592133966771050958762223093246292343906064650258239390042988641927659188957847341065341612662044117807582729478538858817610373654177849143698953276229760290190264713068228700141215705960272414012128307792403619558629402513501979077437484508076220376866417166741298452477465111074492691318489307841578639776782406244982879106114542363575315199662367254618956211707692005618656318978219457790057407106937696936107381369229657720493173070367203567573771773326949854139767485405145177447166600359303173645353545418526782418600252834776662459063088622374121106320034159189217423714644527444769581913754192380633290852683603511460147000638811450643905420145147704121354991881073246262670132022684054636175853662136990596360160384723542092744705954057102272570810380275907552881857461916513356603719984274846297177772568588795404955699372237234442789436023354523396378862305590429787223184524201252875080020162526955240820655805288669814596323363425173846425958147006128974292889831378491770028753929602843692192718986997585964931699660354540380248046386466905616800934850988741258336134080943703094813389839781874660958822594505352924861448090311801998701065420113407394149982399293820284078485211424040161232988653003571179898056698309754322910966599561887763047171039320582195748931416222347693113776780086200417702295783319663331655539142676667088911170797651410658614245319024780608025052599045369285412429322041330723442397818250316198604964304725838855667317117658207904195440542723252194925695161507019807179573242114963359558333324134197822908471797285828322962700015958222817276852220757347371393050862856600433079124272475921639225362837599904040313299598500478608334292607038260505071762771833462712422847009469837368180045415677325579592393833492565635435406799540965621510340388406041186456322759677142575147282739883854469201296411325443065454745906085985838156417471985188137252810710432295257652921415695387061561806686253479221762975371302590641611964433381244456289845104806062564300023427824460663852615498002679101900772684938829223844445225263371393600970099547417922869669102701457780640025083268027116182107703169428530758396189332938421928094499733607817757958783407273895135220991580465779533185503982184153788744168933766609459877773555041515144089369878954031639833496373250047390164293338104925104488022773019019686411370901633977704805393583835492729586598112687015715133921163342280153231248949313963823506733620133261908388208118927773563032538172465440047324534302536854547382827754600433314056852415157388321745135264753676068156501345413819197688657005392388334057754875869528196901696521321582748251255398543951936493438442811673165242551427653349067681139976002980886664748026817724223725885410371943348466937358914204797431929586807387945480221915379653625632411197002741684426334371395036099750766099136298384534973903624193338182806312978888123340523982701063683854094154766849134627271590425403602346000879978078314166360647048045892511765836175920626337118240375931843325354133881166319975740124949597798847906040147582681562487947665424403767056917368929316339435721408025598362378261901940894398108830671787716828439037991175262933812271946275026396631516746087307795028888591300723052093945732339114709759193544255638366217467824070046632973794021309449626761295367230803125131695362449597619747214405564671506288002398676837246312627105516632586022315954940664109310448774789899701020831342254505678335763020913725234076748946063724984017222578521943818284340660800802872350562867634273978676655907029914814986846751729435079549352540651326330280633545001319593279346140303095995845694214700123597971170461490874610649864502559442304946128970212152108863030241055636880522046291168620650916376485876094102145135769698024225544102324916895108402551897139691207996210662432072663863369814020205587851215731405018056456177065960115337371019775376863790424108075833471734418806889687650450963175515745174067421798707750928158489570939339219914040847210319251735739519570616119879391740768549538033860674111618906499004306277326318517393290705116873438144382312241487615071908944351340633805660598927705905654953001839982024941530176947778338634850472850891293019094367890418710266611080385297230647222504741064475465783030905734069087174391516543618020206145200995096633127527961018124334157755385831241723769194645029817493494511677549004341915933300105974442579784514492693959466496063892198522261365951410817244953233964210397165517482633059196658704688021292971529687535396055923489231846897126929054689883375399677734629737849222448626262156280149651365801754939078550870515336738813103149487214995517179913126873602475845445995333622323980547511000466610980334095429981800038487127972553010339983781595706702137019721001840200294903427996800902545458840858716125090654491573525828183106657884261212410974754289297021923119775995245740332975763335018283957917351882922279685296044421180601447774470294574497562842113999054168629042318342219104857862902810456353398187361285781157258590067258309413049166237828634663513838080118636373396812791358083368786579686882418317727889324633623916000293500609262814516160652064784237136705102182986905923751509881362050600385203590357607960347708071177624531452451080871583998270588724262156228235329160000655556505507955338284000268732935671392970949578550924059790607811052369830146836051202708016947729784251032703365861977385113375083635923431914985685630969256394072376779594513146527042576580399196370130340229249053709887442706997856144516201909922810093483912020522353905533500953176654253042155891696106060253015544262595674409441162966114241409165705914526165039290133426615729386915146767239692743053914123888606604732601367508337154822278772717373520216535149576314171754456224003702659496402455441369481023130626878601423587359859643215974339766018362159703090827097411668551520418027423870405504194630918946019670846682224888358823809219967670366726595626625396789295607183615168756515659953846394971998639717663982070367582482863473744818732389437484045163623460494949830829317894316912457072791031306360742329665294245484717118125260680098809333906395784688579667641136441793749325016988384277870289348885002450900238601809835823000669149838855164688717230246605449419896318380198055448136248671541568384535669093238397374518595070978602502902229150243819791722907288587027008733576120565448301651699550018688844397139320767818812767162092283693895840593021572122136154559289969705586110865784916257841816840583561229823922859608561148826170385991802891260631407369146677293430789148888611143438425617829991941431445220411491689871008247932034284062972172470792141385777197187575971518938268360023607797887429686122226171130609323086247333521199956274689665365474648429279857045865290779873414979958620186670544345829892814228534295907814251357805550099956479594969494713052756801688767643885429861129326207755282824207391554284317734440255449205472818234616013781082708440040180536228457644208865802626715207183191594675014727158831334446389133883087299898799833946720787358628196980746343416654436056840549337313659911006433428901177359603803223323845755565012290481983548630422479090699693700484790173207732728129494513783563436879456374857947237810093427893433468820317190486894899485280979152130015469904292082899171097699753254612383367759743976572637960768253493947308370234117370225978605444329583533535627552514792576355695817221884257656022416133517837097559254142118848913779771063141809761891253897047466735780699726733013969436597324510475077330690235308952027521188759674147410070671174455522374745208529250660123769995687233284051441910108921567759839590587128046485161580204399976199035439590935963164166353198035625967112087132754032085480766089290900020964578324053848881892302125168469319514412525446176913121653202645394737814641068019467955870729377239470264764170160395000558617464491730660050011733478586333388858882312008391077277701133608901152803222900577486776212996213770644943004859442790349856759067618782939427826336974859619778844999572401363109831960021263305421995263170003617185499258321290864847933847570289668517633490138090348742287939711627043274313468113872710494826963132417967049989687682848401718389605265135627172802351409518554843054552578115992557429618339724475891126541310231150163133290471840573451543400290145315148648273683821671067323989866616246836123003852917420972570707911905191991930914137155687762011690051382957956841872115931200306299133468457945283006317497628125667557222265885293539199340019318494943694241242216279300195780940894239944946173513776539582863024534320339635650863395437498753853458129983918570017599908857937256528024748094154563524229447398961673547015285707857956924667979590251065506004316096933436295333689036818069243280918174970379622826797418831419489591615779887643646280686015300720330998528201944685148623608158876762950951565446582824763234605590670349041495369245501128565670913139167058469110107624078347399354297596813916869968638592204980184384114389050457938697704072547450847915037386439506030644629727618134087898953802420881156136148220368128608159026367708334995410919806899376850033662792846256269028413622510284414430021443348385599377171183758536248196808493546556702018283625986198710118136705988161115040827420554620265385447363299135393155712420582302737732788867220219252226578457537325084506304680499788310275532941808953168595891993621388477933002121733750163980454435954261783660682380074199872298590037164998842603428667587455771730651528986815056282485246181411520571081820673506924714981923221598525690910822237288039709046913335912902448656886177948529413062427477665838932988995631239188373466717332106001016850409267628133891059953127436116508012967364789116956344287271235981964164383350581489177524687812298245254917554885041475926311641283669965639846153640958582646233352430265539894881527237691359203454144407195757096845726216697633836573825746577245788816491472178847249643256648838657402396752457233016157811659143492434366492083647208198372315454734112073374476934396239719130774416998834476169055164753880107239928611932994010212870070702489153337840804623896965409007101743518210010542700116193331196230770350218608643618598980548152871873545533068934874424476173850734324515153958953515901538268985079517969684874081218448230022379681372171098010434570319034480007748059204254149833913661850279726028582790728555818704967514010532926749204882457158590827415188734120079026146279873812953053464790853926299415420270669233632781451807989436964130340135587748005850795683072493986835135766868912895055940892375851073416396996699410944665667186233429617601028324014079124664651715431578618124243197250150814445105607256783384185479865545583177088338873740174993645942776994237713834162295261201100500646600158271116387209703824091476641225777960332738396685473101687212819916254436745102317221684023700692022174765068122491272087092389598972699493441445214173741936986964855707589150866171240712191268486838210245958126029530088470590270099148105004507144936106445253615799324081472681414991117021756852353628854681006793749943167642253547587642830315280119648562827671708966812978716894744400116712626040673179772374131322207018523610103097844875573105282061807575933887335678264732206093887076201079247043298922564189903719246612410583811789682819062059465045407562446718516028346806156316603224687445118353158535859920172948324847911638265206737817038756756921007452000684978887041671602913124696983135152457635879637334831064345590666600520587356532498330368268290207582190575646409017153101309651834932262154578499925470950837871664765019050133272192391962967881387200734839193419536798936684401770870737889976789528519143625201921693613292985228653744250351697920782811173005605366217682712653947284571611522695871895037620968244202254603751608971530930466916866146663043664399174936167459078879407266720486453762324573569960724979529697253138794051619768524755623101853906675770363409188637112035662501581512747149931401167929101255154326311754496214439526660208635189248968827524481052471237811211784507951708251087524013893831689481944988673119040936288167236114520914769547580737088604161064792138524998899794160727226341681287448087223673455459598404882018542893532552780939345547201604351968677889609002737636732458808816265058126582160585726606752806212227656526309335803323627225193793050228835772070792276414374814641842339867738648584917527081624317464956892131834444265000090997045009368999082956293084950596951244339768969999081589391303421143263446963237630497979955691297576089367030895632447314568363474084654021626885029745301905409268973116790253679658996178582091768016009386315621491158030030942196203740707097927091817198214098044720092270722108351929279395888800229544127908757149912057727041270025544576923725812948982793242061751149885850928822143542327019548868180320294831984136321060136143729779234233628347031652336942248736552120778005378310050322268156221047561422952033008880609352345735008740144449307734636525674895383360504383875688816897745643001670995386235625044867222468559048489719152457723345226637289353948574633223993578972401854421946106228071777859071285148511322224782306608806533239728834773477705674165701658279328230589809552256953243290317345339405408401667112406988548412312898313056546135060630486802558521276393103473124687793257473375502547696490806107401356483912695321259036977860060574114519317982258634476332186321936532048943610680163128061852766780555013486192116156440983161864882625579432743890671297400753585666471058631277064258368684035644365507935893645875138867908728508817593593004530038612676903842862396138443280615494863940565464565045520803430297618000854560132101060666157783526465012118492432136539211463548295619606196765784497504351593238908907920970072001183658213764798495264993756645029915959736873122332081071840934161270015433144489224355991022858221091695530203765857067179676710880258439526702901073461306563431644228817742128290092995581130412251020498618567660547314899636707716763434348751425161990024332501885786903357128002374783386431518159984395122471525598202443423716481417823992327419364366147422262373411622298818909967814623859314136353295144306484082443403097190665858140934084913235378902343670119584415477974391862016270007918171167083358205678452057736635446955783407286979623618064965790739643395912927001250241837715067016109368563592459967123811506120619820650491403727190842093384285535035698171504647899721690228555493328523623270115656314980035257330049278676261310239239062304246285372435094101802632689746863269714599684477522783627828614796811608510095033178278933575021640775437049853423890813413201189890990645846544005692749128974017912816152575162743199242253625372608502798919016911389223287660876128550201956735358097254010181893946480477872878239150609321462487269827236890336376962722294939697606163228266653764030535108212791345291178711311271330546380679161851404454057966209943558281945540597625826642239070042086740784130057654313207938911384073523502587112830398122631568662720671745341738900931317944964037956599026698609450021933259918981032218191145883995504826068410743568320085767553966853428763301668074947079547754517756622024091693260911797375843625979842394841980898892216724594239210994302579915735960121959293947840092161297803040464303678548381261714218671924935091632502810292030761337279531778902408699299538910188865410890046785774835211402136426966354764749238306315814307689138345643988541457693315541947745895498792254836047994288125623618985909206398507349585068724623099948289227830235447546113262313087348413234478076296321041955283302184497984574342426624905205728187207103026175712995059731708801010540039659975463876082255193658916851330102641424655102697047544293666259862378626572999703931893241913151891895181300816399378232218411634272429459849635558801904322575100299281759266040255641783374101803772167502637123483003219012607601260663685781160229072742018321391179850350031716030042476078168452143579529324767073580249708311332209318951623818473893953159316678390271936343816428242902775543329121277123873763769248040849053270820376457196071508003514901839931953880596785230719628331886432308147755220531620850215781877408080983239255803988463946602745992489413679027713345019630087775319574081166244146679487163243256247331699332139378543648951560962266381800394426368863700934990894399075309304678696742425726996223373535080668105647496665801615224675775726459773104253594449341041031941172390936663298772094044711323641423926647438257178434854032784805864372365090397004630067263848331601319150899546370014215154977183216926165360680305256778640710230949855902915537023911847097666916005374472207150023769977683703175372351720460897426632729510396158758356039931002372479812983249904385409726057596019913688003762358739137759632159412269493989835791402001593973835748620661124827581081150131522575399826653075326968918336597725996703836512786182336294117716107063882525379783142311610271572146008808529860853595657768707189039248584596342339203347866233230931176710012994837109482373426673019260624388058645720695922909775505545678770900347992073473784064776361708858854787005498350926214671159661737800527928458255642333989703304894236501716808051573055463295452707368573170351201118264712840037309358327162205477768468942327980288912243924374293856373241147208140715101047471619501634353010394636159715839109834606990480898656621105197713639672498362937458561260629718000025633980823083896708161895723753025184704128471411236617758612837063283637316309869387441323136243155728515174008991403546366098126181270880761160392948868671385866095609444199982265497393838041591452985929852661298773603678872490430478184376058491075445468234790257987789877575628990047173472321941846737409936584885187476028094432145121085242026183536612197057752819965479822404949981707306352266674733449463295726299313354371362668527034995215812692066279880273089198526678969557174523958864105017745285313307888767238704848649237943511641447574963144931772105224347729083560854066101877543755546116952404870061360463556679155773298158279437478080035360214291319412219599613838233278431279561404913212813772807280102909987275070966008940060398366961559498884693570135779826201633218676852106338540047067139497871784171073496187832327179171640130849561436533176426511470438736553752390762321034263572725600032400769557550519967430900146426177180668487542237641577121228712726015831025320699431940433313736776469934608318453879258987268521694821752658432566760385549556148862799978742744365291788278204946521753790606681854618886180794814385882458721284556806297039940195336443508917434194365865615838469609246649663593225966691437825889522891073223406546873433132153641421617082013711269249606160814472240257799235728898767930404006214815705942377394384197574873148228549226421506381547570276025653949596816479083312083858905112449129919341870745097047950668298923080530140037250163501571091678775252865752340954338624333118062249444259701217174006931371764644184081841022195074574316661341564576759068889922467084226662801328529452333349003641047459986096742338824055156569165756905061465660767902836707852150105583412730314802372194529237676107359054299676216622147144888782827032761788911034877201336297940953715628974896592379739478596797537602270876447157664242560857281287125195507503327644501297992720391957162485715296092906893019318499439959569898843745935708717955690178702813766112717986708747761498912717096873558664730933478708194294089377982883352631180882748351268239291000357648515292374461888046548346699681016102749092729906961937665439671044590732060403700435482541440896877277930065185725615704463155151264513432847893314410740722505770007129215934230933501170870954602440685781711272013892246266005055760020941171211892485612659959213221366935417208620244677649860499106249747123912589235984538281496731242428697196890187687070924425989850402150242709228563639485906428039170965460216370976390621693937407888632472428988677401528927502637930428171629694739068565925993314736969871209444284354308707299823498692132354062810363807957012972058038166119536840421800649082735123900970165491136685697275162256257285396324757858545328692283435270903992476119431294992252119270586385979899061832342443753089095829830043828029959618492632043400345788710723160867533760163507713109122407625301710886347303684021719591259847932054502043111392757461973259311811755375552642257377303024303514558377748805057110546303408888451220844495955383304158819257466604728061665822303906016002141158986482821222950027481772502056255803103906714469603127978995838449981207309901611573985760511441050171493302065754991365508776836554603495817969466096623631846026366241772875213856693788788460917675090982764336178559845058605537564423203111652220059166366729197279069462156706064187662128820756319900111792620407836005450640591367199915309054639737479314314241591825659589077523367324880134559797912428929687481245816237433658240659432699217636164050093693782401975755393265809501269404172246731477604908758527398875974885473883595259586438149112912152296691760747291548755324919665175397379102178776687621711308519357316459374896383509930864074964652054885974786907048697723317832417593524497831836589332885836758820395457314621889936201811996247382519996139097349989562609847582487882245700883110282779057642638795104278935969233494331615366074054966452706768021708913575690525571895690728720918799707470980335244047406063427901873898384649762700877801088368744735580577927860845691381946071230331423464621518120557282354348270502687895816758907908856232684838978674694971172650987918139155165337584623356600849170682611992911683291418006129495670614259270155544505584555373204293900704599152737124353728024681637265312159966606498994272972870584812005244357853497840849009260546253897023041509761208433935660305551234884516422190342321934909725769593388626453933254049640771399339465158065773515518088966593341459337621045970005487684954844355521002045124975208949259508709440444882961744518045869334557020400244820379604357126762968622543185821468140234237617568963094658127818782206076993026143231386163455523994221125658727565859807532640092151572926319693747304096879759725128736323242411605694808203469954336419186714403705771490275208313558864698899573817626823118681310525287843356067453323814483550170609012945087970295876009749450238041931499554574665091710727203529899643425984630694053677918449275501482320841611362388702998567068756162894974207774228198000521111066629793772592272854916279578385440791435465129707126241971541174724765460118585380838727663746119762086876479745121289870653033717067460435571428961011599982130712732474365627260454553798087294581944323113745842519275306557520788959839949906349786284057283496776990229879619169659229149642769212547222980979392360399412767858475567289782016963506364729843771665097946434331296302941663002281635290917547620391711030900591203417517323455281201594776773265470802798957790894710087707341032920621702118211671431934868217356801193832651056432375486868489366926330771061184353090555168417535131086557307308958827787922000942595996997824077614759758992500530655422850732789289863247248688647001527254247110194927434370471314550944326506402100306103801741121742825351569359352778430509706849761427362330975894108402811292503707110637796904708711318558588437000309026617231542097253030272387353987331611638451577656397309506181336407305397865165304026527655921740631403230105571218133477950756736843777673163618440354625991578882109661191582743530095851818885009502816703207993324011033321192280716284798351485821641082532798791947903635147781161902550720463391533820656912653590618282726640564671369595110563926631846175643822405226428858222183904504061553252876667067335775864290130617803637453187328696389789584398797119108017136529409175879211511444014846382614224145906815108411888919453851502608084579263592307290910436125365296746865389127099476535997808843107639562761352343459326303691314374802730845709388031928504753979638214348339115085607941716876579559703878744052896784166923141564411796709994726088932434711765226847619946242536738314001598920497633160941203414278209262186929111455774753701433643807614380133222568938713978206945588571579721745633732938613517798017310669625443810019087809366580700448676445740834421894494640969248275604082538268654884534447330530026492091331795534991993864595880191299795191298400347928812955695462891001139338453312878981801264148789093284520431066072023346643628010490781722163855363744035396045616460094259058901507854225867641470141111166877843613412888507340221712023080839318632793201227893098239710479010912034015184301711786624638080364999002080547132097916620560967685944546589044654805655467281554932776914452060391652028856950357010744940298451964433098288936699861677098012928041108660847269551465570804734734537131893541648221737990118682684545021138232115473686094838860294869311400729198503990211708093480128732641257229620697026982690263346103364882365118351613385476735901915369929427379215039298646335571044711599205683407432438994334232261554720301714286581252076808684112472136614439348002988969327644278791438983863021262077377311112238895086491350133581455371651598656169439892843837891072827895236254576114190471186909953854942090100609656471302209754011273219940573218505486852270922492057559526738770531216898585860751861873595862796625556528531600704204425800077556712188497658472005708147692009959251366655725263500511778884955512153532866962462472202189639656496699761934675223906033956945628669818288191956135376084240697438571859154317245299256919052081689701281955612505389951655211221820492360503387709988493446378973607791413307240295257687680913353895069261388557206554351468674405076608074392538730880545791680037138774052587592869050021665860652338278544537492432811278946309335184575546727042485665498024005202148069394876542760023302511545708292612446996857170539709552056613676512884643606289088106947452072959576749584136013224503852769780724669107583896590145368019196584976155908612219578589702424663509156567902894388350906482101504130482730350209170486295450644123044041684036945529884411096227709970288881822125436887531433012346183233545469417013468037940963300365003161989723225430439149045007702415948423287914309024887106358388126081759145544670590194218762156277152386437431262974570503431280259945072917004090405979440519958795081671359384720119089721328234151326669678498144476375584273991533223348764538749011394599705347917926373145554091123399466823132120771976262885693824040011837561672172006700223651918770576359473326594883538970202147639107980941331102868668397617035277957958862206855555975067074827539837617982870571130243405126207493919191946770391521029571940967034492270406295332970530597531982012265021573920986836804017853363886413468888375452773383697692828987028328225413392449721860515979778696366860992013451880547418290995842758219052263106012316151443479464533324188798416117708145860209646140313302959760310042461089235373402504473028946180108086435561126257189353662135280954873437253764737962149116335835245271077308205534317566880440548298818725623930473056217459511737741143130086577643678410880657863065766563368461537460445435540826746208709011936428393455724477238262029999678645814999181380283351190578659442069618956884094301208945277060438758223268231955018247076156073980193030973099642200331900969989278065364693006804802239709585844340672365618149854080765751678578630618898901900902994859182360283481240705492164010977994260214836699130481855801452272917126716235682171568868791959459493272861447680169668853583391299539846013309157852173921384118123505287548938721129946229188658536227086560179473731944945125490770563347674499373690645085570149758276412552116327568660562027274671230640607720501597188493080758459238541621403107365039364387612739708456821915562458841385951253388351888140067700170103798682065458806166401599487881377269066884659821865052422941635681730119383554379130002892572750025625809881346722786927914455707825510147838911738727849700104326202668093342093665614675661062221767744475305997530947810831518718719869613240958896462327909961990321190255750061121331607173761410478351086611824307733998667034418259057050628616526012907228595511751157378381800836215716279844229510749456312489306633574211613546261270453308508547724390965182645061329238363831567260577836840378731431398798608601475420861134091918941196681730333531216186391193634066434867793388261239763586122438028912361027879131564741043856759682431471693768507553587624306664260623833928653877526326378336686909497839417591727006445081026678973167798593665192304198418005819365891982005325703581152340440366485778761758809593341209581568522338736960491638315082584668225422869487203337269787146412340442639089655456782099876963708611894244430006806477507151687883558907617137216553636651618494305063087453933890288012405168313376571430103905395214765077991709090400740535402462371169284369820312673526650376561086349823579475114454271597249851609301186207812967130825045873175882379073391889079728270879482690746858736864907294887053350580194928704121541032956275715741518948677557424056165741807978235953082813952461719296247296932782410423641800695804974043013942529581111992748587617561357900552284284048348687369451723949071974011923372626850538391825873447305226135446674068001040863990661798444987043741727192599522106761619475782654081154696712334381969809069480542176179730060353282606958237955201560149510292780974872707660304071402994090580758869014612018630191479726286809931501455279678472827820559629086950252324054163097819851551967168388948933166956416120822156525641253859281704284824020036279340883073956243547892321744061026624637843396861067285210438757141978727026908869322685236398272373675788861242451338367362059149844020302819339269172258245089254555786390648321141527973388325873915631514599240652441276895918017477715119740914290719090988625818820691144754343371668877589025445333773751999683774458902848236749392774374660023611795529688180722958198260604165619294640846258168168328293264681215059533402078544258770895233287820374320359534439376374755998554158889493332648979917151697747699292752314919595028126177797513369048264935754104515464143595303493174843323129127629958779558722275031223689920446083219311955842375218683260707229071910515840761399436113242851562611006813267503522391504426786943759812690751901912343150178305657374799953225361656348680102529567325915584697253777012333927574609108027630353525727130102325347353717582466526772036530936417531221623248281167059545828732469815258515465585132508507192136967621752392207912101434272485601024662143620524579380775008607206368845372936647642253516317260194861388971281568303761728021646976535741521228910772880139496015687768061196912826704078723271725392665327927880549619550328293812412958123815084595449721653618002972421154302686785223171574573626368189665202955131281206665363610894560022619695228445584720342589675415120503821319879974183901152001284263040542478078852847446978652324196680003681850677803151034650844161298247587833938284104425626692177761052382968957216343777458460622867288451854770504624633595094804540324353551281569890565194816579667401169898393852315235398591352437192209535708620598923365860783445485043717448356949940327027477592955669243602719947437556782629509716960608437701249931186308603272741316705858907440691395718931376921741043959277725801848456613340670643047168596328349280745607158599272114633024983743406961728699917165866103937344638857152571669561030792010325946765067440614767854421695739183310188621958232888095745310594501518248659678843229366249059967352845862239719418877765303738148193826311876066419441004078909897686553912015654788186001540682555686460293774311497147304598637533132515534402183398156061902346655086876280670209688850841246839186626383680778264902616468688617139812069728621368006671344125444822799564245348740727479588050066503617462580720531649801416116197542916834756757652238952918793878977358880006563988102286690729978196259319268554969433467297605245537926360248016265643901287155495886502300813723079423544673495231738908316032354322314737160408551478308594844138544056791328038116107074247463874158178047983767998265144772758167820703924613935398828943907734875625086321316196175179241061617966870816127198031849312142942072445211409535187109548549768560089313454231457864920952065631624573373148988088976639888904463108455854087742681264356644939372374798919301929079590005605242534078848881596575192229024830734643878683978013285934755243765602221784031227140847569116208285509099508352624553886343558697505733253973147177335113746826939724337389035922862397394809223731288732008550881830296073759028342988113915227339072459761919735510797934765899629268000340546267083895484093463561215541936473132016813607760642609238332297813518097948500616637385668762673147608545507472448883514304510982372417139279111424069595943529206713566053318531161360375351702280422689105170435597984845621585870760963752829106806905645308149769048080572798561854296555327754807619381968842710045778158204742949065999672604143404181174198691429236349595102302517754634618238826698685973975807541690774339157249052353580629474477641707858280701887406955093523815214243452758940697291826657747955101344024966922087650426637883511024754395830568085854557483215693603319242055684000219958108033682420373638933101094171752718494098134429453329450270141896799283807446255375706083164219635459970296957282007928271345544321307504191768862794057957630100279401886290561159474436313252555105511501758700149572506204959724364831640839492024855884442806122025677095241657775709799161708930135156775973455360262948657713597345068457235653396520652796917583176804972808956259409666441971687522633558851414158188828110139952303309270196644406441558650122822094051318436628491928260630560931977899294268418314113387283476725180447748799038719162606180792322796771597357364489196742156524869307637763977888107314894443038212084264735230486856203772976160944713725314801207396527344279000236612654317776037970358096730129650827340690956039654277365500860403671291787326043366070232738461637634459941011108823887625195500237997552447896432860725004886219755613368342843221912238691364100392654302280060465477264892706450318348366084234668649427312595241200400514359565579177202492570663564424468828697463568766414500358041785730045665542759445909519559135703295564219621634578225256584914585969239358699571204950984983431090551940849019083478999659898599699404811152905208360790808276503472927876047649863256617673940027127287857802439886755450136396304758376452276660336496357076302216640303282186515453269003487262467168168469014927232565467767070315135062148301629588638269639318077217440420468070376668610167351319364456272820309131429931331158855201984894374970829927679311502080801469301559915227364006043423177339783749200652342368564721302442291845439170643827254675118618331386780840075900253943006115855484577386244124365836611030074461999905229829997707610590132202575501567453877248351625365110301046738059106310048943950897985219568365738967883551340730076689574817176308498729162213591501061348230118840065463574631587926014597856521453429119913957269164657823285920199549250780511741721746210947891354135188164477549012412721444141886821706269591714801275376145205197281583716011118826908469523243797863808896511102825576238887847054095746224081469899229715297498195770593810537180168570984465196343389857368342374746935392151234486705742436994855329480921476169736666011483968806051389953911299266403440745287570640816350995368385128294661485862832060863461722659190571099651518156694009868122920809464284890443386161085109375239794459330428542828797424366693564288391558412909022570101747030271773480749628715327401886736226990130693815475870403477138476581170394719705033974159203483640261518956445781766672474396490149226808115595573121266026511965161745583869980310859456547382939275898642041629324465396162355489069440825924091514382876186681663987584569527143712818478572169085052708845907808352021222616304716811649406987207029609266207745437880277182912042375719982661116409484295088432123913314740334339127325271039166997393348195223675137953586930891177075605456012666212176537839737392677339705422153020396028790966926442673353750073686557146054472406306155566354150304784881161393102781379359613478024259800615901263686640237141034991745663619137939578603572366080597155824642666665725359670924332853702077872271727506224947328040082097683924266447719699061142012215922477599540579949583554036560028042343798128416651352692903926738982274092262343560208772680067189345625240653961167637364254709587599457064275066786033194791732592139940540338621546036767218743632286116713522539380376185088283279133107729983096144327607920975441924045582980538483849156787300176083995958614135114802009769862762718268744033043175067490144512763851249918620235976682528445014375022651903438262428495312552541068162866113493258966578110635548152016240926478257965316560052976290714836553529447354425174657929072518883172046920080179614407046777310949547555521211458742149873712819499920340103041203879106562972944045422880033686216703587493107551226114090576736335515486877218424710909439725715001484767674823032676829924825645308398164607307962276282329248678820966927825730646638773203031640150975338047879929491340537435229511246389865374126343789621559787081705874364379913395469345480724069422130285208410254023275265684952052644697480364659396507941334430518814563424545982983294095213903534554640601071571474384555565183293843117758821225790500896174068001773054950474261536626635500155958936737804536070004035702930907371404821753516371312378051519445140149947658091797792828891956168192989044429557677694996114616230603600074037865487098572175823060962948024906173970272155598172296992619463880422457170892631915946837391420210844256213577473105915167611410232916772700319258518809801370174322669708203502479673584760686083661466374879234600161016894509537654880657428057644654368408801864123560896528783937167385029841352408083287493570900567599156913608493033268218996805572223878054118513819401995876442423986209838506497106526966203536804883746217116575314573936119706146858406637491647446722967464404068273348770909609409112737778149576675220099501178219683518565591944342091963891204334372743048471061564101556858546192338679891919688083033519228371301904191070476477943037947301275303848561369415969777026530736831938824308006578224877297545095157471058286795679549555935054546431654053464932015746828144604101819157902125581089244238071314598376477378146990027362460381874972223013581000818240805464575229477844946294588389412187969728455154513236987834945736295085559452111084425423212129354353548184314481857135208480368325794974269177715500114988816034345137050220193782168904641183809468763390533624265422586949121256152678463071588701520341812713432744233984082089165343290324254649881300812508025618518096063140104881944601934790398193430553758012690137272245380389595546834499922872747675436354506333914131673326045116086366219577742456888472325457841562909800631828760888404112917235590064123432548824009762794974955657386210370617524008578478605802077242303485789573470283995366756967733991448335997479852392870827618620780116431504178149354417650796334300556313392492877604295200182120073837220374865136079473999125763503796984819946474766570669693159122700125133425477074235153054430738484448065918876170523944234285199861114550330612668733693014126517536411412711730826392072207687391649178555884042673370816085447198887922905181322716064996431027413212981674596886017655523481806092626581653286284260596617040194824802479927248126872534734160045101577600241663421564754124247085410025086422310553789161557201142349766719898229657334691835673280123283851384195579530053502370293859095405988565077621825186171148166811575209362695834839564461194772754059694356220655830750759993417185863040075572438784452047099568365300948840092029185173907636876793091454339865682128377723094233685960413330018976472964773563534726452151714400733043262238340025396628926901135430152578419659272760982979984666358043582370353575986236008331386577711815281749885192170145380061029765616252808057711672976592718837416721969970564327714271442622887267815294570599878905269055875480981849455307804200851659802338783913808297487368796406512391183669371674063899640626119388853004464936100564503571528199942700279953339781095715110275348890279668922116464077422608905368302069195551218409099768171643526998115525683210892632529237916852792280972079744503407092771082247543399279086249659901448676739677301115259011216140710243399346318515396939105937852160697873969699080130920228507937454842014409936256860840706809246420602871056970864190900026774401284372149221475536497538756315026717128456065778546754638764907820450608463501910179769921847121501574465920685992925007985077798307442912960368732591780141697741431542315704913993459697863551691263670826416721378987979321240493532109701932773115543707461634604943802254889864168212302096303629526110302885230253066931183952319179938156801884429551944161980687781698940360424387964496143848750243079838089216120982872746792350884873154452216626247957737259402250811020977717383089483617349067285719350487590185554047911718542483729721530105512236747740337195236048040699273008838276446792719308901533724211054993055499904909060547745239377647760747718695251110701671571386167339633065790623168389348870006371857688342640641695089449858966276034633514566043096239896553456400405905476440401283647298681576112706712933681045834942348715087724118633339632693335542106249652472407717819644258600580526677783677604762876106514667499235161956844344906173203156480770782990156876387898054565251930093564115073507671112158157547405076594194467893071173613403281591787023295778632477598165056091403808615453542439227085885499922390922392339670066358106365938501153617877525264783650746941216832333157656871943385847664241121699929619313111964998579405256124353406426817147256249765029826980382404038482327866970886682698693287122233910121380810557526359132730750010349224340309131735187035975182933458236422375780343110623014698616368149081557322985905913372238860543975896437804360205715319476409448449394824512146288270430188320541640144264392416498986329352392223654420036431883141499305715386925503175970909652411254224548229816427656884265929348001109666773573474184440110942219429324536664501803634751559349300486159705603724173155618793890664159086757593492109328680492251004457646044601420777460271537894881136415646232154049839778153767095420634556799908646728020531588193108931125401832149099295658263819753495671670449912504582728608675519185967166786300570814753163465591565664433850350888406689173272594219135945661689070590652806066161505599538873630970357853700278140249171473615630426676585129982932984939463277446292881955016834272261225058665987379943256065447456226781292221164032942449718959030509722590445109211294023379707639531710227589542239580486412807912289866207624937226501478142652580898420289006591175877720629537768022330187913114163161905442253090649388210796665055052749729723617377202643286983122890616718318282834842358307742117248863054140397194459626395938408682355057977065569039487020811034156975172024609582849719810875326925720568542473369724449877027543901775736241932236878245575991986658972942958367289689253673668614255396162153549712825673865258433335902024326784247274016838563231998066505909880714235042093135189438723035927411218613533379910307228004917045792752297885153182031022154769142576012409956774726026858135978734766374807390378805855145975820863073639827273453033079201101854576889460934929635207345382485171936558889263050327384735293251839306823661365734059646838535777316585668520817906173162699267702487899079697230897897320487262093727493536106301500339734013274808381330571529499311035566111324897417190404145952924426551526570666577187891944521784886405612044653082723776519745727776745943885727580442678913944648844309155877843696355471070476565931167415713739484757161624775764250876146435017480850851790870461085439348166911568868330570286617545259290503554724455827336222089983164376004225818613637680718843095179227776927551982626424433719301927037443635478219841963317946310651421264068223018955112302674228297689960793345200686022689756120853761525291942231177956604097935694663859126435284336323449430077167755306631774786158807317952827857008862918700080536580214713259598029250681865777977000995779713804118151518016786357748568272569222249266262465740383079954621461283557992784806914887469086665937963056110567538314669655140619695426583565612011332492940881971366573124902171402857517758775664812872922887886038274875149615007814873200089479745721329225243431447082147908597525241424139259672062745116644259741788954216492200220283943667738175974354095090627970454589725096304877553048711218559273615826481440959602137925707702326617598527107821029849825126444346634219710091847326510553261205676686509654607943418447304448003876421707431190819032017029197863653662308927347957821366066193890455658527691633078672689886480697478190711579495098446819897720792089821025138142274498000740732658291305653452701547444529996432260014640304068521465724096360616713713040481008212458984228597863756245926692983664640684619638534078761348478618428582330467625200735882944094750356874631338602939042507832386308322740879936935444686604672166806930140917474722410724847976671722213140762493956202754257150962534817307057280517764813086895392146363740391706986923551811089484833920725947965487576818093264414561528888139102937771303841976024247584931944986241090481677436797404520427499228573356314167899567022909275980031947586999694262266789700876285633846615867680818090695120636384116696492290661265482982167612009688078797943982656784334544684295614134221065655500828991665583142087066808824503338504365967890155957903687690184235311298641906651149447460688810092121737654341933667225724132480561255113328070744427900641245522005155948681892199768693202790117682745946305324461608504879653769344104301409712936625764422321074855239976069560889267453757527935438173760954063434139450562054990105984789502771585090843408498007279699665530676143710757420155482318441627927095053084014956582526426706374262722443203671293666297195843493983401623216543634578110902314900588000034509808132733163945992572655834489448960114619047314719009745420388045261476622567551328441053059327103734487837762326189560319610093232042386350377245000173945278428883250662682645595232863166129597234744286340220561498164569433844738088849178824094599052629153801861798442264170048060424962735116126843604103858706047172255969226811318709826209050104875731573939663039462381077137926140822870899802877224649579854673172846804594845132512325760464407328577163564290536826138878823905501419974566732467042061497637517472566605794883545349536792655105111589377747310292359573242463549543851260676465682786281978533177107292240364286515824271127294705050437614525649174164790099581764904920671853851257805518472635529332533378751983351157370112583864672605874419378052633513514713283778809418072567085414179623645976578752278333409144695576567117907848384773145976205706889144516254898554347493413000939595520216193697207678295578258594631333728629854224076824397398433489005291193750287808308376656372229256055907013278599050797683454013849162673384636823172769190679505025066059283375887077198257059379320335379719723376390327028461802406253904686462744717777895622158157416801662297087599795118882275536304933809935997584969477780044645933797499185301046705848936480563460423148363871024233417287044127862226034017987467238060447007850769290351654193903924625675980878277942776583120854984589831752378345050364961266113701015124652053385540760820991438095415730499972252538670420941917585862736483063592502713230566952507417496482325445077420027351314712724666434182157955143453123431709286892864764427932972374160044300947710478854160855648222119972267081577413489323907627260261874474866286086090916575077548419841557279669520867240757270641623199411896087382706087721986277586795852835553280816528405209945672646857835016937177850184789299993817284750385301051357888930834383895159111716963152566329739677662215720946216803554572896938156416605273845110365793660391108569528750851144219669960986106543544160956832760711711336915692177373859962532216225900758479579337946999160473532766372632771563497408605219699740236414945680958673298774251988529906777860156287962458974580745667103395791243235764560385238495833160323021666527555780284946146563367469521964588623616619499236615964279837066997460706125001602251752348092298043096740810662426923221730394881728641143495068412087227782189669527263097791040959398000187921520798942311259365847752944263219766260079932378539122669863562112675698114171343826743877319927864484065476663981407857386423390907347176697961283549571357629454850196269242579605076323440761806668401205670808227013473431939600284822464948951842412056761937500795306026492739715898590665836100207797882018653795777651716767103180921851732122625394374839328991737240252740176845736331436758223195604845212674998523844810100686002822392672199075902240855268793240036785622427981463306466356799332674724526811926263928227375574576556786335561404737361934344271297124096297061972939624740853669856092909629257776022757568884461077536993939585203631461699979720438754929784078783415010334803304842480380222164740488779214107281583710168707830224234851733977873510233293843075378695936069357965784002579088384110570683145924902060211638447760589401657275238925923193929316793884602893348440083662209645523195122506427274890285960431376974408561357944523949795701802421463292706480205777597595615959015474656453034411623977502260149465133492907975575766608974694163231175788382693768694065070395717902088905739681400678710001828820643827354955536921732841197637051217668519168085428562694586170402329920191220630862316606107257254685644302460498117805130439604798741482085851247226224630574551356231351797533735463113849965014966849352244456812959136850139499746889935291531060222657929313722746055180040255335531825320218915362198333263456636024567980476798924381439979464707174502302563601514257334462349809870039900837680385232108010872739189163871117527275642139822108404869275142293715626593763662127595327756862229174124851444239514731473626216964670229865415878984488894274600669263567756613352832003763761435897114381941965469727997890249918402398659040723376449031945592789067008123052933074499890580025277247856317766677836495898653731130561686760467356949820985776375914031360989776756387579160600493358367086508459175575977973867110786601993588910082543382605218355797844735248894543909145706545788894084107069538381389262440749220113275939846035635225074528747227569213863552248863642301597371771967127018728590562771186109867984583198435940547133779071574775208853168015091876165896054227348198703664066715120867363075798174522183905584461194341539979144163285477835552139701026632428101382394608293917714454547054992432798991181598126021282295051635088467415125652640034057604133178190965859774117458834554195463644466387335327665234979839788478621043795228372635690104396317233156793210021844600305682165977601548922341536058454900295100825051398144690115567769801500009319461903768645389866957593015999055115370499844769885532352841313570204212261679104944989534287104387224325855269291691964673403714532010137663867770607691378012632801465961668713819602152872017071834113678168995071860349034855232994908079147053700623151859933904665723955227016787460129396197777272982061468243911509435709367767778918336255533102293353169992578756080984715062067486409587842433643824160793989926442471236648397984048058996023454324546257592507984569670822876583050564805018144740232789100927842731694107114923385162606079036156164398061448810093343291708510241660350696309487489320700667903270702465224026476380533150090327316011774622839480521484853674584401581333710900315317089837623379054234512831865202562758474979856837961393684644000845484818572854476671873697361456221686597347521620164443987862869861948461491856511330589108842712453436888732366961151149463590228495873836246753163714775538753444590776516015307989338857137503735271391635927811881349312303151906933269953195049396812824954006030608284191555355628148454277162869892661955977369499106556220426910972464740511445228603474802412465408201513089381551123567411818303293593486715682321115825121559821065129351904662355781103838865095712406711645607665020676097937560758333244911795084304854863845826883241098086841859194992834203555783804262227570884551107603008558458973258143081369108427830063408059741354922803034524122220989450079267914693432127471789754563307955088800180149257723609036169655776440205766983424323542326640688026910042599966260334749062262429369410130361099583456399180962318916594123409458494313737933708170347125563294182354527786916477754252221446015032480737103968045833786236228783703042482237842294911605455629595984114789780806463490204278243070577988170276301675532336419516064976955163223464172991509411569324336248654766675546419253157766427165624204696974817089337950706684955113847120602035820092620374432560866987114122537805502668254580224790586880503674074033794328656216693747585800364699817493302791799631851269709476293913777547280237310676801013200125345886802817428656266874528481625123048359994228619781328210344290977280292172192349283705769256536347957614053371635202193386491702672731463832447600721197971181104961699362329775284979807540803016017636757390207713953934053506306219969234598705662753976670712444584457937726135983872649769053884931779418115450154848266201700831937042239393972302752556160381247565602841682866389022434567982499628442358789836082341707251428150694504052060254968245029901128073697686372560414075838663504299445176456823042920919224507888073033301109854809536117927174009048855144381076103050543198575763206921812474292645803626762292688331516932333853907341068609452611998335437369572140461041832804180913239119534603065399087192944694793230376968784757037960757180090241007771881528266623059172801173508373549529751990631657463572952929376293826544277760477760461786573598624355272856451981121661737146087921518473014938138646419575054132716898195744061479070540785340495227032157229478385072151547939830300125948067776563948298584662646802197871697448468856396179243014242264774013968738899401336697525915117108161349110005103330834238052765552539852755319938940501718180066217100795760844304868375203730256550677908266845154648820526027417768465119548830594912612766089365504469129540386420232015978652088419315724397921281619926090675254655783023244231275869462471388304286030200290653485240657074338233195989678364270568715713183418873494048911426638064995265673177428854733593261980117719178128000225846113140195240697659836513882284653514432569058294416825090103300414878957065612670754666777641293110587470779880861024933902457919156793061927063882737316066802710898429558621302782596300046250930889379588337012107971835694817246086187592782636810107919895951559920599630239284938110427746007112302439763135450531013215119733727615789535781446587178894164319816703479093539587486377995031206840053417189725278373360348332848833156313453118992443114311445435107928471131467723107200479614319390524942301451977582560673160767810245015719369984162544513872046803880446460509066369170100463008220308764475616533899717990266254888244157357750807414255804439124149707596994822746260995701041246189837232319247507820717286344884551969173072002078528921368211773852609853758036830573293490796978751186765384455175983283483086008520686996000801190235401695017526686460350989750858720691856515595734551190506211239619350134772027931730078406978622261696017190489026814456274663223056507191535815091576238055868461847058556184351026046529775264045393317394570310747958604360132946328726198627583676872822109416409333560784411660117365086016843666719514020247908998463968626498958677857935762201633135074435637224794561358477188651352966297527538998533727457409778881695902940058449081800351858416891844600104552916624995384443396625214796972306841122227324020101289528100566812934825912443130283154341025662495803670775845444145730665088300973780218668621943205173748450036581533374131173989832414009450703750958465703458121591497225676134381616752067579961514431709355630743905422445114744873623099791152918916057788405920310616881892241420674858745878611531249047906594660904804486676512970588554970141952552738672694455175121549160234092075914781585019010053953820440238541115924282484767581801808799429014195892346251300519570540851053843166851180407162674317646815268953442875718554332582168535041973245414853055252604783913290069731388538500297082683138522154301814120911537747191982590766030541348980576644332779255155265479302259870520976814927889387322777150398272161722874794863124119515055087999679587445000816539235955379174785762368568699325222174194970939279413024769702641317251156158197520355910468243216240594266389627595717756027908579070865955791877796350653113417370525030568224044644679353418342163854821879025162868772293990370506303779582854542159255211717047847005202963033371718922397191575713369831403815074477902049510994310247997717458740412586497853064237515095154225783289815137299550088955390837072092195628725715643059791319616300626872268820186245103101235157455092293273325761862838008690869367933587792297973683431820494187086600853651641051070333974845672341917239321802293644193811282173985697829878423415001773562063480547163709486355444351485108808251175152276460573563101124961020791117017987673934951057288675631347120454837006115487697835687108671558485908260370782300474269494921175233584532442019508099580500226493782792006643347140268129893778033643894364436313509240043516680824480729473431395381487266219227859969142905040202353167838927712875508205544125539133109223213199022726025466123972732675890738146735046629836904128413592297106112483861832657411866612478233723852514492459877835069908675038143481151135768778423699046300375816413465007991817564377009378147366535809778428892736127053441306466399896289902530285311270940790838625848086781699479025372219049380810157945658999408467620405605677727269796734485254456062108420745086604883234752858587817221532009816745045904753893398197612650287856737167809946334873077180841815072222540644147037768303113440289139504804383138223809818150762214143977159656770468899930418887964149164553260486230677771914772777815299015419468029797222592543278150767803222492144082165110405155429684688007117889653488472164059722456839023204429373093450278395882259490126995139723829397736629398581738656705675878186732704885608281831744883255475547794027061725474113500855309900548725430525294507265105025817336710735974112612841085831754747763635442739296309972994199902316371021694836017708649236528789103761787622631454433657314762713481025893020287484086647877154918507436352762289923279161395633549624487189914877927972450230188216637272852861932298467592702906546560930136390348323414903872501676659255768668296400873097626696159849300362152895834528715409296192917907220817574623311734321525849398972664692217311509916748598426858410698868184768511849168497186381334169154017636932133369405013623303011215740732477413207963180204649116729176385241088463163043081286943746613355299298758788472098533343144622678400026461107203665808890435651007741179556900345944133444058130163050588634171120776125520995066419128536578065150198177011024821354998217518191892499006503168258586798601858652865491216483536288130436092856423812873250533171731021847383134789082552833661114090065042305877543970092736115603675175625222036512458663783039296758105014291709423627257545090723972878536750080161589234128137541084424678346022811045344596917218939023504266498010103848697914932685092571686958967532355723232889688755725558402711378049509574028653129610065606228030104756560052118254741057760094217520168648249672456173731405117132747168772849440037816595892387981216853194119650489265933852601256695814812934441316032084425681178211537455364879071674883697579273096786688252578839157729290400414230742911156827712540622727715513331535064421228543772573846376699372280093406889423420287525793216646039975378747328149884563849727031275169499509691643733401370563760168573982476855379494147592543878842649343501973153037248001543728416042443880220200616356311432421634553494807665269842170626749042798388165449572274682261970043153571191050774141501387047687904358608049326242878325128820299373756194601777673129794169227953581780035052278937079926375930591906271921400223770902208738939686283473788830895941803751282643390930140312904691507093513081185965456310135202956221225677469998654017332101731167353725140250134029100295561405297677618049762558327167435214218676950412095717749142558334178921479769456371023480181361463307359648021017941324349457366339081040448326960663638288252320361237241782772339832163149991751127250084381728176955681975303445611162535978309480341827102087118348756783018827617425721087001025196926423070751378721960001373393545644863107275783619071481318271273021798219738484860220913166764628429163332383225429410394533433581842649177353488094271991299992215326130365799125693082666900913671010799493973330999850910476540554678880713240085228301078054773899447990952470862017543727856124855080364385436985406271907258675785796805275739654254056521289374740546936932232626700241957456517092934571618846883064593393988522324690206968136014220482358214333300214496720676959370641345742408025066720183764556539991037372301984838021490805129052864239005195635643013462180459440766599558626761446833008590085216057605003581184985059143770026005466550583040255768571866967322707493010687736902780885380917617135995305295583160914420354970055814357720618009885714393141561681403317728970952002152318598644354114132842727864591923220339777836585215186029082827167165839102058237163019252623358161522741855911953253900244795905404148524330010451738480647051110421134986763185516346739652319847436667568051534259466962720963369247693821806954346761588851769291064690475325695362296428922997696615318299561482007123196093908100301506014036792328840409991367220753719443551836654830024368353178078272208548570152663535501210769278180753656179204458942866312567040255833026637019765942139918346686371160736355729479503907212702698385858807306626508429493746038624400852157326624803445120224464422218196954387687045441179296788351493952184985030334005438013109343070176216976307030894120078355855436924573008723874619622698855316251921505426003897069612122219641264829973162632849046411443964126285310055995978308553228468990026244911380546246325341555205979057456745285764379750240666048639437938074913751256237505407032751447592475512977586103117973494731519200488589032941109054038402877015935194786382685222943202059453625071121414684259095886449195069870495801874434220151786796507890774852052364407877065259154226520246009234020915441609613843819552143942801713487858534811756588775730653096908744718363853609768439741177933728664626514744931562958863601599994980785804014878664419224136201533004547802248589331666651325361172988436490552033114886679872034035993636995902975477690573995699451009611675302024163120539042823422476809412912266672649414951894380348025168298549325532265234593221630175946756946421143686541826651088659262551362513067161957498948613266803461956952858329169280251528206530504504760350752465043204954798071908495120159695483795557876047514653295572696249857225816273649210772538961078743014049972982589500490323395771883445024419431934956737441331963063461779500125113081805050166447610503322421426984614625304573259855648419840814565932372635071725161800427013828131511193824754104187860029135421551355594956101449075124383198776683026266328809874112776027704073427839362832974381162842303735787331574289910737181008443286138452370002081816447842241822103713766455280938561305421464633961421914261879538061728999490136142489259427096853180659867802255694754054496852566266421702437059775052186909815318566379214246738808450915079782749681375568477266342391411645202830175829198986224063150275984710112760828767816955831240129605490349711017393869114131472548104329514048492400146586469210156699204997723624302440461596174824431481071127665606692738816614526949643381686516532293172096488391448100588920522263385537464381745070154479364076056642716401814484399620021099878066856069220877847376077589822636109413526580713866917760200515364602009705064322976148465966015065094943342650770329801391442747633193381660131536185249368127835590484468574087747530500003075239083449549672950454201670216859060753898737067250077147532964224403287088940687052021599163349235295271593199913647163013458946133558847286244976703670474326164346779217616374958105182667776826431215184132395110478089530107687215881794664785992095009201992172466000610738606718676724471605287098203284263923781305436296725687862691782216288676821427814260735227339779115541951771348082232392158699190735783669353509542770085390951210704053585029836105551300837895807999351347598176213034725810539925521133995614154580695308784639069516564005241198868488867975376957604690471985556148825174976961137714762173482208496546328320287976964186329177727068010839016245107890741434196106652301970630253552608815464438717780093203995490609291483538445598960667931178265254616412604602361809778351097232994403399494489048015190527617121216474871679878777883501553629550950435236217833711906722915497471364399113745997911576364099218492791881832610388970952210502749908240660415389310621901863973043703922864170937099668688320943260448112107241547226655020437298342400801289562603303757758138475024512480810452096981188272839227582381937931326052187317561722843478643029395651901606397731743699663030238097243568644119924494860571434828022621050109488674961486984963945911464605072884789146653959619693299503967273605064186381754673062355791034762579999813578773254131484975281262834156199265003313755269798687223241082908131686859689748381218646580400220902748763197296794357386316118488986664302461182767550785134625572685954469839497244613483587911040030754743022698936209855517291701491905588487097286171807927359691985192469694783744827145829789646061894223134016850261133697089682614655318496612420778280288434233160858389912220266855985208217813625893032670823711721016077098324051212198019137307568529902264710699261426324172406088861422887099679351738019152240717520755871159941309725708294791225945410000885481857306259903627304644391894156354804535318865284821672465922818537380432149559647048709928333659106368238691860940032017131987741323566981662993962770256527541342819892904620669159562058420710428154779967502022265566182791181181149869117076136401722471288864720455828861245994820266310916418550408893878526876716419557459158186538644732811386296215047582141570862292017491060855380402206882017329230095525900152863981706592809707645578409289638153990811514919420907628122523963127567697484402000485723979476157495410795428566251968376010187049177391295102209908918923282252699015454385276045201724760781085624793186795992835592558092472086637967413060034839813225318283961410858512526858988302363625254613840664247634900797256838384677258165302934826719502559095845794877613573686195171731110443197384792862044651710643241597344026658104237114107560643959037228855841992982242890011855443045641993827716571216385856764935428666906587714867390680619994599023886636793781146024637558761901029164242111273215935102906716147588592761517117708372394742308886022631977840292449759511224913475788175390471539635156409172238835245777049383661064681265964874049513096619963063019943204117782442449699474986427483277409977085128679538078861872093160860834180059879098730849309171921005492466444452281867393676013492686520686619786946000793156322360592053811617754061021305665654371180163862695478955381540000984026268913947328905852398520897166174729340369560357961188773456968530828828389928867747129186453240213543811847892724860058214860904090917545925159935976278110593177805905462515739631664089319488163198586174881890810623354661280902522297488022570336308289088709655115388527706296061860853931389838940973132449197290885800163584898491734011411696784839767057285959239527198391139634741733073109931819654303063555066974018474640317309283759923749888465663759477308631346250344422805185863510181467965571623561664509379837721674354445042372329220071103376575668189612365497857196827087245894259720101875455816863643362731955226087438147389531627368338092805598339474400136688072395624578994273748133414810387376355274224884109482575108997901049518316981852277218412970176896008442628556958171568484335229709879850325127718312203518905323795353795280410489333187962082180763266108239666385752438462517182993504516653520630853571558656000426045033896293562821731577212235829951189343024643394331473163903565854246843574794118230564148497050317210790493314860035794517213682546991573545776156931657188899288532147315095251522399759988177038449281958384553615188838319474229811765541231836324157121506125456326814642266097607416867617284479018953068932302943755260037795206430544482761961293485375530096413252687774983146444642075216589111912293168877389108334778822457567008487079582966139386341627551372782778456736967515219587623425487494650836069641478247274500323911387162822651997501205504693545002308216141079167625457870983950305670215298068691693371686232098027718533342373242615844859729875743337984746427328531632515326985338168242220581238714571365425987915675202427835036048188576616358045085899976689095186713379192691982081548362882480571504526378061425072394539612315122681991533706109253721104803184437600523528596956296406066147259636132131010869953562972312198084309011514317170366531755569888830508376508287884974434361761477987280572124206572193032077993709182148816933357797987769089374004247744462448756084509845090232409811343322277502336551895556561997513883172815481792042522586648455657036740647048340253114436915347754525237700362789300689035335561531946716397143306211116558362002176491222279442964229784736947655559669745516990011220282822547910432724946421264476813684418098324686728955085979865427525841793239119824045440242722864417524256113916863525843524146605042635923449727235979728855322122729372654202240395074119362898871709706312594403282509157310058658144658974838350076501855566892437592087681807861888811227650697221959183011465742193102659687920424727536483684421500120016082805700263087785817126625297017780946763460990748366213254464745483743739499798320269904391851150589350091181203389289812914010765364216806909131803770340119013099058340778362875448317161007945417894791223115424643636223649596740152065351661765659081242777621045073053498190924841115983710267162388950286534907890009944305537072333509341385701366474933458889781266202126853564620415000790047079969883508402126804834874861600241828962270866057886669530047351512120018457324337797315223152842356962463503975186031042370580001433465718911093517561095243007092637082194259276918487226709272714486458797962795591912005349557395352155676472344347394998511949648270632265998180364920706132127502208399783942093530898017161424768693536733426864395442220956926302390095690020257475499161895925645215180409387414219236845066187350580384155795966665674201758662504954920963524113681419709943347272521120845559885633219627629722121314877617250211234333007487884642199742923225078175634275904495961733211264510164462298008205031805185450382601308383113747995157471787715662104828253340185861835398380333092567273203912503695073794809530755361168706366029969333376236673000210864925254293407153433649033509387271692822958722463355167290459887447861372955112306383196201800787007938413855213703674988665787101554894986921207933964004383183488967480522519625535695252522315694586170153868915092603697842156482000612132170382503330119076126764488397508525684070622132256085382549441704937106161479544733752124782929968732405708359732647043405060035826073596819591369626156570649267901738570145645061116571050521046628945199512221120273539202723717698131717774612045726275375144486796444499182030198427153156702709671605792078686803932232655515402459221516998847579419205841759511239345183782866856108713821567489856163786902870498488969841320171375877413667806519365789218887794881455985939081858878724200393488861048004745774694513264536310899738238328390138070242276095944429597551801855147382446237307943877166250906785996235176317038965797119329807916908929815820703367358028970301419199527175374904023281518739804475005537740142625549742800547621813417723626029908578255760325862338374115648885594345976004132409326144523732696355319872931363591450035745095010434846379754667288175138825938255046535510745649617012923846898881185962602549623871219754534290191183419388692809149473611209953982045920360060905452719125327938799612511473704313745404741726648105632964059580991986686942667676754321826793675552724636156119795634752810115172277828303153881148917938944948238090392764403323393110333097798698049165448720324123539896468318201583813814504114426292383526784059671907001179346426223067499151340225586044249241627036057433705896982479206026242056203640397509262858219948973318766324953249799312867804583719025249623701905546164170204341568106162694910971351369307037698447288313692822296430991972500956338257743178087658256875563382498137728252495789196288843336404241837930707581345467700668633997955258699203356873930100265847572852518685024798935838001722926928190916842919893916440937475961938278965939705626480817453274792209677416528616489065961567455564532058431811076405958017395410756237283041056161230622220967128737181888892476582376283308576974964210434384945292750670845774601319094735758972390468961143750848614497530636267815627020145899534509685478169630271509328602248210406278028016497848320343612160085900102142075229734358509114201859593199223291560784370749618256101490600319057623808099647162817399706266697340547577970073250348902663038472935917413300369420979345592826711516853962329357807346490911779534846370837489250342547427283121983664942166620091658517603129862220403361909716523760318464243716550937712839521325063920197985857309181629720298317885500300315004841563963361837510080298825674607379936676581230613993262811525133399370176825946745809536864151630461379260793539311020614374880877771656828402737161870944229056480565351702779985304011955840988147024469249928419628607177658291600385360883733243015615922827018984022107740809299222737559759171816707834393696269477431410108897127804523308271541369535455961227716037880609001055394648151674890703578171002721678400210813369562850909738297691702252042158027255748076076437858682894981163294079330686943093358114991732324690652913587169620803669912099771449745166503767590949190316530330518424561844955985690921047748169670140850608725606251264329297360250434803360536392766387219165193193800457771262993064920350638663199888144151394432924143475139859131115942213329957242268243900267460364219770186154522727621906912305405212158633284226579056395776456354283218770566512334056935271100155814364284999871671864325727878932016884013208405818381818847749696509256760421663522546229666345751349901265046491752639638514760205478879874029924201165750772696239570796894827786734577429684264969490787266500441639993822993998061249387507701357423076757864717593736926385501289490711678474204616097471596624436170907787928181696515091658624532994163495789929810233194911187114331009106472629049392096407326368837596071270408759629965052997889243395535371661457543878781120887720681079066300384822698355134845638393259957596229631891110517209902322034598639340567599983697080051282290382172891057692075688228529073247728600263403230946324538701595647290572567559448177945202294813378294162481237280192085424970557663743048409265436286214126363660176958986064228299413514028063192085501835934140242488478499210971226400947560604677994690820329731766525943916399467021962408452871622290806287254476674693098766352956979307472534977763494100828029622283589383727650160611323903158408158557266725552353076248227692776447008566255577313251710190539905568894198416623996622770850850295167988660111442107481443426815863496877368366838094432495250810449665108021079482566263918447156587043517271074337501677647378970808181521565065460987843153100652662231253189100740856716760354772341485309382156927693503364146647957692525480084017501201463855914451960849071216895873510855796719424320903197758898121128315549639183095378298546340357031319967665396589386234684257751513453238040036267662174061818622524272330648688209776284094415280569722414272826941817409757155972959725677826652855615681326858107826567820870845967113824165830114430992855044538336984304683202068761304680170726482718646792580653658034887439749050575580550015793680976678854026011559582444425323296490661072498253670571767905450121972422246742475367133765535198627780732372876831100512346722305762706211397493875818413569366110349875950123113760964859374476882878712917340611346084940772098446424147787562921765033617535889076153846767968933455078366657717689274238801276081754134997318358428188342117895126843068384868852703673844476266527468960674710773640529779451899582213108916094183199104743652057897589478745669185556937985703698518678974932694470809087203688464173337626168526575960234426269489356651768582258430191404091398942827155146284683145092228836518314535978391968812438391871480553063052810043603986166256938051656261753937690075048575628901762465408622077220706030035452623835564563429509953200404391301475434034202203921343466776120334521090077634775305601557007195156700439691227176424695228836955709530277835492286215575522219573324870671303358358524311573129815217776605877022418068959625871843111167155911139383800284635298512173757765518805963035619241398243873662248049427607478799455551190689696033877911493950885937587756375412854741235935845762492670108753704309151372615704908739827775880902799034293163495555126713339556518201764359018764378130732516212814294959698481111918370475227292573557316056003376071799774409094957915655059216545264821892110634764119662635772545234459448106305684573101806182430276327688385694654465193120744851146630673927818825785093516940949466328108355811357832364317286651145242648373142548516733447856711797297862985803815571891333638731084600663996110761986301099107898978988401333159764160772431260280145924075255713734558834889746865320686442214010474375813782162528213543337326581496171185528796189446444165680073789830047517587631655152517448370814101651276243394461997407033537999199092418110964132605017295718202591267274108313614117497541258792301922848579182791254021056264905327964112338474815118625144802297548317637914707688838934215954281538739743552962356430655757535703345829135694145756953808713970332826553259437211341993003280762835367090987794928787173588856422285345548573618514607061458493574144218973190386126931564580560242700697932499526870398117789747732874038198848098251874060892920020408149712491413734779417026745277788688360729050122515259110199162321860906570371652247269648615783045904756510963389878016528687439964821850886104664683407909700595800431657644298823521365199829243878673772213382847647771869234120886842806376599836278007349896229403888196124510460058467608948496104525321991947454230788449390123920126480634567831144313756571667168058266069005657144004800636344216799366570815218156743595785552448826232170331587974514733053604274484917679297853673460521278021629349951394154808951149790212987404999784803856929637186873552320612890884512020534812050151295177710077799034753530989194813612268357829169336736833947726689214759169265037490342616275425645243587774341347819939572825711460309672667818888391941194515737969952963859611961714459827231711279181178504882680029469284512937971105433803347418798288906250355855152616211882543608368987160768902118813861212812859829530988726353520098045460345020998053982715798941306330491339891928505815782185692729306522960469018081293206758480736659396141463346895130807329267080302529708794272316949391465527835135836742636794731471308810802131107302732168225571260207266300608401514184555595334790731676685170964982579136441790360870868752799069053864030181805125486630568559997837861140395522332645283611194059455311048117102627937600473096309182617169901680884866729752257868087969489602995269592225834758231233127026079652217650525870579084565562875111606638684941311930419371446688334683281327188498777860837427064745044581029685476477418542068315272778121774737194406734415122343017205895251220663394129320237995905578384234206838877852216875647564191292499669798590735351813887699366465975067348365656051818021341768404821817183165678822526116360742793196878972115351477023843711533088516957310806474268357338027818331560930406407891437157161771702014855020040006823369885051280995378887952237504887183539208175550636312223779924707494230882765813638892953265266343873924198980797031501395681282648008557924412006448552601032416404687594534347413844797125038074562639536909640014156076126532915546408701338147680575183840938802436215617952268289160140015182814504798259708189917053251591541704417262282068467133902826465279581344924692655358674684720964759642435966912809179646709084259525535526098155753851153119285034055897405524270928274598778472218328503741273854725187061463213803562447827970797118109424392593590973834061027645116771731612763407466622075264264592173384589921798467466968739017395967258370611340556988297510675838599731465624931786477485318311494890238768740300087599822589492112023490950591090047887920420626181691101168667478603182834164540203824074498491255629433908435348270706093546747967563425203225659041207197625286708932046816874902184078705742243154024736244882680898190229784748615713745647141379878880982461094850634514659911443474967899449210388052477416601959593186348818448237421920521621558711292902367298888485130121113667321959537600829213486763516014038039017843724471676132685009739715082237277190104129683543839806723372201895529888686020223018743947650427433733109545651474532190100121802765813903904188693423639177258625743321095784101966912315146015240363359394048486345406894951449128215698251056038439793217564556653575617725382213354056336044420162925233772217833867378821962459646138202394843616816327713568022388372709136091432395992821943447743532525387076026823711160513514539428060545557626459490219884521275109909051887901340244792676573986614898550607381693508276631570885226736626470314175808773269012802488468382606171100104721526484122625291793274706115033603152812948956738339170085045704348594983184783421358875557709275153433690676250899146223884677341045125129162790099832889998921810524873376034202403094914684474692415602861456135363317213258986837938199114672989359041249041502229840614425957877292105223453187791180168687406641054837762227554981238106162205404575216369055127031380850418315196477124185722188372527090554842586484905642682146787579908017605916256344840852684011556874487554102686582127371302871210365423454200992043853652082554156327134717364385838345205673749997315553014688717675115133346168341875887142384246643277457255968107032685097873781180551455340134514252743923017697809749544850141293270752510672125598396451652336122683821871332998937335587293319561501971781477393289756928552133597576589782789654506791468657658628542824008211242041962921923176454739912715150038750677316484853446543203522242261528448762829080563971034751699618812914447923693406691132177352690136816805413783360811406488727950158719283711264543039979184942962315049094793471202350048941659174109178373145864195291688255201428565942624108942692797654296682243098605122610203886492693261580026137040931223330819651348929576186817084863238536166079498392436461045379733708392209093251260114928039537127175824990198308561820709780262720196843748630581409054108824299012947280822571756911976128017693065128741845733227034966777649321560046728338459316354807319223038608182302880278045828723199563184186901725641952775197985732461440014855636688119917333980788824680356451398112100972787005165419080271143206448596193545681806142643991246370245452047358197950135467225500789809825470602723699004418151346145187421587228987101502767910433055535589832939424930550528975765854323478825785931656533018740317634452664799017107540584267462197156468733298870065643662294162258025804574721606443774970972179725440881792951116174196453803539408105901625408178352948379902343566578797958435267987275354101322696933859240979270074432430560212147698112111812370738045658377442492363802129462059814935241293014419844355238729671215707340854209381507495826925911386491502366174386779280650371897139854202363787205381082059174356876740642358515506029351450228418428046657572481208114462614799780337261195923118614718948852843828865236251743274127531648521605897268465240540505922437101810291860073174383168947789370007686158446969958983074665115622660771793819483177955616731428325949539670839642146464914640191199816368868575692406012613628477487709415251963722989837506783147310078196597895284108080993463367926472887525855193088622958118612623614420538569878306141379674150388271225211967080828920670980153421234394638589743607773624148967791445573455473717052527381344511379504869570543612730524778213376305230462617489013822983527441070370178682094513186298497297362938287532612687262025822131191070482063577783223753028903921667830570116383401078284812184395686685337628568963703890715950854153074933572610730512759707463117686125967518436275766071105524383045639012722675854778836714968773526476782356356429328480158989314857093240511520913006894215184940213790780966312768657036725752702367802376003710471861185515268624463822698133412304160743235049472554380395053421635436990795067856924360597620753412923419028371423650727511402401624646346525482797233456617412752751484598593396287897409725283346921182309575685938415912983204432941340023267884899398370234189244577966623998202705586585269181608095115529724859837567935407298322042427291445350621845398276452870833134693287791406158319478570753712400224084437062181960103865966628726819338601814078703332841025376439603665681411867173829668522305642913951023127701999907888022236804078020223820292133064163141526909261789527007530021795583548051873844336571497124641092709966333717038961342535087248514705402529446325257796482101332141565326879869575112575576671057731245371978465548357658387161738261142470324275118951779808656001086226584940565741888574492814895693258042571522957624735138736036659949093607727991893528711251195469390407666916884668695088957223787533313502852262828474884443445351505498886286775744241225820399020296038554319423333662356514198964256300333979512843229002399833684244407979411321175311495099487173240085659968143070619840753092901353046021425417531611552455434953315421251819208825000240371486469649269942869870150027232527559275209148523429092771775877806833581119364289833313091903629675603437547388455176348202256280952207950860310730100464974460923722749669849086004831465343505645695081699655614707900682728563109119289578891766968037824603317163163804804161082716785321141820586877566591926235138606126417471374633525724908617832150478950600359130411547029195127144174477243673218182311446235236014688083420080165335342946515436621668819566294497558655985894083838569244948172341965725496038903947997000948844039781044354457939394333919224395576653181423140956503446391918320186856580676968143913977458016609487135947513148065543183434341466726996477256786301080201755111908138924162714050085898887850350194096969797578033297075456655778944344855592747939273304156514007053223598841721949812279799911588102048134505559381651584944204049389011646780174826969712106114550953008163870119274678201282846493013005515898753781129201548451019397462343333074126508145286441754044623094949625127004058884510838257789452874381745585455712043801077035474395848790371996936871123087131898144897280958126369895629404444952205650430715046752989677982228728138805450277264565132887426969737510220248252300348197815164107184714804700495075151448899940408681191366561717221240339832155160040691878586530810542976009469340392174475460873756980213222280047414948878489198988199975853335502136944656556675714322507122070560122318267693906086290671354435159565248467721144525544463975597244535660250125383908989032180921349970695386603190189552041581384721892307234598781700455443202543059949403123379183013210540039208503498513497738749541190910537899879843248939197500240316069252691671152207737712651425056320642710556069767862652714639817657713073870218617948537679807465512832676436965174294449586667619681637064758096182987460868371090586247753156131266181058479468169119081048636017947601034508670149353435703565682157434095413696339056193374561558115972214105285406638319808850374550890414449349884392868174730664759988094669518357996568633128446661289358699562664429110965676251911713512763529552959013539175720922763334330494488261210580947192844925727080269276193731601587203199839840228478090228436300912634274949879461798154455531218360704945246957325123795282542349373028090818665926602392645750100588868429234861338123478673442315441202254210635666782990238670194626879551187534318430158802012142834084943611203885526616962697623890484532432556657001501223063684283513262599028030135840732572513523204109980949901148524754303348949788855225910524132022424468526173124940908181155238813262092418504215498068481135601556459968889931637134235802261741147256503611672635436548507025035048965852700362179708279762004978285705444857529322134650740125220188107967586155917501887921167865938286687683814550051633481557620573671455580031131079626115875582956719790138376693635715984787886790879579401448997156675129015142532543954185214611177366874551695262121121360430797701348843668334638021402931374465097411251960224719713871285075869300999917210502539755797915208199445319773597506130737306770135928952750725629810129515057848029386445376866082984011450159532148294449790083333187431689900519706193169774814517271202562060260614589915318074990431214789353616604355535678532319093522213741372347798072411707750275845178924594667565615379215456554816607446794245899253167594417643093783338339675574893807966365095167655235017401306123781306639847526480341631901394921038088316455244984915701034915715122077363520612368246138053669411344506437369144403449544883251416622822039018503455847152877738263214889221093146241800421799566089781033099853102499498813482699636347755051484738359165090505470422405347243914738306565981230764177308581584422778896384678287629912387380670339815823921006928557774123292833847438541507269565372369754787096561702611747071711387789335922595506678144115892073918543235848922715609720011434532075433751147773837778425314752773569358160356534725875771269581693127102922665018531800290275917726383019834851953518896647331164442203502010811650746166117880748818242245819671958623075052435637350367459460199288533519035197811470406793839096003848057526528683010409320494859630543807317048888666849991506298000521414409770738212011165513755000381654443961203273305757142056528096610435965850066021336503568126586196387892197538165137368353094105434477147728081961450193900146749961304985925849591742093067840952166805144940368534979129543142561489453443164071367187292203452425050518079438368367939224627482206568396980299683556644908766403422415464973900479137480527958432039103351291955172028477316008685900113012834873610491895029359388552609626071931269852185615133368773107894546144839114539198788316411439365380201961315722680222087202051831194917815451912552759488754465093897226889747488734720997372502349082947895395029979021592357588315323268028864809762306266481808825728589789888884319128526879992408649125528262541943460728045050215740423710612316745776354640670568971253543109718926497074115425928693726428188936789928807442039622973285136588169006211703983818703720127629382077714386203505025066657369597956128187150051435732506034600377842896360336414528703983278826520221932257684081933155621794065405371630355566689246592291880021282936680213995559041787114207456194743708479610509183079701901300874971722197657461155056369434023242756633587896359416822695077512059085196659092363195718152010101700805905936627106201788019091353201847683589448724862322619105761863001746536947721137894757844397317768217318725993953978284779404629973369452505864353044350701356839357072648994092055083756623582936613297419450126971317402610517003750306475538489287469145909353890367658411877446597123001277150249484447254001177514409495710082614737248228084992072882423906331266772107212017555855217997353073867489757955473501115656194464841020043183963393134676697557197204033210342054712652963708290972320666412605697880725596167747913202985851048051350744214334628451381944804091841504567502416222790282322344541359632351227302146014746696842943691234283971137227510902095679638818248371065046578021394074277363703129012493162461517742930915192811315262992031210838407072377573930021392352049584543770879323348036691689366110845165429402920650189216607997759315261045196786996798528418006371578659640892920421111247908226967869619079471357527522999301836266422325971347318342279915479247868355747752772538193920290665319928651924971463231537975959172484107627451399514075961738001822719443299661163881137463647097252402456234736081803909418834250279271852416722667995066951627054076895250773827158439961597635121559065312176480376722793804819872071675462181297231878690626587982440957139577415824025734203893428296558854005813265159158553463871522455006482368965545980415584363231687479933535186055335644589381203118416252488151425308101695554481237511141296108860980800173327462310934500968590755805189518435539262133675446331949348556493738828112156040760579701131122257720554110853606910037467461987327629159871806115435226398056909908520303074786780256879499318977766187944945835288386637822456237318589676471175635742067615378231047831144545574153599907573158571603828132189981071708660917076409243636672367128719534261535696805059705073648028104367544505329163115597202777163827335848035938403393798437920833787751689350028577349644140490131211269562056365387011591546673242544052570885219591409202360881796874977693024018855820935601370099151134059406633836536980967159315105649226746647054915193359188956785935588346815917549749691336627630843120682029423145953942841586059095498158816915276990996154002088064855776903726657576390691160207996415736277201896122729455418954429828028631653319433834114929730020796554163085933679394896867681453215279672646664719360038556093051118339121656713214111673877859250513162603649347836036198808753318212578837358315918883764566071087955415759266867872035514982240682963596971182626895040037891830231011366128001924393069051556009505093928249810601821650100715896157786677061138543097978228145194139938120320407919406960340020062330461700414929407246193472625819803659416599944262181618062612586257676593811051967875178163060818973348991734351226408177969165588127437491611694832947196662502969374984247415682748500847927611686178809014253472652323852464682289500761878707463114836429930796196606830404454880143681701714667310649088578867732713055928548069505657472822661127488575189066400498414610527864256033910742388113621785138021378660465539283623727539063776521863620762428855661627678221093160744764288901842705259861989177300681873759744000112554410163380496485952766728203966452943044746087234803937129767280399985207009190023702911388501775468517824758893155440727394554217665069132193446870678619271465390008684977611488436623018460439738973744433606189159487667799807884430494181367102937821154771089210467834122782506939108069685945380634729431133067044870363656111502039936949941185598438936138698623422778449335119930425389282628118324076554424441872903525228097306388688651987277337799512117830694792737157143199066872549504197169388499995643171920444984997878038626556164211970435981902081312342677376865832850246656630136879818348164422600040577221096694951324282019109482151316853049688560140106002575185880308006779121970906441314752679333418699470745321398475780192148396488579942028648950577292162108407996157611735107983107502386553545755731638271681198668483266734605216334031255331549331942745634911550112257848208013804654370757701038812831193201245773233465135864271405944503651856385554586608798672738253816453955541448454943222188400848924219960843817150997337733439284023127237695760773406468590557467831585747110069676462785056394469503151325881220462425318108191026116860848066821977113506273687383111446271231326275331124860705201038991393956972663526140256156876962861252970449733334137121265368560416950552612020627947868167527604370824415109273393221496141040238329523885236895010707584784708374329203459506612852056908656581533943477752290026873957464447958741460914671212063320435993261852088587410550594932338511569911321082623605016976564465548159428692061214672192095975474703250763563415470556145238425258741520664969154315983580918066603137889516047430086215007460528300388117929222900904328726156190489569138815384201159739784559247758269606763705609370764104719903725526185523025778958261900209153589011264074976655250311555541611905085520126223342697257648369308987005291888202102437681867036776226815465995134057174735615219495747509413797205514887851922351176303573340214396724215793994487088463108392426475003408619331535453882443428474020395779756066445129177251700895617136796655036670890121852123796132353516273828655727159923071156010540129475125472166400448585101496569129496963558038104149245685206152862997340297857791410680751276403385322643104935838299900540615045813550216393841738782812660511709735706754978888428424107961130518259462495228683192308331457619094153281577153446380838201160040497578545133991163691918822598747348574175217431609277007076029417401055754823817584511398835296222857951160411777068393336722658197238158478918225231302757444192453628968612524479755952208911172428895717467148837626691384018142493266501063552786639200929305470613087506902992849172460911156929806365840155399424479180136000515775323966719628866795356127922050682786760061209586801706806618328817360163804352609317010757264072139281735631563922246222666102505240143933218111801831313912479342280923139132041398819287675269604414657194990942975892428059325972134087719728667141059823246517252353276060539097877090406820578393283315431332536268873725683112574221473423422444103917480627707531476289354825762980362001042292173006356077480679810481080056520810219331979650504841660009837482249405028961831015710073033987138507558666533165599737055351631381121329267508428500035377008194256711631067036223578547543395059544263748878804055022234380285370417703456734162473770121395929552976637217802942065204941663925437962265325906248508546398056002160241266976669240834160548696219400005229194361480012213092016256307452152433185764793570913313571166296367515204030313835746027448150620098071107742157821763947949118564574366159150151674324336757084897850740597571596770336786055459792604989063354040767761108194854731661877887044228985552762011409824062035926129720047045324579069766177092528289087878594818342751730897285694940903814582549124339659353994584944321061909079921353383050324443503953791351743249269374278705805016739148592390144362044164354822373489103618692304379593882368473090592723859019697521484056059186198320555658271995993431237042226020328360715962812019450414835806323817711096036385399444515631380974823411522383445045491885445851594506252835941264557952803029102971851398175529806740481605334676550197162176139460899464887580129595886069388359990631577575707893514321613910196915626682839172907236813243535506924225912826665955360752170538073598611039719377971916532811495053093204937048084783287823785168524394090051781228324022505176831769827986819306745246625604346233749002018939437170897722707943577559016427469352027225599847817033252883562554328268336554781856969722616545466842877931657445626193760732196406843813387860499575861506433579157102031499485682798387071168714214718858568686382674746022870275168632617875277340178280544310108503101400119613304536716177202528926552105828978572392566383838708420922584262605619286439701158597883944281144961653584750515226688300208387161980143725766697621595367496322178997802992126344297492710973109504583592723584937988787782191041446460175593721295065448981271437008672798687389502343815962290064650113673668938810092780691223467346342598413628798897765105832852882454280404582755229618584337740547738430358695975197644577200631017239704248610473671297408472028187445626929331400745563012826382058634958620002524375912733315145475795363570428960415096697834696131211067782616669013017306230113175832381540341776094244721657055704874462430168018999434559450497165415115318062367392026261487162828033230946339910361380296315854218955169099189253224583246798291017767951729918488195841123394332253794104464493014507094588865519026386233717977815039296179586606643219528555844908156016976616254880072424873832178307118189694249801537310623515588426846961695804371335964362658564369363970143833151779536177197956881837577049291535071884243413771843491427328080643087065370446731562093883607510993702987233638106691781449598836522192286419224613925799950773558872557651373492876101601280073231122797641399517523244973910532007943934048557956715897832357943663899408137659452703967222688598657063739324725491569421758305822002041218874938781487935750987059376340821123872709420193928008039203321208956997244446189151920103105132092377879078655090359631952298611761316382813321793432048060339741943079019630674235944277875833719016653363807661431093922278055479428974457903063939313801630439365810960286834213722694537713524601569373686807993217654751290601863956468612424281554413185811970830643836407951572410139964060235215031390259839188241225222555805116737313479420219083947993216593870834828999917507874455830584821721382608744983480141259598204182090022608497306067072535458965281781117452682816041002496453725675435640589462909393207468257135297436116984324787446890952242794605860460165170297092067094840592061879076797923680420323824177338839015619412583189861057587609540141844428048492979132875684641865059743985255320609069403578465248925292585810441959618080482238435330209156407583852011555270120398775072405327428522666056117199915700710503192819933698416203114632836599322775721594943867507633150169982656215602049222553524955432401377303514209443985076488020743768524918669337937419032849157647682785865955803515045310415266878138853426690903150288126207572989707584927100524217613837030248210773010717369917069773460869562736661915791077313093978993960200160661573905128842137143719030119212680946669864527277964824416099818052085210000475341088345790064313870459933396116823864143819579392971959104760855636466146638797983192385747412282740423552423617068233761799100532157359981055130514410010152198128570611899896911158985471190428650671614316183652841899563791894929780283081266337712904557029164092754569686673006275454691140447583927845232159063670396926970678193532938518358832779326854380578453683267328345755298175372780167369084724444128481013186476145729915867020242915708593791100367438187316763248417139607654999722579153402608066984139401122457804427192251534434308842233029020960940612224375155343592532632103837367435682821619057280831432059307611930156569735611602943085237919130453251099463091035944657645304072881421975151978101829927677744808013664119764825463864895936033037968328709853766203236943281962824632351924728310796830128587324776806574862522944589228800634409169026550228087242208576696655498628519184165157256543215465392332248161379528057130095264790591376091659639430468638184965039879653483042823538660765420620769457464813206591523198803223080875443250363504625297194857295509160699938771944827598993033030784479249059581537686301329837004173310359996695280145164164225618232003996991766772785628062631364129040083745020248880153147242614470655036724016752711015003631235163372508863794318294158009652864905239736672496660360402486176605964463939174265633309299397131723150587039484795336419632627602702571489739852124833712417464052594762306730518722839480532745276875348032573135392722249468072003790786268435394291493511445633578943314004944454013432718060294821018437430405459535809079815789671098993460658806544900273045569649377202583559634768409697072199980189349327113108103877923121590767597741378944843995738685559644415474343512268999732395458930047659046790289238497644711044631729612597819091875566647833592093258708558129150637761513728998544784249215901565125616301957170152649597586642387948396436145497596138816308951464507543064565135470413669753105975335169535205420458137000352396417882785451690212284695118637906914510477568865492015052725563834995843383122719697618126791130494640820029869259339338165756135791112576319364664763986300667122487803543917717851494860097038414488868219849358559303851326685919422071187934006686361481147468235029925694468759669880438015845690749814365967391832682980698161340430421428957898828977780581887865200314460330147408023889038248224913779559266887952364820099548389725317831684191922191190572439247963285715401614254505607264710008118560359709637243182212629943989817921805675030645767467395336033099236531323926596266843973220714168890632395356720471786852443900670670469217923223643994497860998921565437333125028002415921675125874171503778086272477031645774682019279676035119919328225409524777195507980720163776973118739418304121875164109753958481259389237368169860258233882685133651768526077310138970756855883122313881226604942751177927430669615589842953498148803508545705719389662968722657788728303192403182898876215916306055694432375456246294771924952784355496679992284935126349835142902210789840370001846585813425957713334868735068706038775123910991222573189117268926500638288105847118098070668714394031820330805841723480585794769165796783644452128623129980164847228663081660265303565444364750191598216702869068328741963147696347712439951198221460942786723362067020937367571574513534028324587708727397500411262111462410018027933716946396544700048224851044439435246143115411594343212240244384814231110194009643137951448961373232555039090046499361188380165516812363262050057447431556312472148255183634845414616149481207816780239959298884421514951213078705326220613951927963215502380036660056074534523123167343413521364011086197835222219450731332480654234366865249308874817354684569999600213158865990719651945012546535592334201213746109396587918513014639594838524659639682087816971315348089926936212963045560521340306851612847316542328756146004566000871146950052789810138947336685273179183307432052650150071957282514852726232801884927739314509500985920154237959611184674979319693770822675542504968069745935858199004636210015940893108370381804602975219711272638613433965184547195492256724970812553393819911988767130769652662534724647207400355373967494843953147759575704440026063487609423044470867735345844161035233189114943602191165899347113241752061080644442971610659997935951284740029778580066148587746957284604461096416926493582375107621688156517780121739196090672256431309717628345038202094794578793319594475872247270086609279507589440019635865550229457258363100482523260004754063596651161403503004707799605885658554317735976081595911687876768308022444626731274670144977179299128118615530283913150419333046167973697190328402759867284714030698656742912913854859029426261847860048907567307653557745013566779044468705734750137000369082753455716340857606679159328182608133840119050906509378808311250953503597130535723831995657013858425968164720340764700227000700051154580048576326245921094357309717122799995651379666701189512564624181395535405541192798576635004247215503535369452171223528427533832744598647298247773923209909073023463743935690922334563940236257756814722085410521115248828614546487132925540258139116322104202016928058306575898210978256394398772223144390522500636973126560348508508424707944034587520144936784919119014242554001174691294919300572863397230902502158611650652591322466779056973021233796488555230492993238409439681816141095809932881755008469948999806930711015006212792993102497735458785881477987684708269560281876287063218754739103623218668889249961871956642338576043328619633093885860952551100808186587579226014330392428215242690128552026082637390749636272101149400510197688686160073954988792830315094623708203974974876921279916947004218412910668471855270720725026233530505740239779209358174649518951305962617958172747147513799756346723938495471956369404213972423530032158658183517834429743674430652468683027617155669804722878055376274587100176076571949512985510132307312949474113854515175468008479118228859583870134206188728627771192057567626945659195175018188423476629425922082997580659462186462698255760647368989671469423723086447549619454321405919622206597567755831730030077950219368665993051581291034901819483495530253373620051695179423127915102374283361620792841837398139081916814744149317052210288366615218250048663531363709412475924809596829263999010132983317547023754886308860935557857230614435435551178113679922622129962560329492629922070549557713449674539814790180720738515950542226156950387682050329070565779261627713671762186577736118303160378813791361312769828294336351115292185856759961991882547513341235877909679707750998268366377690214845105663603050336156918012312522082010463293796954924679856413491346599317055937943587969798743567767611906758057434484952202015372947897470707155544816800025541237884690758976671325771262545612898877653911561271755348422899089235324051549877311732184222847430193777640861224394715562505706473071477719099544197672310056894004447774126889457085501595606849538060750799863840475505347629894208247473403818408993883854081993259220601620051005069385175631318857003048860239933617534145212856430623810596034217590698746370719373080133112987541877877996715035036735418019921182180794500640591816898530283854424037062299550833169839079354243797507104030799238944335888872613151463505470277726912817206489563437793143369246652413953494154118492667274588555165909626413242219720722477072115488729087876545007951424078812451010089836077556122391361718724194842325639731608653386860092145301136660927597440182877627662862232480039107225080765110341671700976842006192316190378209488069513765214453337790761184556334615297104300028450382882369492502442677162767548793542450605297671693421073647835354611077096822980250556960984653454379951921065834404645044690810175027955724040369519434496969691818145175042451455520438651571483500388834010410698300608384075599356984879058714072008996974637066327146746184582535653561928966731352763585939201382802076617812772544242547382784812781602725663145651667993113586065515934410438646000113783359698663999871548368590435856097074134219755292737245824731548887537457713750383057818772132098807217010499939442915089792363715413877869702906970640120476961422822055998592747344983332938274227333984255417863037891782782643520675109068526061671474928104186514826801306953585237344890879373579232031270343954242815893837222803431113111324494701078191303857989883464145401328407995461054395846981581520792748491636597511029746663923978407363044594616960951867961754549532409705765058790183517688351871857695073658248001171577167717290415497418353052484206925464484880256229624852096045611768355886683610380650241626489723123899692945797521269445390915155374527446209213153715437667507781661397654931545203084489791736831546671854181293977649554894517239886097505028514961620768895901815152980179741462149007660769607777405175247746492773711053548730858265018508258217583888773033198931449517868362945801753612406552938469604470829020357322778142562027296836843766533716589486489299634907084278308620654724582831395599166569757326367384988190468569753838648546484501475665048963460443331340561563409895675767636469016304980388877705072741504223758089434120932266508365483371954022899059050287625331390683972377796836249830766704350223369036853101996038254081239013484407577718810542697482379811367208179449086722888559972930676468770716043656261513802297788168686462185649745696833391851098278311525689416488382819536152351030818056834619785149548913925565941516079968589423060288582725045089333136239603994424354891929895849556357594005835078334604059000078406363530419646719072235359056166819948958797312090927008964881794055373368185100015204953146177421010147933151639032571141831034090436921407944294521646765320650072581606994315280926188779617285875699114283993571851188023297720819809019703763040985765866942253826502876355906363329433415624009948736388292465484171298751490337236829276477183967770492813236269425454885171672748835570967334389894664613992834983455210908947131558751687514816509458312549374079536638517792210091750416928695331374250491481602608970521207178642548168949696482283180435586134022133980723703270024507869537597810917200390247725529266210493482354852875487887959870179974950832663582599999241556413396800243603687889067226313332399555335619435698873629330292962488991916143154391101786189587087949604205053109489378640931743214457921149377932297664110478766744700909621120928131305314339556588403175632894630026988235924782464869333981056755132835568590198935585132861981363891328714639794838235540980846359158999862743075862265967339067125942104407173147523474788207669522189731053999679149239940043202624150526926084058846908445076072540727142488611213939917228423147601248844274199068294441195875039931485016488307896684366838594453267577835408056660870131483021376329608655108264071227931656857562892689960256656720141189813362262554150147556618431700808258111631344891361947761402979978032547802067890056260613675133806797169431561423756873305473351074033397708138168102980653649632972115267954437530721194079055160432723632012230657402999942496428918990328758133295246028842910258960770428461218950472768993638783214381299738084356739903039754587047019602471493045550033541468262589616290783633106710948438463775207774777778772763098329421319901570638640656673450869196109994621022758820470507432707225456594531485193282816416785007741278819202315075260122230069991769295194423346605635431605329945737381542538825593781278926826886922202025709534638638431600749735083719761538838718941277086179219354403200530263677669550082058328601175290896318567042806918546775611752867391959586733594495745474742029781306158321313393109082274529839713657651480162857728100532751473363160296707243227918100951070240335478233920919033718361719212754267364690690653165493443687283863748517744648508337802962018234452543273170929731308144461624897166991705601945039852693152833432222113897809014644757253566087407224185644627433843808544353895232827844887370458007620244253427417291842358973122912940669845188531750882190424652254906949849621706644684785996690220727297069166635887506049258543314270800863952108767488478076177914831621027995918879744381313010722397387780478643321131477964827355935654090635908652427085973744334871318231811866775908596671172481698632205915590003110986631895479569398566005315624587962369099859765952234558718625439593930301402484260005207169900967578759211349518573814192076085677862547428180017681819800938072141536438741852631588551217972873387810319553762166868910397969244644668522834656188798172017328317881881563244701278675641772164545174678715795440209271329630885398332563979804105369875369803443848984415630684413349680533356512299422472861065671914828981101031950958790886037135852646479237194329645849711471450510463280013351429725854629095295229674123123043727837836793063561634334553792154520808438804880131289244686310275822623888831207240132179683353283083840180399068142531202042206485645807629044967287725610160292314914651892908059634625938279299268670228371872340142022342202484757794946495877752728549252181331470192509150543209378257994459602933414798556707219886614822401110627601470114822096999007999091807210582130554765617792580449450439444073961579475523300543366987249980524267072947245255809767777044880480727289160065595915155430605525101045837385137451080887151821489379875161012917437859265263133223706000743391750406857831749930532194827324839232451742588092685761681294840185240151288647557812471905738422716448606915558960333333454176196713089765377350608020497243095565640077385299812122966928669036044723617244285425763526449721811768312765507795779982813835471907435476720014928784487313975561618492211357526877429177728184935489671793374172244128815610794733081193864961720291386279819765044945685409839106412882384829902290230809796952336552362490653926649611517322472171360799632404846702488391459892878878148077977088118912192134431367537956112298334515841718633460660971121015596890264060999422883344016149231739353612726545922695384817781429378763552850933854655786813757188434641673772210959165854040795460209930405611408892232030021106475567664538363175163176714127940228605134837000099671879695772436062696958066923882866324989428440430639514031408401116354994906117007216425101501367417247313327524805369286199945969153820142884224568538063856733725527034893609329593733725032054053454174286586411033770317338711731213196953248566636668520500392667716680926190276983918426688418466182269897052830188191390640136901851465119383196265610627705748369268121382129333069330235133672069465277008177822274070322375044062162575860062427194486901815712329065470234112035359875318011440695718691449296581112024390249617032608723041324100583369410116721516946306990280142135102134186685475300202060945784561053125662993129581087244350976355462038342165795370951037411991512144157243408474537817465481610779336440331177352684326488913863033177260419712058432580340226293640531837020065904602168886160637003136270082705694369691892224286772211185772748396072954240608835019606161527350789042776630816909242240266401689283773234699498734052547279298464406008268643890144156784491874951266005130441442070311935791539064924529348808891858423684412691945744756832461912365147520356477057038388993022367052566695906284386415255473573292659242858310848969126124795997122885680885855811938599428316457950216391209105223508636898697956176318727168791790643845498104568761658624927119610332777994745302044591035293957210375934142240064193078088056210885098178572823638470236531271425486861601681893367797497464832556510531725416628340102583273084523104688697099419118601648203515477993887296146342417596409782902376378830169676879228014741721286488433940108843253243758500716717855848297059834414678927828502957211580594972297000464279768246207070794639666970002082662846111748932215578912218984725626617603626139454845509083273985476024047965589446300056180966598619544478751783495325531621666831388755562911383007749627687437080236442104376056503565836500984159600307806620007890582861358651602072017938991176027704424464018342520364448586895821993958686597382343750040586060294353674770404785645121222049144854504744981484150915005232066956975245450411823900221997786871143129398394488171968912089928440757616719047526932352213227438475574579017814127124997766894793763201698603017928962690263087368981840383098780387641408137666956028028404089478025212398222705867978901271404532524678215648133466296481501762996176453017497991076114135732977369926789114174595721180312673068670329377058345935748675971832358374792162478573655218927174498835045740349655917900638958570078683571841985458891818796273591184629452289944882957965859504947666018661566063084444909102644883470265585053047478499939465861923384474767593246737929323032890632309843997798235146342580781756869650967288182018125959487782049390471190495133764894914273091291682095023162389964854857228967405380426871712376507243544004783026584100589183246669715071029128320290409020595987826678472726419168863765671135805443677120782757439329785442052889642170989302068799347275872175086071787512123609350424508121735620865616372299813549797004702299108236155672923883276047880545143228785289746091090192121430375268211397451903416852634986760756823891566286146973804760895905777839949726105878573546451143858892612913558356607047110081537708706261815494359028850544659616153754415739429909581288954942198621934227931412809191851633823222297192756404784755081759213543129624153728686191405408761507614763218509977307580515508345013593130846702692749011863255351627975451249561469980900706238823276754997833885308035491163474971133648140331596475396135022693067029908198429796735667119621506121819199310545423313664884264717914892181090732125724549064344410231340443085234505844097479731299683156465739403475317814756913278605045505539668241205224037716886495922606449261491843380302186115663653662580645844616567943751277320867400715794927046967504238712737067220394127985925311473820344123558354657909770060992196036106176440536791429984465924734991758284336496551067023760555560713949566945208523378445593975297602254420024737695694371970342278624134946434330972005543073408529570322045796229656223603179494671905973416529837782723990531496830733656041489289492087285801589117025190859146381993019857334003434171491862138215317237483128849039052064291378770851242739284385453432783091684180240429680753118759486704161652474016112199904980256360837432877900534007208201962736912865219294268978225812667986010058735129124083768530387416656095509645338053920157039807807935933479136896130307779569447259939921651274905281565070728398316975090844942905322916285113252750656932986569500919485657748748244069969769285564739293511991840372255395966167340021146284264724915376718042270163832609306900558965352218670029993260150414078231012459573139287702924981487971389127874479587314028426058541588933631544657845596262499183020677742166679497680016352086582185373529401716607281574308275668541138659774543860444406226887238306506967081768196590569501091668668441404079370813529620840852242662823785794179858839559156626325854013648460363704210419646889449670222339549254151958734976649481826688067219324410739512311170345582064099964884585079829873239833300026964821185486243766186729412034060578457815935502414415229900695027764235788546762545529694620362535074486438103803184027683724953962040629420601549376842008377206529198410784865627300271583358037545411053076023539662798349690410116132130121270255219233356602548516922783028079912561160858301341886063812923328614619703776509044670093997243947875136735378424364427866963306998081614833361221306013575329639963625510430588315701503043711574437707815721850589826593593059327566751274231554600142187083156772325545340807649012056728841378997701507313303208286158301728164601116616802394839534659317074872190109597708613626437397110640787345633975494532199808176814857618933282392989030240078981521779266245923785000376728187462597717545621885486447533892653908258564298986051260799657379622094654373599015848793662446141265158208685335293512360720400073132138956072096868718643153871457855701430127446402736936358013460347377256752698440337173061931450263860255733426485890713665012098372778866199031168607912067253215190481842397246076301464793448838700000070472964558273850971270102135144619523301724506060103264752764261706050805254349510495442762647908006294277134895845332685623937835451114018979173929255219270784625709322517221219283539631482881250709372596991259367436198990772769549680764104130653549099747333929424896756158046894550230262082731934288367023328687125709514041710800922857079499738748814970988361500925195426437015538190866219230188711137739275957693017856924902576297867130058906073245669205826798005993051624319379620350518803117742789439909865377944885685650073064256215214593069147175990327839613387823706452517495865992223806727545167063676059044203897327230404637692974438010918609695086701930533249117593790305019666462615395362700906772344478989819692226241566871472902891617316861456842832249970167228349084524638797126429133013097544704156348680278638867358217685256010113212924657355440476076761934865699180903549092852697150340746262673244646211988634707320567888432659329909755865391588641634067057077273167101625613606133388368327839721459106224001912933931547526546034341555317116855292133961139070224149592187629262185176185547985515684596342798906010346528296918335107174606715939114435650269390359605036797141564716312707209358068654812742460318227857841279656243069914688681516003258540840868306871583700365650442309918643492048578828774903158259655503044938517172375919186467015570798447619500151604244136654927810395792533635031584331958321197113219180730697664873495014595541105846161612320273841525771843028510617275049489009706152010893796939755643199447330486043381208012257948864976013308809012698721218335461702537004370136684121332377232885027609413189066296952871892998716899635313354951590231945743605318494641304638895499558637881808412528029618342597272361938613462793301080388078283233835996158519350498464854675434547920385076876908896194433718064810377547053028867545735174233955202865384857956246652503209321107994914351233921641298503755534576884304438342110768666098142663706154905720249965347105214662982444199254708705696059139967447599094498739355613552999855126279614984768014471755623830501581490711517995368273911870192092523796233204284681629797917423211280728956643076789601046111104085905062651452261263444695525133680837374427714682141003639674096848550564290884789999219261208555555848282324671602225241321974707469442199732342918763536382197352296302565361644985238778680795287832825657769337291837749674307787169710130374874530710646498141268058832684194414455455394930830876243045413981527484845108307051939204101075593131681909342210707576065572175207255390775053134746863639179624879022387878415693405616083453892672380420799159851106323841804190867766713123871163336190333612786547006520639037414219555206696459368443016415251216242281805209523817396475669148879943292215168798092944350503924548630940402205303200353734463900395961180196585130645009111882643884865916487180568066990136727175583789182510749937286393868854674924466055804011205938686385533667723987298602299922494025672734918346480439668163568627056977121332389531825745677538567208412936856194516940422653783280825517801790340422144754943653703665671663637656622967438861405255591454246314901898949887360941554167525111540796844414474892274850237644345513737355060696702326316637802313259467647312280450366338629499837187489681464518148017917768691825363021150222068947108822827114682096254304927885753673233412427672026967190081051750464167790457205646210870869045486354586641584072722385638487457695669254954989502846122338583762901355378761799536496285999363076510164247741099383411842127445371544363092788728957990433637831443014538077892165661361027205528175059264240359039221952336832776167997362307630877418877360427037464909396151483808560101332105202037591642148208160273361601975242367498344327384498483541251993811620245143467592744018319004217648138097657569037224962843612724167774257246070195370841246265651979933504124701347057539789041641989581908711525081582047794390785465318424044710688743937812753344822607108040482358311191635860599070906966068428897457470278678609772803883664083234380787620364767329270195016591189466073376975067862670754921896268989453177356518559271455189370803435877701313120653732736175487524489969416799249959564596227618067168786277362254996002046083534807406363246343945323477118555976786472709487877183021037990657546562440295898936286860366618444254328535128234117764682176361063356898557071482954870201301042316994638811111620055436038405507005404814254056229065044810044257418578109791434874793004864420406023815213991840108141788115294948973148993655844290938819781552942405398327566640647636334869478702850232037372333937375940415279045056462480089024456545447002554865421722732221567475152067768432883671914544610930211296164591870016259352649305566311227036513284747500381910922731639266892533872274334768205582639333383608625746736395929988739168247388846916959959902730644773433767844268475428636617386084706382249637332379993535393337670427280275164589596036419202008321411626692959824359340787226981438226840791213485316865900318481777128750623513982636256816352984703272988445332418685726273451086209632688979501966383898790571919355117459800485716209429450593905619257666988631647591949021318925884215583334713324593379434257081796752445566927686868119888680636155515120553400816653565988211494236744258942450790608842162556064545442770362836326923993723309264799015277366824405255580700093331657730678095588989152057854452129401867148074908096472560043948579504047142173672024008843604796478749366356568072941680496707510529743021201755203940075955740070665473914064344284500174039155577767774459554682483992145557332003242200184308755770696215496089729743994751169300856923048718449959281272584455866052010724245599926356179053063326937266417797128119935407951784805459899632724074371527928950899284313401874600207878686712819753938353669831153673912802001353282185274127053236452637500788186958787077484861572444930744376099361209764884016330743975411761321965040885007518677769929977422692681767223216335000373138961910437789681875944937168303692512254750517779276496875292212009646002785970236341472550609007614752106172806452794914313353398590188373030187307963454709065166220425480366339387229645614619078488929990566207686550226110162827522974992176029131343084508460547218245787943495180035390708039380510673778192351536318424523951561735368326528129481067349896993070982916469049707244722991697844037183268193222485085439769190239731299468613518453205427962490741601747257796955903556587258331182478266376912960666305570203628543343040662508071533829467312685895321881849555490071727072241303065580423579085033031345984968467614949347060030184220017825096491838196338435242873196741499997726901407798079714165517562913026829111383474558655856678935572046761104367330537927534753649090436704661744835552093361791486128601331466909929071397811807563158636693170509742226620878068314208410353732612486725861364778974552517191191772150004676523087425736897336997449766909285551559793096524325907307172474842900510607132882494694760167623213212597133483483837555862710150670426460190172543399164874658252184100245777115299967497111360447615914540641875922035619851558417000996812011247981451594694917600316619602016726710277395546619321425462903857648700153268385351590290043666800228441100296877805004136695341484219036635757059781017921849678813213459683368531808854238906465584902039859158013328136903516776400469132207644895459931231383201002060115984456604891339764440052242135826903223858069501502783251880337857291397308290522600784730761699288497502089293009838800373267172347863508838475795391751360938261581300802850957325926933268598868617476379918169528424761289258858873539146848205538518289676396231592877324518338662538749859264895269750107008310569743662410495713630007674126253959549721390251552247656833106797038727696629355372166648401989679771113515037876119274603816979293715653388096825722298930154872382745820170546063808582782104117586981001186368443235204884642939486226124245337956995928833699817535714686565714657242122423532777299538995475361256221010673058234369344502661653509667956687930733833902089591723159190771601594895127562438134394304649903054359060693829922475784482994284607153508011182588574884411809477890957115644790992732530647352473130538580270558959655198752657027365074708643046872170369816870695127829655220942270526493229687058634967114216488995719796512975162599127588906154490865592161008184690177407881684073889251159866754912047685549242358417108368926463156710993255828388231174166553974058258594476940504420773076137606575456469637513362355812316262205612216780197709489130100561999342209753930472128634510017766971493871198275574234235233799831395003033821552254662068803098602013997810630984439161195930233561132331661918859050857457024604514079225289001625256835559445506921637866999265575229742575583296626708868293352597387026299081454192009336007166128415044155547659509161161019327085910128272915261604829534232179766017901004139243332249655028362367700035274906520692590359497576743061697359496190156934582284655168671147273648003317097050626078564415352039218658324520354424378285408317195249869703480969815469344415404471426834337878323758225072087970638348678994531214073166509037205299391822260071895371878786577551440919367739594372878675775187173903917721948947779748577438637475940470314604815363942237516776473756115670699556911525206724105925436838229165101309497172416704167334966841705887643347900149533332646120195663196100756321656598239005864442548722723962893275750974232257738659105867098060253913418904630342522255912635375571958563906905495801128970518700567809584239885850076117536031692958338844407040304674161377516076625949613731904502738482546576554096443271769446934886424976771126164296045429665116305632672184375966300209706645102478859326886539235087455535862054091651455933407861325767532386433221533037520975079260949841530326181389213373362945193176624602065815702489572571970859570897791731779206856367937034503729491207416736091028187326963119785258602374656748196437351307077227096472757792508252445907654628058693186510888041979230688800896671169368286801808529117538314050615031476560596643871188124954155054349263001735812947461962005771236155506739587305192720595031142110417195126970555227670159301688667961882945064146851865633649185523117884748061796579058609007993013147204583555479730048927799362762176372875306111696670335797374529952518270190242613353865257038654572041056120023273699413524794371059159546077516864728463306936456932252620146968904486561000339544860135191215783131866070502345382277786925818422037265493674507161722246957325763019112712071999893278706828681343117087429606742992217141608037494893500577409200483124714004884985937142443970855194915247357440212594831128862292909894043677218331826960736137725037949247579019095708357952070417397147272426729017380020473513235693490029026502138688178755258547878205130264345631514247408556255799544153562784797265975083346736045095873889292878299799084148857829256546715018937759448454776499782215741855123020958499651453829559126547924027593232373193512053864426335492920208297625582628062261060828303730366872323181992396910372615117281255149534762572180454590988575516501701851191891061284970612320093288124661037051247905263879045879142094485883727838651492909714643283061079663861455452771131231681176894179490484244766294902329979378040657568614491874771550789225505681419711344363739358163829324345683064362931304375506426359535446074277265403032501410824328268465671869404602864055225407395283483284998946543560455628164263904666112936092975552820112891430138598395079285355858963685940548013890241488571625199977568080707244423597954574193716928475673757966929154756005044969265444772211308235152973467063979136457910183582578628000467474773512585680241553273774371079114499771997413309816559041352238747099569177562375656176493726935981110152353779743578119096406113365018683348409245726424425555971973928700730059972970237807898478121569553916848720094151647535624498434891004814843105724334626239519662679175338243870066978144477948639530728487016451267790130762672527243142860854611386059181240314923572369684451703222578572651327493930219470069834777944091803232821314348847785411414351619432211871106726935957577394506678929791010624736178776465633968876630153118688103765953062689878944699124336186442631151985421189230211968049515227152905621425978653338045962043704855900915096733003305040353976935346333276268305566175423750173436415651982996196103883621584611724212074718756786667666094295475148872406530259926343674849805739779976772373360130993710794646846925651443578859695793624723070487194497779030031578072172488476688152562242429618151906823212455151483023432601824362916863696584729278605327528720035829392891956528521002989944356857018697972233505743701234679784638032828117007517259637586646249581189429301086810024487291938150924171760427302280870234256308445149999022854613661530096155063097708593982276733233126515436231044237746148442972613283733975857140683618447575144093275586893948048297571151294975681505963581808891099896204162466649940070181796528142850086749157233693072724383674466621260776076896605113612824342216824022466686370601804647489374104808051163314516522938123541227033134565868119310522956512085339988375026227815509463626524753726144095409703318983161279480087743709892256383395232955277924180943308995841733421669852223247562332139561147860567012697841979243864190952476608311062703472353938120003749502050077512433784901553145388124289197331338206339996836873642669496903080776557185741825346559535773318474991755867421091785027202318099286064044771176726763853342225785929953163233299123737232857211891781653794563934253470291694750902231243197556080731255214586140455875806096783532505067210771878563249040297006657001880920959971584631251517042125520733841605952581803845487122971800762836080016739654013214332561906065857709843796599673216559495361856109660728295905661419250819038951311387997183717231558784139662928509041630467006282083415782080583165427065348332963990562868897188275285901413143326459076187205809980424162612770593082749254729980985645624114345621925217763288979173999178705813789173193888088929437062669867902537922344180340107151866059282701354558948363712547797331796165367827195605239632152444678299573791673775660790148156367919151437384463619130687331222471300526713620541638493743609394293288737304735524736983498922621021961693165802020857162115233015570635750289452391664046745442583552660651936530964576822738911495830040007136321899400825913570520598503024802881642779606414291995307052382715961130187126144489068138753036766005206281598213930868391173163538424095838385482962849256508031767527723746774574938333996060053837027825825491106830707667886184683622593170126400421983067983859919813862172283716739106449570371543217455103996178268555819399552511709296247308287137371117932026541921239949563074449632830285214794797381769723398108046323424504783206813540986201674487498257523491055490231515937897759507397557427520322749068557496764003133223505388708969543090054343660487624742227706931327140031092438923486616637546960125662910570838697793305077093802547377636000909482181559977437958261428833923929467812648019813469182880392611462322090533662197374307296593329097811593950619981610600478366100833015131521921621874970927995336176001125750819971847544538960881722870640256765487697788312880201770888161863759100610479630093523677806698586018631906832697120714618548026751723531757828622297252220228232606576288222540708427090175154936604812203430659045399145230095539835334860293559010359842442399742063181654200730581143473960929472267783785118661367535602363095228069031533223630287581685658838487365637845845761678670803459947953482057827626480702665546123905951260384622573350381478722706310080309032635260477964507381899189304176774602064282549675200663073235701655752191564326687283537109802340736489061041736840672668712617745082948604279038818895580420340304012872502591444447955317660908166730964172204242365731942588219464152673013969921260721123891181556898393093824690381268223357929761582863026974427143901367204434093525344526134700907663327976787658191570217264314140757908646524723033283345816913203469072386651428335373886339439093203946358971835044914523841911902095771929192510027533123007383547971219000752313840866863445034167637521913416478875494565583601048015782771223028713322551977121342288718058196753404625248514289554670857462803651670402725062771617462611445033366212477167563263076867110301575058773336614377869583572755939909287001577340945652517771341360310451154515965161911264994178063437487448598972985148324979801843658954253360901282302236909107829922039962888941576497791263256927680723695687567712598825764104073042794230269541923579247076584229381306548501045916842163436112207611091821712997354870442552614916084846899486820729038062542869153614203290814151666142897615169223868199691494326604120142757188151922731541782904883445959187828303256331439584577295087358994008207962326250195313577925090181504394285395109684891197456019479727025948375591053930222925855490279586513456849386171553483881581071314325397673823365267380163282974423323321823335660193215985066766032145339997136741237368655306486323356095258013963852226653057626619550358365197034908164181502057349055952537862747816648278763933104050590817075693345818652545858747328583551796831204820706483347648366667378037883039219617647180735550249815798503690236648993952393145251260865123117521964133615024400556451153006424042743563912676236384822503122271449981691212863967842786854417341259171433679217982704094960639287048462066743660947339142402165102207369724538308012868261966518802919803879104416967841466404105549457172563384905649715360210236377485580864469540410718633464651394860054669531864572191909381761897121680262592711920282180202533763291593713731529265265340086989294342639865464762955040638203607552811938367994238160824017440839944010803808389291788092816405348865570059234951974949223544671677866851306684966511072495208960819868636119344058004667468157809936194034426862154248388970488515396163900938774631216598477570334676252579156960713423068744436222712436296158047644182924023090344122028567431588904824068697756849426703979669163465118706948968585534184146548978127785604918882491297951683740529318447202221454450141631899175498658950406687082604915698110840751594887665298027871815852295523084415731787866679737843628206980863135338478628297828461985565211327161367198525402152130212665720975833071960026797196869328658841671809204376858557296729351295074934780015258947290031240367931003909457200625970465181434266787154698253776196423962421483321499898132231284342923139704427059880646318288983138716666668319337960982822120917563579913111609978475145332241371423773599131211254725988158931756605378867897671222321648740170223084066183415893776710071051031733175605012722891288776774256548568175167866497482000373736798397287325976567973388821856198783477445741237805458160260172001884112880000280829113054231096414791292321438010283078218610888700619864057808140104205481387504772309509418197269700868787499803242161231511101781127689992209590535808540073225789216034702571747776556763446374616403083309129051733727936192509482940729620811459881045738291038227630348099984103261751585899060846012933825083340677779574452666582509251920376173877874996285062998280500323985242508126436356142887762555044803999142785995337480823286353240780125864510302010552344181303360019671050196292616171231047009891796594740197494211784732175980608227942981315334445213817314853524004211153867188116786040352544100915032893899520384230607525159501663491423718665199214485835366367309916259096786737279447971858251965772316014743745849164716397205861396221074419696021351416764406694842063057704506105878122262594387588551317007189596542467294539958956381602016545757363210869559554099758620822084748083859014757634926702405522407626649469662878734469880983805550058758511396022297079247565969497940591467236250128247118692502148076833939030465177932192345751794199798805709048600797406134294796969435939127778295566856917013738174237844507785773145234743822180622464255775632282107972481464436544250785807051366482099095114915674369709981415421000340233458312479902301583797652218104398570396348961751632872940108812704834441122067973506953071501413633625577915251740763767029051007125478792075580459058110563467126449681137003708417763186765164336768820008145943440472661971048413189191383182358273946994629091338563191449967877251891409774225439056865940873470663920241965975003897300156990488834366145894864871322445000686917717596790808411700060573998434962565001999802656690581060266629186027985203499195494157692663042465405160539941378996498562889917707209302386581080482591548452129993485583604441035795462615251831212367371169786200065196506251532059741091902516686378139407143465426823378410344298487357944212618932179119055096724140280988748143905523899008423979273251412277292119042012240266100354002481785403850943891060210559743056155201477872961316712420842512353746131591338036368551020833175391913626835638288407539629309139863257953722768995777117313571476911464353631893833375860553198297681143971116430422081182655104907846966183588008714656278852357323372058903984823318277590779349406605910853298819706250507516579112721789528561736190577338292151240227936017634150010467645177802071423348908899944666320163751363807648196950408257668803106256381814388515613154807816555578790049550435117774032699915035749649908766813421023021094113553104150168203955753518150249499169540449239942285880124064014418485708966916054460428005105947014912946678288795333340745422686257143640846702927739011627015562784738860438781217433791524509896730182259979588559601930991269577949273865898826159044310522859909602035252408424117379290509388881620990971716820310124292414636802728391675822006868358468277116229129200435824321808658610543188973492321203523131366558524362638001390877939193736775893039537330567806810383270507421743376552206997030828069825350851561348982898344843820927820986140455005833541761622226995851543520735364670466419947306214902344528954634042236877895330669078065859273905954000205821264225024440181894589811291681188441030200654285196133910838315930677696796611695796321661667959416402462454159687496592406791159275680307834735756578539353902801011124497215586955022496965280593244500128669359956668692734796799117805613458879351425335745201863434475568808111996323151090837228710701715786187456436663059946392183767171589644021680376131710273240899131250268082468980464226116852942192586426676578618413744851109142548988819242996551434718442559420115756718200075974500984630263258423343830199761420105268839385140735977712080703589439006999249689901894359810639232572618173188991418566969509524709432873058978354290332454872231630725545792604022364201983862280213905092021656977914402961141896123432274429445319107932272689336973782347282356669789565458413106238692613694622433079246699335757471273646918733810675522947756241610043310973092601118609487306843813454276020885063613918493601676584877122186725065774376378864624890003402548954384837995572201586074504493951134281849583068481180503597974932618871464034201116940375470695328304361068187972534770639107145442805112014106542384074831130639380993872871076285200383496145630197971276549895499573568160436046980616883536682865800958197185108779051892754751518075060774020441876973804454635763142318297377060983845650947920766746343722442544531218615693631213513344932526046548968244653801033872057605808691289615571343492058305116093990053700475997320976074182247196136138040472721989416303557960690698637624146807700187334363505133548002713605711220634581671855315762487260855845261805643661194334294341696936815182157153383445560709415990979479838968401658243173327024090947517180690175974859732029575322353572666546779134977322824974714237954406587000886302705526812606388062837061168075623469409776813266758428376559475960931629701601538176916647982066403842271264691145954756910921395161303916456688061552449665971058314325363416946771029000864799369547022866986730313083613949331457902650492129579108044974050264605921311464705477785346779500572327427414060246364750483818773186030407648875653427318668446035712300400659338929282990156687323234807781988708243877247650176884209908028190364505024149119898249558775620076867875733417951891135090859844210058088795394256791998371690898792204008087685139770217843190859015128077302726921061792010792469323831141382335811206153208250131942212842312420989631351252436714980538496573168461946798878715168993389330125581622180163302567793709491469834526082597646370396777686951774331658806841767752946501715175252794797591119350998842659286033732294524136789213464574059646415819225665440858492583908017219630179247925041435538075533658466679779643765757019293254253950581729380093289071172904924456793377712213153167246435064445679746439865716000042342636963874320888656279727691889930987691656252574680316896300743398570396636320693059328469242206677360694655116026089059417698473396967000556743674854347994393378340178810402544441866539919087761687618284227720554621044509558788011324749846874899450531260858106426368670938306810127903824547351859991352935690509573264828575490178757563329701002742219620005276305119153904395343772875326349689779907223532169461403988703368996933306839225389551433746565970689671933701991981874785307167646327711423972263124198429759990685908041277631209160187706911867942147419568195782563091543595293931126006519757922507196072352101157587347556376709224587340089379234013261909859942603920277275922069128197569428940405346180351421763517001515444128544384526467927422942022283006971784444128422456873833322387214720556426780940585518486166342899868322047010389984348044524452821279677907224300157181893808656324126751618650279576572386371989503384125395454676454172848625398781021642729923347665929753146769649452769251306338722502780005296325833255649310246336380256875137289074947595768349569802846366413570319222218177844532446951930659804212451876701245868857032133047109781541808317532572231301319722261069315865976345740632628140133958473906851320729445562567343360019718495512997880275530477900499944199305430673660698556684401888388496445299241820593273737107849831654299003764617148916668366589201409878916041776204367141005106230917729489990207097792599726561787577568817659573972248718308187542901083779490414990734355827633570478824974076466536564716714664601146285055216658500528123133603994391194890457608217647293187094558710689779418089693054831248386709573306921475582698052158879427680553128055457486636871126066819839568423230217664248855906826864565294914675437273464132207170057039039349673264367949447589584122861580194578044701864327635396582892229524643561348396417310203883583871501133225897065699083292485026147799097986846564753860101849795968178067327397556320585992740060645268007359899655798839028367830419503870733650001147390151503244912705467863581130615082051711979215504007848084405505099727799667031077629188417079345565160737289218278074923006084230279439905306191859347502068251577735325761803152616416726944824137286651433682356801409017634403233814008534747966197321424767125435779756678758503709256438514943236888042180249373206184741805176190321307589113665799297994164879396830759038298681397380409559734366425822600039502426624903975286124538742055807349705551066450635802465378551469735679683963268065151953499942249004107984172291729071136400258152323788951351153705578241699445458054391867386954891571389950004578388506135357745267050105382612221100562885228674626364483976461575403462084718120255130095648978096512315617360288554306891039634361840367909204469669769086492366689880548145585403151903374717294076394298892919021923884494746640187254929316933451784056348717827047372224924065794421134669072670821814277228199685091998096577873521886372020213692059484283314591746199679887939946916068180330607454201620360911177320903412011262929980483637062994602814074664532858766618517044901460551254595503680284935424172268041442643338241415411914547696418833349516792814367872574634822112300736883657993831838947915623735664469924547734041369729637815345344642587140588183148409150295249380427387796776790737404406761056316642457374895235904265877344105668833903257302420281932866719250999064809162832370174568678248032132437962604499310856138069139122688570773363142840749378259324847416182550865299179360271732281667650790887882278589408472075233395481185905201035089704365960129149438378150219952504960000843650773366679597843326314505846517278494051777783260297536731811490000814251612832831707124631497316896697037071431403802674713117216246151146334889102209935421437859735288770823025993675023468288618434255724718691255956446138666010490038108939962910621556344575130459805531174383417191870913657505148642357913846920102686547325090348645370117801118133659002219589402174031290135470988185468090974746002793477971546307617176884428409512127868243923839735150193148515441912844305829657545099943430626185535849728603509865700990872494288164092333146562452497048207305522833844279601073555561206577023163531593636263812698557226792489013891002008127741458251135151767320422908682300059180403628470958532759997599037683010696222911944814603037125807039170521628597234931978306159576601386020632448919813074018667927929849974029352216590320985779653547604396735299571542621663762843252015974560935758896361033739363021831599080226777963937313128718151898578303076305818194942733916953171836233386650559370181832527908623945914505469099224346647430408017830644992869477913867258595250149885763622933836035503065669759126482618886184076343265175105762788492740292295249573121007217308776945243164715120706836494859496060862844775446318145379093418331480929366652211639417868567478477488764037598164867860227148958093546756747172084089202690373208179837037539963843345837442747680319099614559594938982729717389675679951369028442565836288470917914934349920988712472435156834848129325161990401071322038918983815789816454615547438354977144916328898274177984750925016915702212718504826326840926435341636167920944249326456562658960777925030505851538815315850982080403355613893211288143222514443735975452931722873754107230941992407760196042552545156615786008146448494821346139340640819536713714208320768441130326923097899649753095493069255010266771034302609361835404824458696596335745092259039213308962470257797676919122080674325703138652082175538791903290753427800016680419738394307458688140644769116658754539669296009387751956990789163299910381077379443008471548886234410748511869610328845723092140716428544620516946552815353397608484778401008609751068514267409555990435659498219462894760021549351822621207751034409287004919157292885514582918032822665307578076119053310805643409731542031481904160973514189310748231966188289126631468562019695035756631953675134271051397798573325966244638733978245477702719408327808370345994339702370449033256339229944235908966719412587815415977652423037989904311086927654631680359174566432659252644915012343532560995845106416863946034667263279596369181294944355520219273822693727480779638349589493978805805429194947590784383809339265499663419419013034444578039152777494494223381707056736307880485598606171958602970484372627345063420002753614188602779743650857600911256632814843224672024716907534677724760804777880740748596801399428987160701786195607151245226034289627515224478606894616197099341543069117857939504606058236143525338063495474518838150258837322035598362416851302212257587907527431557886659197389546534641967242323087054959175968522126128290395791152317891897983119102865884279304149638026596841379374654120395536617607505746874733021424067147133801282298489547993473432184409949744382310323601260967740559414682985850940771239231349251195482657016994446890516659865501664163145894974296077910458101258512247397587919149748403939515910382800010447698550949666653684112475725022443687482189482837736424155545501850531714843164387395522648288431691166968164278644388170461177979741125038712111145534417802119731674648780142885412816628051451946457043455840278539094109787355158133414292326621223894247947936160426232224075842681618762263149724029853828481922064044915054160618192365485064210574059652031155290813815298653308230534059273369770234833151522673331101911632385341204963450529025759894504603082398282804376716931433388724853287229235828103452888490259953667019670462433105255244830162818875718206564282625728494582325021187123767287514045543518911519099544210560705745774731373656994125677667966533351836332819158473467142600319240383943258081069920340014631066797616317778761336272951867973984675854208577911844291595273987314601761087033842481625032320042667591138005201955464630830481728508307186367074470828581231197547037537731704787622453907448197447575145704268508071826445739520512649260249635575740286292225295299400737999244835120804301851749986072456481570955959044404145054904991735863674716427513532606903947651164277167669137668228180157349973190999678861306424450518727371416737760387157297994331225404707177402705328372151704295430944554365698527851422830145716169372296447261153040305114725160513032956888581875568731564171331772524447654309595601450652719958556399363426954728573398130384708590906321341031851666763397710415172889160249233792462528402569929549973978786494204838221176699329034609856959341777737610848840737112402858329481618458949369910426830942735684541846855810379397196193408337209980204974166843159807019610279325562451580987426973810499724244341382472162560012014665301150822211237294471105745510380234674526398972896194257939673375274168894238413871788576757893866936806472597341691365155086571466884394463566896146162437903628144459207880453393913201158749162717968624311241987629493224393327678676439428954931280828318786798946690455476246609912431307310035101946498513014465623921493699667950361213083757009270790095159102463114815625184363616489333034351860388937418758140652612902859722519403104414713675246723255423702869419376912268702652645333880269616069311561425809667544868604522200149944401575819793007688744848930541762245652874970334170636975207441980446612371983421791897251913970126376594898121689991267371436931309928874740776303887314219321811828577945302803757382235704928318937681817542653377183878204796668710866746350560569913433796384667779022244730357497374164039936285935098800283482019295711576300812203975742901668044807878716280340158343904053293898223489389553364549713195923514494993816031776853940239816755364519390663639310515467038745939245884503946292868381754344084570545651248857317081783807354113760384744949975131084009039840553944600585226788649302127968729447703900633359580179799392150606575635646424663106796410592876301109880862158957651637402101333251072656888720500078236578715300179739450211101015941266867395266469671068251657854577165617479225681231685331456218322164072358484266562914416082113790860576048074065662776170359366771756328558993184627140958226202588410177010474178051483239357319726325401020017827214082279398770205542792936668363284131324394582576193183114818600887695397033378324809439763345602091279412132153390456088707769552182735815814848685637535980264957877786200341305738836581161260274975437345928544188047742893565544328962321896940226176845366402004381973012911728760205944077185835471938508307837564154134536402656724657513452614362750752004280941952325373586706091533884753483863652249990368254813636598478197119357361380863855250640352584747438714649297780577715252920062434141439669295964413113911184644191177741255084805955279338385877321756515612036243035155168173958499730483988711901898258310047605324768832773368187166272674903602988907016691546039881984443351032269112804332872099521079873349562837983390505745687992846159321144165294603933721245367601230980263298584554593871230553492239369283688251727880920285582966106968242687362988287142688220140472312906398437974581681237583845602507451849128242135920488006709882995115029706314882125408269391348001443961376554828699088208409967285238509195134392575042324877029014941996294509250388109670961521553221057460493860858017155387428593812800149205407835470511363783340454676058192700349442716190389168597278106447949390851301493055345794413907833426068483761264811191591057382718214444905182341953414833630752440179146265820563857201265397017932208695537132593017101054137376026246837632388588043564236211730227038693885287533998879453267432036645869942141634157705131400140292659869458406289256749963002224497819799874563685754604462092816093353651737858593007793767313474891878297938806059171856856049333114397443066553963778938519347471563025013714136023559829797397179528988730877511984775688009644393137460785404336503252630600458223713305686950280287155743369269466705279950236981224740145274232962034121493056981089775292095912777958178870164680411340060864920856252360580142838048004386232111197034759019404675948364161237804888591605124119549951396760529772093308321527215440551395419701834512989316573340036174453594491971420316335114626655707333338843717849310998307810441070622195463929859775520227279654665156986983727768194613427980682120585281053956906792256286357922518534945001844841565340120529572506068780295569151300712453584906691716529825660308397049197619415031829503454115134314755062036296685397016477093616831316186308907345119704981971057072581417316645408993180708275200981178074626551464028686398337358954648683780337034098811855744488097816760402146786236004503659938963360382456067094713658058641650800443555849844157926933590994737591294163025807049237474913559925648334663170349452726494768527565378925009387315232942490711072694989501277519985079436101417166764774821166634484175904947848961757840853628233067133728265342335845045694035857651164746065135062428518357602919307952006368175326333755028681739770934635481232412907990114366797322337213899284302600523485849881403229079676462106028527949633910063765141305764977404971858601804176715248326392650691664391951414700414438940319039464471254076077181692279668919485727184577694621364426040511133675623269230343400516320316817725245155739966722724591531062801711488951030414686597843342336149355083846888999577875856953616562162398647317154425388190093367943003354788004965339376436921423621071523454223546271206924080532629072107907437732882711789044911987482393086213434382811309591302062705486557058454045674406154961052790185803979577755571784244546125310729488834978502325599068700230486142969766229004321774427471327211000030896992269384924090116114392271459150951191177650364102744888908854784576539296525274017834298608527945139525154797180856642649559759276379959898108639604134192321345875251090865842952174848804450415482081436251982350274677327934571179904105232085022847344260829455580102460758552114061324398298314247192716711257933261122470623712110109182867455143708469499028374897774049011093771620490752440882645445805652523994516813477977831079698412044944582044195090820959013215090494904589089482014388152422142534172805764476711694700389055804176650301341246837133264985636935557519073454362477257848568913073192963426339593696846792970127643079398144246072222395476113327317852076453108635538688019513663646553474197578155026356295016694097487338085104130879766271990894951757915146848787607290513232188018727298345164342257329517200134375120391481956703019729091533163618174284517961389159812070952803361427648407155184303908080451575060757166723529612736877797594914055548721768866915714167919392907248808321017505604963687572839537610238794549763765126144723008724966260278770846477866578566367066182951940403376524108906815643647868954871218575930137044048150190563848618650143864031013626923721558347398653379706521878268954336979120743457277675897238708378611141938978191740010491904572049271577250920672952563319326421092467497448730266857724504630236896998516166315441398625478536586297602091665845164373597299004624670982183028442322803771066774419432852494334958686836971960628060332198358992461502657234685190871977137632401641993060557477257023196599135232418958087076217395023582365664692315892215510036390419454205654753455370932501487658149265680054411066222694420875202723111750307571941371570024771770036105370809174914547604027368533702902450462648805417230729487607325035593456445605339120053827868213863002571312802546489512992381924450031788726574902326727900558365024772839000171363479640574974360934817668894560467675894067298912781438090729762872915846888864476883700724027430817274943960907274303259633828660124209795385031202194862901257647612719876125695620985958745421766999491760360175453170391091164184247156585745283777676100975641794617617267903512392612885297605529630968036485172442490772035435895466200213360282175286337900940038531753878699520360180466196662209118986402774196015894168151533000121054515421459874186084472086454683548563791573526216131680319250596232028790220803224839177631191551932440668559680275588204636018978738689901073246553668498563622149698643632564120511007605571933893675627834953728341712907730868353754392513582388924539099015503569820613371475346428316203855714290671453044169277106530385496485388498632545610644252428851749752604399211509770105799133034237920584279096287655904901875355185408381823403934951770256828638952312481711936372202835437662111501545247271167368292711249752827397196406959091725638421972499727936614912909773228950114350867713507463997087405165407407440431821852740994522131539709552452458054064461151360076709894787640715501456455940213453027710354337615598308368008141026587526558850122936779761316509326549277793756568946032906731594634068671972331143062795916082612155291641713710364766351182009138151751865761453952987633892781428487006056561791276710676874327359957597938091415157741149610102060392705538591239788399984615820160654254129590898015064338109791909630202560882395924816066380949830965553953974560816271496819719663773670593902040060976792534556382908019436878329829345169026726886703539526156001700638292492150642445692203214309684474465418867946576045748664662526849879131371351610967867698671963572119390971934540907847549779784988569490472608182471753378403210830062145465695518557109683801776635550404375964024870795490788562419020952152825484694535132907417871729813492931102269010904574209174396758562797760720698306931601687873573301697891261416020344962785922464996865656158852966070090721449716751464268068287391946818007416361263804589954321679782063459321291855027781566642287734155357622161103840375375567553298791018229389949106282622696007316018530273071157073188537221947398331554311557813374509573771207926974185244098175846863359162516322141443528227475490657557188028943676091049017493997062132838661193613556666058000440890155660246360699939275439909262683074305227995089256928171711106736106586658748173508261363357389016309311617435207949996646995150327421014747553976178551369378059894346900452359874209201664800228736909489413606194347360761907010903907408539314470446007572954189154206944903250589860883883958791418201533365331509250830211905316913990040428986056825961723813476290661564292542286374360520126889194069779082594066299366868656373246656842421739716472805144253958397573501295485074405000222225793216859846699342962218132679508777384970795439629786962562285697981034858626145460564496817821756293162491656336345878602038302522771758276206860523761593331616109209076009427707372382805591622666124136416471459794545518607049376582115487477642840438036804114993977915542181578243863947464591277259987180437940922205175334381934911395353777559889728363141725343704099107395097274915110602382009907011016714878618263388905072962426850226473426160283687558954140197377055952803698279125225263249407879093600379042296320199384824794561821309897627767891994559010023116987942270660905720365121911302578863980313370108876381939581427081117377795629402189193167850908525331188011385990770140271431261879882013823306785958556457855810843028772557254991856617382157788464423589058766808606721722902776388459104090319228341790813424392207942112376871868481146685811218159683058896834079414401124367552782052336641928624935884114514491260074760059363662984243848963213286707065678658371182401349794335289348506033242406794919993583653700641362074305918546023173318642977029927162462448524350597332432735481156181301261060712568019786804826939980541611613743849524183327062737745566189349329200678849568386822020650456375571068268813290664103182738235881757429615910363770332242189046258929526567899434861886787754178959874740875000761186432248853476802947598787884362590468133189015536989202935259975864693650188728460430530395321808508471788856926745419240109255972480761105124203361590694082390056520237593267946310845368681518156180645574976313667602853983803422976618245621789106559878513077720270511093479792394957973144682422621967497169235109322513660542202990001721531252413739875967174493595465297068092160899229272622972687393397913291434384092860114331978629701230093923566974027583982933670112208432541606427068581371858104618370869038623378381108159148692709811850297985051602073248227689728834682591111071190227632712588753978661473154264289830161100939252821316905823805746333780982893061050125401860964264786110325082060487582164315959295312588987186874705954431719594801018684588788775756033642242720189612214609721988342048009787629462493065074056336640732499300666770515025426179947219850058130289622454062587642484650859830589838763049806601276503111597038311760512830002587564724912543011981078974751765491994993429760894192397688022224144354114610174256943562453714890973255759051803930366934534787316809908485630111380260348952286664827882319084581352918706576133039556547129710872732862452806150559839201224252012084764506987398427978453992443674318075076000803603971155623968599816671657470149464734331303183238902213270184571008845452819863174637368640576780255356060057206154384800650509182646633145786577564077188711643957822216848693245737967459450879802339132854367218808718392334236542319407352699627726878839240811016888609814054681957146528012020141490719959013135120104011598433029896432603845021600720324230152169920047638205872766253380934549433826916535319719445776057933319160943614443450324783702973400293223509439050266803656733521685300879400087640395628650204424443916147119256159623607158269800559049299159420226403456972705341545847385769286349197837916096374444857421284659839686675259737632042977675084889064224707964657583723525398269326961579052859459813499824432151967928575469615961773872076030365896498626232456023161367318003529254662643851030460328813612008084793668073279331895399845267296795732283860614241287888928912792473586865508637214564069412989893967345807062388294064827018271701731595244148507304525044096955972134389285231730621484001402578426702059562447008844001282443097581212631567457143380072415067049040259955764993732773577222432197289129298545090499836229127824710539210578886522110597051682112036326707133113222668384013878560325400742619955837648343428036421221354369920714300699308980671836789542855559802582943841342005208566715130641400100001740733545957870661125430321770158100344833195728434678392642305133114427351514476380276675450800554763307037471695135683645020904122013589256245406274474121599717457226066821889323710983816605004857891130427043649276357683013945065898867037327710884747840205325438686719270351077539627524269832720417862595459591367794703947405157706709501990470666870062093619944837070608171823747488683820382258624861567468683102772380429284121747700646923055833335730544855399852556810986528941991120768168518112610199235715018513893911665715605110734822739103214265603935336055564214045945164786682100391038272686159061401861129257183899170293535266814956246216587172427249986649155941148484619764253625092620880069759321319290618396298518485196915874644679458076267270322008158110414640424101795094374921680647602380961910711698618974040321548172263725677942164515040824796109403519478287379893724250384315888386843998880249877559570460600707910325056332111445339517595407347679727031071337612219143454655831359577664268403402861291568850238730463776801050770474310542859821315384566931481392079764923033789271244972084282376332748692303082485151800108392037582399590848574993957607512333811952888671384592173599768395090739544198037830512253323597563606400220599639142105013659303519160940909576718560677247992747613705909118795270532106714691014374895197384256035126664937757212383796780875509668912729566907004754072878681817528207897342531667935787854964119298285059775273950680093881423064062198344409074408763864642885204362240189059220016212905380194933991766798881067863036865749834720237776870442137812098689886278907781001432864028272934149973695523323075982272044874259419247446737408247569689054916962025151139552846902039500351966928471416253639622348790622712381942314209120773119835357645101428941694397948189666021210591364334029058541032478169663255176547923450511584781050630818622215366753157758863406585794594531806947561944424384540822308967066638957719549113315336581825987367749559194306714966216581656985957282370618895820600339239247168942698847235023347832819660405008664289011356166514211932431662233623837669096432447443322707747603400755358879668760536669783357733047411938159649590141187020437587031757553650272331277661771215017249916344324370596363765551603519843899728946104033092981978517649974639658973645499713465213702379190517746238107675386312373255528706568607606979165021470767881947008173156408178674969824307832274328675478899811785528353615476005021372832903969026254424851082283219171509248358374932965433595092750416587941346147729150659771107850359163327157723345321566764351308760727817969141822378754357955354715182158028385484520601244372206222081027888602549256906630508101417501629622646230403797800800018988316524209619623959949432108645772775699141978244750765867363443085695942639147496749204602743949361821185760389422776956600279977813793402115492844066399116080617064230742754247793441510193937110044231784742053508260273688765722969697939325965829134355882618917132411647150692834608618743593503020200531710823258856919224007206931366712864892307107329381599163888334568028917568136513469378090808034213837909067297274181285521155566485298479623110596846961193875994037089595295252395145169588469643159161123387686189973452038498623565901281934111355655501864359462849861411098057732162063858710331681534679671799915793987051889547440059642430831960595015441741612910550179375359534436894825991851736136671957800119580401704901146431051791155049715327431453659967108142895858859714470673086766863343047497956478329879730270005093383100665457062185407915544932947504057835194984688518877585712850417461203246953839830060418793061258192465536271796505604082825554489361700350396565304186295002400842165657809672831628207020764131162445228014366913200960360949439647318460435301252959395081525469700485274978422649034215218984306132761554748220983673834517618430502821445053915054775542853479335979165073519782647119875865441703333833351599455986573048770704471503022320464302899295656362768131907785852029063074606750019121199909191183323999177475178584039441612423526688892905055699145475824484902679212175232722374793590077821736099407266342735378362476467317879158473477742128207479394846127625674112886208604918306150140163596524562192739909974833138181290696410739216793396764203901221961893918895810021002195622493899730485172871414568203255051376777719575292430369563624572249481151164900760224883320588422876434512692182533091783511459842491980259430278386472007649626867757847895841483327004629073923608581522705147377692924312881859711523851057168537481559797874392115201309905676028965170582401575133269977312498258107699842200967766001208552705702053948157253231240351088310449223544586070646182844556247714234343454537263566960198702495037979247959941335028275342788914523349647889846205779601450583146966883847636220196241569201024972363131140128258660497117336186047988674884883707685830584006637436006250798577996381212020744198996311113368700941715734356045208370702927070504178272589622817345372669591264000352309739370634035303605944591864513636581305636906978253574746627704274509731059700400628000246282527545874063796522580905251603974486162070650556731945628156045380053642305766151648223229011048581806832871895003978420137853569168524653358862797705171292150887506067244970302411708617741303140295619978461158556641614000753729624643071061046808598522333329500301610992010688569508607307529745356073029491132689028049005416118869255288059763468245863227883699700414757092187881031015755829957132473062654417154309208926598259240044965647766147587191834968140432875892508821026200424059457016134230682946190531280259778194281631846136807461297555431138580409127369849946686344206961154460231854265593394671445331442583480294711527532970833853829174624643379204342666654119247411625039752786778716949729963111240744374443483157424658120618675163181840566435760110933688159725670978718590189328638920957068379903793835860571330439876827092509047831758604831921433354143070427749550671841150029630931698541147166864706398234518659349996657426490488487966918585485721838513284491849838875136823633891820769226270707588967542869197850159569768567076199639230004605822970821505833331952662218721666482898425100918677432018455329040228228773597357476674609286050159250791120404722994922531711493833222338471955144214213665397987635070636881597604925831478421303708515251243365308142289986035209262410987956493238595819187725556737402861550980775205773609714917997095873580363731756153969755585617343157822397181730856282917821406194205375987387544827313922094700701658110342074312916025886356588890671201073794249975592745303356102976502782548938852235963811252705175143654100833295360137225452808585147015564189183165997890058394443536341483312048052550289705933783052603595092595613677958943894199837720641285322536515821249609646449360730376754838722910512989112541452517434481708373200328479780866388914577798469250254615610609905141252706718720414856822253836173531593607346397219152784154054399926673066618870448420397119756633636887820610414885862859384293460966143726048734847775469689151476225479587790054629900920615068049504019839705583556641690313205246154336827375099047699230007178557319409538312858670573177270396540909562155326953793578139725536467663427354327214310672532335948930784095266221665956615182643125122287984799181795707828100562231183702222240104371815501665362933393750096481795606562568523102871472247470398120812194373136755963418399437538455355921079948238220488093006778924296755450544807833545877047347374295316400987194686650403500990366167290851919122271318286452289716211812118428381104120854913737209631992979660427934967054338634034896249290817408074114135936398028419914059217279293050312029415203885125462980514439682121474464947975209538572326625340899162542296987632007512657271768797447687919339191515808336903377853473361966740477741166318343700737581616589879288551473274570859817595413433339207237697094956619611321228492616013224202520648197732906911682171903620476883341915590718462747381387137586943037885647876477312231315086413736138148197108858066909718212616282523581999746916430301100402268649521706688700561390329507199181032392307212297127256582857498941810036526789750029228017949049414851494710549236057920751320169379044742799620283874437244314672746144504387963669542827606321745788668967596682485446067312996654774776776773460212841668282669175918109125325900188732485032971739448868846392315272623080295354111701897853012786058690335953945516967851053601828275284125711953454675722648439900430169502618352314887023467623114677381928923318455981633910926336274180134754519016265032531677055388323462486463662210734787969212760377665944625639864519898152729899171586369768837323054619982252826228684943832441705194582826886025832983626148221077175429631319609558422065393252138784459806814943097237678510750381855916057744776392658901524493075190837852473121846942622341150562037885720717190288048378250336290737687137057623710329283280500872218325076230276940091750838436727379328304558422962417493913058697118451608197701909759729000678232135809020582076344725677490275791360165508827593529250891501046672038541105527785942846332772935147912853133810672176685201289540364003291587889448526763054210444548714018372168173754542017867299887876815823373104256741449094634397647828151209338160615944072712462395515010686014583312826444347090992267356573406637579923112345110112478033128440035006260216726439062698553442888300475795873916325179744983233158480827936023533558600297227469351127517971197545914669081111047827344654494554502798752351088940492306784679115758608104486708249623764403934590171538327604182009008585551713003293467936483243325407087117066367295784530579267341370241140870363108210218581035946504951734415559532695816152567145027434918886714635289600179425789210193405785872378884836861681917060043204175608342245408398121132546744929584438619256706316733387954689908827140181595272359360488859543147147032731947849952428732684989580574418038912758725989667335379505876304135306617104873984303997452403518024378378644808903596531915211260490774661786368930876201719750427037690868445079330333968098635701339263506372336771546271013555271330054888669711498104092606598405990386400079463563549960696024987902321017136125786846484783742846983174926227267272476302933790250602228438630431369157804440286963443765604191606528013683170582870049107973432898551192963976800902528553770656116393196323138468477760973077849461682742039478217630592104467390476478724380268754689452798652044785771219458598797706195073557143363350486725827741767367944797191843657124823878479213070390387860547720237457878933926985201630472802593885292232487348910314012294738171853931438931100483298340067822944983621985776384881563893103844363005003982661102557644181242992156743390868248450809921475815182576558083398806338006927222428573891893035368160622593014214760776628227776206239258319574303427231913031736483528540618025337917129076443834523230405912504080474279279780949018030284928328039740259778984421419884277097708618204068742348231445671611748850766452717241534146919795507559611551802478675281251780859298233097156868099388637972884744192144616632676954490669129976496546333917869883466322088757113341911401875137295406190108107832159459717888437681291607300111806523346756542317991969800528891649451890837321898687723040257618427467972941221849596877803987501015942876668414907813850369692288199659013802847708577951610526649284517821863652397005490791988456402321767206809088004567313980559235369271255549841389423722058122399347631071610213172239676548110471125631989166376188751334872033020419086238783564658013067327898149303805496223101169186827974721848204777944838824996665184959589882647781542591509491488775385829885798012836878178195214787609747192143352441346854191925123528044313626753564491800084799031041316155645612228489919490455782626146706583413946426954021896536620426747433635613108665567305961074668441922409534289591235909284431368211714025521417120783204650589481565233353203108624262105019415683773283416673615318407705560835905671959422200215900718125360363015071578845424503971122678677939722506722272241058794809955992656559983538089809053469343277796897125213363260865106144680657537075707973514810207240776466818439061632651291791079558846258030250675310298159408318454404401435373821485322588540321465434750300211968453033473551479503001316116207015414979567346757375279647114902644166871492237585458586459117243778990736812344974712896704407982914007630299699129763571202573813979690775350825316017784988603331862140065825844639468804280583267982014391172785144588120176258880796119222779019811693106663282062145150650078852112679133867901351053331280790870512949962168022345455301426851768259478247476099892684908098140050775321282425475604491280551456634346141588542138126923347948800400053379145837423493811010792444941635955955761960333992635796755000878583777228571338188522185506364109284928076073673312924968200102816972680678361492319668483808898162764684324730014293670908384706643100100940138201767987647856601141162673806825348449111374705571035128844408268918732768648728729952472453063798278295900241877329835712365617584109655331690076748706083861809481555274791888570175892159604668443619014033977744920802417782863417304667023954462599919252266181760591334449452110968902530717831608944638786825429404057403003548639593990381507023373446774163752889006051513497621372809371762629171729326277726572354303933630628698082042524898249441461043728575565252058744724130604270774965572861172592934607697323148200172376151412260676809224710634872474791638937401460417012561736625571993529630533575489832494733001535755282704261006665463427862879027208957411072132989502869079932026076306032745662383965159634813452801956706208740077953398378974411600485188908825314326573988034670021285692171357307572206248895882193118429041255337344549152019256672183855757393904573406630999318965027398889185219306097575103858109022260993545102109597283043093982723874166027605214361630575447917400841605352847941309116349790992058777120593625287229774310096296973980298431158429750639228049915164820915056312025149977476464776413658107939364661705076105431076673865668067659478006159961119978397290871144693318241256600705383364527871741445307541384420027476724945297544085597034286289356680319607290920375768982987815928803002065657153949375630952236551218821018519362729662487566002363531401170583568977437584408517292743727239308425251578710800513614388819853477179681380289823253212706612560076332097501534181045042650673574034226116047888797237310274593054045757054786834094385115754705029423664496766246784078397131653589408067508163145353759120606808921490873150498331955484661768919672078968285756485019758282085881601089971967966380838328671670006464367565700280595375188379573640922432654235234813218563213410126061717048280577280444012569401772972523907993372297390281305475560842317546675864565512004153059986177714826890661382133059239934982464957221348288197263616815753671243504012256803586199111961896538396950879839766586396424496223166112780865618162081811221070596632241179020670043564885846503927781086347930810813280806919328651990276973247717964030848955144807796006154167817511248299596437785905740257914663328754931970950762998161328757766002867636330075076132062396400731513132588897050722593760282359375026440266067608371898167009768115222636932285218870651246250332196778224267866337515001576031366542809754840400882373609372854036384642677748433999479621191242347782598233403164691853136714983565227907253980216393965595505997169598604967801593049747491251450200532567296073950744873146281658595457757745593728443073811203159197233580776924631824624749412552376431242533709577875522028162383640406187128844924503962611737580732464848095985046093687334933274171725324038969063796572902998863013933519975752641953661107489038544829878098956508889002602537999326651875378746559289934585720794102047450712464405693605176734216633764507287402277984541400307281083356029541902336628564157410820003722207590937004959817887950287211342815639167738733452851438509442057442728353827558724336224046796858822774335595801079548973937763266997356283100198717766058839663685597828884150013728101415762545760586408755954964045751596072846593843862760352889228164757477016865880942401366502851229734470938961147073050911535353961799879922906162032787503192714648464788767491829620819614506533966495473259571559299140766063432180476395921965862770343306259928366950301202643518251857033936299891409487611423032860521813532351824736117409916411975153225067053253860908744778802124452296796372210942705643186049339399408941775903807904235857601136701309850037207750930140869895668159443699276916575143991294605789831477942538817845302524375511635324816750379545266112384973717526775409837237895797177936530011526548111201295017019273377159443874583867397783810880059132449251431411664704615524376213351687019923749634762786189424634903726976654479637582916740598483831992943596568634946657832863134655532836320720831292372663353746295831026371889561030889062902047896807733253196296651661755153939483500304119975247327129889568820896557414100337289256222844427137662579345789238412451968854467996157093494668062722879796285518223343790740460438237362554387800431407473388228378009021167236642678325171587138992967477772250159817508339782281047024680165439252867027836293104772404488182157038138710885857720389912105297929677333971492003305337409055939109022130095507283635161742528075337518620381877856427741516358475711448362513783301683181629419641785733253096339398302277660076700714071056553874863406181407564031463743985565280680243063566033311835921675441259585383487916044430889954155450039613863205879812739844294941232809446563832037696396090395774919532690648675958073779084695115352757618040070856860444665482889795945972357490475552109500975709837273642059242407200650979870801412804580174242763740589217726330193005968138307518839311814201279461470570897651861184231697049210642041924563329884706066845146436405308315073772389028732569494800365404244316027874055850332245676920430188811441161109942321860879191134731388980024283428815913661718770177134096213415715895238857931419799037661451723909963370041489414751223991757110963828599264026035898260945295411841827311314137319383931692062369865328438416886137647196645762623001670570410775122012290485293671672368890380762938580659690648990550828642676191204503637852692597558122382625495753069062638887770764216835279577876335923193129623435167792445053088933047715846065474540474969969254370594519398887385708955351921207622685692100732757811496669382499027581262835164453686517585993661983774257795460670725857439217113816405405287115513369676181231262868885914443201260488277963338210303745585236156180920483408260341653946312336628553521252393542647173065583973972800788935819898630265205430912327587245603698231491324968031501782331454580455095296816507189121434883280980139420441528537385351458855731719881349059470699408333430028199881458746807095330639277265604526499340718430572526865261074271077709718484092490786534713688772723153249728898264503316551124646014399143689762098532132849023986790536454621034901480059205960813967278411582504809367482919833007404427041359790942013290547348217438977898457026085062100146524075965515926074679510501767929984453246171727842267366021905280240599774218557936150038403901977750046887367137584598152094601017655939498049961713940223256396289502953984521990741462062159160925118760339071476890575535046587721917533505416830944278803577998795323257852547958086165040270358308592975518880675464126774346441169251242917161376654078623525199885209022626341573050651743360293304473812525262326958705125882456617749216902504408230795093101075437605115080521933327745281339377344355233515405923853821605742784349236016807996696443555674341308634237705331233260632161232911982120806287746202499425358398895556629811400285515961028296835783563455801053506603846167105425437052561760890868241304507949358188091907658928257830587416518944648199241410185950290624208300166366535020284765271877289000610130376764185991167955522780820730431078514210326695615775197100771688781293976675715102936679796483591580532573073502030881606097298508848432392485942978253803964241916637135949266951905968153061586629624162130764310775270433697171771528026232524434267463400162038853243353818881184463370719064975082653028785137630855445916836617501553593859202941193131799250214193545126663383541295362417569710247235570919728802271976096300466802431776212507764600363009697967824429467112257306853636734278320971593505337681529803820864318151137075144932284983536216932930540897558620952084198935546283610481597745547573670209772219998030795767308015293241784529313822011849737933917411290198274879078884664998672862110993608250188381515952229929015061256316098853224010395048103140196913771336606707238415974072623241685197226073565982648577549333912071076749699704443167372433495196142078164797223600736564599678682329598734492023452968645649896132607249755771479164948443560387942636286425502404032358748525251724488980822545117788607881646179342862153888582943438056426943206060327052197957879486394027689704051428720412193850551727797245347347354758552293764857979236628879016814982782074123106585313054339858478224625078717135945448189630141956457793902328337869859327439900980537991206038876467533693345810015833655891415061845004348725255788508207629531857854699821635943147126264608705720291535270172119303079528575777086584140984249543705640580113340452683718143390083515544088927991426646113677609768852078272464381872952622735571583827609373717252458694059122147321023480488156352555309861829721011627583333997917336419439778408804803933809332665342369532056131919867374710060154942339246647090559757605005275430484889430968310412250539336610171785701212703069952987034047586855561687899671932061717195974086078025743614583247104805753186627973305737295074293107131415703009068178878447156300789006012453799742826027513051894819651684967326199393117960092211606860901188464254446964621822807320802449461203287692803961457595907211283643587618760946699273304703967565937690974526142689096861648597441207400884632401948375671686184884290279262237034722676213822155616545344963526260732191875067792908170509742166086049032231664235285530260885294863549005064979143738077395066125264175819315416470776090215490409105758467293928438366051067940047914945017155805458867819599005310552086100379626015909122070687964241163288429054012809055265458701707651979203433926829438636919232029160902607226356029078668912683820724671157352426294324229787347898760592274752296320215459703815162163855923709004492477014235295282871378005426845619979612210075609168558898155473677069528185261349438093237859519015001653318428909023335111393308240111844879471528545532613682617908402431920015534413829433856188613246746167015331924571591697302640866936769652190732554331849499762144460966703516000068479092709990992752933947677788061700255393717118286869615146467884264890252842192205199377116043618515728259729527964381500746547227522852047449134754111974264894894225035992831400847182043923959109752345799895990293774112950664322732120983188988108242690889894824281239418089881968528403598340863405227743359458194628904004530039795991505432047510656990339157073363416304213771691831186702186942619671738129291858026882145747581811280172839471812958331593706444343667164952681537915880243463955709779130682493258957781033724266949159308119275196991445135676651092560763488354864075883297956319270704259672522647496689560041683809492446932621824858129269071635129723256247724735270893035336048429600510881610682444531342284400599686094308417693769572646680219248769414312357037662019740424899330144294816405967643664154088546980772910660579110967333583577129669464687794700952145632577508951297593559032749692100283643282169211256075299158454845722089329035815846705665701177524872871370644041858759475572712054873796742002870727004589233394385840235885730691504882642927880843467927940231041130679533442184014906766006555971917399743377096561313537787852739651899286738938735340742855757965452528986555216495827418234108068727256766823174171894400809314765526222480530274833959813365280352462342437769277437829698768532787632445946105127769111869298801353672603538257285904843236656507922554689646076068578907456507518668349526745414322331789213687656939831404443098031014975359278781546138064531852447364326271397421457120145766681275487642522876953485210913579007812442781673761219287720282253288640370560962030995292661495681662221210369315703614719895111360671030735549796027793552527309250331399232513068077817573845792706097917180266043753370005797763214695475960825380690520285472177995619390121168544693187483242743124652109354386970506009504585193904309886729456214178379049468546513073694700721634097256692586287072677046658739207899490782083288648757476471409721576138648618753740267846858689610429372606167163166341537212219459778936613623203487578105412255445727490214256138282878177904997216406780982170802879927573587537437982752576687415680502807225808150326175561937464952670733214624498858820471016524189159654040877089917114545463299936866452764539277491338529872689705634477132355319993991593331611462074180003467615330980885028402093007309408570266497825010793872760048329011517511562086105874672912311356542105538387681654137088752641625076713408148547433255033830051556678214008721000579368362347083990855467853024441259065302360772713737959122024653620343452103424894313756272902313652314503261916325700596588049558769581609597167560958126480616099239239063901996387166479797244021080324028942386290908093317444332938938128813774506223433674554808350932896433744862651809195181837942708500564376624063914621031877473622481451865713899554593994037554922190561007973104907376508015301970227376433418553301174680687526856892156964864803816215487681582401591851954859037595326305988262380983245349088051603151980520228969037399702709167769751890342255657057909052157343399643712535944060738562510208223894633480435889814658130205270917392967324685794942471957475795764345450275801609127315816954333696628163974828658010088575700224867702733157510560517106810111150320399115437036806096024296128880857126734209369006519031303044759281249685207992397442730557169972790069058900386926036473876673147957077642116333780840055575627275503940893188897930569504695710779678808678939765005695443870058146103388763056268938931243578288981796444895751918603936531750899746529119086569594532584924575059628422446922785694970622086803444438092960247259083682205839396059457529353778169566616264130323599414653093507538062836896196452190133144533343715607812861081985199363025314994391517323786420434313807962953399491038729444236674109777090276390253222174542284038235349793455940053755831623068032215862523012303917062178910401121803348801302893287466160830743091682478124144648400283603989784728014045975987843944106091611599675759994169844012552930303941470945880764019662017837082405995578567861327902569907179423176465993593256185876537576733544017587691918955977237605387184697747591830317256272099957575967929331901032918365721432538745906808941164641253382944455596935037597865452950686429497733329466657670466377706287647564618340212340815188817028906788200570270312054553394341415188659894556099453723152444020720493465972154831031076235715332180128028473088833547014625186518331585048313335590054506277027937191817512904698812930571768187616729194108058951389469410672927710852319867460090101104502873806754329297099528687996827535718283076262412886397910964743065569194346635395914670573837035499579883225717815507924917477120271853453910636314330021396314630086914205535977014236291245670893721228785908969535648139822679450350148792657296762978956210808612976574519441177204493176528896770493846870206807004434887381274606816917317296049607734341128531266196339200729452631092461169313658904726551861979699103600893575910458633568398352327025960875603932401962008882266402922620007237032265892321212417196373332918568860601328998914709703033770398729941467073169526875125462973213810683342612081924883343948906624235108383887898334303843473571001073384708770356336636290130542539887372673636469466074996545239668747288384306057314341610522300070754162346938403147387437851358389546387116333332841702749302081479756140659171133510873996283426930027646620052485028669220607734888564902909093303414430375725038168860963097062723662513516577605250926365199928801717907137908969714618333918629377584289432301880518957558599128329690826484401707452313680235234953254304849496112365871034752161264302058054688207378513509489425365171024178309867270037042689503261050526499658361903717399115269762276257601643423669803484596714184973912619529583429849899762056631359992130007704998825887081115648086893122787050918674069090242571379214861768317951025200331062636751127486897540022988237929011137388047251112361710063930806315195138320218509239812185893832431164888773245508207474175670730557415803924895891266848943531756187190196603152878452335256582649762795917886541655269542068112153823114476351530696959609173390160098347209128915262871478663187131555413925206835903214671131391868200565187613921910842025857223625861389444602894722640268036283631795064670520415894110472634267155801885481637733435436304366526210577880026036602667960118408548109900010894277348905513562059509335257124665960437583048008199783798930515327041190638671424198595236192976597096632046227296981991038387733368634269872007563885620066749110524747068558015655034275918511728516003582011971455304756456094666945213701810487512991673780794673674494415512018227020860280733914999934157048757750138196744659520475862611052613496840725993202239834490098839032793665125991894682675251097903795266385380717155108293075696042967929579293606099202906192519634901505370833462790563881055313014827310889114467138994735169664706973340399092453283373410405972257596967795202153162752596442553280748852945986350838029943747983144202926997512654538627862936284287172617333605586072159270095085064728641924396363129007976436804449696433965508949942085343652172116260253758691091743356534037095967021951451981106869554155815590005328958900583666591630922053157826093005190215816876904363536224014915627929865190747510109224543942803038577178373486141228655930932944035461809685059573338975706166974829617674514203151201169676903505325208103153350921896514086743781767591653749918592610656801255434240058160126603348052817067241987480773497436660257474859069764426193754062402224436320767360374513077830518380733877535445117141931529600708009348462486071799257017742769807133079385281680351419700927748765674335684349515519166679837256765148761620285953241527366585856208861824172510964365727378088827973294955653491781898721478738496167577652371201416835072687856423169325335401750826046318092452420875472338569932587524761580273337754883643005150701867703975259169563218237708654171709308416702523314601682352368752640491819983530683005651605022747764357655127276748203577993749364654505464964579645010488940512890897715697821435366135225726599268378023910354326969016142686787464437181705986906368781108432098660530234748145093787392452419121434078207598733878646777481769895847727482298372088163422766737194345154660178600035985682260186511827312520481688191174960196126770669468527420158132195433842825225857564626736764497290759037897131096800985941843260518271535066998230622758079694703916646160676795195230464642982752988093004615483345977329315925344907200278450976634411198782526086899492747834154097845170233951238179149636504746840180516640646658982083569874199311701831896479309556899022222347267597467836849956048531376330696767880479728949739350243773756880579357831279645516236549953319493044793295886904022761089976876994403221257628258301083994083077830912047549016799382994516864751310538182306571192542190457387371827765265733159987397958375411246155149925882158057070715274260805681110918159407532647089484436991671645585626159982031026083050950117055052916972252923289590969303359207609299582648292406725514239042595343687858397045946149325572760421508375641834459920415547123302723001839651266059066854192676637105552083752123093894367928062965190605451931328796185496164959332966389938660512013699530720431985782886695292708813153602516467596302537198876602660557694287737241196601964075936044597447757135319475468384871668027616578293655788156321078657083100721011917490196679175674001133128746025486887519106275903931394196689193802262834140354487782502710176464965311039886682597898864493024371857190982309974295876978269394109799519736114272688025161328103690548689229750899442509817655169150702499238396941457993951690485341538854228523256337844010063071689084035741277972863916588890421958797856876920956175228646172063932405660632024578608521591605961135774260473906988135235048767351460245346027457783143562561091609878997543373540208376281700338963094570837799291461073285441831634507122227663441666483384143662373287917269084457992111492598781791269482843615282796984906399083211237987197067125780078087316107480574267259537522777835837643495143659690734827485241729617929398879065231531501429955965929720358387121864425846701977359960335124883935347547299143687444681664251977061350476302279257134168200882397406099101220020121546573226970622791130856342206500724102757566628760806864681397339748677803740667214962541346879441974414179750114095134721687697336411394029286651399901545254191277886689149429480135641962214298633200166826390155974478187461129100114799260926366868952838168659410563144194853092473611066494403681114111644732966234831893527326780243424014646194122313677084122915418867932800951419304903893564313581596767415106697914197129479055875026194637259178594876448828330204383628068310671596301597300173210086833551128572543536351215787067667581835107962259174309320715548453768351987464001533675079965261885943203483735942813331757885309514642645617457889069851443570357076166317950442171435848467971327441221194199897869520831039998692616138380167525660239138550026560106157130904254157584120312973444883240082699524319887768507888713618848733107814916728453893397855270143610333655484274634897394504777798475675464249335167113579959941519092505591959121418903829591602938417389204753835815089174155784663662200127232662521245546042768627781998200514190205733072748808542904654865657100164426255291780643889477223862884001807685773086360360328597195408315700638738488123650181434475894067814304701254770448670326486381901196547004187595633173893378018177213390508171584264459111627368338394413680153366405642343842578253635769332337866555822736952278271206211735618212768611088803092443524653934388461928493964433533421492888677531654532371301715241779478555509961408319344268080171272733548571624693761459424779145655646368827130113353255044092380677115116763034539133043523684381532802275146366462137850085045529143788855889710423466197551345695906277822867564863551927139668974754453507665136805880954368286061916587994415282934721831905354080789052588802161476239048577169637392119251592763402582741417123330182042667890376489552571890876706837158601572418711147949402025387894689908254863286737595407340164525760103997650823766756683293882504395257076280888100687046484063536026187684762938964301667932009655919669305250203956027690212282659995937915060856962077981784842208518991381767855836842986994305681521686058284609905430767484898487119634709235530323277445257272583624268276816141167278000861298619264330756138422421230609391793826123087929913528755112436984157399188623221921473441402099937618756772984353376934011368202737120814982008614227110518673093521730095809348266195988732735079565517410976274743116691921395925196195493943357253615572168558947436314245930567592045066884091247081933188080544121151808241485572536569123995729410850262434276443166452526759748265075099951710257760918659000090835174249502245808137277495937285526761439193853427186234814581347000413396421208235731239327646860225307042614003809609500795743185922714260192036498467373697620324507281353017705520196578838758948337099459868917123211205689770777949172193939204830015264270595978419485513411490517212700623089218564496261696782470772858752831314838933966753511995363894899584744262238627246707198947402425852491476352956566839025772119816476037179540369145941342194576981775113044698917832120575930276532748846782356313675565126745516151438808206105639404160303746675279896547484878904527968844767544844300833253608754568697774825715448389707601728784734215472974547822339301613024592363635308121271430851079015057034310564479584849281953038793063455988235862292267416818670201990219444757894475930451034600922272593364734089438239200663511974212392315424659569811862086626686776993856857246897074013888907947572647087920788491554381466738511589558165684298309064225870162434273186190464248688528753244553395432326891545367807504158729933302582311005013002785728443257285537625818697768418421498076367910784115133458029773306484856868303593179741694766974478335176658369839738771948252213945873523666691994873777981370856242641275105892562456254362951367172152093645029929223262812515911440625073287804288479970926655412171217097791061968996137114480000448809855577103113791352688488074271147559617965184390802843485743558649892522017691966476242537211527648716135929065141097858165076142118324076951963704888281793123048779933701578478994597484765496552283559618749563239545331679041558968574852539393025688968285161610999445142638213679310263341855033817127769246141853614856744807602364011569095470399546946331674468108998627352462909171225976073154989429073239561260940901847596085975176830986517884143493921082345626781224897983492237102136390331503496658174723004055151617294212969741815677590169495912549473683765400451692955586275833721303346726886146570897877590190235252612310533674931552063719312939214623167309952737866120524075993669366222783355935798219313667558116065748545973959520388895290238296112560069689302088592974280211861993178067700211635444836120397422179703525375349734536278004915790805048015390212551725165064806493499903511289429469741543980777874266056404419240650573915817000037503249488738159108817636239399696421536016999480424821251448573863138582962448319557673446603796189054909379839337755063029550209961019194793669641390497417827791879140214029875737978296898979102920993896692519476646149137433000992606776516709729590978027677245755831367413350091458230841041612452119830061243955156923685664678611123924335469936527137723514792723531022475326697662458822833929435242409512965618818099490091051001164585252007548110708475848042171884992791262553007816530888194062210383958086007958031860486262475828818690656979569707431006050561235414558322104551509630307208264485376990174597027663336617130044997689489254821801539104065387763254228735710426900954107121519055361658887736553410011205090996916083779835208966004738352227492450419821212765649298634516853615441007062878700341394590194829939798397532902500989685771423084710406289827439125584692568280274301550276912319325686925339008984991813719918633629827534860021490883630045836758784013183100026342703998718474852357503078304509364468547319278961603104305798059040541291244860006159089828681128844831230577100357145740700416747241374775661160442082155418901397779121392496301255023209884298605494727680810144909786301892454549143496961408215105441931952120853135814958948068877540344361224346694389872974797083421051347728252217614836071697687876705871711248755371285703170809514515188115991721270866915914192170775678760365753531489842512951691469102984495450504010643046103286415544271277744476697421333363224647472214369692621680918204856757464621578075440645737701963441402784953520157353150017248930406836239743936864769664949338972374665853606205596853918056637355697691608271121985839131121165531106582354733071008085831610309105509971371393081165838026796733040938142113881780263959585907426960800188808451508078400663395202626837778837992914128990785978005503979892896727960571443200823278152006898335357498795354730770663986943868069691157972087140290816676643450058048288184182012404415681462591341103697701549870155444194017240300892127909945443021698181386043160318559498498185545695540371245993732289447443438862323155305950481935518229532062963204131735054440884343045129518641357599427832993609766356835527059639602006595036942498157597499665731077234015900889445263301894135976774131330073890505546828330539860502965853001961673181918150833947851756534592051226006152397879445786893463657510157699377893027047932910801447429304950312688292666412721832277162691813424262016704893777993137489809870010671852531145832866940502917870452471725790908834517135343217694311358183731559961934736754153272502649102996579914921308875599164282611117461552768305900911075769176995858141593492401039262258112101116982764595035040464742333022014270317703920770319668071082057615586689592341100390615097356581197513781735693275718167070145106916539994547053541559868210170319004663384755629465628008496035144775376780289609149452514475826836112567307820041227331833586807025293832892361156248993396972885083788023874200928218254302597329955434281444934400796456959869163853394544239914214323324476683400998383373622517713944084725994070721321962104216312485538321882114851669724853092397976527646251130236895966013122185326016378573052967591076567901204834321742822425980716608823990799269248501811799268205443409173347259429587034323114805484845380057911157680175709701961937309640869802015772378181512821267465936700781346965423736306933436979329796936089896430622099961121040496497195644145630646659494180505326227601295154399654091348998727316905866159300558169268542788024659925029700266543225905912360517040954592728975520902514667121534858114608492005266047385560216903678043227203321567694446093892475532194687846433809077403624575999974284578013620666146830980286218496984570095012188854156753667911607226992775773935635329093221216350524384044175707104178538682369950986960379889617463363915170697471091392899157910227912366011745089113947379114226052070600184469225638384377733614919046715885520901336650811396645273608883416383911049787698806229484577239498163052438912199778192237843308736770583651873014291796462404708727966508342057870109659738033218356558826497503412894919195210453962866801939619918246297336092855779159554406974061035049626996855379354054776738089578119940299736248699894953388980828011051401218784328483794228728518272391298138666642149282961730994963991957477979978376518941365686676975487193548051813466019733124745380050767785909424563088386321732227254956044373556020332818138193869014043356318567418353661468148505664971668073463976979029205964954660633113024924056819323321371599296607266325073334195604205234975093653682492630242843069847098323431460066988993137452739129572899042517007001319835881534737359584380742382114038398572786327244999309718116443437882852934867855195597927970356411951429448513799116785027814654801602121280074653010651627880751316953865295401070003183933427936412979109141563410651993334519477754723878391847988511856418779730036969503892997518439077694249703988663449209864890263411688732334145451098846250204500293671214599766908320388880344880914553323595628553998985365425914738830494858656565347334121812489852226130455157242524801295372379197391290449017721978951180089832286399738620235849872218779441707131015957650724104083712360621032645231221126794176360018250802178654281847045154100271535304306765371128025904141042804772581335866112069011708187332779860536655979146926513582125720236474615562670825999694724994196447327010067238417309194263753687208941846967157985659108316975248546066551244323478109105254038617579120679191716194018173672576131968083664860247851909673961616284280679665273973227810882245888350104469737939293899551762582690380938035194508772149506905999201434378569164119580113136242459701390406224508615221495470453092532582475761364067963250692997202105149818149982596201991962394432910994282952643881781571159927308018275587987908694465349259223695118632703829721709001601317602545954076841856478938743485679818151194308669980151010441800304266869662372165025820528561487497100159167063664978761056762094978371015672984627571523235440044685706570963277927451096932937451993130195784493213021782936625571761226969334266124789687449220394681170040729120223096615255851758425432316004728397922304663557870954629217171674872395616993013923598868356872801314866124238826928147745650949385728920271502975665026049742527090384799011087439977743696115479438074393259279685288760550977078898491947181236810217466771037789557886841307762915458030711592858719193023898337241222675379337347699513976423870574390882208406831680557164468874463502859888316081394725723645276157960056187046685306172032982350485711600923418714257697335538624932188186168861464606327951329714870793358770468785331167081569214676196082013986941812910690901345378868173713947669573175469271800589264357637583442262634579107314265077963290631027007722925954610425655751081203833013662228220276696229853745274870345784661289217654157676373565799690483112913784056159666519897990300774398203768306344847753761327671562389745509235371830707422752066068741833816310143850450098182429298841671314370552503502433588266199062219174826337269785181781660900663189294201025665177483390089218573109134020608826083725745071994967722764381938686089779180641958420207206340751333225579414472249123717226014135103958419850606056598856233628055914094887050880416672424023456345929415637984920573844123563099975499632993972852530549806192808737901747024432802127035499648660170456640617880088535766924364719440985657565943316231882432829430099425071571903024966790859350102689035360375646602716463838851971783983166103965363067585662231820198821159268213751878459589025390619960859453187266639166270954786918417698409775609020071404267868631496200344258770625044788240564879504636470109222039517415458847857507351725592043932817757847979329513047691301961008452357279878741668285849030890033991309475219050028337096635332040500041934640125568835615611084741208820644082437707147501568596358478067641519261874069238160685162758241713305444852022449086263524114629412654365427192847366422808398300341465610363339978653383152709600607908072829667423098371427335427730730170653453913562064625312239165140256157698587384534484893879652467283918075001809238408511253848623727471852006017493924591254757524482871325441567788201822596670020029656048428902722475548822381175337519238366895371254071882180666430437798043059503988874864161763049137313772665177389396051255004741867213475831624910774592945512068565254883010935957316779105843986816556564560325650164068293192455587227051187370978078037021652874741705293050493716974259057569449376999518684998450351242894432937579363980436479309566292745275908368228724321246740067247867531919426821875236524774265635655369356240881405458382439143512194900354385222568009395957347620072793587268304290358603387779091992476294972020162048690045350728964288754832275123577257985227656589954018082026829644858544952806366537343434847405845807264586376661602316772178176647748899194600577724481892893535589145356028339964580036950161900217515127845995954681890468657536246664873297978575497372624231989285351922711880494852635081545300284782759614043757930616285588769856615984412977462801819776622995377213059371575799258491973433462581203755439928499249848087733127558498301917056895203928070345563870954824458190777327619126538717429187411286965212484370812831078568505733467136825151488554007845965192245642864863058658993233238380200038917761788899852632720414287222716535845040854709326240441976715058214453584609251159901865604390264240725260378689734105184546078559717378985479144333979673524028910691129612530166581446940307976310569455748989615733061319727032962527430935142515609929018435797267337930626430757179548896214562512294003309211509524288995639758810780775266081637819382536081376341975760552215258527446552490609583566597798144009037769016551152304845284820534047567349783056307346294441229007974472548966221898183573337852636453737122782878000920584330060775487143698433626405038663464234291685702189396993375012509251407696144710332090077796074729997298564363332302823865692792081207543228780807668388449071617657622119471461933637190529414900750612532546330914448479569855260838287730102754425132037453846107997834056817322663306043211033746901887618786551276128578250546900109351850113114424501844284375398225547346301246394496903765542203883798144390332965514136039646361532742947535991065498532664537353560697511845604809873543446933475556395110492940893061169145836937293421628508410822531393698851810429726783415912508191693572054750478675440260352061104146139241396567483909012525298480080509249177160290181176180666049023204627905304611605979501014066034070503308786445661774342904805218578567385265823525655162689554995746719451688613132358539593087835356071075145934195074657051999840254846441752119081773263011383015407666120824834910691059076567852486165699860701760174468845986925337619678076078707656184600547951624645535300788228747152802825704650552701269780466821219471687973558634738377969724706857058219990919999047867131033349523361837702648192887968160057246665004097788801859785821169406637887402224466031384782925183301447904392556482773807011045285173599977587849689525141021914357638409502914768916852457534156219109577742355414140737418918797244576113514082386203653822419046090572180918028575403137419775957418419798737236409694381956176806810738165794572922046875368850057946621563147868517002811107680385323494996884482269674432668004358258499335441327727756570614527297616340155781754778454375126587339922598748345569214931779268122997981841796864453440969963484228619446448163604926222423648839211389933534210073747943295415664669773544352225918203775675517056298772257687915432934590140852994529728651816821879291083991270030343367939860517230516217646338659014430248121650637885839812353570035897836101628162338340260461911077024881084806745810424649779653408039780289730418865509932371752990156512138477164608773275432029357307988915232866067296483287144026042966765861043567775916721447252818764438995580583987161095655086929154812162291629461227496528206726315116395785805159289376792634953438706175797527252047239884349818805823198644022894962301660200618463626251671783369229587298836930656636293561856740426905578994419045199758506148931225178860575876317573013723772858936583718730280454000559343566078638335904725677486271001385740135753994447761506423814177776359332912716085649850105067894655737677540039155153093223546935951178908980176772537833188098734820715674330711861145789053503673474111607410344170781369813815598305174637838791427763088456420103850678073791324916627421272589850106737689770070081121419246989643947083808195822200374328654794030996276202446331667841018476465815716603828683455979535212889119361327294011698570502998876087185224451183769072168089634735528982416926987142427949682345025217740701068699751670068933680720639603895424400912586967721972901201543370072133297580815882239936042522720247040162870120162835601033592139926777640794736424073427462721799692453828291928969536958559860424677122053433296143563289644543646847296169608669281752266211427309031229792897038127039525499090631314034098149119127766533628647391531771118742678376731277757532479637867488664615725181589008320161087964579801314187717902567166757895305562221524804370294239181943808079750688516208903088057114700049255761240709144374501645448556955456911883359046973063670441861395899320449672682822440567643589390990814238906729399987336519122108503181790798841111138997878537707546933556050996076167420088269760882683077280795319261734077807246746727997517569425277875202614575535422572964186860018555375030661757214553087654295265390887381643030495120158825721796214198224207779858864422093768445177407987713959740782170669643463977046993956131584349467612354461777180540022462111084709546358456105490094523857384832282763739750201913166641237574262045479605509646113153664954670252864507451525633977959749704409323421787029262881663170958006617401309656367320074977888678230660043046671440055103493559449011887897445853840015104606815658310101440326757522916715441193762312596981894639084785958137709976905651557536985244948975415799265589225439828052342458163666189563845710746066106983942622720685447572920063443798044277908256764990646005573463169610401640184781246024512429069399187566925920387347259102524179844578819577599226317643940435115923045344941660538590006225544378506860007080789448952548303325532452972524969929812352334012927181198991010174394481507675439534285774841284848443572485288637548269894912708314357645420943875002193509721797649386343476273837475425952456540413052980499646289242505891616703715696435973234213877035955142377483859121641788723148719112701129779649257296054159920014772211477331284421198073411798204857761504861675865279237147456633800414503479526084255827061280767390100159262107333389796817116991580268316272257762688649314419310857185544138438056017843527439453907299249713796427035768568150716189660845965388729959807389821191682676957048975777909373256559287217302193482913979780890170721507563085532266156965716063811661444163599601831032905510174175518681738098021098272546694292920066963071831480614376261379340446608893253564585328658700361023561107219532916676522436049148054898640266378067430324402655998697302999197011894259606268242054971801130835327701749941234738714370041520262380916914183291891682478027360232924003041526602451889059697681788552872375858295046345682641613628637392276870795723440951320498810313404442356030660515250670246238721612224323769758535855038884565509278975220946111011273029197439296266033330332982093449975882449504962052777394240936995919393020344814628768633282821177077922979395793665561380657814847023627225383872150212229011717761667494976285819296653765664938601142304036882134912968688507514856988619232822699028867756722344171101779220526331802239801688763083027952960551482627689592937275989657217993135602754409194027291518272122457727051683556132211439434809332784406030758793155760600115714414045388987678794648004386429021858013381623437007760977283611085947590009663962173456209335058590895919531176520871252643467555828017311312064617269007060539919062751317317749289865299405990358907316328191679860783533130942353077091050194397807503326981757471942624142623037060757141507822711643845390029978936376630825589090122390447758596026950650817218187449561126270607952212887294800067560383516896411200912291593299387751786697588614871153787753857249728685019994045012572379230370223342682454585413515345181366711305780072334819819657945428482282625780918938770306341781470616140034020587777599750933421787994140902938334237170885922750485267660990302461299226179723216050201692284720861387025711633338388358112341178648900551462176418993717711782414749727459777008855234640496184190442052386471654583292319227473887210841638622305354319324872818748955254082909201005472719014761888263248180579567558797675210930108960730122065620048240668810157720911044742350779941203354012690976224951716728633972988373761886680682550545778771914129015129551116597665549763926865932226109603660569051518977724694262392793844644133521916594540307864208748197455228303792330440254313548483444473830429218674383656473894144561743463438175606437078145140863292245899393235620503424317862143584142905614736236008362102604450963927189682363445154152484809197004244307443547851562697281449208128774041263127582203152654622519064603742109885081896913412678251205493860035399364962512102575627653814640931126380374032506277229283997101465899915507831615321915596517234825317585160591783043826909716542252029047155803333815020462787103842036500705760672700790074550603250732088166091939616644469837146965843299267399844285257834397508515429184554016957755601911683445992325781705412604951337582835311951154938769281828348237009932885756455797337744555382521710448554002216572365803639110183941718480598449549394833901106671304377937531360365556893085535990486751747520499977329228155797992754118512817295235643376382796677705361895776169824984976979833391695739432638113560543122188013433718835716452282447015281865832094247826751015726947289914753747021077027970551965091001544966558940615148066008144651095942294812059307575011338945759498717232971907828692396956481902776717407115917875088062609115267782123853844683151246675469952293860762235381600473918884022024088597637182327404409783234277543744500910310796155938563381391995327789569860726937257815543893224134479524502854632804824073212562882974050002306178214874624376688424291741889828732401503048387585829304164307256302040862179289781524165642605820641329767552391786583314880337348383302550201746976482856255310818439517960780842870604514508621708319144281844907667350621945017231127496627738374790250438796894945276408487446926111614530212636082105653613653637794477130451336707923538887568211367899867125119312822244441005839600338540929683433424367064064972601512444440371614558756062105475833649876383687328687858696425700714392343670845738316779791874065879850926946728504315092213602242925152137690266727610793447453376695316644857579997755438538673391023848714075660125760488198708380417088408323307611468553849529955281777559089553355372442797258839361944029728853563022106015641319628039109441501938277771247467437097718490802931103981701546183531834215481526944934454912071933380115980590187778650828007699849279043906901779851680729488254596931663776345772428913165080702165581732393631832505545081480171565283370070229468289746142661315021358311296714800796097485777530981386163154606982675287140621963504689430301685148885893455883440204554062009649412570809018980814709956864410417334530846307220930761295341297892303354938553919451100482953185022723797001020038930989506089639430403605470318200197827341441810613839248388943623517447388075258837208617209814069529391224212965103194047046984587310997641207006582613568693896463541480579328315966465018339197134050866934474203177401904551788232300887066921033013912517619301311675497357290306630618197175465290159649269209042121559186528153027511344589962811084040689176643980031388863747269147380697337503380019742919333524352032348922669656906542810226838823027268536447280121126946139403991163849066505271936753814272783916454968527997778630620053525755945940932031155223873237774373055453824184598358136558893402000894357902424189848410484166220126527595652117018708907183905880092412485818555766911948148620112539404770729636793770592755946604888295803526695598958642065329013208968952268822767569932120659407414400284955287401156642194509635170235972163695142916399741552830005712339656363673068973663407459981852197690491799103483016391785089370079607194335009742565806014019007846268869992558094085644818776958449410839401765845168055201439823465413883572203801321230714550332317632661260661905477302952069812460379958234715469855584782394756860090015828575056378461001152271980130023139100183967534958066443107104912339964475999141688740598949029827372244783585006814177402913356572788209724545878239009890544615479749943137010066628165752328579553023697873548297999024640870694375768537676970624484089863079904243973434919943859493181687917528771764306200302585851435229748021496295382297594357635319959055552496842158601913474331779698014662915294428786099136634989684658837777736633865026294991691801219865198322030542078325358295768785217066637724087371629752310896476354625482512799623430064858590216758860167122548193937739315355364710048446884047033363050471585652860398677695863676564667126869292477081828674450484216558776781367490504734349750601422221692816661381861227235186611354912408620665778817167720580334688458942350151637698384808118593627438910211194228960128540916976861611830126321830029629281623049150562148131427156273951203527061710369354062272752119100943710886228019033407718268812609605357846462416211212111906658513129679759771318267697908152252937533346803183581016687991226685947521834276919211777711448125521224840083143571272651206956328007441851741451023801196781435483328480571442918887249238283539790372310713335313560190477737521965802630244340127673482855151119251313911098118199210246023161981640545865567029648405735954953020490322367581629683251657341726773475811598255049761035323717834201089068929898802814713443055631268504753433986389457925985141157336453688758667276035301853679842292860248038537389984576386119200130764576601821802636998223062178631894432454501011490202666778393230695833336831124320829283781939423920151671410187057468953488415443465291286866270513661165962330801831643759379867656625742604790610946264446764835040813693379615783599149623159016834957140822559997537790081294193841495562265835232084511164798782489032987697068867021423693089711403182645270672393917107905819949490916749880478900604997506666220814944188334742311902736084920433109583726501290063233001788439670475580228403002038086807542215849515856757856301727975903985324139884674901100257752854804861406958194873614890509770249340971311197171787421185869610103470631965052790186779731295949464300422966072192200375847697665609057175808817596485381271728458135740471205524429450480958407055434311706864569125440858866733173606970434391291539226799458231192102845654311523957832269961734122619053092545104960950717490438149525949768438299426952495287330356848115000687930930774819854824076132562604398974807579425161909673539266992516038991314377118810026038129514851945353144448115915335074593538544542950265548954521448030567915811749992996382912413971020844023952320141566928180544068097709718859487163698466264754115043512092986641539579111205643627421198513376543691709547822045730098286362425431507610215675394832114625703066260815464783647796330260453659976137918146550777154711375117066308645856575718919143323464926497370055924689555739208786278610377424567882941892764508480879294430840509377480972933342250145827574524988732041959388802341485544019452800733413415337337376651928871749960963854470061681407611959921646923689788667631610896517038690060091028038166830489965023910465776023281725493123385075377477004250405087402938972776440313500443576922649065900086072688603205002288641435716177361320413005053243336905952091749389033759439764492570431997311196608926634069182772042202653176911451395239914430450205530848159236923528859009832489724247464429771959971275337286879089872657586758301908582053831196391402583972289515254966903179160933680213079024008875472614233284992299735435610808194189903534701623034639275347570527187207856680443737195164996916884224186853861624638235946676586464436960436655411938577566601395568225353971333032917075460052056812704525284335251366457141402261350712368652961375487006360644075332069408030872987770754383801367415308912240570851402348328108448290619297376787164238604207095991635148252794443990783735192658981804658502588318515439302587095340016838778476298803735931297078327492845052055742345766649435773915409833694559616569973601948566447441012070724257950579935580782721402884915120938574639955787681140331814089125210052886127983525295578454365321918016078286613976201109254388999712445057566371801301940957000110520339801239084337442261938539451541926105157199000810341900769653389922302169487725233262201909117562888258025425047611456474710015499851960121618119760149409219690416923036969467490522064944327558636927888821939064590112045686191084104804510389494434005466997429847029902061110426817281306130408447208512017810784785743996605766657723366008845253727842463910033604844850710334775298438085852385009390639805313934181236297194209418408099339054312739256612361147106909546890325244941209718394486607500480910032715612165649055818862064143369554324407383100786828330424714857553873916327345419309663486422904496906262648382910747801680022557910662776728427676356597819141259369582033116067348205808996067308503944226209599572775825128406117440494748226851692844361609708943471643792167309615830914509633548388777407028545805150399053701970311276836893580390316298097825421813331453431336959531986700863938023846599462472300459129183778638799476214629738784461033281513649643127945788933045025268646892916962608862745886761578039472089855415033305667630493730408538100771839581719385269174353269339451931131180766096494011260640078717357138268079139154017285337199816268118802645221301715358437088044523323969657612673439429289099673368311125846327738481137114706535526412523471114924260502091827805462451988105245863411881859736505284831543129192384856859170840124261570126666857127260910673315075583913034689176198540585750847145838214821757689134607762924806698563360921528860678531590415678594915966885063215229348646924838616081036211527210118155913816800663382356766681066156247074010072115453294645506004017165005260565319158538620846691004101925199277970050295372405010557874296047840641703499417254086513659668013011876111593379011898335026892085271306749875263288297776309633824014680130389667834089663499947636780565283458858131956994423986803780856120266329437499739130915535252106825389312094086711297798561582867647249559346195009352483203687870189882155472398488972660400865781781482125424704742448599700072075438347590949419913431672719806805542115769674697217883419835791725207062800021823092310987411094704623268876614303224781326223335004577973048127926666813112390397501795035330256314071227749800127390208121800951860331610454009825236985512996628192378297837201097370867559321000122380837033833798144104409026624134088321364920632969541729126076875549056533358745655470798023139748976465173301672036929133211850926106750837813362264050162643061863647531215812568759173655897416683359708846387129184445708373256947839930540344955741841502216135860158729820518545020518924389791088286179247252843386277531838135106088686763393140876904542336827160795593096944581131962493659556430198756703547812412910566020949117387515853706478905149837835131872027339409332607276938909598440811989674699134130028599370634684918284358656688438443889297206175682675253406189406902676211968860031240654397726573144499243529309816571244301102519751454617486930616186678754811653170194158161015743062396550988864220281869264825479726701786848627015822861263033840785333497182501170568256697681572434528567389989967944776502487737251208271743449154423673007349422573195552219908303899023468974889829702792417805373734633910947100897404250735791261108592350560311056609957638712473777610951585959364968036114658533431232123614069998262151368900850741198945634136490243962011394423321952297267709372120399982977256175784073134614542618702181177909054684161456729505012043478944806150501180513141251702832971908540913999234795452018688011844515106857404746016885992130625388898940098673946040494585962334133121603800468552525449257836802309284528954687594553483909569477879842885433706700985242365187766150155332201327720504643505442040517158658233691106204086900853675664797380968417225008863620834459147860381814936125739305570660662771056654506494714533201037700813174749091366378325301375973028428662537777572363213141711004000167133505668220952440039818431499440238798050564377444560504953453422632477475830170632344246727820770698482218387632709300560943692007221128932649232264937926094439312984875154449531800567366273086514617361153807536437615064155618439505885132708470737622529585837913559332236315918537911038271196102138854384173025872160238138162937148174107312021927410345582335955490875985076348133943956520601540986892960002772341852672743825351229171046564698364206657616891873584967748795357966433012757474127552900437084576020181343305021742503803881937267838313073564478364176184285814873147192504207769140379016070761141035252176926535752402449036710898044217789994040353807731080300334752737652283627435754413131140772052698663267316661786959928710102132394600407245892144130929188215315931751553972149187649592955787316113853816430208656087244711822179589638047286452801390670780272918524597468376743662571180416443080188740682313720080356006108195707031141299161578376044014998609579962502895195973684927906122174901186202019919464075361297162628675705814054886432898825757688061520258522590216579705216293370603838914508832127094328959765118955540610436805312749580884884667186431215511573037939898609906114402440672210898644729070829274194446650666127056641130635668073227766084719532226635826749951977334907309853944767773339391266129555124031891301261986164335751263920892366977827801486179611993647171247987570928107137486419188809618857338973323716563659401110032462871622072616586349712575243272239524582319444035092054891048992065036357653162315160357960924482443812169565071227449102286131818090412597866824556973757275342611239463386344433949919234505481947890598539347427099758896757065099247678995936113895944582108963580675745680578290104179319040187453694645053820039014520148289054834464995919125925831476727172714817741335323664726528130310892023652574700619769951612860497129553116891488485354963609015270042507037745330651174454380636474964698876014037093324545426510446607603054813718474965707417195161624602519719213593340722694250146348607307550741024022996652317893586380230066140937478806786523797550345728453355461171955512332034651636375221991929588918178752530948966396117672999060482449299825960743589967466963602150138843388990821793527509225349707502991366545966441401133429271312826304141664607512421749464284275779384816778952129996017330830231290314028167497503845231161754957361573609941754352723041965260833134115630999343778258738120423311516404765874737001909067323079457714734192222992443593395477250172144082207688893781647237147045288240938030476307472607740725611437600778425877482014030188076612663187755382705152490357534959434282789903445318927808668111145143889164802243335621496795991443303147327868753272196661213948844719121809603172799369477518961494462557573122770242770293941369807112534576504376210951053387437091961095910361928740872766762930856892434252006174486043865803052212038263717483480629916723369565627190765972795060294015487522526819692820184508037890137885696327070955306380202608078356885968179837406949389085500720102626261223109544041560696518876556821653920326907413611389484303755166537846870054094941783353730935726612092034883245101625331845241034774063131207796166375749441765317940956638094431501623887645655108189592726698557470620311429827724822601638605225448672632194651711991112692624931876321640230323038624130349776453279171188165218561018687894477242110587802090400037778789437848200819508499282193698480596888694107480159193871137189163825839187894238519691422659186382859137741485282847590440409286598411284677211968113904110592033023280197553702785812882162938171342615818710670083222644081480883651676973813397169665619444293158688776842744123055241292732975302051060361120771766532856080675368133135205139593966954238444864758795988640774929820331183080906673553517271182685855001826880489919681728242139088931752623326689732199532031302617196477755285370858419119155239606591146983371657562717065719242693997483005807622150663310040248358447410946867266913390248131892625177855969826162711152254569655505244535562744144970389041327238898262471458566110264456295936348441355479290316635459900839189414761795731504460179415729787800972369873789093691190378415534438798627273259378818064148327579360914840466866117195102186262325408414916194666197683931012507615393579586167437537886592470897420176994241440222796302236528361619253279572118404491499944449764045567775808417324792369664782379595715875743304853580384979711015938875273703860977560918283338424997571845677682741687327335283681058736988819782234961353718094673469855785776003502897211148995708362650973611086081339466165886166771498442695869588685257371584050867559987753575266531624254332111099937474406626501325840614941774513044034918719090533345215665894177408769163096301403149702249486365906747536375019651979719372913493489135693201843768609387088349357818175125188298292590465120491209376168797261122703253804107680608509660979395341433110935113586772671471057988490793987418808764362024112796332770043085175324121303565678088947971648233247335421709895137840411342555947669088393047373616739542145022086388784016673985039282864217788623985517678694110584044069331170891677309432948617096035550391919220246728967780871320873939256730401479498175664846487911309970658922346487859060389184399644770622303945038847278543710824534499446999289678898663698306707702706250254631954372558616811198947567589895185808215390384906457281026848190228843765393707959775980738157848498610650240726649367026652941421733757007720339426860840055364718928199981759145881617272148464733395096102103484837485041650233927229321164833597787920647823633855304916356266707995488744269876428424592708685176779291335654866191882200617920511593035746436590032757204391356742588451754420258823929586817981953807115509257438239234216549053568098671872403343892189732235378445290573180225360558559961009416184794169540200363218397761789554681131507821458973123482231448412335820370557199694894800962128130342687828157934482680914530252953293832902240811755797870961403473494921600500719482595182208634268878260780555005784213895258205514457271279621731148207396062855061266571418402576366669499099388184214721438404565145031369763956843489114924275675436700645441492925959088136951329677027277177009046461105920105855324447463035658292042164979664523012372477182495586499601624679833373871346384950166224962261971051187178089591994797781500902037107574679518379071504049222942095550268456643734137535228081011192814253859991807330322187415777559280300690689017502149135176165759615774168040050818812045833601027671449643673772414345087175313477491300962428405270101759085830912272788387944898106648085209515364612837978182411081991044179964817798447549524894468955638111028715069589989470701451872937528307506710025663153786672461014272008411470806156739722133005680751192908127402540292497022069763531234176100617399010935594926300572390037943186727757497864073104323158071102982876396302435441175813972853160590788411392678037138363894326101595938617956667531198075424501897714721022257569834679619252621807246516095043834259011158307250142649927318024643307908260904859119347172892616107615341506548536255441251167859310525474574180665276501857652081189264124553478144126978099689402622216715969807081821276168216753242836106234523500686005584708271463915675610148348543625372697510908371684160702848582337012101535182992667020282237205629283811720127300809354351869411114219577835255979232644304263919421227465655272316684726722623346504383424272078990394185879662831716451064387036932161636235907184735987263562169495669767706373585439083960701094486594697111998516932315477700686143060327016392686266857643885172118054598549160464806498625748101111096934417928591549781665195118608368545676472507145319565734451872869535660219024325154597458155999738036879161070207861965302633776340713169599223154060716544528193033033349038240358255637467531938698846453331610965593460892116738482194438151851268285939945542134281315260919775190064847524717651326751252661623226792207626123756237244088501998267624797271004356398054588801667696114370088019569512054138713941274998265139777909052451773625232151175376892086574015355982192320395319499354582263178316928843985690170323910693052166920393873494780760734090424293084603660290994521632463146733825185644477315512523027994334582719019296603787365931030677850875789348292599239184435381925966710677939185183750921831839076522752527296568565652519510290709638172155141554821856355287577625567956740803924749812909379064652479727259017566339186884511146623054845732839435908408774897685123725279743588657296180726450190265242992640105631958014851658040537230517357202032956775196658985900847858489276393613104016828863007828594298439765711865964929117463218788395478891847635459470097307939221534701408694348233443059479052444517366083401821056163428464103753907433978898028123680440618236983940032874684863070753007572802013176175680665992046361533154024093807782808023253404272077363185548324520058218288611143850131023137648452060089158628660058934726705538015178163192397317832603946983842641289184378135169319938740893639279259680679450786909472772036126728364083315079212778963622387572923963423859807556011215563319795660660500534214013698577234549150047462727906114920110384866704964164250290889644703452835180293729207151377799611036693002225851779501111906645727790851865589624131199620656138924739321599653203499386531807608288018917703783746005765285646477601456344200242747373339976069026853654119142172437395221373956115830714058803211457129005243927990597262226665624792742960153320280190632372524418170916610479881151616338953527112052413875424593364102949242636159543949901789789710549562568024769108912731997017184800664402544103699314678660027338445229414108860915736502584636393330371278444533630329992470298809334109087282229357294402906813754406540423631239185097085842102547340921930150455973238183882161607826439696370736681428529934308281549207237816117502340757946444230019445580292622209378260390552116256702241573641407925846005171829494481276776486551009496105426676752533187253231397675864757459042209913300643524354494568070580875494967037084385298710849380176235612031040925762938037643241997716844135486371520843304418600526025072734944819505329589642163949571203385397276761865654278240188687780906097964778182711831231770355385196017809930288952691178088991829727041797029605008627387522206275946155021453772585935707112491531970023301450452963064442330821184902210344623540073682507337183199519062778938655484203288533806577109372051376891812900584041134533660503159909673652371251959740863809635843638153167025462648266660292965266712362488263029785085521820106351902522513716728161166542160452346622445386601095483045858321697902178570094725655628975738394269773106653523094789538831709554511150706897367413920023780951361322034235884528174176336811006509505997983032467265645733164537990839523046099659650580965246167091993359111785865285030312229134525051582973026075429160604986611827567279019225911197892779215561796379329956098272460984712260364043631309384240779421401071333606935936508486247660487837504050510859063881692563020674595697099974124131394526203639959503350713259307395267967335706638058723194107183762768917091853682492570768477283599045986623655419884003145378879504521369763589095671268795518682395233766211002696445741940980819879086766633286800379346453922247536847587496502615895444780939528814400261815485635426590888129018591453005175512738782736251214684985584467013768653739756013551888234682219977916501042505945929212215366096849914281319037138738138092304231740958547446323784774195746197759412757862574467927308883810567804741070298019345878880100868896387585009593957282597868856790096826676214981021512261788232974551535421383176087780164137324777360927889812941957935517699584967284186577431265487265794974950163983470800117789893873706843953688792715420399548539237396482315104435385127026200014686711839702898526218263012106748818793427515008078579226382760826003515896483911348633644737155995253070230153625785764891815576676035409595977920245707584022643667357302839809684259700436062917901658434951839899486410914482101367314576170805468333807969746641813055951096720516721021544085502009621204486545540108694349971322130223124032658453947301311230054040230958445127982874500484588044454198038868968181300245132596394416914975753370401993130718167513029404035238456312304950803113638147232278067537431448617037190737523872939774075068430046077534202144126015703234110462167737538130301227734560170874983733238908467061469154422170165567822933592218852810351356605569797987453238273049560749257075080829735499595096546588860884955198735348878636768793658721184316518034278873237950380636774966433926952159863855155190579694064554822171149970815180470944522762700881804090866195607267752577966227441669114583776635253242531607935471677114332254208043864850977829955151222539266407567235524845375822910053242504314278069286464782133012390179757331764290392388211626316323703961024839348944191955014190549132847209215099688531944000761366776151058343986040235235774405333123040842150439938159130347962420952711094431706014001780689955170459439655048538859080852895766348969543026022390239879084521548446890175568345841041245240761158718197192410202564517919154276202362131854458927801190278035741872398620941770289909746206354756604622465697475311432599211680693463190811356133168950180390535878510438167822164267872397569700099698996456206131425963527032942204165149903913487480923669400985237761000073542731002858722724165242643240885890352117083562966828863657521069715684782742832076520265072555092424953861339574084863128886849493356741039521712486013119989967975092111018897378137166889394840554358317708569299072153666539231474908452331716917075735838708225525612519332115346473361536514714671706417027202238054727040053647591892027549580169110509733478318615610583017451081620239781284938143737239823141847770352811535398573879164628873537673216613011418189765465956822461604339129811996961711520601008865598776384008278013712096665569529870808385294284233716713141202296837232014571270847920858655297297177700562415158417896833743698409791879074054259004133644127881772664419187766337870527216576222613383275723334930468076340430194513758610153950523460292344514508328222035115300742307022301727272655944302812845530200214034237702370254353304469814397109778702717958432604304392962514694412737697602710859985628527444290244254563142458950567940781661510147019090499581773707795446386717204244952540026919130093208089531850713674538737148592879001776470391979203549519614497588727818481070941822982577919832497651235110558814651152593655519030397526385196819094566852000929511104272416391477882531845775622353077239538188968195056278006318022750011534321825366740198063530081626395163465647422965258495262944189773333193012053260374502325319477591908407702376641791228887396158102021901011998534206220061100967532674128222798177095897083300847111319169891796882664397200539980245092744657992209414293782956631140590164040010246995277886441248967246372594140359484536356602569586286526715095483751884345921781915989012340409578348533264674947223151170846301407189946469381168481832059320674628590679423697966445104874886683951690327694186436556067283242709639754314478792351295119516608904311532447974535450020781535829346462772037398397279000065672168365332553141719287020110396855385627434379232399573982842874842215496580055021429257476039151108981706782118885731738194460737541719659700687934979009059998146941402099076739520311450629069334708399617158144073983075343559710254735029734430212100150891160055114459192623445727259336151089400729473314173707959624451706012172784718441018937133300942992098597688295333696466836912006927413058411129374502554056420535420245952030301065158629484036824181592102856385556855385737030006317231272554603616542412950690768167330994958955594117852057691531951976639693839515908062332537691571160829242528547468245534454091785698878313489225567473065292271923350980731400105146421109404353087516412597119075853317349215392231370507108550822049436300836755687043398868280646214187682552605940603249540469945152076724637349541669154015266293569845743451122094292267385456586452201180777847845739503789411519335226892260915414384932822764573244264326106242157905957269138097284871497927201545962819056125499096407524558987319842144941373567596159211281977607222998178334099917335785214244501878650354890351556461091188060895452654977839988664900902591515778047652424340701992930585100402173777198822149788371020707614866079346930984846981499474316750715381217524326048071770899540710903276279954074635640288002515584204003324754657805442731117535611819740289051492729801904948637007782396745126424252215847854125091642055507023991823806815887816696026724585852501711494465342437147163334891738863164097068122813547754351135250005026324294920145392586256756137561389281844126535112434115733042235311479609305946702852249583717509271658567712354794902343289122675646146276995381959037634687091776724846229113914962911241668209923094735438861790518929816553143614913253195648905999269497731990227270975245791018188254520153151405932238958436656633543984103297984867486604175119751881206677874823648580853168191849370189071901096494096051358815346282285892146889298734871465438805137050622714228967084848915540323555375188205589437155893490263504711907184845661460897207213414416124027155288575366474304324467636945274924109135635908693235560702131951043909414894640559519003327484401184017844577238831684486404166448551690174454221630113340685418944221666694146230787117484265007186724424869623702992332528706990198813710614119688031750114766308521501426659259551025637369899982831461504931786866142821332449373162205934655485635156808199423944409066287022169775873409250108835344606230303252274069823501633140303749655563463433208685889227002603722283129828562946027642283539287118226248982967508917067757879382074912893957540977460893492594923125826608187945177862620779256640810445969567843649427041631190519884274000199172354498459569198781352772101202021394166484179968388770358108409342826886152951865822914665174536621538269822275434367146220172949031119729175713395290734720984531039657785628423450109123332361929705254076833092999778824739869078156736125328874889254865174160169206472367045534859236136737790001021211757411007215546941674063075914781461830971915963786542895444719389840361613222290754744108395592170306321953930812762922390681071876470141999092095071673607242243083660737215485919158893416255159473263838176256134041856926918024666726804748110045760544473954397916837657593218845379507065332537503084176682519092641039067651960840512531281101414889436358529390845800576241760482074185837768630105536037694655120420952825188461965690446527996159697565299718422542643370884586824481927435768174796212051575471758305056158746275971707134808457718124911077860117339515384520975224426402998514346811400470506961865211238950397065930349556739383283345454079643989623959080197639113173092987421815616063869513400025612877125468404735957940584336192987754545075116700185159294810758348621165467048511612935801208490590951498079630638339987955299373286009403169525742410806987547384239253476273762995751448737001048574321812937026433543036101814121299601647130591807108462282120394113767295623104033933812681454389437456440494704997468319961746327842445652056154729491442669763505165329852498395574095593168710506449237245643272298528520703000678323371394672160287830069443617666645013726079655432842699827365777954351744079907173066474806262864919803133718193796146855389796923246253426262325865270052202426704968716093191389129164923564698956615217552992611188473136127233614708041203143563288290819474926322192243705803525360991941862988740179082813991224729865338882606821487006778792561839851160488332392890856715181857881956365579605117744783938014360715859736490502898896349061567328780134386712847583537520596123248182330829068605953418271103550496798518754797735864026048502487175366239675978620820763441713751148042278229855739860943051700116145140911626561634051429592002376727722248318843623545890816365929456840983222329876731072700541922876962523310919010448243418923667603636383979792775948247717604800799599288039849247763818109453623815352066436607270651768926143722732656640049463154708506377668677928168108460436136596903567976141720610983794914651668918695051443771721366442549782039794219319431292287530527013700163427491839014668354235342467192583775372841663917667906169748191983719363472236311108850309643695031280441599406205377993093859111830721017870844109097231717251274604828144516611945435329005013542848764755865518730328029860579137040874720523234683459312127456867292839613483009137832358287934557798358317811907141398176836895964637819667116070024761363974751281507828415352514748333018547565358338647491895758317559938827746423436966522414986099269214770768477517009374619880095808067762862759167090386214216669411322872014212450522619986262831705040900276943241617904158586578187731378100142231526840817796778353409648835287680395056976167196259921074376326436602617368167297210632471193397866334852062799402785466017290474317724189228516850780237313328949008182196340436876644950726295055799841526301189312636533389629234832777086610410219523028272730936693252074838872853882149781695477661510099992948083790273945408228761324764263028752381177979642791609599006502363934005926777797955764423791144130647052833728405958477083189468731662418934585913623551091515312096573194883620625039987150898602330107949519380185849549700336555128480410997929533584145950454529976828082791253947773959702347666468559845243865166381552920643566027089897549911646889470108948465711766421409030995893924707481113719923734448298014479419490655523000551796553920713265399578458436584103254609391502743131629371045546408150474127295317727538802397524727761384282522051164134728118433039851545695097302352164768299043998747693678013152753114127315374065496520676570345692777342303282438847782019638279327193102668281597903218461694206666718270327385300826311288870510469202847399091582088331391356035819183756591498045109608116316011273771712761240740784101384931405578571851525787152116741606330182501952469205705075493061975429466272052669898094243358587453874228237601985462023609744346476556025017829574303241270399379348797081879129810774919542268832752957434506029427477863628435833240703350159809876084399665051302527762459371485878068546942647849567738928236287719192837782209339040996037504996761969119405301794439351036083169518803156859977676416563872735014849719518038629584902297534783562549372077940248513782016448783234923557343075366217694030989806410792205756924848962470724741940997373983872611126521477832894200167769830458936624579565851000289404826505270190512239160677216652869967989994686448385731994624850911916420821828628251351120948511865907901781189160041291778150402493616560354805448876105420960980020746873682911477467631560155766351243354377407198793365241796769086679303942847209964385244739684766611465430845738539858399505701272583324602281296204029685354832823774237671642083650262515403614996056154590466421158446204906577695159274825149654835815516974939368800263104148391022213892200206837097981698083262655160542760677970417664281754434276421304632271404329412731468018488403245411057741949189184542035460033072640794565235672299659068367910874899035275710187005468985548422786889617293784578097188709043990936587648516045372742615238362047893105552409889203948719120538920863510651350212460379814489807233784728080035149622236257342724695649412737311375513885955141440775188820644844347103365602287965231720890664601627576664385517706404758587952241142131533443016238806323017370265257400090857821909746991075701378696470296649793207682418736469292306951503743069038823371348498226595857837871898167956250879156391186970013025424559851223607881860491625805656490006607120738095737141749677486630444271263192945090661714210904657114470637408590297301558541687723182309495179837545919223449876126593385136733295176768553933275877409509004822233789599798108571916064659984661411345209694649107057212627740733733833208522125863004076233045821855981819202810904045816600638969016049603650389240529210063367001424496462609230362212597539105537162672961915239044570611576677439157265503878224444874820217393642662637802529844721570938549204185781544613361913311072405780390074576842488764098927488928835997780481451166973315352781087644712121947599645035091421360239713064147503662875701000457546540360329489970077002000119578684619211161300839913173201779522311782197995297932258352095373958515126496130918526604422456028828154099765773937099636360539517557247894686765028209147482489541191958200673922720277266898626227308674426071013416685263130236813817409785046207634457829035848659291058431327917529713994332313795267213016182752752982783330831745917386337731361082817593471761744195634820950423994449597837003667653033676654471657193018421054659243633262650353588955610739667531681659319250717173886345164328668966513981879645812243271580615700115908155882096055697123717280286083187657420220235038997432173805769053117063626646471430929459968008719918158158147318407080232568059044194579769995754717985567290159720988118223468975594710467974608594328302508201748806664299812198174559745317500754094047682102235537175241863301519453253243841863920121932084364670809172688139211216815184678973461930618195956906748856614231658962785189251763023238224640450195911019167463208738415700479004401221510449251354510062656297950492884899697332411678131970341968096600826849318053398255400098914810242622232428053634517154089900210398540503520907224823387313912307954417682938143919940921140270429329173872458322940944911689002612470024526346686512473450645030462649406619695524910156160794626909452179625486951909044818535939026260924417729607504806451909195241297277728111106781632841258142162397607682435983990107733593487718833252590157430829626262327184942113704694422835262553706343107559080124983859490259131758629740391634670593231404715951668140014444670523766277569505184767901536027953327194831231926268150473013287687975195037245179562502886028640465437329494282939937814865812290031753112359586990269899327700127526878892911758730280873438488082484197504983863847960780173853589143442484694176391566298871449002870236326341206667039148738291691874948740320178813730581131823175450933195833764703522586134005254579258433923391899698871952811464470823363488265171768535444749864283586902459304238557792651671036227607518820417986508971661781486102715592989843861760751600714053884421486792414707378216903040152055010875560436082827291215446890926573865194336099380680602406219047779537478874742165156070624550895548690415746875481632895078021841812048897749885695400210854406581997329856578592460308942548909631453992549301077761825667982396525479234050348805488833509961834023593391980256944271536985097285887547662092172771840217186942223823826551646313112275007025632050331317990445483057255938762920314845608275969765528103596086977699760603179217691870283828282797054651582667266464650162964092507980555452446856662029766051033113196142429263147901533896732200889524811679148735228312304017741532122034615042615846899345913057324650933980159117903618467211934780588961059437344137272886345101414819294663392210558182417638420235913800718914173352355510732999845456312411168792361914565378339218262209377098794590431855713811390695389034896897480762236100894159173066460993511042297230641524566405020153143040241495171350623701998661000289742176143917098086915096399296046378836805327641350244319619862943417713038938602845109802584265844580500794242417799495780431752081540023124779715685999996102218895940211048709652233653480533244020386097509775723421556356083662989395179028558302660666144113267983653127621634199420435772470265312180901999897783503875087050919684067888876410384359456751644716807639183159876800809160232984073907950512891285394964926027613750593363964022457593042766998725769597956454691175741383185759196994160917895402062466806438151163240258506860687212789549242963661093829912546601991338138856090641693236508193854523342379646540211796579445514509268713387612040696901775802204014849889652177977572754229785130543983805273552589229752146095032088925429814289491145726237598308824549590661645933640913218337013321248839422325098623367260593764683776365753899978459661756361533224181981034752250329511541544610211063053109514267682893471256479948191748202112644787853365921160423790783372426470530312996618657302127037934548835713302400151208911288222451073052505393310901027079375142641444456128238982118406873845308452440630904954010172675204078354618193409292803633628483320458208573524267912821576612403742139422431823055084064951027339625193699300941886628645608506914645598031312720224756629319858765791721207284275337314755097381516309379960514560861371871638467718896271308780662429794662234883506747621499849978508384366088753951363631312898869154153831050545226745180253528356614368606094887450501839111299719958868966711835187612256350371116571689075199290495856601715665013064037000553748508714766080817607425944237718356195479931987300267408821248629622093722576805433664886106387199108168188860186893155943524963799704548171764425959164851062315037798546276734459054369374557558911515104094804550000730335701293667900266160494233728016473939503334474479959241778977757009550762369653089175561583829896261034939758940649666993534557659718007131887685549101076375491994843081626779974286287256957707510144090293807688919244897930059359267547416004187816311808824459708640380132171245536290724766703829223987510456195448980135533635655814345115003248948154204721542092214121328708826328169874562058312969749304244192010991056401221096474372384624001190145853682411376454639388893343409114893064986744562268569711645871776289701928931217458132613290579286316104999902500024781247392103641625185300716938013346766921503026002552226026638682140163943008207090895398545481407142178525489064187993617171501915801387148147430560015666535035789686511269495545057137552294328325434899296059385100974543739806889307111782648152484568855108937351357492797969003937770552607382104377682578687733937460615274847446486633038005359736554732401379745106919821841763487214398056302422510817992457958801603188590996110511160266816471885681196357433378865122300905951088220984806721410531639676269583491743354270880450610366872619225518281584321149615488710753913602059926523734187046772164979060654975194738960790395456186059912894804089343570992669968128031487753759177942974406396084593935505554824899379087913652869034509086163827809095096295981855476243857355626753070631461522576179708401684890120679771000389192868764460168206520953741161150068472780047626957343795306882428959295386176518093221935055795495236438243387454153769461804754129781044225353887428072172844574940260081612481405231160535184461081823141203667872704006266804717516685839698634577749446085896605222263114833131632147294003928289202911088107758972879090405206473991737595036311771022929190602367222325817833149289171152931442626950973967665446023567170789393565209819533548610029555940743857021548766909552361234903746955506258260472917877982529862648912460734494299994465812843698938413151336136699513016673857483099357188804888420933583499278299340871167599788091212318906940572199313660493728702863777852775922130129743551308318667248522168182016879730591333552217826401032364556483158545743668311629917698057997370292040705160975020081197600513490366593088181930623056369534729614615519297132199859663441930675349762373645020994926502811908301821676053867907234221308719029205199691285905708434445898637359552916409378465047987506269867029535008161740365539810526449672294996926115749994909100588113157434280005286218757898368071934815207415884094250188897617345602506966888398900007440135871745218258093293583892944671129944229149723783132342378768582962976640203984425721284776652775649564195392483580444324314958397974343262237854592602977092846463917597618152753116622023493574938324902397102002780257182615802203032568147571318767810859652163952215940138003050358161951690234952840071619431607053394839919004744904187229910261993374996812322006172072761152945983390148288490396931052714910647181724832853162153969299184042641619673656199758369461098248003158082079100771698833303737644491158891938504214218341150252187036331235217973387555139250996392531151081987998685212098625040600611296932220770668142557751142105451093444424584528664487858481720570180873996672796477415908134250600039782163993375472128529580496910622013026161338742699684751322362025192971298751381587985045890650305505664054838120722364242680911072460506468308110553958908061212370731898112080980937978467935989457301975230242756840781666028101343955361782052526658602222935128706867935234833267538952268525156681646167434643000958597170367261809232412210126286388169073140357934830752159524812626813336930487955658433278582383087778193639300714301745837947821043691130909623018110097199844403520267165125428856448164304068561418299642319618513076877744086331072718710955958466878576617811402911001259711738036451404279358536869386259440078438953620851991409901307313067228254749836527924026490919730284389908866460697372257503495568562240564323723701276881979573042020787738501381804828837825689873468550082587701567451259291127901473670878395882545245936134475282896868931885136649374037475030227697904893944862884555969622765075023323336086948409805148745520913723657710970303822349582052611160544271042928478831038753139439926088289550828412046661691995565543968760997056046191705801787203292781244637081027685738749700463044277731329596617954179630147898616681862474761764756728287041845822960931897724951651961842632820683295013507351592869986311110742866294269111577445584865480844948868961504376436649102106203737921250071025779469226421197430618471632640073471214129963398746296807988554577880788120317631135361890407725483523182756421287903853313638389432596055557375312346606536159124789558637809767496702936100622709302664838056531092498323301477110505614892087040800801552915861549864936049143110003879401698614453070911003589705440521690201587900671487624695635850353406822724030031654933275132101529452479754642493640160762092091404589673909483573318122095847563979841811817400023827762280241081227468234069979159722473756806709389445835140899659630032067266756769312671188919138958570506030121878305395183877391673241598992003308459522508090072770364070355558945065004286802085508594165023404847884283898228215091468284712734929903800100519452693395943850321417563808336532875462626837617623416159301171547355743512608199538230080615525303861760360724874193578431342531314142687189018075515403428628050613290188145562904393834448308692685482354726319431578278763722287322622161914187668458433033793579178467711602803850241016648759183462092617122477021220694221336360622633564012534354719029896976709104738319712487093601891772301241921059344366185068212506765620674286903187988368311888506087366894998999485996280646629421314507081765374651670565962669519579376513905562295944271026405336304701267557165697646002119342214609785092798805974308349687986959514414121694064628067137702913856928402601125775357283438349617795979320743298252037482205523458314906131440596016385846522853923958111639470406835838417270299913718984105175646348018875898815181076186337126557443145130909086783741699921133706956937764345841764906554038265344781213378674609746679770178138475881630966202164333640875460200883287854507110604399107408045155406308630432323155807969500016403338464026174261369552086986608199423981072549197837760179793630189860796735465555317924476841965030969646546129489806574704041020208984870380226611894447263646787711107337912767360285168169758490913855500436610521829145241083752030649379158201363786966174108973595628711044728980264695923448528219050380626172268141553758212411758872406423400014651948269975156302963956571448171046409135262146724249878868755675595850759195444600057254258745595040485566330423764942465280279473358852244826060203629983460747896403521044201735660267385487996893614735061033604079142502020270808787252209858168095835857761633603499516213263865335160932647985836143561451683431762301126425607434416180351280158598414928402207016687835177027717767349661547450490322551075253898385868470911026856041166976312671518752387279214147444593089836226802428410746997294766130427254893085654370889684408135640553755789666387171024368408676983471543068598409897978349538403529400674823191394622127436801347586015822497858325396241579364403497595813767572665736165730641706197442418125278631440657145483293028034202904843477244270085955705397704197601104590626064281138716657819954570938795743416379409976194144571828819064185527713653586713105638665677417137325325630441948192362381089489096652121721851651831448036671450998108698443619534079818687509226125245526644415067550191949466675795776875109869546123905948752199611137759905788014762079075739547236176781652860494294307528167344835157618700798282525513300052585622226216015149342613759642803487539346973637432491860024589082688694882178418544107588420873072485792369165652167372728576936773428740543267315831151708483614930092374320999272596716602192068395228996146457184448158501899372771927200676596071110316615273393818321946298096981810774472926020602414412310423744984644592398038807738756670910005775397095059594107999492165298328353920571505462770086848564745825949843099321231734749791092724114951772699141696440526174511008615664191045555549934192248187303774501642249466209502385672333610823311454202049111471601195007709102601318745829315263346324641152985921910477726714183013899266289856705385258731797861586556250211045647566359148402586061354588068054278743029258453707916993457607935657201639138036481277726913125838441701998471059944661713465573678513765909622986142343873630179532979326237849224123048302285709167441144189002758847401114466285992609009113667612206683171959976527874622887887894247044722764210634995484759156300812786755793684580037080973550228348282924558239809236229872499324536057001889652867959542617180836715409820243674770111073424513516948865462622615934212720963671801554629300485665409246301406790927765841148368831679412707044167658727893958777844164514985967092438324856588967133094046776790724833887343056010315592976120063576636814401638772136053432902802816389890204811764450293662313959759545154539596481058109224871537992494731451480253374475568143012212895678777031815516751418727730289726694681651026759597307323654707347773031344775937594859071886392094621387689477357937360903858095346832313450102064974458029280460948109052157627180318297921617385928941010424924141007086615318669737889995942487765269513857442423773771380661921869551372736231079163706099609566709718040558662338337768288975786162115547334030311702203400133772145897708105549160144851873984289985302242722958661750495749299904265618397986238285734151199044341377787757844533940028554742795797747890278409805888213402547668062579142752877374156184725733105781505010700674638967179859617801867222850010084443627080625258879253718427139154553022352060977191197671636201837684416331365030861902370634360917127419199543735551786090270251318678306695032890801301186826559361764138616519851868844975435613943077151998414015026226248248166817549492012063813196847115961433781470033852307435869214501351543184116298135133144504999102419488053967568950930464245131181836718757950469947053186452700924384020911935492609419853972464107979143924377396482965590128888703397854446852471121255918982808562167971882090776560243679142341964432558385634295007651800357163729656972657191148764500796391113522319482013466255583831095655113676668585872671001926293390487203283858562755724344044049820689047470289477983733261312348001721661894430010541910978021815477210375724323061215876761325477359565551300892364541257892612614766622968721822955777123466887977508503066668867126132646614214735244691041716313078308104743987940181153129070721109939129695657884973397657250819540405635859121505997623252363021285748180672352086420390633041227572203487534983584030204495631813633142051044765485093934705710361792019697183009286554379900976617283808283210680526146095784719988971851275174793693899275883766759355106980729370706269498298877854457583473381732940476879182509448917815421000851468594900566380557432685813063167223124176469505465773402726044299270565810879613880432575756862797402845234480465484834388371715776091943239172071300276108147348481748651515709735566633085664715422179285601207273351809504522351890327993020585536023759906354914927286532625551016601150723351630559997269077588342133548414605450323692426637265362146510398104314852736591759603462911845942594772479404218048148395284034370073462860818943883763558894323552621499855838611301195390155566763482613947933284466983781245723995603725352233311843804109051732819638066107862656360828575167057315722824198993596093559970392132675582240475919520884196401959916756880632380623722609064426943936366523544160564849881307664060822444556801011159968496207402462963608386159626282303098457647633764797082855353586571184065016610678000218184084834281111216658292325162321359407594352963812789817150246412723012900979733200645454561390175786155273515398171034342881491595503767569178284171026465985399314003351103592497514585056427330744221561274441735741645113792976929157253920798221322992790969619751839036567249136850776252223806872915940903000971799161723997411397316450977756265964402021359161587342758564705949015648873427171445375661979435382992751830886912112236187927105585011302990586088951356277622791599733185535721822637412847280460610535995163565651234874662227836159947276532685747616815571679968114220938764180380163937539626701571452749847485886169010455558886695815521500172746599866316451544885784965543721074265216705138366601705257985354850668898052922006328174174546942708534489077161300468002748185347267398021339835612935701295842599359225657840160356389063099187710512194978278457399991687783830029861749578348293128765665400232079550237541862559702109012499711242827630980422919130795917839416847015038242212991446666907783814433423901936807598815270390922979767213320250506324195381785412396310827134208009700923983596359951839654550693221817347154413108087341950056386920077085379518163591146012404146756494545994515693116149943611276980856450465172616199129262013065821920609666912894898268018001082204087148388387965247772884854676695098101545731187435477114459378525999991879524612440557841915121144172659363751764664180790874327517288361326035910944069802716239478390149295435156555712345358048839607512659046251975510423562058879768213950573268949532639339934430386213570178389035632809255632243829745375044449296155115017940431764191252269637768475200348001829836826916446665909847278257319711264853047800683879160525103748679978431639717128027859472618914242427915743500808772596204989057794537936331003065747828328074137415104215752506093002239515231918297579220254046968588934990354809172549932845833446699427704800229417401628713351615690420662846153115372303324551980148071279174865398006757313199838473958592296840358198837135955140659830920846445147180465793334465783372636343949960500477769527487826396115071317776350915372385097014103889736424674281473349968705077583626979334809833657858511876404776866158341038879315368702559795433749601507503298623547407706126896999128915232983711511638348170702532309439494566145306529080525873701201327679654165132135221987825518017044334736641342158556659609485750714172237497403836868438330872554671905025570957822336430664761976424637500045773626879715246436803158358242780013310748273966883372517664447926396145056766115165248555912466537987742074398791420520410319871712864886401587279414854386776353164040139734610225159290274344423737507429762805368349677179502945128088547300191441142098490941520535895890100981815616688093645453252172053150429881967392789508125797021825022190027771726838674448016067418785902284714645612109999423419719881321579522208478740838966374437960811040209132086450583117601041237419988291885342046990755261941047756260209121268296584403886839112782384754331748348088102605240709062768653996557073083116954596520032893044815885436625916631726456313699632297637961648372632173482866308592860574647435546999363190387509570252138759099447844839866363980582514085511849428089686632221391016992452334163183560019359317388470890525726262140376230485107023138765843414194995601996695598889983752611792580597575568281102166921657399671091696284520717185141055597805498838474232193776970434795738489011719841931019821835672902621508240539738562815690977822770609803236776485684316951543795287006676782141673582175990374865970008376727346493219067062698633469437469914940631919330365201753413238985059214092386870089658468343967065085663514407955076649071651047673839318693608213838858468158526501413272491210974763876619501357087977321159952636219534823476162829501821141081850424356871699819776496628178202845224695542391306361684883270769726174775390738080245726423007568208406546640873659406444417269153007410764748203803748202199208673783877985807230104162253756737413348154951215121301424769175807754577083036786278525155823436558047122077605306762220323639418849500736964973975975292251922799301419038680000739908190904620734917094397695962621741318660961727524937206125901948532493210457619693046554045792439158674059174337564802336551354471756256587204873810266769931276798528197040318861167699732676711023669329013484078040936337695725703939247729932353818520288504545663797299579628458284921734119225759699418064885914280289298349236750916040210643863126175343957621494363327232851766052524302044197641386669434869864368792008735791850830767259283984407402408433201930980381197682658553069262276165089394503480505922094998404812591843097157627234363704150098511903749144952906117489332656386155719439856176304606904927353653090060388381982179838954839830585792987452235050107942357189710118618357183178181218702384857532347384548781952093018334714947762665338758060484530836550765035147314103948877016029191858357738415532514748846460211322948882765727515727232919646197606074973082188389345450381052325260041714145171442076846322527406319664524711186569953937960291171970056277723135304498229265584195472991944277566291692661339277305679077264691396973845896186247182283196725484985094592299960825125776837056879076034166529475989843717145903833257145879478862875740669298796642803796721090662215048531985835520103239495605353486356054420688923901550095332367345607225503442693881575631047696035539545611249208787605204396986762444282849810598205749299415834936293371154801210489997000906327790337338895071497778205778935418489003133943140015536829562751829473620152105430481694861144150360747614565611389219263182948512900775041769268417899806653577559990509481521015569826544338035272157129231375758581442373904262696817190943739850693688522156031841669670921659778415164541402633171163332020100075367914320416300720680195146822997305734905369719961205829645764903849201673422847800823045260012611642405410652574955297775312345776677705976436941804729843357998607574744781796690500703550966507880343621794460593217922743558746738086884469435787526460372094571187625520154097878375422827539522423313123259428690444205290404781505701996893182162445627947415565452681896717249281904730638493178507954477121895001677298810688495337149172965524946576310628803494203234273657391237532556934918966279330429459515440540672380519349020362083168184292510255526794394552134455742361768923922591346153174106389802436772072809695354740205895696687766177080555911653038847698992053159133855916262984206021070989211116565790345408412994768015803212607983049203671010640373038482330597829329184365850057693555457412107089637692092812180217343194096674154354033537709550281250488867649483112705583013729171067820552640018859034801208459100074178152575072104997229208024211494850818219162386066203573345992163403488476307983743481934786079615580271313035638630780384586851268696350578252370695815049984626428651870588975589873342202414418854145925991674216886508755715540398456659391375485088544500989806777212320055686200910337030555129780514170149699300814843993087937492686729784845991381711041835875247421553171167497815581706834128520929914429454073352420846304498264218747082102458174424400447233114342229845682643846238247359172789845309635029553553737090460638626752396096479838247841150173458788765949668211116448507434957096317383983545669737011589708868083385182390002828597051032329547010755816536188667685794268266570742929048632744927780744617725191038150432422921534807224119189458097725267882163849934508342144486442186306478675604792911986432146378925007964311267447533308649246830077634571557944430424459470434795579034539698175584198142064766876757835833568114287671125958906527063731878152641278898297714585305783846259500625480207877323281737351414016273189408792236732023464456942820355925402129228949968932530304757725775059806994396339359872625650671739118565313972357037708222747321554769571687985094310124823654020598661671569165793069529171761470142940672323759929809678437351105494967452352451619487611775359571457562791120578912398420892651269994228028388969920537949851863051655277333584459216486676985130287256146777663366553700566981923521708045008832846047147797376243787888696196389617573157600726369489549125669126253425785576355381238982240295839091908912976436720457657915928947479336011442536010774406981495626135879788342150794272865227317715611877611954044237449565345729130966222296036045274155376391184383510609365817064551383697550669790138967994447677241553350956073981620810166583018537443619714627681627034950442975259959932872151041187243487273224046722345856680573634373122773542263151764253457086156188808209090654466881399174680301563394161535257496754923381178742392833471991474499771164439421059003402734774536021119026231235742204802419587840299226917404312688203481381160574617605252116521718256313306742640390112769543964645265700304547797537875096772286171088958552140542700187508339735214967945925383026252553848643203646583271941408322122477474341517764102617994772980869297554110367166734084247312019250489561424412233199353762446822980553984892494834492913993187001748579196092986257680382881744717842980060708802607353377246926120659216881940961749226928344400680738246178183536509633117645590535744407368415861940694115690631653018114208519453827988868111069491869674689561582367053920468496978177055055810344059918687783515290925582130857706892892625649208194858561819628887960189712129602464263072757281446689017234361283485867280507538591678587772249644315251122243457701255953845803759212918907943831347948014790802779687362952881123457090868528528911829591439002784811566777936680948946091308821814106476042206426598421420467884224802878532863759259372847674519343927711407852365187814277826484297476180485104576845346290481436416770246346340228429877548293780906285507889013936124851953203549063363540980409748481354032880016394931623347960500484398526410854460381836852146741151231948180093468360965537838443625131517512830476680482591728576344745770529653929492694411118880500431780297982262708078123052903536463445703259187455809657648537135799289671544052809536165205251530582136759593517633943167506301279190536167304908847512366168938809053995430564836389233631989296119637614363670373641738757703788929801166948519337977823849951178261156323902737825202998909198289834563772541297478066149038675828006789480823810450947271618629693228464877361115505364680676593481063835232956948125040408983582496861414673040762493307941408783537971706258726487744144820802129730844794627911306626541570101140006702933779595822835600346741806391628483314942569915555954230903978369711418839367961647051516342888431769440679759737660545496121431968909784504930243217783808926304687132209468221493553783651627933893808797778172054827880790772044509683393279859846095481251597218417673506713660494289426096413644050022964457032969004029750527893746658993248904840237967443272331723515363929444592550943482310333463638636216446243917897837188909864892492659764774289626577509107896261014172405191573453867359715731129047892504026420188526474347757165500300050671990984149484631323026358009228983206409837360909774600126218034744733674274452997815825330623136214987459326873501009130975309019730466149466151753854844938671749133272593465822281712760876808487547809275884309356428869052798385454349295061465259608063407338452506370459270643774118510114004127464636317604019635589794107697995927231715947251070173474978329370292334785822153611899318052343183805384783918951652698841127718223919805884955922169138498208100100685315775693078706458538488223985076700588876781234937482438320388065595454762300725845139413181300346808400495016519458735539533858628788794415586995919869733173327868342868767680523963827722415575844035511226956792599629911803001825674512496407840316859703926631175845961856831006390402418271781675667520573267812832394667170327856899133400803172228328809428670315446207298013007660810419172225391980269433044856280866843950937088879402264394079041470272773996035664506829737340734120840484375346802382642550792206515887082079207312259805502525798922865116204612094858195919149421404142706574836578975125182557704785641013808835570696053709159081965162145902742961065215879154284941998553578574410114288675038179368020472862871069823152523401080426061557361037662515853085814025851242009933163844366470464846687889979625010268552559358129831297930060230104699053638227890937285215263081615280704519492379362304553734304496741362649750127889404808444651862876635554823703665630848762623935797944442348315534340938800343759803349420440584934329007985039203493215696201042951309541425977727742116027438902338829912746670960590121872416946814891451115598353257290859065052618484720163334529270227425446363738532690994421320423544715747738373726540759636620749769921078788292160404368723554481202613034377428513731147225244301562293130204347797810647315608115218696935618065287769798339813132582786151534073403909431828063264174598021320473234494091104697678437218752452117723830384265056429646463135923000276489110113051663565892503463280014077917799167480700241092525777299157492558106594362980162150192063988022046908709853347235501863712444241627465775519871246010577212669070254991698476453514819861023916739792204731649071781388406518023415187107751493612050366341950927025929947547154602568494171901452421925102081089465674005211471637550361396101980056519385888258215752576038816995375308105768125037698856814746743719101811903428793607059149674815356214753332698630207838156564068529119746628106214815963194473755087198782792452160300572159242655550935706452112704897868511973513428006351463151780413113704744527405963775673279365415818142225613098703814664710478240227960260374079708419609130630453914397961810193001384324345439906030558836013473316896867696585074418945581857627975694667222334485407125259374271308665629851724196575692481592846114046220709297975382665875859409776305054599113709475555306467515743186757440478259748151953912881154398449117680663648567155108773794304047688418461434118968093410466154121002553692158970460138792440564180090277144848082077631476900479714084970608613032597187956486533233686170849198501368090615225628735244394097980212752914205112608102512134733512465507197066680125849483532684856122465087290961191295295985264856496199887429886944650365300976114436376871648258312712129340972742392742478777812845345225266817351202605079367729168392173169789506399780307791978253068119302596598577986746218981081577524592070018062398188128180830136386998484996404212293345877928006835523353973369726505747424158503274267614124303553792950850555466115494153598364392743435301692373189275788546974498865383295657087339186331766367322883247335717123171623423439165616084968737506050263394793197609074564638980769462692696914664184096741423408534314198931981306750226419377005293782696375652283826468428430061875660849988816569853784360691274632510714919036210648822827269147781261594506534847737253911835415205683115451459497730191413825466084569644027512034708028290960611529144235753960995945829872467671799728551778764408957524286433321953750755664137808190259073525413627479652548848745220382407929477421680164163382027571073413487182338812557514731210734781106481331981437085088438316472865894559585597324115222352731847789190224206694386033849502614781169031480493109852429388559763945492541023003780714406163938507913258959013531563857690127410335534785185470578217506293464708785070396499774630377111919289054358799868687777160431722833159338472443277527029926532560789667253265470229341256195508946635576919777620211435508665985755398299979502167314433594708693507321517852194294822679871808482418513794851169555579460096036966459278335269077430434171355169058333280699311932428563932393796569451727232192831107477228644189174062226408132114376052990745048171180018410712759518220863211928691718404748097195718463870403418923368052149722339772594358321227763593559462806753972138309137653060362813007648227362571397141114451661308323989076813574640885691691385756423777453765752060731461372195333803836304285622845625171443173711735941714374929136597611735973358145898371507279467975421633036781250440694229230497233692527793318212497810240616577385914770430615271624437741527502827125284485951863686452639016524024888832793568780441895251301331604533955931498017213880819843685478464513144732865415675870738885017321610949682897420363623187394810275671979202362042045573511968558978940338243815241081972816179704807421773389661087287098979816518647389952588888881262288334803026739580492422401687023361543763277884815867975869872804853208303958415445178727890798657620318404419274299685605886638909363954491506024832096856800961729250653469882920608419629825007022598828829912179890343054058523919169114501818061425614312626791740450836955230073334513077174574924923161085670197689488769149436102401619055279740667914420228964699493486536434213317747707194654259926071754505405504615845442012970933305457477080549218972988342107212080590356918838340454882074550430050485494179518032635841643219352783283976326775727226267049901770928030372870603315366813648727271610731016199851492854973115860459788916148040417119151390887398271092993970892004920666768352297256898308987620150092411824805965518452223594433955384331979029924766458560388942060137695577296167318180224698531106819244066532445220568821722012901696370369203469180491748262995179432416285162815631976795885246465956805671878038454640567051103047851795672987205474163611210568235113321149338280542075902533523299497821146407844180466881392316110897138067001489648351054278205467465913405384110496838192666814013741640213478999714552046512251445724060211518835520075281018704223914142363728892350750982499977984982510766605451096321955395455789633675513536718666068587428564656606745825700172270962140074429414142867363492901894478870987115186867998877615003064055146837146779816053962880320979999593266375829611652716351626439955394860863148703914623555316682973446841794836971544675709565160379399612378076586299033290294446931749177855273550089464840484702547245325938356392815099627236544011548402507763588637094140942971674843330420487862813890476151935987330433403534007660428705625341193673155395395395074007341795900680025354247585832742675162443982678837607683268721926910902846424171099030209713070086862762353356455386398499053076130125109476489728512946818924526652880543748485953544552809634854928913090823730771162534015331171690931230658132476559940221834683936748697812416721169543596913950394131244606230858909846744182209269266396076101378892084738031856880741224230323170593383218155127599314718668343293408601646100224862948893323701745669376884771669498968068545330694788066561236185348441165738216941985073229594755618160439249173994756973515191188860688731494818908116599149326732711771858037871356995376305147660767748511809138486361639483557891376063235605617960564312090826103423014703826395029006150402161677339205070537668046915615756700628733790396270120515744944958626899443659103157989104957454231866723566564667905302558469022259651520214577127143185713922169472925207233205212497329608878935499568613205620815585493849614601295703599190767865764980639871109748113770949972102378990093700904145516144804719201157823850110932577973748855442324280482960382489870485890191751912390901534623409671224437224911477770700374219525313213301000856438988622166318460524838969949585316414786727144352581208947026918094747341517709210152084184808653734904046112306312211622552455789529038789908836229523144241433982205531930175842623734544192437368153211392954973955809832743872741877534113571374074102611799209480486241439674429715711875170557636526703260541359631609027935875918645777213664114148232666645326948487808034890741546050436734947766915733126896608194035760261041535283158772805247953610033108168416178370789938296846939390363873145444441842659707193322074712624547918378528374399221725829726950890534383582072726322755090971664553213116957578157083259319762536590787587471935924890834256149309982396076799371350865040306054621726240149337098480954198185918063013520404987810774447464224923933266181528911405523567438111679877140125801841549213135470662535277326911807212940950170806901065317770388681723055755391313726593065301102877303066363273577349221186143952346422624311224117617815569067177262706599829569003268458077026696865478681668405299045528130244749913928504396154806923669815327975904778450949823689271381591476855150933153961986880498578505671359137607952941435131198587409308419124446497446729008807450221388552667992214698778726507655050686617076072532318054767258455708149461715603233908208918444031606081258427930786075850831440568437664739553289823768250146956644233484950053481033392029495540978064146993250109440354203714306280495897539532788622583019055229863617340781427147582340420395263919704696377152397881450326149976896400927370873230788987454665433125300379057660683615526788479006480832169754548172978011824074978325669971981379194751544353655786181720737077189883063949156247871492770548592645136801279112150425650657299020571237157723034620207455978159070803773081473031307609303776472048967758663014987981061799986033534499572253319944674330032836984868997947374028260032234988258199794010930211052659537914545100095008941862239531491840487417659273187438095055325866047046976752855415391954815095358383143114738905770009032735830000561015148502977119443407239670327625912943142970522017747468054595255094540046210372148092102514706184640931487076435755578915820489640686086061521360380459475279693819345704838200934357664410394777330280432059837172739782675060384132951129740871440059005598048901881850454576841418529309110110801429205713288388341555694217513454291804038317267368689888462041500072320654724253156146134318304303584942487700145359598201794903455596362982892869700096076050618291181701254386513789075308391531260653556295169572555573197135964467375104558890913842778315706468312836793707282697414286373002333250797878281044302378393658589545654538975988751465968427210990256517481822540771384913667603914128708742661856784452265006037961870556663183160686331106583230866604447486509077102495819617808684733215721532759836451993326374412403989798627923076520012936823060845116405840553908186773859447136792813206322820658440693663035073002695504351139627058540328948824255620128811161635619293448367928647640430140363232648977580187215331684517817648579633548372289934357091734237960769384258880148413564028749289154445505033372576660471783520966691597838031409779164586766063439481035781057230931701384172431512733061889466731889832708973965951329903094122620183344622406863357592316691272327154960895572130928965027303773995126926692416572534956645072956524076723247562164428408214266516796820058420699756730544723336664056436316062640778408857181838535844853517422631469883853603776286763364095374865793061934958256195639438403638859223758017427477720119116329941912072235452579664016752443981297895168108247013949668562012817605681762087557187070807573057853239358583175022279725021801849245338898603827696889171705134631433582687246733159525434667378953036130233651685826436289820057677973384617286399997778215619947196796243316401775127862027197190007700164216937087762615659295397128392746038770815663723513547169034327849189808365012838490161797134741186061316469847626134887710181969340080868532705038271682386797851839707967915224223895217289753487493235501049795290011301146548727686132044996194382532471370222724375078303157558308242001542597017921848519356170247872904505701513194999962612766616082052794979831462235386628229072960566420069804963555123645861072638771536393320423530801746276337878352288236472731863169894094568236513998164648347768425602426895720405397141755628926430114143766862514063472537656853518283470889351958953865070214425440639094922185502303115355896915115730523550333551889127088746076647699814622822829810794343233933475883295238867689876210098074546142772230046491474938621856583928423227329682363386427354912352537815613563995378986246391793857037095487568520086495177592971396554281999101691252551399976988701404071817459456857602175607788427446794068678085653009106641466179041423097658873586167848022204001715936363811207344773892713404189478406769455405691190534503742385680013053005765844021224271336818624491008841425464763918237821050563019030892984556078875145159069338378434951338296489159987424724011577077727510305350523540764551206762479259115595220678535294988831322938089994596875727312644901565041059505467497528334799161433528688055751800593545450480044959591209776870076337974286695504738114446386994940501184936563496252250807658066976672734265537659642538105209432912664179675718043148145337512279373888969766891324230171240154554685879923790279006232222911117975469779434293203387021388931347909991316656485379475067593338094310255642881387282225398407170153374863385372272789719726336957028783381626248338289208298680856220151633849621421740659224909269599177424701580403053895357117328277139115930686844326714982620593026565104468254927026515186596677079156431839480539500280157244582714110640863891629938649732844336363734889002753636091207933943346303757995949039547642466242896407965563205630371533449493426981634541352548211040837169236465513661142777203183664821406625097883519286800726255373105391910651084423715390273409536929109058264017254459779168231814730772547534243988798756983588651170181817792663810282545278623994154517728562642392118110155367138812029861616145033813867510216435314304746732375482967155163187351596130262912865849495229709262296395677912717104493848331705302430090458455736795107956850165299013390451135570984023461899764341668368963302556618165298430246884154889258276149283906897022909875871947726571142763706986425555547021285974347413904448867400604624621054021796317144559666476647715302772278823350578170946022823774029070733634190716922647673392455089643028226725486939719944419555656352425918080665048817915759993384989957239652673247182785331589263181481592576357452148726459140619866392048527460716733471466823794934825585388703967144071445540842855084670223794517936607561182481111674223881839784183299199265747163770317708965424014379530569793407190763756581245663741382677346958387974373361494531155406195582812555697075043243191017929557130973675487666050176163446351514748729555230993686488272650934773545175945467781423346902723365828222536968749936740495494344608809952730186978850959792631317439565990047358744873897721943979703631703548566405923971174041555653441211847713473159896666380123545816376425868739832409178573716459475475389486271264354981641028179770190431298154288154812268871471330439077873047280185766559388288816249489009824302775239817389004947081491702383111657686012226657212078145244861079897483753268890309658108088798462998557232432611676201459805996934779766714776025204974340549680889371414259558453430517474597347517985670422775363638225146452613610158241614409498738614242877145782108344646852871677941567164371962531283663124550888172324127679611197413608281892849699495977415799831669576518862631380796296444213124058093414482365605269066594173239252533716356234926245057743110315311655205304027740144725103793631337530119673631692092892350280160515417768185274417398395335774566904663499845383321672004409635608730782601624886461549736067818131778876200750106186556866184000246836420046706206188248385202272065738632183097824157620154305946644056778340555587497410414882587748527728631296388401466488718360364920837287840957468584318199192971355248858585203053637479814013721910087526777294310459734944585705416490872956022190637011109622503762091533050954877505247392473526821678925698506730044751531630169201522711569779496965800088132813802674587528525633043115493987367162845035871000080489260013976953642223583790291957992168094080684914774248453479375857558605437943221523031596061785302316192658638037316001050773878593492104050463900600661761552686064814192789772952697440864927781556280081885249281134249399263672962486622025090591664177873999450898948022148955717008186144613685566667954465400378802296034662001665864383627316868484837335169212976065553407660265695819324222854522026481341382585979765216033002149478669661469632920892291782620890206284951797763452371456224144393076925836198827898625543498471684568084745605899991088788127701643615547788039919694036761548010380977928953626182811615832150293686628243126088883773187748722618684452686920794762830815931325624561249776052969402357493975462363466886606883282877425588354922279538823383690942433128437462078443688318029106021660933336797063660087857127774312835402439272456876944799899990544853554279704589644316653080567848915762917059264093255059128991998054691447981255707987337650972413147633607585528919743244802257799555552369347060633192349480958848121267608491716769821821680571997082032877793717048190026998817003657545748177800922854109013034567977348727964884016154002005696271471247291438115229427371212600893941658970073787455785651551392471323199399419990490606651418717101087981679104227607027355825184696552829061367255297355445363090898520386644822366785244083391010768088543158606709593861492154300665685899671032289767374806618939277099415314494257199465271523800418558974721964552079351854854679680748374075299888399810498051679844131903997420602176376459885589719132319645028769799531810891349612893473385394695688152327636996725235119778324051820658044804553241321701267876898422706337687574191018548932137962908785695643017056383708675094146414758474698495888004682437174235345090977708562320275699077950931232273361574350308723621608402894689174332407146483474936207745232262378007956926287312679902741992741062775205820293060719795922356350157198450079221945288134125301378793236787033598268872411230870642588590060856704211885575372700076218975627150608823420304113270755200885958329848379797374904088814391943990858278803082101851261457566019139207040674066512240451357763985007079233328884832060277562909638823350593890428085535667432014834880148578752318539608830079597524850107239862073765399268891292719923715726425506595820803567912751107010599056593855174241754911260279563338715851943054919247058316115323123000069435664883308714643618116923100666271478937302785507921528799158398875260255576958229067437248250600456061020740625271677767766175728982401786679871984806056479459677856666726307526768358206361945191929623292877241124062187940621951119559390007063926686162714386740762383200290051730697934420580994145373257418708652909612322762957292932471927584254144010901128730174556890141181916170465399755974796848989324583715216334057861025083718767469424566320890446504259083751140170610760346726674499737788512902052505509171575656538657743009666707170093980481656370023820471102932493552344733075718105711547708190780789759951522563084810423608815330131913448827219219785547356104471112862038476999787059451961732763765568262911847017319209443154065447585564743010860450474642610385204902220083612135795980256926583419795703974514755487192378541686110448898891226917556369961105773263114194500645403121678574947407388595830216078817705671443737608325151452288493736537178271336299044669942068199832415901872010888791640779831760729322308474947510750807221937391114343624401625967164364938506992502554413200884159748560591857083659470034289053755570081860025173082072007321433150662892482790818486454145782498088260736827935478686454893918390739411862479367482132734720941402003276508239407519725209205544617870418618486722175005632901138789028297364957760506112999593206878098769585159344551968578665041211917088746336404785321725881564203768736491242881168337511443164893593287187646983466663998390688259021221117358050095429078333484899950960632812369376072844298879237064262608786967385635819964926592399290270940921591582191477522504140412946408208913714198148671458886787758514155824120301003411371450808398393969806930498974216708389066405646512122148580270951305798648369191530789671229462981891498058107106450834344952417738272148047471439917094259354586299094550499291391677917915506211680378631834995329300612238850157835808858159241510323658616154549939751451904565546605550449123405130431020829909985919494869969602364511140709442065424543268180037150869131077018646090619820713408894543119381873415551074351434055545109568226335276334778538820638183904045054178614483467151546084332553496544803177336818017461850351389692074870155590254872111695597994013546485863822674732817559621605783599965895231888546662860557410022866066518304657057448834096530497888300720788677968729067534617957121301885719341374010354082470412658295354381238348268928600842862141702030366193076590247654500521857401086825012628305179126453318528008559009137627628760641307030965844222825693645974222270483384353829557284926661550154906669463699174387208308928491159732649138682060609737280530167498875822887497100766685433601536248214588276673484438216732137273236902086870545764521506688581072299881566561710720288345387947923298755887034139420781774278635394770336329557736861479727982823307407842969272437633429510141491142003693225644953264021199247896652651799405929526979473161026720977423013555493062749144177981589739547509571500256363871508154260434665651085383118046397413609381202112716142605939727736098582001021776669412456939402873767693614096500530733649978532637688796985614817079442795463769764168631656169578910381372530552878323961571284308479470834138877711180592367414254068071862773939041769294313225359335057369340050641971894745495215113711966256722704413309480125334931272808963135286681666701458245623355043184413466346695072485180793061567414734351274324442208246625117537033460225440634482232070807230681222587096066024712202845446481547500264323264760956349943093291175238827030356463724102724464668177964258018750814558229266816405732617818387170015503857338469693932414704773639799008554896898504221285655336273181599128034013270638498508162820793477352097245787431510296968701929528281621601190653705567076188903903373240890275168697297226767180993935062861420620589065265506825733478535678968678779570485170021702578580648277214259428004369694019357471372554690871519854271293498931936199507969885843375386930194698333234341429112863612337310466791986371147615334803333157202537527044341769657614443543531225983557808821675516865120735661719346264453739567122288307891156520128205436569592020277748806233267749587773202091369030152272147128174685658012826658516991222288022332265630996762712082762713238216726587912886381334448539142090169685643037209606993685095700483552157963463638765377268997498291090841254093556099652156459124532594407961576749002757992553812088032918982069689314454334660819593295059300014701927342923571209852518661182776737665374927092083154349294606395478521102225656570019233219997121239888566236785265747394424528327794150841045820424248292235648857724717204696764269341911261134604237558545472089363013339385109276931833943408045114073902370104453710618822964105117103215192398309156023060795698195375015822250918711088247978559493165076847673886050700392426656954002737969415019335822979397008432103825569263269407583637357918458047458455336254707904495240073909719053302843781944104209694161539340448749413674751163169202127004484106458308623522926923354567297076466121478293717631000049403935896271387301581118083237891263335435714789067760250090537580622173092821256646048096194061560087809364312078661448733759520289850200940537978001181819316320317321646804698242861786636721808472484579026347393429330197252778975924383938862843278348890529818475748803375623358595699004909357332048916534458877598621368068599565293535025164017772172734917275518450795567835938207495721461408588231413274892658470911833582877409375688501610009345854212426000934928455999783056784399956613408704284756600890735584238632579538466500970709749548275549679906141027527503780693651995790477526489621403131506226370238849389445831647973351740915256918195329499244473248245404097007967810997457910387973049220984084245113977542474901039559500243857767083077706229342852889650847936127819301761186583873084310264771274581243077264310457819265199239036056427830681110277043309657987619590177875458118025579270051498297614566822308523832994707156261326172699417728377660234599887996297713619293002778679468558728780504488578909115116714200934532828751610765958026067787610189770918729466949212674395394475368922586877528210714908918729583725949292502336933713668248747617794549713374963064704727330327151961669714166059561055038143789050103874479781037560446148799870689017481866931708933906764323006013092757486041907710391666832558093859046062882397372776895158584675724651431774944461138178147609168501653335128090784087124271511064154459186298230477956845825539642585440315620915903942035085092883144483930448895187066771483447533407004892832932267889907257200773093022148369898079902934076794293678573744454226840891863774301383848522947148744775451900279107939057712319367928776660067338266929736768350751720485764107278838422067542599380735662126314971543129333521765128436435387302914350107005025036556119448330697425062737454996659874635814635696239447572952378515793994613751327403180348603173501758187110750317184188187109724149686350420611590517320339293899596353070434889449395097512802859127488170305161953311267466474516869726512549161922085016279020550122728200113708723963179283626333291391475528318201013039584739021573727903159679012602557127191732094706800526993102039831011427755982344990030366959726381974444274025027715539343698563982873405517408187833979578475450897121418278055863650709846636431654321516037611708401645988303781570234813272883697331563260944889019179252302587462405750716517712496416668227686191782163961358547331818361097153483830125044242783297722734205458288367981203583740301149727887051856895658690515666815740191331968928245365898493365192430038477929937834562749234943651338848773671777006345456781016683021766798736211289038234328509723623810897569007745241532225487211536121748460597858598031005252730775028193745576933605885485635129020081735707901106010611419751696374641714628572344374404450049313470035448228033380331106425859799707583637624950590600853275741102859652479226189470295024792248706285820055958340570099445185134104079169418463321834814797567050450816317231146052251584544121657238131501474966740229598845258018621132908312746012284431651093847660727330039290643258281932637374123714497124455265409767087367915186254815678484551375768441849367297703595321515470119493930588358761656460527465660423822821337095343928735484796115039499376100144412407070582016948194501197564941397203799152545922550329183619885104327467120218456780481749289096468871105277977870333375921801119977282547640939838900192402609036801780121106582607238653845190514965656328632950116457166788706842843612756044445452486164228619221130813211505361594742367858404917319485046386069660007362234394314658698730899027148640863820547256866910801976279394892298531966820649190024733889745199218120286644788053457513223716431626890867281250014411727900441078441871660681470049354430153800065600008720055785929819248044998853707867517909469209166905753935442088857630829244558979529703123860386461886027277042470998351449899318316596335788537556311839695365136429318514061278780086304635368384493029780927069883004039818731251077176405737763599309331283388198716036397286280493534130867705898317305157452134997026472642982059550461800723204975135586596522553511581613585660723622489454504813655762849495776389325274139446966386838707965593509769260214865795773158251641188962724655605651393385507586580362791882456995525033045563621270792172994809270878201767065177571400898376157692429813678887168846018736937754958139918550775308253819988566102528583791664007442375559730939383480576001845180793373022282438047393057901290360306283580855939865511764007005316506884849302641565626759993974737270829279251628560369006420512641450029938598583767645294376708890519312860622956489314649391085240924393463126625172251142155940656461328426732339232117224452666532407530348046299189672512771955755548460879982855116096477324348007760918758405529795479174368024732063809146268641275521870818658372219057395818579093836420936256747906075644849979784303352036975401503956974481037122084468757973380178972556738227966816300389306869561275063016260912102319114222269053672578260188287352742011350012575841911407549270040528286389298393483622988655585771871214412962780900296397678380413622983315294936348781426086852391308037118632324703778556584891492531184452708113705613051922089772457930695995293042878205512986189432522200036274480611752464587319308347286351230865194412537211165107938124694530613772246477976382467817759318802764766973928099359054486905528709136724169399355418315248285057623947686682117427278601427281680130903733753459962614289571197822722667627194797635701751379890604802503970189408771771055706529914843730090153557999672126544049804729078432798267018459658502816973447857397950301289878849586219480032160172607436291960197451658289517382826375173547470768366432097232419958595213784499669538604676571272034089210300087915205026182096111707249743284343362086792059803702081258836629416520435716551570817569435076597271936056601062961218412999064672402575853771048245096396860611986795901951959698457238236272002114131035052865490692227921961371219594160740184245051103873524381729278274472859241963674307324720149740731998596894845932118042566473311390585952843731588075437660998231967931309096581514100517133068358889799730091034585469388303831042618472136496520487843244010587943519142167697513189729766972502633960247249749540531051899261973024451216838688029932327378503270870409302897302495880243425945736130463057352834567203126389846409784237645670288688976452770937199707953869740816210488816547773402480473126979269516734636913383648955118734815834329573941803628717856743087019912051657641366074522383734328275108406411059510585409042601610921797005982878990501120526378097595233785372917621774600047425818678295358512785516281022452400913994447562922995686075438532822230742648250522246720811175004796366621034931733928576634740804523630636137017050364229044682534343991803926838938279732951720935869978714932571072107965619669752418735790839210018368396311877351711468464254297186840129472959053568654772748939717863526506856162511692790684834936893027751300901472056358768692346299306815588215738531347594891115671751895542799343602871436592956243739833019894029603005355220270154937637737298689189553826034079435529245561918695776966621935975733006512031743015752770693964155522501074190010925101313470297556953365155014084426078558581868095884578809039281074170418767902126849957017262271988824751423354805970802197379807081966415404649054207240218062586584751052483536023332242645308480863813003406506627966006856071406438823026837749648129581869144595669961118938774872744719764279546743441125807125804693114297670837538326230383986523009677751586075880746929748960201193972443858964037920113974608842755288428818736528110575480447925124731933751210021041139248027965222321292305012693022017516038428707792190206060895095058605751480859548197863394074777496052999633167180939372087441500834304607113228157434019343778675837483389134355230105980915038725789835282742380893027503083471020476866645140372395445093649521702309307587754488204948687357617556993012583356634931790238717516765349943129385783573163257445458649320899259040488593302507851282249870677553325971355051361430041981111819909752427041312342223849970149083852424718899450342878547375516508859073271585121320283428417755286933745991632416465584547264606414779995901960727891745739960203390896677448310961455811818878530129793707584111564870947112311199235026062848255351597561707741008939439244408243143269003414660227569285166199448123371400954179074052585856899497162816807613991334368939101203457410957348753543252201499547179359548363058607805538407620813282039145398393908619426880459890559177225886243377712161664814038059258544793178527712100574902201721157646794589380635677063090096690366074892360914014415799870287775523242607358872030372768952896440289836909212185980934469944813519702087196785582704400243737278371678672641134534242317097777202358545781008854648715537633216295267700026696453886441435367774586410634839031983797630983100351434806323177014947299012487374199390748531603701663730967175417185914412854073104163167815289092770835757379385441544012892755929770907321978292475507066100783052989982026467219564897288965455429770571071451566579724073370007137681755228354750418993331939580941850983482282389619597689790109328277095684900581424449931898407969260114296264427878585439263491124354921767478095018073640658205045014438266929653133109484898274293400245964173084541363961176224963854753035388120059781290474232170755543569300958788037150449793637735704649425330582173651076273813681018076074148546652149264353371779728077547817498916784720078062886417630585604235839084762105520250967064904045804859285335528044353840558952641553959636778543741312991925623742630632964481425082146632924829264676670082748977574470413692771239581037362755261734533944017252952155840821168209925273626707607658280844393775586453411879709086961783305534185598090764560269039050599739416428166467155540816041391516887993017050816549574085787311184384625802447087500782923379086144972768663892048980374501394932298408505402006800522890392371602000166276976355867121399626905354422829518144224849565554124341052548793054916870915271635071815503661597198098884824548336301957546261304927726098770917817981461565210289008363794206596717230848280837880854146351432559580560409344619285038702744329351381290749685966341011398425073608522452267292475330504275138484970589193599158782383233930205542578815967561568100305531192368733047161210115015589515631373579628519071122408947654290575133470282731165695680213007960164719229549640582608129174521709913566921183818714561905121179372964062606240927703492118540948399847263589950903953219654086244000070814227971048627962227370239784710925236449652422487828998116300016059964183083623466992829142794102301234097455130407428266249492731532396388242809820795467585135075800455401141091793751747295898916102192752814008990148003461769511589415892991819115175282485089879368564676933148832516442668239448169472424441195069130499793882073421369492370473518602763637884512164265784468465743118024443804680239686882201784678247987685527118338240875150099636836557547293696504640068924364291131872841353309116316264901418847446051848327598808828458890006992345940378709250699485853967171215812445861191849365595326754678430089677332276548756239606115865312112912426376097838615652333780031290528283980015148944763669039999459398650315573820114561267102364689069724617679933075971743779170716720143571934589005579971852946261823398068229219715102031890846232761832605190941195699613167944508288281995647673963615535010707241424986374694818146233031515736863209116185836883438145158401559938213962573802557955571958332523870382374497489315358673413730820014308120558954017960076354097232441812745833089782541202175928577822111131233562566370404575168302744992975957851111665434226179834698270120223034111210391785965867150935683841291433645229029848906374605268858520524251614820102143822806293032845752425350870137043640518345560454081328802333904141829467184756896862586318179961683179164108410357114561298068669013263517816325220583828191220103648027285517879860508813472051661105338808870332366336857713667700674621016649121902557002179020620268158413364870568713278575808848282796879688039000415123811009364301204221726353522129865820092991615581602242740654825201630433268837436398079679720779969686046488092801665891467116202019792850226288024747283781824426689166789890303130206359077972975567920419794045761642932367757652984085590142003094060621975714206862769883299377251008254631831114219676264656272296024903161348286237372094317967672795533363935666872023035592698701278446401329520975315967774979062439431055634656365280434268908328214845163305798583649666182116359053586450997999522451385092334322656109349377004982217484417482181841071021628134248960289348074603842145289200660975676750151934955839499554465129498373229798587245031291840479256886652765198306393059251997408606557099270936842768133542961901444018338607345465629092595360416330631017158395042838637323538181977081222659518853431554151374285702381402685352807521053411695407518251881752987044545464503126747952063752355400681665914421831013636176758772744252329613401665065226363715054418312683460900141246826968891721246445546830320376393399544312460385153699987687600202610789292881355577321256204984185036228279546361247277021564285713797642805692734377129752550739230714085468725348709042228386060918465179438236543569513584000791967864332254322884746928104932758489765715675924267834666940046249688637194040458084945180085166120452367393420266659261091865153553272494464423178096348407544205253485258872290518491024146793042459771676700488034998409979902175820201388174183825811837308558576685853963022209510996396846421144627451274703221159095530894015372229086076541050898081508451224952511367848540458797241585448673501984414016929203414171564877704053532236592633464022782980941652245631754742086958229137691928563153300714332612201171576586436115191027639324193730868230247873782442967283983108407733027713687246233571775010736573757959741766703358111314481123603300815099470449669811446450339216108409552062299451575241416143207415992385408167572180014289079006007710779499577342856472454339452649773582674915605939555777019490235321315070999399723548511204718576510257525024880751486964609569764207124317511368800875399306099207806825909347634975235308397851673551394180235171313001732024512351125221448765476518731390238566626374537086743382112270970535820645493942280873854664417029594808220980183711480853672970846590255817569655304304038546375997020321942272163106374928601179619504649929525320132061354092284622342637532328419167376818942039782491769474892512630647980064687685863985854669529053819004534041422443934129966401918274070918396741837671632011149828648660698771500414403341020708263897771505504116081968100928115607234550917314871097115069758437025021578050102559173839937975190429335554776662076256126946168821966551885124476907306278316060024526871340454450219719830921360010088670084966444620625007983504241939838700059277330597977805233205819062011173026893662458090935995814707370272123183400732340136746889312032909728721379393440769313988041759676267913435086338622286015300478469127616748951169358919955855882898688246032625118479481646674500757564827962250337270562571755657898605374448304502317022413041070669342752653531067415914648235043066172587222401952801867184196342495935714758725661808015077035439865567673855622248779172710200451196101456833665500166638717889333266858394947891991458643182937124882081355853122320308670808841888194753255724101104679241921998352572559179672946657992077125352252285537707048970240925671897840131534797915474702628867386379581361484548510220378358270143077885050749474506576274462365170615871653223403962828197023527554506139792667764356240740621558687788842775319072132162706854750525465379852111457617813518565929383500666446519862440755733503435772011734621178969547249779375069237084375463060374589239403260875623164972069516924929810199204275646872153447869784814155506806586837980284109878344132796543174817658412479208692000801393556318781775748261465822630649554265126895225524373221082729177133255033616922778111834077517449162035306211964632886280557099906720819660864779905260543907152638280119779800192781088810437322162681424190312854111296461198310185183926525978570251841548436891777876562432371005625990305345226112295060641802671734270673242979251130317123419963545791291109289499328854154983192605372318930079865471418925147641640772624489619680138227771636472006023268074646060855371948571916329883791784038857976403946810558616844014102980542945660406858997417766857253458659360788976464719592438903358016933692173797863916927363539805794148006282989890133321014412293206866582447250535074507917997626611436711032946573628770693704643806771655934487713285640197195906742159367900401743493178242879685377306623998027034681076478288955784984017999822595068012966889525076901304881852476234366943825935683091897734091489264023935411591967484870828011280637210145621515600196208303333838402484636554809166852625620538670475211826103791981733929121938408041140429161592972254385053431653057059544405011227968853577207820481512059318136693436885095804339998735827482495401602805713883523373055851331948279609037645313140263353337466513928704300254753390945094845454761275839964903245848972731524230518622312168297266666696584452864413101213733478314062626950382422163905361092960475519321388205715392777971826385320371984719241989238163760398161217174782820508301669191782980282670933501118728045508016829906306357427843478699754402214764969912534981868412534074175779511745722538180271679085341020618920489902612123749703013161378472506992718001289099879981306530708080730102496590387332270282061984542295560649258662762312556911525182509619061283468922716021686355225736399933817239208505349964462506565028734703830595018712091234722140404663800992525868862081396799784808327755921715096878677147094732448046572402068627110557889627158687956747216913739236203781885713596225524904575997736719813270220948909545025553695824500194411579133414860707040306573088681186990890217432885339815798103447100246588170827416195828048979892653285006446668571141897516108548753107320523455635376125594346957564147319140302307231217349870300595389921139270112869406848381912601217805178827987164963190803512812260895013953959144959958741925262644706758359487351906716661285007216811079122319799399119191612736629821760783331360703108377972906672472953565765141255617973078697212699674363672753508228322842964474722952217116629985414381543196685066269926973675329414023806564593253866992556023335616558325343167937454643212618302063160573628315126011057494767149762899599661212510214015935937248859470580345516136582016162821811001937835111926029655901444388021858625144258223950452372720917987202841909365400650090579740070540933911370266851266250583846799748087509604694864796771645967060277836314013093067194753761015219731510010551806153707436249572332953254902439285695959106434505654886392581538934945679273766692719877962293377613481539817152454482970376328059587227562513903783828468097605971981489472126123838785680507127583195853311209628495051880925809748903449201993839651957268269326183652425090098141976784749876567786703635381956330996643416100542314060282203492477130886351516809023789830888609585263914274162700161628863987925211168476365588175570782156990859369247699570564044977470579936679632036730899886028259999049127607434674514287457764132802488722327100772229031095098877152116070859520114208094280307922180362711763280147238972793495612164335044396015706454120598892753876760943376285413639289117990425558254273683156548273310898428990761024532632108565181226343008497093555826246628711322068880939710539553307561644031732664116183649442888072200769483357470460825139262050705071646568094467811073955705260359935742690452916582165500197703795105599837916823001801923587144250407619981209671203911239825275317116489315271956318871659689068291870058856826242098432679981524865267922279210930826855715787558206440548569525442158243596171722815565676236840441119405207539972257261249673459328824004829996019960292262012147577847536304012382698527812813252185278278182299765450241604549905313593890313805968004303037546748533846199187256492296749111698540292543807040759406600063689777521001496132167457821144130226311678690414027234059654422286055657039986496413564140325497269964622446084664049114058583578172844312462881587312282095566198224813306537715600106857097642681201405608886163682092495367246910766969711190736180458781109303916864558596656116530132761691065414819563427443540766416354633942325976867363075961865524819606455572194626626921589552567177605925945351893342192247364358052502256273273038487676411044313415322326643928238360693271423333324690076164289992611071570615203700063843451374876595385652895027657681175874413512705670469802714306971855020444770892418111253097321078177766712527995575606832767126815938214045110074318890722659464101057833818331762474779814134713372656991797926164624918786751989329871029215120964358048895552842932249716960329256597506669233228849648906091758256774103499564793455486079819716931136138568948433404385880169098866839299355114022340554172092995238039861006538157632171519650500507969976183321219339171326032515404853545350462367482706156421989664312022901785716537702488775322062992641146272837580611496425706221400302511151760413781870642436733148459210847781580965495177402010083236776307828982188769476962719717159008165774213482302526423094064380069094131542003397974204242820693078478826821479972310978579111984846113712693755106078882958042299301443880737464868023026428771176304795047157037027925375722787382569892709178508663982602036629187514146941465567467294249088048791132724115614933177816427808841500021470893422308734377073621966556963500826561718099839665923170038233279683525103104664334438838205810777186773256159025181615376684625050070680011968473140517212663772939985931549426837775001193812508588584372277581191986759299577854915975799331907641226266437569221971742661030855031676734913810090141058379871909142193993720250289171056771247484108264810154598166554976490428547264389934565079782014778838086273299029849854929726033976953189865792492031622811945362615578287050876370806715264642137957020551054056997528719286623493516012947066587225398608284263118484872354480600110294513413231709882897146944509194374172014283491499178260123356620418157583790844256938878283235604443423920664064154024196464108080735972153885844783199977678619384576033783937602178763661565066763953886394005859463091210959271338290936690181910981730984338791187136285519181361260951627975641697889403524011298812085246169539303702741796323246042623506713491399150724618440389156427704220243015728352847968626015559773617522432584932762172641324623302255037510754324507876998384751844131311362485441413772048657031761316884795727010194278016667551220822402035373342775863978349525167083634847025678619212778400576573330573365242540433499784402700316085181277387122121058528086872782967527783711837267078061210680941449722163889869909714478660335600363626360565337365240195986329928191931697663861605003944188993023354197891831723238180035950738075099870004843334640895744611496804617408811458687992203838534091880593764517785240296198350771812114884950679205153666871174477823797155945956634228637818451005167780051276676942033274764367216378825717835587435499871560352799546631050880590612897198779459590815462916602781531053678827436726164070387540237570710692069215473069916323467550892476951687562939296226923978613977308027516237295627085426124989139127269489697897909253259774102159384151509196500913713763799223229863733136804655606814716196193731036406454482451428758761480203197219949093864306217544922492976878265418935214606586006696272756915450837696930683116304920308194802659349947546504744751276047728635269242508641943423864811150397791756328705619462835303047840203088461122885030625669090816952877970207262680921585472157392988044472691062545602679803113086209417708554034562129002507318626360325904056113040559523130231524518161693313136852410303191308075514353939776871165866229152810520148087212041797263339181879754591162634918712774710623241402756569547163867316970392892354239066428950514482009038984731266862020844653549522185797152272245227626834714324591856052190417003307229126826832798899821836444077065875218099693877399095083989839840052902697262589723365575649347361558212484628558755388139430015683639770994316875956688629443294422990574744747120848742760879174741170953697531358803588124533352140026942782198414339172211526777578161821370566328458445961435314869885892354257727324737696126793590053638357700543754202496404324195146083125952381164660814376236909618579003975540372500567333340770973415862840574677771600102800007201566323985454798759588211752510130756844414021318819489514278184803533729049221616917316837799334917770847547860471750386710067717881829630056510247592833372241761428086618114383031098125056160996259486097366482755688461858530912820575984012644322894869530347227319135164198604923693373108960835081365451277665860430835152767992155730704642195922333381975840755971665068476031884347160734358938439729080592166749635159668462305572482416484169416420818996725161861571636930866633289381827339706305750658206396748816244056826375035390598547843457720520291572501105696137824282551413128485957702203168417899272245002602641874713534335929504873172008701407319169010217655074376729083788977416397345245245222448326113570916094227425497451069906326610249124761257882595926006659923443799731387487116076040231267756836080256846069823912078656244614094276818904220144480644418916274728221792584674686190675676385737878945652729354650709738585261819867435725314106178730697030317493790461046988529527547220254939743369910784220937311184114764756447067318073003721442871865971815373309246668212702962451053561242066373311342027785354299841067083201731231551427789569405066866104796088888580251840358693379351946607550668888854751779856517846939121904002992428337980869841770888337146261836360053423097779569685569785974232292703650666531061119408955512461811853956331801108724809187996448592009126814243599612242511578038635930277568042279499499617280978562692349794260782959837935172280593151424514091536277025013867762526382722343359397666443871121328622312219758556007191132585784110040609773531068626918549420695865995068104412052220555973830667411607645277932105492116845698513718997440129690342297237702961133858875445330785743416591195976505944644072222710372805594189220565470194822526107157691196043899962838486333069079283711956445220422580832096172543271440066346463615186839954749980378556251274848476149587113501492341862658291960235587775804764722360259535273833351316720610288957398621574414918411867561205534958820097571360331241907041726589333844348783753518108061752037512099341292968616424281107828008689548313385558223657806226529817387822225229417825655045561627210370120433233671599693896314415171338234972353014874288089061227062786015854669810529519961446353470348017715932629856048739844009079597116209343597824565244737853372114552051922593764155868562464584248834393123465778723091885723807284855494030807305275569897722714822237455271790723464325421922279147956159610651402182717931470445770961058644040638446675070761969185700142731777252848190435497484624802506363868305615137143107974146621563924074875711973933288614512143861378571782814446139282851048560207792652725182948079359265910658109737191970738881546303780803010130591234544986104842307245671744896124828222216989338044977319139959345629487485499964680496706079377640234345472930121687341203881073003382594203611483204276339323933325436289671877878546587083514494203952138239846484820175051421567502624131633052788816154342338158318150462581228996636559644136024815604298670522745658498380720603699595569123374149087045069904120352364428867844107922585436454423115044743453173875410828138546925885598286492324486283979434775445897331366892306590618422539946621996561083038040415895052176789487228233427743926640109557772312948886846579622387865746551290835221697075901922208175252314499592326528602494406662136314635170764724903253012973696227976924168682508272515517212530460832653347064028201380052297824226957018980597007644438024167144100430555708531999946691596538933823059303555965233390016441428509643879233597311417592984712719932215657072324603770794416604238027920048720579512901361080546918960396965726471017400185598470808851982732608739479188541170947074260123759715805612244782276117157200158739275695818719794579465805685378464440202472765990735735338043110219182460078551642902988740992631476171986686748560637106742778318309588943349692709773493868393100836237931331482317668020265963331034471791433787141774701387221579253742976961729957672126222962151443207831602784483326782181841738050826364891959960295974193942999056879251263633615572078595949841335878158122663215104496378153431551904371248937641435911118506528579356861385641572501109205381815633677760721178736651958494211503503527736335762964704060365527882914011240096459664477017519605295992130615274135680309883669651151045997104168721895206517600356193860486159248052658950171019137801643639757609053404894009413965200504106455996465880832157427496494078724387229636739020708944560513113490916036003045520146032631045933115907762114517779742295751386974327310950409564888895287472256810152479723817940593513463990037853814611319209961533136658875028370269869951251730746633693116190832262782814633502992046359745679119030155193037364085835243133171415615844708681427849504197812305335626673773449299786595048293397365873601526527691598379041648784341979405527844069415205595382061212403000654609488599858787897073597310959276260379140023815376038610420025603923364431315999117411078950146428001673034476827149150684846951986324588565592403815821609373447141724378676908571460636922626879210514166320988745137362102991305835224764428961684446926567024032591716861637869712326003430946665041891426811569764028719595547220382589345499518336440773119302847559708675551578313541094863076803954969314339789331466205703053764596285124992597736167073369646709624176942553629044864160830534071774250935355087381828056453690217295652832893231309844354685542622473690894556222019956991035249351617012842115969627843747137334596470811340376632248116522595753666948100298196533538539881618102728417078022419646052268412053922665601509338608234657051728962973843591508171083364053824686541780729431794231017286424299091201468140953273324445503135738079455835665798445914055743856003158650885553255101975365120999678417264243310774171206250766598025523186297321608172348325756733192290761269356834062010719291395385297552826420304391578697334492938369090950712577745695382684331675731209390527309522098985865143049496236565503067068957128442584554481479214526941630224363763976014283468897686047846867193195042724755034574999157061439924445954944893752725112186676051946379520837620144397437192838212017670427505032463783566865784113581914059898652404976335358645311720841687097227532990251652956494319428710213967357493746925282578648929765752859549420261809572776183158912536918986827136152334983545834658891012983359844580914053175821033521388227642848156932802851959711160986016408137014376946672396226407475244472142599040975779943618389674614316208852598862085085501247320296561597082909705193290177957046035483122855371921370719702903776066087528349881280083242703894403100103304578455173376730344652993730280249169833405965220078293320095861920027714987355712673745951479432549382137700060883141183336502710256007058003728773942325439007792318735410451504939763581912161382817577436223276975400835251040024639034355134115799801577385560726591600101407231875847859125683511746896951517505169875137001608548405086325153013801991077831679162561128774852994140165320552176419699733194102133768529359477570652082426946299822839580452682176633846033596286776249328950559404499404374511945765727426708469589694315684543562541044824161686759372387305592608788149904652906148634459112683295804848594225817852547229686747526452252807908450899910453792731471550605936994692320328605302601309054308240239351029598802924661865425944524939479614230981296116572409493930802100948833047678016903467472725027339103488064119144439038337834824941044912099131500710470863717081825302092263928010086751918942659817929254980055089600392806771316110552573013874206664003238144248515508909337195769148067350150906066670184453281226669525009499872848074737610804726713658923012467933331111986594336719257510478989866481781455680109526216889081210942029761856938096888859555055846584291222222446171339641416792660848273279435828245997636702733726012330836111851573805535234143463450433825980383907315420594758826189439249915671234795875219358187081629394180701658969858789476408995143722255475872100530404894725241399458354919436906067561533251644920862000558342928385557742563812278202252193060859730168549943386195714154719369697401803864728446647263557176564569300549823894465345267274669487784348765014144686168116734612856673992727822000900645230411917625022584123298088312780127968882653342401210478143024793310911808241244582272514995734832492273408210932329404546938514203772395263774846106140119399159727519562999436317333077590225555591599137650357589607380282704387344044023297786136493480985062978673410883385990712437225611672279864484351622523615553471064870859270210935423735321915654942309031423672309342410361996625891008675340531017135794463083158152804985335688393925143957488886179600984718515308899746984717290422535979634932629605511763916874727371825680586863930460576468297335022041756910186555613890037242933390003248755840560368742178726765502557782419252528719223821570340915683528442457600152587440341400070854371749239566811951326272458356776510696656409331356283058748312845600366464286508437255848450064357770770985055092505455022480981342533929979479124425046262806116628298289151943702140932678231288336596980499860292294248480127732765544693722886504392257979780370363564721462670627590770618277465412389889289444516262336241135312881156619364279804772914291702629662327459149521190857713576221246133280828114414324267675426719604140379646438946480324741555040886954408343170961946456993021439624090190122387938333886220700878306418541143219189750217816505721101797141164421194651969568835699438594699299289371391128586996280904939206669814162987360616939442071955940542856013743849109427645614618629786911613487846200571172573721874507253985576978626604776413575482624708718342448575197531508725461047672711176177077650830428025214979189642114928789850288807119853621421348299570623682071644714824129488914007230762432029072098836517965428009542189916874137475921812525482255713749039697949401678635183891398298352368472433657715639667459572126043197360954369870023396213194100128208932605294810672038224552305690009219888967732693986956286397346009066802490173355733192164663115475583898298784736110481930460360188369398908507018777089414722228322806650214115395534739905545095660037233130605663329589648387976503440549408894872632988080425280933561170164752609007403253934147863228379847468059236893507361928906127119337926193044314634559821686015637234674852787416216704453516479309735996443424929976618570888635351531353451144773717269478049129902923990343895056172871237008241648347656390051716694195871792886478601357949509141659471942435856529769268680014855722520660432444696492860652167664071368247537358942427802090420063525868556798694110716453547827382590275653295426419469140167637971484412264001743198708980398774456697255582128402920183138885022615763298877899530180929734081610014047532813757292148380739336770049426213297627894847926330021026398824140086995633035100190874865283348497609337180379152487599198319126761336577344314563786930977309750337824961900623149733549629394452242995839313903586308484649779510469283890219339327520970460880497815337829813148072213193608962117082091337880199596616535529095566737026954758773530891587715328539905381951872924862677263497777911267681986644082854758701682127627340357043161942523388614173061023999758811953625284643566120169126400399387985036416786285607310489585340622371549272053828539053763742863534787893724733401906144697772259333664849186020692911449736204281820993980626182707726605574296702452012166686945637317795995138913920982339644282452335375544911796819595937325110447517654758965951690019762421489285779278716686492790032841790438244892040957683452127309518474912984490213922635097598078681147334725789468265229258340951060241402136788554371701446122689326712928018651397933561061635762657928131995381849491404184067700678389082614995517463325922516127771308129942375538435377009373136824792069739601268764284151436318317272984918413377058293291650724675704922133095985755014285930274212750766410563790522187408491395761139085449753840555984443902827268825971518923612114067846968412639014069505438113726704523083275700686853238303826969388065176321264021442697255741713516508318321128621070910783245520707291928957711312583544072251470984376167731991113869381714065404461541927177538831163676301446042316433356801807609597276677465333871397699986543209398938081579165277835079031682516604200193221063720011580334522553395546428708596542160537788742137355760408511387021294623211921255037864107218291366677908703332394815009969633265763662405624703699177819333581080316448947244497515493136847263878498539246906652498977232359418708122631617999446081951489694312081095979610373039119567394613129741474691076046696173196854792622740220292210376375595700618371801846412792099585801649286196329413772036192282411203053424227089469385015908529948193545046096973704341587208540885592075863565065602343838762462548591082173380132154970025762247948933255955949382051353709223191466828047421023740434230288065458106744059963907178397915161990117409970318395241919721357274270208412400210325601425346055930469307881974401942979383454264460405203702290711607416310873792049260823151901982172066540685264540365223810868455678741198615191177146076261331430515492658585745824962124250403094077653153811430930748634365785750981209785433470956705407617619569276610706127611726438203649892222428284358761365081893973372928735360300402156942399544819859336454461510422971140260460021213191746472185471820512837664092991414229626985471067423619052055535678527197073198436208973124590262844615316254057067468874888164254444024244044978821407456625983323307189773051699193435407163806603447734986276016626576785993132858160865226036123631378486183203851558848576706454746270092727996993981591482154792086157143492158424667967476261453098339849818607373823662029825071386241244678663660495574769397486734516890932575112016158465844577315846089697687938740750069138837528165416781825352508236863849428768826223134812460749261149564652684220667703511107773512035664410409774256508862107810263103750557580397576895036755712725054712248902836199945178441523091454262805531426954315801251148457835612001280754294418365327939160990819986959806106720416714572266777858981384160488513127728976986434854663074251292505423403535837867850135203147232016105105736927365216234173824055779359994196527194038468541002791435477424960236693701613819356238172895590740076922092658737252914055466077548573758560842036710040925226755852629129629841782636272795338031384854496843275437675068322181125395176656926642930875889704945085907853917879466000373143326174833042209183168987479263196822244986438767713277006182033349718429081942162954851214886277076812027014500355632625093399658729194623917605993802449812247875284898762301541047377413691778174970347247091499675577661738389398000324683493417270564449475076701352991419154491349815504086521398520711884851164242381316186997999076074982528453740371939906372286308980757531676002534039155335530312897490582748116064052259232846816012094206846323419026351737022751239207454580227583986931330693068891694176445388011775912148220455827402792488722370542108689935440423573777303527023056789256429743453260997282974247746132539515267610105682692533685878815483901964012756568101054404790205676824392195038241489808246549477142815596356516984713748101823625775491588007305010645645825230203051385401692298174289611234162652886087354292876319792481790167453079702913171695332563644566915452802158182628610943531715488484520633143409919521297594659508800244138565874962031401168406846034471031004901539093691015233405509515281324606531572156549196255595673972879801650458147306970199318745223643569026970465472470537369594564055688243257813125147678470944457889191609888904803172032152777435466624770992498276217490267874888790275373235352381170998436065924010369253962351917486743182291999472079758574344991424514922970219419988168772480730289211053997034256679056278104102695290610130706047195011361027500793119441642412938597020390752347886247479164748936281388825510818481284810144861636049941911684332747178577089608776062786233031456958091400120531908783762858080360319140405323256096786591081956009082866074916127324806316082215395004443588888991840572424689138926242738164819775460923197807874161632095535641583778892464134783829028082809556842607183201521476319670960046733939401248320841738421009085350314691698277199156244192688623891423855820137513250873961644196032085778022351136892876590248791677914470515473042893291031619967971883685653914554924947308587557575280185891680868333284222868315142934076872560927701100859127787036277517842437478593285453355363298013759180587752744880966613178869213535649625167457057118115254324175290110206180199825725068581038852063178526814434856127384482246866926550041224175623848278647348657503875163856136643995208460376029073136017728236340441953483413349219680738074074572256069566308785036086827167589661522756839200796137276223801604392241673678002099180494011979326419503619766952012620143262188918938915745420332114658935246566061955680717927267586656032075592917341183170356533321200587109155396668916641590404604181407519297134307094515413074947990425365587584825596301012434315840768912489339380566877960747645507537857658948880048827416161047585027504567729666130314300438032001609273107633150444509415858583704835230566204346090171512249481626022718039181797431930252451792614571881251868864045378341087510306423216595251113288782525233353197449449496040650516879225106923961485625976554128753682079649452827712940334963619028517743713524486097481978550648487149203693625382505138819161059927756614395768097110000303487339437701578856460306056757599774651476924292027160690138313146938302609244544392370033143391344549183347326653046534840629573762288660026911901225685672328837078102662363411896479121038267099062083233604898982237380135324026166984550293605723018740038533958406019829398526800437743216363865693193942623008611745358229036341390885475002234313109067504232893855056670883306597014855162734836358607470487040126593070222669347563608872927719146533744603232320765700678702229697707999873330255365846703762818294488962874272488415104696961549730971426587769028139956411553039820037818631902835411113452525997356335179226272575163545351118831197372375997009473758017436548293869560295362102431568711726447440685407853516074632519387035284355992949796070383541889544465086945989218107958551466121753903050366567829593985198050398699406130561096445271232398747477784975560354076511824365820528060949299282307701614564039570772926962790957530991963855137071204056591508951031313835391626292723166754084133787352487058267732947304743158467419876458318326312175137383443025450627220279456038882084711030064698656045668609334028649690409330943104038447516132018639073955961450033432357750300984705711811974084756194006083311024993132419712621413960298601285854310578306307952277134911873538065723275744170474098551613127164794836537870018253612026462657222183289604530352734114928685641976492202519596421645182276153933828824203377464853201764904267785143981705626304438664827102338470532054324051946963495519361375772618642744086840834886931834391925516457286904939016951954680124865473306541794802776027599864101255817796927186805470886240212402438058976634067355581314039607783094530280593761255772308219397213921791663702031410660926036316380214909105073673553376798262246498495599195252772927702952447405523798798357250942645114561020411234305461671897124670423081566456653850417300127032465976186556111267810361211268049665834311116895768326460910508289400020435740211339132624267347186011338436212760090753387326894116277258532661836075244450952828871099402812088269776545740864458594719272237892907911097788004370967503606310281467248721931363077661954113263346664042007757945703770742463870518565883746936792802177032694977500293868598574717838565383254414528457154830860679338635691076069567836122525005612236027247672459250490018315724675662031218854545816530071549307595407694246133736007113236348103790366187735831946602759237424569511929784229107677029454024705553732379288321231163636448997342095058188022224135414424960800102344945203176730194594574828691818205915502070282189804634479023235713779052705890938299649572230283154937905596507739408960849447584613339790206268759219948780196835231253409351510932247566700667159941618808004929987027483068843533370118832899579587902495070028514896511732620142589578952387949180369349467182845658947157414109997276600995472942240060211614932006834179831224749612380502636930120718149593085033393281644547495071022862339140754888365919702765328184138148969351048780547622270830834978541234890937391939646774438196667820245193665734467654164543376510361277415745325632749027049497449436376231147225267581929321964131807870432820454850236323385905125975376269251686556770104784818421940161929932833889942246319830031851278154626971562915873418145719756879550179335736967151648208781613600827888084958958543859803947051547290881766305121629320432596623506410025611352541537195945710165830143370759016055937936548496911246210693423310773170946407377665621995072471183485885335803131994608589256434303509766898514617536652659489641609196882003030889294375709270268562711231970460575926406507254032073192649468978072716526150165526248249438821752223351619708558796208679433348562592126505456475234279910310667457082793128772881190366668832413777686839414702887486552668000032096942670440278232034569357310704915660323746659297307812764012238369863756235643205629252419744011804464402243520117965788403701982331545619458275941900731086185090292730440209568053209074952872424937451045541848757305579593735654765701711231393388845964744080390524661997740892974984966927294943335271360056791159061025555855340226847342869015749630340503646408533443839021220308579579018639823669550666212180290366219895528944021595380880952992706363419453888095657204785491253199787800579793961449054901961433865015221613624185765282148905516401718969294400606659013229694219967525648550816593766248856172924434039194158686950417221814898517738151598280625526487991838809462280081947049677574591929140727810443915803361208814027563226241182781689402404193643548929334582924557225380655394816615492834737312627019338691975357071065168014623548142330276986648178302886806178711973945242142226295978971561915539870599763436374825491200710571963047882947186011999739605193942759386371536724195931156392623172598921180862826237210750622474395462688352670249199364235820878473580688075393115356305204393584270188363595035327474766593956959192189413811169562344986193573427473726879354320738592090327308738218243333973893111469062829186112272842142647890957389881565219507525790114316360930544748332199402512980704431576778902850696546224670724764843847641105381946751088944301309756150236759913982175788840513148496133505652877040133817220130310280004685737005463575438339241570948958629040110894605345852178225965472098446672361278359768580441841428596025695321805045577494977688559032190804507686259755361948106894820455660441288242033366699810183936371272896131413157079233735620788697998393412944414532663510590750945722366192663745656500306550584252411491171472153383807357184880863628329837021832573310932022445509433297203265970334610690445195449733945884009651427098539319744858257683965197269234035116293665618393895229188481372629218780908188620593228878668206452601477166210480340727272343283474267386657148686198453923904210508195802413693939805655279013647695838054637586402788039233319238782002271828469359947201188807316207672357433002691923774224399791788672553917697474298585686354543454087797510737088940068329348568967345342537658193360288685807145327340816349975636134166324360072436090722915312597338667536947679862735585714155985490274004103691749763446692450287038852796518130243677604924101444016187116917577164910271601524069853711264785152731898662477699692013571650738063481961157838902905410706771027141936965096902795048495599492637807988360479417024020255661214105178407933323055697386856481853291227509862198826128589038321999472730572111526184016808145750045509363455973243483033538255040342335484302089798954115839031257464597879551443647462122813172618282931938148533411909957272561675063635701529064096516098819857729919230624177334829178703271420564777104036167953887093863067873370804965186579374746413459944033224891014946302508894538252448383596650713712280914742252404196740355154645980623246349293524062230600451962244301444044157773736647558365820030971028305874216595042260060960027883842176681766297930699037308324958703396219528435956618928674306841852717396980104106200680014455432630381410814647347954586228169637665391406594101307805370067958162515629001890778779640174184285039922696896081645472954539871365569762139521503957159983563203697224031162890002671873345147713590437095180880968642467834593536277622696987581518324353938204595543005104783396608581882754897782223225236651098158929369834345214002639787228334466025696891890237019677819347262958226306748295854160763587959240389586523510601126783006309628142844201152129906356874446316251625691130125921861802933507128679314259460355752461953825760533090759117323546421572722587923914754491561252878093821503286987552011933048149118728829004603269872552323491056960978191340578333028120260499795619951189926336782443911778935834719085770021901570545871708825230780691796478267721182576708927700630817099193783273246609847001396397186036851980099509887515242290463280677347807809624019829755442894768908677490835673068426704306752264950986905236756359766739078715452588031985202594507872742728103246899247191348541085075153762296905344824384035660723913410437463224554182600217635666162649350635975034166793421338203930924698518593995645930137332362382783648877833287930363004451025169359972339631866763766069209241778425582422062080337619407215211683903591281966030569915237325294594287957840716917402085542689338646069680956365641633591665340940393385761975965541260332578867276552642251159364899623477682222456784358091184523311513049040123422187596496990402425432311197434149032774820260752777186930061659005703099870930002893180220112826508494558058479575469993208826035979215470369324792709833537058447840952351916663668812469346535550339467993410346287471384936955346618597037038675706012914073409676086527087474329349099346253281548211968516852536482361947032433939353005765885741043997740874729143623138735024219004389371933885800772721025484017973085923638871397561499099753395295597899906352062929950085150300777780109498669118102225717781681389234849394158775137727519446903741364824709817795194679126099786256140327245648147723682721071138880785082523508854862903745317324756295571414152022302633878292936911634849148486494716239431685362620567170663054204286772147555954720540598841596299986376002253777139899855056134962074946244797814078285612791048403735230724698622718296533574378538093083313810631700672130561369984661080620525504888092931005693752707742557016213169802660331984746160073183079007724157214929902610404491708454701989643388158725056311877546465735468949237951162684184853070489989541831494493655954842914934756363822286740396887391095775418391432298228477441136412909483173171077968170583762244444009288665693398728064910038868670836825616439136071776557013318273758931234987863286024682394576851407270179894347883875322503262892048269348717098555729593927913173364136594219939020175605838022665338981070186149845725916430235222859132291047729213688622486482948356261136186455583428340472597474316234874626335199127772952754374049926988221917327423678533615921953778100357627844962295848262871673317547526070567788518796320119242627671354888327294581651885800431673791199767026497934941681446274607100226295903706347159354038744225197864791248077415516988952478618599534625940211993875118879403198920604916269311407292421034408909171749404663073833873959710914256387995868814985251159101148092571167500420182432930836421948771505074832626358065730718484809123310463356422620285436475108906696848495873158200634794301776875872388159577636859688454199111666490728611534736804861297095493654846551542222048855552380048827482308340087685820849291644233612786223731967365189296931600289804731940658876243396543172223596536302922299714378550262257248776555840004506309230448099593576463128062972426541106767628013896078814436140905491165493786727651658510965249031256303800265800966842288871681465609861157004261094862601072768517250378984717280752652758239593475677952463040212424259321405512032231807793443168490981690052473355700273735854164505974172816913607976913039183461560784831353641041666030513916972424813993132175756181755723368233269661225089226416987945622826418618262814643215082610476678210262913384796594591893892208503472780627587964865086465593135096679149355218531552286653377603574260867865886331732682120544991301331911236959019847116621139998478580611338574349044925249935304553273547874797839493119241672348176011843601779444528700113034281999927014698124976131490804255216153462195390148732308998127502153531035351096921029902512924896927167132181880226938831581671291318789267379181814531995656662056549797665263340937167216338067177958957950337764071855922535374492734777878147999755144581020110628477552941531695426729477956374425745285271581578627506317731289677870738881974851618400374869095199781616250921467074546628426746504657550983390338536341095949764787904087558517460647684568414681195308994378068632348241519007236424936978327756024115628816233773942414106406822922092140672196711973206428823045199533879508488409732320731196586199412793262096050813863840738649099185000206343005617246340346363101430803505487964287717824777056523324259478114326335362053190378457692210491577754555786675445608127828106049231119544000914432879948810424546745225220738713101321000234770304070381842440996897293027725373356574562388136139393699565183090872819104590198822526952383917634709105007823904208992192493576789177651474168086163347401803221226438813337175881294383922759429500311524380190745823336252609338316668225510155783100165651832137253368002619789876697322403936814400162276105284727974183538513439447825183523759314970105417276240766786212412663117775073813154801914519003748739505133777037143130747637752108187209438518532705966903944065185577716159826694021320249772925570873152346099982618088691363659299223165153100751749526029187609687946116373765537902240730751740642196596089732240864309650392812369274105675796682435722030338678740997799076074460178031031721749603473866637976840705013600640149568688104076935788153328609492977869421835970330045234073131276803870600909649372889924703425774810149288468247620340986772139581647309437277940183010293440225438543033664433138677573700833597451275035308628291658591242332890365116867581637638833110271377561475969024062690211290408373693475137893435262267244329866166722710900469943954136383021192426956252766715569107857561088436038049216654885319374408315161839605301439313725157732114868651485370124530782984164551544333323017940076039849632788930831671963348587876200152972408322781173600456166264770817403807622403819841050721669486398210869750497214979686516731096768499873567010639344137502329395643219000098491399826255957123472540505473061552119965284617612879317680348929619009770182230078530277648101708588187427708369200893726361906679876852691215300390205592018908071560652019255995486645660211595559460162873188885706208327091043443603364638648265352650345464836376026015954086702729651727877613393469703107052284179019763878651024415650256629031477412665724142184910369229725603034867629466474292823609332390415963795125821971274942915651992442167542305691990882377113218582639828845247004874397019078336635489773470362520686457439247118618776535690785953299742669400565719916756742716766710241840787949217936030614101756208539376821333884397644269572587249837175354570822356281522644652346672108703924117566991291824599871966825057664657666190273572406631696858586829569338067041505878108717726008849978919395962914483313499090102543466499370348967128391001337457196165083255346411322268880831823221406101129361864546751776249386287419556274362259897862653885250316784056206449355481190206236755114333150566521737689054630967472002530225777740222674279542311042493559801712990766228126383105415246470073974168013131174471318708318219676784852119060655715244606770314944588979591309732845458224893618079190854571234253426150181401111114936954071895735913705492501782470940230954487318411158405880076244681600771484416335274707255986779870200361284240661123505185530113759969595807141592414571177945792145704410718139818108431902022084056883253675482638415970235007314562728483974478982685208493561004543220668278043948671311580371141089015285617291972412464656032885397852935434415321024094067312945043950198518321451048381403548700381110817447124826582679424025433378961837209700524834595326658987175331534642291584925748493269711106280411513692245174815656227760504544765558276292715318859631741406722209742429582357424711814378924176062375012203444155162038891702961445684141436994804133378982594218566471978226324090791323424153809211795365507180644945659426419758029039695104802848189952092946356456597251561732447671598210499217265659727607024875567058291277221623772224779709821117055051214052632049266160464838449296118337695414102429008953699012288388161938914648270075823387052625861059389920198550525309128433392646634818161796256677259841761156545875011752439313432444990915549209954369670491487482812833001892823505298851597993209113720892801346430418382629951247266536144633827505864782156396329814529159157309004430925702050188548214124458896411362524843626817669783099656086709094347105571720050101389491829273626962178975788066974774356759617308235951839803675686713778004035357341221507264543545073637879592552530368483173471854493989852139504443958293269261954568945295140123404223053916352021462940495011994619416349673441546585429620777936795621197886227656327967026009960412249350313934158479306670114424819789900462015934632086120273218684610619883305400558203311039482149824910554641086775787197138541264851699643316453655426369621102432299940560234489207882497801791448036401912993500252442727980728497665192265737939793018886043952682632076120568539679678754215321121747407460200035999665875019965557999070126166653406068235576694753772574835398860497898242855682133429858461518997468977474474252307544411755104233832604681125575778190595647554610838827303891714975704187185460109306878036899602152604203340433843319139048613794024928547089028284554771936495804949422564497649876437667473601250606322604140595622621913091959632659131513460724509389696796454180827513469497492441276799959585518084683970178497447650303749824946467185683682662069385736682654467768752804375084177271485221567177613563508568117701478531219650340252192007459462961787418831458012346097211552618731484572324970642571393773257303351157785949890540807211578827601591122433083664021473186045702161361434731282886304975260239161263380700290277714220894972219926135284630335808918986877255751493939121976103054337153503524457678483205860424905350744239074298313249638821773097688714447926959517824896897955762499843377120771191310295518380331918770894489589057651824164810976594025860542698153336287288238865965405828463277146894128149228126700748323015881437315308765457491561645270902721422911377771881560371340605017596512929568186801270618332178200031223968547810871118031098011523637563559766462044441233748159734621339003891354583194764961866963796252121446940326656471731360214658799157486915386212776839954015143815892204870494808149772444171144174855966449530497694060594869601700984603607736526749140862786770589682628641006740183134297316302702440713028413635136786380356404259149334772476896041929181561899317402915618852265292718244578638063469039578602318957497767894622168004649845173749641973853029033496147074197261002634843270816810331589053074869017193783510417277203461898296021294151153907038961613587262029779376874691185459371818529490414521848636312492986283676516008450680296569209108612114989496499577703404469506517218196187569685307658846814642566976713987079511163991644573694796260294644037499417002438802083318707026169242373965120694751835527017718709979301121548796342038423525528014471169484302417208108492227505924463471902684984132618225665334197908963173910157629329952320846950960524351034099493366029510294157215133472531416772956792588081088662731179733179315978367887343958171602445238291758860604987566944772816383199590445815913826696449761260773158762949311753913535646870815661323696158333507125599984244320108819660796664443513893629212726411915375608458270910595864464590776844995078492985267019542138453056256844747355801360628650669322022389984505156472967513309043031004661944760538237233232443626461815031764285565267806585293151866380200094342698812315069626050844588368258007806394972222777561714810297671287256931103734705979907445103251836783762738782225967652649868937178330091470808077609170264134022715083700690296237190170135130554757485962676192551147734329057464271917129064919901343176851533984401677135088200940150409765251186640356753955012212251028344537055923328396632912199370540619101112907025823224828390682534039170370466551632879673728941321393560873314891543995398679431829616868555433674746706187891487912887268439381182059529626779157455880457776784713096311771035355431319138391773315569898067309568228077594313398284063322890273686855891200616489814640310695593681415042586450237126490794131309111989750506441134425894993025955167563211555450253970845829923748346215901036843418960901015841975724159183470484510939930369714861675852125751376603647556445564631198815367914693743283839880536263098127693486281355906409125442660528463253964047805650930604726888891767517255121746088241003026098683556775863376896108997368560132336270653917894295957319257692004969901881235800232099880148571666905219110619904852984099461983893558635853445908598555470397740612683149197452225548473222887793421131972690162063235772131484300967691801498470670488637349852654610822447478007516706797115195053945987477494392414113712632380771771315597400722248428261186928620744394966322528188758538750324654693334533408496713623476452553302033322894594163412613902349227342704883515095228351032013912593870107165560591181545453575362332114177209606126417663450645028968536661228240703842165939290548866762894346562591599448873390696895850685063671042258377903985088347129227111933716256971113117494441581782601780675862549267544088085751403343091847503054475422102579586508591778349212702615772711750143341521594334035273583448902755585332341823133565700283267927820854228856484191153334773009084219686146136271320056954815018422246024039498620228524098436928999323398396572599037090641263420637503182660753096995171032367519511354394447781889153586454824632357660150237441690430437492486535834899979222533728914692726331006606399082478116999304149431386503957619855382740227342817957659476838921361922970718688788923539248633127071297211950241033180330621618317556143414756733419023577854224282471409443406742956755125738461729308271571300193124534338619902546713437945023002253088408187903468996995177307386916358620103607796329235800443018128140027624445249727622684572401592610947931158309875452791775774490586698817601898115843342332085040205845783995078578444955883593308666720067497248436981115483415136714573947265008379232374261320317750937390457410860393661072656710933548787367227712037155029947175658925492032835703627489631197528688088304325750920587906784667044166895344818508687734979756792134683232308218203914824715971860031946029226625037164763024698644436623615224561929612834450142167922500024851059505366237775359856831556070081773298775027752880601034903547811186782793676514750845086539885700939515930597698456056498630341292415616774114137064770014084791282159461927988786968594693731649353306200863111321724592962557350373236786024039521339331836166650649225380726911251837940918391574877347625973899763071293544730405455908699352724614014290915404240508169652227518302973913078687069318077765079768175624253625058351323015356327231945463024101848274025026930988281622244608137792408308332853205180104910313552561725234034742869015858005479979841669022832027521921519212651738700988489361540259833020001571061038616698201880941535053134917227926560272796266541584027601941329719518890759948046497353417296029638050236947225084699546130009005726228090989896874298246569105663478077392607103301066744999846089440661521090972644123249878698090504633976751243771703123268949627165196840980926877037154103134276360661969193991849786142219086050172432675353722836562882826919021240954979446186375741254348842574188356023314984607354311688035537343042395899483912237358800801170592061367556427465537388116737057336943835126568248000621504512322142892044377760176724656350811534645792289216497932961388461402361949364480636435125492028194848204749490261667204769275057785350076800309894700665166625568731636691869065380451667906653436995209996478821520113715376182668526029772974121540234477764289847285409553891801323906043482941049071873926882430471007349813686082324931095515374139606623589760003667010401200379635467196414697064222435969689050559568264177849175553771267489071547402795954164309826608573062075038542340015909494967929498502891557201983723754648243808035312908237225709310911171638826257811792331462188051034182833420249422417155475162869449544584446644643397271147821372736599579316978265401838896225528114844896245455257047204112260377917461104507429886338736255601599763527260118856554034319753477347243397747699574592631902680225279509631429647244787388271069591312082737822359367753830782569778655792190029042393676903663898381987432519997512711870898419425054976820577053511416186633787529900193739291117565376408352407409077865160108947142273940298193249143580696823071652481373964065407121242094819749190361766891107524339533457306764495262779084572472234861957920910697087936839666726833211706639737860244583948739120373688818449380463384172233480256207132022520364024672596302807855594775794916092185091144206282851323383759466075759027657583266078472291527797186775176308842843141943382625928793547190927594227652649134269456456798094207570555447800942139347105841507785499031438107274396893107456463475154470208439604939052234875839877870062971994955691132733367106551993058648435425828318262823712798627020353615390619859147577580928569894711531584228117175497280153780103346117780068904833808608210386406763238544525996926203026731703566147196068768894070377270440199116651948287696560812014874927905141495251468796733487172693282433513117034739335557020274520915624164058418367246521237207580321845232126165184417196910482632773580851896400049018543391055639756501011052114388361701234063641627103024537564528010723632156038499709503688662571208090722350671646270797176884594482192806938142236977732195081540994301482978211211058310549792420820448353151412029638137200541993064668299553216921105678505614890874445544451909139832435156883296164953264387233996517104834658249218628726131725372650454778398591706424946732549216930790044583204446848522054646633804728309975675684616745999727396261760624220356241403660943367567586357605919838933095092722928871087998075649748043334421673021739220184003340154999340618489026100387795083082013117256480323955827805438728425972152890446837912409666073688278124571555088442044933717606828404597670007024185127585009396324415716657215219380306540585122078558035781621265858636197668650550932078480144918490014848618782042630251962457722053446020205574962769249635092489067369887172559968488302393599426776778761082905134710623370819044911722328455287040644175349169988842047686148629297618139463040311243830991789145381808739959751653924385936565335481800696719465170363305985767955155332723360227136264635049370688402447468770137328450261425175731508965051717389191678047420620070223493206895671934502539612188154852060401056015946632805549349861055269313723092026336829196572950349370575255978013073263987255342566822847865276915737412221252653518972166280227371794718390301385905975435377678436957734075497844611957865664535699365648385928407823541227227922430794598511139619724532959539837404318590733651321203450177420647016599505543308192140055765692545951586966983667861071304201868004746020101994197272816110001526078364972991805083120699340159707474524796154536479850033267474967006040848662574196660057684564545557459246261185350928557130421011910915091515100538066815259193036054907361798594520943699588328868390298850447007460226383959736987346298503010439906117913715229188750494769984193532278760545291976225217633424154504484053515587400972625962740011344020376892723167005444534553863413078678826180313340785166744465634237806761249114685283899895365373339624640353545713155496372483079761684496172653749128304091632674356220736276088513965877568998123708700783757553491803321764686087767209509528481455337984371458241977671713597634650408970068614481596946329238176714587301724101541678533577275936409659406208775501091765395717670045558213752320253374229188870908556717761839314128488184622372590563591308698089257941047365916869607872624445989680977481033647700565170200899216224137133894385991983519131972244637886640099271053276939809875130507834336061001216996670981366311570430707809092384192517500249849532654471180562586845641124359531072041677353749762670570421720154924361226158296157219741638138855954381262453807734995627199408986993587165720557164276150607903751836968932104996415395391976831419604862736059482169640722415515655971671179025411132776515501368256038147108908192055467442461129154759637377188753487141694052995051821032093026274255968970307928388946571871422920680541591946347344896127600131805984175481718620451928959031695737095242024796199085412720805065374241675068519155420367737864214021276085568159778605079535100908509663215054549200313802734728698939253093949328214317301194503123580539855575228217745002757896681007608941308056191353983788298813021424569304179507967158258577290504288720499487949253589994342549073819373385796793009297169211283887788329395698270262217371632369040894861743106639135940347900964293692771320213250639669710517698943388366431040469866275175434363520721362235631783417952216184055460989797349509809143555177667308490814201618311651046521718122740389086901701797707577559430331270820068608399626021666907465465978481734851819196986343957871488787185187781012949159577657617283373913039033609519178301631367364209067613459842738716856524791742835983745484879673378554618688293254842400170387224543719114191269855001554862998166303595141965475654088657147921878859929403351946293861643999706663552066712260560129422429496792686512823996637823058650760534653051808850546290150121231999075393697854924961764268151782374150651094288441843016597859597361130582290537937657965454733305703475812803294655744270705087260065797836708411977322815153791806638463380536230788628659723709495731953448003072771298923766510226489530424731591312722314951751145217857900343205836051207094163512734733156062933621682007949928635919369913419746833416483186390177979325107081370207638179029283909803920340443004279512596299105983313613708801652094872143021783068383995082907949049977469826432825325059674130299555129273114220860781673338047561369089488101295530590665698365333587688530419570942434948875259871958650059553684547376265181364025585340113021124463397334064895921809234328116447828735325018859719133316054774789022949907118109951511511021310112937457010630382433447535625844691407814022013324113630031514782838235402862039133487491932782034483205600008652157847136367962607007941346812996686379542325087025548092699143566216748494782629797785201633341359414144211043987402135889505687927730971778758768372709038898152010298066921877397166193897443788863014832139412603811161623036104547828796366256989036762360100027579760391680732199694440651127333430262017307534388799275641129537698522101063397590741785367012571851635292494395427970019230628880956697355451455913551646762605553809262102004820683180876208381645987392516926156127468887105515329398653283194608534731712732449412815475008792521586053107457080599113880932284317372175011144460068884986973185122727073186602025528813122359985242841553904140302220979616828218675981043036250262841267570584373591942579005083553556678985271701712970378626134804654617611501210457601029797288938113649709544319920473782053820849735174849016478851016959054692397544124842405325809334801532845761239993224047384698745560932799512771886102501455654552439654689279368441964971619897288793652711642573195402286627801936319495842523207792871278302170532535236359701519832621681304639336561679670152975226823064085966575404966253670851402757075729991368076286888131013018838914963027976564110424733725055050816947519684003520878478868204059685248957381981636144363853339350935753790602105026729080156291264970928522801470444027323817792057313347734735395309444104812394794745600405257582602440100232534710045424556668477160747349922198086751390064363981956780236969859463747785226096407090759258744013066540194169748154136348364242962468086451780393998553166528427486443944431270108671995697537049046759092834891834553060805076274223799567802386952493563999064640330660323275873778650498924163425281879381449816823697572832274322773832065007666866586994718703795460870505671819192009916045059438176608555407869625390328707682771561295284933836601454921874823062475439367876316881341265318583195436325522273430920443936382194827456628103264501835083064426806709587398981990669269521993944773583868378187308769075211615594600543363493457757693939524419102755939492205899818490906619952435311717300255940239851501958196237269593868301936756782317641365461846134632805898716602726745234463359656764090843521140411536806466024433959341309372083405011582179241353600110610186181048147653547146215700527916856652518798335735870563453319928166470468693013115660418137716611492945326457419904912044733025178368654420619131018975911772976409828102209962390351674518688639216578844771866187814704328380624017048310699156451071758941822571875623797993895831357633989184992611012951937146384449179343860469496986430311414726140882943130619119311374580497699331007973485923832184251688015600633586904081271013807712170145394607551278367551992058106082702896741097755330452249897786812639329091399276079967178751647798252072580514738862074014803781793461494307002827089610215519035682290329772126613583408612788983877989585358321273777757493897623552220132988384513038857370842215160821694515740875950437681675761258193172419584630624839900808457621000665088458126645952861420670084185916816982118712175174799776421291920827478328804796376959261335389651913345680784580281796875410685425568456509492869293071855904353178921443352040272167268989212565109909620747257794273955290263260939931558358539810360959393711765690247219523483975183584119596534039496029408650368061978288980807953226751332583548530170464436043510926276998273245673912990914116576264460398517657065279949260611500481897847185228711003039653541524685657756241326101305289873105317609703045342037657919281264646849273071515547970036107381178941871182045705843779147812738024115835565501690497370798310145448530537936404403900041555003709610637723140907310115608686023265753001065300478665400214711724752004616995666011462909977438777506878285892393720134358494058524937223949093027836944072619541874019572953420207940734718545595191406070133672801234792924854839156015873264991422918295452935476618306073984743844814444293340378449400001473781563945574757615371351242146187115697572887493025850554998436243960758788532571109284202665494370549055563981242532642972875744464775772340648593958340850134330738529167242322760784753648925974298299055161204251295578865485960912068092493258868764322895837729925178610815418793646054687985789153907668469575360801387285729161023017725415523153178493063997837296188301319537958197370923315457156837354239332305715199290474094114950864437458569530006744813314380406989478952048865837915979479797531217497449790640202805079119521950938337914473097781422844834819452866199312086474402999449887596393810883681962446661874348739657069654953718724425043317543516055191872439572499569933346462330077068660705760859935385805871129889533025466958766209114163745980476096064844969249487914571756330697914469097063963330888023541195331574782177969271350971050781478435460225995808841546133824869096416042816582388036641181905063044857129334940865498446711218074244157233644147800882774397955584871660097018694036083051283132182847241393097063682172581785011523101066215494667414951703776008296377316088486673340381831293400430986619252738641391549653236524916160576113432574526078253482117088016463251133659489697469310947366908774550346910474763148126543909227705322532695640300042551563296843390123080787226657419108311833028977707772808903191255600438048909702243710421402683081459081566618281730724982242583699724972327672070107536391007521720999255146377691607324989203215954084224710802943366127742369191890091496344858720311534635159944249743019953013327771048752719856954739519823096787133645948502721501102940039943950038526871505174825065545398738129943906332082343226374596655037741095491796613966862583603115098404346148073433146913342464679115838782582235824090587436836461619550018028728844152363027559909068335537609915464425699825289789173584161956817774142225943318212782663716281729455553774147899367827217766005918303218291101785141026350980675671865032162369948776956217955982140790615417446672899042387661204544196309201801338347659097164439833631532168006641755121937200402692034655546990253356076010970235992131178576696362955618492117853314514659771237574106304609157777729102841571125409622658355230150427439530298595153997468862089609539322893629335117074236154264582154407676632845076310825969889578441525666095160421038897854534639557785927980706375914878847817410307533128983613621489794883496152244948249943103901966208327649245011908389753357232044615052111458208468133507662438752771121642932634624233098921272334148195242763813578986415451951052271084711357334931417828135623119700762228180873461168532523039243527025069300245098042971843352788630679891358576592877190494789251254262727504027947059453204443425295208851386450155814815174534415545247979628026645312319902090203458762286892436009033379135831277000165494044469129295471553431085640721020430264643537654311571928426198856187420782838393129579686517484784711692874584612235693546823227494349787247963276322661311259775434610926239705017170727359548610860725350261643741467268676189356304820136396132279801473938893430807297615839296205578547819902617923508982400518688070934868540738798448420908320386257127057087866832408284824176005502141217462001405067139765453450546755936554399727411184246357643587798791543115215990053383506334382634967429023028011679432140715099193187528837688785535155343419310136291780857073731525912437591263101070218050490384792898925049153195766532373289285836174941808990583639135610714504699346621559606422498857592997915611993828650172792772443196548597890157028069006269349910814514889478378434648401256369988200989439401381242979475027011860272503440787675153236554569093781935169667083449336383344724455441124896612784420837778928065820608484278373117776058851997551618423149614548130219790655977862394414886507885859824913427292099932591613498586158852644284970883672710127720309557141506753408969732559914259546144957089544192768476899737408733309219481913808773755691567112335618771575216285545253373858563877246451424223935693573998179200507206914555395674916805462123286348830664622769414137565529975568728576843597669214127816105793060255237534634947160546829774692099229214349167535897394054105831509415210481532975290277715236146147917948983762660958256172487008116236488012344252406323826007770844379916415390015713967977510142581401770194286376311419306415975549137477904352620072197210381640064392862224052570663104452054895857916771694534634955965053434584160054272727931065001872402053815180449436165799800213636470468095923054272948492410463566100080832365779130217319617392624865664832066667324413600518726480709347318816427181584453043170123128897661324611236018677958668819872661045317682330879289708510035802093893425812053729505341222183884828625923811698128467217054650453691590482646149352909264689001032396998274262507865370506434611836876472958792340305514024459997727564708298200040363590912289048678536456944510460715582345289479537987490551787731329264967631703939507632614691818549962530603598465488293444368221260988709742572315310529211457499548320660417444955402114974783307048625450536380304683934640966319837415264506409763136623657088402658511061809906227594019776282435938366049568443944585171516630088050831524956024366731606351262355572448771379772103004702350595714264868108737593268873498692560494740381145353487723079294793812833195687577860915878037377140294657391092536839327353368440686396563980681779080333792447745584181740821678176543831046820089828159992924712604867623047538161635149308085238718727227342773549847557332288692090969089170755829449805413187658399451933518346993788153062938345845704048805179509798053683420227584416088128132943389733081489758238576408581591168925218598376572049225748464364957843122298886826451952869750302662199129766927148903532695115171456587058238084230492754500597444169979220081942908147883195674154100372829463578005076821892541255266978291543947561510561277499981959484581573327868280576824288822459448238496510914086723964603196312374601764188830082336188078682584414352283476252570201914364696279438699262132014287536651343163465933980170537432752665573068906049126843614081472788121163719423656506561549106104553044275416404810842731166749876857818024385707264369522210212861919040509906417516107282653309428644055930092912354502604485754974166403111042331316803206070126196420698036487285943038121258707645265488937139713343090948267414937833746372330266948218050306830103720021217539941366279619965542866768394821147687301889903760981808409915409177649389383343239092736243016427714760495408141508779495473559471554220707856286897017537223148163801302119307322362952022741631613176523235781166230557731098209417877848878563415718229562697981168564191288755320831045140705000454275892308634250354146440197793137401543364620714452658891659594242993992629087762024717063772137252709682389409623023246741184671859480109791145635654543336646472935064967127549398451041788982332333243817921601672432831844631476716578336378225918291603745296077857639761967769133547680167604475598023820996507262106247042647000219010809130675865851641282713183450067761106045958992652082991904414708113354723492006907808311747584809058847908058435044366483074417795541996668972063202018217526120694291837757454849322981206365378012021278046813799542178315358067153364553593057352108347249390099640998937101893339134389608065755403690956488924225208774030740771069878520361233035237333468706019279947060760425676867724640177002708531263597320477323643023547895499332241246776795627748274906881178909000676519689465415975985350939049171994125050202296539022451405209716175675297703895394394247715123178537880853283995218857987287515160220133354009002829879164139474899545457669643785750808784015852977947567072905402679850406838711208408915548148683510406656235862723640794574798734169728118270405516461905106193950755284446869315552728636247926933997625359822968633845844286731965135845422938520456372185985619498373133589907910349498389540745420934891357189054290905037271676869879831931027973098615695052000448715463047857588573092397297062398832198964704832737258637787542132135455625125425155902795798449134082558980975689406939414846442813861935118359983414786249072208883184808904490591460664553082345748759789484273869623972412989859818412798777654316354865777710519397914277148169793505846187656885276801125758503291580055831646914543286822474109067752249326612101991993926918137043120030155567316711359854555723228118345608112026771025609173487277173344560773822949035321095670309220662076864380086383764491527274361713887210946697522875981994770286841803394522839483406744283821812207531151669902230185859208546535999558751830018477368080372993475567467254141733487244263518606695075117669495726396295530745508407053782224360422726467946907216753594560834222945103876858601772969306028563931912111641620489734639288318416700869339417180114368118826566809867722725789586270258413786261976185761494067540375734079612470551203305606705218305831827010120135529047569760576792740404644892947999456799015639130131809274498568344516067853021252872783952070040367801936466379903262751267830736306605997921241683937240995934529777234523923812683034762213703502163910644080935115759028009589729647904748005043119968366803999222121642796316248746100134677104959817898614058044689539773886060893339163590744544230198141776258309526609922683515356410619302258779764106150402839255003271497878731158621428958726290116687570729673949965754185005934235370395881247788285407273101306504708089239372728405975185997918564159840562326516635485753339099594635543804415817306878647515459466327409141844687635638291580415312295013111186340031274437329299930759672489972047161222474429399164112360352761968472075980264085337997981953982252370628144607691680794456461506947843989020593966381736736606448864470895269159247913375631559574632669461291987308944548020403027649675205467474483168325058100242388795586929843515771238040890740131206308651590992718864211322128848088668393298422566835297847540505105126430133006741793934083953629599040804454237968003716673617831136533504947307671432173624515044166932286914847222620533249302249281125603315119755308545925319077938539341219709225083838891524123458159430905348418811746682873427756466143455389885908297990109947939531741243019523044704146459755033394919394743083974621911994268777243428738947488251163443093932442987771482059187512864859446755358836879877039932448946583578932342885857518933668409696144836512928377735904283508502017906463649564466337229799750828270701932462956923576753448442180034695191434571797453815975208233429586986669001634102092505267509884986962611712829218176993284879284374231866280095942415218057585488072817932761190726692080180418620835719425614377891425704020004368324912828997246797923555494664949811235319855065205280907698472065025638538859778078213791167052712826743524926208022980705617626901737432070657737769856796548242179708138426564886132693832344313242193618344697597791410193979778768712744036967064610878490209647513931177329909857877995295414839159518695501101968438520315468895689832857234602341791471839385583554590618601476314108831698735139626045847411885599780890963188989585484738646005227453456773822817430398693757943695256740345380689401562815891392126760508973080781222877579875824641558686150121884545996472986961550349616669885569347766225482362810702020528123982781905751815011333339405285855661252388807676574821922425431099156533818399622028591205491870824938910645790020609537669566454430695925709732851167705317862812636880293655118219259388415452468394254730193408047367655967865328759420533612097927983487939258405217205374741091977144859919101471885068933191880454790405247756865858270010049076012324380447909166080943211083417227824626991989508446706419770416668530550781160981749223627938212267678903658668937994399054902672545348150415618367097940282635809041261174951993348836945090967537272295846253351648147781243238784463773434322618008791117298592801083343375215008093746329138154707619212335153408347760062212281362551036290167984375806009295070532793329769987463744196387063701058752523610498682623279598420006252976176252536055661847284875789364299196831490177488848637948152999991004861915951833433304294779757827300084885902946494575308733251436578845103258439551298895801661199546805117981854690967352206969741570479049838342072025542265713645295516923579533272785694359088890441416682304579978974946430730171710251658001118540483529881802527813115591837139938245152127573124733914953798826903064845511250582250306713625759850258476031257995504600944706160679131101015529958497387080088909778815008434059237221898927064002102230596887464727293101945697482346243182704635172254593823579051102511194748364453178666695053839274693509531853481779169564403292013443022555792561593277503063272317230342069577066294950133629547210417999481571917431489122983035162407330767334801051152863196138882849645179653423349906606482540195308382836138122405853533380728651100492211813754100808996752891694535295997539154623640376640187130370966245229035382967426839748148588160904049323219917410121397345043614047673657721850943405177495575917597232364309603346522322328580278883842807651191870299135094203306112164112539031066411500167290604045524277821591806830403958928511756149472921152056170792449495892814675710456266190177557855387233935674525595808840375022040602840535773914714122146338842176142108354401748412018324006113078630749152372784002309555603109648074817566283220393107470483076892717210944155583387109526236861318018365483545431769015678886042410217882401843179348540001716742795219765432512905693854529607325785618447377613811541076237993581096674166251953253455510495948457153939777546567721173119179607757477718045836548832525556167417892139467099547499626979749789340663006558695327817971001296109894101334256576576320493403631508697628241568624554548948453018211653531198100388367293053513525364765819483166381962158777250454792339852781705431029090766399653712692572966595953789771896700758102087099057210018343199133509960567103862303235768019155087870929232029929596139549186523269169733780430271801843494701962632103302818969884548992552173995276101077731439431366410521060240835806495760114115009654170175600724725486100213829919377406225836259420894651361668977550810760308634815322080550714734250837098348110205827854137813871723584955408992197248155986229565074816326742013610345886704415019324572915375706403786263986936055027239964309677371758933663149568307482085897808400916764069096518641926747221864865312053477496347587001532424102052117935340954182242116925567889212197676663832869622602602318110333937163782509462018069381290354467024438412713337743945364992800599838745521484750657086418801370446779998349479957167737573417545536070150249625559660104836357046892029355729253776838561115809400874358595098087169882596043650666297381718301293916245649303090416298322356556468466107584774091968764792285902390413051157342715121432264090032119624021901973483095253885148040602714612255431120252418192655131389675108418364137542929870283365125560987015337853773047383633254161974296695410684379302093429104839237737125520594651862853811992775147950290640272720013292690769147977381340765180626357839851836317460414529850753420391091654746419697653802118920505735565060433788812309913678003637997896313679766447610137355776082478137289469759979158788577637485542183785814303294237181676887441360494446915259067790257263342337154672113680584676113669456773333261392035562231761149332294458677711076572004728279249371143051091633655024264338614063991251446904337523625672044763581083093785871634689244179962853635554031752566462422239692975995156090070957574371631096802346783240764280382232505953286551978129337069588363268700187684741603211885289947198241110486336263011787467072337791815345297551421776710336479308457363718491166201181259471965284926562376840268341475365645235570865597523213406289427605405746965629779341442351503822761624984739376726319229071549872735919422754650853272782142672010102975461134729619487423084550268836849694660757126790978221719542796223201017281024817461224820778319791402141323304183227042670745942230094205080586134587506532368115448664232557118222744565709839365407459160154807034903190708254647286036017678119299348875928439211033435176249792009387905764500608372153111398460146497558659764654802521785046324913049842296868567243319806290214852658781729566081240040569748843645368407145435592361178342101181246792528283241233140997927871654458011877782228453748517175601034204382238719977398940963414757409336680052167673461902378387219105580161120617063427800277281606794858303618670730226722489301423831421966226964180733102792948763458327188352969235522137926011909795344473653767091484199519491392069434989630199870718220579169178402735342525508492209529770219021544021394900351104119591652254852918589378043572632995046514573048637541745654265146234845595671969562421454747119927153929009073084732594343045460969629331823654929890375162286829072170636374650060702677064435246375092103295942193513897453510506434460484907742464754987178031988314253915694736410248980641957497898043605231584424860155096969162689890905721037245439762046346784595532194016614542746422777439399012031377212423257376436221551590187061101554853107463105960436363398625688663313416516729420341371013046717421068249070452705399422217716487961080032926986511533063930260407411603318193317538426883648781006810955676343256447367282993399415873931281797875852789723273457318661175309632480988347875061656424898856378495420839504455609174875530448152701365865402831879880650827927143889479496509449803257739569282137346222454735743972739976911684918208897740930250989360779274731260997970085963854693861741174570761250531586541288324416372860543394237956802366195071009958724631205268913956882534649537111339257361632509793165574225078758463886008678455587333750608298095238762874481739638975189476429307803383093468685794291859853172257508291328423247753039702298778536368445808774431021672371724976285483786243874991939612310803474310957974964867560003071838906822533923472862672269276550407511753451361199324781815302580404667415777213372149508442907845605238469632455149440607924978995604616035352093614949205320711261188379332045759165751435413222415383984841421356446315334502274587845765010710070688840035014142718216836040218708756677031483332526996852264538561372465858547822477914987549527366715470131400609696126694696888721446693779684917632165249118756633392284016792497292986370786866467417277822825637894276976198203050917329991712287662589608134974778673950444502446881246919478178459069117841145196060120277629120991608560659362134148562126155371010791329905207284370142365410124379298299871253040495086212358513863276767425872937033973144082910936589938087352876938629755062693624718935590654760771896436747458963605734619904926323132944758362687842403097206797340247985703805240428287248639412055791728768324898509025504960900665910635262503526100741292775427792543518223779937729851248176165066714229498036901007395824343872178665246866952370716913787555401314066274766351908896576825454689646495743582067368042791643559076727189727725275762503300736074049622021802066357390949836797662514912303312313077054772341781445379880808977964587254239734401093235537910667098818782040402162210602503340430321442661147524023885445846431355471111223213846902011177874222510675467138983322199374842295678304145191044182301129458814616139620047735625231319722569498814924522778128489206152447198788791879448372174057183991559589440010952893013745105698579236077512073612405878498526069206104307081139580595210502338769860552314011447772646836545489006223161447751322044844073755879734864803571573387842647086138011378594253794651379387502693181201829328642991841449286269385147750705042036930703328715662687974329489838074203778394845377765994452157656407012835850764142998399524157330692860771397528936936077358474735389965387186843646828161043374468021102898182264488494938609003080897238683142198904631431819693303856682858043204782199031633665993074587601042214739023792813886646910971296236134464008748618421744887243236846836796531582050204433561314200350446388146501513390178827887978611515457460363382584552534928675954096442241769787204607101661107287327074624584906254949693941616126000690429018823062366471055522846670014133170503043132319967028593789349442711826669557627723169801724073377138899947554578984638147905177648666837460790980845313945855828008442659454045148326200785593050222862925980489408576897059408932263285447731987414660961011704068931359417575037057255773258412339008658075110328560928656981601514815356961617403973833116511764818069988871649142360504149409357607147199269013063875562489864023832585944107836511633070520551801365605647080039697486700568885590781126470767842125569927086572917594651016892219137325291463623344026701114048560780199199083390038644320683125177256930774595271845484913809650752762749632638100596331766648011350630475451693635942381116067220927287601957988222015055621004252967600704216960919521806483571346264974090400745761953221878077867562609882221223930187542292664380903840345523382480726960470333936524073805429765713510143897765796102678264095082573863128818001996972486068569961921556889183341044724956400766725437853004988532950799595634587001869698372413913804213907475131458167195647427613227854136250732060844208300721399796833395687482887851265081442142629426380272383830591359169870077441668311260012238282685905367806591697932770455338588222667837742695340704945234789433064653124961420607702124025071562564641750794253987711929867299925230894437554532594293454872887170259459871219794373534992875137837200317513154362962537516002871148788472702800825594586789923262146533361569004656568571731850754718177251018499933290494984893685204732337671716491970345590293167601994107251122036866319122859175894768602260195344576235531575844814562517077986802098185486384990315662499699148410153351037866342485021091984670234529759563208360163957184504972075395355389332611022195047739302094906848288458297049839771345670826653012617761278129762293333489690568675433874003150629370995866587534596021115098464673718051387128502440388794210034592257037979751964044386403241517150815840694337109038874596226042351815739437945284305922177553449173595739748036862345446822323304133372391310111788136025651065849120481403318384903776830640769064879626079920929192972517599857079485223547242822291851081018204775635085493211595164304538957580710410175438580075966911725543207806183641001958989030661912336934247047363062493240724621825078911460281754882986758533516993891624050772922877076401292700768745534855717203846376493538074428989401550779958662301716162931447803099836115885465475701023547582849663438068621030088671789362804096196180988861515846026746110152255692673356860298827003113278869350855443041216754645187121809402073325794273112745822514693492881781374858650849440276188648059037423151607657838418349758057480843908283091054168087504861777255037680127890903996122458425571329475429691333082257474353356658012851883495830755886058999183631819210367045226476031059541769308796834267982195260788996818720706367031107506066785274178727109252833801534388746274846773258207127266631164329663966159959880952981789768197104200593986940626411858579110136293969498957600627768342280604503536694192674393475174357997841817694498579884698399439258311077638397172853092441327769290160122487569817453856743789249694396851794919846703903590655629178896540930775764184415497590534623635782796433908553326455313971630076255627865858323865710904609878001203588544003880050478674772727688199466457523421962511343342399101243406438370319466586913330065048682590693859487920414699638625054847328321683723976857360632254985202859687775494271498254956557187446064754199789527495751835698894474708493742796011715152257471504526320868636704534946533911555243587882802474702113581904612387919146825143912906371408359514514287420688750891843459003853914112246836640870208569597438527930479697538209721432270555206149220848110551137569822717420803559761451527344504845292864073878484897110209554995130804600875029147392131348726298147752268842298543372592080181888505939106107514456510816624008643252794090411805091818679717965007329647874690062466406336384744858826551341456098256820584456019356252587346902569021316014337998527986621013039496957282630907251538305054560868514873909694552245270880634976373454044255302452077276119939521635707666631498711519873030367232036134750217704088563138464029277294399541949841976434336757378541422487116138082605263295128905316285841885762580153093422455632044988099300087441694438097465741803418300226282765598297775680994716475386706679271506247275634405355815139271678420388666477715990448564138372657638088468442422394531437657847682394576439043900933126118396924373595538264476514844088441008719173500939609420896756862640943138907521410722176937962180184451867527993149209744398866935828427337515008133622625007019153019382531508866129951880960003728334431149698318557307537972980798196542958538730933274420163297370923386863964592319808528874644442499712043660235487880303348879819276028168874750754296569139354684217939320221096622857275714538957120313589659135978112716802337244954977704728265885138250995181436039982571367926159861473347407788964542142379915132624205589201365154566566745521871847468227619650767951988399561308185939449015787444779441857854739719637236874115331739579274498668607085478345729514793898645366732946322192762872756299413068649240642311044257762829270661187284909865275191282469300260831682107819429258440885570373142344289661808500617769942583538589196588641733868381804960590472355223405331344877551033258640938500952851630968354625073998509964191452654401278606704029221457423506023592738306869913512682805381479937783661789091348552782193886561846627568200680781749304650846287962117996062899727926759912933602666205108294742284591847730343341473554789264378652680151381757757321193465901428753022827350958236062019497390510420704081390960732778641279341112393051035348897729434588330842643499030089316952575769949014175880475326956263705244578316546659547988678424096106137378404934786933438461227863374425635664746288127277950431263632373577935411918090907772853102266457247786263045793110259458620647225709505434888932200305739482133206964613189630748751913493345959419054898853041132108055101789763165075421185979832141033763011709874949930398012621951921349162278281475058408384784817697495219787159378798109655903493165680629994526582269929504057286584803000202376120843729759981197155753066641972165750437406692867361504289226955289004426378189062506555621107433375379773618779592190560695409085723265170625387368465353431820009516836834755041354531122608680971220981581127795586776097750658560409213722560785283070999558881158800543299528102653816613553889120425786098822727726150074175198145517124802298210981454250908477940948868864942677465118218310808109985163295839724677422746267817410916214616110942984856638138687249027005689325767504779937988548634443151010617662642832283615554620759611908375917952671620859894409767380871329615875980428187846580388615230379950027585958073915408527136618547404531992132120389679204203624553433416399485732606946151790955618634356559672051145092974829243750347246916941137273908509401639809386907023492520944341993134857979676612558197911364899509487312580304307489155118225160664337589343122100283905944790361583155753766500455087602040843037450653001556066640341154181625454684012482834643005012667261242424239403164866520869721844383521858887828592796205172355532352394757228671566619881700412763766312365112379375030152482104887607312813222488568075264910226258175675962091379198783539842147222572268757858068318894936055322968756749643994238759322739896701527754090040433944279746574837477345676741436102919308630956540882996177726361624610508548315893482920688605249153570423155800244346927749208062581541221712883638949642769770306642523073115354637552719147189856194817862129348283046691063796052888649804746344027578585855320372012129001151824051289478566682137175273422360382113246440995162659019042324725717273975332335672943080345328956818222259062640517791856500941623441683457164548921408605913574378389896380027561917898293601044977844491183892131336493243550893196938629117647191527366991451034068375415961818873172252447534664183840462434270926193808901430166936669933622568157041391797762218086302635355054255568591393050926579535070293511140350489898095064982791353868322947954577017478100599966203848028923606808461774091723615723903468997404334255809645691867784519471227273067772578410292493071621481681605490453420454812502019085772085923588560931320180923918430415712466910899606215508430747288379751700596189975578088174631966704267744903178932618264999390662679216663052265852088704774962613430430245950448263631159201081262804561328233457594457350039486821217703150137584271999633660585753158976149849964602851851964493127699706677777586857722148810836407234332201855152585804685593449974746791838094611292844973446018222414243910455379239642635168792603154547265488536905977518794316348097051036178004382786231464103938272731668922354031829907261333638409230041763369888705654397030598021108415950807201303455351002516097005697399477106097532314911488052896989005504309977652021315645802593176680492073052924904970751262229977484309730841161218821116460955696481781743393497851509920982928652761657346985417606873182430647036811416535171168088210125497435262619039091499412564731446536040281856801724545532786987307260524850722664310003488397225037462391678480714416334420938940529744276199021195558807398696720801801715061044544372277403609371011530862125449594704161229194820819177120341957597124220844273550899731932838583606229719098040068066390216480212553800049052599645301314028079961103827412921911682766909980212731185631200493913869495371684610183294076309697490527904538251346429626023803224018596050926532290069641261380295615304421016398542133777438558075814587430085654006909675302684305407679463842969253265854149088894413150300703094907974127451007326899089611196867476428147423750861145274056639199347856337840952802018117020298758752266379578087937502593511300918710222570272322159962536617608929146563295240822108222784965561110990641427582478735392728369353563527587617831176150118250729511883245715239257175759281925542157712100580660377505362172735456753600571565469667821207139858650249950291644083252887044087791743461775445806805716238469570567613376240925229399521840308654772829141919451807659553701672639903582767006388152843579302125961816530937676227417376422160905926009040678248872196356276445049962923140363816923833865451511355685399068898823402621752621663460668922219391591359055245765828305343096622771146821577802533047064582695836362008769708577543924105830165890675027633351319749301310967295083999571108552036739231434009096971717634580865267651492597328017978323535942075161881528183190617653339821458476595145498946716783198359946002292128454456675208014061611078797446035459688021253234793685510268354678734635422959882283232299586427427929223477628597048301026339014151892871852628290588024474573727453963350802507128119444211074146062185075256015926957019847041104536353580324990894425605190712703697740766108476588205851146465758254657848498585953161792004980485379992267321905656225350220898331497227954569027890670936886542135153819424167128959002765123871899225002429702351724775852951884425507983418248008872195731140135500573858692384918990432086033199024769347718198618568455809780684618183680298923993769495138392455416246177922709358305326514486837162016431804771554299630285982996790561019005302362419102280501354005859131430049866973326404356118852799282194334740517859219934244060851358028407252296908181925753802279407324878451628057117540622287464166227822805282815508195944412441439424441206203009783313632674144387664875840979399642775791459625336545424871163459532739261439971030906651838730470355814018971046709756928515995633412041680270707625170165588814467643219958140071909763444841931446324245005423101609791265985747893629980669397373671157820472494180656460385597054144035145631898699300617058876004560930698788243736330884821975337065898858800088455872924179127309025769459207457145016274202628872177624625083665730163913174157861766546656601877535604105155256495085407352520685627480593927461945492520073208706199384535378792872716069094681625289258391313647186503843753069426452962992389463552103640800220245434665839261922923004267996026046798317282198962881978242382926657502225982913737280725483833473180485987453298624306858752295593229667992309402618900056972365141663075285074652989359922152527447893485378174552798140054183390592300372677992428789463149225865017704603086575272907659794819351886770352574239057531035469137926541926813388587780815747188784144958351609478564173934682096372891877550957417395387627143517167807344832958652908461911961411826133637485763767993758943198165991854676445338538927326858785354560723418914588419046115441022600502989884082227261404644032817791781854073578393953228249579640635925128324964721571161246493657434794152805222843670343547516900387463265528040312326936967686205411667378856701311449270742320264475880771390722894696285608346858438618488190892385733175923066461603266289757074852436499416312979983742453317195240122825641433224866336747346771231730187148025140878699679701101550725962333480270290140652489453712063983872433595620599352666865493133401408815068137279398343445325585376174093967558701476040609107719197854021620559711470526097528192155407343258718598620977970210974996662734732470801386088098811203543930001484625583392459340379654648958699764540516063269875175534344854348997039427504454436939351035263525735895306454178512209588163771264252362052737445319037417302238160367713987545397641420246518216188134653474429121324731673785638015246120720344471648015689238837583925416896697539899262186244527373218295981585745973486290860259938968412824219673714426323946762768546380284566515827306203820774791285398733482654255899248795869791416135105597826093059358791207728816225499063398737815232990132267040082292421156643401596787487896814379734779536888309588559536494055016223717447982742625958671360763338377828894088996873717645236960714515266435883725269419278403936987896458664467677401064136112078256514765663646381647508683712551889130774726686295347507551948731651915044680301860192184151905723463538589146745624572050842142858751966484164889424671669467156729287824879560337069142235230494656922295051063204738855673747422489429787031389857019127877732300384236475485231630859181026340861210396112058429121734995747412357949246914605034535173726885594011469580796587148362335459680452587204081416357704668224267197016762263658948589007170198777899227921768697791969464024833838362665259991067134990525367943758145721494458137173069488623602909449931507839515756551639774779224635218884432864832844630645451051038407776843890826925241450152181534528801632346640022976024446702855156580745764066821071239096498468896724583807779263650669541785278086580570375680672533879315276211613353962653800367872143418388106136930206661319885941344441822649042592522825580297065626145471919237786210546577885716490360230345316317595995748294371477942983511627934825028442627499867459922963047825395569851849215336700287470769064086656042544844968864924140917081829156787081379362202265399730156654017015829807291089359270167083297810108332153839389428738804078362376041263658739346889513618845911278199407354922312638755544370050675923206838355013114752402506764956455002057898583296119452781127308286581922526101955694163257693070137326558049405754019323669166485652692703814857584545250903141693975663418867203747140338185917115966869144695098966151291781045134658894399669883726722517695900954245373425700566049431969682864358434477698739255060926746718110358176643030138189506144886608290123434520891667505739071697276028198886507534466589586383873531233594676678797735282219245173500038406346585870984256132713822050607079325071655870656784006652709790780626409027678892195331151638073699419682289514447763928776463788833185404297530996545274578765870114069737815811247179815298678302823821982909479578153815165545799886705364352527391436654330913405729955077637095588368025254516223019191238009497628240407356176981297061029793947886837643186852066254661533491753744225018620427687451229835566061030756914101923235233472221920149695881911137221827478591890326579780891549336306706829238732826305996172570761835076361120341907388665612555306250486230889727265418567407465407637142381579514222762907766395091980989217520760705332638072209506792820821590349669553797124276597605540673156076764936857150745417979627746246602564637569026138787227067973432070543923445553449284427677385332702197602122445268074461492676970067524607924439336080332287941841957226141594070471444587336027049935166584220747010107922566413619029942594496516271236335656400339933925804667969795082189001906601292098424843384412132468304402293009996584732665727170000380349430528720378410054523726937059740284862010410233305661963639429949998309181713735687322029713994537788502774986673782803531584909681868301056568243333939995977014454248420233446864146553718085646926277587649526395433841419678193308629549281899088786002906409861792891624513923804925734924749260817125819532540211120299074544882901473674031650017368505368697804108479221652694604672262525758566205831626663704805236812979506573441301901360660124127254668214509088214525856541502231363570698991061158720582542317608632892582920483420304427448174544053071229439281950647814157022063391813911740793529872136011616156840990871141166869607358767572611228127098363622178546591218527762519958722294454767870804541755357110512822577477590762344705385354769986480428354542876530557555734060232324206041719617943978670058022859466927989971347911316070951370766071145946588964698922667449399048881018451362408693093363251654280709870152721571314610061863567524769741139633626270977590242306261084877630908649608615802050981674814593521639644551260120891613573959149728954978646576050071605321743774517873974900453826539425740468326784656930055086576105869470765757469061271073758680143472773680772910562963549706230986044633479224225893177063727168270609304730131358959440178498791306574288241091884767563500995172562153788543305025072391514700569127533248797021938440565424365195670761004911159426617294404876717759160673764816069476504137768584198029035588499450359227319700175323017306372355873196493302477563391233487381808780542555379425816125082623017027520180905199898445096019369849069871502811298690352383061524195774403369536526208199018080457692836173730991488365522563272490500512281066008548186721343612162502456620134011502947575571404244317379971791899764901509090688296936404394669144197506190924554384349160407946863938211382170011205713679963981865511527279004538718801943798971921366974598091252003053224949927977066871765939190190942559311502858625104672874821525359522327995061851374115321723522369020023048317833688259359783068313269453488244465168321723683947394942369448361879315977766092649307318819474948215387331168721209543896803137671819387984284434017253888003234195343129284148714605413286774202948297703394544236044858383337507681646679963150132369300736449038817130573656184091841691988550955988229783939087392997645712036814016149641274311222943403262354174638578112272539873805758345668378353907109409174646693293636482786934683268756507392401518037531236792394553681732539566040146080776341511813671391084179797785143015591321074865757553491301197420575054178942170979704015111946719064295522394381846704240670969852574852608209610962936001907822675952521142789842835748156813786816861488005663081889675793320521815246757325826567160876503337941780146997074225539269392196988451911709872551176144462420529478157446570172258438367151165036394899725093966976813462236366565461273208537534479039889742281067611665413846089232421498219463451917841118870395509682517630310743176311450061437004636647927624096626768472590646589114742230425814703582071025995184250939974258135493336374292053054383033110597763218909844184281949463830035811977510228602030953437702131567255156127483112350496389376946818579496754109039246012923282991412045881946126804024644999792902289616307077647756340040597898470459462416043890395892187540408770489899905439542023313796866785281790869397698839111367705295760333993868050932100376829243619898082953324228316598975852469971231802087629435072424950069061987701128491898256020523630636847715985947633584572897425514431682932652161791007782749020231671925099160511593450409397875559410066680933225318024669524703462137174073057796622006463920754003295461328754843393215953660559196002795089824343443306211472026297679246509962678133358039188437582555205437946991649837183408298110401431973364231116042683311330011287979800308930264582786601892387880448179157553904755556836155125607712763207319249164168585871419582128886017630531776412774931755694345599801919623182429649203210618054877365319445605755130836551114400928620610903339389784529411431487938446511631343538238984398169623900864054887587560302923432041147311963525673005865771102383896406875592934748016596887672622766560775433338375570481018388412674878650819183634078108174205296139751214489453381056333720862318556575184358016985439905685453821350517118344575802897870598952015505153892619516218974431731585799157544730720011151721572498850140204683050666213696206302553369423381202437023678565714223046530997926521598619329270314898463076381598782627394001682585497561297560032840097331221807301181743336615418273502716370419023030594966999234008780980870709101471556739765079691548793354038930923043078121772370167362189025847433111517553521035764695195358174365191389579460350850793164762978120456128522529189967836270420895855090177441212729832161223561222053382488521907984877931260349762741835620516935515646155248879017631533679952637532874455831214229322383273788402527273258267086180451494526640122650479383167052401698205910627316872648635321119382075924204861911107359477219593106080574708515521518379433726758716748873333824440392292016714423840135640799227921141333598814423558034870519367422493580751869735567023164092965819496819163674799021393479513283424712990148323199518710098349965200632618289366552986922526245876395009394952466546019757988777759219910122750345864443987448541029681385190134430873167302256213697842161470915997537706818924236109493983259176272668257483866892948899615409981489870359924340265499865583516681616936435297877121725231939529159052991099352220463605243193265483074448678868010596009064425307124188622703587220203412511982153947334777750554807544906656105806805559668459142478022497330359654621253371943506528082848846422174764634133583483073384438742376591239693463234109460047113840909497103919156464111965912885831782341451490576732101130847949147354080185426268240222941487209496311799495252836079471002554862201500184197779634817194831581157973944493328228651286292083969691042748346569735776846912359762903508910139238646238466076576371753001032900127739813781490034543034337791402800802861993812641391959916118322202785612658066016219623362745343361730103460890701189659819640540727771308713337808311754794160755371464576296952906391839562683625087511263694582697362341087206394305855913502139901564091341502444539292711466879376701435502064147637540902334480741043630692288175121064210817466702815999523621773444519494150191952531654903296390146838808487451510601370698409558992928926249142983420393254686276342969357612830749597920763592316345615625511909209893602490773748808073646361454291490318356550195020143693578922514653912608035535112532145582246054131941348761727285213617794085551911723795990551278842739174881277718400803625777965392943987477811110618321182381386699738268393424242601292727177418395589736119246879755462225053456778818023828334506598973370187490370094741222821614623955420545146358242966149375107677006361394791146997755666354017954033434374998519339455831258867134026137267338849319673220658246982382088262159145611446868915098513315279340174847619018237579883915506009463430480159772867064742065492272660924008772067714423617625934991570519512563523837142996095576829531196900417649836103582082188398980136679089842235089367218137677420329590343706672374942203417575039603241248108959365305653864221201080284446326022698591722040000272646626501978237868305267159447602722655672856128908475151681849090159532069225988924678640862289147177994508408923076770501736048653715899773049594559453101409122452836443737614914769407590593968798704901843889827317825623542832333620875037095244263644924668742716262023142862977152064330649670718202813277525963622930624952963271791603690938280154535648883217592191151337100974552268702787656347458359732791274066241906027812825736992274817782953720060495873440148401007063955585108037175357745722864850227689203103272760187881372080135678843762318800305246307827230120909113790321944325520242928002562207727311979979665205030314543848942872254985989278842773618152207673154151338545518630897596426278500251780263548078473836403495094315737268762909292082340591037853747017639480909990318890504074286142725712887708822589691390602346623021212721629670921246621880201933928272539937909568391343624702842380223867792245750118989291059223418488007094753434485001722337269614506343223286155496346530757005490746972737866579260257425729194702575001998906553076815791613660132271139420507283009518856600407803900011846954145832978625374740866431857271772576032111473788987523633072688402001861208771967989763009258095373020321004283574092092525970397434108495887309161678496868791227616500304812069137074717932934227736113511541678834348036314348781598130226932088380073864110484624007143921680772699064972311880646185299335892154791033502606523603453068337592833719140809269849373758350601452939168206236720983457667684683975805763922501467754093446240416363337158320494502108281569632414081887891282568294605680248495417746261335707740010030501660923328066361139756409838241546823029953654401861904942003230823732035678539885804601147836157894651025433301274514234080953691213151946774797872098286973774868777105752411724933413370307499757270589473159117668978033200564594960467721963242180959466556295051293486980166793330228907856605798141098897326206087645716482112362495344761119253721334670685871978105046234461216617449942205331974301791944826629107644678032032948166210101923721833570857349209873535254559718147576671113430493149869678974848030138755760984820135995020675513901880524055935139535267625933243213890040087385916592387426046831991436765839666419677065008295713267421549367258492152133989908683303815837912182051623953632544781455887393507924407436936850882833838493022575860289561247253313068696947629226715034198954350934582142934340075356598464539207432947857968791736445453965464271064139057241293733254652688408520014434071395654561848756736111182142128151308506732105263010490236144614331943352895265805071962799129688023837996374148991163599487833526579859341627603737334922639209606423488232190956207411204759897599042590770606625183481259815454793863103630822899244961611803697115037501741226989248125167153616687313871154275984865475505087695752261062091861068503390499929041457265872591350566627672727124006011351815650874296150703685941770213868695027633442169297420723108704911692204928131227467153016046612675166439130017871019374836116648362865709532076646597567327971524344605899641391205327749535965326817131376615888624868388865367371905225586831377987853969754325060509990970143302313772806902916939749525100705826217583218014430451317918179825540853676069614875127946023247743506236878615179343011643902654204274966976585819768767545269541646437114488404550952010414839129850716938677355877052563091259866271211668989208697858268957183732430577073580407098085970212432031687012485707285523672321927362200024927060093912120354398542720263276044841402302929714003779531917508454318784117455347110160465933325311193252724613035216056861010514752416036804430970384622746275977624346972899338959717719532788326379840574504885875649406429371531806192929121589166685166958918570129638006166918848284885942283270312709741225590566893280403911235104197075500419592403256388226261378559717719280384434701616236506130707887504333240117696410018437432917695283975550619076931480231373795834108405851735490087453823742986536456256485229419237582739385714982281585804578224338895680141760940411446554173822071768701468965828026381276254200738550197825764454272558480280833175455209051051278393804308334852818087408819876801204764365728255214808117697911082825404968294420048649300756145705629928631261192557721109887172199803809198210217852323658105139438954180670183369913038993182424747893269599894600944190601329944290027482241005834981168227645769293034164913679999537124575398606750727025422782354423931482618447789267995098470977481762426191813644639216886059629914394519273340465564471410659703554677727985151165697117185031231234529330461147861718093017518607477987306534277731513890736704101907892010348305240628335686572439378283998705633658972867035079961320064453004732727241504454361902439579704794354277447021939167635898092671692182794249570406002525449943669310225990914003554307407441042441034411514188233007762871555786830887547148691741483359877509962109792217870911907380700355681940659173960955222134674521703990298128287266720230412501823155817447443244913125127597465383893456856536043710956868768920456291771949646608372358077026198547065112928791006221230366830324454023344891334594619298464057939135216654282217412741591606193181395169599400424194808515574352903468068920718354191778202372425314322386957858867227090944763461779425093064397690273020691874291970787364269647786921347506210246386944144915735089484215158743881691390511171590154284024144812620476145971039536631358071599989403142488363175741609432084036479848045774927457966699495798326118531202152298712663623515510646816674824893817111794448262753094595957319714169669395076446107943561068356013225052686082341438199161583767806281329916390398273955495578757399640133917935747286144610974257270036108163843112030333879378403415991892947888206592018073957554454231655808781592868273816466956364976035225339310024329986218995994104921449682516649907040592517705981966692007692858653353757787450586477504838786569364282813092219307285970724809191571115072128465391415577080427469149674205725248941397287014855368641772496379638109937813029253180321427191809668444799052999305440179330466656517394506881876504005848152818552705808984742564397961412113541161427727832722230292809382823796221158209162638605257393898273716095912499296477384416420785373676182379522298645996273285179934277070216065896323087063996500224633325668207479873593894823742041731821748817112904602383612793319492513356286730253283413849783172090075116476300662376538243392576894527790578760003921179355022469420512831655791768340507853560267450507938432428668039052877708523724365556501061719765186502408446928595936847380069482929485794072718032553434574118629620697897146359177283835282227462017859597439006841268122456293173562016727193206689019737655023277410970424536851361894447511430029369907254862515815514679795787061319464987643875348961909270132442824844666794837746907183521178944720159891651574073418265869058714792964185279590010031047497996394600291034770545688052814075232566066885625356031187905464405790541350372287136088130365988824042718471754042186073473547724081085041032703550054902785333636502129858109440102428770175731272058451781530369246985667889446554322268909004393947433024725629279108559817133607853332758978715752586864664253607077283662275975692121560726903157742817176832339987491369688684463057275123727833214310861084553605595333330698997163423049539910852492273771172786587195003629350708653228776068937937353563483747922178993329967044442011101944946275975478799024813163363845917436913978552173038564958793309147101125024857745038379596141948259253630707142487311109273968254028945702859781731715568487690547051779306894039823599092757543734936334251609463511015814360874733161476500329306844236732741260538616813659807300390851220780296147758802715886403097703724475615604361977146411671904725974764172984753082435179922411342698108021823825709287507212331380047654218421734265998090203058596808737630897069485074573625359310657759604640205322756252000241953247994010898142052209126601121275287729085699318993390848938113065334238463726164984920259076532809150292029929621897362691433717587878198688109209827331023545175875015083105418653135053144807986152639789085449112808836245101227470712960280153806956832580681577245958941953143423131705666306710775815254812989965609296730377571782236949895260009684299518846545160549172715523154050039226140306563826455613257325513683891794595969253999433005712287659797560340909787591061008245710827968554692022174900906684344623056710989282377406683169909216959034798663073976736416375688323203989652122969970534651278909316651111141285200679421302998310680685893244435957769242618110186602282396843182243348274063800062662812699989005731398367063519178649440847414814346675176127351552611669590310162353306516972601110036314264477073818280969419587561395227889278079685471151550372644080325304141004188528350586807893698132006715992990284327992980500119380431033529319115883412327543768849501104936900851537189629393652147853341253944565709299932835815375657408109381449834757922010351635630645274025223561189528428477850162443153076802623879114035637198216164252800701455313712015070349376505614218506933618167631910752362989732178645571481321447653522714993410972616562434398408917348222795034001085854202994227815007101574867885658798776604337183823370873567300184897303566547527101804397034659406495655972779683196034677327242357872957279541374018217902028474978850769820591145251981390355221944919017334180619949159596836613285173918089579384603289777838292210167405203301098672368155110497800653499316473142821820563140379373617516730267054999173413497098513030425790109452021151105020012241074965127231209598766418781841788919014727391592400767977663036949747760952479716395330127200193458877736260085485133313257896546524669711336729604618798105315386168912616545854477544654426829027591555120801629365254003377424402527638366334531025696783666463192951437503002146794181244339253158239892004070800742555228659457981646125258595982143492032291958982425032822866170710943622231213693122117676889726560132373101068223930870172739096203669241833084984534442414508452287802698797316252329497403309087882426360374716505900324029897025811006673083757750211012352117241543549260215215718622710717275368953952245101813135198463589752182392998567379822983497726787458252162463719795893622611249298159017001531154730363654876807278667304321689728960440074169673427901945886205598309439346976672490267651625562271170144156334837772397149915218391000592004956067964641827329023979692663929521080723337937374430426150053092489213099423562508285999324336137447950646568067765034013004695855223542900678009250135529303471719884695417610227716546250875433096164238685266770414103699147481412508359655186228587548738431372096529839991218440443699372901164917970192767744530956100059723960986923417562845042183064345979191073434962689371313013620409736904251108604361056933107296604136157131869776492824963615830758345126473853274396726918346137323449602897341704697692928134648547888363123795651608466209460359587413391994629574977055381121098760196886806758246742700927162682654584168385429231790813801242597203101720305879709911162207013557712110586042989820837811073306412006975601611060977769958967240766215885167924732321894407439034844473632849033772469919569340051343048989628675504033049196063010228935107712810658762976027402963912202971805295926398503804060024592894281587614579060033115450932309893160870557992963334875824626622691359416649203157684583641310342614807760532790287949089479824212907923823012517596361190813995223872445815618524065603817403516330361457669182605466041579880547271868223298751601884994485735110345779081648579923968520711479600426807010820575755483348800579841004547012141921359140575947890123180805372222135392530175927589587389221816465988711166413802376191260438976608284006272844360390669439511368338671547244300915609992755111768816724972787328651968093746932535967938532982351392953788969765589184988223158870181719149066032332031311787865938313196162761380716341857945370013653581602576171697171401380372252706353636891984213625188008257229916267367441032449066045434271305381220125334509037062668572201382816337883108319431653227088553518058444300046075391906198153112153163280649864925776382254416359847193296356553915758576733805002956404227273276384399365290879007582298333345549857359576585600462184167593407320570786055452757735251312493953451004020101714356123281020168202631799639845988713122826333301330020860850738856959642628710189872744913533518754319478928913396015407810672433143672434510598032359470267406852288135953054765828371812572954426740736940052395326024577468112160474929071829520830335457814952523273787415470018496573542060349888500269353096725418919396717226747588182394395203571011914652524747200220896418291244098647426011871866724732288754996172413689316798123766586646974727010225193022273933550374094145734361468321063553173907493998989681962776743626741347059517263560320170497772394412497168487479760536889517594165060293372343438522461472381940991140965723911356934410539739492842171797078975394566494348940790271358410655965744743321059352604624063537777858294019338231784886524328153239335179688182357750848701274843824075053601821631642168955023103263529402405125378250352374469766108880261058722683795575972516260709627725847477103333217047992549300372667306239523868188436699489526107151431770379384010464787885708301556325990458555079067670648091222571023704298419671639663916231499676077960854482819374641497375024735486158670225556202290649544012524374984012834038994115155411225361097100373383579251085090375423261827789973127041315680294016482908663366808018617848010610235115856657072820001836285482882091837889284613729595292459342379169343786047016171286239769510487340499391138249587138498183815316899537151813643885179324197650731802113334708949675080278547762486043441011570741221496228434712627120859834054062189721920425136863766294972060777257748435688173518939102507835302072174541798013987748840809433779692687000310621504841795056025645487219011738207322863257187556282768564387333761716901208438308959262512905823580089666459105089640854677058674752344129425627592645991311764442954276506171750569957571443087684498582291343588351756155218081544591649350324837261436217304223976639033390322141253298474909118358062865801280367773011971156666051924730171538847163051938232415263939033648992585628148153103759401626263742650572468951092929122824893210403388856259376509327732577119432901104289651741924358150988175151101899715226469825000306695354235101971232015358338336553765446117355646885675677368848092472637932936740525308346986277230969611825155535413306186173327665746283174626465005091976154091256051814175544684312907331544885890511663351302201159769416276918828122526509451664169416084130901185233356654023148058478025755608062576241977518879687390078945582756041119534248985022126817933130887549335343815132287947746659350598161443349583819790847825995769381972270057884261310553280400754151275297560605213520463356506798862373347065098250849137430420028750598907019123862974131346695971706884093061538314575085496186009241480378137425565778321713990150210367834834331471458450143165349739000854786175814909620918849461795555095800072325798529394060458569561582243183136230836993023365399153604258356356014264730529610012030962075780371224996605189498286203830261567393424505170012072704350929592641503032389753900920472275969445983936802856360403611725429481930370402150097551161534704068649935134624427945150912382626521063750249434805490229828346317754852633913613502997584445990780917647326337721181247016463066361549829383712341935689134385889520604789107739114625895108547668134650939106487137270570459837217259913887298617729839020860336384479955738622046098763452436769946016747661290257626087312567127182348314298691620691143433596657296429743836055453320578858857797622981954003434812893407433217664837011074021508015662313258715711488425266122668701798417957807536502521227928591127141857440278533971213893122321306278698163620767073102695642626645661038006747919051084561827737658347665167782631196859824357246098015075398516429682562877858247793130227106452253127472645981621681966177024019127493352407590295901444272613387145033077595152444434970275700719226493318525501955366283320807416876343143681659713292380316018975764412545924629751734996324698196515065219742937203235377570619751378245503212680635193977374867999236900177900439103315719246749731009369698931361368848329701041700487735590838922709529907746479901183151844424788322748279249589517243158544103636486463909912889110483915521047295148448342714709772159053001757671089788218478796072992016535670844439319362379038778420714584658335305990485982339263521557733764339677480948501522007189028233197464850635476924185070845655807410302494312112660265200659170903669251612608289995612705126521308989987144052687318169548005160046589229797341330126065179333079588789899174924480379995624641399381176001890952616327487750374344530485269490450066520006635280511747590832959420920628820418990791559735738775488904541427537960688524619671648063977071948254871657468859933873418413694905578882028257424687997280614010190224485855770078132200317008130509859803281184576210647450650012548436753077086920232265409220432974573674179406588662572430541877904596337186381417076780837190062691369715784477583126413236296317171430451309125966132856129862184495015011539321645834375555114806994094577202672666475027440800457022660126869606016050618555752214310340920002906031602691849123792134689290612538739999120711913430282883784011092000856040968315189504758345695384591879438105804450558167251162150667958807887598341258678400136807956414686291120560318452287442139542538490024311927044136308234057893188775378988635828856006986935882391984668022564056839902857489313801158503951627437259207556476923261257438501680766696666458923532648381857761800899637969537446194802241227554756171840503129179635428076300569622855054598922546970020934635176747574055623941859913955474458085418477857748257113438023435197407129835083344428981451415577133938322388911221618467604939286399064118676567759754573384371873418903939015705340528133753985085127623853246850487175688310257454591647749269907799427662289218295947655284761706638818482214145199103455255800123691162183109943582069477763307686205551650726086421471778982938242607195769567772856985295459875187029716734773954355306330108270731679448315527374245558633361089940764714602762317014568030970856651689191241745374974559819487303217186300870801982814491422559751015178559301816552112205410094547979013420849195050728739126763817058995057859655904428766802170580880620969851544636572849043188663590249533057174544304857911700646499772184337628990822700699673735772248513965827335069731869283116578720086632724126014667014068151681966442646204594285855322418550844934020691207216741541894549470064599532719313286352319344734463557676272994614379457072162251191439114638769890318817871577523916737257877656082239003141686173552147261267134078418428533297427582401223697055415282587822740281690732587172539455509175413854254124648538760674648252846534708441049994592015125841398666961679710444478041617028296559655332892395550812722305716884739448418251806254314132903385737221347893735599202896554307729746139814780753117915012072247500336304231725875614781059433024727809703348708397528258992818724552172259402235511651069448377621340493573802188140414222695053554266509706177001954185177487659972624952603911910412481047998539148806794093862163473994156027419458145156917945119969315585010106701987607343512106792250441935510103689878242257607529554901771113884635523345110682290896298776026571071040286323645211395289471429876572185156645901145415178865553660614519955682162194815546998791556959924967533682516732867384617814432694362835873405991447963571134409606650760553423467667208363278627513835440967484697015502670539205284107595123129170039807396664157366562457019743543824691178007754022629004454267440706464564907694288611902684226723956065765149286715802819169036881569604124769573467572724568244185987201719456990599637223693832698902975275840643014811537496543593963312240584602154023906499486108678049152551005589183583893717978570669942660567161924638440100827632553754789096096985870117014418759561913569180691470401548319286829985638383311037146414043463643953283907411504517686300289973046861392582614811882401546813088157276235252252995153348549354198666939271292040999980176873179284099594668466865377217716143230396188143752323534059105898090538637411877470008461973956977561155224038122965692168472378620716507461665409301296908160572854936484015133819564844659298557834868133209543456124295186597461026077372355433876123795296498670328898813666292754175392777751325285837138089328639976253596148396076024383843404874965679007408580315783419035884508243792149411891749350009381543392251830498535433550157907510941545736713991929997155942555468687536967207205887302648996273277993892538288502085969053180240880189612263127245856901243039022931160622394416563115321170277178437554846265903153083282552732090023803842886159405777520635374985075082568841299063212651998358653532527534657882677311011610153951935249830073031614814116024947417129490205241629601933806377921287605058065476044374197482028040632361763126139730368336228041787841830698733746523811894415910999650146325356402851461178313932964167481068678822600048042536598844374949453920409550068152994298453132327281627427073818352225114833826024831264156375276677131050823993292026818994000371319821793990483281555532363581239154719117771385053084817727156102536365929195789349804313944436398376400075522176544131960254192219800435052419959912019975710911561621667556721081719304836878848529176952678858535206148387727205702482806790023030730778682377618857572693660750759372749682016066330784664956629580465079613807253349142930972013060291102091904711352287749036976315486043054606083628814392991786917212550039338621264070422105774472755618145331063383856911991119830261138675408747297434481264690181170651361470345596463840632685068608366222582648173519381115393519652827204020439399699409383414932968108439379886471567246548511155633945042758073460172928099949874430946840590756865045809743575690023136511805137156949286769972378379138276193221136152783390092105073807510640126016328119360295335583026539574921278407327136653031842130482799890287447369817686964459592622325446029451488253540853268995720510734428597837847136752544269750728696697315957090944677472233823101963353599939169826125308053796665676275308818566698052289090133281347944205335182677461446721654378155850211400759345444870401700738494511018879497231053478669358061538132190509776606333723073046463163095360164831450050757442522500374523860510974505272286556900319243120892929672380788348330588733241534815929375453430534878428429461973927824299567424458340732536243934020323623035419717566699882454252674355817521243006976638361998055381462466318942987369804353432401358873477605929034437587283864927676625575046647043510733805044652926895490094079087821857041257451783107356575223747776704068522748636923034989161910486661630639853695298035196197270746827885118356402077915956239277246656125354248794744180903473475876795891560931762199926701961452955316415080032641881857819226059471755905544332950750327393886867252117789631470813247789097523239900084866918350159592430435442945880226341150261457506045138123016929335169943024672462031708885806567325069391812334539621367117899270826531930288284314777908431259916134103635711614494326988925309165577079609773135516039540277459553588363673306686295541166532161857330421951252750179682854238879129443098644970573563274257426731993480090331301166803192484570883178832125835100534009626720585857422856932302980379491245450744615144424554920874952920918506764332208231377642626576528852829871189731205619796213292708888040551202212211431500146026748351596375884464092913238275670072357399779630189539200611492463200662478819599255737139058530721362772107238836289824461146782366363140391379387955708524735668339930209822755462687587336100797966151972852007009792863560847512706354693427274167127637830994915157786625923494171685595377511827316813252321555414670366089336357242750492970529290988184632177692506450950708643997452048749145198044174989093101397009720034909520726466833825067384313262339224915213411050536490746508567620240286589011151724040971033844504869356327210465763697093121800694196519449309153566560309886132799419374084609083496530416654575147077396864161904037547622096020416678103003847218022369391937459093761903336581778730335195419776376778992520369836373095673779174281671419072755879856101269541971674974611115415858270154133512667982679656598994971393374205699197960244408642493748542518250377720127190244391548065659312489757792470975107098035137372573111936114808103368196838403264806319122752695133519884799295798340024994992133524811350428813836836837441447819551493492150747151971112408676391918382428170414129859849157090268232693084295131622277807227888377579677614513698942744938657610046477143735647106753790257850388329667042036147780382771258008977320768133077734400435965144619747853136324758246654159015633539864852626429991385714378748493990030767349478215699272300928761290389020594936165862044705571571092448197477711927434739651969938087484663820541345553637897943581561341041203311289760751787813252847031118692610843934762737330108324061482208083080597305215606022239371291403580540694313826256483182148766719782039446541329195955575114188998761225806854479732636907473296608818354690167291816293415875882610508579000658024709853519677077763752109584737928773934919569848999302316216942040883889846227001464117305351310795839939787525867044292094529668734625243324544779967471826535737627387668775557570661246357573222662554766984032488006258236269801374317444078805541106647613429610648103409991586057983783707765865512287284935267976857049615679476824524679791339770536170138639150694092695657975522824691146266654478805230561745418329811591569738317134372681479181318063542729432643204031613127563123215581837593327493264688762599828563015883538162491684652239954135915328129841973194805089170962614525963670557980326738986569775891754351475110632498577534329892667782774181801582169560369938419663830084978414889079665585270482204299915055518295027843558556069154160122928458799138935346530279878008304215325891815377310148323323362312998964781222343437502536178421282790921269596286142699671032093944897531268560129807683920598048747408566521659214348966020248440024652709883877422500837687216335594251434577032918578792009556000770691798048662024129580330779691382012516567943515968310202668736169511268556961714619832124017702390460504239323963827345660408675283321768476329567212552116227132195766319775447395313599355992413277235942355651897743368158300474572267742910252728785174551154438183490179565987760067360767113546757601182630480525299169806145138109249737067723360689743005180822894662197695786675512959963198509270663356918831561289091203348815853955146284134298459615683145914166429534127782547947452705537043957430231529866008432451242728271352712105354457104308618155489348879815175348171535423679083745528292437686569855234816378309119342609141526206740552200985333319389519850604373928216943584801987274472828392964526122343704967781083391511184639884748530244344943400735736936298720948869185386533812285109693735138244047713794477342136027787120279202330000166486250403550766387571799237025245179794780618007784110983072668588035090905622318850616916781177640552261184874625806089993982993545294903381360163544373528196996094160738523577449849742558904106212935303281532561544099685365573480645159646772789284437109588254322039268106700003546206301415895794257999232215815534474997656279630141041042587539900971714357368249586699046477392470908068571692494163285070905635077654905625717298279661358819197658212521965583117530613029071762468862286864519419740173389578709849408863418781485980340335107172400144173121717274595974762277225445209083169556305204825625025028765942940393643906144229529880315766388124758740244883305389765378135644495435986171698564887117295709659216057950977494196160520106920297223896516260380081858224414810956910110549789168167177936505306185255255956401077095675625382362742063557552042480307965501008975141372420580313027754285786518302766316855646474427370226051518070835783825205967094728875808881409204833057678821021860077367550325789676929512651396051914457553503023272791107698267883949439098554911445232102114125396735812768642734143335810323929783241014018044784071805586369862428381126673032104675499014166495490134895196671211835560426064029795000247449143156750208310381924518968331268709920425950951289417675267800803298060533898055251590313315404739939933613794471148296359716959138332666713478424900810076391486716077057460119816207792815367223927574136557442779643613560209481719467530325469426837232163887963198954339945992762116470302241787612653241313450581150393567236942354566629058428077141080995941405584243102977904772267640285637889202744815325288600946558778201684900586214445320197729541583385963389948450884649371458495973498854745808431312706487309420660285997984928997178623701052163900947742517790640662333346688279366834858621785879475348526741992333221725274516506006781725113105093680498294423049537399332428070675447499134444090371689560555277078525944837001353169470069652952825515989852228409712612956846823832367792334677120492215231208031231379439672733014837063365911229599947535389206016177969949071379270860141100328052639543516348101059081582033665200837164393806359927218538733157033571994434216636458223671473366747852208016966847658686025435574307559452500804453265419318254170166305972924630073873165006087429067832644353038545659180517759049199766409758320802684146476046153605890215374148572138646860847877497358250296272628982217377449195774366424931538191564856153052371122357260871337486522357141235299273249771729734436042677926737395184274072828155394285024487041338161182954172282060142599789895346598858899732826952549943594190179051786852322347836458885096564037034297933548299676915400109165613887873569136787737606711109467442321914347458116979471678791126255669272528747055576643571332875793419625136148650641378610604530606976837186257303676947028867191267317289397330123373947855258424086625349230354448146771317962806515342167733398759271928784809310156880328762648592915800512049641366782738464705578704471609823742168457068042573137930877211932989160694443682620987466131483471942603975797546518099405222894938355784438959316249719963920283368919765731576530197133338769666041362778187452825283896870797438366105854483020100748979625604492173772727979116429829309822617526422500099913684739376635729191186597449940632160238728840927817094583260117482634088822498119292209087589670767914836377670200249359496451502537011940897606842125857692210471718812970765321503970562186086891173674057304689604225514681544604956165226138953603254574120366820251420858572192790123824214103846476810066358464452359135688946057975796049347385603366232798879835540853718744487377028009420779893153663089568585620228102979050059696870761532506364145991964092897361498911272359746181223600719935627417427470558615803939955340164523514408493351497827223976831438280935751689600100761056201372193034181895823575417682855658337563777493360652912054639481052727472785689005327764122971976032286590530096357404622478307392468684755496799569394448532787032507158467657241352078724904919892912628956011868161458345401328196310321966805970865637290471883348598744858208261780816560682009066699414486617200551882604288957736729527001734223599359127493939842591556295877719631301011143935543387039393656540871019919620204165347458350813780520823878118850843136954279469362211963238571523236062309092219142365657956777259712647051664731216563782325163227428554141393819818742210562176584457697213996901932350414481840175679203015695369547576525629081719363861822264998730200607853901031089714403940668745970142501295984836164356083591041278746393226157164824679395710224570317983571626982495679047078367100439046985631474589466936718904957379806761996417118691499663008751756519211827038423983505097957109013772755836257069034440243528920078728101029290660862943004812922524980630214319161080912585940863500568774941919095028286490934276603265232134082296909738708212783932705833516349416014516684913497901331896330069789825721861426625511949745475639138779669199233244243045995886318175171164608090195925190949036910344485017537692661263662412018836843852562026145417622295613328823381125397914083354107504827648008912006091349005867828017244805566467705887760942787138388896986712634560193597296975152236265862450480598282336336056105828251967205983120606109367264899082624759214489113112253636096069360446359503639633950594870259715315898690469188261370835407600468922062795902756247822381271351264830799832642032451117963422615570841844552498486507081293995469471058272752675237752745166534162613518540594228460212098785709959112717978501141567338158524121948195027390761096676756329734217794106611251931366582393060298539377930487125593712372323888109164100888777185041513813714323344739004269587437939233977763829022446291773899188748668626406445582575933165450997522060444108553975173021428884569967481516049098754090287607177152890075931327131360231507254108686823192389762740195719001834592549471883918165565900775459682823976490889725228648614155825884829471739831521471004595907447924665050173394035218802615758158848033171817608015506317422186881591875973650981350308557173178810142728243057315236432794732440299416742647457863463694504183080009840611704027770986337494187357897831780521538133861143847268898013041257040328748338109329069701170594299913590422638258627976106463307600418313446715026562916360193871165836274722693499096339445949160350740357954644906767140867489840683103507410482272302791336289817463773705730844630073091866014010300579569726057343607605983160652578530581147134320473545127687138094275605131695265590627098397792272456785738663967866009685452066414400124801542400155346958372358010631419184006661966832745795541843522651049058894686938025353281840575000464220187430370922890334498304082645902788032464403759990915856697196463616541857549321235673570532549876563629713429219256049655437945245741477601448644068521941036852090274183438104285914589808312439939900660418984693804021787811610807562893490902213975426046559293830166588220113626832924686215121339192133884684422005937304079181288591006764863711286638209293107633688468549150677104277694387775742013048015381590152474881575116971375680114679626896863129604866809702864808973935070790106596430127740004807687159137271294540843012667486398537741330640221779555865099664159766638221106909572210949275350756528234638739709224323992182460210573467959497584139328027629561806802995295447427994358665392019135128235028737838009753138679052011022768658301842840110373364354478804914880186432171070458161370133950751917132197817802069659660033599769923478078011112023400506056170374880605582614240605554479432363668621953011477553230257497720337295340068615766232757394156205809040700021096124828313759186793612060373931338105308976929228388683440681692410086303840573028644459542569054735763469144617612297009458193177128894558261330423706891331255353287943865187626862049804824510593103793341129852223064701898578173802771987401348106737818425016047387187145076924634646927551470657484681768137742765648677039755609419034095434510960138179055564589821453034580166784021294413436038523815199444228657832043212145057618782073311048349530605151860557764986968398298055511688290336526156452841026433797453042254541970031470527631336528702116288018771096278032927641868744407414362901245614562832895391929369680135511418422900713403388261963759357413758002039886436913229968516035385867017749928801104576888322612365828524224810068852455960633791144990549347202668667406678329584328444638440672657908337883173408968154861154410577787420412236291769570345441875011542663546132100228472344136938053153305953092180625823305636535782085949039675359309486868201920467563155988590189879842107619594889323360835297439632060418485983315739344209914571247505528626167344298100406968611675003561878662306030052179312837338101557333542852391813091579547940205971741754462805579738521874611794059697805422044695853165841210304966309137539430362165291352173773436538760558888006538646472466029073765115370699798576868540724400084969537496782136958798897711156364219450236949113920559332016790123612410658288306209267552741178260691578352245284396852966517661589102400305312950824555535883053628304625893143628485603953166746200587629440954101930042666154739377877758906952058403877496061289698655677870819139362362663939405785642711399281322812101157541524574129589067389728669726248925393585522925296394041277940640220338532902414097617351840235004717261487387046984090889589774965990819486906737302017285262356023672648442679637903449301957275937805889889875468317609345154626614117765785664106409157275090811149435808830014137337593428461539059414157237051479378636516812182976769897509790418536910066024020008957794090603577184944803435395819803174295725102353497045681610809304644561283535550923122601020640542825460067089008317642003475962387087508557353065998360140400089117386520035965216169487928130610875606494165007347990333848333859792902431475476835827742239974946586379929052307307180218874407469974606773249043820250924808873387813032781744010622328931680475255978751240578589572505512403541318799784844560048563040414155636219872162719614053564925114909258192135657578038437389971617280558165657135619619628960740745846814716319471243925770579228784664525270960056176205961544427305463385551671243789900527624966782967493654864578515808183971124902457937011340735741497037020076811294423094880364730505431278301334501198049101079694159693832333061187917631871750552464122777148814197968704036601279632701964307892401737907672993256954972379838809446060243136422930225901639440954539737294411967562285281787100594453430387065148771026562275838549764950435534189980986136985332999402933799047119942010081972085198668228659360133561751788906039976546991352046609439195936756664672427211539292105650767545642386126821601212562915415330162062177647303702136098238012433485547861262275453370812002319169075837504335983087396011312342518455831326835939667354787641656317093262499358061108123924336034504241865782664695164943498556145054614169501726256093830540054826999270909576529950299424130803318046888687778826667403570028664551143659938464152194844898462167420237411966634061182718822321936269820754138783408452663338918249809506829556979644069968700365625232959928760743385132189936928857965220328474126961143315517424220553853635485423477477513187901706446408054424995067672951974123375586923127411142674620863855481298446766731999618072381616845695817565939390403852034575062829622186466018327868791358537350590625305116901760311995444606354394514182247275554876208804626646569334182740080220038823562607025263705679675028891684007297754414370323995845409829878826211832282585482954057249509013740910426934670184029059912164380907631930025201338125713080368539972499067808219215907095281096494310010522058613430336835325376066635106130003897433660669141463608039124737851314580720396764630268575332594345518771751230725064979532828364894471139259321154413483071431165346385972734846375471802909730439916183433371739328140175589751172127399986022260343259639633060565379030118037856925985489095411720325173088737978510697502843984847950829470305617513130722080846504292791174856668808903181637494048419635260524604799157383109785069109646330752052821218240546940710146749811747863427183581743640272914222644028190418892991733774274381172302473921207590500040957967935746939721834330331865934166874532901166293385296597444899042486368074348067663496073431052847608278347469858938720238487863021619341748281504964307015901758903059530141182046792040324678363282379788512111310142129644643160059583989359137747641872837871988148453920991607371867216869027996207878877139994519709908802915133030345353850181471895434256658653601339799010473189122012964053820021370722439453749212651134187575100926203770751277126249942816597829182326324790425654922905140053836392333983216080238174126367950450721065177268069831615547257473430293607026617402344474953619417175542452113835282143591617531297574670161038400762111330782688298212136554586139646317901439170680626104404122931466984895713993532856196916138571387949490054245683581814610119355492887256414764203993276366687052334660581434501690382007589889266707276615111481325922384240692241446385398534659802745647351263927898806232757970549773114235564378747522286202916119254903829073509524130192015899984711865675789530438234419621906490198544641854984410538801503445663859902677748818955562406853999221192487718953933499581332812553317352039886940059950667677164441758871224270604662400710852137636772843067432088296769206764881520276943025623296765647319800994948072311683181042781372785449435933457595955043063837973021540539547335801580291250646733985503235476608025559022700848269854523367748625821966452221212625694833210348981647604186589911636157581702188231534745444622523663983245612421858068145985628600460066005501842545127481002272248946772249165313410701262457496307376816806985213776672591447235278592967978709856457023753529387708378043931735592467920298611094805375913815613563805808511366279661638502438609390773422953542982587706893739973057964157307204560188537889437186453141731088456949833127731139829278650124063405814749457275803011376687725558774765075522837269394206457268107868759020100938733886095647741634683475166723884518594021826711797403871000707377935963553805334545844117236791281816701029021861227964559609880934465344180593649942411981826349053891679897564595634379626489693069144150069273864235988888606324530277590234773027434247681948473760398964825353281900829308657729568906628527835572194399683948242874318133176287652076604601050042926433963073403327727194372521204698803377359833636691224114099688920230708427303915671545989666919241524364479567692155423846163589592385528543931389527311428127577234107298265798235366110971844751481732518316180485016207440320663966091932407833301101303138848856334974376622554778305385892965572710823031912346892596704537839514355523791702078596710507019828129566333394978253047323744367160090422704280865982610862901239694293965355146123277554305134211871891232370404635515741158736669495307651265751617726283074858202279260121331008218008991861490802866341355964308566332250023434403341887349210561583019621898946197411015763649495443105739509638747587544488774132618756764953875078879815525546497384569950621595161867480175012985231968663286635726106225948157708153614960057044012117091845670509712671736502891946261062020566934672303912849260253567882080056069376799585929704223912527608624641275036041351946647927533528282525358397636615613921356593609404569883526146756692675130962912740067428282000514415992532069605959527215378049794769884459761144905155670305615441843668600225715701020925352498366815451993701999596322591765564728992791373152513933136843118239553731705894248758245757394039694472958164102967342991417522415806562971461473036234055539154766784718001718702444498366833387012745996893463823891266293360971149423010229565407010620612067491527222587374821086941364025025422529286584556517436631311280229791988770659193950233772851540581709966741147677675818061160823386722973456455371366752759683962010676178728165877125776408014363087496162861045597532752377101726823333641793644901692142529415093493533106922428036675397894180720593104270238957800641681613366405811487906785077807779791805277448882454114532625045417201083650567081817447554682137793071647143735160194320756282422940405352733115121726026231563121105726014825254736036745286492746343545058848446547165150559907539825755738595419073019323866522293485317638259119321881278339131472746165841911191382416072948659779220031880277089227016545869414162861066399901075138876523107781791044429993505345948352565676345672243729597878508500315011127110835432473345564746866422902821764116104113341458915542304043450596130104548792225089807904514102970979115453989097123127347848691465249178631523573314594827593943702648116522068974649674085406792466546556227508899221231654820417994540991332963470320608858885562809620991118982177132748152261134292782368333092230417198712965379301299632068707795518395542440467134598920402828339963906842083408491086824782304960931399329394012083454988052341466114324069308961856908452504554042681094848264501848453969036411496336527730989935462415897688494294410982645696884689238128746470077626333455817908898253296288714544731595884811335434853836396467834142064532309840454089491619592139341534306140134823998360891428061731003245506273871435605968974945899117083768849579741158765428394140100006634523539519265586220154326183360199115262840401941073038804656961782646383210068974714342040651048300471193789721893992101717342810501023817278101968734250040031487292539389813559371586186283915627671115538415985815580825625731955953063730472567789739547561296706243089309964130332766359978421667388005893043655009034582102660605595414640810878697782997046867497043047718789372526626483454627993882785267803384777480312373078373674108464053774185962607734445194328748207307854054738649158358197127058385072365496250242513904714177461660620301747233690968914302435919784854103127032380690774665955021818702865491300064959206555591779338121214613939385336805538629278549246472454442789629147788079618163130201742447211531950780287564670220461314807602638069478551586015436149552076872438766455620055632874366744715125366080739898905648489510842159359384693472664638624564428582363673546547308389745722093652092343920988104696447684203468183494509762031894540846220088757741010782181308986815328777193380756030880118387295497891770846107542351374723885187408162611254105325683127960999000838223287322093024327711765463364768159310076864120082508441506401550450747629317133697222147360186355484010168313497708753081516693190232191438304851128566003264892991786664799517243944141228717960406681087050608978389851441515161312989841576778594603062231156584738721749496115364310425681941630924671705933061471509612266979235623851287813416170808817838630260989347448893578526556575880748696896185416520731997692973434936328910532318298907069474379158275125844064950608339822088911488600823649016262326837362427738071669733882699394522609343386907575777719763944095724727276056847132856639126286465727675117681237895232884672116521977471677704349161077796768887454885479187466778396095744204954218489830380052985855410372635664388661372662445469952138978647307662973716344279474436094045235500530772904443069677700988487872901360066002603832949463173279650793805140048669545308816260901239383654965891381451925499561622856272959633215822024689642147322298692134012074697885466428020425208335081587151833980525601590540213246810628923430093695115574586490223055732997622048986079259168658761992327231279952634403278891118102312600576935228574847446955986521225374674277585202626345255033134095883883122280210599696465696897879641461440314455696249893112781057693614739484252759247102892137346948736159066284818730264643504665216167251723068051501886263613472906128716786714817648103432407881216265205377460256977253154066855102166562683378796737145215229856735056515092639084832936365591548924828468664859691552879923415134347631617250889928626476182735720615815262043156485727385080504498306353772318989782850843297537708327494728814891447677460590002226938862460695593632170342557263153065788458160678947321711719659124455301811647128262554126393094201076807122357251862440432803756327729446203158572120182335750840058339122307534669881055847971265103202145072788254116543702252615224355804842840587703650101886287454522337141198313234373423290780741215133170678380170009401745861370474386745193420219251965329962936880636212440999102834988783197155344506651486000318046736686446443158435350275879549469960921029877157837409812674743118970462497916211529118572725024541893365427714722931975434029754420743691684651262702576718861101687720661469649218636442033129558921268703886372627832855123329245426070895706366069652821666404007469601153363571605999618985777946613620897689575615449173255882537562571709156516523704859845403766255567305099116374987123817844984755924411460683027267359921969326250574409724358771335209853504451648622272901143296762972282505141313045434826637075807839836052250563153627660452067191036761250128559043780407861038991131242700957205253829972558177179751681357655894993756496829640757244563499011903442964166054828203145718395577320652487179644857674540239248196332097244291840598857354982210608832211143693916194656531374466002510978355909522943588846200380833103776919901674587062229818945286236939460695798795533323011389478899975944668330387968462010926787476084622599677059336123151030558822731983710513500398785242348423036225419468302749572383477538564801551142034274912559471192727176121490205823859523995046496107622522947798265169896601373994570951678603375261818932857987220556292200112173413943360959230630038826311943207152634809513340503419075084470295996660886250567125989873725314234008771693661858589218287492037563797624424155214562859352675031969900089810473374352738437298505196553908619559022843585025716617177424245505069641593359800991323787922558175185777641112769244550635768233493045433478220853747690532929582931167197442294499172385139845972847607624084329610047227365155902007317953755744106488719151697748868523225919006819235403923135335117679231254042487741194620635303556888280002666524787936084867995649193248005117098699723234306290671850333013105358715491296487122355432972625132931238265195970820115151834766587664539331694084298531959627992820832887877558428256501564989948266486392080226814868905157568285344556558975330271486210874856351138431534835987699352214215741625970673729285449339348932256672181100976280108537800694672352395550466441266971066750587047791112275510388581105080369569961059405321988699976125807451759589946831193310857778335741383979743707144436386002245230358860404175319971749079459859712022375069425996007962900799628648207162462099212580646910823942819313164683543600209406791101879456380273885871860594631605989084012125665615530726766662823612683570053356816083234574786023545754057311339878494279731663897816932666674251654959963490487374436165801500280975992806358290769642733347165951108008507827414292070936885149471677438137604674078110006080638140694210779425861709075504331079985594405803372799867343315417638127638567351187470228147547393338565462853662202962505938903420889040143999549697298661487977943720349035807263726003513688696592430572186969371916817334138057200357214015140325328897423995882550025328081269859662604921830803475670316877494606174521535212859561107444503207612932629466928164844148575363613613726866039147851265020851340101273261593592154114930496413700286831965860092131154945519699863859039849358583185645050975426273140252173712915371959358636594166239060823200307812386960923734726900416143868897821623554376173759300001099392150706885270118093898154559360807186672019897823293415513684980641519119034046890341684518260227309381192279101005086296332257643681685773988949336153392600356505699633155180113106446272615778211062115922293216546630719892754346655735919609237377719845112215715029194969605619936779430744553366234508988004562230217338588952130920911469527383933648723731752867941387658646242081250204206284508390160653239449742163421253078578830767165957945677447243997523451018910322085597937386797055794653650159478035061075608409542459908109652016451635631166871268134700283883123876271765323196034739903827658822948679462361027956009669926133522191012463660273876263054148469735770144872669927944634518382520186209210530991151529146257251653673747820243790997372182142292601655030133932444305100163729027968904230768088849384723001324489542277147949492839266374976566652269343191874185229303875899444024018121829893771988386021211466647644294142397254068812779057442915607387171132371403362482094371067818859535268638156493735521779395530568914716483658310580561740744893763237101860747149718926085067631558271308918242037471592403949184897832824208171722028124035759007977855141770435298307148892814781229893281445507062789696326771054140635898084156002086516296932824523253575625610836050363777799660198122441775674837378211185785133780899902531145638324830670351304520080312172181609502113720679313063551681576985071148793155004847186860609347173880138383464812231233494809719649823662878281991565704445024869120575789881464639281531161661800920988554483229584021262385267801800920504573635199680135040924854379534626772978111083459238519363974154288693298020488279482467382451914169092157405566074663791367278057098819787716057744137383432070878379465423125302456522028594758998804536395059794728653862781205899262856401446074998662033782276379853808921154644712128515073346466431691345640450686604649875061805504162636377130437330294058548346317218701540958405971766835341191804526108475373546968713401270357235095553469544668147943772004949067841958921646706260616561446076152854833530731921477978755629556603469156158943480421248082552011103188581479244215044978627098789633446501872420560589376180395596786025151679245441516048976325317007636813861155222411580739619446707581166844761120647034705457694388486042627133072435631307159044455536561306090754260691296999390096656221774401926990574384071913505445560549777011526963868966120147674472806756395698218432421922764398138927999649846630946256641452301061580271885550097902328674292700965323268667155791967598406079516685889002827849196249097626316838795483233066634421584808647939579574396384236967147934340846585533183129851177794275934651156670155163784429960009666051760398190550657191175092957274894607104149187282507552521973261985012782774711051480139914913006196984506452588689015404006082456625843651534382182094038570302816909425206338077945329602469547806703384913569610960422647517995381600780572771037399922450887793109855588134246075652931938082736378792949588274045617468830659686686285976862029968138536638391616533794683502512314701075232651607789711856130760556446433013924225203610897044063465595013488829063378249457420075278474467077944895039033033438008202011626590637016816322569968860380840351724478183816746057666214059775455072098620703505587925568303708806962701839163435931294684497540714469486726070661276347039789488279716290984320892955581527622009514774709545881711954810768303673919411874560246577566557775173162266098840479639519384979001706424017199573482435769727254234545751834483609298782726972425436338452178742957764458805506354031388315594353564933851778750060570898338322391439601560868932985400794637211826958800339083916382956038082378696825031036220635661144034778787169206520381674964608337363981828976841386364148300721035573501002536081937023816289723553017476813442724129112852808337827646356886407195994330904631742395224288678988585443706333777624654367157606087916721931180988326144958476879820018922867502753257175249357337230650534226771514777823526328087782005577174831689797145120024631928045701622487041463310911258230823973226784898739297955723031080126832153723554618766173792765753115918908647566746463386060301162739990468249729223760239257810556347001657590633974543884098585159633789452443624050080703679295588714129900846988993221125454514457457222595140662900823815942718170324603619351465407745154254776771159451625066640818359519140100398165858741843996530004937069770877136893331958294945523003835146208961656434289405610797699376625612649797108435969995685455428721078756995902984402076662852277071713634118374850081765228254652514342897261024753636993051712813167985673722938031753283656485301627358750285613873606081990960991600879778120351162896996067735563382271142567397944536396953230910755625957383572842579784270582264898971284097083544166117647657354473487656633149424018007259731509977644987617459010030541060302421299359201582647529172702613999386111666619268762293894086638030549121049025501328119551578977638333219285938958157007235652049967224545815504289017599910398808457867656648547032189309559860909341729461732918624177921690193500874156536040499155321769195362453005869578872088139087906985437776822634088045760451478531660906417359873470102702203503432650483473710718468297433434676554530820646889558386790689949204463437559978283244485630801510445301437770458110366386021786726257283007757947766063484133087080708154918864089812920932026852416458572783989916246686117873733991649005146845577501345964488522040852098342829253486453483175572475484167754638958779968816843066011006995073875043610172225007100949854297562534781282090125212624156140744596569242945454070302150205262898357097861818134532825706408593358627769427694600769704060745597250214090294641109241488467700111469377193972030890948167165571704962990784889373356379137090190168950490511960982311177663325098967704341267312176549318017353817801488873482015806716073897308942361078966590688386609194058293256746952898910117740280661815643325835588897351657806488888537279251692060378403375430347441191953939926024860583095588776430043135362483708674352131045636072232098671357475234797812295288181013426044010285671708703093944616389545822179985254484134835802710355039307962568948328821008833042467146907249184516185116505786747957291056449438763648009912747627704009162510598975599144381180482740968482257949817335131311863932119073389439115084001594561953310661335041021866830443046435881777982675309689701809484291413450132709911165596877301269190196598655687089085197973383833879534381879214364755218248692784810199863003422680582613687373554950559939834904344645978517033687179005045687474557380003041237023840762287469052128739694026367161594529645987990366265240595213865933216946699831163425275144307731060534738809091126908509210021690105717684833675559264025529615827785324275743178240118722075072199289135077820013220184213461296540540851593565295774677477677889242003874120401080984976176395742159577020576061763969105318210752102801727147380600061603315368970151984378091258414281301413633180662788369006107610321321923437537721447832675839707676040761275388511085246088974614413943634749490504528865456186324320547366564590623902997528043399086735163728802924332570285882329209773778308495944120352401280899659559801019828650203586300825443764190200869952864358206983392694675855430732178643905291742511101882622731084040782249326531109602732856844279591446032865774036110460675181649840546451817809710948288280528175114770520411311937274660582866509634089024160301030729679394620411752023294802874825658488053641253329804215326424810813489550393769281710354824691618304605670306573765453617494547156927039750819490815217890971238549451120827727197913744981539029061892712681847590637054606739521865109042890609757252161444156581923444995260609911265250590940090386361539386188186959503940305957917872431555241609807218872299918025601438875678173110361528592928333761353891786803089029859326451194233598190035578210106096997514953948181798284670728627507983858311476984521184840221378516674127880519206467379649148545052573467772349100915322605777622702505787114579971959627834885925516017736319564091259130877248106156848309542199562791405886973970112110662868294966944995741799445590604302466982625777189837109064383542448761413778992107911678910580660372875247999875061019256827911053257331292180660153442994645612205703227821148395379115346941520354580265771503188568175911992111132216421843595607195780657341217690032689222486853215214492599801937500525901083041361450003071365453590544459514486828187371946222023318443109865567170766544994205057554973264541151167096315612923163522294129774709449222035079795589687041937236929885494469349595004972533301156879675571722725268985535065222733995606978026368090396724364014603381777533999738528065591899615990877950057553453757829882285260268733371171840877553905931258435190554761752961158677796873471137232674218452117836282074125130531603338538349783132711292788049866225413318384276095006282769088479891684500781149225864725694475021282419462687935349491072384676214075831648743338822442391654716371823516240930009841126513246470661427358279680096856410620616494466871223281546751273655267156408685243954596121873707717840656521788735664769469849627180491494570881483442229364247912030096102479549580526654615108134724226708181228798828645788442523301690002660645712908253434520391096005079615859677693205761501842747000503465801586473756222273396140359038198361680824024259515377678551128417216530494286218310293809293540617735071526953317162033250200773673065408342801058080549856306970981238209257790655441214875131342272604707129625713688911836160842924384718145131359148689169309577076089228025867960002998782695485820478601544948797581488260575496295154328947108966672088745593493181057684203965829932820218067306659293627538972055626259308195748669473008941784071193856373696279442347476181158785700807861497808604679233328586103755185436957155966060074343224036427159637761369465985033378469960164711658627917087369057810030788622723514151266416843459484711004912349046440107466642156801463377740627881232645439209413551260933669178871403208019183795656744854302124687059560407249579062712441770564027637204481678121538064597966626379660590020271958178461970524966480723126050242940466511145952687206166392235196843729884475255682362310434644506743527839601806690566348819759709651626502091579434367004254237535476026439931468003190655023448264899370432601032457891008746857027034716013871749529339764813080500772210802008961815382649565387929769821790352037080295272115736584597929904675091490346018604071772697564538618978339129211568453328939891717948312550955491274132600845391702703057291716850023736075934318606728885903908868093269131390531560480024235603028237564513345740578880452944062618974602607918878663429519017755023664218125063731806764370599683970247053395457294646311827897851758156383187661928836666072659646720383603325398181987552767721803351638121318042846581846021344239309911779744310980444014371097842526950060694569977501160061427157889749189703670211606575801096669154728431629035345989146989711141694185693765829013760100117589610659081397516177491015780703015372205188592287067543867709433026303611676706226310369779354281649750542915174768837686654091761373727511734966311515809534426050928130308105929879904408814151783027774426099643374141938374661051800758202912587362169348908323838983041932620613070173407932690120991747195168058662722845430485569890511854098414990580061435068904592682072085594683007639030799119616270865816316843060448756087146427441772150177442941667172677669940818196127695686052501768254806743791542280139469680314490492254424309705111679544544333272691693085586977157660864098562427865298983284030866132013711092198787918046002148753377820885445715381403596212032974934515563324597337945091508388135208384770821356368810416355595820469455999385622443870529049762936610907212200556448571584474577810198897896885447181872944243082658335619855967242819252876927077037071295290133734063281775848150480296453467145983898307731174104773622231715450785557550880824732366292668613765217345374772790085039601909445760289253583256232708190821364445019269903247039628540708173596794413935522896243704734161686207901263513278581939993686081544729514122279757799699500128649755896110362644787606480405484218767750361701064157569685304233263685188927292299373044461502139397369223679393811340983249858482772414184213077586607928802912463027059768578280351774925223000208099569386521210446031786130711495036920399357594571901603875854480950197605645410159744971262821024505553213499563124855520975798976961326699354689193140533985557317423388235472308820340105733149090322070508638964533489514054064687927491204883744715496214198020725513682104650056654612352676709078554901411702634119911615701299941179732854659382200662702591723071099824945486536931367109594452917577425659251132035109289894016872882567844202067332049771570528109481136484772150563501280030520136172852138189831414112686081370191274286060930257671711857198763119083957734946632571278726104515649473699470834764228670573893969074717421359243524534844181292737861280251497446594935791881340743474247034919464640591273654646453260262289922582238517456810446894548214862078331266402294433421217232893811956448712714433932130889506002193885921585215935344836360924106497846984290337936026096385106136696220885977549543354036427957234190142391522129241734816901956248538455668229854926374109774961572850522998686542886173692853965861146858941028400178836927618629605241039851650407261070372814970792530646813493275769262526163343379981562465065288045049247895152861939684926404093510831152652934391657792193356824716509655885820590041198281099426134164170744999633636405441335636296281617167967850462574756134089140894692567336552507192748063798464622354532781841952219299280278535283548637246255586662976771553710011434506458187317575942629427402277944101458982189089403279946691097783635179494020029628902487238242744832038210873227791720727771363851890589292696015038765524351494914833238317731655434957998325753533791000248889876282245035970818259829474686521780195745227521977954598389753831497454149934846330357725948609933771887846291130620141388392877861601432655275996115176365331271351634749640429285180249706976373901250782974659840874224103663544742129564656173996713620550392814032919324801158413956177038208652430819450604753964168087178739762933538731495508531729120915197784544587142537686581297763256802035459934450393765320357896880453510884672223037546634109325116804219573746436706352032400435781026783166671938353498991611948635131135084804378883338355987288319263301098963647864562145584564970966711996705067678586353580626369263798039004070032119501865770294794501534996834753218450045170190584111513472662140255094416057878806833904831194438515125840852820039854854742293764594842720951435473663101054345281852108969744702493787591946318396803178632238243861608003134094206333034481072433114311315403760819199805372468955666707592045388526696836950100583518753490428253544675014872667849597768875133907185400229987198625256523412384234746522802476251051687873419022022514111044935657834336534313367152816830689636633055922441681001437793912272406046762916799430389877872326544480926120696625474808520927744790569452643870079564003424586244292580787544365038821045773296514012342323743874204974413215108881095843058017518297975813455691110206969842902554801802751068925418862549970267035211893206989046472205350224010279597136874640408375753040459874952676120380295818228735160884120626062616045687056269092760954129411085221803958308516131544339291770754751518811203834799813700671307550209648121699850902063856142761665652239864619018613437656740774724750311719504316420826130260536017043223236308006263631047618271979388833010956001764609640073840022658104453786427431064826338882161970942958723276161625259314965588840520784462510035888263558346765189045545062697997637282256569534726026411469174415273903078161355427234121175186098077422585005418385825475292026551853718343810318625664228865431934068647241843625893341629049681899398353543659921993570129362948269511474895886112278212270886878955265206210092422821106606037812395522748681709760621965794517615287481432740773949331592083320512699740070718131143991882225466399495041749847906206457366477503095889262521517196077559714421852128794827969696622613004198421263186897735418976600304332634860498550326148960613330197188039562470793633913205804796708020913162065051615590042418022497729649955886170690327586121003579706915566902503447036227230108480482412663113811873887015435677786312066886121922617507194393185254008090371369682367801246872230458593868384305198779482981793528908379650006733173215466191757923794821334247610102978015603062222820064673570180001372986744711715604520389313892393169266803755507799918113096611933294480661909848759335208055298020711099206098976199043709408483113432122073026774791123020494263586712297852570071917838597052062852172731440420496244694896693154706776541952111918459083776042671011356334387571883725525992568967124709533915815608333258834580572904454342130894264303414055424535915272942756214071940579144330941482454323652242876389858546811189898511867440338226095920349680549179529137762300615895762504031087437641751113022485670448686851927070727590865225212162302210653274738344470495407865729818695765696455789941795070895763627171143999899272906040525359729834479371711842651795366042056092368442360979989710597002488017796757331597276315530049625239366249459284978887783525810222301902239949459404743361872936440209713910148542329394097265992696410418870388882735241246097717779949366260048887756701375720927781511799665598096650191580421243413004382107248928582506077888906358961753227392236977228349172833638290268704269906675512801928747657709170661005675940858876321770411646871153388118720521850835375440721378338821148457686157614215815834325811016458666507035168769092202767393716325309705332569560850447762251860230447690487895438522876561257428676044193129895793750771667172733294318724200565173811281189406722407320291977560739166931408719742447460624989575807415734760822876078528514380026034343699335426461238801941429391990377879482991486439228870557301189047738262091199612512416818415232219933980097059426691633705872086293698684265972510950743429096796706968671432311866256996491258405502371316777228341522451380156223310981473842576672445507474516483951730514232474671977463188386427781822785747976565653718158721254463188559992136868000780996631729534799338203851467525310826996632886928387642456797936243638954954345822072431227536118226016938177680637365127099000958840156943542639752611059417925016615269906907385575587304860159023140245826785334918474523154746105727980539908377234070763992874166113157642302100265516564506148712541505239982011113142492882336365465485192026172213604996156424845088042666192558164160094722505654528221004109814875212160131584980212192243921198401542882472469843817738173291376662522215675075658364859486269713277138196781195826191457394457955645590149843308050254943182176060575886801651689620508539653428580945780486795505930219098624228663789066360820888209600809347798536885519190709074832857247421998576858049771264317941634808621267683042598966031542047755621692395051228459673606409086794382372083767313612645195480665258735612667965320992896413352305790518126140327447649276080176175496577744765097851492059782493942609443813993119382008787088058535133196913358925952540139586310376702069516486836910480945124396164267493853425858251102272441641163069258482716673427953765568509883583191476232018626692223574923453462570819458827939493543042497907682117861266588619288385626821613114204366620331646873865430807029312606749399551891661526309226286804328174652771462459122819482712191321742707371983466194077377294077907460998502802216514526583057401706525054743107170699059489464481372273054783968003521353546135356238232658985008123695458681417527558710166906790055610423979021302065217740876445923673117818879937791966511091876310204156379906558154432624997784006076953719708590720147822637268431726386897074514947216172387057295444647752965657304418144744811172407838996197848970411458893954979245435981164568674866913240090212434556084229476281050618380809604508958251011199964546848341301950565587256512310726286672423112746482769897633923703532037179617326652480758042969297409416674090964541197515505894729017650982423018845789049634565550803285355818752384402856148129036559408030354622974479900326228809409995707844502738143956845900501331222791657959314826085563264765441641165673353602544370084948091700816846084614001909223785280864574186015852890249111087765141615133650532639665147120256339762815088048257390721819693957999985805236597512849243214232528706020420935027544847949940274288321299297432735761044617089823187614447243402887823342536654333315143881107031877698342055292081139479219007890313357479112104548967131054548033854189483850773782785834607559461392419473088348740035541268750723180393549402645095989733005809482761226990723114799772230165850247314150429686335823928442309085795018634323340633490769258665025459770361380378198070813272190212492953130796383648460112907934079558159757411654988658579008935477274267121177291555813241871042420827518515845244723264282169565361379017882645345446371843193140916168775493190164336635649227065334709630896299178128532036249328457428796305538121030087267773945437487362884453415064152475559788661987511798291274070618607469264688148268720313025465639978816945453747513068580803586914162185933010532423306910379917562879224020207206995900129558741289807153186611975287337494134782928715133250134248215299607572480876622538872184616672130590816822315385072744773602131109483008687398382809228544136780286776070317542822723720701915154897314043172139473763715981906103368457256537060808486417564228923258281439066240116891359411108378190690534318519253038452860583317911164578279567014043168761609383391190028233011694195711060466085535515529934510740462593651808945783983367442742314607565540932156642552792742469963697949027464464815931462049289101420238899540277115458716583503449878855005292955090482161873223254937402896167572415160471797547125286237618045002517020172899981379463058920046376774946495044235997133826966648495791337012999270521145204193516951543482277484888049149908268725654720037046962797652505215567075444572004608949623655238950364005010782274482748703554228561379624503863429414327308718618343803830818318929511773069999887902907873668011332371289880329760803651347954227752069168943930362830368500155634286731713650240707279839683475706889932265095690683453056371806792021790216521322548915527680344337374415534821792980925738034643304507061695289196891339043372449295027500529879767648773079264933413597079834559361523662839020143859446359664155576959816943116962992946324629915581544691519911759891836962410046693636597638879215562272231666211879178601508941501715334561966586512658528036099226491574875004431374371750732867610184887253164076989848935250147090080266497845858841123638570810760532348577459587690903468444208654928143143383454878583228906267346466554710008439033631786367685469638024001478585607187789499515405703363920277835088331188918697856096305840531755582803461005926008209621314732877151576729850157327654336674973809916964071627469642288595928201076483523891152199334466876062640570531783316909892844495909238416162638947232617543629209267294423887582889270106440440682121867629540021443714800482734101937056439138642082746756881937189202813426391331689716933772663282008202164767103147218505783285921015663063097615856664687569286278815831734581720341791060560779072210732181995966390063811166934922681198598150058415586602091367201110444137463322549675215718759898365152428694005250256717137567712619861743612988989468157816394278344847093783814908972978381598795728038464959557193001434801215336780474577101827028943911674395254803519694422776551654484253213975635051422167965707881090341332851131270485093019482803243846129553152701498076596570274798941018405698019978224212066656727608398714837288532364736413808999863051389527524100081112124361969537783546950239986598210312314798278349164528621805034995172848001782318872881300757600971528937685969336985888985352218567944909627075084202956297509634639819445773946344475040102530515446929255204582877851290593324429342435877324825203488736323623277387537733952286207999771456458639165012432813754334616614814085612394582083260790685651955963421841285501108400824888416672595191851542492888233148199461737697322279033067106581150240139417478848514576594747675292658564642312598907956566558376174437120805225001626728677351184171880157032592244276215879113155020423914161954094977955680316002528110578074537321257153055396787366423426655514595705843514941120712309183109619520419512446606206623474476242078063366407493676125709828007411716079798484407702890977513881981938922058045823985227785963689260794185772850867373584168431656599653579923969656527151567053597717627079358495500178077867449434730861000804185663738281174809850277935116086604269860530498203466659609244117576777171931812040077396083743321224918759656880101178791874311851477781407736464841245859493032383517167571887505188359896033363975143540514419761637382027666763564923065112089730480993306639752891604618084709658413014532922027655804380099639018035752251487919521648176839644161302942390306719193180906840052725010980785627681069454161141927607162926194963990275198450932292461084050303177603786841440126948121638816796456305674921960390874843641804498685961572889067460779177456228797181966689623159132807591326382426865681920102634271668171468879284823076420071083065921459132405656740122216692276459258394588874312685454245013661410642454627202801697030273330611559898402483324900906997155374962528993546166039177086333684827397756445330389491316047664008046767176921646324076211927270331003193356346931368818182119147588962946488559867522893082983042387700482734431728297677983340879099344050859092225319122458343451404076058011437306132341179903998304418528743376681896789300430866857245546798733159443786231065402941343029107906146099797070653304916879179521594230007564490300932486520387259176786822256453479355162905011074042524577791552132109836933229113570154100906715423133178477315634307903007917966335626597504968218774297365284348739084105830401334004919839348346336749648937376961667744294056454255295253401035075162772403565684010160176020199293405247238757982886272821158968383680872195314096498435274361101454584919036479614827687875196447556967515408986327083331807817999763274515077618960078713231164801114987178041963736889329232979395599185770778455283499380426213430398006566338095698436559176671579569017717360197238904405773859065488209820558406101467152541701189027494194656815884993439744743299199682126106730437723059213489168078291352968112313023264162236350374257596213165775564662963405618740507427558895771697620838568569034060709148383216479871449124519164657246075981150961532693282059915817754239096048773409781498159046688672691724974385002253422231126646073110138851589641755876847692809621174705307614950617478288778165531213133957486916171603834609791988894648384392305557923744311269919643383340903415741934245978946283005667720387601503701859066363970467525414820215985166118953001492360262294267003931863291513833550506555893551082849524085688101437304703398770064838969680651987020465738427365566579940672409989788628222708586799508120395035536198455294769730094315372616997578079347053711147922331582175475583064243325108097966338117204380086619338637227574795419227158152053098720536291889076137935256613226731008895878612402922367643653153977920878621265481522100753126269971193286876302463749016715168056255505613065933136391244367510994391299451847542149655392125653546152146699908543677881979501362201459308084882790342713088026836152921543139565555891034583526400267427228772410360962345387433421224659784099670676207902555939540261247173242470284171832498343341991183566701400859422945926394298010452268175189294865054098891385752414438501517731105378361366520614209369987318669585838009565911717598714347026603161549812341641594523616725849266722761417580888446526375181258042473855390005723061291523837079987519427337764038027738600987384605837314091766250051726387992682859485483305476172107132758942783689556514427412711654209268328762696593727629539342310893971187925183399357547028962438120734719672344972166585180289573274234131580479504202299468644666598236448754735628799812257292090761481263459967054420198743229937947379308267702937243181732059443299869455202850925212043029079014705805582333837636084216784649321055282429026403717237942984131208101953803032867607821729695977787442654836798741769833535559581579517873511857823438542719024221132534854920154534329090136567977410873082752535227458079349156639462552307070169300402505925396203743915075827950449969317328257450998296615692415906089240967722521854454514621985667679290664564508741911716584298912250099539095439251532020246435495826811184293335856932678207011319402675235234556949156378111371028345517820863600101913224182370742936687071799701246299926843073146787137688476430319667671539587186981501918668019909299829884648516255011064095079668615313359647495567586182163315235246801529629731764317753879856808074214338472988902332004555629553566584312406028165655133925743452408245852729926354976926826265429099512792131442806208740731439446915190296680638749113794046332414565163311406398804145920218388112855954796409926229981125726177323928929868002774900963979185214133950436220031613350080137968796482796805848012132261452162767079671927835802456312272042281887822410078253317023501017856267214733516956719469286520131102496864494183159227705233778441549965523835839548245536979020725317455634856111619949709577268365129026453201719648158281033863342783953424026035381113930936844433208107782205577334476730266952424072276579275375632313330352759316899879655235387597146291021389507387132333248344607713158747277517177991769034609412410513754042605024333651464777727376743284510296201993655004216501579625449465350974008829247907734461859799681904373479383884081152569522770923603796478904934012247444468488195710205961337871925569722013801857855276428739484827800639508465481448504936658052550276292572922441295754543650780568139142834585017688548859622135533207022119647034555842864938526481089427904826223999813078886866934064753830793669360895188427893833244757622239755320593039499523557971343270926544095470409639366431402371896427107820863153974778647471439948032519863418589350692698710628110015646739667097333299627593894265613860086122248441181443201230860112967720405196900819564313003991255201517439508236837102673767431543659886173958967462369799583608820999231475534805410408534880696870805840354467692756242742614245260241997098314218933558894362640992299058088698930779353878906767930364564806653527878044971202305208461234411216665691919129625049224307083015119482282443232273810895139481273347830802648809893502973913717648198507852067449471885294979525025306330377085758290314811609163928268888424909326927642733597040500690221077928296647736924646685400463758260816802835237426595365979953300739152871239066337542286458101031230073127068281813922464875847564699209755159458695594000427504802145114258712510115792411301591379058755997040521971306004962992844105360493043798212454440345577094132110058163070986820435560410998094781911229938447170423556042164460486062484623081329973759600043748021884009900721857945333428239640166765707434750429078960083957647384711886994612287030130093053293037478686101675148651919791219067464791676294178378845541526267948904259354022750550215274829621065190582718133535211377614313828164371957008967131786184541660759399980493902579031583933992463012720689565788375337848120210943820907475401618763600410308577484395203321907982468204690139391954815039056772559901542679234285951525184540636355368464330640886086767087076670328987878438376105862473038464533445491755835280961693136616823450277098436665806369734281788933919503295164865692418557353513609276619329539763140126494824525372807276562601846051201352530458213759000288044219117022195653568148305587704011042160786750165265854374643580093291817365971415228783517910771751728034894015117000962438072115600807008479685815965136611595176690900719932969804576528316947377150544266415439066743581149801645630433641181644493231098505063548031077677202337503691574943825273809706241664661536648307295767820215802957362331077003031835494451434821187944025286123473183605235816638852424194561378004023585248946604750041690509323299381714481048978711591467083804763228155480959338514980928741897048582927702705252143684348883823004092880291987869209015365624397013967102424841859589703430022046851550573376599517837280628106962181765401203304648553315845483099331619958014062653648687601030627391102579933021728249724179383821310898639124730656694918612518634304702954846604277363275087801332872247467142633199060930642747723614066226717976262334657323258385589489087178602697538358824971962022319366551777365684189194856081560783232893944019256247783939562050399256380199791796394113947189540674763441042594053845069242980284275686256061964893827823496289453115159854755492033235719951688222846138001004317178578894828520004507855157805484412783100191604280606076577306953175596920968019140800667564160187173780128126619578254608773845181443733390631419727112804874144493248687412294934108145125153109996714199808900909523289061667196680921907830243168402820570643738659255201588477263250656468303517729623408230393549502164393108253945341248284593296913907132899308085358804769974714293768242458117524129872206676692020925647131609373275581163637802352598427941268108521004618740155223149032400455494816724388220889571111275079192657694721896943507213997965441889804168277885641597520621026902169179014945322972763439618494908782256011239349349988940291373615649970267784277125876757417201776334531187093465105359302597475856020953934273244913780346936489337701682965663703231705202458020707839626383892410357791341448139541272623906107975113242909434297101746505372104785294007690728836713337658168788734029709893511198444961344818111074018830347765814630777595342889475708677768535730873378316079109852365940643797892822209938457594921297121462941961341232800178495769176656366542847594645702696483446589463893975965257017364849878479847949245825257224120343007310422423292788671287653552012516520756696843295955231404167743310514850621164573758683450136928538712272042298367939399716744203460687731842605656679171477299633978941995847409879264644223650560603405046647319178124518681356072928188502544530508487744299477176350822874320777685793059712628219004579528154322031241075114489876681155816042188332873060694477381701164710206766693660669815378937899986110660531287684962376624104856351226698323628774122550509181568868160289203488940570999618721711283171245702730616134266884482524794112487092578382039149351758720178746662790869764087363554572672879287672292939294793506124342792471682794649869517756972383636609650860754627433180691900523569158366775664604553020901934205879431654416673436459061283772996186016252603375900622326539067255480188294043833062931020245812183070841639729366990195053027371495117422895123647609661181321748413613601975576552108836119650986257504696644179880158341914408883983998729131033356957309069004579859270509587400604268175060625231175943510807617007433834851493534012320419531404029690903876098610585444209250582380341764821253287291623548243428161765705765085751523082042331766062774051914836505849544050149923503301575913205262296789972149507105731198794043334518405823512716752744114425257993155982275409563414305049738499290985185712166195595208058755905569136991927527914382026574085534011985347381300921789736833568171216433592450243384021493828006377680364228101142417221097914177487284866170091018312107013527337260949769771698913767150445297561422557153304711808645916052382123400441691241948468715169185577034190248971111659650183356675917361658224672671044347055945051294812107651516194588908263956596126586653915418779509610217750424895791173697573665520095510019919223987996453383029512113580361845656528602967996939519074720025064684140347548991828227100588690221923928086980970886009545387137514873294809656479546158006966242466301306359796012519134911157688612020121405922481438969664836402757077915654515153886409487798738295638541476119056671666040996502194961478488660647018832840627541108197507346917433051399295847768699777053907545297847395534972532733406429286609750922425391202706890056823623677695528899064066090700234777298582722237897296629306162396293983759430301749284406397065217744595101770974572238393784137079764065174172638357810197063116190579725332494100463459615652714212349650424958848086465714263844434749322887017694932142203422728951042075955968490070205145717930493171096290367903802991213666084862025875669167498985806057318803712247994228724123760570187566608120910947622900633424070793255555117312560301779343788747776624191457737779055981949858844415360684077633365038830913423307065641577748173851066592226519191294751672106202664006516566446199800101259126381550777164715153433824617939359349660616452495721158278810326376096009620517538072687632987786378030258818366542612998905766456026479998320051577402162134714000669820584348134618203798360458243135577610861370866229327321877493185414883501746651711113358385902835679964449649404472495293756442540408398683814472918099304616040180644042344490731600817438923781326717916070208632067232036806319779014233957094821608642653567258292917614157120753053620782697269434111164228413617217547697604987378060435746040702297046122646588310648258731828056702277360218060420354272025008670307416440442907702235182032242491189075954992618144666545899055844960511205851581186815510331210855181126427156224736825200566328729618829539956929115318144497089496071952606417228775570823643355919613967096525355360996766908291910742544182716102973436065284382674652564322809212289616723987438264128890454776621036135058650539646312804161714416915868694683203402308982459579131713671442897799698078094349959651496428791732570262410290235712573877586981421051950173653593677084820164237458845283439736233199788678884812266827158716705263774027574702692970034706573726837474747966017776744223021205191123005599226424062758101157191600715010885741255262840500767739261633037944362497075364074576653877141972600458455086329624491689616653591357399209916121689307938054136835901703517497384349373305696986024212300297186707540892207809373781614560063681716889232388555305318327491440268916615675376172336073582174819180112099599477323355899830655425987408522842849716626209662780726043888066249796620762409924995016246167966151196371823337530217412619034524903205082825291853719108641903495942568202293717394544573929556637293293187023247626735746124245663302788494500671230048112526477629600563583892592424665544956967249648818085057207415391723851995978438258726757848376303887453527155240745085945289116944812308761989810515237543151662450493954397948165740084539457849167011045825187306162455720336114641851131411686798377428362032609759568830610325548931964944717752859376792890753949703923601946338776266746214898811293796864500398225481632958585323505789967550476016085933357723580236612284812550741627182821204193974550340827871640457623975237727011809759139271132800062293207154426397233986874729102216550474182147423746203427744166108288016934560075789453637367355082918997142551269225476636763134232937113516278402033890515736304863022429688304282412547448072587979237616653530488280957781109938713034239770810655323810799170390748368295340590255239342394560799672729103516966210933182937716396156901594853023631593163551328255227946980139784616836800504846795769356709061115281170059534624103656442286149034147967821657750100247380599063260886800721725807859509089078325395320422223729747565788674737453164132018969968811737059440872145533937177502701658172807455933954156747869720157547026755510785206226616428078294511732667313964447747979657790480750197230002181555961312594362049062945992167696149910950370223013068476941587076793407605070416782376452828341835994638135101021699360052228778156666738937112929503664486364115329594079387526863672032702155753192992053508960890059278938730162211437193494272517138152960864914341498041951576200069038359985289196733413726294245462160158403777913617140844418075122759583474950240912131959726987951375010118042804572901765242516362699276129285512359562172350837405967407241686006377494679340030526998589746543421948288629776044391795017064475944697229973071655393218882682471538585413836550213173872484203209095982061416598800315415813876264490233049583410373694876298903126540920324311762703103562089710094182647690635396457505373096581841878973821810986770271588297239345374951831257266535659457558788214734367039033792012304009321924371090245082515093344503308539620889607634397599819909100541302751124588006418508085935144758065225602766018552778386625662060292094109023048556320244079174390066563670848161701129681748540223167441100815786334950620850907470114336077825295008535967195574667248016257016253243212117886801920876553159378724659549696091539025618679698278464546302122004415528714511913629923320821030239067362698505241426254116888773323903532274044879193456084124823442754025670199496368649927324220355345756798449798386782089475538063476498914059925934537701733301721744764779541605311640212272338020186572791805321933014499249198811125237808129943233811936926018193831477856088553960321218142023969112660946383308848147764400288860544590415850628344031566673771897544820532124036567805527440776830093477712865267357024691899596147604913645850830475651301270859021706948864008104189359198737577704550613655074980718965402110321298361109745497730935990866654337773002258844895747281183973353929337568646120155444056773791120200102118442349569503002469633434962055450838816835510611821223097918542042777006411250029122936946176501014278742829403720201156882543254061325068307390987535903162096399616439382289870818292205031362506401432101721039592657325134997257621041756260874988063345455494870084394274461678673532641336030835748889183825924794077353592051457008554328990151941707855558797293961668831846414496519168928326944022366382760730571053859879270488740837475512860196353495886549914144029802397304857552012786779862589512879043284310361410292799604298728888715608526354675703966408492979115879206286068449083542273477617354564938507250175833085278361951419634495031398529485556767625250482319210321730564205637205678746540397409891226017157952013948140198600076840626371161140395011880379097446670055427716715304694231946194126367633345391506356247804679982517589527642262588637013586929650407570776999023744560196011848658374069633410816477856861028859237215016668061086717971263997673412264925795202835994908597836543081080975098118074105332779863676121147308985233359376595421432817480139581837483449491533460062858018927690109758354108958453774838230592436277136742966586870087023937383177911437960368864419421131850745081314319972493678190564640709151909523209810317916459866542324827175389886155058144701639425221965515442879262548256615506258627012473829972992019535592200878886991554201848906204929092911110607879636728447759753025816801221405618217977043525648761445914427567362179209308328490145013957459558651627489379869301148912342615519456265793728499721543213704209205823850508592437475356257753374108756670248357384041611071459533701071040901989035331172205828818269090023296711088522960025132606494342213535404983424706921775198904433031698413091500903028059453473086837156908490541834918506665145426776236020412021391270388194415537753838451204115736612017691071388797204344197895109752285874196595123815732658027812586290542649517084850156717560930315571501894822312973034489707758556290083296026495935859442081053354409478723849291637923177904175028691454541283667648895201369305768925454064086983090773591776549765270583199549258130051538403428860218453248174242561130437684701708880794475786964598167472304972589419041985685346946184230572112899716804186066673853067891238853401195282662031945304590794096798170470624780238974249428346359536222593301352786267253473542654271999987715151427271835837186511877688635252000836645267889584969549937435029843485508864994264701178227352218487106672882020628031231995650422415759788718653940360685939685893011662725656173881146335482110275301570725445381464650083034464549714654263093618734873164932420615185416636004504906193819343589144694362264041285932836696191164026317625124710412757499174231313390588979686178006085096091210059339812392876281341965505569572059950349496088966202923577444491487018604646536014054287823623656087674718140685472374356314533251514288958074433939926020001876969203980125082866376348671730027909330867960097297243492891517602147564744916330825253786508678209565273413805845636331473139410996372837425590670753096321926214747227695408755261640291282653355721801570468585436017154862479395251039936691141380468882163183017261219388807284536639225159412289323871693468765724754781026338998986516911608953749192612267659591203516849890305499716769218356246367293535896351466028383342644528542242691336052690390436246924457028940355509858367048360794404715665208488333664857107433913275198306460162081606857099136655011686178037033845357349850027971021107621841183716211675284664083512686504738785492349688817344164843429959946107685930136704897639015966193121719499257906266187687406454862867639264644678172250463151081431760703774999369492538811742885115763896625999227646576299212896056981812688059017629251424570079231132788846574161241728874726946173678969272023696242801608535400564567464722109786849382298686020580325166629053903064022072691041805129613323162989435260271553163102633387123671309626352210501442195940560823581878165943150918960268914825750190373425029493495769557731271436117571671592883352975381926015681902460602664829899502931291439989534505736158989096629040547987446008018328221639718585221841384288664298110684381119802641824519875925700142256238097769812517179879906042797381329011792136901869165703544698884845675692817352822840316794418381782863534159177464786035109986503282522521470760145533856837769316586104693387442210965188133366145889882309563727811795112832449585769840871959984625642446908341922763754674830343899303948025040219766498892806801933038331143151777805981317978749182621898235428572675691501368741146778854126498428877180188682840809517140728735196702504650359520926870922508273629968957387271547632200762718003313486998209294713307429296891254781056402148904962974699626538840404333599343099288532654683701346853680695243261261985973508815660655062984531421103117374488427545091484108413405511092580227735342380872601884906862727213388941391003748933793761713657585945382717014988859402425539791110898572858702142649930053176528338151724330729816164317687391588767898544402587135725389281422586888882413228078304736155225028117093071617374827891089413128560994295628694115259992034162572789572597123539132753019212835897115079202998587170798932962576658177216461677306286307568959301085077546163945414960216177061883394459342909571667075001675510560183852477120016178216215191911532260299417211251237712996081681445220616469890039462218080485931361194237505636209376633819222440293476233961771131084419600967756137434329644989040263899964779788054134972271319032298339834030912318152673357199418766578052726030380275404860793443937219309630999406211725180747833068658156444530339458990140873799781667452372961795878047040198559019095829411666804837823979184603256915134642139957381273987870291868161428398789083486838625541343364884938995574510349278012655998705755476774556251334094861967950598466708212121831500193565768061094470572357926322368388570006564687697789155865811552097224955576704755780966200283509906342031590646199419254272879637455833835636074691334742498124852903937941091304985118553132425968889379929091131985953868834457494043989254058607678791413849671736444581038516942050573317186957614611604042518906631633604609628383248746677129487111961058292736536045762663189962311383903088832033287947146362413800177769513454071610918367275444239024724948204271941812940143784998725421374682852604199974602275042690515908301883789595043514876355249369110688857233325677707111842871305285218386784994107041146883638361597649323132630685956815356264112824999702976497436483796022339160043948232922350945298267637559380620369214379083781026436969598864250277964544149211913488551559233565506163781405452303114706796256472797750389013062441984893104452746194940559718146413087514148079226964149977288240397653900721107450951188051142719237777059923133109908968934885224449517702581327525635891970136076596606260565048127652070670498311686316437518116908760843320104532361039298059462840803257614033886437262701711535256655295671489010059436541399218173958816508019551292261380586979998293625803778710433681877281250345502161361539322848642936252880055014180661405085234112315944201796309847675093152666105660435428359230934073020314499141318455402254343615574952731407930138709926532091283867226518307198053013876692680036575916295977287053620899411588426448545143647394952227263368253255245680449562167087931387739736096548690334847183429820456656702721131063609978386247569358868831386035102924176911016679946051312538417588594895544517227227575660517382943087328823356043833110218662063823601579133357392803261565039671877340559080685481488565766740691080189915538326757298043132396392133722312562856941897112114358798488564028358830945824661335835356034932927710080934403965727117176123076162247616908145864806462053075115955682730033143615385461193059101043057331081897605700447541244422317268102401609746783480144367392344708162620793933780797027342867365282700200082821392393255013129148429915144009450999593059793108394624615910448612523240935678839916216213456401738743807285784819152812229045656672400765929894427549692174577583779867511554221425227716724030069964984453399907280881719794494996912074022710930431192645399009529186550734908324872239274066489899764197913798569306486259161151906535386014233629157494478839501411999944857579572052393268324106247653055372923727447172501766182603706841276953604200264320237839333510171480732446814047773254724604010316921133922767377597878622048201601393182205887656264723907052615521011709360315047055963957884015537190325560302677963362488731121841238789705355919769595723263380627660300566255636785661755769759757718550064016729450527908229611134101255777629230115250289386922694269716317936932754421174938937789085251535000419456608041017893106883478830590890641711331705694385183739406395339921162522632164983066470922807723971422396841777999189005293287204476017842146809719551570003307233274470209643413734813529502374905609374944690610775921209048552807076742936149920761328931908030889727506208372838199759656707725730591130520454900638853730859458195573058482967035593797135532575848598141783654230332832802537029355731326438546855701082074972168914131153168009063398481240560080820141818555836955346788564877524042922604567422307805812486048136952135679633690595941260103518669404275620887077495493492980054243249903452388599362888568638686617776595324965977990352315544360728543552590059169401282172279148526562184818299430551882215582677315892446078743090952824851939858314409878033833924399891445934919292834867412887265745285253616031422749513043607303775345798433091871898531292976656738798639191197076799065299379196071100830547081992604950175525985739276154700503890108854342792557545365465795989191972283830206954960776788831430265260484459637743889620726352846882577572799678540486310653207582717528322160854796557749121699608589165150088337776978092730806223835141491673665648395845753304075398828580330569041652805421320520384781084032606514774399021715705418531460801790376059639655039933032272090948240384230410510997612672638624738738516736167745170140379267728100222167775533980400690280087944626913236187503790635030841297549516120106893016981078983262847578129757980908492257004391724579285291044330864916988181971919936085304800514744472182192962737423519214401293319832386550415141964947027574646316198723783363856897182285083508079069536127035883476678756750204250486996652008446812708808486157517091978881324549402632215157404856242634354399355790652712272791481119198878636258625134152326823667058919635880281374814540823825417937060432700977214509171201852230270898107837799765942915550415275720238755403764283991820175689653601304529593533697079141519583790793680023656619729849963794706804802820290869137268237561831872713245732112900029233515135012844816873040416720070840589089555463482655745114106805083493884177486520250471150919231193082765782183651655154169279229793894366456745558579003162197678849473310359813563149947336366550622321931809813956970117306489030476696656018283849952945892822468712247403581368629142230070450752112414843873178236147500675304673260731678706243208778202359126324970318109713920819798594314131369359872221861677863290302929370194794124070262500271042317373676183501228575206641470951926657101620431652778236068919503458978223175150828436163684702128458097161971203519691904163684367212394771658481129210929982894427030425204398518797324255231420788305331982170667088358118283972738249289189159223529769242886726071389309474837173569403702025086208831239887587015230817705620938756476239833180336220586928868975901891399707881856371672189428301170346690485388226124965626735711664887544874306335988559816528110488985570602669513706695651113616861398865267157799877850705248164373613204909735494451814503257349019905579760145829628002304359477246490660563348183623824900976742973599896135198951185728388061611422167502233382856373505762701130007356994915190912286518584163833323048889739671673061957402697391270877856524949317202942389106123965845648799556737053980879026976513498065791333331751620551019341977538767528273532370984676612880335827578323867519559470550488611428321023905013556725051789109596331323314920981291535773158599005402058985447806630041723214436052129688648436433314907378063007511920070223843521761320577420725500520405399768646904368787659551869842186211241270423650088563378790783215392218896493646220991598010636102826348698868326774482562638655589735466613335188079330758307929834665258479523273100286757759623550490364787350423996634268329398111869796424863396354106961163394121374103107514282632341085898868854067575465444066486316145166784098924059637534380293692724278694698552828046414022084672837430363766703572458095633174238176976484547478579274297483784473659490897911573538875571245883808530592416478922593259094726988329587706144860626490078511983577851918655831893912314484095229577094750464427268971535635709174088698046876187490995668958710542709388101112814869675633118246129860293063596131257593917771954032075655732277013157495456544027811907401367395016437885535552587440697651999186618163348934772576088139746640290254587018148589082497589759391448785693376585167192555221672408203775092934621996966475882471605588963604984220264201831923039998058083535190984303114801440511829919825791733420158330864424797284304521303450539361940090987279425385711452815887440922203718358183481869429935500850380268954559265655554138580659496140352681051079132945823909029507358590834263217942361667943500150272641396661438365620608151808821498832441630165592231576692201130631138108924003931147131736707020194467401140733320532398022546162818196575265859940195288728669709391484127179901023704928360501103660799489786936177952629122356254154905857153732147960683582180591885978811937760903164512882704867923253958622689933088419100221069727408471863448513672176003201878971670893439100674877867897277634462755515352484018256159748542846092378384342456229788796639247124833787899130020881930022865924435943117873812680730044359701539021283108551770190243729282304133117283876684726243269314256912077749788300302027699095767844423562249832592624860206486246790309679379290261495172892686818002390660173201790142936985153072950315420330432363905329646500681005258133264522184529218168481109298675354893895315069643834454853976300871974440990421766837066034235109718526591213908131152368271236893575468420996612943504804500034194360735597956451075268207588199782094725574254711048865862980799073879244863521708975991541143622788317906270543069517056051763819860930188700329293443435254516444479953533136865805938139356230693547947574100134870690116150935027827048663950725423749138127469003598715464315543069864428900599654335202769356038179203984473860451180535728297930762681948331497541890209665347840687904772923740268887197001864403029384883980514557439736761338694149174434539832315173182697754018428332815316147099737660523977495487796193219305276582703497261096914442371107540568957272580140734521876425269627651702073562727543018781339379222664019384516721689816759764068061193206089377123776274243292000344378560656581994618023331001597541858801818712433483516597276206848863109637035895750734360941907927478689066983724788482974219099069874376849662788333575339449763822984353847638026866372895499967135791429630728221859628406801310032378255354670688736710616452656627001685366346659121593701900767530188719397271725390688461117999465196468911425630088714269253238558242733163838158731598687087203399628624642504315170340607843154128096974540866828451502892657383026927796535420606362970395394895835117991985418351580898995315710120368235415933157752092832714070194755166873506145872841201346325014649649231389028367943428740062592502217568671095275854183100738634793236233327364189560022533074596627131803640271203648205083436104078996592748923327804388690460812560622566325978857854758844356986286041250826503116879399022375157531102759637963516349729848896304531018967652876366074359480246428557869748117072521659693754640345268575850602388363257213664997335263105149830200229813755800453353666530507804781601776371452375272663424905910815364989090605945303944751182858417778857657505630828571988304634013783850373134054659841426841813424284089502042707360076263033197886532343337462521878469921551433742356982239167480196693109151433513487619541201194610156380291780949867006154386488167840273564420991679976001411413838629407668375061989142687178920031742670631410508659561772138177185672882520719696162325098174472558441914424132508961477814756073970423761645955779747354369665010094043241689767817815686578730081812813584364119008301563672219016175516945877768016652546073258813071166491677720725689845306361407080970224940475072543462467434313685012885822385153627426392520910666579492895396528961814330146001959270382204018090004736317355260219101059683172627639101189244156995875843290260183834268297300020544891568886334103901150292318751817995403478106545267005671155626270260411100032314538013596097532549652312640792084450741061240240736471512651562012837276058914935484430265749425708337684927694241009929465327346714633056930050076652205204516621565060785822470060724168686981911856366594783503078518976555875400482604552103497103831066837283935785297770390712218263108453383870598082809549360609576762511055074917737140605977744229848858776409003906510808138043031802051838972052238046777549880088767585431392782023649542124884315442680584487884929196360208230635565256725465292658076971248415652229769920142918557722582068347250678091033177314287921435365957069397521411307765116907004459887646637377884676367320897954084109652737594216736202450583942807250556415310342569186191664616991479022075088973677489117677207431979481582107263798989134979288792412993935996582254111443216796619607572542354109673361476191383293724726171171664117383912546949783474294529432380993682331522912269989836643458968892914769379976564325605074002164330298957718517845595328951559099296194583010847182575813269286422751108200738077995538216934490527189204948298083614611545123614110154731232365654625210536371244086075497333205421668576800215890922720320752762298820657240784339058945198719851581081369450198423097180580969705181852431680271797265091802913492957848097829603676336463778873301125710557362873100713599020620126842622213337569289542396147779614501050917350760155203570263117843628417858090610461776449993067067896640700242667971940326401524779442245674359437332716331648167432750926385933440868055737371340376167456657663910436672451012125465622972548893521626581144981710319493434946327033277981046532456300403054273096550167677881672924575709995241050323074791640341731595038267818646481053968162942222847437873988482340570826178784651666590305168619866185873209851986265596670262674380593769487269379422365153521003595337084480074202834899527260540690662680442998254379463536623195461074885813222898547483906394195826710848091138871977455060578238023860017556569774649010296967700031392689302162139899160221218819858785239721732080380258118722591816541018370382423256621052483297273834729492007552530503943584870643715222176122854067270778743429155954334557602007100546148940718878658023557750613979034215173807922013640953586567918798818847828132166701001912567226014298675125243571166374526050614898916376654512031767811724179969150831344322510077842292832169072230878944613476239719247662063570833359768071367649744823011127509965896448054012029645452453194260258441820394389284852786605640818743375675324117318416873182754373141138456719994848265744616753593879728278331835407080499980646558667050190307208849504772294659741773147639697451461369664682280873290079023548466540483458112826830385867170757579839223429557375749743502333753563430281072076099013818333729176427757283185990770131139697598664494257870737029107290056075066252726985232881490980798820165707095769634939072907368952087513326137273796793379944581987788762908037776250536386544356034008354538270009880457979711466478725702212411880465033045780685491634909550539539633312587237316951778885526946052276719949645747737126543437978423164570435952452296647997551306074161111878374134506919798968413986528641359567928506286305898342324733384549959053476140428787361814403359427014663380257096106060705446823048047093089612926207713913277288376949596409847577439656867415545279817859757381927049435427444916165748098795239095064326051849023724690840469251018561922427645050671615625907973205869125300704315377475303607449452091630912133016897262644109091473761473114548160288878898809114998712907556112614851515990653337007203179194925536402464638283402125533051895451950730375365114830372904600551535674234372982252937354956026450971169783874553547165282037075867078208335332963260069597309095470239601804987544423396158100650550048119039940262038423629553663735740279059727143960208204639865243528397799438906175687574729769319426093040770633966733300242236872708750939706427497273490136941322054221799238060993048690531396617137062744633688380428131203238510282691378758304574741712099004981075803876285149009317068973202607906790702222158704291637364536546017923855232459706662466786298424417075877298301989483176485594289461096922514266811459703967642533488306526079565486522321321840825231741576482556262369334289553896782824167374801361590575521406406281952521755080800463421328640018990442411843031363202272652061829383967521925058249700992168353895451587937591766732904182857809062216635860877313150484410151329441773512737162558965406307895731714239370146423275968940670032915164129220680849819053218196092998635531854023726936505882027041525649111887711207194870744432354973513262815845478404120123672152355740340982258388993976477916122092227574062951050085312837251173268488935691943962730880802226650335697256447416603824467102670080997447313055538583559896281432669042601397042624065900603769753275818258854508074668235126956145898399051479450248370932286492779879655952288853982386823629344279235173222884166609113472343716767097177153455573355145242450375793484529486640882878932889627471051073436330502255877288841598223184996635752242555402353113734818537656996135495746167751239663411239067707089332656777815312352123227447893173518979244941874110169923129487614696726088762904973227343274990097444027460764447729473788731174525183539433376327706430598692785982870633127157191843555575934419701760686406639792474680920514724793946512610757390320224969278300818856892906749217371181098123334315916448581051579763296889057607483253963162252078129875685551923173151951690730200898930743311609850411662420772196929542101933739338256848836951821158089310501687787154572463446603976689205519584791667654073626232546437142494357706907270356495279216994257745706033605521807206109630382572090605947493630312176631060141205332603991162755247411838083563749815997618786425111402779913633023970086064549943946634231715632480988392109807429117282128825060914837830812663599422069647985569950871829371832812328383778875448975614908353314481088318202983638377623982751554604977812632627345918499661208114157306560712526172122958918356098040743209577956390777066114144736371077745833916556426361451635993234153860030762711050216114128700271852098891831864582366131532581070670047613448962309736183387900328777132202472630697139762374612850175745627555240766566151748207236929216510887026909524648080675266693490538834370514850741175724881090254976960746039592358835758619604245814240864026569850923381833528875012828272636433890218618674196302310419818799676374708319332214357109138157991531997599371348591491496724213783161701270653459411692068799415378122463241239414712352491706666056348926721586025061918707015010540486616202612089791202245981604077679524760667356791531903003146402958919908573077683218865477859278873385997052694894936632738326562672345663574725850619683555596635824975193825763656577177963560986922746798736738186937762528164360581038888245380175743192011656489507741271711660558920726645764283868734436484659597744013795156645651976022480324597973851302420256755563859982980892039413129840594332409125588576498142415965319025803788561657795635320651361512690071142939189961325913543274120268907375763578354333449169447153277483079477313344371729619532397164100006232933058910472611182581023391669604210399923462941163079191829771034409831039418567592411188179996782568250987164511417979438259905614009313793901095324531211899538482889600580225145067826960172780571385661267798808995970803341166450257039412095155690037104544393285397714580476240078658410495054594296479695031158446853668052250017971874574909311813256163925798595177131669508245057270484755989256180694119311492538736064237804396703472375750761828767658597287076995059597108925094455452184311946072144036572611798560388699043406767619337042731586589220627459617871689666051089850964986567887563005872942534920345111318237403849909461294717390506535792358442369511263697978031305650994607404756320427325334083204363865339832917613032118615088160607126895866628187373495661950268583420510812718460605675888548689669128122071993569041496261197200326288014970069345788061349367756203831811545405017043491772323285899009486905241635423222384489423391056142981770234299589941115830478227876124210361050968044192970575647915364726590141229890471381651061499843209721431746486739924539666449662080213334476673316940040200223270143698569514008781486339437788387731768208932524219764779455405801456845384071504531962718421929204533483232069666402853314820397989759059891411662716789350681523183157672706250911839789530539387299218715087037068484031853024623447181072264913594847013789278161186119712959075097883500766292543361173580357691880398226082451443280818117928525447795808021263693697803412825903545097223063123916722128584256623523537567605129554065755254996388574706523003045214960078587446374633510654058440787854966990732181451781098233509937647322548466271366634879225201968998773823703392216859790107112630637100295249077564716409971394306027846862941918813045468387101345177024170939150706006633736708274863369996582701898247359448366240582917429735164709507527656121064556914546506284761128154131519178065751971847459694793950525366397491223710625788044272997222512931319821739988711638079420389174307074025108067203222526505514341907777597645031179790892382966958672049746328757915079009873437203871185196842278101051436760157203994550568807815424189149794237177596621475571831390460924339581404554069273618550207063699323087769101830323656508218518447903260945830123243586119739979674953784361736948677590640513303434878486131896563192003426487360190954802916611633625547091599797551158317327256074352707823078517108697088747083553895255954008154167429894769923472105187737629294257394334896334345562890647605375530296289525362713240568419874438684771596496188484367071253795684127947018051383153118616777464166760291214307163231530627895198318956724026914302666908895038976256848743214432168835507475769168260028403101060291567129854360270587621287582657298275217885080464199265789375328790901361885646934851137141337682550700928913816512065287345010347555580191957986742286597518217072453402413788245880481992181431381681825669654207218498548433596826921253470947229430078965873559924895895657780715789347636453266317622763340888947040640425539231843602384306303996199238075340032529549636590710119967324568046501940172329349814584682528304101343080882304646302490587946714543840681542012184825908519081700185957033368629224398477845574899557116290492138253008710657527162166080386690780393080065845553962686775964084901309382661128633121047526250375469934238880375369594477859282418702058718773823323930583290855724746442729737088560373453987863891593497965081562811563436671511456817745847417833136794929207045020335911730072376686528755168063143103727988633001940839559310029964029713134194467885215066319892312418762731188767918354921618437643692998298894636368666539855850220953496347038127095849169274359769272497912365791185871788721048181377371333309411769533118599578301470717327574495817858027693595786071714173412011854320750072182903971396508118497556618408777551281729909721272551950552977362327259349829813324759941972997276433306218269139350504271120129727797690419330548673899459306335743800842651784514062262158627844213073255534466356528368730893181062100914690599690509365940351497127396975969017494752741750937790153612686625890995700525619447561454901691689184435540869830700115831746932726865236945176096466144943193617809947569938481204470106608888396661439798573881510647711335634503904338975929669585960457632081251612099520691044512805969675070432901368394161395937659558180268915180366963555364962374698676107567502678512117332579918356112107970794865669429980218561894231817141340693009600149984579308640497073991056227854464878363848072347058560169760076397845668543539365238347438395801536416367045042973490294599570908741171277761032783960134405586660432950974080291273025022174886459633469377071523934498086519876958167664583433222632100580894998449543044987801820136668423354496628294790518027671758018682045901465969103083880453302554716546897826536897530321636611222764598285361054446023236171681333310014359757360201359234410014950429978213853167155429628638774636293512645545144974177642743670050807805254492641049929016483260840099312182979327002787798377819367064669791088679919660907101660545274403271731130108898749814368242546809234735600529445775926690867734644996006182657315277827693106138724092910042307877441988705401978626193724284312493307076035752975367739351617401972566139933906546649257026492917887241231434941090237996814917125122517696480198205363248798912812168165934813738075450281802841024207772171832756769159780700630109963905187489108116978097890086266798670253952796670113537733678575150209534798379485797376899965296056945799035272606575012494373538836367179120977705197557503876197451845302032969724849021457175099561956325365509538191551832923011318066185208380645197190815180266928518242258256793748823574462681502868055056606525059713683279246363070074503600016319697443858745330609656951661168758904074427402501504381299460270006333539226282066743142092821671344671755297287900237758329729201391414868381159348464667702203506092015773871438099979207570804620396535603589808086153432726901064868685399819400111308834091837041560891703137138263807025911720835158217207442818291907542989873388531643026577952288838124489620760087498674044312131180585738802519689306479562946132591301715139893740457012668947712379562470939326592556673016620890223470589827522895155964046541313055711097517546850118753180254295289540560198348211601563221373219843225681255499974922404399893318130895624656015269324208670272972938513707944111668009514891814069032889663429725853019759446879660768363785138216988714287387451810875693310709813403052210453313098202582276506863140350867866263647643175057799208119392546810009402807917370876380782455395485444480520902510996657129668963433297441140496046441851449268524794807620747589706682430445358425021602042532814810741381991784129531885263117360518279747121832009368311492901731219066801092089527787875949608573577056583059193243537578732412299541382801945729596450018406711363178175345805338630205253995563060378310211698993312656044785320994400382076384189673365561206530689556011198723573306938415332985429519278344572045321736839539851628079939295251169168746853415046079952173936274302441255737059481061314564760271355746256144591229293336869415203087851153301103752494443693208344422537762526478527552167273717410613303903305959119521305818817480132853774793641848117480128371723376410707527327270256019787841870410552785112012359996348970006687071845865172469762639404057158158726689035538604492648169686416132065249423560602448798062409003342043042852352237684525262358119644698451817672666147963700719147375642483027974479125517136310872552146186764864575010677574225539321987205559444459807231464036850070066224432075414249189737342427609549736742571109593339713798523426558655531475536141901279517998398828615314159284246776451547343069277386135932306596242283208054795784418508078380713200667667595146249312668894878869862708099464267353471295005549382625317743377065212705856436254217823241437273148686384548595950246324732110304092597201985476353397619025405880353942577408029577861596923304162750202244511866233500664276011022053172929153372514347794424588550438619377431631588872238391281599176966984094139233531968730628887085426801465823405237467385478099607494600537582268349539621807729698192927481797490855393752040729379673572195118230297992410270731136862314673582312868007180310069129313351864786955668635414645989054817510451991603892466291103255534633148027211173231236607212173415597591942049522186883655878264059455209335773365948393469334091832488243289038185449104251590857421580114431429776711315767720470386020383029823095459250045488580894695426276250479632083374393660400512586353673136657241480220907286411956569815097439618940224078879428296287438191089937301135377559316411077185527712640324818879051007900788577068052845662856321023828325096498059019980391104838591662131751373718176134802280218174234120497762522069276576130478004590943435950164081588320697814148731080493176381629148958057561397840717218207517441329146059589638564873649934149056947260308542466669294828003457192455150657435100591362741905070863933286722181787564821137158905406354120626545942339125747442355997822871176612447857689076032490459840501344443133590129619710388363205606636743181972167401860336970009750985150820715672193766607575154448802571491113201328089579333118991873934765291980583928813092489804641429364275403324794119584432954412033252745812543792530020334201434265356521866629648580103483799237822490018515311518374890521756636376859741808679826695970756430000238631491963286663342082390484800276010015880504493883296544389474062200299080217538161715745514531033580916193574115769697489810272176228204999013841617130403036313068465558539531124405580155345016147913268138705197574594412370478932421941118451418646880784932979822769734714770043533326860008605398192705407542997779447901030807281285732083125816879341820234707239403401085238236386928076292538069611203727922298230961081930735409008529015479199430045595575266738987339048685418835818017683784763494804698671256776780982212773647635786459447177616986311560830487961403677632428274511048132664964061265681317503017245117724138279555053177544271211333488725049487037110264004808767435732844177480377903752441981771540248680041775260122818542397054378792075388621066107071456616285954476906421593704893795816655554175031567635791684875189802010187755551647576949678937117734217353087300033434953970128405967282339609720862875676928736195470073471176158265239271893488788899066426149635339734004820695518009821368588100743889817757338379234494513349197504584570707162055630720386880859239336069765542109362958085628111254642756007596708650389853206658814480203223580631291746886036239809982568381819776889251395172763785616589160141075147230487914597733537147809770771153794109245720118554801943684019187950342758257366232888336973504088190149182672858433572248896037700562895065741611585170387070742601539928732800276593555378964165498503190788728057755816699373557196788476737404406925494433534591789774535019071815598034861954717524231320674529402554264309974431986672626655234911798223643457650798382493370293447208556518407354560645852819720499896069954953900358187527874487118220140337076568897135801019070479347229359174536727157214063108500198983513174099958786118321606326737585180344572904785969649232409743278422606935878717826232554989789153702127731323126604353430838908065736264231395814779505661251946140145653397009858024041225108013165270655171473635992305373086551307984711449012198419525619316932875619703508900033381795499863124810167755534743703135335323365403642368742441380234039401039906206996400806998541193669083684486494029749982384919498346259654951467601384140329890537512866434806230194956257493418813483641553684666002333101223606293067861524422348667236162143859315053822415492278971137184787676155943676563821971988347027758429234727978755308968687407411575873202887242102869441233823471349639688532304490722852695799331424436066700017978264997783036729454975257378447946097406828705143541975051178838706132154158642648330294500165049581837587247358263329203513961819040650521213675971894085049442838156920109740188822937048475852363353745872277606774558150806070451991663503414390029153619707150806076889387131586766651628009518848898487787975887194235484852510984992478537812532039241345314501812390764631119070686397225846058257847764872619995302329352003269716421681523432013631906018113354614334601775643935187918453568761838662505524539608850527112362053518265103840100841357199877098747960760614944645447763053250409481970218478423860567139164583352165797279649714320329009667307262608107989397955429767688288999082557856439866958435232755046345632627234547265774293825838059498325977659719210967920192287837356645545680026039624685861211870319754243271687210075782992458227008909274181584786346214008725101588650718900553523753342996882520762608884666016447978027021236926031140144206682603876345285620309446818784291250436404085392501336529759448490986409814143948600400428970952440927229380203364266992169162176926636591534484779711544840710022673860963112199549610098491295599640330940932107942351762394956098688887592331456220645930537981156037024498528249652831725784635651919980503177109248725673485131756704045940373591541593930224093250390059960558988006468018974759633195130230199489261010972250316753191010045139639624595481171202192874728234684545875801071449368612494245678863199330596888235537549008057912251323284748500219586950650702905220754399899062558696313104963386894870818891388910857095812291702175435205294891784194184030063332910529758963609967134203704501856402965337655557938641300260641146008098756218678375707312611714287326996974009419141752217549586968668311464625945682165898951890320247327659087895836517921924264388188130976339602142304535406989351571846004911395989803396027716474405843885606900736754999939573348956391662700004194839451103554741273232594199869100167438221701155046296283437802917465331339842128844591100536162555596941623060923658041958711448263303390962026776785877785913248636390387839128267778551554908905451871864890789678768936491325686589425284925551014937211759442624842000584545128814523804420111441557497162035412937063192874257956081501197756171132368189906118845930093244907374526081956514852862430656723824024477741801241597647727832742602838168359407555368755693102073524998853445927975726122555945680538502323463030048487207888918500356503884878413496451799084549775465341253513831136709096497693213855288590824036286668919459606260095540705822236995379306522641854689483944295707805038175290623793602678530317508490824979418816121892547670944240543637061697027334819019753282824554060395094852492532445134412426299118740817653348476329950558690131656412726850417260301085460880886973125847334891390406189120443875082834948571401910620899238346548041268351062569953477115520019259898052563167105485232705493724505771134640613375197960814080508688167633529895614592415699225871544798675963114508919250666669923943294707107822127788730049303623600776304204179135141843410590916076407358070836527246768638934345387114719194063602292750171697102368226704612477972211391941229395252765107391122815289518543419525722000480015060418151279414174389445577792242390484955793032970871314230327688543231120341387298488016628396810642163838665685959140131950787912912055776066207212113353866570491961731182412350522425865986256488207861725688167084517833703581488726801855562484198894355896283447752739554971761591319766378726212862571308771406312150378859215763077246145139281293140204654140183892258847168331824998034367594741829818852906421840368541008048581017488598881916723324995147154803619430930230720732794302407924443280019061330680855162689265729143305817345659866994033551931089471027336222479501210681900013234514388749124429306610855619129941262537481953522652457896549293981266039439662386500564511435789292931773213029072925116381110331846955686268739777664179022238742611627104044865654875797311024716068047149308287880516432679439120776698831777199475822180518839699216323692073223229928875034832176861302172724916827203110840187121885334358300932230791282938727276813240589168790229152720666866179518494944615792413441041180771844439701785331686987822574267519092308116288875635937360344952355997639228507147694894907109975419414553495203447914632663092037257921064837302205815961707664178739080366747204155191137646099765226737649774361692764046478940619660171879994392532180461258421321412804340305047854819929425386951493448335877818560495571714673163004541238972269650761908049179628211116101413668764952617278251280625377894079249541441249570668208737024220562436923233672684928502237514120738959353781634512394729520061520917811217409945685636162818120099560518726756451869424597204660409307016106296198706886875269351137207369256011479214853615415673718907277376195612792674360522484035256137783239702822127984874435469453595026301096408447461769445099535121007709655480464730408558132135419497791249762795003842649105150398867803575179227329681078514129069480781750982887750064345852308027407736230537345389823211568285567996907218903340222098290410747442070928309325007616102611074533037906550217227493364014524542420269139246760150766134175190858956883732719254766394517141593320632630319042523867243880218899558102125836821089658357061674581568011753006940112449781937662395163905673077856755956615007232919708683369238423476900123235130557912956752887825559005302648990790792417083495098731212797024182986120218371940245752538370136564386066626638379567029866708942339838237730266739215902538586103417880618205719132982098629884406326307723033184860993267339517247688047329507324689840592040215903179160483691529604925423589915858830600672086262059940185758935544802698452544283129051191907350697810988368321440171797305679667888352088919406909883928896338044467006829895641422375278809285459077013282003258638797667920023465114228431572022672538043792162648095110127699199175337542955957530075745066704189483910352011582889040255316645284206701455928072880701662133792404109675512033491023651932527552660221092074964985953693073697693805071381458751843106151021134894535140859473476594457155187468645462678272486261543106545384714406187738037493604373616672987556053509736368973855966790039535641165049773933960225805519777612675349974701110414077334592497635858795531885233102867464836217997561771971109913881991679400586605667828178862979320343473869427902057205611403628695316274653246913982024368077164614888763008539891303142605972818284826089301669101568145916098621191209073566762627962330496320889139085184379822889216588896525776469489445247211728806677486546573444010629782518639983743781803679440013746531977896765396248475898230878448438263830720902105501221147601050017511912130268002353577235582097170921374066796476590248307266414049220140750970952751935785958777655257327470436563760501792134384402843505182984917480194429773754955083105870248584261781888960480548285638908908079471501260459994234084512207106096626654900176955283643664574151630640978925477125169525602444222848198925939068719390576565172907255543675449659126374533806586586026283613964799431166069697353652303760878606051711763204250241787913414292711626245850366750782405831309400367934104244609306373582203530834200180641749577976383291774470296960001759976665905437731027065267108261896704681177181932900973935295249155221231226293603078405129178993237424991512060232719083567398894395529783029231185300556130147779460732464907526560808459078519432232128143078992460588515031160966084985519335292716539303219140158802739897221546272979998492295777391569541663369560933691502535270509113710228140832852766241188752942896489067057790192854567027711830828805593692396577622118792579904633588540738052113728166701638759655309728807549533360346320821761285951326222176425352425899223867694286777048640519245864952174471820688127203001890269269020470000214925560445377249857856347505587311257541480050216052319950031382756845234504336839395903509087067445632512550610919582755936860464091594787633811459656512827285924946470853923151944388790169432768571788959423959362320922090553822725202323411144306475521733109951617048309211647556526590110966449125722570731926840439611510728001116287906580938080775530168179535379326559527329284356747312859731217348003807568853613130082586995507398915701395982233298619037340871348224010358027181998090856030594713738216791031799979335728877141025867522022238638700098886135698849866668368143373283892313499718335968279699244197061653186159409041210124330500077047381676234191787642269499523046841098758796097957282132971414746661530970733579677768374901145718059767519332853841805091437834373663606779829687696306368785155425823281119233646612652308211362547358212978018389425039498496359022004361461201458736124537244270208881882612995727415948632731846220788973264167432998135285892359969681584187399429238993805581233705882073641396717374022838260774166135867517529420793232782770618658406693295870746063258555247007519198152260284958632062016915819971137199699363150832220119131322562108805043990634092742679770016608167516796232873802426275767087096257916340939269299249476921513319882180833878765356372568046557207028736645799474229298037976940366296662683349859606988723005556161176340218329440734385011711955349213768290309519716543850958530765899647392341301191102789610963609827830845851646576292563088821698289521652099572923116224014421514205938756999519264347686337774227788170398614392984688187698854383079483298540514135969258176128792418335667177281869554368905685291132431645434873350025746585593568878916930943094862610930593372739203840729752455428561615425101146260382496904908916034048940801162989477613405048507829158888860335664038608345864849006854086950123999838343680064852723503963388585870308053701152403203711854996864053527128962833475202614090487311517410442958305644047956401797607368590802803878873264902802177656079758509739703868589729768544794725328422105759038586493202077211256752640850557265565960394698320651091207589487232134014921112689519171792587976735778931945457015189548722830225043842560644400448336820448430740133369966095439008423250813750057372894464400985093179097394137318537664430979611110022438401728743739786062817006315248064604349924251443589891683912484021774061726499319280032217714605298845399314809018070714108142495857860200096231711317242553396706862836378743496732198875148593225480586114940852976734653769109216507964556444196853917035112074370691051115491188571503730849810659378436557293810808093019620399232593284876515535641143356310244503134448323700094275674107635116601098437628441870869588681372964318412903507086954066313545190517448389306750372886929171524562014191995779897640290151165795090003846999325157490882119137709879688308348258757139460549786712311867747024308966241950690922462957018094130797161626687935992275646128853409777049744958114593266728088296718275750519812945907546682787975118409668683981772782233440017343209126874852163817408148879563058701382839133192430974491134472891897947168994349626964834739859759302628792522474723434047161523360185793427283553277774662184114278711721315909107400395274126121994446673123434921311843508003662249538762014975900223003809613921572062480163812843727178705466128322523740507091221437447802077968028214667724641261183655634678385079586786113646965916093521937872882308222270507311817192351134240799135127115414962419624547354226242533656751003013687498149440980335348176040202631417252635255089877589370727900772296544411642148852528681309189323995491158510881318920174454371580558475517198988822289692156313930730981760369578832603508609876683659897585421062874640747564187311924135525010837393415361399701804205720930967855887197199778736379961287140658493491538026807614931946147910622372723207741323504433132719136950211955708814862238356091480969863078858652252553992569447993176570749251434710824696998953655613036802206166016785126464475196090788830451296178389902758184136742697887939644783373902870799902098968400414405926080033416258173369698005243540354631400482999400301450169122448299451387479905370568813329538645613282329132710318387346106505442012777529414059560269103084476272762512168987020509298144871553609568492732619826560169472430025308501713519517112985828984135216152193832022277693792369079929036326839558754863571227703264358611959700318423908498712731819354990065370255709867555040928435785344299928301953805407193344848012772080074499007286070071132595618910484044007107093307452473767123720390802065823999895148145725115651067875844352601426267007833271093028398148848078236671023779600914751800600187639234820451494252456904984219097880766651186475631606354514506855801916135519356976516370453327397786898048835060124962726516670445990939165055466497885126350969015418576612088801738418099609319584023038462332400681740532653052983185116180312237792145816469162342015158381891496247725131300289182128908752164147653114165655580505035981715827942375234102471368759929852943745729658213265397724611051860431227062141905717711812711742682961119113948577317798070203274580508265479400086720019817258994147183079367583526469573930333291444656171822621707955111951954146001941099947856776441794754259578174927251940303542384816360370954584077063289915761664834022008204141391822027686349974388422730952006832866193860106931670753794292299181643711404786584333321179564359891851625612252991670213643213964997766941378418123678580251637299950558099442554448747404315797941578606362724584220085128333444878857242257820515352122350252546575830132874776300048777493183255064267695105872762250567572120314177235043472125094297133554097652202231444637972500784684824237592551710037046501649655694784899420458651967943990440918273507729411591502547089465721607569248637183360854899500058083214378809411745926112400735757803157735775332094112355885514215174658838586081874804671764446064595731842737733672766909394885672999792457518036812632078372373662337392764919943206477662334126235698372013852074956110659247202348704094001777084716107824628611841947702136104683576015388776757644740053650368176994036452496441046918816007062623065454257444782010148418750110541900210925999578316888475131883159763680266921355328317644037449843405483800065551220223544710319118323080827041535966112688737318218876839143051698562058708645229486016830600580837382282598834881604311477839183051340558823725232731469619133258169972429442032322964521743182682915033473126861248711821275153605462041662547359630527905549879181210025973257636575531409449422800886720039826778433623096986097343984729627851948293681613674418077541265692815819040078157755077758373039083750107031745918415731161360751518329068035369547512206727266222384623479772136535441308401231775477902224172344274165724547033254262410052218710085162039077079503116638188372816641911992696283803397820123481694707023000922920253043488354279742958997177357398040313949240428348646935746855899002651244187393820266600014731330961115842149609944926606701653504536018701365592217929483913735392136956450090378644050520372767186947025187584320553179891260273192554552570488679037530292015826757454576852731392278088963420574992311395922852249895608766208008060832589128688215213172406806801505150801307939595057641772555813082128035330613016481906020924370553880154342512892958821267130718274961815783964377991178046224586222144429184740568248944299286233235457850900399876726793238827968773914323091480778559543653630680916391147975553454693752004599201098089916491477795698581945454932126246188589945608837225932923784589463574824611556638031228740908580481649153619435576256529016248626559028886979710127219856382455994033861391116399572544411775861586951939069324872644913136490869028031190459983973410707280236088153566890568866929125131501957716980393277323900909558521676954537453252038290785675488058518973685281912244442836836077052810599522176022548699635836875582227964795185167262322451182743289624796121458664879017903695471835364386854483710222031114393071240581259423124659085543137654292078642419615929319441300110299289665511407641623062693133289590229548951836297643425607783235512948492754038785877629832045170624071609843120946737510454999595794560882796839283813700273528567359443566838438238703510135966222498934290206106634428003332713405907575752852754085132956696776891311475650007691523620758846066623117406614067113304860436631672281797283494294214751616335337413067094962345157358414444379224913508686788245010701682544244430152345757330367626312795462189770476104240037685488873533709050350914709589583055196749505934179084500199839086663157163592970137763006875516643699626422495245213878205795911070308041793895692894232137034618158244656831518115390867988842286402710442557917941429083617409118158438484978692541373798237140487413457424621395863686114474390527998555345887098232271618209801117865653016559253913016888297131995111136091031237865904865448281757907661500143675990467595790124852783742128711154606150383826783423452571072827022937786509583730646898972443062615170050193644601921175947937801047079942799880686018591291941387768517676204968898667106566359533113326335480407160459137996219686956354584442003991166538943788987308743410493126134225441566896538622131797984474334875041238015915485686574094114878985038135301972186137767770107410972050215027887174160558874349213514833722046325436551440724299672298139413402379129926748459896547717670929179302380331872791056785174097205489249130292197497735165168959604128906730325248399754698884794710432370794322459675510887284919228769759809432164806273426192753915982418321520057516195244892673907927708706663449946019397076036270467090353319094978104937302298599614042168565175177351191126599686109472533078660775142214558988734330602240540621520947334498028608685462431261988001843573772937017756359919316198171753202727851153556697332149055067666406246186553100817456943151260541190416753587922703207822592045929706238249883279782742756145848519892227383352070102474467004283935100073467839856419848539281274172202628318545962970475931373425774105741442128688878997426443652702046205174400693882508776862252950430029409794060319706869097615417867164440443056456046509186335461305403314316007009631408918837089645537379699352481432633903769588295602537953759258115576261368304031203435103254406531051010310292867954511330216756229797784524084171260286243513554080664439945198059340407972425221354749916694517773210966575998125990944072518518679342707061756210430428723162042944703401118263079267724129716852447137704830350490354797767352737230670060012729969601133830276095773163927436679536475598582244372861133492154254358201267472075714954564733041031557157978991890735660090588098114205581391904449929986984995792104586023338438981034499578271774312814510958483013819524046723806098063539406190139228188629339563194900625607293382097064076737026861693837556774691004605301383215888366652857348268490247790243317578530405949011641871521507828807560411506453410513587733577430189181863956091714556588896509223263758951618306067340381157296242065123897390380610647745463030139361114161419119681773571577016474959227121533660580705339701605173061986984675724111400997198995930471927744441870268235409131500220513591380354944892695505734435018016375736291287080643749882814410804405356763143292534749096383727378097276464216919316180373412841228694223240018929678855772672206260081546518495021063971309650053618580814557814956119429515918211381179599005147600622678296933798834789794830265570165733755177423792461802830951976954833337838468311356815027387842880225921531762810342253041640684402818082114784120661530081436088587926146307385304745609801261622087050613281238461951650902473302994824695358480162466349105215325216212098164952070890205017595150978228781904795963119665790818044006177997367440799758294672878881096182675339398741340834891839285965018290685823150026285529843522121586501612319727982875825448096238039301101531468143937083274342912976335417351080065186803467780516397497935150048374788816712811402421312490964700238524829242334552704341910148617551191280842763655421423669108191852013126185887690541789921886793088654684316181527891037221445152288716380881580446013040104671319815142492029985548791149217946154645397205394723991798169759434962642997285556835115778681996656066426058448013504466016558941619108698950138104218812562886444157674428766900250244258989154921820237373863236083949887417151097468544892936170532127188718185279301262205391186366839970773725315043052591002671683642076741090169580144363392366309156128357962653477921993994678024865350952339466731293797036646074597607409919648410786213792927526310890751035744411007594461458316888781315465265345215111096786036186655435369709412892499977327043752494124354054962958256334297651215895668158091924744237411163644797172950849199285121140869716073763654314716888150935296841951823814918985261506435475059192033101131623579914729204829751595860763863023497161785632017866460267682066796279935308170554992745803147503168131424793193190319728478423611707356651218315630573758664697370657244239498525053924291636727934851925851822794019833962326986135683151973101872265103867313812518329696024078963941961072296671468082276496731069848790912204473021904949274151703958087376876816757333153270417385763480091544184036978325841518777161860517205494453319857074489183836115051368142150846216293670536828006654269885332464433131147810718107395087839292205484863849999411976468091241651477751912356740819281031668827172686886621995807054475076549713388133222347795636715963250294192365817761422838383363424346125191184379017939115959152905642217509975113843291511676174158677547774098861951124303478798943020540528294888014607380404810607881814946050993170408787775964589803969685446218116991611697199900725257444963821409646156391244755952548941617918910661611577242120605179240504499842307247144061248499981868530528178973333756396029680131899564938090756484225345973355427149143602696389749372583872178447035333172774580149253567669033373723025162412177982107312374300649865453332370704405996513121519708088822296718398019668537503848985693680451190691458885991379589828234613770623086588248589467894549754814860512740763182715977908958591767578228280800337156939965768426328859506523487825795964175669146989713062613330051418127895543423204192505047026319110562709910791374830519401634384246535210385492317301289902352392204193436899587110199380248336841948752746130751392957915077991047583498824096965368713661910550603325694211267741205083140176604500223412463652375121043799433353760177702104673321784622061911722984075050511100890614943544293236392622260979304052887471927033361055807342843378515364946253058823196078492510255990556652334178108747187392753540983429666784704217913751182358759377777932547597349344775752848687235129846071605064234473852671867920780843827127143888567405315921616549240065192706521640730620390238728490499950991776549812963732969397796154119104828180212216079925570851459084708900066341520491005259938749942249428133906962084035324363704705759123051716185337154535696205913671476712555474225596794271795723633707433253468810139410047398388383484498540982778249777076426115148525349083470982120258602319992749250383540799497925428576933797091694310936258759068497411476646166378071371697799639378181895661639942237015386264494083090579084229535708988190519689026941249487438839899040046056141800613028085013374931643507217830031579793362822511674938212564578113293489434937048021824973890590692469742520720288425046355160232621206988334491170518179248539192208786376620984579746348353672901986248434414103982529798374818047748613558525668851171571402683867234713449689229575614309416723494917715296949242834131250881253147205554069533984700325815613109078148800757748553410664474436675893367445277433290086913995864969070108865844008905080943100321427903096992089329731500769881157194680909125631475260779804474226404098944730267949368501692995288749429669701654779158204113246847411071558297349209500614671084948029972706671530011364175186555785485180826248587237598180024489775162061784429132285252143126670020372681731227830376966257764150231677911629114881823923842515064168540284374586390901217370069062919328279204870179657611045738817957710782320672686157782135545242444260579890881991375388391698543238718126172267125603572415244668094294217612860748754540558475862397792594702720914622902711779394982538163075509559395417988890368464704959484453775153271022506780500352901709728140037737778656594990225418415871969884771542704273383748514514458510449082351356637050794982584712542177267802326507012453986793242764638329590588221004564289274376204821939331289279497347907008831839545869879682519423003263391695979977119765766404207642989803904926074703345080351352012907680660200304416065806924346139237955878480203950966132915003510254241050965759289301305741570508610961917508056557463990257441299997817092415434873931677909500595377675895664049049321047387518638048899912513605848326440715073650228909198998808586277635212547991687060202328991884684941982453283189569910033428318810557374319535480147318417922425430231431262758681042013321373780480462861672443756422033255464550188349463898881815541417871119998158186923252896255231756176571563834500590538513901109747304098220088772367401100323187067789023295276616530521026527711913748007210074724050332322551075620635055829806877800456577650055525135874273967005360860609583734072130915567487957456734800353647811040154779906199103487920105365395851815141721503356213473358641236482915828968926184536858569388910206091939312512162125754123810614629327020792865247146940983414152441854013122287545511960035387746690282543493793701358731756320710236433215325528710415159095949890774634601123111346585945182204641913055638937765404514671011191982163581035338722659898766999711615998083599159291545531639921304918311571449303048713696700452174647969370886722207831567896926428210344230188747761176686931587069334457709665084926282398149101780022391681135863925171571898183617577797561576127170216933645399340672447390982698758106197375209359531518842456906036008898359313456312484330818572016916808568296138555217408172477360410454954764826183019719989936522891317071168582629857052156509750643802496878634559143429670369346107418701366709425445690079608989573915587620976805383483530830713253987182318197374109702187090471425209512888558090836891937247197988296533623767664577708730592793505585965915277285400676978852261929590057964389817696634118021096308410158816141511623483589715652182518184338702298036200397119611590253926597236256751313550251846296140955856559841669612724070293038584018442403458050909624547526894359319701563491631401242100012409202171728849778114525694531250656617291889215608992123132893424523138670390832458399158460935414579180945487346655389180179156819858330185135453234385920357685266156911825814623672213813988144713654168335515242380847891442803935293140014082543157874039287073441304164391981103939418442008012409786956775450690905318415799803996120876897950229210377877135524520944910953384978671343870685074399396952307094761595274965091724016471428048868456402943715029684649933826661084788700487739768298023191415836851005256700593863212106006974779830195635111413724564232808002237636213858372747362403004820239189613801573234243591090384835723910927048220243238156022010635498345326680420988925457069419040219762267433150068423576287412602666738250786778671318540710498106450920237790946814359762334488966947386517017470383894509793746907391987707646663620260900637267849592311334329972451932034371462097524718341765190736568181801182494755026723108786083546106483970677479996852382514223502010490547105914637883206651647381798514924072014023510150980417722706791593733218170844213110075109412462284371315792661384242707102957976631508281938875453989553355443894255393368233542610330545638208472724414884106848207883612793259327846409147708737346166873348600728493297474686208857504829159608337972554812995128208720806408360886444932882819205566766362309821870135789392880957283361378950279636840159942855028447651485160337119405221558394480683935460064470985963643821550605239791898144486161096200870779381285074351369892196362481443774069313802616600513189424864612273924484536838468764724214330867290724061921345614454574583128307788717244790933091708331349056812532681572152630882076977803187829219687305519275718143780824250306140808897442872485721700934624318213730904023087168751532409132166782702571646246166296421529863027148566866743158366066378509432149689016679577816767699463692263823113664339533735340348457112986236420270531265069741051185911793816521601129379238865625967978033796662664090172004889515855876284647779056260272090437790146587815842315439581060507033486827772827258413167660598131254972188792873507086765990675947516407786881539163917993147454325916586455727253167967781437798154172996704957530094881371881770036766222939146810746235686321336479206660959659117506689853089979445832652346256371221416638458810375091979529111841553350147311452041135246135786773675395369911482444737149790397818911286457572262359548267607819040444736195526711110273893757924400027663472497657374728668356004818692982436780794783362974320125814051032268965905143554069930795068467404168141814720457986775051018749014148274736430240028627451005377424280765459680772566515950357166386099914372815586901315714434732230860541525804699361444722157588310501082128613500372652917292164379497643722676689644745146124868109806404531537910612893399609277982858134756488394208431439161115682862832211649926053905899313653764697130241197278746067012198708644295625121641395780567694977825834848792144112400320239669593037682173607285740814430315459505753674504523525021122560325067550028836476902323962296745724770306416219206817804816830619745112591420985950696829190170838626814155737274043673512310581155186613546452009502850678033772468893819367233999865642674360395440260968433423571499324302362973045339572644291510300741149730335091203374234708901260643730564794200093687959178811106807838588723223939642490766418871940468549900372457212234246416837308420549940047490673651453093694007112978625161459874350619700024016109884962786984135072010069115348274094772664277516845666189447881890241984467921672193656434582363029377362008901555919155890011380255137744294706298823170099600052938090925486901970844400344400335296272023444532977089158818547510953279153705905873583929472788239460010629121871661754246965552134058942181143481993537858845868008267564220009475975957719025005943210078759117796434562700746193684456133431530789232298932299546739614329298687379952397602388383466310924228495105572451935118154312074314037640401724474120715792331863158973824740496939803581752745075391135859870791203792495496433514906253564548560862040763594192394520344224302119341812596882124155774260680235370245341681791092064318684524964521149121041344310775937600512916802276280565280803400478382944166485781343671567423334716159860923523440699416123973007157265361544215633834646485313814907055902021841034436208502615912806635240008330810401466551332469807179731765567625698759509391367425317433155382011628931350310606408885796278262989478668220953730261956057445002706929072745255008569206033030842824432180180698638449543151783691984767117153822482193702053301444301129574490407374470770370523566618177609254520680111642457171804309948279825707451385090770118915104833621743984091886933805152922317064064087199417001288831132317448266082780437960266364865182635375646114876622406334801275687897123190689919685034289536211969431153829661770807255035821745414075410682979712055642240818935401369106257055352940658865087602887119101339782827926876046526326478052255706186348544619641997477305915340062138608452250163608078349561110632364478520044973474952801083029577026150045440168844822511691757434712924754197312594500781936489633009847213517102877234529720155335441188245669625502456513082737148154615334385525064334978839350146986332915170679450404600384319200371480765053026966014985522196319770966507611514794630858811479840500583408034343420691527139054225606140661557902471156673931476258607238374003884287839990060163721529508048550075594713981430329552827923005811952214535668972185740254785297360431212528982689352114884832711909011647123962549083603391196678580693202478115698285901976347114583931602223985139482867139747838233966451332387848142274422715326644774907608630312952689581488707208647049234539049856007290390426293630991531696935707873390485897008626398930813947715737270642840737405564776260702249146152600831046319775191270698112674106848152908093700087974321348665249848931510724956967011223700924108786487175179090504238739176037373940712621519932258569147292863652389206625870965206898234294541108265050365056281176050777098115349243611335624885461543156150274891080895547661027009076991907472260656500876528233344207200135908166689460371307059245559446816953091512256901815248689784248924188421030454889898371149461508927989725514372316933887095060713308722469066129205110232187754456816752659468295026947715302345101237702742812728654937436700637034238864554110834822459642081815312218039952754598004075434157557226985367208384203520188787971878884077638779894943912226344420467510347275333560683491926078358745332016765459195942317116582504099341715454483173906520477926039045948249072597253443837726006847724204146940614786835036530599147265350427001969169513083944188763110619243039761419291090829460162798422457819708262230052792926952312749651659948194394320495263275488045329029468830732123412257931475392171235353324714604576199966464717380873485707862646957179516365294138177389333473385499744924967048895066655853225497735100225897865274131096140888902576611149374999723394887809917119650530453510308927797250024137322509192185222829310609394832215034672192965215842929856029986073747707083582998448364453416775548448009833987222224851971522145495242196918346012056539519109976220559390346477433084922760498386412447374323415413919839841979272283114390570064765087877545201748741967337474809076016443826446537653428343206923010276196162341944618538616754876986517003569208759879822648533616523537908561186766085638144454001699455064630282122108438530680881939527954023529920544867610869254456977292545039170075801498910654522169396570850979182016335463232727012545349229894783620359418676837737450470355562414305501217399846371263940478017815426668711289823251202362138603125176034847444710809635376838280765424110603403440926266379842588036292578763742034940280747934487467142849339523790237727936113731868815339206730767566430781172276589468479832458382354790967845948125572530076398893258893320841218287161025843452989997344098430069165688186674134881208184000295005850064353408230672306902623840732222609960977734500522539580239313137374144989833378320747347930935959159336183766027474596384202765812100136879408312088930988897746522177614633931039857203280559064827915818764185904899822546542569251165132857115988759522146932905695714620249204642248932630599240558666865174026094757233030108139911303567868910195712097992238699838485295673248988421908936540578208522576798173309355691575568943730800938026705478275304667267188851659937172187351032738082396294269274279598687262117836120526873706846800770380124714814917366618592806862169132672024471051692740287470793035401710546215527152126941560496520070111939193552271419174543270519597484185463431197933570130241664096043240184588350061080456928077532227937500927297065092760525200576744471031280020027799798847475551605050398849840065563514674678696583522189546551885334360030172852086196707095368896978556798009646558602153327697353160817109172212416098016159742838864069022690653412376278343815716685479353810401786642845359119242413487150502837231723752359763593305000086796756562356894141945960727226045455387148344529324695501722504255222092521995977417237043517073887317373749778864218834305106401442079356547825506150164858641799668048275112751646530602647834705336809852531751485426421783819445058784089136714563000351028075516013281877868845742448286064372441536425717079936652635335105174273401948427980464062020722200582074347037229658366930691734419761117959117266696643093327160466765916962694114684082227306262120559560813461426421121128517107589714581739199113135959346637943015354385458979017317475542860839926643843270192932181451498966907368947502213002136577521778945946305805275799756037616788715416801601523679086681075070429237465672001257328864146849315881792636507283765495937373749083037127631648594311203677022760028867938984473825417727909633253306531660087609987778324034471187267895096088201289763095007016382191063385432907574993678333512381530622320126388233147895217959850313097685394512659535093928582483171254000157896449894922188476934344799001656564574035296080453166317818642173894422330561045938640696848896067492584538345661538692715549956481297324819051283241209815979279310953207460077700253305132930335001974875141627402995901966436611963363772756675331484512062001614453856601977638754647801432486042075944504754935951326045683317295834574990590231601581731980984081845068241420324528778790288122782863911628934497251435521630245765771808857912757480140626043496107875807452573850797502421692566300478828745736677019897592328794911241742350874652543363467844545795524193670675503530563731263990428007069055742974560619114673598166184742325786765162508005331648060995188508963809072127543298782440210517067975135683491324683158148178368783080602442758421593454299192789503163359588643402619371570447125055149009988588786570553797045202587150323912343362115103087708927569503057535028198650615057363094286442008263691904437828546171211843872281085374451253011520904862417356837343850094941662036120725369075511921156390701603636267954444285162682966233338025312210790901025400736701546968809651321707632639187146485104542560965451975460843667479108860261525234683895811702210032870416647485693654130709038109617825021346852933404286490893374218519606574956344765697787251895182736606230302130396898817261537511806835371395123792642082618112830948666854892439812069034612272181236140703941564728542453596289892513661616986775815450399275953060760975339863459902611292177600049909842280154150411309951228046824643629660847011472300426315704566984014544093814070554869128620130444882009723135033170347402232018789033039723241080867278709613382585049698746478528070265495646151351498819682813116870245699734502444432430698411857049336646227284587183234002547495853816930883390947640081785852077062822448844378009601549927754387082610543887314046785999839344188952219142192799581409320246102376115138870409541076686292696723517593244597017637815091355929499002147931042168176829929452805126739407999219394681489681104157692909478551424678198869000285835716198281018225466235725942531220691612789518522114879172171192378796754796318108986965849432480748141133568699586244554763340321131753933457585387595462731779784875879324368867766651764817797810839213227321128354073908576054059097082441048936826406007719603415346829360358674387042869411753143020783813919714112717935448459085773031896936788048205523488236594381924402485917114192358628547100667866414079315320591100303483165233408655050275184668578735071383999422760870585944830305002289980136972242448162525752674649450850912623100779844530563490691087129247316004839510498934629986808731183428140024624832903420988798842479204224236538365208525366558269965452884903507203998523314667490082201367449875679700518435577754898336627841164905561968605157544590114377214619908892668603988444153033902796970231040841395677344748926504884564212552059757637816863299444842459512659828778278192067150806630254856080237496642189926264712393252719746021917782036866418296904543090527599707930306500400595617364788684283503563977442948084498699907629212769282431050922974518920908294143506895660951676164134281018764694087584036018073117353905886491928402898837218489158604680821829845741990945143239009915068920644012964583215366724853333190002248865956260357269503750956989710586669251445041011896431065029622581576996928448464777356291270611364503320594678135968631427821492821196157441429309670916004227136538168084182052161809059094553271607122899869593053266925533802817150087261505816996109405570188802068720262555357916941133020066564520857419158487921108155124396941395714291481658849799170441597845613387773718385115769309303671433413194275965780422754016113454444731300333353812789087189015044275940448485185808777121740912198920114781356687246622590090945404342860668898729545490555912971265557815893251308184855220750161983359707221039188730631725705760820481796036920078540387334292170576889890121516553142899119254127001408109525115279647074930700174918477728373203102705449539081508336518218116834860994030293896919692884574927494525967108774773603196738362628901455779240659353848726268922992603041508070918573328243737008795624213986897078397438175155266895147832795451312134045077472339598946041638885832066049005086722103865070610304669790214139902216793514018725318477459748133405027868673217539582242832486449566033402341459649262791968282155435515474299159019204941870505387745488869239338549960717235421233463687885533993666867920661059311190870237669888126581919983985299433979515955645444572298460157597643648833191755853822274833565923463984796628819452602153218859277446049247037140454234304169539568829323864185663899317072586221021714710626869299527250406381407095011368956232906242970484288312568780914118643203472709795772633823279605853146986495769090904956545262713256611375151531874981626385191719364820202439542748674481418239626033089204749412779340976046041776007217329863016221854574983534059114241518654383185860523437994806228382701824364357324561591164827122869418954960336235468126374902647897151684779136004758033236186742942409299938228779803885725327326840428025558141291973934857230350377452386788267536601557857070698548465524739531758096105937751539056535446309955037087691175192415693233845928738992098802109738819911665267601754709192883572546372794467304688687731419201362204694040883822229168839619408558550006480410853774533591714129176506778419382171258480848879502932670859874461894662815092058715660558136098672005735663723529736020813622797988399020408588327653377280165722435241816848637170194301829743037154581406485064953437032399058077983953209959115582602097982776499661890359884884825240788933122571126059893540302632684989631337642502349306084634478105897624653747659229194490328118415349050685881397775502896084414792433384040972488187007989192934300781772056309339597311245565887699497250247058275546055797810045055249319775480558932815804751699433131136779281926392887648494741375793637432329951604835725189744985226240406228761048549060333334891549280766100383811953427962159768825682775911652612839249402501792738890278197666879449085347609697633872871971960238314781733488969313742740197924270360114223306194690395219193374799740112234816823200975879248672668815955008263449817439538679855335097197832513095698426315733624780794569058643263796213888475204344601288010050395048196126794823097792236909874233842017701146999365615317763508046278594439467110680660217294142757059046780036109860818243061342236299694141627228963376937300211171113181504743582683681379809604902559208887501326579161192223256205107822243951784645994939716527704262740114176943528148566207933586094054936143983289087542556718304845212135586160010663526644616464799083049967256303828913903183412010896856625877731404768684398276209612740805608271825890567136773088678341832574098039726296921405301950670301108416827558451196271251080945923205881613174244942721269730714184780357126663800086559796238981370353704441617366077247984212926086722607683019269992405138257502561486264399160353538120100292829111447377390496457959808349062832922026958836496046334672639612764592719542410941461831544611400125488988446358169511307260369952683062832061124573138722282746270557687490568551225719323426388820280090377453385884783631803952020107320220964493778240130966178958484632794956601341666754090601216824379785825237769465492043337648370200727119645398987998283704516637964436665602279422314890819699787355199518069508894960595841323264973669516414199978151861870504971244564581830216502643100483510953584426441480629607449691451778731427896901497522791678892898143924085536306152399776508757854404767242879356009854511311550964252780466822313726353688500124773788151132683148403122533429183648411490314348272358804055159186639993534729631323801206853637826708012415054586971229245047557881070405797228087769751402725631777640498451434246846027199771641624561683131405060057889282069359126121373479191359729320967912940728917652615579882981364491903596968013968778682512297791170893964949648390670751729533705973423299532934386162823003436095258762378268889029164436991668384453944073218785154678552163862544147059924236702154028298669303793940015082309789782682970981693838024657382147505256412012992020676281548117746287335835521536588951874184584309604995433006079436241241711232100567343857954177936097717796067506532899636712646515247945573403923486662569822184897708291067346734101052877138507783776521079570615935688603548110568521485252693285684729794498034031439623200646873709760971463649509954740198340440982202629545154694248176479603455225915447412551802854816822878961302506389218554836623572305115531412470299919492072820862980197468481149031166251529404149972271436874852932229732246653052554454363386019558788350009513028637767548530056091666122022292753653012431903250683883777784129537443093683812080716150737292103122404369597716465068847472962316773977744355208503449997724988487745134535343183396530017510909523254995313003229220981526480459324506304079174280830991714813354305199943930601967026909174844935919166350847221861817738975914512674855159713330040643788460519564911671693570741598732141150025679975004178953104465047719483884001217490364754333476596792961469406366928955104434010134387077559622844409091419853589146872956202222827900006004159468205146859461428973066199128255264323071824845238896707176279577590925989896793069556499281990053578139062663767892968757258621666728361169129111741667962525846802761177751517464751859400720273170424986458210313565026916514659887446059798317785613467178769557450537760728943323610775074755234579322520682151829666940749607831155473362245009136662812275848842312547196953697825919533366592107025837445019952260249085793086590922071008620340210959245038188913367921888930126366726942259668864269437330051941857068616082127681382984753828005366589366551733750377924041762304746496339948756339897908678206017547141265378038646360038109254504762008655148065820637980002822501094418368348282116221961084210287262256985921707692573718875261420127047542125450873848004162958779315295544547341351995725292648047749617795077968143522512674940395587063611554417897079570514236728756181046007160240644759748057232659873841106971180838959476248076999263715192609348466039031647531299562404111179220722635340343147858150996720566270006175875680178557084179094537980080018840439757639434052647776694985839919979965350136915202179220065149758001687545500150636794459883743642214339454025669564139773486673933152674633023429374423331758611785180656712026660727056992075985974970266988575106169277849065302694207838206555397860502590306279980924768192548214525199434363360275605804937301777029553857443068709965733300846906900427719395880635352978072465917794974763447257447499609983843505561817771381050939253127024628447888962051493497062359249015187888531045886691642265786599196950815487982086003004831627739507729232240596763105416367197760708143327489230539300087602295161131175526002267800809345696316422047835019467150122449268359509201193519471477817829101108407557034537721266806734241659008199291570126873929343050193270550628035172303106457652490636508381958712328045571102741218507472597324798676370524738993302245341477248913925214415267446043896917432767572367962110872578992115020254484656419134702318655902767721996734343177961340347425132191715668262142226023570676971477752157595663068064392480515895388545345451198553854718601556714474444087428577060440797525265921743034944627907595307410348593125311058082504549721518363017601623773793311605222251288223713156092839080326928049800927969206495486437963331104182173688857718012908179273986260158021056518659176214425629717986412480754905434033896698123098176810954938095649810454684304360792460732443622341620755286610814848590980306792025296761083221652001225788315213200947474040453177188433255735473395665949016261782241682520525757051656211192925095746589623304295725467410273746768156214376306347082013859678850254324875086751793309950755814639636260743067133444559341354656450480237659462922729762376537119062165405909948863737364892547323266646763123194225775429528778999045607770004590444806970234130135145509388394771592107695347423522316461095393696916821890300619463666212689635701118113450082912775659504391266476690922750730200533278380604198244951190113665921614833122316560479758834595053039400383288580826776441912697183381643778295687458860065979504911965905537779344186358206139413429212855396970665774363007033309628509558277231843760956740965489247431428626883563609767541721061735479757359947181434442673628056195762526131381468937052853075621372934862523958026526953988449455412445172002689228918676690949284260061833331554696570931505552017997244196696628442171948154159149913625879652530397513230846416161109572274265156346007335503472333885333192306377257749138685256204076432798428959240923237529473517446788865410301461592284893986898920400949431252192894390603014612081238360311565932175241048170773897095577592056775032506956157982304097711855013020538839637023020297811133320284138198784782289749921385784808047875750332142374329471158425094171574156872281118062919909273043454487898141511138036166285921570156018544944968468665089347686160787381890069722309109273685991061481738843177851550792390592347941407835872913997062825111886083114114056339693473638185508920480064333294181982362735962146737876035220083184289647373151407784429607374516392156314248126459680482830915913246747293186468159175840458517120804139027135740577871562068019126154925820076702059404073738982898087989614611856806571773132902606692748565034014087627200368655868475773096551731595793947361354485267807299886628855029556664032848929905636709102783819567324849431170987869182395475058391573468571732471857901789106114844599844723327367148773885173787229667362761653732770857023240450851989320837160502335305858274727022716202435253119922352388464819753541409918103257940471566353216875287566133657541410698155790437165210916766794463841100078653649570123844278376648772040267828421966728700054170823403199642831877608035797597380153386310555290598435796372571449663351640893944605859774779049430755654611115864709085952739483802638301060196285653344393548353208254072727481195339347157117254722630841305780908073877219610769959676522686701630197375068542330247825194315659442339996325424922018908846177667265289054612849761681324659361348221779432681295059893837806267927221441454925369947248684453072414204723048735091283916240405375191316753888818195628107299137505037483741469338872536949759304093678442456065735284438245664217120702117102520930852811111601050983178946029908448833661847116416816301584352197290042210688994371822614579654317612853222771382638502325100556166066708668540387304083345931158673083022262158300428352295686885702692218390909051658483769268372878942898690943841076332553397673531255942307300008051640095839851775485438474649478414307637879891300911859617833269685410003161254839301830462752101189480291624777372147643433289936829166639016693863355706168150866001014099463377783821053230941744418639050727794754719129334525222398900502037527516698101124791506307862702047668533104607886270668354139525881193132746539595030768141431978084585480657556262632026225475098125575801092450364999721947664521993158951823219871756633222207050920607492308788223531135953215709745212487331064271734129176483170907031585683788231087634123132486272256934868105923288173960693950898056738096288818127512311210769295815266116443166345924155000536098373785857634814203881462755083604222990301737525722578125857295185302305534342535678606004370360478206252843736343436282940542651134766517792499150835922916759383690671427187668758245298760996843971285656375622814809745413992248019258770453575719582475028392570772242726112935459647706686191891563737595504248934375478227668340176769375174969745021863588363382126106939793758475880517823003544438913008290579559453628641809159256939024265814825928234271986714042816863206197636533124933555671866149410717159602706572778954576749875723349286225969040047117975295687634594579617669742009746748661105667639824798599802039461401863736750190729930238802035210881840454465023586639964883233695655058768258615265206855296181953903775930178767216951423873412010128841321656930927553789300168445648686186325320596601689458960648109867506974820886193015737875086635229722559671904336625751228443982544426643332419578183136559185831868547022578309926241219380927376883464328729482321844549600084294684263487382079905157922296230892133531038374193328301772478021916048792239615406108196230079605376494936902043817290441607506454411762616365682425301516123597496627096535055963444556970994252393986982570213041571258719058167149229157253404396184851635343164674500668588175404121363678757388337351184668583093195108787442880656760148407327101455336239761564005390594993521215196157313385340211490095647365503571205796000827254025577003033035461966247242769101116924603258510107758118948137616701303006983003117447290848637749385147037303059849235639021198499156259996568902250297529961392891587998539611188848999284433707520683230761052547298910861665660053359509915808591910216187136440910374110017091132276973518876696070993504063509334416571593145530931556662516454264624924651871422639002787325664621196815137838430160119919003559978249096981762333511365451404626788143473837104550399792117065549611335780196387966746426200750987846864757454745784274356731212519491013112787517675491312066208450349663939246262638716172693773677178823134924341723723794630363580995444074044981000019918195793812109831356630936917992734448716359970301715105296190528711948948929293408038295222288860931114413040167837132193415393667609886478964860847695487460380696848717781404544146467230983268649567060025641492592722521114821415379968689572450996561584526577850222099517911069396803872820221102043819928546852885640171389979511121849690644810409103506131438874708630711879070288354061469634325596125424463773790571805937537017501062101956561225650377525950341024446143662722097547659811474822473461654155839237636068922668662249330042316444285021250348199325675922009500086828756456160260990720287843948091550181672475880774837199525382491139482509040751095163742139412965421083974010030441721350437625735138263955449534203803227723746435230601075015070956873614358754314128298234188357803988308241358212930020383484729369567611039966303763786576714065701405326085756581668685303596666896409391851093731207568557999113844409111831988186729278251666186252264493436557205756840668452021681192887206594050027206744642012271053261285253963333874668989686757570471646621397444085298667519870299418527199667511826733016920332593654807102796223395301847735398895703346291273736090447931525607883290390516039648306879459678402763567662788185832763926669220590943158550814021953987703591533823816764163830401773754666638547881342776970470236656235033326843091757990392799058208239757606027887274526489539438888905201322337470167844147029543784018933407745709277800335048220308868650142531818584559993127309794457177268318505484010549880023844955575188594650901611418069518149957764568894194697592300272292187498738753898646173152541226739487473295532064266595814477936143361879967734855523696295719851952779308989080783217188926321361563968053283148236205922745151030067290322004531268995917532853547833859637802801497362896107594253392896943388198537496649992023722832011798825357942367975830116159260249359900043366342864699134955402522183677464737220143178998723915897742728635436226004837325510573952888984404745724813864953219930049844768450231238796359915875556514888302608427192661927297343711567252421509441312204595914973056925779874818068873039412144947088113600232947168014188460574314851859737943627860009350520365488520217213892304560341829366592348071227388886452324400772945349542694415583311907611094490158463146638020618966409396619085593229261972687287196955907032879052357065865828769883112916424509887270524958259604473634123444504045185194135205610694731691541792885535210636287740818201865975265217098156899589693585337662926347813456679291837992789221484448333970561279431068236212980899853044876898697455660089290354984722097291692749935773398529436604601292823173974730307390962109573425888380127709443791042100671416801222213917049018519938263361104981596718167809532467003062449510594357569477733478922659171006648335706881535674885128491739183467170674203727381544842343790362200596781510300036795646923568590886232537052121626840301205576395276478942982600873700136394134619120118123450647948809839339375721366579623668445716515648176432014334047654820600702584985971222421529837238682896196417029904252334354206590375841835755822415422000617619154596568213787146937030991822501392188639505229954470942772401143591326011001603260044597155464305283252479816053762117442389191085646574233823392379056264896097105913973858748355401531089063466836413425372354352450981279463087866553500300182345387042371792812240823008024378915721030972209495842010440413804142309770197350573843007189641070579440775137009736473075750457110730778968403472445933509393897896762001835452194081937274643428199111218558391725780718315680381121389439568425028909602733195308198639454498195965941508698560056917263416116437288272714571232095716714740280868909520922478608491380902691471538664367258699252706825154847482236419825319076416361309753389939410723816916026313278621475426265267061448908803330948105954889620851863878968223158095318639278060374742983935585249249087632857973293968512769610741747345001462118368283925716680773190012796724481233251197590806307543833175707017492135785147260412801566737415025999687406790786051450823397513131740405256902593663108490930423605665962417009903904234016396673102272834777252203306052509264180550843110086286178254122126367754357887324522179621254213464448424610738301527353931682711334545528417275749381083403135112723455585342563823062146285766959487586294499291936476505933079385291255305248768681907305926564200950756673655576079216131195466679899250381414227676580384846489820688949789735533337142545371994732307721432763174135361383477141682156394137563303910180337786408121470535205856642612951482221203795461810526397135241307037707795853115534429218193029308230907005657595244858515241923028288632813931768479627628341612819621238101100395544497324890655128701442594170677059058796960496503193204591369697749317072512732963642507790064410129721187876298788032186799165717597747866678612187280074590323033567373117996805833522156436943734690654467674388456526528392325421739691953782704279317901637582799335135908807218514158252265603269472374610069150751024890396043032738920860211635653492265349527342125124490053886468661558094790389563608719101490773962660258540748773907144967644229226186954388611650161801118130786844683955819142552894542571946073427280403524174611842353491245680193908476870054451360496722790366469264776917421846344900011022739379979772511024686769078015432773961790852880643400670602927812543914177747116815709945525241591321564158177815788014968799769350557909829184548836855084841469009202306200151599006865602851117989658523768620631689310042300460258035667237797796996149243785141159312542473197262013546326697635383501592114712003037166032028992681190047164033509123582561393448308413486869189360921693290604096866708269471945085231327242975470003321298765295062895661971869616931176896088980753558254784709156227353364278004680024242461461295511625626831877570661688158837112150116876699689987538536002041212714633717309046538051966356891641858471658346086013654541328501018038763757652789954674368483041740224342302221506068135557530010621182288930517556318203449413334250737096039322791817796984165453086257400864421435947604240930249842026846560380718803463806779547867177077388185784898045315321320105995248230040340324999526899703006160211660125634663221622126193397964571117133782269297673616941597294985444752090261098372913376933255858427589232262415467673047021537900075905419514477136081595664384233594315367513441886757180739206926706264639877295430721455057430897983783212657876007104299624549753717184057954395819937324054647233968813017408044242392279800262487055447072678961176628369472351240913905735363763840877521753164214268392211739218874921759467508512266844631473538301298063182983439387565440970267555207750967036566073963308826792134067804285248914485251507453445965113365681487062426479285502190837649126801243927079855891935901359363036511947956018111921743221295224180565814338262149565669222378916675517384236726821258947531102851396848627160700695516833872827368208738752851478602947174415772732166542006845996310404971866310832590455056593878650093914366493064305093284609214854497488127367400649515284112690169715647763908121080368485969263415487147679391973021417268363483773029176537904507261150177656740477965029608159174461613960212497917031813112169707513776341685808285524492574380692181485871490301465432490682268344647877902777091295158337906023192533402125246095930377382375932937052419350513396227180604120345802876075815646692707172668566984798330294555745809227710773358649468466264710787491952559764212104064589608568334596774767741307919444444860098453490296260530187446369564909936344486188228355411502342063636371904006278567641649684301348799081481364885625714216360240103787174428510924866377555977259652610413902502469323592834797028111194589003141931925967309789998734211681445150411817841026928334496310440780310516153680070496704686559934301789182846924121761084247697126884461375453626695340768405046319496522425033330889699087157250016648788187409901753811406277539086926715323752716175575187915715164403588863132710518133833857758470107454189938743844852518677741512086312139109911803989442944479909498925763582111572022940342667928725110680691010234124168301352170482751431917396647957018655160557511772564272153293925294688989879192261804172415412045682500584813223798937198923110710125833662229142129068632680805570212663059790778555536336886468913121792688842799339960088905301100284675599250424333198632271594276876340541700168319891900119732424291861133006442455468912340798133298750026265117374610621706383535885517893395207846669510725669270692554765024732248448539226960440386784008654057495158040601141394747908485235396912777260232647273063366435760676186010088024073304569386717589946561765454605706986432875738476474501595387289881321240034371102129718342128297688151412152576807707969196248221435780995129376693556415523436592236773565688305451375475910689073943751108320651456388352268810349762464110385193508204023775302513732763912882321037735790199820434503471971246510093597495916327098024322856300829336420886065747846712561890766737745463421966043047893161102403227265878762089235855944425873460662596909463530323004957338401836506720491194021526078893889777790827282667706287011264932397131613040103628345964767322207481858184353027361617995195245933595337045289888689083634268805282347477260423110446721205700542068687918063829213566281303453181579345151610803406700496381117800402758762160448872351453914563170794861156188562183470555828772375348577457002512156199034047358143216499831508390957467334967737358027577058625274660329355058222567996691750362560898095116407003108152180118570762330692466976980306576401451237110917295065758877715091109716324693988644633626844934530134316065397088788252413394674547531318781161198573518086864918197379100265526215782225238887286169198560813876728236540411155565574296026681234483257330855510872447608662731389895028147803247818003089775496160443710404104378115693283628532700367614979099801576292087443764697702056362175397269496219155244025170555588925193341895080604765203255258528735746847149430613292548671800765383302959622258868777719035504571435139569607336485114712874893198939201931072812319711225681827523342332531131409375028236032896045818403137107244457161483361596780719022796303794857337123620440325309179740596107331185877148339013582547876760746775583738108104493437499142336564618715840882551400829867015848715452086566915425141512979021940618580537719064365046474377419226071105562797953160382788842910406438726740739600402198995185247774071701338350079780336652967705116027390119481747677316602240100520350842979302364083664080491680565883081268081067081043002368963129532393053289691611367432807797408826634047938047238090017958405737884062394924953348459402306792348340487775018312104538916353920834382115522121676514340146847407294978788271711494388673276626228231775173275074969428846572676743328670463579426989233048748010383809608128780402082733171918855471099992849061173459579358163203915074296456091815409168609323471401658275062323832632904713032514620301453654651276469870181017063944394343079837129992821980313164501888484455162148868683060154267539750112940580393368825052752977498235354011003812213254929417948217151124210680032065427557360209833319307598975465682824880207511748747309833913708148379349994841049927305038881442521973889954402851288123660311251917519361192099341265387958179804878085268771590115552480176461867012578974502498590117020882865661623691075454643841095826673212032895443366065726521571681659566172938860697234758019201523382580091103345890980843302085275605393746706879024800762169872966374303964677218035711546495224516074941143843526299583578758312417081282159933642416403978202568510420564909312041464505695256754361757490508733003108476343203591063663353322219866181497118593093140183399369285054715851184027266875678523963886070136323218918040514759647535280807878046586718529445038128427347815986665069291403731240402884428159351271974865561073235565193748064823673447964997157234459287423228077751328100609386317813696425189200866120157063837196002706210657026228791059530522319538437059975686496106885755527611241410122532956733386800253012908282893282288163809947018990709493273909630935012442599596893274291474984468905899192047587726440413688766580330729921882625224109110282830313882766390675751913409072225199257965208382670250078456557490374280958154255482944312596288233257351598405762112533168766109814470254537367731195647608304129390733874692677364267394221884627724883527164752769491108460540026098111020444056150149680953833237011687931061989127577708436374103367629731882491488564169850207897427124389090525829491177994292728094681449479779397854563909366900915189385301850150920368525247868022994137615389191373549552627435305899789059634639920139776634516562299393818721153659898039771463874339955400666037535261381356491042509914209941528489798581035400131223201717433285676166321058620646132271022549542486591429865030029527471287570836671524855006220662769625812144406409805189876646048200047985434145093172542741467639477514526770394823950504689485446848281877777737698320679547252090994007158047657861190984881107121677876704442116646377494211484287827421764760935462099278788471120011014967118789857536056541342785857779896327198662100185377290144534418016811115636142053766615609017296480893208424538430131779625422405261819474725077426566143155962720286459305506362243773994575994568284735098209507992702472477352002616085857418655919248218309307390578704004947555438694664374950811716580497097314216199207379802389227763534113920562962899256002809840137928179238540593865568832156014554505615279981413327788783449254851672141022281583806220880827020320368483541008280343541615788008491080614590767112644616500217018025130709963329195035072647866545866640584654598509439082824971573084847661721487484463218062717551264216736982631730392831536025772185270078157539018173922356304836942543298335663345120071774569557823704854388699033537056852445326693690787248382673867927769226554997381436786380540622363293221777286561367090933825756439990614595379621126592373949436785467779561664850563343841341358959610989130220825497164048733458022956716256414156348824892567400667696238345615384004479502967868529949942786273890832844065618512133529159305044265996264817854858604188719355416242225066163858413284345104209646198548574131899847248262033052081098806438354785138302704324523787725568572043975556001863779914676299735076486854984573997281590353321709836395445514389194073879355602182313915040292752510197817200867741697994237821005118958940318260673839200359383598576035954970836978338822282212036236176486704620959882704672908760541330579484444021628031145310003541722928492089775780709515672020513834345239909988416538688180741146233056008039084087261324340792738315592850286744272444740796384427158518069499979736502634636802638265897462069733658973114773107244822813457472383322430808578614102055269847287176034691434130306159661366373242215177557170036230091365833785650041936772125374612407164126387204581770827600305954192795335728592136164112125606361426996228586303187754471132491239568496156959513846825513745890284349338586365366123524103415920396933495226018209606330022165459817634842296256105778983258723086750404692037421562650071954995582497167120279764031757539067321395322364694270621636957862917809266024392133489341398545633435442682036156533839798069887189531549233369159747944975595818854853865773050351210946474840535918218756598562573391000126649477332489905647239021052254810585232143528018999194129018711428530852688411174541444155065043501962583344609861397285832632432264536220720183908754032287281166171821620812005876256437273840862859906325502780827984607567206405749208950779020299220144770846133497031740338989721076742748650500182982353122641051172080056747768246897176408802997227287378406632522561411192383975635492281255970690237398929309883548333515631222995795073991671953376108569888156534463423442958597703740441678957499164248908379378772861097559934504181557071738682408044035774273495606003571450838069339861048033304296166966159877138985419604228511216132844566603451365939415624758665460160573920391209159436276382335026292706321264137573918147254084267284004282864173395392252930311086559416022562056549380067847064421641464967870865955680964889201572762324853149134696550995121841324251887892416603988692590739996068408973276086466888911930613652388675771933024891993206306257174381847495414055747429051062442592435899461077351638524210006399555019622601219999752519499638029983350543506334568933465324429252781899222011986786455251496972345776359081938378498508356272776280722961043519994450804878317489656586119400664799545981183599589029424382387286414460869152897612542922431912060461409998735789957049728118571183208983120965861585587849953168409400898166455611877453957382473049848183067999643670737306297632596836185010712459391338689146786423033534039821078493772343834643522923843385938443807262556999506430017516876103355846386978551101887076915508838193516943131691204891270233249832995048035895422388936258360003479870444132738101884758174897919344623146242114562405504857305510480405324450087788132824219607059190848024651612458976768800317816931240428498227973940615180389459613429472961171709999165274300028410711266275879809754576529666754193239673353861636993872278107071395628509444926077496562577726171427728994211990810926467197485812656011815455026707753455347640445379760914228814508573335667472231868540083444944584413911071912437123716405737382417310691421034961351386779596800784427579308867033594704445712828479246410848620575333018553982653633603009383512286501592724041854081303918194019576169396278198122442794463448021532279467534068393522424815211893562226837891635982529719210624850430803808202702734052260057429345857098830088698327329826215794388211481789963855131476109503683796349908642607279084633544540456538986102348563414098965351255971547018987807318982372127180011276564340124520045055566908714877394042201037722153424197087343741020212619863963402400495011948359992337609204915603362246102595608379860982446499893966000889680346316225775617739176859373810377416581407250411046784274007690739105099447189245635453605226468687511278827563318394527746395794998907871599577622821741717802811756903676753249347305884241360921190874329796422807875722155141743171597841312656263916211270961659807879454006188174426867059537396375262949329514229073791792945659278658673557266941238312343483563357505545233073007054817494652307052014602979256351872412959583097220819390251359755512645818396240336571318401362325019455781149716776933263125648989303730098916872023361998829874173336247411888276091364662421111263258294773841050993156972319402092256181626955040308963254706005287178992902186813391257706646035738145912388473374020679990613192547656376923029680325887861893923867287313874282922724233052414370267951072520588988147036623899674087592770963836899284343829158830612934290065117052923311290865682076483293091601099595628087108772391766454620750297577629182415070665058578890890274646890264812714456843347542540701444642908974797304044269824078484759720814322401809406884537631253430080508531183063571817107295798892550919049970454278961177392289429032906531782158380300793901321108985143231157122496423991218345412918987823262134419600781283045439024911724731477667057992102697327021165107569807787742830309601150475476928021151803140967393917265176628870783604542457380965165598860689699760825719670229508968247028373213509039510825812933992465870400373925381160032344627786094398662644207160702437178761956891056472022735867360211181019351599258834617515294618162078195284702271185037540650488190224285290878642039653066687425585478941050977325574600875387435190108814019938773537721089901114379753466982787015082305495666856829770261190028288655331438347846061552201906531427607814846411316589030574522652631884252990647342472561861277362184059436704182247626940488437244546045460801667383424021993993111992957779118190917070686418935368956642722703127752455667770081920915898566046102388341240901193527179456929893089101903845402988807053156099072814526456343477635666971173728683788258057460831405942012940349096636886451094466219093285880536412939044198282516782774049905810762065254637949466786558795114082231995446137529829070855980380620954114377844128116429147330041735229923238801080087536477319544598467166750886722629188559382254383651918317286784184998600871088781038793148744875245153273729147450461445717597152876141413409467027791044872929879118957283688737809673745196899864903406524900488027140699545118923500938146431090914294932589653269879459418935923803604551824943890534326754140942661655848262643151953578779915677761011729016478374295793026131671324258601370487083938979161257423708431165221335099873391778282047271506311256721935686636520646141254224374915668477124476559039416725032282654529655596999636927835809517191962464248146243076380242268672531191631355071951721550808119762941704988056941434175596580123684201941884620271344360416612185053666585777610897383355606676164225876327049378246034975768661576296417068698269330874855504898640509769719990152416548505727821294224234833743055680348015220914816974458284533030150068324508781827413339485494007926914840724767569722017302710402023480211699466669453691512117650887339662273273973982478467781697480138117116423058364205494323080594581422477705370586607581137556848380478528629318747137120141617047940350792571120130121531590603187062572674750923319665620237658707898057566580882504637568470512511785171227088991325889191798981968481469623365434145539916624467014220033592049998107730052086858963734448666515742145760343157165750992316451514803405739076061004573554526604875115219787012648530129428029669903042369158272821557135308333875032192404240964123700491580254588289022796260342153724542446555329495615142338633374135039568558835665729585101840316881447969095354511732491668841847900088107005406054949316745737539761557420346752844665387099842183441572693767385207002242710562775621361825220829902528670774198834977252523873597866010262468045611339587335831533679551926112835136226395239622066330749827934141120796001094838660222839129087693365039327657214568945610594953943724589143186273340244728702187563511236186469966606310136860756044844559198218070731909019241451328374329406319983597737218865685919537384645781134695233374699437876365221980367419379306890567926611260098403079393234598340073216928133727936683401978242460429016425893605184489772531389968650802375384800272946617200623896376797518377965818125209719074291227606740469214773978536767328205983902400194218525359745982136196384986561074633755907891139751837751671712129307709846421634542532348412462375430346498651473774698068265807119294185375936142837393703527200586265008292066040322705939882388082605758296228631394735196797416894074275086724326260132963672604468418107888377701175599536521183923172612620068369730111556139622317806402015819373379881518427749038645427290354215082089711144218484303096119670088703629271051374642225323673076400206654797902976891873942577254054853823532800407444699807813391414939989121798826811968940000381052154139335253818996963033986078983967599040530896450785213080138487110832509890804764938249608927819133666942482301778625453706586994192600702072691660039566271975479798957202286122322656476848334668106806163689488552716210907010075158755897535041877970179808626599918068085874293010350550245822176481981087922052623782718878447038266153221203932618573330384581503907823568484253134095266651100116662211593918678966927499636046208096657309941121769176634107429031230795213806597846702212395714228906073141110971573284419453693044364355377036266438568862498467668344565448585247162275222216967116068564914648655385252901958399167660023057747174531511169902008604489197041589929349710506280545689406986409613454965892874160799467114664375485000811484933014148745462792388242347350095889821155768310116557869543159907155890695629407816144155534871666593096876937518865913862108774365912026259433211481149837148253160606663936808439269741508220012388792933894213621923875559558165663869447640432629803674384924216947454770297203735921668951740179923044194995387921785568232241116048417522885603361049621569899844822272354737718055713822754197702732978340492051940289394320936917181666305530875572258753406249567441882932656925692249363374527449177960692939319094788526684434750483308580093638806362256570490489989478504376095852024420863169018305875974335188285130343768161342820958853086076024209244431152081554298448156601951723994960363075134266070024068588980838076748525589855148126863521063111812184913844238306542952635134027844434598284693943485163781715716037330254457538187328412385149624930013314314424879233474631271887984806260992144311400055471721900136570267638340648943126223775255163838320086971588563115947465101044778206318229708280428280177519253128189206746744977822403189241859379083128621603621873542620228008393927329901457726361679285074262854903941695061370809622877700843908563688829666100665325017011333255199968057649760200322762975397422043514770901364326835699521493232844035145544176238745123869068272874891640691029330313242898024963047746385704437042125514366349599526803543295591986915706528010455494953657643506989908842976810901153065912843703672519687215171544200406927058419269251228775341647422826177218054729702887592364719255708853049698946440612773147219987404196909419039466761872101421248906191807723499879716223840734106811639234169084548976274756424205981807900020850520052719577153722065661461226793342985409989398178434018551568746522141790751430165694311903449249328516438171055592785987529868226847191074105329810531017950230124684721793693485814259053376043083023848787043817004072372168037931076021498008894835329665230359326045785638063516875134723088716262015662869236700150225187705021697256175076336634773066017724926867408095448343407537898376861945887529240375813110265687093535477085628327491100440484315547783548057852591254096626881469018196160754193037472770322612867176645202911512968597272122136408773855797362191692395929272178513420021821632641318564343732361090302030841258163293983471520609879463287372376585012659701348383838965885743068151569415318859806773351463094401272837485778496308613055133560213695737769223671673717266745867583070900373428144996804865237370969493261290231136854469517363818828389467316779941501292924914917540342548853743741539442583307992498602039981135057320336658688105944959057637230716500064517396657609265604327692523220019481130755256667588418490190302616366636249878974671621197989242793845393392403126371968999085385309451438195866036866420127613986326002839363030161012686117348845995908408312807139380089592489914954802881263535762463759715914671753304282190360328986762064554185255549874298586440652003977036664140470566764615178877572556598494471415514875089315613936236423509824899164765543801782367251379424615120539438757586690562745400481477923563988743653232672162515941345625179260717612132871370064967677531817875829572268928448149431264469778731582760836872672037810135618620110053127283487109137206070146899629090785548878274410003982671344510210468898328984507366078533247669899471501998350994202158823002609556583041718970827697880424483403641895180798884397524619855273296478427150981234065523696797082342281612954346464130150448860859126084722365140184075777620480965135678898506637512484466683026697606900510598086937038957934307894089855393689718542116003512122394053623979262338000360221358404707227973124203736240705524251274373905298823791849328641934494204140364182578972505663198844629042427427597374037654995241213545464509950167859047858483010390809085356382065818667851562260616273709792902392397206053914048090897084515891989544312993775911529613913926810896682319958705071035519900681908200581579287598804045709635162767616821240617237476486731257379882972842067898714592954874545691741876777537747507958997695297931445182046863437966722917791546357524426862416819046492867457598020233636510829181289630671379739478890101136375790452473072817620261619903059488484189794303282305818275447376549218211067675793343575663908955847374563544340495004060914685388993908962591194023699122680025945038428054610510593658019969812498027799192824776752435988495889248937793345802185212826736347039210605096803671407832264365908687034223085823560835379570326089300619765215255041957074173107600972032175432204435662508097273530912664254237404669106879255486687533086419308103097647300459336608914382617389457312553245526692706624790833916258123914323193672552743049511758644602822735290068344259050492156939804162691528700350149254918424318449371870640822429055381651586020684309704004951725696631679663834591147936554274620595198349701067705460270708711812763892210645035509555067637448288419277609237443823570868778393183560318579590991782602503273329969411429958491970463509837859971470971039013569131135586163822026012836426297210742379543173746703417507547830791791225431397325397293405552332338730258027834343617680117453530551660757606693058995795092433986428645293565876799065298239395788122505631295892917565242305531079618497696576577871761545867437792941395061089390706340156941124824011900016028019777902344553488066097447279450104584125703756711256075562557538626045506537925846458788290003558448619720689666277535566138194972771063382751289895642292998587461997268057721310969783555348318599677566723682493240823690475820649000138690363261204694717192829037590694400889260187593036189615694206197942311969860634950121772271296955040389618913696759648956049377942339043594688245690094942391491454862911457878669729959954907380385014954609391883490745984083328282762707936932716987477047363876660876177286198687411352572996549187366853200436550223241957626513810233803372773111606350812078102847901625157391223753415121231198924559323258764782410619818383503282181074523563998192855504989091932610354666960728712023582214924871315258924744279806677789915318168188815803610037344670155516022857140501377741412718381565335751016420980550767259988177096650908635471564681190954739139393187650505667066248946758252968854065973839039925401917863874710193867450232000012635577059852510323716938608234517983718086759787387447994293095458550890843095188011462600991995472170428095492484751925810240223524594591459522735141818559812435017985108033653250528669158689001612566091867757963403025080125103887066573564480076436784589988244801987891984323934794425607200346307077680501565109148797471347982054753401153960070334766443222431552903049608410324022203357767559913696073949900058632191812779789508693461214017048749470569682053513106492460294819609816466434741854906529266384300537120407713066109336504347064766594940809841362148690321843569927151111199780360374537294185825299304699035756675503925330955222000693576812102229761898756742951075241135645208566469523504493110145824700346516789721133691473469410315880910621676441329684509757445950858863286831164582887516027393863297001563158364067333156875454487657529651593871308882193061654523572324568868362885528806941654956828229519094834610444110559881674781316459337574057318322265449745377841492331089675424781442707833556585282016865179958387715265367652074376330133752246304371262269238382662454846890428397630366476163719927746339033071854333797145565577703111688367971268128808898367973016253188490605398143478114069594235513523749040250236354805096264769014535997370062378643533071798535468340704252124717026026033739577838880075770646752844900057393825308760665856705879119233389844638788857153339516634834511609090583860976328165239532602432735890999563212527826002641987134622659149178262965438749551921519927280959004444998978758353642830962304406827034392690925289372874662689476494152895488754171199326331329448855327020124759096103966173913996666582927677811496861922608362463917142301482038950101591437907015474083765650149491994819941433178233394168456643466176398161097498648829512718437181660214828777917760744850813725934414277143312152371209438688824640608451405491030240919368984641125926263397655901498681930900332764143620860680831748312415297921150898017440679199992689161548366434014039352755773079378193446163289796054768527209516922905759986225676438521387356780575014552663898137361069434802141434886548146402583961024821929480232198507058180752532540215587081391182421585085282665888860148895825007179873689361238869608756035661037623381788220476370370744990082550921040040899517077757846655706405422099023059002172016391005675908170357359426246752708705603163526120077088332276881484508284843423250482016247813514235820944041412734498185766300281339641495721181228630198263583819399058067680100466653937104319705613518518945724207995692567394147234298857382540534079154190018506995419429467941491108748220764969363500379945897460814063297018407940642922978265266724405903108153584539758956066257024160984376824708194048994132671746218954632850867788896479614781543425542642045323133092044174331262445697930890917367426697577362953981989638203954280309901187999394847556816115676993167001407287324887359694039219164222156109544544672468637365433297425972018102608526398067835778426577829965323227464608628658029155171690911180134406451140012422576726154366922043927674197348196859044564869702481604421224804921356509009880801483787950284830490233445922212511279126090110193760605465728040741932195514053755097527986211895845497939174222565299135674706460226879717964934789465946176391707108507082119771098971448306199626432010801642175751485968141930578492563159031855738289042496074103263444356796889129895716623664999584519211579478228600900505378471238454383229666920848667910214599290963478472410778438798079896049190427985887787961626096976349682429831547468728536763839610634700615807706436153079550991776609127400368175125603892648799519792092010989193516452777063500365693830094666151015393442651750089013409930246962671898324137880573870497767207344809682280235268040621922592614210766565808433256016136612160026671139854452182008224153779756919068457241973640184695559300254512169267738941237405005353083946604586736242644374760618777767260560292772634412865241048570196230739582413043023669856237311986713829181861369136816999452935245375551649636312302870649056293805236028204607463207259064857687891344307553440540692719562997977306150791875871999301347711269982878736643803182233356816456621609089135913212203373974709157130592418996849274512681098559863172063516056894694914589099714674682259975952407781017260672285762775318946805981435742560011087361187258347509070477939974513909532765703640465691794961121930043390543054292123923104146254318977459785369872732690653627422005926340959059769930750702791299029289138973572536876320906283587644588508021887259823674169997281971236223538297794567812333493000386617142014558290968034196016970978434093068827713864915084166764029732040215470551312804880268563704454815931155010037991088842779419004850540162675621056555445548454068784800769293865177042052565510587035402496990384620549617324525155615285732577636428998200166541656641164530949268194951670512311908751866891802408192006346541723389447429983619028052085779489420481989436413085604885427437595306012605740145008232280945723737437783239707807178439643982688015474214269480754610984226544784741560538794593625190726845907779830442854336988937710103906907191746281918172849794972046834664129628484414035697832992927536045099060904357141542779186657123764585464501917412699619050105052596389348224024468613642275911855154973532210504793626252452243298849659693575402449211650905185358107829750508910890011065271753702784016641779394123847538845213856186426714733159384762319568291066468842217317713958138065799727681604011214006567680516664953393830625502732987562757050819305874109344147498796972692864153124454807550542598207136589537527772875466550432499968817986082685503810928746481264950595282180948095074845947742817370794797127291271413899630338645369234567607685151851919797303131713689607821035686837644812140638370122144823290579724531343858296136536594003959464923363389836268542145673520194938685468767546731576613966255353641789956668979549508924964167318689027772362532515134972315237313940623463876059410686769917658949726854878571339553456263298361337105442030158997593271633723262264692288863132408554774882324956602471404852861479612963814814215203905027420414964747581161634550142331333162605300004504815683803879532863300665812141122756538314586848256114522761470446560336709428846086416792288710137531521048684892866275409237865678517857517287795060876750028435696938288185824807796549600853040465364878542157054940555352727637519731220340724057805702143131146892431630068428952261229987072488035749091129258642418691848882368534843772341680826351930897086654500392133294990844540710867178056870835185792136236568641559330744527008577498954112035415916913982135344485586608386707370442526505911960116557056510249642431691206470655511807872149580459067725050506362017513294659830129176170584408764232294399011049120304154990377433197253892324360504139567647240727896873924434361760395100244687549318420892200023321287857267995094926764154053915325058751988295672871835051143515171620183127795936910043680832853345546686745970975805172787765924120208761291127573850568921199498093262997441381422389510970433244393011268276296703254902815511950839642769453809825123338854561814618827327705877563693894468882032413417735498590345932160716713643885643676507283565410646663166958185319486907738825865846311055721339898679992542347362265066327616282690565305500384689898466801148800826209246107660464675364440244442166380897066200280543075588340213281657655664829691069995493713169279321555866719230709917540396056093528745727555007263810652771722200873340946553618773834725747458273886850427429279840477054587251507564412770479981105399056667411402254075823591076144909830500780247709455289826566922815107910119560918086045192406660533037587189008393691526851684448160202176201630568780521455685368260159806567143303730733192810845009404226994060034343678916523737545871850294951024569612709368284078196564426679289559909977205732972910135332456822164716119755159786316009471125715437478192319145566759459985767442499655308550860747200793119647097857476474826780891633513122018962918482949601709748177548879117279320596156872461962413757507665636133171237665867734579943148196422204149878605269726924836210912216601388014637452107344129191026626750793967138249454607402343017803988982876535233927540833107931981627008319907473980468442289586081911734847720578662490390796956443289490257304240609974216098349384883065271952650083626531533442710128360811035922407074852593758258061657367907166123704832413028216586825288859501989371416370624675275752247641013363246384469895487406693769865564748976874726099091031363855826496324857287986892417703812194839316274078437892121861688114385452605547054632736469135440477501895663105384150893305110876405483988694030369299154096813165466524741080835527855440966036623693184276450486447685422827325279970854958892814863995066789358099486285069061036942123045991247555850350353857415134340935766611486334451128461698892280814083770013507943480476758979257225142164691213390097161642371007262249293257984950786532014752532440868866067172086159451512311280469511313783840858433253994930826349866214383612664477005677660482574271798249184603387360398687003141214867516464139008917821146720772411113787704200134297767955440985462580909711178626572575559885309231187185979382397076314096585994087659701201231471223002762046733438635407957714249636141107930116973529118875310079565069958704254465968829828812117553547878864277564207934110469053221287365426601352000101435633189419921430125658680622499323493989795709978721362482200746563580943173263292282830975684377538044843681424167253329974145763665208121744206837483558160694312065777001794863239369464421433572611822654054818876917602786064038442140354871304153391641913533124664447084810747734863888141766516006015723385528102907877041816454959948318672762920316215129635526117627958871969865158754556771780118803130618116122459201981279161173193212804808993683938247022288047919080005420632752201359639524741033410482489956938177160763306660976477804856421517386231763099757803223575435078485295367648569144020409414896204246115559869333423878694059609227110812158982966817127680856995616807422551034557955298919351842220185837880758790535287555284560791770900217745438211097725130647724177597091076554137495859871474314348061924064834883189823326391395387806890617178077743592131280288807043067829186464102610569808825647674735365258521939631908469409358852060186985148858140340644614727743481521244525308000861962228579295236873760367703060100655928487735631367453360255468608023883193763378734670007965566683060877155530641245995648917417804605038510225487821438159704301453498707191251073233406834848701119228257803164072787424265919594857344930565176408449853500944407099960922703386101432021891962784927718792161280612260227337854176700338716938256220165869637244480226353648267283194565297380088848454137289036787615310480838213674057414269158286101779668612385189444413721902901393755476815051553608673881281332978397115352251911064716778983754228202284771018281498212834736939101404385117301769041397055093427357379900464850969949332338864880291879187769147982760683098706105209711788377750062824520476253107671255401532014382728531516130570849608076392978626062473121678953228718310283935710144882341978149558302222323333545264452768307018290364553227486245924886179216810158104138300494243072197913819560626055450679213934182029975494944808851555806163715785087172330288761159930162330592453946976855275277044165297198452000944832632246431905092490518365695453028383552544537093923796566734888088005526652537659295368201850265059294619470334611159353239722932946049134218600190108823260778286460734254498374405329248022487284724879199789851841301754669821558551365975353620565417889409956627315188826630055593742204468059228913098545852355411688880728526389318580563909006991727740532768852323471923221523237960827340544996296248264573599717029463569709291240686527626673653254944775958289525304244697454481740657091860701679018784695122550032443557064373592844864556170259543257867830097669883756364294362986619420237354124615216521153115658104198063218638289065481410362859535272613618015047539581744250652969720549320114652643095207556966271901625199881785014071217281439870536367646982317891387585318612160978169141939878845042518202251208530490891263824939527367582440274285896054376339571396516375373984651849740231662275550125576433240256294115896965123808126500640193916374141628967507073305324778255008858874834406635847509333732345450631727981873658842240450314893877167621253169889818337137286601721827075392168747304405609931129801572626264533504646596265246467134978113879363392162039972476532781109315208253344985891003143138791223432323756332591493339320823731985973592242266984956752778773817566754305384787854050832011633097455689405561175759978195027496759875779473997342689022493810283000112926806741461106332318827021626711938293917219452763795251176237042694296456302361451941099205161499145135318857330579797250355517825668152488962858062012970450897634508923746459427299878542707735359384716797536502197199280500392613176344975694199700473160671608336709295570531297046757546510675718302156826094654183219787562669455283519026435276865272286422611755321489069590067495375021547699199019496712137664162509420000261554866409260714587661697619821903945261117415478779286043961559415890214496552510047542734031446807669051954884736981045303682734024125831156762277361215405825861177629694459865208122850054282648412704223348245244765587449126206778757952392810488558799794955131336403336649104006105664388081315890499787354059722832925183755759689630094950433534266621145966005364873447618726124875765808897962035618321238043149565756577164789099232869481053000841755342735458850114158946560950921724942873853360262159619658270230157104671142750973248980430703929480851577527618261653153096479058600856830339236702089323604856830953735094321721587330731377820827085500117088602721087085934332824543337573467187881364073049956120362182566747273455944910371740886639614064471102110645193870679377117752258765548188395713433366541217415186577891668476983473813388359781042353789902199326673047993432339566200788345415184293984507410248646812446087349677283251943578174398376452186623504637397221960094703910100975446742923156328519058972933100442569162857408018225142551949056451184371555668830584611759188313231278692155542307254030695258943080981820022796288493871045377529244237318540214295257769480170894374752500124481182426983681931046345188050342405931328317425226799334051923746103681198883323248223716892712486247455288322291666743117707667857780008171999264965234527604271628439981886691355758068240085400838648462011591091421539969940309310415272559823071773300813312885684467403220709737819242496208438290601688386861206013270893897321580198896266860760274411771234909399866891389234495780195528516645987048559832693496114971489783720226814350994865925067704835111197829354500165507536929568035614966588451797621065036054578819115448354309322226072902161407888477708292708917408182931907898076222753094252144380821587280628853266129817836417211880163549378353479823113776604447754353093735294322739618508690530432190141054581460096473016843391577140092229772951848556058961865542620392969245440792538055140863810309893171800450527900127153512184343618189762502922537472172986600375329965477969267918951639665795186407802033579946047965203732349765709818505103875282539498225660925614187705246937634152556037392740743300376455417411302636022136132970244914570527086603934876236361622863602835118192907570980827911042713927379839896657668032881966734627108279932855654646332539001801282281488660226614215295118228109337586421909197348344126516922542854312152497053620847558513256831246482044675358460257566044231703575075277240351038028971056410099098232834351523019747980250102285315989357750679355285218481679394026371402615122682740570299281497740567668405902926494000694521080176871497670921169918283556943331069463112154747974042128132890274238024685529860018831373323678848298824725745042241754779109121261054651906391983522483981975805458050570422337598706239816623634234166718987452879869430447754058100921186621563019495320564624219728488576386428590604196080439402100083754319892685648571397531601543410910726316940234623812628778361434525844490120195413277538661001659438502715204243283332286594289504217345350326862487402326891040987614078398155434756112143549750141234516477564521097428864829924152636259224339304801588613761675674531171898527549470486089338143341599977112418806846071282033516602202188626937300424469861354353024443398639473972989290445826330475692123825033716614441093275943215552721863939087256266084075551957172138267630527020118195600652857005608281936361247873145105960644818784677531196135044491614057682813062087793054880521360229033395090830863255745573570559591143541663789507054408767460818035890684168909950822000138720654541874356205268303977467249754964701954006789386060552868628140380294117688133929196747669917720077407466961689106758185708333680911503480050853941492805046789977603262740225659766167704690580793081005920445699940758671155518262734558259748871398068316398701747912932479156746760480608139729285399410691067759180795280699351825936011244050981497180583007516267108446651586875634884349487062125203192115837351288447714119170638476554387789839852301709574782246685027806337811741395485607693440500260269777747915892434085767184009897298684907907172513578264186380104290758033707387714995543525987793379549779412832633670978785148246094872503239423683859949747314670870296649722869951299236504503424837032650432879301219364859960964525711394545469945467065779494140683258929997881119876560873829127512754360542293254038247241448479526640226311735018786284489158524197587804649668623115840167307944936943958678803144702044579401917744649676379096257574946854233368902043500764591960937281330950145274460404839257673208171881512340399064486357717315417807373808619574079960526447004002599120712303546111693667568808541537826603506707327007580541033891893671834733222060339940426573116799439198140744040944078756805634871255245121747724125052911728058282574963321433894682502173032395299833302266060630069487634164501581926520317407046955418110002478274806705473100018667805309143886643761322935087416972737235140390943823974659243528828720504215581608342882207810394940624427682059933986070601246472149771446771265902786518825551018564299292404627601105139386297173787575076946548256191575317480052586198390371226526953398978167596797778051253609342714844267019087946372319822436845680624944381237467701961127456890376784464819058523526580017248765739172541693712391774104978440719469592520089366767828578189800901864750519913309324353910834365883956243043876347983376917942856018089178051657524045799424729091019463095977557036299889383830251956786355636381723042058846070548115163519351127207089698143061881661037733610125324058071938366932091512781208757717538508805143128924083272011946944471434471237815161692340114581969395314927499288226072022608951940653199337086344580371517088448383534906605847909431675014163745681758808835295780285143683059487794852843726325477132706260598161013440750015294444577532322066335104858457694467291241632623762500986350139784761436419817661819023753394404455316304155098993796666688385346321481230051725197134231610893218267014666056169027093141137516069599806890592949597709929703040069504995453176305578877920247106916513296686261495137621027345954394694362507803681927876884516180511257808902990719999168801906178950035103828893654386033047921985310838307983410277399894088749396479429030220718387575169580095350561429460672261155131869619891336000123786625406633756927482789945209822132167057130970440776994074825024481610884897460899782362001853299092900596847016278831030776191026834960821501673768891228010851895606723373128600486604701845210232144135028808061833459535762627069667963575994531036869176989491563638725612497493328427764696198293372952668135910915955750480620811403359844076577443822455664439150840574243871408996669009938810906730351156098077066963276603031394376342187744603768830926755134972899115519311848060190094146926305961084646114920040946880362559017577086463272636564722410373319485351866227612820746692976555740277328817491550025229555674765449370569400215586719178674839303683261609761216003664586096237709189485761904878969044211996533382598229949889352451296600573765614987108216028623689171583168899250131938661746699165429491827864582941763838865796622087059457704465032168019894106113857722524866495774833460627256285205594881838144642544505658276897153069211072101812270160892428349080706710505009982762417868814226564858468733922719213850595132103731729416673137534842290294891241308106037678267733321423517507782337947124475098003700353198203384173096734207082882031935652522369004397195394567991200797620526517676813515572973876056800329459328500370429280174691848851788282848325772529442783423491426684405845808933915426916411688896602373199650209521263254314547406546206959709234628994026386551180986916952696652214503733672746594792596453911565256528086415310405151689707180764499066323780313575418601537104936092365687712471451451615415420469642015062874537008187226462085692481566044873927915195654632980395789810204008350616547598606546819273639013040332346552717828397105827425399372396546090303395603978667571658338775437714901543521515089338560738405965014076199747134454914791787221051449269422393521266432438277335013383581107313678134376880736744486824421627278109157279984709490893875232208494657647055435313741546136404200692700051205313624158751955072047756472951218070833431217173076088763615029029830805493335847000633316218048867657639490820669499566221545339361715899618139909988233986120780863094138304489376705194147627864025686447842798820741934795703249805314558833622287619833146901085653942672974755989351673751936227684190477041902487070451879542774125298142537001938137509643512840429223365732710152622495542157372379184113409249870919896991571675699049500057757563658671332250296039214928819276235760336428503652133890032407775434310962595401456639556984000126764372246294841518016540929725290887111635095049450221889681615785460867200239435166300482559079807486399227912368546018327605343115349147376041457568995313263250904005820074450602002029849977871700612737289497706163367252125934331452619061945659607142206534954474953663887556605623802136746754706344030684124282781860720687026835352091045426633526984040962911044216204309535000694604037906517085614764518186527114857138623393607258612118321732280805734303082417205815950688150467685070339269179854618288010278329243758899767629744758173386645822076837205089655368288454591125142479343263989885802115526525188471264667934699466299547300787821366343451181589964368483556834012407591088848949469781118395777517405569197467558752861975438101067569535770255915879873066751810821411103747754274771273505293887271978444118450713882434087693585865709640985368631542418413149291534520978771266770330382745204055483474366865291529144015810110877278819292099640487960468393148532745433234185938558620095062851837299721138096048728741942515606428327137214495910974620382477345090343707086737601810840668336451342035216743663006672272236948921356479944218754718373798709310704477621910413929538139250835352992799446214771061910219186891126042294919804418391447801266716812458626166256726426432616230662743032992415512488948616590154699724877713963754016634402395047221655776742899004874910411092040773113292220100763442593099433624407988683325576353993870508886952141956299749051360958473758732284443762483415769204693232189503060759717349763450135317512396008616478693595310850558186401305723078491344121491247204584944987368145530325400844186361905739233187720210450010910132666300315643549241310224680280284237442945752514877709074423657883683361555574467307103008897723814106715127337754010049680936559123359167513133226112685106974827667324077085698840412116107655599834418026618879665560264608480388711200192724760235013215115637474993469469715755034926515344142897485865592940566004445986184203226721931600342329960581204738003563415232009662320782962543485278920266354629020394347423932603035304661222321814751702497658260754863382284231062772251913882138390008699543816476530508110869414519250969156345785406948814447382637126029126338924381280069648966620674663584114339948247332973160917643551122692148818286002956459207379484773585732536589438982769528694268806582279392610085609437732444430274760915137641365787996088922528569792029373530115059931654515886882229565198714961793529124063487348643041895274407631700919076081463473499840956958991665213176937370036823049695673543627812972366013075164036613736966711672663426944392553901949692241317668631459831085139364593827698624862847415678403489881063020303388250872423658270125698928847934567225690249762563852743060193560794553049486423764894026069261995282782643327788346682663839828395596830396173376611410769307261902846864809265759973880999006081298991707363810133701571366325419916948487044790656034731748770037327478238679264044699898511259815429738860047512733343373303612717835289925137192461878467691523514336725970757214370922019310905132115220336712156101892652847275416081624470088549569507171129974317507620888407189791498222102537521312789343959827505262040660230795310253656834782586504141847424290285423112652077818739098542089811901477286517758974789567614776505843970071968917443996896932478558390296553573069139702255890109630680847978742620378296758436782753016348693105776994790836012776953653515559651003502494347698764035703744433607889244773910667750195322556198151057023849049342123488518735973579331006129367055821593951113940544149310126637562122850670747510865009486745120192909653200185976044366567945013763167128934339621567238539048942226309016455583812085856253702287507022486076772373943268923183965599390649283733504679916347454720852287901802902439933580526791485528428509373080939376647939742186861181539123740433859127439228324567428118581424392737970318647191066885474097594159071369870650286351218097491813163569492750420608607097902885786514914092287457356869338858233032500215871165925926719987647886419655543613370714530199994709834814482049041750466916139531609710202738495656574058877519858600714195653743758274717505179307176664465064985358825903138958606365416292407775452563370364153441676004917329837826725419762117759144825256743523262087764276023765455306800982186837084872110716145633431237533635527305046449811246358927182700344205444199277894045291633511939476346656192451333027800163997199793599169487202547523235118845814161029667068135178301391986635809211927273302259264514466601688601528534193681779019388245970170118102842739299766858680261964806487129274231036434853237849209109572159823555783763933652794750227521206759935377210488507457657788566957460339292217876175581521668121903134551404142732144723914705687760972207143956115907929434336652377870461482314807384958338469196911710857054557306746637242948510034728558196139013542208743127091420435223616671244448201500025663389479211646736079796061255174187614785817600012828241380923354960545726824405225322744456370169331535138838792545969678574736579884995694504964342805953519149320482956394652250937212547991019027177042367724761813600561683674825201522230192602438184412520350405129374102234745385526982592785781185438016536922200420290193809986428120239334177743158392673363434180202816308283225344089060731160242569262427061375719954613530688784887561433305389244726173745657364154820551035984819148181722487778032315626860122003817491123328442120545947795225780262657106599810895608568567320003379004567385909259803260103325882316703568593404860952937911431898434768792168453952904536963409894565292702256081371268646789483048567298026865396711614149340764994281832139600776461616687531065355250737064223498356352047723041295259829147800836119847838705360771813544271402307371189371296341515594503336716280180054872353297473920326881587593861922257468183049898971316212090902146683506689629955599429546396369819635772907342671835846403565373534991609113215304729553067591207559210764880079821258834665745484288211585488032112804182741353158922388781891827339340350417108254218567048078538100661083989311191095142934185902987401332026004190001459464435442838378115661530785270123637591372255291651921843462072043810464285253491832817972588048829835215101667180084983871924456456398106537290440568168980746262841857413300253298396367337882916143901128726817934500623542327972226981249998032566096546305986435919024079723420940273883682800448598895027351605838921916383058244170726018211296791790510956716376737408660678151819381428743343095331159709625199993312405046488528538931618120479837570304964605034952134668682951713225273997634021735767158105898258818986175548896449889508979415331259043739728834666239601220103575729842603139666166816028406196542668430636868189319617433235443141375697141208520492602123510025142441105762172587383965371285839487925043094892939123260289129044655775040005302091943875306484055350043765767882202861562520244257515200207958022777052073925590317980315232957588462244027489228887818508628251799287768555046270551425132590646607978839680557698421960307920987599772661332960896794581112356522595934626232585152384712354827187776198895537294194916096350128413656142048313114649539649435047341881215969343829665622118844147091248152555613251408655695634589296256489215879235282734140160370200236655585135311352569065106235717205494961046412702524531083274339883583086432752896524549048085118829788065414685908922389884861303438886243891343920114031973435754389350115277491901051081482876289123839062227087917780164685241045451550024795576985038196256997773537666806134817432097201363817820920909242179891728949520367349691823949759467402039326135647812811457104156673000757035061667596943499524090400801875786302064645303699189484527074610798749151595111553054158992318814775507404917929846703328546631780796237858326854165696035862443360231464504283954157932271947451217839600116852123968459093361492962386160442531615996874837356277228352318326531099740274962261785556593706157020338349472427504001918665340026226494265600170900877545739161476171187565873173540307369909433906066248992016894740261440713934837695674591433891895938371634877301677276422969528368333401490987336702655861650557983730113680838818216502108711412794399828069379125471613536561219062668190021729436856970580643842376695423910239953579329740944116904271115984197306470468953835489270223519070446945796543330805013374288200016834660058940412048629489309670957128394779228188148727694458375826733829900778526265345368071616875565529073088539188930862540812940527579195334629301332327439395130452016687870855471638809024056749330851092192126993976234820302255133609392427038538441502449545042406049527928826856225805107093538095797542280592792103153567974457173907101376368557686829898728895784756193086361698857107962423820884512969175563016948595621266348470766354850920525938404614759159944894847391939312468728687026170947962741653055727150485164446463446976455858948787084702651635350841121960681024131146817021300716121231528640601709971328041311166129515757307995272274931617709224628183695605888500614819878522926588834185887368092016274605152695292980421999677505527298646344213853093274293194654128940642245556673806813017807535810870779724642070228048228978282835492696602351743741102885024854910200624554464768927406344662589097976156998026097706825483614481679278517917210628441505353088727819684721231080333929897429422408390747260568131654240945966051677935622849817316185685946384773950544247010301851068345461729872040888472471824704770334765910799251075921032777064944877107229690868912451379438615095761829573799499448456682909751910013520901118754047748766044382517280148929425104396907898371250345296717333595229098251851077960205780131982710685513068919496662699730595524636399926431160802322474953195067028310742948867156753300680023468435409603595948349873058760549087379466053407672709862830757345554497124924200504687679180849940996506629945241632687057138901873063772238100053667761260616094246733516631405739723034840574805639326338769184153405561505893849881384720799155776401423415088177881828611182971551886046849222749085147591539147831678777936542944651894743023379668034687405848244388015368586863946965989667320554560418809468757535301735078527865685154539958186804507006802056908077650673021300713145862418395875529479123824671060383166911340794281218879208669861660677404597775238837363327486003941352761870524507918744515854988175923012554323043909623915796698010446818405279927005288467592678016047963102890268260006725657038567993376400708726345674707394961586127455437150797245231031399420840713240414007633130788340435589524448487594731910442354533299278106065028264020082546842671525976150351349964005039559588823186574728313027469139861634372798259180787125875450310972062987416304574745594632228409003926669092753425108478493139856089802031269461638763470329268347912822157021498854810949777921953751499430557150761153287175729419969166206222484113905648796612415044202536642260937542779594761950443518653657913151396013725531305575398561154449608339281291497687787067462358674619958701836478094846919217866168124196880274356357428724014364641594688564206156067784039614922610921016513672911657769297298352504532080935502625232750726094610688879277170547723495995936727127314056058996986382121119445128487523459478889999756939760780634691494490073366860071150710369359399808836992630258132230592733183252995908387215475480435027448798989233507902987078168282165940770127252427173555662332166880644011928259998559072754421360145693038906211999427786474495894791661500970328299401617803276412353909208522405126762882034594142656644164060172140635117187692887198323319571842153018070537619481676578202553206060923142858626569351260585248688542595115277258884734002859223371155941465759855005742993088963849919817925028982754034502867927046932560459261476348988296093051485583224640535417050956020492662053315942032916465144570934353497860643158226241684716042959847805043305664275337588774289495684210729541506386677712100664960719363147729170321643860177170213086368339531014027085219198714654244013753079515323769792642738115453413908694848535341854722899976837649178371632506739719430599330014055222646197154872844153691017997213168800529428371976861666035934777337781670941438798864694981752317440709007726877489858682824046109922216970330397060883299317026151365242519825072144483338442579606166277391902448063471661652064666324686984818148369420389853839264148000343836445279720528917859375584529132547428505502513326042848529881376998496452587171179772033704887665104393675492151282930764086137063008110311809237624218507749946499027829946060643887547518380930874697211379234016343016960043348578629866795422056387809463464768000900944265696287329108096513720030884741388430195983680135964369905685504731064459337476261661376268990448370855276174371512028536151581199765632430967337240864998386178924916640716877883807418357257718773371547434981980646814252914666691637729837956717596123805828927098377289029833597260072595453134193371928107974584937480907184331512853040604982779911415967629653400604721551050007753776299779887363096327965170069728633013292768552710157276064334134465430590402101939475056927147753860937940393170442479811786183732506968007559853394820293531965006109269927319064095966170667936663414452171961797618298621134547064884365962565319756194643095571114216360537670426659943433335412433639776115875328480167032370761177031981387168657222401943359528868051323997465504579108500589567189831364890370627573951996227360808450340695931492669534601503837647294769437306729829752623756538760367157049887935524806758993484133065931398317966679892716278788862521036783793345922428324983781785715407565530721155687310854472585181186063056289077448280941258455129500404872421205439635534730629778358039672430581893128573872985712159262771185562813337791812325752524852031517307744505497989262965548193985727950342322505431898954264424115828750595400831174403912958198603023206234067595006108268180731900538974256044516628683107004883779051797333613060788601425001779584512411345711805945099687827163078713855182312239508127192226106723486230827585383816658742346617147253776384744092502210573539461103625726534741174719694773859042960618534433074942754538136489942797534513365690027352148553676672532935373625823745629816057405592449182559949826096871955400381316484831595549711802570246307848947057105655539954394224107816046933853086939823000947379350369160241169765801760018007473712615749726366206482826606879329383852587875881457369163899150922598425075101330018501534173443095287028642446580020169726709738775963737533091041138554550541048345157358890402509960367159067265324859953316097658683803845613441808906197201956571209862199720061237636806900258820349227363366045491411651748593630145825785587447053056232950433507912197159579494081657744423233798831658702710158286464025038243699689678996339583888014073541480370931889324871220224949609442973756273520008788725953578880865285726757902463959137037260294326134389036109572030997784929716359057211449249811053112407875969255548032143788307947173414381723724600214018685065832527254869789461670588464034746232776136595193209739776283358199156912503905281405599072171998870424494219888976623610446054619702746198624965312877591287439948229750694682489845236525863110593835984785114430717120093337244112991073071508590818749955031157335995421290692846112832474932410258537378344548834547079606702543615685952758277472299541281324683190577863739481984594427022811767072956256876868571391959921746197599905833679875199034654294127327720990790776533714705473610073614426878413326954156588175609159694243959588179653420226416429747929612419547478128297964953531258758180978012584865091558279473138978412827376737483676537282244880729050557379286958845316890843693518608901579986844782019139131972239720810336519340358690632834592159241822683232049936644740038996353747061481931176195155687582281205770805179194712390035114542120516093365848269678601991876210156924522230439106021414013994306371125828565743561413389920192116085044761892124537795557801235894090154668365224167403205922404228743205896752423444954549673420271801557371310622785709608326619419015091075911094668610933511919684147862789561882622934214373685361189053780645719960685174599890655455516136675836777870807424127040806236007194742796589187696246496209869235028874160805245376329992079733744298330465955395896178895208571978091267512639307365040717286688439490383520754741458512493232360573170218852583121373090825318758500156103247522391536351239171066925220841268990303793149923741575665577618429296523339742691991072336738044257908951819368930254601642493857367591002591149004747923524531608762169809126688622777958131674964394699712424810741658415058863971978177529498358702988147601513272992753751702912234989001470691697705658997382492001195763358620896890277133018961180166344813297746925566835391034388377027997094555307017390224808812926442236888115390092568009385331818039884297093284213995792431767345513753753038502450598225183697500528498652008815392956435578080884418764735408087700982141769597793971591271705467083803319865900819821745604293275977492386867793154413876088332715799982268817208882900902014065101538019551617188462412704170927715357950321372709926593676613047429504502144983703575916216977416951582519055025533469548373648543064015065363830490415359004988378798062746624435271946410170648138643482628027387295013501879439677995903375006264147781871494373760588288542880118055435542975380465829947699317228649432011837415085226890956822064213307031832469396212129094021969431630301747562571629335054293019360881764048418213996215103646573021794159250090603846248320259549950555128226621906349054273008106468354795723719217969187488665268159854169122791272213019226187983756671675052090683233387502071237347073280649255973083162342897602963698022840351400827849084161701862727146150640249876292054603265725738601703582765568775720700956052671828835787478549929227563280088249628144405551378522440371660543735950199650891964496912189587514579310007387573250697793902621395313241163793187691506999365254630199375620591048519532795915548128702918556486755591554748783662939031479076887916518409549782443969020069370061861317704344114202484407027784576251074688696508236869461940969411188444696332668024198519530265001281563675989269739337555054954418078512973755390758714637200881410214104550995556006523618317378972433044013355158136723080615583160437309735700916370900161653067030370601967349134042904261988403346555982800364853239652024007303568169231583998561596246208551938314608983451563535293513754626763844208131987725978665490493567362382628426665017225059747261747872917853878626310679166046941599259047857847361589548494752343726280472863006351135504841299561657185017099579784305751151349357987417431376019631930242481687180689045470276356325154111878165647644513414010453890619369876081232456253689290117802140660746007739271410240484352217406457847297044850899646227770002497884977785404837816095542739376551645268160766668849780020851226859302605322269519772640046938961129365027350959587385076389536941646731751532471840692737364758487094475839888037290330319450318688425264156827860359601429081144375689482548339415548184563070854483300287167716389518102009414075255840007606091313129953605357837116720556077066450560652198834714975725212296546139200575955261247479849348852540474448119965757615132251992037802193246355096638891106996891581323318941714131452393175218826641598363759325718859642643097298080116305273018174262078178342808338872468426837596953477792775694209210969733881020626164345206209399467425997801357391411436467891075591019862392031094426793575437503147642446059244871204153698402076308110315447513852259087739681619115042488130482187112763816107038655319760100404988684595016496214726232526314604861559160829789468075372286202229057060307301750482864287917149627435219388765188866562719398485397050380445109654841135892180228442695977087703926371159295713921969238678981056735793448196363501552954455769323518458932367993275443309977262740546630914474425672035138468082411619816760276745719198292999245963025158748473620823885199917830968169294676252912497472212689024911416482972480577720977013485234808075344009427225795088046385868960308959278141978683621852034239090506547463911290265094688679034780084464950070631677263097302795234559135130280926214192786324127184616046381918129750273999079444768968944625414598790105584121512139148115756617099333304550415902219269461030853779980791500223611992426829437506178656072051514268301564387136531516055199653745737355023550281798707159253155771107560660814910089493214811972670998135975912646369472666110825680192666333103004429783819067524618130797791536808506777825888858451393096395410779699338877446393791208806144151724621105555579973094710000848207409541201745814377093789365876023608141473230069323558662763723702102274776874657363856409374994766330297522833146366741081498949382740656598436415183965841661522977208774863850454088806502818960888835278451763852545832860129697808087321632989935115963196617847980750874062025872197974501223881105533836667063233360683231877368367097988650744497647569053816646277472505212972352447173394191396441942133494801655126021848381241923212720298432784247489026556163911055131262311358478605949302185947991650437533807404160579168630356653271662389008793190799301679676900199599966959555216341342179286967569539822292145085258319506369476097245556519832524289335951918521439987193187435430037917121033590283585408643371839283287995305310893744491346732200165513435954443611970933566372712052938544197752515456380788827561713008479151276104400376363438843087499215831043324406003274719687237304097291242017190027324080076384666480797648926597348993167680287470441021980059813616889787516819226128208944622717581017327084733487804165311679343561697227660012598842989318646817911531574314013350177153234696899427620070958971313358422239898473758598846050645018801419334618386002737866325760220347126483303540732177471168816577232654926601047523266546194803569977417248837902980379672650976999254515634858858190300193037635015542166591023801620420057071231215569987959965636198068376026115204835699948951502555998588247604791654270764143359364868570691357237885047537829856491625935661962476535387312508007957118167869174935410297294805526697612784588045598425183996223101213321918252604347317811887613359100621308134921894071116568982197232816579573591972172856119754607565328908027010288593505932440613424087718867230224731367632450876928593662402440597844489686359889094992397942774892196591718473929599754848695732526161271913738493098547260660813734510614759357549004078779815796455171287308686449874631496289214638948870866622431399784311640778241969099582895737449826500665293074474614958831311514113390523645314699333423656518040289372522021937646006515095358914393288087806687581006907918855952966269242040302569080157212460784553057050659567742205110099784277057765491049845809797911701453039155128718223528440289477142328317475714926165242277749913688100170818922418314064575810366566226156272119332000122555746881551052720457681777105784330127495661090849851766922825774918454176589998785871021634574852677597454996918601033711381632456635708890017534168283656969996838364997606606665746018107618371614564486984192995147484508519626452311140996375946963961667559044259314716282891619824856584951496993943241654146850202324380438431524023932161068655211027548879732696243757744627968178905617463331118675834497160189118670752805613348060567864309046504473930850431206196478786298782357989001323986135996193687732522417613517160170698235180469521730633939486259694435098762077574438799067520867643606293456864268098305415504538395328870834156564137113290159419272644398964394211202172548408499392520093142465714657825880412371940015335213696796204616105188795115885409054804296797469588441645823755844021487335302423242834073994748605254391609186592730336768450932596581348050244272578164859937194703846783250627153950144022533287483142157766650613595236639311154876945898241270319001664765052110685833923610204905179955989251514349265650753334610886466511173404667796249128826181159461452447690424040425219327522592376934097696425566667262764407907876525611254389195255959486478445149254419003995862917707592126604264554808189935780975670219789532069030096263866427278737744660451300857268246037549185309035461045660788998942103540501902373144977589826930354336648542851572575001425901236589769722416638829188257908272186096380652699485717066069298936747212769934473219334565645805341859105841817901296135790963936978904355043415114460618470412878048858113784811194707789522691404070820508779342741306586689826657907038964195859179076611304680675629336193735645835008271362585771398610179217630706238671866291884326213572227114057701906919278560551512417026577940924427328331826504511909584355149513224210246537505960171755548002956694934824448764801526988216846190181331731223844068059925986137592148159413534373110248030012649643230179614237792678049735615862492136657642905918039687091101067319166408494501715813271567489157278916016417672642488526102404231568087730063652702248415402421826738556497751639967585480829651236286030529379065186068629738996082539500809611396789083655799092941287566089100926712070361255583384590222743979881350487323897843257492371801892021471164456346729401356346175740678046765217113460867639863990502524887768507084023185229188008128198721896739998327882243316491624854804288196184322346532227059471472958682723514407103764798108090228616206970753677233681123212330141026465206163022997564229029943342555302789970603435090320829130181284323794370052618351092919172882355687568328767321669169449761494458879426639277188253852169158172094689918247123434447804300433040594966129522822725113771209054728120249678355583411249198114504459003346320268248647150975731119547772475147362518796047978148458176367039139749469299000325365728763051569485887722839807611575623360397123395207682755830854666094150878313997097627914706615429788220762096353637118471384044830333395009401705617457416768544377354573718661223971587128500225990589475736509160794206472021380381852555249863299296507514229576679251489488645516977769119812511636363584483240295726784829270886379372399957525317717427836638637429170051274977877369731849690767157512139712580073028270802462847232279491569748039401698419183690787881382075360867225466557983920533974144202173122981009155698762831031894628194495004986227382383743405146379763395553821499104242593066895611663371333864584104158446913569118006012776966428337432028266498267814732308892099789065203607492315436175376843350242072178436911205156847891946553139561602583633819899844796257437609521661619809630946365644835572766721387332807597453249624308238900117850477868185938636969600734352674515791362480499788741850017445741015620269711099529395846117758347889372262009713253082399886975930773650546259229101565701335731245057205726192019243127048170293297550594307116836059550232627112945883114406894487028009729873046385485518153026856527009962514357461416269734257305074074822957120712153704162695706043451294728507211532261419483339798026486537887517268442348977491225382451238607444260116639380625471025148177980488122670569847404119178468044476455343708808886011978451670579115001744039928050928983143978878690796755488244569190676409253612463665989481962312783455692466426415448372161534336355843885540850843053398983573150323778411720708877057683018264440749329948377015697518512951930041513018519350625800603815440987944726118374404831020748914513352656480403390051351511245712855004497702826392389784758684042625989213364356514842443520298899577243185603961364419969978442165116348036363964334704476077646510345781956397301219896542206718761532817293092478013766150158747371159114827527599359144906622879553294781982338978113284859654322440702415568133509679275898169403594370479077276785486899275878907642590725443865924123656297733057124849785334363837553896950958968053851928763177610057987919906845512735894167506217566496305069455998362114165501188383526601933522150755875769609741735995951780362914476324069255673939805285335992363461700310431032590007934936589046882831742390905021096360928826343300180275926245241627876756759093789821939421929993524719183446127856149531818222206682461857052859437686599830621511728103394222070651738123768261303549447259538025824966508821776810337683946699940667054215663499004030818043439214072592404952725968163425330821937090397735633484127532200786756602993953955508898433117951748102266416756912498428196769307225413943276950519340449870637682980945523793775569503671994467087240420964758382799087325888478789971115793392015447797300867842362705929695807067921331313778664312036898240839604924506089802250795427938569032054128263301196391505549321244527235548859640560651879513819867352389283603643697229474870732936547498211343599129161968923750906637328672877444418278263447120476047319097663685321982777619424904865319865505743174911390898057934518228661189586376354900435503435036851200672650000861614997832665342067083441952520542384825949576822613852872828429189764820815405940316897615811453657189797986607849569366814504653316519297158409923246802930742343943918927927980847253946714883495358208075976421210557924007172767702549884850816648454982327450953801313001925294409009131982706688084198847824385655007252848030661123293329445070014779594492057245781318896065567271439193980622871287419606357019671855287257998288248917773851906942422169373915845600119759774373795903959872031860333512504301496243348584343623868172261928043472736124593294950847866553475263882218876820404248820308971693965512751448276975857800106129494307157528258027471406519481767426726161954514996485817437546505124552512954480803399454563964774412284170428000067742835031015420325127160272721838252739771811006297676018490688232496287876209891287825773803199111720258046511670989422946505110160317693063690769235948818685875576757272326061529616969157569785061772011689027394215159187744062223457593486866233805954851088050431911283597837112255514101967641418106337475644762212875402770926889779031727239055903846667336842555005208957636248122832815084415558689268449888493101230057392609020469140280887574955460991912391768581593623402720479561929812901617989015573980114464910776583634608603836839580684917868505722273248922834163812516091102029561977040257117133631368792146249819027182419281591585683977342257352422980005932588573249414892351780745882667837309526303056676747812845004868496007258423587202806843405744547255625287445668423828320059684429791350921350091015492067650997194923292444387965933523909787262827264618153525178527148064088506040014589041537638752641973371627276028362879511822900921115617882095330098142204263656310001170427360294064748611512157202275432114109696896078019046439997482599007055063138184711153596955224932380314004872925315263019031648528484902303693925751114294302650824506669240223743507716669912064345563054511805934588589642480434052991483362451196662103749622218908216399323905325655563998319878137755908234610307457186793240119321162739865527723644242028174869613339948974989337181706371297356512386235443349387591017874734930395031591642694192658237068598237957960766467289751579258447509016895923815119101094802732333188523769245911151018053901239822556360273582758973733938740124346432477032393446240405672572741378881979194492985698471480276584337493122618231273396108698060920011037898874919161719463466741713233693665622257534526173415687701826554193154711593129398995946129466949845035889457887880030170082203233890719959949119379263199388608776185544007816427927602154023610583065912146559359415222053319862113842394628572578251250496485536951719984079002011811087884870649581825187500182341099059007727793002306354818448625719591946260835512734653255274978027707577665945817028175428234883825165144444679042943765717227001306894972257816914329057708194153014856313682362889157802833799005870792179729676667241935109192078761533263610703539142347960936625386805630076640553035807219616747895824992662033220716551728539885217916604710092916173596720573451677432187551785334690224388917801905083278015668726382036623988980854353894023821840696825211335024582881392004799994216123117488499248366086010154798709010712053343397706233837461860231236018563883762000898733051922615993137507964906910104458277513709860968000731474033456802807204308010138036609035663858521206588925530076167290134094000940812804887931329869812019695462474574277385007496643300618100529485352404873984512514851754967759419058947014058653813920445591910503839011627191198183942298988014889211605638534165465700200454947974676536033288564562112150064670591900894099711434444326376683173084646870199881154014011087415313756690097356976230690859544093912167111046259156679925868289723594632563000073399507207849808144530493611936915101565713618610300486679962046410848032097231771069573504447187031362603739286554428141956418936440352904184255998491909162310022038041594666416222950924837217795048712560519995396586855612813414676887661501252007951694641905015921145046454625645078344425068769616764728312063733938111706948125130619825288469666063664075975586041750708835139461320449266632129657674109101508127232592487130059374780222199992258417334233773919041814460989240442985204077070570773026499474403140294971237630156270794199149238465281321618288915026714570490924134326002433435374315176186399401596670389430924085440741727144126517241496273184504744137744455868286122133435711360456579916655211165558066753192788344656172745310998895294627828476575706061360329305955772400461389517264692604806381362088356776606153901059772161552473504794483929155225675119053985887058103852376935693238380538822382598744991453095071859273841709286774505689781793753036144851311399469422039581301953280156545236148106538381649710787872958792350950658870115258791042435249087486454753546442091674211232998202987784411180766725150292587946802439488746666580318833210334243351442471423867891318214958526191492238947158608029252527964462544260375770997932324150444212443794606577228030766154151693593551581256395105501706729923787100219638116608094967803139987720904905148894469108734889866736914587400945590457392329855503389879958714129464373197984322651871485732636603039915620759985359084540374765030056200513960272667594467219585405317931636948878373634049532758712076097930095940856939805346253890166255511439980063106106946071906258990301102820350620393790041536221533209703511847766279702380225098426834216952791997490199780356686466816334285160897794923339106316260145290372272910539308325002218291114251605729389749991865312641259235664252761152799081316673890132210195054789046565148611150634975741692013694778085171554926017736442993779185284269121198125567395401694559111631894649775028677759347989827383009478803753375707460960574507796314548434843697449285094285610350867346103355597117017617001560997914132256290561356925090671331928531272762276840393557880214194413712384377599944457898167656992667302086398540108811456443422943046042813654287823177723746055386661828220127234982581049571725224711195782192451653942508154132994500147717996133671786672713855473698077941821505147632710742699621336308790269367094424561379136358300449251366369843763865373458003870982633360026175029807340517133168281322977088836735842145829609810477635307750170565487496812752185302389546455121277539590716295888837518535601397788755304882717022775456387712753434438761749267541462084037444787261275670310956330462696044280833776325785588825603675256687205945854406619462344285766867478902731304918950923433813370706930874636434721115990471077611118254622059760099745425460689427355597102346675198645496700926445378583826499486183838961803569217556682072345004276193684986569436298392091614165317393442085872600970336886921224770212722517486864478104864831352477704183628560504217653713696796571096502142974615411073938230672905258183622782726321295259215486624089456250812479562161052088722685625181121410462103109173587712066165834041363116512338997259547460743397488334698341098271723577103690151901928768150249477404938577530581473523610896172542148639958192074128601455190275273783763124325071668709149007287543710031766504699006029179443055285591186835048392465083129824165188117267025452664965723213122054929699669152463191726536610575636199851189192208120728566696775774695900061428000011987530468617604818664987937327126497448188798706441261101219143400945834864717392454019584760948401223321640453425223195704923035481169036996342092345479327720256525855651897475241617153771780408165858957207806854312787686605064286798548617397636299114992875746856226912527437474262696562175223279338951231284239636687985419969076471350753077480353357489902035827134492968475579830408983211725869590919080612877139317306637760568405670546243554181757032066028851120872153235575493743655246458191584574501753463738558880972569365247719156072907836906863639731177108779567432936868875970588631245231438381566011987693534784391601168145931041670998095703683679439003244958891718894616914068675618078919869155960670037450879329341883885198807324794765437216595229364725456210704440216607056020715617098462095992065890455788521847574705813182839194117711703246001267891470199175130183509569532657803311869318094700506748945629982400073448144431356301981831802746885640234673778098173921097006946914464331341524227013040937784169938523654777482744100085401262246494415479465665203132475058934172516520637774061417276204490968137725456108098121061825693026153585122342425367750165894996135666008852359238844766789991222607886507533241577491601126091611563367278069567678735468382157028191406898317177325346642151248139377672533362016134434795844159061434425055312207302682058343973920483501644093802986565637341313534632096066261646026736780760873871377841101962416900545832110394162342791443293337502898460418887309793968462282942217550342104362710070871010357638378659693544823795478060993732583544158040624465764936828762824778487060648398683762288410738083862591409608911336645063918909044503659630314358292179565214435214815773078416487168723276922741175571251077748831162075316468285257320648441360668161906160633029412351633788328110053469277394142293515062648440370438490131786953401470981383959950110926460488154708717432597978068009009261290876526597363413047949091214480656152844615577614631863014963054251624931198045031817023425635276546899936815393075864841995795923235394911340821532248157935865674005563401422936847835097792733861715940594466046982943888817917659789732939808159922473792973966265907900750788873413836366891689901938279577882812524883014233833633619305149157095198827989427057702862141034287683986877307407944895695459461663629199510529922477572770506561471440979921773924655383277569969899415662345655748994909798540038213270775791659043172628824429462302480302869180659410194240248646311578317773883158830557724884804834918831619369046462204621601862901783883629994740037068720008190150107223480176490809811891984550663966189855637086777599479568979838273675696068746894234895680676146516691596496728284314731346512930689732273955959659799416157137264306620126367494291749634454911698881447623285733668166253268649972496856453712923353006188498479896491905775606094756629593971443748827124214687397370133779275856714050398863189124534211675057519378750330230224029063026486881964180129546151667535350250769685100858732195099292341579027324198945343633628567339484566778725715723688189274570385178746653340060507850008964482614511766603784332558331409618529513586085106539100170601357377016116198296497402734470865482455724596902244597852022168779208753247634936027324462926346681576658604978128984316084274268451709208125728377811744971273431050520139211985218376312780099229376308399233047599771670144828311644225310603770849012370955847079325648636172295706909178208286509385000792135766108746388414613516617410476571529244084652614238522403346715324882948496603123473317665121239962999031840333913022827832804361182369409894787300314863380773842725997385351111081782783892346634118373075679400259581979383630131753503273790997041034466750903101567738592055354793579403065673818608118430520378794622166961437656469903244940533389599765337715005603573890783752470826623629336345806705012355300410239335903558164993386616265924806828120434594660155128494474308518520587051551487263308565552988822357626101321974704714629007456021106447260200874431250445179363268919262791953669360523284562088450550121816062724791374671881836745315293712088742200035817531950541105661639707369953611024518977177762757654168328122209537739503572968988104861610605208239684696802311895610418824833874323094078955687727959539261698952257209612043618128491690200709258930240428958928628237055069672575697585851618342155925270957123459385689806811113005545641408713481668986268756172623627167469715261847317609274165581610103332258149291771582768055733515928534147085908600022214750530411306391383927176223077135554243146715706755262417389009904610083042601904527057215055042517491707784177581707096885655251224810097041848851062903069333581933908148864787765195653961432938633375474081389527779328819425165084761523298198378141646317222215389763263912877108180386631090016142271230717517748667624175978443634334526165773295154079885294944307008607578265367627570844404445485106230866229096781516363228630287816646591943594201003959246604447579833218132988704175866574676122757549739769283852422677909178314069940447444198562204399684578552321398569425234589344977177509193260398588859519634048368150797484543160433627008304177523248548759970540220539417060838889055630844666948387578025838444870068340215160655773872896701976707552459284613603245623831016481667536406082263439495205685284551476220133199279291653647777761285267287995102252790561405445433496409600768772202576097325625007191703505398181356062210869804078652599526724200380559256653742166394250862005454174392526695933653028787071084290094026636545949316548312205509798747067022689330986393745137903904500887184627981485067371010722853962312182501231332610951613955201261959416560705604086073338908444984175756998577914184313243926406741166881613570047543423694747591364450433938144263232210694496646779103062793376499009874504109659550657506704830523767821188737530046862689461990168705475045678193784305904098389006750691757347429891417961389818420557273553645072407586272197602773349232584404260153649331427718842377523407514521556476713676977876268590705540906784094510323916366892762351796869993927445116406265442215689989213771395101079666972559155811107159752012026273778155998731194046809766603730744558714213080523246642531802982252074791763167241715768964024511078407684766690916820364701615363438031351682525809331343170155956678182238439860662322358072231122577534513761790885995076376923806009904723883552930236325636352725819580787153880556334166583481657853976618804222077924498648341998302719901141580234792794153521322904649897276296757176006883525627854400790499985914112073861470436011070154098058715568034643208268116634149927995783731777605462699722969362426601933423692940803163171036186363029095928949218637269996966823857691393149917350152252482609291608182285230246806212937969682442192420229469210730349111675083444156140230252342680540058431514209170528842675031765129718808408238318698549142176481869664268896497867263520547973623274374073902853136010434416810832540897313425041787512025105595609351997992599871624964909546965804765496001108395519856518852449874879809213289823416872892351900113232871325337676965457329184624633485110423401495504423309902872708995983589846217758549138519078395032664600590249919014135307566051942035201542936893637216525029774306285542143402910638303597577406618044090823747955130941269227668476614959167444732914763709236004907872779012958270503122775221906883643804574014558997323013926544267822353860713424963355402824084243378131213405785489329631634181164149633465506602744907834543656181332937818592421608364227578206759804069264203315418514771150838227004561210211548547391813841220945535686030140410195710116971645730207206743015093158307619015737812564030770242861249263177697067690569646848435407928615721713906566013105915623439916331643710442224490599978223830949428248551188917516204776257394138793523152377657228603944076632844367150396773781076085902371668974352121183011280354113220431459469756478694370201405190239116869693629426988929995434341386153534339424432592311654753912995892620593283328956771779009805341425162474622211555374031479022743899577072643608392259909981173614748733341705580699605770137240476873351861716225631423383671526057785948153328575438841240864344462280017005016115514943581399435301877991797825948607226830326307281577411993145433587449601472161940386419239145034449143661761187471442003149127216647121986282219474623211574095870069392018378573544838368489793743080510126302082367263400739790159080837414735872278352806245425614005594664132331773427498859902787311215752062932590650766442388762199489073284578589811918055208115110992304071688871970715324458430191111172343856047465055343045693352883156845884629050053313917576749456497670333409529499814582383773516436393201302192102709536129716261428224745007590918309504829654076380917286347432821468630375099758014626640828197897696222699160125377845432194243853819526146199962753591316048698507153918416717118125429599462328896073535454419975064085341867405505004368340077693171379645928728586413071037737767537184172736776442327263163505918435152992216798845651194868821898569843080475419416929836913049138356487685677972523888941789936306906003583495122685120176354054378248447091836911870926515977445819175360660440617850216330162418942556645466104497851207028872141108288019338064718963311659267317078434046305935263563854176316826754829615590399254852409486764204476151338517174089202135047935415324107302780283914775078973042474617158351850848923931023907363841321477065405408374220625896258091576308063735382879775716740462669082083662348209494020489487513160390756762380919711110286753056723387979437517866342648022853024816470621616268175200150604984887791756382024960112895247804103667963371773164651666378561600058804645792766708597744432796702342657419840541647219602509364370463021231237601566043530019466069556171563405781719405271922896727468674807240229042743804136489558109754030118872247793531503363988456259965309021281361258143067760796200478173991666718275049830157680365207612436788143508572807488881232492720981550940718581060586638887763384819370878374531377036164981457703065898861967074525434300322120112925694790323793163690906885969673738344960095536452249284082061741895139510540219189756330235955238322905022994184841666498285937497134351462183233450722044240577360665160840538450586415613340574357209203223228617834713192247509408650379820154512623532211502955217392437606359566030590092878062257784596014858876864402048814868814294633433396043040441140974723056820915766195127577095509609193554442666435420723858812501412675179137205592685464772428737021769149902760265702029594129887462923770818036880519453649148450732405361791701390141157178432072933782633276890101785435459282548204792779183279415426536758514057346282113314424095897361178790597272065963965949396048418184457376055008041291028403862222412985473544583233727503379509892020402609483648802876938722060948083676495926838285896555441035098002560972871692142513221375537227075952547716718782140921258882243459916257241341499029226730820834689718765710792815484896108174895671651281136227519421562892507773862215290312753590470905479987091048642095881830714722080594520348729266753363549906899537650751921160787559703873420889701611993526649905779497883413822909617984589647900429826584720022550276992909867402555155925615938931944177772330254029111143469608737150036875547975987155505079748723020834658598092341288281443564829899902740031523828005940353820694221103572608995782359179429563890404050775652650235148442292475462373283954644423735934851835751171633061406371289186935729377472583960891859532515136850791094969056323725083730170891597024430896341105302514046974291808104669779274778581278884499231854018298660795167407938320615595997084739155820730097813961876594871182976508650145164687232954777435826539594480659536207277995922260017195841050753059416677111293620045854006057785379526837754329228998539146234563606462078603204986563596093756419806337698360964185081509608178640475503675669871019306977764882539655098546952096617929482215095801150332080997526608143146104049096702440769689443437354046783454612109824172080594067009368301328825844001881859698261223069717447970162784386687711761724325753387149414116362862622251380401603459517260772742524935556737506862448897590062039427343767489842731313148496083390085664522390893065580887809267356885414981201439049637063092164801520610197284507196907119523220173316265939572963736276100288881075816352238469075220205081057784159029546379867647926136670768446996576125655459747040171613555264910193054186350822998244381811324395903901112646284901390694017033488130035820369756805750550007449692302395602506982674349056627513983826663471642991658112315790824375024288705369433143913624904257005624397017623272060505248935426182150721231449666419457081542359664360494955327763483482755985147506126649845031550326191946597262630829227163986645863426555023271108480059299653518619809888622237702061740414612659043810178401682774741681706927423977911337802113417918294088223237785502354881776594072815601304187017707443064141138387581158517887656540444292598979081897173960907110916539146042957145098546634652425628533432515554734639278399903066248631661507380159835494474591954613791214494780337387856320104609929661486871344037999577648317040733268745216452429505989094359294415420411679631350259934140509418942162800951147420785202848125474390172832423076312757123047190871843557301265676864303273504750288600873219821972644373492216912616865834800945048425064343118211148719072004288586720999911371519486090450494973519778296895010567104799945789733527841135103908750780057103991186632229186809364727705196913769161743054261497576638064499395893449494377030043183911438717081292446994428219059103123058923271306358716502992144354376726255408415576821774100572110425278485246889238942667697715600775245028382398302505108477142798387820204572385161732874424071511083270691422003444759048927291390286886261664060120733812650684497408540105726468732744446004407573592718537510059762424888990689604814956193822465798237655415967233183832818115868074521799953121383420350251916488679282506038233530455746496332116641987031629239348677826374455485775549407019299706482760554375066986023639355332272916160629061358305241918553517686629718251031756589311270562813946197042499933933083087832531805053058453697864630539009183233613589631173628489565406375632870976507074281120420721391835814840515775855421087217652241423317586834191716103402269655284789532327635095455125378503264208330994002459440104841492132473690213211395392939087612452640855600060433559829516713984973654491457153022067809970713286878085862838660616669841933099699473915932280462086542677477399235885202742693362450315772452522324993452276875430379001727947510427014702871968088683834083082180960186521165207431157043839289333619434985525671747276577164926783332929369595895990483276634303293704003063382177385556547425256000672356186776425209020781610893462462573928695193216188947015918423942690469803832897158090356305972273029668161930300392624351220213549457115305166934063292823352784866034419815313203013091008296100511781173687797620819892306434109813192188287919757511565036171080225435680979695508500189711330593353789542051345129302461033864377438876618161349818375618880658380195942811647493008741686772262559697027277869733607170627397729772256720002257108578639131249002095109376065662495383859389323592494260128472857210974446843447627267887692588741492437965837862993066653116937045125264804033202828593988385019318485221881768345851221897315932867954286941654949069812307649582810135871233092552821558730270190991894898829924193866423950429067518502020636535438093562729957770072526795432938972392782475602634474192150882285620184641344601130746794663366892919764663740528606133147407747700257380530856034837764758406543508630711594112355343002039820230056457842951745035230183313854094256925152355360753981064855937779486996484841921118896626208363236928618233553544254433464468861067656886604979588808557694335195645082957796995961860268770419904062906106507584409259756560750565741603958623285483134867603377057857929212071831566727084454267932205058439060769870062454906308240760079478680936209210414681130862189230533923456979992518675497041141853690398223077189392262625457012164855599280974436788848372002461957626167251041385147161111359785151500391461257630749699781398060815452181629941777427527153060733329954663358508500944076345681429258896090777351536509412129275436568464651114095711441675936296873522234186704614851424380570404929900895450601795256371258651444917609925254815403544283625401313304247953664043352744296913667757087231234834251905719497053725072054337612357945704173375487253594555094447432591664069651505138312769299696037143738967316485096904388533409721307183665038570975189313072751982591485989080452527383088055035896436004697433276510590664166905769653534420922996617739882958956754450171845980310052791465458562750634926304584281545608749843878078818654310212080171011429065917444705607714650270994332177839060426203845986786923157034398989874683243170678583240460446637754818278786311651650559460767546965293173900696220492182026791452352336620685045581381920309319475154426395226016517296917610383917768112795986327833877259483577560999817013780023092359849021751284915501054275276112691122609127292408662109074294477214593678846794231019926697561723016091992190307286414811374554409810035796082913024279283037172920318827881025789928538676343062251664260984399787748338272064213592246992599516959022839859282711986680732276494450127952418681030644276767784492964932942840481050908077875722162236582371191941602973829627437038110176958871152115065807112313613672695931504195575157845815787295602356035480880755313824117482475130432574878789407798582368433762224726256564379891778497014062146169569104954644618539012269186046556773932595867471520838350703599579829916369572767208335356282575074168520512317410928373936226716469466305787114263983412252498727062262950759126576194915381827619511910310600831615016665226300067879134616651282115305797901693642844552917699457568796996421628576579280084038666368430118847029421090740155620925324996861170958144891390619428298355203316784978926802412530286601957225161547031558371053246568137210980990642168472163782739312882321414661045896336079374320888652555899305496660056344186696414171215275425061710105647958765104691091573596423030333304174410548578855312607142732119407200843737968958933873033111888292927853136753494662156475793788167517254737131556609659409096422390150087945488016946691324118202049417180269112551672199814127862417598349822211040225907211315980974333669130183085755047814282946630936234287839489999434700576417888203565242907820286425305592992445996101801244175925850234140556682572301761353286837372933273942025940628513262512924554488956820830215572101559429806788881163389243195491111446341987686980945619156502789330030483533477190871550491064531678010124132055268491836597274737003119556530827979867970651650077160252442208059631616479483082957590035856400785970815325017312279370619615179774536808952540024426535441236098069764506737220040993582448310200993036946867157842586590327718319323917209917358520720853847391936847404647108543227071833798232861120033055902088297779992569072782346306955613980048153419892245350924882621694139195623388912045198507409992210605472160359318614375598893340348320729578978645163210972605337681493711615348315003636214419137496953033154933631529168405213620749901544647341318613363243803502900077001699436499355590317435940863366961429362366540744956194205896903166222862821111830086137765856014777855037343871215314835365849130914821601692350347716879197612949046091414045773859412128948732849652442992458985083116383904589550455162949975023394431325803798429730806448324340228751836667174699118062495156306660923599972633013350751440304171902013227831420035678644610848424743042108181862601537633600031835729908293634898462789754150598063707685624086130896856748749711833946786828720935325589271854266404405084721743908359068476166001097616896059595941211742788289722687397422960911497542967966421086866043528315234621107324419868884255861477080436887730820564285859986457972801275082567992691794481991148167469317708597979078497956791093329262529205602603353789936223943256848596183490806106435498300573266991768709805744386139247500863378193365692164222125744744164303466108854650957080489790952837733309523453296119395411237360790399699926176792950719915210983378316223901052394961170641693725576166232408340173319881290817657912354477158483557446243175868356866637754372544013157700902689887228256594157213075021283544663889127438044342905737592392743092520239831348850026726881774230514123325217502911290239217733518213967653026154667331450737717345654823371039087583410049699911686062566394134761740384918225091064809088113290905941491691614118358142440407009588631007991830952904207085915010964486244402196687234408312961358480164027054444473198731102006006215354779016868013995100044646087480050470091342053647172235762379640556765460080257577282626950753393994700284824239800115997523228727522782222824233989163087772804564244485428865173739072327204837736842466163718518455999303131461030155736093026818851413954484807299136984754190253804419431231135847509931381134414322109752671327774877302379048168911136581622398266754428145508972420135860276075457739788331875655999522804036455163922463074993242603661674623473440284343660898631435435106912683256982925919824400502640720905280645390022525423312188150957691975401100951120482667289602152302399642542547374816802668110383514065128047265143755706438470743913618423752449054466318883026652595730690899902129313036042094312303417760694231191419928884214820436118399093127818792477785882489003052022120534726120739772182803021026026279272120595244493980058608917812465068321043753569439707839043540881904701405795752027605102795918048543063069471517364008253836149138792457976291742875276080908258282105164672575041717670135856852364628814607561797707201550155179434063575411610954498210335776680744172982628579249670707492968665914379706710863945101967594469564044742441112414625099014975560597190134612798280942890451707546298507094195405441028683267549844229073434163367542583926174316965252328513565141169976902810000832199610870833631849152625993841463373115677637522891817946474257182038135811927453072442970229371150370942714441082127719363864833247608778855729291049596450127575798166093185628045003279199247258618329799722823645689036321371881247039432556263104291020453450190247991098912148188251705786869682149838859523223008035458793861867757271094603080605836759013093500032397664526517996724247016795765761240249155914975374517673153865911600792978560076424933284760836667065833146448512685706885830189568444263173873307968416862416430309141671741726196688400262526753201870996865254465020949403863420281390817246718296810045687606518227649790219805747475913069016148393695317806181481898358802703232247655617632569362145949609925252625032398828493417414175207954529345553083992728686786069398172072438155292535489705954469243513986824068882738595245687554003564766022967898195511958067829296493401959037312497253415728894452630170056668925620037318380118405018251398563987074985840268448647159900873999352836527377659626945656826790913172013200864254951607819554457730309758651037617538773501672570917944579296942618100239903599218850821482079705563427852461827025766409087323444696851295393759835092474048795621412044732395092440925738790217810318074484358699068702884289509455301833543399599050775690236096726885423392985382836265777334789276795402278886334689946488047087619561149510247474714666357747585082584894767056072592018650808578973828812404453318373569270362489844727824329007349578317188990664183759591398915276460900658201602860113676032718696173891285024163149307392370356172259976399127094190662563782560587746283708625892702658895245491070547127539159620300002916853249063487705669138852581161067728845528393913899291507309783289176488715025208125171072671000646922808357661815240527837045569132418157832062961749662585239048377260337292959895723027714589833234311662031393038090756088518823047758593036292940096021324715849974685492202813206397098657321495116415958202357741248136566315402672021439588700419044525066656788431364917417144570997144260640937994204743724167533407706336393438991444982772606336285529832222259211370075859572778425085888441216523221942656739399909372983492119077619471832902327296269111700104549875071867980814542360144300889633497117038804939097855716845399934687159551733964963798124885407554463387211116010076298717622210625820869669362383099868241886657899322477477606537636451051636916752538595951302668920801337877918285059711285840048880233790231960558243289345213775238933153014858836331156094078416219424458693498874002367517599057399734961158150511212039861651949746262313493656300728926827242422351864545282689061414560874338086501573076614373010860893667352569482673744219164109697215371389014432902743107888460900999222248371624476905021739424610111210367163535554921790749483191358620736699482863094772034577834059486491579611623737480505472165326784984219451751356917066790944475556857495576708902855261250436527225943901819911431961292112165257217281455255613656391401668507507561732070309543443594930032114431186178317117032247331133435064586583292655922105020932274834410088043041872543114875530215058505624164155886004171043280561751318092178311879604864780355494590165498307331629097997408152216099762782016610109969360800150237882026933614118362753736279558852175589771444629747698551805152433715905228680619989264899008707111800650693346481998604015309574957514996675305384292107405277314397088817485706325897632435167774214756151184714319350098035190086462397501640387020196462520091743393232447155645652768997367761608218335030488529525991248669338563661154808016371778758219431291286159931428129782242228641093456324046764466539753015040150737900484666156686451954895755313593953348604477314067688906041467579534637181308756604866685137257102427029967221846702857701686041073876970567977766021596137172347283765206549718416156289943451886491367574179293363599511312442911134484834210309517003173758894384378334198647946902129892641996833974889601505080478104895123523668632372740566805682136067343484893856085720718021492874603509130823523069394523145474234400344166348617684074763726120571518780973724628319001443261412591320562821807755531402426688354221816074003583982712151731305307687110055343479576808064285252338084539621999169650414076954033711561641139159998161289546133480958150174542783298836766130592261719607433978065316673610152569133161171411638290433636937911616983553018002500086136724509293533591726808614990819495902290084361113199586981715593635060403212380678312220665111110512718085664090074941171906312941916342156303914278244337682868037260359106805525059519762061326398912839742687612603582210032233899083646610112485103876745932274548759245823049137973283537702992043063531873959853897424153579192086978608755880875658382097451330969621907149434808136577697613155376591994947811473155515803998546104801659399741497889389001041161572643073729437768896406851969641177506981314982783232201718032742106830152436839408380626780039175102695996160703269207558083489286456679847644237337237988072756096689641212383835987596506631202293082939544082458470691897167926891744805305523154575342085442239981194556788441794640659556538208206269608631151934716175715573086379141604654560004007591361704563235245752716948955736617352829303264369317904261783654276818212111712821100386114765092025510005782990118797842220934724675943318234677528538305955646772359952207612387647458824015375426250080059899731855376889450016901612950665159708343167315368614159537289039806926895589317586191453491306017397717370757530058754290192281852222924753179239651205367610979697757627518794191183239439634621941184819644754245847366217488170642050806712170826708979829688726244656647787181570314287852440323900454311560761264474691156134065723352368973117147110393820148197019323704049050179718766328822238338175611609000179841318430463478426322988438750424212648007228173405334050425043420340004450334000655741471966621787329598446739546349568700508313256304489409392713171317334030293592147558317890170116736979671998791487937520285345394361509139018760414217311547073766123854812774556304574214874887175817028443508562935716776890152783196334880556942457174466080481483567145597271650686714002971059007463119409522480150753367179230210009775690325393130891217146861008513698167705000660504983713458446115249873481781460262055903214863213459877653671716805537185811493247347148144552164672115083644313370901798648860932162821238645861920424519147030171290094314661296610100735606965728905951067933504692667061489607335707095639406318633747029633762469721276065979783345968985944983551283860168290742456958487225486219049991866094013610540080048800281884370413022192710114498702088368446815528987252091667878573137157279992248270530211573976925670671402079303687765110443106161841180566550795421564126185201486048907165672422736102305444368822452479085361688144999666669808049057460840939497945915179373766238330387709472338128993705953239706830603577937051091167981273144191523179529713565343423555496621016924067063910768146264598700845581651926511039906086820752270631838200329650920771409420636655853773632438430387666005486761411652126305470731458607217842991069061307119096543502070245982150354764522586538385073600791839435090609391016573272630190077795500884886383734881304379304331967671633908539132238934939193662522111181198410781433560249171412138921661906066202694388793824202478768809548093327138540475416934724882293752278951758309508901217496124742591199046925682125444072136092563524331918469109537137619596729244656538232394455437973150737009194753183419643109491068924359708914675396861224545943392292749240886595562378487649470383677880168507225199082547797496789046322100247138823481993495239622206891934614917256808982342392059919912809649742085265612100413284094718031490140253537163134120917722052038896002965526464456729192826234327078982768113381918144657124476075894551253747887936156195058717229055801497371098043239594322400241499053140701853201355951960930774105626062633619019356455179857904364852097095659560616190988982708972912966353588905645614392973725093660794157501295412119683898566096362679942553804304214964195424770219835258866862156830745025015609898485228146082728466525235491758340072744353997713566839420274762282788208735499268881153357332735851523833395936899948960325653008804746807193926120669451143070115751892500346993829551051634558176334101693414580903619727531850292535023649306541297620642745682093980110012337832359905200701523251242332209340466761011625318727154840095214522583067270460982232664622679190243072029872359310092649143267221048780640097284987840645679524269114195442159454625741768027961096532499341719627656102744945923977735655325514233652308246578821746401371603583680954492482989351541491842211294474241710963303243879511197963198455150766143916458705037000361474472149624632999524572926881633620012501623077411423637556716037450301564534711926005632726145846647394093608433056820077255156774115994007425331161510542579829750286153212672547689019388562112268286346151077640684620431291822031625883006316212034023511493795919639538380179555025043938228810468489331470527192858511213899519827960451958353190477445359877260848348602886197541559024148256046016215884304126831405374524553692818056991203379237022070063032426621493626558269149775719317901644132845717271201765912445063608381628490387794011512888150138065477994175827808412065009106207622250022960601699105178975271252025010391628297130985562548741868246110600481926403054130252546299958169851240265995170509819420732764686303550640980585881809271326448705046567253450692497312446645813580924032674648864857104625574597666392115231127548993681735722971306121855634712734673529769168493145793588735385171451409905377814699717318845145502656012120612428615335171033077534468208675811023868803595869401435461688588065536920043608023869850166531019282949746256060235913215516206547385928213603744516992201121710083100108438202930361300852692852873572755860439690513446484695767224232236344690347351347916455229913436192544524858359740322028720845383431177839548404426440052381603987037032954219604676839119772714083574056159794330969009995982609554189060307101173042519572554302433965047684971441739146680947768791858759720426447512798114528132223206822616462700146579314238516330056952709435983804858782882065771402290292461122733372891141179156210871260868531475906344986969519454189050795244791155079984242746297901995240576294731669926962426293689117300691576719089036180894008315367463625741854274406346822686819927532116356404078455174102963063510073781132286867357959527443859716195723448223028425481327912171555336762756744021323742654623137077757045158360111532362003958799970833630730809904501377420672838714802170776032402523161399210764410995390316685083085551783951383709034511926066576577171400051834936824302540900058322451611572030785953545192451916567275121147539931719741086302625812781278534019134452579000348439302737609853824585154801807427721864968814710748279109534993694409786943522895417999436167330685766341902740300116667515568738607060666041053653140079501791381160296675471411263636047431619508756176823837537038980537948781310281689195661672183018717033468452418484881493884953391481398597522691551204540280769855642068010654399202472682818175532596983424502006380361911669100774834756132494206878581646855663385200424174267663372910459594072176013525961409019252083730494257965223688921997055472530264421048879311518297323770987381020663012318663900942330856714176547372185713353073902094901774145323085620110008424410702588256806594494154016605590127468551629971608481002524367862906390852648720346246390679938741654756759717586616635207408232235480793621460062536416503662887867179394158801994565182766170112435301246676560681402007693301263198166821850584176914827872141912559017355890082947137215143079294323593614404923284004202536681145206694392257244891978141097864227755154276389060805712590479434283878879775612639635322991023409027880690770507099208138564476516235541396547504006945564184721387091582964599800020569525099895108269224561346087823882295828567485923510027473250746330812603124269634514680031842379750046038284229149266107193062977685853942543061383919059023021212884148185740776893660163994955694173220878068351347064817590934002792791620909734879269369642555220939834144292149416946594203729419235924668861037350738657050121794968005658776639408599757155534569801937297645512787360115303624221910391197525542462174493980703365942673787904359837942979850936341704100170864676435951131791627082225538060300178246276127988603406981551190224211626738930643011276995307333896045497607583004210281703221037827734639190855844084718237018548405867413592460619608900532875514974571551870331258190167079049036360772084771243103952529842144605637059376887164855607048632033408346430307595273524768687438354868955307260390174356420603138150113236893973394345459653003514367539648771597938675703408614735324390573936009008967095762643979619351331108231894126960226607069197018107410772968282171293751479387049801015748575227885759507304656082965719339263205160637935294768234454123271418021223373330994252725739663038261282047741621279962936632613467426054888111590791409567840383970014786487022260492612693501956549099624610167212978337231303675526930273809572801308183305261846168664158146997035326004105027497451779411989010490956297696038054809768136100370644237663120115425013301215620317128456355854877803977412958646478929034639073825638757780464537615882522323141262770742385208818542631928932766295299437396171395777868184127631896114106489122104498900847684669346909278367532310322279478857965324895869905175425875698926316779391218832772348251104237436106460498822097895678269781525149529266512754870060558256186100347664346689512580730323954561741830698926243383430300330445657125533626339597469180038877734992097138979442926840305181943515515169943516333877007159268993690715274159755742794470147058296454016447430192502982241039085701650963629028222221923515768482515665328597507381897076815794786001009305971431187453409244707984111730660411491568587333667120031203177072583781036443717513694472940113579770182789930825764261016756910780961987687078663376242584249581829691191696173882725644919605738207121133051088698511101363789616869142017366073803052609249849845407781785835609540216033838147266248392788000122934033779912817123713397295035103611812913175710078816101769434577185152097423273252535984772754905545186742716098660172018974925665863141700093514895964461588123850873420942484357576235474530654509966165738621322958918347201568540189341284269445620243858260533523674384480186657372990247815661929067924633088649105417174689046614717571397901660933183096523688534548346172159656678599706401458083612797596577992764802610965840033559109171780875333504332097201398248562695192201945516952951254391574544763128424729763057536355609867674831741885694728648661584790946859000997259749410836300149020088540219851033760172093922174702126938884323845225763588512790855165675751998490501126851868193878077049620289901871627196197288500935277275269937363859510307570592840185337336605450612775549104731000549324656443402244424911867648495706824335782912991527323963694060201150869146957979202409962071663871795866301929992284346046489095781394629423090185576174991652324122047451483900654600011496528632772569407242896690487515032290512052261103724359776523501452574765496872636565494718408030403905947229451624466795666066496283987186211766869743357167343324341856600790385675115702409287935301696226229877538591231170122640617787580166141749945695138400703451215029986551883060452869032361647462893606500251049800416598629577270922938239001667263734029841489441382292722368344146398500890351910314375103516791006177581395239102798673621294059829804338350736284181814485587291702124741774449980197608587112890259546994757133689704847517002103688106441030624182845856453006591810576974984658453959954256966698311149995530465546874933691949667439626922419744010037209346634793263331767415540060921096969071242484011745082496702203153992986426402634087076286492562514872073288455275415635629142437233028149940400838592156995356760500829154954328172020242571715042053372472461227948789200911663936975944965025571708139932056387100119199322421106713049679342850733329571114286462686652817308403986938499736651673268144343400282199324701749128511793530869586441864006096040668054501791928333345522482059752138834399143400847233223688969874330540662920454968143607123236177260852353729001607531602368380025424294063978225360869175446213070992284010645454648134496406588708834099854837845636124636841135896604062495189269183028740904902193184035392063125217770857352618443534237286445159953923749456157169929875887515077872575173828136117760904162591122889353024826111911570185331362907479348665111861555820685242294213910788460474716772003794077302090950833609461202486652174985081320781616338691971158603902913245750970109376837945743342713155949303246759200929813581340878694049007090957776671384493139108749508785830125638690069245739766645386126178906897761575569262424521415401947834690917457053556203447915902296120947675304934735713166231372928951544638881357035959370573104819597514824628662523596794465106799922275841460880089034320554510374986848141786370117054317742912332887223601696875417928715363604096690949205284747940972820070740202384608081825183112448658742984789518763804578066402399349699075213312730655573366612785781854304526466198680396196712159807705143491663361937648132971965592170276378078773007689943725676044726304325855348682479203226594505400968199241986695909161670475039391505145356068855177407400686757575283289661615689386777363458135322815249164197540069917835265984936239733845152484689833998902613239156849453644055777928191603527411406468643608956775350512869598073462785959709087333613263805967682718510615887420099888029770693746341891912259011339439105409539775164955064166582688766506476264006375368328868623894908839807137288958603354503020889772211988640777105224867698930770038811479187138846526859070083425508013526422740479967269710783133211801326121501485698343134235842319564601128943222306391535994903094650355251097306426203058373660524416470317539023567870991095402871695011034486390340461804172735146250248194133108426531950596524311288715648167248381271843918526582505075411081878861038558832459662063442543813581149647162204995199778435917487542117174568564052155195690581028155261890629352218555391143493052045850974237467162649881823503353289287935644543888232617411193416758102736972733155379275119416402216554660607539581482749002803579911168859463239887703810659502378003588434350426933238875617331459772927519178607693560547343793695746303506708730177788267348088309421090038192853870592886407044861659591911612574285039643738010725561369296709582605113179362625708991517373418391808023853066001250609302326155590897334194773052983345499722748033877758119272048063436807033856245947127868452270525244286982631596560587070684360729741650951412856963138679230465370808404235388009138331985727538171987307997792707078920516871826314350640864153230453438563665027250055124336589121642121864421701701457364549727544550601387482787991560878585103453410477398963930880237873948910359858554639894640643419388619537254499482980448380147072054400291736838851170312170864554620354558974713092726702210652685657291205010561035384780503361273190172894057046384775322886594049666915912932849144827966968791651509319921337290092936915901011439827434087090283761005576866109270885988076103382488873373734143889776223862555114831584010264337112943423854803329729274404961477494533594280970116240170064608795610004259073599132969177094872317768321869058754648241702729922701629436711421392813893305533762103536645453053449865365020200806465379202506984093347794645261911097028199185704629423903948453542639934107913229681458189353988672372603540295115197859505079028927603246189325800191767209904044859582483477708994441037483201747553251870740597550425201383240199795287244792332773327047458007056243270264028115844948340948041926772859153704723427726183861210746961912222934564124438431497603380846024647459635646258909986431849730952344369856777778211921324218395501543676880697343291973264552124952457090038495127436354670470247485599707332181950292054724795393742871822331168881274831805602042644375705358654617053102644803635832778518588299834079826552498095383447226764145634947904852998967179309405232673454913778328909420176884420463417074986745014343130350124626081004396516727552238237290912263959329405244980088290652954291098018929042508052716223647201574141207426174878770233449487966111758810997182623150578328002556128019739474786400875691615441238834924831154868962979482395804326925982728240824049877603359251871724675380575591262319095790675327800604473760894803300390578634484706641469300234979586718082773674737762839190642047541607907741385335502411447413825819217345774293414548069870312328318914542630793261631636952166521819139623458429725318901287240846750361307500786073483529951882007175804249004667726008895573880489673562037823440797550826225942623750776396834239539456668983512263751102123786156461965528706417039900956033125510411440204709827777571141033017328999530697370200026098733820303225962442044424380279084373644653848601678532932915266306877254760029895068072679622410286897495770508531144002378189481777368454852616064299943731881017219340909454122441305048520542548004414166996204476470710911977266097326078449776335197671256176492907599379869718973547895953060437799950735145962012503497039854279976974804814648250821176056897608422721812930653392479255153308587197699076732881527660409229662772635709295632942812698086831309161811093290899339289222353375325697450042623817325620152759603050053508133668696041983772064341217569789145762700578211821764917111763465519440596354799541398511853591762662277151175613944317870151320799732999921229876331572507848636366446801097776717139809336799424118047071339737813430788628978866955770357347860284733147702317697448698697691279691216578895868182570413939359011164969645408015351998701060494245834931365924292358883193565196755504887050456626312917518890986698225374988520359620420967713154647630374089734328559694374954767525910223342801613012178940858541634519125072901136386788518953154896585153941964799055154578443260623780388198836573351536474064260989789567014058108506407823010715181646154492715233915036391819953139481757551017026068872351995001941315115204257383866645340446600336500978776601002469961149878768324908079686800938942333194691695514513397106849234006435570800004859063137819521820752226274287115376523291666566194100301723188435281395024704220249384402235081071039466854105068281135121055240145208632803736714460159269652353218610652526497500168525543095446488570771742774137418758356217295601419033343222556797334452408614163287915072547589568555213423025131729692582580244530424067330712855286340630951346253890155963013347458240966382487943436375357761445291335818511399240767610342702227739505363011516639689766804149153313019137293493607734269117741639117167210628999594490981776897660702147532211384706189037443430055539358866530941084333183229233410963658951573145523687333670346640239236053686867665535113266803975194845531681401616046106657489747661333076912882294862332315742184884867183764337462925615717108713501896379323733964811503115366118693632871583884934028537443665444613428067845001374640508725983086180149035452236482798243834350606112567447927976490984497850704998493420929673751823583478266442764012060197657411180799283201543799205633213129835098319090271895066911935922377546160599846369772052487759503243899671445081688245021715925666464645539124992659312740976685435768956044105787664236868886412471331238653243430728913210144641555445250411469477380775502490758654973797614842472097116793806438569224062701251131032252064003356108767857227768059636034163120415441429479452758227407167575341489517523328656600619091814853878468038515678777491024011289263394277776527689745695959592074063517773261902881209673237743824694681807426192828755709344755426041394689423626109970407631310839308243546455721909533592422101825292589310623034566962606762953335901760686953812721502914109368903058804994338789570869318407884399573547334322852182140732938240368991643067367140262186890246969985091522466773305500803745403900374704166938229513271993688664641019434587338678008514383643394886727667547360005648707459924634092878964015981473802588128358446398543111653552043186370861262038426655291782556185545833476509132624402021467191922462673514907598513723630025004155158560822117599347633574401026503332675092485201539238061626111113659801750540852878355620821486031271872864313963333673185746892157481252422443172068758457581362858831015596334129442465784210313721098302319423271394598673567680202914663801245474646446793276421260732218370301910333840955012415973249578567936534409791742177085860053475409629161236818459049926794634114045977780070162878003926711621725551196565061083485648029531833892701531333549426090449369140216863970329709400765259647456709576219147522096355182616293192869421338610229560647891308724707315050883924523663021966540051766086878103893875920501804548223029212715963705118280903090361569071872362456389374702955615762438111386081290199768972274579030422065234341708557350833088781098308223020501680454841021137448800985071319149794172195451746787722821624191305933979126693085975429328017082324773780595941307306403509920275560963619723029379906391955810152551041147214339107215097035397890649429323988696095704766761726596208521226395843683401837972806584067017127814886250748406458515224758973350200423627248178175693609450489764536422390759376162716268664186932417205341066894438427149888167795601178855238627706781762101841522565765408087266775572796751360258529041816124628515663000236601868975055141429104166412650143823250922004733663976610245190747076567994660645546489219846719069802335263631802792042840552631449177659471586624818414235932114360524050612937193354593886514809160997170989528771998831457091281563628607856922378282908117680478773900573620463633666295802027762501978511327614423571595695887138699573066704168668301487147532370132732075351582618281970434662398559693260474537499137217455936871871243903353010482755216518087909910075194940621366994429625695657677979235747608708274215966416562781431342269017819817732994703751766422615401989627297777822340982758851675459064127195663174081613822119401225149432898689201978874742758614935077319456458185634014350142256579428209258275713214341645838353458543390372780743702545764003899591599886178757052744210408084594161748862713928775882707341745221404588426078569173054818790428229957754370549538724005165164528791045712368547683395048614315265716153197506455043106239742709180396295516073907009068362677477527456810719395204372446200732888214595262040735632338423529634378249446797332152598688780724216167222732463632047014283003424887156824195215234391534939878098263365252345796505550765781177373554517554593760862901557704564967726540448747739128006315343639471705491479013161001465281113636708253843868026973326834388084917198941703465854094694949715343352420116181849148180850190927013934316435421757765740997744101901661463698616359282114320074950209540420509283699607787663304616802341376539469445179392518278057679066416208354043849893443021823868262294288711932534797520767670602994879356898844932042806176274253003569716955714652826750385206505326968593021754229256404931523561371004040462094366207528555332743440759998222098506405757754099481548795898678278895359869945880640445090055452690104660010283991906986386201550663283994320960563529922113676476606966973641709557889614149665689595354329529466331119223049126004612237068881701914331423589478201943659954717056249814287292152341640620572831223612750324181980973139570298581553406514052724941436049542316550764602814669047241956164533143759505466815009449785695423601812635305035461797081129556737922051767684143754807423449900691175346414375589737532825008257581553089309512914656251628018006156675203960609399276568124806650679249720459980830580864283029024789092812133520882705801646039121709615967075163432348186256619156740614131621355613816448383469576511638142036751058277912919471580608782560014373995298122485344656871849996127779932762871675323689615561698127564811842831345810839323906787572326694202444747342565236661947923773529454088435439396677679996593381895484238716638806196241050970165040418237500675313668958592928801655648871697265838715555246463309608451791470477808020798750848294854111247011156038106728329311163416232295921567594597090404335157993587255354711949139586294643498727812574454134733622717015982213695675953296685287923499634570728460881784825970868972705548322536408535119133861277865791179227707768539495655632733745761594735895817430763339772263493329846073451324769565245961954471361146496878084166127481009649832614153015342548416041067405386778817331795690918973027708661125605892565343824859829750963020787971155565276414519293634073672497950661307367972548857403319510874664288365685020971737003704999043375651419867328836235013938628195070114729732615366405089619504972774860728745072841084587849484453657509580462825990820032103884655514523032915124290730750430431197046427865565122514751540803755266098430652577514367673329288118022868239384280717525983285638069751223943845798044843324018516079256681410365006168856092930905884247363654030714097296359457134914889353570371310909823655093601830009224349780675355364951676512080188604306835159194676231032908199317051305942216982875548178113490562328487739378705252541837045865223879085656069040980708074658573082906772427809950316647256151965931121274478211999751239133437170337474080245489448191619458744858620093737117567415767579822362595911018316756234336456366880480327851002706720971043947871535758020238865643899093155476086929476889022539280187395938765880448859893662550104209695130918122259950519272530049903781378310150321036378951548717336827851664876546538137288432092646896706341636939073102352344338449351543604323769125519607104058823665650283206169561689517831077825659649098857793108919168839055583364143735603656327759897621329053937958690925621544695288368523541672379263146692068364073500780469965240598645823288035116493596093428275425360206998709390046771112316342346842029446821790268044523250429258932386023837680561631389310001478384332687114186691130530904532209708364031186327216559937386689600640090614485879742921748011085087475391398008045614170439181646488358296639924130834910259930402556367870283732710090411873558310828791843888200759236733195758111303809620388970862627129387632572519323263838067087615393998368435700780839604203096679326947401345806536919354763792263601318026337465145455199888382968044609205929931615000587662609107896496751863359168075784127086807190316669171914041938707357803262937368820188881709999048414336310772078103952943724760109924091123704725692181372646827986104852660919987826074537953044810271933841480451411743367736346446808939003445944147622716699354570710395467739551352514293639253148681649902565446819089616502299526593224413748447174400162784156617943515831433240680954648477087778139861899639295210427420965731674690004184612911281694875443587974450843481978176950362628725188434750848607228303806990867218115757176112043680494918889352770509850118125992114805671554167378359554863726404983335139802658831666747235503474227400556219872162487669108904303064897096900644176713815168684324983307025252067090485856523536597277946140393508962455499539379925828521060382541163366295117116333978083568709264627613953901617497421045863493940830279495401137566353985558638682791571038088855577293115195370005555916251285738130539842594596025030882452583918316581397787911276255072175753213126582308575223868499693893250000048883842585689612385246279320980717293055057884023236827269642520692873251697541296364518942684833177942142790839214359847178491403591649859586186280088650612648250355344851094286213627621260059159489835272714272281322998770671564536224589077619989673594811114541382873285446088827781240311426610337487512585340356226019016618918336109123853830205384801190529299088596550535921456144601735379473307879966774120077765967037565831977908465156732628755755955820323318472412123075795371670804754768429886545016083375567154411513848459686586046659707812950905672040553248608036738061290349513650337271252600122068878885288450672933163550280124705749023673557033135064619003502123969728118929328137923293970965740289057505444187164296958891144861237183032151911130939903080847533109551357109856062946185065562007091764713286259568799950606451325392386719147476386566860152059991357137043499692875399005321140882979631673851907719336826168976133772456767608403376482668818564376205723531402133597443777383148259274647377563651759869736919677263158865516437750607429746612862926915710150982600363268263303976117875013109856894713216736790892318502677503933597113033859458582823108430667209990748653776986225583311552437189369908849611102481095464925834175452123977689326540598729138420053673195521897929162981893460974591230834880868428029603249922777796718762092354996968916443934587015456030644812588469101203946414913162656543420624764004318513475364657632766244496860542717303684616084404297187371430764774547900402543831247752989198126192126641047832753878308712648345782206329920680926088252480884656316542199185463141423735247530881972728823711892330653587186609733609155833861377961392747189554754920264534660965996068333227953150134223178299141855798856611654942779316736826556284932816931227441012426061085961424759723127437413068025331605989212576506112374810616153355611880896775910170724796262786290538031342492194518119921897968314912580109956247967419384748340150778985628890009301571626686810650468431420491360637724602553197916226286966264839600757887769068249646397128359893686853190566639130371490812131682694987559183448729546144072781245788110222579242572722359477992401664588759245675665875335256530957389498291136736965751854821413267606557900313391768234209857116350900895300937293747225707998054801609161665604126942977031438235700180696113734425864658629898498983397694199443812440918249914938338487404667840096272734755822700400705013245718522952423684943766563205443283986541628201269431805599819455525081981641906160559996821880160092430302737773894354571024137910926612779141529139947646817251718912634688424329451948742037898421594352315837000500362395944425970617353475766877543082080088825675680501645708159811181476644793630937305618438806020141434565115743836148104278234349924297692382806751210497580351345736711048012237493633853397325630523992179972014205710787321017012088474005858903134205639768614820515373740991371701986407442204748767261179634930315384986596390725650149974213025850865344604367778560515206729932085952592878381417227078923606792695236625449092405566302860682078733499747540106928150944905985609327305976337798542015754953117556125624891050329105965169403816131035795341892858587614251093298981313088037212864674000389193147937490455405901296744747763919937985003527815165594058689045275465729295861049595821598442497700188298556007930725116544800552423093384604294941760947583668605330939725927233139880119166030639889193561656860312591745641443168617435530352326426586013949207410804536707537467001949003637157027152672021492935376691870249767244697632654561172884527175894828666534411156241639643678247292218401489965432907758673973035547609369453141185617337417215325368192146244762116803048615717461567842723935624451309635948048307584762676764366692859719263301942858846000500266664464265180679784912695150512808273578602887094860624175096343453544723853206976488907630199089498431740596409658076730302067691143892141780133590918516780978695101777305890114184992004483841503658866110103651840538366756812428452516580084902279308558193441052237951604315187639860309456399704013923682018600633429030085433454646796710365735516301446074533936812605130224279068764839474655644178810283590730604190744534186386790606811622184195314421340435178626906380955416120356115302957562298905311129423994599124279802090807821655887468996988258447731168251647982637017703428925132511821552808696740746640569461491670283465320521544532444867393397891611309037961283901449428986110172910443499096940312744459059674816042842188552612761563686040538426009461537648179887376691268377312858198508191416241088477925455956011466682308844326111507905142721121729287327122365112602022681756473634473298797663704629160393919400860205605189724759762718679984607092375859942206512869187682998919113337823091834479455943746341998320284315984958267136456301723733914267321102278490176534976032954726247620444227183924815918961359671182551815586010185693549283800054967847124771088306891305094624448966285035505039655234364129589539820415702232606317600394550910415228532595765972866626489631424619001995868437413535107128292319217846233799815677246486107416061280954067306368972667842318657980468799428448694635737924864875979932890732989423304954675617713888810403576265296277726178642520511611777822644212288481692597541501323609386554828730337162927340319499989497520832240085832691161764670573986446907279680519510422702164631678801119856936640678032407181236347311812903914823578789876606619754971089519253194164949446234723892159200182500071819821427696679901167033873718748135918716311790509495790179680270918910154400862655670794716708057601664914215415307406542538533781272099247054834129821848328539842197719829519172664563181506158118266207362808547735327435528036081293095299841933460230755900484484423555933817899101914335179251301041231866256722231962819279859903575227111808361343813609657331673415962598811863882046519167008289267056290297340227032151428925307394164931361344472091564011092374564723286335556940304171379730247714632036532368387511407778385576998335963622747555090433941578790737939627287503584026845445351204306712413563258610232861779942307973048329022007565136505081728816430801177436537686759577763425666074459302910699918189228085179715491719376560368569302262757588190598094293731202258302744697097957781381995643842308082007609910824170913605770658953943744453275387484270618266472912464345038067120677654423631411703283964197104023945748429424534805246814431070831898374119281651490148563944825304467350080767668471430480096790046984546088925012207906502170612090668577974071156401393782799522981570891557401203768497740745157739398851647773709760952456208712938643546365723362711320422685152263644485501306064689092027870783617902712803890411171709292063261305808225777505902866613835883936045192172477633693941244584339345995188793146639207046726790869603757520087138037914412593781475817180816533132729314228503792277605288884603886928625671742424185704900574559591563906384223791266159265370544562051812076083700622320632408705703924281486137572331291114312463757530156824013643731082890401372776430933337161782587729624849616370914468265596017108667303782067435087854023697830919755068553170292492172266936731031183239891161414839967729851163773620774743009439306293412526050109315436752056225631030392851829283030632075098933936191857262633084052808840205079021428468858964493872675886391559199037441479469450502934406292795870467758378987634764159457075364204738236086260034563889030449621222352349922415765060373650586177267226204476120296481690339505450327741587808854960788737286157046738340368353577518186106235149370725693598669655137493550991201623010756604205868838896222916597761376579416424978399586725984908167450708453031348225312559509271483289506981821250339368342187172376940171002214478499552290375266542183776771669805496843206717442027167803618140034619265842955011229730663976034336034589851673529106825762961812934037861773703529616627409422875874778454439881770184265976042396229359607302556558301451049035108158867302923084448236769776847334563334575347030069948908145796622031025823234277991125176984795095037056716663580839459765000005158927054402964670941162198170608874310087225043517212607538787783531967061402320886011873253151219388229297137231443546896548936732570194091648475459312813707972955286837003332889570491302500248847196227883549030127107497715690365219853147938682892787323527217260823313146723903194000858567451147194972254011961280524908707090672131849042589885445674275184171164191119076418230790874277727735497113179643741039945297289228235147763376424218990435067022005585630836336425551071484111635029317026196809810759028211220265408610815442550484773419143307602454945421570362496911480828598856295269598468467638029986681142197198184995829474423386754650257837940684519754712280003301391125488177154443817744355542284699409056641718984518181780305904870650232782640756853451825969668039048250284407319925055471482143569621464408632002649845174405678784978495420246196886766851477452417826634943055687834273033057179382426912717727806154128992747714444135159589602701886641362038540901944465398034645839191209136818838073924801993015183244868655000005692563517349698261421076079345545259870716147868934362674622130279265539815301447158611549459163306621865308937933901619045428298016545340664337643962187455423405004468927820470971067658196675011368878703189486253035084285782819011357953069457022956802026020732078592611020403747086941013660638816892421099058917380907175023884961451776722188085839177568906694703027488073781721049895501728957186503986472939896649696068649922106802630982800246971597802315638625605430826636609807904047867510857546531312239367822814183157628153185440233078023819751257385839723211339080373862639929518641525760790492411279232347839616704991898899900797723455210645247334232111338081298319414301496914504600461470205461069235802468255675394065129649490090668288683499811095927499577697406435324960453995848359132317526021423923666217896785547723004547487119496152883811828348040492429894900989624584398909549959882838202206951132759217525057149954311050193116175302249018226830447315799295769513833510657383550853486335749345723407599887888339613983193020499053071704984869774985640107070053158036203855157462609393922320044395929901028234675425661305214805286448953629473838194745912963320178785362013486997341358729469604430848358145800072582355789576342407461877469145742465613567681102535797150467688681370104489128068202602690773399276540640047094245673681909465831779727830378535971727277157375606358406901844959580744783083445702014369507569175482021648578495393535131962216365792155691741577696275046501700203519110568067076097777830134650975268526592807575583768961520303288901121631621882745739938075378087312251363160827040245461364472546250806757551533901068346208927968054172929145506803019781002025487582884772572409731065291190230008063238578109915622239639884008803893600270397778152070209905159884382776057406030988649130902686664989015670788615111992513620265646212621072889889031447404252012868101979888986132566742492363677815300320813946640909087242493041332010439042242431875110496273357168360548332078283438216782317450975814733420880863964111507151532912291440151505863271553687846415021892927538689995795179260779363248303108020517008602905202775862419320467639809998413519412664626937816613886258615037572988180731873265152250211786981445892600744626008445581847114947477155420087608564751915940670372694798125156340097720635892648431545328050981431899042323418513084765563999353836549307326016998492101978682614511370533677709105397542229279142409513195236920808514673398617095173748028341587087476336122496297220594598613584543830014083605120581389344557533395787340309636575296977906557675472977835434154859881419243837243115596816068414838910879237601247188508433686243968428311565247697702119225308060646226646236744633740404597750569808743240292172199704734495356770770065770532347529479933830944941815762530557020326553052513565688781450852649150814501846430931790868802571096333767967046050244593548958273223594728855764957955239348417150202413815931847299214142131646419912186759270990647454641347926373550274276392950438009123995271563453184977220948145419840096389329739829385441652682083772140021109347522887344714063908571125898930389091852583298718317182053923433442151436231801071470946279304307932631108444938844803610502440926924556495064132125625837049889849087020966709087064120789136801383951899150591785730243751551006559292856819972855339545999490857208086428017039381822557664101609526153273893897754932129596940225140148802224779694297754350358971170393211424276934714237320757442323287864985410037247061625175417571130410278803155087974264142978570198110574176168730580829373054183590738381518931659390676955332206484255632885374757230774087883501659234286310640153178516199449481294746781115334233746999249788900387290505272090966601050028354817592856515045506767001715371892353180872949804037456524799655385111638745270702469143683842969219240346893110750781998854316510914045859822845544010754095696954210097646572126279599224044238486986613080784865786612087734536245269385872444509599828913620976510036368706551294083208756882712352047716121044560128177428716052945826005071117352658508870996553645333680580247426086806665771660178634419498060543556594462031033874423676123449625620316522720515978248756570555569640875735029952835868419160660579033086007469708829650052161158119963006473055163552923735248863364080544877840647567434442949065867706753351878186883705473959287294019129990775217559689577811803589290150093141139648467495338171929250480718124413407194161813621397288500257732624873411160046234448767269319101479496106746028338676037714787189712471045648935688147483151870249436060162485613181507879547156289249800830970851433200185167640965847939392929978429614358475578274249951278250925803703674336904024692480064822913740225850821202270250210245513524360482558285046062262592866364482673306540403857422672834924923812652739216691227858287928458178993370287810343372866391033433803908523497830469402685239438865426421787429371879016711848169261398522165171587099912781961400919895555660013642084914711043730118436929824428776743152768174734693781787671722412924844893559782985416405583441805325867127971298944936608123038736294592342845712278012633441036586744154469333356652095079601057431355272739904681069571029809069561254894110005955115228607199263574760352570865730258480992223334497283196681232360682491427531683636891658118715929331039846669148356001350756505867700051103135438789111408021095383336384873822104633521546010198581674224089418588908254109709173032897515744203551321534466987361076243482200698319014875442519464209190219766675082967884009547924286826595980603545694245956970509383552352799698963301281595954317099263859340726065749744568338434527581532490239806847701300940201862213199092130246355830052663824160483182738260701727125225808834132378145513678315325031921559464975307213895276870697980360488036171147445973088913634023114390876115822819882623829872999720813918030142295600276564404250418045990786900596734357506370312437272653805614768635524481763481890970840169747429973958933837996826317708745394122270448379277553929531613064330584975689041671770870243404819722583733834579502781500300956295293143610859942175389868100597392889878056293082174649289768698404033913287073534947215340521312153422108053853560400459048660200674790348561195147910073466449489546717122871052784582326983106203933933645832500652469743450368461715669165130955446256946054622512987393367830073596625115714471322682994920836254808568519584031922606149913591239544855068158983571970045313408417546790424514790374615805134032292879433173758747519761024555973975696614312067726914763000771826270813914619965829706777730365837199224384546091266118167107862347151739068286856541462911167445554614513351527512927675384996104496133269252294222770397663728179957647061353944329536182183090925878159551602596693325294492667465279512246611772502764471400888486610286503830930701174915558738665843839862960162780279345630242853181607511871117440336704840771930574734232683649226833196681447493594198135449832049757379204488354673317670795531133817464743840023201763683198811829023055536490340442638740100422267139751887066701375682935624000332202268457651599753487844142969263460066956075677306058845353290754895582075631002987764336632147908173588948480912645927712222160336400870883158093501622969906591717744017748406724606360719284591257219639031074910582428733667907320846740006174762004692288042525605843420855412670966411227392096675567461897979844671042709681153034797511367555099551637393265298063965120250701834208628699041590587726424492215103203040949995475167411349979161838367657824741760877458441381666425016338845684628345901243344786406082427920624389077401079435165684729091216461502134556863527975665221510251099672805787896796963098947248301943000566871520380269662373174886019629207927828732984603160488928052305036255746019622184207996469809768013153493535910818363924633740473926528508802808591113545024418881917428894044236485195502000881131243855277422440778647298829682354625403855982496263810458976785010170748928054418748986745575542295840514040652612602286020617125412143882174215370653817645710758508573392217373975466828059765083752835986672189098118266191171126470181395806352491129724071133326395436352490630944151537901633373711803370317602209777648033683044013559477489083719468791432345854641287010863740643642636717220823450408041379165033827454599513320782931363379570996245417020540277350262583407770716502514551791672401392588912849777244537419339971670965427327073728810928935919904478231333454137564356165770662630467328074804276857398669913838497668336272174269247534347921500855301605123119808643112896120470656581772171590775644170699367031832549102870634248176741472506714412575045788330964514600237753207111338343368216231857818733202358158288358219300539172439081388072891997547507786064023994770196082174992821883504169688493232651274364722204715655713436856655607147479801319305137019914879874320602197033442096297669564908117992197638490606710078076352513431362191176259620038510527808035878961343253643067881561702243293019845926418595940181135169115325078472925366979670593013323917719109656769934993746001207898338934769209131540745189605546710297597179205610178440052310708877906333052676113726591979925429613887919608307246500826897202873958492395465423205618099460011375080681825423157127577726668510879757183941631762328689865605384212859394597674280296208312374224072239853899879736359014336961035961853802304080916380602992900419938950634221498579765954726384572523420942181299565436557177598143994637106761375957837634173332007442659337078999474134384552607781743010411536096385191335086749664746942370828451176210742472465300988272605069405777995371884146652368282422275190126412239339698343834077484677081546797090773812904562233283393196812527320405854134254356263775315272299799951496327736548095226778817398685887230340279810481509182436268563579016624794065428395955906044389138186414034156410912371272962352707878102097573026884803515143912597715505987903262862338862893714107089384851660967008567590273497757051531471956179902193137881297373876762714287513533051677743451365074119626963935084548190141991653892387317429358965109101045656452909011475103167860682540851069952842828373050652072989454896292719911819990761457397575744351658640991326215296863156039321751045329982034620034237365021903501429347075657736414944301802175463059625386454629358610749543840902339304542041666031239909749452082898938481858283852301874291092002450258123396482637085477704305925545236453394754925635731161861633225489425371435097551465529389223959844206081580503985212965496706936423870249396234586116977981695074145934924151207260477161291634912688719844423011266426236505239516988924018183338777463387827157445378779716507646775684794953236527215117535440187582541369223133207580166932353632077283367437220800372209819214183150159039013060799897514438899131435283593790895481770927563605607884841328553661681350656966158527932201324180759383284053718219055957698698641743727874475044258689953823290399299344274708656105742162613918998587584556789920983207644816625875637622639626056048723521695533477607155777327994358900740515135331130415317273675813873787309642543327926118436855616739324669372257289233527351555355787849928899041293723877191082462961416808637445712754020741636476484030030518585052540112333560331408713914134565864202644824307095504036786400100808081727633849254634107979458744653756019503191344615935670068788009701064761729943911178636440829761732746316215870851279173249070650717995788497276376565133642988502640960156652007308169534157907152353200654505484260703766927781426131866536083494942688859601113871014121830557325241994619900235635378018328329387248903794123696534479691842418599586665662369266693065223013877904005042793374609785003687764925237092141827662101045853419721973063520856804446495026815118196071089897070807277380057658388252747450424933357471421637614729637742346476727300002962945565824854052589614434889694720557130720401078220505133042368798350303093274554560352489683094844248937717608831819207379859363690025171166769890487193766966028929850898168085851490468573900762244081036425701396000632600344993134207134683808581393367218377279262661362479612085116746135434258545642239317625762270063527499095254117639188512752765703554777031184721317324498770379555889424650829283425935157915951351324721821879699853123683646729096986922801506715723753377362598363921440402660060868882673539647673272179598445085485951540033951119165848252536089392873816723346852911974721715913567113533157370310813388212977124936717202288527539427627159989818522203769471512497514754995322586332166518144120268564179097155930458249980539633687661521454737152323210352989434622342419096377852885627303916633805444853263509632459715595230321723109185441199875617904787985798581967012966469664486288255414275536730433859936521860049925471149136983477023993891187560757131354487291902245206917093194128380336407967478071304713775695412563912958743102868258543061116320655767100389839174237253753894686508713227463822869550518771101949308047277972914782472197070592775356310055903767624694896965313313830083977322583581050443869294827505092214099412787968029435543296537541186107279380712252785854137532199135480827481873759419368385291830162786689513099544445954083702257279704485628058576160521702267690452807971673455099107358748531694135342026700974107327426561801022597607253549474473905315363246503222622174759580792044819761744757754646354095790794836782937217588805033598026896286462318131714043943332307942484424716393529057494006559442407129314873508353082355268622995860604352737647725135931464145422046807822531574147418364416157257661888077094652834658716627213123592890499449674744871642489120074248525800189031651690570608386194539358721119954585391829527059459766018260593788100848072244178060316001560262920539924936525334538745488320079367934260431375808081848838719637323300097617761566245892506225447550285225341949964793588441225046870192802223116584269395416290761584900157962028968223035828585019647246248264521610633257243433559927397781436230728888139729256789622605210924052646315832865579978484904066227344220946137342259223573187916540937673405421859884869649748297228769172111620515536064341134151428334036095216856809402602486048461885392362426846087420622629200524713547205932756293225998427912913035642284449826075026756271334581341289902170504435179622871721231404092758789452979085002497148822976978116218203425495432346533574459059381863525789515419964279062221540881009799227956845855228438707487399781286020942889762904219397017836735103352775618351616675329216489316536927750798011894201597582168407587770112025023517317672011597477884961281452772020202113653626637236787865964441974043959905350816614075553122204117996887178814314944358450106709787494271727839795041067818528850524778204525658791607617118577749857340336051899238386855856487827767431968018635618507233350099820344173903787061918491582163774862947582069096855681180873494929971929089830800738631240256405331818840839770038244846198198374164457978117384299070696438191649754773722654433710053712940805515699139331359559748785279079598588112213019585315000923511342507651576933216543405809476184875829257350488149726866104084291972272544869522217852717036278140544253517675951918010615658339123574518488923347949290067506993045032236813721766247459616255642088402268962696951728763320429260765302297717330486682373623330519052657204630275389812335159314184496975716161629466915874259931171404459552198748614399788550658631598312948184586519225161178761156810944859162600493912119886523597386243493895590710345176221823624932976291805765769567507184986662808554567300931755912331279437858564450383881421205578844826605737425491712955013786812115559104669603123919477278915102539130037610623856243166818332524573070583723100798509486156498573694875336107742375589764541560742714909838298138781872795295326151931061484136988521288641495540846055768984765198650420384316448135414324395157322982293955735804742509977013909462973304102551460380287235916293950926881190084982577379890332971169902159311291412643494643687344950633115792098071721417570844980836431986387171678890732209089036719858792029383217615370076321076671631323706848111128049763487567700817856362961041950175796201346744224713140526011435821191981661057388050091395552306974756119087484748175160869775685496532902315024416366712900623928053587613243349767090931598972436779943987643526973023785275784645920489089155315417844382948922672266704332580010345092949576085387945093767246811919894162017761395587707496028124493208088550893099725517287212248092863847409380082162534392910735977721223636392508442016319515653401189561259990805770161337952673314323457091007726008098312716848681754122448453375611427751833529385493157039665809449308436746231646408988543813363489720050816658144980552314859670218214664297752985900791658868580818019305132992846610895267948204706847319136554055759312587625936520206094760084620382210588030286928319177676282798083996262482965738303810447540952895713242705588397747599961053157059923865129472173964762655232022179671355379880039242083206485231835750279223398456980088618094337176135332779804378942552629047347228692932504399505617629351401233987531708844029210419069840872913166462101376755242849088686973181439035214814198457205029699477246334454145580450245117661355239561315497723162645287810626149102131127533007221310328011329842329889216059251588520769147571920023758294459541756589490726442778962530375021327410964594174056336096030250613342303893135492778606724741852142762098516346048858817942642871424851587719673656925645604095340640968869326245889019329154883570703065276810417412501338058570110045964216310709351576835102967030460615786839352339611915582010583513407020128406653128471069187636952283762941274952672639581012011178818681961350052567624284025018532445470923485487877506315036480464683929635535102131580330344342600040517340267272275889974248407684921671934372999782094020317514092159140666374426363902826762968402055390403569938312573716234177108611917632782853728731582476098915636248609225163166668828233986013244527923223978850999808325203512890029271017527375404540852122724216218150135853893644315672815409316493141663118559672827549732373180384747721335230824655061021458924748136302553878735711369719218828612380277532236464733234986969831112889030854477391676897094119799304948889580019123649652501851048908909923868808425373648344923777450690766915291070475643484186208772996675811237960049765782718952903789694753758785631439046912272978714782492871668500152512563982261133686533694296006002634671037683241708261488723053626937448753000738063525893822902121899281000749255909084739744942867441680451525922668705336531422899569655632589385489642656900790437483047944584440943605108796742808343606767017267381626217244446066460717923698541032178131196160804818979487617500043108063417276968355897555334623098506604341301724355568118423375725372341295348484822868457098890034888116725166555509916053161428218813928674096733247640018247634000111845348955126573173764256881127612392869168925063504245970681794151070299126378717267644922474406752240060933493926381484553608782670259056164236160881279106078513285904185760824315331681265925149064399025721022535415912308319768960426225769816862615678865857171582299708645396370816667627596278164980156095277178619850732019220560348709028556390265730735577125368830418495741527671944299066763877384105484286619496138558322303939429506822381024401531729908358174010437126988781585537136237856010377735847758995983940797392005942900276753693205552223686022025771115527566705213538364119197444227023454000093082674278083416567296731078645910143645380341156408644696428843477251193562505575728635029277947035970186539758278961843819009140598475203675971681676654929957206888397263818320625767460554143937334145538939611867719116796847635423533785368221508735248167277338766490797302293294021058294290079838159478892279325978598430757936024509730795664414279963202616368845681516996419821317469638735685234769441574657658066885211575251431269735115826492254590939030763959719864112287934974491783861945324130457894028544203242108884960676937252825652848701777032516119431366568967317875288695857971555273332739185788664739338929591785532649552039232375331008591653750363091657689880766872151064560499735544146604102327982755620292311549874376495026957390349178921591839827944971107107038850433654294675380151687745580699887921828813770606367409749466867198293083137180273084146112232010782880613456117344589576503148451588628933427594914380975086097133677004964288906296446302444623520541561413665650388977425924760511712515963853313120780825178610289332846588144857517465800180894576026222435094615212626155332529320341334474763327987892437552447588150460174607103445903168710610663799501620084209819670393808906424362255805179990654256126779478750447962068148142336295817490500527180578343854485420848518931495282307485873857097493618547258655635499602722384394927181109660665248646856680739724990370116789263134641235492684606975693938123150204848434845235315571116701234556329191954904652564998124990836580375053733733268418005436845449230817295655725743424026620965284745345501387547436186820107592224120814696406726000848222277806566949224429697958685434178983760717997108404191492487183213611782793151205316308348233727213286194929908767869423180620687719817700272037321285772070186364129960507502082156019196283705722652898214903732003416187755840930628002124293913719424680211205523572206667774479095745443834565291257061103093492433269748483244819986516222966319924448372749244128146434195018179143313224870252828066053687266154213476690514447214230203129011016705101361929576086121957316772085978889630984682267109920080845000328074920807076323064346927197503940907754648620420830497967178946494432837629820058693629133334674009677954081598244236535729770185858111795327871210680060011300678521274082719786009691157044382295184505498573475879338913978792458007435422639590211902987985996290582777507062816206033064615709210371768396320654586987857640036926354988336304571898700758524769273916558182289315725276549311952764040972690812043718888964654949235824404680110195866735643779487479570412484287036323045203439743590258535378103367046413112603444138152270593818772288012686026251470687867301096702124111529441027930642917879358124945119145820192261237454153337794482638096250979730186041462439804176473144547801755329691723546505798142725603855362282376596367947567439957774012572914113686994556008883909473730607733507795954821901689893573921527918921753812649023771601689093941905444851949872674457977598854476781054543522144542319807904305449994395856896503326511549470055692859304015194559778182087267768264215953566577250580226095665391980277898609445854302141223927409934735236768405457330937412388753671367004621954713392817273652021579457158367652108001929271818580568660589797386982340277455106345176628275394515682602156957569702138970427175061242760262276665544412662070224881060404526356101726991045179702678758913769489839978134158517324914060996256072005771754981577144137512998726619602828292334279093822258058184754626143501113950506885346527555722833875435223371593186909528773148765338895627148148856460567129536586245638304455330939158323812126924900535114098154286378391306384426758471151834263131271282035057890539503164468273570035037746656250947877370333577375734610483902916886065168167793963964277419784800484782097883802386830958371667664587563847058270114725613429417164805826222370679157614985331218246085880132149564848046877564665695527578422956377520335196737996007070566045600335735119449205007089447721114149758979707404518456541277080714037073424746239219992345231177022382106077837118870992857031289942507093169579652003476366818732646731830723525716565242910245556481958156975681080835148401353499912935932239031546918197336037612890786411957108818434110796925106201082436596810342243452380260294367670385869376067602507103311381827613488215765353630889446951349174465529282125363093263239064886150715460341070182542823276677097797765494282787453455565430888349216060811360639179646032471180786287697626337927164435452224729189235230792131279560005929554623250047291759122149728602215910977797073745767445288588506548640572873939772344611176353182368666086773953691195309271407184107624927699223246232442744408610190422919793582935059591506311011468092615306394696929789637610597996891763069047596487398546100758373792207579676328385732490984396914956573305156751964486996532741291894959035414764606734437977481889323051809811194064191817259865470547901779199261174166150308806337785240497056781836904853267749692315485688667057255674735482852805976004439225433827247205659747117243605356002053646438408267014570123917226385091418171621725456552829909074955705848917689249167575116562550016941633686198917694873373734518327754061979991014419230727335257859184207700142490851853432007630497527557417165267541858667119210480090296720532518081440221847037656029168589356553825441126520843493088372300781685329507150213360148630491727481667363500229006111619178294678287041339142589217203317504885247572059615280589685559748546133485249510525537972238441873352104999961821396311245327841884699246937511997625987865521468911423693147517182154389192529952792035110637729246107921984324326909650328979978954870881746251995542450338500479207697197454235918727663638871875525647460950011899928290618874809862650234832787670370606991662492357728068868801739387138952528870086601177216352869993808963484175295955101627859022507221691765512848416666677967733807035406889792600564951337658901943683529794936187080243987195080592153652079218555827379606223821397266343044894299143706781478691937116881030171226142209189067092541233992706768100503288921292717786668903386735449686178100716099385677643060005539695844699869815981586823426524497745840110162879913525710931161238418014250187930584166041086152696437056067552714131070439170835285490959719840479338470228369699611878657688389437595751616563254493889832880496949286424858692036578459538793471086638474157367949101296837947452341311324430070379160720477543319320170904667699921322622553764042215387880529047816603613181520788021539686383250844093944052621512709070389120786260807673600039920849353590481923135622791804689035282342280586362610819404931545885063947373361783011715421179868807251361042341963316508672259638835119244428549520197893915606368444805138655838975148316361064777941618060419037766507413341798396008344594752804157496626833570854885618813639769026155613169773047783294726049009865545455361127648046291383601467393276595185601739048019766563432386709763376529829259329605434809095458686409324677380320243763274422329976712324594798277691571591401796471138523852740624193131529699767804187790763734611439176994475926275941483717868646434364441985188910398504981099730940163033805546352874284544633807039965135020530546684054529378520404916556857404754013744044692537536859192497754362413746769396675409428053439992323608368400641702822818078218615961906885533424352563031973141321449435039171630157520239441643278109725797555461453771090520135440467855670069939997796532625556208563109467545590110446192345780851698632706727152482151596668292189297151048311000429473469959386781081382411740110588572121830078822145403435048790049156431564698014095360169378067674135809433648467469268194859498131916367165550716584113737351085480873813656122684646767861140170686600098503434823943291549162081185297442802177195198761535017716916355179609223266596996082896370725125310584357915529415542119970034282828929987710061636450817277969043334620820783401996768661375153262081689558301701727501567490613592869115847222688534044168858218812688961173815907136865794618091834881621240425699369263334501152504545745285665607636877346530787015462070235457005954739402725360528463360804720848408051659138558881756207253550320845478735318069426339900194252530611448990822090041037312530680079318485673952545313051970348281722306421519270930108608621659066062287736688444579396512246340487219597929173496413303025081237184349792672753845930033363990997633316952601778977561629316841745527830062192278589251524635617354048467763255718454543379720463482281087369305498713863719535683257886164842049937993216809422914055431126836841069604890970634253188195474432259339910625748388187750389593121570173091742705652600948211748101177454139437577628876509558695739901430857816605241196041754780015659696298064468443652197670429994868134726207610266176417687387079380240034637009308858810502299357307277341767157251591892013078531633340620256904210634987387209186503557568934887786933399208859132395131085686497566071566160184263917913385398174272678840958969380866004999704456294876182629667389174885011925555980352844063697086860461973424069593990325233946429085255350796994611456374462577952891906249173923941128291531822165994133771970461684243372210675481564349197372367381198776466476418439795629178527658507176543517951628010468168903079928093890927359326710499451995698459877034022770780317935787493057434778079890522306088631072792655276309552818800014380779358863660632144568058290260322967061449642958312425557746901475375797887878485300640295687592208221004592324301726708992077476949342258108433889776555855714888794596475195253617741438939119706313463825699104335152315662938025460531065632403235386020162850984659297871512032040428059459440423911233786407794698473858543878129893245097162946277466103965460219628610088297516420292180436011021168405425051609208990570741934103341415819027773192005240969318193318668406990359767155851464006694714129285212599844906565620316118818097986727573463749809878610341672610829455366592777796756505973211666526287218830071306320397952065204855683474818270474006197757591644761601870012315855357816988483541689398043535211803964274761513128004591853370428328669529061328629296894799253876152890771116209996038590266196229765569491486015112469501830129595746481874466072952605212087255713568591921419417266093650849783246722370493189625186252964007610670797122370437821270944554643891797458593970167729072783537250907822725644489455274394484137390405646336777756763212437561942831304702174942764944706253146880818732104298287672236338020744018068831938982193641193503435385471795289370473757493952897253022838944354591889490740987904684553867819911270783909878362289190286711480029598194694585213019773836014951811909925255898681539647600778202672849528134743048201111028199278651391122343930604113233354467215758584682392441598607107569832535258716249883619974855895445441393187236079555418321321456928740701920907079661412712502863055038635808889598718579757199972696715012076364020251142942584737546885882447871703695691985942167091002671963485030841018426045323268854194519468598348935516331071427833980093076386715284295286572375085048379169102125916186486411997749254279739394205892952581978716782010975040633224444717483037040576671759857010541939695657570584324240167896974775831486871779782086411866625707511219865137472805515486668736323786512485286424530095829358863985209699724598714932480515233177047098626950097510863244468573402716253398603323572421360445015477556372103840639683585433152873041236969635916390903573131673176066601393409092011261726758622786841642007799444488360425542142819083063615854253860351086143572217762634367877544567727370204853610124433313750564448237917283104396034102346597144923708118921003341881153411899292130080767416253469281036609118030511377072833909668764473527307750903523256323879040051444599030423118825465331578574341270948140269332538184424551264518066203184431962058307998805503189913984727896125390025874539101384404800443392183615371664643348230631279107381382094182790419985276434699472358772619995159985015670880042293713723168467526978090104710177512133170597419764503424831131120706607705878063987501844480974641478419279153557783330617445433208351178988703514099720499807881869198126487457059121567454942263627522705789979063817946741285841207650573272778112654044175977408663616038285048222493002239526920546077629538794181575733102075195797156157469268772420730131286304022092397927632243076433220979498012665157166720557716026259145866239118644357152066496287285667006367100233980626309071190998044396914858064081962583673364179555181275421230534357254403374787854130155417682709380803113010484759806713133790257896866617354881335281668361382629757130411078893012300223576601204714651819168102812537733747986385592647754513103353348287865216969550416263147156460778307988969326296791496203104442507019701137240635387401638370175385465860619675640727244351501037358195337005697286591300838052647810141401196197611869721396287788232101798719090381579304496092021282300592243530374798805315673322424878709086933849080482539911288690613309916369411079233091535549912897405579047460773751042176873739535743162859520302013517207963829161735784375812747299068558458930803335375385259678916442495260066337304171536788051792882822402845880906965432343421940480210474049998892248545981631005475315232084092290297873896258660738924833258428640185044146324875881096719153952425489049010911985383231011782419100736105073165944246724614654749655714053178399267782961115722260716234588303936959000026889133569692933403144267609852848575659749997137795918351743013803843438236552242964111261192516278774274400699733011759227191295396810513138759923379491884416120551092030226788117636931569337853050731030142970123326695851191926263004136993412299370997607350430618393893268984812052368105048442299525886200088049792859934236651282995523435846747225004381891124075158811037961381172356032202040813429378805348564083614676134190300429919232659272255974763299336537738518499796961904628801286618369104482980529411070420009503183549421469345082868647495970323447586461944832364098011786627476549793398950368910373471646238254894217942823277016482070263662626266877408370300340731049190182020338236265853452873299194147413667652484785424239872608380297300147934892548481631371744908055154741096069537151971433943577621642251783318596930459400012152790809521670079963407405851212903685194011664656570467613695737651789422989212631217540059614301871822543778205250979273120133456707250694689232736619963127676280190259784051751498450562217260680352105137595467934159361595596856496433856029915485285224456049259799526654981721625230226271668939951216679654198114905712867555448465349141621268185910519242312200487682854264942758218840398321574837944846616365668452639820854703490096526079215752453780653607765050490711157027520895695590268289496929618534204599984830377781447915182755456758089129474925373743319325231907201827944591178938834110129217351076101537903873064590614158540603556895159276350255244285362097103052891541593621727600096099562069398555490238922638011069251177944860891618970715041237178170123388717016769714512415289085902915429691496910367985373535988924853401575671635900462400616672457975811462383947763579419569841127242753111869325839802714744137872473163118276447688342584481143096296763381854958587474902436517332794559146784482648585163972726390915207077485208901277607747222639371104281163039468003320444770134483717960113504741340519291629866596563987467736377004202770970139611766904822851937785471127983425821479289524246913725704978304890049689283685863694696020338537522192243049603179116644613450448683087285062803436916591229748592140084190741551438671298454558439174520667343445503812635467484080946235930190290718229979527489683919475904459184637373385726893598357190313588897656659246821198211157842309518743770475296710379364975519531915588217666262880714804503080029131056300047251758284572785348494123174230585988143318973482775534328359535868493288405095572597082479903350946558731964345445747178567972244416046864496226422585680767130597312610327115410434129671774494914537441355638820485810872305561030929694958670793878858675553015332618759122137475894368218552424675579131309273682375371511266873022819922206473924589987620983614660997728001384897542661474720719744818266645899627403642035161375145357935147202827480981402605355022952094038861907919301448701201894315989849343972154428698667228772920181721271318275124232411266128112676838472796516356051859551423690956960561658036136058620034307420165615080513799116142469441846446208211518405693617728426528025731281894138559799969375941030301578809999964165963514664188097699930707953919895170087555132514533640293259251858382168480903491781096508776091784713849011727072891395989154163464590079503469762487906467301824741217654367351320035108748879400622669576337960264229343664937626182702714895611530479082290933551843062619703316102694793084397510731442671530514221964467566283102511680402868809916350931746637616103470242538141906966135150896666457420115432804416915880361175470008036835550611991590376618186614627036408648987753946292266863385686216452990631088653884339795044177323165313040962872743379773116356024645831939503682688895943583862376364448278425056483404651709866746934604120691763986127076181285456896195654578977109258664517130908816442347313673402926898417910685552322974178671287122530919421292754988558693275064055207518932140925258242113848768046362082760999969409258847139522649117758505672736763470801286547537332599845614849519078572871856234702745509800377967405316304379235413271929094373297948735792443726741143427679676440164788730836513029397158670670578028903497315479574856926126321715649098934439880733542019104513639290995282181375669510107162035519953862047118669894781733831701943733767613571777467892897838465573273123624948417304362067428669199036329255845116031418402257382216274975919993438874852263394628635873646362957835232545757798452491324133954177197621362274722298828409729347714144472026764260023763348970226555688057671670330883834642194758008885142744677359371907636747011560166133012398264526607626963128327134211430211122962917458150125840224397058438635981138682766738910132145138592162595439481123112494376832636166838815681148459859366568353776804117915811839963433491985709201259917406210539592508791673475993346643502337127251801721722157374768696611358157488367709167907216800959262315549132041111825306540878911757518906124432971500544015875969241988479136243331437642309903684943052018006183272302480270811021691048509791204758435323686982996042613904199320583557111916299287451452949279586485609400152230241194457869473205935156977740623350098190784072451625495635800174330941838394815421632946747740220161795937784818762619727596535800573402674430597415097282667461825272115855549445642715792211630394538591198374496952268939172682038847205467042314446282935064752285886251245281861670308040602252265586475041161057009602729630114489113528716951844863471954616176942184092282164657920456296633013063476363429754791367204616248670240136446802732184883593069537501425544858072319473272836317296545517248607999934186230296920522807217735512053096876405411517197856128516668186031882148229483891805969367807571733609064044186993254574035411268315950925850822729146321677850530007293576769288049149037698607760777085064562586993115309671130402035396098193264581358024304837774915035107468597368625272846530425621841944835429485381271571911673798591891539228962259428531380776188120783057258774388383590929756752252311397364617478485617430218041163604254464885037106013241698921422183183633417056408730786982663385802730407009433983585544986197730801291096617723448283264640501035798807609195842117090157918419486536477529409252157248237553767981076251665530053016484710396609498479626612367668506321882197687904407898388615157845457131280156610177387118059781083501454766560659997947122047570208975296065873840133049051278039052191386890587127059139463007049920559759794796496924848719201355110777205422345930597846600835315185386381928123303162096946419462064325732312972128166239919240160186437392343749874815900084736365572468369834626404385152330844117152068082394171512001354707371489695932919975430128092156238475350258211663898242936165012279388328198251185649835791024678889873959773886728844779085364461133043371209190829553217179098256150774732056404010878054950989807701824849971107747417342009523108526276268804851866045415683469722701670996529771830190299171188504229027393863895779886336518398659604287119287264334318365310662103141355581725179782441677533716538766696005960927263821313829843399124115108873653196519504645863969393391683635894497021879537110369320330033090611621912300897133636351170699556685634358544877900536744833652137441725372685471665128099598782345338847521724043799664994141246925315440146588019382594475337411893827263627126295099148015901653858035510957622839376396247052406277129387442845096869739150320714844732580358451015309742316223250892618380643150019155037662220291469709899912382196946588223231277022296373541228941690057969993439939277195800882152336903218336486745602582581776815395584752805052083665797021644323754395283905645247223923039019071245801894697430747975386487868521213854942411800925676300754061740454050636741364895045442379094478978277301557021449804983691066496522133681304598964795555510500992933555677348437117029465113221508302372785659594966037943567884654880920054861956895569604314261607211878804296063544186918235832439633808596028672048589186120536611993652230321532571441406252729300350816368589483996600475058937752374859794820929158657068145880999310782830197203692998931965592082349138882379711322504955206000539672166575374133651759685435615723384432191484927319498825991834299924022172509725516252518768111859195631858101126016769173985784513087296276145955530341001444515788981825729999141400437328079393024703377155824754737713623576785856714769268319021788598855945035595318551615749768854977085138809180030979003268484291586821936448532974958690997215761913312370234612625883100248234503871820081102127863940399901550677035789424598200109039392734876109964397151755402637199049540550401887568192605622602000679089202550255492585039511292098274407936746868852052788133671430795252531934528448555051187058594185482468248795953103747088808491412488513194564722344090551640576449587047354248075103089820301022195068747427223516205683090383569806757992826712823441875433627524219020147771422196303775894183699063040306577588877150646637776137949178336859060256666697167772514952371901126652607869249912946418462107699960246182493238554251175429027723143076678445760791825586129684947409887125213036010648904450363599138413731992037833982286792287990570800756844492292483848649747569804461689230280324140174672458738007096781595793896174916589949671147471725255002880753270301530271157659671468018835005240371792558805980057916421515760745974258135783261476139646304644495455267594435812496248097745787378391204531465201707944801271230608202906408026235268641085450010575063206962336017732791983602367820171909274884666363036011020047267837334728402867566179859737917118569911736286163462218243512263492045564958851571924382972947651926858047447971363815401019851032472549531428006754069684836574281811536383141834435761751085813141100410984187955109546666415046628150449820601429867916048882023062292230090297664418075476612483642825236028221096361355687377477264919642723883634330089141957527532183293958519270540946098569268127401970210036802969151837747400970422762340158148477104216458655194324143641558388945661523781795325300018739914831431691914370028899790946945986899528412714087454631229894198835511328157062489995910517383973145243212695225954019629240146366766545451213461804475152936823488947263723086782615020073282948145452734931812272599198662520009391447035198691731980565664570504952776277706724899605463440069178797363295012296226691944562520230814670004627225878700953581793094628879750711801234597946640677347205683713002525351117636325551618976269776247785167943503436225238064388546772865714432681533243121143453838387216471911111442060312749033843371038822800426013313368908286829945643188226151974578938691316033447715493183590872253298107462605652343662073806108147918522318544019423483116915084491773953376195282173693841458707115132108669096591669194316570611293047407599327371583171075550161186079908943361889763826871485078179618630209564374701934106744644217724516936101709883730485738587695442936703770492648967875879972386147631108527560457057248500257541744608127240512584202540820159298338239575003371983470101043074742839154850431406295659605190601567069190076795839797985115138187723292463707204441512202696802747520780709394185730588942196420542365887825349791486560317064327649437500735770902235360595171774167981523506674341006339765911454462566209465763167922166736226110970116380887592528617695780484320762627086567207047551481672704631486549262453121620561554195030590535707568883068652501967621453635202508504775520766500688428862959850271605223642440937069671208422892269746854239391963279022499417887198147392443936428361532711098625226655205373004368560953520906789827453481692818841788763675023356257332044942997613645099536968163191752447831992167612390983459897022351562976088837088371703683154031350515559648655797455285557220339882875688996370331671801816808826902351017397751989235468521634518106776408225128872314929028104800922005176785105227424619575024933754152007810653220495172862322252431686412055259897153979466857635211847671719922550490805127222629834347246705336275968514008679804013043643451115981890529208801564174940497710577673595043312448438602872723245190059741899112824541737172311735321000118485219630162289747261844295144818275630806960595383667701250773548207322689340640759057274864374830794286716613744769347128213830046993239629779326398224450055060536529948419790980081053358149127218803783559189146422223498996528923467411840139732283903199326022545709840430521993651636172167791925749850061325469605586798153071028555773439107477832190719795313214126680616118913083845838401387773237674031891894057255190739747062023560890003828181826531001997073364535499440545495216618100399298791502047429682393371092217306202313121550227635225522825954230691813931271202266188851289858073406063975136790470456671677735502173079025897338083971397683457664997777544297045798199806901543281360471721043115205207808572489192704069339194857251003859849990608932687990070494086168879335717366838257235864609245020420269433466719891148655033145661959131189246543659711713970684748800082416190870667507748311337816283703109385968128839141345416901192612479413668345676189464933852667551143863823028894226727716812593331294528669051193110718396337821056451295171911450443326952938199231148383647453738304971810396654084228175647504916906180269741794141766386213651960449528123608699355301708972343320484135521204749311883312958569946695154123652158116477495598485946971252569133933424209625544923320219188614374282513942380528072762613845841668796041498303674756825877551481406752854751593067184396744747837068302340379789225194008582610888874868715214877197003066690557482195309667665883358411509306636264383909742034922237404156267324097829579670057831624142947282000795615347122459561986481998182818730752016440290216447562040569939152853816193771870698355028581455408671062791794828129110670431003899589131763228061902525487723904148562461598790240142682652444818877748095110326869113410421491170934919661602067747235761025032422997320716081097899352791207030815575106370480171478126115573244742266708722773338588567123745802519239258300212295218960859866571284773998785744432216896580936466267976943946470098199562717982499836714960226276639226050189181601250294968444611040077716407728643854607015238665193851787129321174448439309273494208634685720478307545086153655435008266113876545431977452449836815955420303296371755027583418123051000083227401839639101787480676043177985165862698424421290441112212655623309181445117675883248232752821951106178762119473968043996941575384276516726924374795423394974549650895408792403799954704334339843065823942144229463686673291237600046099237044194401688788211252610151495865073726859609496833167472045145373500459143442231715004657603057449707855278251899151049448174464933087101523089315363362012943401652912178132761343992991670191586388416947170288923494545886432845367909788370522970560281657982699777346026530067480471898398225964783187896994241163093191968949540618520192728154893804229457811493255137192131186245671909312956155883674486390587703341331162963335405573853552355176038540037696860037213719789823100789757094366178067219993274835426636508315053987106602881333048329607230952866986952872020133933067244133023520649034691075132813388243831555179763409189506109832988331236146278149069697948555321431358557043092184723442397927302954080138568890820571109233546753204540154615246312811082954618280151222345603789647016799068695915985772093597646097737452212861706849883689196325544744320165404240087667461720228279064662589873182981090431168643529134111739818315181957187928989079395472761530697929132694142899277690736437781521716020032542341655352848020064747477198383687244196728094874218984164596241591592667163216764573446778734685403095331717504522814201233928005797785755228561292610045501821034222711938406303750459802660244131333250041960608951918918094727731395169496221787940232366149151615167202906336136735377058964005944886633717326735726895382765500886861491294550861874027221334307070433541068124658941582631366284357376667704597860541989758010530970566053294842388140056387849749117724754758342374417170529896117992268981739933537147541250879216507176554184195049677785117835601357962618042475077615169881892500151316757509652978875623120321493288732460332698354163536077612434323079888897672709036823496093424903992105440224074124102200744060613472519860236066058448668590581075088273819099396229766133342557874816442898929767037144111337704998569596482411511333477769980788556516084347488167164364653265882907284614147605761794921758099896608086174311939906379907442627388484631933458011186160724781542194066074430565418164917949652534320419719795880022120808353228173026781329931413099102168541390515564202564874307724408380038247757038513397618953132802556691602590609698664657460217617169639686316254059555224839161621738870970191175137837149994020975592657983871354083165928370982621580378899871037655960712388411873890751122866590728256061629217371086370214565048353976706931720782838276822841267674710308324457970440166459529069169114003139218104683489880046458277960003958244339531714863383017836576617930458371198206534286584033767792940796271494754020721016736052580081315317456511121936968693182770692075191061147299089372393287331409856623899029510766139970897044143085797713017622664510351436380465462726348925508547267387106830830624002138169368333922908957831910054280122870649985161501086815247346648902204196845637752214659483171518427437085682357557177390469145876768753856340710185004306819827032200447387037902998775852409319265824642453213953140842963458330987428111900010452442513188744863142592890932635093592664382653704408928020191144589502136851174499268815506570979254860906968406121042801828661716520508322448979937168175815466750616286913999031300923032373740524294194685749219607206313967148145365813788791501756432993237480429423642129809464046490565042770145051648394095698485970301848827798694922190095495851650030407686288767977546867102212077746003839537119200122899895862931724575326404104637167024163183096691325443091291889309172720751999714153555181364671262703696568861419936270958282574029447301644677547675137972357828776189954141064692972821183067684202575933128593510989062023117206199945619898560153838990222207582927441135993594435747777853055060517681158402617525992361069860593441679666092938766162463785587133129531779334661878656688981659563965076330819387175182145273436930726794787149386818599489687677537318992886003839697753221770052791922488298801855461868772621424132546894990943156342278980462384414549010987493436095556764830586276029215282951866953868339077726646638967880410482524334126610809027887270992953068195366134353879688111014114007671954443094573684881031985219461167134831322596935954362841166081234341171690922951577109992557264982087564080694543891288135497936549537766597354530871419248213150915125216285317046675397104162703676874988251595525194796369327555735348706306293872262966524746361905403971856119832454933426700742999722082178901324998406122667463949058453290948534441711711531741155332016444375377898221558742835676515613802848398395653338399728231976371338441570336758846728494328326939937210517415324469169729133807120215116580738907213768930700548318091581694347553590635712449376517260687420107272125846181923541737892572021219727813112797637386736662072745392141954918114058837074536591575081591010668391540082401156119438823390146896778597594323559662357827852359737325721007046254538550806710330120228861684524354188610679971320854910973101645754469263633054714350450228103287490138365998466176737660618592349854402415229961882538164854333833600181043844754218000008267981070697012729739946006235755197084427820807159885438748663496521241918552462698152930322249527196639609201858305217513969908005667467029788198389534483375079085344047224253414063955312283959776754543151515832895323571254376027019714735381813808866855107911646840693014992333260099245706536941540688615622998837426602738746076752419882356194623668139788872843602351459293659998418131163104559519003044922966979325614596323744657050638938537248476636927982427469625553827334461486954166269418381812291817556480358729722979605434836175092604236328604140888442033996846816798909666612210835078397057529885355997424569359013619660976723205265030980518165124572847161460274914342840061576873731484129549438108383980597351615217007165644118527447097770422701569416564950155186939160612669085799692681963742054597686796450070266583533438048774739602041088248514999628366729077860414806513457064430651007087409993521705112930964360252397139072223416329173251603811424959770543683382230158218226593763042396382039159939663773770175394649235194119128517688890262769751677936070385488557297942147498430824842879415921460366465455292818266148042202266089701926250758574254378560109452413633379376526279031424082238053140980643413145215397577012349225276749596833990623999045460711402856640407173858890952359947592442206295987471961011254231728916142223722950952808885765907480371841816414438420883179717834552352180340927992475360358802037323621088925191709958302607170641393234336822586526921740561951905866050628571947856497200916549272733313329915864537327474076466484161177187655310584622830235691847348482417803160611989660251559150627691552701574374064234907538154310361973917511981877503278100340928534879150297596097826643544810785061494842990320304373063368898619311634533716881985726636499174703613073211664667336847774851301990397220448726335094456959049637419895322084198088739654854454876194165600233495183965945772262187517373161918440612572153974573347404792031464118725287501242881248249992637515273282013424432107818140464605931416907049702716081348353820881014837073115214303212938859329664051274046837253075082390615091614007912481518634750469998306852596132482875036635157618227262787076813353274098890863339345953829331718531903225227997341922339204741457927424003300784623151562616321532177472428817640343878585679994225622042403155748546308646516926750872901677155246879654546429055956474825948997027322507813589890140887808133275264951448784878161857109005109398364101896949109044421574429532309711781934131737229216959293193289843069255006344520278585102037593508274194739031188313666701262038402467190014570478912774525293858661085750421769057179033956823988961901115241053346470330715047184787835158905711639438262805216842564132215361477271937782403104702298829910396044893180971054380767203955418987156509663055277232942462872909773778399908785360514729217030226545338848281928382589508186303153475943315019879194344251250583393277536087406681792042911190045047381657246394031330540461281443329273103715358185563468500496719972782286325230212074153453226985948231410793926867812924218019553745609175518257875565150143071829072109092172144629222138058355730809203944810275647206681429404882904788811646986662262628777527820026605468939326007838349083071318915864173650758177655934852511856377627930345386177605127291315788605794749020872909011508297303907028839073904407906863068772379760597247814031884369788294520115382311193160790194421876562188015779035981612972022394397030287096431062725741007519922186665686675061504611432727714792523576881017843191026609180111165766626436218147401262655310760643302234481610013198548770658032178922307648946559063186706495918440358700804875093838118012423330201979478103717396672737541305908246357852527348114734482616200305866442170047646151195061838614750196257444793622817690170166380403870909177248391518617426818001095827727835465838055282387305527684738824380636582775593017794682063848080139276880536869376853607990642593717020137352787267365448589476784553521645121177294681778577189867572835670456620493999566218855956506860979520640657996125513298402792210721732584155335597325101778524183147151257443708851962163745332700706644565338951509230123822721524983388039876621170855101877322631529163646526359226262708705465532831001804728583407954309110391454239896302362027407134978342943751262871388994592950410656112322825662692244557301999770971057546601377864599501616892099045458390392668200076805173460229653949414857561907386472546015417727477526134585240990111223697070186963205014848758872965846581467981172544603157486281788942041341882543746394315485709324837966971688336083799170660496605723335743847727583030183004714875978976254725240742805295936387064688779990405773987019512262301606256809584074437600923550876691032251407718301290848742161654299139844731417338064182401879248038028489145053087876804885251195622880089679974321515552301988686317923566310446901619300659587396645404451818441130620084066814190422424940251581036131631302310304342961788506696553347896448742305877956351797558266862158066721408885260834358966978233735858376402139496104510402236501494620351460044465936136582298109184510097784679543132482686230862780475156029286501277148586213188176282697624896374733636548490945042516017753088561977702577575587725622602976709045019172230652837878150131808483225851841288012549357378954393406259440553380929961181283603872804179034449957588501717669821051316498696642718946867549690599527919678678583077351726336368546176139595101483212452872933209352440920607656647980748562406778912669826691364772069750173179119281418900674226123007250821703002068155677116826977003462891147119490077367278174505731358067532930590564219247163643161281824478477897689433970267877173357307091689103994338878844574478421195278855632503005556299869753319530567462158013872618986168083059410759205076950673862875255442844869746901751247450757787901938704922533325933361016460226673785508216470052916296489282698336000571234651273769058004764761869576764248650455466947856985849725003379285301908324287001242431111945918777259405096471643230668583774314139748781891444482507935186098919698471335287420725763340788693986620577944232640677597296847440314926479740327331052321506423082266180618175787038233567137763247830459264736143511311648859456502972700149414353452775721316718330413078854017378053777018315357465710568213172931978793769741200858516488854361661376521876955769848690432146757680602676636923096356208228203255546068316408934244503301594141389054632965087385680180254642812571750779310236359878662474829667890137689763778733679262780078486138487936684728109855977377634052004618725816747508122727115105569759910455204720469942245517471685927000758688516227063548622953811984121301008963763101185948543038947307051764506734506446425714087724654186033585713962556089592762994711590840192238435067039817100919531590361375926730433296835917220099693627469058506611626829323602102458804266175552812201382186550297624454277156572858132572742018032130824092899491273494537881402065871479844419179221404062595347846944659755875130195004025481607271810887601257334606415977284356980736464466819922812785112140134960319549641271157016455051743944000114623418666240447222967566483389369625793641203004469133261241728119968191460887181466897189020023204182384445623654553968801494030624550897092736505514240130348129165024164355010193426813172741841370566606198489498324686993251357759332710416338383378604134186143367499462117658193305924799490548567068269655576047101812408935764085544300955387997588104415281690949004777191717221141723216812354435146460735248921168094573388437824890877659724290952598987337492401513100692185793710882724202012035680144661481644089346693415357734298434703515665114131379986995674468910057193406465164632354222027675718848844824042620392588411962237244374483469780467953424077533063595275378227436197597449804803830361488229049260842065835500560836296966901263358549960959050763793048291659637442908014571992198002556746708452251471435734526206924620760366805018564517866103919824381344804648355328196335036135466798288656468479486906042045764351424587684766769113237450216794368855702647146434124134943700428537848633173731957516001748846762268811635456969993929593386870717413671874597845792519029601015533649392864409146393659639479221516567728391865220325343924380328579733949537540492365509510806884504904601082541953181226884913655898303297856611136840462403078327171688081775196095995438460505745956101203317826110433154277475005439185563990043797501523022173959244436892707329972720546914944715575450125874230285739905652027842577432456512680446293043649728334876969075611230383077688287758011620577900027893487670776931917832182503220874107151745915494156615314352803452071717851793879495199840339012170674810052886793055783650922025695133167736267983741148312123306827785706084996972549564219974656947353243779360163687906254883409265771699357991069506186023746405930651667446543847515373354919112507597468465410042925973057420900546359099146823991849757926568390406609932496469006569067606901258635931860898154812644359434473084979227193681076677824738366247411321590613682248908518344898198029358499694963753144152559698059529579976191233455207064487868380152838961846520575515117677853730007558676529895080015252797310782497746932965156251182741403012135057877828903246095783768692418423751893853849063124812928090018782371720941956011055670548250699737262078110217349500874044615319889153540340178853273092190919979172782231325157087337108835474210177847829824306282012819905431627289243618682667834251848309632234124189809502884966028353040156548647014192951409185353865383377314369213497681504766517921366476849273870238926379714079946965913997279438712508694650398806484333405130984925037660145118307893153748092531316946011810449154007970413773583121635325854166329938231381683214051421727338228553687706118687777369884541563186767891568904417745967344467843147161159790233121827672605887485668599073835564713024990959887940852158687129531852350943958543900795071880569463996182310998711827942556054789844469192505702446779352830251530978744310536766529977329910113902580444125289030157247290090449404797495363672851148960635845600587008616990653514082889701271002042010583803652981677171313144626245751995374041033135448972496283333112040567412264284457533679871958211480312058603505150412763267790041488138970697391944603349948695309384406579093661094801008945979212301607125643307009074095219630230470757589505143659546200282364017295495385005145596780662443914342865545888902943308882851375233354183356898484416984978086926102449918532691225321828682223525137040480967827594404326926708811358596377589343877624266864204728464604509810851811987019546104771342110383324209602011148875186389756827470190857558786453022581148097941016961806808073649326984707606559965465133561022831682457474976491959121444373370972693507200408701403824806972330624326699658816379436569846257079498842948091643534505213746823254758772790607893182668254412298154276971632072368819868487886085526426842501184060069650565246652712531832360729393962335940988798089604524413410040181873627983274976679430916997845160771444558283138359137942362673366067185654220684680062615279903231988920437125362605250675386285604877843542232135909988350023339000127880671460998595232387410514945183715959422045713912096328783788205636689955368778772848117172668125128356759887142010719092121779900822236481953263546245173434735229313546474878424796661515257563346215048662738677936104350454279939166864305434639518550392835736869788643577029502827510215510393894342909429681469796067272868402764375382050185438335812662960486921740486347906112142793440589244930340912070036673312441031732555178229183277888697832117309639807846375433195696084202351804482242694053077211250471371073569353554480352899366955522589698074447069684528230078745433446980905699784178170664829892366140125521326229177659594789207229617126596153615981835114928132933806174775244016732682703504716406858254653157152232744788234755212901212993842891469023336085227979725076739010439802318767706259253192198372335653020034396102327519233106358807745938578277807556880314921378304195394716714531926624959155181900596681822047411428602720047854984625363671372690029461792600755206431773655539093026463025713939936166634650059567519499073955066790905435353943483133302662458091487859896711558290566930931292186796581223824056048527311428343093762964352260819117790666851505348800585575819461629966780586849957643246158388906009791421706063725953110592119762669518786275091047680888436984842595276980631510466259763482463993714475532644098341516148025923723585740088446256154758778500929942241046619375315338192423842176062403124331777947991954600028361610951220050177681539280361258323436897979970350611070812354593329313836172183174580288771388150033713585319427618876341688413990180713071053094987371923155477151391175044784309098301080237632648322114077018593815656170409210755993251209038940811158299684559428098882908539670071139394951181805577182044921881087783855035458870238185914168025840816380237433668179564676499681732043740830519988815044306160208834068204075808963126278706118500887703124010404398113246767402905974224691107710722901066630621497876062454006819366778376713808312631677090867576184104147756514880726904662543732441680350206214037946553998096252096407976900152234452874938992270132107153480862366319892572152430479353617200313227456412488429158062337509025895977211064389689082377621437756805566650679055527759530711246229318475436284623589745518350303261074663288986068503619590158271832809584002265829124517398019696231999640033375209871491016980598256658345950591295486623842322206421639313223416053700127152878273077705359305273944689451711455199416950498617852366079800535532892815089522341857879181424151092781912560002010343717022004932609734638321670558740387769058243022545890010336633983576918042550600324212599363864352359217330951032449089575549861893216326739408533611065979839893498026498648784876486271281035454022185250755064714732580444482240019317459337869030276739450859185664039441854634196809662011131051690990697797875483634030736129155210476055090538008668535928760174718889653666992087982167651026458641153542043021517253719296256582793034948745287694537185112622599827394531713349580586202445573511578326802025843783599729228299257802501064664419540194295852161295802789099009592185830825135412441186368937431511457975952527219903502069648542476507436684310049429905606198789286625516787903345278437748481533089955601085642832072513701783335138058961406374657711458953044603206035331729634622861310794784082152904355198536328752874171077687716419426836085914530902905116624633949728469614716217702063525114330517812582096567086531965840348622803688344743728258525743175510470171602698600960036523383732023801158163350479297601157418785248987996508657138292698524107863117167304540226019076334748848746186413718218402718802997398008346683177011961982246729148176964589776679735273898801419047345652233188611380898305553422076436352234574949224965803170834872214561147752730833505868427119261525888823814986113003685147952957277731661294579339500186343261157886862215716406727824646870749341638393127005936090379115262278121751492404310424406475298553206554691590959620523572532024720628355559093983969778888656393991862098584927435919142140156367054002349596397880461090820659612380707560751767983249990549192461170355468286080914742419040006618694018565270534687030293881041126261675969829062793025472757882491763193402380612898195768526135760188261274871157864039188618129274290621062446201793943084548697642308269117332996708714863565706835588694583013842931806052020335212320293551151139827063327245808675259816827564883997291400215326218102465153548434280511487280856413340311121784451495717786856663835414955221505186417433016394321876608304012411966871675380424197721981035710120470358151550710078314690747543788241492598666981342962189882969144640257084759126354416001793881567174869336055106778323945817024470906168597782487425917686981023940391359365123061469514301989048272494584056993740656372801573883696745568291038355978475194336914309993302287803239879175018229779629912514939994253416312372271754052899709822599813964509651168441391529301559007594465574222927580640169314814034696330741349502399713673647695458235648243293617981252780622075537215428485567631492141014314361306004628082804214173398457057006767783560183596621160793062593711046220324134322165112424292260136818948898602939494375426141653383904502790413270661825431946760760785686536065696264183509658922548219937115635086792499816501997686660523767707104942044272097150044422868390581495868873408191388755818846153342023558994916208496359029300445762021463240998965912235400927684342154581526173772417431497312726388437868633829324913723036442607941534250540361650638657041694997057406861691591252169300292996285936381327391832152563778729984079719942832315446295947165907602574433899683450038121194830567898131960755187120941458637345363659857341357960647400351020272592497507444200860321155249506005105202054152440447817485663127380587201039243844628807232401101195139398319619360860234585271540887611643262471142886975699540767507842138751444273307943130271720744738591138535314201453968012486627496000327883260919099195024153471943455597579603707030088694029749427127389053884335299830676680617232345739454583060388657824953755726050475317444595228040287644438051624368474732596087398010699280594642986042068862003863098228476191667321014557942834131896282136378311845707310658379763170415512061113214407757910671242636059032968532639803256583674843680738056091367451302998375698638343400370147515952634827020210591803575744319172615919837308128628702334611287100512584791544273823750295001811386744204079334260831284086853381971563996470761395264257643806316004527847154781737422092813121632270990524078145715617811096455617551826174100914201232289074634028833721106268030770257443460895505816997929701074086977618403054117086367614407466283138570395123370056586089815853501851772466935535639390477688320568052590336856429052144324747978267866900997269271561004537406539364698049786532267554317324753981098581232070000283812632399121385739563610579531735455714670476424945770378459863571698009237874101438549299867745312828305946183937972894033034794226762355766563763689032296543030446752398607182320483803049772923789170931685260051431772585628842534878540077341410945903059866748735993853393853900029763715546064559837024191976288407507448601831457936567190034899243524577601389238463425860083569653236592070810812568548920492418516269364796200226688246793473584809981869830857754842839545110125868842381087559774065518056236276598234309954140157149771939714440230577302949541424745899654048763037061642004021062679504590170646734850373414519895670066978275894187902508406202045594579759431268820244434832565862912235935432314224827098207126660744332966456722806887670412731595025808327327985031757764807026388445569108075129686473878815708880085450061835587998184671970748445397587457836592126192780184904251439674361266458723758761855288688664763842518058794148241373660873655267832714608968971280214447080110081634321931032056412277433990933606091843512515467999927716640160589657444867783954681677278166594696176038941034455534834395873253748619722282883003170568844980223581611226855939425901565012819769445945967759514812845918889189531157790471377886477934480511033933489898366136361814747452459827039014308563078214640772665891026795688217396757654090924605000299835378606947717063792581177718593433603051439688923622702675307368611283393039069453692570590174881368048643058168440143563624978596490901538377238442822225316509919166983684403323732772797175757583432625349024476789642413554290874014274531070877709405710242858702212698876092766765265542103967538229351746340488253489073432245690324921978953030623579894875418427882186750286103116727635274390940184965323053273228638853061564571016048762129725285241688606391549622207377962272444458610915319988206326471204478254111195969437637678697609781702253948628490771841988042696728493210325357262681368324608538362820049683379139427160106925749121574986963350488656410416140926012571317179410406895598625854669592183809787471795181214724906015697463282144589009208422750895700739372466867298031460647111978263009615172099489773124117359592564883411065321683081287565819776124274895809830413612493510173094855638019619537406320630640267537571033116111583077020946120082639445713422164730699684134177271169575707065914863028973500025331280628718795094934549831983561478977666323234869654833727135542483362344918079244405971369245634876424315637139840103606551884457910440215048041948789579915260432402679129189170336275083525563314975266249967138764672172053370974201654519267061369491438015007695807772893012250546921200754785765171861808733177123887537825309581897567285222243068530512500059416834980618005209178785731189187972908058100610097399115273334065443797518226713456416976425478206069614429552003893354169194117143452362552203763234645802481446442849670246306767945758427813514534643943137010032701638698597379760095266587617358869319679629355670610146739337479523034396378100505561727630250883772617289666962034087907896693314004996479749417163720702098048086780183987413722113671438607498002877629047366832735098164367780573426266791776387502075177961763296168157182655799377959428275886287009557877698554154279322538529602435853011844877974765688810950076910039425768448254779229493271825587030280836701541252212203217464886008401454631009314900901345054821738917589837528185038278287079013569486565180111587291653496867251844146897819461702351265945380013974884872944530540178999276060040357855371059329925530848100263557534879963154787276959642084309755834209387548955294686444271131688753242867810757883715810143476734466688629313491727810072726272957149303459562850771463320572319891704675791645837171729378909896566896865782657753563830910042997109742047644519714939232661653581205380343515454901911030967020842426013343278851694240835781713908408146489172312086228464651002985887150104665093365336083566073320182238784702642421808404177335896413964990791806772448323623112514518421032513554699138323284118011378248618087528658944565219997208711811656002321748214046372131657529015403615362195635083395352541263741106200106028332099400047584382880187402704543918990824300430986015285813596558432617979666594232425347503413372085193525487884578450706867111977526757682892578398143768390047006486983295564623904738364021614232559890490463097362559201245600481696579813205699740046011558306796707032679935319330264584138060349452166077743181343995035986261206062788922374987435352020395366474078750195679017416056002795023906219453794357001576109507914072197175483684963538390833786541338706342299819781840019773774209714154007752432017010568803331779687660384000421314518980409224236365947627706751021351345438484764746154016801854862041748346197028880317164718458433289024542420601590562290684539002567173560550920995611006786700658935484890990197083611024245628149181456263607858840862138906843123851330711246740458118031446727178915610967426752201243719914750826693348153178659041488029219333182905184819558218791380333985394322666962029639736729647834215716521546476592199860784258159194947040870732689978031501535335849674126152406032245045996647068454298110232945369728567053321927805781717836684940300089364241462002193030658317918989924634431792511726213809111438589840749427272401842489629645007928866963725020157175625161944538150006542001087522585245114834302580547567523101648039398067848367809632565416034370396560548677450171886117859535337364657024394938398753128665652434211855062932022955976511878728112311105209499699075101110384205721716988417275635332030388304350214192263631641160727547549537589471317107443276418800808297763218922205957898217255060844170817870758849880526875153410517636090999057116094782746090946360244589532585585867120843166176033863498929011019855378923986249460387537234122720816262367308114725862882719067463093543133926019034518169985554735154708294159580422325174359474974381357774079825674359681857663251663669781702142868470680772967585612871229012080430290777467777730648345843684040982972547303417303888881651524224867829181516345469852015805617840784240581979359527472379176303410957111494323747944511276904616646425652817901411712473612354399173328458502717342096079677528147910950621307803041349449032633235194720299140560917817603255832002065337082897027967410727011762461719355766402600953353215540602201197908422225813801948483655242966009374629362755470334331242383305397833935755096275661262277075057280494252978019832696993815295984130077143445544754280389531254864427648177802378996967523188853750926952879129397153456148522726077247261420636179942202020109847772824364251910584074462390250364768720078614409556964788018397630643360337690765141422669870369071650304582415794516902075719656997371301509675474303238855159786321610788291193314900943569451629598296049839646545693178205624083354878105002704279246763100402927044341002954857445605708238020822982360008661111341306523488351184063338101207699912236963158042495494952082006249439580076330499304974004767777890042944116370377316291630878883043987436031912053313509411147019423667379980319792472470411005641643733984848549588024650080518622098436534935616874061980055174546433241799910169707877052437706532448888472324730517027866102995348517308970394538343296531955263601707569238028491920128100206551109488020659368785395844994323882125777484036306099109000062557380107612336807382997667989799059140290666336318269480119192848324910076837904041622059012424063129335467577512586605976812663689203955195145923782766433901311410317388415589671027670885710864372144168399499592393975776328413113080363953609823729747444873511620835890513522834199342712984992283673903630879498809369609525526261436974143116485758760806050721302396216042280598611513260317391413001221690911665365190349423449362492875068116794138591237348296984070038181428601016864577177226649197089023583381323041293802181568188677841442870304725985208809288123955134781285836716689575225566952671302782614891427139609059628762089390911303327364347171109559017617732845237219700294055625177798335572626133213978586224071822478583590433881855488420037868910615548978358839999022886037820071952606070947190774154194031787181248981923913802923095637526902298889205141709933450340815531005603036175421790300302180538461847138952679559826803876524993297783272135098386304270091498332396246103105776655090075402965363859857236206442469761236164926289837146390882713091991320928373013072333531721795311143226226969078339092057127419109539430301638711208467904665788016504510940032228528802817315724273192832724521747985602495760721828712712207109556987977521349778081743987215554256271653643157127137032051904352433169448416944925074818019193630388946485130537069956569024342628566794389142868581610379445849158644781574107559130594130057625700529019602140274047627899324160569613973928498626359302598204524932810880417100655679314229880265551642848299953313766485873367287366108470388630311233156228596600656712533977771442264943808955317765232705143491150763075889282294381123628405036873261789551880621475275033266855931030172789654928609317618270264143364481608474677139566950582140562850781005436563040346036458975713536224391307956736738860838260925985810755833228722356069104998707129809664530248167975226563833567011838615583010076685394914264301482107648653142650490825354581107807100210277426358255083526983052928980880814672383208192632119069297121269233340644528975199838152273167311989721798839973976140670767395812934631936568352182614694334737638058947315820532933678562143072334173495400675346092784704932721536560511686198493770679083950979993526542364578259903292488092587494280334958831745653405900574530457284137224051236523525506357931684357564827085801311041853234679308399881934737665432653363493082505286841675401696045709058657620892525002491719562279391162315736373716941017797837478365841009094715558353513931347910231472070468735672045481531804640686779065579985762893925668613837422079332929587375657000260928494983951406788413365233195647129372652968600558432175303138754477938372243644446995481810513475357052724528786786453898287761579588510244428917133984949216503798593114947453409988650605384820166753949516155766491448653503348223701363128832151467991040457578638291802922968531751777190582599168962452677513260585406167420510077866937269439974183513088328750285118387056586584966748645363792058139430667932414454007805955061748233797883820732803351253145135040986925303228906661848057751262941185840012519012416722644701294020141954574942017818179663022798647942747323204915896308273558071701649231580167309766915570080357722944321936726633891549777464076288617885142022875665197565713288488785328698048949192504640902107886481358891674588341863397098253672842259142682632469637051095481505912997226657889591136802079402960172101449190677189711110074682712772430269326742763222225058907407841505745081424200545866679900007227492650101241189788013648572207226172258858949134347406359699340982162411047080515790842022805589380166071856438003952980095864932482918811183049991131375676927344790699191615994298456843673724061966261195453907354285391987480433053866394024684965884177083098784795336428626917183064961442946114633595891423240291030096850855996538628133334567624833995771417849317344018206617314557712768226877460882450197960598134822519684974011000585338045572837915325449033330342413071984340112570730803404314393969824817075716927664696779340488232484055696984642768551473342137692648292123480786946351859754794081215205644206987444923093079244487380606794794142538656123512465822723043873395469887746827005495370904667856372345434924782724588920185991331224663462906154941313400316646023955047590395716336638751254881558376310997526915855537189221159205745414878452568935291993126771687144934265058913518975523767751973624493183180687734605114468871850929813022381981881412896811362471469257152955819573748524459125745438654636748413544570730720948139999490382396576498178936241326260862821412625024053232604375733126304261077174822251405086412922910425682431052232943697416734101635738987448188510444675622580265718349754541032677239258955138200604409897113863230539960235887908768745914648011172318694897852533025735234868802991359773387810246773402841453580990465932023674810814315957965798070387144500663759957370580269606617492619592722958440700544423579750287038071902368310967048523890752394195343385080841763539363276047207736143371936705962430537948638944521649580777184722144521064932154831448725671453076870228861422032398176952791353851588572402486209488279137558502077011780699710103836678751201143026457699232354209978720599787695157760891064128866410175765915109860878274192889069813872284574448424034025008640108381835228628776948867118957574428764379116500746713623932918261194755762836749523246158179882062582601780069010224889219607808242229181555950648893999998976844748234225244881709282928556116199741812030862217288292934324224461609717133082764490127968467965656147663818816369097882066152631574632838619110655699577499339737347476437828514788989433825301896941524901335497895279836693857355082106222687060447635352908197293219603983940758007865455068345979890383983226539058599497183580613630211257759332426688678261045788229035237406848190397833488272550478894769396019119276231104765150164028242339990373077200320410583911550009932117128693359659824944491748417294349008997527719513241432259988016673808311310958435110060477346132043957169056347480761015866217061319824814012311573813167436813084193231396399073812133777038537743228537703349870736724958198525560012814277231287875170180755929454347891522930619844079860508013989020269236770564422372288450296800416779070744682045967554378336363138947531251959601846366383834724043203720749659898971053035451464781792060829093876045821418737946110588337150934332136914118965110718615627534564365610396326877086718014145317018731719619558433576543122015572167817452048032445122722178213667511697544850239412025607859352137355809422091637251433026666668952937551071627498224598028879361390078899022081624104089372608570083478482806182881884347034055989557583046737812618123790215573763054889851396812798068333023046305851734511867894497713634541105047812645167309267698220867301624840488880605273635468409898793562732763827481751768368089040744841479038055866895674172561516343202930557450222666235443477260632966315652901887106296542724072752196732538152962571859690560520099128059904807225705389311591449872962172821872824563584330039188075659151115422378519379884930406693087731559830714110921313681040265948470992793329781319120042289786013499416659676427109264289571425245695833312842219372112909326452791569086409912404123853207765556804604739517609549438074276464966287857091674489562335214926438855465993204460888308120009275935862371100823119689369023761947704419106195635102983870945655033184057345696597457380524749715293193696801848821037162040491409333157324035704957686677556081539166797046654678519922768010021500523533852789858421240754575173752996345142990326994081846449428678869118874879421271781154764732012036902576855803178873845002716839694328134662610849308963563101989848219468132191225063834454814137119535618908683197564888080320060090915608585964318743717857495501135861470186770820657449580528861826395033884799552182649080988896916100604631829809391594579868388995565026824931617321649310999457093118170307044492654940715950259695524655225024542477453043765539104033207577172016838667995905255705450881296387042123179240034938523187927142098957609380930667710132900202149945956543915415011633362019679422336218839139924175260785574255216712644970642311369461825902086912704368803874307961056381896199888340467314042293191957181070914634066411782051806970063511655264163383371251236640926532828932094914100365328626164347402982875586669718612472167693168690363775400694167024377659101939333163673863903071642899306749815923879320817423998338092969048703777867309847004907065077528414842609335513433539572323547577710684654279864542894774186334921649255705221515395315667939335142555126352571524192647231662736921100178857137501247693647714950632955450266825447146617221474995933631525664313099338452660914451510967371995222381234911482164404108392704768851599292450166430991309325612498019204134104208956197408033954732698106643212247922788534690204729913483603307868754616789928791531841769558712884966791828831783431478735570001507014187400027579327873013357498632051034125693073726512045713912919017328976856458641245102200371431809481342731036476979433884776817986256193597118915386851423235926719403312234125763181600311199369774107915721658019658256710811258244882919922414354858813034649174491572114848307124737170554705636956493599051447230432390545504025096836570354722802873571821792170164765964160818436761335940365900151503510561009344753055000160103273597734472823777504601045473411736734004136551873754273259155524567497041601269613879992937623397665217259496906516200780946819905919161483497946338012247515201969380567261370725561251480845273828600664262250952034274697075477642774553263079419412255592878803477526574434217254447913818316622931876260898190044781412525083009973432465613980032267490314353302670364153232803193382766646631124043235913959743955316649550723951899592089902426878541306185157755549484296622896731390381884192060516956211878110460302246035858127460269435614274436424609432919388054677708692357024186500968792329941985308815352653662693572031571406109163418498087613130679264625097676456852120918044634318069853157181632247986974265108323737271677411912752398242576015678676149106405820153374293833769799852795927719742108947746069451154342137266166443575986134740401317351878686208070724706928618483810747388452811442995355834359657132022336623740505019704550231017640696959085891017149391853089778409013295412376140248794569139600771546538202406667063224785528270939427812914589458958588695013811545876695675557824805290997054193057791281729854240280749841873065038110047310766874624330541861165623997532880380922018918510729362297323364320921880354635889921634381752062937225804112744916864127554958056891328831825722884045436455168315188720957317313430622848556300354008372498295440525592807640892065991899386953874544667679127372334568629437109798804552296875979071996605771191556717091664696934298400031001176966367448333609597701590779539283404044446150502629343816343418269845339280658518188152662095190513498028621692413805550575664504703739211581242564987662197122528062902767128762725860990653169906283148317130685491764720867282791222437570305827082008563883142915394144756353421058154225590515763986616916986512540948486233323151430638410123264834775925151773637232815715205198668069860713524323836358494896304054631122030703449863694815742028706205151338757305612735509261406711377884392565683045039669018416542513963704974438882547578486417855935349390162827326206745742186447358111695078980799910024893546709438400990008334717102705460932120464499372688981347812272281176241157415643314511172570625240690040064706519320466119275800782138097317304748662099724500550842715984428010693923216673946042172765021874226793254893494378487678683098900231636975189348293259852887519842482539738274277688590506763617767117211726313177612469350835998176836874418887606985688438675195855456136068412390812129327653488502724930772191987545143395991349396344726348707831034807836389232257283442680407068888885633034117513126908901790996469644374233735959455722287480416819272331453773029981659856958242561487512268163004863748266359809548937823686268827328243141115798443536704877715283710473979404577778904631612272843453030316744791707086750413729596026063225752478839159687099776773491570881723482591273942195975452515940855725057928700634174722017188830547508791748608043183704780555108814740308016858420961959785509125887113842430698954905328347152664816956464431270380743267574005213222975646042266933207324512605894720457056646389993613231452664292289974818290639514688313336489147955447160964475967846597641907943855408957177655437356948765900349920841913031391392064932504084863615092009177965628856479766173083893612549562759488904483368606730603578148196827152691482056948298722711973366315592342816344498633430670924588123077427929059408882486637296439645569556251170530908548524916983508831743074061916974442312259705809155406388667544136843614488089644155172078538196446886401419445923261774537841339053818604477681204802099791828054359150679019754746035718195038391284087784497968529264985128652899890562621944601144005277058875082163699546952201629592181506561322022254406945842785863833784269850337411951168661581447522552376811388423073548167903029574262293272465957740351088473569483428664790437210699344468272979298167166731017813890174965913072739812283046855376082852619312949036418777614283665824049984401412953761068995033064429398217617928586112065481825565842080506436308636796868984465925615221470896333607844941203558807829697211088162531515476887183297214822893990446338819715029835508602300246011848499874986062253647041432337194044211306036344902106093545569652175966341751406569494505702167788511395471428224306231551892099141986585781975168964695613230680003374824451773051029090977993969929488877462520765417727129469315578909516139021794881184615572862761294989627542425504418329779118174729211189231608155807487502431776868302582773253352846604852662684669102407107691108806347811094396719769929078217760983806646300916774042034555684142015883020294338809041029548534331891896561551111476575915467504965868086948260539258237000896464770605825447816592647298877667901265580527169229124739165650673928534173507483100632459697341758147373051865294815623357213683104769548720732150612150778123322055331341472408419220192582279252322052917597421661914685017127841440981630874337095273890651884386553144200320555696962344150101528358710468806596551015339749702023846113713606543446661483050991746715891764560406472191587394181102744004980460847159273228765703120323981778263032946021332745040571489363207262498728136579672877551064499825601405371795337331831823177884296576004276063867906168516294683418468054902772005484600748799312575509110592133801582165681616345748645464626538015401610812349456022496633992021987121089572125810012924956281891100812497526662837514979265960409854121265071956223678181239567561719257701305501897402980799081066995053496934770724650817174180744053223110092216497277710179789516475233816024348783139272559644257119685884910581472159548247287752706631857477254368131153644433870907285894933358391802252104989063506007896897105884404532823163485461942938574874039251117956478954818824263137262347352868741892630384690664770617434089830002170566936475889027429245756503288013078203719765693024424297460887320316769362589073257070839000613571312340736798922517416972129076207364169919381048794046114355101504564690104974690572084167850484481394716591124890937163067773203498313708450814261934314023337565036898927041535619283816326319059394172529194332036612057938131286600486021117858525171837487246362329850038824221829721717318696029134592217325723932811488560564281248093288610115851578605227323722895361903677252621332004242225041298183408183466308891948802041611149732381017168553613258811906547918682292929032659580808724182235137198346136161934439910817719339563128650846704292070815835067696926412658061640509932555054422421792985090389606688743811167173591012436906600814704115465283095770868491348379897410495779661965260907315317347636863567649407325623987228958848751490322986504644049311602751638375763534933210958384947024822338923226226421169701949628802946572726353493296321413484261853372071543316163604873231916782569666068397376840404439760680413730265301014885699404423882347855786990178186019251311433578636295550317076345633779795074230292055848162401247378521684280112618927958318217015069096649164725149003781305989599711176808595686378209720307794064262188119918153710616742770113283774456628166893913052148951683900169022621989351270423082380972017448028000872547694274697639532166760310053427782992539534499328953145659226823765157747345325045491123533642444916777576169323870429139492278878464559768923232231405758057164757138249286482868121890162282248684625025722468035992729696508121161307188783574908528420337592369087681393851683877584018878981316351353422162357159576209946768660864031577683246858065583054554584418975463712990022195508866501585670370990681595890337155325970772926811090705279896251833350888055954251618914577645564036098858810781831166579330502233679461706131086430500784906590942526134882025334507723423843824598669492104079181820749187153134555249020351114381110763019370795387491675832230951806168947766594372819795764558395178884851829188966694339267890681086363103191525016248182635784391171989992751543263455316756531500266295198944381348964605767289829811734765518391903641133038751106017027795604382994411878426821561984367001762285585395966749979299704624585269026415663036129442147845380774756495988709677737044966834057125350501136396910841716804634695957705023227823923202558679160612106731310700390954140432762184332956454521463773258145941105891093974933015334371029066160877581223972008259421539120195220345991220569112190940647253353922859933531036411172791738382152015614941243535190564740683186799969632045528777074784376068773851722028667341479724094227534186278392144162875108542731216648183806769233187638226516692730341399706348015484532921214556777170251587878755303921037582267735259086792752859397299979885310584589732827360368408540339758111248233930666569078206202707552925222477441906213385483998079780711194990638305637965574580368949611608836795341132371813640274796185944753420112698580295637860096896177558767887136229873205037772878829779647423526966970980856785813517252763986383536616699830358335511891135646808852180246910240344569711736171267844396843032415532993757631332208650275341071451834567914501539086830363928841894845962369836457833247952302343343445173415359333080057825544959939946577733360014867272552867246193970791755025675472984332621537858813153934640274431405598669977998888059197822734662928010919634838482146873145934693941934726391005085878698440095498452241736658818623385291035160409483054300567602952257631804444315575130953195207412178808997106589771618967351558577391493747572800863725480393095942315253774087046776182485690069150613716837460623353975988635096410543061611369727722868554808864470666158651391455495017105413747231231371172377010502934416749955980832376362741879279139346279032614717816574316132295598305255795147089079977372862498917276283660592623303215061324192903594026972691715193456367917680313486560794061163232453962381882673775951457033282671648779733685729383576998436680221027894997457833782942241246170570916451276354678236269565171902480214897366291823099575486979284490291962386398351691587376717303943878878738876093875548008483371597236020072072129764909160848447423231452258079176095949655169201739855142831933061929877184087456568426784970814355049094959943201063525514104762908192480158386163464928717164688076331139738550847465274359906519311113877272771708845923255676483552682733290398369885095816019385533619489830940553860117075360214642171328694772994312097856503166885641704455464519086139561834170628839810421101318045047906406665563587170332855816940633646457681338476041307584297529367348526350055324204084981777391684662334569148210618271713129592745765883681093956732530646770791376255034832409112490587353887235905818936191289137775369021157439782140219787462045439280911016390666492958773901151700525627839139459710794469690467653056163969643114517365405963161310257679388480607462925565682720242967238876325192683702704046457771401725436462109145142544060368135789803454302546488775481664745098135829618946702541491418587742907581024846587601468518424039456641363692734136312990903667969758617549479210319909966291835035692734109531833511749531649088206300041319240427147664162532787096709188686716125329262546098208439916214564934744096580208417384608265781793019576871948646476736574053749812196184295585498334082228821668925370146584340069110649056306004650083327250887768748505237348186992999802577833602749412024911686721519749136513886611341151651995419221580466564090676109695837856794382732934827664872744583523866597828190550216407937937387473274920007601707734875998527552503423166296953418860536481787369485690633141898266544877361429859803479859466279571072882942306752705677210507211632926760184128519170923622327899338938395046604356907510272169204257534276604167683564551243890619707445363040664512406059791527083264338635532168461226718346754542829852319581034439263873480669322294858243674126694884725319266536179297329492488033782549423931629369451384174375482868166636801935793878633696732893992900044107918093570226499779468019032097207202344827473591466812057366814976366812765219901368626178463890100656297812898585686886883424077634874133670009032852978565845526809252632902521392175833866916454546959510326418084378491918301514067177386622720272840708371774039560515826322168520943362626517679179332519606371105939625779558140711825437389402775137087883730893805482295736456856119380058513698995542044174173916425394827938455128687080529644668761640209725548410240301061238351293962527976703717270098977649797599684702192928716932310918254161914327844952346458556322376219139783644263648629571529412054600068363919900716903268569061335247939699318561128956964442682269064916430478399367113240367179595349339812015542732184581528231550684192001798476945628010783934363859070478193021101869041055131906286965894503306131808520404609149411246483775475082670441009771852526836632983299348104588756665952207933022964454728694037792408315699408942713518089217820033841461914125366858679228907243955827238051292104840706955140075688442068231055525246050559758987526505817271536660515353133628569972915632655914856680800968319067263736229718566634256593602874224175668182707301839979911828459797404072411842870916332462657843438254493528614920180878505375964581013985596080332728569255490941712253992565799717063524985071884575939008483075555043834826547289262998920683151622298600056267736811204785713171511254798439826715786884192051325266648059601057006405345811234715091240352568566052115295943907716627885475866763658165294899035267991596142224915892948391383212510954445324169202872012680161286039316423620790574255744209016752098044421201799558305122416243714962254713105642806821352336309025490226913409239339767593516649772181757264316939972973893429855624439756929703917244708025488700486781323892859823865718557887763425732932934431161111307100670749792092372057994777949997259436156734306587755792865481486099560969567705828876074810632721228123371462998326716238899341613031629910144974989589471400962597175061571195200235454447669824199357542086413270468515191651423154967414981121888697664171407373797764706677866115422670898924911339683685112770909000191724628988030650251422875337908650147936212544157880249764184681846984902397939599100447585606318303197732687763077265424874456720917371429063541375443358771535524937446553549789795637007496719083863703805092142497817722642047139553457411788031088074373028238786296210234880869210368568276018513840128341991482617517952830833642891121316449798209305700867640443682934751832393684879388704359896311322538285080670742676666089733717854690620492059660702134707355929928931740914671593234715898209165000817850783795445255154912641719572385126074286878588091723610684341449831137603137532396612875884343523670310628142540065740752525428506517631802440556134775440230641136699755520659713511151165730722489849871147946692617565060147299889253906485481801333547600591995221734060709559424023090185123950738530685926449278808352434569124400118407379344098227674232883843570896705367693869803320790980976353920487795378199098956413386584340058336941404896571510182850469702108828183095222348019927818565875868136290668323917574142427245883014696815613272751618433211839651724492609474029261190599870504277941388559787896724516371223038979958736478094375640180528268599019413840438034746800543236550501602925295438581181496692072895134958595477528923976646460344626400254936123019927882980684233459550879199798030432117155816545018668605639615530090379738153279854143387120210171079547564762606323958140569140650851634322851744948179694605418899077330341717445174557633138068947045017609433074919692444717878816518594132189134211472305232963503832409821982493153768339282448291546809220893494094664754657304823494102249931024734044784717865451255200361849875293574620057150741829925965862054183402598938385919356784670813866987341548862168548993668598719982339451078670283433732146749224971993621487890809471644844532182002893463832222955602986790133083059293549984510693722616604536246765131890732657412472298633926323722749526480661634961291229947871127917964200899188120112876667984776641421451427232417741484949376619029911492343435899785168184937638940478132669674825705611085362683381168424327650547822416813347688261645557800376019961713815030423243263409896482102716387719630571584104903103259855213979493638692242565117543207637327552028988052241785600284601197562329088576471576973507055915804367087485032568861717847145258940623263058666119747738775690237972247042739624482887099553481194743698796287668203635762256360698796974992803228424902902374871912454133991443423482020812517548142566863487690650617677323877482956572455865247249665879717383862798149704525628837191805058847719808911609878314532468138310951845867452865830439913376248235510270920110951893099582279173016093557471811067658109331741481799626724011976203091725992067265284006571522620335136017151883953808953214336162443516858466386370824444844255923462277498653658468174698326198366130969367666027335025486229218388846031148216420089703824404899094912609210130334802655001385027079985768270547749786615182484287807844312302701101506349382354166408609656377887297969322221264722140907846984170164550928225722775520873413760772954092963221854804451041345133839628572033230538569537861847636656857736240541080094437181902232575498258711385615016644123224718523945375593610270085248321728380481038444556012036878059756079743883415766430747843710146507925122214388041614350190156999424623870520931845882005975663372945413807552552831103190121559429796021361907130604238758080920237216770922358225617721684947555489754181313450341502900660977435990252778868946389741394289567277834127668394953643081202035530285067804349859081119428621043122391528133395235110205971371165036758434735420757848830428792046062791048763563294255337171252171305509851180854328528069354553991070023380157175143501295416631747083177120794051645324306379488387387248559680327711875569075206909393609605693113061537857401786487589654439409123406066504697350869054855625860753214035747782509485176942131496358352422562023891434476114898279178689250036878337932390595737125127835099572330668773560767058329932385664033476307557177768356863981734086439313280428295976567343173775258471338331827620581361882819002845667528042765739146517809399798706541538424111609591681215112989015677654897523244811293583505382074982869506753942032831721015461256968404894310362469745949024512594627555637500067405705950518564916643480081470984478559238537251591284829623558298692298953792291207737395244853742128506180277028283295179483751610069003378287377752221003490263779058910109491372253115297554034783658694378332762311919445193765313262202618549771568405106144381239363192182501521792873127252436993830063266881595517978965010208398096174669916545337711716042100601984451632556177019978890251731477522784124736178661488358544951816295133818516822569619739774082950190595850639569241116587746660485898250781346251564292517131020249684378919018739353625279470211167524663222048417602118576677670701840724174161503733074077754884205858700210660399077825671006251953419334989321881676903237494492773218397611279150968807042218314919179144241225312719568676395036337545307003295029926444739175257001406533125721855163732466633491126619222979679460225398762987703080216848219033235511364991354261996711276379928608758687119944478420496354328421786139043281304259483781049208122686860575881507589464520973876910967016830978803454656287944428899228214222882664324178558827625916340223368380858038862363327130427325844121887631939036473752559680875486535079082637461363299559769786413227909899070991816338744652924436976807637144691531570201704573802244077435657522510511803915154826860957276315942861583064118117183767395790124350398881372229430650990916715227996493368354208741733358157904341886293826725159952897243365516722742517408710360359961818125669866485046977046660529614234480510167275910459649680181967569556659443835481859453425735609156453419202901362434606978949867963730472823638622399324562358732267875891546104308417565242976883394774737329600008565351579339721708745043620237882459604901621233103462058312770718504919497694227592652823536929418515541463654898359188400784970142269281255905081088223834472968723474803012210976732445605049182391149643398109542813425371240695902098850157229247244908050434482757401710524442885657374065128916294493465592169056995074956613382627797888688514488536369001939306985783717812688131370045325806373630120011252671066675006616551632878785606853592842938671513350209345798248140361004142248977582039183169583883018139247373304429935354903739621751381413468111294707359622762510273865546707247404978243071717309527571502663298163749518619852748354655137382629670536062878915858151064255152229700630390294570789069913801431106479999930030633282965113623286100182036269294186618040895382470800574370641206707662973290661927228065236858880555772533184270226737297169533837256845513301046052323710086440888837722598383445119256000850122094053885012373088461971686965985424902422703968470751566643023064771647304791687248650694509446831107079333059194059751745708825663612551701846608009639016897402726786638685150702539094829004504658673120339900997970464949516610506902932457280201706844554532356590290125700567733663940769303590858337641190131670162089984979271403781208129625183481056055746401894035513617811372058511353246916226651530379707285879411777089023752459864622514579547510922259883916783293670527255003705329159597846834201403032210240536033978082467471209942064440552571500424220622601678855170770877823344223309664352587078464857101443705570954319143946133434329794549395882647476694825559945439484628745296653565329752691083815831078278020829989193500153231264178133146747174945203377257410822889348180222550612643759115999098750046375506944019724993912678916115814166145418811690554458287851942657089363203026677327774771994489410451725375752055346692404212800939008717670149843464672122782158007768063087408217400296984220808008931461061923135326575867525358216383628090887044126119591099321522829117988844229168174089602036118989434227607428928303388099625200054191922450660130791473261409313877403964935810746363528144656966207411030298613664765188159605892035708487842967410150903954335317745169865588510935712817773867273136046177475552865594397466631510377177805930077807988077171548145995707187137342239842458376259461019429851965636092272189048475996791436002555063602507002995277348964098718409687803161341590686435588996307262788462925668517283456176420298156759551761940324162460729236433538677605035716292718865587228482269159137562342772046393381191518733756947745819526808367088722976398370551354107834276910553662217581597977071493971310453473361476328312790411697785484937115253748909976340082634723369876135319205463842775708326037382305209478043952320861022123912146476602968409378728062036958249762907385931173799336040358610088422607775056677078330082984118090410893675751672489865093412028154653500453417739724653544067270753179532663033032794842544396793471566698914683487724531724236306601904046265151057473773363482277191772232341732559946856779164517179708780577532983802457683700894883670438940533688071063068943151333280234019386649205053882768733740684196996326289887493036449574600763917830557666750081363110353900020795087270387463677187307852504180322097335434320270383536784092252062531226160845647451889329672510372374264349475204371725456716066933145552606067593215345545932003684373990118007731466340415415417576847745271681582470324464128777069480473222115499462368140178449249715922071156897765042518812762667417870325756298952495184618819462353061092986106416255245168749322715123403330318295021575302558645806354016486403889572253475720140470484927229239359921459629161594066534967714883111391616542755913057640669090996529746955644391204157550896372185486283810938724833040735512693127440976295496196781202330501594012983134120163692135472512042574657420929207950364718721259604086656945613756179080271772959129665031133020107815809306454527072328757366072037995338523120893819308083905050332852158663612648249467214186722202123205455843258230642015129305811562181328587025144731214955761847963815843160546420804526495319999281389537831846363219277763896304574716803851196215045318582569064212218286966242613492125561935844813265619997740739819551585364483394347069822422000865701668312897026314510981731973613334850340445244870381647309100011080275403950787353187333832156876618235584801060333143604199564919720764175206348795121931480530683739795406833438321000216155497933777404932559179694068746909659552025198111041001603270720308619214542370585108528693638774394382419980682742443146738384946021449135453546844332202591848416937923026926801063139402168782102944026403431097421719816282809191687323217884705313188592417690547129781198062423825777153271470523327271327040987472149824464362450649636361528628837813013874926752238787294802118088359873956950492879430187612624129460065084265502851959061014635112572834536945191330177877191778314255385114061400367669482795895883501519356030365717009684981019848120139898100211383559180149623476806999837981187400541755920579803250861531976140944802373210065239153380824687423101397909048645987157044993027975189331782183837628887037961411800634149192114011924629656617564258062338073486242481279508660834255653206561904520510560562612932214384518199744823200844992256301744319440148719259243097134810028135554554434657194699592379461395667188252178014108805901494654185378120756223297542727453777325318610173274886733487323094017598244096722125131825670091158318605419491308784279519799212277230472562397268998292392856551404243167908308084552489809316598012633674048124148725525603002904306038883358649369913978590831896752737843291228294387317878860868446021687351848790492989107193764205129463886790609633044342280002883099036689611441068051389072344498313977364383368300232548919539297060749230897577627672759491261858036335966853103294035533880482298444379160036252449594206225072510692880079777059838575550394693620461748162384437822550343284870347285619711391807918546918190963747507426197129473796257364907246434733119068650800284765604664577265388442932590037564064967835144622152583901464325253527015448986707053267816281484422100112151239580072072101657942611742815439807266170522774346511393618552347457040794232845637261250191903454793914648477483596234128570202694591405557332086805138362184209237024566122390755211903302426656362691250194741628574268474048940394419846889422623527610056287052215319341962336052728859336345433377194053303079863502802837078009169386358640129371016307369410025944887991188601444271526028753117260725025526190310657985942063575639631776949542102350999892103752175876082440879493586836311429264304537092025506876857874286504529309439063379338429119249155289189500905063864552015022789624614952335426921576511132768349760890337635486939539944541738063335632587324047606784122937749375314871692514314973209416764697792948186846433411132191416965853494643280901286816227766171486116491131814470626901343800975590915584231873031846651979098338632686223710559807707790732121731491499907814598823823000554184613742779120640480933026550387000140937700876973141964746685046758484327260390840118642325964014274524319615007617702550763935548669592679883096261851330117156692866268158611605900615606160698559150012144832594692754110553875924988912967582080616461796295811650253871898189842091387384285101579008142529689611467606199960072484704455978563185086162617031663286432099658710232901110558050928560293248279067421282043495827732189811932778773386370833117331843155604139378903839030158843124776478177118083994147238267226631011661676863979574772985555185845562625005650512391480551371032450774847802222412965549254235768830891174378049213732173481346103495202830322486209865101147006174960078289687637789460952994750098145366018825495371216345894715900309399814257377548185290070343921628177291201890041461258061371028307594050905342598403207943873258206748887760961243094426467891852158656456888168303344596673123323093951092495874167327789522692607344208136818923441523767552509789473413428482382563062714088124238904471029125590058325547693724041455570747477116441564758095758426940144525061366859965226183653355490148817254469338047857084021174042677596908027636464884621425597154814342131413547200780181454673949844281273542573340577455483062608465891845475336501926192228785017518703884234185334710728448476757089499978418691805948963313518361486788151476638683655746944183589100893669070472825204762503752767087359556684466449109584850539161542073837852804685754155335215470259694621106423831085549407002620951354512243851329155821303333643916031042121952042049390659868743909578108017757458407325144409505730529980209813838375451248723143717627371747357726482864404064092793264259482522298361724560141870467488823656457040436648017485164356282322541972424510685516775385720814099685347169373594125372196711193875419877011912979848196065322831050361420712792303791993248315848306011228794915254550058455286222059116271750937592387081340303703895815119604648964242601179854953718048177709915390859964241482673878375274602707058371604722225661023115116927678308819393758296655399375933513478865864004334046262989374135974436344109238016902719471993469787599229603947641871706849982902575307937461882270792870672652339728375123948037138269321849954814619930680289143209572496863710093847159147670720630630275215387852804642508914551098353404099162062169926347103002759014176837575535716102007827676742887000500032799417891398685459229499312379124468212796559744054922025866450637515908252026610104698127324589147771556228052248053239507396292514389301364477254151979925754397468741109050029324063733605982601739029743386445655541258130255423206006587030600362631715535014442815234465446521811692894772385318095237565976386959252311908338704463740558633296946562443914955398132059941318246575631189740389402815698467759336957350258182944750537999175674992477953854627568848754018916366109875853118191986488256409747476558957964600726255461971950705009054677538542244503251397120682142518593755730345184769561874979067969657513903137764562489159514918275873108517896449929242413446694199560199400181103522180175038099067849281840845133010368453032330488532232232671926912101073234252611771708804522411713814056140546105129600616877510050907277612226436594048493720358646597845048588605402412949277397633437388777519815190022495142479424136701138840140646466931232974648696611152119923314394219834649157600838098385637389565420162941660370003052263491791842772179093915837133920664236860489126042989619495883172598844094532190630624149295160644529723591189430119372238539617794284292710771815040782646691874367050978968303706768755987343839284716122224824306260005211269620157140735955215635734751690162194110760288490934411296719912088738881501359773342231771236113932533317462151030824981907212120612859327750275601949624921013241501375604616995402833666026153634508177083260413187785015305334479921836619476682441150102626709311660124758442040890753322790936023805967527738825196334310668115314200450625556913711417488921548174568930669879786356754243089360913729392464813403815614443757876700706552867033818970473224788635940146712515523455394735639215447162546784622668540484714281931084235954780571773022081567261430089590127644995168725524948678663101921000994145693672017167759048459213572733414005664221711709410683331912511055654392710615854375901514950324806701195341131842534384310812020100206666882951761522789447037744186771135991556241920133817189702534184868786724833628540327885026493046363721130673904547852469306532163619384619277933648586671820145291722890922821074646971555414270001126219049258121248165402628739311128040173371736830869800881758440779863870443975129494631058627178316034618046917434468435412903157255810446419338594800063549992525284049012475200946896749731781539291546535537632425093975068208354246463312549923932328965893457814925786334383347273922299519447452584080257431766496801473916869967688619615836652670189121383229541496804817317974757770192024642114016715331955108415617787970405451243039804142760769279266114682773156998911083619936776049393122631177291487183655674681842324895574950576480976420238738374550425099168093526983825777599550227101552708816584628008455062668300968932335706826198168478648821572862100318859357967951725607516548880534293438225008415387048472408945290691344625495463610663536359924119780784064707523524243828716104555065243823653786585150208225424841790201324959314261212930835926218692657273202647922636031136485845002882427813657796948866925076065364441568573594659726943597378440891113642222239290898424374452596028210503457143671595581076973663774357520478706040745644501652390911461571012656597022068173392256051674019032412942375179331789130525407174993408021080412145864526768401525199928115780469684730398836299413298213024255507382913921035786331899584539730544074004628388660218663122385110750965043288180816630339065200583189511393623695577553326029439213752744266585428882889470014446409194268695806788119389751855773620801223586521680391823886923989568599439193904005210538760475760504040969755145271308715886486562985684010627422220982236751469451182541386079588738719521822411246094925050955824838834706500632105635210976674139763141737804069919020611934267018091305430645838549954307511117249018142610729335299942744354593506517410448743406562177111742407261173039289318528487157763988465753436128387710436324122742990907718919355382775102081373423477489893659588347954315830076913315514166126180354989568319203136399156086330409184720065945634371777178236646057785146768233171079401649417057141366401326083385062710871359514684012196717020522266810758519517451913408742155920554436490753120385896341191207977183008048060438987129170065525572257371697281561666588247659089930809120332077232761409532772861472485375748120041979311241358699608733954602539404393766794066003027400552012170979011784946250522175928113717830941104604420973947337086055766021947881862495824615952003709837796449974943186884764462614640577722418447071157997218844469623700035516715284300859899672251379965277238811179525737188535109775386070695435509618941819592765527700847138431067529245030039424156655571225177752212538258686475625027986039627311050890820459732269293812702953202644527200539190849375816735508433248510897224055370540846364287730258199392375925699532063466185927287122303541502722930789342984253699622865749830704261598534471497618491592576919464116643621254794421771362055516558367075086430829813432108681348865941747957935861033272388690884876119559297756955529987482012407038893007240431211133737915243251192825219986408782814055951143607660994936844276569671337948140183238972135168525911266819263369097328836420924015931625531951234167943577544859757442627125006464812984963338854715355347460468619649221447618737292607386170926223890516947394118305295692845442127132750836725303690558971094999703330497334402924684190650129836744043192109354034387504262084541233297013964604750612349321436016646530865606649339297972742371610907991722551381830880563888458782823050191869178228179758109417353903293455777473181747687890288256466537058811003293891274085293275466590867183849187511086843765431511667206719714305355462441082996755654720108014984827251093070755581181383910458335079234625212890228439099537976044934506568542118704108315518835284931874827833910518521194828723577738747221423659013009276140918475934402813140214195614258805342016551543890866220153511480439213387387882229556840378085152620423354725152197587076276002653965272540871893544588999350010620381774765907245459824928930524812301927931881510655055237534082755605087485449636713690558388235928336619298772026834935426595406068878223532801833395407469008704585960088831524035662838571257521631272931089255103422817615276577841798690454534269287157528372322022328397022581843776121713055046872897276245835379920060649933045290547816970675726251360578833118470733988413054926835231430762163039898156387210235527292958248459677934277013513593254084982016151610812937477239675143913522604020057534799441807759445901311287512679348570872321443538786162280647621625444858887446512309240955096723872260097439622110598784883610229934174878789162991104811171992977919811845996663481590563419961231903810555149635034462268255879502693098846726198809014826111602654912340729284170397051891162270287138925814552126424721698614856311252795065155356379462512306357479595546860882501835122430796349856984988426710180556365423565399410518356797460878647855115031627831811003314792662539916021068224839806426468933979283669345269135380859076791491116299472689006394147046710049807511606588959145552860939086369214248476511842963909621463122746596430145200249187175354578333341668162873057122707546465876020425252387654328676622240628435177803468114851170412025141690040103516752260376690186949487582865958625042277558717690640071359483915419449406115706956555724472466226447671718594037327048251235420499221268724206639519077108926088754293455117522291423270089739858254089239277506683415857184960884930199623505478486899683595370232182757645435852118046240125189346159028675150374757271981197199140174003667265296944746397966862195173822781636316591515988019491076572462755014799655624362065451340215713268871275699079479008901444160192274287043953372579478139480283665502455144606407026932651914193246380525477633587022740706186783091643399166687758420419709883120908506811297027169374100004667559153494107865580190935692209613385122643039958810664627028605141138162338812498120990097589043848733071027391404899417073874514358566240110422387688439333400986531823577635136080167159286685619059267564260718668581718415764621993477535640906857089227364046739666138324183821522361377806232577573774376131315783180697251525980813211495706317257989681350422084153685516376519278449786160518968042982324657690958576851242309342461784061679185953368916513469509699640676882856991928615874528131933332262852336157455474896883708829389809813920102837534139261362557349231031721789427388342017898190927149753165930359967413364273221948154936556963162510462176671197692210009251867866811484421710977563210862210060745166685269377399157196680397278288118921333953461455453271246141463145020615120527085590901573166529114506583331042471862355362006285187024664103792660580265052652814842145105130694775903701648551481958340328024201341205447131936052921788356158136527784548776778438281795186813802378721531489366736183522908821938896650175545587673149337331885674543690002965618050846909937798147114129997645894132729787665904505944640189070541332523364868727019288418211941851061033981688097786915428440603727117343279964982611503086072553036033262927932222335858866781608049820540509629335126256729584362338913578424947751311556865001754398331232844010177216551076241530999799669437359612614135959614470394498963076578020688605967942085010021231579724576872719195757803059413999188419958002101137209303654331948465419505955322742589123775617048360314670459297688717074488398263323603279821106539111910887183896397103854865845887018468462417625539195376879958882268489172302227275272764786176780790857313009009259672199521878623592641904985110428481994483749745788802510123723954370893778190481295042588676992661381403221705391755998086991405858804419865970798602951790811829837887463794092119558616614690555025852926503235942366553342928837568008198115549051708159159971527294061896073506798768090180979321592645221373689553695417297297990482324334931787672052413062308382167155018811766864627129503082027502855832445267170058878434351425878266190005475800290784329935533054303127504824920675537173517458014003357691078832410696821671680969003227679693153606450309775998174067703296497250365368938946103397181366975198710709583306243717797034931723331251847125597453602975483603402119245514059389154726238956575797745119798005149643660211171535821496759001199510637123261518060164331975453012857059744088076810986198832386157619949436573034590337460483636226522703876153171232274837527695466712459449997757149914838536839291778177705312186158498761312624846936170281708698387885035916783602403902048056992464047769645608905666043700457351962749037776911342584768396031898548012784246598869000043139460350969415670696834964136104422730394880551233362520433185276582145967452660466467380942045777222636713580539014307123668370072473604776242561018675204322684333675467208355903396640483840709238237880214432160089157299807535487857295811600256983452785957697724208955384971715798886346342100606699004441765222191353044623571118144038011275346124745724193425512082373755520827784134574115677821847713184544901872326162891682570350889990776292731222077105163525700654110889136978510583323005788429248798702386892520275402148826192518467759147337596380573214236435595369421279381713185526167370936419727011106519016617766494930302353650710148197905906352174204548319496644487777455277981341798119720849394615154296377302431261729155701225565266243874849938889802602704344644361574500946611283288952813019268310442032930136495955450208221544621075038742162763582658334941558653640557773822151795348236101987138056383454906697759303110226637391574929256875730195200087527154534420779254806706077372742212854085315416191302321922691151706728196937656598878256606077634168243307768428760475112354300776181853328174149865710887110590167433376411193932052274891139511109704155201393885583899189900187545676024776239010476971615972225436847020421108096046136849575230738643427060795207471004065683669746132815343462898674806929371922790934764774402685732359505211581292940552303162523291920480035656872500755007924338393867969772549613198204508486271401805116396468037615866644714833931845387013922301051350597731282275668712553625773310005528081229285918276391801377387437101250907938587828756457441693421251099446566212016231504777480185531805193169961072739484684911176274084651494895062969377886422577991697964393925246830015792761408235367658675966919927282964695434445808774683849807021778674479548600826156972663792680370114262120331716772607830059703982501907415309906681144113403253414225784488178746166889333968374728419985581572683703753827628606917909162177599079426253606138306458594765340196155901278884103688035815286155501474847853512162395711279757665807799090828632702238785435497472194988566608352179383661934358748120725574376182403522148799767630834743007304287136997658887512676198777490633242335351552943623760493022653574221854455951359567305434403430085880665486767527166964874294411640303651169673960597677840787710647862256735518368851268968863101075567573983806621445883772147117995786265830914171107765107082030111045084756716371623488462576593940900014367962746279059679123461873875895240019358341282137704532190765646179394637155271081590174854492241888001837908429609759758899371701433128227516077118408173501842335984006321747093505758996721409720245659012370293382753421664036589256054707374354880075765997396019664839915192203136523371233404150946496312103447764036613255173013749307956591962470264677856342244362016638647221579711790887603900065503791711975098577057258766152128094289716581448479843544574462257484871294718731178101445270815674010102043263310331089139551682637910581307261911938758642355501519494064993428532452426443679967045729430631241574859438785206840488503807286330047513069700823760278933367328308891345048941331729902243845653587453081035267294536117796155796982725382387156021924414578486876558197773885968000707068858342841236060076987178443225910289306736227370030036625791353420212711112894718996534460870305138865644837301180765746424693836164550046228372374012749263658611830324513649067051067624979079551615083768025328766917356320547889925168571570351715595478882393546731748591924158958555553249279020716095055428045870075107474141669711428028746398457303611716821534404129928596721732672258980961802210277824455919544400982056673134897630434639853718176083604185446029996829916215389975604163861841424724545881299686659612166600183142626143900833288212342609105231157084557339276252886138725262369785061558186741096540565563692587573943933985279858735308542916822129246999643499536730168494738096467930799093265994121372758100503912397550473343842074472182206891737204738039996914977973655610119120238048999134892890904087616649833783397047733800905701420924476506067601715908164297139276238675615265096363088039373382852226900454228290179059329836527362586172626231767731158728389217834851463466852762512928229079579986079819935589142070880765142155103783278951493627406250289014393194362368316637376652016340795039069478156356714125575738197061826016512430535277735653119580195627235969740828948033068341153792143937325826090367505438726246809933461769575907867372306440989159244028569415302936222288699562353538250147621424439656433890559438750718922340774067298912795597177902812869512404934752828689978116950174330050901720461618478900332881310179963677042232267925347472045173287803209852566835824606323910301074368358991879104362428196211649146854797422296614713930916754561084274271559954805961044711034402770587876428240229916920524659489664057623703501940489576539587051509936077514730167144798152032027331416233997102526360391902046103720044089844181528856540404060707482291710633738290472252195298106087416491978703249095481011982724999959299527233590785926653718467932395777968150755340535424849308891639988336258859544446016126423789738788243697247260218706834877888883743217473104921397884675501068706302937224450633082935416553667748048548630405131406120206059517728382146768235809796604251675591511117722721889324845651597225547071764815976313346129746910574695606228704091181294195865890906821382009569012471679963941618604802453180985486617095278301378518109458828423282850521280510270724946409902429019694153310789402385233564735077979975518771985980921142030983103796782692009851784186787743423985909934433973663266060203083578426252388225751236157698582323599263587593972673710009706020214843096657005365873127369961643400195475443315011321708879156493768318771340883983078020246005381687181134594984496334362268503936304669804147436466557438535138892876243053297335737798252067682702236006291746844895418651287428460132427279525424525552150650267218468436951915834366063392448100194189297996560717122901378009337313037314192568830212116135077528932034270263197143969922187297849854834940589578383554745188569277644772210427833440378232379438859783528997819836357305701612784016879860927651427933969802417972015950928705622610449252518757428315882570930834713610662260810807385834390958525254695395949857720721583183085938384065968979652342733873618594775236216613450673948116005090288480246079879788056054445672573342562123239147583324031192927321138649487155822677515636671208820149029735152739003649429943246524382876630208557465251051090127040492782134298620606566431327210120923592120558308924110239156879633473496830496000297027105869701255732329638681702730570691559713464531759029906701948013988829852704778877247174598181749295327554928672000008159552369471925000515738354532443737837596019110572403545944680039283545353021557358823505358172599950441958302660368992120359495853676379458896587095517561334680265982217313930211115302035767245589956757201034837466888062449531816080676434923248498956566339286811846545255832333965611767395425804965626185758935974403356646312846779127614267155697320200638026722204274886303426120611063004795422560090472798599331736726560102105431801045929288466186630775218418452549668086932871867741504499033525797406572442087722085785898022126978885766582268947192851635179962225232579384628249072645260640070669913059563109194260965437425132096777166344509209906273044720420677389321448427371486709281304770504772336580075423432313617175912334089554528870158822548078581032860488622367561819810618296222761202655400624078978580669275674943721879979545177571335248560911860412551374759130536587012119820644074728009682741188313353449423358770531582792496930137747934674978096279332489219636354376993548916718528355157374164624576685560690242909835042618698227974524072728290077528961640376254697541949049482207782630104961475227051738827307339151462380199492128626813077530836050442077928283870457801754149343140687988987210024252845454277069285010524280527565600418921027609644402052777855618280093131095908747211138485317986159888318894956313298368620268367873080324944381636622205129547935609187473267247726810436126237060344002795054301008744028431200262841378468907513719203047680536566034759803051260501831759974278248163819806390008580653088282324569266039146749522072335629823360574663680642996356966860726553215180534030488681180369364970663891099249064090760704490211825272795858333005667838886952338898379950130292285993156873298021215997798292376209403955050247884154386213977363811354227797916190962700501861155723754482186118851261298175963530544125783523015127459582817759042706368163062793721633717917591508333087843911761066600545352337308645033187948941989082585247842724080752674741724324636945291539723520473849391024630603759809544520819260263566668497057746019741204603776623992939144591591087808400663663901061570873361233547621657603301161702843125251316125528487151312599639691594827015181327799702940150753415086687739862687253601513198310245986339254448923851966834895159299859690566785080495465102155352859541242874018759711798309369149557497791411809368375414586130001114997304857465821854888837897459581638817009802336809548053769067620979976848285770906536234385649151521295281409407554352369875322111890654906232875985943472548256721093386447092326211040171467503990839290940122276493017028758203775105529049012038378679528706832098498908321336817732919634621526307393035336925228862589789767674509649441545442794904858033980494771821505521423881646967639306219187650292485591729707586563544535013366385720564469741741225632225767036898424190057931604632723227412989861206355330968224706237236501702316926032758278927016523582188298867945593031140762602154726381250325600780615426798734057154005535180012503696552344143635168256636097973130691580666502171813866548609005931916965696996648665419624037574753303920623291671627783474911770615538474731230142134324103597763209890719072412222483157184501863663326085563641283666607256526678696796324993606280715692101365694360525076783572936344702594785612294274574796687504398829698443733376473383635248059369251870739101951030875200507102663292550553942088171935151439565627034968395965450149508126525433536909178067484509491242944940340678347581160998414992050075822918307267957959009417751018901116602952345130309415013185861659420560380121648086859174625863992881988105873776074283836815803958838417202151856847628016630323611241996025729851874071270789129587715503083893135857493253894547474298569328718234058827475901538459077314039397339293265760222112408124185264274859979258204994774859436775673294443026452843808691636261367184399541403374834513552126879107565843421272379276710026823454161073364150478996251741970009531718868670867041958345551114471291105972213602192043111712141954508879351224602961432811323347369076516377745521260173048174655486912267825075797972714475466280595819890910982929357301291535799966117084847509670087612858601946856064886469233854524681680184085256190712097424019698566840977575048208340653900178062991678633450990633029819813945275013818260479367328544103315578622537748079343617826601374405606919883110844177703451249715230711884697265886627342448098226815890939441412693086827503644466726394900922736557182061820134632333917175075791962952038738163525335316395830937926999482232743087516765310621623468956095531990536596755099043327966655071535672452504315570332904848874827274344416714197531468443684676641946250636548451738056108270447859210911042806120908604141129490403882010531960227457930828762306614349692439416635198999467194151358484687994365651362345466917486553797601075782008263607097315499322262471656846161309317238229603641792615911552996186595323931830158251343122176643394733100260511132230243545451066627288859949864470169069623078703501529477917751295733259807876427113673560942062682443057733183259731177174768335894052353732179754890162210038746205412537425370492223762334870689471662098067575755667041659641461022063040322905069031726348403600442219385358872589362233371732681568008220059780977834370010996280706569819054944090965439742714611617763893433435197440556187566116500441749174633124715078993348980078648948800199157440170800877190487429242118696077339335029323981071985784726807096566532257361470760022203779797532498699529370083591176246759501925334504535510432719976950462883548016638990793686378955628309454737524857649462392625623647621386191401102157283574712529006323430303166334413313921676308424921638132641868244606316383638502808144158335016880074325308195020127555233668065599255015388207297798925571705628707731096759548645948226363609168577792567145221012408762841211478328879503072972614383450219637598434441517522233289472197024095450280479339641073298963712023509991100441522057909140943647548434601495756081990729296983540389261987369251315956459078359610448509009678146804115564904651912798001702246143482155231177165102158862456731052864328764841506200337953940444880732299427490318628250411488411996889355212493649495034634679119964708508822671453112540858422496737260615006600390174730083050186851020851602488388598371596430090383554226075490483180143888621574059201266887052776382472561809314282188992182667686417123011623670037166719471515228985565805812448175007398381058190758377395274584925532825773159778872608521423516680538516994591053496724487187328321747606826007090964060097702375397799744860622492226986465108227568036771184859148391548277660002031569454966835950885902815309971313866013899812585549937663481581500914522392259581411972915410231648944122614836695551090375755311262783631153514956520468071979308592927990482726139016460488950149196313444760306592405134164965764235739677939148052069283132861939487315643919142184763130437122748647801084469466203097503954955740823773671046909155194485153594544068548795400347094155040834029648710118306654905567017350303162000796453723275142775550913070441765010383115913534770829639763761836041567951646532070541621375145140651568962434400920678910786805830619650573220094747900786925381584425039805438982534225129086042375606466843253700869804983597709798227831708123068806305620262669327279585487484372451696651260078829343822316635431904840707956025060646808105836218982663164747149616840893917375824487860905920878227873673091239392554961825533851163048662137576137769311441498632880113130026996879147562744635135887458855978184896700538860832340806670530165179666615502414471835257023129535543100928488370645597233738524270547815796641918820459826156728092580322969790261921482217972349793215255963665267665623153588198091344615670520715088390290006698014094054060270328929630506426599819435015298128197930562393180917667772506487708295907838653746436900913508937639293922877039564589357136308572844896755225139097574821901413837652007680039453341171609468072068156336458524228893316285237003919514196474483258772738979822771770737458920711015974633408939682198376540515980305556000733033961745825792808303907425980363624606024106805018478803517912404978356053454185250736044543518484215472673430444977865198405927064967991537904563320774029884053535679607630618740011782018712863467431359822123449604179602576405211019294149081722183094486541141788738555028485369390619969308106457353708345246196559743846681006920837891072463339674392666008149186891277308559267717351863145124206576467010558322460147235735563345224831099286132641152676439043787906371910511104607927725991422256640973578326894437826186956077064357376402509075797961826266599745576550221311705510249816584606711422838302661733838084952914276227839325605357017392357425799259263749388223132345112199968792522312735534294482047700063970211646550027042573687835459878662081845045915246228368434096825562083951468975371717408319110457191040760927481553355011142975411637714557001920798437405193618386774508914661038388039340662012891303582765820539534577716145862739302625062111181627071848640894620157636760058381706532215605484193556862265055185044709339023102655550904280749358855795161168775430454296105843112240945788683132883512278351386910758688574960454947505589957384669552309320234594405044798729484799707431538942381200695557406952966316983235402861658765590296219504015216170655436345024886295462160714530315470433786121676834687824531281403791346041489970420273073148241967021064893282210054395584451598894097838784102056935128537005245393571705135194101720103020901176423443282975916846031548266346607149856329502670218224277297485772794668441363440611632913393488333280943264912538622415509361188936293846395355607766880775443136253305265662203332700374489800189228272109082652993476562716958603933198571672382531410482128520608061349357159018220464943877197769080737228282261191681420939648964042876510778447273580217558714337995230021629500355652305905941258917298600742892868017188212142429061563741266143261849105370264027984764481811105149022210799588509918984057376500418827073739983116875466198112051178032312543477226013405387432773686343578619904003511135632916127121292805668546614185164901582100250134082390395330110063050217196868961345494199226363899637744061027458536295906813592501238597075787226938165401718504989287788414920880055410303006408383094596686846930721936639430094972795593309677509862402817845607365205417694101534528335887510348570636175681599312243210669259866152567554860977001439384675672892954686877242874752665536333959071988236003460202178296612032640686188504668112299321525482182432627415603791918506219236006255281799663710892803373359037617179755803935809220238595372419302304573436227678202547753070596380938175324914421452933391547212334864065921969503368357470742640542630487683900601358902376159272888337915202121900215577859067104399606248790622766709417718852339662821921512355475597698437746801478804739575212448684872357954922506244412212853886366364405676119054580474683808624842272552730804650782532433194805873559915254682850462458855484881820115460313246917202404690795970212902022169528812189884681563977383892594674406638317947231175002826655237952423313911748968633681809835949348059750859400001305578060717772935550727413163938765228253312111703628932245818455585535389184837298454215766581518501972822364964178631818609952517063686942009439348827460773087345073450420946919056928099379682091436072385616253787501507206494642143840684753113057832964088312415474580701891799349849184926054364312530230529012270236621503434353615134092455750230271581368612734663033167007657559127362778848373149840975746832510201372734225630073991628381345491833142931395344186539190848790759866210354272879869556544190903797422023284506232802285681021120550751552501929689273606549807004100601089318290836800827283517048241116744796484070817983812201201620784845330625255718450134389016369991512964558299408384845983639028044445042693332255079858021770911322743373326936611095018631105034930126041207553059378071325303042158608436991880505420732558495937604313107079587473758486359976971267697100420460485701674799282754814419526143893731612997815545758909809670544520679507331246047436365551438038704116619594175797652662180935829247612661446946559605381043016430213589475206089998465335843097703856962761578283696283163334453958644547502295116509446041653722116390069055572312578334194719216848010006106552248181060242774273566547886940756668408063210227955327611581532687917408137540094133958709961605092474633355688707059666797781454235950757024282282632514759936401766237686872834432499775913159746616039098567096619167806993323581119256153549867584424737031472037097185416872805629095346052624479961367738567420457476598186373163759003447293847023847079719564425765236772732649669050551144320059148226770007800062610541647982966705645585218109788185202538515936516279559131541545831302367837145295729243220324888956184911030467477953200002761281500817155564581309662357496611024226256860717722375807083554749894347748991469542881232274050196121659790316946031746937523124504034050939552168652591965923752380070006298859486981247539412409784280230304581926776602839779513451801476021590081483193204995887356814109513157711252449413651543480207542719881472224238482101582452913402551838042987246976684075925506170548770041561632390277320357806135908981386743850269291530872617549188263969302579138989391500778531761494586938885571019932883583087520653082734010788756166151497363850777439343840572520040881959899977143735770508812458810641505020735091309615553371889625160801287153338298160943233185315055901906763476149008198474583249989617492081163500440519552071603584441586737685275264733137639173617515822768038331532569626239476790882224578309762370820704666361687872004395392504621101304651209407917660389378883284923365991539666675222045955095333932800346125522691055544056062859104180046162515463572603435059349065437283821778482528965907857591336399042941234888715467532178804803113206304908307932626348444756785883943615181336574379312814479015582155463051264144694904677624347413798412974900561783101698238668001405128924687925554244478957442852053617768817149289844163750247532363669359859298014652132682832209843552407667546295954434289934538737048595435464584877519887664285914114309751649665846698403593916862307171214098447214497728428185456387823830421304081504636633758770913014780506938851017316812315776174229660935526779682333207779578139684517610799077536792205398335151573440690040250067061390103761132009932113555180601452223245957758131839640374261452964297340508880793344088102084091921838512562727444918098989128009898546389954229027372337023094476009094432434976894397886306263574399841094212007663114545983410391077633770250469747298261671691199542103869098302338106372175620057558903331227028994138668845146889374553528333108808010616756811489833592416014858043866069711181002678162944396079195577680833624655713989667321118828221035824254536358889277663636679673181625034918771342392738356116468570954409604962037162691023102896927272737709878469001416026676781645248759241166570848844225210620341699047057463176996350736027347065087726883213314412529364983572842934052768439540999434789451307097479855478493519602725728339544490746979247914309714162354184837602060029560576515669781642011141089340358471221990861691069712964258583701904991736407347092984127114199121360719554239859738784644230043882345427269463608699834051350740399989685064402160537068072236878919807241227116496968292303124484096233621126587803726614740691290411224389814395656786679992446981646854920240995788576969566695172343292181978924096324580794293474356264063427498967195008686253717314579118087144250668375866528049220314350347158513304711744904465001800457602328028748114547085864834233324480260129691992032583405254340678559734511230445550049192772922142961778681849367763032805165290183089749736730747940902010957641967110618488061449039388607348451302082671556638217947515851468814545998604710380992274677999965076755210189789918849760497091255998745757923866997067835941443990004276955805732291121878153673443990494265412912627530338058207554881005846828120367805114361663844800955689240741761345157492155867282356208864029263350022484339333707457921416355179556220043785522421347463152305950015725102155620488473063629462771238695256824839598534837952191628540724978263246672701497567607847078403087779153185902637708533489295499223122668591603256787313098570493714797212173516515134104695874769186549078817086987403786384986673914882967550386781984816477776207576422560512279630799278149165661359588694910785183689295243387221133104718005434680389366801249874780351200650746849553791000357892386651314278627020366099710868876588640539845374194183360609228595140045591187941614193951157495091378199547456579223646745988637369185762354485327907180942642772546917374569930969516005255674330969956200881255433616868467035431179006938458682263798866664680303521384085202620204060999760334284989534083232235563092310451432537545911667120255178953385025537307717738525293921330424372784868356325274140371016425539648994822314960506345385387782306271113916838541763447922107045091883864550766446784038103651124865513998026108800704591407230211856675376086690597766177796946847715739214739047580243768178563361214832858715720049703058190078720945390651218128171529672665187521181033103967115112070500274571339588013075736019149085954059877479786799126681961690898372179615068220226747279555532805926419481115714465084326662551549241157634072939921242300031482362450004002231931565371320756018974463869597024975615040606718868095410207037578593365445775015362753399108629140514673616057068378709477435302067948293484159399750248587912765378939646478417298859094986942706379695068518916822215222856919613901363368566587509982819606368442037343379244954835838445582617159059735103604131820027170989533035271971699619558185227442941273215280563879095539934637261189169702041544019745983485764564634401148926997641072020031403326190645387995473933490601096894497259308387587904441690433525745011564316959394466587029690467445106511065064878461944791025904819729643727337542224758371965735301956801713151801541051143199838468419825203369960042325621475200241332524397535629986953820783897203280313730687692358495536191641326153024955957168962650540516892388637998383674266078006810413660656375283248771676429923970393351369374196833749587622191197003568382690869590566496956796684001123589102065755761677665070637590865819223543772849361974437292281626353250210926270808276637278579682604716965733899774077493670960251036770125154936451046515307281870680833364391320128178123019545458221921789725197409546181858689970668051139850761517488427297457796057663382431686671158238593833154396056313028684049931013431741951771373203794409719432975662171802220523789074101623600049708520235733580124380716321511055153232882235417868148892976743152585055224340217806588945838061294300691434571055122757931103868921586046531903557992271237193894239746773620898820905654887886455551421873783619774955337895216442748392118693590110068976875637853057260938266542365713319151158971703780038971347057390559142878101094438508523516097291957397521682681028954563331223322397539587288691607311374351595076198479247250712523316384767127029054088413085676809598507905763901204193785406234978727558369649234637085022027719116672790438007324360876309189706238132049473376970065220086946952072974645767325412244572767641658073541528324349487357748007597908920047134173890921640719322136633318319772629795223208479727268598104645158133112936402619216343536621864429601995195366500335457819629790364828475395287273566709241193911745221072979632330167011442608486233462590978139273064781480476493488795143877245016072664116957474713761440683569680815466711019699918348710512119960234100105525003169504330048173821037740137636402412391590708686534493628275910635642141464549416782976829513373923626329373229292584116074758963356762308360713596703359206952910820051588962607573498670959258285892694914277212443701575391671736330446192572673334596378635690992871401815549996226241238953724893787824054447300469928288552100078465057810994361887624930861706535717568434526750340329889514961071514243741169066988635516263838585974645406650732772207348264057141774970967876291235853484499110168059523667445825654543012323083213580418130876918798417709563130476711244248229028229442811074682307704743678739133645038733163736350650336833583486513790646169768439973617380238039251235250598289468720278900163485719007758506991926660120640811058443094011488722311139882631978374670210209637291930641465639231218484703180700925999096374147842174271445244688163708818602466732507670947718950415337034489634282545396494005705737585498982566540160310708421547441776589220469185111535519965474683837091439487494490282151061520320201731776661968230392113402187520368414478050916182666116258071159335526315247588335201686165642981205297669134299641661396115419089421562890529692591759636700954271962553554979068031344991401825938711786602371738774996877818001439937636987815909980824169632895522439634688331754321621964608056338171743081803615518205439132849865208268953108693454867194472197368635292656270389082651040292188378685205103841302194189710282352530867223852609661400336146854117902011513671866936782282224523379915151907264359238871362695434466837899572341261774472110956928059535016426878974806886812218030989907052829826126300805776200129908180425395326108582881157005862657078067568005956821020625340960108574172841216099474293526402123876982750306647828895863462635106192603765196310945424956670726494008055625838631521334887285592272779531715531056827100080706897563434136668874419302395392696721758340080077272191265077286378534084354627608649392466785994245049777225851035176217146596343232708295181008171034511551056518107548126023908116946179167979842679944550573070869366576729374427282681671928697478452068679163688287216147314940341181803080749069321498435547103639763840171918591746608414696783023212471045342874748628862231774863837917265701568453166953965055198204569122101201476798464201367935615194376612898061314166473026977916890712873983761587741121037482858996589943081295822932144098846480222929717583972078539426311671875030522879179819990529294428087898174594777395332468509679065335490577220018802542682218823767662017861085730165383578973430454262317441956411066935734446746849132840360137756609323250239393635597289748811162460066568123333594585764392091050599452553864313130447735398610655254077152136606494362881936369622491761537439514627320923871743374937365059167633542251515227005301796346562052014432333799556548018759345298750560210238000048635855263035898790859545508057193622180858987129040932159232339646313394135341887554272143386447111574983537235469121724566497886076954820769904648424514090164282685416351656829728093058939971421593474184502025193625530435760741623748232628782426819879017091310149304244195862158290702656170855493687352348719738185936987039612527293489267719860313244465085566993897318095662201241488783339222585729741297606165921127136771275687686286414931658445372680967005141702118682725920390802410418808066228766653279930741649586680080648931945004739157330199301428555260010547400867273699409031499563875632006954601416127466894295273093220550375576136738168974060717984799445302272060057474336105745870574590432440820545328443214034920072790048473476326662595299221647388996700055684722653115956573470126893934325972916792106457949650060051895963038802436360131903570212537759170998502150717557848396639012041693073535607764231198216443267961883023089236939512153701427887584950656749993567695173822094364798655523736222028592792310870995629444203867659822856411232678085702480799823476088144246866720177562066025781628011130605134824264176466597030558604999797059891646517253456400137911043871130439039526869858564109803174841566552256176039827532744062214090821827078544133562114627492229022395301429565340848455204456987688066141142842098453388646323965429310443028492310552114244754637432091696413926130222262881843515397153012736458399471647725615264396401938003231718748732900553599634064266759545604922393098231944342362609673837163645931625802122506161600491362438395660985655827549887307988041456331282743695752214802335781281303742375872453939139252188519131620965363925814534762124688486728389719283818579579677462699496627871647737370173193102275324032038110728487309779800967259094514908281553548856132594819354766430930304637133688410142996006920700361903371850074180582488045861500392602699904955978702342080515152125247285796096547754920984565578250296755451432561694805644782360638699524300357159555140745776200044765912601179894589299650791631827902065940811476977255701641059596013362983606650111491718729348811772705653462528250726778809977025629651217139551025381413015302943687116100010175305682887590408739748017188688007847140775662272740883631024253180359609000983740179649185106388911084042984774701430635310262888222271962435574334463711544895177988986911411750419829734814817586727837285503705134163296117560996863537061806459980309446940714898143935631871493272336644343530380315452476401108914268886101628882548190368013177708456963983785755073603610642900980759666469560055524131612326768354404569542855315622272715781546412724173141638318541898548477737604807948314122716757083781781484118534791784322194153361292097978652482988272984430254496025500870656266922551234663048645341252532876452357027775480980943085258371575410179025825157373710247503195151588385103343090035544483720827809125854370310046782720800479157546052915929203059178409573324152722336856936668388623945201167666683238628915958909266604121236435502925967524710105672300121364899089346674691073426459425627042608915085009509143441450645056569017178921505067377437846143486861084025829772871693615781644380176591274863809096898885695882678801580367085863845018507819233528182612009428295466958218037412268932908860370291722864705755671453601145925315045696618204433957950341453446365271728479851653333217916185000904386702590043284272769471297179645360189960780188943692412881555117117323048898082481598162694826952725500753989802831915531967112144044708692992737852693051353784061110339264047372778237784817227717146524501390362045482326608694165584599321750840038887550365398370385572147104349804469760977788642740376956099909788297530027517229054057419052010208136998037427136394164270755507720230413480774820130870077819498624764326832338097831554311444592999380714839492479429970746443539433311619044341817399955243870561137348837072287535244462661622325142043184577713295446613421983290810191645615482089567970148287098848332199466310153996066796525889940201424186416302355584543170954964511229839644394151738871480386829531795096616450245096818622516750715713949364487306776286268589157238964601815591439212573117256478146652057201324769152875936584557821494858407666580021554696461655533191458070725951974307328371524451996735668145553480910036279107785421373148217450156574927893958596547474182636775018586343383265261612307097993587842783139714320457923091128599394166384602604391495059660072698095790632890472221653498281097327875868090367859303441331141649654615250861660797781117524139002406089131757606716440851191830638923179485042933817528903242971851393472480497714695203723459508336052795448196714113883496663995022309643106244321435328403042198344254077512279497589064558011024672675125526866416233982127538641151074106425230940528814940296666393367068395545254913510035954499186094186800986728277349633475711632464272070827388408398509941596275849628880986009005810188596613018146731659472956415105916898539957621229047370157842881439913525892558340643946242802870644773337562577129524412632188940348518349758110295563686724876728526848138030143695241671383899136210319234441520212779590473763716700141567266870890969652169813786077612371139417305287281226595721691167602457853838955890461291063033832131554726634822325502627116226428209606782532154638965436755426888128429473156851757629717919090063918084947242358156820232881730216446691593462529952081627314640055148048907273641432471694105337738196114463747212026720089079234396745422285265626597598003546606375620038265358499115438965444082227561074786497084357551037649301383098172848499686375956570928558938871168151087920867405850097333837528014463843532016863155447305889925205288289096378880347263220039731306551769701140716534902624715611208061880967474936776683711879555403915216272253471681243880633751362631453258638234476119839393472240444123295341110576616024946496436237090365452409140000375659948382090505364790118301907438248939689493337835080636106881147179076684863646617008275972592671518317371316362963115191118216040867506506928335231697320450626603210527194341839332676272511536238300313803420717321439601368869386859248628040667678788219685158276307276722297559433497725907103768260617083523489107295175987527849235440642208268588718935211600739017146006378535170142634427649975805515447385595545140419705205180894878226432952980124649892701454734862440680983786035833970444695578695769804127066829670513261511404115218082990806067887723873860572155365590096589232575089755413287387952198045639794582906710145440124559282966295628702708806596445188527722376494674986082114098742743408474573018574873145329174911952844282178256218843114052711027456635746102968988161112550904471780699724255154043733824196338972794142053236183128046904431024579484837753056837089125607081090227771226561597751403766176477818945020759490202216390057558776988479445885866330395287265420163340750149626392671548108833823636026279574082666052685373969293369526049856162375941912939249892208768080031523184619799443469732667275411642017495496001131350722299994275477733956473233556034126385029341981536036335136701410544646427086693794510472591307203575359534629963614503657329037385682181142676828364866485215976744426807844137863108101207790402528899490296918876678944165684111836196188910367935069984830903189136680851174715737034267816574295037617175780003682483919670015352268823726493762808872080743184401916771602397634260578832229550650337854593536065148853015621873024454586055763982629246436221198779220431466904414859256374828996247498665119418019984113331099249931918764711525446297893235050043427997985457238504716462180131908416474284838978326922108087757383998827162129065562869196244702772282386824738622832299146986553936980016609981740060609312856718328887583518622193592505754005411024714589518026774068460072647557758712309977456507225951697835353632372726945305115337473614566246180142436679543141980770705193785990705663550298342519788333159900817834937561939233632325807393483879249197310066163623148647023476633525936619077302536180196490975114493400106142235835285530094750458923806397707287884186252199568709652418791422159878742747982963235512276793724219259603200360434278444030612477275754075570590739363884542701842547206842588310092089684629728632804937742029499180122745589147250751910191733042200907658377473073319774212611340504898708637155846931810491785223889238777184173324718454963617937638046862072435525532039868443089214195443663978786184881116081390249770914515252468648674108248821176594448093324110887338131504064939423150910241719053623659108765216448991244928616047949123256793320488341686462874782521652947366977772660693834367125972545376425963463937031814334022805800499747007870041936381279167372046124608046799388376775920189650088474479794623814763608314353396504908263220787865294454534880254288108031672757064819382333241827834281721826194325114744469490076521719138933728633975691910884990658252103410712299192219448659777707517717499378516698126309079230007098586211048730893021089735812434954603605479798804815549391964118037929413405576052725237685306253488963056578030372633487952430376665405996272911137010289570301787420256617683382644715174890447072611981117017392042947568792304821791144199787606886064301086702811974070704710910444761002098909622890074591584491182222230947995755335442521511263470744467003527126262787809181733599865944477656066661952888282364492747260761009778739563738920699116334702703223571109196614814900483599303986854547649767243224704665679374558343083106840816918273619618063740284191699244219615209898222297520446439883225942765607411064392990845202700019045405088325325137189840350166827749464172277381006989382523206973481219065844223550303746723592715449102132018964474958323236655024279783394177786086729959439614727639892305663570869495692313669815725773455507707898398898020790804578898054282979231888650013268373296450619686494922978316805969820299508530388355089972097396128024668762668346638176809856726879074954251266897013672607246994893790661243767594798755877932827878280035239059675376104604489317103650536383354209229380916208760809041216929253578715812777178646264084563047138788810010236203077106950087734541708006784690269053836349986144170438805790803251388534276678217267925274137695815825136549695149545673481837285782440243056491571054157726149762277190308923223783983729337802136361767659458365888480568698110801074722343857061018615401825948415322296603858604733872946620969836378154461801997351332047804559909233758558738980470940596789683588432123248105650232162850713513710304154376806893851248971096402860303005956559705298473468538282569579779076990352453124669504432881003502153852492498229010465748077939224806300428823243326847425329476157129552496933359416879961541479231113834191669106482802104211908665510150609122516070680515763114193821037114121136532240354555637603837117266764807193571093995381950773554522856963245877663824985553747509329017731250489850850163572528766479232605771567413428420726406069779457187299341526160100937696492561185700799949916287069748192328489468814603978281189119516870873096571795416157427747606393588965511450608081646565158810978642413933988357160769999956491500336896597359770627406460237271201740863199837476341469726517666188645633108381045277909706705049062722544521379582803769359019712232606785393668068288355682769175848369680770097704297420214170061447277317520924810902545157409152146518946597820470860383245779262744187831925859497685858902080521696969910995876342820690823613738258646991925898926420736955162401842434161149079372672838074329780391982111666850646727468161409637766573475720023297436169443568497826794655570669380857709310662364718833295807197979609528262996735550419235638459181948735355963844759502337333990039069139148740958513679253908799241786237202177685966322622984450448379377875103699912116263444498561048977709061806286289006315282975897609536482417261670005167819583738799270079769802205224512740168461974380459237423388895426451855349588473781745906330126082366075548008017566086241224938993490818760894644562443158403337770397697962719103119778316457199882753947957641251352152489183150700373962462122411842112396098777215251469836644581520931875932493314422830061295415993866755040642212334035803007302636041323113277573334104895441669264914461735279516440244979729041298415183998105929543384680462762717776317054870291841456197977388628942927583032122333832538684657350000997333963856365895304079003380922043440890758010266092849520785891704719382614460500940784670562087131110677858660281543791548601286243298457390913188931201988186113000879420640507262689030104524103510370317832616930604756607174916532012944146690958137659090191628807344118797198075316739380570971701673488692316805718161967782032453681244090233097038164944091122199449442066607591883221882271986620686470106977439041405267128349500907793144406454778182984012063328249172948200717502161879156600719697551400669445322401073106199429207827265587587226777578711104310890522874456815633819588320824279935910602900287251712023453761769914777387678917318324204396289670451026411664103670589944211717129513889237198080972571085285664997579166613631700315306683454779112530090310625062881350825342237851470379987352192321692954602424339198316810428852874930799626366384187870195632077237529117979510668454482954960500715220900300071764960249504551502757658629551616514542997926564563835155456577196854061740576336429846768581462215558601483134582186522731884586881955526535453103683301446670136217975897635529236137687010890390039215491385739051544261082223949409195320578914301473876770681505737640219656343703019237382596877924022575718165710767054973392737872899139178812571323341335813932726539106835606129827433802708526418993599335015185432919360450825024109888867836761205350110575349571521994924436086478885186698972636719065613447329905161773572839495908843216275456900698762455348112930778812795796033310772180805213339146464542939838243419474401599445625021295090226156974292490275803560730478536705716251615698290363499854709195183169753995158999217197800106594810620535757296419862662999840657821299657825580356105106491662811834428005921830504713116116504091920437688772610214290447606244983930479677343740247077100155182063332916240316544022480180485826605928870339068257376980668634847764635181688432841055712998760276444073188222352386851047781942401010743979445615793082871239944198376803979045081458408962263989425929404455921082683421113806545727003299391649293895461694147333278780486523240796435929876085004309199025388267197597476437712652110558325056006505350425371168809017960201282484676288972374888842849998424907828236700617827663101324451565889905566396292227559998695109695748469123054859635511256440897481264759996202045925830793496024685282799614738277442569892241623802501550434808559962190397453248037497991026192897346789999448155820577369264194385559983046514323975255452004055270893995594695071820836688136426518572620446106264558524930341536556811563872621957329980304786298787672475819137359467454772045346379937916597527216830215964917493391668168794977545925345406052773668026053221011000890820964315648210926115199063580221828523461855782051493644691000371412230240504920212293426783613982396231952249775595453383875014884567892609141307684289532580607101334809346670939443174826049792911351727895737386353383059260858760913472654485605429147756874195808469047547176098952956346924405669615661824097607618141923613835855541681611469063665903610122645868830624750335752831906766642891724370408205400133374447042791401925523744456359562983305631123645646665237741918962662824108268789855603154544409513084338868536492724174135998820387210274487478788988163932918884850669118910937732674039799934545180412936040102085534207806960393073413109720288181772297110400097384331074866124865723249312925373738692321762226774128865154001817955744467934489273981301426476909148205189282461087408108388861123242518770099142153560002017410005961045712045469305440138810809242232170630385602108269673182005942755358099581759143339240486920780945963850909158701033782730251096728276500728703116326319709018428963397299675025419577322152866190443837269356585663698150455046686927960236481082197252633543544121170866799114289591543633565236770284176335831240638319148295246304167682843437018762198053501303341409225513895952781085665984766670536303175125235290023485285304317338623288449930736031104627178900920933880165968171363283585096565757705357761668163527618997134078508626880903361271080537553784473526331100809900370516100851712751929542711970303202311719857500594850283975185697147523546661539892864106043893437814205471877519843592749226929285127805645325246023699997710950415618819018227382291914394090719788782034839664585271806566914609571297388201419476327267672987314723151383440444498427059296335637716046292466932712480541615838803212260663369315408991295449052820389555575445613388734940793658172037299793082549757787478360859618276374451621350786979330109739940753659826218145964749846847227032681854273643936245619670536300821716616771695578722574253832928588553875671131343231566256282774613011897303524600604900344205744137924577181381014290188518306394578403945253624246973920484867643380181990050155745646313051204702084295659999875369323947772124311859308553932073807758421597631760884454647536598501165253047720432977193477139965158872269364233199410582814078095492489191409780241012277101114584609918388000122143795204796075183826692942173866652521562451146914306595933181184736786854310354823934039299980923310838639753898676458527108831123540262777816807211236018431750326132417445219151932710146771591122657152631441836934386400214251334218033351199293292201634884629920239176857955111889196929977401049591450495520045012347178377055272805374576913620704905956150336880786967347360296835043673473476413251926637185623611575539191389611504730017537338875879323323362574626390321226198078131117745470367294782063631489666088420320081256593552541272641566207005697774185917757512477631577716130561896590101797708539616951650357921857940117480432143397592135308907594119373580745661826177869509677268943954104149118408075333073174315900563697331944984742039775743586022974956918443023711662244828246369391570647995430846030600212371760644836324006922740025868348321618428368182310850545133061624496265927740641897297615255531772592218806672761591587815222862003429733242725509373638516785297918228781842946313863850083996831986971249359048547503323906526623291250632929174225885642469215588633247039850534456874922747174499876750981109690205918121154150132291686335601424537249301261845667360490525676422289948739020190744313004791930444394616736743941063029202440403322075763844629649318651812405546980844606606212589377815269880905336623270894861675202342644766716679937723403863733983623095146363053049036928037492449785583529491501008811601441089342462232071439574963631852340768549721717084785284342268927766511616977268617049825496818760475547524923381726183722332171853059355605067165665579792614264391804977742143016252385957496907117201579425996477497531564733257062628533219510415280505153283709502377702613545534543965856251491209378213027068795972272524437403813827017427694579125183104305032057233140883899651185402524639595074841912762966269031381918952238126229125783735475347092962581736240498959511383854342628722124811959109473106246663404568714863655263902467755584333309960171942029628994054907564621962740225573736397177287368426264959173601395745918921537516154273612981981885228382740337282282705907859098252810699072190121076543629137455344160163654884297404943960317350094242255649217387239546534303890670522695960906997716346614561036463096723094772657579160974884528812517563526887848962177363895127723874553231116007092502058668399195163602708285928821838188782254481822418218407387719670771775970045046469656126059695348781517115698771845057271977275813980490576532270115799625460585819433985025958780386791381487328764852139978418981939829286365358113399933283565310941179738081921957944632802690601865398568319915306584080335028375801877518013456699612190007190348739028288854792487963107412759513642695271400819920696999442682875558043330710048065917310302375669913420760453932035478776034474151871941151012766107066992697092272318094930271779248710593650824817639132042258340653367619275953678286606266951476674909661389440225851899464339486188215942728542859444541597561782843907604790930665397564744774412753769838679336598165327940573403091387106112389580119865762518211035334296319675289016904524190552203053532323346387389913063882300323849899091807896280304987993356021760160627756024209070917011675133169824108218640825664103808051986907035377726539754008111897323455379180493794348821523514106507145894654199027628475139679945919044734499237082005384968726796598873492873294588162447957444918577704847791277326704572160532824773962986409424968880989857015071976050815560589256619480471482396089413520058049605080404639901300047008985831204061013404779992576278413789249641712688463674259835568450170113546439969721220443269149688071680163879787217870807999800860950655108816372427269284119029670393762338797138798317552530450505043211363736068939031199959041725071274439004732504055095742069477596764272222445087084313159951985292956414394159187257225299752415691315477269857000565624545688438853067523001594346731016270697622771986388022475260053900082990320764188810485195099300074390833918483147089768339424358396640256846973481508267527900636381190433862112070472910443332819132367791491533105534855809186738643486255788002129247043357313982062001885582706489167742629999713328513651946700041390895861507356130949066639306489281854201594751387231027085814575654441312521082316328359340489994264672824710785291106620714467177555499094009748467925906196947018140334002100607560535471068524227359752760327050188051658340613370693896877380335097563056469342319815838424456848798224743798911721966660303278165247298863201421027574018546658071598771604564900367889941796344520756187352436201323223071238271671390886985253953520545370549640307297365991849725593829632708104271559569951217957852591165762769393486110791833769803568159878086141187147462903782967780870449954257898432517843393814263796141460481417130640013563516446007320635603527838497221024943713683734689531419754114531886541246597951555347565028325864904414250524889191775349199677503935042602689082627553296790665312135368898710779016509137695386635183128081936344820439522403782279312868719754798800995912032970380595055840139876521377725939855272931595618760472671240330255069832136405485782075620973099118976034236929622527111027016151290311730188088895625392234902548819754940174107355065656372291044020621910458735797602973173572292429488738598610415311621136872261087464105264109091906716836760778964044225731430463952190436449652344705198817290139607816230801764004330506494087634532560913426630752552116164887509794337814943610769163053962619836267711485574609455666690052123683815478790024074653549575784877862436941444141829605124609580630546385759524813370826815046960284023710303658193766660433197126692815543545023806114762205780225325677074356907030668351500394128543117799072305179173443562345386846926117949383493269800067142036398825027590638683354937603119458583519517929572193809788196220152682334128491055831798525954695009106865947953355501565396448929746636970093417674276340726643704229723391337341527610971355337590921807173781716195528156995238759314472833366470590935750652990707579773577220274852296855024385848137473237904709353496458034761450122031125197821578819222259070969571018214983191231689558394233301169833226372642735449702280569247418320479983261094012823278580067391984914935292634365604902009749727356324138079714595879676566547271194035519755069185581244848166977851459981278396790896952213240893122159043661027181187041686768552347058241396800179339244020554277762443610978500142387335761904395629829714294321579526327833440447555162748953008959999887793943335254960734557925314520354293754920309727719282704807791769455249070845451787286338623965318748806996256097722225531239321266709791815558946956861685682257981461895718667090537373293281297799815457466283934897239295341571943353169239287277434929987405438293837765292009117990707254169992418306801628438559407031490222340056320277418382273847777650191986582237916311301915829763201008765676605782702803717903578758220244882836628669303662381765150573422752258745734691717166186060534130521637877326852485409503079698740752687584223627525697474708994483363174374902791676229132184376338783964043321180100259174599886789779906340155689952185277703737448079205998775253830864109696852630469263425132021106132554038609988953561583540108080504826165960893379012084884838232002329411217234693564439477858919135416119166648645725148525787226223824018213227017718301547763914863162295344417531863081842984552413271834424142159153797312619869797425919032426998573909564786573183146637286095283053278165704275036800790990066207502954740631823104246048442917805788412584484896110820092081203013140384753924166877220004826414873307192877764328085718762538035921608156175863268497862177966810130386301368165258087990422954968073286674813266972583754486081053548450288849530064893850044675068744072997165070428895917514650588330017267813997110034476828228995693398059282951877411142662675358292097888423444699016095525919115043170020480359918755319936525293328406727880338342524804281498717889775585172842312843658044268918415109020093124303987176091665334444965891937557778653331799602859552252235241554428476926561588777121383270064107162827225457884965001609898431562845283150652906533622410116999565126990468288689880100134218615739213338646469659553479473914908671716970398524601556010464122015892002879638513047302976289153835746266363197490997492896958434313472272751868190524922676483369112809476745865538798569614569294901250894594398176166884679686773216161594270631754522140531793068538813386717409267241039972248801054477355353803845874283663306885216215913037322245048432756499307240422412785715396295818519525927573507380766869132878071194454836081118680793846822220519911602376713633353667514298214332701808354642621114387570324753889335657503066477783259421089973726056218218156474558218325910594712019306371103089899863908937014786338265331562729931595723910448166991633204240822596813963693297371489468100111464904665348403517050458273443288200750085190303830020685763404410370035589672099434803444097145851265937689038976644640571185294351521809736439143112256931610904348910252263029237700667565364209949810378686922081395523913581273540284385998474112295182224252032284172856970210876472397043329446089128349078040165380742175655589784051720487142900385236377440534107670882088866370575001013730430495863038280296327460328782056835780690965822689453403073039484647118583156443836682821180415406501433684086871402143261927881295229433767199368751296609538925663180945183813431311924911071469859963673035192904437712167927600050502737152078250856763275382386014044513602001975236672235976686667189948929737458159520177571184429365451685895870336775058052942060885797235960250365313606296786940329509244352046178965557771104767385924553569126252550526758937893244568041212662881167839090644930278100636265323343659767340327843959511856260742349867212033077915418086602814099202193464179704303673384199419241079305719621669202078242878879556585310902541964653350328231297254345910492173325564157699721043381871961814099415324295350894979122228173744405360142043712347237270199976965637138769266250453318270948993937501377644654252183270458967737486436269513571903094069262780145279231956669616820741422464498590292328633773036062455689305818073915774329558847695454375786866227166124181397130768202388847506527875354732594365600234210557274984932492391912996276478054009448518875719587798824559505841840627847869331680753231167532228224775014191396643727722914101273263936813843580589965793646504484739422157173746609766412163950404549531792061220111669132907040271801481407079856052230806974220281507070728389827431274704287951672030052952554295829274276444020131092401196302760392694090222183055747311455418183100641898441996128825258915533561015617586254441645749090018191957843357845231690124415721693471560576348239946470434429846484353017276696172905889267597879202287703916969552203735710914619080528665218264734055456707832535493091520521942698970099253188638842084089172017206807274608914275805620488422656331621361873108885572922807173667899464634186515547936589154382708190651581495044789699209452383902555671108998271608897563048116323892072926225532889659439733638409763351452375155019159309476285304244032770017172980865208083286247065621365732860732664450656596046927389938928542885346678875402097340161273137991006509549103335458371882816773961253572600278572463885721656696464730205498340870746231671206405028825310565511234147096377220486371205316878660123299273256171122888443677390803934290458604050838894553556021726135327487776233595750003245051149444106926525188332285035842075924984804827264978894552684208047349978089449280770872970921315237475630618587834838768757660082709811393094036162942233962731820310005204345217241486549953255054621334391369794730835996522931569821344874405176620514575365579289439217636548718884681152273020558425730197901224077259090596682103459319540874320874504303353045933319225935735910170559599598513228301002095806983934194018131416241078244101335467678309560920403684813493221828147589866984268187134698502029083783066533944664349409309176913772314496176197864579294116070487295626222416233133286814096678856412704625080722894833599559351742815067857194345744230791390906165051712821039126976006934497461411704934097525523915263701235752394287466605353552548211678123647936881966228806245580190536836067564144574989518243800451539910998836237224872789512357549589333768400665042897462361810309556278731673263382109130454411485197382425429363166159232718786352732052319153510914920021398364153795670500264151270149228911417479701171353687954809103865902189771403685410069099149669127713274460982941386998229227389971173040612794275276143403577985934404608124288330464130235925055730748626250148225639939184823496321367492262744579264805695670082098720454607392421364729986547615679309464846102755200629149193809135982694431207174831948948180367957109752582828587545619694125238920620192307436844461204214131673217391659693234006861155769057064992998908176762662012385306228943116343094479138577509435376741067123798373376748836734865260520903376272712816936783272217471647912929611267577569735295858783152424685737009685868424335983861138240796319700276498135466055595534112278585155203794227223411632710964430959921786625155922744091179680384591302261660066073487917292275242900960961156713331020713293746819568518568565097160553596864249496818901522212553261825501918732296688071542850825407293629699819614570991087971029019008336235992523975339358254845834406924873022498203111103181454308943015486020268259289540207216691075634135930915207727012357421941714554721937377199677653606773926042305665855119894028642695631052638460202817417234553665757161851414439166456662401075092662588862827222290986010447453929071418001410124694432230032281324267558012467745925607591145114096594631118073082824538680261266429425042334783642148547445693784393241338092352553472436580065283901785845571413789597907465545685596619659069685698581290687642248371589192990030247967091220903879629537535606121725715401268532536112584268354577665288646081777659351248016638499247050166881112752299012073983083731440513911357222248149989988339285751291416265775567623163943659061588999335472551487063332293894458917274983221219313185663242750319775176745495408935642822130593074411561476525274370775936704473530580811923382137626132922166064925861579551624546457739921045755635985757201413764159214138316004858277479162129945951826464292127849073107587225213716171567264762933938009064820855693071439195154480392476959976549236644427026562172227825024333964568106641867819878880073203640512398022678992017174732224775739012404417464721054112871954246063908876586495006794021429506611132245288308519939727020637388637127702910755270463124290239792652699605145222638278869659445017828589739923256976992817294823439498339626822772767696038926521925257053076192577849579400848724851093050767656831052368810505394097315267210104318899106842774641472319212227397462635755451146521298566314330673031812953046029473521345274238548034671956039063298133434189295216787914578378897441875211767089418314021551522767571031643221612646137588817512422589058802680357593828063626540794519942378665466074886895254472284229989326759909621097058712341206163098165682589534042184496211760909055572975210243398517959201607904171439006176373146542420173586836017978092087924316695292440242408809560855610798608948747451057459099910003051286861544359244794189787542813781535311388182242389804453076666386794525836946763639739543165985081872805928673390870720895617967414306981456184546859409241434874978714476901911654572225452491737806723862154091919841236768422456303928075949112742152686377026744662642528674184686233335718858344032166643878720317593737525157620642658179196695082083394246575009044929173305598082007611730262725593115796573983567467140540373640190328438655871923305743500586742035023151340937567061237786101698028862566231328486129283901222621745569107471205414784125306500405848762955849701834261626423085725151827945363549051257598681883180839845360502668162081701609456081113707073331856041326387247421314109608312370963346452255571150417137137129053362785480618234829034706040947728587206456661594954426548924642382571237061536087665341186931858532956948113754926287492128347894919874124793986642158704307713490113866422065201747810946688911010019907748327243895470805113755865905141086937752997574762079823106426100561051358402488177665270327940802308846683828408705939267298811765935820120637703995198967064609963855904470703925687607622183362056971541631205042547754080948655701573991999129006626474576365491162722039849085419966318739677900593529010550854887929886427051044279496512540198195375502960200732881990327696045781028714108218863179101629848450943917523183210776782296720582833738948259706571929178707549850157053780675184463542694949569468988545447237158001915349958409363417852787418221816881563688583579464697621969401387621116546356387840230740810176354856768910418143655613679530435443150316229603913250496732395272976714262340418239752415088977243196510985739796177269958794451165041010541992970118672299035491464333125340474960332108434643436310612299752626186317599947097819250105319197460867395536507964498805148967102226416311205321153628347278984422172434259277682699981933411253576383941630547136605058260091469697283887390283002502173609240831316091542801170808428012075302616907822095569385784398292186068444232831912336194883211626497558189043650201950833660920019091283851421502398958132846329228854160445379711803756605342668922588409172972116548352390183179054545461163647346734762535002797502703561900411533772735374829157584722165025855641504065317075278826129222260335548745051017002134884189690503703099003647143548308564982400561296922800147220439901402814219305115852329461397397240822966751564785268698315796058028529449526455495777984540373012958167047670963697050967756512720004540827973699449364715928490331188855020830651055917454023646376981188705782516451738349338682976580636073203881683060978114718910782799889595677402668547309859679289333320915171774586841875090866082043099551168875874591517563249373649630788981633941753853753621394224066310420000566317505401089980567320014722840069953668517462150570654246610768551341473529533339468093345265312795992837434593624908540234577468914032192203899575444951881816913864273566724263916029371175827052222748478026774313794443495377920091018402956542708887330390854198309729485428485454952983812404896259075868290982913406607632851729057923921734078438656762443717754618988080719640749601685799237588350331987594802686561633113683895141277854720350005316670517582177844854866802802244600020022805408556305793635348620604620917187606265761295066608183372597596274872804242074970351383696099295187192884316759341806128272781714629743952929668181795650980629790373754117628251719593802252341606262590820783156811679977136458418828054139114098089181371718557077634888478028781301620994255107277799710655231646325152699023420652449637036094498169878808360043718342643707394161198597834197329869914998618077217800571719612232598125203623898089962776805214869880293135210018367838766017250144670202731729922471072571924137591066600267886904287903252676291342277714312392544574896801933781856843283751743429310915231286848853016097974630972336707691242797544137634362553177255238713606770855166586015401606854699039768182337192981116738223726865051171617157786630420642987481569278691231306917788067381588492939446572507100531163578744442687096861347612917613618944994408659084404171208955199376225085422722936883881917040200213191939240101172560819475655290482371281194254014195890823539307057727254290179076921965684611554721793055507746766646331869866484646154748528844090177652514227356036651797026551989159772754233782415901562931400137094520481272741235755828074024285492893426129746811266015607102725128493443194624860824180830829282179783499847465368978136543928845435982893860986013798428990582204916422024835834312343334551874164159912338371668402377527229468805556515008657911943357859008310029413240550498674801157012902338598840631874995022156323723273994753194137286888968771479386812365566050702873090590698260781520463812968118723083538594790627168838943693389686552938074062398086318788622287572769016061518962077843401690468026175229275019489726793898797156541212847829582092425336662658593103215383757660238760819254390435429008393558548557289618524881584059638129672071001110171757205128962304392770364587297864787129905561757326707890647281706533693549094654823104852921870936913492631755177125624532109606163880481260525248970058616101578197121811122097873348674254094519533604885403142721953972742502286114511819801338080204649968855716221395789587713221996924181948302477625041381056136419511586704301138748502248522861671238981087042501644223101642286333566626900606724835243372408152623848388103085833700690375451841615297982329520765740259540240703829939160366615089993210964482735255180586232769770832714059505530330180015205041181267913993739465720594465311558179174677886730611762722751350288389729337801274744276438588814101307572912416068529081777215773441757099002907119229552583370201582541588053013357879398275402243439410090273885396974601665910576127136504114278951091514235009135885303271022888039852663145444648224992755118963036815655483765506303255065610327425167706863939624326167756728486643681561282569260637334108604455505909689065792694095576698192268702868211637017547278115094698321083056388016761918192317053294563216630896398058796650807179179859508561487924884730512772421934811016267582152448892226029880883540145360913978361226337373641013374490161889009146089142328334016781542858364517698219711389871889739336654134924688346712225729487415176900834425097044570787440901774067920016258397043385756107175519243710264831147038049310436530914006095573768726988800975438402891878500752024627059470622399853948559526499916087671448796924040732400950975965054402084616444172207145797000575133024553480633826102287522672954282022050654823461897259547218346446243442544812577836577128232156129125688781781119336044263629766264972266185014619338664502333763835154309334352163007627200914400146578514728064259885848691927068071750706199224168834543436191622947420994049633220268671179563632006465568732762853597356560384934915480424861240681914565097237034200190393415853966644989103199557566840171241852952953578783998379128412541787217944580796575336869549862748888563385996412367805057220270108536862006663990678550086638854415824964841764640960172397924740768187251108427955218940473005717868825759992218749972413441656612656332011981740728384112750001647612285938951144555513125936584810124111185244430561948047593699248199785399759915205562422008023246661280576983380745182947809993581367942724801335664148408634128081909018501469931835228103799378044149746240058928041366008588130921751262553454465700892399509780773302266344359593025225396042422888542334871919662096604822504665289484171228899147718347101289635200135934516205088558853379718747692404799007098157569352280191016816077818166869772039545207210505576407281966177714490848385972827556738023064535010713240095953673300769627592765203945735281801171298461436864469393738725536579498269800121041831805099375655781600669884128156067476642203382577055362502924729456802827831973431638227289643180286230778664397930068995480797478238871722168111252195168999022864129667569913731087377381182196430376094715246313078567819903637900599156032111458247706587523828909250921664247843407617879525226935263047465134066142107632041821088269916873021239981497423452938578767633046381299746164349280832949451760988222325783701787917708394366286110305128565948906429608391373419378403307025281021901560578692512915094311763356167732463766611522333307600596147143885142435191396394290469804309442719739679658058317338307969613088924956164353574989459472176569942366767552682330229019736827900105207365968003106706322289830327962365494219062920835239232067760047501065568396951938396165055655085223220784520192850910480470129785432383760580609316897767911189729029050461248040232548915194138292250967827336109597122661782588986839470961566556654190962950996036288739135810358907669810135446717990521573528718309458232216029911959925879713295546970567623396042884484791974295677949077126050568818962476176086675298984149239933738043715433012719062432255888668390835003574841500048310383319608411630819418081983187652799654421180631062550106916719177578754961519194856742896613132145470982027551805999885779500667791680593394649935081316824454935752171662230695757697061774209532621523938752157835237976695352517865474061061233039603299171090423104792148018111454468166178031121527469200706928949907462025716402944791901203211391493378201633932632645335111871861814962357370286961150060621736370333145889589818189171897234852165739686843427930274349579519777067623943252568057901273773263052478495064172554225991692469619626188732353835607107661801129415176314837727116680303646833243091071197749924516788602617866711235313849342173557032083749924803711129405146929245114758232145327166818887399718966002475074336893866890866901771995413807341422376050594941588945169556629457757331732893624546162570138185891278015396796134675041051515718733908098722799481677286031776464363657412020778799149746813489879409970253798261750969528370782631957679106667638341977054808619355422220211469579462679267590383044620415272379724413449208687257237947261128309617706168916009959068485654565051275358112188364827236659562074154417859238705024819859526526808852682612089631870673863728640585650059071005298537717602546950387642817151394691215935997192469428563183309551612900465375762560661719765865763852297077821213194837560714814288626623168257610845482762245235460174585490914671042718143836137540123184775133348633727383489307890241018175399534767827726490961716194609630169993865046977098882079327285440645918614416856034961118552678452495724643854663746117265030182652198882188264804527814957072843285558183837207166678365177926228009013665791862053121607607247652828690319956094756154392971900843625032344290091590156958880014093412829290551158430062504497768490526729140594468351470147507550401470776284915579356673220226379062969509021907784083142881339321749293678599705468223023460135777581027411316773556240676166201349303799484238121372611399110115909753270772749058852109040086573044134044693681164197932209142132204679934571335774037426162378516923006144055843720874376966611210972851302029503019406887031352376173432302881074526418715981730095757968630778805622399726479609380056651035583487004057641739894215379223372128488899159586506284383030836307362504403973229773876366437116105674701636461158489280060823844214440624927811396654340779713703471214100868230742939084966878796478172174941056282668383220423922674006756288281725495533587015408288751639524520107677730543138723773157166860457466345252349578651979086641043728254627678404649324393431051958024880140536573222931127520770502273049253723012842582607882046804332006728842895637309909354511323471836869186178623753420238848312861169031194470351971498568418133964817073233919675209050136103282814101456794909497829487974011701766912096950792478295736106568735335592259415393152048278706532018041215701630164096999698314164837186511191410126258223513445581617207780403102930428097461903166146345585038761679437566046616488403740254698171168549378345937118282800303251456838903227763858101611544241005644011666543960336758736058117161958264067158464663338812935086659879593707653159275693596884811706062062948481999490416540646867335137515636842554475159988364235398703154948591403047085681972394382458975904842275169100822178057575252561798200233619098992036080340605544699506608857666917081602452310706008382618263669671697623554898950321110335375092703617222600212041363112404072095631105943717100090821715729388780390501857139309605327460697202516404251559527296710493100001752698361945046356482572338967763002715303069238914142340112259464617696012566325127749067856111420004622868678591614975423961256140739067180661802420120673467617977486579879454569673544262736897892530596683478931605988194592891599678737512807722647445808415770144508377485947614073994613462804477993725812594507745474948111610818768017233111217454309871977968753649593211504769975753651703417957839011994141198885852497570562119588402437868447299616251902937052089729502781815265226665407990805339262990285195869818830753284819070047112732764303438297213456376364352632588182969809463803736489565271474140030271548405162198249550748953938404825031579692873544084199546661319596811962948999987000148767386385000473558458962060987500120795546782044310342201042324352245731493674150767806812701526072382542027478134683757645152721310181463259512509551339343647856146294110305740200809689838673885351302128001295326844601014588922081032462119844700333529703150921433979370486700494566099233693192371176354262941381699024689810163783924519454689809136437655838617579801022782939103940844654504839971968028665543369427763242619119461821824937327542030241938397840850144042614207807084584912395084859788759924529111334755837632445970819606235817157759698679597328111670769318856686290623881421247417554124674834363158662156484149377002480169563015920728476376302238813535305325093035510469160547328098352029749633218619482134172004861023445302485494697553901409453435275931341626233094805794494417331070481630518759767974390635193397412405522409373540203045652138990898120508958761544092020284885012902261273396579060554199360856460815727267830620822115078366415376867337153234669601530189567614928825599214461231615230885566165473455254665665088900096797654371526901699789183493012236467292213871690775001898672532041822927764169037071721484670783111587286015833712926788885386446907783288726477595831340942722479887324805306207980000483795924446272222014108707189081562010944053503756315479525612006817766364910565044480055390261758603352392041289032472470594844905680795745732042232327555041618918236497334790302688013611909317070992281069750927600613263543236450373051118959718109635712534375694199727964180322803820261903051273483706364045160734147852875702827841023632468027822990790368290764729531072044050745248288001564758536051796251921602482018760299937202622749920774106076460591111558665430813537312275675618783840819626141015829580861306691176230263928157350599438636108186452162362932712921824415441334811707037363135717243238456148175685388920829402384498244169416388457871974599247421729047135615263161807702280126253610550245961034842567070831557958487933658048245918537183216681235074735220979411549943098424499937387076087029206130120088433335282047123829605518226180557805450878379295372337626820606599475520372016670495663609439977381500613628932293226771027656171224624867579400947787391469751619065987301903016394193168403514813966977350604468901127111544577246800686136356933627478692804516926413653867685567943889890203824284716383103920436670227340755656606699144793186218681730875405977692730603855880275973514489501314953486214607598603673863459640797214478257498500918353191312398525773291665822616507723691260482980705118721972212899907962451353900562761401937415610189257631093997736384829179132150220035322814041235213619006994188581791360253404797724341243183953998231594632189802757245555228087468259665566734811358110333376821188484893010530149926821199348303483102057636747596108423047167508253473565151820194620696135993485278326772048700786667857236456022675420239110932826021651562864649429539397588456999181716401043106351726772219056530795698804294933677533383661908425410962164433541429774897156922070434599334169194492389989862998566134245821009979530418354486518673814863023250598859053658468734985280199690457603001158533794369897703647266655511138293535199900825777982879365057823995705016550283790385137801856585891119403440808591272612662462711851371827384854466656934907265453074173036861456470303690772641700498683987345348337150032865486304515243585353261959951115239745063846564861450143965316177353736897806124201436824774304448722508352788061194075387052655357630308719842838027502250366000848404813053122818801328184862507977261229388298318275062867353343410084374990734081696506997445784561780740332925235425962911992722176599331214203206431933970807309359968747375885222134020977058924216165396769183649007152175543355952564751108639440137495456772121987610169564645760143092615134800981397634058220654130141890152151818340765489385076715332250719126652508049764356316732650042359203968955653423455279420404197372218818667548598317785816734340484129322692261175820923311152266983717933081091234766446362001575915775214017787274248842146291196069323956746730438628465446813566882750668317110826175402927941916610398747269185686227624034896155448922604737218617016205750437616469020993450594531276793433346725361210412522585309941544599051967828138718167761947275029485719100182764879318450637555715414309145453556855836447694609428693704471467865180954313925637602639342418179248998794407419780214571511792883849634693850004119981960102831025848955528176601391072195628399491346277538004042029496676216450985613808238165351971274970344947869081160083215402125787903873782921958377138069500961542048124701247707108294608155197043649696973136893242333977318900977521074491080826470149379089943524444661641938470584221267615733197276831524523969793654809896596974465973776123999180311153740619120524380626628605224577582338459791201215390915975659756121441141344936247049142002338024431647441351766104105223625628994024257778663126147273774072066404045111275199824258601828439955313726902020025693992204209113670247120611086152430663949841146192730733382171434917481287347139451805972069029737648604124751562633506015576119624564674056969763183900216449427694387907479643053662699123543673650779446612496250632684815106617576873223520163608287956599299211483945779101829025913130685280204209180774784013400347809685412368748675158421855398693223830197518000456835522593086188282817689348981846484909727336969859633296162873042684188907704308201143136434896740130303705610627272587879250984871486055967544781111741046052910324528809701640793173248510046814553106689989475065812433406010282160035279601673070562203263389254629979002297915794692933772980997527435670706272209351843848782427315382826610110426159589709531197826226678647878507931264640069597602179768655625401014873195350728078730566607849032230357237892950858898375104528927849492683875646308048791655678289585717303579490396424033147141751392764764731521303283111386122128109937366800157985152992770170278657332305725593628059851945130089532833315251827752896316728361765774672718163999519502265945313898003017545205757373016382773079708342225069637952674822090320985278086709573682447050655756531049621664006233058830978788458315128051509356584896668424722890199681501939401297109651638338410146525242332221614423098777320030682699727981612868806928270980873411396984328665751559635520579250534837961574170665812001411497651729017493232740565183143246510646391593337572787357299285317758938241457058986513085468048335305128911095128086698104697528985248416484417338573286073101950859298402049221153943509955553182356932463426735931086869605414789116790393346892408206303101032441229464548691854025694871576177955280119550419185422478593700977070418770231134274417399132026297019881287157747691972645436557384348468324270872455372294654655651499191213450390504911827537092254063792526497481877990084741352435985981311964756321200983045372423498177977242533832014576662470090388727540472142299517759734501287370911979569015284471302468444012954411997865897842437675248261073231999611844675153906667872337867142256837849124778266154202240996836851524734082512926955282966725798065800113932611021000305331583828533053339980835966088095904428435238276890822333745370284911411590075267147751070638820898815454190587754610132709072997232958741153425241257419824335293479857353808581653142986142564886852674963385301500563629974850682969606814757578444508865570069734570303384928020437763238200240881403209606920170121021380858065571374021112552355724073621831709452447680980747176175585647077217395315693482522413096772809057291861756905450540376649142142913068292914231723728412925587273920102943608341625671216384939250796019591304702153515985904461951528651699693333681391728474333591186068705316821268283091177903043560365571797419688699468458105584807815952144796901473004207907557459561192391550299012394082204718153105071956086003403020567718162444182409382646409005597278844773431102698690374457589105410264018506441638657048770944843216600383553780587807032968703196163890606957203364988731134694861454270541622753710776798664159265575901227860691463125440545866155481659774597315250177957913209279963932299606111768387676649041332975570751649422609225122263206882769737728853589238695116796583413392841665345852145612250072372154422434456288369825620152331093237295465599166304058440734045716988923306356615396663303131868756341796764604845620129956878189224972218049810306798659281654306406366880722016559806916265512782710757257688378149983313461311640034567459493614025664041605393802902823486847399007090978311603734587996109037005421415836485557731049136913826220886230931417730619139122898305338411157419064820945257786041013068809461861467049384950152306345530190387191308636765872176139571465864729556785154647696029712759121878590638281819982078004978222610197857149388938180784194858671998441226900227637185817186186402055071203000658853048313951479004374226523424107522089562165845731573842614887332554312581701348875321079906182956618523159347909085192637698592981626557016502668235876865293329908705482698976506372055532904608978388574040382887434850734227355294483859831993772608480165512714846723834458281374784195673012668510363236379164045933118954271946262867655848603311310760067896774086784556977565435544564225209674626623314609882338575732033532451205705702857483144972778987754331361089961063976772513923310739451959143750691952295908336609554597021289226345501209483453529403206922097694083231204809717182837220752422115151753632035077771918932003408120719897225943998302688771283350400890246723984765210197512224610522865466231650382338882934306215777161807644089307684877225271862599886501358315985669261710412944929791581919029807526486598486968758711336557272724710402903666095157336952654147074698809217512762864993835604097179161753140966899585839042533359794795689752421204356934115500748394831515533766392838812779245264193583637542820590484525839682912546863963881282198568924023444924054091863690617130184365380388580110913880546708492683549174687515240147243324917866773321578587565827582169360808450711360307582606121738976838426150837780696975883870213483033120271708719241284419508548061865562732803908719127235997103630204092759114173726141478686966237789890086366114986211334346193380892494714997605072743118981600102070345005786354419287826138867538947648610447754500675828570030785777057277829907491047430901928132822067407785401324015669148202863860314439732938613113563301742334704795548530892177273281578151101495235949007578289368130435391874189910521706175629391975210331981092334264077414863334198545212723890709633702730550289739904940922678428425901669357343794687328760590114816505778328220459350256749919504818379559997346153403193419633524951755338545345115403353979813238090247686044181671880601961584156176388315143440687348121833672003096361081188868581989812450900419984887636559357642537192553084446316034660918031825099361338656462534376915614392608166602790297917874361346157392449758065512097624275019373607512378198169621235003832992582935448655704985157408551222354157487989228853339438940197755829364941524777092154828419393886573698661538085043554704921555636463276237795162357352678429789578058906502953666137495668387823955595216190472104530726245455201565346505485709505528919176168716607598336260954003882633476316203877861663521227605442283914978880689371867656796473033656645120784255037727101311454806786551701376999508511988375955590449616396569860094178584838697161546393756425654058625298714003431012499279198630562304941794140966001566267842356979124479950590893056078460235717525602989007472764156671812908749808188298907321015823117164031583758662220340457976872696259261923352537783359583340768462499497206108086056125175113894438724941210637549202266994475683056421520092008582256369447377611405146235248105155900887201182270942415456673013000192978059352967667872507876666837566319558882107666511692968588733466369730072493629542167294614132074858968832707341770684669426799725536161312965403097114097812125422980668072349762416191568127654312541160293667111159410624812335767539542926804836265622330166796093944148739609737906284551141448127006757473340424551717062976841013994650645235222862710339466794456123491336914650731325635520670721797475736832824102989005185848179304761534039153634085498816790903064675338234514664814780262058145456094486226148748381072676279850381472179563717748474553179096142159497860884118076110915507291936575944114016026042741110477852346069702635596842597700697248345943715448791923288686396536970776531845303241900483676589931306020975787793286262414045622533658084852885970625561223376504171758697170320272189104847640000821747128475621582042536889374516324004130440542302685001737699294102724727558366932094924111286684700871205189029408010536873817897712441042346957414080027978470415594409777119653667630508677616941568453510012537829900040284493075422186227703053498674620977022070550791274296998443072702736415730656846533111519469909589210368218650181627013648246872954107559665699085155764211700776072184889961182480490004930835594618327319071408273416137723127737583271873224207749886192872187404271217544594332916577509134019904677618418540464420953096760243429338288668493048787358232653234816053206762245708370720454015037342581733823517685090680808056580667847912855581755137399276946051495297138735428193253909173902387024489164803369171155394567274107272713846731647701966349192460016157274907501153817190050316759566815701825117376491690737639496578241225785530586177855883009749664836649520921499889203105369132536764184216647814107436479428428174993600222881504818053131283571055658453279222448427372470563729254591277545387102860911054052333319695786413298626783459053158348958411232613225423762149038691798983287076554760137930276881002724949833670292716609335907243963848788869420184530530804374193895588713790727920522915696620982337028971231333757323880713169815110322352819117375975770225410557814099153958151080480377066209768099196048294172491857776879603204178225140392045677887071267013636655808960686727898174379927558596905991839731969703607535155159456085654339496052256333595343557723021852841252154508848064273157347871773508499247462720826364589479723683307483077986525560761836134175144717216323250380315724112912351062721901059865793957421162347747678308956520897010697540148959886876112276975803119906467056175075491767892635902310582686334637455589478332766761582425921501258192272232675271336717813224070107372126438642519971628462838822907377202335420267580258845415637470541918422912746118357747726575286369884213446343969833538233775747551726139029485609001075902168846930497229809550653517706837801710917364562663027987120948143215657247929265998347848302605089922074566165069615080467360153978448071043919189928811200977726384056810603035508045323152064413456261784771182711978498907849386693895116667088499946738737626183742442210098916944344573821307491433005214024678886330920281865167591817000117945459370998023027198606101294999937704382893466236005205832574395447686229619437260130133227179727384550550399817978021622039584157674237875550521354211580937061730748901214317527672922750240540795976456252755303047308079238512188635451938552513850043015524629744085778680283886392405211332924352171598678454029324766235134379252108081911146612268643056254441255788074979764202908081221541478425463939487201463829858781866254734941363978596943190213117213888215207946376101173929573569092141354493445438167836159268169630131584410062712152564134158261853549301845069065729025372677312130721309514306257837272434976524584348674342092699491372330386767768801614963853823685428526409811323209068416857465518504205743722918647687919248057133437011191553282158700218567379550045296926336387743004772838369794501888488414953862079647195823700329631186198210478248743925866469424030833777627252417118915180959719509110306406331384703752678016178635637239276558754666985471447192705710050115550718033074881312749706092219812465404810291449051374456480544127993383608644664566632738333076809128115412739215488094518846196191643101239396142732015463931333923983773227933765681139065671339847723336698309078741981197642860080282877548933917785944521723982085517333296295224426244320946143981366107372008917260941387428052919308117917325133991501305531184591939144177118225985197475050852797900844513780301395114854024042768412688739633483626294719447756851483700064825203695146106437742346005433380805908850960349564951152729902474234549883010751977133653751176575586735565349409777141289820341257028937503357772819548072081912025974490422444110613008986057194968319905439746063051553984097825611969029084813456015726361650192090760268432680671532948520031161689840746626293425399770113795361740723129351149439155412405173628880730328508232047392655961619520693337105171731388940419114440641333632201681025843707799622857430190808643701975125226578844683930489403477347952249384726546632782894562144083868288354690322330246535365011115958362080562928492445804193261615374039745028896295015582701098711069809426833088093146231187345795567997307515454208393641068821674327818886146408865061110241373980833984204867037174425401921200652084266341782151781471814054204567600152808307785283481192736079225400087692371378538934650742459192667757984069464581971543325182855808104042179277540952419513836479690254009002288455559319596511678308531163964844917413857805811221973961274118076521565713922174274424851055672839346720420614743938828392081308917606914967414852781878231499851441752501024722097557054483616258427218791661385215319763847399517133150491082430095289991781719956089143665346874682673077753337940628910268408941089700936571958746073486158254685825463395270532320360558171337367633315907629261957071470278998510781877769339052413077818604594798331206893649544988990446351298991220121723153230753145140194934237056741387255468485867762504622380708715156851265009104186189014051407405509947636774546648475490029817773744004922190653488465984465605051325491191044841563865869337607160813547099589680873618889883007105819392198847108099259856547571959919223572218608235972903487389789663614881859200792342315459092504677115285110035162663073807031522516949696959741104064668032016449083878862130967990192024060773728969677752527803968475075363146689062311545209509879721832791350416729608423738561859559542540207078673355347469767549881342330801141299926281290075948710337684526172846265978266161601890892550116904001558334821088971402799015092923040897196176234623951358650729848489463673962873340867217249055174518781473291667031731803915770829670178218360696600756143916967688688952103126676356617598381863922864343193064127845774243022795701251481980336638253202775598918172461828083218747800386718313876626409582143795260194427684730895817909823966814799574289513784354775781191960048891580595886589356634322949865072589495182958877451739551474436920468640416282702492921058737789715141951921138298903143889427430906823262629508504286498555578704413756740441587213400933384558979226908099807201431060627627367908407674040254041365512965750962192110401302780294044416369978276704976964469694214659250064599490039619457653205384859753142706511061496248413820032741060796840230460244298555930438263692696948206831047563415064124680443737054765272091614548742872812910577650432188797068348940778430448885100718415578149452177375821627171895706069220150796049918561788815046182362266223676558287842497157990931394142291091437070924178722698318539246913308533360240665784838754216105223582299836916380970898566230528650771326674129657967954033603362920541454557037172298469767337222027669940709538132506771100818733178637796895229211512596520630022724626412120465951457359721207236474867055194444300592095745149300826648437174898390755287370251930664412451414044091138444007874462089244528139779125590953985734903714069291587880421149185086301577184127938080660402185439862337281940554432660038759740832192528927344263987224361348381193982302643310583527609550049081710254712731580048811291205856401712007121492530918988843264141497176141157095437189014011759208455745716855565383040658190884247299760804587341300430943964694354729355718564673862118768151379141702267007052897821513895215129514397408113212033937039859708782615287940820870907023557352867110865380190197076503245116793340303706931907083038157041018698685510010285682343708122055829656035043742220323313738567762325725895106582723662229238917466392124411567529625613147118290148812001692452212375685896153850737570375311237969363204221191953616116724555043656090823267504274254354648469204896693773241419061109078847126040099476693400948827149973573445007219651688498743054465294054969078648738650038725037498927731746800955688817531945977853987525794824341294542155867367483609109487531572605121888053611762085077388274346645753422546428924195203015638314854092985038266062482817622442088979024237600385080267919802389375194662085078449934206868064060847935623394113793759404197616716315931935890777559049151515866998586982439665236496428917448045825328555384044458879049552317279950457840380256628103710919394027939959355709296716703892283361681375421664968086803444725258847488085306195621702894431350924649410785874270163500470285658880909874350840196686174883033635938201016764128615590599790930774905820122436589185131138780900210837448685099451547523196596426896742430631395094932440422708582558055385585070549376061509887591072255882610566214896492465275142952346224729340025229400404125308685243846265874031015116165422191183308337761160528341545244145386581317565108468469260257591064117012604635551291747561369162904589936271759974402465042262008506597386771914430885616190679687291219463143608008388998488782287262210523779249592259240449053297729024018850705263900774188370450733675341048869802075256957704438844024965505620747943777232252893161438278083704052283770541490197348019643855379513307235693265541801906302522007362562036865177098208229934511169747724924719725795532855808007742438133486513365150280479850274892847000233742177473504290852916630615221124079845595095756538275955991796785024197563770420390628702828481736424934227174050945806517850041085012692343453107158348032740642150654554197568337730882204002128787195226055267113383051426920950045792158529078137886450805914675183631389667039478751836666666950442193227130090995479156801319697551563147926558125138716282405706349117092921444140058760762380848545737518752613501590551663654625547327827328283521653441995672371106881030121437220516169398582510772480901672643504748698103703976001084462970316184336668353818918392094014210422856659406014714583561118960542224584697235418564651717428711829991606127669227568187988540403291941710796951057702205679292858004674789767130900363402331041121124652047880145473618925070877963790736989362366724812391320251995743768182366387241635656924379573066370232963422777143794521920586628641957562920117021763681060149525035671161221356885918822814019094781917284906879307797132154459936868558031499061157032883548851608134986379921253354653565233609910131480528152304094800643725709277484012464561481858010340833379421227090196099462686878462054975934905190473219564502132854213848656407634866921934029677849287640304148259672964009987271175175360960930744746277347862212530814018998937706086932848977536514942947497385216090781337236188573929964566371735474541774142105500795506880578803776845421292906314482550727677372688471938299507013508687270209291167991202881396672949119688527776267625075577377674118306414707019895428341949513830530249695416310887197279156009130326237817629303451682903190849074468227719869928986676014207628569094971708191933386123598379221259607097329727758384371682167844446086331433088235142721979897608684053390833960823110894798084307611945385218243487242858960354607181943984502265897581200240498653096522550934269073546791487188140610529845953661180306782818760493722407385935320465223816102376612983015237874902543833951444346457423091798129205652677738706415064112182383240674633553203220383029590076541016286409859464682492759165190858306375087702598436869225154685540350849899570005170525564425959667026737635798349763956560739726186207930688699144402808398460167326788254587420730455181609996215194675623921668477194983366432896966597308121409805271641024927895593372851176406747683323517150042728455149282144713990634004027580318089870088369893981602375572704979611374716645180333042168339820845759819430880013455724767288185584650092470869721596406838484172263204135867929164498417728868490931789939466152138317180166958876090692460445883953741054242102764934002142401538564545165616013132232505168391522866364994999987995201728009146786652451493878763703036106355664367373385051193249071490660187231096416100611056063266318258441851619320435776766174286898201281285798140272869880790102186875978288604471290020757122099966703268660274294164484461924231947474557909279305130675621081812360002857529730865176933498686753894259837087314423273724878591055669571400367758280643465421115722302265334007456017761403653081873250200249121775713658154482383587127684095516851138579917435936244225407323151325436364840065493849291596976707904627320266368321045250719661678750098203574423965309213845753842105017681481366127718321542039372134644400334919323851626950530575281058587213931507470602193652938395384706306316679372640485916796594618913237167126122919234740155956683464231653114497475722713193304776231982476760670479271985703224370700200595704947476762870349612864696377245757440803324228140964364039532535211338238811485301771354234831444410886051517954929882677721005470803587846642191990226396635746163623079095658666246989028471594915359653228872139268234035438861511952522366177350881595796223157997320317531169885345892019394227182476871815381989287624727780713413250459813032043867349598794755847357629930359725222956097786685079639716708058588964341315509407256945752275127975827901993301993152331576097779160048403928166849224442289594655668296675055936240255004030975824893838080062349904007974670843016075970356799024309170788787069618195989731770507272367490761256098510706160087625044738657251783987605892604140074138312576891651926420065259444903836436452394908379116105504856371874898819538230142922479181430769749507339359112600758458868398819203424788777683358094991004420851264435062592921213796062119197975568711809416647916859136438585393916455577308657327589255618063595363949974792728881136546245144784994163749860657699935556012928136753800517448302313913734275489562217002661284882546230030880488226585823812435912951500353770668841842910075878174544009785154750121137034582637714082103659715749362315344780125222773111494194893117597008983629812561865940620782588012717895821918366673838703161993504831276898200818516319709063514785779313457932470803773040991474804872476601460408274553465994733737012235937597703254542595802700852662183677264512988862002172066361622192425735009136701444638599431866033505623487573452311201607403400717661708409589690442475273960316173999041068132918213000268204524113737790085545245187554351193317499414855277139536185679358604833716613205410078398023921064075478346602314921662755381823667351841478914962658503896238201333699808740071331359474259341998360379316334866399966322253866870965937666170066369560112241005747817595985497159288435661771349668522273880861575715509350632016147555052824056423598393290176473244522580334750309041967612219038170052996967358514522630547848629868973984780104868595680212206355298504131995302055678138630038333989567702449213262934454011068517886692735302071950434155790447857553983866419856626028890493941727272433570470962610721328865193360004632705606546225357498245575106815309094500438136674094288764005369104605439010898608904023238092573256666194751175856153450319651675654657069238170088584770044397984494255898021805624314730883507562469132051138965462213334621466989867655812190989256245440434196257074384377084394249681014652168737964533184272751099157676107468783231583282711410602507411817376818922425230654272044852858126814809001314639040532532520429389642924429110660465811091437548876242924290116961873376015816472780663740997113792691833600504554592742413432180153660357655916690249466839005476463170362923583734349548669305501664605869027552537540021714023995907446155613051981794340373918814060072225553648225711193989418051288392076656115996709677760768823101076553691971839918705008420057281941414679732062165866615697146363344193749852226165580305715862256043616880772181769579669903677604937724761694796894547832568295059165253264353069669428732457770851761465221320684711206666961140566593370512819336499608745421648876680171979599145928597296230719996186048089885473726852990622922274046399386885855430111815683661076934428781615175921680439354758976841703886258975455085331895679537096093818623132197029847970729746649417330011235807079441778461567643779302657983516718948647857149561930482328342403427843210452274180390089246761128093014019315647314242915487680317466253294854207462375231142573055260059633171403324582082095020894349203063377268640625102277786720288415559120804508863394740076124439253387886661831049999462153460866204805658991768279457301816099158201729010262050041573733811445988110061777676817267684423336592004784552332736899748855066471655355879517501745530581477041574292139246093663859222011967445334438403685426785245457651547600437417090097430078706181417525954315748888342017640912375496976062847281343102802931215488482042753018558158181714386359703080990346287817423672449025122414756771863568312738302394742684755938504093727970116543305456010990548127696175850222042678449792892706392050779773498010651103579836270928468688155423818895046096915912330150967854492044053224767165125632452138614746192187253925895440875255273595402511511025839884837387702875030227907700719479910302263053915415898592170862001144075251411098473224306366707347691687504781037591370837166036629210560766986053604829643893279374616687924671317649715492916494105009592198691040464959052853761603725333534717518681726169844797132423858206144985434418584712753967544549842634627978163887564600429683564981312906262633163240312572049100587815551255550109602285169168584535584671057411143250488601073382702873339658381174415237687958460414178978342722386056815263178127735246058094306166212688050527167359607142581419891004485630445834281741715014053073956443052071401732029904604445289676259001544575866912897424486788887606262294993173591751641175361936087589081312891458795291314650730790350841822837249470817127691243327260274115190726072367574389178962544079640531370067022765007173003932458113786940250431866022437943788563670502591159574522871390618625859307555152052431524665696707036185841780729845637499500335066672545638702234079562390298116189148355174414583255116402977465300375229698127222231916342420797572512108722511946870899353367610214279115532461668220243120208501967218299631531495025350252025867653367889213904209109639650775032597645128727652926001165076213575478247065698721665499025478329546336697851355587418722684889249929944477817244997219420342527926153725960411168600987873131269983768681263919324511326243673944797890728731039625463526140675281618317339806736414914766072680374174210785410271648503360182640265643901340197145391094735770420990528175761125649318570628372909772257708457055124063640924587704780270219086180323477321289703805893086983767933026323031878470031204717565453337449054045166995565422290882837430379744835485605722526415601020808903327018358521207329606525073098553792986552053340357249546290357581318750090246283367456995701728161322697456897847685324909703816378423131052003100255527919725060120772985092203694991676894933086016220383963123410746693741876989769604614273940254929013147654873186136814055216466560847527326185014278212656748412091130050652213296798407911367075247887754105370809964651082269290433123472250968976604647590472402153158671155341964673510226803892633340536896281343472186931965591847016012731274934451169020788956055373769378317375217210063243358411375823958729673305124001541345574395134372006907417372029121968803056775900491850383637667935321552530771726827199070680084907144995071429066450670965474758989541962827974792259267309959668429439256320110874720018704015687526380593008065085969287298931143700008762655264984106326435551359811800025743248585261671978337200726641066357758974905298328059539780640620562645997337016617005584338827094360925526056781610396953217123911326640372092618310925801377645613851414991544511036380977088678678722041197835029951084052405455203460325204270835847507854458054476180498612161988278272991663127832325587429646064672633774535567454594169433411276844321058961977517006173636468613167903654846614652509882737615566971889701885836350543163418399059268176356565458240692635301802196172919995276296865724360314805712937877965147768237677837222701290588982587897056785841598635407494181146986189261345217575427530161325577404871242192547351961019739883681458651110030039862356241730043718072828632271226114637483865967097410990946876192489492973720950538008769946268279185379595795192175399098065725876785800858354814490406126100249049368597218351997578999890162453877924042356607391813743334552436669100620405864194215643280181202496269951467445927871542635335164854922644617757233552661332589240313865445505025216457774523751035291833016425141989517860680396485273350224751080542555440808322603166594652010678339508707168592008181858845242264295452183195989623756852707804803083662935503074416820756878646768794319058615879817616402254805757641371059363806946849565274876037389471542966036382779100450089587033111999808019517026384530527414612007143074277109492708230267818423255544529678463630572376052827237336252088790890138311688631282615249756377352677420767293392780445424883266319479573004647136270097445071839472266379747347829305350326807948499257026071903028848187082460231251165647799363334866370282640139661908515337011949310246624331961184731273597618223231513181014346595495985063888356395850431855351401231552056761919106130027128950622407014426392298992116051112876066910738062673042061464967255536586931683550659031815241465196450333350492013702308307484383570938392632934655463024963307290717132744338429521213908779738044114070437607925956040894476081035889442936050714791701948950209631568878454020105465005359209293905690255798719745247620859429416656862311756913818566040676020208321906801227312045364742886436068653002403805385192174773826822293333477845848046719452629092365986772000186709830765566343088111305821335963285647870009760994207623324438836664060227002821006497473535871311189436901765113129038309369725596855666572609505695042908787823354834876581142490519331803540176998714955597200953895569098752803897779096247823832153251747077537065294675820558450003126669520231948347916095781787194113027801801512942176079828756046045766785055989984620990505460547145095918310676702479959228296683874736840069458336757084576121112696605138380225377876502900396889119098116755836909364946919995542135613921307694449554043090459676851339993430035902483334682741907805144388611004796144979404012945377928825089528579817213998442726098569521811366791767257391115416090729633160649445903533542481360466379917672373530835378189720234389574828669082582356235945186971884489927790612568507146455189197816678652257482472774815503087895557676177554939345715858550382479938406190898506096142274277886316495179347407584649388619437516290387165554013710701371253752450628423654659633373162659277033369056772846201444983173415245631448853724793507424911435728243684409651749776713196860458393003530299977267613051780365436927120502792749628624682692055626074989661584825376868757626932524011259709905472601080859956399685697598245771282741688130087652645844739547493032473356898864725286495389279571775834772465608638467325111948028495965363360863626900833915914219742705434991051060582029529532161441277499833211310462725500539905672944674887657593436541832151947595137960644453369557320974764284609854014104074429896374424297793744636621034058004977908277788990787604112608600224085358378879411624573669953074411350946969530581749631642219394086882318006580809077131392588564152945472837338064795024018991154821925153092049955440222467233184200268789003656622189264115514046627928504525262182246931882044396294832710334148560175656600256222429520870204391454113043398003685810299122766720222896998138538555848504695813205642777981786509952074179082027168427365823002231643382656916745140264047554277488383628851150573070848676293995432039768209257802018097282646089683946515078248695842407578835479584629570982964079283472496874070183236975974582893767436915508300818853196693698185951797072582745735803550059731054006210415526938941514322399879964828680865142832651506280313602038220641429677463766878067560378892019914243093855722057791120126591713015221295398611936709252287122191871586203955523310947829752165206855224845698784381259641161466901720653749554421955487175794734227255508662378348694055801122469121490872655743196918660450958551853780616429978939530129963392809245937948311839416326845755727047482787485971657097527238067816267215818306489988169188151528980587610021507048548971130253185238701145642312304622330807541642214237599587415292999001705766971479090597701404572904079224090806261394156969430750925470566536371502773227319997585267085166512411452249824830197172232719315583443192923103684245264582494590371238079179619385936578683052395035351756361416509132114242059428441999909379032405984157236337955627354676404863562131978377486203481448586704553950314514756856371178664538148862246994060032958145247467385657350422012713275307333265378673019717277621187723464126590520594467958911970350312177246470656108218036613290816858246539792108162478106602400104066399854470154111504665949404851967899796578379578519540546793960282929072484297835002783833829526201951788814831908721565157400846784168636194105339113030811038799370023386687831996629570099088315173320522163695654025219847997165079151276563692919633183331459612184448008459512999159064354569780975573040847739207013302608095235364837321397731411881063272992605342252199587795396875084913717992047707508922575653047708637739928169974019810773754203328858229328366746250407826730285998808332908136688036881676080171371796305082949526148879333613456727003729646007193045330460778317208609989775507312313487000027860868557119410676455942649787643370513627897867599286389563462894882263892266033859097857497245292513225481403641816781271665421620558481959720549418302968815547775559428095662705009502028196911076795642980253570620145482923943866653891970979919956408182265522422693288589559467544944410289760907850855068979501963149833932043450725276565538884608163951092601952440745095357618916673566185785149622343702256218979702114158214940077661371652035120912372071707174477088986071568335121270816577782752978469410088843486814397016817772518590560586714289375460676904975211061641947616979524400315775529012692468332888553825978736624997373485924735029853906016427974785487421787805583692748489498517123019800215656171979115802962250589106112703517807449452347787178991004325606522291464698749226346926921364552465449889593083916841086099124392246843837829283019568542557438381647145289635678184495306307269108549651085964164743566182826738707141562410478973991809266626592525500094729758282946370225967725579120183363646353449908549562343140178447338661526570463646348248279832682287356526932378511574701547821877054616909483275594523632696751828273567788855193426045376895604897899412926588857678003926582186133771163210701908192417802696811708266780293657361955815785861740561734020673631820442110561087675905621238077217745308881519118904050819633194541051265521136584072865888362353654211564341974528532925729268632774754887248675161414658210701174514920266201811744422081129655677260647200273224912589724821953479484241673418395144137150080434532199076056973246435710153399094012461409439345598861739731114151027603988947172113194330830847162065560832350712414265977824399099717500727171017636581550531580096336452317664211338241175513093228874650901092332604134052578374828405433936237769052572086183975867279682853295186183588587289500917925296593177041250297140585009708132153629881589378718048854787906911042360455018808475224323194367733026399337292975259765726408258444660313859309002447690015296033501026611306665749259242478720960454389646641473893576329980603442706351978533724492396086893919676876438099098569794840198094168936193873867406162793906165675171324472446691586575316693612823808237868590763333108981369815508998943858746938760530621259101815174864731489106866674088917102422934763468088094909065520674183336576665132972924247885081366819667681932978810483933476229233452302588684160353044747230516340159335152497991446540746447120482602754149572311665270132312421500723028754669863833105604199537137199046469025624002648367604666521811331085464893640508322744022672741597168300171825343104857176348051871013477920337324961350265224496569852397492699994189262115474382471235955411203888758333910571123499766873665624788383541767303779427941769148039439690084631786739985578208499044554729162334998219015768452424815167812719396995653646325075862393606094728894258786694518004008441826881178689473052519242416543314608618490604446195568094452890362303887935741779325206148093737177228403997121609698557928481477206216951493024032824944376869450621634998523897928128956320626486953373046698465929997478947231570580163738383492662918206811959545790072467903863928809905757639573312350781766400574869791347319945418971616105472204915017172193671830607612495215511037200296528573521998480446007725755423085690632404016141386927247500219743441591119031694689861653077140589486014098490390943758521677737885575582061632448994827608746628249595979334900288038325234739985318891316986601386748499338820193155005782068498568813147485019646847755053720183728492660666343145473262897302680015657484861687568584620499910400555768294165981071567348341866249535785642830186948502150760624184920464216243571212301461079673712022079456014021243601114985110266518068577679029673600331294998614975757325000872379014893665265314745426035569270082624632087093239204211650634686675254745340594535713974489019528911471595549877087660195935379730030011632865923164442332546481007063496037869219856418109737486610073426993504025309618006085158737145824435270666331976277561141402773854012330288252345500740777170086997511535361927134300688868828222561630011023318215120704449004840954530992004512652026264918063058114623237144903218714638415165762978201999339467061331373222904257447518189827549148006078320361312099784672073436792694957567543276220456705221140060533507628963185920022679251903624844991127132235150541412712834142086124630128583521088679526226717870477454100818184725043636390986150792399385346656515919225232652802607537559440797074217491818205849440332838449516524869648796610443974906576316821844411585047190995516897056141638873772093246654779476586278347111580000280007046479207894024451255535820773930299664609732833697850740470308897929891085276848733816704899348310706243147712766052622411359091395329915697041133410196270389384751153624452060038329669440402069076291570271453663982664543359974549707415736538129857176125906119468396080058888989357062278682159682705371675631848639070791893193114808366786296293143366169173888343988730464659001386599805937925688424434181737389270898048481472812565903787319733377692731285099626651368012625555841680433015333015400557594717045691454075546587073502573868510400491725373900583247674097193724292723882897688665821620166174685299169145469588928600704046799938560637764978376027081357327491153184873244984766272514583617516756620760370728240330306526553318577458043547147627879197594005056674405448335402766028653937712678193211090507972839543487499355588733146020925586618195093962157953690578566146632133907268462085131259379435900980080116717811620683762358210880196648537780890324266084064419749320278398769186723017935362138079013267116051668135581998305844996667421574857848655838043157148333645127669937264414204150680249201115403399733442790995063293411902721238580460329591891267542780327679507180044775271337374229964279773314363779614970788322696069748518569275441742660476629878594057336922940872794349574439378089891390396656648486926085133353459469019636740792374339225133147090277072605037033347416823692647841998086728697437205412978773050907828061708912325544413699076791126419028069222766130567848642109558850363060318013411838416912182851877161755678245583176049502774702675842092451675442420528209962545560042581979848278001422703037181877754848207991769736547390495462359018561736217780792313886500381073835610274471556221385903512724594879207500149474399240236748154372571933938345317114418060928124716071793285362641207682149738343181125142662837151529483250643601816246828548201127955988690000892531096498015599080314927506722058743815960748632373990594059938890711194196505513154345739123005258752310856699631294737933144163990986288248935746275949471189310077728700005419753618197683711601344655293875137380238909615962169494596793048747817557164559367726929745780893161961136604943098308352343329320860234078359007497229646213687296459294146933731505235648848406482304735977869929512492784464444867444640100974112933382291002803837850256837587604699954996109002209274037821815824615262980409027275918240641877595005065707025998333267819642706335431287147974548346464886153616772139230919844907865587556257918694095520481865546587188528012313487610099386411761742938687892064455769200558321117131836795876685990215493849690507948672335599109389146057712446559536936937271626801232625316419618451350710890061246245617265226772520682985025863333266239467076308776032119345691081097391437416515600729744698460706166615202817256571625890328228213424527391151151121983625184675759507889141458666571794915407627837218652637866615510418508380717881361686204844123357050529358661071441674076959811701521742303291368327216606289532230840558911862045518151952246605782533308695718318618331332393916675514010791275022358139048688680947808111790542327753125010565723969565384770108407066197749473279655297103070527308491353427069395514095156011760416547225396021201470546253438792303656033658850277007533385215613728386765838299494160816750437112562648560122548918142622257317997421727630914879458699177979583804470134651817679633566700171799311661922730263096425773999545620033073747975146730072004024923407974643824029506577040673151411273681893757267563765290004404896175250263913567734614726393712458530164493593868228183923697014161236978543678359163235180671018889714254538000508961188776807602327563680448323316681713451362514417611372845364053632523351830231813205934489124029366719082818768720626324869547437174888814559410142966881796463168068506802785526088583200082846274649045888959807600242078398555475853962661789816818043225835509364923719448291480303292756114937733383489111117310526023162482249489922770645066111950454294636685209579719659609134844694270069489403324300560994064548181956274735438131443270487833252709867455475188492031221431978916228756081554736767086704186582847554094876626154891578858619359440981544336202285977639174355595134572538148941281255205431053606915227548221640537944537733979939311294392540221969697561213863813346084240986190302860737766864107706844168150440120431616858088081010845546128681274791514666612985843239756059226272897631368145005664741523766281545340033058968354956497162320674950702809848704976743805036955140032206655184680219675043237329219707738635398516840789975936903857932780417846749199074967393732821774527351038825358264640575760706401668471295097748527531162050138575958665567758056876588469099173758589219771369373735015529001138540126996247701455268121750105917436539428013912801539007625600188827779221975394085074762160301956127639399162358289581788249291478744593709282412495814544494459795098744096586478097601489822759359677098304250357739884559592736785546807810026038207718840353553831467691261230624719234634238034479723181701170809352815843703165756702222207821369058089496705518974991933980329116216424955107644973877300351829076146392638699583699464442360771651500302681952910518420147847828327602001347165006121876779420779787439911211214803068183807620933337004324558599017555465639834009619476446248526908473439401177907448798083456927624764151836755593327978611940817538555153688012101073264252551590180837060835322617318127290084685971515068434807127196747678628823032524667147654032392160987617358729984031782597719024845556004796680155200446497506723391545119645553914625023229955620236009661134569125284838549848913143221790665744560642669571262939894851090378094317420743548319567071296574435907849324160964521072493540469563123652717836091363776175605025520758367684839734330765068641623526341577916725146529499893596767547213710015823527472405189074486576331807080734978006463948027148478179990552548194089936871942826716147900339266219386495085837674533059321498475932052162195669265784298104162500644349642474723999232084440737894906370705489761605061429354867185966434190015238865832132053211905290268445528793089106410073504764592390110550620750643705153199729695642805321023132559880371268913936351383845575726364803351986224983143841878994148485192214981228828075481169627040560732162037605160162814446331512061055149524558309030847384210840358391560724460406160536171074196381981436104676887803902119231151706554353132878387003986724927132134395692351850234788731235916968560392112455035730205978503604155628731803552244606093856223870620531415554423417110020626830862351303604205281720004740049793590022244633734708491541203109408724127500628433411364779075619674987032985095042355922305192160847016493879829271921811095066267558497928127441308192868730899257757699583261483290075824223306990169899699982154590948908093003537093381380686871910251206904734788662773724551081175898629273605534224451969633069917522684671103040487724486387823581203168040033499103284693451926468926607138002665490707090028335421661761960019045504558442603182120396974750978058832589640349760057979221682669145637753813075575420794708734703185236972265014186528949506129817056530962617377352470057499004514259363647978276448791088626060119693810973566653379205782813901320699568629781567156763917176011764987048364961439069451997561974561355854046396428998322510882548966307425084868184778362697756179156423454927536250674232162018509478722186732167421683000751482686934103547263119277436737651444359027365258176288682301383597158854157530552129471935888965030132910500038236020623526061253483362777820802109840929874104546561430439388658527829786116714566028654630792861766287959684780718766041071094294805875545130872219857836441627658030834228986988865799500547604956080275515837820682575712044895868842776105229517615159884619580672540672031305369700198245287560024194219162579064092640745484420439403580829518362878278100238617124633225012651122949377207757464983681861552961140238485412839804029571357786795692973950921722468356200865340170854056355486318573334049036969370414210168483343624795170997778126353186888075451565231878965833998023980264679762661209775605163490410405110813650508452258404144125657130299959957892391296274401329933879129957373601309050072116071082634568487851788280843846625573426426459335333971977784200644684910837975468577577197474883303555854794365978514913043977228489653440476602109599476484581804495165061762156796056784243053648689790897114959901079327103179860640699753945052175826262109045403436088610606023068532538646902869034749468025533183918994881406865294472812535775427924877056511993653316936937345067948812197350036683735946635729693539214945643236875167289270831911372789102769651786263783360992565507315602551340033658805130124495963211150275729353253839902253838372890101843855746415354211407628816259350109019644153974065640641630291751194425677248737600094113326688691605645832871002215502772073035981585324689453770925546215951872465924300135624284249448397082888576679832370790206310871911142416615843890951039992908598904484860440134879016461475414830341121414667415785056404124933900702003224745619238915574877650988044336046950377207732574030259389924738844508373148189169164295521838963082506401578746795679277347764041427452109458247990079138517306677737371727283126443194113908181516179231049086752673702485050913380993888676474459889333918470844418218757554309281073082679043656242454266946830215980158407914203785038539473327749742835790054381627892588599852773842666720627282910321977007452307591061939911682938746862612074340053668795610215745595810312089822603727987816819816075343995947182276892274900701862429189224641480770975692954570160845368484115337983932568207229583647564626943620345218948749947898488633948496887595901158983768475532829192050865997000423580676878208861499860164575830021951428069638986281115493025173160298382795949765309102770422964097734066901664033417880546509166180638264911373617932176544252209226107382073422466517488748944653766744715094316081494776873302635072809308629529413006644562623475063487255591585503216868742702802411122175604185164723604005055269393794976979031206249248737032937988143997318148234479592973972511037243426958761675433518686812450143317531266955580961279090610798414248122255675692354828984516536421174556191274445400976109621838695401989756846516274359124204924170058082875343500612494137814053596499859140229142078919190402390392805028934044514974250344361182626317087568905135776149049516048727389248552332481763875168905651525173159573442192629441757125992305460344526301094672453322081924007299854638838458986775367759122946137380482163064227339047484122063915893941025096459770168949456044822918556324447933764966453701159170542136451013053653678988024589629068459294746275774320743599150672698949153370517889991660209530353630676091959534929888052379360543930571898222816053441167548595830191614110964914890479544942487671429099741459412492633180867751071207969455541178199586361351737011931107512958645185497629365088236008819975523785903075495082961634291359135083592396531925837585046492014136773052616703827056408951805071189529268420348179008728203645973630705351541661316088222557754745761509957286248249541535870418716147010114858372924915600121313108721118903747291058246405671315813763802611407601561479831527131022813902583706839254927057197547768673926006384621914225183601112005847912039885824042876883659329415671033450012083984009490485310664006017787344742844828256689851327365628302333046805790438237753924495223020279081429496771178978076052103407348705208273049615928355289401363873254244887999384550170109828311634483789597298765237249805018436560658386283862040031728251882943922337206872752837383350880438938573511155702112066100014938809472601752685776611335677636772413767493560983773504653869764457010099991360111642987852222816484555444055791106481325015288310244217269087954970415998628168459519628153959746541093046141105197715420479074933619319964433768686937709057871790245938245630699831014515423923247769650711098654819393693571787077232438254408659827942242840399037612780389024246753004870548995550979450295704799902540280613241261315031044869565116159021527439542372261233014880464816999097352749943288275503638961769894483979460738577290051406160178618932710360051684897629691819054404003629425659053523215334777673790841502893653016717020523053988500073617812551874363820536404846236390878630724272884722436534416309415664100709705740795262496255005257880801707869908689410407064963802186059791742470416094725555963924006582401176725570060525041742669105129082058624797979773348155213658359199925975810488195618969543731124936941852494696079843090494573945973463053280148458763708616757810571005918718946452699174349825092326668956555403578835871916721870163688677896672410808301388415536992390958643405396017500137486463553133048157493509886457651763514203107553450718237612975537466986501240307769500317298721826500104664259311613161196693096107775243643134215688615202414806655138728089429152499718257409986594536701568518875896372487944798763073273464943927650686843861561500539767199114623686374823918831732173027681470362727237102414396090578312526893634505034162708466545344090010708456626361768462085677849136704450238018001056522705979101414203641827855599446617309544937762004027874258976848818256637151122851761260845275247098599014563809635135112160175319300789186204560327752409037556900783743891917634663608949424546414757043090245101898636291511767755836313570021318345308388691719505666498808147933820172973589978804814341413242511958706816088250465760964579795443820826111102742604060632859101330942075989367252798488241728747132450971151606920236750649710299163784894488834346060556158308256615356053819407185768146438616642939317553816667048852865789457110172691256846577854081687066503505538416465145526490809733238176174106386102943705344444404301287533453778455198009826261162983335782147583384541858825997440854874242069858417143657230176093017654130228033554789686271302542618151641677326780800639123283212300665842140422876860667572194929510590074709120232001271246003901610004850451824908450031206562954674920463354301050313928196204379896619485165126699964746588628032527780637599635582309126633260333066008534364911688038663512814765033445013210534605282677822658973950379313475467143832634781749428773705563143710633792720259260244084430823787766022227229582404164058478698939335761645170045290883458405509026327776524894995646670413972347992465555785537122466289163249871606365999631918506781279761915078398502520495623797498792443338189103152620924548270614403800251394111549783480041342422957412618200632321937798108029669356253262241572628961138915603600175375953539321435088742004930448508422556031522940533840989262582585636506871106379475999514898266792015849420001828985952461699911749458847224727334936111835171858500791665044502371925408655217623790668750075840711572294047645987992285979754040597238095713031028066722049132432874145390212694424225707475458842985020703308125127397658423584717627847917435632540800578999321148155584243244461026921134899137523012028090029296529333961676088487077400608187020974643446237941708241214891532120611445327310248250902035365101264411846557325125896457877009489057203907133626129511845730489710336435884606357963641025386299154168142904647613561901985387654783192680330218767392140666423352098254182351239417937974019360617961822061483932711943917299942584115949579922006368948577609376130853820668213501883309586986130883967905952523150626501233235658112184340531892805573416830783972058775000686756961110644173053680133547867696561632061381585202552877055466792274200662096527276608736883199151297479574098403951502002924351844853816441467934518713657488545739622691700608246635149419261875218924598136038636578686421777250685090578217864728521022739849063204486428353729192345790365345897891188883377370943297498580544243422445851926571636067026367120461080406596142847392157026935395408454927833299722420070982036259222331627614196894940943829008261339786756572833129369985679155954381236955241605920873548750567634054239153530827479840490266305107876696028182999414459989803322077795385612977698761275006237379198560947157884127809569308836640875790499545932089526626615104594369320041741255668980172361718052066513776643941523766019455338740761716734393745912391517947120418610947160118902239911006427214744773272706608509219070679749650382519823827333042664437647239482272687045405579429689185539528611300273672943096963660648887018285867551625733110235849999707857547106796317273155633531738828586763423523457383037046255592668917148929188566781879159004288992060644348851511271388072865073896701017625052425566736153762968053713701741670111281649478812762491409227991917093811593047669178404545943214318198866641167034407606067918267721368837201151222115033345268238393738122368182451932591867181416841152644835485195946088681263363079144660856547160131780200520416210667509156375011986989510504352948630059020668390721722586252877245015519384907712047682043210754257017676922031070460331380461945783350785681637909680015617686825213339867646520976754713468062075828396132669108840000007842117095652274026458571728185309657975124810372816461497479425265518916139019806957911764926023370851488918594184894489477451723903880134374964854913621620637983503139363106861287516183509591705059156403949082113960892227230869633550427732816197758031708053613587872965213500502629531109812567577038817434714322478852987511967194749005267091939605470784217824141038397092376627482839190546659917829462614780088824133596416356072432188243608314488313083188637027616925077837438747818015918423033731708408142139875154335897993038433015692162891729422956269856152347462255757557744052236471445391545179186285102872596849503979043046558520628725694666911895783900614063691050651345444591785290670731968406282901287205517083693147603530136170922967944365288065150589735237964267284677898890707907992831013073810815587543971974708560276503800871324249800559023606533788242030575155946888232379271669184957690419465629178526893963086132732597926484229736999478499929638617658767554038658863340491503755868246235139808784250462851554841506176392032402558761939517542178141577860983465974908525055353837614863502097128092684419813592820731618029237324809728770835408083244208013180070667284511761887415151693507735630475692435316802507356288505901540504296530270063400094271682786009438835873160671069653624004548943694322615940021025613513275819757840117049364138357344464084333145220701795830371165578845947167125479522304742244979796139489878031385051264697034999202786437224431244534933791666026352873963100163960120733409773856221336524548616069500339000809320192473767661949707143459825978667996955525693291630128699887383360420340810445390936768249519508058288180167390865840774174869566340452436801984714301299663401121923440068335381359045177444436434035989679312773787885495400309965851240963464250912767976557788423012186234628404933759373700470135660158576268352423365876077344917817531739919861870580422748249130181532302819679079650473111005046691186296401865276520605036160750027598027748392759276834314852890006118032718801831824524350894867728336813656636265765426563430741317046019208683324207738221397464771489489743413652312771316766643699845029837618806105060539344284941315975296087372876311238348462809189941790768097564699206447552513992245759052588730697860075713419907252753410457156559219963452400473508085318535835435315355598269760399384595386643607532571256954059077217694482608293368512234241736919015486485789446976621688499687555058799197405889113374676364536412359795948162720400513656397484241058423000440806440457786920600101043252879908352410187000397713978996333935571799824612458983838947442428330736593278686088654421103477201378108327060269008656849181476425142054453712915695454450544440687369388476367650045839016079298923027463411838313058732991361385983702521641738343675977204247577041092623472504990833730615361231060780850012664665120937196407217059968461533016114539922319506478860184932818005235307644139951909751813872981824277575398245964221870381042366065531807074445417500259886992603783718142314054824160477900254313165540174673602970187430817879928241979078827108657977618065989402600888566015554974894862772321452580281220973744576464164816006165200723924261761994250978842529813382097126574531068485904923004499174250540561150917577321686624017815218938756870841026810355725098436529696659324682006381278439032024417201546539441868517125454746403483222057861608336178608180547893275636502251972744938456329973180344458419443022624406841511992729465721420406040898027095234484907648933267066342518725484027504604013223479295155824700627122790874346501291589071127151633390937836294365320334241952455137584178781689346766895597150786967211474652869251336856202045815759644903949383842186202042763695179008487646270387205438820256361339932010057147132876581959457249574754412864877140074186760628505794794681418054206141950591777156740453019337741027896924872508523118710132916508695047186827593084632720198429492127983740391914284033350574112650058014280880776808845203964277257411667818089577852515548377939514101017566992260806033750297409501403741250120165621356803048542635326676294508981728545649671585168912774262087600958094872296418337987995400766895469414072021298828952296211275467135323920264409601972929972074634608091093577444575459789851586450883083957574299844063340489774070160091169887077403241057096583803546918091606101941078774685600322367620887895284596890183458053795465581241426671120995617977008454960520593655492586470620269086522323986927164316421748451383233099341202175156970400188706571488848857647478348044867583855828330841324301322781121806694846141989487039269763010107765219642684924099341251925556995281004257902017919967062060989830718859211152094927740320883161535530821476076052133923275074627101340507995863554312070519605673169871675223728255638203275655358554326293330985738942516156357314717478633937699212741794129923165575513888402582285101032685777787184145188124460771196096217302126161772362320288708477762999063342870848944368102606384389940719348029285604133209492049757925385909688641870385394549134790401684554710441845295926609116746197142901771962226421861834218372622243434284995289041603618092938969658296273753532418937573930706696180370492158813955533540106008682499230569659138252280520912188179940619184929062841712222729723611717838794011292490625282492312871996388464437155683656276485700991007218402436071401551075219009644796725027091699843053301052662769572388612067468925362679494861512585613848043492339823744386889706332235766843544871656547643355425597707289282931959593401929964511900479063737817151993384149067218631873422015826093294696316441649901956610093316300962082225953412642974064507373705645612923687082918140047255796599554369729398598314302731407673541827110326776722082657440752275388556770986821844842146522139692630637422886066349810836753467814880720508462054656626309875754464379629662519502080126749807552443188686315052199946096568437586323253949500571254415088532122940506935729143492745638319400286897262112271346021732747371977378690911041916260122814103229822411390079226284561738821770906012136566394379992388652713946869170293987659522933892320746407275344897535794608816905958265421400592546639307653905709679885650926271384563308769325445559474407243124524522191662443586344600238850423547353186611210992099163289014841419289321342384397180636249987592743116693387389476851891943912991776173898645671800960388262809667445158603649109890521202348032671288543357185156148294743997806413348476990103057768029582375321131881115368073854082720546747341960762734842405403796651094316551908351070039669853807933227978465494474540178919082991955910820545779958239624870052859657933788816824688368727133983316864518160542077828254716192443244521075107348181398036399612405528186014849382841275181445535188558446194402712153243878901264447857063480015929157010603728010053383743067870150640983525060409618563042713437970247973789363951193651442781333133602635064584257601708167821429549604048434403557357045165861227998299711850876323674838402101475993294275130356617224939380917706029059920434069483714592986137392701757892025699943168217109337821952829338712137268255816826046829955348204391928030480399703927784010277929528072670869227255399630111352827255032610383573909897162654478500576800030592037898477390284343911843909502890346509867138968859484457787549828915514907347467037179086401028742684072105724730801122129011270143176980204077906058788705504594198839706904526549990003342661705771874763022999936762868009127961513529423906022462802046130918354553993781200893134464128520682180972732814429440638296703963417417305332541820265992408017166638603214273323007664048135776999550105876432184297745596932953604501984797283845275460754778290954697284418100481837965411025423657477622671512512314434195529754859648630178641026195755036688107207422717471949141499215616411003673356634117490053575897925434225436452642409332264741702395585963878526936146013076377664148191241235421857814496490566914457619276765572806339882387976739687226884645374650343374842189074682380159491642032006638338969109162436707842056814681817530525905512971985888449210837020029132097305845346236049039791720622226923084085163665866122514380735647350433240777791293075443692326581155075184449646599096579591968535022280954944112912976835943040206028745180254386155609585523807749783891561188074565043873471647111104103462717325916154912548583036964838285594979327447411571102714458753022789858968218011077478002454428173379103769150071470156879120992157019714818062563481453326103153732735076673079762207004170148645123375703748196294936526699100074337239148461093911787792506507994069729738804098169944347292030792390903376352352362567115580623890247038487910889551460131698295254549193734376091395311756353743610640710207583550522231766958749602314288422282580221169006440009731883296363834162927665770495101047269048502942513623569453190889029551137321856173868699106004758951055112830429617656512960255094167049394521558903818485505837081331811048968980368855642732819932711454479680420340595176153835791538454083564422398825857937587529508886984333738536019979437345225098865578964627707415959743268469923269991088031773965048946876820605349151516042440946665380011238084033844925745774168305043434030430011460371035013805546820330824850672320265028787172523163753984819843242147300767351442460058698537331585442740732618591908488679020511142382476856250248544300239366862407961782199514899999672209654851011225865066032534905104044568493271687543845038200054137419186908635940171578089247370125400910653862947862825347638801909965297692494969183622030256195123098702061337726099256910680313665084365996227655431882925832485297752528652057756286428986954933611138309678377852698577092002302801009215368902631439044292679318263407629735533382867834657861794125291401166728723877841412045321797265357129253293773603701987947825150339773240149908874443357163693184551223079274490081438215413403758502963067434027744666277492125545847934913198948070053801316359754848632364363982871542572637357790993868545012642159248152196530610497413916020667759029685126183651854251089865980895937815788156076215254778773008055521083261985782176805537255200917058169574958013674440271705983928097105776769305947195749756998058205121968941374987212384209058244573739359597972899170359568727725418029475859926509070819384593075462942420151906280767653710122818183806931455816465071598253155510706105246557712061336454664613295201837762912884265963812535294670473366327689712134464114241978522540381355554793865990120973591697527784376713351050276712173168719792105900291306408471412424956711135169154275688869542276805470130008387711007654106711649666978110595923020390655520400866543659206592624379098588673182088998612529837599250018680938980936428460712250970561628239261496070290447112734590758629271058765158390053085759764789305090535958386352980542205469810208199684447418514282743753459328929733304578834178468079682185202314985005216764727278338621214075664441090072457328171844035972258844888298457184336087131814563817730825143038347906346328605749159633542252659709791290494246174493563524348830421988105064679569032295516371206809158546936140937125723827328594877305232456493062653323292553971669151267302591693678609595491385754663200641990251321977702894785205789676427810830569442825589592955015817299769010790186337499678149958191970921189410259991896628171764208137556031616490369834289408174432058498964890223634638758691590686630337359243358915317463955571787825915389174964566924032461634807486669914630668871609933248153205294228373962316162262848669682267116592254983085517995991029176068952324990227382591049100944543569657613282625077774063335368199900966452087803359755344706812257489316723352789822398331506858322363877972564565989223744680127637289688749136678361266703126737528742220597788217435176707038137106143920091974126077825439690816472694898990452177411360386863146248377672356711371172847568344942474684369669718607674647559411309621273677203565659013272586592741297116595563527101159504131446299718610682594220577828256902206804579333871180866168495237077931999972299047259800882550807862918422032475360042206035103608650319803859920681989315835086746932392415700101725677661948256496047423316684732302271198879499541823195611078990590586666353152931043390126121160967331239177298922385300204309599676853619870334536428602681758735696443656541237386683154926162640402744947949680005732363601169596430683935458533966521878361226516122449264664888828125223582551505088197107790260549847055027393603730943834169402547544150875433387917242060616074164122124106004258179993667713972455863642185108495535819388285394785300278965937429473628875447638701044141557369582724697231293871542504584660980212360412569170106205972767307944760614328519941040828915505297029901973444033713645344583029851242083090319520879797793627527301906405979717717014338631718920004186243856737257467557040493471703286539229974800951630127118446004996255908944449918232683017583116896628533949761252763675425778755045139510439860050218269719394601489048240097255880434752606227237379827509398643927563394835565278615474350349708462080861449650536956253092333172992093333631184289068082705211693497960637726954086319085503143201897010850616440276475325473128614193406709218712762224930649065913957781155252831428806477262383107533734342442951237216044154434368968527712917957662031876194767585345492595655456996498019243107943378564286160244305121836053606393190486960950240310004686591510530762697073853759176189422911193228017927201824487160232889211552164369847458898105585634160515208355422453303241649185616148017276622118758811802897851572037289996694342691460199160909447956661641476462155467256201141518977091457951292035012167769776862910461060758454282910713412866028499541625176707996821093617563697268525854581857430487431927162041704343779809495283754164400327685816698858281665223301160366552513344300319671378353872208321679372684758625321705210967973132449279023091908137195033398998716406386724347730733309772225424199190712330312223343182754462352244227024618447880761707256766991450676101097187370997016474228108904030242478267409060711329930283520010188650308022528218033060610870321468205253158733347446373016692303777651999095422090454005547710452249494472700281219719121494625798372828576564584455342735570305335988887891663540030661813616875446365119075768587486044367655484296458534115484837076239811092459314120186862483819829516707530612144238948529869981416312214581032733629926712688251562070027954181726276854057249157503524308139068344488399079300934357437343255283095419142021862988713313550316643901167749054218165447854963362657287755842562276845895434068251477084765826944542629225306530656784390475997822459483100602820669891553731709086534805901935827704101700563590805630497776144045643808956529856087801223016878725126667444260687896198627399571517751975394948592781067786285014043264076922462671756173843228740523662959831434381934980717460687832698732702235769080159265366118647269819672293832538625754374942842164195837268650641068143046242284116864925217536701878337027999720589639051123646481122113147112439874850162063528894228669928254152313003193054811150256903238592925622467269426171419057819126489450679965499630396635213674244745457216881133358958483224667916676265711030218365187859181870220014864955934136008241947448173544661681512001348039265416294386193597297589927899514721656235003296409324902603120982448374806827089855936088822929383311555766731510593414428588102506135197999078448464896850615827603924777978785277479714026917163140133182092431811468412341304128773774221817629831791597712212040534738665084910279452432264910603931854821803562230821159665527205867003578320498868394151945273654161287990331132414659546846652877291136878501540230714746627714145856208677806210361184081018343706743988036020926638746238044490783548371605794864899719705306222370818899433829475748239518421239883059492401681036878294713943865871958944449544650590670802948674594581893085661338900767488283245916400580923089993119487579485129754874164482397799291467759584608525023908286776591660167617753770502699940830525398069442001391318167967441161952654319518479011068004434069822689051186741312539201217464081102156632483668185766101589120393729226263925928626250145384654120634944745741529852308032210392081807362509544584809226765746078497474088102978285226083670702018004762698087582087020806858117537656905258529516786948438225171152016909599316427911946213345409895117444062216334939717520596489800879247245139433157948191061597178975872673514124580677927377500977098794458091729775542674140898941721145026662966009117505514194952787433940483880893122273871139943189194592318998472014832916943832106019649102806924700936937088889791114990941884903987620596912300358876136543959486462978148092625909984252198452692942273781122915676499722829213341513141058045733621837067636339320606565580339787856101203807768941752410919899764876216810545790256885954151714859163641554674178543749515115554461545862294191599887819565094898176167806801501426542794491701413642009191225966857834206544000562005875488325374530272188571532913832297098526809946668818883325922952460619969698933035819561772928500484243661006976752616885802827518039312999550887415581963593285222501991488235748342267856329045733689771227761924697953285274240398204291838789322631769364389292158938065496064508619081008945158124681358288773896899615090299925818200488072995538916283091608985849934601386960750369544885157522845692345125553694848223715716708873423989216251306174533208054917917347486206281591858366503944481244214980569557702636948430781137564455654139500758556538090605407496162294527742245279288961458176792036721219662624583851793901610658714741380800246713809900179265279766492246151157323350840537900950034407733002300471210337792295681431468101706659060668863297935480646546695219239167150127742019291188379769205052201896013743750300589398206624064092968680501210973711610568629808306877010053506835682158667419210062008676441469259424345669065194193234153985913423699237356829760023755204957412511364159592172594273930362064283552753984413811406645794031351936586979971543438058119674207223479142342096216730526309182432899415898107025446482628142608065321241439220116652289330807228357631859582840948117437154651666821892913901965989246386586077854984933646836692962145390346267386875070270325396416081883452587233213628184233705193700812195075520385026427416025738137846134857369517609933651312908323173398256916375151374019812060242234227139541945142488039186026153402080933355192883871346878945506908822603394353378408727071540060728938232812918502092540451616704127236267220494345333450307902732689696887364130875631407560541456849325958042483410827200399415783237515905647781711928164528610139947049893476823901191844806340808650917601979930307183158643735279352198788843022318514826406509336001958151741298357883236991216973316677934699587468619593331735547683046074200283960358518090156112976795386458024882794343306850122342089003557102268835195375309055117639065948851481814415736104558937468321190794813412779071382493066688602881705972312887745732404797598389794999532116117656936930638682706865672964424153552938244256368766827589204799054040892547023980179903585354087661985541953891672007367398224208351257029109114818142841155002656774762213293982572617734563905906918484003825812809391756220240408823305929327852010687882921575278106386681229891160522818380029933831497083242623259470582986199143108365469904860666165469127275934940258133794635319095771598201947118214607018665156303689231572330453836891712083702535959892108806687356685557387990175095160034817043148933806293722051813522860707684698277268300996302010433323499515633655717445115710391951990920097143152146145306007411668146238470926407733385214479048569578727228912299067288025264341168913061682114828751651053972520412202706440348315414431202065566670257611190240263492149230590021393758747379100235362163906139636199822193762220148077507210369730269123603799300788644928371084687724086621978334749797770061365772952808443040275152159965240674823950919466043785411985553926227862946514962049746684311270447660882744137073852650126038233044273168947468696742065255883836011492233151117728291459258343636051601844444879228956197002060249639695385919065511242784106001476610761912548238654211792202669124415407631470167924838189079886108004543084848887242357698352230163059848479250675059619677787513439420435523806632745244478620161346504627489487649080743043717804206233173712765509162070009019554906287170998637447650678093538292421298909770817479625130693095057130594240605713669100781956036126304510431996837647572363218500888771951514020840046696655486368978576721674584583201707570015046423975657613262019952702662823280657431920579389611793608784938636806086325806695691040444200212745646788334806992760331106912517573749840948773859864769346219973549319125749118771316753548242985871441538162763394743557353943138855535722105357399588657748980426458477036207840480277105902669178813211677617700837556330423181765652162285009156492555020005305076759299057706090568234227492903544212826959209059696609978349855820297084574425718629029734800024294448799677395255708594949885468462386067101947560072401237214258096984701309200731738061794016677652594697509350298644908388538462240844310363494293933777874320900758167366224083468151733304717659968699566429744398701852185592006070054374213994636732707283468202663948615074471815128028084662518816918874499930295775829411640889052249692543255373807739015972985559896881140542728702264070555052966434492940813022438837726200154640462044347688166971224436638424206639011073008438476617277229649394423262777631256791249988265721120661784487275147872081527517909389467680798664715834419073708278347028540995431225891669276961885297173576544945653047875006849726765467533291261973293803200687525031319200559685738311087584750320949667490510654031744980785292966002642540075376073290990813470102653628092773607483401341853462029173716668147198349048316979837585076634483384851277768611691387824473551489417709513055677405244489340516547479492913443968407042338351170605648900523661367163068147198365738363932259498987293174095493622358479391388820865964392837601424636412152885993995126961823438286582975508370035568147604740098162494599954732976378336616153576701648486768776902212335222660320286487534439537759170071464641971399418637985630039391390893744695870545315314572497675878412100211908129297183905682652601865374077630213891927360309342440875957822291483762861749924772570387156439994475126676948339564912537831633442185357582736940967558894088592596289665837464028795788122419645850005903234588569107640949402017228815700325721326645229664137974281810189299080374851493416596386315697655804682599625677621511870127269734351866921892583417510039881679117905762581560416788900083385379677426718837084182988938054847721254821242330195039540052323531597215205669212625978226071946998107426201362348322413422872962761685293169379757313998479846480362784490510342957964263595585301224240546367060118798259615956521864977072984946285937227649306356546051097753240982609974338346205777606277794464962782291888399555066648419400780627227413888414492478247044893577743185040616874986151186052459599607861012232042531913772358121141509314590024559819417660766232475953391010118937602887181806255421294209017931642521326787952007667876501571264751677988402074052613574306001489141707917381042912645063242968161187014649428277035166638089172092580184694146965834381049642669607275199316246466674076227519347579230521564505970861610026012604865103104015460284245193256295180604160962088653363328281786983998590734439924266855075282843114571279009882075863768477895271354482160974706045775302224602853052702949445428866204739643335946878114079891944626124082405510759495371008124345746246413823922799024712660232287831479967516697966473917614885894245273530097125553916295688521169642371841527787606065370961131221274913632866977033802768184140645008233490163417315649678207882306704892137680905951064765445579850028449857924895780595092345498966285725810502042198928041215266083076165410729319705348744992176812641845451233376555379654341778526018431156687570046203996061586968316550303817564045460149531057727717884279661671224057998840973743078053140884820465677867316958645922262276920080543665724685841936268677202781262525626619322594387326482669914538818127057189528391474261696810687338193239942996821886037262750861555505461175194059106321091093490705422724728432260224317701619133493316039113928242738644710132514226084665650660950140688092028022879016496293106872031587360589189403668976705859334993865293170537216757416594862889069379901113145394232514171351162609906389387521620827655844389455625085371721433037302937378303227635841580409402349013554924176864750301326859945075113719245709377668123282142824933226374108363155953688421645928551578064242653914982350418485894997563915053632641150209241398185328604410946603357513356225076800726347599656371045388258090132372694534220606428687774701702473006755793380919952680079602401738978914102137969585299903030695782261845354621771462028956801373095793172275212177187686921521740210594414613867882538634330183601128669417147710619847407355722273425613584655016535145490500350441550151637083210457868383298706640736874987718198824971715558651232548546809259612958455115701194345508205103435448835494698148174806935192293612415181548992605901507257206608307078730144756749590723306009663798860062602555853880439391647510637139395319084875252579959664675817831377124977815700378981558388709172204219819318416120589464304847489262889596869312385266341922225112903433257295421562808079321255063019316630050535145085177718337139009187287909225431999880184784993520276081512258743041840504189586066790876518879653503238502543547624850880082924892297663193151676393167425325449393490527667561142892596092389118579218461161151949020999471803411880194401925234314087881186827800074435314343873213008837652745123303782151954164640023277717277492567409460873215207934695584924916019142323598528080993887928084535460578975733991612811387795701597753063763306162486336499973672205915636197841155480853057467420613136895417324313342462894981457335793124500556382751885254211082037475918187118125273578695065846745698254117684123759346849784991847488939825507523831040818534325026102055723592146241201572567717284811934343449007860515040180428632277744365342139865152237924921334901939879942083440896201654766468086527299158768620206763166657317592159692645732258756695853348878940178922878703468106019001747731648566152631958285274708384478519385633438360452471719456673227531372047259233648566774875887263204581537729362278115224498409097614471079959697851068878533809772784814982344004991890204713397638516503246683172146079326639793275694473142464350467324721243969102653603230270898184893352253847981754620249889000419773164061877201756824810644701419840298282280609087649256520290844247449011069605226581705365820463507393604035807452562498287548313572429447665619491932761399710443045329807464036835156867084864586617847259901737597838387974995838747852292210517437308417712136957993194750110523828801926503198703622994872131243956355833947684356288684897070743763824414773709235320880656872420187049388820749180839440875275730816460772417564674463731734323144126464611571417180580639922549429038050136763494299286781581990855333660657182611353704130845907363276629499544873287732501408265468356061990346651285116100371418857517808280927682632950927374002295804836047242946748204079498020160478570081177535793151878514278038927887755926308311587848871970394784277946519084439939021652188195245922262797686266729586249792280986945169378702498426569676791657955734160957894403569959373978450200840236538296677256420484328127604302595177066602241171030244948365755109984298587178563485164132555301286841497125852337801238578711433858170875587824979632967372905727130391396189015751715983296265871275796701412143097054024930000638465228883362051605774619146524371818424139647440534666675038352784596872241023565844342654795517451213065302509934992360186597864896871194548891538904909800790223409398658157241302042067241499528133757313434363836740265997995766661673655430389840335213412634065688727867448736616804377345251087403179995664342824867591916573321433512465492663340783352692233368482233072375839792846265489106074520132287148091837827360986955124058132220385812239086082659406863486434904245105695818033344177134192250530166237353630458025580473875131121939446693963525087894569605824947357111577790304015313325683180436293605389389402089715209848801618069284376624981220096790795934700207816152536648121826687942422489225205663877540455418342333772015744526571117895302660257380982301353175647344954206300708477792734807946104365848481903206967134709921069132959165576097700087745727497349520356710767190030004608188256006109968682081343642505042718861728062046320471538799162870831783160100943713020913616846633104437316970288368637940831117636170226834965953247069031087600749021925285831116840944828874002062944350548535160267489931543182484017009315577015837939226751300212466105273953280571035646723559114618773216780296010814555740855620682246174293371956414411749718081446557038429666140948100674174495549609763925564897919327838274456308844675820759463583875967611487785394167297857399318287267960408358960712538116998248409980804120078183224808879950872548816939223683354376912409448600745040356058346742878587583558407093788343135494167665779450336887683589105717625199693008783130011663179917008091746230390269037873592271463980338879234444120931813493717517281347754282778108274711932483518157446536270653240477972120755207276677413677772241175769424871082919727629936822344112020190834751885914383194500500951357649495838699880311279684172060032770165071020610294630681656721565783554044431061292023588966931926776290818505457665724792155727448714026078551218794910686818987514231219789875606599852857456883958926813490372564628486756594576144105591394997543512177798607139815809684005449805115012908633640359851142923445198902257349298929966972310737345720088645826295635312582882164438575731372727159995327071250454581205460480284186809719191425414180171917488089993483362482290608929876093916706149405316289769419003803069673593151835205576161060133828340029798727721730765601341230085304874174553125015548044547785190940133525846454995192952382241998334486885522957932305636362987615037416531242827732572238795474958328428072772277326887187411205792728222158671672765164225121308611946949641112313564448262740325861223854926327174971432497423248696653662877449403136954583319119831472207792393608179078605735017735510653458009846124235740550792020863422679490202281689799541541993793160799445446275566513440164950823536546228469175329622279920702831759885756613651193980160658202307707832485386989174284586276350921530998616424671864848944512236522855184668411727962885197523589129579802338829871372552767205322561937704070600336431568049881625401184235654393450100662208532307264258179719518739036892206543895748131766224426871829168357337091205400298552540876494384232705554876603742756550850189235023554617697607521342708274079108366681759979487969038140309301183332202973558397517267086361542949770502210575461739608759278715794838687421278124920695915937649923406114810245949313046102732559758672928214823933937869931930564443808826599221036870145209632648892264796738252146822939279451350854102276362866245052476542835816263723093799852030831469334211424372000411288830148030635799787589542553404778124825429050382072997790732785885621270422911225257754641081997027607003934470431809337140980248195084817718102669222201054478388671112418380759463012063478828269495779996972982023781380185829387576952855874450178095927017332133194161208666748370192473830355412589042448851324494739060507655688917548898242623724651556222656744849324631619042794340223989726101913419345544941913388294269322336528419372966584982701207639208379548409353999594902372930991866568507054314310119479251742981692610971868405732579850501146013800475209047472246142734831274227568109965083899837880361085880985284071867504405438697521676927529198326276530802598444723919422758782781696606521546023526577825306923083080834493314694000866857339693518204416645188895419569426376407776376624636261800802763909817542804097741502358750288842499836195486632345855190706942594153901326273865974297982172280872181851939108789958213137390497717915335267273147538987058515603923041075460685783103764728364056948169808252523267668176391281364140097216435946331807159528203310998675129636251843588486207331297894698027116565826795515117566185689736961093619279027379811559470457043083306418301695040919832048442672237623189839578507506281972744305298440772135302027563542660586322746350542922972273259757193705215205857735011082890670159526186106198827243402774680408963766361113533710094732507472392665945543073356645566208657696770031142476260585233499829605811753739690581355722691303374437796269033336788071594654111455563746756475238895703008312426873382174108320974150189083699815504940323715345130201951686656713790825874072829561814593149935041269005682387429530368117148536367896983058834203841559544152014157192071742730999379833857774574834127696020734010234233335682942474737706220023098096919123415493688740686124387812301250785352036925404045043607619834922171563404540890315058621706498527224797011702892328717987331913745614424535631389465089319591081584954843561508199382977131682798381092822989915597839875096032501139781301541799559681269345899632766784538544343329959408115936528572343095915983054265532989777167683167535373354895738652497739642016657945277419309380101558636810185757698151745250203422269066924801701438587832463716858691067329441587800191730826577163455973791537722503795997457818957437376561935684667870505041955835250224021349979971805295962812320659929255047435039862990354453158338477838280609333799537080865269462545587273354204392416610498845703127021136221286063406289561613162740048337250049580491867434750305238268135614810219698585786124678045285168175571351243322401271648661577937051209870417207839465978200722929476977231018908401694421706137056726436610852454045436713653064280029610036720899859270543777052802757542628032614861249027093960021938061640451006234348464641773568648967667881279646297906903245388192215714799237523173287354422860928469421594811751871688576500799094646260333888685122529267533794059252395248812147490913403749905690396701162562845926416429030476560253275968602005509123939703008547682803619710893644177189062264424148064904630684091961580123043086382075389918944421260747947707300724535685598120504454941548807139969192748573372063365291755204025200959813621864538199053514321254360378554322618258967033511949785055528133427769358678698486237940617365766408750964090896807749781908123081520538889706252739660610214780379158263463803724214340527237783933596818626859941318614571690324202553973806426053151558524650966639896844771958038535115172647039311330681803506700638795621763783505345248727044496195057043029261588433643621974308785409949241588609576114098991740122899808832932050790906568902719942173582873228069870794560295373908650278751071344608057808463275287453588831008210144202800270701834524680360712158139338811644364136486804739757629883458460912162129490640375328741211696433191626465345190936122572719951307200395729053942765802360077538759239133994344493942870756965784452411023982204128323758550725027601037013374249824465116923590343997509425117790665925969469980761204795471587628783095801957796510392376086389299001887435098625789370338823527061472327301029494370422766893639001304691997713127042942383682611576455060274094954533734372482853811298980221224460234852776225055603603686110866331548883441131984911371519285369686515226131657457835321299378676199349621902050721587255706158782947035255905849980789742782152119237524432728317523474328787756350839976599618251449362299647382980506836832637560159544423680622573686870172899126958228718084775805544293382034409727983422192869151814083030689158589213622939727442790756323298832719024555403028018847962992140687707394362166689213281336045076592905813647181686242069228318204502592630866567125945057198831599680401696042243781763948920970583950976735088858872836084261416986621344320953128959862073073190018902749790549735444860609857772981759679787177973503236146914684576213966612309746514622521965042267668405065019143494310170094667532375057674720992767315450213456635215348335672006224992172838415273680770722870625784487064786767531183088986105025801688126777248351413842227322712763783520594050939752710341544134827098815196695478139504077848137276877295144571333092813804302736514865202041011088330043437469093273895106775674403822805578530722423709736064156075494570925376382146329671808841680114160643139892711067442820904573392833951407092591763059719939771205810076594312818632950878954160478608937470149666124875715848461662825353236668208484819850493109679220210876900120559519235580837638248370217090065066001553876240165332859948307653053473704489176369518513275306271145727555856409851315749726440596747337362777718980109777803380467864002315454950099958144258526045047920418329431043404044493908118535477359691615250708331803672814392317162234060780838137254694992151786543474479397907139438479273129048845961746405381164059916973231180378706974029583382178676572289837282041549790678634234445048489958341594194494610797682204985802124231991629750060684429162411588314494044614517839348549596822219632160642388639128196317387238602971174714475227195216832212688820939673504994574618332321947029094417227500939101396842918328744843648881248862850908811763247086297963982469516904867736436519576279417569984047067281256857854750882285984207216819918176030097760806748483172985364087729422742452191890362691184711901933602968028336033143052318704044127690772180122628656831759070460955565517423005278503224954040336557838918717557986973262204931323456671894298298321509293493996460287707866719675916750659933595850166778751037782886112841395182838906369912843236394966982743202002088976092194561334104560282855038444110292241539070608551838797148009130973933519213634089454121186845024448625056483168268078503274517452253539620646662935343709407972247076335779605887397716844282754558808354671518426900652068203193847015501256192404109231929567073618357045844055678189588787996142095890274901459086898982957447473796222936341779368797302356227225959247438083833437214027891685672177109230853211660247969187139879058717741223588026337685339993720268900012987408926252933903230952575189869653831058282267554828708584886576548299914447010984984673633075609035139877160861887743063628806335688955073690328291742060545884494007015805109642274824217211640672673746251803586559099407013844239823871637228925963243126643108917713775794719278986977093604975984186852254524972924495207242991868292417806355575634941519281209199988331568369534924688866298651224428440742347227729582666496216966706892324505339948893537515530322737126929270096735796853988873801484734337090235181173010850707997178304242278316533166041110563388975247578476677729570126377129265697452585850112436789240870937630347018401940030060710572191760750177318064956545264620437843622183940902510234417901120467215336966240245970397287611409531122931208912483521092995079409351180626309472085396980089868469997318626949597766806560441943020703158011749799263492392363203583830081563329625500136984308170233739294674950681760399724122970809409673039484460478277453976189408343089867871660549055914824269945095871096355376025214262791284499465728509739941854911902509292128479896571004675659391158222107562126068035984391529837386363896624057684548171691256848602898232651338252939499847599197962709793644941650565670148425676363595029286695531122997512157529635944858194306541633877563549655295147279035505331981196465769929413356385583440434084290328014854733242355769947699191079334037162471371569304863946642057426120723416520930913661517510261028140984237452781316143197657268894828575074808662608558859188424568509718347821472483409877540965807789309747478427608402626487650252502804148762703120352653730605215601106434827974537459080610845491229009008860543816201442039425836321487428582825239796343401086770759230210283295266285662080364871630398456433770457605714490800352583737638627673655291900144273089282550449635507030454840853994714942615081490776147329986291530520799174812622227272984968406063023411493362630996774816005078894115127509913136795480082547269688619286644693106061627551587610920412361240769458265141027084490378745447145716969952762473214493035168734060199223998849619697173077056590001022028871494475995841464437070978735782351268245202927246243149517035395957458200285646387948068735839025948548603885694390324315652903384721746794279506648394650083489704025368517586695350255437355205694967880117583451179870868814525924874282135882503363459396934642906457356548804641682873431353492795506674349351832560857207559977097323403570994235010707347221358505810021729247634295558775729859121064586471638928928954036015782585695804747030479122311379027525016353296143451591757316197461884282471214895302316043231314072480358019866856724329511301353833879857111461532640537808740471500889890958781744319532009363893113335316929835387167731598642885986720354537338392135012534089835483792645459065615841505833233618218693441243630517683348691880044139480568162709678134496830888010476058861157785806208851604687675649495863360890521691813005302814201177995250562518163534408461962501845588097684652421739323636973750614078675138642403494864277122900076963535330342993287835537990752154335956807842997007286263911138781515635315298084938219498883004666340558563324318937116053532705252566822028684550104775838418282158560203696842952213086380647847138805066966199779037469953393509593333586998911650174765551488231702839859405255946239578852261926538904766658443981350328923881146253579633235857194416858199272201547762676602472455177691400016123026254857606219377785253519831958195667543238256577686120305065189495722788239446201727627847570345295438793593032743713489494982123981277566285316803277478519268249706287025116401790638219518734839092326591293087371400083141352844124339777803373133845377928431955684677553696114942502660980316058116906504773372953781022510056038878089042084300592295637255240974250809659316496978841757800206445587828044716359584250329401910373609473103217161201030744458670311019615292759280559517580467171790929121841252535649427337181395985058443980810161938612677873654310010762244449644014805521717557786178204522844437415761979581578875900410516680181321820110289795784688931884100898868934130963094166966746645992861607191328278801452695886134562217462135707376618493343883262083737697231623907851897745471973663637769245162843084142959319722514527062788735087559232788581544863093751844432811643187831137040640030006481322771515757069955717355698954788158085365497949992483215118193051691643814757879278404783693852213353716823459434859962012404707296356040112851578346674755759103224961120994381095990713939924413712031685117474157758666573036407624418109758623028929495892616570017029834505153925728001965935861854946427583419313946276766844682948108408748812575472122235110014093944743717502826708169391004492330023885665323547867145652221633299650696871730297636048335405694692208822277341728084220626780094326656670340337050747006220174560475481635220730487306707153247685790590139471278120610304193962535748801116934601196148249826288008278507355455114172360015164844070252356606686856337870512365106553563161625348264770951647041849959964433040281146562284073269714756798198090253293822242993613035861531325431213285730955595702655281723347961708273683936905641171441238078761957260590490041914761734496653755422729452913114754251564411168898642860974381570044525902379188918471214200982360031139708710401037241167196752046188313573579828902980562258555454435250429047191680594183600267942108446055507351766697887041039347874667016366330932555540408391917917827379133013937671923069801838559330281871798791547783357299594515568456062038782224408868295696111350036031313737172922215432161952273617814526289136247228447510017528451158605031237412853887035766470292554715876013968342936493592972508859065671039974139975693981454531028729382314286013100981179292853590985336077143039229254642225546079948358593076733579423797496870774810594077397741869859903701041694055360779621867779707228269601923310045988449537627299565625306592215751038340993827400064539584332662818036673965050795101336668718043453849728034186847444868720966399947253291146368820533378312028901338005892750104361253856202919149072731990122237676635055841492539100949772228683144582813276893641835561292368972035540037997331533994053558802172557525727238205755600748407384346129263502993946048746650938831349379421233202266910371431613860970842111995663461787428538685704063052043492749913501860699513476438558283047343246207113584516842755719598502844245609864404119895873674191324053671614278680764436626911978011848295151702726275572173118910326864832098976576391739752996831086572444034285086510500922657177975408471008412148436065060159281244091405285398039068004974966698789137819929574594385445097776742489362924536747557970326611122704892372160427693518246647897653664919613926155910776033065777944741269221771305556236056171339553049590484569753726385431283518953420748185516247251840849910500017348404554066431663236678522224039212375286351722492150321371174647939779399879119528853662433187538733996494664032526420068675883270354062789550133685114476890515998375034662562023181952867514703320998783433915223803131227597176650309830837197184799598422958119615277012733265834331612177702448576447901759290446279492767745393787385876494951026886907228457569652613744540246189098918832295705972182732703630537124601739989079755877105912260570955600166789199267096754451386649357222964245206282620255084527239109727841867391145302429314287643593380556588299486233543844780572844193168494225325796667983048147157986389221752655005523080638718308990047989488870932386133397384692135208168533837803415936963482464644189767992286887343026700537161132506859482687342104021062593293626765070836736162315194615108638519098872986267539917330908070077388011643825654239874415859796601083315628754152905104591594502589965289028390115746272297150776705682350557447178655315814880859798387969388620679749798861700959654236620249579285028460413115198066112150245475431265629383493893785564018840588548405068479225646339244948843703428530598034861895512456673372676380017112102912813387859051866874840910880774798174764679690675192155212730770420857295051621177484799762241568358161613407185377894405942100721351964446874424122074973218387642768939092255646974149937678798770081798440838208330697172719174854463351734383933785593866325604151127404574438160091115310565320269575628510863681312046398752475058595662053484758977035580563612330266688284280862688959588434934355189377459030815019036369686407487521274415212750409090551163791454099523054946454308948354121435098224409209222315095767663414995391660839684109849240892714086295418182970941579776381933906406771518643075585537015515486267063637382037056793537257596130258825487754892656234697961698801714767765894627398728333354503905569708639090457067803174469959237364405160272317660622295454940796299874980120065788649627366229988412334355953722361849638963678765953950827305921383842774271105968429714957543609511791203310008043232231876567971127276324689779057414452646443834304777469588462880576646515354693075682062933924014127461647031071288988200875856722771246690310595414130118495607064393646862645939275678531942938372093120772234866145267417395948658675365591999830995202795278717475012043433746795138209225405773577827865850238518374537679719033334594646474253005555394126394724619786182141173084019973691833607852846865948309608604650791867729159130309185143187559776102466978772575607244348195861903997607225249862690673414815850101667970035830949317799844395294438465582645169246111421977633474433320664862422196393845854497612510217406064554132811786797136810449524533516767358961927570514933894666128139269145204126494969123073412800384594365904214642397463104430710842826280693959189193412145231930912134960852221357283020596694548040430297509507518158293662191642753932358553661266365048046288075397228415160399643329735094829992893717317729665876939163428588863071944415118761421488448534875929304184541656383897947301334012961757111262164375723102191033794701360881998802014132609185161649917821096644088938478256038554730450124044056643089547853609256879201073219897724381000884457324927199441024671656824547612300436850744685902725745002008610236854384951708898601918821942143886504154460745685191591057857194354872126332138583214065019891628229104800772280583434377352800163071888451618252916470347837916745055776362142348694783277328447147364388458310043029863537711898436245870319104645959018449207306134782135570011904540691271269879029474235259853917659487329407961996289527426240527911955693635561315778952788641836363889361823535598398496190697236351077280984057361867760299690643693289700266499407554862414293062106265891922979879696283625005812475077589657351385614072597047116113337045211516393227285481790156745738180712112279014976453506288382407846185263308682353855334477999441019440896422689275346511656497866557815550148937702578739615061417104289321447295845448320569036140489656406168831171000959987168029318392821506387678110831955572536478230490257090342107108409158629354626543068354793849330334295701700281272097676276815874195070920716537585800958892462991099330142772265931594904840498533354328033641773403221294197519248374072585691547486459311879152822617138759738187759373608408114387548129340904962283662345886302810435247643160133131549339272579111878504811007145030298271241343826901008067860854307025128651354095719222937445403206335685401684163380975833029757795175040285792088271361104073654791385891724320566501495855424958494048028325645936797916362922863530927997468215756319988066358517855442820241992259399042158975306956820668417243693385014608737020519689487959891310365985425856851933108611416472080343939696490315139098315354822033974951176615461026434253825507986759705080111854186800936635270579761765671241734519107625682199676674519862548256284326644175284714972848063724647954869530951989231203362268993027013459309059229429456096064587156556291677474409143980724965814566587221460573061059232688482743590896079391056445345496010129300804190024273233673453341897412094776692976245590441396614010690231599187556125080281657819106911508285699520198874042428929059012577522940176061433851291360585540127572577140147718969882795019553362088567212241410793446837619593126099507595846572075652499859108517323359976688180502500865384914495086618960881936070665553214339767786581162938081508028803818644207254585721311428538803722998630473944011147233030329899493245144692584843563577870902350625525750280150866188194251763581599327953826664523109513579653338143447598216543205372045405900930482907963725543385067724124219390260399713123925134758190635178519521216303859107923925804513454151135788459260535675986509728208787896374085464397430822711081020544157666357677478873973984930458270070467132361438709568354684913621091883836529443299946596543163571202438793756192284057591898729342944754996282430724943443008125663068609930229448758583486345132664893501590254685390153563154777540038231954162512029944300122451235188102926438837646360361491878325788025300780991183310446276547833295410694661209048047437450463070229181588386622358361838558977880232552035168184165446430198341905696338785965860919979390245208220691423090890914648275314144041795294144998308632195242189501855879316446263948069198188775168624920380705590041870754437787763393544303142468046404304435112298470120060186555016450590253192092936540885944901007653825972312400801889617670325446662797066793112268882096612142370681372473199554757268955376853796556608620360023076787357624313627592073194138335002417795587278528913786096579425845404166102105670234655755882477938841973190131965472221550883201585096218317174973235022257776473235587530519407190176105830096589948771396999234292498573161439576556903272262469789070984530428179331495679381659935976258521532085322616955484090234923861901599225997768054143638957826649581469318572624478554026080484661612052833560335377955005173557378891360507255766695512821333299666469274746943487032527015138827619448992846793894960531664561966035826977353335415584189993484048156465467050068536996925005428562457439780162073260026304787700890196141988343540275385562905337206505239888642167351745975239422024221244409554151135075032334618898994003389258339281485770656780684993918398420504226376188995668716504100431297254897563739307107981569018618193736905745371365362578699193842404905557433075376015800944248549455628336258518626928029815785709708237085432293803190793722839975963738056585728192236975853468495113163255991325504667331472193683588101012185703497618930904937891050991243521584049932982837356766437993963728230671068380928870616167349392675591300948312374743832290856599944928089234200793644165289256006704015619287836555987466624895152880493203211408082382554094101255547619368824478268713764170106945515807603291349351854177803455620710542836238319823336792864350572459130837907839897902721202442290544567291416953410002033174655778561740832937971333912609522441532335740013978226708791202621760050653272127335175786882164463687640894955492436111079839782837446003316501776746927008923238016043897790005029649346422496621148787902258864608428472859308962969807754927694485795424839039684667062083733817748128966052720060214414737864438253660102081711131054399046181012802973071143737339014609428153683073354187692067413235240342896405157395846308420937087550896980372380058767931064586409894336937147486043863963935096748330383094028564662460484906156370399280229792304235241245527341925790802182081686227521345347268528295930620177840547584928975097835775101870207237932720985864191489906388857428781989021359501823208687567464812633011522276134562209163048977471337996503112820101999117176230626594747617299882839081840033440786819286459220720571779653162038600940105556515949439200723008475884076338687934441761356797954132602864325385809303275869712275917886990598225724667154024728329703418208998455648216383417674195356756875501799856719358859574651040161339776276001832433634076991351485249353762240611034217606506347417066493697840919252571694166144992641360226359914169920735406774497550948550953232660852813361740504678200823707451458728811109079302199080408089746300277722362053050755027566330069316385625186707327031027742987060913195001276671188342061330486959865532355978025719117771085671707023539963968688451360122636396268490023390646680530553914239085503096157001293618538825233533752512836915370124214912025299551624319511725065854628949061608190230437033895244446759285939555149398362162630630563216774144510986164505876160417297164353565743039545498567254159656363610881761217450369860558061176559976655829268274838725710531500198700803600689939466985849466955181272965488942783990183048981469185625843253305812195938683371868484174799323626305126895416972232167157850089877883200744309483462871122568616892735432872757631031851319272249739089091318500781182204833458312460793694562504398564691617820409412298046821287003307617654607469052981858453568281341994300343241928294608886351636288090700599438611335837072598989223799932076528174935922272510147577598855599684435592369151134804274963483183241308678630246242132363419618035587080202273067556590589403145228175850251117052225627417921364059101157540632897231734286117968036758553088481243552268707506232386567089723380166528169043714026368409154778109970015667679107216675106042399066250471411308488539743495516538698265103135587863554750373582554839050322771015272443445989523924371189811478067174416180903094074205793897438859264606556172055466575668844295296591718061422091805003581544582923829245833156222751451881053374066767893089924241834705997757234507430961217961031752213775545149020883327749131020066008327250298158101326102908988800391456348776460162160067250521085531481324738372997047785862498800532088963875117093699223322313348620610994621279036623393090688126477392604122163608401941109196023978290233136396628708070778293846702462713092190926231151217440243940815723303882328676427405778452521959383701716820456553445314595363074436039656939674575646541303113959020134862435250899230993234902412125472725286648744492185636812328876517634757481791988975782409207187080257728602861364710616209192736422333473568631862729562860898728319873623620775256375133334103688590089684151516276154137510050232064834825983265825249306640619651756020049034870062969119432025137915173029290677892994351368371125214678747600479874579052833161033445951900823668256715646205623743484699426169832849523815325080888823310512315480832729116652117661895939417315457718617916096057701231423387971187992364589323190742173268879672550282519182113919907040794995134020828540327266589440684892171948062646600129478166722188339210772367116832637226509237440035510022394729655820616309013251940727801661741306407073357466586312428327837288368527298755637670573656035490109437126683394204401877997915879755473722280367697165592750885604014849621421919597279516295692649030329584713347016358386115762915215760486144654970158578405237081228168830289881110896067161329608121930269065455571773877277184581074195668713587348976614926068111470900928357034587055405996398521393148224638686998869472447619536093652964157620446842663181250699428035521820986529359382613197504676520057381899819400717927343392372336318545745807742445886966817654994507888910791704518083150141481267385930169976726299677638085829586028244700122561124076324333006747864019159615236186666867354469051614097533277950183634881728553710217473263814448388103771319267517569412691993530837918347640306166708009427157153387890263331747300293501209391465615798766289721638801978931674490315432799106748881500425993300451151863367518754312738958979310517000449845053753565326559735581116374978028004492647911332894703516164257446452568812764445365015732530820273262122613746469884136586464689382699692885536961814877059690524981048719503154257816186423768431413433709016901090210388885343215854699511257580194732332967915679370464878739895006885849985143202416041623990406074578918471179211964900641568401782822602986785576416606670927555791969255685298482755909425905427607255293203657251591392440032290909444765555758403720090579015079168649726781831622572012988772174315360721634656635146365153007521876445956943932054262015654731587184445754001476255478863194193279200055440946752263643678637447425786992798975269797327650869520949756493498747365128614998108398772337357428014724369492078085609099963798194937040572789586668759992828148938007747539363061325766794795242408910930479223726289007367894313538625835979762665706072716017042791520840033955898092408941906015098308809099056532323503321552142654043380189020095195571785363358245969105802047813853071163309532286074456509526053611372052540828533532108663213997201751819541374796600042489959336792373322382350838715298432744521372636410156580305118870821652984262669730457859539917142559833250626030992096544736395040805350105678747607856052668826388004661811035566695921059465846152060743823855036456608878367604908942098700553545826000900315326442837718791709542179263730450626625814059566247050750222293196951543381755905256935534273006434767008266958486233561179957194639659957158063241801215551682027450162220895092772523687702907627018480294205562038192201350621358815018071031333386151885639481249694604838735402388962397655600220025294043026471931782847271117248065454400285423218221898881281085654995980517899854655621711449606867626782598505447178908177312882741564844853450182650880721202310099671895185549462008719405641463258964693294523509176636770096607271182778637782971997379687618101550281901413578443700398826200854132063302975810671186149600313008006334269578242801717101496035741410309330037472355564931059045414922247670519850017522672301745514300707711503330504086290698023531925281344797164261044671624068607381490543578666269613626180983728070055133667386334654936807416299129266937997862706492290049905308055715160797096737969896530442426688553305017182304897922614272972575657648746232396624144850095878197068720105541373936167225303961277426911906976148041116340636178819167544562119989236050761542192661373340133690143009311408591430476791448230218869173639542286718767367906027845447908675470830260581336872073989602975286622344048554046436083342904014214853449370406413405792949401099254545811310794843627240513873302688773931435171583691479502490839373243443989372830213434837513759973121266566454245050530100444015780034503935605071260544406196126323847860891363189334788274559686157928295718557477826620319713632697226874039113290848194647641480112943738092373946925180427923764274926165847444782880655581301082174097063951534807405711810297283761094885500136360791622572802005608450387100528545169180799696616812848629708850770678637315628676601801935737901900131445000047624291759113155296506811971778931771605380539910516362905563220452795227971013854099552072165775136614935712033675235708125233370361795477691671675545168455727831824430303424297455196011155674177311441940166045999828706309998208644798303303382955456537850319535634882114553128823208964239971133493539458036767954066456926358544599925680036777885060900954013750242890376058797042408306496741787251730982743464612894755013032869032962976141596113432955896328826252770354834931285996032259006924367582568259584900288135995490963603564260663288816125069163904207675551709105210308173433528270288870796373344462080363734134731654198313172019444014448265732414616445537753364980782046762990205593787893434598900352400974453871621018309371829773580364323243931704613459169172951830317556888321536394330057753855484954015833370756542019760614657928878183410922954990172574807062474828022287402914874468590345992021038560068845409539228246129259721268012764361430905972215525475406189130706523844055777613169089190122607140601217494651150361698188253268799716309236771000176334121969072271658236532798734100913570818030375798862400696865930775027872453845928336638532717402023387244911827364258859119909275511299240625200115226159590459413481765308329346707559903788484084465761100091509259485540578941391442342021599607265732295408654989332667168574978917720711198930632358349932537651580929541283833276877010712280434346225977383910287365291057155824364568586123937321842593476098265033572629398395296631938453994449209492779431385512629043043570579966544487242505812202520268979101239140660285678370668965668929282069611382443026563241677214290627485958144345967936908030703045705613132828931796524928417200666286217320084965129280215175483807981621159156300864986831491665294809058659885905284450610709363203503263338140229131309748494424582028975679658738284705114090121993527391644104406174681688494988720751815113195508399830094313923003712794010485560309134276495970725515901531371120019173964764981226141829718533707169159914468161420041112420284883379425464499542240473010361373623369440930780343043231028869726709309060935364678166193125811152561853056533033636793584739508290716118718543325971925126551597512469996639697294728316595329509037292512869899647503821150556309982404344301777929987953873551951059791819875575054993210011916939331247818346376635756153760810734199226707870729518557999694547437422693014617240257167475618813515962615601234056039066241132381032580164652885355188375439596970613368255921926073848520949689275524843984819718362587666009419786558466659789765676602350975945183766257763932123349924179267891224775028891637772127210654132476417838129606225843597050280650638093769016524754537601837030291607498089194103199602065045550853098606673108443789140780853887703730267753795229753168501975589623787096964235950764503079170084852049026492637233412763577583725309137578383101556781469878364951971753661156951497639692569728251929916258192741743824969158381141614981371986872243246742576794014856245443985617232774151846788043279839106621717976326265648176402053270403454071254893209153131785937151934064881505857543168826015980719824153833655719278639140469106118780188114134058216435152791741166118293039203744297488912422995276914913603156945977684294209645899737531395941277232353327729886529107103828084894256340597280461466525994372449379852725996477969161804767391257518519323271537619841484274001690656341447706605024251652302266050373318734899551322205387814046141896807324566256597391678966253090886701704817755585736597691648979989333813089850133742840459368801710573707253118392823936817134745438586119024788115141992881723105898774313320479599203618297441507557479261504709392786387645669195676146196197058006846072398633388627476678798932541195669656872378080782907566550916514433866637458703587626893839673277889890754752579966331947348792723633462816058327747817820271702665786313544415076922035827474334584551553137084438069415637261090677562386149776551350784163066475462295945503285038084619012936303033821993115744350030519621467351011484495457745616521890760416156296925805332912833726877712804608518871178680645924226297772235945196466491571937059622625829911782124964407561870546436021329442833209417939855941895790867024818461431455342978283630939714216659274156123818894530839906750206621762045400013404129320641853939635286898600148091737318782262213226725050252280609708007254871839616760537709671092265641895330464067947625987043099767134361100177124426696250737653366877523093521815343893481504342000688625572804318648249200392607075133330098520861079798946651850615672585449707676579014134764331495396706157363874781050607489062951930417950743760723750162569753485620820724779608153647608867298064554369782855247449480385819760894964245679632723728465016369816588435418126148137730266026379444024201645982537088189704931633467641860151563258047856897732936300976124921715506701456522241913144097375105233843198086925815170463113651348668888794436089236847254201969880763111772370759296862021155382445691240119444669468260674352036098480709447608293004251330618703571799849216418092080577655245232725616323931523175886227105568027592207965168819023249234196160681041716280913317235891047983355649922649555289800647429885370996432537694855913766791130359271726901401162014687688437131591944944105963046240557749453972998481620029121928405014035578068353796755185122872155965871473518350072891077602994702611765591656251662679327718860109348554630876406968046699165684619774089429805800102635649069294214907955555224487788191109382922383278486283262707224578904841921427390772047664048317405448629988281642936279056058257414392283503170936780606532042456204450226686140690899535358128798550960755615464016304580430769003693727360517697683353469638470595617088601490427427593458352150236565442906311266288733036626652753072288942711269271788992600111770923135336709860493484542177886220308802724900155380253489135347923536731697378689826462146257041547559699525650248487157537994111942092198387339540262693858040298706642938764177878952942903677673344167753469579063052598705392181328910195463706693713561353587380177785745494137222043032667030860277246265532269480270564211232444567155622284795211831511640631807435248987483109827112485194838863292179489082545895371418312443044689663211159961592595597172358817945966562923213006541419889900861206068955998351771951025609709973821516840530580961150222848819519990919909761740005374929546430958144339819329553504809104879486623296364667875653622491786664570940427440538129128762110402712549697668119599619427705772646556961888231600178862439619779938505738585954266551493564297621131046393494513208750648021989357246901225603165372412715910187228865979786283249126303622412043241976457883508110901149473343905037378717989100677934351574272880520276668962898173589669322071511001840185870233889712882892123010392661482445361404773663771462469632862624261392994385137742752069825597671847178363897857741728186946653861816504208152155976555451172889704927823469869683641037381465530870244342957674170095955869438833048411046778734946394185616535985212597089677844825999323242824090821118471026370528153040455571420024122867451357995159547376162514119703827700744643943238346902307394373624405020870555538285458038453916142545247403518611318364295481898033829388358985284673739952291175584434113299265576177673770151328106213885736438468446373705577251395147584892157423782851447664447754689635109023117904518190120383652146488443136262679324343687964719705190282042274233141481926235279343998033012978670936139429476874269295823160776446635852616729146432105529361319685143606401935287752197346384552895601303023009862979751055372631273450664949163608335694012341592943400694396221418896180088861602324527314088414196673832707616160194976457819739141370103207817580543279934572021437170648322648012695179603462977486918256770099647357197365183422644864259615294086691703799881316183870264305021357442921805285544705906617014961649639358755515525512322216230137928872444458979485981970921692539682987737696197682370644683818119485758010237828199474236616091555470418085591289016993715011528386874461205159663925565735452464948925821490563900888910706902637783093355376699870399269896312242559675629332637704471996056068744110037300681091194679329575136529938581295903935836710182596287022069906990694017855610648080987982175933523047332784372902299425878045139396941464774534228118125356549283529481247079172027766020710688841963763764428728075549462771579510473651699977319096250166463364999400608740934642529573819033981653260321555720696661571522584433953552164280533282085960500070710439002340917640865147536275383853103664342618881400220643433032264590249053712154698063023242868613682043058084734578025965199218385822778004712475170518481335512818092000907230066273580919795020290491584292548544744329106404311745496703738392003798339190584952379732586690622306259882455839547471676347453532662158039574919150597280611836934039440204501817762672440106789936533408318549706484109491455677107928185176753028856534153697700919303045830687391561187073568364482273221648950588488546180457334989221340334491573354850030641518223623368017379289366194564995697848971393603062875294064987142057915322087329740518864469016760677513885207166767231961683407955357617844915587156987442386121629470351430292052182393011154732808603713258208674814117481870892339063189116565248432657385814614791225814385223355939025153586940039155266827488917074265690358931906321399678589785674941772367456189922344218621023054287530854908671184545789470868904555148284513437585954163167852013499068029048955396314700740975680906249142715733709428074645735495994694410320428703684908029324456396779510018369287307060814422588347599715984907993278306302707038832288497256629362491907212895375047481544454059029599347077405330476151093225723370399396127509979897961209096570384404112971113526317192129095663548418979287044482114610138047979676365413055061914591473449358720195573044703109438850270828952948181544850814733790627099052360329935232085504626973438344944863320947440198676395003429914547423861627463776805305770424141019672139676068821318662763574790024087969285682158853831311156089911416166676676533213760019962224977620835164910433756066304478552480313129495630923907075287534680804105607618124829879000603878851513979093450716487905560613376341317933876978033286546721614862507739650606423480229469189333705308538109777291735057995506240430017903305400256619172146811448201940882398937654263719039261103379301833876180454327975919181503957343262962109410740934137857937869731733570228627451066740549663306335469054218819800297945426147035988645441466818976669506569887157062329577888257942810090020740617848129655318977863251442712165284258906703253462338277081713946965207522440403802071465557660290415795155147133522093814170183985847279572590017122519304474059204257188415599476357907231007596427538046531400127424833267511200842742233556590533302487071844470074118279269418259583396942780970389285122110110424569572675982321623207395341174244483664188796828098300052369055778015421911172087688464379874051920646723019626937474479194394728857033672641773441591899373320684298758656177735786832406474414824101491707830648081539518422843231851289772131584018617633123778801783546749802058184819892018387374123463644422402339328801106655801469268182411671744346338076310012365012428987859612723640503482820201399657383146412168356501809772405893421063166659994834998597481120549418293074852049492546630893781911595354339374823885471694533313902169499935640819116510391664156707471127964543321494595519806360293330363094852974376710080181227260190665650136583496877464703495837085111942371820926594816582597240643300667247219320628951187715900377133014878589741556169827352270539054526927683900052308017884482269914394344225385570644651370986551517986751595248672294762836257181429939938437950223159140681859083343381499228080081550114688377364902707358060654762939844200094953235293088863445472389792781983186727411660589516194734011605148359500022190227441329071165471132558349721368763140294382818735322007232691518990451326083631106388807090098295184593659788034499359036547854174009034242042950284049319865384864583266759362384780570729970561150476623921748779815888820853937722123897250626476286408638048134937616363644404403099229558727025325270835684921001505111433363119243249009179349058144270472318743007386109811258038433811018417415138257076471095597211443683617600044121911687390728701108241855310756499066898744239309961242903899679082344542722104452053460658686677968984898569715855995179478267120021923602050464579569797002220353308833182226367804317017832279470878546272871514696045156524201544098966774696446526062606749097869638453338607588389101189613264245156501078943293533280018760177355365892734201090315441925850391618378251126060115517088858793145863981630971230079973636353886526931984024029133029095011255900948984558124550150200238625711069677095515412112542937833950076170446951794697728935954551586475106398101433296487720955602027189747089228722365217919510619700277083349036274597493801075019420688101075658389552739171906396380021296602036955771970860399351303660968711346409058272857745903664246891551158526635737415492028333604862591007949070055231049640786109576803483882114825351771336445023140848252478930610542038722571188414938828850018177665812223999352283568738830493270023065435147768293045809720794165289241357076420102502583304667800707261448781876275138735951936812597691204517862169435104924957713439155237300627495305777976355453530038990170839632458948920668061180782908266407467721488160321298711996121609048000911502703213483111046181960500888170146159802010648001849334304547971699698123378680829156369358527310848801607582461737538505941990004311287829353276495742058434894598529265787307216637049702079871471020354454210605188132589108592413337062409549074052010152147919162375111033147856252095128231980094487085359999318207634203084381755728502581964156031885077983870663862071284036102594107212779640493598801975989043199391919604931721835846336812813582902564546044643671628045651397631279648719105682611357929006338388310441321655375654828945061839695149556566338949927022873611453626931426521253139775378931006972359807696006849107421928839347962971145905019960888948432450236399794305625201160283505500823137300515433868839261050951998807388123683524675107820571498228360516840797674519581148069754202125039488417306037899147625552793286632360363827838143301584303151194022043559662668639252673600357907353684558280833267135367259761988892544374584428421372745016611572465755948588742545013240004538254380813915625195386071384313770289909910078418738838768817064202735484684940333670583762468586008824484740833735411415832461981499739646459626658767109585162167820826326210447471883856239087378471548561756787642323382640805041348904905894540159562725496327565961354906100981666610042789974945478353438710473110685508875690579785464825393057374675007270192616639784014139168512441327045079304049122602563070966727000242217608863585177111995864601333156392608107607503711644882463804698813793878615339368940974285271572433801993486594220650983221687807714329214382446285370676034511131375868150852293202006654988890057800053637330737766223648860403873351576312396951705705624034041393474422426110246219167673178590987995597610217541154795368904031731582632701234068596136385906469414804584034041465032673025079408220819740922971968221396331801634470265126830140077118938129274248529794748650496991085042537150812604395676864407932685376858589871441768997084965040588047855439287291044244140362081358166159463050584440196840783731611715579579031383013849433330693020648884222510560419760745551726109700284968500825806465519952139864501646242706551336918027568878834458746930286625805757703842303987211281793209200798873338915630899237288155515379253135571429229366976054158556129259159972258604850003456865101005920365785943410329942425346405649208767542511647333399384583219850275212337397483251891829679956702425520710680813131280640296950019569498525804441003155415253014605581858612351327292868979392456789858982563498874473674785262752242982405340636548152875299771551773167695381333102099593894375402660037374691111587336386993213618167844701217920055796523937742526157881281495132624993501821760240675702698492434004524082392260534663488880330425210322100764293740329361147625045298781616528754439828272405793636034795973800978128628914029767987978874592622885148268625382184136286235250230241751778511754251377156229097600801305160367300482394490190912648354153144559528708491994181342671781524755040887793605712310926821416920696615547515974047462877893619694813900635271874454062985888840802457760580848216750687418562625662396963216194491105668392562800837055398151059043619338249161450003948805742073818100845569394067283556802327546738067216249608845213313855682180415741298216104971619397200225059208417451879074925261467164710344846894132934109863877468919642979896232897347014542866842794336067027000757812900412304044920148764284668230498972087794712203694206337712548370327821832381047111356337246513177416032097537871460113686398096136136045613283426965476991126524127721128946034547534434696260236254504307607641345109509668207851667901931665942770948594722963517364657856405270646988767588284127864709598288909487706991137682926270830276697542648888167625015688195785064419762363817841220754844072852687932384239819534693747919822284636403790104805410103768196928316678046689217219669531780513720801736838044532832226995315183272800987046807973124396384504911023680988189865772529044400063989225015935760056596448247890291143116352720364797441619077239519490680497684546272410965362566703878752066893004963533291810680342941972311296705030426626712528350792037602021479410956317209100024322639516410884343818300372741603303475641961147125035698682870268744528733649471379023266437012482848921875503958930437534644473643215181453985989568443081056744936820178069771902595540018916058483218051363363855674631120890473728087257155784752765898793995800189287184486586373473647699587409591245780935613844661118880016046666997264987452290369700029917928474767028073034909530238918790155682981261127208093996672985142677123009973656728640375706038697248272839766179657808728469174971177117681995295276196957270309845525944060247781336702430403808137193783426529921008177076584010142186152160656794024871448357410501665744658948681735010682277349063675052667018148352527480755083935430171606967212730901638574021514226212711678926546969262553236762952852489947147758975118098354226389864273360269952284527516127157004505914607915361802982723917784101909774600180621197970779499271911276346564630515133382050778027683021987759198851513074233927645163236503791937836385984369775163360447600796054761002014384375160994170431375888159089978529059384279874064399660217850082156030341650608644281541793307642966920294658073778307858046850229038864157322374539259339588903706017143113368136102889516040480391377199809763547570466008094419775503463125142050059338326361416844024642515930994913753373456379855886072382714775174314896779751026918478273712989151599478234373533820830734263749402935487934466201591987825838674035183758728570953753697740443336372976849377555132508205453688444789709106710209719683097620060440703664912186453229532770223806470460789538522471642007871411223900320699620233564080109953739550896863804871230328099023777805200057068399267332274432553706834760968196166405794015712403922037490708417705908480307663051789805296267662559697113293571669914387146076069889469778749174479979516797885741703255597218844874853897423182935073462896450161670829001503266901469610616972880902374263378982775335985809657387794451229865906445733623730032612792068798619360563485544603497610547079561184801204963705650206339953553886135369851407406019648946605129271135118461516557857526915114841460540971396922864476285319554456955603709227337333788962510822422883556970241282701843584492634096593397586157599624161026105784635404860860381160768144810640338753815107809170830820365996535065317965747889350575895407839376016204909037316976524711186628287602490106179118573137573265516582919437307857843024738955142736660857061629264353937006651270708796387938733721468024544356518383178896881673244234475522533745023445882078941708656504130461187899255157905898617864628760412599798856657426619538858663329675754776565492687947754867845268775100562197087741214395937704162496294457841616867963628161324899159914437623000988901024969097181784455514438821799153951063612427909059632662244636400442218424163400059621665959752438626994706284048686246694232328644911701719056367649817713464293727132292280926841118937477617669163036968047277944859706176304835721670654400494670827777671163744546414519849534534225866247648797868321045132508274373185939260237155087437271286578884787590338417741251446384680489474380007182616018334295939448101144260782396404681836233966146272655297843841227090422621746971374028215021404587384149311305795956002039905072969654271344183675802688562410312977582625008251257205386772944404892200388789172702048356480645313075224699116895112021831714514717794560042288492228130172136490371677910329398445978364406547652856400299097134292104142496011734446448427666320165722349978835970021317848491576105758233106516914755583549514253848508865875097842131190477460388231831696695465299733093818975918455761838839729189535106204579543228764749460934086756426121039430567131968124937216002252571674550886275192280515865762782784866471957660531682536940240743234847299294892641019138988395514577333761129714034602201501662692693628989780075552810859127421339724100967520036352813740112580677958986566119891490611372760596355325919548321614801335661458807753709659483655030084827396561694199810852694597126764818794623943723335774795635062664338427554026587412058094219540870967233411144034004769085111573413983768264663904604525841962965301727698601852208453355292307889394981196549650241076485370138049336805479688954366322028954035944077619052835726143732503320199062521035034776274733295515890727317452908936989804936822535862379893395107211524902155746882482990639366829456396292594131516232338938910240514737456101269551098112017962195686115761963122655231040196933371920118915998024978223560310385564608458963896352545499400537456592843826547934871267784080917501023909983265826019070469677040303869957267872391655527185186780771164574631003887315362531141119383610237339232159644763386360009060920057504921006636066152663971608607481913131944525438758251496198672130075340061910436246039786246631636463249848524148026495659159586175610410129915547506766923551730456177707072849232489190673501775939596128980554424584534298976538032688444149252314009297867025625364601275988776963786718953132834263099247415361011035618193121940443576269484242620160922453447192606989224084219622804717135077287838111620225960180190609841328748053223961194162533859666834222505329132171728528762168590947538946115959361111311790428937690438893725980434922307288590410615643350348609950994196356529297332423478420205727630239057310464869725800785937645829571056264976331593449030401686701564391508604606980456867844647331436879407933448043149175811239990474576460921354106963513567474290329789250314881423221825283997736422150828004597794645534781580428252576866336319100226911025266363904503702997556953608517485587631636052424214033214772673850753096094863325899696725091490997246185881218034085637839981494078181307101634172921837620655625705467176854289869822415814706422848105136801729957040872664320501185542104179685206785602607554831420688705560238305393113759394811899127907650384086274819945835538699337157725957987178205607365671154601134704836676903722557254410074408077919828660719265278719504309895738280245922209399471780449877289778747886416828675803418764089987053171672032702769102021273328761855224403419528063581569523093510203308626482964022139525967734148130482049895031327135097250360821113326252818232813179235848775042714797473222893007029958961025443757559562245815006625039051123263942938739365148756351611328594247618207084212848009030642983069619888514508503977206934557832220982058556569042653863190025967683217014684100203853563704348479579980647483158721712180961421910105196055709969383241937965500244668381055156955068193584265692631905257560008381995688181964329318608067673523817384714006756238444609908972074685205272568881036675851370552524878130800680144803278263640595120934612834932688526815357558941502303354036221591345428379050936179626633436311163565638776912838287282154676141391575213150034886656361011652962935001094657170981095254463011286728118844827254017760387018708485369461669850191414731574210342386162925622852771172340772194715151649960636102102175468691336652318983850901157397150254924020839268882180278740196681407362209265966726277303393817694262120674380565117515097107726541918174384593703143120403691668053954939359558156853943187579328601178492045616402862796159019766296607075083720520082619967558553657220250680439264659563367074932562868988168986825145913906537526830899720212462055405075956354945302895684570680038445951641368307379697708362588281012526377309351967856039553933003800571014990423164281536804335702478447906279046482557128921128044943684264794621982993232318271938737249988621981773967091764075868503619474529866005406435103165930059519390669461272520761900125843758457390378562066745169675198954702138754385545999929543609609761753365260231023952511976815565496163484200099552040700932685133813022583363479342017170755008161236789769732442279679570805697343877826293337029897934733444667667077423663785082525101946584029997056229290587683056517640033199846192385882371830967793203413491503578737221279253088961941425480848180834911226639218978055750971813459300793767306623809775372968714766611192759596016276120949156290254103867206053081434295035732659689037525655345434666308804661485404811983013955362399170543611754768594157023962889193258750691878964101569504733971976884086999919774428637992300353750555386329423561974614297949207877529799904602236776312533730652787697986307965181633494870987735829079632759893738608369894543218053532335675094425058740586971229937438357071202667895882448875271512523884215629761415276227495060687442592291996295281053768364292011118644658516353875364561313820426674998154840457361497705666619523574781621289572167477240273843116135357708198478249365764269325461654214225462543249194658879618145037358141995234876194129928960681109461364909486346362101831983353075007454216737513708109044594067083054852591392832796347527330837345327127948101013559205939132195206543005497599970990215175212325624198829847896799526265981001485441493854565840307732901391067500753788478592203835696850091506842284719343968506065445336827192206846202896898341218757092152136013416310607550845849170768499822559504492988456846123948798903786853849942166429641506554190662292269759758404036085102417034594916136667225161946544804407603985794720893961606991227358102499086995389067460530736934224302610917726428247304797322401008744397526851387642195824891971661461477350855487535023911611674154698161076060633043416015548432546660152278807176339721064293814920962525030130543233346614808167594503197647131440724129512948508904531481252536923042138736371581807900246097902811969179783326772397029036225936902935637359262493861623005016675248306855198092450188539810379621974481171060065969967851324330208006118931170657314035206278218276295054723741731683277578283657936522447195140148893772854431548145245889100926284869126921327404732424973340842862703050601063931755928200475830999063421458186769155783667837816954175643758736717257268912449116663934540383360600073756991192812759021879265686586440956935632060666850807463583395606043386331706307101666767300156845338841148340326735858025522018856525181006973445758622843931084083573484349341703545081806667691319516604638664777705148242512381429038239124242274752686193443893650668707107870165080443390713567280769355132494983035166386144446406219713955428198894487801787022420363882870281313243736131981056129531937059775632826599416635713398809212171630043498515844572216870331702054991447647308693325890106242681804726543567063295447019043017090094754252279893425501984483712388278768307846011154592437088519940613018321209964806927668893498443900744040467829320703940819745792106800374610883165873170087443371140930069786999635908592931291154212043122519538166552420472199480056811038778379428284948277607138921429302698586866952609214978492895774591612729937765904374670640922887159350409334142183544965692829028628971010775824284626871456744513670803632961771491654275550866438944616722014951877182325271829174575931892943300342523666037820996762157305510484735474282945865946858281255727364360120483563066943568245124669106249960626294523970887465292468459866893821183546320582891014853700264579458889530677346102367466845887879004378827776231145694508044834002605165295684239983183132691632544835371213065454872725287492537718006736242100129414425795224588572071092101019190649923624286745594216994176277288782053365636195514163026256186913984095831500649091376177151056157029632453372768100613345684941094608663297579339706423001286607014629103098970625814809475918438704687804047524937280128916211618718559265645706525103673591276229443796479641723343847950122770029164375204517375539576569799910444374278882456226030947623043079188060076295759230375415414827136456392569623903370651558866912081277495651169749516394996642659309014510122085399777557532013580995751906818596605091755157914435673754720364813333952517742455358096351141339500561953893215724965753472863378906380413675431563803016904890488248417971128915076238041542934461194315158816947799213347695658442888729046325935129267348886778032226858852540671768411885484219699242418819406145599126349945044176805135410180955015486212622831108937174531646154533164156883774521348049354273544430764257982665128452540599219021194590406954768614636949320505586494413536272000424164159745516043360962148206654446080065416127938513799436898494810936887188443459221857605996892814371087749883198365919017258598404417375556676430085256237598626622354357910903746829128322143887851122647747997551122434105890307380327238811641628853997223088220429508847131164466222598511562493382674311957720926707581657499667181854077244821339048743143602707532670528933612360413204725004217716671151957052515766098855299219917509457247777716619723989031653723305747410889249694432000495189909524629794594031058931571511011605136632261881348884641602764458965830244211872228310240062417633652052407895777298888263128030269590022377055361688374258413211459362115873852430943573008617955187344943240439771687779822548744671748388971217874176385040415246623359201209848922195071688224158765072304622639082072560676510359057766978131979683444439192485287889869731908316608711783790989143834727652248408194837873298976993489049547825374768774714852893519090323860240200952719606756650312473868127365183376933832070190326037670400939006539586643787946272424760039950695753004770589779830642080417728995804848930912167061730798887951240070808374305303553148832479990781210126023813053717392787895316591683547139162376360321005182235543992781772208754441944431566473396384713111165772740346307128667100335344457154092308606196714259279223360479415349451268711722033569895957302983842101500440870521233248787238949887696004126632266080573037648222238222469240550328190112490935829984588559018642552827941064675634463019906046290310865466268468903047372196450175576483481476623885696406005184701185670540200896366677603922186570761439938457384944443386047766939152504684157586566016175924748043842034700686187564800751651936916373358378720057909326795442075975010382978263580247165308304148538736007704884256806273321189357274807314982261094593237326547738132186107748220483074430431153098990678235553906284737021819076904794554853722949083406370857032921596255353917752300194394063269301279346968803600027904824236560032923909818585780544109265003760433058597679001103219728310996741679008715630606556318103131826555607767704055966372456195640122649350441716682988096945864168124823128559696686476815018138308748337338211488156421389124165996091494695870080992039547261957140891859683642355568228941843175546624057546462442663353291282595840493195972840202253516258252529869497567960506916355760061050664178036897680114866128007664507025257110521757939261322667857583678953773099852313438399659034623892474418162927966817465530209293871375239600467029383709292695406995030779276362149781227145416053163465995324761824090817842978493072820758738178172838933309354080189574953345503990852979364564265955861024034875467598210268106996203997864216778545498244960642855794343194141511083551295954556763525348561809409081996158854488363235669277503962116041978426099838409003598110775305163020090457912920353485775320041946414841082183088241435283333501764271298119407208547403083282774353359424256381072123834682713393050325443062420488729941464691678965835122591938162695857728004177495015961692470673414539912877702840200874007500938855850638855489939509423727990356086295805384473116324834738762921909179932512371768366271271826552233222405636940656214099588298221699332281054004949436863526502171155694051116059035714193385108957909859892601082265738277203123981126114453409937467927395569287332365529095748494255658976221641318853379128484241405617959043371173272454554647511062543569805739666259688686083951732455482960883678248831559992872360031750112059210483588625862089674419662708255046780319042007533494936835877337979823636725610962680765056320061509875341225639331939225048968057963105388041882868151227547211931799601586940381565212184741811865923700632778317571492196510236339488272665043157095201103150937017031967630470609858266008127308262301145044080378552114314617763935297735805682059128633610567531119884388984659150257070604217735943843291398277141739563453338071059224411188830529300705841464365431810508750341417777282524973307288580884856399498027424791027403326373470218315932479970292763023170591268804293440685333187576474994085711857714611409847323135709625648092572846940116211053009580931161522185965490163248902767317447378576145186141549919283824625463870036617561507732555257919129703816985724621471866882030981908028897991311111314071218866099770427870206923727053942059655898890974895147052997824543800351860888446655741966900007725956961206045215198474327975679040538724056204602171602269622770368754659064718754540197995620025440129577038314380277267902411318602770888772093585142969114345479036565435884483418214906303899367216214329899593190414499279751236133722968853568513388539140673454715251614126572907840299962005374059589023572837327314036304623502629065448625091298009912537095636590350386772054208364014632953331092192110133659889409788360159601265596955047799873211185851405164671712728833879672114724455463974172647059156431486413352582243966618809110949120672199375106257914124358906571792512083351456079185344495530553333238309742582960628108005165057501036611563178622499925947064420635248173648934427735299777108332001605210104862870308615061351480058456361346561784794055946463719542260428636465379146030009461342223839374048485229285186748359470155195026050732721836851719658913825425296793582307560883353883112630202203819147481331330913476695791472613373248578361578238591730499766075370265662457828184181915438559141700566539007608118911889498488341336979526214053369205264009871520184148303151841498008166202868325264153320895714296253026876057064305504586288423961292988144937769420239219158973149700461192442943041447840865115962653347807125419541142110296957381064856034854981617240802893868415821752545919143539567973889956611662588647642884167536977890741554823275955247422969939539540327997536497023629589967636904217056213296742526552203900260803688423489073985216621801504930444482224544265983598112241115973562460380558090632482676410142742319563422291592020370380707806592238652818419478393495528411606654917239985265187994658517255178146168679605852845396815307039040827747501661331647839271750104978401724721493066746618640560308214677557210168106205341965843278331426771896671928584376031630359929349755378539918665758193924098277711685961170130203658316666549877566062044113034932069595061680073990536672435976798067551487840557324329708505038944663857566355626946529210872690990364064560151702230992062902290063614574364168876505922431090786542385779382676856184992308763905271630255033623752890643426548899467744860389749257584028022113458344629719375553471891545983297797271728436573646756053760209239568220555146975421574228506596041347070136843582017401818424047024636858345069184204939544630057548960546448245153619497318703209591223729036433329763531929197687598698783322918132722776752721714727473204448704993852076693298538193723326064425231569116767359456942406247175833154537768891038714304170028347506242757687824231612523687527060683422453386143584628784878618418536574063481704280786460172340250935762952412905001693489681189389150400186869076957552871001878222553731404152885973358286016701727255838283117634084375977548535092795245959273552878082571259974832365621864435828506681692020815293385308859193225472608583222802854804968285664247436766015210384148089492871935947473402347140749644812805596693773140113303192181473249472716309378538261503043220417844386224646962850374691182631251644266532204397842671026450361308926448989111040045784185544902748308940393765067823784458728758142436767698615537871280703456673001412359970867804301390839291745788516653675789249329623627029028853951621802575705867315761164590002504728290877140760790112358821299982230741086932550688729425868434008297725897782165448590157171366047488801929222852331954318751620705229148907064669548795681346614720801684571492679923745465412142472281438457711500706330592724795913254122886037992567516138860007332327395917852259012362573412798468972470761534131385693863477606792469830576102079974744994319113835615016075180998909560166388908180079893292895604603476989846375501069248047016170733993053070340219395374636748960950744410799153542024501816864686518074521748937267194361646142593927878994821434925333275014065267166283596731140827646270570630207435124074921621798968282007915782061451066840217008230437277840060613306796211470350738567799235298863263062216895506675983723257448749869613101183041581486412065594837749218080533359207661781027630206537758160375489956640480684560073906293239990952045074595584409184537579183859757350423609566015152421116959323634446393476213652617362995759296216724930012474134795630519313050711285094787463807011825326767796614509078532298111955650875870327789699529097917494050976665252008782742909212168829411931759390875728845569550300647712808235083720385913906295003984591192664456113241341855332556456617948860884837920862173948352786462199475873172823680021382652427971870692760338660742223676586070762239475924889184088673467038277851118160419352200906224076709135168578561235566325759748547806158459643504554814182834067940441932864690315877101942584727173750928962547005126486650267293034205262535373839689800524273029702298765731412000365741359496303707853075917603845974292876921940625177549785349649393761421244929112506289236134062439244089259834400109678239756679564964499927585835054338848677080057319510132176126165983459986467832240523324927475884967640102725649099284263382518674612183685170631636646600286682427160633802106374682990447161532569127889358874180984641583181909282092643539276308322440989412003131252596860131667132016339026542404841920643851201752413921809419938243336626575423612287673287767994923980670028146995586210573179346736434205320093248893772786002447022863401553772214394368219846473160281827512123451839485888417489921014827443142639033541672768435854645494283659876909038692005237631258121852669141626465740121374678654226049915712785885806183614060869168548834150526384849618476030550920757413285083925701506241840654586976713417159154580863565399770859380887652142690563704828277812800168399313402647304826700611973268836198415668748135972044402837140847470946831730926305694566521880915853990077538369546680444091793884297923728218058428933933045320632961226880089711557776353333486460365892357924178413641820478138245449210512766360519931603655527232880177344383179957518926021555304386317853848647053008249413722797546849456894053556450423358661864161532754911461397244032734871537938307482112374354010317842902432008997659551353271107576540554096769099291786861180924054675229542911763439409618484559079790463956101039107026781507155331206322238142130004005349907606852327397716693868855368883639892985545622466306120476221832403696611396142246681085151940071904058719031995839002825980737138290811613156672920365344889891442235822487683071244110854670466864858286072666278740040304784588954016982900699989074536404279061327363790206937595390390235079511896377239059898098278836821582612349040783292638143683596726887172492310318243211008071062274061575249384430766575003638172480211633682701938084083566358934680539574794967508599996674038419352204092224418809976988435460328269484211731758692428309457194654456656110085230895545763041075530511806243618092085060541075206691072557757240448983832518100412208370316964833593648106554166138007833009946665531072044575070048103223987922356482285051668167285708405641843062881962710561237299331968989822667453423169457774134024673580054230959925986718934603436638844138615629544597356832745983786233204618320581830192190173627312747965655483052501466632835895913174038006026647952304398246256186301085016285993523317324218056747362329389082041535527904355926612366883699087538374400697897012892450725118979490137281863492070333981080715471548412572660058930102740902488453465863925021345284091701262115263569170564999331590382019138206244516500390575568491319603680951792541456232086085715947854689523264000797341858287186423499758583410105647054594580568435468196651767061320930454056877782470778675499480467521295262518386513963303061177985479784203770968155895334148662963135010658619172825530145875780791955648054032641447352086039824443778800483778668992305027268749389195138039122850545569520019809427724188216022556780611952954608172187377020441180910019633210131776298116755647264328804707161891552529370689006496489214821222870507839050842327989378667433225809510751227292991843881137070276660605115537243565093764997900313279741027297506887368669099479376513909325508035324983417603580530335017527081881834600111224940631237242388328693664229826471651702291013759773899560857230352984661133943918653416108539483763855781790634628596611332550809745093695318082476568925087452505238557754772888953417791739691717048086387270203754570915552761707840236641369097896337322936225954715412814384021372206651845456034855426168266188342511853712585479198179879108018400406719109058482531632100465811204256675310546375265452903242344056508635846212743986575845231405907298831628777341912974874379774491990271202912792411649058834820366621931367704167272674903253511178854882182622703023109621386568173205796226532092651155473080189605758717694499844251488536135789566829067868140402584300161820365022488937229807652326244030927105580130472145489674480296824983701316659713444471624743424572851230382669723024213748942587071968398151607439957957649720136501700530398517897549196594726108993263906728076389364168975192072340956036983660659253466480824762709208918187605076015105387267011558406863686557121353478405398897309859835447983968874417918646849333494107992360189058932076053391562988070240208767362030560815021135775942868513490034424630648114589435156952640352712925116548771731204861060549389640971308984226673388482915729531616207918873957440045429393560664679138523297369955083510943507928193650130424114134484943976406692326837000200223776193437982445717614213792165601996674851668092677904806886229540606226037993081023610042051544919144093090393551262382661785976152603958123882623865838560314333359205530551090499890404929745896581656403827973661789538529749279560729752361892989769213252260463657115626637154337166278770216951804972210423465389861760801491746014271301784420597392607773149383089153152923917622309880372270992722748039147798466986724688889706292916233694817840327293097841795302767203602993623063212816867095510701382274554851821655563826762192091055583543585672291478601514604537761979607170456426252204880170046158122877264188432263779936893837129495726076619132411392059873677462226055995115978183436242526163489267458127015999478943083499062978056412293988780269568450975002964424905790709251932323156844254921470216701245120959932953761470220129627969889387101477410205972460936406890035900510649029666739844441888808647022616073514863806439349031097246639596982829152095475999142622112121923752052042965354098157767198232131383520951663408830664050167062805802370126060198349166589173661921625214624317961137383801861828144840836696445479208611163287289261958444576245666761907086099934221248903676541987900959490525680737347808551733369384091602973035103095252290001301495654491683693078668365990368458859114918850994723044491410917451072643926752891675574776548375330126256308501314376524811854372523202192066739030130251285735381029336998175543447951155084142519481605540123407577344327294452540980182558673289285680957498726660628658482177575652897811207594815622163820285951951281272815072328737630318330499207371282453214825484790584253715836112276362917966159767579843617583534903891391797880068463097629038154414759789501076256331839954266504232077338122726267891901369166592050575081814855600322809998090142879968948376747365025927612446311046701844276940386730403057243250741471559034201158901842212469747988504892016907778751330772377363280297186747156280263051334538640144140771961484544679270668625200159478794446096380155830798450276302645824304528592195048253248846490280750866204976079949837254100440611636082560540037821540154221033457132632516578357729228326181402523356106935065068861152296894519484900464021582065105089633896910408142980619405062514802249154523004768364932644617324282985044291257004873820582783352363092027669988918268940857327344648744432873510453375831832075317069034517356099824388838739578623170199077722437006444072826107133710171772016747664634623389104239074150366935441436878982213127590668323137942936997268337350168913079692976952329260953186280095582502430337008870940650515325711101657472035531915334871658251335321095408582661727071152101520002152760114705914644594082102231855543053389239907406814912948635759555221065435315832208561963579826248048392320262183323743603631979116065270255506580860610811162666044565835009830401028247310291209614299546026137683315545065993493610034472519433184894805578692091819620216496130585546231431379372126024136432492260282969518451482362546847959149739936123674710843624337332803308338268100019093057627104731420610703752880180394643308889265050051063903713254357936016592114416818281826792062937097959832837209162040511521454430275500727976428177508814916400781515598353885802719055447769696236975080942197782483061916609969335254672592093746893935432466133132821653888447114658126458004406302417812621079887276572601437989878624016513773821038294142037281908968655721231233955797535967857361662549366512252514638920795546128501028395409541381885591471938614546173292984064693579402901518236435174541225510478956298341174963534079719189220141484037211174985187203395076935445179723430384669364938241292667187739511371767855973560616413497063563777894293338905185514853520043588659502790195146205205503381717118125980508402410979411209768993316107391841405505742258757746852839910472148243376137517682766978235563815297453602628692963048328793838453696844675855754873631329489318572321537266809172907215546225640723483017004186383601391499665191047631461760252269718366816023946685572642698116226708393173627512663720187672404334968807259568494344256927451636319740686195984757804802565158310560151601203659541595785643709034962242088493570760852027960376102059898223877583885531672695319665603117295566412939446571642469166627970935028146397023947745293375734704238300337666441161692226294923633382429399468301282121890081789326759593413833103288111683696573547819522573042927382496157929675406734336274220866406722852927606835793685319080127300776047785991105262292635110508321091410445516228563316199395307314487242632734783477611895477653668324406360101455718970879120672607608866543532700786453779581325047561303930645325065571875471463372392492275982548060715872660248266207089329324197932440443393897065487809938489753191553252102183201559110019542714441132252690456074411696620786791004225205939484479948409247948937213311492373943710446586035564296452852622587919563505885406088021566240373688033516553188107972973499081362176886769615954958117760512405678023108045580827200288026884011338767890311278493308911147623097848733513430205133991019161133859323652742435136291729592993932881740814011194097068756073633485034298695947467647458423946388429242705019999568105492262533972534202435312173117015526270764714511934262323831161346076939803049636862951513561352233957473888656674913320489223243194950118282420965165213662411988072772964670564283476669417182484143365106016685028713091931590086844259557673717705849476528134953624539776379501804159409454057896915359503354217177837776892960613469336878552572350131333675257520413805847831793194022198618762051871082844341749866797432470182918767606584038413947902550388844275045295905260958847573551451648384820291357088264676720316390541220998344379729000127505244377433401400522045403350170326713676721787956828798753061199390211933815627349720293525052841595771603318792438641835019791560123866845790197533776049621415066706343636152969176466051160587950092901804901647461473564292194351872289708176780363961939587546861999653735414783944788751001552026966659733527536224144023663839146278533315307911048341515762495880739628992294729021952293781626667193578106593494001245699835935754757383119344539586633871709710260487913713509375936416515703097143613892823503443818946433227448385156377452707044127688058279077771995880201454867629769667886836929154586371743351758649268644019471089398404763658236333220872035601155827916421202265593749377121975298480311946073530855917907069017871634487155093017485879215319485122067963283555588258833593548062665939668324347503493822675595288351227925492287475631436883703136359247354866637449106582777698192004731984060474249237569224832476546937729918210320318928893251603452007364342829995527159459873647648206415954081910729747338584428264626877632231573855038637488093346374900223502403199507584112352010873100491456028905442553020795300006060013591861240009521054248684390355674547796848566339837336972298735037096589376855033369297906358840778034173267439752737509420183656840919343851242042110138813590241416095850207422566779683397713029059401424119218452990367574209562796640120159902067373860858380746556089576142436108223812137201818970186725626901205322660916228707291620506571543238529132425002419634658330387252280082251806639599879730916799279140594052409816847731704378930348482470575894976311926298798206841189828452245664367476623344523327639810115876701871762381773036785806048296627184207652977208782966392768561703573369082932546498791784670591221525703230217865548129552126970996390736574027617920802474970462474912649597736144553199941602307494771025779215122501095851764408848688591488139746897734155928174670139712135691466428223826041970196017975050794334846853912735385990118513116551981048949087807591321303649213522232260258777985655189848408311055542246820543073300013771443888333478251957321576940301670811780596571998301235935006518486340336250613670481174881812033097404838573648880771447056856317429252819463744126351228082379611152742568643505009593754060127706226710057059007966540985635258500964662031244586264871082277172027627877416897203615414439513289821481979416766403537987316532627003710980230907413234523614157670208031060211659489734051619072347109212843234915482572239216266001695738753901091989389415941935793256514472610500930210443878726559574833858209269489154731900214918118032711871366381752198425115783248291279513861897145045812890069441052157783974883265089610939079228474862432037137425752932265802636193854300455102255571202364315391335160822005376594007712682591376856766818271932723426113820226082457893465350158390312090160716466949654821444201510847535335425855962383004029142819785075261043806205992092383601913664014995058748253122072640178348613089062220024329886073860769000495650418411080198792323712265947320789250810612880699330497152440614759147951453843512475495938183411494278676429114906880195502541195101475351499948846424917187003636675827378436435073463798262527401491807769080365226093292030594068862000561840143705689533381768062508204976812281832729570144304806788885802604655075256888554099095217750131168361237219785454367667680369778483682798033022014917888732285318404599848969068565689550377859762619078909708560714305187878850586342109828138368034354923706946723473451766320468102816395117618898395048122369601651589318108101964126146735917096570078091948803229932799494155871003579578565114269624861097984255556710957154069350515155707489287867616029888272762480460377304875998863850816878833122900272593402839068040951033891167733813100473629630087030266263070502105327657841492703507256537751076359431278635651803471554707968940209591260869131695103855522758020572929782922081309395019650067044288150275919841665428638317806023199693941941079178723441475905868420244701373390333874034076663164898622841346159957722357117650553517200058649566766636900081054251720368757039293792837700068457034984570380096028129429825979916631116773723098608379812494500845883599040839099042383126442522336222250760317684347401407565195694124569070968851028780274040666159590408712591864321371423926766024778967162793657238888194229983071559453763694315307649995514552854117740060500931193661712964245991837978430314995654357474663603606724114892227103651906370347681226943666619284023380691473450550069042446282199076841373704488719522354153708274710708655430426808894273030518586543955583164142446312185835402441622617611057006051452176443425339026468348918992466931265247683462883964557015920458214129419265458304518601970538793199288646368826380820594996311487652695928248976254092890483444002074503655620410144590773376090242153590188100947165213319375967857695173490431434570497225083109472324306447520997008004427431524921614960765826648922301503434709707007884923766729876162676796298525765197049840724055937624742756106277027442505096545001943275391914707829027797233859406131906420227878891962257924018031245354941164077129517597375048020321952327298682542916224087950653519312352351375926966456851026941919208112048804746721800263923443498500679835444314841245923279755882486674839900504718595277647087674770085985501674237260674897907144385332283669875087079273629842706411450630878712542128663921160185945024221281583347352549847713641071850817620400855243016961537176233064768355934896269815584726516827025106759575144120393553576197184324090996695697773961062739850890745800210311972436286806883951450538886684046113044753999086528258110658890356299149935116326992071007061504617672417919749747250790607884161457703574594529396395914950404174338437320519281809779074596528418799832601516443125767695947916811985880939178756288743288352000951741679301150722557329427567288836643945837822365174418287676664966613613763107204638790223951010333198433197078491553155286161946066116109325800609135573996355371067521221942956083814987295785012612296397586589359619192983987755946932160919825686183544953903851094331996411811927995187951530373850868152226064236867263143624786374694928619307466383126761212582781969865576543312312906886092695706019866114086231234957602117179910795402024280571309383909939977481937272936612025274911001346781764144617440669410894985739735261325479905148917618984003821067402803868457945539042132523118434577376254314714322310482289849460516762116815251609090507608134485431953512919982851813051448605521636931937896889391396568481529331582643001369299935313084559716384724912470886174293434361891433571668186365960326389598561422462217928918121530380309396482026808310502829834153452573350567033873713798044068550786956455289830739408319280700580744247383542412274093064835993477692043030446878888054500580452011779763531214404376018953885592384201510323538466112317436090997584805818447289487587996012533102784262492411786693318290185543438867789394839854822632730183990164962424471941451328907582837221795523478382717648205295239622174608166928825801986841726687273881131598305255477780271743992121690467792328345714804285837779174846876482635324180908418831527802226490954017371650401090041597554785351368302938944320622243519277665976249894381742903801174017111684692170595813007755599321599691973307382545016209537796805011392729108749281759567151916260819153333512981626648337536084462723532397690461199790752051320397149169837615902318621458693863702599327805266889602791243909491681718987627246286307974893175616842479592015560149347423472712568068638211021206187175602555058999488351846793557348947312224215386664839721766441625166253976458337477988370630516916464828090028794122655387188389929587593882465601765560992771645596462313871252855242216700683562625353526710103220956230790959528956120545353133701470404663949909076740542022958608404230551594372871944608731416574148332194643961431015352449642386720590984985150401959979396271393853911720092466941899596220560432432430542594203574947803482286490677971396532956992312376989441058881220496439369318122956549526916149314822981075190614037836775190151197239859706360208652063250770853704339929519857459613538182074596493012881648057744711112385350741497379922807375716328733328220683394854245012768268799205805155681903196010810299998787062213999902589120376197767741639598797502281403469788920933553414727006876184109768560338969098089235919057942084675217087308537932568363751362339462138250937781198222304937571108912528711231878390819970325275046156878393515495539827586674370756140198905750883872163252386444646986935842430875902551097305801528887872213240209324551867641045807681354694372639014059157167747163169283624954388659182464742331732533572216542647476505954248240586255965812033071527995301362971251324255720978588630213002173996158197127486789204110164629297362945065942962345503420819757031076766957624511178576905459103916872901530787931121382529154146918905835931325778453958494546500064101955255535626360271943436834085658690002891027530012881354990879041349732203202839454715335343032630213579178054973870231625505718679390138783998099774996899455343546925901298210963661259163700657631622497700418090223890506957077566404243067213642409088513910640596229388084617711317598337106479567306493547650157117605120047367691081839247290384210979619206643978372555373828102135476847131222762491895560758438648530937369838362205473716222527394772327398420206749213075238494959233218209764867898379332589757582142983186799305396680528552483710508540970807082178245002080981896225807080237094606991657861676268129814419214069528199102988023027752943414986958162150324078384400989910392191870720929664626755312064376562533559564707753502806775534795270963142286917419679438772447276829175315499699024873593588025126841376327569404519525370212454018292367389201739311315834388012334276484323974606270273760858860280084303268242313152628155838294117536329111550879367244303375684435670090273064067096603591865834605017457619103300437148354620264113702229335204896988695652094357385834692474288305569068629649105186356085827551757868356683696956731297154218373406831253649995989358343517729163378108681845822969493076121660403118521461177899183861866194037301907983538650179731993171099543683115198726296804541501929429504112741536959629879758464726976760838406618666661497315843716929169952996715212986246695200524302810125838232790571359495457156548008064603776584043807005263605586174531704671187366360039182786815702748879437744793824755121823911479011641952839570067452602847187818661959703361875142665265612078104256224463775769190750405095492143630188992248310443939759398097796722602384670669894396536194563906677965716433314379293149078705967783794385318436189529729482240365032634527641524535865797341427885440604758680005941635572258804789213394534358964727822819905308815862695339721342923066141763299087556330193659085333379052813002584352581598640844502127310538667478584296579135246667861023543847200682660471726140946291801728165091096686376088223796588512503586065949784221458165336824261871633624321826355428680520532381788805481275079870480385952706695667595371638281504582929818903323555356795675911193912002201429981079570840026963015028257674184236511764329679877202894724179373029771776172893255426093492917330410198858593898458590032654451490247939288606572200528127931277614800320245590244096723209990910815821839421245297398369144351955534092276656863854800835073558014747821122117841937520512385896188988618363376492656107143941837336465186571030495911306253045840953840981104226627785738834193369774847896262440926688714758553730836039586122523993815832222254817701794294771872874420006146817318014906273518955326260588265695959281561279128439926117261564900263603086751194343885124064756319629988084248481853457051923862131924291398454785301766999438464785018024935973976780739431164955457981675695964642955118821266366820114698313032699483160424176451365428875222881005196446797766037556729956008833078091556341058706464608934369498898994003210608311039881332291126827343099642571803581938099941166544025744798044789030871239990832596607449543625664823921209957912833690507724444759127055177744958590398337121345670174533089416914187781260194126557496074279519229317696929036743626610665320450773330992953328137134954625671796523387675553228411776310173297418343789648318441437563282684021956133804327721781570289331972868004858972205071355450924749938051976534779745039260065806867413503928712484650696879007900167815280806640350171968747257880581208057478642943099151426810466154322274802463617662856189116138780101060207442952273396961473275920983266484173566462369630138597349696795106870342461603505105403923552178957606103394875211444015476147653067182257014641219582717980368968155169744197633410700622057814188200787759377300591368385091250341115118302510643639415199668133993052076827273750141486169034331814483110416753326203032720297497278354634867503355508908695423572118296719024669335293505405058197437902893220191262453116272084466193833326170340408388038567230496982344447295631055233767488780618302903262989976409489959481261176163423046551630296190217266077049251397313352294121185604266232227404273000775893227165732121583366653245367034373339128140099889759250794617940423661275728767756470349337980984963717579657226770902635344409739341168960811520763686883577801815182941873130076543158314553311167870180724414184362138788066574936468864397236781074141554973192303139517356635573569960476712613930412497688114864615429386956632211102943600698005461488951643655646531980883141624290535065665965318402264251551420097961399911678228628530853841410192662233212814160978634452758119188205976250308453873620339040494060674308268724661989059307338073424345840848955493595097856063698341378147860607826038800966300603790707241771571467457370300115869134667919579072519213530536921955757100580887289536360195147702836118785382365620807228712216427711731509394439398064513224329961932075460011103623250284940010157716202136808113656181019268590943516050911055328135140471443566862129344062056441690019793242233493388473006531053485239489225392597294420401577001457129101758102112783185544030427359606853973962556520007199875733732338475897469938383451890859277049759239123758828507168826772914033957266229229750424354907238006809400408912559154181929542100029322161140268013574662559700959539862111485203678899855107182367684310398613730638539211921402708385082017052202689312312669486039904705645451655554236420495139285816047838617628207831892903682594102937365034126644925754809430027752514831393281388005317277619441145308090619343876158308680572198038658124824003956654244294001320051686407922180069503458052003615462900824326715313475708812528798268006147219277446844879675824063998615158725352654139342384351250654195806217445405603735653359259917036459643236847579165739560082145288098341165906019059970867390451069608469770182344059988523828938160687809121415651300425915609489675407156548023613379158301504531725154760844556482860794128363075030139422806233118854414669498207882816383842486757785238176295879430310332847117984977445736421646729416528615767505807243204844834830406499777121566952715890234795757416741627509835167465429277614574569167750919790830030308636571784167904695001097857549082682587504049144134462029641540547628783975588885454641685076864451772477144337415950335602270465511106069526052775069389573123053773778017888670351720040211098510481844028433570506230366096103143499907297206275638638695579357188242269010100553771539513905936869857661069232891900156951820869875133640336588561883326475503637664503219983468901849893909110703195749131119631590007447946137702032522953344309148369470391045497059178351958897863753502109093858953122098847226454195871197331064295021859962692884108826692701062446375504199612614993723228208567282675567684336808780338994636166173583028220823852975109052748716062636952901862790990207987908059167885117849900097580932692045193395495193607368870146459753663498242524780960740645422514467284702402876625616774958397162113700034219117780247540887597133593005810763657246972685657095675960442333929161491936137260887530796881167104746402501539485060457760459377712034120921183669042806395095082036797206151303121884651607816338368090075696931631248363701306764571644307864583696727653765885864127585286946550722274616535754898564256534425252719020557177284667274933466101786925034256747427019136647198692487961723322972985761045993587250282357154641935736789741153638628397323287716033051025324047738889718725122894885356178849978871626094760296140774947188038554253796415017491784255422402535327917480805410289453556996455666866072193081657391505993078707044124911492043234171882964749441608562955133976208156685198085229629042780520634894038934819110295543253565960026606682078091128238598029151130935414310682152727000201257544247679537412977955563580764126920906750684983510331030386658170487386860154540982935601884505163607799474926908392345256534885392645344348623641505393413574830032363852514552837143850833495712308296673098205106145173147177587489417571104511608242176828589920043675969683698570047983684374492264901264029924716693657857704912132012290087544157769164628431278309618158726163178164552009293115098651692867683024213006403553903602256598255955560612778850768435440319322424878243522281584973474760097877680646712036610833116552519993030402261241391411478239389100718191972771059275070213973135188417504358108282447855020539848575375610667571690443431235013785584185210720151492260028847520635638421259551848101559260437807411874371982817246344367737124886362530651420163408612414297203502810270854583668543414910593266977205461045905708998544208020980131881656691849875197361617383335315439996567591045782441035194174011779735624438069118519255115853134158164052889354556414615484418920009507284775668225311738051873372148398609547855417365208891075741797857478585504632225667335492497944762440696501401469808118482481158365828739408486803650664922688260454228935629298867365768035264923989215792198874904894477232908720328500968148045568978914111159408165692149948799666241314531851618489587528663646485441961309595093609157938622761780999041208862759778905251121435626446069515995844835314548996533484708469974802740532108714518569184933798990263771851310760944457272496015558749446888042630955334447366671832054764396182330509510168323133139950221560653287751213036836205241452716942313246761669973308457439228111853170462544458993954797418029050243059164972226445803429122847739542613214024868095499057028219616777509212084963044404336668997277969624430811185610022509607792543189380120642356080034173945866028949088784694318830666215255951675913867037390272146983339403334758507617934131949244658269150778388451683603243810149155843766171613272749526663294632351932037102924208308790183123772763029964314548753488263475057808116774389032867491411503637926393753693908924467896400675004723037808089090195234601537822625589116148115132448496798507949732569651011632086453442913240610893044349068889849201547003819192053363743398518449672957359576458035543955725133811674002708247780862781314324122602205845725537603299194336940201773687308064863423841511383744604404418715051361019012160677669733903170553830950510284357352118580698264130769739382120716814478093297746984820970292749543967321328534936755548524205782616780541620350471559245015182703082859730155625314516677864114419318738214885558871464223115785233331121050667669678315454211616296515326127113407373755019644905266867832027706362162074351678165080336781960060030875361454837304417607743153915023211328171403027910245795088428761670819100254158013039750355736535899426861308924993593875954067142739653022536083573174177863222493858360897824650535602040174641986018838340938197333610979859009557971150468465686333100389160989979108449796021394813990908513536751816499772911238068070032445628340000957356291363344183041691595179780915726908943610466991241888736111744752334521609813166357571607666583983725080762501187246172129334007649609806949844250522629839910046559918922964559335221707745123672029808654311229862995815621014375793043235669581422382553960099791974146797050196714398860621900555557264169444782240157407696920743733939397894432737502876757981568311201175144326600137102457253936306114876696050682685388432502895725022809406736962753820588755885211860228915606571220738039646929037311694946761478262595111291126217969486368367691392409332243069179169043707346570262866292633312842537478080390853871222144294290901733509528491180334036497589812094950719342017761310877167111002300355781969770184297563671795359879345670209686907787120060909983738662109656584499016200239783812718564937763679485160431644948287751947592103390512910705820142209829651955881676100381363622978193828439563180230931025199694703951464867820352236842373610543505768484945818004920747033830811233285654029607448721390550454570815644426529467871068734762966988516245905108307007563619318188287834933531047721980744237298463994213033154949493730729363052361790788456970572421789468310995456142866919375386744816516301941276893470109586571723877109393039199300451685424996424870385296570532428758492661985063777135768982742814927975709986732782260094107715502025574828709956930934672799356747401232485110964350808838090349754702485895541617691302864962255575757582032988497107408473662999178225689551035295618000657744709152809172862326981265553151744690673284101909446262256690956525138569188513793499058212333580603739715089522232244270318680211053714881100175038110814525933118256573658795339428024088239592244710589467047805053521122494208201638201262210610204677353772543627585414443113160981778521932057887210269351893736968352762911249190784679869377597671415581464059565265333823357386549066559549688855784782905733882017096770147455631537286718832949215868124616772991265100664623191578827956589342438628458747821158388227263604976028219219998101767363621164075323458143445691173720605278974503928451278507147753910914917783409322495639731312679647312733149880042385610667948837375062476063838563267292641545998594574060537358453701750881338259221718998244830379702097591963382815881692985548043264216516134821661042881651555212393214901226376043729074177117591918245888865769187734249665153188915215182682732438981603547946281784568283352507162215128244308882221802308680179653401390469013230962887291600602308845417953645714948588482704535590675855007785332237371223465227477095587484510344420544813007319308997867614678331948322443973161651018655719478121169402589496489018209967851762238573830340602254051384474611344109346657842908571834420963959453788750178896826145566075571629710417066102240155115338343069460662835843968586083693188784416311674109170534893085036745095465388807751390769882888976992395271334798412573223529398686943897519420797513021301019012759487740573659871529493129824641970869841228718867295571250658182025927238601127679456195247631294444778440891432762251813801857537720671447137440046815763608924580856758209706578465100590175095657971807953712189349322564338399035663315648684309994292742153709404486831967278213340662650942636806315011729267468803813333587610441855095971103302746907815278416115165155687948734844743614281955096507746505256695972826446545206846353758134026365746513957300844096564490431286448624515159057675842261464228068766707404895965158468469629251044115620226158203768490824852251588559757698708014542061106531471463085286549212346308826770176891266275194069538821636546577200840918601525762796061141672754809636454859407393396712781863236035156309732608866031680701941748325657051621943030361454757675295420784572236256012258295514149418067412169194086513651423413309646462145096528788353961269861759483348039914053133413974421485970234136957252585956902165542594777211100431973774668863307729300463705976239389748369718545909963660425626651466834190824983252771834082990373209344688591621602410612868074289229880076913785429597271396377939514127749691713393922218788696975320038163925639886865141219918276727926273340065731746357537296481490095223120555075909033103595565253646106407521024822205429459783614841955898915096923522228620953988830227663074021160663892973771365898782297078125366150227430033855773025310893517025278030349851817746515429241612095299808208021362998484017665019874740210677324007262846437588899044676113177464308932783247877450519784207549305305621670371588919016468416035742137208891584985436846204606950072480518693939448979821278885651959142822617008635464522750737638108641234525145606499345550113233422374092068340686761407319391298544477512880706660957942688662141336583873706826460781561840428730248049389403723159051666752409408956457888694973643980620816222503972898393586242762297122481850184549928984963307422360496949543597356973536440284494677969909802544974313218448581768041915552560929696938624362443424062281975749984002303831354093574818707527637542515049357028059063037325114966094287011783693504050540901846181828748478440158046951688923543171794735949028906857359182192910941941119428693421517284781056087669374703627494145771454016725347351953234560474992558839717911539901765857325585406504119025682023863336906504823417174871501435589614880160752757614298696318205037664368687298957802694423933228510151976999875889207496573299220509526755513588401755607118111458581526732969594262378335023877421604082448335619324613875574220157642411777925787665435523811247039978444476922722819021781642956002211623550993497997197068653846913641902034628841728988417981167663292370311531334857654585144404217775119535620618344645945628563564642074363932772436942239647371872860423892670714908921648233063038002961400418748090866338988053008198836611111362974244341595669219348860318768309985442052667786500457404760226585643263578646513067279236120449799632077100883189648291324965174886712214090459331517800480522966689138270180741444716694743260474200241327813314405666306156717600672376970727783577619934090796160998373055895652590548491179347298374240098660077020690162875647060636475222888672953582159369736945337026697376326324502431479683220439818255262353037622174273804071967204611154051753421655798262347358741883956948779587515231812335332849919182894524396007208188549850669135952021083548129433833077020343443721918741588219225863983925889362300054110349517932445295226836920896026398885182222557471228934917475611752307687305967025256673190154652785093166756586452189568891308103437577290509665789412049841003856351082991232050561181213033351229001184968165262923461610052294736954801668996477637602797383739519457725109586743336939771695541851243732058848978335383115333807069838890287252759804250470996013463054242330729456216855501973942402878410914800127492057092506164411820309685478718794310983557711387858858786000315757351115071873230476831352210164124697898884682100205112118067822942422658987578934872260398195628004956570983258317872319663417904127026648719570310184933238853937097994144549145198533352192313140741662507616173531256212443764514186512993493736528413926437562687164995820559048353730559981607738737967459726440423757865251290827661421556375138281551508232361415016836895627861770039597360947244523287013892894948967960335837957437865743040455765420682452193658832046728284979735324810354074492141425584148435099458796006873299149785677538535313774574072135631700719953703770554794979707897002535064797542881782457772443953593917353118146582797971478753573620699392697002194044943719428732439820992630205164573934090271604333360182619260676524455539060709331146557635854145235918414483243235981161653221980143505771849020211309824512576288600969565385646231891346197116016856911634446616510980072058877290692550157401574203764820409401569585008072198185829242871600280133874354705651343063886864786615077888974244440494475233760011345438783894600970298248512119741531459001314883068839595781947886825494476045335917652183887003263363529450258285580146235827091484355276379956664119855352480023224437500321515225733580127540286567750045604174018883583556847534950961923741248780927578742433179281326764636475544682054668287122370662045959089162492627932399144097445947230269737215805634959950365848964125698893866781944160466812360171500633022065399945843840654881349494318883316496154402368453545641272865003538248454947097625829250341433260452567569072120131988496428016490890084849838495114573133272625017377118779569606595638984284217948480083144246562520172873215411647246516086344976292598079027100304190963072351864852341881827505499779938334383554780120749198229779981381285176260375596421058325465594843612772161744300885399409025600230553626185601577514889135648445666526498919342244755701449924103304661618035256655833424814987373323063733600022498466762868186138402157360394020478203982651144024850181083296473933883712287516295169311035798024353752539619827040029117798278776973656799230821371351477189815130452288231718340828916599341912199119125153055852537113075125772408317175914879569756019662510762479612673976234378576839993158665297385100544590947781728309164119777579353704279917705748015692448216334425027776171508082826602862237059691397042871939390443404400884840293773971142422705676709540428662133182312720909569055255669792228856222377156717406854086851267333247410082896653301528220137759804973181653342870451175409005628513501221051631273464155280588307994883484490172122990497423627093913310708453539071051220122585280273865679212876126290384063617733919729161197824681222083817304972315883975364175552039333462153070918384532718065150593575194832182254275491712766293715233832995332462737225374609576031132483428881389546690931742506957659450521034585343202338552906521568566817329990892547377439697215771345797968420026929391648612467667834878628221653459604092486633473903926576640689530192407659406559580252424288756043489796042468522856605289411240985623312193890554681194219007449536229784794557590634976214923863618615900421299806390910907292944919500201178331039058686222851094486059525654522600182574204950364385005804469411532414241911607791525495982013652726657789946992815803326956674071907083008415090708245666126199627455092741117393372568827903355224913400586324152932317050592428990567599151249274440039954988881096430915759118149836584981230752306484152902466664194742824008494366695217248633998999099781162680124693140274215106364270797754413339357275544445860058548668764701522288603541557361299288503068502526296923803604239116562117927858934284639267651279477795248335115416690142335512788654747140681152926722010007061848121192261438362144033296487081253102874027506098325070773675752836422750402663182219408900171302072102543422743503238310116178453641975282514899886086098997343529902864237135777947167986027698988758138956687554459900833317079674889170204680182881646552695020718779202037262814613114190538205583098896033771645542336110445961106544131028687883657188538231161649595050405211082289030009371739384107449961391629218181044388884448440840593606772236459366019033462392109267125761817179097068229766670058073105852465411473861314424979358852090192476796979622247337305604093647158133531471323894092006444044203562423069546441299974075843575814997911889071191687567661278527823384203166199959828622641350162592240335394953378777750245405679305239134806809142883978827140248304755400382519507292662486858010150242865421624132338320158651622617896973940383408221563238993356401974178579057189026918426670315567384720552871249249287617122968939345866352532769417744661082694891947460556922416594984726770511857698426635185287080593127428653288014730658438267938952714833280064943255096501822975443044648594186174024260201190295753191798929241296729128236395571367930540984352881693415989788866621205197533437748381240818227420429588391188243992849026118053152995195515079154957612379096108681832849643836284556848784845020252328566624503931084106060756933209173016114323475219296604492827435929063728872293277910843270094171072786632673661020562243975922256594981979673810200150778552879567268020515128399484640254113243739135261660845514059707611888039415968298170300873389931664778397436914178396930256641016631881905342510120461276373298745883471899769390425711098110106748171316367895458899727896370930118636661350838310689523436069993737682125091390819167355640635579513258655843026291523764013377972675078735312310999083456831405240777964336963915230161935125044226742487937394049681675607127063542031123988850134379655920677372868410269576268029579382622687195216261738516011960365971719946912424284570511158685903392235666476368683979281856100938723467519882315949666621125169180382405757637950099405298683505129123372484339474781189802026796705039398561040582892991286073924961857666669727259142849281275520355643881729807295944852285125413573411132483002088911068025001320292129000115798248174220596290605218587728235620790748258974158193169711835915824858625360247038290430611447018079522223959144195543484662847578506414170357261916867440399557606958941648392574403059729944561839625891141936620633268317632964745092598508793996938456892323368365422713039952147749765093178322659816600322566486721434691472860768938018862037550796834663987022010484884171091862810970577547440490706799977501992407284248858372655857740515618305131876149011208191006634113175866765701942204881313382005169263975697209439524500948894301325544505528872657760042987783893009031937385415537641772599680353298485475265207792018874566893162846146450216045136387958841551864798270378848457265490531337852916951658264314505767051611197233368311252857143721996101784982004545854492060636980638829021279150659318034756851162827434044182723603462887832069016893288774375959249408289113184951316693241496368992596620910239974560991309478473843891636248143833015188050870265462927825725363205990080334185068049687652706065315744294227671027427757525332147607436274624748393991419429845478831830087812077436725501271214209728046409043681888892359507853224727744989757798261943904333510000348275897264664196652086819720714371640964430937575950837034844801640347082934735157073662313819703099906625589394880290835747799941757505866362806058529213281169979794877450653355300437275909308072169777964093665002223444954307573919025842872589356780108840465390777788985864879177465859229969825694496256813761745603960207672249803952908674791670049387053815669128988698716575376334264738067525311094463415920450184454315404523669708107784053209763101364222126989984592355162499354805257273506140200784118348151072235273703482875028788086305346247091651098586503962141595223565119461178501035551648684551194619625393878144480248372325515172648535647550074815483751924323519760956804295343588200385765545458654794507482642268769429083056977387375227739342127194115065341258889595142973953881725451941529469843462303612474916507669928273061914677409521800801398806667440902948440613112482817449263078632180978324270755969809083848662789456669869838452721507851167589703307556582957310743160391564987840704285196331946382346968692019435087849228839809683320584371966764810630757049384462700365232206228736338798102309985261233317963156162686786803373966979685617096607289814391395322170284702692216435466765902023865335088892140523839808112491972320552593707574662102498948998330748244682547677029937527145868329071419157425440332781883769368638929479018064511412055203250344481962572811545297602277726662658143462060331985156413870357684502347864416312160199199410563730111676618389622231912192432931469663087322519188552518934042382849954391575596975009857124188846931866196638413361219663691074331012858744235667608561541640201392195452470109686998204280433749113137007025855671161660567423266097332663620209195143260480018252022806529979095234589256066179461862770275860302082979420566628640974473664129652937757529447145358978088134991366175981144813877222674072575476900904407434669577891068256646720486631299369926320998657849098558425744941954957999770873525761152380194361380666167203227011138027028829984956257087759098338865380210955619677914407071900807223938448182886064468573882322703003154200109383095891175731667828252999422638885515828224521693828433119656971902124786229628193965563034912230914648913711851043041358264324487952833321944084833228293159410983212436494847747920782105709212680779872782676058927821116247762056033829304306918460306292746816332447858870302173106342353546885167750258161529771435696871006308332807945997418975258482850243831490482169243538275592156076675794509228033883481562844168772610336971124356109247757578470325875620500441544250894379068001175859867243718315691433726135076599679454582223948783390383803529789353760905443579185364021974611480667772197050787162021383932104212794872459427403015972981904476377221499457039759444352950924549974562066389787009954697995866850500914535360883771309939788621880700027248289561188620081447929857815702918056560211115994927890252425455767913092486255460462974503546025936045894777328096882244043525520286443940549051022531673803813333316791963721197974987864255726190387139826265801356145363164393235552457294304820910774275460800837515468045313443442397797153196919086431173810923105651635358070719790778206624036409322575944503225163015429632653684340614146683259612958942856110747127382999103784900863254707590143874829483047086152166304627352206597632941770768177436434112877050542880043861736485483105279019131393797266689999005856174476352668552764700851473437708234162651593220210544146473079965243628235452010069173651823653353250390380724209103326991954539705031170146080937947213825178321862320858421771017893211989977520955230942742904828044099396663370879168210003000908105814244596082540255956299521568083146075301690270877332206042790459024409972783927513060751503601937261590695192094503027716805455312718616654849309997950713050297638736062236663296557879292104995404951066575322081196712797871041467342125953054268703617055022469050672495343149818838737410647468835474730938133013264651562642404840812827673330813832913642957619426860461559785769695269215883030067625884312132224118645667535768903430810212814140866867160497221717732988254774098795351499928027153130208187637975671559185013954371001834385113952454958559648320736820205095793731838262258181523832736711196577111718470477048847808454739279678570075312420138723485307755950061844751366337288443363934033834247751458785770242448255907998691153010134479473018983954581196316595420007559956730034516335641218634456551989584849695817872294943519210771113163938074714405786461730363720089019156339761315683455565578209581634051079160746072301130081952297985318279134941468515364304595291678041177416226912551065531885350866481145803916667559701086076425538069488098899621273662655501257083749490633720153868000717910647538038664769846770210155723184488650883706207765824465685492213452790024291713204107640227835967106798364988106418895585867245388744277502657952377698625015139213462883879962802647753030237223030940662032385098169948483188653109010710494826990353083414809046023180777944112871346500642370590038686884908561670737243919255769683909041650618186362571030147557853571445228523120806891881714337957757929700348130478820046729636939821207671435467780278204614839269463683222341339463484037544539603192105436209256190282074231013096891979131781852836609535725237387715018059348787582667410784771233514683699168702864356910132427807665744015997736036243415871877794973172886450467537285757061812561736666978237747502918786374090152783987997094601151944299426289756044455297684246542847168621152423808600472683629910010887749275137227842858919290881449015746446787339912722467999043684155741085755972039776334483780765568077421768275263015617100689629615026303766875563647464361301064987212432674921807365101679696567899858585954296863724762531261201835073227887740676085822066221485235845967671124913499185134991744836415228448087437840051106764484928590151232418649534315122578750447709180919558368007548660000390294853444562443064554656582904051585983152616970385683719898252736920401332652793693441752755853771831463910320639518461140771288295827228257895456852601355053448441981621176995687681044842930222806062307724718539358611485954534490840808108236282076415462554557049974157432225061875944254737204141675728732759146485401511761799931488563260548122292825640855273477389254378413341968141071912429634675989725009693305837079471543491868776143007686725226737176890457514023150612921326479079586111609091190011567713735880846885516005093541813051424616593869461894482600404727859455311173819753275202054285493747735665507262565645962438452397180449209727618221586543938309458245168703236667500326255433109594230001347759712249425063800963596423271362497970723491518501966015377668779858707467817603124021566703810196296333393462029177535729128449858696035714168922300988821048783378329928646415520793018449057185583425706218144799405635341829448250066534298817369652976684857887680952700804577662181544042695391536563625621328852312578425151668984720359991946347835537725229396378259988321155168701593541270870418625590474833555269370198790396224754122501462288192108003427415305771625251638249891038809773042959295187018470500118975668114247679023007473047800170630966398678538583145973855923318314002186575162515952971774156944391316738413476866481564494851773090401671330488061016772379483587466742969188036533824312369664458040322652954695217508816989410243277106401317994948821526165453022855024890305179529781199564499966775182340235993357210238531461993683168105076715825980188928449652625433138620401374461954148163946174542831381067813444879347455494022490689482374800818630728314363922289960304116869350728905736425428895527154214985129171737217568801425044019787734375740620326989125668415508844637566162954823309665455222058463067129469375522725976387588638778831069486653574271702260248188262042501535982998888000923096940053094555441000777601005747156483894503504070441714289261451660614824979013949080352609359362695793146653691068657602164318881212405970830573428268567203068637311511522252182298556323056171423168904732931915876872906554007477524824975029228078806190646470942244380303918320613583638288960720589859413951729126829719316175385704267149702084632944040764880628151646613713568725112470008489146498359647247040034681122846794514333594718267842550927347232658017696498758740857803189694956972239609584438769138575011576778745204279702499347593713683540350078170167815931525936436539221095371947874520323443451312407356016002130352894251829769662934322641722094736016946025559538742237829456886671403813403443007832910607642053328431366382711144107251697160415809653636645682267928860181057339785195634247865048061057385615322972395451208096170011763894514931482468752190418549556599288504079903967497852488569398095609773074959181802869777253102348726023055925951642467775377573045397721456739735196128484659558608085553075168292285203328332721324438601755786435790622640609392653156582601324059579574275599410286164820783149835668810862335144215076983673742421016535447139484088737047377721421181595355273396540171293376446733803046024012052769042668224193485837031329556364804753299685892393438717055763048808574202640926930212453689991659602029529420452337444013525965536368767591885536334702061514800329162336599020024236747571276774498222279216731579524322748990101991683394987942509304729388611039433815131140974422495479240098899487850225273818129459020110458204602968016234884289882939419194315068099834373083147154287996144004310010521535316602402151397743092346146813136475791492808373206790014234896926002919838454823722064280849090904144967310728220139866613299742660156890268785615122004820335096707786451359595457915051659129451565356322909851540434134720043808115486161848455699736412850387061761685473544718452928702055841507649913041337262499496761084549845352116042174607186496572439662297267333016242659253739450966764324604468643827060359762620798525258756914242878066434388150537723394970613525123285770442269184392839339669227768661080319908962983492600719336446138824432145727659376381001389114878872503524950178009006022493152501169916054429202059130725401201362497129384597216742027268465094331726428132262523232405184145279779399129273457265717820508143307859413106721064695135864038550658609319048133599798320609452195045581988024405267237819769177939962007327335852228359117970443667950805670623827078774383465510262313229648662002282003824441829053862790945140590510223230959071140659273744180933716562063134430309458433142906657133954353625870169194097759497429877493414885681483862605562999964605641403966937811912342784871109697317864676029464493854337308668268211084143659978914774970660269715158318461776454885627096129890809181213793296066510374485499387401571829168456413918107110140401081375821392250325156677396529558642903758958914157643752460655646938734421222798158808141721350877000544156454581101584962629307048586118060448624507704590352602609511505865454330860453037274520207313334753790540799379997372728729627188183144057063284533732952294066595098568058363121214220332757303146730885374712992626104587001090893801625579154008261520854915590207374456880998756247803203004789939021368267902060404160510124033844677510881188308357843760399712219178387924003448856174229640885923384406677639334892743561401000094687451921122977438057055777303043633570473323791712147928405764416152353737718773886282952455157128749691476594338394537878986493534609209605857579881905326110687910402159124734986706946723636971687539904486865877610400404911150572257376439458481526074456459795164909742711078803633769166947228321470813842790322172844734982537175080498125089649760660926338196133780201192552248901278417260779796989589587886195151037918945104128622131883707748897668203810241301333154883135351456569257348800805666273411202999468294221291544109004503539596759571162625109576960064419956329270346512110543870066040274136110849101624429061347466690572997222263647437918221883320490110231293864256828946056850774574723200660358229802636406104348645064965992541884391421153305565037898926064879607227663955115206214375764039292496580017050917908782574296379673843932931960760382253642679554567748697995084242171718181940626069239797009775300302176533046695525174075306462366440578938160583590986187327405464210431068237619105974625513224787944270718630885915216979247016494555971938082206019914552854236690450455866373599000557473053542979387855526960628523853284173600659094056443623856761256044501962586887031904613124251728965836324761163777391216737038485645625296825854039189625197980930953380306430179173899466734317833305137337255944147580550195097916462330256818305289841074526662839095085148281701676807685851435865260468518927922848680789902273202108735751305991178498536973577168683041969808018316367244078687821171622778560555986139228977152916952081882786710631557056678673008331056084706131880307418206306526627453470632622078077308459484777474712315992396039512800531803841549506313359727192379718235776930700460521244886630603188727187973948367822930338940592133435341180885513727163635136316124763745432151017355132479837980171117774478398059179989759850572382304453680673741154263054322174351306590972686698150799213487337738716734983198202721614431072982026498566379365811015097087155924352434375781208265003889646190567107534855370195304947390210613356275735121163273983313186202908372594548727892132289996375148403206228328025277814700988206637948848300746909406188087567508184946496739642417463429479177389314423619635091728185177055797437029268038362214298207578170006520939560190122818178675254115716473216414179779944395587659232327404382743180783511138093283076548189080826051977038363994433023845194569843385363631642998989532502801279233814376510351825422811633860357975892030343272274000128181338740005548362432716482395482095352738882001645242986363376424413738035595915394004498436979025756994029334316898340875366160450403633430372534182328876948538120741534177902713167398586510505895921761281151642008783174439447753869443071328579469333542502365276653852252188456371606226028292671712845168325475198865396222651255337644254459758573836440932586982827019894151725654933496139815934811595944920235599475759141397734758006883500033771467453287484223018987931761120965367646392726823030104721803290521084690255669272761361076689715948863235136210224709535074054956589614652508919584625322350022515199175676373118686320077560203596831223284469578067958498650444282680522846421684770578979280551271922671740455798352380640683788554171864924923221329388877636323642426283848173416033474752284583143328345024669935777636338758952901787479989123072537927822735225139035043161844420008200985768038651475147495897022464875619124648096201616967316608338693259984813095703850820347059774729311891545637065705336620634494170100926430685488034010530694956811442916534794004949792797951621422418922708449140247534434701378986401735687302195984140106252203693379321159778383082760357995986392176372781628060593838685643194331719787300553073707082860906059710003154528186092719180705360637879569133852112114691171892241193574150805767591199684522560084650301743968101995130861701410268518224693254437973608130461103200927575069696480347619254297639075452897561364962021257017257674218433154318633662287355367476534382717272059320916966696405178862940470220519931899567189275241715312390045718273464825275993312040617810130092850015706320595041837993152184458783470305523026135612696473076182583775467637820394798840532818142618867444463361280800747185421053443521186189034278677063014310409995636218672688251399654483653299577471943388647407747532148142236729397345881393731996625905896781015581065293527682709175535225827999287782860712685633365776119247525533443084488121228272863102415097760499086605048550828220790446424793918938099720405157074729274598652242146945013765786642275389804092196707161961356007957026476378385606042643554596173420676345589083848987194216779751865107172086550526440393526891030255658870657730576156430637442990557841492842134285096145165758791627941619952551689272782701544972280367814931900096143768474497443654525570513219703402653168629698476510839175048607901687852593893621203852016934531816641427651953403282499831530410416442225971431724242005601140207937220405872681582197520269114805591402010722091226290691764046607183260689857465670958989473291683330739022579598417276636705899329235202745988827382464507372763673235203182519496396018756165830496355508192949018779851481006838150894104445546986427579956903821901515166022387028389942739379112053767975952741493388907400972130022788026881784293679945812715213161764601683478836217679009937255043771275196231181126118742778583765049830999904215646436082725691578376096580926828010688067004490347757961348753225953302673279295224646497896336011098495866319021683230229026846995476379491072200964489391681260317674315582000143783184429760830989799929617079212193634953336337277612977569867541888950759409437166896108578260265945948481581575805003504835567534463641440578545812897083758956549335402255266431329453357924275125869721180745541968990853124696981852707844239092412463564078084012814577900288683698340152834363764130573846960713290112588833357219768218977744506043507049669172082496949178676772021889957711580744791225742016778553800957429843993573064516788105545494919072747254937889032258086408565800715772116645711626743436528301649426180036980236587898292501217840136798650017401440957929189638221673511311099879885067523431017947758643979585101176283975822374128874958103639919661915126172906489738251230928601062160546359357991240663697153154310445690006123374051604782179027527308427030785800117228965600607226471191274056784681304681715465663666707987124675755042509661803850180267368492772290150484091359762949062714799303505966958179832484377427279521605973796207233519148002660254664352575292307507407949592529016667602552005275535090301513862961736880823755151466005264718436949488035670774113531803458586542107116409883971779388820108383252824692211171246422628287286700340488412237374333626259279544644148269811831633938291163837366623936025412344043185032412925293533327659900490208997363346566811976940957515467809454343137223259919111167500202198710620380193671501938686971420999628453389110177155734371707595770666463521105855251029061109343831177387155616680704640301739766847469386034035252286275818330322899482386736173570751185505111818364535838040038237064680815350613015490583194326936930825840108686565580261480821460443172788243017086796965480965149166622943940444033897430518613201349840726467555004539594023243303367040949996275052359412785954305383210626269053725036604364402129954750857220822632231174995083290377181965793823868624877034509214141820511951274944333156829515615914966337902621566578399526334519284313121571540670875313359134041288829708038692300789389034157257566244087268024138343376884880418944570098175331279999378501215659569491708018084160245657927090583419904877966785567677816695753232725265261534253031041574991655254673339634477466757405287962085851010854783409968700918869962614015802124111443745466041807171755507700949727576150658173361329639756853294848339090639257465811273788606965853209969137666503257827270660187239215757868598776120340905938047166888379888325096039593182741020045786705135592555911785219177479635344746883660852299034328466596068207432079655640673511441967276111305144040744758310200404750496271089834681143353294051512574895155961212602214175817095667788485940754433227703257365943774152211696712199270263894193048393139298889261148433204662369806974975479463491417339935835200453460249629023527667288100269680973924950441977692190521367918709566202641523231074224532664557757413994459949134742511067829221757989427233351533695375071177267137844853383914402292638274943877726757061276931332246081587928994752241282188967731355687270172398386986464054325521690846986250407390099626028495290993819162975357196546734832853434109513431943229908688852066513050393230036932761282788697724463326983251038876854198003755073675650536974733069746195768015923509618944086219764997811352762329458142148821768376709511215444564488661264122497837930501894804378785421385292127311631530219583979078082972902075397245049533743021426632827532641821455827624607882781916926226445669788470754770274707370022643810976426541007024774326575085314965849868453268630177394194633607317468555378850547760106572141932986415344967178798703720206181608942923575916560086236854899001713742207943104969525981387459633950381617026740583829677038702917696011015326912650593790723540392638342421746394836517483104703289738115908103228129447764404814245097338114407980763291256367578584515644765222237395937303008800363619178311963024669314694387927686333481535526678768481508790040292677488823626853274991453201662526408898594871596577632371452484213936053968107976895891133945466525525364399127550079800220103571559290462782008141607818942544601083922957245008315735580938800404270854013077050815875490910070291283503859235674246388672140683889359611860368505668659002424497047588765189295120417646810640535791651702152820753872969739005371458049560613534398360916440737291935755728440635926265842914520389025493188286182437557469779842001509042514383967278277161851670553666757990836778735681029097980699330633134595251671692846710697480172113434553506174272989876268570392379924834587073433062341451680542620161823296092386797214333383658253458175083258628841010632681636211621832658623190933549864094924532692820267693301940402191728706685475190447444055108843763893874408254530345766976514454115430647190588562699784395577874482480530597583484161883919319028290575445836903762981793292701724974885082954731771077616385985326885995766089421124728335877584040859108238372980372945966655466550372382901829522799177183618225358891989429483552116970142280479756461783827480513181633674345276972849487666724220935891757191624086482605143191667137051693898101033157679522705479674214620611895236560089569624929671240831731589268552103449129923453380745065591241781585092681463767670303548787477438494952790056860403778130864580433046316630905998800153925407563762856029371377376185883397753001907929069758831734476336436512452809954771827864089046185624289647210702475715702045413236919718873340017080561701081066927029735757944253762138768903390225132654832689717094782734599484800448368888831016227127837689791299713234724956011850951237994718462729209919079096924699193764827962251159246155280354283519502800284879819381727217815534150595255727870501883679466686030750170823422294115261164355353671429642805534848195192824830570544626779666877614495314869038238895463044453613866068707638060127684275104003351851826744146775861049776311328520787565821848560802140343806242433147562784736928002186014192097505102418808198483676855880326410000191089269576675996663166257108027321730612106334280699318067343095164903493793069994064878186873922989266041174246995827361492654530736087548564109021439286523131891169300393182507361005943302956133737699749865418343989549255328495463315446206302451960178769948724239176152351609411859696539749877128087345653155733562638175448325577181184361330220674895130657635850392704484356514640366341235892564883522861352012191639626037206774757877080029886308733305353585650578671152484213352487605725897090453604096484419931214750355177785615896388572438115469665465310584400808438231136274474647052699797305121597428829724267993950128007790703946043331655104168218318352859046885779271942649041086497375629915898819204682178530093458224252556376119427882253858771454667136880848199102264290171336468104928563948215380199287451632379552168057262903840534003982274166630913848154477770996655469544300503038794834615890732559785262301663865660489707668450957777354628007518764061243020050344764809207987446251517968791148277240709606341046751959428305796059727821871417268731688462862056338633132154196734016699633636457921311733781621593259707298125225811813113197965592334213850244316762870882763910158170524535574230070341285955707547743876598667458414104164986263393667412674106076867751928767912447098825153473708756518888936073172559899131397801178556947641557797323430076263101482969934171052833214605136730456175404992478937574788901652545706794841000082760668680344241759014397793348200244698059705123915180742072835779262844400464349458071976981714592173145576448268793342629403575168538928006040117489654928615344195241869926986579002392240264219071797119960406062847469146178177640522807764291371966995315781952856075385916710770148639697939664527152540128486279443860086473825283101335687681341788066832854316380635103264390538732204566723715757986820548922401374767784196452981578774904974971179997969603672666372417783651870336600497129041471997103104686011496393711048548413621913754339110009018084564921390482187554379006331267828991094467618440644405563681243303961868969249458196432571659422576482644161297825672282879494849005440887439419793089139610622925737703233115504893828976772037445523780686541560592345673908297910781097964471925956311338077350630574657910347556016448898905906526062507654384962776260619020961280946488958757275555551081544463661568550944807504517077668469569341623407623752505224417914439654986660498053874967790682259365965764410444820797463109578933382474855093965674365246947637517060049325645085028697346052748598819056772551232488543403996211322215890037183551753951113520218080715891402513751192066824584728601441227388219858489456301796988082311285103596645120169675930154560826053732489428080128223147570615722844748615623638827469438410369499365311139585401144833620013750450452915559684679441516530998894810809680871049997714183898501557171686960670011475764140198958565273615355626078298722434277150752798311601435357219537955408153156214494157656947268867893666367388689360770550406238402947370313992165544638613594481984858436702059362076428285123865001682962240486208291906172673628112147386163116902103579735740574260646763603866137000296208788560689331700011857433451031482466559718199878566221460641220239356177424764330736803448112147211246873967094481253838518497415254063666399185067891057925037003451651687975712629093225331619128073119721418901422063021392576166279291501437857100581250284891992297540374013573200572991984155916704437410651202781194257162796071841446104114091620856699364023858454325926231059913542096112236184566551313124038273532377445713015531801718932299670078960682626205303501832580413940709484000917848746336295042971059277032801384780225061218516962931126948900377435085690612989955065960807671595724809970757027302826546456501093223628062177463379107660610975191167184070142207812801388493480490953088597510085519384746544895495282991943997602504827024647724622798732621020043056550425140928100213352980161112937451058509764017557455204311263191353999566251520631934220242927616928942192582373490792708604756786942513739299933133463529968510656860345731297571885586316265612050726782012126211043761814908350804991741876373952741036598439565108699006777651474379602501347788096632351480802125005648332265009802786296531034939719763246521536746297984988355937039366699428593722513035284563529943266459039852148914003026787865730109202044299274719854103226884088434010349308338357768500164562160149307313098892779602413313373969566893981008493723624241365644069327806857036115882441418470362216837987520896747433885891164955457378424753448831142434076360551807079925283467183206781616140431280585983673824617068195418559134042572118243934215677547570929760658809452507363205427511825887232789881502983002821352095667516629708350327985223588281259022732816218075570340984873946449870579681622612038008071494258816267345476172859676472576914860445070741270405567551370267796797534193340463567442375945180905398937038080082791947739639497382921565670769272031177547747857396766732599190600513147101217195263912025984896242070989120367375094682473351516734044827473410989169104848648421561152558027938735598896461849153210401483587775911501127371507438209567347444256367092948440868394022527972662313578099799130092829775815625752742631382931314025630679350557691537516026001489670095877657654613203638152767138081006556573736006965693705964643248836772659541339737680934555174400635758553599314311844065552514413251240927826494192194131141979201861362213228571933122643401745649719053363200873361056644872688819234525533143582684590075127876366896545377136508721621081690481882286063149854687033906042447835624021328954005115569829554639718439011364601004078362610376288156286802368561745656830161276364808379066847497766447760267393851295479404027579788654938332320197415029053609696610544604472105534754315663211558798363865765357372272030042790267825001142008033721009873630906086323847788237854250768601589411980793563077914519721330195577666508013014611881508862999712080285493368071790072090706908181232054517025422768006409567233017865078840541458510488655995570285614986873388735035831672417898703909173420581715996457432844794050983052566002755333983048441459047100565257296400887015546877895241359581728724561412285848464028178161308395499243433299503115984020906853567092295030966281074336040434750448299628038009472631473960301585257442166551589007307974152574138943385116451448532701623353947251175018494832805132877921298678734047638332289504918924146955438164363114516581377913134898025760532277071442954747652797946890498464954467571908312185809590259762331325977562332276261234205127540463656335062191132158086033881474857410667712406593075101451461213282808725865050784529233053515441352090288085396703315417137792737091957344075685495426174293456529001385397950128251136855032651441996630460523990846342509375638071674723662749882354624444062748346923233059815710505024438849570765576394147170693613282688363545083872639028909001295538327256286240058524745880254028806648532160486264843242768935026547275873867307558468206048151331191942251192501935799902515632603510263376500806318860167292578132664115707961908903967939338982572956000187000570846142529860359917157296716216957787427756552253864710300301380563916033398752292584581183210483497852017903525297521659138113478174643013507487208053443921586407137291793991362187859414770409769244224411356698138738653580570236452535267814309150942176869495943492656334898913820521369171416649003333191681015650804142886575428695538537136055848075646039254939360915856610335017690596085332213260009678318142649933954494682577777772648800142854480491277760470889798082076730172114709468631987509138214123633167821649474926494813901598627329377196669668743685320607509767291812917129708430913853424580740685879365195829551258199293144405175346668636140347292053590980563612514489683415877701222787794906982198723852381534587559419883282462219495082054473686532226813379089764010063471987138234969915940079208150656070346300334484282001754200429363612107247214402471031855801992641520700669244749246525161722034555628066383673938939682462237920322982818595178969270588474799258116808807700592678559114669733306860485365448983526619959083630482885969918469759511337102224964261615366081073339559388631636794466837156081031398400468178527449124068834025295937872215105519800345918969564227497958606472149799934667855022109160124504186132280080204333103001396699221907010262455040135057744065570374643050880167338760600180054404809860038462302772433704064842305967220103813712975859022039884916643287460093900192760848052667805783721531453287793988560490569094207434325711860827237276423216916132968345761188238274387126277137839457911841577908822314236372207409462729569136509908621542442819696390912643921387150411458421497500673263575223183514986285010466386043428499544228350571067181627040206143665078533248150621089788849231487354398552362354248447778267685487519689251183026846340882902502958237919796747967912644538912893505301359966967457712127134922958048267730091276690688953959437304159934579224022761824159003613207898813541134479256923395909973169848744868603514902475987630534546821406625183298807553571628484689473056844837968385097858226871998501431198111796420963932128007510116185210557071282297591835221997546068425883670144887916171222042490314526503225503556407739584699039324320139634775015177265698927356891827592208454842911888752823978728663708925704139982917960684776804875610063195249319478987150680750059639037019197928532247616857034424992477470085756432010961482065495554551875719580253774585729675232726589226906668313284126356081406566299671496498192969755538598328834065402128636546387277290772673468413160551761116832215447961872188284063108917999437991571855870638122863040861234553059511613761192364427515793315896959936010256597461894046041331710117353907638838492492364099630586104702329423857874801529840922932624774993315877648405266490415733705609443126410906591605303713360586312443400425300884063785828116790354255164518583835382865892017600858159364155846964371869222918440210653802110582653958150828355812967991466853916500192529110025009897315100235814389976040029560280978187171539010527902419803824102351828191055879895287078126937562386224968804912793915102742058185340825782931915202080299079010437501157157474552453447524164654066485293560258503017753641982235381712202183925910219214446375388386165085105625294230210791091054459835519920796810545046943290063242878315263549048519721026795162236558997490431873010358888981931982826375456308362444899881066390346783046787608586690644621193724584129059459935920814456860154638572722992588223010299582579006856665804912475180151080424519357634324436889460700823412254184740285414933179408456657626426505072097333939532334910446344328904832477325196769966909420501167096139274713126949237133485125167986399342340626306894205497045027023138295918040668508498601627837841654479367409036477047356182685661946009529259608821533714691970567042810898011923997274355816170583097210192036894500364631371412455395890226969355849640434800446934164516532766846983952629020162070891910615717742329050720675666532213768158497599561896542726931312502346961142190982390184646397734924373856280383357377676574565623216676048929633332499907771441819955011963426451865773766257160844127331837634238757732768600656222433922821383945226780660277008166750504135771687348696582265819239696643409895362128884006341673356757919008277841575469141229659855549038541938944729977274059671399226866751837967061695586876139399330870390763062127427900911925001591239923542158145412296461410334823477858902001942286234403462340929840188674362791856533869455556736687397568597124412170139290092864491386160905429407901049610136596774990694402232036600055369958333916406555708352735980483569923159877871759639331636911270994535848931844268249789761574793825614693813185477195312076842751622568071239408236529670715488403282690091456388827041511061994910163891686463096171952460990370453317785469609005726298904861703234000284298115082585701265451207405566772078261353622377875618222115246564433503533924501771577034210172997155996970265943824876167388188072595770852763766035638321861970954466850904077248110487095142425630457762327043995529569335865917065217720230470324991428884126826926669019555914208531063613231128681072063806380459288339343796876925983703374010371145200529901932632532924582025627086927897217126063124672673457816272705337733489112763089735763506978569815327750165463630277914662896963797104395984125499694938238165698163621549639133997331589208997437241701202016948890488685774706219696617045843489443782811836060149850234996035815600959501470422257584579266700226554158078410797099354464015353409445458349392964091128945750032257810376131824228662459022293580477937663987933882171262653993221951968965928392055181845357798548763162116567890781363244826587566932025282332099729660150809046258829291742882545841335002971186092750626868206102967326146611641484943017242787019673178162742133633908120356716649096037067806755339231738878841452852646508136061064047462128887404470639554986816846567917434099091210059372484858639965432240070644975373082242944483307482017287481999540772589529144646920661431819827747768178914567858552732235987638252687866712721811720683841078967790672388093120613507699172861593702823747638242658983328282797255429556775127885411669681167032503924406072275071962159301768959447966180045396420280861134666586061210978759810328586520258714731557583748065188949372465899375048692770946837810483049952087176580209417614002866720594499670639948264883882421517023471407702880773180532882099960601664953269097009579464317527265551061649355863043556179356532186032431696537497595845112903852023798396924139587771849997992776185190594256161657932921478970617441384305709038767609510509465175922068388068670816800052924907120432138802801833838029129309546077636880116125742246445264599704557030587243723638529928281118732364297099641412402644796134377062104083807047615536176372518320232637112514035534513173659190211316816380808810513602026921293013127657132829587623187430992132158984996993894709684912500999975147007878797476692430709468180091764744130640109108619805057047738145979425344884188182389890121428138125732043130600967709161418809151870512774396578173455904011584402075964747126330166457808938146953171486685480014212815139341463851157748091395677263925404795459533322563635028011861407322697100694047292178640301354007697923659511482530432240917478475289575908020321316737830951585617559720760794317396186959317159122596254415693996911845963228971662518875248004121240693700387851130641778602706245505046731034626949733578192876257376147699897299446988958200343217162580555303631997049897194950412975116925116016291276216737295542750308859412187265661773092580850302494173341952822851781743396586511040239727681376428278576942032437220094852918236371893669785864219469298511274499650429835335994179033104102685724223310632336793706155161440318853734453477466735398387937209854040347474106717633952745618825779693076906084384396094059496757568864054542880875680867846841448489824069245830478539594448224452243915199072697069632256331675548198994046211487587667244295506876083774918209983053616962666368303400958335196647051095207540278919201362211684310582218766550823801834567732998871529694769599092966753743164855931384608841042770745525892282259236522032350349937636241939362107727297709791299263453461826712057560198555401250239795378380516373220360147955120849908588385736829150843775213609790392284912116918303519776188832332427093137829688045596579879640291681817419778689390930872074715068541092703365982975865552051899583163126447599282926828572688173404529236271428204604193262398267859543771621196595114531793412812093539258730979266706283653411899145598605602638401710758038473467064359119762144181450515725423735622823900220846812266179822026124513867967109197897404165931750151198345550179490295801033548122870384951337482000801469311130812891477751178478790041916955915379647754488912653677958205674429849410697692527289899825021807043218017602045672643803584725988402402928188389979305803671441033500238443685558965167147051751905781648400986683446795257044834229200132081711656888549935987680495262807599308810967178633506028830165015176965745577429873854791347575168181401578039909213019470746155869166319576399193485277508807247774381932709565124667335084030746467926319712042723883337120206501609007067402479080731189056310517708639513204247410511927608241126564038846894963975872882670676898869174532294064906012770325797620144028153502155795685103354089610291884635639298570482714815262842880832929153559581354708030403330650594761567053574060626615131344093129143531381788743007257550947205247948182680654345728746040973723449219108280964428047682490450052823879875264924504517038147949379749182831344183332111310400943733806247993497748212933136001877001363188022041271967401895757814235841499684111744473825029597382212667226173624066646508615926905126730246458891324107637256449571901727279939935267189214229718558516817479495583499218722237994927072519559728980467991233415844988822461756018059019398341436432900715105165254923217404223357030082556663561716520192935188753712492150981433893622261959340397507604479183403335726517875892394969482720012987235981483272247096996867943174788014249898479680048824185197014241077306598447231585471575761661461055997707003052540949955589523541796003583531396461331894023593415403437103663124572876695687354955534384452802656412024664846278427419746029119305857941925520683831348884974561963256461426068167661776364827161165712839712723955330271000051436463426951195434814037154417069798472632286991973129377508895758538066973056860854631903722214103602984370953447365513944994617103268975817352402312082425755500419685706985627840885006479440812368990624983299477732143292669182413580502308425202831756773786492752149918216784494107699047040479224616300296220759850356477136481628999383305522872696390078467665476787444243159555415146132031726377278374235044352408303412209418023057659437064165690600407688758028896879857067083422837108877561643990807433252897136681381834296937697338898441005953414922480364970329104791750409349677139897283411294495525916045048472641879341490608577642591603640218033065590746546936028021298154897909842246545359136511833827145086896831584282854303803462175671888458468288759708347404172284586900836639929883859517875514453865506475289818277817220070683031868485800636635891842678837323987550581308414319808081310193082483162211115731329048773190543768984646986753904435645930244881466315214357415386336823386387116376409710995708712947172874430242971726672491170481623941731498811656793586185437536010649255960554949270612089675265787874371105158914697139698503327039982003869717514428116234907311145926749207373288575486112963979095109564428629451920289842505248540038503318853941327797216085960865910858444379833312829484106959779472303207593426238058651899611416401832666095980769979509138378943028617268154833611908621284261629638180600301452246296591563629724777850126171575114698896130696829231358226811706003671902118591962363721163908157339603972431719693022301516968157061887430116828399620416986650224838875113637344070530609654153328347176032785803249355415622306468442019993537583069360468256545774936781972651659429202589552395980030848939376783477411179253773313475400106835308384133503954853805569596529921871900598962439355981114470305275217112528462616250355182092323254942175390166329316440097526417472200658312074878077431694823188731071210385830889708418850092744485671693279691212436674486208649045455320884350332705645554816633146896874564712277388419434599926467398081944356335161199436525540100065891716965794858184970640355883172481538763330352346848699035216861398255854617031063734967321121277812372616722199432402514066212318220892338139210423735679797483066628847907749329473526341155201737776537892538157421330153581755516748959098806640981651735785306232626459624940960575216630210117838187163641186853810171280295921433399837278635515558183305253150830434262420355265151936119233110254935193847791172562523733379368475198147444298996509479159379996428565570051954555511998656451763823782391032883276981826002526754475007088664065919572305166716554878960252344000409989418838598244585898710602724125028298750597673188061693470934379784340803775586792354285646408881342091366293978831947534858463014674439297148124838158885792261574334755495347960213360257767785768588036502255762891947093711020066818771727999723339385328223279186733859078348520677595858211717550616152738837831732779720589091055098404976604655998654326797358367504146193189415440613916518877753741276564532372228928047517382805009564438812747164752662139976245948316262640622552274136775362198099932478662381272388494072981622707507858680843062570628832097522987640428873234772919549079232652277073574892891300983688390341509285583176839130860132087876164712404765665492335923361056381595969448859742860972421979363544973419575207282647677693930020962906796916379115836980459058245735666915006934642413869122449624165705552100377493037207687222343349875077625986698242482135494173157941100403457123499807931199138729820941905130263162589903342797768464727974555003090959124631704492610423059947614993584048281379691290904040123968742060016818862766546078715104107906501079511525397272299561490142064049907939562615644438087682996765539325322278062428114935921688348953303037820211491069089999071328474848114527040306739624036455235403147443374088695615148020815282610278462486671506550288309392394175585325997538551605194166707143030482172332645163168691510873004483186466135922099518305206957872285056152293951705514839289318253288506458559442759016790339329036352714469077558490488367593252023611856418579212330514149654243286733461026860170305817690311614368179001322391181665782068577090844569233088714779680176559951299226164761039825623850918786713681126277044823276533105620016668320366785548990292349451226615188680327609582367685558844642193310284832378877680684629768270824895298943304643607344106453677068593212309475544579524521687126047596442254610894852547974960505131017647439004882983401188451495385787121726097790167208342996226753396540138999042868271780575385539630518673058050911746808258091428138551583557935276634745069114899432900459199147250944905532208317670589002460288744543363882583883798386766739318057494302822683001748783958269094981854397944714777143454620099660815508851106597108485987058624358156587914252532344866118929566804478041716518861058507891552516186746172472382371810414399992846853819556718244841109132923933947421105263507616424324265221396938040919773963342666054788230321286783510864834775777004699133271886003205605538708982116405386568348619655152483793148291586231868907417235403019074558207149645631395041409314427576455471552899450685250033227008443972952579515724375707327950307785351087694280906184486315271956069016599399334393860988495812584391855656905702043079442201868133987496608453989953416029728594694311446882436834605210096958606203778169094815189282945306334193195739674694938997642898025136689210284216844835608980985754477478689954242083371845453426322013226002386991319053089760651191072412856125654274130447459778089497573338569236095533109361327019120987206590194759980371717015237143999208216569124803881540782877629117122763331979488758471202591365499131539608602710478083289759231772040008520044744596000134337468900494726909858145717730431910357080178527643581846873958403965657663673127353602590612115479625476651753732503376171165112541305628079094053615342532169861456757721178843683036708420771113105828056985049196667889431551871530731807320890376529711707644366971967398337624147582600288662801990496373555962025141469817736394266098222460965093613079181063924211380768812252414343277060197055498640605629463573627817554218670349171685186797141073359514408057320748708722391714955356494366641894378999808699082061798427878777087887317062654166030952625745549666959485550728221161810461562254889194317228188755246664710885172088573738918194884115289573096976103645267849189534296713706963997643848489083043234260300232011374651758014258073070193509145106352379608057746104642814699529748338374099067117055050776477316769466154325734123508586414834689472482640230451750982462909630663872963112163609491936090208206816554182424268450035040477365725444203212038108678262774019252069248899255086130748908343465706871391238468885083048450670651874595351556836601068762814843975538307325194827649965711462641110902252067051678059439038142557209618535644848496925768854898080563038514190563088274044735041965957374291026723683041423530296709499301493148809755077108844419397624233272547698519958729415776148631763086547894793925778389321568185461291620850697212608744353338448227578971999680651102903738176702612435443408067692911701719501341264522409075103386715885702465036153231740762270281488651412994091894637826059752834867224497158944384639211012981902070865129270805435009086538657405974910794500395463141515061834346556628409666012979945112055768119702959008576469745296431312164372339291329843152498686357512989705878941195442598293444035767396331030045783734512804808464935410210929729378766695655104985901427674733024791140352585102544012609028085516120014932929082840067072715248400001586945452243685647719968922245485215625667867680020561518620088497483975566715578673492909092356393273080915309098889243430419693778538205393928100512506800623975835046635437621883304288380534493576382999756295813029293843494155638512201490138486368775528243620364200306641439192380623242968515330392751375346937528218059151404428939413110001726823358622321666801342906640709264847853214107381272427367862057569308089126957925084070031678201094512849662190230754764753618486671604968322460209348179921483131480773160481119254885424934202943973171081552289075230288229880492695807575178600718260645981893849971160465182937663801344599001797561205834635117642541615619882675942769409616300161279588511925866561033729747317073475641356914456321194304620496217819147314778562804760314382526066072063525574029992925067155344498016332283091712973757556401019315764394408673081771568125259989490267153950157912831118654637365388907584978371015842159990571895694587012669348923505359209388374745157776751526073400012965917732584274208670461064698811775926428358066582123940903324301074289744591684645891346850007579049676457283880978007190453144714968296974553916688702169744510935193462503661556106987014297810053915347885373019010409791582730397800436357305123573380374101450895561116677740406612638180248933758022028639334359941237179143456424998748735086630660626202402544518499976265566896619074333328682083335426111695753701432265014432482485864379567979359979148713627939755500140324575546479107712925593890445098794242278535707723765944113151157558216947120176371466124460360003280460027738184050545451893149474884743739179959099462782124711164601779993090310508639248240723114820884303267513192831060587619288598307745790856788712474736038161988898957870729282064425903218522318409416375752971289894500170927926105737081536275567177352561234138137112563788495082884838432344148436758344164080982210070576460015568034762028707758334779151018825008795993475488047281505128430969770101025192365538624526205632009438878329842378050744038528937134682732253781390501048939294854652164495157758886816792597040562295748416725759018647366560509486240841773387060241413652571734979712804544381905866940115701542062773918163947975055206710457131208598823967466896092229175770736327206124535329476413089758031088483981512424690813070363736003271512551021010624708445078760917607963198490743515910790643064359557482428555789044123570635919479692857497898346004462148361153964550883981741807369940406445765608040179117998843286089497141638346848782095570760109787761327023118230936256822689527276274524993480297921150372317553909924174987806982023470218353970982092206174976524113192125969442854701610621782633741238229721507431624203588416780514845824717026248560209741057839830891896267153930776708142436530116185922983694872211301938198009180214878957164918794791539075999987157792228805895276710695017505751869583832772508280686725737613783075265446385787504810219664909837651811250386572531429959806581038929498952664795026129584054536298732643774589255758434644482579083818821728952915338415877816180421456992857395757713447696533569277463214618449387174487536733949913971332660454673152335638372897488653748239261299870143443183685811595437930829177676514828865255579804148884639835787662138496195715227408697334283676113651091942738168183772193582954114682322910623038480074052964080928382119594720555993203084778707934353909284519335963902475540706631962444681144350268487582696592348052234749005363737938539631840007058580112748232240030387523685627958764073467590936242065386247993761053168016000734770837829251870870081539066150631051738074517288969377413587728729751897286096142612602985930499788143100272675527104445154878999407723473118262695991363540438013007974021273490509807269706951122000452474607277662540131002347311540278192564708691581083719022280239425594719877104937775564053122932490746841020156525948106026013051782712382871517389880355735551790156246905405237668468764311523613096646214851526666697439038789848310114267598937289782420235460654031317519942705402816975658899903429690489940977217044397209845955543821757436798883491357820752803740879129025214738164230619238307437399781919656370349831576675744247411686569276001184286023481255492488156329578899455516721828235999648630875044890867527522189529227540247852172468377878673624848843427304246828633713999142735347386401765139200811497303245169941618879153392584079117302722880488113881282506250573459601335106598058759466757799431107113805992562615010693093122693376948083921004670726237139828692761319679147111223601326714617793391561857194081450913994382239170444575231435024890304505998841415342238256106507202291210459952434553962855003750151044395023914872149064079637468807885314320526564424564247481994657802440157793049046673736562823963341904802900015578659346663446014113552690367849545305463631242394409994407666789751350015123976571801356920577004545192762138918326956855323176129248804036664631069865794860759613022175004829857096683451129362610243440823900259245570150897965367432230216051004357452880769273750379645407107751138264860585847996013644255347142124873253548092853892234404376850188871039111356639985156206326321299067391790820955835094472822679459179809220374567972002030979793849118241415506939029415466534481308096829712370140184905949564739258564177967648899513791705267705716371250298366812745374970117737529021512770045092862646826491627378634684706119538981027469625035956889624334690394750968678981708138704758291886219130788790849000679635003210020785060457832145909050493877990470604854128287938779146263193065931007470633908475228047667242386533713495693424284047282985022427221984023551861685427326736627644353435490842732735385024695909808260963628091066026002330050315206600510813223299955395102805948925509963374531926700378699052832004703708666149033008883941166516714316789983399785834196590801941518882975407158824370843264262228891618987329043111705072756125875785439754789570983265643048338864329295553094994793231354220479647324302000895653241062878484624723680817303363894217793287134672125421866275415026606935466927410476284079806632304386851333538164416700059511150844110829139628080606577478845460676102165227998195747390761987960969608028228021318149628496418063460233073030440582025824883511007418257556739989981989550222233830917756841382110504531066684199603696745828431246793093251295024521136836283666288486899838202871135728233898068220490326184121462936808112063891511101021315296879034379174334291608663053636591722517292804152393477493104678880151157758115793221850510682308157759689524988610555947835001203824130540451415957494972188851218742216589411705254899870307941346732923025144390183530375432827387861990729447788044476707282056193212133001026774412455394528616020800262607590069084779119390661997328701703828383474537666833257782185763147030677184900139330468358377144803391837320066647398203518065754268851228807024290500348767968487168651918909380974127796083983478189461086021203641066815086641979771997600381099224690131266279709095432430944954879515717265248425374889327291809955230351011537476874562681661397684811022318260423364847816928232799022744754371472509780774086202757206206775435941724063713227648229704957125506165744194666814803896632082111132300718231020777824962180943089601406993043451456554239571332367446420187974431593928585890477553878810991911234909179077342079130237827757067743748856832513037281042980169186882980305830773322648315940574799473671453175302184882213417119845292161119574519695379583038756633642784600697880028756969542412436052100838704749574353906464348830144592455777096060641844197474954304116151781412494209833371517597755646636260413389914821753420250090365847603152386599064773127633024475658683178836423209961989071280151116433643285578320219814244906180741428508919562060150423302060118109336127553014310041313876285419688975964039791882415069908078240245767839260590822148972510546834584868028508139565333596181959998165278740157987603054181597429777505224326578356612932198628586280089861986843691714467832075586618835371038250178551730386727055166466621666802351573680178923691721715380721446303525189951529331044489542545759979018551013521806610963061748923277737858106171387383149861311272474286712343065593092231697004557826038878444933018540934223057350525615242750318859792457140006188997264178904371836406127411836854106686923899593987466959939853480167061109993747982343153090803037006689505027841195820602176806952706013197882995811902477960032549138360368573621670314588394174661568793761052951419820707481518443425539182931443559152050793921069994227419626169370474485667243860330871540328208841735952673355311620581935457372421351577041147498723983525550978015535109115581210826881411854728914840058557465838802898497885630400608015482800292088000182163612162697535082383881941339090669108268826773199366648885730599388655748873127893113247571312621400324605438189609449240230044415744197719897493425616816861594059141771427310361280127369159040255408262371388890216134455315220752351128070482761244143807456719342837439843371478693847864005756424223624021864014916615610882365097365474433684162764151913269624980413042508458136518495253732163831728896589270120208409385746403333924997390490572602971229683810860032586642197364683405916567081449065695803818828212056811713280715359168551870921508467923012466454889485550857258144082370897851470673647529331392231855107904268593654902745137096802406310418148738758122761391130327192101001216506909653458389598836653199029492618472597686122280071658003200698235624768816113798747190226343688555513743189781044267777550424493891894388725076167668610281133782733562332861585020315375449520887689526872005793507962269420191976631729082889548039342157392021402359430592107128107606913715018921911224197424110594108086278738432300636938920637159699464805147205386891494089928872328141337569918479075295665689295059756102810073707667393575029359182046743665775673799705407670855035363307836667517703203183331030753445542500194541898655922012722983040204803408017814893525697848014344215977810735658030933942310789564363709025486031843530386565926161612369647532456106605900452273121357236022791644842585491613061565105176358227498626705174428009138872929939463754110577300818540806358876445434962760908243174947225197469491844875923058106424962160638333351185121461113466299725762073423424258640259343361763879817167022599130373817765541628607582352649759056904055281439593729882105855437599959316744838596825793738922882966034177497911402225726294475865498912383023335740559490685185482559218502697741145688464739437540569733554718651525626675382726864725541829663825960160213733078010334218309869525709942788351025159334272457292459270226465977435590464854210940176647428286027313393662945883055726458119478287353821003182796839402533406772201093081942591413235025393823302282550862422925774710528300751001691318607674364306330797562348555692897734560501877272395055758393877168082341540300855405393131109315429890328954274059850332112820796522672899277611377491630312479778272363446086220616960788293924956661134236970258409058818315840381498798403717601504371607614220985082323304216701446632178190017846626685420172921817628432152278082797835131359532672052592039400374021772885760188763278694204837031095669197722052940233057101685113703337702873494024920340637188864147995612019433639760283084206621612905680268334969327335736889902751957906923243537830137311693617272290314181601241727212764738159721804215291822271588309303844015025933691375425764011020863921427306490124488403878722142772838592286101234503096491630472788688789924004964801924235807235781624175455742867814055194950139843049532221773015937173567487932921775862125621480023808246704752630979251974265379505980858120597723372941882743778868197972076705296464185612844290450828116560008862843367418401038396346790451766594992521012457756844145294277886854500698191857613306002111942855616262700407824871874980046170154641341418863455275140221003809314668873813626223715314833321482329513955154069638855124971206950101567438881499304998680160544127645178937820819932920210610641678233146074131765363617158770436498639041956979689724442525551724966505983691660024640164935169927970301567621593694515663785260898714828174689363784676710784026469077337598153180375072916724328785138360464098980389183491113007362969361396871855436120341470422003305435278923735849598734387663149944784140712597578729285265174087259253544679492800311595847824064501972263035696073574677189720505719131730910387732062729933393473506249841931329024144906822739224163708239378797572037253375127704629537759915691425994136605633266266578352604595211440266908915964047175956717897768952517098358888631575845321429258360536692650200765023995665330882251046250025648453465410609117348153646505873552576119943845482889102060411082594211079582151610267449852417410880831815666813579738926330411802197592835678085713635286143802831107812920599627967020219099828532828148965690959391521613506531741174231963698411494211368186995944177753753918900160903137421425365994149759674970685319430051323926994547320849096262468284511707743557826389119603019010000569435612384070194508243703747034253415432032212923023902645978964181020556190093899748817695280110015732261984930311129856022561106450478112811427169261288343554965078382354737204285585812436431384079751987873013817892571449511822892460757773608909355128277642526267477822850177240313430382872991475168212089144333172610946258774648549791827349885860099945686600599063651146333390972076885756833714597446875691243926217314165418015175528648308094194009906677740358998070801902130867993071266791426681041316810775415850232171412315120067726658412948372644641144158317675624989433346121950978108194845817916812325961877790866292696684787953869629179638318814862563705300721173749110494904220227442205596951604432304225029337398968444201330036062598370542543500311255965642847066876069722068859383235341278616839061432026677393067545683822726233110800896972856635584341888051207629916058004708170727515172575040093371684766350532325096705635053459879609353115910279693154954580048090359587165273038845029133314684127096726042257376659108354321145940359458135516395619490009085539368128828879276027551432159527686768315749111170328042107053187695297210282740529310088234650859388614546330471794759073332136626562557901869310163474092095087543766477326275038319354070642527066193325788405767509659360958855780844952810385429410033683309493867453848412523444688576069905249307389326489579132332376393749118979677632422677798478193065237411112763236252072112975342325317831805851006853615439612559804648716922363801219405957812379798457015092576771933359399006715226277032355638793430341507476108786551425242773600123853016526409855782458615336167516967462935961475862357328840535421291256629762443965728868025996927431407769037910811786407678947260950157482270159635037523779712988733563732441754283949333918001966723816702436850858612323543145628813395746564772237753189090401710398012890802458514593466141191719659123523359173688376920352580510799057521563903253600480623359919471492649828796099956287697326064684591085211758307618219332335810986856275491013485052204043634079138492611247971527671360284943908724544643594275465698834819949009092843287449043528271855378166067381064965022558026129548435668015505982624548959982337666073058200986924033810122259837639858980871165302276127787247832992214869343790834897139116581098028123845007768151704965679758027628545077453245447974169589987158321088815852294768585501833821073074353277331261062339504179052575707237106755399282231527706944937917243027339957379449126958410177116123200712495478783400131874391700705868742478452037732138368323867903277363765226293049669383000062910657637748735476718845267846638651796183688619899159589213948690569732020706707782010724318383290928326058730387351376368568053352663443287348060461355654088896049025565402912986729649575026454952127837809135764904048222656613467264708580692979001197378515507634846925247590603520613518881918916898013763801916830254041980583155932138682998739583881977274719988976915351037792116953324195771786201240808184353569896162340322132015847884099249831813871877689051442274910514902229751364070955299161240401760748066361559883243389143935968270867057330107338018731587735618898765639464500756691553436984446350755627016707747241195203443460683352190790364642936850832551937378524520601878077239648085335276010882410633803357464586177896176294993519858431524789061023774600214222072237047992498111825329634885268193623641103425049461717970357713207870951713501180213604556814250750815358816793044289347284504807615299212712890403330598123174205394363997504322591122036560197938243713994008495797214489907555148181822935622438170719853449429481860522848966699716581229176215493145648760622097524992551700837309995969304826821706226408391166669264567815851014442884093234532605050741798016182822655504233325199670266882992786869648398540502029742545868901655502992251473653146929668489159739142849727917042714183321266792362410135068676478098684173426651541887782155789073024367987507848129122493159663661898954610182198397652390560707058594276986614144749136236086293300772433679110569946651028490525240246282946918708562249678055644644373964691165866013450406972749790196864617622075327499886813472211990175520909459280101354379765935053088521772609089428928437137859835371692311594448041090404822373035446361894890134827449340459254300106031113502220582153618723783311503568882420761541077743203549325292526374294256680383544764048663948363854139647751449059833874482976770742124128057087534990993349147604746643261281433832226963589129121989116333624735436480221603938522598248877178763885341939687697488856719319133375329289975339071462333858027012327681577544199361931755221751376079558114526462825097599110212053579583481525853042126344005478592102337298390759269435883143603219557686535001750883276263334776869784097131374109939508232545246871589929271395992743420193599251185596647437508346131945253537417181946761661867197467905769679501162177931864700317141825759779896092521548322327425527752818419195459347900616360832223970020511199977258105187698619415970915162568214086319480769014483374831612549232350985668367053309437868901365752716721273797481905337942048037391161280400062361082914927459722430052862426004026540540920523891952539633102619679171122918265536305464962822027106425713015469407051710528087804285487415085998836105379595127466130086194588296615980812973988796400386291824436280702603478438972478476625989760758170328661784407036327063613199785886307981351618164824722377663565195573350665730810236885662204932710557821737878440909947260614168970595497178784000162366727661619388904064301824600835466326146851597051047662601706665783611604207582191841029131297251550710111936118595195994491205280853853151503806818435038788568798749841478373117125291098999668279541719658366909092248339067666596882733539672480853095206597575896109781607813188168105806895128494076101310309764470198628755387594327785492452222890450210558220293728039661007073345480054862137948659307401376131858135782706910430401155981187732750378857057137283010716469545292917437176747343569479742737222393645062574669664542899184880730519480559822162044434884810688859096617133000381464894539929674171308144576763416703523871400211576517517256429334334749021373244432526065070112228849348645272600439726411931501215986360951263458905231099613523239688695050436122185042350591242626383341550664748399337187948003929347363293377018501306664062985214261203556359790609260730357852446068818277286516350558000816450027330028608828672860325965955861289170179898979818394199385916253295757718893202843522741830186578466391752370374938066212695792607719947906074879670438535887321226716531848813790145189578776978888502664126779337316475933463375370512703584776360994167646675167112622245091511377433721526985132441328937598025470875872780508483309063360177920196683814282612091206055621402118949411617787261930407535029051041900554992014198858247355477681116174577870378453739636705542203379094920891806516951235858687545674989729197446887270384021147191420901248013698899943057302366228635032784745779412960563975017930903150075854652229662263342526195739021992496432195328003578021507547671170310241664198275144051677032367225926450261133423553587490075000400924247275117764368798690215098763306822079999505287053637869814757058232456840849820063700062037044172884963239489585820592905219588574613372313582292943194563105099606649683667183011566651036283261202788132406491957620368081737542261756458066053766462623964290361437822754190007780491648317388633259649879764505879893240110602702334191638704758646936357137666811689323892258481985628329806172983056508134359786338096741623576400047150069978679675283154522672488817534508857673768725974677647387114533992215679442084460270386760757801987377917388028619915341405986172711285904180799311887967193310006875323386789744849395959454257827215771490088001145103282317629535849855469083668513605118536476267219042356142928277574823395949379189776374246189968467553954764233650537033921194934887893151574674367389016066404448368048336073682802411354274394066868084827170336872666199571581336003607151773262067695241168429052942037574227178292510379420833721691097946977584990128465223202670362945939279166251244848263968237706935982107116109386194823367049583195491772759194376294947587142317277564995864879347550456116883614432147293957756327055100585050776817520211752013555586868672162274039497854330043285556045920643603611630958387357177808200510645322013269143459626972606748026666853190400633171706722127119713215880994956233514533669643982307267394702397586838871808499554673719050205195096354245605384453378956562298702360674221695364952596039767281540948950358679762806655753212839459539970985957580375514512442420887390300348659743406124309466883938886130806874493699926806478051033746814548205690750760294322876393650947373439197200660612357302832237174996650270838690904342439507521217862319283393893310505908190667995325651146727013022730021159018376213096630792035524795494414509841715250076268679125176179595017257960886768322300910680140031390047457804370238586470482822413076714318269611754115231919436654648358621371191472548210720063756818568725178325056907919707429404952845254912110018779701699580412084341064408198830577637729246451129758000921862436644756360961694562965882239659647168249001370551037181958036436974611820012210252227234372786653453192145777274285804033001592542655512407266775681447803812923266431095189548914515138488310997925550059428429948957442179719395983026542519877197861495472334418382709727553217609600470001254898800974992879993993557881661826401612224318113896460334734505177580196215470970842808960211563140583769053449058011346993563406766932817986538686632305038389653929982903881193778635243824026923090398870598483366823454324199924317117432435268506786115972483390192599143100231702513834208260315452482834890593146408848812820697407765744004335265873705965033662405185499415760779914271227524451563957455131876829814869179961998097317081186007738114751064325466699091092845198948400115129820574098603115164593687753654799719554356065515669526269498401468523824470833383771072851086680561595271864782944813435290699739308969380159713945739931441689015533260223328717281051478542563046100189628350012101920312568705041367384714759346799219020571667497307264029825678704629606914409423575812089458326863853481759895625922075770422592775925512672554570356961532426466325653733572037046543983292283544539302950240478442487772668807907291022765388568676294316756967924215291981143774676716181368082647097861598578387625102944595270706400965664932485852765273895123737816772969498802517498667936676492686010965331394649501332858209351793737641476044586570508543797095105441894807881923368818550623204062452960348869645168655021607673120488222718620715204806168095272175270964453283293758404386294654341708852791874610281371110661251456734962637661821223833916894238764188932976923585432099962118879406920552768306153932407900324895372562528866679345241189379851640859935052417683973706095830669961979693935438055399096756835278922381516732275972933546252293560417440058550576443735728258739029653983429334703345726174958756936958549820688969310697555901709474642484632555604467486143860087033263377788246497063716530480903214161192836654261612196691651554322152831307335477027859360121292000446725106833966726485058787306912304307334748732180382228463451483642825688980539603040030535290958246053082195282890887461193578273710373969956676374083429724792329591490637622931066633589367750620776066946365545321639884869130380903140411637527920029865756890251316175454727441052001991860475224311095952414265910143709657563150256428250944871248856410624648212216521943679442153716618079471451279612831323976238018598399856414384776286253254783375590041404422390781757048098103159034175922349248941290622794864189540480474839715903468706636494457355945432187083697067299027311546632669191215970249214729354063596502423798055450630143253721421951698404473375159842925590372821818296422074729874606642379090776483718787901636683192853298198974812867603046778426741355950222504881460650274276468838769766253878185716955974696350757122129952713025157888257642745299065712501171900093678908938091104983989164393637763431303046018521700144266972096826963792148315019739380449049966637271208658166718812013529729462268824719674293729993290341061381819657924021862633951714062456550735956306776845438161970519455689824144588165314331724061258950872017850667874564642734507177697667658117682510569076451324584246531991719103936850023737437332490511635109116592602416293061817268948937225154522769500610241572037625026965045312498115886537619922488949947970762600414261955310163053803611447486387204965712081848380493330878359420944465138091740670276256063860179895011241069231183882409811399007888469387490354129999082573530187613356671969270984400736082141277529736700466860569705342856352868683422713985961156257878891878185877449725759209645170634376753949384625124312995211905529216915708987131799182607198850003922079223248191486765096550470762601369736411651346632788161281814189793458235552483044121410678993385861087152728481846767276473872368192962309332491686361910597733027663950004676629083777183986874812065712522601241585496031695279104093608409635316033423974596874807060832966821029541153665562877288674956428220360370152202446264548440772992632135503123496727509143766339827027190314006173135405112142519030173706485895251618511797908073338868756853579141101201761696640632125409082795564033376054054927063390513223163101335939429336107410673193636379512521040333007288211595732647582459122761581125268101307818842384108702105511552254549008865284294392448425643376088664354660023379004652239471875042926608871101380005903617779035405288105640315989807614572530307971524925651862506018352293918122661222931525231690907683233238796627464643049990749089612301806692170613388292603445730802478816744897269805197745628078393609093911108447201497358767718871225631617974237076511499922313445509744816490444580386336786119481318646214279425747612059610220945414268216585987633288259069272893597840685279415373854777084867385820463294083833481581897847025232832076434229432308803035577108634842245741063353722347669303704613558299568541337175267035580792352230184084388084229750187479371856464731599849105996241252964303020413030308193455896988196866431768944550749029038122104093419847413361040644741136995763858129604487167660953074973693578002340684009431666061826871911652060951625992623459579674216476706944965568953082546871993221232429411964646660205718404444865449219664151395098527058437452396107481837872451211616759058957593231949814739678370320846241312333798912004738239627969929226335995055374559872231684743595350275941668342558753018702092084345042708167363564248263217532386940002721040860925123058210385847057610485963231069017804518470640067923513704951092442498189476730455581433576620764391840098668122922607848963412470601449015713297918488426527991185768663322342918019457933781258657806547636282557457990205622627270760151844325164679101054642893557203239252694296373578841380304882921420306317634053140054560468291169162571544735514789967495706694764055687807111821217470771950520860268497762096067864129989907454358232226749686192753890480452164876238671014154271030418456216172699114115432652202992742282232003515075157529571215203634677870467847765147171453978516745257467839021745741918129084173656881449333719747813824826030221841972003346380688823318950010501397509589544636348172639220394687797020400914409140407566438528182561505010893778351338616873271564934449285158527950252855902146525016110566723903893135550530378179861978118999048756658140330395960796313979742969622232919745960626186327074429463979253539055366216244232968485538303315107640266318159168993173567367807061891667855424094799985500725875881057080524448557658859346197486412530402681300865416978129264554054535374117204018424865567346888568910373701080641252368473756526973796162896677471869947432077235151942594740793920933081331793491308529485521786455373549352499452858065870181758237606441680995964733908293475033523872791218268923172260787189804920052899592359986193443212742758472997893948855685373665855364472065761436395803867836123615368343436654999195817920293421390878956011941484463110110839621731841014254577342775367497177827705634254926519285102545798304458154973464554547716447494648592686350386776919435373175734255809616436836176809095437389806827130845077511197251190400046569679163634897020729212001784953401947946082160864892541883371359632814864364905270056093377266645718972486755802970981745658732115667111623552821528817478847537965470885743859952900953196264561643756644775012551736827205743193515885043090104979954899807708197131686257478846541348499850330734835079415550013427461110115054255503818635126263489133159973686242904946854490012722796721700214866442428186451338017368124934498422128467513624993760517101208721345356871910873480934647291411589366153240828831113060176205458627246424129032797140280371036942531745449119926238776132190411137238585943418507393504515093265146161532241212966909509933680805531522168092569104643218037544374811532428115636202232692679474556383917695741522836178080890271527558523897559737044412262625694436823263385617407150333238540094907417804110456450086483110764585656868787910895887117678952959940051537517281432902593869763622059347622576795062710376079883144927635064644533191838096818105457509850758915701421522687683336890469168872970691272771197517409577339071544186001262776698982998827337840425888611547711005244877364370441309811295747233348047408936096391641771331853896216587542005099285691547793122697867579996255032305184652796156585246072245980384323210035942178361579801598542335922174884339667951121631218897604409063978132394230209150983534345144781622027415253219355496436416373779471375834625680030947759534963664132506636419870986756608041708479435239458801140469213590609125322554810009935747829385924992579052389816866908081640842311103313747195503802117078136192241750808195424408693939831826883817149885348222903094368878571345705509671574415520056465542221097939535283336901716763874366772900420342564236765301038249895308545864732880677277656884603555529331225837593328489133126498387291870208539218175339324941218170165188281149789389466457124756944129620572487400579628626593942016450295094317927640309462744632264598228553648829569885570122012662917431898701602210381738850013050129424504312832545809108105933957249620668346714246479190679491757951451354710297117723440268689274387310400498258401051674543386099912216646444600702957135650492857985933269822873070078469817786120198766913246855631589675377952043153847521307427284619125711673277105409868191171151387923145037784889246006321780804727840916267230109877223868142268669553669128187600919652356314357934713122922380622287748094700874390424862845470029725813842744292095996556812745797460538563432220738598213861459266069128895511663825120262882111604723074250835895039462805626987734945342441584877842303123766459487132522499806999644400772953971761549646667533099750402885805128835131045578047724977488430787384652026139159936750280411944132091120207575350962532763609754895043697718690043363604931118740976489846062922761209200314994778531958447337089019279808303786096745292298360880708898082955807623055917238661209337124120107545519689480814331339340259379362019028325614889240368564342788465150155586713460554196623229724285496402548358606103981377320392572880195431127645129792186233796447843764396848046029419841294530718386800148344513508218829745171342614661471976958344362271515157186293344984803300378527618961308024840394687857089352254511753291314763878525835601434450852583291759931701310114600970626364344249592394511490092879147749786961279809259875900721875133521912471603174504198284114694352619525685705767933683253866428243040923085459377621457714418567587628465330879049239961541555902757450957799124074792271250371409626092613057483675604376102051089958413142162910459532657853131335708778210850679078135761872745075170940251617277810339329349973936974684683230243121919348652817006576513688828432886800026475025242296486837872047837553671681935494654447555218640196405556403563560543923936733749244093219363859810252009296227223937919253992082491506025698284604231481448652758455771157296655902682456455039011493024239350403727630139622198902698315373217975617771456548587866399774056145474779358882859603970444678236884927867094323017196034769732498193125713550183840696747554875852506495677018336858687067960832769185813404567321553885081492559051932284262643664158152120427728276440057832086010052412283484725296538321261295313266970777791076711770387171264264674131668132371286236726281586419748883981961609907616046038376292321785858100089468505909351449985197987108613100105735420184183580867849758694213709124670459487990106038651252302681981667345075316138460291027510590282146957685999048790374454707288811733749094131646523970880756335031455379149487214544501294008084309983031404581522988457974487251640791022764708164919601754564405936106699576931034352439369848073678712770181930870626154959794646568588303423607396913783300906052635960400364686101250182125430794473239508803494454096321302780743560335841978153146901687341909208777436175217966621012676538468109976143296700333841165770171355762169722211040283978887369868546706929574363376185673943172705818114362810223100242576132405735453378298235655282813530233210111475793225371621467101033700385123234106706021498658243013526735932302455687904429774514700725973086272814858408128206820976677380433527208221774028223349755047909122172863252444472115929893885069023589050356768088402111869076462522115511395282380995695607347318382752003794728586675115352516779353947553464922073601433065886774741670293189502912321165196610547890355382299113837283549309120325769828284121080507006172201297284684850085201967485840985441895711148780003834802532835019461925758381891493438972220599020242544142885689685937755224684398677446192072709035649147037124078337232168414970789429751825351600105348674151498827821195468647933307442112251862521500255775165629039770558052873024781489609554099664434288748000261773903623447675294528411922012562156134309110513253791353074233151331961185556525259767838808915586314815607729859509953560702548323040747786819700360097710135347120243927257671347207638651419269433304730923233804236764990072185610607561447191552313350515548583005997853649055870004443525045903863068296862479697192381481940956554687011369426000720799289105707178040991777187152806315567178037520112991641059371132492351987395649449149925690189428263307487597753504702010443080462364537169423475666498169955581695102340226549883487593325796492132201003701376044675287291826022508790038978444757057571900419154277092444093090747525677956556221958983952344194833296444538099341675542093343049838359733398093133912063578850812255258133524867269299205235204683530861045527480623740108605777324624331224897643083414092984505678326157501632546410456194515092312378654658235649192229321107672087811242332443221581209563893431205287372819211289503790070106713441298589365957610257751768750117525141666625489948943425609904883857171807988807049353219802737632244941230478129111973447835814654394436624988909927326247947773121595936651357590967303150356733039882358727006879845349256440521237792793268654237957070830376685950066810330222744258119407787342038108421341786859420016864583481293771311759291063891650495878156251535880429263915777886662137954822406634530471664095824849291683626839526321977150222913441265094945866329805319054215129648646255119673796007729950926354632007732728283812429622501593866253770141532733786598123990409736302193736046923398712095210696893973314345781101491002177252695946000771537160012391053818829391283823473327023045840086478190300748606801298337402867165752858664502803924555340441148432486042995418771042043665528028947474314555800065852070874808464245527995063991296248446207018258991271772548040140073492352844448647919940882389501378037293270488560590528194899383962804592613602716751692946672025158961576145342899225415017036733710670262616442084143522473351669595391842169003537304510648372624991841106690896454894881753277719118507457538359587183243957360916256239141758486640632881585070321613862188994183972666693041511721975455732838152910823920847032014756622042319871963561072815676678274906636559445260623969067825027524848613590335616434062176412072565123241853260536444677508576848835301046283564093073047519201249989704258674521594947836354449919517151668534356640124875757384829757595342846133707843052933265121664278828610307579257658999343189187312633133059376264105879687653234733464386400474650269338043092193861813762781957282263423729883387191061426751835348187355833125422922911500620195518854015262091092789051338064051902296433689448617908286750258150300830351827348917464510714874742102967768192935252492948351745113682867785885295645298970159219209406273001609460914009885729453819939254183759592545562314040265668857656706203205176722378488305266669808689504592798504277856364114607015406884068389310171252900705582358649613296251922445093091577807679475095118668695529270398520565463459689482872429258625211830395701174874180011542444159353372981360146363531332691175652273035670269870575744269208378337674512003807556648779736503612880751615602680393388517673798596145251875071649650671690630034004913993146850544103940677670575861486850144536990562562732835817473721247067232773946413568433540449082946390136875290032240651763043996536501802952497626237120115540633522354717381657459691185183222995056525209408129394698428211006175621265835850753559040874800569110964655364985974976171831810547344100106998106050513496773585965839078982399658257118016208737480053920026781016416450378030638592571109719520647523662113112188574136981947864622054315654807295821849778261139852577276796601200080308907612007816890107160684490617736905618972023798327072160356921763181901717368221831355148775749666913296932419686509063069058660814729077916490154702449495321547286928740946607670888999420708864808763386890970549390392309209184954272935943780516725344742813929589602903353414052976209144025949788109182741463563477210284789026265849778146023907994673845107685361329905636000609996665938345676844929640731652209305018553814521581524825676074801952798688626152422908286520985382267297760635651089053273571593703499712480488040456460038528771816738475023971957287680131566059633200043120430160180773402954147657485151708774833836798342399661075214548588096745852453349169578158796473158192538366097834927804436153337415975714065178586936396954337874615079348572975994645753179171219373007606026822348292309652841902914707495581985819564105028198708776065458142700147243813459902022632897819010335950953161350428371174749962164721163981633937393097316975483920802050016381119475624402344414327949769845422937663272400781255458337076189293888336576984078468860605345294091330986533888486903920058212401004475844151268426972320973331537828100711002033255486765723259844468288991585639526898709865265773294356752851336107619793574156298770536953826203079722925512477405459455636914564960464390512268679656441529373428959314561284550142364747403923237249275581539172064117768937242597040657392243655320189222099184970217962869488555845382100766278575311653428113224658262085574001036522051563688001600631465423633951236682137112292372786274918177290223444543731643087656733563265179516438838310698027441190612168968577296688369232537704152137606978688216039088567742055685793057087696675640080994253267365247655322428466736025312859784180367653103817996312769046329090538839554950454157270537741305356490817314355677249728034067805575782140052578859324636721589940749469348706527044593684398044976552275897627915803900508175516168330512667981376098485170005100780690339037887525058505888074785088113929673962257751764427319419929367036527220598118868242567037149657396343377418590883596887695196827916300520347871066235070188352778322389916203819220116512401150092717429729061899389067729957285780934886505896897743688196544276532431607139907979332453425940005674980034401715282935687052373848439829814588906038382536330960555463605354566423134486529729883263611340234705568705925589807000439444893382981009040873658033205413346159168641862318514113283033422091101823961010499221710795395543188668922147371591430656459588282188176286635899197506141963649172829909878208904961003923340348161415581642073730292240391060895737002633301030950324565861010952315995461378406229489524667136204671117749077123483688410305990742969166589446860672575787508000011986685516082923820129876609196470045477369059946471868974552173256669029417144933341317521652740361533941937537914087938442999722517793010747997209931041844224625099629706235432214938984693924947078297884670850805697394506923200160745779806085616088494960455829760990780768380754849822318247850332221803360189971906313500278354628514747354021191059874642142691537820198099704514509627134961819008129110299816434103659993168906640245347369306269542537023926244567201660945145460048146123601107527418819713343275712342337506604449961256418814591604771734644475498403666696456529657327416506665358462041511745558370259807090462553397537067382970287909251570415221605747415243835766545381853013025474255616481700679092732707279507281917203199432489156122365245805900346515144896427606934096527494398811558653245218961608620210377791157858693301761288084768964838266429713948204409062377585297814925809714118273462811697144288715440697253210142306004397513993689418590170587687862092365604664094322153685190869594172596222712307696027712990603869637426979228442630238498475694264138013762094742590865635684439594422070892768815953630103453651690160578309751207710861564748120911498740560669607861041899388161002634802988703406573535001989937258845076569465811299430710757556477718738535428994756701173571664978960950053506168011526834514092536895599740580718859560487792565290137782367565292450994429289412477877436207073684884841522978005080846571481163277579436106354823299419783860165484939531120608389520944494476652845354406893853149780420699819326518766142270739176563983287726415251755274585115677427178399729180753337801074812448090880630339595183887040643569558115632278681637708387253080517803904706975296262022210183341178334704764150600123718034495370134398427643393894904458701469212830294588800249793996291800957332826189018146326198951277465227284326998180849020562973426841670102705593788487532914847876018491232872865273335276867437877485548240771291912325525485547985980399350772817642300832044433963053546158120557068422607626163002918871702600230050580209861581162742952327253222576301004914681901959819140828420791125899611668254103900654619770090198317974956061086667525639873742897172653768859978531315158094836824186904464853189752979685668492421568724093521796285207604782005949163208526020818730925834625507639417127566482147446297564444895019211933846387091051936667261047373722600575946576925762465757344783689507781572641534568416121066706770368791181450236630796784343233801374448923814744474303313118178120590973509722519953528378681605808745577234491361375527543199189413216096271179757052157986253043356475966322659126526410556510075061611934233150857907392157112681478754225983118251527947772438443676084214339230926703070547462040177794272256286443510670487547718614838493665127284293560447833421186213735172722480936085577091076317972534420877072637870685395705664527831683863358280038112898877664793405373541133226272650645212111880001681336887155542365782967064431087270317847936196406023241731053663911434035677545211328708431793291125137913170247031184386143109937245629632786848464811507151989640723841673723795130829217351089151202505517505980408493212054629428517214921731806715305600212028347175767887211978196178278033214223476682196542773651926044027773260502743284089995281678119687542433534757096684520167752285631005108711402855578810940121768266244617622782759629114503016473512632884343868519356660394320710069726303782483585814305438184660864908387212978352810820356434544468757514174829483831060309292254390644347525644613216193115269655906467937289234420878671689102293188761458174341519892515638065397971224754828306604764025155014271920398907792660867467581019467733757628446303802826280616905316674982045436410769151439946418413190596161080012863776614141618699545476572950323167890208428382243312621773896447085752806659729756229324851267704295124890461419197454668458749943914320940989014323917583661108287201357395312369101426036739786251436775691242298519693656808588286706253688715702822324883984534943571451301688796043444097716607741565446190037107620435379960395350177011059603743258646073595380287130461276149836513333494117187779047318589375040789570345415763787158606080178066213599556316532698813764009536824775768147997319527510924384698705180822901960335358717372513696638977729420542027043625645013334157431717010660603542460147033566618551872514663568174669167871399968608870439460812465915566401273189850842486316365806294292168946170694785043050825125484743317661816585752667029809942354217811453285457397916307756000894973568894295511618043893119207329282483447951446027713095960760531088884148901631904466465109331224485124319686679072492505034034445470360316813334189379003630054062801898161597008877980236098613672412020375552260250937330872906374046477389945370340414557959335185497778830071899185141580890526829606756643231228384361500954883244448611898287065237603251658684474083536315336524546818907429580588711228075050253501673677409676499126074075717797876496668950646105403943135003930697331180496108175574566792463956793366404786680454305660166957598093964068697378210800820578234912745555040125513307364973236352842200022358040691027161154908321395854416188636340162330877871741905765255300516245660193935027105592636321165119866645826423922603227018008929245826923621637172141336053629152316245122416707886198136571542785100230436593512856785316037674275704958488098979031215776945880846930612367403727448611635592281733902985795682779533318258336542004314657021532024059384244040264880086984979767992389618219466638628901956963013385146071801705687777723792073928211524556498976685740258299470850124772950447707607058365144607272549207567885179613548871539721200136237423000310752711181274133312105374686087696487895441502954617668309126825101532871012121462108071928850077231075016430738363500127130253411990723828229444106826737552712350681098239710837619671824252740181510490306305749752159663031679685040335935135665051562530329986972780666544165772618762395079507127768290804390981331987724052864972444344520218924368076012516370060014974027373563697668018506825989925255678628598230951272152320856877205113583026249312297616425037672033551097771763404728546545171147119917321313421310615423250783374113752171581286761112573734796926328848156362964475959193718027995869612509394867481956186764367850907493706325702091200445856787432735030524476382697420254341974661475617773024725330533517762814557433398655544667171768505571713312404013280581046365047846681875507115360999408219633217536286643411962607244699903427922855043136426256749752759487869566054969537957587546348120769562826030295116461573716775331153497670779792146656883366271029515110649082222464783649974718325291929139276464131838527853785014155070442807198424169729980962774778418238794916556250646612684950783549622087276007840736785794390872019525576100785799743800505868924183799786515600496091917160368139290785745333037883586698010109775040158185047835094676663624403353284352039498773019317983870330268698361872936135279010736756890956060168399837647272858519418575776796466924784006131933545103043667885378046873474344753125057693630115930028915289087798290742160700022500466124008263247657822036431286543682651853235355841784369918258383442088156712369755547621766975841855899370853741651167965941309658299034469207175911697980134083547261699648337850471401743436922325752060174598787424669008166520048497036120632128262759165358198611242213560060701994423853404959363647747981344297943396901626755250871934767848668633009119583845658319326396632674522406151248924450552572755304418406981840135635397575705095619983285964516127241160339144277732284023273082450472597478230157434485517438999846254598056368856795901736998793870112026586374935922362514161356053941329443689086920822222092521714743074480160590733490571174257639755808403754374901310836223626155143125037973759304230800777346575672958620315300252795805177340235116982415945787558486193975993696666805092617744431978862784626343472586257836417894487739197847543151183009033867452643920816599515652746530012490436017632589316172596302132244083968139491915625521681813302806853095522682349959317956666261891476380610070699540756015858918649379665786332783044554003255175329397877085230374962265256629830941866995619322421676824326911221637911986071086134044947333842594004286731406977095687082035086914251580262015590526150633426106702884250831666375491944846253220367514623716493467148478023473537090592854518418769142427444348070439722925485281109516875999791046366549841503509837234941939556366660291297120576170231978571583079670590592622086899363938364653758390220819980268898594675128385584490263277686678984743063727260842787796118691107724750101308242729424640116583374595737079121287439892159514029228154270313564945252400784377321689521628321359856861931980400978758151717556488654665040792151483959830656223312636268756570813967755341478659810840287365296995486060499554849556374052322651771286484100388553047257446156306255290790245998153832119249073845487035128404280982369359821354214021009592767191887364370114929724995846974818358552776579486549624530725540646395114085787183635005897096693559242556489851281607082033720857194704023563350218779095472324212028110867283137006113188632351557865836970159601114461601390863133260849572343138600459698059298256657147472006062005127967593329614005742592887468532353963676792173122541243906969804536719537214994441934697796173017986354537107708191509015017946942450231868217129293325704670803732739887055166028192933627211030759132581636386202945844812258002985554094276455425518798735506823426848414063168240614156989181595985022959557141656113487691268478398671571520208365728238487538001957129862641879889338080441448623527301794430668638964633545749741042164176992580319991199790475859642973610737946902730890253152640273225942460328390989565124006180387419934927477462837560799449196661315346179223390095319389827784748878912859198940920531724476743234936514809617339401471649828149194926050307651034758373917277042603553318747600281835223279553681300648918103539368571865734530317654708397971966068190348019534482843375377231617288951283909076617159419347934525692195018434007149554878949980859136692341433766204013743144410726761096926810835879199759848830645256478547447830538952185335395294513175407486332540903757829265515578170834235930738110944402787476442542094545208310567192028591703053728674058276231796274352333705716596201323515307115497823500596067751736654547594688219324415840466993329568034917825183622814610806734132606442530563257634013468671019575366989765484101878679156181251927815501397572872561444659041482678780639058956120132155912197229527301043524875073953413691698545155305378779542237759143564349027667948649190020560524706068371333370901626416301544691664475816693925801911314074798884644849065562763048118921290782017191995653318128452308306713686735948035268897126554258989313145030694643968286929132933528539800116270982272435274487355110745958179726794839130152785206217764152139511988684282870133645802128054222904762991753806066574469235530360646583145252791281171419659228923659738218081949739174591918923499797989171176190410063260640334385764265978057769705486789419343652467287167624984491123012000918430100161774312371798111268381134742726683623396141911986897390859081497538954142314213369426065009671739630194135574698557773245921413930442028783515320369221019510621291358834998139029499484306193906068345073361958334334988052024359250538795739323505619585969235953530690095113255768389077707888528833482682756806281251874944348658435703995667621680453830056196769436304124231301209369417754758789272967432129465494772014189941200818914226481647475335873787466613122199490955029161288752467933290689061374078988547363527069220936191760247556594749856107801330372670318718869402748945547770118128456484132517157338787693670708320038111960186365338758081252761619732043052019290657453397882557681354194953973943394543541141584145920745730706646913220424240892508501770838206412694259919947178337391714051805011593401677691324663724385530104869040638434201395099202770110165909066467272095884424658835694610043624343325374921435367368553294622458083958378902400409740038707339068381642348495646809115512558325306027537340792480746214374534622918371295335674563977609972982941977972003737683308999130934589918675883076161290009307223843957087476442328203721590175300582736257081596576601636610559728528949585954556769976077374352122339068580246037937137498384962038013880024553569030013635923153995597755897621380362033231805558633916441401701918993493804852057037146655216570464343724319856052255530728491891752046436290588178015675680543554604138197048617240660761190668195395484273873719917145765461925408017144231315567641110577110731473868027810717100554622954749026861248120057174167778111943685116058737105193127067091543680813785424118502450845527071497967694690761265904472103261622120229758176059483252664231259861040164043908904066870229684754898009026575320137883377579790005253298926704679990632075137642944488400431703216834758947357025523180134428223607035486944015845298194618177252787151552274464834695976329143748818790905272936191473058561018803516654431209120041423909318024737506222556806944130912780503767061637302656464113471197707027838138310724845762295322816368875126856487540742592626319626537996762822401317147859387724615434778972163263983306732878584753457069984940109172956247164029553176998749704603303507260160013056862293279581717893784094897300829792504989229764976018588129452253039757464059851620242819670280383906146297647091468369589018076310433243980399352079868589884946375232976017942694026891394595832376928349923562286141451079924363273675793079211682630915365896207115061072661996314037805288718216290515358492399591058379207658904020837301577772545282952330481724855536402713411054083801238041944809422023955476533552570592160625281197554059063870816412046503637233087696774180021138347437627175282319482823502683080795154344137179268753273567570166854691594988220775442624514585464911356432247688374421477792061213755914378119932420986303774580219395878250040686041231333538410336575887020008795347703163477119518223544952407374528728151021568806719749539136028683839680303644093210535032424321972713699010506939397267750205736372277315890436926703321097915993261188567956406871392923396854114006359402669475759240928679602388020360861616582638719044493617241489960109247925382659068015103470295715294605714227029612817721912185463553433252748031122923684751202216957272229367664239981025299937844268092068760115633642591462724659346517299033493099676461172161036532502966034965937501760446955349534302352513914643170540762745455998066958263551000279211391993791730636076073448948611666437483502000483949811065032264946191871733661148437554626795763988125775820857734547890135014230661264649868827009865207424128022542624883300479464703038887433473146418049809094536604080759049151247374548729621135243516118759351849540162645628836623875390086268404690951136772382646261987073885046516318931616983257567300774375264666912675728654591721336292207727044703854946340769392119709474934450491571711802730946198877421372628421330102508949854385308982307219183413515178113374565326530029195291111185622444950892482549694015453820723026369515981472676546525438095433488887602808124537481760618380045866086393042248236471715161774384079365884071633670647809046964124026325118670516731222933808816507933868942811834364206743579899070284925664538100242219023589116971073543704018949322232344226011775779607918235833799321939584238266825263913275468182791597527943276854455880706975139527910808854499820137394990471573465932016723756057124140190433299869460717261005556597026917361713110150368103086967237620409474092109709084309293946960985261627034379378207683029484794471838573398275011675586194525424157615579338911674434598237710427646711699143522566758523396041966352792675100392887481757546292029576626809613664161390095244783855225273752315882819329257215380421582022216720983296490405122696533739698172129458255501558663697733831299110088250396667745297996267322212286457164359811807851615431237274277851112572011482606088138280099438191703561687086385888312401038281013220640572029692900029669813146550675537274199687674679015245708002142820612866194174414222934571729279625664610223874277768844307385755177609231835804311548018129793587448574951775849540748222308945828544109640536709980758013151072385843100900275447839395706441251113012065269072000622363269150049942348408996748369533979690087528847546969158319894359895362024555152122024081143804144255151045108907563784994644990821289713104896020891055977534814255913446695378804382662286399570329533988064315077784278847509684890325037283905224099793125365359468185450413637773501582516999143979536164994061547272631820963007700774422651415765863744702455825883371188262839450950627764586562488355477431697504741432567045599125568962948349689113719462836191036510145138136274208240549834786451302264948071663898261779091957613846149607406109251378482513955246194178326536315594947653807899998620766442030268720198593603404148546386306337372210084449349323638210850043115604814095368054025495062480414601614428383776211707067382377443532318563058562389647053328261576303176951581268973926618175650004623807181175785302843653881741483249564873995339307971290045467659303402956986351181811784849568612297849673597464001695079969708167714193560138887641880696128810074060927663050710260528259201522040881167668839769786886115877269724141835019535836884063805180873209888136954350948654208379128569639542025000141335224024168880389970270968126082248272553103328762797649831291640199404733603256184429574113159706664547711574270402615429164465778005962666270737801673021808364205037030445462440131008291957527083685532109739284911966153750456726975143767739359368255643259207005405480190729169592959906232790994955331743141188313885528885498207989238307060488774377267993482192333453349250567027042231074704227799350412284464306834594435420642635876755444941825458490466902522857323069973833902321013257792931952028553815758225196886502498692748182131695635593424324510578417797497658999979019893087360321845375809311608084153918556018797862693366073429106092483001447126818235248743132411300359220377860212096576918892313153273716789372014913116283364805474465091433115331130120673927955340991544683845359034337427531079092509854612834962531820039389138851597125757124430259962686203582446344035511233952497906930898990291239232026457011149133557201732758873853810646804333917838483168955063279574136565507450616531338177172863730670029873872196270810579164772631198100477238631155531196571801136881611035561713615411618017512519082871966763394657630463665289533487793741308915977954984722101726059170620509423364524821675058539448367731097591352765531356554322806954043691169221909710252750318892160296074522426429074257546239088900450220760354425577489615654017750092112215321377947731234419879995691297495348086995450233157856209304035283048985058145764947688489730468334609335686257961032323858336614358010807666854440910392331282964527464690513744501624801135115538912500288598926584218837496004749842997555237164343134898182892482799204228785187340644781781342737698527734372461910241349124825984749291687036174068660580681074988335568599873730796754936746409769002088125887441464745890497587483881854111558376934748848309481557857189456067287817523225459153418395390771703794892899199939268990111801822440392672878263745331904810523771870113726502971173924934911462431659678175000645686562746749874216592709288177016655044567576151356707256880104503583064452527471085114148443194690858824348489424531932598161234463939418282301705508552743789266423806457682665196789683018020299748828895272567221891918610936541174652359343346010137912403068351280268998814083684860706975145595445216787896684671553490239172874254011759231149419803455882495338168500108088552469886464675314030389471519435729545460976154145079511897126775611176208940971606550767987082129007114394062032432987459369418047374788059361615387828583887176686953376191662552315932121859351111805226683136903349984264769812680474877917914544973245537456713482150069651830629647071110258807445344473109111619226196176948631247964443803354213612466990279335829878861087704689725373131613073630698032413387727383293434474992021198503103724155769463469177108596230495214890993541863194730793767611379048269600765769437066441788506081550232847349392248321924189641032202549310950445371571595612258016965995950433664134100694375148567902811108806380416162078024115660040952225929005369198630423973074842321772062725823661097885205132992233050205085552422516090728504835530036063415243975009397749038557838122809990303609339280325829258239294748413247852720826558555163969178686097824306851470084125341432736635718638600195023769108313998717244420021250021587484180807335813183788750394129476831091544734517401166888408738721184973408557531589449516112263145917410161863027424134243497589074305665212413686095313072843692241812072222499235271490525915575457232616506458703785777105803227385611502402080377057657707622427987092338338324586528410383861326720509162621332585743721562380193066349642912303353477053511687197701187782688333904584606939699824573331991296113801402501429666829187053137569198625268765456866955363571642476770758347241791720773380236545641111397452265250212649310838886995461696798889926230477999886358149310117629410669027632547353661500421754425608706620718080924578891804367643214914560220155698042623887239343102639713757817246273426676438956921568608407133360547552277308558528627233749801636057148344566917325223368980797390511971878198159411499621741339602984497220631295371580112535122958225793429389901515330266667636105770674580503742141406064321881283001004765704363258371995130761081111562809986980994857318484707866126539566742099645138798447906647536588562075726906046879496532166362199315985447704402775119845689119660934407072792959963417738808953979937149160374304835030060505887249204121092929468477755298314281432323092736311907978441476381357820229037468530976523434583952731155157965168528248293553624900398487786630115177346413024196938099831767343206602389845550808621993382508213629360742220604122824558937692027387106346026117280044362087064478156638240541037882612856283605937042397780762716865475174727574270781463072169839164549587318173692198744415197261735381933019130534732365681407907172256307008726059526789825230104963126081984422444625546010871858322837337813517376935247575394985508632229227453916869655230849980780607937535913405704870395305902604566513544828313858749550892222249245677882757838633008773116210544119234673576081570673228465307622960580691432336039948915538424369255934951908193807544356342070931507798132454350413731734647908526125811126687737590906730892835456780684151924420304781073473531555405182478221826820284645878981652539971029747873981685430672542215287125696275595994006222941669320555853414633375447869523846808626404000780471852396648014225254423460478237013503080300729922722218844622657822232690808002051577622366347413011306844084537631842628437822086095760335575670876514748984006157258602105934438305026121295985802793327546226298494717641700493236028519230725539347664137202312353101982569724032072194345714818365503213019537108271853533628565495795540759134340667527867333582750633009642874027526539653511248571968358853489783837303278963594335990780100914292835295635949474013796210597612054175101790237869836773116399270861383625240090134595077521488182605346452011707247412313770097146321344680109100696117630898780058530217203446346767922377699601543205354731314250696610209752754700712830904356048736941065872058483583526712081940606451256369457645891890569743497574502100616996119899973425286233714607104949577528502399652914386222235124078399724919722845428996164919505413752098566720022745343205557163170530348088453082149195153670159923218863593333034167405898465076536990562992620053450935707336402706770397762083069753671329824210294119655271276624599296882268927258587086310694853687913270527625534124374919342351668649892773301776625093998898296245886105842388884390120258433246269919298906162054207798327423879788401504025524790957059067226906940502278132136618070882847687902641803707083267771374448723851797203945480407722465280474588739567866798314123171664873573726736661311152284555441887411436112216291833192621465772812653526241800959136812015070212481201352768783429977371980673937177616310055002321821582165058906876548855649022833013990800565754168406749971285330821405975640906588425411186024579502826584129915961803421476443820437538721404850670154503208145019055069408157505902713321253551809894389381155802703131413047875210971256789211937963374678048429298459529317109907497590228232559364585242919513896835297190660421414696768822921205436459378948444489400468548560046741015130494272656547197084009033566981039980336070647246540174332513892898428804774866334278581003792524961934104158170677844535720893373016635880294205253621567638536991513225370694137647456049055116987914687260332426921368605138346537354812784026100399845137001571141022051117318510777689208431826518978428238985521253994577278258547638243084006845835880196183440840155811971240868718823504425059861872839733219021787911906129467445349610862610024820681641090936549570981018843827174723425208139468893738236806727847131245115635107612837363299557723193235286263857126063406344152919582415582285014503905850823790327847567113054571127056350837892231226946070142590551923870293089828658994650357212561265005211494597455426962214781013641802110774912811143370083338768825634036361168305154934135009980067991440980462791938236110677975053292920114913741005190451079002690720935733353483289741862656325483120578536369773443150340039479795929514678284467837064282487900402343813556556615991345642837655790531570817893419248970934678215682494472432965655485763676860651975680453639710385006434301020129162804927065126542078242743812019139938678215538208916438587469222696718705380248940495399318473212982694959837188520288684729559003952147262916829165944132742825222755943787692635356783747677876206987993638669436268508163722952067879087579590488354520506203229297839956684958976286284227974556006723849915457638677829033700622313868834352661949508968731958337572401327150342025817336821537620584477038241042893970035850459889665383504052455048206856120785736606447711941334849083744952002306145661993114932436697433098686970822174565905615323445026455647362095357658323456904141278632734771103326883002825130003741041678144862101840789661584486370371469410505681163899028219681981469712232988842532319539726696191184381231589183715868529779665389443726359459845647280909560182980474349853309186269118680066386876271473622847115410658767721410282618555544218490114980451955345491461122672059650206896192151716624966382180269985970481193798621115287155824216913812388287420347597202698003630989764516039906248048453626526434300424111687000225466440568984158537546641011077197300029017947503945664983786562636796929089226178930650053107605557440576227456719500613509203045314388777440120329095816887456269044797113449947638134901646225490887243484190645326333138420461472195271574860461002774953641914272742404748975736228229005158317958447832081467852646913863685062518087843280055963502381005874867178333113799591414004138857135864028917609758858178928570692151784780106251186017050770370116986010972651747756871269274354854623155236287156740771164943693434641346638358124951563648405601329584670568191839378100190468197161016919688702477245384519067257444726560007316308914364159414037525175410649376154384915811838397560509827079312843479917697013279355096403474569788832649878166790107292085784508792535137256394161550121901614042688465868435930295717398695529534643411950079463685193094589438760393299888156474162859869934669750495541540912692295082171903087389818913428781780936844026302277189648200254786715602992171421058180442124209517440980334497238767791695816208088950957792299612068114655232690716432582911413173451530951417474032288931978463072497220539289721645800009333109025424978932769034260735623785303854274765783318912658068868343643971665995772060879201653314087405822184348967178878749522264172875414075201667533207519316082554134580798510354195859796891905465441566460849854019204544238608727846282649757571429063024075914806235440101072513441077907102754391442881128887899647090059058537091645742368311257373683947386913208526024464601407437325002765221338200962861390811611627141460747030167989019682335751577680826986062921058964625774578501271108376087431549015538813709794273139996273328541565631181462419423295671684522926082301167748008135225550964435649297226475251113446416562199648212999249033435697640732676931931530777900051532629632984980103816947801615329517075962049068731347312294690002010519065030169214368513957857446849461794924541594755801845702501196163362247196321227672589037791666517059965603533867605386484445772564076604871625209057458746065106024295787096454508797865245076074265894573874583570065259316591558131286076538699389724257075753294875099303633730865139766977548059809817189735778362426739128235835936657908952780102347507542690920990185340210907169237422683960631635230954934311690861204404415421781670807535269641318791098873995474047402273006768830008680980371979185040616689132759567541406162543968466342299801640672439569214915768994744011988327002702839276627148278703665726951493662218632884852882113279062708507105278603942239000928930442338140099319754530459992212158692081408235983324900579567403655249462412550872694348281544940594167558250102134684116979891667797884207069577922853046171945685347359391675019852447491293855858566919784666320502518140019172450481030422099840445453751739344900426844188229481428199422748579457636695290007006158544650780861104554336187861161796975807790856729126250640831705738347469736912699788623840274004026322259204488088492851877402042850416851477647303030218448260551367677707707250552445665090964463864444320222381047048080552129063995338350250631350797204942127113936988977534971854366421040398477120375184269680301407319087309952703093035991610635927236632507006169818819720444350930066808843064330897309657536232917817378409136692294590336108011951579136202827567335249633350991046450296324386174221067206678029647987561126956017012963057068868622460684686159512705227869410381510787403144683273827269397219352529512567885564450517665114408535284858171529127846399592813980712363769601733867962872535170003820249098178823420232132988107013258778647440995607041168681973496678757558743760097432280789137846235843859105006672033655587682621360496406850595046364747571177438188924573079917386746816737212831649357132860714837425645230596558075692446466735727250127196170478426239434323185425723932796693011160057542836147908767156323406227934619682839589710120897224871015094705125151895683702571045455781244568310330422825132473494626808771163233843332754072647615936606439493818721566348857141815541397690077301714403998830286482298474230798578012424640745969882842343557759614500843215084679396360770476894922244225387095037476023860110357099247986674950778842078635776235499704293494862625067212832213683083482196213583653956272924015284863401679271823042799708775498946946194599742435164796137962832637087654507898938482053290335104873926877862456986019199007837074959663234021743891934931737820878224989538305451379147469453193577017678441033661893554003592009672514942603867901698685612771141464729832532176596539778936868596846180775964483005174951628677162241889613203943371248751470316465649498116324852384384753237828520032489610256802054501724648812844562828076235544829451698992919180912980491330356185969449431511076175856993121091917303467285718471716417763532238895839115622374287547810214063446538054696696844378995584467123668393406336389754725422223394845766100845586662217496977722478184929247518030251760881270314309639076814906376010058175944916256131245051673015178386888686452814778453586041681093298338785628797806200911430727992988059364005041476865849494967668602530020000560235597186132136240079511788621202396375345648459571203884877303138300293413514393899543092615273528767153286329715602867273238161340464378773876730359052351554428105407235564685921005389751038522151647759162319297842184553983462139491359603443457497288182678307231199751353564565342489268855171392916273634548876606138285886785769431758053003208321599997062386366866997775319837139252975755163194035099677730879751601968731104353261945706466002362068494274120441634530219968272865612137697678409933426132524030202991802656116705295707475262769008512293043595790921380437687331650590443185181293512973985799482600280736424673387749070171371285755069798241982708691952212222117783751877494730826105093932001845582498823006080387130687717806143938154291256969664409350995724026683732945473132332558745943420937227660615839509508346958488688076611206445183667775714558592783576581329502408255849208985633694632344357563806133785066995852479526457862907577615407557535244103427990777177372196226592004453159509369598135066907811134300159961468033367437613243956781115346121185230092386310353936382348415772490217800649781405789630080918203157616206599980364056104184693452939932323264342721715353729541997122092929377251231957519429994356964385220944047680647962258368545150055146989524768161440019997152150927292446927790230976661220537094361598918374119031233893719741481662835045775556576877971616974860676546075018056398606240594353864307412486538326812103918785743080361458944624161823773342471527593092595660454845368767103481656600987227606506155194043759903128943186479431659733646081623100603529669430438574741492119365448880753248598685721557685786651673701640369418154854229676704669101495357737593434826971181597013121380287465946931821506873798666633814519999878863012096050224414133970866337655248663838770058938764098153300748344160904589754105458186707629313617370439923972822863107498010953342343168090864925069162893753006827545208596171052202472563313500637629857051660008625529022716454556346295797411562348898613873449964667901960563267539270781263020397032785695763660763899235544827769816227701382909485945577928711149217537093818749460149481922991242520310344860770838611396626720627286473866512212416771279730544057197888726003829219025916211974815448602525237894755848698007884482598343982489383993427985262834261299852068109357848897329487229468603744057712483547426020176361602906985398962021232972287245683930154414835769518344677752438383375942637618431479682928929039371690408559036850059198949970098397374752068741315948054043792543243388357192585517460586493283083952520178679380296670789620393494318400695241024775219932311046293895531378303670133904000835879835665504751068356108489700484533402861497843654526979511549895329658994375463207205051008019811725797661857240115919934447602046872963342458101503108532561346549225371835833560235103088722075278006749635180439387534562582474625653404727144333564126050931846477130028436203854519465200771184822816235722004591196697244392246444360837498233972914280333451975689681696831165019475352155612545997871044816860977105423618045956471728383666417380891599148973004747104978152598883596095354921749588030684505719296392047855390431338431007132209896484569728084560065007734987260408162022429756949981554340327593885765568937523019338340843164767031488144822824310757806686260066991249772855812431384507451184923913785386005690329644800986816724826392976459196362364981707285779543003806736295175879568868403342530998814881997299326226863821934270228656857550111659121380988240377799953336669068253862096524322484051808589802467280594739529841488588122960363142375493739060900757628473779142975169441782568600389347155006328716732504090855806073892374477944837121035868373348052517490427032804336585646733989194815844391270899732829731602145421525182283591628770066545014531398239997285144206451347537333801086078001197932239728035217352979891497016195620125736374766894663132113437106515436267703434825612063238936991324863142945110155180173652870673356749920773609893473102762675767819221888658223621522253645195222915997507224543283041588131790429183261743398969370159147737103538711548881597648845400848703991696714800185186789958081338567590530755755459663141985260963038887658434909191270866799925879039416320559971503107848447339508519894636253001046849175133924408778186212450016701823980146290082897783744614355298089563294311631700788034129123457748311786288373560946067808899706019726204310851517435026820605250617642845465654117917501537378172567615439193603141766438730518167336536475413908524839561667394558295478362824545009112405418499336842600561564010330493112617665352885751239590820160935145153260719928325911121132830255188488580969734068444390424779214351286177252287266800440553657330187556370643944341161908469498616271483533904338211650509690079938972598439368459558985741656169862891007885314484460906337459130537373721478533254264212540423986716418425348076824071019012153400640105379893500846862525367652847550384364386672688305415700020638933712568318461666937260908780257217170484719841274538637926845927270107597699231275883408056094679847338025738691674076002193000548241333319478170828850155827303800014757099456818766965086008021403308484399048652710782443366872819945623371169259345414566740021285387677137267691411748487058872695032374944812981872551824372444702511133176554458138547008751964072019868648456128116067994672505155364660531491003311810357952544089093557124519635456817971930817830668464142435361988844521189905270606972896966866193078496320340060583718958758336867348319060421686904918564490793739863278767822914310550547796839098598148334759569963717622240560335855165988543957514674494258690149309002722495420814140437982624525540362994603712719942235860422804841419235950509010126462776878383989882788832804595766649203550287365482817020534141257101798102449527859119084177299153901266754390824523838480596042560954255851263122607238268553842156339109156506404098258785505993580321611466189987089084306113868777588444504571108729764615876801350480600237029624691111890106863527031658007885449700220728242975621536802106539010928207433641559868877863036479598820618918513426497101549790198823375451926627564277704057996854851102617621740650494755474691881011909967156845759466703798693947507257926338072287166043510361692263603372613057504411502402222671909354609506186532128275247721550875589685443525748584171857414371106486780161105341240005210367762398439606828801570829986272996989903677231107700575472047056175177018299311880316905389720236547459038887568441334620897803497271899627568066197569373613054425230236315413857838256811686409419209157455457279069114096062588880963392369844519730957678327364687004264346700884779165052566153855348176534077484127340757949889077710885471532706417631537140925447917602657544674293929842866969929991667110057977718455223737016358977725202920200138121588022436637401733344618282398607509805741753025841533252129736097991642565183811937465258733436904453547740477210099515687691731614419412317973680764497399730674459268578187529720667303175586087144057673910568264018628887147505363355523627930140859176426999998080170248324959183736135196440143935892992498476756437439523524520635786033478992373081906906882919035298195078941688029136558994744129331019343408138290549264033621208988285608211415710670976137862296381142756884874086711801395851432129224578048553226841580739488593368771961347521750884181158995467279763412895412692585385832003047337837428970918515715830173229606373662711449916483823857641288189611762792366616927381426372014420807764142913219806595748113551576555020455718063820103576691985902094599143257561202284491004758351709013738312910530526959057924604773645215589930042127011834854021796163608983357550244474237394757728765352397782948610953413021421127142067186738289728244587251571035393645999421982382110167878106892918520392898145326344341393513157914791039416206170854761726569188656989793882748812569100234311748993744992255136717950734585195543129966882094293635474786823193415381443299876240978226977181954237828346803127210456065711082329469225032897585793203932140213859522002902021150578687471790251890601951747325853140270882420675014349538477936374781295626681467759183532504983873570538022117179903667519659099932268402001869249463632132396530546951333156200777748008912639497311285961550534583096708257142856813331559912377847217382176362834274158985763383643757604002477403388423332260069384757966457103727539483592271828274268582658342557839121379630987689688228664702583872397474037028394924361454411472803206934321648505275379931228429606841036416509668997273806006932461752883988188585984817152496424284126386822785726113140648274212640850785489804482290034132431028097059665014798426195064074135066319552535435705181576969336820313763634100941486323969832848410808264755462852363304499267864527190810093247176184329350829257956432100066039490325334157013379186564780584010829652204940040631166035180984564525082164564508040835190182180429090578601354582884422459523536523154311184268776438806764419883943274177838710427207469608473662521555872532521387821295985683177147227157963918634352777787427307349846993773187698751419398516723048354127689829052874577466532846045212969544803222106193901617756791185779123657501052201343128043866683035134522475928266528929698465120444390661183245418107459846042557116503197059190994972486110611378965964991424586906729461998858720224986008520765632645603332837237012237866796188718695886301155851376352816919829392134351345012630550262057069400881381067407563150162259015663465361406586230321562877296076271687037227458599607020740406866704102177962400965473390671495993573030541375282766904339715495139185057860128346828517982900775484950047920068523739921724869683789501392316040027603051898817143117110243001576422094824352434777938795422039417014937385957553984237038610757664305812059089119726368019524494687303052913895018668221941406277342780830484165550679825977807164432529230447912674348200366239687258988995043970303413575595929920902040455414134398508482747061940018859125924735531413423291153616478217602781068297109741606898974250721426113367996526740066590568065370621487983252660888555350711324120013432492057111930326552301569487952837591700681650078520556113398719078919540470911794889408518015579439519763251704758093443868783655176592709891706319567249292122015140090755687287086505533585696761628045633460490639581068018633586321031263898048613329150161023020394466350541631548103087353724512500439008237823283305336024307236974603311696246823101295071659252087400194262257868241836330784112527110628563938816593975485934761718699957140938630777947135573087511392062598125888302059012019282237639980235511630804453428089503913056754573895170650714468597825335555397068991535943073058347406633874111322445051201436138641779577894767880092313124265358965808601694571765095148209073436407740580173230217113666046351747562600190381469216347873145114482068224594421650621985675140029383797686394258308739797626624001879038254451541506261608879871318041652090473711057929614944677283902222471206476838951799698118789822904675294386076440454522303568029599830362859550700392486986461468248295132591369121760734467963306410094319115434362564492715663619755520212601895195919514618116315795474631166652335214688186192748375592379357249831786644012299752506007241759946059492939777185059757931082145094364888290357154621320296684219532817454241989877356191592070268256764888818590752137291917173539479858279479936473197797191761097218470409360069863732504892050491593771589626023082922586855336588564098759584026090613742457387821740240295312618556332952165977111410761754773408452083398877995738493779069658846442922653157472775341772520585591373373995554697264255503455408191329414238827986192116437649465793716175623871214808298378795638707542178033125577789300484539335683495131240118811986452757243757649935699465324206309481089313552299530314096195812217890184474510260117490309280173049747116795582834579374931262712190133505725536554967830311638613937300272157624781307418922612695106186772232570419910477731013979180161750616847452857717715499836109084080303065420226354264832202073299791644059291827716638832925917562237166650070086329995446578607476699053033595527660836383512725588162060986615991444392585252269352530248835902005113388842540358937279636846334553078236992172716395674640918933032811813805358051981130514843488023263807942553558722924548421729259696178778830953985285910219968242832036973422577556006546125344989182132074751252008068030894358758618679108459726249353637564052911004097276569406339672479318780484238723635510947880273318748573323347221331339735729331936001487675005000559517732933571422953072408312906808915138758898893991769285226964200818311650947820058370187493712209080597711286397111114951068619223886206140964330895983146067409554301603528887693664403852875844242001667732772054267869281795057987306933144763363639655910726581992945588727634862398203399201452402645280055969874829890813607132906312965123439511707346765360597032980692529483269564398532388893505622579596228119995363649151382663745014580225003407805457845530003128380636004493103447300055273843390569936891606354128229597547455947103306428522897852516813928241027802751438214943709835408591567005208265678582073617036714123988240933393043990985307189051963665145969602447521025816854441271635272789510974865004109958412132839201249621366442710240038877646147821394698908412533837713178791316154391293826287798359162518852857205398804047233188337824868696613949353329436043269818453108208236055288121905321273794931515116194360647043092322905394295798706934312958793693436447278374199883472588170883642216359037406613818515223661558215613271175673247257332656345628392551386986554972484628877715196754211638367901238270365658824473759064355368638852209124385085940703794299350453820757324924613013183320574400816120967493266736688114472998896991315142942468197747051181448494650221106693959299588516613748409220704104570574866128218247993183434872367347114894660286245599841853839100527736348986458638192122772822249389649349168806283103258054990467244844512274703814280560119493980084652057422025113171841732496625847636406657547570691304002616064102352737086703575112581246001820256440139663817144554921396641546178261367884435370316400814860007000942043499196107938567134219088834550815609796820117072266519208348913135615481185949014496752744625838066085016038335640507407769893704294469079695470392661776527148481434930354667224425446508362966008683361566695175008339534654701581061572159075051310659825430427631680012519907700927483732414996405057392752156945571715176509946712980441453365091300313386744115669507012536427688546633708702436258640492802423956445458987180277765637563772938186223312166871328198602966706634904625966763188645674518643530342310600652408017632780391630009997464356599225709308648924391408049182032373082473006365922804794027609266262422594570291059784768596706090740693570409415158320568998644929387686607194701732797569081467146686444965753750316979017138907391470093802064294388366127467138120477945139136692526651510587574711566774164049308940773578295727735217022252868195597942200344692298200550210904042059972029750888089894151583193844496135545098232961309410606648848489413033227460228524375981097469915480036311864901025087183250764453130990328888777035390464979278545304978164595476715780017347142885752489947439686892924942196194606537314782970900368750917178093456604173998255769232523688432400574720948214866109765043610244344867009194955290731249367655735651665067457578613056866281826950064608250388978280400415661856411198062551715540121108010343997899150680327714230228634557408419823755559771247506330702187120374629023653131991119033935230165377096434759303020250766787757864771872520920714574010732113783422773692658410173638366994553166240747634808200620932687847705563016777804072395573354412934165981697700285368633721093926862816370418131343449135165371513422833801933207543265328911999964293237126662735295408530481124483085707401227244869624416326460275471183587285320858952849131889215311222339680945443476842063358250361322936137232101076980590830593340498560923179006208892615141422711837086844907407209276091426878742502415757716057786821769366380722760244268823274293152497721247395032645263729544118915110619065682996763143968858137590550568715198781739370181372261354001055428683010001743238783183009983767523050722752472071501662035290628146640163041093063081742357049437297142558331921782813675128489337099964772356173965196121299296384830318346814397455095642327732685192412611433984449616211196370323275087068008385417036589826896162304782095098944709595624513024601570697873826998393252568955631736478006047463597831523522562501206528288638887587150650227554014155071998589693797897710449817744036916161449802114424295024771880713756763736722912398167452331407487059338062697863006751594591558935535610278608052747585504124820217704516712515264870670036786151668921777995438384217964378078305390287098376443602809405861300639079710945332278438721102163197681717751164605273389032657557344650483642429787053027400952553507121591436295606309959020366327741451133428836319703810212709056752474003278137107602932469453033183370822182623888384520668435754882361609856364631396777728445448904759026109810237056405491772042939167563553746479440307786767970996498999356894233672969595459050201689479325214251894236499486017547067953402902890216636941852861474540973856436239129428432170571425535277551718693741874413698738091143149993661586730992872908327185605937917546822582353965983686299113110963409818763029525635818256477949051333667836901421701986222303613035541653328744869132941992179532093936256254355620700269865347882988035988772554857577857592579679230113508102157695395041230935399625037972427839417606781790610310092498059702067226908127576041384808380145666337807325952335828420907706105085014486701434501010246311352911382618906934880469629336789658473851562711338084517890062190648190559481200422773528650395366984235188861314413687729243613011450551518079682090342174677488029681160479964070651677898777648181484326852056867903941974869846921353317987723044708892614070451760309088147076390447729801492696823576377162095629604011256721869503302299312645934419801895767454867907971260214505557068655412844801429587077391746776927329225400190851833822603781313801010355021001349803816661822191428314844299376472343345106149551052550917310882472008159772884433200893222190040996516814038031817513540369501698656100607657094380085884816220223224483983184748960054311996837969474420135958690463735990178993143287198046516118077781258036858413772157671550385298150324159216266933000216176238666250670030540035070602716287262840145951238838340385354381836895922509504079572886412369685938118936870712945013108573794403436637517994475005862946062432770111263843985326419861526975439648692767115874159109890945281241151639211781499063038152808549195285914150893208954752226337574010848207928928561784215092226923854257052020950830923351542388529417000293938274604732183946061435975343451473106368018185882658117560129094678627725309525257459560794808319775848443074167102820040165733126700742514755034672085119759196191387121672269486556964585522814096506210940075719658255632696568219740211443365131156001532001344520638796025321456853803742270869238348412947054758572088861615558476600832869432232683594786692512936659590051850553403475271371953643932923410228190126938603483026586874267376542967461059764608413581486287539989039020125265357098009725805890928790858295467703941027957018162290543802437649931343777142288500823254205993519125422266988865817778936343297787930286435155662078239272491354012706843565942982241274250070049708278531096860000749242336946831022179627581452247479676196330142061688368614451549969077502910600347455873757203218325081838068223287050609546008075319158026118472165234744208999504894239935771774674125030291457980776030828957054218225537169998456063065369846998174885472566701981466984615042543788706579682383885250103855557083045188671486564500194017747153063821517990054210928255592706881666272488603382565107699470930332605703376057286129927826067070820947058631874576712875936856622753594819129319137848428132530084993261874203020216247948400168648617605969114779495035503002351297499953242603882898838149015777576978862932777522549853740911374797617216276104840831878773097270966665436334395204634095763450880275240627577399813976436922038756984712842075479983294676695012822444445673138437682961113695459873488572320134370017389372198465435432017749810754439103871327500062261196094239313027953956730659660723596680871692118245095428821179474429978017981174127644668135491304726737391208088044076758140612725450691309230089406839806381133227480735197121866924214494552248259198758447165715799692744840244983556411496583874287129919279372916107826824931438603114034018119503378126926341523297152486778517405844625284417902474281189686645004749087957246039071047112390117344254871557126888805247122846778423553935123382858969133647867596364759612112364012713471167398865471626640140402573172174760939112500564336688015976944260723824330058930320624902460260381857558264407336134434345361391360383578286513661867137059908085420761682364969422478453505078749685055349344243160220134624386610324575438865016553011979914754131153146808662518042146135058368627772828774440519518446121135540671468043147534018197775091660282954929029776870266971942679431386976967998123402472588202414830503525504745272282608165057441280944951196382482789646836125268443495756869167416167619631410408355855291678302310508976423809743024616784989987026796351793546478608249227233366552229244034771543850354397922535326190677079252437352725157117071941762810106106816899415627201795387441028285264070299795314100575301342781665641203323064213132392504992586997085323500967462947589611827014482005581809429850901615629056043836208364022820252933629517490569818339630833805184647278360991290326600737297524296244694022310665169640565002179096043471513410226240459263471153549364074044306246390123682563033718668493162040873647820068120676267934738268783437298412069468546995820774986938233841832404486418908542404979033118047249834756052900514700028423564890827839729592427007975690919242602384258148987102993418849122138044362598669174957011386754708751078947904539252543551299026706035465744123346371444315219007343478214508303202373300697803162941852920403970574701093467763408922602881235597047666860288127352267078874624439636207520790354443042303849373058475747240025330603708297060973099781663894601179015812144238047087903057338566968707957522983501428596229806220011805558784288562192186429856256114323212824182694464872475823172211299568266661506649550954634043526763573158336905433609409232967854140474330106397503186320557051817618436977174891872001430402731547300761147127452981794197241345351961673363235166930412824594271919463401795703136649198745639092968547298953378564893850849406144456067837748311180571378629191014656091736673586361248245044108418760228719562653421713893756047407411403602348769088251573466734493541021135491988032685168324551874642809823287178549215518906407698046737272893009595357121481378420607992189454411390965698867822124529314059393843047568068241892252613629690640368073873629457960498509203343579782519262113857293148496919491425061037122374265782017769801267957383075618083521722638487272603026800218006138225396228218831373506403957420738325371546131445104428465460061516541850320493084236274597163220240625374673282261307103066112884883668229154235137508423302707522294201828724811513206532077096883770342040251973759344009398686953940596615680016501195990325762857299072628910260423879181953613406614284824799192765247267267742615777742967586717663873176717518241705155821603811878299971102397581673438572579996823905203279643083966723636310741698378168927833148307070708610384173049854833406678297704225139338995734081617725119023416414700514848505631133315012337102058716645555991608235740783173565118548344578307424520825707148162496660798646770035440315242306700337772815957538686480486913084967113455493434066820771721142925274663400203790745605815556911539421037386149923567925012423367862166787930809100996279001155814214117266451120678067475511147056804508875373112140391366957908876620985393232129519753149098847945420870752623597142520282190057396650999131357977576167187733657437770829928224022972827049069203009958355544159501854601598634025629080478170770469778432414194302624003048021548631066426357125642692226421491110077580541713276010571688266215266439948789893729919009110139960339065164907046195066914134651915145108333847573344340285644008662025080595268191739268584297194699669060238595491820407854466903057611955872195132657719466368472935031711293792862090429747595702785195020345801440924018184205711496576230902277921903330221835090674947959393439580717053731476180298080393301209194679838193461218131176262411855326963683676292856627402398492467501771894974602122488764629807567584961435688860900805783854976202255386144825065349385006713729706682038229180029040269531756374580731049941635411386318000305552733962953399097937231289938182157421108536197198734834787300867768621573558359587880366647429944374913239775899724150843489652541391365586998633745030067249444151620450732759620213053692897179812152689890418037557349289405719880668807931495762914782139971860618785167126132781954702830055318450827703259971621312952716716142860080529756376917742901451621105825293556117967057704943608141864055452079475606275146275877080273902993503554292594443881278801946054925730241513245808751668342363233079832991739618485342343527824932362401828495333275058119205399430314634360191161594169774369872185742779360263464704664553561722938168101180159647696558222971930008653798825047571261625644971439299807638749065081850236214657608267259799805579483529210292348072168362488041166919216395869301628787273829622918539728293348369453322043492198159891300978175407637196054784719549452852009891222415268661500704513832779772112316230854217947867255641787734625367110579949332270591876034095696897041872162545917932786415515902213226332944103110586204478454418716458063410134933399608912997112518669174969661026030466996342524496577134952352577985535738677928362346872568463661205372786310193679722894891608706057476009828478908045295882432075413192978292106266627654337947866435337736950660137306223292447489778306531673490099316909493090716046352680394363475637352433045424933330173161088520466884219086607609485502954236257875025085093056001281147963182259261559793925051424483242063798204190561143321790413069271289956559947743730610558664371723910659834316433935071006519482194033950312403525919006504085910437860499968761239544405565252363853905012682736642595226466890879986733880972043610014952195470706885157018533272889290455872615949863442019655022293202932764840223939264394373558069668486068193620662030793927072628185904782125523466774237479128516637849038711032584641070440299988263271745994419279524795894300289166554846691401059759713979156893863061956240535044694929644910004964405334394756012127584098267918523495447920075060883571369782879417800949827899056480628567884027627827832432962520755214055196941408375961350469335568799604837600204717953253237372739577704368143666431390798734370667938176602726885493089824822634166922083203632324315553721315211140118532323900229410844105400013200190506442470796820879056540805690557845026345690881037810551972385326533640171665537699559267825530311933233849699028172330901724146350164338513781467568484015047654837677413216929823376013336752160667170433697898072596569392509465236687182903398805489120351763495013249527688499559138829763425687967737019635778745239118960339499335631524719454010627989942319621082903720290986250155401630043898369672119341691684544868696343257885890743639792557008112368927104693984814667297104880368949968259028786675068775396615242853971512936734227327453116187971932097439394526833804221260550461295501340619388753031522381394291061338312608579245042847520484506920132249717638528580640430500664634890675884453943489889369600499534044572480859035761552853801538903654503082524114154577054948725358868897621869186958238987955905444798662867555780540354335408371338251103220678896935228953493917800092226670429298520352298458480314014122930762785555356423288808539452984025537838080174816082978331601193959638605922279143375994812154301938900807590485556949606992477645397341880143161243038298901487630838846776317512194394493644104896979065623963403895781334437815896948213296878335248903937655765069058842297101011900647132149727823895421206359438389221995870014142081959363059925606066379335562846315141797781713348913642567768951656842385855240107897644815680006065898093363755935285200033716222514233709322275455612693013353597295796354780983822057317920588619208247545991863908410442206166506114070664225504845505728818334416870551139212681071361480226493094549751446429388591432541325103528977742775685071581615862686775870062050060643337152313801629792076562605298626916467300064612748253724196652230695683178126107350944920086694672254386537117214619735760934048143102751857886942941713652421161555242426637454644077101374115713454636877225624917354310000971859865356418314274379321160608390239664284600505886787087584473857212590028789744618332124166030741617187713947194568235519895016536000484734442091205117383072868093037387265297934099610817962619804165520815291943994329386297856023761950353175673710953909559148814971668049787429157519285844121730947724402044557805652740143214734358305160615720364529717869450693972929835083146151768506102432708279830322964207530759982345052060828281657124334179998246223278555859110592042334444800696948882095299647115550572278975425739367726054459563679074678491242770549166863019926207716030158908838154751342892059255290533224042724439779676860326997676754073964875463456100521440768818853824945629076552804877510558193448609562031124543891745865974916172067827059374261164649659641023792800279896710850521488027352005232619815239551927249011001279308759818289514454519106296838389986280875975245241607385956159484508490624990540070559320598125749178151530814029647597383829915553925887284678240376343982547367732162136705921283123883058294576736094022613982036363935727215062762169620185578804077418745907944637533223576529100375266651564435025540581291330183061322059869105826906972027333732027875168979711259930180991582039581344129102910263632295229789823587954172337714532282360678418086580988531244070432270088252963201569537530056700475027123487088386937779698246328007811278347886041593593699974300601215538485096918046460015118588675255772496529791840758288896159299549580572990671542055834254285540451182987741461180779528842970480328216443864765620044802875032978200216744515289285498239158696000608110630325189625915355917560050641852208966849990974491965021265224617974924768128706065690930103607485760254442331268859506592868970509671023006032726031004468914006404814820032829482490444206631040865120877250805255270398232754785239960114106058213688815393060815524167042198975356545495031696051146542718426865669682794706491751063878008887321036648024791063444634138124175355349212267517587335019803741720340694644613794875318038273290648684734774140792691924599912192172260812274959694460644047587340799874246644025827226319225666814273083198482838694967644761232865419550770505880048119817125998451700470284531794970366032042913631920236577711378526929398810951787082618490113264067380758812803479024047711680773787484057933077181350433515993775392391927377263514709859977662506183492846529153378329496174798801574133298975705253761899643227532117557207140832613000140766810893400125206538392884781269046801184325799233234158558213975718644839645546037815665965111252877913495563729930586544731392424292645546130453147710210644515722460654528408183418342938690370503604418109558258933297926483162268329390340959661997489824140752236817361850045587774767263454599242761312048962081548724017721048091864613076383523077862507375714853966321124198701645551459966821770748079799291848966660741681221720943059890492043065979560821875233768408970670131589240703096554659428876383929414963478150241127726790035527276525603167644166645176193946467210578704992401584057408530199040007967669145595401771128804282325206251189425543062120720695246105801914813296137982117155447687070698771398788145003590962540428216271703772646879675905579766900809118874251258834816079900439587944069995364553647345887395288411850897421370966478447265743963439661198453941938544313080755651578440394433945109773272294517440288693476131353456624689435887004409295197645669844546816664309057579656980068519876693488026348766566037974344055117820642327370893120752658549128803941320109876282808457682316201142108999933205966078501031424209140258251133505628515894459011461132239625364833555945273361108244307874311956001827846625682447569371236110280830870485784731555747145690208623610045332927622168964821683287348190317917134909695854964569896931030618546510794298859781421941985988213955631134267736701931783467894188327051354323255585242819778494820174555345891898560260845684161145425996529488632060469741126029390166982773677184304405606134145793677725535703126874768349861522417301858324669701031654161921437437339718371013170250767742818188961820231829017478878571539583706595283800137488876022707087711077247302046985676061846325123415019884235038219999017318088504040548188701235362652964241776139326887190551104418804537553133813269400484277193072858593371623084297802787594884850723955096160833910809306961336274863556266217257749401089861464439378656218412927872828121584483879671534957259016021400730447458114317771729488362152901110896132342574428017751014883951285718958578161549459278769272938618024505398665342322799713641875252391564087096443548443335690553622521104882319762453341721305791482262018407989732676320225526229080505338054563738941184120757049537765485906019721648036192889690004126135376987600908667354169873897660775271209723321071880625882951106617865545577393739224969290474640706944838041055903252428682882122277789943272159886604204198702748335318782578760817271598111717478923907107846893731807647163623110027712056635759036963184561384417488345290697463846200382167740276410821031711787965771326844182202136353097755574401850729428911670107340291524179135549898576809065082797170387650343265171557503380982767511744448398877555970470931449464645578212559399963603176750199131696899224420239535227395465830794031452584361920059957886206764628191190104970462122821417344998307210727896245277193383896951070244309907187723425731053055409756097996694676340552672277343528128879703115620856798373879178869342528657935479404747854794221840222982601580256591239157425652420894476235771318513694108995007421580765558326623406551329665985045670831443800963748087723484803267030194840424790139136306753258004316070355420064652698950929486065526079757143871487427942430251643122208627258271009624295800786979816537653645809644794230519363582079522797707613914144985144558449042305159627699500016246944495457678571757916712151314026798292504075602995274701130424127266123764322575413538937258006913436263523517220579448898334670434767453159128162313908462440785361247451079947747496702342945930780485628916940566842297881689504300310823164048500653225633272722332063163188148651094564931933922493979484805768978978583859259237550257422818228737512173369909071463040099963096816386761547900245117624971671293448413220513563396406839157908705175489685332610816826504386755649111776878859120675588299639344651584566307541804655653141345169569536906370452338088520126654769328281540274142865068444993353657653302219688130143703157522818278472907920107107311666495780077650387275239527720614515472211802423599045321772755848252587204001720001730988443608814718502438310421456749302831500421296056893057253797706383680236768848967170719005071372308374206903066224117563099575200389347249055161859049290542004082802074437793207560263717384704124098940769049922283041031440585864344952025786398220231131624528193005122386893086053183034608998508508916824947173452391986203595961029307738043083466827723367477099664951266755509267012074740105777119103159551471389181599706758837114128385643924684779328968423726659964133397111841083767148557110133299782357833666384268228475581322746323014248568633934656457508728484561661693471677522432365988299169787342419602987769497527811935370668819267917084649136753343774599293564069748379753552238503390471847033961482894346892180225738088901691141153611016762676457984007433358789364138745072463034590048220929600670876102697104282664429997511451556717169866500132545719784810633369252526131958109689836441927736260572960329637321559560075486282509489599544948872447705985351023384768646884041586326926630664852380106008107527419776108480994977068419133678271749933612336914233129699197961852146392450885220653271682273872396440029720759920773571427474475581656211953891636792280493825693964657650084686252497168614302443157389265033472254750263958876729179675215007005431659676621031012109295144411090721224914488998517229210360332442532163489484392166677664825970996244770860883702578459264292812352000419730395506914549830062447649360627254810877456428449805540103007183697546104940596329588479909075802656165216313393029101825168256868530267959297732708327810798541746669575610634160944833017173997922053404090611615821779692901342675842734373225223790141723300986649440657126468152042326997200539663598574316145109272213055650875367211270140382089949863085420021577049557586464929553517319940273291906930056243407612995084336978566986616022138075312859020260093011063154650960119291414885371846793221439784712836403442071584056565533674375106752590500026562889852954179043750772554229542141880505791969198092038437179360003624546837847088307794201514295625357892837615057148493937255204660281954710018137464559021137735919547390710959265151603699470312606245447596294905977682509856268262487969795294349080073614715800189172637145904100026883553246034573993750343929762923079449054506684822383817474283786598994104996789298755116818705631133307872781154408838195982290940931800033726951518387015291842384803648401160206720681600706157142698976810954793359708307884267051913705575966960332178228590025157244024050892397140986103404271578214022139211455542316545871641117093743479572534078551342311075790341935334887414693718613158409308652293571405259636428037319869677926060189291151760720859740642584521082593333158963894791185939860147821858972351552257773017860612626854363799136470353398804431544361161115367696214281489315884931091567224655707943327269803382958277948391367591087822691911067031817937835204307026421795664286867226045155290515732269300742575717218971316273202053353499401356321184471848196747467051274967843485903933209601283214829051496404280946266406399002963232807985936438528890523018416174400208935839523706516884989512233912644048885117127018252209074636138242986567476140941611549248423502789840783402619484536735357521608979886014350993760966097044726424667715538182092755465639982690003662532188053503268479792496051996028228392355582896970293059039756395521813105677356960268984265100424061801871533597487188888581407139207388485067979448021606800431032610881870048399972208792088409637533230660720859744480060961759524964136827072889301306363082434229281985450161897780914670010663196547821759163761770737954799800063041448447943943502542802428312876044738193293001451789839576198983504862340460807238600666782387224078437262475830290544180363980600216389085405779295550134196233948096467353651360884920143538511490203162960033536848688918245153020740172169246995583010489850843886777539476379436424014045496873430556834800387346404351012268064614931722916722169830773083495095502351673924390928759316936360150814028711930979175499364509256901071142671374461671204603131576412285518026468519347495814879601167965386843176152091414273421229621747938985124400653061950477241415667411263774252526408577579450158417647072718583069555173730191871993824251973112852680303568939716365894862390177042928159453743012580995025230542610675677568272478536348468230238010228475682725739760751163407868855773879920832160229165041570557852311595310064113377874624926969923082301075632627766369040047352968178262645723853588680661571634770054403820307707682456792955847443741697050628757871513535903970518836794021884376109999992897354662855189131342314745983812371446192342878928190011783763029336850721382047302104488898251892087714354593963761007945580242463102630418398939398424106813540345801139177937710911693977616354939020267525677373341162873780137998763651750784989364545771716115188688667991017544989426814483728975522583360373288369540535476735252627344445665418901653575615831139218250012237277839411359114912771911691716189113587632188657679816011220727047038903623366461489170240439589613156434097947648913088694458884803304049906802635991469115374079557202309366195963776658391841104864174367612358747615594230636021655939838438783359186837034576133432183604360162297668076046878084619073859645735975142998002148618175970885766081298169275572181451919963962165136954022587017100629005382091877889801522201184184812377019241289583775189687004193965720479611572801014085534221141450749974388880858742065589784179151017158958443678424610361383981724667073990013196386059482178543321119369413197706046757194348930806277480466570471098622936349459217729784843089356366723027607566290644364134909102599829482742028476316784413155176374058664929607232888027376684004983572702312597562250295922436173403408502642173943859207959814319371111859962499508636661652040255064775669308385079763207805653447794833452972703688839300001175689397648798014825930896400549150487483189152934403359834312497241459940465650878823819947002777786958841605207139800051025015227771491157973602488903378919177071243175420129731312797210798347965770548428811138768164273090146027713947770270872202258443490513660539588840012587312194911838312795779842695767505862524338390702334870030507501739500599317376633676548274202416565667118615569242203977796583443217579193307436277747842704663972454291860603017266282971353391744276620772639575184433799483468618359337878904106239167846980705723594429360350635027320710823719235248701267124089737403931454698269847110769691764053380134857649656457272038283864297417433368214497448083853092334870341753543499234126093844007133359109859928450514082566971036211790394853666314148679097350685459899599832605615348012009082084380380890142009200411516000233991317988172251344297299920166265160282453899947663245289040589334795287051025620614576323025599092479469236811810439882132676498662246952546696354857540461119562465705289852804156793074155915760307513396542972969106717946804543643194608920416082643455139476124929893232644150233989739194098498341935818441862331649301654631306795623635417875460870372561334131902674969193315485440267362597924784396251967740675387748844030254962547806551914599029558003288799469030288156278782597073568136094117471237559097733327927413096070220416604677521748754244016383919333949003943260497930946191181436700524047671597167158373158958855156149939881830020490665122649129521919078961386279239482724622001394601854650651610173066428765965176026371261532533136903821739967202851893629230228085931518994838083780440236228742531990364167262687036550628332386551058011846926496861951211291904209343463655385525103244864024905004800097392136934413152779787924784238553100817188084980947681189277682089306882644692962634798146654114928618859087256953878867210644546370834255573163746737662283541298292491929533866236434626395811045383908773848418353219523725348690805465762996065466402181311672820434807552258250258529055375995950674630677735882948567086509403734309783632629112812430979351756220254613712712121974166694295897921707600754550422727736682800765404486828188161043271312126386969176401938553911382884274134507721141749229533684072119628607479170743808661281289530019058891493834650298165165580438838023520813392077369924448379311798790284542470623195027721417464585530541297303547492446368850550741379428153156503132005364940274562313865942334556160366778470563177266925633846499312819282844431179720992397431625311374790008715825896972401309491354379282693808262750701495576528614512709464327269619991837487391520552092944450736054889202744862499050131509377116416403279596756045323842461765028134286719365997156275320479049352500175563912293045976441270252073474015797941948459258614583425303093155439178141275946066761781147627570500805862451109218924696879950533366856069077470483004255127020191644826169491261799575025344434449329448653681566594929425685179870030472081198737688061458813807489589285383607082671581282095319612503589168862822733189008390051111815142316845393942461932745481152144277648099403771380095714587638825800041240515336808885586469004406594836041221711453774645967388483974363425083168848864720549305442646785367482783925615700413443670165253866815111900234233829183058960630599454168345362120887855876052409709505368996833276455928002344773465620456924837479253043181708893622235102688496635482254886968803087861177848343526722448142918593620754548592541955799966954234284685998427497251838508145280754000349906741274952266513517556843757622031444623065383403942333572600836176146859874790118386480478360207918741758802550470500251819631557886171760579618947419415213685970795570277580691482606416473819757641423848480509812060834465557588945855511014630497717726173985255027279682224450156754458771530632389884962571834336778989713590287335896227433948746362255895193065706323287363562837870443449398737871559535239113119237542426317168185607893948173655426847462333116749187464374932719029189673833738431848376503222568739297414577280970034004718684131457065236533286633916816026765282707786093692958802037541359211594303319576362329163414048492525991851868265903373784645717423650207046900361282506097796272811127068979621536558302056350864102111236604576173896823558362703750262160653867987857272628922734087842850586717146360062189305447646408248888477437506790842743617615313175637809512661229257856322029379454400170085913261461201920526428697288170805271533816931246998466842968887033854968262432655761971461207640347997891012605161493621604329966131277368513395220550471671676932130152138014592852707262623582958959816837983174574929405192667789514412389249624311066370836019631816080433782510985519518309078331457705044256977661153836878485842032139843271788216752915080302966534235451902144031041604593488887211699777193813148648501612254533548869681431241387681538613591963839952179553422441446600992473312733265137184189761983515116412950209105380004508088093513190843632951025273843345739906080537888619753890754249474592498883705911908098587576936959259993886429027834704789849281286064018330533185386773346322350669997972251786391162610127530901401249691876575713628034099219598073302773911973082621822095456837441091039987682257061036383935230558652768995557607727986258733072745740938390474839485161515503084472227451394383164456813137593347391541235819696476734356215014137918198880474033919968834999508861691331924261362490952295301239038912890856201492926730468296528865101998679916486349570294016587967840626361562476991639159170863359549486287108376262283414051861577584018579444279751457233405070961085337395452164717532408083578020704143136645117047744813405637439273533517781538231168173096899344820802697101732012380788494595037076667118652810402616858851991116954758501086155276938037802018774287899042321990945719107601388245107190142815767194648331978474186923537900940505906507184057031827294501777826755258884290229628419541748618768178350248974024457781939135497276627800393955804665687743060997452548915755074810345256927358815688372469995277611238283189659101467370483877189081062561930599749442497550657595538441273668742587126069701279174070520976390503114499977399748616000597599744474221156407231765233481746297730409769169360851009079031042957944178484373870926759520438400761114608697284477368946601984266303125709932548264842980684755235356525790980769478965565510925125572806188040326773855333641238981706629108128806445509083092916878492909457360320496857008867114530589883571030222192844885429445147868641422112734149845109724329127831803053420875604972946257949579753371346665986550077744739235542804657131904244717109908856480586344436890953270622120425494596260447572444414585961923928785918158379410274414045487695316733185729991068794404774441131174272335739368813590935588716879989238517854128565832112885075826154747222150713546176704074168070674152138745521266955440683572995869373661261047341525032277928605247656771658980139593528867394874838656195251651289791879334899829161920725280711026924789034950854748941677315624805993860792999524424249137266730777474079104479191531980210425839734115966182246394384400713894199535909967451067333128569774644921243724692490142634036310340255544253746874806332512935423480775425176410829196716819212462483507543609633418482955787017556775833655135687909340233240349038208692812381507938998802649009509339910711217131423912665076242264245588571407264100243410244298837091539416054996506262701459069426183783691236662344213497935246437537688874833595751092895442950478775280636046929065389492302743138214681481189165549843123860830825142411988532829828386556405668721983042458543170522926453842802556851932288761514844953272187004363106166099377908789210348295070574781025516225975211827716435717035629327075058567244771008198164045751100706883358604774159439410763590864804439819927335450372659998042292563793688870196814952541498647492312802830395159586748441883514017163822681992281770109002120154643933402763064594386326744121022348458269092290879466920187187627274505118104145578834543602080987673761143658956432428968552363783102095450144452596139810701378825760550185365380499225753725975708909029357059788303732383171464395702204453474421549511642757769094016017057452157404989560960013521141843107507207843562644271512982792408025864546924080314378084191329868747497347472539036088976921597656473204547436813151446440352600002957027244423782242295832150521250765876958336092866020059219649499311417009904027278590807494149784034466092564727310001009168383238181473463076779314347822291909500583553206786093200188092249768168133923185342198650128558646754486693567763169002695587166255309555509484014051826030973663971248717618321275742182232766454459430214273152486488466571390203432601699313956309087834655897232449146328378287302545074635535090472834980542644956415192797610049899210055145169274015482799010494375440636226243524895557992360286722050748821615053220625678794717364328844233168611077365830264606221742979768485761600305782025109459841045196060318912830026348908930709245970215663474755059877952166679584993251445993306217372420934812053152388321451081781268496345596979329148708247667099688614591645485524807769997494912568083579141308580482760978287828393022678886977320721305855600462523735808302400405329980748480666176717085204228594534508308102637741473560079042552254824728453054828333501763187286491134337339384751364387590784873137275701205571112968522174449049593434401837320460795775457347443150606073364435461726100805313253801065072909468424158933317540370593841918622711784028013254988050213330189304437010069601884379159673177866806888822329427561463355499253601229329080737175786261763071340813642348002709216020599162282451489058816481126744068765839153346896908306632336764073436462686694328865098434741735995625914132456806048578440767282812525653072620985346093887389929623368888382731592542139936882536213470437067766359991524169724301102243815999089613369664766846526737198876133556928018978118412094517097098321782577367441398275354349415076672250992046058026725492013144181624570466427030750146722120576178887302692522069847723643393320951321757551753329200730486515819906717358804146142089355724113832401346635021246356027008448844387887902031154060833536853266315159925035445402720361556816004053652783378810055555199364838449366267466098837732723529991311449252896794916055628432915547619915114590287112531310117244294046132674225711325013652748867960635075865961756343584595312566446028159752583783964258676342725637525821801558368509531629432326854059245166758081031582228813861964454517854535596725844127973313394424088025563428851223313591700211850885537121160738763274355721852300330199856017411036004189480217023654914932759685279511259606037036872134103689387011993643450354613068122354599731900551202102844924716157040831043008551392408089477294377653835902689319046087108138278139318507255152782446712163651881986802299775275786754251711706826419572539145477954217190369971150250952348955982919216935680043258047907516789936141600030592306750790279438692717116647376063311638246767779474105389373099145170227694945734888236153526784681605696201679027656691539299915447471513622881998424414124814019079681752370121154140249398448972881641042022354510615216338975002444869303158245692337802223053984899531589223352199480007083925521155395934328621086254672858703522192669455399088424742813641188130818816353301321017463153472307572445443778512334811464234795784819115927849322204309576681821128106299305176426480685556725781261181715852868239364279681012438680316865997960344485185837288291199522895859435208660675410745385944515915198091288949281561229583356106510346380486423559318452745184310161323493002746048180320224409004730585531590903849064762244146195549732201044764304270901033239786173988291666325788890172169424745780449086828793038381232329510148316966640578381262259989524239755136555123424283802208833897402348961309452710344053205132045871114069328551950564162061326281000126375888195659641247783865117180274039812914484791120506297832749140721318202785185609012651807045839534710917516502502945910149152704774634967827063571252994533912326631443573315922418732906982793673795336636256816159028851910717952006432691066909196312990439284891979515940085194868039741775250786695998763877217768949900277433813975718884994171703056282575671796803698960539875484588518851214321583159412266298933927380513061875978007438953298469628712456164320700817926644741441982451623081875578445535096990739445291700074578340823065914858246472747759329955922061648189333568268871071520374091866136195606365523106449772200110496440382672730169778042556197742859694785751623975024021174755981561275622451496066405861318721331581670362640018305959420412046763533795229252565459047739669740569869572693499101559845159290023327506834349560289241879056139597753892581731015183986006653413513150467617497819813518998169315839175010710111957949953004854742176914986738146786633961024445963571455740280815387987784386191199788863778302869904478018117625101382404666760472247868196603392301654987886990842868085017222586609102784984801216945426176939278191584312038515349846545570217673545535547621252618048099771343229540833096349345683595067573981987609210573366567146113921152896281011452825361632600557876442583402766329679263475255645123977218119595956459869312468324163030180455502449946983959965429843843616661826393227427694651789536239818793215871456836243195566475950809033415399350553583831559604769957277885663457838695844710533747109646457322731928401241905782899182326077020416831688811493994137767652741819315869082605614797428770521644690855114480082390733722344281826506997053412776477175401505274960068758764703286255690380778744399235865068036558727802835383295349888520342689897811070919770363992135326144694668246445675503247867762118246598100446187541373373949646913496343783191312279104565154963288683562485780804617997123063856810510901504587668663131458649818111913247643808306429548170660682420739385554385543831022131669187429849553517120277451791984548980961191274369828440987626975038230381465628255303475230986809022717300353742015706371643016530580462301235288323194889648457362612746773334768931400398401766766459840233389524051690656594508438130948593523251215038926351084866594421210678397278328973783238783555345710928467984362205634827036091517717646304522503285039532664750675160781338919207819805806271218534929639307266121188581795143348410918204197385205361292450087135582561780200785895842179323043481657713643011110294687465716513929202985615867296518349147602613558962730588396393919173592999890149685664761718508908860254798666983220729537947894515374546054019449915854334050556931568925498811516292308065378815387255366042839812793456728412575638376309205996057478329231697290798911038339827460786237678306742493219219017808013760410287125931231143331224137925084494743594984061111404695390638354674798000233931694261878462455811395381199276729584369403572535358680233633383111123533451349936287059210984386847063621792336409639948248341420844852174457709804571206416211280091209887600471155013668103468151014334469359652871896647489584875726323039725165944204454704696939094392266770931083558855404885970676689405366623444373396366577941135667674491736420033711467001327192043446378782719703128690978838427541430038855883010173574529009451315276905647293429872759912083481527397571156925705879464251646733864384480869817638245569724721370407377784161261392698988068502106890917696926751967876436534768137495957945211136177777163167788640924044018287652478986612142134841586084630978470481443796970766621808333614421743941522387522702711420548712552600557896326269364352545390849824093694463078930711422248373536088085963410353055352121720508925606028267438704421818384397135968544231119892081294502899570550862491549183383853100265547353586963923649005764397808810963573884038380720046916319901069587858298878401390826456039476250944037988728223406830671724876710140105844466229497851348989563089252360762464137731283201081243348652416490759466599532023980030681331399743569274897366304529052479386687817452507227842344150120057737291005285390704710985335399291175300199718293288661199323527042112415046255448339325160801680156553575610338033312374989906200688302067023087204111839260882032618382723783167963371591520888641365926822644890002932626891585044197065736198675255722844585790115022475585138347668539206751257083855373105978790527511828609323528266077782334335750307262075876639363627317446976849249910627596010192843287811493941467179074551262465365728005383493272377009961386361933419844821533197260569726107206311917084330432173884321860951903971611634072194729309963421612454371348155947703541160831604149403500748792290584841545081306182104129860760801213401333768315381317383550595179171122894396156309275325667864971087659809473310204942062150864609553807939026097341941736686914178696438967731281798696376861173792557722350679167394321715269250753289955266915227706378422840729811801062447257852660124187462839603218648734092448083514183915488155210719400502993030919406761631556142438737647426682891344914631045434962465174565063012396979219132864852522996765175484878405809461143607309534354891051507566804393498522696420949976943637813425869537748396575560964201647110832267066488454058994869794245028218309871135935697216461523398393430224193853864484882257296214507426938783646785015168340388433736350578258019467632915652670911891436570848207021721156559766669061754452543069393387957517852347316004256775126450618749952273127417442959181497370237839449785023390679338944266981752213380125132112487112256351735527317638857975642089599786491541643953322842994806377516078463002389283621052662596355476162350424714652218950349290914515056863154715627544784892908298339333892898986010644911557100866811001964263904498676754155329525547144850104229228962111841614038066260253203989025413425943133006533404302642634345832005921577725045285017012200866071201764289048293542853710798260405053734817035945450712412643399130568126075350124612482211246179819701147009949449438044054067647770849604826553975368204755743335966069172840783032801508051428253756197339049307739640934595915385915707673012115328978894860490401425256347132976304341605249140582172386745809839524153829124708188740608717157904451196107173452661413635475997667476610995890383299496693626046308820730064540989511458524028328135856605180757359270153662023707100626663055061400030413821248972080990942204839036339877414255811254539984922037219918485479857533711694784748917573642102007336399453519066328841473972868933686460128243040276485027405691028364947308315637887499554025121584576591212275311402629544725865619734401020032615517464723449790938044880621369547640800177457701077196720170053673770482066318051455575644551888847468559917033581531227546241068022422361125016715398356304416743579191316418362735349765328428909996665514264494389513708419532324308475313440129159817732719161267470901995729775811366861110309174151011783747023449506583950079075351063695621407543939784121474687256113590077737973407442447209422714085774396131293624127098881220380834453703389178883988644974416416574571090389532839601039672482097860323494516343457966044869340206716392106756580594312445725980520867417614343469600178797701420385458571514227130783182001681425847825398881990775233198256298338051285107996834695605549978007450572736454211447506119607126250246221839971314401508241593575729603873461306098416978994138706617893678629630209135774071807123282442375448004995482288003497585492680033138506286834255074841542606880180038229040882021809632500962649088303145667652955496676498609823196583208272420996993384356915391143385395553621140251351179643236025190847011003581595587324736572057426367836143171152747469631908640903246267411975589642870659132293592635353996303625736412733371636596518127298010574833078779777831193440744147919134715397242551625976771187725882011052642128928463015779509293204528305663658784474024660103788879209553581992534896457562930289820011747889096059722500967351742347733019766276035049588025675704811731274124188402042611606867779434309542154846418872141717814614211359752387683405785803733511025535949617740412266997916526120984159504597098616825464970036791966399424867615589907164938603140260244563134031271420154951840886351997161157112097527991201261361822811551327311782680737780772077627320612333644752293352739258162909245110674270591200358635654504848550398289298009491104895936946086089005407018826395532464945540086753857799025250205426335467108969905605308220663585515054857326349539446573203111057283281181201508506588702336526407323282798181291410371634399361947675150783586084253182720525964927731544614263176405413487199658827183784289631562261413582024679341276342155016905277988432496484392036210997910514479031152270595388843263955147567910325540441872217557072906364695311539500344489942750231616497435014805619114463539288709278754003168430390633504834639957703461093555568580413962427890623043867447925724345313625981686348127430278258234917766095057905564265135987382248547115968387530398726106778964121786998239307917004378895599138871013964734942578289698596498605659771261344874026491589974341586261350749024650656569457982613939354108787400170185769594873997837727666597264859612692612692949287549404759390579979238987031261166764053365257861180012098778684031151586046016900369836396285237965743684316388522328554066693319203665890982137129537448397978718773597232689894183107074348189782180240149101490773432094013023148113062703698660700412220275846203395478494640642740691899460903756293823548123779347507748462437543911889857056453878038572553859828791176063143769397866965112331652756131452261513544558903270001067170005831879029651902717764777559047435754626643428374106999235146215586380494108921746466642015327970752793930271644166328548631620051867476288715300962326225132452156588609839856830864949028035670170603609827007267291571816761786330314030897697711692462363934567169941215298636722287907839275448253752131122181683611654000926170524324706093687151615767879228316032671970627628651054095070628253480616085721637250539563814939513649118574731741104036715300302143366775655044446688674567802198102611657799791912716131118430735717488130362228158247923420893385643025943516303956786743455365975933519184247322988355862880802579214649595576759434127817500375848361548804031015630467797948424136959654514223487966164825051339877219763427766979080378803058494569275176728200828619128378539996152417337227606019710589875151124670659865639609124115801492276541206427567982924474003973353064174097003111057665585296387171507578163874569167736715079122139199368136706722375004324487426196206497272392068653798238476789282255151823977443702210636792161375574821900833013892872705367419064945038869218651822664642966882008693770177770552458930574227011856900939495226028050131745105507800928479945007966693547116336589553263484766527816171252609221899106072826772424407253068729699515949899632953217646599366818246784904948455385434838834346116231622560662997540350532111067074635855450632057765873887282739054080737498151317152592353888698150142815202910960395580391045696117902925016196585106824591374309570287302209603184092043326267271722501676284875432553375055263194712993973791718521698738431486586891629489752678527477584805851284353576648623250151365059184789882733518256168702100990817616692400661897491554964244611324315183534630218567236033237625384575580772106385862940417627071851621218448366968875658541806553641739951045892078604120935531880814148946760960090070315088106106316849390563855279421389508055719183623284137253585840938470115182319738303349270412642494089567772993063859785018182903243215554940610600796673569842477602170812740016076267361433503755591499301337062471044756467233443073279798902027751739310861378335088144505876076263911429479707469399946602076088681302288739360356070259450236935919227877503613716180817226408199036228745852339414371707409295174396440008356319707947975977265162597717467168192625124834387964418559775730634640032444699724846224317653436222538743250081692875914469419053635111660972783585790132847740973103169328555440906733610684654010836711540520689847319520931206827562461048890812437869438210901081520818737741240171247900777313503454657239270184717886029203567270277189160045075079692736236312731594571078765157247101061266352976440723522827723890495055325646556040510291452890924808540983007346725056491180132270309334764679339369883934602055457294415361843321465739698654726292233052095126348282787874027214906756520151316905432547323868784253540530580376544885912676310744506493117124671234812393813267530371668914026122002998563144256343892171121743065246605088894748274723175222417886776228485683175433907605001433053096123867520521971027309281365372580540382428169860747498656258832429160179166319079165954850741533558225428018456626309610663619764979023195112356209008763962150319054262803719104523883906057145133199350959465432509704003668164226689305209255687081407127205949267667846910517627023427316691111637394256454384486033186446285269472823427207645963738962462953374057136825398596648410127904808235385207698671732267772800866282734013188861532211101879404470024251778203705630498566076457852806837465852213716341966390097373003111312382985500575693536271587173792876006737837569498399981062790490866924228417441805352277999596649299458776761126675549442482474723709440428273663518201290118560474572967691442279433513081511661805928575882893412364277402371882190127223434302874751555885346291602405806570706742625709437516368722640238143565477360391907914864744825147384201842501566496881850014939199192682271596359415088281122098681497626060336132665652785367568328867914533622327250062317064814315934451283909196506069382513764967479047670339182945035406010034873277820806713659009098379799243092197954669472876401739905523020255916528289232195051849701253581849223544083515097127838982057146045893229622768803753326367563323669509777621404117475743021405195103110556346503426516014277450866252691474399230835676140773336914479511117082497284272543298494782010367266370972466496376355839218247414711742453811321029977273631498426484371630962257227092653129256206785276714758367436633118406007105495120395530536184789776655898635456250830274019515828535972975606928201529843668418049800324160318293130616148201899866369087029220596750828482943936975208247413457397609098987920092208469501130751180537307610553150260265307436595817548764611757786110347717942680861586003888158353168418670225818206387114170387550258725100628964013438862098821194704234824153078920130795048701503595395796465722651581802714629152592593842458502867358432805846617653703732491284338724102748603833562179029530060114407589822438734042037384054920255890169095471104698942303648162711284189587021888728517025321168967943412222926329287012702692495021986474323702065588231192949352113857232738167947237834201550729615272501488382904147985871314031217423364651661810213608268081369080068451155800030976768522569439456244358486986526787884472353194808322084795218712802419163147461939844870329958427367477664532565447592781840852938257434470395915714057570038481618507992562280253605688490880246506819202282087046138387517231055423754525601204005840294519098715903290427343109237690166278115331369983808607730760061118528878230006062714318489309095225506505989230302339644396259837068592536805047939042329646551243025709938196566911989740931703971923397765828621795016526861982078286850314125120202615576710781622396238895979271609824728006566446846665753612351950679280720457664216747859742896077372697723063843047443361423018838185674249411681402110065077517180830167401928288465660899871404717057208720314538849416680248011388009886350300966656028359181937593803137805939881949737556166616410460863423686588273504317834562047180549274653089792484597575180162614511199784941543154925000969632378228957544663651282369170692916909524651048768024881494043431386577943130910143693828510058044300026460153321935038870065013427622111409735950928893007476586768809559440641343003388617583744322844492575655641417459794862748335308013916932239218607071211558123576454768164064104092901085768162867159183198150779610044837825388982367460953203929058528468116703412659314595543188387579907420789326467407040119750838866669885353686052059974983758487379822969702656507114656582842781920087458274220843312675971739759588445703228919380661098600826518036933673068428467725154127335533405264754533743354001855682803609319098337882011395841987336715626712302798821784655392719439403638121771595709322599870293125923165912131288198676751501885591239011868612398218943170750395872882844634824953229209780192217731697064262949984615955029347311180505807176433813962439761878186802334501047544177197722988138123671663616387435719323269442759297378900325078416296864843356931991608479062969673687607343582064380719330146350953423985355053219933338358079261788347863314067592096947053365955061800091333276698461461429516238888328537947180878515278310162959970853372820305885326327908114224893990420221779154337700097926811711599272804639792949485581939365204542660237788178491287977504370127882336580981852312930567199621278876783183593564256730726104740611094609666233268916687827990187203094310556770606593965166446084697484407553613601102705757081124575723672036771358772051966375050995687887985375147218395645156772988230715895535489869605047174534913625254728849785877320540633116050362488374824065049332964077543338935883595879025398052050756244830673219315369829342482425533337187260287377335328484210565992516365531665062594523530141964551743630497890751555443104269587404426246748192086613762506873970682421519172972124532793982980871404294418894426266561023581247181927847351904342971591440011935297698523998571787315823468011388637958551092766230801938841369927474476601368818281763044285324633799519083428256351771657631199435996589921151527587806224725117331622047507066562292978222228502342837445412289099527755745606166601517201970887125845916646110961427282633522972632333190350724567244091031064281028934262596608627623756835779684068669024541142425813548306157850030043501665789409968354693835167235961807078266042774460088770135707179761923791585388106329559706086843648412305358566463559855401785107900330374897462296898274420731003941189003137542395796407319565620748527502519239634003504218519200127777907007880797863424662385118510556234626242968806532243428751420531511838813030546238105293876463185325019644849090106078283419998061265436856443971606268526081266824363350591927847644395703095006522317800021443828501643724857158740612485483469723184826939516256855609346002815833776672037066715889128105165851990845492287634249229095104657036484400073736439397620084537831843599684844940543273788232048399456261729774106005862562329760478975337204029308306658724708119875039619346752617341304539371160358083816887578223224666228324781278313053473669251809282083921813578886774019788835738324570874730369405082848639707537956003036338609491796959602779322612799766402593890434686714737455819728565162597814670282435878395240808788666341893722391019375376441936768551533559087953429434238521645125623658162731229635401660994501474316257448594372667031264681084000174795491418299942266045675643916536400769582086184384142440980300945456752905410277783076117808972309618706596445881306704597843026098415288401581057885524055590909474483437758555579109429305610231915499678482123313027011258498450697048610876189239624230127871432496781218835860857436131435920075045581013968496684817751481639870692445798482639152016097317277654099111204743977212382505593612191146717806401387802058871425326735655613256088165073150325612056832557764089773389823452510754543274156699141060497260216525327813966328778601805896122755269509090162841401394680684601835705616549377780561918742162865434370392407848939253210346669749361502586854668435223690550530983817546955018282092151598525511609833636095942099791564347922837919449538966207881139398741790769200501562304617667322219195824412275718125096870879251552331881378107868777034035278763620301545411220452368749893601490981913398987972849277688617704297639074228292547538101927742908960742215154942146539465951136842948094068935815508468547050277610687800204761326388817983742228294222234421532120144783382611384298801421826843525580379314511182390936798260822806115285202976912201862642038902821814232760387064828252879214968861711573975000607509363417958186757550742089501490211894919502378052844221396809658533889405316735206939208293147161634186141203369433140989297223696008388685779078672211098950268262769853655013607016162492613944929331245032022067093549836801699308497354043332489791324820921983485581352636988584887743317230872391170233767392905652489377720564541592720410417503690603551869492203380704802338306036544493426758781578427155427614249054448341971400388171040510854598882027268194224685851543039195864498241288897920416408352236279272695607130079844830251235088302014029048155381481367855684139904372312709856425637016111696322086337060780987706921850668719631064083410470700095825205964405196336567573734181015932514846125679934740968471237564687193764115224294547386498784901194265295874671873084370972838263658477419506362136314873506601463430314266168773187740292749960542971354990305857127988371613852033404312244289024884406319813529976750865144676221363197253761520013935961154204357116917977987868089634424773367672628122317133414453937558573191537014713833130875302545476836762026481879743376560295080488691358907069140049370288172157090562594444853758164396266490303268264408161864423197111704296708008211676990952210471002009053452705846952360416349083801976818493524085321451497448382383241692668147791457716650465566692480828571968114112623856511860550984503170941407816216222922107947808463432196052772583991606029460945679370809079272511257677432060024052085263835016589428483861457481193930380646516645918361983837177643238816543337174838136110653604009548954837526123728899239650186330086298781514402541732896986419194178923273921422770937927611722004380916160538099493224244474912885236573029876899022251010542638158486544542113047789910010787392922033289600119749519756390624324549116152605659941432411342447728191570306352715590081889495677285092385367688491350855772363886765687140927413500636444357540939563394997182958255522315062891414319331071662588133647361212678694445454902490076312956946804103859318713777176476108682903948730455763975026213232713547909135507261762621649607235923812862948880791239521745995808963054769235714600613501594354432154691371483899763803328445404616283580406043288091851279328042539044816033442960027675088530227646270704525131519034908726646966794395592022989428342829443785503881181819669853636016197391708947390995896126970659507510788120028588982050899989021099221113553736855027992694352445403963525257962674152923652562002063989035517884836224164181536583707214486641463234862601494948170967521154464230008425276777694914541583624631996885221348955098152919110168178401306006930495291029779836934508970747664184572465676501509803741716755545802905275679034629911562916738932579235767683764911717132319589352405181245956497630722323335533503558112173782928620078464266000955428200156578323618148815039354094872775702979127183137114765561920278080156322100833444078777545616287810199400079047016944612140595304063382708365046931990113465485445641183342560242380908016385068825643496424512960390682683980937025687295483641657207523935212207213330767234426591974252001510901633077094769693709905912241651364991606210199912486694096063771808190666998386878305450809736315821802726580371045349473089151401999889311338504627449989589440459802356558493710184463828118015466164615743987062787547745818088220464308534274053481773756630782829408852021210949225775298819532388548511218814163333290868100990508719899081305388326585936871790746897662165666059795034539129855437365426647934229315038559736762016769058161685911664415223426628843030121676686356347149679066995030377319489387899649019506429447853295959898740146296811616626383881877597961305264333353705803802600171542380635075719899340223980044274009391015470755508136795040016390137942054474626325965564744399732931029576891066562585649416518504623298587524456924938234296776235803803151477174412127774842341258639990696485672514310301565138549496109185366390922593183312267344713730599374960920912350599820756201314004588544844976377475046595701184621696422454263289187392928560024361138375147299535686704386114497301937897597638061344757038723631060584679901618135935059742924241090687201831567543648339493916522437431435989627693832667104481488950676501508130449804372520820461057269492527868279058177564170726730754071227852736429651135739050573949855243493662880308628217087005590847280063435927557939932181142965533069471936997551559948116172777613623903568295585163146745096213131047870564610493148650574896447913382334097490746895766333550496333612463477434971300864541051599936669023126035963024531286115835874707862401976262456884976689462479125899595618231061270002956183978558563694459996221151617124091487394252100046957052083435989872887893963906630354575203896248338488859925194587929028356902779359600444224879579041507333838403208978668330807979819627634909713572838895841948141038030018991668284009176289228894743226216256443949987868701435614282078033453762344459796916084358190627359018394743431605986282011229486074883549882623812543662004671032184337430643987143036409934748097079525537409395904859071226071443522190029608402815390076218563353846257244842411281435842928208767967395190841170913020966364905493724457543790442067903019252296523038756464348496102812865185911298399418213805000013810279632503525261714063752300980260675923621434435831367197244943560775869695749265929093445143586521473540121350655058905831242885746221858564164274693340009876609294363444265414101568583681626129390713839350804114560633263172200787249113734471655782444832107749761870510466947044565991896743175658696601137572706738980561139642282468088617543711438358262018988420543710587615866450607199348856956202328323979874009086950181953725725505266551875695494689543898423091515953715937935385684868301882941328271150380199624117310773801211120199381586314052117512094088420083798408826029065098197174447429685157430019890819906707112719186528679903395405905979852677820478344065141447134672714141588246970559409272551015663282964565294678797025959092709290385535882628269997477765376097990588495464965950651280590453798470200721916984966052073495412783372963619541765456365065615689499047636150200422350983221355285657815568788888491217146212931922617617759255941437297438904124409765061850696656363036058598157003658173451769688720665721365517537091722740585691887211057440176516760800150508352410383756405950621644674812420131497588408078241581235998960450652922203132301423430279883278402730360709615189557136728837334390644338784266461543697801841427868558375710406328090220819946536144198355919377593633412034383275245716949613390063507957056582585604463926010867093369153223441360288799540565146310439116455051579322869517384827621668798094029179372963481949768268830120137552582936364105980345548132624947254561383969540648785106454132489128658611336321189858972316511292558424522662858984673254928722658942950938151747261395097641421497310295515329914270992174600583584443041005868412761742393493961912644371363975824560731839412856764166252900199650018566171290254727709798486208427824965053753174083889373240646125707775329900561505248054265086054971200314563102205461244945282040695716653505319145235691960405259435117216111722836775754768172355354905607216349190826352316282177368149964130399965728772274123603745461821386174369070234943434527548028977929707483584295010757294268463813302970681144662673209030311564018711188559155238874163717035615462422991770806333299648594356443914749744215391660914061036200618004090996876924510176241403734324961320150452535625334391425215536904390339712306135449200745388285062522594628085647775671073505919358770405858121191609841512748960736599505257258975139843804289345431476949410299244066377042646400668788327143989133408692507647983619562819770078299736122736885215610839076361690952882523291035255507288135455013068938745840805408497613799953157686945009622520013100065138511881315069057407085385485095964588388805153160501007450251720499680211499530876457794264968954168407114720013379730227631242895272455319327846134209675905038044188223600834968681294933318558605192627490459901981260916748991653000955783271627089381802613467302377061496703939068964088512122958344324048160269668989039212723903586811253122465171496417048540948908040160963009401560010163026611171262274377265725186868323200005928094426861126025084420680763884329813335206815570201324661070639427958256013183945500163789982403310955170727005362434136731396302696655865925886747829130534439998574798859050601950391702908181079332969879585628873918120278719262277470027050374091243149354104607426957944854369040737082076214898030641842211255286200389378611777923277965271184813011321520299098236955409670180597404844144969480598508757866649580086897244188613779957446775755643139990219614670830791636508878231258744221361562467161585591833030898826017398981121707514478311156475031790641875333064762471904185313765232534346791429152931426246323623281615841487433629586630632403742546437975204519289516555446805519503773242909601537084687163123037119626708268086516573850288837284675549097197027787022443291830769769870840298268460178155044760810592805847287397000294166191374997974869230771532639621465057832468205048012106275079165362199803767157610589026465761599989444406023142925265181554419178458408006028941577347584407169113250984135476879336983699685533814177977275952940344898937175578869012701907345913496808352372462404249030472435966537259183997188647769091421924480588085941434124960611722110144466340647067536157215433698967139931724244959870377255179243514275486125311680630247521027825560225529395159624943742174226988155741307594708071666639273029330260093854168690370710132913400892085950819262869341119301824800426747780081200322682372599860394168167587432213836355761190877920936405022680682318963256992299287143552025375690601251858368224410236278448412367130840214015011078920621708116780103669484556455573551490875358068471733364209823103460294950387518857477471130164906463547833319349636002207273751412269986539589421050940200114796145321486169975717123292437884229959333615137367724921000783182382039444727168142157860279020782900384565958727574701277208617554936350272969586173845689591432745624860934872963194980947148308145992414588311571799444002946839513967735969582963066754083580868013778936350911117887632430514791425398581664275515228243996367151422219486298233606672253868578076936041171204711253402969047277882490812771827257179306150572192907574806586753083220196990966126932770758979366256309182556945116483012600732741857402826580305854750297081168890076100707585299321396783870021699478298173551320276048636677661433750411200266947085119532224724526143599233283584406625080309294272541826226828139065348919113185224134235920527951989593978634970280126194935387961593933717074315364175534119111409787615425792561219891461826144128838421379426673364145290481978301371841604134807665363119746246284788953389007753628080458984434183106240290996632383085895422007084934810539850255031965669731488890112212068485939188701018775016024213490496258083552407392576746784753130620368460972911004642521711195823431979052718421034394427911129419244979962438684239506519777764231088787691928272625200979860781848357177000322226301399352306201602884426177497149435210815565375988706490273877065936652287793187160026853338599111248785296229084833487593455801297508670908298958228103236269340979255306100971673855938375092132538531088097363525743534172856813602630959396176590713894618004435829567781003139994556096168604071796512484211093459229237281456749955427869944240070374050571735434804236237826447132165171773656830610968159232454595987338687279092690178237329708749219338063487297885249281683282315133849538541353864271803621297500362999670939051973700160387048000869306031523073006951197363515109100995707219099533371099679513321517610469569887097987077847736398286628361296643822196636044824479445908887211230210628223808359301410450576345059816418588770856995357745425275131162596387764227785414278725690778667692705782164118595753164757942694009533314517082438902037488240328263732017873105147006072013826895827033765882811911380951707333716544023241112068501257134035322673613907720953693864483887353681683395651000549144488969282107405193408224805072371972229506138397406607302541541227239927326880229033063867798031036847919310604549215288480336296497357665627606612560952486309419075765696154352567873358938014132831237379223811680840414454603358553997539809123078879468516094801048636857150114848121349455852572837308454418339318909312142901004077205547635983123711776202627641238943956416175012264897157970385485227340502586890657988730359975430409070901948236301139377323831823409585522859565889998754547332791591323730382255915650582463302771924071123013123668834910624806802133520640471160589648714263705980908879548932640476516559309077781521874880720644132175060913295533947012405750458060486166117033312779949412523652122223501778087130646706109970434885230775095259845090813950676484685259796358284640737072778153482193634556312533965237932279515696270688754626802614314629834158413843851374670360674502161686473808939536307465247928304732795461671588994642593608009506285075753298251201434111540581869605829337600440397036463779608578938869498770792977134379281094099027028679142723561905295233781855140775559694608377017183459887111228194616915503973238543346215243014700662577518651092562034249713460099068435724816255809523720744109239281519538544790517099698105051521375149677021107988552229145139983085056180714439487466841758219038955439059136593618408777035305031348302624275997150136512211552009655195415106901611261527803475239044519834455439170766275553595450264610150624306663254559145210349252144398750817127356852447844497869069724262480005680560033239999440562713388225303570077088140126255079028655663172940355298446916573671053223267850726274164115345753360609892759857981394648350510291080914220248603290505618116396897886795095829693859694048508298135856786791838249768720841892886541583687441459723779642796152133006031578892571833510219720207885856950455176095405297927613669358438662647065310363898766723339834064759546683628535966550231617174066195565016498453172836196637969231785694921774283953941803599925755662988912639173763991794484323051166988218843471916245512569207396223870014429992278779687133397881941747987638125728559655737588215852741616869523882610521048163369797569541284391086520105041249462647421063483477992733373685139600427010566668046377886367185633889254870664678086168080635557936840864162809540456590042578955434804850630111737214497593207938555746699047041410340901810210460899368556211558959245239865454687312468163695662178675747018765995809547585880737867302872309484955625882301498684904861106264618161906851994531562819443395254892598539840825395692325257983957958443647439541540507023409580566870491343353634170631575859083411412260303801058471194547465334951055950696249347876451317159826632821862493807849740337356778823010198912554402385950877765380946601784929743836347893556520174940227971866084823550891857535543366197812561049314160015837237471102265418114291671508489129795970627395576736962469174619333642701289570014887090339317052917812700372359949117313985185690934187763554075069121298893796294653090280741960730427386366806497920952306972131625397029115453123888781078521661351217836688574969356904743521042787238464231993911925946433896009751904490488760648302985393721765647478287382636820003050585679597462311507762248157807928946606666243022740374703072306199418784453747845171658012261724742481807608140224796453059744308161574829713143874370552013725681193968371961401984926198501227409450324358340379154853844724244275765343103801404626638295423975062382116467032745519424624472497996364095760090930763954634016917265239946134388139742294645338988569344701953696293088337556799439221706853070312912433053042078788843497282678066699117952408871858413728238282779428278938278125714890865575777946090789445364043306369044475771255637446273086083026203546052609873503893892981246006595243626521496886078570857153645238614348083320979600378726916631263397276692277355980437950684923016199169814415402707280269736113261246566341940311092062426615949875046668103308110369002382308054393092944991183174490014260763360787415401497811561927941214298954217239805719551909146695411393786328875680518212779394802341140714325731882297246827598868051245959008791697280110132677988331411567396266126961039989157090035125684754296738976573031420246287629365057656983005337982242150515421695038544305625476920209416393028544068678866927686434652714830277526778025507189598076922667968258239835109545125050441593115682048759071593304681683071550614826590002458034755544345261358543759436810959719950848256313678260214438389224344216475693450105196772822589596472439694449914432455293658699088167349882532647223548506492268078684842301299622801179107205272549288619188540483361989299137382829736358665752179822299643529282633199188172785822569034411635197748745333123877650587031291174680517549125645416665995534475303923885991575261156757446464841710685719106023954730940620540886203934626395120066091446607999251696416540631038060910430798938972041222951224860271383782876294752548327000473527819624668968342936694567432702412689026043381309435448268919441483373141840363226816600455104808059123408418526487887267088138668011243061201182538042799957368708705593479815037022754645237372045056118393275907347319118079981667204050569119523546831011111055106093762420458274811357431076742501355971503805421784270617694059258409899671856180022487956641949427524529048547785894165621016055971424873328231404579494927196585980852630899933446280132629522152840677125982665981918923761109612409220412137984722755493267225388956129136344306265784733705001292055720099226030466859923481624356166962949430208581493894691861133351741134698281606672481081188223064455640873351991701368604532726830961133441799581185060726336682455954477411408708088726328354369529657661822037440233907954293827219375584781688966174244208613813029872430367669698351968837473610649625544463957935222408631542218078591939951202967842796693055511236497800402294074138579415713774330609095039587696581286792927392473016754131853826808998445575881000701990203523211949049532961205599463523336162629994650563400451031077625020700582191448003332916053949515487673479787617694063368898071967544425739412925820050225753241493090868149713233099263438202284765816788270805553944962180497780552742901679924913589723368506265335475462563724877277543549780262936080368452935885750134827997120428243431566475085339510525198144987793629057252109454068423687160730244170859975038197616061544577117684020338464559887083661771163594679769560873650980734672232406487862447321657840783754442741085361422555534736797256112101488575735268989783171624207744209501884665770719336783798676650058869171966433238716737636483916055025416218768532913647163726749621413247340641417369437587897576523838414045530797099867257351698767188821002201158672472439688451200957835304889373579588379416645442509860053760293883084062382900104629296980952025900918705884103554939788454542546865408669608417394931411201984933653184919818112626084226363653259407607369598338011541998412279866481719788675049586789298753773149916099815005124757274792547789214360952460447652494066481755667247336530367046232061565798735997629965923731208874118570083264497482665280396275493418053475156517974601956499106060610686017684532173676533718364372798906782885868304409728188967290258198736796915883142233591202282603414377258448639522730052667818178350210687254520712056549646959448437587692309668292858050275890595811969044165260948713605596365475201419924765030130736524898321236311167849383444774655751771609990955465219521081806771162951420520087946306785817911950791453300460967651152856712564443375305532147216976803701728695069411064861757148159405439858462963511906103887696732281414275154897309223064392537588762045382997102659483308621796019281454900523897162322955352175621444162759688730969062204400398625308476108771611338024115780857078642107513102522550784692304208551989060748801225710265305324393433881129830147788386703132079974533481817250592000078513776576985837164035196919663025637657935377653541129908547894402209520896740041037682696671496876797898267997432851060228339017248929447489715655532911349779501467518980406369199509984276719954500943633603919811452641979201602589127685877626705108748976043245645494810248573851163485078204362840111399592812805674426038719535157811480125554971845398756929463066788296635594789879505993634876648743578076710536341551768850096428128688867800196870886128380140480258133980186847797235908400466384114309673898436350349207868840564695929900858759725825532701606878432406940258022771164612194115037151459590251040929836446494868789319684521137321159837291305674170217308466054224856085302126150160435005249700248597045018480055305885969975921106045823499973573691180814974404023472246936514384586689267772761949364398724866143035531156307269034524605641757480548762352371890384475529516509355830583220273461451537027278342114427978501833715483167563859820699922081057615734716345429575657330150869155765287682650506640076241405779374530760077299636902394824589390031991421398746845574758064969900575330388245380979321973461118738717778207058894061383927233362875589469492830807954775989870308237348184593979403981613971507255989339387895831753263957477756081063757449233474816006086822762506335006132764717650588269920500469740729360288775532215537456959329089855887199232631284931542232402398173806124088346854511228602012699794380456200042688869153286812548733052662872870504722493494546195108245260325209136615830743504974559176594476292873765770140864577193179372652642002669341350749485017344420207950770555153371405381895066007610816016808429870597819810868721350574026874069986545691565270005124190830730862508364560742925706400035246976668197167129458154904956457764794568755333931462508268571469725275521855322869652176319220325768266235981737089500200220773425480885972798742869749262142689898019439598456927587772898788634665875794570101437195320517154761362479386297753125282749518446868855677467584273262254641486838804903550152027500059144109153046910509689561897043178605141316435323331005746632558786431046478032006786097828757183465239187751020509254520591291723867204662501394875443352440769635292000977844747174812185539689109354528319401610694509014152461313743134903859065758844633233458759793518986074216803271372614254711363059198000733652353357437488352222541443475691884504420853358125774406947365069024643784299487437595664767905638353682295151778927751627708096311427313337032212276625877442844405004335900848483848480358591384602339951085636771096600576575993924715320984957607808052893982590824776649174636582479277938841508799335934487299585797519095884216436030815501917956317518216964812632959867656085526203124640278240835726340709904412398176452559370741901954940259751403168381315595705908937044462025771200190521766238953981928015317389704042873940258534633256820623668329740795112286396110879127233700813194254515294034475335393819571841178626071130167850093369040161232299579258577285961493392712085724936717531933094701906506238531048775386081271912599507765712741456640037878404870704556233314428605172240671936443005385096543211877449701970947108787720823117286081125923856843500715118842920027339430539039672197442926381193876573608023065828380915044527003714701896037621500951235203286164896388033814520600487286036702439193090799986515857966541411363643136673491746998291337635318662525999647762804164421102995442960856236339157502142015552384985331484885660715374100422447543094970253391715539387377751293866981173311566412793981761302044640292667547133994476565633571231360471450487990507495692720246327346183947243213343284083448321502680665179325091754006796603835799634708169435638588089299602942585147291706755169931112981222207459807146018672781181123127359500697971578307860851400289354834302394645750610429988985170630804142786063458070032210046459115735525176014183415838736040128970722105988975472964942410244805912214184024814349554293879242905220959480073216827146617629083948712980510814377714004091219008016906863887485512305545372691749962992994212935041435103447778056598864771627469109071573408577042079488634913362257703827101913033601442898984667305303290196931004874526940518270835399297900226470075404959617697358507851489812775322812630100578484600976986728628153319806514586880982432205350990494310093332021393825051434894044743626135840632655906943874043813966475523890175505180011009770133199010279415820625930749499881372270704656116228313023613953400109759060383610207408540107711094049577725984127254307768168572671646805609514144435863011885567955100397234299206131857709291053149096174129751314135393937749312286782275862608941908938714923240056905869987742808046238574189050899257796854539957368436661416790668982088071072388153300830503892975270988000024916023294773662859641659108738480109548807434177302670634727847245309088461392682578646009118898025608347616895701743122741522192805969559365310567575834988352377290590366098238195576995806224618259532008203827009785474572723764423798720349126618950332614636910452313786166575829513520656570266248063104766588287716613453287398920516055209231204764697124812212775202005612265528213957822829852637078475847808042928891332094633821811503909496088121190413747132379807212881314217412340417936668646602836894732773699615062943444434205843193081769326462098781474363794297273931406501778963993876041086080088349857711316907320096641820211898207001674783813111745741715814658714911362892112772492244593616820134152877293049610330891857880593260041230160633291977933029295265323754511579375762419776285293109953699909875155566082975402776143411209177893085901749359662579684370062773748776462578090075642541205484441160932588665886024920866839409646286593283602173982344890999997364872193926886370231092646906153043653179345970273640985076161150641842552407951870840208651320739405010843713461708005529104348947524420955252011156825202506805044616963792698636742979995583177205564373977638923394703690308669937190666296639845018231282720626879660419651546324391468039606964773527377487935669471918497206675361062809335657019476793238456620748686827335402041789146807383776933775531008346415383332147925211020382979786135610463473814696604748975335269508833327641047256358964917718866897309362692614441909647608008187056892924111427965073536456231010859941555335939116314924916799527793086254690836721734048738801274963879988556303999255189825682948885625672382977908224989812566772438723510641129582400640117091819066112876268649597768028650370874560238141007193495015257808100941774356127103211683163617375106582554840792541184351687820105400731444609585411220922391515698466615725128656600389250718432059116437596366343588298187840269294343401247877212006603462502431073690480089416522784245458703827185494593877009994773383684508636348193410615238138106009638051238924883201836786586249686423170043533102083187406153799650492593807552845340617479790984020890816713799005139993936957498477865701533968268469392518958724558638378972718390573875952709221463317932533711757318107458293862442426302948106542542408306109811503673488241803609018627325121584070180683127089708084447808532435555968961686464798087799242957148436713732406942765801886209160530841592826390572904155118735022957159150645218933718928578457140544786546876423573159870196752137122091705418482743766897238872191821982291418973061672139186883775025492634292415960041773042270599874677156495895994932945118880391073559435714966067860897640092001091291013793553669842129077859563470873133037149700690786221208800695966922070733674738750589435659293590882336331506668859477511856195714078838599640955308422646889068986656071914075908734423842920295883238427832002034521118099315499915534050558136527609033334767690150292307028157575273261107959802348153606578534715413962074486796342290741919618966295316239966425355846424704713850179885920323733124019603111622822320489652097282482288482082073723153747054185271591370106530366933977939386276539544751725337296924516839401024102556165120268846883198927387571193260024049146092553853153289778088095805213587279481331718300873470116598148477664669200087228554484776455495789860277959912931446653471323716173894541440602221518025904145002422638900225435609585316804645752816545182775051973819602661670986332551215148171038378901309726404620209098237841062194358650152774963153380294846799387032422458474894655401180408458098339857310821135349790615461311916962465722757163672221569985550285409954837751497455326073080207295675955370028908102886880160442350724325155602980007855888284822914502891121399800415998776543314827021644077755847746351172624191261578210020918613894161653151752387980170638697216915623907902205251702553880758562743612056770077464602025896346631901065463610171332030441641335994952506624034022625160586994006454334899503762044940625141714639014679378215997539063436674003227198469662929601575588402154430487284351359154204778292199884392622816062998724162611339654106000358897031964281046631218758614653925306029038525846261537052540230972036944530016441699526059445853715955890686301398841260218838732742746301331954656440150734830067528419121920938240142768360519172423111376703046000651283616195301819049275608405878838816868456932998189853049007669019736515712422412183442327428613865772153250962552842071215459419342983191972086977030722567697070360684296970539298330942850890391291664021471494456745139509930514811551828301680810313253920825392731310490091257957489080997324390875324013655000027507597975165880277455632357186316291168489901291233605135074208163266144497573508676606768989107433085285011206385721111183474696964868552904781778076027093869631120639544308107922366823603656720849058588392109285592875609238570367661593193818132868204016291885884777262995713690809362783791287269800908306071521886542880833674715023485511216142011530672848959950341271325875586351298357670586090691603976587022023341622346808207207422192767910686318246533709804542450090212232630849323912237450871170154950924317606872274283341966926440197963360174269339575553585154368358476910722037380814904074668995302823711768945966857336027005277047535057456205420634806715677502166077831885318885408818563511699556902669743959310237729560113698175447130060592745050680377739248024272206374598190721127047749799618354654709189576658214665845677311788649671517508625501935917018583621701959141514419570980216983301819380622774031719824050600964495899926594378824717540554766379605748903168837300310888583335382574604768526719032079920225600997122942724316780082496812214418085947021126682321424499723711496670938756023357933031636072760968488040634649663020386605886542340671890475629384059792070195880792100079222049789753701968839267029001419642614952338662450088775977438938477518244445829057391081669784247375598424400414599891449855741872994967709144385905222195236847307123649458893804366868304269903382918133596026027500827037147336222770323567523663608728598344000309247129943584799468324592153966270727602808597315179127131910220697110584372339503284381231229171925050931346027999937038916968188087917733709530880309021040129005458146618054164831431732118115867151234950153941717297142243474943597502492503571884518354289989561415942773127424590996042135313409739864119315477775043862538928937842933621565887920750372904322547102054666626084046960568513245701992112114493495584001194569880818580286009745331947657357867706355487443194918080731093211012431144687266065012000894273247490807918387291113120896007966231109804537130155314858598260849421209612325378809494090493204182303156761935266911583249822542145184323739199159612280720180029635612731011859245683747779856116751084764768894502854896526422922401793316861957117260916302046730714812464874115560071763661976004693639542863777377381573831182679808791015406050022132785393993837032027886509574608282759571801763469947729031570909060835458436940777992130274584629680274267231117152173772724295618408151701989258160992555844903560732445601800578138316257348809528570472708611708239235948693571581241002822495833848083918577756668762777143814658345490897474855741153568204764958122624410564250535494635202047835374457689003954484093631132774587037942672544624259662627222731912177813480865292550191667230923753442639884574843175401774216320693636331729809360997457108341790820598608428655539504826665701160498702461525702167879003587422959224803301968972253764551135652704496161086786852060180028470463027587763685832726490015038790556218445055628677297300113504805194295164475296739026798282826875921200628081268467221933559770792229434912611373835779107572021560796648025341595202740391315139084010332826802134864690778155654841681850806054725603042998986947469642986331678167913237329782881332862992717581437575311973095643798494734369803580930296721097855223585896061500578215359663598618698631115788917237464686190574753854327554077911828431534199142240632077709274829155816652553613326702221707792992840503923629715294970492812605450817755128209537433271980870700633428122290469555605265897741895754005865822133867819925437378893072769862155132930836010102910122489988470853194575220978739908353586496059839657229095870666992626579396685243632109035005180388245910916077421672035828166136799225786869590957344624327989913752739638009748506895027237206586197732703131723985184926936634382496070225847642065472853828665932370359480852188619005255462304092774539250913412698751475891710652345793774819714917795324706903672053677459431246502114419130385885105806060068382531859859508545705807891700822680227501794256552586710330990845638296111394808548999154632242728998135609586165298155734205982487690132039882300691700185981092035402871099472687957636881342576633729559970186040415823195590975401044194902510322152878886609498588610038050408305986485772384827917986031299338419219324704854783229556692923690683316371540067326851696019426560705473528914392900150113005384507730778920420471094796397122099397459134343498128826842320781269349845451673373820094519487253339747108860312012940750528800825233891352019029850069207944573242835588636714121660410821125652264886943533130605491903977260085233270592850714575453221170876935116920840965204741472086078322405899843643557164463540413127450239416519878390868572684188696108274647174370835507459631473123959940824318411522403335963708888681919895140689641127516801225290303986912660216789397836968116159934106750536117837606851322168033240438481381912806861880584433458597509364946132683065548613945903820897914581053173375947479477977801248901491080519282397500129788682362596143931579010062163775035462052592027097583253874497228584805878010833868505335039846582491648001840245464628880636167280158949696282033243018411173193813057020812680625451846913740489201431534389904482629239723080730637827128760220998777181186230621027166579634776067110046126275506192975712567933416149367286470083437487325198467221825176010765714288529788300802094681136040727121824500428981868176343189673326384164668816563861789930971090347269413719741595630164133869773207477294301059384837224022501986920755323249063008287415780729565528543420737690888888566183175353109793271387103208420139075668125982559782702260145940762422421820538449542383378413634494119744328275588449104612068619093266132297108243116233115978194761782591584795886145098518270905947410003458019369275151390097840707771214381889317136032335425046054576645390934656796309516438812418758970350622008743156868352138123917126766872965552270998289520856930982137657524024956368074186360681887319052256712022220155400489976457619033947411103110935585170247175718384324236291130693412442268172162499902307125052696403781679048964626172592318626280573870862918838635563553914489009738369957617440358418538475264572462912764264043912131156126771171949012590644469256719524560115463519004366240109895980314322173395563171257492915683309198266708660818328627324901827319430116519445547828322669851489603573608372917464864824482401512274686551443544732506848463704312889086666425370569567995674071065175453339926937879537765084460226183656872703560792543761780545822712206321049033976553352824212131687841646260988003585117911668739390606037742492132420335883826439760664943786718409697020943996259834425922222384112491914726547671338993237157304904056835914021839154623523756680541539393194754530720856819059509674369636319874314428530806978502570569362772811186621377731181744596606651279600964210976472666787824015827092219779231388419622284533065495106973039457531257642122763210907738504836587533788027591378121178910726264339216783566989562989990123112267606940160440451233404846926048509212438195023884937571144983736534852086048698839665554829413498383772071558590616231324122177944588717471983923679928451079337351611730475990944059418777385817375990672217055428620094717767502447312744413475202278705076883745723195583157556239983694172310608818589880348882170186895859348702358830714057075770451791077539688955621219991525905416218989064801096129835878588594184157362728146440961052239866207088403497898721695712799825501668813953261383430138855112469140937963121715426569933099586515636058226047599047597198769071036884988180109209634545829132180646264312960751931139863248292031679513674187353496085586055020245694366233650355457669016643072827431503414651269900091724377406848267271185620557753754254133495553653230635948784695162856737783238174761954294293824043882622798439182561144326624665113145188095632190980293457154177646940004595887505644663486743709415731023833494477539986699130976662607948172674995931090392790363474733024509209126487051238343239115145389462256059165368300297590716247172666177516670823865193074510398968304732393604843521689088661696302164827350880241129821932927291613465698006876692888890323456613049638076848239159759670883230775387009633342895099340647103355822395853293685947232492906573054405566596543296707472608214108107295017803971335997550009637454681074279464511191906964735891476582477559308429541221311188533603756405278500741941310993853959569372243985351285623932926626938325574687185969430350026883401246867090443800041674384589013858430695041572970636467302726111110768722782584575821001813609905754110795388433214146956026270947963283377622438495908873173090546672750737702474398561731144687239742325906125253208092636235406979744869049266558483952372045277131269650041292893879342071961043589059039597034346210173422565783376453668465798810809950619850707551732390645279258949523883725622767322670257660303962768931955782320198231154753903237423974878376622844241009507674378285003024647654267383278509269997981293608136333920525793725080516171020383347210197332767609170530917702000470701355967995783403252643667882216146381771030630879471936192079996399671083841505550529900615192105021875326592397757218105246869956903613800694648543048389943518331732943674126735561029346733790290874516254999728891683257402380501032127867227059696009125900829341575772629246855565999915616598517494469923751245811450997615623259324488276459141441610019401552539132254027623372621486201843709664602302021007152872433232421860966673879175135763895892163796456381231892950629919981118296088180317331468951672161525837047084111896095926222337616803213980735765753837089485856087232016933471753237596664948894627224660312870592618769407119132695338714534323467043841271909998371570870917759334230098186037249665008812328847267628667529897747337143013616132779680408184015608693975723029194414699672873301795703062025075131879621645166105215820573287484675772019945466499476438841653673142898152737760724091251819784083101302863605658746860315278831040195008616328092750002033067512547046580747806686040041200881557428540876214128626211100070739042531038688234904241490991409496521354558040139947113254393690195316028172794694886317800502168878610636911307934576597805834046406889201152055461687071903752090800538715114606803267663168328851065028543432459796995530882063066576561798749335789104496211488365685769174405816034418820528579580461260817178935089746537257515210239498578522960615876404675608315773174721117347377306991238895696208297086844294644553432640649076045669974971727674188099493908690911713951704686369811445070388173432759258941566300930560748932045819947852750770858523433530987600296490666465420694137835833424774864930592655491400313015513372608077213650053219317972343796996966973390225943074269701664865680257148206530163463951675482269620391202393702680919807320975387440337476047731975385891960281009055200793309436026508515674016508231309264909030868742170076155422482436067660025381534446445382106166366057883353222709394556905143744685763980819430667838242469749562595336280400973152113093709907290555895183399629222902670161170709278228225341104309994486642472967853486541066755059486650976115981998991732104045132825548183265065821418663628066957959432409061908664854489834177897488184916253146267765892352381876965976274607079112554775586404723588866799800377201502709181119665862912885486287680790445038814110220188064466503514200591491894491765168645497298568866270517849208991491540404581289612282536773525323784813922668213120203346928265041644062368205227869517343256686456925231151842091949826956966752720507414151207688805162797737654743604895841518623279739804747471648787239845952332044082932805390426895446068949140405896953511639214314817262601276194735367410319259011379767293087530819709580409803007043059328026293984411926768212049393806646296624663993555212650316951534074063890022323072690047167096523306820345766012914159286901411621998091427493012998167300110815337337110272673662078085180918589366415246209897906724259087907186264956212962918197837027551760252565432694167654946580927249762772597836699688678637181832119328184156728879199261001316235767672484495473712022511091550561690573212750754482394509779448283220991246727804386010996755818140145894663130413825013888802101100917464936487344258789532818647223840928105447837794381712808575903701046578983207238567072069049053802448521420579497843436609920071046808505754413754826112700247210919391778425355283916513673274544287565236959375000026077866519513482694696901026193236262370523320692330396722395966015914179983728028342818987402968355282694756594611171304219414610312939063472199978342231991915606756851378780957835284631182777840443681374535037853706370555064142092090810480488912706934736394541626476703580706692934603757549501554658945334440574480253740921023527723051744052542577186434785956910310284844060937378905608832018048192991029636574908204662815786743867841518074230903036459476850346998735033575208599401741669177341812183095372623737452219463559481660941345537676290301520801092534322834579235449869623506772456683944030661871983221292483239509032449290830507516549266193467781531611837569310961417355229319951054653534600459075890077458283456035056439854388967645429331549998405421423435266655930713014308495124606766772458662363002149286660921459952806960172920194378264363512008472796453908217045548472378278790392316339665114206049887336257137863899811083242032705257396452031650743946794056355506410723485688831165848812361239324113985201678999126524408475662446918103736339577312484786308304705071712635174007695183581612681391358340925654008381240908833273993495482849943719269725958246197785776863878735139668159575283643414521462747395809333400546607344016061720100040679369371195307668035778673799005964747338894877026566692233151804607909665340071186040953505058050259764447941524748779284168092832623365301456699754355174125595973904724995378307008192852175130714967642587520671162315159487457048985982562091991137323493627663430842944071227716091568892670441141035621493852789649393380812520769757692203453023359587253907084109836426905998018404760207825126917829345968359615275313439260684106441531231044191996779433986066663240579504559118670662939303285534381467807548584611277009597628670074825198842050452802687130246125547278156850944818266159261154041824991132888015373251505076033203065892589095387780807595543324300227522301621780130019604174778308542129736032852203841569174124090700323210811814964472103583296222287676684525125064916156945443685137528981245560883263114748976931899941109739212137268793829439208285158628840375187050624931879882155536627877095170665794950733032980061671447123013309488303373359981039637377694021873071502169743387987631130498012624866843443358232059509493334916078645552460806650581291762827570170626330516268951036078784620839036756950104253413545166539400308909771186649802355391970269493975236909937174461967557817370283740371718140518257908628354110083255980914193005454933665693247128456320257135164157305025652987294060694369101630835566847816230496789585925884510049452807971798577236702769339340342978776582500889633542820594621519669499814427126769715026604939984140766163061374929390449309959688735901364428368109321557501749750373689586142502241206459916747830866425452119572108197304500074784557480761664605064745550795544323027807285287284918214131526670786640665715590619093406156617899174406346399166872715660528733409419597721357391949236471184679904666673976462867712759850346148469172924495190223639355117300948675709872342098192771756075167169368554469276651560930183771933851207148856531968764293102125249496161154071357986180432659794291184915389810765122810461576717246423534482889864863564211219244001251545383558305130992852527884829350106869038724174537935646254075053366285606416053464578433000500215871256200239668895395535324331086016911325377974841419187864592900523047800556385212508060566972252128743142081630937257997794136906077134279308660132608546728929316285214230418584940173922408142157369914152925498433358638249231436572801814354645469786360517871000004263110476838539466880037231671178122282068638496418675050508221976170829982347946887998388640102129519565867496119194842237708608006953841256449994573729268677527011851632436028487058609055710508867281462880782745125919908305397207173897253220324216197159835693404692378520033863637540996190466707968256693156365384919494549568519204287216683813635294306981812043230611718282256719620687419853237601567201656587932245868400169132422445029531768992921906008601833346497458809521972169540876998892310870455805284418188900800769325134874237155036851150649932982835557301461646398308881577164598009599032742355667478776262776630536312239981604826192301370348741930217404725616031850203772295377582589133615830559302777534418084346929600567424348856596058278955437849205764701635005288265028771067408625855584254877759110173086172944137186161100083457515820428211431231211264430288683553550788336119104821249011147552685952447813007623009484000278953376129738361241510211923409890767301689670454301077278095253705110309607545085078382072707599935498278366360967210315697154387729914666385682177081414532837511329526872530690417023066517117471978699661836654982485965393043427786534049682856716282728083151936049687004889678814345305755232000106023558105832829573970863612815748725993586767329257756216837455601777442058417944258804345005034785781552725402901929041695338356034082106790210178486928595983180665122537115438797246257461128045538514917238659938776959596619837112367037120647082775433945434506252797534851407852787693268104153557688040225763842807012154089385895415754321245763026074299481384606947210306667196804578034976541631073350231581036504951586044890005263030408516542306361145526449818933051080352937938633861327642271627844427159598266348705374008749900638752767662203985835545615261307233504138406479254930228188730839086516448900454156193872321120446699031043476912071246954982190997476137584777227456732493079713237512822408641601808079401217862454307553326855026865813374223171327281796471802366821106698518934608841568231238071098489615894639411249233807886812993478059552176633651903943650750925155219314904635411223553451198659644865248530423851045088549644177799917679338640986082341079091778977557028771632760253947056102108921124360266725836115631290645092880717643660150919581077547510604106437646603447785400638908311909432080507460919803438595154031748554386805292112677984560274471088183093949088723525516160726309715105986872679730070868329657443542164007570205035883058397002844945292238224690498320252890073187941274205274435333877944611558217162886822524150170632335940813819789012928576161362749584898408318747965193021974851862399482955193178838451353839011841087764722584666709531477880654720933842167785268424314912181430189457800052945509046997261945344721858001954085778130509200315947085967142125430778575557155288202481269807694951621809140181380372573100632632619842768773039853022360004349389522532302705359286957576819257261257227168100831710285346592069351516973458094319788632141159524077160284896424099902382450571559718655169428057632334976010177017988067043165367483749751197911951012145872426452497348756924123177326122743078984300502760864988705582908692218525864500810548675011780408828838730286740169898222650282788640946794423267198745990007373019484998391615372248535303291717722645058121440114352622225222800865361765703170681395076846515851851761620002481706340173945773254366041227623331483642474472460154170455599751385728240468095728145307031766041990063197082669881339155400393704263791217782850733675078404734052360521668818553083396681648421248404713836435871949681717859141216710402061163171260955910501182174566554252837583956900551044106807211469879697999137409935133344505690722034560543083873419177521184912384888976697956583758405161402121805898083512577530425107670708397100232882196207251482647590050302826227705030950023354325984535842191254783771594045129230491150847923955743443217647927618215287626193283903125942289596920744219719830173378153210385710805513158885184315907051834980502220432949468187876030736534193860482180242526809631669159903394039736277089158612108387798039765520115798116441621408316115840536168829568404791747436736268988302753834189833563323782675700303160403494275795128521605741767093671046574306395113148725273483567378636483727610333957326519611053383404450156001301433214674231439162480147993692644430477399135153799045174181731489449591081192383582753538911594402791200763280286182870574901150079950000682596185586587934377193755653062697412837618332946038078221410137664597714411651325845364408941538339972936338212728448752753583704624475799259101242635263988273349580655448254978770417712900184207791602923236977107525431691720868582732876855296890110817011285478162837768578964937851337622082912504291108103092114836795605752480204136942262924629282489956372069935936504499934828270511165067490581811695589733791680950926721035468103768014638636093163759016537896242374863488117200650995592084974152866728130445475361661014450895208012600050290541760688465357767034842354344151395358401584102043869076568972501705495336627697542533492162223468773448485774968261459093374029703624159362988576812591021427558499952735205964944777236624083262977988920965733681137227494735733185535628767804388445572272499305379702746735842640227224094515658378337178580850101571069564943990475744046038868753401896191797326366534757047558031298573489432495806446119907547535479404071848664810395731156472953361796025574736763005765796149628924067892586915434331639856383041659483234009127941068594520676882880319522268841491046041699363224883334846121225404177968918979907509445994687415251439428724124738169529473407632750387189457524884228064330458153908380503823609951351102491585202870248682294173913883560764272667683644953630256801533723413827994490560346121996159798014793169484705153534708092451210220236592943274172941715343220136770276563693614808525579310704532240037098699578108076004865609890533811288509806418142141684294635768527401544063041113020069339081703323107614448768284883493864091451905813293211671666260952796492871173192305422176029686408931751109642334935609934471935019618477261983979835243005453169899192534373860170978219443728487018779990534979709380464104788198565786243853180472576928016341778883020159095162538165510151072298362060302623293824959163529532489320060008321830998383620045151098220621060754325864448019796138001911257561168403983449307537654224880847598647658253040753729813899659147099927303770465122304981795224799248029014169619473314222370667984201160217311806263934900125422408917803400436258861704272544534598206444755627764885207099035412726007776427565324801076481161297354876870547648110303791806876995609981671965228452743747989753548303286865973240853200404220875445049907062647217468374746614921784213015866322028103973117917204123615922244194150358682890835842085796783764352180636900379430766321753318712086021708049048989006103237080753619536217495682965068677896304633516783076324274268560925578097030167637622212406155333277936582285393673159964894496802112652483781975874537441448298421206671096867584172601355518549848858556089121543474627255634303278027105953218773205089033438113653021274350969003480653781936563960886861051599529485150222045128535129810314764162747984018696442171132304321388275720757028532298924854172240306478734403544125804534472827411710630823881691424062852559443513963523007505936230366726263239239180776571598782208364409647323879966066213027311269255343391048179049338826206990238823185974074263467155088238409227757649127605860849296684806879406954857597509873403910617927147609618699098949885136822276418955748184120322335367422839193407352761379686435679854964840315688284201749113525520715763501925627643304025874633668728441397733252974814969461031036919193893004133287120905990222395676035858667447970320710882658056491792660620490181188205635125273566928158464021809552982145435189130792170732831633740833576163743261192119402221911704525544582573886681111235185668879865811189432587786713009421413764526946936441089612163443228369047699181190661137937853635655222232194880413582179844791658962107038502933747234274858092537169902103213056454162251732704267808979788539243888943913881788780382943695514735060759327179769905532898352252413069903664524128811722826431091742828744441378607646376714829408102344632559172742499875044786121821555800791389688391545590178485406396660315152174565314974617876391023184660458911701462289169983278147127805147879451834080819484343131043552961444430055428138912149307290663874986923075912429231243610352428471280096151148018727460723578632769831696959449874888247358806826897331356264429891365579101511383440913239008254213577774089258339192660521820373190417027297216167424309527456041867443346421375061212680725934526624825741683213451743507617379466114752083574468812009200267318282594823417669511201431984887829149521116710948679625672565275347429227540986793377786341461176776847567262068772159979726699121706245334630068834370888858443433506576964378894775184390825833826342250397875385162422134145723593425184615669477224959392083139459990692067894500008143536597329057376558402393523005962291534445599298883386386299254780871989681943220326891622595586387941682788894561544789340786129119651991188119805879956261297076060349762282972334491577828630303072784058190741868936970611577747492548596453874389308108199980459959243809483194474092160172973216971349629078589315280336726660012346289635203540361258334369100489628402322077036140583028867934552250049412168451636340988158622989318254885895832690864087435406891031653927289795135198109367255085171043799850889104698847821504579078302585294734197132863111450768671382686734144592105258718071247917603001643824033628296273798401039991886925272721206602273129471191051598375582058189966616922870758314851244639323340059244408042290432588183825465898059615826608850475053759738863557823675733519373983495370429891911490447360489236158453190345089558239583386121823009023050641826331537082846127933102413398617471750740949776475214788350017977055027643124234617700947140187372445766042038822503891596722698447502304245494033252418768260801952495078767882971700763420200452025733721424853934341177830051774056059607640609152202565547202329509458062418957493167217617285219727012145226694042925242504378767316353494508288511569775258408570628212965407039255421533165899411349076859837116609063380061223882095893869531310692187849339567400688715742327328934223499088836361062381384424832971981777354352212079931187330094576334660145194713840213717321475382742821766292092859050692962986294392169672672752271925274400641542499389332064257747185779116748846365285541569649065302883509445823442148458109051870510162988740232448297211447573751023385816119461338686927860622502430319828029567534160868650783882493712211812484370841466117696878832978911901784413964496596681035707862279311267852509413870736248237104278193551502466647082001089482324277491441001965336879549778716569463869454831837438567113553673801905172703170550795674022873556155583781721122588778263330476963625396203950131188459463430685246262358218367552057204561524234920751213965300158417674941771783772810395495186632599082390492546721835250864690631862570679107831157897986035997187881388141781729489493029692508947912677546778079462927281333359927318174717863389080706223774435311866510017638778303506438356889827477593053423025309156596282107947233700007439216369630905081737013984365854690100795604507895100129422183361502436953753794985879481475992570918404347162678407760857851891739962666503145669258824733051284302993015245274683862711542752336914843685014857936100957428233041991980198331296493528454141178119837419624850452346307145117145606360690072882055122157946171846985038120728961904569876966925800913350045319414859811872274244629191358249996076357153420939997077748747631617019128032692840656389415784246620870222248694567508104040618657365760476148973288682904749842813983836401285449026305975889315440215998591301248652237648775234954813624951637359822164265479898405297540129216126160137626908442759016947937286952799836693751522234579349392720615862007354514608569235813483143632423717980916593396186870757431990697133799840190724845958266203587496206839787508396312600034623691398810371814654048938774868494629251350931492807619224690849115117568891564244279988610188757211104228114293902165249450621665937148686763557257248402270987859612268772504801029553296952736642076966521231303101206479621066514105253915850873874336970748064814277742666338163318581082794218118534705182966022519346434884917820647714722862095416933015826345534185434127437967334677822731898661133237214262590545295133016269205009204315730777652178003232168677589193904635352573138668944432399870432507840514009589242425914370931219995940319534246190332750177543105518259353609096890292851289395916289295138902650047073998080695107963075652883954737081553433911127961315261560211351680948186101459517925404779225876396970510302399220121037721325490021367451165435421689350976773028008554465717140014714314771210858777587819868971461508847010305598558923439796691870096350464113477092544485433630003404195279618607907598455023871875816303140232744293323757041514070532060823309709100330799872769939550768537307627806887993638290097622286965521433799251340605268066837319556323500185659377123463616470219149625759999197394947212490958741128022060357231459917844546807399603723372857665600587529954209861183874675572121659701681109040971632560861828596620965932583671410659671879940695709200203072206364032296526754975365534886492337025794394464504610336525667156985135123750931767214903378511547145972631287134140697683537557574657096182422929543743902063548397011460124516021237199063937650284720552489718505984162259068820158272312114613537843540706319347814749542338059135196210786216952296659402871870264548822844670393555360569163724961724587947594887708818168638950813314741496788283158723065560265724270978902697222726741436160949095969179471403596422538413083014281930361771317262339607475786228740545889846960114257918616859983763962208987283904945136320203734141220278104818115580631766762848253692777207565722346924134417941654575703260127511056030337731503527025630890978423205183375184468341710420782591885437040053353900228974143922281547198161078594431019627036848810888588976772869931868651206224732956610974450583035661358823634834784309282626008959238912274639949801356694299563614868853811486307266973699974679602505408046891215080996477775922987427395227021183633205738116685418783546196524657749530231509983353557383015572751786451709974914650206107313876143463443732297081704884655786160312519219961250690165141088532879062611326381148669434376661727165656989735036842212278602854684927098663372277160547865936236018146183453982685230685489864902697205452669988366270610392893698864901393849861061406191378369057721342443802760300464521320533357122035846999447863655999043517301294920556173027752140262496556819067473778982884881213340644379005527216223687527326953725482474233371831363827874346183360116471036237404621699721498000149809954581575807834352818275973022849398818509111080573107985040500520860949439089170914160423197841455419356343882191374437942063095407191572616532414818118653051538066716266952016011478910979069941803796299992302880026417349310080266245063834832944906210517516167633537931791270062263534267406008575535567313637465200186743852864019838102484065727831776162096086677789460985217325483445838517240308572796128250867076988113809548027601243019782928087307397432569514794370170321722580830831957364904027925581548324099142506313114654596355444448034531984016121408194371574704777062398346208901336053762445009535175805126470996653478736691856368503127584971639627451702717736895571029489729965633196286909461547683547094468957916598317449157195355687744560120938371456846083126175755516248537006575534825237616102190576149446757712507205073629942918408872817272079061495127753392360244514386507655758216176402953877262912466918420757894320584220555102140818543498794865654536660969095718714556277835818745792089974271179397335536879228502086731917159921272403162137869981984130948086870156014155505370204581886044262603269331538042004726822696553963112475755459753774360639171292414179694249065234202876858253803229689625215483267338797439173222054784799676300127176930414884251841554182277857469184289383893382998699301489574189432956647090159172447448320512444450734717508402652006111681162845948268589508885574265431312656426595823898070104351253800610816676540628613746216844311820708597075412767134309284261781793276911226858326449391552368188988224270121851014492623491730074379986298293925969335524548601528341025593289863478374175104966932910398867412142016300629998890348439964708029986064457511408613613754317326309071904522888304777910956011192714823557539758478845382961967275051650571132647433758085975686269691365934368247838799270024434027344584948513274325548053043376901312148306041483851314349449624708857522797961283291845481782309695233230172380447037300190446729294339431142733614972255217675657543230528888456640820133747698215942865062715668690785957792402399513025488457224302019886266469968425261345902918040902364219292829812715115381612407018086548456953885173238553563180570963058609782413757136192566258597692721073168460320627887593149768190376356194720199482299798855682324031282672121805154599629168280097140921589556587162849684041046263398104703279522319496405024731312559863669620002338432030731664926276296230666831015513428039795727620009685446182612515895340364367830946393519120979689265821823748504701380476990489146528081375716135094246912606501874342976839517853590863334579126799987695691372546959878737737212113634923446994536273679686586966317439428458292547780678234815599176823083785592231681970253866966585129552514604788924717975781436752914981648879747582581085426625562549099698959947256462805811272471258631931305696894870767033659943838512650236787303171898704485656491991040467998669802065579604752344236854299649937450432341178462052993271623710733402627524559557900210742253673661175106862811331133098367379591358925956343003718824627442640189549947043865914445330298971108708397177662171662197042143899637484701087122399928352871501954051666810474796833647256302424984146952786848056173062787956865607928328523567919367302288124857011811947282346804569522568093228504202149567697727163826246427537300130790736117773314744590731301475285796664693419535855468036327560564029077814117232299741704544347743760392055364188433036533087971016618081217470707931247941107316872814109238185247993974430697956772033349840511873778674417227874716629855976457709077083609691473779405472758485689737942739638842989061557880304961058714309917944977514311835601813379131932028539548501589551561424002247314094321559461605227325387524897579539432047685170869779875985308827373856076074141174485203968436325784859738526186938980596049454331676585441164093746364120455991248333453982822282159593001322466832240721202699926498626048698239081375102420254936181484525254577970482012705946112856830053818062294088295287999560375876671359799221213450069098408356016329302355727892492766209197547351875919578527887678231700469942165460488408773424597615342025215855629667295262900921182270209343939272263001869365985827931277641456334199579238258544181769175031916552093590416073818505216365065700806351046660711637677306056769791083099478748108680338140749571645571431045478072462192481000020407500758928753381955446660338154454690371684655304019645325153468641163558385864448732140750322540102212546067494681058154828942105916595910039050927534498100433299628910478310138100968536574584365007645991363368213600240183354796808583291638828103424174209909904019620916580709948027604115612973332726087928492630725466266257588584338032028958408189049972563267802650851067259113099676392376017605436651110925412743221203735711015364578929435279834710642413970827703819965149295622918478546797932805286852796859325756877457747017072426113161236316428633793836942597327984202126181060100751641412446383595384956734805338664266725254266462973089008349021248663677325643912527547207184391652153507025258358699393308112511868073733018059950460845036617299476935895002051107322725111598315530738627647457890052507716774382045455217879661054781056521093184462702679025629722449245557617292301172170066144897388509787293430933810151498142463046539674661974164716545262726692951219029406801794671116013486819096259021894696529348877680285175859088258468387976024844170852681181841592972167397777955769838343654829010839654961510946325089790075284372597832720394231301240682320772771556351658484822713565395065144307871872427371156186078137549549558022015746942998862210980327128296943210088695480493090677661371345758099771227833195780382100217969102797041380776582124307813219489711026971506548806372681615332911846271686673220481153057403241784097587322303830585058253305148567124124457358382811253473234353619521141731757539032269247737158728475065089512988131340710247987204125960918224739860184015653220590463829736684808161126722535159676645707138132800165697507618889912295665082787084793362612389254791517294620780548848829840129324612126635579704164565720829312796109948211576646937184032457831154446877723796534991368385877077859694117390199119120092851213974546792147275016912557390361736927830078607396916737511259308197945408347061852077770460630816239196466223108168500123431610028095923088601694273240270308456005270458366073712412248263944306436784129471654910091814838662526073019531121823333665837071888347505366677007556346886402383566283339728122983171887610062790012132800233296650707555921916717206312943156876265715745974659594965750335218100533818085983811300691583730570327563785688611705189699990239029085137363357133856120199023135619345579090835010272067738847629540247920637689673731501637691282918675901557710089719470414408232816989193730457022782980082029059201942712662931660439575815008465689624494790368242175706627760949921957714067054198414095661144226238690088283594984144790590193285917139334095340576273096714620032917218395557933331529134711044560363125199400952086696744547001303057069293879420542747987292547977627677502671844290120857749203819917738518681255628270434537459900547971796088628924864819644240955339849197285370234832723505145447989952882303483412353273411877473619762564734758717699093272652122456877331441373817819850487487863296206220327447530091625342388860663146573245726081782630147481270114471909245395410240793287622167844529372883022291963420263863427450168107091380105581013619006570120921780329183511881187479320295406758721430443213870338317957856567567764709740239817650455546030538143073769037776060376222960382492168494762618114191688475352503486001274467352040085402475866730465298647876588239640637432595634744275118158059041229924435742575887024328152071647264026220564294506386946031070991035762121466916597780056829720930068607695866131511126364197991822435080959034536195997460618940994080904518885449440943020782592010148599323102734620386796337157406594688058602626527079573948535668828120165510510444795468187337902617667333363429294364340100517903876977768427785921857108786255155854657218109222249100454950358013335830988283824283514661166236840667943276697974083504286144779822504143250668504715778998388337231047001917574400360003318567451023575936603710138142020856337545632186795410824644399373403072238775548804066606431196295187874658857888477141021571679833000168243868689212487695917905455165844889091318193887222776332874241638447978648697959039502985773366967824568962582806336949492894762171653368637440183277679949930648030375942649520211647642848861202392110954368160139214552945999810568037023042036071726097926148048545077551671336632972552503773485568491000924568948311640478329476593209540459007225799251860047740613413082301072782021160860884156462079460760953009834522474067104461215636080532697925997029814785840451117121234008651205395002859508461835541055275588640106886795603434115209887165162363576461427385235062341554123120069045945048891701726841506287585969438609720448097880794600385625958780769129427411702778395459159893660252681737475095942822203573343159486667486260234082743140596778665891784208073673920725816712273019600821461136778184956702418920071387530531975877695205223747445233529405609398161313713129245453294683652262347582765474266949087637152876162327691139569351894935218582425654654294714163800224211466066375828004475753055607313470481880501548888340436599212558090934965866614712924616165393658634357750021075286518134391653505011437712740742263879160572577341224655240422941926605317085368533977302333179625019067372636633034341184764443101427070687814531418970266937160496751699350846269196163313261606351365448621877402139137852935619792636436935782188442016697691441158403485315853363071069273319619909267474738394414514346848720250553988595302241143614638608874704048026275605997244211510399445624762325352333463617747754818291185106692381725988554201542105991282631918991273665386388851301541324385993079434651811855983240696778902295347089817852525203548892626274419310490130118921467168159553331548975838058408439118838734274087216495295860220968363511654095468428545067085837054549877923134147427774053461237799895227960709785472762201984042903484149853278587425819804765561838212290677702941846177733155925199247642708640326109622943554215719801823060566967529022625724486597910071663894083543822869084698586814745740384750622884668028331991746172582735637713487842189772632235355852393029839119262613884276929570381998285726815696053389998820368905936622186801746059515131049030948221225837144404438004376023780402729252917267565744233635863366321829118522317034312302508511385377051412585917523143267779485148156198735605761871624829988087152142983691735749005511005853449628428874462778838700949894798018206483803486239120309515255890172585190268466682277307364302978877996641398565041354294580828076531682237399148099807254041189991417504761976950959609285877935539474387947044981030423433547320200398260550118150783207103124587887850598061756102870133320411070428081191793503758049529913474552630474880781924829573452178509878200812851055017696784231670415565658521234658093764315614918817893025432651034934649153326305149654053125068849812734079512803129600146367724375247815914491747816483843016500868240402956825015773492901371920498690268849430105531852299790324938041506069842126978474661900359208725078383565671890881980840708315421775651702357130583892277275351348271476106632324427827630130924706210785445669148105823803161416541133058509009716894883885718320026017267162802595621186737563674578103768620270870771792789529328209593667741357618677087586808241441703383097890096788609431336578243682172228771360609475346967324598801302584076872315080168596637590042082795973707270797982890232810474963386800242129792679650731771910201732611972243977116684313584449613915784783649164199746020305738758183455720500383009103817542090507989516802734658035241096140706450175457120235638873598163855775740676817185854638237012818950395820220455932021043599795896414868977606543363383199138156781892545994395030987797541229732222038631068676263639323737819977826343619244709920556452976186320317118829582213912862712449912741743159152280427444876113990701137038998846891183250177326588254422350053316118239816114599598584667080005994291251196185966699038925597734848461423436161542268310912047203309296081559553246278546857014997736043936832797859422358501600662860421920263834857917625512202878433845775624391052800594646436712292058399254083748163395577080178761760021346799588176877549326899985072439603471593338917962929013383127265316573265624771700270492432368563534673851109032334186075711942007419246463529407588407089028189016180991783496295799954196328293530178505195960540849476575909372901885323988499961499828092641719721703950394338274101265411614391117302231118899712096456250796687743629121140365523968621605613679873666624769378758186367942802382388512301306596507642580896526356238391452686141296736300024425514239976188412571473003252645653236944964747825649038916827371318825753618565578742759275815187211568490386367719806350124435847187976049959806151709148056242603629856380098466829180559060604527341527329473685439656720218367292045230737707714260254299110491348973572302217966461485836951629644686099379831101995838740760116832929699333192982242528600278203207777323995363045673023154368985822912168372258324705841997594015118507153861696573404235259947529951245729000934226002822374376898771925888448682682279670008581297712626644606813471429387363924508996739616948833812962727668737483992031298005266217460123218142151425693135827138789602409946252597041149325932226915392298512731688974639397101127547204904289898679738415248336545789254193705246826855439746631703628652102942156258582869471992680755023587665009080042849410669565576117089571788352149300423654561999704135889012603101931337359214457860039318793771652237979037886313111319213715088735868973950942692433886693244333693975289104422132815911281057996930633609632665529188552382059084392792630990183908678816015412925601895950455168217429187680641403167931233145537310853427417130886538722399898460116036966426582810200693926271089085209104123041234035039299456698164631427661456423015438935179692174443865949299142931312813640726530552699478920213933656630948665539409503738246295262421178483765689249770623506323788789439227412069241555961033447732589280151473289562180746415645466895957376952898388155418895984186760344665170525283417797539269915561954342799028917961885790619058169916312841039927662397397190538415889693497853032197011871203355902506584459731484510169551805778362814792774589579925763559115970661244990603460863389920018530949718218411377606144394097818366929999678204136380903927510999919257862330239178104100703110097283478126312450700855677067319861653103742831637266326621067053639482289626053118378719571160279059697022153882192898591190411541865511041963648675305811950855263896261775356297137267903710933545683429692117772341037594641463059011049509016658899906801526422491436481853592111250140251069914636500777406334203753904167106977132122243673903493722807351603287517644866145408950370319453305054497450544557201482792321863622699563918484851471724762952689952453907818365502980151934462834422731430245826928735120322920909198223945692749958042849275994131788947992446505643184134091087397273547825505919326332604097900701541968869635444012959172312496370693668341166511360994626325603102555851424837689782906508730456583575469327764910007364638371550595483573250183683891271528318232411980556354428721357623268334959034855979048350756174120992989607697594121073908043918638281663696712973722253258318860126365366826972138843604145056022830125608154248680575900214709302559038969844867013214561560480058533395337150269486976358350818798134263809634740227356830708162990360046416340955738447162025875973779589336816920030529918378899429385917026704355617456230710448319845007786924164143200685256500880326411726804120535377616067109045813980802816822273402710723974006787445761731043550611661505688989571400162415174731256711449800094829986616106103770691524547330519761125784693285795231327101843451649365744919854878003354247600503702635302418044405065711750327746506063025432450032604700212668354861986933234363297802080460056709367596118327871431888180752910091031232798139162316481640488455047927527336674400435332923763002900727547238169564347948062118881717904577293726261200446965455401855531276026156503666066394231390301995919274242147938094368483029713873631933108702876893442006332562062322885722745559975422863943329874951904540984324815098553620919245859056297762967320155795839864546888024983714429633558217444645620761744163800386860967988149740449674149962535492189152817057045785093029928313913925729511287435129504264583782681328391437900411639799295413051269966019975663029554301948521893182572897955912691156264224146580924339492855327224611351175385308730094711823175205454401303997937057731519414767492971929896861138959475697788231450835523118761487105324015291648951531525109181134644098219441539326831601038908003651208765511901197501993501543493391461010744906559013304630651207500419030391432386516106888461249672337134051594250992760732240244594470638159547252793561557065111417582522486818248875687075849330091380842476436318414753406230550049900419857676482408042619653086055738439034731088095842539930359387506314319691678239713547456754371430680043394398788614078371262165031218813942682460650257469041582913364925771806398497869345241641999821993278715500637323299624340000834993410498396307952625496724605095126330169257727264878900922489322582630095926679856117426379765670067775433958990598073045109206925409376967519965161077110406371757142096934561671510900273990831093031793708982403422627752331060820133911770149560713605150135275063877266137802605786064159888274026998123431004515795405919164700313934248702958004292462622011255873429288522568604753606961675929802315252771424127594054270801464363586937815337101243011353615270059225371270321703654539208859072557712499692434651352160258742277822573630933783154221387547459443944443327662513270479764374831272962733818988227595295017744169136890866427739175005369866409359239432233971197033822238957982696319044818328941962361145075590748367047120053478566933884216541838740512951578115757059225159961176962887435336745979977684171010334566740758632327353399264961461057768152082560053213106799126200630282717905872316702398832875752397709600443980628873982906530828531139254619183374557211456435558744829699721701192643781783764994265181915423471530821626967598341907851633633810580796870369476660108553441820320218073291378366884499042185866117851839061595902780585889327066587520455900323517122816303125854582256092531225275754766459190207553944889922530711147155824673491828378535793195801965411454545455309851952219056581749792774212252382225929206446996384409084665518038834011297708956434751311008138837400487911341008395029554381690838361063677604540137322448791115040236380465005576432558373168081523328735655108891626303844190167321617530417210812050690477039062904390098801195544316767509119687256717731442082271731768662518786773112218886379054246552769805620504894763421170576480811035077983172943718269116819487207200277409866156406515254394055568920721100476122281914037258145012094583195797149231483568692185576627521862258256311164362310730718056547985562021022482503255491657602704388876305038862766814145987416909962741146260262532347737256419064301057978038217264411350087070774048705069864712539288056161086731581611311153481119247952045732789528093572811013602228170579697420459276410444506268941167203475588168889742863446795032593788897872313653874580817871594378053186919038459093175097012423061142452277560413537584684806632939521487665644063359810151643745647222794320557885694262447986610200137572596010446142509209316333297952491354594286155927149330420038882502908868596470176015092668796582042876229992020138400793099942965913736730745052825242169653240521538309056391573287936545026584871811632205782919836012774686776103446840026065627954739856861715679239147149056691808821881241739491899905155628520087777228324489291734940401301110833182580372619073387957100881714961263623076158632248674466776497873693506041405348168012095012612130170235659476609280676611088734028949588907866171909313566908190405331167120326667288196632074379839465178171744953150034984013127822301085467461334474888837716617182055652806157142877258243607172587800617651689136956539148850989003723201504179867502545969390786567288699042266888048536507845191621500043193337271030512685843883611742547133072221303117903583349338379949806014305682814127904868746389576185804303607070808591576538038744894639568476554371307348753606031855633865243392026197030869536311664480196940210739708215608095888028569070077436545968814514343727915660074743623161193252826068942364315061119713005763649508293781718635233389447812168236796751258604586318300826355570566576602813210613410637992076641734669967696432651946781901674969670621055056225550394656147150005533939166434754710258136842440728860972141095938713199754456237048788486237672354038892591258856174051142935149315518717272470675469360420161105212512808647696219268615871296539976039631207141076858569389245856785276638213851043917100323352776937080249361138943983907685125449591271265291272725155465239255708326266348416876436512242768394923788918722383344977538478004825728262938477040505129596190849130860776883587922471095410610561062420494412449445611580535684481905516726923544739250138188728924658945949277811550464024433080057599118229656742361980639915695434370601524947893714141723418012794701260358070951554370257469125387328602459811188761539808532564149132320379886038990452691419419429257968375888628504058639297369093640083788245303096097153846740342121919059489640363089491315162909697362352129655609993287158322289807455428398165715861244578633423982735418495569826320619451339232316363133941601730110227402229349184867842438116596226501011227670748546242829231681024482161874241990198553036333576333425136413392799397693900672400746507986974405261188124949561693465570007105857172102087024530973685538859562033978480330296760593568926488698333040406107654575954962518399372880075440519307319760379072183198471605291536535055685051959150933568836584615843880743681545658970773988022851114141092242118283983339663096444142027710365698661681002458142050634725043008469691559583797987115012829797042304982149761466845781018081757340104718545430595260464966875118149787116598638177852343868367630145947036399340377648797887293171364057733287857859252022851511745353903410317948764835198886956136258197330266414833784700243263055010201175509318334140435099097570607522131514189555397945074040718540398383997283663921176409756241471883611833532107907240098448911874395780463173363078670169482314613862915454378068109750771717202771496047386032271952621666030214696216679481476545579037803328292103627048919878591296759001256493615274227839712130249608175184193511296309446241742653828167513777594004863077418592070600708315579984534545952483593515828037309109219569037911596025221922155007989892299487743945051799366310945064027614298323077349685099077258352522538282680854312089172720261320905126057240394278306223248514060185101177012055752886854653528494954727904635393561288584137673365230637711914631146801385795584218929084166955052135437444934887110765568432313485514643065507437220835128925795875740776225854266620006490482310073540098726896606849228695264750847893799044306137802700853497826258626702042075616720394411466708637855037276522714415688666077182895141473637541572762261056073374172901389284011664965443473188133584767185175175223409754000821234656318798329775010583143919586851765635082019410914455090858091287157793619226014642629187008876416959027775402338028587810748317072861830102383089961962498502176196877401312827250334418051175147446617302149911598029814356124091213028539628404271684361521769928052665169161064966115464618440343969623728213312350222953871443461232317280261039766656213425784189044517175010505614191179289168181892600847803204754453263266250327807032990903479598411235387713955236803785248391938216069476846446894038155364417110139103716242503222528957888328169377519426558647958973154428121604637620336396362661881282787247244281120544594119467102206868863764044058797332261891767367953958620056264496859438168982972270890990788097803877822520390574558979873312527649713306664358980736876484662354114851166773373263306567265278318034253986951798412843748816712730195223847744527133276019399971396811818690825382488918697657417074121384752043041746903127192986505505893382444907771135025366641610178739750186685929852676192203728442259432448312196523847752723381054938728990022810108723906958472878398652824150484672997822962296312142356042417061806706972394623061264386306568911511437599218094751800236196135400968951949817053333812640389161413757233210153174087061240487099109606653671671437387540153229154290581166963633309590200545499071408159252672885556275791921575939873098790277376490970547650499159216207273433255640593542448340520820773723067035808512014039429100425841458282425051686121202570077557405685803206962385269172933213336971706319072770867002049393179186701485545247585527753758156712687168472614294606669276494616857109344446356342810691731123931765583561796151034827167287101775225238103491217056658926984036501532961413136308295061143682832078086582868384774364085857149405166881794985063114347175381041286914149140429054226093766497310680526270115580384737380331626276371498484677155600833005363958802607105402687448872686733735917300446088540881719397194164845569475108803371292691237207137408494824679464263347680765291174023711361033346357352671741071403509364713496731741168105476119577004046776275332579762068589385332263528973933751680777621289347232186101955737636085610330934538385267819236898316194008225719996777677223740768831818058311436373991709802224349135990064735858904097727225819439468045963723534961446035009046635346888407898421950833058398135069606263896023976970423473978319040918486968903299979392441161971160981487038851174879956547945732255317387056322868373930378317988978233217469363563497788534512329078180982281623841539507983574332414692385709083696082212663225072366646785326374920060176336088313276815972221923626956130453150254816748156830093213480694303456514027411360373367206207379598859835455377048534717881803147511200859999468759576056077951451282603764905196092229082965930164290380635768334461658440153556615937232425062770645823679458180507481415907096996452377729595549629167212582460592315840916399818801170022664065574404446997680248504008844820376275891301691916896868112817676707285935729805305171197748811811306527438673174987944504001559048138310463592602271293391134593496185322945964791000283311046779116317352594016343413376591437008647719427083836383829754167107241655116013400780896685211273070631939796164508102070848299430651532748253388266858230019188015727475447158019217136982066646383464170105736729627187310626437024828966041619267286915997531674876288845617871442869147915840599234857469010823266175141843178646798048799378891244990105414516973825002453592186031731474737256175041353503296347663223439516493371533576830498793969279171975109898505534213560199308300173003093831856982584916432187508724506097507300645140940917834528947977490512843233735237657816103854740801495302681221051912464076369615615352949740359257252352633661781329353645508903833213436047478275794237838813106769899177225996024833978000528597083084309766312350645922823792294921668862255559158732268913585850051906476796377793423244522983554810924397860725390257421073316006008669337257357118156055915714807277342907851625487461898840000298693944591025622741675651619809151334864423121712752192333358554493905930479539402087358120970196957779056148271126490523814308795606544165618856262830838822588541575219832387304118338453674891006862196398098015446766741191480754496452723193594068131029548816312109915969484517203197642074728962060091441550566020860416737935969952608344430120670343791910968101028037015931141875201160325378082039430348716620012305723006970695311938903733158519734778100169339330965169910443335116844780553066233208691312405869067892395998575869661578470487874849285867593517011453553830892049575839930997962740871288016015607202678289653507532767551087071831998874634342316162413535784556562367403009518939426419839945146708541426999985375995448528732825209652226813530623154002948450157586085269332001318367124556221501657780736719909782858285558737271319384397141471142700010640975741179744831676458112474118832161395268993365137909189921918404871871301773536093018736586605807387586504078633471063115933958418527056423885878814823603312506404044842190047152674124953573286777580784238515660024770878142067804552559621473204986544306468966649479376112591896431783044249782970453443004149462608232223500851706794647509289081388813689002529113462868974150917837188666231595595019968030330040998049445938286725742483792911465302270798631323269739492468641871723338993367084354505705897472125170747751712728118052992766129287574694787618996901522689773778734807347567358546322275142361727600897340626701325767887862896039271220852927189706390115514551819792639636144766445165390896635508240562380728752383428289114344893486517699656249523888513376199305278667601557584767330486485811512343014937220362579229031891809264498951653446933268416873452290614277864149683661565774766132981375466130058591712616473503228536768555614557304923190913757633482581684626815693122630804970252002467099759990614295540009673654561188335419148616627069208129425290385936195685832762765831079654417868314709852043116450036553878643655918766082290709975220173858059143439946329129503165892406987513601131554526941879432175475490640662026590792040601434845984882433753453895973737599868280347221982089842048600727563932220473229808397499012266475947416815842407735961768509703699444641760979071577761665787321050806321963888883126306833839519619204193518323924119527748372052120063363127022168608587872219375782360287222069137517712847319832394528714434470636960249125704694232357041833108554170317827526658848586347956137355899886020133543407384325167251674251156095897079862268487001715852514691140668371451793399631098193461025774841855623642891599222695270180639708880250908919950371788216010862209169550245978027103491635010581080883914639061954038052936382496201421243765255699152557907616523051129131313693847004036849840280935682623220566246145703489875208176176410166637578399924393961009849861948684658276681168906676437711408806119989009368220542225072545012808254137517994819296052833539729501079462038840721987171412378328058066396227757028998625929544219059604608907043758649166919767909972235993822672955781159233509587854658720049528329867088673503136662613891088778526720467416239190994725081456300908081664925032427255305333572276851024265047887788131440543324448975221625115500775670585873856071762250907871866915783019358484246071810564208139276119429973479595224610107461559049633034101882607720083318630236425483744694150676644654112038659495092930615663097209459903609993036360811284334162661540584347972747208933972176095081973952397321521894854780496212542760213375168520175913192696051560816137943680482207374946833060717411062645577460063022368993212295753491638122130272782173821977819352019548986031185293743808065593517059595880247657722077965495330420006067876262853764898424795034580958432919173711671416720759464922712325556695263760045113862224152997170137870763590654322483144781634558048329056151454849672367896845960349324133100244281257907005084429274902711689807551433212307912481196949494699421505291318497933267382600747211408094154554951953305208843602349926999818376906523450343207146829428690945427920493766575567939652728668166119985452459187076359825437265511719498120899457803136447423880549946238403793745685897313250504721615474139242544505139301779275634940697216748019069308868062169573279986437562904661171079308477109503916106252381971270217093395762413704826381119083205971270197163875579746618099108316842577429430885128594927092067800481136877608529936310700629850489588382971542048142223854012494491997232077104908139465545025772595574516320464331687979279994700982393290823086684174652264125203485387111834257124317472185270039820457997524291300944053768958624420711630125255009218927689504564791516212269004728257667936598883991459047701965339584012745478212934153312908960065181814268490231152318359160602516373805298054304174301607282811557066739471676565632654375230755395079675836295329222080282547756337161142361445324216579406307528171326001172261372647431184062613751741773644023027226644686140249262786841839671722916154858574451593914374055284113256134272894435714623292885601064512745056182800384206676584257418414835798689606187965882401433837391137059955189916902912366890172770440252063061880037048197163597623388651153523746753204447009856366529197316547254363389273560943701115475772329523742249598727473470192523430371389348292216847947510790363205192682730511074840836803709016723547371364184235276049286563091751326085178573085310464211113382403259301558748187125834523984578058515681974160642343702269153912092781651649279688000714403744908896992527738394467498823439471152336958066321048492410317874642781909509373611116925660597923633289054506528312656615840102573230435799278240270130471013192838417318970046616392552158219233020372792179348220075088774828313883292613342040820280948393031113105557272686726652048375090647315723802831208127410501129114490358406640960803718557601785038757379741308675445900869408167927743163562488026653115182949564232933257551239132004110488064238974762282591738920577151759523073451824238770675504670233692768961187876408835996178859209555558297777612166899150860536237065378093547024245843807147056803499755278200859092256653831454257604488758944195358599783248165545759259613996300736078951759715969480432057636638600242311412848815697355862658572819298484204330386733252469093111126522299312206251708967686719525488998248772694502204685465454938265767534846922332471094716493012049277374766109353732846949826102604199227911727266627051530968189598754824009070719523422266372405711247019564251286206734025827335240738807332940892849216611601371208547232958151451587672000738176634025123200174949068109554786372304784103071151274244295162914991177155954500853165635079252956600702893215751269996974238226768520483902477163016372500033640735167213322625015321258828439368743618445913745149017433457563291630669503646471446874607748253124414166831969689118390192604476894758880391299602015451618027763145909375968713268973861527103411971202384638141562562346900015260438262285597373070120619009903831774913382978110991204181345221711243242196228050646488726596864449929975494517983941067552046264746848673711110568822976377257526597324005923099243087144351622625963160089739439256544274814218570718470056870521221309969960728899150834484417423728397623809272187168519065677805252441868483299120608783323219524185325264834645922905749642541957107241522048381442039072541309034122572643145477265925093812757174404992071263734522850900643288874011227256284944812329088213061582400450099813173161029302080763136415348660790241203880550603198521229636549763882086472363522310388753427061695547274808864758112285536395921235163405476481951859251111956192576649939299978622221524170040325050802144796680773130062187170672071079619360155883425364880952435853440254295987725815921576500023534147502974438812400067576503965341391895505465684683248445039041370068748652539337508818721551049367089119762806571024189075294514296967164806918383422240970793117831640276216603108236520447121000965883793647170723941921837181218795264511893499615326166702246342958549340384881087887206161785842248353601008360722481102156098073292482278583930849349096567247653918613546803201578633394735683835154500100232763884965527348402847089499394771632498489590176150075897538661923350551788556147914786950158755838524818020718191441638946974598157952581950739198102382313433531939277050002880952907192891554101148189659702617991566017465843866967070326208220901232020774393922771845563230642271290577748631078865797888033301259396516069842815270957826297284649642587666552137203364201897569154890119283517165769321774986380363056983114553154717346484385355655264874372520292224054956270482916047513675973013584213640734896264736281351753033347831362945037445850511796775678994632201383555618898533509394411095687090381260568414668862779197622130668636354314669357833458368278369891791939389396676701417939990037975673092845353651854959785670133024149151801513696904430416866935642878658217310608061748184819763303355597535901691104596029358472384437292771503196611134253958597302213651713945267217545313653420110868304227074594092353700957066505468907513504597688656369490984861540203205248496516273725213450669605219842905253713902810129308449389033977226001099050543401247498993378215617784675112705683692777437557425466197266997538612240188816031323002746836052434749999437457846419705361427542393982902101963022703147285232105012218076831896060538993688828605743585207429955031925445974590566054855641762194949775896184280946456598154826675388392893420263390498374514475031364643158776582438286772086787776061945671727597916198762669869531496064863092508588228074083204891116904936951464699929607751287637750700016465232626559383297873620064266738601942721568396701120266954567570640802207480026165565801319589053001541038262962957743738599981726185372873835637617690313263495556211297230733139597908351576730117206747093930482002995794011412439784713979466834127147534310036021386312851687036023307525523490060701533649048309740798428085445228972446144091345760962746322948868527055580356625088860446500023870124898841243721190022374591127473365715725596878685038140525141725690286632025445703141268872084592871751139763448001335639477342090651966305735509442657011860766227980701903445773115313912819000814241471910000682341497070400616703319686099083492328408787873548363772770434654917880879997077414459010155568818507970000438208510759806099610220412997999245259101020738135039902734789534366006497934373314569569565085533085133086039637833993592727935814111373724774114922973092038095618306435855562450726999474990901750813939685395838072731160748831042938332463926469357697538488212833107561770187529679284410571544990348054610458510546341099775429986791764703191532305998842009100149565399363650473459044312781729895118208701290889464583930230194993929343968352686942107820949751150676455999644191856869278505870979000729664940209569486458147270014787476626051893054976456159087649066083691042898891564711167597371062136718898085196822040672014408604060615040662462101626793304695124173804121316234676493690099323014578789540408117737646990719439290388618797975894641816916990416524767598877372702865333643185229094220524055152629533753120279120876123351636869515637557135402822233256536339025748717641336751674190979808993936023036011552077921822230384405188929820732173389256585039163413377842450146764888373121350401461388719178239891550844355156260651981714885678443694310337124902195955254365067276969885820236434559751739101943986992972000555274536758731850727638638619375479133814600730526708598544760850386493297525877901467467059843597664383946351898978155830661770003935398485147248322694306874764436234552152006877424542730867468124307061810259896945721615235010415645977829555915051261638079909760222354988279506809165189560019323324786556087377737861411007273536171506019513623572506820645436894960158397761014725465665459022837136149334463527684076993602114575152095914184247934697792888107267391098356138140793755416175866710888853975098023300119672638436635825743038402592142383119298225441801252864191694020530947278177145577890800048468921528117551662228631126342726002906327876441217185832550039341858380249493175854592729214315027863372910092730071381238472740337984225711515802762198746780305793510361394849074163991913015979918732980737047763447185067262056890314947700133377756552488126568080609455154360189112550415336744436279071394673005942399090321122700778486152607186929842044932942278285133996793055576304007400785566335353956445443192585836082971924974791004158349312512066814411583849218426899154846160178015540613237275623656001074691433700242084532891618978762388858952541356359439151118150882995546358513738613141020626506734985237747106013465295770948748942181031648136590325996634924221015232533608374169368628461409544176571377304329039921938510545230368624375595005459643081131288836221101721020300468718699559471443559673337393692744034415379925170147681909278203130749810915307077587832884274855067302611311840831344386757367534296275462938492081974360095472253727858005964104255094591408186535364769865095265547598874440153530017644592755323581436435621084425468823950038549612488874563231553554126273408515637113158307022711457986451647854985368306274399040449128312348273721748526124496900684592635652890193933645856978202838311858097147013839358434014321479265365809187405119671123630318326708996255995454859041709647965799836677743564170490571579789263660079249764418871442937161817882905385774591869213530779362044374167162492246469530698762087578621992687859585689446546556385829642157740961474943255236944849552417478158036127585296593650974951872283263151311868587530181766814695689531694793324884469896777679079253090278838849794001634058676169905967698163560199151564625599091639105349790402274631566020078657787804532971566220786146232460010543494607431983919110220548398669408136130746950560426600412195277850568313201406726855250526692226130990357120866527787244052179857504027605590294119214409864992245494287310783497011411456447668937891717443751588982762053271024653326442719801540481441926431870114673089559654669151530988460607261338338371158575705977966358835468316131006325248256426832550162689990707264208057296001217181936477441783037373487968943933424365203740145324900047208598965116179096636776317047378447746412981017807552881903667481363011776537439325249599736887837233863469577951357006357063938224848091247597801530358510021662712395823931255131212785788545372129857183085979764786619740194362365533463895456106362826776394653147146322784244297539269781621381361387371850241423896158692825591096712849852203044899505745615709334694259865499369651856577385701615089505399307471519595949950720567880730510156489941403138089376838341879973715354025255965421294065953230140620287422454857077235755662522543568869109113671481917194164031585184456512792752656455479980715420595774743294883085324795374181401048586199104248943071320171920744732241043655099169949472035378939379457951243855729048157287030830837062591467403787351274357613829713304318416446441847661763797096893260184374818423545529190014288447465734607701152897951615736448816826996984877166225476842604658919714021689741403638793667453307753123758276028857607942866447210735668569002246764924764086150149331366864610922382169353820510675115296965210614434493114853240660071452843265390439411411501930146953404228736044489687408335574872431056576582379045141454220549379950799323860659118731409322454394973008067263125321412616411558901769395127122386575206469076679819066770150844177770944274622372569889775350398620025198976577251402287393512867368065923143251954445701189903988055661812210923390062667608300030762150222730510293125796810143887165372999926341599257484463942400587220495727703191253718167359097544718910064592766614025519856951765156585416923929829445447132128477001396113603658727031286836099083569754699914049175436402914392715390399173868196043423870692718422381750597326096886036254592266278232032382635816480927465195797618333807769857331847548915448627301069740653480681483416317552557081900925870085356947368219924506696911059043887214810717999519515153952156585647572489087870798316954591194417266013965084559660179031803956662626433931037822488541649383323842096819504981107545283554737123793061285293888186211851594745018458194985584087471849113701147079371578360043425073786284700810279435040907281912803015730260756660078693296963872613999092705661447144246687817223852759433484116125309573925889422188161185112684452275870839492464177396296617311497822851400914766614066925092848292097545417913937416860354216295505468629326345992397021410621976623303195397752738319399989260260272507533043606588082828863655969714383376741600885812716617654179440940109801193938923709584731811912575500778196742536420349953949631595674310293637387663357612632296622614387508319265125403735252634958137301750485968349912889112567138760662308155896426065772539105943696645258187333822455132642741280248463612048974806331007164673848009248376790639246464341648804987072895580346563496173243935839828961208159709947463909095367722609522062961156280603574157014564471461512246723214997024443115428959000778840795828827724378411282295502079614088817121534882928099893376998089651517414911728367458865021768372822786368525248650934384649171509463456411109352968867240229981210004042712734581355671471243564135460992820131165952013554351621214784533173978094304229945447426497444019261393939640114599350209687538046385175979198951505932476666664364108447923291216667640497670544233658029906483642982969445250161030826150545624440453185605875625232377826157861674900173946608928716261149235987381512356572398615983309782357668525314272680488942720986642613572242227455753771386653659048842112165457142344156040485143413737635618172473417867368253992755235913867425103068510373431738765583060948263753440627195811564560595461305026777712808919119193373531047452039043851702679043281629428212295491081630875423220124881793265642760898058776584015812687225937957949887460836605833054301612050772469816561096583808551297759884415106399226178620639665959220348974678918588452488483806879443312914762380345062139452051760141274374364085396789496319750000849681345557203508728622718136553540345557123826108741194887448788076798018574004524701853575937347295203380126109528835399441393433654917860034482631172103276404427477770727025858587835584933076566850980198696911354033355289630299059500092944526006357003613642258738185467526829584844592704880002392422248029800813635933941132207855190223948390503112923224224928936905747136323521129443284411169818973227108749893501677829315855993056126482266486279605254574789077833964365728841319667388296426983948293855929733716550431917095265903260746770530398401455148319249514384951776911995645885492570237065056529930519745233274863400681188179225393594298629914766689453588509652410731262432825160181982218777078828688692046344175895377977004434837320376991189807953941777143129321216113583514981853847313303876775330135492876742345099972146540441014562605438013854974785912854421045036559573285437078012842750108684557752018590773683658248708472212764466266433799720233346005021894262637109851794720739220437062224916364355643251736397163727996343486975427052960487011594012591268049788942718920716239225853446139070666014551307219713682349379867310874355926459104915869460464876003098205685750803489757235216518970987564359911361789103132473554178361090614984149724550853317162356081272815047528739794958165094182470984923756732496628128174690204135550208975395351205140788126017565589213501057032964372807012146735365458778428026040490806454971876798674938055900383009640675771255469764692479076796608043834415199782625943603500557247776373917308469874612571237783405652678252424607952469036634053724864163449721637216064683555092940140068085593627880642100769071711729863924128349422792986040193586835785372908452486586093438246904896239560309520510357780973805568912869845015543190733965169521654364437357083955102680802688447344519965396193291232236341776800170191813008541167371205031187906739797572791406408032231640291462737215245109361676572981957599229997687783002193491503381351316128408410084235055207413012326580973517452950233335854611875839700785647810669884133263834919041481418844305064312029048240356424887582984870761681442763467184556166285385581157707974599881482384647543654208959812492513779561930918337152170443902664079393006585552684540851257189790893936680508396974682165894178726273714562423029890006300992601709178412259370289735196156711509504551541625474176295921896244706351687879267409755967797925597746980034300933888016305002886963144649006107580801762333241308473485215759978873478219003120055095514271171460478089084171620264183018725164792798586880274730720163353641543936510514618062434842937267664926679658266394791570403622797569782990546470770125498469751561951452373341438403289653073809660375329793095863831612079298986199611039022244796006939510515187060324130925531137016585070287320851266804282604473639477092300885426199094843816570182764615857225628631098451297011274579692681324330596384562106229991828769925815665312581573020558474590552871159973907714272100538321281242861233882968880376601467033451242549373919445494083307183525035758436260640915327892928794014924482433174001409815952253799614776358235477258983864204943773147009230215538832877192180254973280388249094077828949841574682457730185353492688151398772033477323264964156768122367154956415584123813691493325772220585166202296491353639023932107665555667280793405050583037526238716661809910809345122726870909887928796349851295731764671405639698812554482251883675447853553484387207242632708670892112775712966529808285962009349855635057529964796095441109662732472458678460189595526467615631606996611235923495608202331239359966182331256726166772624757155201335586222663296545704521482435374713992839140179727443534636497213951186518194333712364763589282343851914908294590932764400542300664800911751301247986348914014090798683860637228162761127527706228398010037928539869176242802352360079614261590630743811962018928783505776104936437457213484051590991792168618824008061682850152905167091716500531935053585893462014980475048575508351178724932115521043597577222468967434294580507302998645564003632699614248622139095464908994562258348711374958995823733331862600717451701077475831103879689761071914188682701862491391856856503043168172298457689250719412027080449636373794236713933245280801258388329330774608521344022443458886213956724214635887851981930641590718924473958914390243006417963609762166601891985924971370542243003716171163298681943846604735091905222375588919560493318475090283501370354443675593171874219620958133587097578212174007464628408770431737427787764313367382947580142277470484682505648345992951323320774199995892263398247542282597932287521279937298785667365572636846285201551824464517719352341404265986255078856393549873325351486625193560134377504844151981059812357581423437750367215013761497749982651396476700186435930311404329544110726333571191752639078478616763336757684557375739380794384742617149266688013465612683644064412966638753334389276446288495774533309619210865111720392789526257876700137516371074961745982947403952885046012670976722490570729202016218482393271435983656760039310201229656079064340253051027816489701598706099222411587807896423176427801541697656749341383712753164893677795223795664935409374225334594245473166934854038466404684133571106020488768518555298765789544525490843268701121893127065892240080936000316666332637065001201182525595263670509651143265999530412482787366674239561487956221993697313816219219912886312841256998560118780960439758693624706229404752649586308214337767786030271570650030125258790923659840678996130884679796411512097920938379191379863449679495291670470731979547712830421493996117275946056238276710895962237605250948447180989696094364752830988047333667326497276505826746948669722846576563911552210344434887998641524589292284603662759763597141182618485665335566640747938143272553279753210816399488493083834862987649324681183750022008770157045601013681779035936015996072560577116706515847058308468324240347499807008859525479501452509587085555973768661011301839420781447802627224162157563500196389635938542942918136890602923102495680838620624968759191943748723161953316334200906901753809210700271841612044925520596813113410805505195128676039165827839369266606662862526389825606283208678910312093800008053714829019584304147852358452500756222845502758703737600171522743078453304783876270384464049543193255850093916654585167222313695767344775594963439059175292093470869188979629919081655105465926227494828093107472172712316480668634548867829338369532108572452178004334780760978697199630669606920566004533798738374721649679434438685262118527699177050149175840441794620098846871390734481047793976894576519583761336138534425214539888910478690428413872604356527217394730774250558926387363442368679212340136070779404675687324774156521746640635746299058177654581544747457796283629769914169813758278980198990449214862176240130318747036405167553300822005462461522603314787753687376304947051482815661350966111411494533193699168792606869556077307459130873472720233605457517088968188935548124909227024947842069223326292774998697970545433929428899912764237902713260242969229916015218256718341779498914699340306031484760915892780165932065789572574121594199471990503257512970720161892361566421581617792195509099362012008055952991791568900143022642998927208965051816195775914895983698896501628839011988547985401298482041673805546217125066960769364260644966217695473533266258864824744832127103390770082531686065378152178063704142228407823833121134067053929567918686986286683574362626280398915094562370334253966444900963040066051705877636922368222167031630882321710411852370561615976554728435178766171951869271278311418549265493293020514212753471809066054862134499945922621055537115968060649754970839326305243780691116052307870150569512297919872956289499486157656828470929002402291649682509119950062291663830090812509237206566659918299449570105117147369698066212338569805624446558279962812156486912742524973524262184497781784313895855223111182919068539950964305503102347091230499497996276208270258711231095110016394631978791347494434824272600152915515481578926552179767464539179825253711475132832404163780235752009640847407832946994798369071231855698553922323021242333347467260050845854017543131260836648599931522335442496151816184831508090972307776375805838035526480882780802308598984748310939137656190481078761479426584192914479109609288337847386051233642510368412577694949765014656008732943632963836497324020810506749296523747178614292220922519733646922431290357505171232947280473826496969988925574317294852928247220358977479442693388842278079522183985486588449065209525109023821957595876566819394807475680050038290674413771665651941234843695732405077218179821682927738338590107834958653173445438094032299787262792703462924340181795730192966174533818149676353763085442020120481069641854698644761690103608607140512735080147372250759336160101001833571415348727630527404030857795951005585116307013482169727630446892161423293327352663870449109049319874642749319956761482164282051240118410644453445549989585747968203691291262172588373849631911321010941523840755085279740934548189961643653958544755548677050827927024297257245260815292114923953584211804783965650502430252051718362212693977373466056234915250187496765960076178393175038934873897926123207006279442888536741738678756245607428630408017156349309037182269162841403347213855470943394265548993066063118233647227629326532054688001091042847404694402282050577777779949894481998735746309642953325671469399997915450344816452018462600747769555337103438885622774814384927559954712897128162181652510915908395274636207253724695341304797861014995690468412041932794757667588320726885373395907516449412775924474348165138007219736923515980020051223058703577043660606000835716189696475217715789524933647055831557704453045249965662625869587059379330462341707316824716127317421965811694414911969805005933247092033615855038977701584055438764510244356099812919233467005029799285774946784745179797066880753789979363753124282783296421068736824813898307736002052086483545967790498210123015278872783840192562181942866366477589570188232438111161772112012426743903183611890438879454893764388149124766340789630643871862880329570847737532481517766754842548772338490029715100492996059866667986937139143245573850273748633623874530750773799260465396391987430351942738809467652245950577106931765968707128468015655611365301754879523626774325321047731803003727422253252535426568094472991204393805719074812111803038561790768325172663193918536175346886397080760277515908144277462875848281370997833896355776383937731946720458194721077590537196097769362606024105372400879384418143410871447347388865476954227835762904692136609591005719018723266439559991588789122284113933722324948714400020287455578421742913346402829754061571052921366177144891766292775854322794041046061050922223701012864392365913240336283405029393968867407128469075976382980418101095860422636512741702379673498863524294439205297686512877221662112205656082119438910708304710972423876497504315882870300287134319850887983293969173740552107258312909864748376063189838801689001912611969747186094488867574970154304632948389445588665285528595725391969093039271965674626211647534563405720721711333078694140435109644659834259558966021444665930608005909108963180465478432398196563058948123935842688029595119370205653488685870177790869369972869397181906193277883892432660752193344465248616066357053705722224792726869558212099193874228827442658138790448280349589247700705359050393062136865693502687492342707547382596895436542651112111389201811741403366139558103924131433410367286533343580531084018203600289672227623962076311613032592948702230021110027853474704621478476562676389982053710690874695309696051688504178784109408658023102740885753849920030500425333639783906696393509429275514530383485264700923457986262193822249880805370853868383198768882814925091238623255816679150446890371280174898818482341222273449516382092909983926837278709941645723812605508737286082611164106351825643356132154292617719960552719392273942140923954319352172536497106656108527287554418231985242437789212828984761459680649764153610710358820622705407959071081292923438610901790392167290055017202700597140079737307827693203664303561737280470063818577380862698550202615390634470313899722054192318536721643632335006176755478775742878113018943289041389467988194131957457005470305682853559142499680671174408545028256031722194850729648360187943542958989310151040818969404255825505597694834477071995906643721145143307760187715001053560380220891166039223460669433989998730225361281297073846460623462365132691182548872661949893777122321081581278814447516557930421090202653959309733619474985975417497140054665119280354199168275723787910279266738956776041330204117951333748362385124285813656298788491420355492189468274452950728907701323483214860324178118956181514803071570207238557575807673671300438705738803194828585226795420098250187038660924640555405353997008291536512706489387328082433701522376305555762992848199691962350215291090080774659411005010380089770162772977473701422722095925160455669281836608482201296945782850011510212486946174872245359928809030433060290219720883396984901941238051475475523431396512940280813639288738373541765032079920044738525397002923028355310604685984991595346956542618540716549303219966514241372458775629768135485517776814633229686918644103623076663742445577911690673763182835042456215885765104035960036414808251538892035369797575443076954912562107340833639717506141364020627400098438759774669296277192813253088192544479300930527597644545237572094204617259820582342008591705719382764369162157539608509963685985005953451784456153651582019108929037816666404127469982821094488594383546408596886733327227835139965789449692105059207813014077145694354748291826589131889241260673269322708117623735293061403565294619077419408870960531991941426115879410544476044244373725369879059404695784368924030262849258416377361580977130706653654171949253884017704987858490129839594354243898891893131996297697795705617052055048690085491828801853820405940688331470737938506414257607821404378365915117394926448036980684856754800509872621001608078805294081067689540165003831812006573008886782765202310102825625364272808066112085211957504501276717442693350889589149983855657327471941552184246512564150878527310279552644807846079287562197387582583993856425836166823478260378792532375164322348077666642262433083324189319528243213292768260876576338827864176160158102354150415645313998078464281680693109630041957839963303313644762131345988463943912628956656998040004580673225632185242335486657462106169066729160284127386440890171961871176596856201364223722438114100161044273805338047851078449446471279580786038908243070281511295456312973457193937313743885978010193227829941595649705641060941847319741364376761570510220260281132663985555343111941408999046946844301265177703407399848846307952965148676864277112756753879087702416525772782457096913027105673772887464366830316520140127443377009213156509225947736620049635559780240536731577339498108461356016698456438864398551296302979306393833018627983248201426025152244233875423666250533934919385933307418582241269186442557431470366073356805939436931677797806948950274920263311031492595359317856542494143981277228413930117063428732253825408687012570981488485849897036821222032792614730826172517394484286764129539491666697191657904972797643478721632602044504574755303303529740896464805810434958101799279767334713776129702264685243481706589819478562463171698731594084674840561837567426232080191904622455929431033472852433112452994733106930693412500125300684075544370127649817580037417135874240417793429648987583394691990133344115114199565762824545678649800750134028509810591873396255135339520327468387456581769685831988699198689100581094560516527298536272678985544946760161841685590580135442004020503624278589938306534557153972646129467477635846338224059072042351483873008504413713020925210796842932519162390874388024765643439122386649748634112018210673974372500686262101759557728970192570326978384222393003169773401808211110462315684598523860955313861772134726191105032683231408287996901143901668346676583766986923440136258428742889546461292047272113600062430860568500884796268875581704829350351494229005068287277123462327702821252913953767493827483355239597604377688211679933355762630628687844749337136041783410138636700880654645344128980765143706408377504020007428823487731253009435417536307908669288036081777294113261732668690333072297427341094634128346877218802392024809848333536142807906155618245930010571280863365305285147223001430832450368567650309349226853878660660957485350692251762903775205340987696582654558211590579574278130057567597773670405294681423341016508959814731924635940392815852244503404274842825313291246486371622749517392284347368068995133560950793551564264445432723513680603196380973068740355820286259061858672028016099581771421930756018911843971609064387308353533435553132410149621511160424275480789597551841504905563741567614069026484860874065418912224872506967029583781428962006419760575382084219524721764763453239816766443190592336211833560876463743074554717140207034429046958162028562300006510931738555695823903000622656302177179889058693224037967037584932658592109212066570250797462421865624621653373766529016176303295029032963658112402619960957689913268714791408097571837080532464877624906267058557149570028792981173306330155211316223209808587567151972202790219519081448927489967500354700099751499074516591316521151601561614721299745462570231347864657592308543871313657326718516559669855655965646428507160089794859759696199231463897191718722815845277797644308821862313968125183237625074269799349420517042618401389311310326284642326737759987610762322330253032513716346552090434542987540885365398007751118948906069136617193834524042052095734438823590089489346061718252747556318302868362057857032722818554197883063334049280260515574142050167524308707845598293544680063623664151483380775924124003501977343167909972622894808036486931175719860807989314254476271064483395500981952102468673324439668312808999933700657523263730984382206139979391622522450946995237115035537726217110599947378921252412986086435807263969574167822058044202157466963286041961846936897803485819413554173864737323129772433737570844211819404887388918792780207640359669873998277425165873780866958069544406531258322652549395718238580194029228412596604247536833073806359478283068072887958674728458640875347835297272003581704698465054066208988112099458269487719807666759983696549331000683039570672060151419648391892693357449432413793578442793798272658584615713375460099858716005368438526943793944765048154560880550184975058320946088652600123918521297082034052361377813049137265929626615979676084162281082301799147299606983075849146769205489496592404735748735538332444754333954055767015212816383487267548986044728407293481165468683933502983296018279091233028612308397387913983298767239895704176059032671985268069321767280685546926268674176710467652792223210082432719148340456638167033806522112562631095138450758081611348319621630845726060795196383564463641366478513843556414987123008253321030865106189130928195737814562673741319938341779279427369251652492650396717257148418487227230367290576385146513371765551813938577303095985968254167462981430806468990068306768579628592704101492853619107797441250442761862556400946874567304045023798463055091430833501219613218874593022569799354322194453357239664221702687332422940487127566278761722089058558344874006043337660346318516188249754975083794905642622418199107174717740144440531954112271183498274739381475178333260035770122042135572544606798798103009057732554780812131532178769042446109672629816388061052485636811849195454586300945060154543671484953791552412569619812101132489631890980849922595284111611515564704352315845868880030934955454712502098878318168725991618966916292314082136207166981853989634366790157064063038046848073269487963896019369763321998608753176599350355364724127794383338752382761577137015070090078775193110633518197301147911687859179668561871430567635273820198423077243652883608422212390182689292833319136354059605074641495449350979642134687833304087250119596074140183278765579787549206622848517246662821345051879320731864528060776867204184552788478925427005506343099452390782629043297766744993258364235758634491526573007198815276925129840684517882849900855866895192500147173403026469758685299774384112711395050826824913949347864241277580769209047647815324133742330695685635319288933678120336012574874537263845786818346109602010400969826768642791092478437026586078781269699797147152214341113970208317847631023289197571783986446342200300439817832213074429797290330433573581653528477825639499962732967924374950521392249246004106381598140309892747966956374055621058809957398436345623095847942273311095829786661479720772525208075047314287006643265839536062820428656675016824784119550722328514552007737240507637306255929320067654908112652784059057095721803087356509331326906352063108302710161797914359094094977665274293109613573582403550082765980173192736259319749301449328418106352867646515845466497512369635659917946129252506700810483316675322843072939451637838281132915429960404431666697980796906961036640578706902018693907265102566277135653399848427807089541338501765237976734737707715308942458520214952249191535969761700105208400558639392469784237094845749228046989217057742438930197858427028636651253321010819676654414071298451240970991899934566404355282394841070867346240359602155289014018731923665524743714438581026334944994149881114364700306858714720922645114189739913122184493664637110428775532788665502628259723491626055588886870423071775634873780210739445587397390765167510357576525599563969541188970099031446400461904861588190990820734226484254643353810286276337088205218829959420808450490418062443294816836584709453035325538556080882194402242283005007516534255857403739591827447073153582681544811569693367054431515143902395310998477948057049026319011431036828225762306391206616905016959098762183443801399760596458689708017984216211703891993885756521936284312025451142100153794999243055041031880981856545639321618538121515348868271035950872801762074815466088932183363187033512081919888947885435740658979640433811137157452111046705810140099800645238737296405864997959618309857614608952209701409522054850970684446001209071827312164816037007236332607996973196881828184691098283525868972305125569130937456854073051825249849240114820362807164135463058852129897108049373531879606961347715811537094694292921410480266207242931027242223316155143702265581034776559105319553749136394959503796304860245796142029385699002481554347971253228932172496876047632703531226090921564890324666314649852842403537948805188999180439892705157905078358422367776522753918294904892032765091496497840516578754939747622401007850698766688143692472394689429735862526496794898879519333482310663703520605474068127702094884089562019234709576342698342752979626299120260538473991531611199808554517272648010860890682083748430762391535470171031823119008790820694256625597652201920306979567974892829759301638984144437161139273403385021453197278480990019200132867570801394484085031503304474867881178069122377019972655759182602325489158509388892365183585580960433118666898099853439313675194079878592066654602667535744158449259051988735558164949918467031496952925444137488857784140956782232134259183723035822245728799839466125006277342051126602262428284358027799514647826058503719527527586537784882610698056373976934340474792449956540702395078888568778382688529148961027806706405615209391707243883404713099212582743634637387366837273521344310150288744298087334981905288971176691595971054825092153664055404125914017442943202918788739584299373815723874243182156352160887430039651727711803099653016232409522827948151280577868332831258910886807363182876436329277976204610284881684000721255459099974774712425686535496485584158232329411404881672150111276726181055743489499729739495760057592703724721277128787348803473198155883623776632241907398813425459012913010712233672672662338696719729271896369550730367163466700632667423522190879887494669405644714489786519951898233626829821893105207454189529440118635598356906333058225259512561163851828451694215348220787590265715775839056787337416980684234993309839822245952680888740312607513881761918296802584227829709680931594929660046811776038408131849767159367816217843309751796444118056117177487362080758965761652413549853505696052763940543582193497279383614353581498247563925605126091806277307615561098691412491507180662924362822008146538762046348010110656410705107880461850803518067458263376296416332645514169413568564454052239193780438473780182147210605544199100020671630227900284783224800020784217837552614394365682913921663005871120295817296982832159404948141691102374050804450400422806413927139259443594296386830474860108664903869466773073767891203490137812207055563270240233395591244129204195902109316060666751767109340292387451068620169219432587447270099418169552890915434776678248270255912911477601136205386718470944366397655728856927425646743323704502312147718351277640645526514328574761755516539178492587234700335738766181535004364329232638511157400302357236165661132143076539987507586524387787620350650331815522316617304134720881295075232255580765502787128204105162536594202503112671081731795633876820793212543340207788957062319910642967240453745436748098908651436877655597418784950416142333596053301339342454533838228038894386651353793739034412059463846094938083032152856817176650697603710971589338749016633652918818349265670454438334588888614728245268282334008207113093704165700412161908515940628527518414302590505448192495598006030970768614897713336286778935049874505136243757731898499269308031556153867713763632432365678013757288400313761493700014991059654730053010977418640790010345677699673696511234372513533233856574021245466872813857074100274784616004930150225185586652244026964614564500852861141811805099960365384476277858235309604026459831937380832546909290195274782850511179991574440189711564207648767540599384501083896608711998455994542705331733639091759153208703104864251434846049349637970376186975224252212619021422507552444217325963598921599506271501939282861150563928812197779469866703951843594320075413035044923425269554543948982649043755805156061835224794427791475988280274291715706856752972657740706855620999662839118278614789302261820817416086983896003785310205039838309096765206747854270122331301993430704006101062076284872113940952165965040776040956921350326276786085804186003617425067310720462629196464404409047976629223490869491367051869809702706861756611126150080048473811813320022645123204446549576867208726215928777301418030537195152389062143590700502218377004435121302454172256335549305521948492675458389206177599554424420171893871307566027212510294955488456982517388315807599005526473001283999813492662817650866279002371441039448253706214490490485966444582238254079614891841159196526790940245841689220571633993382927279439633480072535342035778636715153363054097225283233934316337203218016683406839805704930783773544508373335483561589547302346635050373410660494551555699848761524879859457818844833754788234933615422164955185638371964286576054591311678714932193654056101423228672531716313059173048636161151464858667840686412144276723649250346500222397792445303969918677963956915665589961195593324341207589378698468218468862035598942636798887970790836620016997293555672037293725494774440592968860490147548210556037365084177323661350774734375489229865009936491293567411685989700397467530376902226868558264186812640449059765693847034552843258781028090568762929243261372533246576921801796801748695248586133023068374616525364987724161809711853006168953834563212424291510935215549745114851477630790482607116942410092674212908897439372062431363104339125815552504367635717327817466521142534928995876262083416646368520558508447785992394975445595120863994631565360318362038819745100377633974814435444821361851942668872610930633885219331665200561932509786577499642857898981146019972360833086552399105165604292178305001266717080865732151464838209578631931021798993590231652729716751991298015381390666648950902490126054435982219707420958377926049278778489351438945838476348585848530877499476406498641668600644699966975011959415730948918276577886252024054614918212737850801038829859642974578345895998916919660627149742298171122352329185259728273502499651877294638611303153782014056286765578694065776823953504729795947395287893466650988156314451175156652785159968290601863290186563710583200092035323951471017458614650876870454601670646738797418116376951515853291893585597771500638982393004610353754678015087318898458428432454906516906224998198028909424234962583152286423335770572529310614977592917633699032697255919074802111386392350603903000386592400717350709544118659021009299671344307581480274944867876924021420329968190085646756509319726370689471957276135403693173892479211376628256068144820618397573708179702946848247603194459688824136565556358762641484849375874506919456613524690199188659707442496567928765906204006614004121828103978226589099656618352564998470207844830744516916178299820706929172530739350664542821506905062007346443213448863426975406678064523805851323781117744153084777818932090719701511463509655689174523499734325856520842709831840057049722623982419148328865663646188260422840268687727703323034935394566901863630452546407300582104849984805255278980873736960059616614866289933641480670541918213107845449732083704312209585398801644428597616799172035652333350986135506372447404477759465012636552094752887730425216169979491860929765532947272871528411153573114684969831285334831071919637762657715126612962528222378150107589709037432596789684874066655122355767261800076004219948995605928775173560513943517149791983511589186208096121585148967417170011907655219625304314143828526419413751201518434494642928612123127964654622945582003096245455555824690083300534670773370218646147243577679836317046119039062268146374080678601074722815091373506130060655143211788425922516673584439251512814449147003959554772404611176891018758469464178801544678584801517959983604014528427001660218475174066120198559437250850922232243795000625730346553714188065309868092859759813110103237608723395992674765571596927232237894010975356669255340838908459489761540127809756541426967487947695792065885773733808651683260187640270727361812326124035112053287508548616850993882520076360409284823360651457166981857052005849689149453314614322053041960548588789615572195807217623366832860502466656007724546021576336222993546596361127666746921939667388173769382314285070044784750145655935162581602506702338256977554691318056032837028565966645808539871108894465245401361580910024034184788378750303334399178878241120138624003408751593602809078775108807657567712230123256174425704710843470726359121862631574925020638344976994094491116102787268769297630379346341789684451117054109201814076706214585184947413244170986016430982252497992810814471926612583245529796090480013131182481921822341813580811465507385043627025712873925970880485971442230759248223384326351420041024031258833349845433268974109374737311643470893014497079243753018466899043700712630713980751642215693067268688111905857252192958506660357848219243260039163635513264644635269245658809053917403026141674012759167681857320113538523502098985407072162495702713148213103761593580461973015693851504475723473672977355980571520042920465167590173931340530387182104327861587958199233964094041200842596927434228672866051498223348682584170906084166765262757287577303688478082056937363493543973836311980870959748466264444742852882280457381821649955334362715914619358374469629096197180714740983766356228517946002545286672913791613543770651369469784323235346008367492224646393380599524603487835012730855905877559424590796781904673196124508006855952109653640495224968477262782231447522115869755945253861782386824353888764718728004141702207957417475854783023522236545384335858887528149225304834074847018588056436829339001233201438937011239731289267745270556418827010243724868496483329042368524827646877353193797404881522222339453923203747009055300188674939993672254123191431133890922670297639833455249178879295438020171312038148299914322247923523565756534860236400998834484552497070073379904882643748491799768484670657833306200844302431249007882830197658963080832698013371657489872362337027839605073437291891721103655518794047925601544314342411828228991094771926203931293252884981232639285392015216055152242944247188384111505296732431857318200738828768738905867270008975803086976160322074683209787677529590971369755208958668580874946963380752995107806535947697456499649876091591505589778904761582400555748835778261995340276519615699416233427096146060672983499036402021511891740237428881754776985336462036345687178579347953645716012998732041350011095151366580042998993707042798544876875497322297524036567340987222020380455610834247884335213702458906973658979679523241174651814026540859221166690770767717417500434155941815717303661376870878066517281405158549936909729483967856129489560643973129349084576153861382021211149949561195049648372146406180445319032029842964339922875220956526026304645539225081653985464458421503749968454072572190535762912336929338727492438287340597565287945146184313582816738307851047462434453993755878900192440659438934407517315273502359946350798994436492271565976393228992248882994252624119187426235615441555777683079916995098962970577964138825981215852082675159337704890186878652979040097036329784765529028925340746634035380399947749842447405548492177855287352344963627603575450760008374273185371882254001214585611475350547561094467371485459010973381260420906503282473880634941043643282701441378132917159059194031839527711032374641633679681252700967877320700487727492837374149122797706203519226126246436225187340176248199312956968904178128003958927538633260900771224879764123750421624678378293476263901378585811005419461566569670375557961539940698530631079099304486839850318522656860010659621569680382982181940658455179677974554383521671430143349493454642530831704517032694767763023266493701073373399274860825245840691923874372600432134039872374272927198503462013851738057661640744124051308517846078389148707827645569432039225772327577743487673298446133500435099204615785415169222986730538147020826354408484693136751788177793602319501664006611914079345403447468786572856620528325111256974641015586400170891310214222977135792788310472351135747110910529380203641679116151988173838080984829676305170669101503686801593192148420414768938896545366151323014617961022996267874439726679560826317052614954161653090965867418943873111065146481492367678938706391114989793664434413179160634124465783501231854395221021889589213951768762929318797485165646612869688618449341795268344146545546550481004346716188893989751268702917803432371804177428961239985680482422025074421131031406537224955788886922100002918685552168747662828969845451593767234825898931817220860264031777862177334319315582746924866492925147254357221478271248119433226895914182009558836296095068476006334881431347725900704356520018110124077159981540845505713999257053777096419756246244271356942270950564197653109994258510988959287149929562906056761375877084085687361729129253676468316672806254580621861302232896859615017601567787511231835447868132576192507756734833495150368044462704559433747527292781302770961724753473782212378253284195093923889154253874735068179314369461701064014915867565954419711110531913515802858892177485316529792445637185861993695709256992523016031199697003346599453692059571195259149389945856147522717901578039585270749673994839277939647344390497843788715493722902235413639292504206227048135827316760549325223051798137360158406122289994167182762908443546198559130683713649340315835445521947899425339119292283113456241827145810234761577562439199282622079585340914691915106204559849972216744430940093946741168859503504862936464169382424860300810287178529516682977949923475565993480649682339278047458839478450796069648828782996403252944842597055741927094987330078203553431495614730161409564809927320599291474645159080728556950998445345807967189463998981912823307991232004099503727179899670642009833994094187980623168908357882096330430455051694472967906219039588002762785316349880690194548227482620670330159952093680475508729679027848912367222538051348281513242583559140591916557878348901554271687012327138227606181352979809312247339115512970132960537643836856058959488840514877849322204416783763747643448081902619710696023954627206554494705664546092505942885285631501734184261954101389161365235876848057981416370639913783840341010070715216368869016263122203070441076775340241578964008684711204022298376413839070994216952723636623776447424953750820394260691426869846948510432180521947708455768005301881038536649847507335072491778704604151370564117011293497025758494789525863511589252280888681503214254904756424413066508688468169905418335745800312502345723667243714009110419148059053987069547580818900745785952150971784366477601495355617993538579653441199653873266334602732101711597019373685512142215698161600783758234137990939131049428876269149468988039739476209504120985611920007142379973576323224078689634090005898286090265600636611016270861045319274889267692886038710969180902371770298053844497946265723070448971088433210028109845287090511439399863065440965355423970619186841775676318763051761410551719238859515981290338515395346658052402899090566490167566230269083489719360228637349344544616796423832249976459813097564924047197483494371513116196140830092648586482291709446554488842775327653217400900021264232150156835375555721694404333274780796332700154478988820792928610753203350097957984801848561860105000554838248884522390697363791249832467696113610122879918370844839487670626230983811559045338848617214067689965606045189933215523827561246373222920331205910647310735134068027365839079018899061164052925099550895685880557785805576943503307537967805477520214043570545131063722116821349032992584093737923697840349926012108351888489833299718617741202307599891990485576506325465678227614489245378412946605248822392400523547635269240491319914517647774025927192331766540415567056580578859907159967005409500989377844808463125347089743132052024002814482943639285624733335933668322152060954863012334007226452389015427048950378256076968955926373832995133221310002772840982440066727717587163180874104180298745858027856555789706135143240662289036855385705199032959988719952359977428723962430739947887976589857567059960562214037997837875860823080292672605543868896104947909008514425308263293854268835727281167022660908761863253346616308224592928582895708810653577251424363054510624889813831795345691389338189225868677707761571717431134283710059505555207551739778975613111316638664346006174177185622335427642508027600373040709626641237548692905273838240500241826316842369343073812781209770179656712349867378048268373173944225636778577019020807523057274829179299561379902123581558280223987912557959966057952724242462765506199664331178944790940812336741601103789196510009694687649833903230440197020982511905735527724794864906860090252371135918551250895287649331965232119394969881498019638593688979519102476096585645541369413123998392122269588951903223188366744841917371633669339802916309655912738750270507083985721703018717840731416470035588506758914586355958099601494652152371026041986479681099913786773659448409155908915261227906258745723252501576071680061660639584043777463100664443833417885134978801755434057654055430861542233387769781014857830876365044231289696522007280446235475489971132068215935728821737658460047143317061246303349665847581404359502372670056048408288605399884160130817851996033207705578826491989986516715930981920727650760317418181740280788691381093812974225733070991313792071759156381774655119797512596251498262613674260211957816217761712574167797747187248851029827563758789270686988632652696533349636163568472695256368743960831490152259597005819334947966396013263261754331754799182226213442824023145012733923009541350641347636287307990814928797646883768777724065396820940307248824293483235173931899503924237919109961435503464513111589866471829550749002832439377302525282908208377865305394930366239236508482710298538197033521110645546714100035728178572193331638357394070415697220774678927734437359890749306118785937736865464696030826411400318449875746361309058058564140602386060056319445721008279301922078495755098417696697386932668164411113894139931498350449793583372299003686422891257838492699254463176113136813046052622472659048421612062410239738751259316177225895269892773309240787902605647439277069312390016696065446291995479424757901207005360151207015037612712669539865413728691145150530836803653196339583555283260214630543016562058888976627183060282753696963147854993675074888067888749055355347564681407648279106020825839290388592718514162363888279019805132401780627872261040250184125011272920394679079042051434334680593166131517037985692969722986835690235317828580590503321356886236929897246236527894549032405781316690632000890069698011542748093725661388667880021887347745835683637607089214960760944193176452420107162946286293697164925490591561376347624660988806760570097135761584361443860220469130947912510689234579925519486138102367550620558320939109440755954965042255689990929270801121519251639238015029663504596903928750051915770646951291199526414227144390969296036476580710123127191637616826102449202434501659051607166130993267376539725150757459593128167109462647022017517827489652380527120443677991658716691262783349931733952878916270322585056864951428921788169362466257854843925419793806983720021271127076936539793883765522630231144518674428044767629478007312751688721596372499486362225375587228911970306130785472562333934769968596069359035178576472138855901922456018507697962192680700625522202612334398884842642629101718651984708727650006486186736963638866920129396790491758529798040395913171871845044975510252174638390752127510520835711918599071388033287052473951844475735183129968806375613183758563858514511345720381315295644099073412147085923126383600027585054530688102018928539894521876562547735279179817518824934955152225920932121025258305047531238160364512810676854725310496598040270548638087520186491582389515658898963417517389402544796918904465927362245203623104541129298289972339357625876548384512846070129224157545159123293282881305279551644691158213576748738252118214637371910389116394113068524275949053313702859355936767686712618221793100303023476613369946436271312635570572318407865453719723271679832174958512198715857214988244666415714329115785114437654217579280235806816167825393241865588117448761974848103091893133167921360584556474960467265333545665949567463104699556795559731933398621815958904766763582437733261233580828073091825048996607662992280238238683571512865259524782889507297187962028547081660213813111289167583943519494132549558712984661150451780816832134841911140047875000620169883412119624334602509453445363439839215272613112214485356633575785774908181416961137355404536510595782719390278362980700428607938079551065000970936289930402930678734719664315855980657492810315481043933998848860583411118939585558617750350571956339473421305029715462551948180365549822024351979778084021165714648070828471876561141443577894214242353832163270069535945920620830721807998999479133152579784312162874330774404199147244484934177424415197882639622917975036905057383801154161400215233323549719299663425816359611056383993013492694312169764522954372854469272262002859920188239936293941758353409343905280550431306117844203551150923474729553428223254335754580953958076658149355348556833080899813534588914594921650525449793223380179794555304976546521126916033456306108571036059216571919759604007732008728294754040941011245954517761136205576622968760302824606220486747992960898296457538096269844147258585050886979122853040536319700904909986620994983646877092677411068343734779690488434896125037866566844181219080308017765244835373338352994233037038326325501037304013217764060630058208142002693292088940662716575308712335821320132426698959285261561501989051118441725144824697892363385522045408560333339739573517888295321046609895314793638996896992228814980784707634708234934088950583726857016255303403795480015586975145788662438037955142640149071678933871472155559290669172894234241546696711765894120994916760116524852122143811406888987541864402481800078163840493487367933434450316661531914448221704073486618088070201097520353663263016411218363194635046180586735515748337123344273861475344717197455168321035578972325224415546957780625756178582317190094447934023311239652560482293812538697595972612331671679733806637465589853904912693783656972998314234442916728894831028772140945645470447046319619665482337629083271131149636240854127767629262585708927789127578961225010830131439951067144581407890488929917529613781808657864004766456440506681939565767307135490073196997537301264638958403979086510111030835675470551584933595125293116779939990165483156589024778039318912217705292767075127962063527581999106415285241721466344996479823713293104510095658021581039204356731683187870011317530277868468031749301461670391556387699408175206694342436582282611755340646411828026934158950034812841655790751031158385850511272928086060267276521763205063621856664494234386715768431516761300941824771215491287285632585165765287475696205348599851889181441082212927670568641099782425845682038919099715422030820472907498558777191011694634971032537471809683403491817284832335549476210140669982130505297939057248659802393142228221575070281636393358297344179505644715014435451913748764091748772078099030905397452045310614409825318958910355475838695776707755908148646889953679580180178857164175719242342964023334452241595048904423598423265514679885251208745630560717815712847768246579773316458881949254182039176894147786405701641952268900718685683801072624990241184789317165378924744596926694571591112445072973935286908940513296356373235415725328441130615149755691056578915200697882644197759108601186314673566604576553309467034886373531064838738533234883808920516515888226850502064314942543606650301655196017773711934476497157761358585297071120317116580642082301404007624008019799505512035821399620959770430385763025816480334774888211776680621036016493433118109529782218424517061912296342380382885836215616444488407442308780695567810226914275236051021039421337972835180052053082152924388035396335412486746040074086677945142865393598346584173320469674752496771937281047864551009789136284607026305639394461934958927255776311885476007678447107780399003984982513029157414322324014776169175401211187891402158320026289624416370759302166317597374259402018985966573356683501649977477664268545831947858162373571143492336141763589453242471766248758884588379876381694078708759048842209765736008271796907001196588814111807455168903826674376127957836782353166692054587031860162425546868671714396021896365126068536430001509698211461090705142994969673567684099800040565492464173634223776144709543186656045731067546822732894646644630248613851573394726971769159043297534903266841095207150527502738845341724946437045497057386407384544938316098514829911479327557171446537507151707142268559478144542761531735545156253318994325717907359651273776774868143045977811677397876369358650629532415961536869803022019906118208332511182828394356604693850635487283078005516734771147059048720689357364581573568307507847609205039114403988342477913737981918566060866048385916900458239875442667824760439189013468811234964947324035538670238507378789388718879483382683900912434067654154095928733840529339551701643352670968590976716661253559574478500111817327052017522157227889063433660077358134598351353926106304295172775962512658324076996015788269002744259948485984231839081001136434980808435540168447957838407572307818939497192910560322454942084828194396465964555119896904300551930844120900273020215796669873303267604883755861972854421851014618451883275931312699991152767729101377450550203467874435726273850075225064955378314806610642500094461446505435214582184024492808816610705886177512744341791835488341428338102664144176025240513483219695426462580458481168744072523052793686771386802490081230407737209351092557281492296142159559591527483149579786199534914719063528516986622239720200716195708984662469965505502962033743608636457382559150036038126074269157651103290289579633945417606858881012704163212682438291434923697826128235389191633345165995297010522488133518069375325277053995891667081917522402721238938830490738963793489509786929172377155686866485548485201238816040751931296471148940561964481864335658007109591075117707392474837666277903421517906921850044799889696995583898711219862495304817589712523446028948240020977604997025290469142818704074948991892716671558520556782972123638301009583663827564046121273013337145429360711165229445268466224654065296107085643864152224069568127185494072217168829196675505277830628928087417193571965769640277238466749852977729639310417856716205568899539414338040667849931371049690463279234182942791094401719398009741096420546678558479794220146557534791632204808434696686504345585210254451112444148724017463510061281961106054697398156669022515527568261445922098625850711728552054590193313009968072536154786218998859418471398316310500448845357109918488049196003285014438244249092210241841897013638764672300579596795960283521979864069204968259501362855777249177381568046567099685544826673075308553944631560644855015175115733624940901634425489572884950509452547992891078513890352105457185708452012846397856815834686839209178305540852206382331086753148398601570333689776063521497332488051567591891824090363104984557073387413164857707477723422811444559365575897004452869976773520669944030792596680576902990772535604493066351697734496234562192390635912385322705708553558070630932642246874622218191514255894563765352088618114522192470292949517180656637869752699241134292991830455895538807295477743925336700738050288151738005628371536588797344580008661822567576418660591494973105187108845155856188021825342549282883769342904083497669609625461184565695431825691963439400659111705258960796309791523625271883031302256018520746269440514682455379244739599377672031716708690550494956416892979024286288782347448908915711882300197016699766496069089784464899544006238261562136187346640836145219471825050425377210861545951112758889217728118414507337475420994407402234235950742659127214122032957489974632875018609196211941703557999289610212084935704663193196511208197120240847161136540202927031990093626998267639674395848413819715766283384419371986480912926437538390017307404074298715165894823723017082800656794093786396298007987859286798637743495694117433911311340404282973565625334298562318096354057998794641250109867405974402587291476360102884523608219214197003052856997713462995031055810319039605235835184252484521791291749491113167821103468425121661341503956052072050300447440292760897622157225555786678944898232643397784098455415062343638463578884760407296950402908694911792303779686860760486515049857450898197373598417207697369968101829997268849257881843059653764206000465115286830277415570557626518525320660240982704722374602279025411148048033629513274056573659286909055107981537251725016551161080989196463272121167229572332661726557475930972231928716065112837230016135079304934128125811004234822928831232646043499836143961820550724951098807405748195103482423476409243616697993565159366208336298993500854159806883017616521845900131897088464178448996433705082300400757815199467257143968538462116718915390488453157453759163904507922201965738275051749342780978596551465750535694038997213500475259330658516603866738212518552034887503621441454358524710437627939171064106301057780813541738330550626325663370131546589031127382209887105601136305825580575587799903449339294411850939521453870712259261882792110393569250336874648538510381910938912347328553169951069754538572540125502695425214451133431227333159371333875063649968664709614768421944351909960046538621888931277152324724619882770001214391840349458840035415527857424062366521152662138897781013200840360608004859298597764721160901891935108279799372117885562472603505726461125980411006114238658041240018751047260670944545116865413468026329241944227006271831704765650357852648563843436438578826990127232556421505079560692757079992387694422042316272057287284327107056550241016815943700199874605504711781117299325803375439535511655638815392759775436294097992633201030262324728103147082914867768258473223079852330636273802014286898223046651055444110768805883319608640858285845993926341218465081354448234334401023213107300565298171257454509159137613178144657540965173886306331412577282317444113622108911300341082859158493868284332913786005131200960187453329602533720403623780064291860879637578313418186341142253359485805755243733860335713305953098579689933261118800030091952863822038462343852607192631944580976194818586356706061549736708594035503523682957736120164576343688567996940686804747242129115136520442613314250833106687992828657310193779366061900775764792251792923600327789385937512206504285427047646505117549037672591001633773424982126305873636420626949329380382478871518309821954085815623176515603265776886950117068853359906933366959673469554470615123259901754791212440296485439866433070453828846287996942872979371334483039216276992293151744412712101412079457908566964141596235592698636590358175566273655298195727686559982825393349973921275318082918499878815073632652222503953033902915643285193243507004351982593041544795457660856049777303209188062737501256593603179059853516282232582757242482469274196939054498592825110349453489531697196285352218330047500017096246525537727438957384615635660916956861613073553987916571527271567002652184592835066793378816590469680969666042717504898366584506489271082856434042777932825971687095219581111841214596832950564899169420405618289016355041191593481770157161633863893808819092439330431387011587951357370031684958364041186410030039075094571619729127058831125262327050638553964194724660879774131628031225184033473435329296784442246028287942494956830257983929861686225312011416820317622400545835171550058941323704600363778713590208317788037393656085195114912070458291951303514503079546555051222096329342162035567174676650706687999639613531270675156559400562828382636439772671690664709838635105522197786943129213209261171248447810013529723236955751133416725747866106467464999857601393307575183334166677528769520593360451077836133420217018469155803124679696446299203917244602562276434928394199747182499343517071124091502739881235086529583246027123913379682740616765804719920003147611594358133181394414311397188474737847261446916920867730550486631713328666933444873053278695784984512256612890768740245676730570690513140467066860665274024274435193422213470059957818931277608202020528969084549902132755068848355569897136294271218888090456814559957555464489109489304709645568923338822546721866441763006400426791061947775102246108192019519731001519126500302496382848022765478202848588548299142082688508155414542841038207168841528971636230365485162955851225847794792227737692909264672550741676487597987719051900256359559719101076225986195602430670172572306830318870642302002221061226619462080192208547152170525866983951766718157592918938675567801842532391378563424898203091364661089003030855724604910208893666605128315543048578747343236386710118068315723756079274270856251263997054601442927595945276389161296094669690161679810037471013806427104890824493871125531631798103067662306961478009947223129690451481275100894217574511675073160368378575926531541910710433537132517786262195809406722595375891969965267348570594972794124385597057566302351353260247838229758307977885095372195774020164101151385978792530157919711957806792882294285960124294927379429721824800250859772892282206047341476632934564242758271786671342891076772220562949022024050107858671019311288449997401687461160405593592188328999081286416883455190193011902304998813232937890834288482453748409398309243453056266099182207023832885409417879994137236387223199909328484109161459427232278631970994497902236238911572471268988389876840388038526037371514493967895108136988211023807550645245020363935713429731901618858986870995698620686634340305842232000880840892122333223783341851078795846851211022874434612946987701187829008410082241215008616646553622802387542996384919686300672147011683564507965010120495755048264929669214877405208094100612709175313115724867840948545251483182453242171330244343610725457397520781073082707226131662574645858459133864992752931680618957201830244444514136191709287387289788971440046725218783112974296064701192038978009837938483589265623748961811826056527713425966086485035259154239721491105056042933654793252831330959735828560635436330125127008850945582809405462252479030951237896321305657822153136948348291262949960610666983733372875911212710553257719676125293919095747644868726872761084181559977351685941482185221441315183050647142916043837952661374796087426126130943699786556955730818522966590850706825472042311212139188777859636941883022627226931645751421644372446318015343704240735459631371330374343728574354238259075951313374457298783730541224153181726644437609542417917545310992856857180686204543265688436257485949217572498103037332673606350883120467008451926637649566839142643489673268537013214366014829637907510731128785229832875432870081002323991154488888150520816520540006961882112273797262478327089805240411988806526923477513742463387078643310453463023004851968721490721051305465893127175395083273524192579571875438355414483294086717262186947031962276002447613700357939026215882348675479895617977265837092886386802886890317666686054137033977349714866105215022201605542925578590612310990809356745401263767056909803808562334637825432228632877563072304222289065034364175938137043863908249721443117269996118798332611356244273234998527558095295244337455428016529471574512533149097863364574011139022326432501081786805674505747673227097964531926140736201424162445803674974267351278848301741226349509056280423878602129657103087323664996318792291760670312531062418600180544358621295637914864559920133653367709085320609767340580039417511269209649017045233898374776356993752948281803493337480900439777247455036494809803049903805207665099781069671746412323010447713053357004599132080583896292374946786257860169158880010664485110372737942205654777541459671311518185108580271359347110300300077717914602945642004613884688809054206665546182378972589326276302473192494150742924058374221958259338288892449655285009052368375025182843970506966952381227139948268712130585174902060139644713966990173317791225887920904517238979745699102662713602693213014223557088220762523541022515711741016551187891275053200605180019725867241315047475953223752411583984028075944606804679369487526918839883974383525942649797997570150452964947631644906468942652401071683715793070775299599368575300300895129912420363635335872066479774111598484651134364166118288038462576361784517070349623543314810891656323805871428742003119279944749081856040849218213995905913135884808149670550771644960613384164033189496973159312322873663896690353111237393564358973553280462160171859583656149193517182155540051722927276945873496441709580469339755393393394092241913767510354647072445572321468629434673093827996258888572154931170869395997023054323074886807461448966087700746046680117515787029562752244365987148278289624507244571920157235898404865656621941733969132519392892070959901804227594531414763951640823439550251088200679427140462212771817192694811376071362883182864968522488540557796509557976607210447738393395568839893840912089091458788583654414613509012940223401877966925402562698547461966840374199270510251364040007990983342090021414939891663455082505140872513683491335445146173346212670527854122331017837168924917965371436308813607611780273368036934302607674400584913931255056114241868712847546668351217517200433485134727684965792296305434753851070071416745467371245440345577751657817139342376017628857757871712318327553311465345839338643427799641845036860062385900176851727270968920791700093679943924473531146781101378148464328824092604373736817864704689640313792531704009522145603859330417871529966265047781282043258164048071847966018635834290609683096168125501061503539200818379703658694324942816351923714067663004683215252880030862152988295811819848164062547039747351772729615239547105608913115830399705454913404827566035277305166208140242819464175715897958654566807285693398761631054009578745286650826518352843294276849686243323204478462720694872376727450198192503968332453725128852256376997947515438816139772906959924294833049552058628010787412489514490759005683635804412156877795358386900931139727781573229914819184952548180742772640025058891964908107786634982661311331479824219367903193771335334271175662878687510558152817378245097557662776470299694699542823961656166697101048780754964055677252033370050358769981329297911376089171519858062763788976423365986429295010737184729135347306297326884768283587569554320990852763660655966733023060584907032819148222146955514376284671447490460843084261755598402262744511089111406993877928731351265634877400351541042819738757523540627907821824442166102477118508476054354807711003193238618053680077382875562490204839764246224926249582726408458253900937446590778485558557515921143672418927928819781561700719022092607830595089199354910313024638371677078685205615694281387527358263946855839908581702364008905260827325287703421932317457318745883385529002339452053367747867269197943011473307117811550468486027604449883663818357098973117922185297143318454346916079902105299499798967421936044934323685064219614751815188392481937593038349386688708618184901965764079413640949701798503762723311909704586861109959487974448299822605450302945775042136199665110586479647803355095343430307812005557240558015892153618961562516228435398109492080014259492142402626947585731607482961450461018269087245093378774543619848858112450073976945813290153492946003605641341796993322021966628527961562869921976513562116843030014621102128224293889505421184921424229723857794370462740283445682260804882485937979576708263249891816560863914465681005585118972932441060982482278576192559743832532400921835484783249127817713359335429909495554011199180694970723056082682686845419058930894217951612585992301266717931370799955893926132289786984351862634193970708434297598651256779226542767563420616985068098295324540152503520995106876111218725576670419393884689240629680485722711742084626634747676764643914829288806164121423380309103199831957123474012385049385366467002556943797783226345071974983312310514404496792486520602860952904279836641267258894401672604518049362458805676549697091873296532840030587288868996965801692641551085781711995144522266927369357930959382190594729454175108916664167503165120974990624856165516327063424661439504790005937996951341402202997794993696077918045993257910929420782175381193240029199245446439812102194807829696277880680930032214910848035004729591568004939832375520774031255515935979258681113224816224140869191186365231807093131403569187376782381101002016024051637190380086730597222634317754906525752656740553858519652595605462036913180917178603523698154563156824113096365507588351261892781463006349728526442602894610916810405750924196404804385292583693880628216302496818799228348006080110266296130690204216835159013554139683575336780454480611789550371702948225553897212168970393525914991615647496711817701486980894246985473654658022677266780458376069338452605211005920789175012260843032657254653733427544177229924519414736167946343520456857256690138356640058250517491231171152708100573643993193690634179539232185594560767026221429038949768990309014001144139055476863298393788114641885992302577342525681800198403336069112817035559015033434741570545996805883127319724708105027240582304244331670006844968732767260871409064763530417464175827921850414270588328510669059365703698773700149030663165121738631831009690058438846342466493652376414700440286889550918821972990684619849801522595015027170951913679534759890461316215639939667190915834213942311611732532823264279123369134209274575567936027877255053642115029555890087016776935647228328631219344883413512385739226353213933115018067788308219119097536079121325300045921365618450153486581350855367757060549643867962441725716631542240890709023641508103103926156708951014216330286413089373243682005689609193449462837436469745792111188327697778015144521607291122038615363498827946001372472039897978235451070226627441890313653657319735937050667582362702856065926475110647778318710276143931644907521063472953745489629650458248257935464425069111590711150937963610365601818531551739774250117015295809123436091006625820862518283113772802797557896792745272779959928756602951956168724026361091727488388026083566137315417425558571830984734154110770511002450156526421156117899714847179051647098865577196462521915089745431939431760948794942928546141696560419995482497136390019983469133161199514519775178622714558350501438212097271232613996907709100516418771381949670913262690517306357917801519595530899804158297898247735741707284025881410247595060243159276845799763138751197000134388197301790609006060965131115401702408522221523831319791156392439423795492681356076428078699013749275955075289183611093902071055183135818958389808832342885040601296696077705369283827467641622438075810982482298538842412800715043211828280064051755818847816365737662202271115146717532473854304108942190476726495617356441306265401299921567664336549779549585731745943190657337622877696194215130990756763845946776543123098429129575164262989828913887270037249494604878733165894899075529636197068148031277205122519800734469126536477009652845337577441812450963723509851240151117555386550594983704602405185386346939231771408027692660647946020511322293093835352083229725586539385454140292989863884067812927409742437875035866685219273554699918704364386437300953225326038400716679693439608059315115638464689649602323926320008065704757648515990978222857616055540399093151838838594896176630811474276847790690066240046730273116893602221723930377844839829619482841649039596678362554177474923614617302131565175103920972345334454509879347346488702354503518498920189027322759959304339620275486597977878982792173507567704826217987579262266846919896902486862897930021970880019762427846490001398508414945666262924965866038322656930794483641210061312578067881551187458938499202482626408926471065796562624925798301683421366850041054994285481594803673933661769006316314523531056399677241477445638390694370126270912912260539411178421320685170277779335720435190831697847407168092318407133319099113968546297357252317210233351175035959148984101496820406964548295509126384817246910784527632862840828817937687730526387858698169069487711141438098863316292805898497369900447066375059357133836396748020723138593977217311612078326119436530751822149614489132492947624208136307728045626417548152697794593609842727612987448700825816610068392024085639152149683022389459296741314581348244567886134375816630995586950717278238308513483506100522421722253985173844689564297215933447253146736222394004213810590097027666751582389098425127909802089229287129707291777956252929395670221494352294971656183911867204597653409088629566252741267528469032113479883859052229580720018744856013161396882889496265682470186316337803134445270251414298985231780086713445784446737621044585076575370496712180453397709871258227994236537966201051783576892732640258166788906488533487472519761014551522634377324528783159018454213376675984759587802745593736926717118198235700151022148812896989805716886189056730229011706349999801895703031799838352932705586311716517620201843871003729813090975087222698285248814746171178869515698458446182019088040237442359223766077990053399396912752997818160482897427091856068651406062875499425060154770196790454510887960996099901759885809025639387494464143676837360846285688723909558359599850897668941128252160466369133259838519659508102803958371625306555402052787021426066114137021943398815477013773884735533958752879128425315158393837815571974750671057355061434583171756408527878239142173291569252892184884438958591299226680465105433211946153731493617011371490292795933016101203635418482886979424239062498099664843267300196921000155700373092128853734307894357229591282987593248422538898525001882993817066285495715969509874098953490541628141970540999933776087349216155145471450926644200649656576065646474993881940399051553928098259213015497777317545901249033945960339789158245311097275270636584055646521995989704999797336876936629113766512216097505715331616438266698557971949201854250656493265434105004346146376430819478408825781136912017696666456197227036643667020971398961783878803347258068848642797000397498618761379566519896039850584780764063736974826725921852293958554687440504786221759562497567991105184475050083843536794727748782307788599945762988749061302985969904814609293895339593435527709268817412830221290209445454224536765572913576241415947698559389412547012484133179782016193175468882428780427480230830375851513315959307696398284292560604319598698761893544588043400860101270984448530355639799776285883854842125504208621922679691962309528342164695834970871114219549679233428730790341799649598537662114795860579996622871889003724799552871702294391053755419905138183951900322382395893308545687313603161974493759039307548616895405090693212407416965254684132380693134295266820936639683796918904004471373812785650660876779845916726553975506629221484362368937147376835954345848586703674813617910460782225046068270821112251725047891545944095748867383951486573361544181970397062652707054901615378502982932365163689950285815314713912777411877320838190328380308044670690727477374377704015826897202445236589046040604410309965322490972569195148211990895210791950680241093827892981647336304310993234099555731222882888788173341718565613223935157000600903375010575718791160368877569478244683118748048901697753844792188468808260840537320907888959608900678524872831401555138698581168752430170087551318513915628291770735681922749119058751988228977076822109502421120891695387729290123734394753554882870058603260746584820960881404235037399186756003661797533363146680184355629291113489122286919145181311618833197947714532628001301306351110363167671070753322718367145665599853035380434941534791038661396559107659706584118780240073126169876107859659659281795013030028947746891662382476506396983180358583931173053932858816231692707090719006918915103303335993393543710584609626585218744561805618766418648767490240202571221769413071932284046158784475664805095522383505746785139357211188177693307741604847485053274732646049977770712878640125877110940295214968540233087895839266224419508182891050621165630364932712844892810208975703867456759291668851797825306065990230916268554980757192699165818959711049342469807464497149457491323170600267517455458286472491790595281215735259087295380751697744235543327194844377235787715894611322976184813425757588364037427090964717846267309853572463984560673709035383914881521997135877454301280437918232805242571830571584959506705774411166066238574885258669064744161646175982283070108929680294645462329463037038285783866201970298940524395112722912129294250133385318858652440334683884537858907324240251298365980254877688546808412114323436951515736435630946736404438977325534204254768109649168503666764960487247211933540027501443106546549609692766594351648930363802979337824248041965070060570217609598915505057073730236128333865487541687003657392512383487490543459270316593764361233110881068423486771949312647291700004417830762073883285786543730910758912198303994657341962522983016611494768461871875336764749136778824115521390411271453195720561733189689961699120456312750807690925642176356256730872245224287293886336664912748212150227358853489693918115989725362451031869657369625495619963962401608122753557432081038073510465566637005006854658626898509301704751032375615693284023128537678741973328737193077967924275844921897298964654788692940564104610760796382154937711474892527881632996606161905858306021405791530014757286871523256257256788917167474672141789375433779725750104725886139317758562261183115784108933077692272615594710378377892180852337905016203933368568343410548418293029680592199424960305727713555921755974004582321675529327380537229543855620779636893184609722589327929226965112789028790192282306970795225911495919023869562162180594833113718298641805841580828974317220764131903921993609357036211142192984418030744213510257609514664689485717246568745109023383087460906586928562185229243869848201605313328946271657108395831421608232226392020090759088783810466717752122222356218042700713292288606969484734481692047508782457509961108738838408998797340401305122092761482807765932743547053342576373439680503950961359255409897013402461554192490445032039120683887581456629980841515613129008779038235650143511572241497599948330343286507719563426198261758824145798504148050919842053559237287134802387486153235137707269064139492179413981031810453248624395030245308014273345137124808465118123606286752252899174917175124837892392870694491490160131747098463802923422998195152700664939818594827583058709446235600699191283089354696886025608224804263849232672568403502401159136605024665042127891590012946193805878093194492099437214418455004920813863576187473067290886292850169801481426292728288112502988597958937370878847549058203440362019683059109530419246170415623834172415345224264735737643270240161030793060436897685452381856351626557696276140449059409149169140720295974142550143263125976084160537411726162667713384705325812727609934417308462890625068664365131001183042921861626809350899337313714961097382191818394073670986484313081128852596302521692261375761036581440316821745621604767008498407638155114187380050276778096046354676221087267533367455419559117729682476210718101202189903766116483886219001461689186227763063409032815535583817662642584439627522635062659239115814642255438428193173855435492943071763144772275079719042552899021593961171185677675509624510756291461636571748838855262936034440659911933082533846603889361904504231313718489043600433733629522218311943282772902807732945474105772307921802996427107354795397564800619262291927479789584086311865184698897062740584111627700657899870273893595292519988723165718497079283718785095368714334370588560578435361006347499455627458088516471184340692822555787271124208639456580637779455500340129438961704092064744139943989363477322817262833498922528823424489736445757840270064167848698838755041978419411418237444407928124676863480225869239644883170246263009885112774377943478375063874356183823789592279553557273487557203604550802516418348512096404485015001947570894732421978892222040982248042366382044233796179802879842553298704918328775478599983537470701915126970733982009247500276115697442572529648336879368554047038955937826500871381139225841536160763828976388653640113627271197474895223467701092906173888720463182289491982530680276437168604790214878465794322631449777094680142329467276018749139435998654246877133029761059944260227339319476728328300327839290587538212288792990659672379403769948010150087759465675648357480857822544653450087921993817366999148825954271696675042299535982951815191203775744441977040092329033694716061772609099284874312803709596299685896271399846082080594326188427769856495217694048060357004322038792927430928569735762133107496462815208691065208312800117538840236548849126018302876653716649583986254511705214435596794487121799759610093605241424000278184563175905031524961271039745247979683391823959235139500809765625231033277001499603994143127878618694745840112633592426601143816287305045615727566508767828230544407146126492020435185090183195354165386037333411680191113212131516391931035027728475341036767343737210300671302457632266944331905887192074559447831266149988834424479096179917707506261994232058900578070020093778901951906417502226827693839115961411923117187667553824633261794838806221502427934115889760627567081367431310956396527625598227642138885783652120514855652691038368752233715439527675490854603791553051867374930362544197469932023962785247404962802223093610152411363045401605437733226077880360642380543160292133022008166329597570662123616851174575490012563907949277424855574950427916662996962575977131692334008216627218864973902866754949946242357201299142669367499222091225190436893167899359156377342107122151817073391543563836763738705639550931980470483113139513772207831915171840897801654714629095888316377484409149565660195115991910036748819112960356936700518230630870350056849310781180252305392726794842023634563492221076609484142113632276821419088294121948552673827196994212643612717242967071044227655386240142493777117593872947285784899424990533834340007348655584000445889012814769648924111140609508442412021055821542462778759681523806754931013213736017426426595881450505267060182596411850171823595951717287909224576121119287540917137848081491945717931659939491599070503389946501753760078916538796923541230418658032830050803714364273980499579482544479054455652548563921960526605703938811052048011985783044282027335970949020396900488832234166817158396073801512747313814100088392203214349574034459816599596185940372698564440545538214639454522850186786134412261729281423512375387856167271124359549323609706697628841747968799820218226028441868018053513871912377731234003614474280296466606442078676342646877310812669539817408888994947976765706723966426297552732214045980634363857690607796562615937838067269583937613854358218631008426535618671570295779446867649943228732510705719073740080568373279001282384320817668225187632491896142603609328654376933698587337010987769846477857584665814123361827332983107289896714713174367158584029779383265675228984150310997522509879915179266843951685747259779330084175400092612422508246661771109544560258404684410447652729221290637872314900420845923839635214573104921761013000073542803764980322248601093971604168196016672237577147638031703222668698215599774602713138588955962219304424460780764349464818889640148581715933433441881450423628181295776113597339797907768719407965398966895021946193136886950386157208197627241336718680592579691505340186893853331464106094367259620746434889635528511948998680417373266497123119657134168725294843877835544417423842128206538822245224882586520075022558395430061407549037318030876715279635313345220046599634277041487252945887934708488660007088296402208258784916557457753961579046155074369373513745896085885485783584912995554828778839903518269039842424499678678077319742892390321804950224166964680343354923465705217578335411312372526450834787747764853735217328963757286070986339174956802902415454625785021194300415583464012902205368875991928432302196558596525212329238545661143574752342588626748831658441963883153356037326839690947549579317395411977935236223019150581711821372734327127742956109294287490929402534861871294140851222942231856858759028506146327020319269217389652621345011035984894573699943920122857471235391785165097987110219500796616525961917979213618276101102562916488026156236641876528479322550145140851210927623011034912534098215786542825811323385637102910808304910137007373038507618587237893337079462946775209630316357090953415580577075382639704950818406271587943802647675669419739614602676601163866538010010420074299186568939928836898438689118213317733714408825807286339057215758107341153538046308499557648006892351551418737910247393570502330982008158021506317643277674055294587232718491835895175251820556944218049491505948102137885466412752743583373568039310062211249061077304341170303958674358808508388869499244136950016393059121400006128787977553691195251084481443473942740892251193184215366793398465592595186436168089938312272377733225074013178604652638223529963717420979522434319547739628002098297690272225396046756288546400782038372670987443238019361003367806540002464133851833470654677123759548136499877700195043088835069296023083880717024067126889069220263221164304632031289062951124028158360812757469998598398019174788344225103343644810972141142655109717030112778162084520702376561564051103024048776594173461547722053603813996908354894383198987455492058965236710574923930856599421695727570806481829150721927675971112663298287703007445752055080303661087375847130234858019855704910026923868357369421275850726257915057251547499929677094818554033765280764159407702128622999733268582280966504058398685859563398673496561135859541935885557521556144191093522548857764199150897370758595330588014131910547819098521158651551782177972792446679014791299977468239433447918497379994283581943061575520314886742852695511908267742250975769080911777519177210102786670426492619037678786550578200731884002123205119144023277236044818439248381343745626823734993874516682254928537974269976126218434221113135695874005767904158575489028146881853660983470477355838422239919727746383635900260114637248070184367878306189608036641683052192875436510718339719978743148483811142877508729848015019953334676732258371670163217102021766689277081858533068018851796224936203197928892067074728026762989643381757324739906117085215607656446843667097923153639352228537956700275558110339532125534358009222067320217201140275893222040969528271181992527915617556911210185225666668758417634368962700037474445020251927444029029483759880401650556382871351694038283715932676422140106975458847225793993643440053521449678711485074089087098084996766664485140992799459493009701988399075148786446186464944582329659886004941126515026786736966538352693753058865323840950438660585188242597680834881120742344665006459126784827574020011179457822611886146562361513428069854158818861642681755518912528124557114546789078625304889260333602687538505548191026590586611868493796572126152604896029131067628562095313532963152741053764607469187302388526528010193100183483386967518352551408383574236852135653112791735177838386462713307415972310068720363572746431229488729052530706308369958174075142851976938663333729139977094320733341528644219275279968913052493623519121860222662639693876278520312450376348108165580670494338599445738672221790814991897625419889322686270271227184394517598770645949016704387546346491609889531254188628655459547034017605944710902851655872939282824825713495222739457135820602767587480120530278126610025250921514797627628301651715967378540951881828779964031051750983876320107885281218097825358764996320082348545426856181413878915816936306985710475872080590840648057331502323211547907709434211797959863290296250032737667816060654867251124521446843617103487704282184902249750115888095096004949880155991378729109180821699750175876565015534851953291797156100512441924257361778002593755598894090521645864234395914603908353721566022131905868854925945371323861236892855043985037701509413809541189684799342846584137472097219870459802779172105051806502281533540907754762463787643852316223347683609471783973232419415377681083971943983756175749797975313462963003378672266941932523462731212229133685007805470195664044096298255463404470206156595167489812831865065367362870388839480046318755879622965793765696394212722022951770946887006406938178037704982678004316490815309316285505844387810463485402654299166927991361635970490439072518946295277938217456786271991240964657743657953173622915080796637050647872536683010777192455474068530636103124798354762090066239031435467299414978753954885709579636257264908044833610087789148611287380996365673267313663408886315493435608573164317074663580661486902784743982102786026710491754258180807320833567190249297259925647552659145696573575874327766943402291788190026347638581474831029111157322730890585636743449206374362498660253791759491522737119762166709681173297153155951401239622596658318333087077165427395345019498263943536369432810101302315754323005992219628632389377345480501971674424172214217724205684523716850671048758684896789976810328679619757665041006549213927891979645089488579858446660175813154918108018578106497771763254883856031599746351863778908856538729043035648617757367005164744431899813623407781548299146064667176076807308252609617775560591491513963656544192711021355338498445312588727195229602664331328557772111150208758808308702502357009722127072447678381546046652189903424248057039309851782129012302548513141500845040117483399451674166868019521069738343174366891118763037456804840606080637252686428838693827756810232355045004092178830323289693060722921508108849968338607618408672280072795632726519580693407904841938010034057866269148226875917272384623492463772351093525861069028716832242201515830668392161472196348478038591948155706221229634949378435605844556333483187092789584244400375286928451746715529611762579297218978041865998391541467000253093099365032954736438013287188707020461049382088456688557923812951255854062083302935379997590342875180790783268398983347256850350678152968736876753538587427104624019368244084648852751815698950116752171216466870043325247568675527999221752286875855879713199500419038879884631855036720749531539420477883659598175014745047740305712187018548227818356986073929542732038369669333451092352045475056870215986401090462475783330806953118166727597578821687018156346358276428392557918804325855330958537342850002049249233352841058023416177860641830625413952954446164760119993785173220275563215791005860595548752801924714094936633649316887514374571918238976466200187720741482324113317776037742967705712977887653230671411934723003928649183815814030293555685480726260797011355213590450820774926637643354674807236587416967832527935199196169680276054098293048547258435775183978493591202495638641468647018451434395848234528995935578950260108641854544614045547436774232813069919807863840929945707157136144406184395805314450208354336281712726904333305210401168472749796386230681799899531285410523272379887389370266612224967995423322808792348429820935906053243217131601684062915776432523965644648188556757351715163645932795494852740369907708657875462489810834728911480108402679264869368168839913887880964467495548781898465607496295206675231527518306524756019642570885120072844634691698279956556300240647998663044401467639250546754829583034154213606381821563728335740314520762110294894085150603390895629865332517581333857558036819860585558601992445538238202683214050858343635519564681850395650639541013000258462081826594254121849402964668912449777510462624142037064810606503959767316160738785593867801894384892981307542226532122737155719050196668085793099116744129092789379825638773110540998154942597212162833662927194018556117570596404513394396117853298541683216710133354957451378285733047042355676757350415127424179242428801144102721163573669101187467683656315929203915241661334871742614559176555710279814439061274635754465496731153452626749955502102596807933968386436311690609378936147378878632634484070353740596546528578564990173071834761898355193514062234098226747806461929300274958942097856664133411361603403096467916545522441223477586249550820665783646362575129657007587841902787390359640003041702977457287497444059443960036541655238105994501536363670234609451500165751541866356314853097643423842033072226420769523735930167973874449223889407625286070235588101623292192232652086134987812908221032070622797027092618221684395897395757029801962866026507920637811325417739132659477020739266648618002842076814745094029850903399155787357129356468827351618025688574774914204380548304736932436416526173177660537894104614625584541132366975044635531167451134523240236545765812112948885598198404336502099928547256801918718670583934262847105079393432366721320991057734423339436971497162124940104544709834767400368409641077280425148679902873683996887241511734106218765222683223320052822475293364555095560316146044138119594787003653229092199857802782617812315764083630898780709563127642658958896535959128963072151794729188991169408160508176451984572707863065509355375688523456064632311747677579477267025524537162172906746157605741052317024558050553567123199352246431665671331513402612637520761139933574571077760268145252119910109727790184022455082733698012624163516844067139224146819535318062087744840304251599214947962146310573362179351878776129183744779923600094298722809265167410121499425004325685190201020260999801898385794072637537208644097538737382172899968574457467929211811209689247852142210368286570799933592949110898576610250680546727162636240581907223353967932662460845185829057649420167168619947170180167838913496311573480302604068703596038931400073202819135350684515582914297292368344918809111013122348443447843764376536554230752245599762912629929766586106406774489374666819177511297629311407952009159052443045227838973726470653389193976046384314001127072418508306010371853323788294915928748801677858299505502737431458504785708630963979484867302642353015927989022902241558543837160760657790839973846996248149044444642840537052072843319886981860289993368198056588459926632569094856128256872011839686762663652767985151059352612491445358921437612253061088485294742670179151651151732520499616326384179099950246252387867407408198507839526936397390757962276712181556198060634332884671695250597793710102012689180255234365221959641251583298484907603808340067854751690691101639169016773425811162047156146366936789016334623509778236381889471675769077798987630298435202774977734023619924318060467035098564748218012138311332291376366344794476576873353177206991369152970140829043984216725824505683558581948281887581096909594021446681178532575986050463652878547323774320331714065698144435728686826936558923645984979948110994328331434802501447376856376707197067656085141829099411338788290587311827835137320642093739074552024472989490575073033225721350899039206163795632792795098770564173547316633054263233243981737848938822118142216517696159162410404785890884161570151088710996875892800956794847109732706138746759228252423421714757539556888370881138916034509878515251358931393181117530056426878783620981637846315529917224872504813339318424100328004856567618522712675893838889462945506947051384777071805113649818354377087580381908648813403386148206000642541589774343778222466902628811355539771110734211715879777783417205103556891206396053236405552677932403894679060543049461719484712757264762730501442747547395249797430683912697323130585180269948870854402346711806997939142707979798649514534170461517768697069110079166357354695160230533827591199836862698282403653898566868436629123241539571085332807363232763645302503970543081727572094302052485382359213707589924367834344181095297265072459816208598971226709280220014033535152975274749323989874748914617630293104581787412528241098280033797372681452309935236529663575444935833934090195858840798416621328032758053014248831807501549879963995434098583993491876648932634629570124277721100893657104207320256345464463712673138274787381651728421867746309680271480663732318528779072909295479746494386506358544151173563236079768513769126028791105084580140179807589795738818887117979880390905997892712421771056551235513539153545165777361142082343617527360806676171505726449853364373051407935916360235556758867694454951994366359499145661323877250164179260320404344606288281052759569069574505933114494232325264639997730131027576229596029775718840683428346509335009602256999373952611782475547274984829970242041370479954436668827745914803498191707581991821691796774300996922845996080342296975513859067580190138047357164519596233740130324574751894188834582439221554918457976204781313418975355223076865067032623300285573214615071761601826094224570073572750689522021559452478876295737635210627099051768716688273339544040544306132974922378269734167999456648935387465560404476776126866463007939050973958905551926530069504946786506260323006667054975200276569460962337947946823556756915874822088440799540125977446836226677313972250702507614456863667003460532418598139048667060575497582003662927218515925047002732231968250083503577669196114869105292797070167993664114028551938721003523932160851682380930128961967426749818085341314789291817320044837707408967788313091284476646185605445941763241758995351173656153460902896377502412227961013285211709028236006840894927922818227021550964860037416637351574215448937613433829882418772197874311043332314835894592280336791152786695585971672110103323362245984494726129942089207033672307907136747102743243298817977073673919070569695739221294714985255240445434686348265024597579959695993374146021638540409111767979895219316465081998246633589101554792865053336605263461174238239009912041760077742381341197478302910694477936893843734079271842835299346545147702527205372426512860359901012770703604536662441546985023000841036844046347752994255550554194492440474390522388437313274521960076487919571345952048759583035055322940628034723560484320802727672262503553984691545847811090382983455729733051298020670803868868258841232513648107538713830236542484150945124967469340702328138454238495791966922393616394223013992559773727839838739449558403307315038198609393485910035526380625038067232749205706466746848428609600534281410774332425770902311036801169425710229904752664644006613039026229511573139633700174844614158235211038651044097872251800648766368465524263650654482012175801204602533457423639962014625761599184740566132074271783542077474694180751742749923035347438020211146588015795879946297917136228532376695271646288629703832953679211715300545025323355150149885264970822805107763178634378714034399042257654893076441957788175719651489156349687524035535350458576406780978863863593011038254979150027727332487323120281266977511471137568538865811542042212463432719766159772014386556199176358957774537816511989041487540550599099896677325245786588682415015444717477265960394679823922996505100355799990251964807150318117560231982784112865399682700668002917665928880242331787713065432793577427229020089964329283363736811396191437533322127343452234189122925550517444717732670296753891086728523377189682099788845635664457429866554626133950027243977052180897717815664384874492073481318229532914019522479841536028292899362742400803281969066266751698033178941395706725574589205116540002845322286062191778470597294001214723763600520586436350200782439077183152035650647257771092619505201056001188143614115109149587586983842067767351979465509835360033836743736290855471691969749756251913362929604656211655638372414909077846350188641176718765274842900615249674010620149248759548920234622810282490204387716476419717488896481728754287389285340324715005070810403712270683270143097856908117768651760608162820685902921721709722385886940740552707722977515930217906482307588811702866348972184661731425720508639455296614352034043825196882904227377066581282022904294849577106959215457357915848172675115996290212096415802786713156126793368877664791151880580146294180551338535331617890387003192378242506536074608739260280815365222775274409075738837086083049157059907532906137409713384574311696690083917381785426676015762877768782198033225846714091367255224763813080177419002666206554663092551524454127471600188360431427864519594471382688370230939055973063427767782284114067823327751069089761103377606213187198654847928594767340041106179151519463632717273781275934879714754947416790964622598830850030095589392245728648934664024702544453392563715287841084831178635115902213059056604610162262968349036479334166335253470106383500639683388321835841435674625203885078165650378026677030697411635435154234218620149007957137292371260851339587979644063156533514375770097292605554456190077699950747382253833515455466363700485527589696360761640463367674602192248456063021656964375680296327251798407506633050884273730442262916578618991391849368311223605820238852700817616376352492013841295094834045097002312537773885388289096447142804842156461744957094520837200535339392195536865604549292371482256928269895052779791260847998020470941128660251201271150325971622196893059395438887563419928277990274726262068297172229675388748052809158203256743260685734578932667805994307229463607850846540048608136640844602310203583877322862480751639038246133666193376376194509203978928091701682444382082558501261280735206951158771335283072595184768431486483504638659263172354995299846825493948962786607798655175665362311585751401402057219738173616590621808538651189118241190284149035690003405653500024550684006053515084124551365068190546402266366858088557568736727456664227268757696879821685706397079110226663616079542882637273063047890268736908593352084004513709066864836487488772022819608967142733121039198320001757504759829597420763646805241477384007759136983074683740323076428812678022523509986709024317532498809076860641178557080018331679028889577236421577956131340266935762142241363188629741666580975073832188893183085617339323504610053930706665923011460499439214110406367616048884158465330399958800854953736483516046414644777274456200248670902479726844147347920929249389198959273084095408479659557837640133456634492297178373670636629838793005317636420748149470343455348920605648383816731764457370182683892471741867530866218783596553604959972214679396789165726575279244828114134870455656554052854403871743114919609977404523683619118812545110665456377321643855129657733660196581134618627969641702784257937241777724174071692592657170606539827944361095375427006723459704512712773487764747499898272258230078695073504193014892476978430349531230624773603016814681245978094483149130945964536573838607057565649168774531895895413959442858789608672209326041608627240513041485138609107713183897703891136700162836168247054025366401927874495013667522398351982902788216548215885686376452847560897802938796367747177649370951061889122048125435145483686095848942244097339581841178380333173812805159578902376237845307931544519759428276510533696966095492398751200631881502675689427819856075732867674825201277257418526918613002299923840822595884269682143125503987418777129080159979004415671584362087877404390058336541194510966050729603981580842653372920833099475346542766533319452972561650149669634209322679953060957449565347170248508654027851400754499001091997989398854014041061704199436344066523827877639380149561911742871576484909931969592068793145188880604155025635675067428344208371940919884916436526309777520371004445947506332865152453791466326794874287170843184166849500422291225991422281457058227215743164301917106937409334288745527684868368276623903717717639118872016313711880271366124463036749222662169699381915834249690612638584484709968663255394587519582700473564670967617909251813761657568047037804309631061810181162745180795064764035964201736150514792858902323112030431298513028768910166037018189594439994405926087790867915626143990107915554350305430584165757473272635027049712588308397666494366384963253892147577686190330092648527373467226565799116107614837983920951585253454653340718422226827856990055427647528070892170643059766897286351847429482450368143288611034108981237607574003197176443624897546254163644104282604563090386584927281535128459048707954344521647368115641319363113686057437872651731995358029030908613663996940866269026130421334110591112499073938333528253748472548015610606783665515532947671639117621573512796259989740076157219276486758851928045321260435006950518029626531939698794043573134618714101946613836584798996221851389160294065267823135718781978946073396402076033391261614912755778248403471399625685658105410277821029645334423052305796306136935787904851773120865109399051778410261963991324065917149971315956133514223423249100874980385214529499444537928966168729627395706898741005791137937570965348989916522850301586055351524266050062095548979461078716536574703631105858160784466784232676262215422515846274902967104808154349719218333889347411455687603528417375382817718571861401654739595790064270847583665533601886598923328446975066135555609236488665246584962583981450837122504053874526813432399139187608975787682284060619641437846438470236736616316138942046291126100852137881332988633912925294400248393532002691664457428094622823852000420671231020937940681282019948129592044327478592417388791079290226024237947222876990635524360755200224893864855677970029452781933289238044145404948687610449933904586524675437380089435834118300462278725021603301543280737000712954612287302105297934733235468186770951199865078103177272029817895020114194603444391871147008892091430489094460837177956560394219862236040763270847658174878297637349092642180507713876525613092885301003403569944012216383766839983669145072737825755936935153043292801032788460979598063284050875791128690895990137531570646263501006667075654968736689072537397762086912638406550643382877790792842877216140565553904865835172012829605118963584789584470292290170134520207212966839293669533372516444265283379812370433116459708690314637380843485896503148871580294494837588226580726096939310114111012108423196876939014568338916082502282706957929634302409268757483089820162718448518442101909708141703507265540929806213174752976314552518226753721452497478690878339200381218146093546556536938062313509742283787150665086656611612769815595084280093192568318802831230524733208979103777380778895539408830050757777066193883993176365804570223871517547985419192245905532968113216645911214317118899192699643898242444028908039322123424585569810061886413117729814563556461588825723280729146882619554232219663474339261597982727932253516504655782845390772227958773072619065031930360989326403146572367590358426722617712417715923771825035163791664931641204084469373237751452159647501603771793257755310629029587851408983138428546268788647092464875204113088770372099142400104238790630050497408304789246973701046161910185150473232064099327937319355041579928150291164133379060273708016049275223579088734036421346116046263655808994463871234303482957798151051154954276818313705107998072018515302907972055351848696638942191782529139950052371842846149843722829477750311931291006701546640254591169203459379981754282447123703554149467593452571814308711627922996846393066139921494925520556799406176697990258127336097421692727838145953051453627917449089583521193879233921467969275425655576432323321660401305843273142118877663730080742208245748136649394518572683462776976627113930215999351294459013284101788259681755831933231752946538408041080699798828316222356942959397223274721132835914923297567124224140684380167858207193288701314314680625172794052581471989350232490414279044395439761662949133865542858571894422097475410751125330637219158818402059482701826250451675712170778664105790701968437489211042062123024229235132885665092616607294278560220418224866559465189888706167235731169331974090289244086886463632969855257846802553975544511642714250884082907717110552899471538552672308533840651464522457902126466069564785267030022691458541612433490070649735094473382918446855363297972604528836693343845338426024720914845835563042880564203586170228184404622738729696101655599493827903859493117145097803369250803514299032631928449454302443548788042164982803506544369478719992069857778311056662572566834561851949911638363936249128341956502239365332273638134999024240888379794737417997873011044924746984025924990989857389768233521668438544651726663909544473170691525439418607361537426000592888873713713246558584278530244639461950960351618430011410911891944733104749664778871700666170402662222817465456746901397088232283706386161460081467840390214137651924118418937311094407166829158747111273384347116810839360260087279824447724792600303840189019407473151572227761056533145836681679718669207076563730005646990154758938058908532912556512813698167637316071939791043531721537364743702140941628566537081637218884389969726308145344596939851706333841321119602389828190990978420043650551802608870703676696797117182590487489714647921536270115319336471154153327050091019532214477129770381628618340278538886993763239470973892457320539776313050131816955177359971545873799066086481641004319153018913339244748801750898058462196092369351245058798247589522470434736757730325832985943039933288292108926163653515163295914758304012941062713864773412544232717509792103498150478693837618532139778669631203353924453254024924832070174949248349921873547885870761181137019075367945802367356801259590092281227740806821716470689844866235446770097507484191124880828999253030453242592225577488777468699518528130016229037649423850751622150096362052139760563450561439821346936490295986015333909371029167953588041066977246140298459165008866997797631554938119554637314918283555276324722715969269226830441939034259614973639512493212370902971402238453178019137139975986846256493682295807134738641615387924215641268478779396408289805980154089708443652064464460982411289736134391095370563011749566540451459866974914875526812504654732906908478559749029060734777724140030659330759073459591080945290764378507966029396407059399116902322184440372845424379065840501668155188213843537359753956595468757167213940835259523797336711273643173109822010550758142122278285776115042675849417404290142905927130213745212454100268991108572793434485140050240731934102473636058307700863233129579085769121876375364296304648534264294100916739375471155880020080325762606558748966536337444669421243960600624382411232784301486676988919648813016710152563960066010996925455337420322785415288767247670191405838113573922614923686357518602768759175445078203068951834592196399346175905073529429841306406156100465328674698013982582711296291658316015939124568467423074721586069579370553606923361321473257514593825846009424793505200676417815883594170798558704282059545276763664651363054153542526664306166450977728722221974609193565652973408129136192915524874013544547688412900367468948468049158571503580424109025963017330378663285408566380064502526388642789740516575420446013892181427557004403906001095632285755253920735269236760903679379389406648174542800506909187123953633222317169162641647268988426746170709566443395509929509419417576821536479979848777852884143058080035643796453469448525682593836286994234861554358769383478489645055139624114473909794355427546394007446263707630414501134996554956344410259798423847559282084177919029154651989280354719566673982020689192937926006014989549659627324056661640155433826698839410375456408458206315729238196260142926153484554091966839734072406215000879824908073472841238070310254390494383620449572972867627242869527252512484332036289185120534781705340694326252234107957474868689585303992739607104919888505147081558486008440243007144629542065862371487520380014177110845955499689933566938713886314702425671768217760266963072220283463266808224080615620770255236525803175966083110509984720890703537490326151347133084162112678714775403904736466686120150693268329580930974325872787604234298350343624921881258564643409742933770498006110015872419140152942764476163679459905846193732265050417781472487838283185061629739302059557409993794722320251499990661232794302998637342595353209140688198153165097337285633607474379089060717915778994450507416706135434304112390276810212734126900159219586280294915649535498222341114956187786864602287397383719547449331624332026041915654448004246330170778922322121037552571464827289498424745282887667318097661886984161856050049146843227696224102510006331512094222842081612946224738157852753841696148591031638106538345854433750244829516172221928332921954061356436134317587824247963068414916002661798594147578276989482027561488704384314766359177482382429146728433523537449985638611787730562362055236668920297126425221437334409782835207612832563867276963811073132106714398218325049129274592494449015363211850690020901738237427567444823471490903416633316232586948400827667661121359937495505489391994127089372508264606806380125474609216972005904799340817302561689424350827099965779947693810213623502569405103273850363805973259115697552528624161905667826893336502692245558648940299747571502476062114478242435670025535980517348418245626267902445733249176161767843708629113219633474577252151167715163024582255550557929555916458014439479260642964436105398048671305573465028353602895847214125986468650247660421610051692942574408507292004952106189098808553283953234601168090735782713783658454715531268374947902707517484126035567444169482381762643794099101713131399883539330644005024513660372602201327319751982503241746893699590303448483572529179948540171535688359215760118988412258760153700756374962100838146072040677209164058649766313619469601372220633024842807255644052169744707894585544796821739926667093766590001033328113729361861505425193876954929389994464363050278714834459956152116378962983135282856376757876475185735755194660499854496076075912844365762849239538726432132031171516058101974057858935139891720209401076507272063178422405353264376868177588013179925553047275024863111644173216843053947369049834111143717336453286252052193019264934935817471843352514748842948258259347603795796231345286266915952893619236528551345810115581217820572949258297519443839526305861392687484958951750121202814717361526891017331241438408542459454775211228110323202922268720436489309445064771723624030472774146021748729322609382615928360703141041821523772919162017302283489931604855032518765678286546307436210778222332108629359780522076449816963546790894978588662385485253905368218666653866599342130358286728361935663864497035445880460218358924773484279807753982474220066165775513419439688738752887142660973056303360470667583284365485033550005455288053605485439364151896435188530973409311432373332674890404590792952833153044565428572495493371162376551172887531065498651000383170308552284849960929473994773194930090470837014984373889766152627397086784402119078543778690664670953020642749992014405750100077050301474396275780267681073062514116656687708049381601005891067786671938030629226626118645989772650726984612596400129398884683016251575924022213618578790545406393684498214446685435840790121374671553960082229749324836971322016896759368115502025815948574995109630053907647765594679649707953620854709601081299314995729782736640651549617916352450807600344099301681202040320683868110074915523757852272450810916626400776901756731553390109086543216019117145489798751056004372997933296475312250795120765156089861551073000457042326645064886523088912691666594097770775944138888278835317452669425084839008707121255469455047674785902042123343563269007323752104242827054839817859040812394388872422367083365699767247268203332528012153016924132954647586927921245817349864295908318211716930349374495120506619562794509063852579661381128039558620065411983891477421419090003755409865835767729050190743818819498138031643099132233871058999829829310074714289389086120586016550840193125683361637335183205134190613221567757839865868097216559428876588129107635963478001202235124824808575998331152597007215203794243734301976661477191206552051912351718213522816569997464210395086320655719783483064824411967495082649861559555188187413080082887482722305733328921597206904067787838203588708914262556462719931541864570268320876059383306972469479271926809379090783832831564491378527508535041650744264830669789204230118780057110695608625950984531275875589984470981415759284708968469435554323270555752520999510640208715454533633640806719110058707188367609961170791853313640758839373308842951362502293954061398619613014420589834760156687491042331099983791739414154491382584274191994352805856344183894261981219332067278235538416450770880623877941730088826072278886380788391898290229499179332544189792762286817295489402625580878933897279098030231800652662753810877699848200988750468859128154042559896680230873270586173309152840812719167415909884030808241171774745123382243399434920171641852752224428764643786007965773499747512839835890336836534723224027414635511289337778167447592691297187653267557916309824310371319912751962439926198857147323946362264578433612053264912854156784839797413953515118057209149155875096298410155032309883402678047389660836625872518441392770206808788705278144330345488753417696799906397247805971478682553531716123602339349756794584168175687371189976460704771638250639853118443762985897820928773741116516863599398145368236482911322124709106593825021116931180695493795860148609809758054188664032923564206669414153597306325919512518529680062347437929470912389167461751759221032289049957106411691532435440211509701631474545552627799783842083758253440705612175912132535540276434923920969773493688011359995028981274029119432741833581396435146718305678567341350663761000844434349405056406827718844064420407148471004345420020471108325392635234537590222762527025383010147673622649511221316465434027577601098374221227551372528189733178454753732358513937957423636846542247016866165852759651312413669162772859939810106841605377613343800691598473712591203890844248359008817751140613712744911034547422102115764320862654012074811398567325356686205454086458011661716600558395194325096928383474289541963113108386964763550350254781231265352359623501507822083374021619007051705786584865351368754240482529737603928225494721582886631135469621642324017408021431399344988534735345821830018892498926479127604853493938231349924314330070689822047709041128996153745445998748558598499519343531111530122420099227796399429726270861191383171831597013447398066955388942200925402139863364681095143054910284087417251709126030016794781065521755838483638222291239682070980033554635693963362078912191444980193606720150586259104948782535261899131794276166051886899975661476806489898504255792726573566518528278456578238192362742523345062707112491116637015823904774955254664734500305672185850360613671183296599282345552155667934998560031370953294666288920048892163210447766904445315601561101306542198904577557192088069005103581982371494831043113098254301357989675941627865382272861191488740183674051552916859316466654743339045542981733762604570386051792008034628112813860614531242762358750374626632423086129751392716666021188704689436120791566654579469506502315954567908795731303594603846677837680473114977503698009045150068475754768597093797859990169317472891255721870497884487982722179032452448886843100708757150496119559643066523780855344719083679736731861398809802089026364839763260647981400453609512242017160518323528868246869216963051880227663490359294421622093559535576544698180587017336144610659454256954205889594321311349074846575035435954731582432226940296408052723823637959615745934963947553492165907259535558696802181171821627849753586571907829892832934840563093681233143931330216516085259685364200835785839370406188177267298674256901789968001672223799991057356358177032854036018727606880980054897876315956418192189343430336759548989124767201310785963703199954679301440116815042295076472922978114319026322678366588198619168076335904496769022898770531728755299188652591531482246770120629724762825448729079407728475753193180753744881752154639716103318287216821938941068727229300843777477327499917912774458949902130111396096950078503612279721134928711619820483037248788667958942774319264003447588200454968799478990357189022120589284597352976564999534485512160794085058716004139113183366271849780285010829798128585380115090426797280973779577620429203804907324585630990404819186944730753161171810239519669347974057795660901724054212925848415694185650062788163063296367604007739498783458092862913461666615612877096468367862517956864570163249238515048549911457533735784889025293316929814941616689380543798860953136328009463163730190365278628095267847571283124457705240787866825997080651156448506598545990260088342180478684570428084192805841730058024856399102167521533030641840654629252970395269765838016883700880758109833631799270148347402823809811640707339904708718319863479191088062710148859499333874441681797696748330539721975205716478625195549494221292949694370065481372188636474214019778088249382737379885463220377878637922425230225488268151493120559125246844655994658879967822843133912600752233261774883498592236932460902726260409146152165340263627885241632498537329927691380580824758575065599758692092226839118540247305265907596992050451526169943846676756432181655648688798237912289098294091329666335941297096513391400394311935123185450346182327520221923112431036968755855226262675954155853201096287743432174688161237576770667108990542954995213532645598173325725586254137681122010386588612344378379482377197714983780883280628694831515308828997037687297982447521582418122173341194492411716906150447778897571255463545220892768800032322056006449544346495803008603259668877389095129783387536461834285282073047383941034496485199402938943679570920383697121782441669290331091071036095841624696947810375980551387579756573851480112605892928757708234460148750577777638198105208311384606770238315466805091115676780793688433020075771405492821650477921308510865375114164936448750471226289907508969103472558184583699837757190763783472510493630979483011639935726216635205021964879336065919396534811448342559908342150759199281282355227742203025309778350810126400288308064327153708196435686142724786719797945626942007150799389799867084088048918974737772404606885544554076919937044079696650477815155325252576533427618736248790146710496924462037714517473740131428944997147063712785691496665712865486449878670038757032101901244953021130723089079764830427222853784071568792871600946897418606993416211604758697891716566872004764426293218206368722670084586890205139651946465644906083230357329574593296578450346130461782885717389797786472045938314292665364209187648054154634929515092586025928224795532038734979489597422788274708940563659607076983659562519261498363187185795999750713169832715448964078601973475810189294478541073671674555131979816343773979064274157171656129021649053339185911422144354711470562255874980630120653002326021850771218297002779861024259710724782892421554792490306131428762339628669815391247512240272443377491496393146715745665012909499811829064043637829959521003080735157172650168612452593085339225760076623600972491715335632824813980122321437494417965014891880137347821726040392478466549544969339451356014218024088580921866301048148007773022098073230925161346640305027375409212370290777274780674790467795898771068072654418819887376981210470476870302010972582513512331631834933780595079638063387279597802078608387747635427527818199750963945806294730916326487312247981532378094651941357434415201505156283295741851444968624338622345499574905695641088234475030634282352167804358070402046143810888597097520215476808492624871496247619357420763436896867114178594515261815550037360596359737285126415228979734300244594614935112748857215528715682871314644911857048360104380298456568611655297542234043468835950162259855670991109233956950017857683717592861732924469263357392371374444200769470010639644584249997084152937754212660703642163013362082116694584684970780057774345865452288674386716852473504161419384184220221001135500358359177432913116446547729709617328495806307631782490636399734015047040884732903172097059567894630198735689127492202688356061256714964834498898825952499838179010079682329956989460547035968559050674935228976011707737200296530723768765472168096595845556842406346164136057618991341328437879631935480544791125332440518480782185739521362117804771132560232808021454827252542633821857509638251838737791336209671120175305877082642136864875479625458327780992018635839246223105290110692605715531572282692413314715712134483783241494742174207489316946621786031751174468449431041438480345023413130755458254649203815941427867092950423510154718906768474858873335922734169950324927222622683645694137769635710114145638630913394726552485416213463078027394497411011638581035418323124702640559975188156369433528658753000422673006777037662185542306967797996061031727323767034057370572862365562186884577759006839632086270573218871610051762333643768934996704512345208422072004518258723448213344290626905560562043958215363148148993049294190212348712836760150519712465469577904007768974397908167462114657095177863798416398263910333392393771897910812773260782716494887707748452905015905835755740736128667719242692040650041146710104721613088905038686919326167421566479820952739163838908974259907574754008511013038420410594813929057131758665555068154659869204883384977124919899147188534789646524807248180781786565480478091286189219250400781266833421249206208896254508784194612004432611230532494668838221622298069381599787456860966709696445595719256313609093215246835056954017518037690016194848793909731122789557255651515655686762819857743521529300644484856220091993476948114163304385377206967415660211150338575629980665789217139003907600476337779218126583329469202298893605393852669834377629198478741948140238452677759389178444135446027270329635554112144060896616446294014413118096771204758195266426864381260987432949229430022495811370955502149661777318844494306088206148866392229005366462035750786940214222062954033833579643981455839399257395547617826923803982701348335929848708572521983944652141005877624986974722612856805260073578122942616327981517744056543628135237909368419830028858192275044886159594734981316875380913734766121686212202498120939374497801531613327254944335610561721592060811247412256737698834796983664857511674510919093883346072048447506513645794282913656751301631797598331704858386639666889552871052025466208595486647008436470158743265338985427479644392062587676738325550324631408812572116031159334951203072411628367417356614619340697616539049120135917955121834034103898519726930916948505223016026910295575342728892140033014544647047844775061035640145265767565180101630810608570676861800570563496879850518625147057793840222250218249075078132598514298551604766529280840452519740547437285961823572719992569636296167285226408823058659792601724947810587435948468318141422703933696544751029742742289986526373745734902430455785671027962854695011550560924843200899065980553007344777279203079875632751537887610209043617600886164601619031176886708359460262091284764680998613907701947767772105022744928962225355881258568295706485265181660586840064656057779445853427244396564920423515699841710335140176006099321045474757443752463489571747195377630057671551968440626350240801925128329045658656986289499844232063599353700615440206548757739672949723682109482762188134472589179535782571528118569739361238702007889184393746844434674053679573987503310796638130745939456156816409039382955071625005226281614306933206564926792217494202342883183062460722998132944052505293569909939717842838671770193989328814803868290346871297574900815684089267359429531700451196310856967785108507043220737885301110013614288700562579075977909727760527728061507650457625100618912695840828742679537344016509613536727472063237286936889342272492312708202400604307067348217919752513511487853497958934297385013674734663226304323779810544629778997157798543417680083471992879870742108683837187936160297948178736530545309324252607100372422442350707428481578974354257617766308969963997248920689672687244319940198475182518475407686842488813778337068614332697963476546427110028241643537560769239622331234958073703525340626529343110216916929099518976393113011152085787074877981951628048448578758744187548692137003071453031367110048013782510844734724582855189740126753403768063381848658288077884159441174603695778946162213001169579302565090428877921559217367416784137383823183630681443133581937143412228633781719053612148221956617487171284276482652989904184299396834287932610292111405499336887226198189750056911967422435729582167631893779012538275708036829773250761594574432531870812872926161524167322212162991440087491227663302441856954759399013338776241081156836234098325500892153424779461176886165497510641087467786701180383836912486589579535902753212976862165732427013127569486550754019739503433797214626598220669307121734541516376303201978928709520714089992936189010932210177704962325564137216899906541349175633687981707192897007321370210963573463650131759581827892489716745489819305189112060123094989809621910255257276927213400189560741278466629720400164451454571879196641791767216013669918543644055432248595069551521611081815914760778295940001895699455983011872018113334727267546596343500005151749307642016957541066285143112111356712599160745316474732206978566768410895834243875826534653241794890839229015337349612027947871557982179056351120473527399829550910286281945436223433869821267074269808085411069179559674310659777089538643462672340982968034701060927807779985719355736680991319812741430451466332435027922898597484377215003884127931026362692879226785731659254819936591440752478525654600961367750647460155474837982588258649301312949119585516360313555000800711275015521467605708551304410353727715888128137210385821910966554988442065112238483257993866886687663080396469810840982510614665871052378745148587791431787698551885211520581799130762724317397146838229551444052115063736459509958644126543338179104429009716572890916845813884869545816554387117409569556134856999697179369318596137012490343368356173847036696737644675660449556241423706492669627513294568417616742338565431767464550241605108804017296420584909134970300912710462829526666203801038836145932636006014555212073326061848029320605371067955386468772417507563276212786436891086553545825167723353105872588410197680412233655620723485331081509968365598166206098609362694622142342299271748953909636459883907100844781282865609216060623383799711640540110119420172257660095519294335540956682291159718774816812604270382901487269478885004644721788936537150117402951534947668748055693252603454448759563102142029606426118156886110747947749611461370514466199492648716351914834302776339863761015801235942944047134291710945056889311151307556936041978823007416064287028366899380920947630945452595838994447396825333972039280205442128839962911351855764256078836120833769447837289771888272219623398323590905194408176096048923710523592338466282578010833083450437069598520727378121930829344108586225606429531022411837218939426883993130620917090985436030813928026490362518615429741649249871971058446850236923113962040220872276839788065645538856191003475140426747644683073729321972256962802289901954432724356626569580244656981471080843926532123368791016290131125672088989503346034663875325550670366472823786851226425227377361087388004587510823371121663532710673386436571469973644214133907156730413130029023683926368558205489506170981884351761205633172304259880881354315777939536600631734664615938421277876393591234862425087545647009294418630374956166599377863134768657445753463027649526823543069145506936729518544049369317695675351846654698840816799831199785669035142150313581207094113948526900863182348386782979681669055398242279261570949188347134649639140994701847748303074560882437874182010780764827357652516291092150949367544768923640296643172749874370892238001407260067853751880045007046080221243297336336391476749904591072128935032835143383276462728325986377936945881843499110548364630158738852345998918172587274988125132190821989046602390196398015043691964227213768615918522360238136550804724831879458213822392083778204889243466771725509892399155533559812235344815767658188129577306113155803116527588353889446724916608559061423972434605697491050702437712511021913553085183505695096798463883178535259147557839155781285789016438457844010101833868644259482559123047383900073424446845026877604014417694449844332044182077518807542937666073185178430313103645806214713875366368451261696645481114967910187169086383308560618497086486992833365645009571179574197441775143032571370724576537558284110681860697505541138042375952708916759311527318035119914556491456478226008866008492413143759998234274557305369730623040853721045742457150966502882091021390227445373934430299568373128063511936326108861092102142334332647657650079028592101372704819120662095094047484887552958643776446332687929736000365617906421818820863884344978809778967342537633905088080968575853752944547702405546188025825197035514330958941375863742562527551679295782095060588078933533853934374580502450272408356566010106305422281310844825020498513778094544819980333393818221038657063936011328799130163102903768308950151629501661835440460379565064635982490506966488205555455642678459843961905426708325809412364517572064997842156184209661262713940414025320699434446018725709955178291123001347570440892552903086631628064469790852514728158141191778304807100689640766617069732310089526654680215021457106558647180406948350516474373523775775825103197610449447199117517681547720551326543988171105586438682823631819714853735387325479728087978762426075342740483500050671891880933179123480726343830063996346771716116851163144539999312321185010005082524492632112322483224625374247677327946670951518749534402811075145292746554129512390965850047178534379500409274886886454147450880162841999121452471137683923032356400754222017483151819793058159724483978557334442550093429066073931874004606313020949922712376968680996196145604411870294846290484822726895040323756335805059249668981396540533691798481482026713433929440218697299290514376247163950183893116855369887277342730798683835854756890077986505263270588430598397470796019371630712168693473270419607999120116956964586373424558698006324347137793615929108100225433482116998965280152362279927387765682419759980840015557949183144614823802031722047208357834487174349886333682191921646615308317044333636640158680525676137565292746218874884407861112236001648401233016352390937306862129752975527644736350133813254970899837882484788221874633333954181991265884622446243130224343109056209068992483468781001459672807582669976478408681551745011590137443025198767363368545310194786016507093165758207220500082761125437005410009796937047634706365675766348810346240917556890003252464268325958143469770620301176960919535315201375282571581064718145042204467434186846903271722948453649373931158792300321326979871700314440844062353898295176163953161922795884723879784635266421630127310956205713146575793376508041002921866751990698253083263338311020701250883166875248060867566469129195076261783027198161159653560680757165227676209423939230789896029403341806343582718070913710634870677273238100695429895621761890083869356514604135692927648036239921484956538235986259343667646614593975132987497658427194872474979883100805933756284942139794296698199068827691491533092048215988892237109752735183047399661399115112569644468208801840821051348631370293250508242945075025986114544918035983894174751715731905638877074765836775004470634018246406230220202777101703689444733258023635551607422066721500705133341757850898549016093095776097112597670901721603681286222827800404375326060857156025579964334991783439120959709423613244740935424475015528834255376836297970276400449865509425879588757152038002197029902502472177931503704285403722202170869676111524850071300802472070932991493198181647291036425536486121128908439960335533282638090117497507531674870897211797730579470597439501637496141436722264877828823163363365350271913121470748677814037097771866095808211092064224689703735453418161807171731633802883448143078666673126024841709430791933619508091453894274062679664518846217269771839628572230978482369881014209416224088128802202580820999528176713044358070190803987872527907913643448392630483185779868108340549495460171635472275222743719181985523980593464113818475731054678118333716007124234988107448081235864510721368261272338917255356930790361546739973874911334173976985626565253968988949442490080124235100795216794063600427104059552670157736613643275908130511309366180725061217816058676657594971708649961106877916258748648443881813480440678246548208193098414951999674993652874739371077979597517238013863690035621681215528797800763389072406564527352736744443179326697519038349998234722111734788991634795733025096288942931647694440068670290699712381257582326986605452980004345379174381537208380091677739435249274206441585211523865259989075629470106441681905229761441873828132040601554727734364124944749540766638592411711149812293946217139564292417742271705316127413474598154658082504592191543862893432725525681915992976558015994053664251213656326126502253023881278778859252661193807153738424626293309176935811156664869090633759169861014282618601054658050071046830312019217730400585148763680835957604127976811959873760331450465891527728235205024060855850942639910299485315958822230239020272082071067025834550338641866277388979215045532646382498212919125581151311020071429711947098116670968710366256411384718402815435388318930333052423344017966635845937529288844465995873357076764373395055380536598987127534233443141852229232578292930912294798390197978578212616503911426502871471279847996766412070632969246834505307271075319624748661277702634132240073298105299100542837151337266946583049141701777965485056658641916373531719898443007784846118595365826694567505483691109647749995645875760049483762113600384019353170283954418705649681597678487972633779476128668113318719926136815010076812591014143949932074066620862983675974632052342611725403723658433115485285468846415498869983735399163623534929125263535318967648544851939257677753306147977564732323952690704604269359078053312447675298509984403186880788218341932932152052823461702079023715676851059704689655240125629463988052729230466274846058787458637242337828016180878911544668364203407585743644235098640428183826393837122824585915577956174935230753393817405815313039994659759158149886876079477044501307125542938586459215295478104183100546133721825497478265901899897830401361952433922573170026913575514192278871801127474952426682260646736349818142671660616861592923015024582535493128177547151506613862890600330876602405447207780310321297453370597036850668267835530828222717308886307689655010331590473117998938938972462287923986084288569768192442048558947690615071815584321912555662994113701255406954799300004453331278310009985385321954671189331173444278878554986859293033652186064166934801581501150465653845848984479675793693536351728893920796531206554282671850110972774324926255512227157592419004612760306156301756227057093731782720484317362146501142348039435238144416510904266011171756571642345531590290569415926307058609001884058763165162100445831535043182832881555055084828449740630837730210337990797142440450289755224669905915173171691616608447736127494426715668376630429906527203791338034489312234449709685444239467754545280761043624753456804845174177780504237068278137295424172674851656037539124873533936851089427364015787273494252899667404000720017810917889554435579959624275711684082386386541315412150757615609593512921743611708397341981050868568065168965406173913343210135874255468995588866535744931829088250481368639267721598723607988240246554199940280971494837689584187912251390218038419851443876984574629718934029806524515965793599218410981915771732449239731887342911162943232229566649714112094564118073474941074667441066588370227019772956949457439216691064459325209532324838938275204241383270793131468527528992541526592417837539872917103526566199449461954825633866182460891082212100086662782526495422086425269797583566304598252188572101971717921338372359455624393863585706913595382328187523407740778132761153164127857825002974377503166728878956003442076706738392944566127400910633185093293739432580773926658264593226522361495028659972089350893764272751168723916344706170616856311798695841930250967150869994606203577380733251619522629968255935112262840768282177297006492696112800632908937976018039039944052889371485571617184301454766265425936916812480874470979998220211166362061280229504169192571191546010962440926490517871857797468176411069039737045282713027885196008223424948680468340295737281199723646964083879785566054047387998758431959209700391981667842744154369697509182838033439345184482823909916249382577487951296996370834680919715220403073430759608499061594691609747616210371005647572651183569922989383252859953485874377546834397868986192408018793413721611558193903586576779376636205342719323701122519376375567547657820280607274891778562378226105728101128997393561825964495126707524755636143303636014579021639662542337225961310636547455579940920149354935906886357358536300531713311381896900514615269609272612404068864491323698388484993210439444406252830804820659912799270952857705113151640790809008063517182288620495636922428720522010520433367098213192929642319663905682172445421849070246554713607656791396555849724426256160360592207024851005502276091380788980647316444931365459775601581043409306384536954778883907806091548292090654912705028880495965904297611403118137390881307626558142789455120673565351297777390943368273031148220694420637801585579406052813705432886037242886568823325760653443308524437885076952245183226457130231473030063130996584205675884933067594504727340646638013594293426936524031324744021661547472257528349688857701460966566385981693326220835625571435585903611304402108837919713461756568718363430291672394173604714850777385746935774556151604351815610381418814824071174216123469184307095367564887841215065468357078617351382631892473372439765690077126307149974042136012829820841693377294764287060704072265337771041028994224400960815681588737023087128808206663067228045324944852243395816410339524820027577754786150377821183741527641103303560272238024125862372132260573303041391016211132601731212012729933762058487391878354945713473325308727274523900664602183808030216737070680028876728197592942524344372933011382412151871453126427523169061312703807992264007387884678813835864178483986060615694582063016915397274225802285527317615048199206337686903459663328858469036568608659617706993613937423888022463402689165181828511855991481845581938126009064183261477801486100342721571438724806769904915890583995179232426390364655770092732995155385050512255782494645681339831243142642177227231861691868427341121604640512001787102497214215645759570046224021944037148552719785185769969004513013017172614733696387766721717936232732098836524329501671588362633050148375958880217955357063890815830873514904208785844805012741219160405088527843724158234126259010930974144568614719707533754744372245285615024677929264882632252883765350129072802003091077692886447658325966569489551456894837112435319296609889928073203261135651705573414794418388110018939374350658905974609645512436170920994599368286019909433772376338202058514734267762279741071996966824087081997731948278949293056338152917676781145422134902839022801806386646783308510019871309853295326661655945257745164923772111820354880309608231312770475060450938908960984224137728207518295332823630916976069495793803013134549984380997039033912778611381563357736975793619115601701783684494222120452348674937463181443026778105881188906398130771123128820035103492937446310207869925792631269886725187882954526744928521392802238539699482735704283388529884920877776079772065081969220331435423219390863942970233992683683691312766831655760175816586914691806511548172622182516409803201241946409767617833155273001901756889636041724188956195753640564185067244690375355439901660081210062860163767570274959947349133991911982982911361690846896251913333021214544035980629604722685576420632000407189214847864069301653000192153390299771012236066141370553156595481285182872641825872451034508459312100132227340298283294048800199761661189707751261212748885879029962464656580775660210608311727430468304770450398077486149219820842229924714863060699994481595671782917525824012689567705784092296660660771395451723239935432092493373113863543019661837646476254973242773718270991557505447971422670172777050438160395274680584570864833673841163998889706701677074843843606608042782714631904798311836636400957762306504660647578008343881910246715991288005932155638136807931117702875697879489430615996996488806187156394617774347671003090196229410256402355277512846830137678517335683039071241941707862391450915671813897469424631982282634886841753165563606731026028523522186422378621258663376972572380330821896389983594840075047574917098666510920875296232571457219832856419677736702203873641874089448221130029197735278466263398451248496690961162159094280898948426500997911554728122958103322848976867614389229883151456708557345011218905406597402696774990793477902425238109165205288653919571490563424054924469209455422996665782746374254470069020686326438030642623156230229698815308606708944765440311400830943248166313501642377179361316995988342158327483036456415376155261560656409359071992998627841737635562047066369824009424333102282464719331904763897046249135011070245920947270131552244136334488740061471106255452129171755205739935565653649159718513577132749191158690202589682924439865546787435154140458045787627001083388821461536046457292490505293100812069633503323808176363553197018389726417342040767855880500308019087958095134346621646297572189571330073329902244809483872785031444830934020807636733776216044602048237572728510956122105440575448436791457569833284520112526170756942214527471887025890274745336599445700829658585072299414772683736344016362440251481112477438187174817930520458494779403101524722613171437145173895126626387332824200932671318118486358982821035602168957033571837696567500018857146015316164667049809499838949546637831024618762515910581896995888014381325856073603056479126852141994654665044019068755475934322627608949574749913599239358311164891604667312957418409591473295465711673074984232212687974232856613844788405683029186280231483301810186912077644673751598497292481552711044044929220553243166628329583821081349770710303002726233807333891924748496939167696802066189884936599467837597928514562154877598153005425710012557894840552383223139218992284457854829640293085945120531401051242201476191463481242569382065125181632799438318171853599022199077197541083922188430806767859523947554321119594807242828561064040121444260680119887934788729968924972718667005470431214536274153593438164678350563090724741056840431169215171994456098013806584234300060200464619044863537999749378509938391447373597721408071859802696661104631322030185642104594903072161048788302603586130881294026109269924035501665561885901078888122021363272327091927190812647924871137756857828370362508243652011791377589121029317800941141086796278398097094032558913449238554230451084364720327406253835996974743599818147815721727756557650379247890519410195894972639994548504721295211548574865220333471555681547685884647762183505171522016527816760605390599702759384647171252955291288223527147552372525843732080177835821513347873526882145603673578474587260306956418531398926681737269569402958904471913250190039288186130414180583558288098815572948082595526858246722785821502307762925331855930866590213449270624084724632901138898616092308217502023449419810433329511863090874070684502895845386963504497161475085948379094505622421859910649462213610414974065167420453483179979092241340173184623804625426150515324031989373807929051487659254429985901655668066900961954388345198738697707542148026720786344535124865551131424653266367193006161660864844342559541398935088095349158821127200060284665181987313843776051340989334302725861018040859479695260353654460773568406620306795042537225835878986032587667598900371551401186432168925718039816349198151765484699262700890648576671120565183398330578960788949039575768681044620055592574419368676316778860040334931617918181859404370440474841853654747325784449806473927383450771515679129212519880683525496977715486722582051334495751977500210907940572574242300980285394054005488642389487205332470371890793361403721624255323609329549070413891950956269563152336525260543171001327245308032028782831621850588738932241327545234367201210754891404326105218409279328427010848464371755773055413592914325895504874198819140761816216923893451353065326838409838711162221367658892724803182799781523105366224670287351217741292658283203643945008488906540041391217575072858925096611636419563505286050275408234038937737293432828588360870134983571492928742891666690532495051004709218042161313577442073799359147644605095654602194811524826130379536855913565461986300569332639837643804647410933766772080621790380141493377811602616824106677724196965616140468057938594623803464858924963728091597858771916066483102112942332128870292294979161258053064948027408216579497553673420809846979040995470279720554506844177656701221208165975429876764950978837181546018427544475851498346562188086392590788223642482043355820152270192550598739640610669677466344447261159549346355194110542848441245665805005509397150133368479514903994394832608409861554425521434624606888859201158486021952255930474044163916065685934371855942265878637517049439008330808789883407224475660890311569294189961657866591638675942330077641607406552970359620415911349813593109587519278231063647957374804913951188642935979789086644506326437392525482097961547833103700168015814923679264209685390367473148149557796604257961491666305015652868860403950441156846917826559290819645072337814219744987640141607148004537673915947037763233774202314121675841630291430365544771879069014213613389983392898224646608018238916485882598452234969800077826159143873921865472453858911381324889061659054898553871194492259536393983116874883255378256245935873974003775248206404031224033549271704444392619376207272196090216675181755906578698450108341591258499546739993126884035860476471127505566675442563375444801248669379675293652071499011919736027758237301483365510927792781366229151653241600294386690206008526519641060130704855249432234589776033036409715886318091602404255616001264457781859826383830937285141303059012341683611033470570015291526289786467724564595226916449484605203629034604858779011277893246593973560664784540180549442142787114003759751676435035301834058136120552715235681665250185631283252685769130172724988122048259531070456240158382420028294892300525659414478004850023294380893321252571380668746544951169837203621395642976656008005598308628146297236963021501910766870933012933913037728020505019618706398982013089740645224661115800811599303992381159252563618235205979638446593755454280031879824128210478187678349786867569931702666195694891785523536620101329288612382538237010723413091188071096192158978759137489517238560069596032362316432416321923888081272214525259808156969712600133554887680889952290783610907301689486457966680154738189234440501310499671431749640998120530221574705594059944080229830975829527052794792236885764896732781632591757998662164645175584157095941898818551564135093638781015763402033298344082044054064775398406219261979097416007662383287963727707179437049280131392323115363037367770480893128617900968088369185660082710284402736694039424157109973009304600828310204361784721210770487648419207582851253248263866708852384571071472514046939120709177574198387828394798783771691947491062306964318044118561801039906136721513176889594322121053308588212182364113150541059607025804609068582807343600025058132956639138646388389509578569900142948322025024866175984720014659432253137932321785629622789970281568705724105827216948753440940116789137009482037981562196339063008109908074369259518539135961090004081790623416016694319868430287867039838524723637655931029170694525487247817758160624337433134623361087998500350013335223031941281774969213091363007638445111577384671291364570425883231859960278522634729144759499810407652611538012603074818098766354622076984927617505895983334797698885880641436155009727438410542450389975423719008476699015763579654137019931168165303242718903724268974112381452291317171181795091260927035707626388980619421046312325363280203157201678903865322191044982563715656032980883598704554585123796836962350851487248760092618996659716438183314482764887277253811757434019204896502889880185469924897418094471593479777577876216274321803795336917226924165055715442769568171938834945789008333423613785966565827093292109548719594668061145994674800301925105006289944525156639761837638624349842305432310403502790768997284089043811031608476359779101360342495771547704144893648576668460358373930986057527412454560208869070683540731598764756034120237051733784006837761241843434867925036182115929844583080553601114289159319057257556279649757031898830962422625954377211010332291729900231967429754151153777110262533634718760381876027286523235658672808838599723233015181473765108736502453199887018215484522520881640223801119742134288548033075840674213799066612651681094216410550172219369609632554605792283779696070279866164596278421409093138975648529350926683676353635222854693236746070650249620185349863598126599991404370885958703316416643138617658051278909257821280620324011690834916045072437370808190439995628459617712960149281963446896482766939867374530256833002508171882726902037433511136801454778375467156906892983940143228305021655401792258557697389498334636733225033312782129821550984428405885531839264627604653823506436323926943772153384636194165409458328320137274373388836972100873483993157246852817480292216690569568269945595644079110105688821616077847578777706329765530333884124576007916050040440687274573253309114961611576902193415516518806759505019275913423132599475195319179030156928199981879985030280400208249478048540579708971138037582346157457537800663341417240613744080779253693547871398458411860724324712387116944289734405880877561546682933912255582882011573864761128414900085030607773571504814464475923179466910693583208268413303196955701286171584252199900225418091140446784965556920616134122308019939870696295810633894095878836235596776663469299243079377068242039960384290972860198421845862803699003728611600472789405217614315602271057408459226456515718216521920921067121011670499501720273870001472792190031261681257066265973375359342380187951018995945707470659724116930362737538569288936552664028303085898534736020577861079180379643357033557195963299800683036062390078513067390890660342023261099171749664358440364272303198987647802520141067494103849866308284595207723218665050541604919026609400225412047770461457334581631212009191574985863737710701698823303798288610421814505032853721211452804410229769648403637255607690381072090147797257279950491476870641331859945813909995129971651460030928837714392779544459624109854568760868263189981014655765981133572078978856780959330787750667481667400265947218659525395019172403091495373521144091186123175926007639771423979393888279950627189653267294580971370368321164498349509513709532098259470428763806160540300533894974332048575082911599815267579238768013360874320153302648776984236340084986370329926434452247677018278757478556212492547962413432108846301826636381042537466696373026287719758370699783618683903436243247544316950673012455741914701468700989398724086946998263318381514049214024209124729396663106881243062286584141984377205171518849695063983094792152812093683194546401900313328400324999475853336083941393446154178792719055056481768019980689314462443064415818915692713603111571608716039555745265711630284180405015825409683832227561269154550947192091983435503133955807078174206903594235147097403520818504313420208017680294667900636899065908189265217933312873512801881583821124524122692074969500040538562180436809286900730473087291711412254685133463380786592180220103002039718007132077368138488506333602806954079672234195241182756951509860233282865249811059511554693653061562642757029325205495384115458561220510561344044495838021807978226741129972802603189187732174768728733223125744258155328429670669639079902609349380438282741919038380747850575287989751212435993167555382554531722936647704571139845364091988922144703982204350264406437379712098917607294294594894302531217485984217961882306533431043305241212303658558156633387377502742337374160719813761146789421659356831055708267270834050989417197132818689510237349708044553245240320462254247766024082412862251620050216999492096424772736503832479074520276809583936212630100275262412906920281859304790454775217333542352936653254520772872286280217848555333416482036537027045161204580703243370040686672434140751162910474554117120471608192807580977687302599565006063389385215008716487308134854703882385014943809472776241256890059620377460144971805194082368001580563962416584116639106489969368110312845941121052470539884508167296734199140120452104587087460971135757944332202461643862789318331756350452429650956122238992777918183759744164749658809506186810131713452160002230439748422128728866045735662192434260617082413946487124309179381393539500308531908470076790824965744312386409919748873231993561098351934242627071045840231725840825322119301649286869252461680814006924903999452111044375100029678955710432082963861271857965423728789560359124623015485970852035767920984134920557020907049826391840939679656005614854604461039468277924130656913181198578176042022991414422602093131364565464621359274932331656572708111941311718256773200894251818722920692852355325166256096529337677426949275933022878776938623176973541091602857776838399916810116201917589058030621751416833216299336788089593760295568554039008268465452373880675728605091783899593706141381042268409183785315387397849887444192400681660762186213433483603272902044911193168557597328564777714490578371467056005482566564998019369242802973814085464158750363624512141180976923087278722092271146515205860310196117805810974787106099075247877136641346605158335057981231922595673247993601813262991757103948721567251429438316482859009315536406277732871350735483184230146420489517428372723055470745644293622687992616143146257999556058808409412938313830342816106478086750934652458735829460107308381110531129981816316449011671600745282593946488971541472906150432043363945673044811906692424226229246564867548823991695047430713983564214113076934774880469528147291028418091526571120988846604104730039755526218067848833765242172267500891938885536379795912653283839477642111996371063554361956286165716094806492905141789740278055038643879636865016041826652067484322513150658388033628551704950734250370295211392062410747764232689652811189091236505261087938692810567082953730821542300512983982576438311796375829736256536466247699808320878431231886443524264186398032243183702802946933169657462998441721910734992932220182444708328219934621231699416498042085268530604317981371048277779945621889899761604715275157972501736632338699916401568245684722222567907619927505107554692858437742196100806273961120855512522170450724121784293447572775938284470469029687299208086829562303022367287405416179990164466715928949746125566036625736093991329843775596114106779974091337868138494752169525604447093825234611183594502935787514148949047384754504883519903459403278884056408923581968972175613932213024268183327073031264654186634349805026843834812301189873690289529202453361446195297031081526674017488155817604696034351359704846585333521763023811647586018084531060752572901042409439757202679118443236072424988198810568194310670425199888998320832257139548933658281374674641563861063841777805377220214656280573535819177040967671714839027820037082704039062674405268168200280875580920196057662096039311314514224869208157088400479235582158386573206763260571008579821307727929795548190789774990422869519471927011947091560010955995016849793143127729421626371725652973803227211666890372948850963793281479384280584291312084329337215087102201393285388882883684947655916008478265880367723383654185357561923523425019648468865782984292313901017201418435026166722681034831883223816389809524504455198032974741681223128651295507316267830136038374979690021751055710222399634008756301764115304891262388879034364467277138533157117479213879552432800459783366812013074283545460614235150707690553903844665031352449869879139356899156765172670002608908500867875973429811296911173570063274273350273498442112929760206539244469950779870134037165317769160835867749766412503712260083991756489825129848847480627265780456956684001727112360169552122834119166219451471894643767652212210284860132624353223319138225523725654990610118638599094984574417218283766878317340123829726661472740302799689842531536712166043024843040271375624036607302001858734461780784193896933995915649569212148154721641122633965959489616365773731474118160384659313571724231747556857282524361967011146944818376626654009041958016513929036957395131984590952093915667683231335341313779987829808236705239861557680416511399591413429999006088587366469603086227499428273353801193183636190708844897922887652003896679311834608376446345150515020871467227365977754397274946059803411575183698849661896442841856864262663369266125447022507828595838396903850768476836472754213495483710689526099478884259578256994455941937106160356778063521539614220305609339717827354743274911043731361080684456065825840985906655488904564185107889676159112207176463876547813762120374443175162389224602907858646794447764971101379663605096863179674601985477177672547121423225212759758912138633030573211866456675960349272568799726802750779885074125709189099263631873396199092854866294430541861652754727830971857688266003411296281210618310605420985546722929757184730040882424063397170889184375614995794483348323366370007006376540289149919310387968571745748600594493977816440040584584796523616769106422877669513230189818238715363819369517676234124940583786756931689678802715621055221959706438691987750134233951583709824810385150752188300944519217011806532418796249353043333164965583334772215842633446868331015086066427645700047381476479956038908824674040506033485648356243151893301103435076294202817516011554943069109525903386049919384570331304580020743888604667964601798100505720603674204748738725529552445584587265080721286075289721615047400253429703442983936928421187971799713247369345615060664218791774186535618847032702491837650077404895656140245794061422241933209329433095520223861602445061767881956816792855642944812718410426599998986123945968260817980135616223358078326179972038856623790630954323367049396704400174796598205970556356055976162511976324812767685758910937990692925570041974829312621898882756092747497744237371211150657713066148582772403314446716509431881736356488630526711098836855043968124327987429205877481572885433281975637814226464034964792949989420363243180579554486369686625773634807050209626222942767880796169419252913347598376889011959592625737382458271036735648654355396821853255061881965748004095986151074360548320923886236375795169246819904492906434915756959841535308996231490627715582445077612981749713184152996676166648640395631259500476578929651900261655290438200810020365119308138645814962205775088273765265240342843871614732705266253456146529027612631454899823768795720941283854661952323033256183344936749584124072093510288154474666688566177909234750810747405276553266461945771819622366331047680349741823413107746737058523905083535611588340245177715969718515944839119596306592089015541788514036500606631310986389603435434575038872019419806478423887026767144300784583638338719205872474049839274315741846115360196811654695261373294221393679319654541355165361310703738276122345283083785713547900663018046393403680783239616228423606744532664292450654010981197082189987720032791572287562075422935000272026038709770717470633230349627658436806825224579474929014343180473921462460901543143140440749723415948643176972058690308872489715910625893907304210212117064653691977690606389588291014112589363064319726554155777605243413918674827515510565059303516959130732363962373004309643086388359108625206880121256264147326314515234325486775391756743585029070827804181674039542849194961994853077999277543802552849976737332597929218886479249116363146857807666136680982333188450799853391866521865082508151669164945895659132760508593262496817426599398222881641720705171036985535687407466472477446096858582608301569142109539213801173261834833854735108223268244261978910012017076976377710749106725681987693239562665355394676639438807994819986327569624515219889369811441822445977073818952211541952181340637012764338287867012822637483717030134574715927288494704821450471553060112766040167020370496400454799196577097027972777352842041119066539834095644072263926508871230539619088591683495256499070060950837013529571161882554214345723829119486773209830301433289414964393410436671633843517516026897784668249039897561513601250557652259961832010752093667484887401343288478720342020597858180623646079585544301112925042142907029104271369153948908153947734187584409000689917503534992664802052312738741950885917300036853847725156582683224888549517099502866106474731157710768952471903362033149711588875444092615547659518252982313665741594785679796655806926585176566489644446216788363764010968769499122983851597107940807710501138614686286775886790041541773783075753657699101280893243521740709737522255945840815940635330531267405981772223551668724091024734365830812874828818967287848831267364151930233880019463334130799100057756752990912506282237717965955893244154674182500664839604413200181311677995064501620632909305815992191040757270615153391892559834621289030510943167083438478460486746937367274621327729441917210578722550596768121150716884865884213031451261484842585582553674388514603954572953055677808750551467129932798302742945501897522802982483025538916985819947517438839918201073607037599466568616926709652545634679199950532134473517518872452621710341676135981194093144064293105124272685788181290558270331796496119670770517693196357578128583398666895640391590693809939122582516700799335775229806482440494200684909175141084560814759222166011004740655097499487092737870032791628489079117095058011998193547971831597157287197712759092767172044129513543592065736168814325103040035447116651415139604875541547806790681856184209983947161594338565547413180585581624786884476806354989769854739261662751104183882747405306204351496017907130546321087974683277933468289387953441116972294612201348854615172622714265958588889687788812656563834564091624012002144316761705304022673009158454182276693096566523975791311535558797848154014247631122857034805144293963283004265245123549757980080710299902865060921677807998513851642930656003234010434722649628572995416779052211825000973190082965113059095000511488379228288070955412548295142847090623003155004729868602661819194587569479401796815543183941208819241752895346725845749169353314504376338473646371959666427848776752690927612859829643494108318544727319689562215961864662987435121337051805448028459237228042694166451600714107199990940672719248825832030001236268121291081378523635110979347639876807635597235390892339098982578057796864377454986838669377353593631957731833631670246935050131934598884287931089940382602277627265642052073074426390018909621814863220256982335700273160778813162052179757060046999538074012522548307596654098561730184831171971748284875149338980180998381210512015503036239117015786875550894472554590916855335084454238173917956562091288599835480069002793692124717521612959173968123809576848823286762899116698372113551778513490403823234786813644079306910906552023016309039826171681458266169388644057624818774648505301658318149795542330043450587779586669074380357614524944073024080259453913492202176363163233511140693066710081565787109362751720256235234974645459532737429835377073126320986706493509076242882953387830270248283289122864983649016609031050759666245644621881415698428395370172843024553409071786347156297631435112831910848755967212005265535213358059898302216226598027820591226075962809932785457219714801514710651391536866333792825487767610990958913217056752430046480636509511899444637597557419513619272071265532064891169841518120943436677981339621761026229965897701772489697740598095079816246363669086564884384911124180363885772892909031740115460680783396249771387023586029315385943441483914420114547717020169601461951787369727818204646785403079569604472593826898076014692621264551458364923913581269129686182586961924981789763256306766955180673855060592879582966754887505856786147480765380895485710529256104864473077612982662816166288827728849074380848241040260876462439595580761942225678870444594676046024124915220463075100393564585535931163726070996608954639604907751081584095881937420865572858561549107235877367630084328347378172830328233786235628017327796820689315244189358108763754807286863597727174394147504823796216977238905410211602355566924145106602706253990157377948246223966978079692073909351989011639299708076542641073942599588705122036565179872811521085732319668117907431138458656566130172640096599625585723731378992177831569397027576875732728264946269478027631607793189829868777726947742441808135345160369955742614833400723248278016782424077547765840119641493331253176054114099190546438166103739922627320283793714603974874768652404082986535194983355605326609739795710679927931949552961617509703689411315907236936892731121124133240018623834343744089628121831707646376816118464198540695215921239742960160437716882306719596789764117893415405199068366497294644643510496197674816577238357988524921456897357651543818943183730211051485085414572494645373679606361767914484476258242242251027104423988653958079207060820547202149307948981903597657404420910294644005082714318488508868613503677023934147176611690987202515252772214651467948613390284314811810711490407207345590383538842978284983958675329244792347995960026977161365956205842301202193258043233418194781948920657408976798239244935812870405628398950587250324998936101277542625637763911864691226316725450699910573854309015555382162089189404820235913359279106852611390857262014288623232326618108197003572126689871843180091174587902736806739822472979695109500518320157731834332124117898018163425208724950003236275791712979775976386844510044298385276636924438699221326337175682984909529530445898612875729455789601387462110465862790077546286563976514635002734739353334070115441427318696152347407256998239649990335431107752741738524857255913197529755598760272944231681777386994562790171863854642540729728561553721296065006167825264078689223600149639485357427633032994153057683118026158632517668032479661304649198974674014469751150978264508953949572604619337449700487323858840322025669297529269406752932662722097253445732403610593341347259031795412029869968794198421697439812112199366349998311363866609850254375134339636472486326505162736175671065798966114613842022277453856391019956491866585257397340079050884007240201972682635947049171272395600099406481955932249607857394408754492178671423486502209853050179068159737701018129079965603391349838776260908715907237824147086114679925789365508754624607779853285705368016215268305382040624560328251463611273875701267848269635959917274991670226165224710517158457837437746350852846706406343920158068638993419552638381884607063769035304636293379610176785017280881209427525412992473521504595353283065638328375562909067303726082617539153286095722411094479000582198069985164122818043771965769925038772180123551650643965049310141535985838294376336306674106568367680103202138580775786482767971425937920982552985379497016696984294333756403588501901050333327544886106379202803521135034889653902068415111445502258439146043695523318188522290060861064365871307484737255558809107956787824076008767357937875567756736930458732868292209302527885409669076534786409714407880632134753586929691418011198482038881120121489923551034243008207660078440052967531118156227796851823520154906226191193083419610258226230546590861672701627779078967737045149180063787933683914560192406255007672741932106905081709310624406232684009677996354150645948539051182312635358553947892046703372536909231501841893230667847129567816119791523247424621709180910684253167229530704696532656976320134235206819397024335487867172128922593789088589994433395448037016221590994784157708839515916075578699237726559919349783048874061031262838466946784004882676558101196926923786934866775530144572353788087481941689470983496908210638544515582357401693085612527217585968312769486755895579031268603128548971821420611440004373302566358390668018479872067472605788388731675071578189845692281898379732769138950818493043978245004475823929897302684189349059993951351104166339540684832546059255635315578077181876825130734675993627611862168974505191201228730982040662136818562085466959368579782424981948756257761159506827121402035402599598341379739505854043672506468428866894450664191636605022840596383207200085895820219369450955307163498758962236220838736140772638783052679813460601478954277717492595321037350915871607884983209699492177405014474279421513141320615076342873280609983607646845763492726215801836550906881393771890371201873208188782501038752574741856371182796745890759028666465237976689129090888441705696240331205817164291505550058051438546371784746800703895343453752203488488348107994742139190000039598480874304902913040996555797615412706825502552878237899301758427522438060711377367161536343355897299999927102515994542792274784554144201143287034466975768032334497565893861677073699418461664840759214036577311346990186340892050434248431685323991286060888979747585140107188311234998811183733122653801814129208122696243035872294123681410309117275508874123459769631032427598839154190944585301570972417372226098514514709199172611056135091590829743199469942888763868852832366863587087967896248927635557862312367521609375488217900722158496901254123827753640213901529911180933213233895170401779472818769055821621492982106480847236372108243987319445022654942275637484839546442299147504332078735833926344050501676077983439336225603266340290894223362494096252382184078705376988625498927336793241087041351847184988704456189756136943893511232544993167770776573867431691589524925678794784584449763286639430774582822630570236474786130104148804905007921504165444460496067069865504047645860379304609392486770842170484631019939224833878256967178437968958565456279091582467883055672410487006931965219939931587618604818601448050650433782258451706891262035979271276230339538520281596994580946371344145462147736499229198516370737757121496143830538402065901121563015254639860462321808863103092890512055998502603953115804013769762662532123945221318061313590822256848087251045044656383684154805626649365790004887338962699885438017989714227782881867142114667859315746562082703559194521965141988382793226771005098720018577812665578542138297906328341737622550013795864202961034770085356390384786106516028020314708634255812801438667469784394098844360074514617732888693247256475081270301696806372350292546600996077404112021362326968179998809630092845936435462338495427961532048807223330010688070190898159093115178447217554832936056691352243033675555778152827935637137438259898673817393415028005075851413663089397135733259632940709262657821327003998115687799232544387776183500756557530239135582881852660834277617615525581039992363515592587149758899673786638879417452514385275019351907366681340278017796513979439199345099140765605414903041353509312207660177859108504186393048189686215242943060501434834156980752130858967351787830636284340529116271208550122217966177249129057402184690839042245261655093310917809655350363737539782131010222165827015777600250733019841991544094930712237778022951769541061688294842021863830725276972326980622780854613282774994203423266289487985204799510970310404091068101938601676718516275466840197569639601549425919117338306701042315936102143186997727151638172190555218841746802191838972967884502490598351563442636190279700803276990481998738366792904434656138952005399590979206947237586838297698958106292056289279928052683819713515695361227206357629887451386535271488996168524014830747073373010687200338472702243427035635752159746344090402577351833839294428465363674579680748723383717356185203792257749872706528331027223128930989045403427182008914082775781226601787717536138799632905213251776846744871144021928986836690508694844640881560180534072013729939927850855702330833945275005902529860201428164701319563342262173102904222744240185161986355064653197241600414424716298326150228352865464159551106810991392315306359436398697160653984102989157508126019258576555062256098935478339864312607304968603995671144446666037273831222460882163072511957242230974881454910038791491284332906509981271429162329693733553401578629760869966509275596150416658026257110290872806278460596947716943358733145866910410996589401880860622808991652582336364261279226029980908671555013580810061901032833761918999230772285430949410059489488528381596979139558095792825098768913400091843566244688061411486223955845261890009827639141295088512991622746070726948140637319444254691122621722836383703586761329480374319947451494564779030070979811998733978857468263315902335173330560323876803344455436105910707634823613863756059132885547012209225272530371409966090014225709021343931681064222008635207339165075028064236801468770298492388187633028249611450690958735490696122801865504155439409014008596306706807748628943511998811141628601778261708729209949091664864153994965066487593275598264925247620962465053897690221227189664421313746150254701234643930980541063278259975316596318895775359274426640056932408904521346199509911174601506901755842077416143468948341470056203266629597950285421772892800158331804085024929252938921836289237039008374849026131193817487322988511592856161561037431696991996827112719242452782213837265735722838679772443849137631146883301080855480697368080352586861423213284580774087991189964121247208471711974275417697234232152553986712888446349787353320177707704669023671421090026964994537477944821902252249366712773092553994761242906819884090977797276316215095854907251985079972276882903904101165514626618811007965298407642260447026726622366933260848606046912871761057002004012885106259321524299537843984648430575495578263873993632433803000986941551093775059191898313621069584936934512780530531158098617764042041294757062124698013778465121559508155007395517134445197573511833288839249972792161573366577475286909880985344333582343165307000419759676073344298717937109848499173770902245809238536754035082700767303200915387765329556443384025244167780050495874939155154992260004662268546265188048226479555731491156526698349385832012219100225346507996515728836375852631636079525007178679036496900489181772567714277238075963113348136611747911448923656264952662462721726366853949532258775818816445687207219043045393928469638702662164004360594507828317438543715906942331080449549703155899852724074286856912892779166360652270098104748887465509015587393681056755246412955200089329739939666183728483094881161655161391053808523728756312770365143334983325247138288109591999056459613640609059152759081983083768630888311215373524396459545196947092501422274234482418834514980089640637621508947030645068750711606852938770110352095788759577072924987941599126553977504639429172138279028080530098150225689766633252481151462635667938555855456008783122877249039094971126711192780074857815705561981447434153751348654134199483171443882679835731452781005233081021075176249764715061667673810633329477211590109144834322364819661719254898025370141515220114808435703051857683534564296726435667446299527540462538797201101299377105617293137878817523651835211715032573335044704928474002111789828380487828889496356608333886844733050855099998280764430731828151686888397295325766304974892997692876961485765170653087940725028802958381336849678314464508080933076472435358703182249064231550285714378085311780716835864984715377388853432671967414849560512436415265651563871148905810171725831041895115941394371666107582343384867887129925818325961988864600945599865891727083240206551614334002632861274739133005158595868698970998813704178052812898837227214453555817163464772584680656839016116308582560901471646878268192851087119738843093633235959729977987511856400094726533480822147309020720265648566151462819053274038943366827256543904694313292388474887734095232015667993353389487582100619242222561636412470807449181979791279051111926498973970363910456315858367018047452030634532255604694023196710860531037669414647082916028386049569274040630112503370269494606807084679329318564106141845635851325957475376213375236563060645166734024256233793956113385255959405717006819838276654930487575981650903380928685782285449781596217320466348056722579675354426515782153028242415409427677497942515038758212165612228328935481762481643684281636898221140638127743539104574892131157945390109311965305656111425782854677794535430872542583622803368345293388568208704245491064908055320604643939000964465703631843849978275901185492401052804120587508642422203044010177117754030938430925364943201437700275761300244490581772049593929341267284912069219529320515615448886062630185845568661858687498847106244510660883679581711035485099265111174536744474267408520282847284818099243112439210499589759838818120426438683579757668434428700969641843889334515906439378109795716822271579345238475151969139325820031496958604865125959720516081192536150271065986162969898460794863762822287812712864447121069124747984327274734946650548120584379610108094091128604145130066422735043127387625051386400512523022749639507613923160202348270517405009230152357497729643909634937708812604080684019741917675780467965552600301908581477613915609011427832886753224488270787033412062600685105994307128849611311734551918862103032821256310930145642188745492627918556739530023238108858020313079869385113638063861691438363529566101794236349475244082640940598630788463442701565850741446059783637302175339595671499097689895575784610744825587283403348024552468798669999623226798767355712526474707183129510453089310797318282109654621292012639319810424869728005345092894017098218533622577435716887544501861978048327768737869260325494549402552688431240677734452610493629370943099744822984805475030978049716432716650115711568832637895879670069616048814108500489948183038329019359050325252664736131327136978961796283420659812719208566369430394143035924101176446953737935122933785672791770675288109606551568572493638175626571447440672867363329172949864421677111985087984496736339914547402176787401035492253521424854859782063583957510964138868540445270238062854529308674398740941667756150216501906064269493035295040671804977548342077651409304745107435277789705587726359349997062349483450436325419543345311310005435788097911749777404270827715369671342843326163180872292260589730121175127627525006369157696026234393035963773397383740679831406490751799716649174415269078260785777841776285884834349254620732573035645294094969553293118940669128780376688188063681214845556024363474486248402642210301922710165302234399415067342001496950691626152007809120902687577289548153524140543179870823739261707625793540208146481653439115353363575804084871863553286994299979230364736899408735420237968675254181301555210452678758547357518565259015806453328916719198248906081877715380770667999933936887993337940686084238554320259891612707503262329414395967304363783439966703717595356215680582809761197964324384853119151263375720441317099967821658103072417069709155689825109229340925032660660648127906034136823672480827652934713445167402317076002618949215830904482554570957073224502865958817136456295830534976794287266587967183472269513349388733048612154680841999661208316465381446068436102561748917379841529085748841862785758243636030814759526099175131229717066460734561728091145460498270128737657430867402182149231128072244005567078667415046409758652679602807351994287552297252738980008838364689302788143841874629723390544263172976967282474062208906851377845914872689263540162272858313717238695247693283615086644677885925191952698635330633519695238544962209623222752039029192308694773554278361885724891727672154468109478148477186265377951860295754987965865460307760681414919294919848984712656772796551135602252195505026429918441302710288377898168881405776997503486615654897214688953399070856919333735609126601383882301145806900993148279258692314704837926084168207200114592320594120263578372317689524078618013361487962455579119692261943742845302306124439581920570027084758923547855934981129345308594250072278990330690176632587409967379796999816814911700552866497337697882151918619136236511311973591211092614753914603506990220669214063212008864378504979443043158339338608920125580085617909777538136534960101234312507154637172667207816860780092693479374080020142065494725532285628035144258850336043400752092240605105623495662337810405173610682116664696966945665767317082507650439867152629805385249781548730255160573798486192860926852106512679835435064269871287393388934004540942131330041983365180834732550673944714948944769633521024520895852846644564502020285444046461761284899838321415744075773448168095877696616876287979311731722501909868092603731508909384733076606575260514798485476142885453722217839991235892650406206755732540412192701020381381993049832383437408933271495212924582615592200451870965321349950775857913465118198256602547556212786249520748174925792510925205884967205055696952073362119442379214410076354906341745678388930886317992260176145285534621248640328782959488113186706978259540374163322113222497484782281127658584591195496231482027349536628997998203302134098381311467039070238090118188191906945493957165989689380327301479806287558619447870539693437634426211518823979305503933468968317062877686957185973625631205547573353265013476254046042241970517259852055599132768061902041184315799872866152581870761575423285476588711548335443433502876952455054376759662374851729472757493148978432281307714916936536093507901065160791857562373188817673212649285175695231617388620888261635787311114137282771525294692293662651608838319417793052295020880424947081654010810949155544500393529351262533517873284721116684973995769635559923894393562107567970897541265527983577873073256323324146965905902403356883130046781593370251414792117925594158632870359641376803953404840995982184288271465008516175792784603049127970070160161708114485138217954450659626853863960812373443721683569928980637153031650494673948175001309017710140486511117712725321793765392274273688991774847098240336222565025156334952609183989413859716180889783034466751179437397447986201692265494198267197817147170837922008390886441255680430019825055331323251628387714654620297637779437735176196121101951541388395307025563244911090806177839538638308768109323535097412985641380017167057258981626866801945059062605106535761098197670734285109760550350532458173974851937598796887111495800613216466413938363180726492964135219254956581958499440919333205796919758846618752348406068913336232047688595904338603190379201719697795291378646851878617471720306091209261298514263487375075784563112559162559414414706265811854822208838312339118751901408010012799740340620977943704622521936556314970637600758110811318292819099470608097684365925796597163951980080162662902799539326223543267981300607118822421678863484180311207963084794493085825851364617251908167393202472893034788086006122333741925643529730041427836024226273530116177064003612224010696722091053863528302160175754710243511420509557787641682864403492938638458711274723723530659103666283340434762914008646829355226343610791784081782591093837659970783327749201515878049032872128620510792353833425594882807345376192651015651893466810460874571504590370915613358056695850463270558304165103655244380677313721732166911338981626990995971690210485088998686851513057251888703494795352373540152160514952011167037301658074461628697932106842354091543118816082137502063579067123930342625451567287739924803770110040415248213200907602581964780867065034287768215819146821725466282789109146117443616765283229032952966672056408342511743664176135589604359377645332861009627712591349980391717757347322565941314032068634654362682487068046995239633945736949229517493573822195846766704094900088205652690267371442567517559305396480608356478384956212745603545588342532911856586498075925827222475500174420565756839642096712482870885918504115638895112814435111755315516520225242504265246556423741051484986597799962587655546824000549076715898544729890667978586290142819220444784845858594345570803825608404739017914137898746297784064348851814158285817646984298901773429459735323532337318898624545249464174804673409443968773089787823554261062813219616064673745760570679510247906444510887287172102148716103949992753392335482225709735988542905569930530982516948744961659671860922082390576693956801643444835660934194552317860678746229512347756252203813949030425879370574307210708056368252972345668871461713507780631753698287832699792594724830185225010240823928572053944264176699664153448299418196300661055585708343928878410295897812917152804629344021767419653377045796686675351163053104107563149723671518263440473462999293208648039473980941469939635100356289261798511519182895591275540211301540534629117437608077580233228288191023559107819033187787477603938641283105578221951234103507767742459846040969167736947011393286478306980155028035256431002817567330625180417999030347626955446218745453694144361148838669194139844955620056937972079824032374166559072147887540301654123414141530049753363891455248144970317541086074807071819641742003661399628451942910994932363862019232609152835204279535377259630034157403849977383341791121561152653449141042171587590662988244476303518590102926259092657044879713038293484063919515922877784027520839743005541859278412954982297713977262500813639584978087455417295103191908092443617954083541871888497262931109078060455023522356369301839052169086086228362419987087253115362443109019644564232550460121829086871943084221198049866848602188446535440750428981028985196742540896708063205121991779137593519514017529181786011223409379225740593632578890207279898307767612541281580578783635278389493616964383161491229909295800304199068124155276020066344246307794453625683435749755380084364364728453897294000720466035036843074860626691082240218656840389613683402570144847576175300815135492843992692662352155196179341904913315051780966967805438559498325712410953054199177879930717831175249584409509138614030154379239051054802114426632334836440954593615552582862946062731007759571551159581404650733850251436440952225727619343518868671744662777654451423190487797278776920940892617955734762443582919869787567079325120195852141649157019808129687201501967693870770388048682025101458618704414950418801303240708906036016749327305154468750552487387513406259305696961023318991332116276103278924066167008648579250460002297477809418708338328975182654544444598943006464783158891351526624992858573274319480078934662572439513754044857417629953705120712657725304636489246880153881648043559752665716270044409287906390684466006288639515962292950870812007044067659490100874239969208821913257261707299346581819170388699686286298477666786617737133417900027570545553943911470424213395362376195850684471341487836893949914776069487692500576175536471435617285890330566428735522791644455767925517967453728398400746816248733566568920064109208145044816594671891822054729905957799684116116720676510080675092186848242344036137002831700053354799606184778630770842491038200838643537705659238021223841314354626336561666716775026011289692529896339856816246370665929775274067849290847726775796442704410112902948198560833067310968310322061806352651193772369583556552531989272439384742227861394420425244097212345363883889658093282541091030960255831587084017643671011013642461347084951406907671491053363382484965126971884160887341800715875083043549865317555059549951464327507969873301249849656475722930509365317027581359100530612207340545434381366699336156684380064695563767330031043745332223545337080216912365175535285685734581265863724411553981559867274312350238932217359678305960412807608043698466202734660002253893896700465051190378459490748632111338065715789433067269235010244931217613224906546359662634640973452884113998762891516104141033346467111821676958196594897854903709896103273543997577955596986012655536355163873291901653690542373720590738517394698448067908523119833195772615008839023692424005545459929101673625889628987986868356721205178085216112672096603727729255606182200451010322456581831865816990054937261186812612019765056832685436721649709388070205399925675469278002896302129855154798302963236400626231952126788368050088111235098569360525496046755347028228989683128665566924260151749838450831173382347705221321822959864655719740448931106816024056825930838026853705222778941787698103979062113525843209623544248755453075458117006461012223392099175170404254204191377660882648574934001171939151456283836199649066102532171628974270768858984395264499313330876129088831526475417966715276310690491661049409711545213666308864261977631364521490243506540759830733885454881422352791331004969841223559180828757630947506456227686142745855771143935882673905926756856256362421475191875129280501907412098415503685903179812194472050588421787890645309397767540054014782612519100774193723523365453625243503488876697970714691378274254194074844661163805610241902064653661209204620380484553140854930487222125065549280222765216807963599488095123421465593122834916214008230812958771964228826984350622429401865521304344425842638558254238146458874362842333199994842651215823504295960854864190842529701783373238931224373166910835456980359581239606590024641275074279054041914391690813317478693985639390108723675539825677915738175366484465694221099832431432638977216847385832028557671396379484462140793496983815457286355875180615104777797301210284220872596034933879122749767332739609947805978404811278804917746340255272599072926767469190943614378616543888626350727225754777860751155355392941150090261329935751269452929553001117656828255961346925230068512956532680843438160527171354571519356860111982490462523432653829528085585470005356630840891205362902143204984971992462794151833575338308282389757080518604169628187139526222111490090721307539510084237863592553128703602923993646734227620252712906727764207687341433824308838657237394310104474137087472648290438004903439112464361358005871202121248987495494976637126504524700895743475287579224676278530096376297432035757107367335022779104081374646451546246960506029672421247220882436865030384413006717757716226534200284542743953936924570521457329462286826295051724381463441423183277159677415228786624648147195520341782813224660351277468673342064851320895003803753341499346306838515777734862616822645300545305396150738258497149604659684147145530257163014668776334611049702202110527852083952537001477813581715175641536669442992093010593981504632254788456084595891313809898475279195109516659855352585328864417996997194437076309715000970052467577525599881407625156596668796838248708852948966684952527214138905172368409959621766952080955055373839478101792366469322005536554264427251617197420939504313817040579671605327811299037718921531608881373267153221067240241476084467872113798443582705525307135966233056898834166853108958084435345705564769555685150427713094552234973231387446873068792744171537804408643671846524491064348601422273383496252493953451896889479479202813200414348264844268095045310604135727791152103665721927826212605534238406958623904883006288191920106779419323417424107758251051380185173055912038643031706245554727502649695044688556237478906694185562158027993895220605772665849401061467556920098407884370579220055940067805882007710683890631095175135979844524352646991785848375087209596918605254746138971036576115712384639520617238189608411481090268010708364671331136435159865402963265960877888208759789768017696183019423905410423756946864431075447822027528223204593692783861730747601044571208633592802690276200928207108345960985148074831793670179408531525068066549936190034870619181543642063087325980424288950935216025159257573926423239676218498947011123465263794980509406032777649245678847411129560321567266096627210342002557288697276706237477569601761046882390456644437965430487531468365587922413353962953910007548377995781426919888949950990756371139672480721991610622677733280590657745866089439000743214462536772233808910568373740008526800804229296033310546906529047938425807291942894890270721184275965918574641308439924072192880696767505685932077955410239413490786870888535596513953972863171939890561536553873853988003016561009377604828677878307942652644551812572667244217545566393190014996335551129039076805943539510048318378828543054080000204181771640821157233901860146848703588534237429957631568551590423383674140989339738928489328823002470157893023143022762233658270296430207048670269069824998192822482251873297129667923680834001821932428104430553894683940332332679074969628691407966589794472683150660007451257073617492887664314584143984463077732279234099797116788206732174434048991141287775855654244719920977859812353870712535462146420282320598409364512298248397966718120292035948329931352951444050748459663057515610902922982466798299337690918935716526580011783410109488094002062799871099995838148197466778459161156972504406361810513852811514855342343057809655195341276700113128789973761799578477783043819029885032887495826892652332506301052537160043832610136280753972249608503299580372789692039186178995822863072045896559698670563014970817527192218126434498667764331285137512861156310379798837992983137806074906030968859865973277182255140691015825763413804190060758003207394572873061813003727142878143855126392480872660159919741772963100031060073301916195263937877228064547001588488170384991696260816451467071204095046987980528369764171523614118794849623384472346921468127308668823268192937023007883952455452802406515115218443036018714400907946104724950993224367591285488925741165784136417009368109630116983355043444897705070123185285853646249834609654301130192322126547868028892966839064514377844307450887170351452659992430221564365957335147991626779372597759968576057891051080175497228083424264172904293623419231174885796222181341587582153984189374765320419882372950656371643536919152689493291013999704102165361183764799466714264105390834408298451693018804627307493009991736998210206823639032492333538884245410394043629184845834173173422184716755064746829356154160398067423409373310664554661427993935080625358897987006869889598603168522455426347916197907834684106634223619989007403520633857036062450961653147427783409856308794427901202189456883523881892269840140246301775209558672131784529795117364111701665056901444936233224220331877804254930495825542170439782856187564663273281982277728008781571738210738974670965132604720605991156743937847114204488072243553640650709990233039184321822910592604547829507167359601134982289733127337459956602563849713929976878222798660613267405286046422271994478695876373538588103149979641664438718232202357965665480498294059599803295684738550826101035366983746511454967646142775656152377758863417055998020448213531474700050677624763590969705477047807144358119630729172334326705702170389798322203803807338093900471869715243144051932468073238286222238378483628161527804963680966703375727400252947744966529202043959185601415830495605561996903129266431444315049909274801738278828328367100042750683768165391360784004601627267285613307302865654286778474724077316597737209599977445158109500984356495283748769999528135912420350382484116271459826583229028845039692771738380406364966902898062282641373345998744586829229491236288621562808163204071816810175903848366374847995837088753899132452039383343474752198717603645080040750866236011660193290831445324039280309684791507715637176672467910856845002558917809419938581642536112734285257770660481828761360466426935898695761137714577174408446979745436455920093825162556493223741676498744241145739194147006021191892450269235690389215639444068450072044300677169032614002447728283367712566937822994498389461346786934456492036587685870636417597255986158642903559737459271999994955561334121735668459646325050847990609080054345714708801986263880309245562835871376882679923716662346893014061641592471701955039928619871911144170997813004652060051830208941136193640893341863122798272978365342760111928400882597938416349555097220658307133211095285311656948104812512754627736686286681947986320312280448944720419870885546593143785448935167615565161368678009661555576748958854109290621988661513617371765225583787024427670699845810937306322226807461863506809923692492577394881168792739408347829755393895401505840436108139470939603471314778693498724338372241092221555178157449716884741500434486042648266738369068075495691434546743193390674965900944128673515114567132093917365597407715028827679003490719812197924751290529806286499228733181965499939442890824759071444028637376068202860706585737852649758133650843813188738617983878005566253178640450696885435352343194224831519045891076847398016255559207015103013325028346313110471552824060467126965984914315891653378335761559787115335684019378145905364378645168501558442951279467394896762659367537339780731378094537898942655745101928824426612649794582745122882035953765766639342287209458225580640247020450093703811644006823063074541977001238865074145798075799635036138921643453858409577212795824485023226767997102061568354923857774542327034988712810960653629576288058528164002367112135867661898283254514786630671250889726844210957952698109602784174799993013562685819781979983850216735902145844550295034680406310861031599830660961806224385830816897747443360515329396023147329960306387246655489704894417929629638426634377490109492046206104975347009909275126474470701069269896498402548720197968348702940854896031899798497385969400487125671038200849185856365781241644804243161107475375471138861643073194997065576074131091284102879139506782524893145201022540049296013531475540541892411167280755420365275500927046140382609395463436742864749283192789882586342699595678720987567661541387871388872739849138760814163758637412797280961848851869518890156860571962550515618082174325749856464200692843620725342552884657517384396203452763091287110881083379046554675766066594792378954431751102416963593664782597996196568098191967794362086759557790904100174238476532000722546703044202480000124862064858975800935228779815478764467724048557063410077279140250916555328998213588896527144824480837729180297492109517312200175883369778918460195342340814211484726256119936935584655936215114998405637751388530819843135574191327530551959265015499386324461116330189194014716611229973326685072661166732120282864414579152929221391669616129955370033701514198687804437931038437778333388692408361640357530960813988428904517533106916998939962866211725024246717039800807901589655367656783550202283199374360374869678714886402027544309696538759993245731692216710350999497251483010260876067741929564605152265232087582865424107077315933529032104289850352050755996907703271391833260398539046393257856645180071125447430646201860147117856439900947507530078507849232330053053411379827843120886492012325257276805242157268513983585838228334790679356558020991787668125386557284326873729444169960245431017376566905352007421155289979942295418982886159755024212394659738940156196788704958159806425701395189486654886268643364022609518404262871007277634406263001493293284707088397794472723091933092779686058286660441219169179689168355633115455061172195480180062470016478442507078323147377729402624687033512686808502982255060467262035536124552960963464327860899124144055695632823881352649625870214877675125775376053010861288043589495612005554693956319615902723651175131746689776860911424525492965026624208285779262018409559356325066259779221492873110337898723812811899833286650849146588792475891733316768718580526422664727830965267543218307868758344361744492863483932846846882199807590217877229264690891468891933619728227953340187278758602958416507572922296000420057487808319423185117969309887314689544070293835034387144655575549721612042609460104640966349455709591661581856123118749672640958413595514469054134531122552979671983764867418134292614285012582095757498660975066684915910175525659971125701369338894884426629234139621603898639674539327506967554724881166111273481528574779224496351105496893821813308787109452245351359221818062929571273595642652808907963094736915483567382593843647815576603662598807056897771501502074534280423515727559055343855259817442557312218753442188934889456212966617461583154372687920762667898569419407873740013672315249735476751183983364368145244760466264872749724302724916070780051292652309300746752827250171898386001326843216802554398088959611514212170969379378499593209334371498254387870198397944240622005833469809487456971651792059063376948685389184892133120511702997355743446677255550533909311429416245302286054309559212347317502609230221799624917262603489592042590667667255813599670017133460010508391430992891784501956357390732530410143189755139226196403473799278664054377596070571576541823371867901819115553627475443628381758169351705773067889394703054907741901492414825973148459053149316002811136638763098723373770448429722155369352617949885412114440345136865589605676708516232042832370104491682426697926272837069690795572656391456487179615436483911846239566330649285372355782593406335176683732833317209618623014352598164532318918051264168919769679224404578356612549277560984899983812404325969392046476756851459705927548037630975042209466830150830617026866449673115030159097289638098356575834764979269218203325468059488730941572549419357228670176775618052389364567665594571740215218655221017656974376397449860085307269431636588267702685468700004806433054881633935517659487840989167716758019754219510134027219768168728122449889044234714618672084121290339962029394827752942046731297290466138143327647098477573916645323311779891500263046191509224112435708594819197331960454533764345232656394755679787798567721993618667433060490698673066163694714885299634552470036181907955240021432600148090819259570136664918942776044699438173616126402957674149131640196741088977660491362189857405054007989541801890924431354791517789158264165920630560160250061462946874313334227265946664800272142987676129520521653765820789330233432321677396903008601242548106771538077114296157999259878121559204764084565582436009196529578922647822296321516728054421423054968951350489260544374203614295405575055732377730929670992051100875830278202666802723850303595632210408591931168433675006476603810143791795613337555017246736578438272381172053008904149427813826409786118507130690055092280294480170962167636614071296147110369391085172421303386775515420502816594184757118541714271883277004890606531990057993031051066897809471016407252623972159752170857260990875594809496099384472863364402018870994611836073442804243952488550980286855728539558136781624767719358587641004675787516504087694014268739123421001067541529558952585901535650441201423834477294164936497581276606191677399875541243011283077845195443976577484011566830307449222314154829233494275438055797012422693636054690234436644150248471029022308449167413511271869131426410170254399166867295619241300138726121621896505706711174290248222143853875488152421466649745629844242158234894522515493824089385620703124577671320429946582077789433286257239928391201130792638374548602820622861953350552585153757385521535812451321835768400102607772301125028245503804333746199458886330489802925590838813907564218892444424004932499621537609083047153125623880522399225340980047728533675370609567307405837351747270909455318441213583711697963197187800712501564341346283879259295345700983585842089428466967078695479297878125273352551797951377844348405678928615640541107791506813038414910755745396806461146052160824649307969224393312838065711187118778723036975502960253507323132428631830263216407741744213481916734811806010034964991814152797880436362711534329133890218192486883704042969178848174786634712594475723032791461288085924338045718193400809156027333568693695058955541665482367053168240037056568571177500115640964588637410855687888311296614068388006520472935840670329341880675439557912975233214910512082125010917354741940970960071023291596731998597456677342374438753057121593574879031304334454997011180582714239172725732706916084709572257822218214581448173044228147872946028988856665102304901548791704420506476317463706368316432523860135257166220504574178624318082179464570753347990101318299776577444517235069750685260572236469937992540026740525771942185128354754907089072737081583356030498708798123436374984099201321052348083211912085772309203339788166875775942068280851948351442436210835932393116019688370018039358936938868120088418271945717077007807842734366968755883024688923153588060232482974460883877528933409499352027308983497327625277208037703822453457998844768799251124711163459963784565268283916933779215182575086056938652582221813556152746956235917497230594769983721387645522683714151270020999177561679022069877869608495352600956473768618311387911422343139121330931579879450221362655348569279005175464396225207963491624378175941043127145421544197819231733321963231048484419476555422607452288011026959162517774348218588373209054807691946989544021461904944373045546787672581378006960329197315453888423753929778458317606219469513850595653945453791560212191399287756649390715373378316427578139249036860467176382938283218889965401662415663318025989364318009500080333162846838825080356320831420774727628769497580169771161493000984195297019653424042849986088033935091028461523818825631550450515441290431881344851710521284594313618537833911335286428792064032839254039545900514051119540426977619712927768778694011476278311349779027772342296943077262116509552470393829658648832539433192209090413039151466226127646680597470911222473297561878292900803093066539624961391648879923760456510615797413856241330143786102849732314492601042930068143322689560765519321175568043892368112015332879025821580868001715503439717265195021115453244655152404046520432074149940962647519497522424094826725198293069457614594491465970018024941062108180395127352750315228762355135120172122522545209943882267704143247822114371589180384859040661163097154571515828690770549596394543494976777680576442204504587240098035303490418144967074208165307800850186594274776654401881595331712092289196311450654411815047811017200314233227203672699393874828413536019968536451434012516069702191646945459855100737194687911099179514528743905662916670607153400620173052850984477993536660253603643219993782334192039928335243967706745744121679435075344613061929382629444055055775248372088169187909242789338953903654551677726570966267591699988086296651988565882925868044177935410657696338114325780425726828017723895514074962707622879892831046798374756279039810590161858274428685979438256081059749132983912474737091281883455861172200706585057250019725606941941295839480111304530727669321872075373693901679410994343330083282935239130307631957171558399849602680485095977151830275894989615151163842380332298806930220747170330762785766277722359675128580201293660116182388320385556228983788991022762294666850108001927802502154174276779326599013046799811316498485036912213999505069236269520324813118187494717070498909105767392487786498129443310154372587659352688778101093434532211780230880303364406656601483008556233361094145425835286868352182281188956846510634520389767925255810547276294261148009413614041334591436319794028915438235116429832023616954738447784547146675540985518825427131132235733740313434162388922293888849957769079873555524539987416361255472599408589860330846667527474115961127412162329902380758915346011307035901704446694029995215721745247876514966824021397343382807019233390659950836277172050708339972097702010445487518455644047045893215714848141737132524448495272510949506381978774474947340606205767293826376036729554349101116065998879500995038373792708998677508621192188988309729029346578202265172382900803127720445792387756910546898752267202162834527888380541448264261914349157053904365731188682345436469559447965193070408699124723904753700216723745852410314426175869301594046778380713242415537477912903553768471626200114331890544518817717370554168934799423746194323615840270832031840420091911637629109147679731003767665279141318073923330593301884603448371886219847409058313204515331595550869415144156079295240983146371418246470803140521045985743549710328414109803492763267526046617879459811523048143292382486613715189139208246692648624531430176358148830450568652785366241697972572429147403379978793298894234280744971516527049252062108960114953915545244868174204887279044590180645727418243207836008523127010663901790051986463425771426106663592400953466550156628226999417202844846423435595106182633797393464017440328121664346036547123401495524660194262699573408895868990391097951798886491615463006444472584393030713021899927278599796809704860848793380475650956096397620976884031877688346385366760118092956610701568534687152735557005083459891825103830413237190623236479694196275751010327431073264133221570446850580434730253167481775809899307256626525454938457914260688910740798321996054378165982771885436271939467641855053147878532435632581213983210017423152005344100689306209446034622270987255770232051086021736746986024024251722934957532331691092694848017134513537868505238818809787505669878828599156570917662186930358896652135752332884221058601225703035961611490795831976330256036153532344469304536301974703870715925972206136774054442074711312486780390331825035657926103122364261869580132016141115951503988110351585289780546924784845113125221776828514997184924363782613617064560161033050157900187759325846981552570117762832741282742846941469620034614640671169314208021468774754221247847460858601050668614382389119365401263639494482546982526894510914951610837542625374804817108715438707335625627774401848755421183723535457237477507013768957817512816367581659255883547668903848783360152902717214195245734461823808580208419645903290972605111406289071006732763655689431264272338539274803841607768566879418647963823331935146726848944753155078690524679434156210237702419872500569825338176179398740715077981489758254850697449432978499978026582923779587672263428845034430932504315078443866310522924294609193531395017829490988667550725480139167698965048162905258062384421442951273712470593004836683739561849022278812156466998260906333453496863134455913117875937949381534157380669764101810437532417554447583483081518579654087547109043998481127517914858453717873955546813775665402507939088411845552417253597142663518533927534562131938048358090278164794479558576737296580936459708778756545869693438636282113050501696272860132334630873462322684095311014966165929219639430885169868956045136544536315463131030564649601554905560705740871910969231254410009271897838713829821590908113578317125273144853270428222387075311034358716059021562427049563128031278963061972277607352206349849452501656485053955601605601489257634283298622266317901771012021356321338338006131197901104091938169732650093846963844522322624594974181030340349360903883918000639212365803325399428898369840387177602128865080893003953856824715517757287482124085248787807396956803479814205775717306264954920067967383315206071274284707414228647879242021492453330544452001939815326463244809521430050931816372295960785541599853729910108042877597778553551730094222131358158302784368542789126311379254786685273820176215146693335620566995290730329944019705796607643525570279848086865851570005479871140265865477589559720231758283048268152985987228670221252377222134577760328307857798181880578190973106911983674058084554990546178520764405969634428726419660966440095392365816045119563301467328427852797379778798645294828333684144790790247632802700379932070258682396747182180408591330604385462577617857313544508624848638398930185833134820807653827071045691030315884398653212586652827403997939697523649332336600625141551072797761493956984779814368371308050239815027123723997785145636839552237928289636380354921001865648438841110828638173232063067178751862468217732344983846010825599899984241204154121663790733143216514526907191044328923594683860212438676505295187902593832190804601214254187296779032504068179622877232054934272110702759895793364130050391077212580071923791972688085563056908118966748690805541633635772440440120410689814733005664219020924069493954469944320653589187180281127912231535768059428116574433599459634772486857001870882549828631957580807370305503662755645010269165440880760258554697921330505199035754766717111053482273784229673451244255851638684572620970675039326927622905288714758524762315636804045755802135812791928415395935202197117673659209751377156533262534961313940953207085198572224335367380115286615187930797968751128892008936669649164939765952976163290502566419611964646709515700970298905967722449669910761761032370212600911021870731333837462714409932056696023189881505278614312035646569262335552572111281582905806283755028091592681959584003749798976795183529252153901495789509994732451165638385342643604234610525760294336469680377456045630258154040034249175864011620010131947040681001791801801827531129206992906458800433943748545431280818122201084557127911430948439087355501518409290928903667365312353517286235749054811496922238658407086067778801559405349388123914081348711909338152897492545542560087295737531833585279699529236386790023140057954196101040236242948337694421881439973161262339729814849017796714158324358330264841643512907887526354224308894133734262610927329762861649280854910740863879197539197958931497911005964418154996246352407866564585305966304949696539733103355871502818808061222292435290883733144403811559978481936680140850077451139945314674250324452818415039034447373886484603734381437070740294359512432548423657804198809567784644841236569362516006819752795492156825863661879117199230853529504670440697222231621651014698387872380637135940015172729346415636950401376443745406515289716893841140232314609720281265998257106128291464288573331833360901349331572380186854542195918572534480384185008666235349501439618055002131854209053964221765317267695614430820860873378610446295449642970231542286662889461707497504960662022146135108330396630852717699704387995265148760507717333576380337039800903880935102662336915911384426010121512352725873984858322685393560286336044507643876288685301573893274845047280917047215884633625537365121160084348436843213005763656490104021949265350893124025933573105300388488446284799020614269921371344725905366842657480100027418851144799693747549739157844423820478492743167747803850882217740724649071644986506132720753190359309348348367174630143093078465233226121139530002506803510629525614293605410356796095641115438406202038460488205928189248806593104502549067983213910206106189574389653814052898636067107698106288585012844860335703646238172088063036519358345243144635449651414078833566730698259733001852131487504023514801520342321527480253111071526448561512790392147396053993760254488558719770995565182951214395264329310579058834339971654333776987596155136684784754078898819745757380772154070115085222470317207232472840489536531639719968064241609098931668103597102418374214207764413670222511827798059104387064743868577797978817467737339932251308733835532000156766112868327280565722558897140941784847090983336855974427596477313788935263462206874078672769516021790978854873758749011061137182845649101491964800735864270200233733138717032768650858692940888563290576347390113024575429224785138870005263620682463469525205791106243856339536589697364218469593959123948173897891042427021867214050440249264176264204563748469080073219640212309360065439966225492793103005366257551316833434473585228785852587168029486321363825309428045972951505080613409055911969704371854195466258976902400115341575769793525073087774207980933219715411462975493867173709124740151062797810889923479724381762648352111144316858756711232899377036941429015943773606105408965329791907116409422123560043563087401888834338409872436949634666464007098043530903001228445482840181995011519327538192265347320342844989953733771054501653528572646664031384432690320816012272639997033836626476321453555464667665056154807754179029673986648719274338914817617737848793573035309982831274560593304390170774982155097571315428408172570683747826545648222996690838506396634605953085196720613009440138093629236504525103233670062535797901903761956770771779124401692581392604306550861504242078710708367466630042657100142257133271304698356339557439801911557291519237723948797874060322360989773726093745048131183832593998213076494737515354235390333894189537629391381061757734114689455794511287081662054471629793490248334477664453776093660103819842870708332598795810418260633965656390779389264900795914805680590742712725696658944971153258737073890717541414533292024885734938403079109507025432840633909612202223832748641895017904275457864935025818266991832034783771036465380957001198895915557798997667469648664214216222489144375562847690793287447859372768833615657795974426394406139628781585414695526411435522328033717464273127690505090281767331262878029705388556746731287666324062421552026511432924233558402429093762366036828273137179883494589089779402846944055429517094655710014416815229996333968750672579103523885736535363606714385192361438260975325915251844105703645729297161678736959094055601704857466075164973679397800157785269010072385412587926345234799466840059134371618273359305249975195861593638633838441048374723830957010660486267517115674295117251960113760146902005624229504897337797882179367316193531384073460629610025906245294756747829375949904853674951688622479703131358375075518795468082435725333651625756657823913838928309639349190112125675314897862322388241044895837792047787331521964783258741368225432849801023029288015803102957492670419829216730242396626267809092756013657664679897824330181709586119769493708087453857288051028421756575174197193509132788858736106374025514269459016166242948544735016849276331126002657362478182892916320486239931998601036533233223622414244946961711725489249224924376024562870430644779638019230605206471126288912323480333577340986424146849881253372081744835634125202026198144529391505987462899014759532986763373522940378447638781940538246462014765234233321167150330218560835663827632284425752409075618715481491475260857155589542554238902619995430038519101499747704260360730835057791999161208854276908647868947998196971519900848159565277053338377897442133796070954028686489751350220592132091516341967479503887934706594629178263510904272603799044946437039704818602766405394026420895019723683282254918813380503781456363489932595010742775275130206902917942290871504895808227212981808595317169232277372570968695843204403626354522790145106921796132839644744711804976099117251230388077888677006922843960671318490769901914615928607615259126310736716953596342361770896681890401440442805487752331444671485437754937722258347366178806372026430675102889099141088611870936426123830100298147060306291519219538736610622237915732997297811074602713859746403716253628992152485448064178380570133015544499038587379554882114385334930802493362133189398965202649443997928119707557446221358535828414690183235103254487221124109039154372970983738784468449320228880718815001631559315355940028025697527061237135098951372576044928978585105011412947137126980602366250953150334001903043262759402156487180359233228571790583591374545647758778151989161252129962349289645545219706695253412324206887765317715331356686342880963967640062651134881491104657591570926990090396961673622730769847894209470583806299536882011462328876555156881382026278483399990951057867644930754439246036206877751668585121853534461579012537293773959162600751607595527963881291813154147200832891721858178366549281386182994166862790189954914508264084594212162603393195851921305276461344760468381787236585028468540792510525247730272212556678962449370831246219587325528887111921496163984237939480047038775790667424720436782681258312345946550912122784880368334600842830658452957604495387604345224117912210619315733584232238565551079297970602404160806920237536170639450380798309581545369522971909326222849844474006697333389907334477613434272918702098122787233475664334282957223768220290429483177623246628575954012351076237355681854206212444404847285558121609297839352965187500592956651587547150873703580417798928136659721696884388071696142403254639728439498567218526942121716706651102801006243247731519524526673346773472846980133355651679919122538990166039756751438473528806258366155276895526010158779338606344942498656939765901451083505450788467135946583442867543702453761904207847891513972453574091594952056697113095506677496845322698579349538579970328796077617828088512360477626077705299798809501192751305926494952188267541905504096002237274422076361415804146161463572307491909198993913240159161918702268299526395239317194526103458157915226840378254584103069671950721548271277609704363131089678669674294942324681013466657021316259765783392214194028627718692142985471303273904762368305260744103917216394527889989871607106831797779069029361596028214272969795685659116713674128311156718496455059810051756286619389390509521631570713279357579189051170923965550191731286943304493078057124776066124160157431948104137164786715740773684733997832328243805557825054546753460559097755337939152381382137922244636484915395804571696396184751532442921148884115357510401232914234689852541835733567557561818825767329588647162241600648640804407862819359329755284448231377463567719751257674128344331471541285030096877982684733587805983603102114847076634966753876442487994024252768168387216156423366630035297647368158082622130754825557378034497661480722286399529689479185153785865570311898197638061215109915052248662934858322960124890634436539610075700684176037793309647240345844770473998790706963474195584672076967482874612788666326252499194945635379758653915925844875007185305951332543300597328240652007053933576581320669103294851121449848276370379229915880890340798452801942524724329263406374912735891132573992201564310161038047146860487397913918561644846982493350075075458743845776721064156437289297799988810998382964430082565510827906848388498953490567971889099314534946568383219088947259498425051178908978190913991464405259052372245305221903034314348065296863117522466939222061680889026243939765944622955493125751056741287319045783400244233259336113752849840428299906919628152020850064447272484052070533763436617654984642606031864686663520458526421546710428087449185509708739891218972537310961227828913780158617037726023900670842848664905594081462707525536125585733624012017892701771133825875003942964204283210693391086258066375126898181347152204277519302337953998220520419660189361062296861552758589415277666759894815639958748543538334753911902240861073379118805193177134059619600287933803467321283748192081327417658869852016435788927551286298131043905990096970091541466911597790007555232523520623874003264584703498678749895117395599178744359101540648287101068530206847769075390196297851915290869691483343801119673492732222674618136740581509489582093130625810566597357470492709340079905069638729216831400864742494253330988393209636839155599094106779320300466560700575465726802729174723226357709494620855851546033618029740773298498856868112715609704059041300337235876598681060731895179918522409574970984095520897677752040478462574118384457011860101660211219214142742544238910126286484810388101006712642578977788801735982656383843014102942292819731189561700169437348751841260729454511081382415100454975492557657836870987369930932287947760178437177313083997357239675994035949079390929260111099542652886661110182275207433760923806693279210027791750179972559607297426175189127394209666315090834253860438871700274014473246571966290814053971741944735205775411960693838051472560758784403917184060863069996560592123390106289290770042157544134529802148117394540231534624247608141838330731651212238230870991228219381914784633548386616634342143618679835412567615922902612678089140665151304991223154275427897846020253339652396908902603898155887801043977496556948854627601809137075704461717891943849732009886990068769543564399900295608073202571511324564014400410227032467946223158993949313216024371017579648940130168823555039897222808283023866307326021038199524004348282147781757357955980501573329313831963790336430796549305962646303191167098167215057733405309974073843655900383447525474172435924424489790719523641668495017558790691709100739021224219010603612283141439424169925439280604040919316661062392843881422962024800501577553367988521608127000731109616331342706501108806935893803658092128798644349238763238894498357749812430062910659935123500602141808114448073923134665999425588555716022105077594181122919713197690591322127511761222939688558493978058394750039782869565393418678719433173009158010124387671084006747509569857962261095364434827835881202345632423277869799624275479490861116917579361182992507856478392715298943658565565930918814536223698587161375374652205008529063508442591148593138503240994260508089876144788064584100203199386184177954594931300120666732328115453509550811212214986796625817479989738897467226362468370536807273449124214905212301545629538566770876099000396951201047835200332163534872379690538764248295507058384777038400276207670010267249521552164848459652286321375846930282380239005130328587861048544577479291267918959620590226250084491710129367041932930428851762626955921558129612340162407237996448026083442945478536085436740324212791508019578626163855491056567929214742440945801189640838353532207355879972671038295191062538406384193463260364532292312181881251181587345685439008949885268336020703425668587312577365474598245268115054097334455858152323711254967929919263148889546816285520529096591345201796424063219991286055711554568442630260591521069485099908077728760536111582643521019294182292292037292864747401384702154219825743132704007954992906049429014722067177203320780933105383716844481786926503528118166068997659423486712274142013270327930540494571580926171583483667619824042545061119681954290667413676466298613581412643143188400992452323414545549436904789602742935541072114643174991306848077068694317372557335776372341509432579037831105432115393896059001802832845395225872101159140273983737059409629906881938864100655270253924097309738431185532571706292626674718861050531709420101900614516603816230806325639256299696202581117554467289857762342182966633914014754837917156720741655631158682969347607357708899290822394465372137343265330580988862544305112014722611839029956924112316839745242217716359517136581665137935062923120357888030234153770516187665674262292823593040437769623134579897134684643891655652692790181822718527235248470962987611651808061246398014672938206184823108008682969567667676766168038339246700051948016367018073239221029646859812483460093645361311286650104058219680295415560694408975596418983194269022127613029205290871811791948379985810675696283181412238716328302295062786877185648418714040676834905638854205225849601671466071704421444729067037923384201982119963551829607713893068511853271892043682658175116563068741966479455982673249072802337863829637203676158927779754810059893858265453619986750016086581559077135957201331493578026958631334147838811689890221037384200210310925532280228960311978591078442188080861358202873415126661893331210232459442867757966457376059215074463706703907425150406132897498096175936920664742684114906640396973432116345620324790918882225992449539651893001610409905107788672156673897265801909578445696791796146443747681324243814482234957352303068586606853146669376644105932252003533472194231673421829620044426631750465351695175145699880905514575928892237552283842784572788951135651803242139375960762413278701053045410241628876895201638397458742998036072178452600469546536559923446865964844864736374622935846801532709701665749322926137725860401378179076347836383647171606122574469437090491291340073224783824464713210509764409239599818135973100383173013890532218578332088655546760209186663025070476101690051613517205667997411351595632917451547255305671853780958032091021506825315311952837746703085208291249579702879477188646081508918521755061127353627864360517957911765242816700944063179291150124186584879736630176485147748078600160082353044480720476557180225253610029861119649898271979149407178565511070577986111016170381905400380104194467743244065308985222475396979186190020712075711166146435502496810836201901667776541600521356795567225008771456181005152034702377712626442759987786613516683925225242877808711689488203608064854322208919598598673187085875759311817143911016398918260826340889608835119330040215199524011127598286612418330345024761547918600883172540862039473622832322201279450848963795364823326880313033956967683870852561099905743515336659655148262722299755612074869342898346425700984404113922858643574417469495601995378311663960648448719131752364213894453380900300582284284018373842164888572956270678664006924282811986381697044738929182833940086298164212500407454829246536963197871547469961713068698898589395023366188975818597791933464649871258782907348235744955708029692732049311320402456101359299578652964474517826652993077011613239570786258871413865085217471698672755396144293181906826024362357373042605105622767987647252540918006456579238602601883209444854669829030095572464891538846018128520514764843012548151494412117249742337139894018238952665769131398845291054659658846909560521226569726544133932958429597109116587510969800512550240193207757246599865757155245757572240093352238743659785651858347772411301071757855931750373822712307886984904200334767428467199155920694836651928596088266333858329078010075459670932819643184111404819540159803496132582325610668520477686184263086069707580339709431681846106277067940529049091650301031900457577174861207085746115335881319044256119029038130144060185622104308084648639471667689124839456165160731475966731293719193706910969461982002380408338451033975613005748699976583429588312864080947054365005230190940879757062687849203609781563976605314897573027438669984003138315116889893106572766080458590859756347647260876610802460303211143632249798952683899693774518093026372264458334995930836719386600047424927881890888082832241980733766597991176339768412096212579245935039241968603124381347179065134819683900053043444969770110359679187137505132506043013713422598474901665195322890081584238572964194365308254897001296437116624305426578397372997055305963717986006544745403851600656602460573354486395250510884214880364823666115236333582047870806479003885337704257765774603520571476895867910222399228276422024017035758556699690737002204585809078825837125433318247872861156872274019143045483034301145223365530823376832331781911038348328235371066432564598207682882022019437661586908310796362694223144933887798540331830056157301804014616913550488459561121794550551843673701873849920374792200947386331411638458117812038750572779564917429342643925383538617455634518315328415683668925783790384940351944232814850877366018592883664864643420633906625205292366756787051738039419000285338077756909101137314751149863040318219409118783804262521076794551304346817472610441678382328189750652254160978193184430272996069923260554872319155479349876451268944350763703752755631503425160277126716955657311574275286315308942052759459710074166409132527660356695851019980440555708539536308375222100586875720889955232191416122559398395867679178179407022913641807307401192714006405729735477890982146418972107605539561946931478075220555742527921253955168119515188660523645881826861498560128044017297580259026725929611839689226849383624119973351355543478654106277890596097379795270989905427467972138486288950452817178342312023391055281589827258142784894014506870747640233766089072220601701093121394791188914530173278019069783205672743041076654272480844936041635009034935801052810094410087322118575524068839804247187518358509313540798322332476959349897217520201272370057358369833153541685962637131695958655003206382537661087976565261179668527245511966069931681724534434446262751809393730365988419251417413251523844415582568747255159961212213035532767877428406247821414403841059786634894816790896806521194088295648464668135114588389183066768936252101861949871099570470350579743672178639505568990484030005300231335918420561375879990372712676557126237110271035113546165761445064161406797380712603921741546149009204081138426618335182356704584256281128722229429219111378556187841598428721332654576720563130202538076894717489153411460364734864593624021960002641898997679877872839903254959887777743948536079048117627450894646678628262211899340917625682837923908607630951648472193404254340520035108235711694869834836248942515059499687977131299680618985617128787132159666624951232785394810577058899911523347024339395282972619506649097679375649980658248618890046642507809347111112105976132044515336201456362501524923358157864700133310984195077532088122370916208573777138344842681000770038430104000777548118268609692222242511746990571510267532705576892466882785397244414062730156245421047885614645489465018294289939296077755290240901099537953395457098369213721398054806649346556860984040610002756448814122519751877310264843639188493472030443605770574362389103274175083661134258572832061773941908537929404689769979815640058491234245484132445938223421288625865967670727420014312380489820749100030078671631152145516456902170715814582188316436526999486183966262167281013554458850385420835571288408421255646910490349553313017332874384824916575689927163619761429806125538687820224319964131172223121792006181604978180587380529425544466521445513780036172105693426234621900989550861657314782021189697951362635098994722561910957759919437634815287998933337446969765044781721200098771288776124171383405560278843676967918084872865820561147890372613597692958851195310982212379055580223596201270776003758303152414690992269868575732776136792488117889989013695521283068400410323454056056447247920990258034045162720722708795094634296951913579168056283472058483398184365140168602288815204624373681629636600748231936238927143713026856594626922052049697844322080441887961898176395489610706201271371168146914809059510782734166132580376217105169980552071223524790187212661624860370576789516380947352419417770386308011577829463184057998699316865538421309767072250020856121534088584450293584511308424823517059689159396886164320317381105928853990298343430048199022022363758991863403346055459849544300484058309797298268135954728508844484888693967873469055878934995589276277628893046029307393128770838922367289731260194763170816770840466920323784852080149947001394662433076708786430133510414356656602214767914497394331284513595014869703944321894227529597947595136246879667509778459155392897892007786613982877398842725301167378448570825004641728792383483377663751828097822478834263117807689379472289132264007491182322158145919030605464536995782416823515095841691262431715485487689812426386137007202782992460401788074855798069145851366639733207210843611050331496876231395217853276870082006605576885909413364943706102619434074464786493604599090208573194901968678566601464314065110472385661556501424544068605937925873564152353163873448127840351294959831382551349694178001409189000401132657981668099984761221258454005170014971465745873497344760102755786709452692471634243864126563287168453238079110331573064122972075950466379581020997047440284539351296703621059289545731785793311162457707137262988759504479139492511071485978168586401852082878642453905526714925997882464092420612692677705240614656462513939820994929549060299971601482927623814629356600028794588287374642249623242086911392211648045275486096781175879626165758565399730404333822848032998057988957042175891856398176432218456793845520173710329234127345487208684447022080261251415338669263514262351684851283656802112988410993643204378482679188342495533410039795046406577042590326512871598410430282807350021537307460248530253882753835269283482538981653097942663641906060811014989563806154403473076127030669578457995368369334562881703004548898437862746318926627456115776494281559725719124260467540710795217530760223376859104736727312887886136067498506297150468693550981318414984744691409333345603046450471093734000989128609584030515876216609233456166777809316959026388896569874308191362538662176111600206083163418719792909156220423840110513486314539189037632808868785259166976398810665095476330866427261767799795549231246669304929788090731589404998292924941317168777650864973250976841449768843766347968992552091959831065777417283531521265509913189649900482700965818156582024993889579940856180014582836230887620536576687598694092952824663066157062600011297109694119930304128064223942557642136303380427180343566276165977918638012401612638099248384581680459041422060719151655985344518984638812788345709540561653480189266581917947267874078860602618507383097423198440834429387726351072913570481602777625743487847310805230678597191440946974299264706229078978087670885631551563034934526213023279113412160649622700393567806915281521084869842869799175126544273081694162893980655020386782728966203856820873032013191381227045603132179046331514406121697034404194017482671209944223614583601859632889507304853396311079855306022532044846644838463175046119236653265285045884883698095808878829342651496979783275251893872059653992124453556413057394483316769736992464311881313438630824783396712129877116226247819930297765316986930008849663815006095836161095375548667871457600317442904181321023322697720912065302997677594185389379821795844602246927266068735815314397335583475191892613103680494443370602629038545125863620415348051389259406945695752358919956209707146297043904000358334875087430366259849636900334246206747416233053979521786010699649790084422048792979861951124649073586261850710302731305307043981815860313359240623594697727569256167165434002945259087377743948133504620448702685486834412098548312181133234857766789584324434855479118387709859556511316661735737903081460217645273860017260032873966891816509952690113880527400749179271018497934644262561175128741890905297808902838260619133960988324430449913791040894425454716859171033217887699380658232827141584049558166703559769799178634607147319947748681793522259754050766132081176455688020821768334073920934593084439098499716598730827110400507911311386938421749763488266288734897657371512343347865960915821417581973237406525352837817070668542908305328606808713158753953501516022238014508659537048145610298830473545892702408683937485891698310961764182205723947272400804849249290363254112577031812527688032833270269157603322990163925742458391273961423603701066331366267662878698836793123770241437341653051878836623773464725402324045117065884744311921865039213827998678636596405891162260435561125082758956659607520273827090614473017234515606872214786682233263394254716489317365414336030418978568901436807578659817696582621398905399608228530650638750738415065554627358328578672762525640414116699050096272001998647518565298396658272199205364519670463144575899834256021792067042860967282954147671750960647286762400545765904790057865418926241735984934697336040443339762255610224830955357491157176363016081044223920237362133034073402636878673254078632513084979054349041844513020110485391125699820522391051801113257106278039008211522529341862210755365604229016639898010850157767292157187765728980337518375895980917737130933468251734374082550071367654816354885886886837101180386752001413994683331994067199158230765722794416762493638470547771536490882359648084075734660913038783385543105697718860791276213711001160706121762662580878681738718713599274886011204103875059752215420784997476472007227554539046505306381525260624103553518338891234047519659737170831419247983803272336780888582077930994710689352078765011754565604373841095974981520715647988622450687928562216547469112124081688639905381516738198039314170062345640526138843111979484879914338709436065607086264410982130559058987124397758742017250034280576664566838407716822152155944850939325612739792562610423145549174891411757097898899843612345196184741872908894661320274287362088072980495554942487056555953632998390308296223662565455116705158210103787831743683858815245518958132415011821675460659503399993336759379494691850845838594738145512914566208383300030094312518027721895505313262256561235786281493036250453625435850580727031441043740998036563406255329128487640527484072171208681797430446666762011330400540097882629891664004230394732382610369917373220831370838830949463232829457304053460280746583594527184459617689334394551134656743802506713554229238045596157812855692951598745567262225215067363099358105576891202717706582330315535374607012774164554706087502951860086243538281792352084571409840295827538851515838360366807142358995344213236942055879406299585185768736139855708737179644349285787013632919703751079496663461629353557121356373386647508545047922760928356680689865581095168095361979349870399206668696865872856599376074259507311115412954757719637183597808452314848134214851911342953311835209575478445818323485368546153931132280419922922714443550123784604017243602339868063783471245978695223876006893303857354837145981627203706928041013315021497240371553613433385624903825589482730350553526685439950397298562560603361402133675988527294531833217759531587295012096645390145036973982408969064803108491317428260726021498960793741439977683877552920280873744024829894564442502948054197047345118587321185385525317800230352434767582839826961092871004034389752068014644778718170429729826882021426175785177662984089775720869511503906629027264488545091623414236200961864407709896890060296061899644074818343173167139534106896833742543379025998662036484066613648848929927593435313413726197159218942879284480609707757482637846116184361473241199656921555911109061861133902438861455355226620036112965221765877346586984734449352189908772066740896276671087786835348350999949103077452114583943826722027791260646849206543285615803179350775364272140570053211934696915453891211459072844255731187520565625077250753017388216532536049074189884358871679179064527042748284446469006729164394913197623484084619193818119505393677299980854510676048264205656703011006742479529660257655777816540734548657935968438341502972502157657898537036405534526189960144383070272744513027012957325068531068915816392789493583946579612944194628974023984484148199008273472332918426523262594213594126343762248493631166282288032047021754294555012297777218465232983343628151533591335124103668912171515903543498450012104456633904824383819305037417911141288025628396115778517563782549234087838775271525605764151289937015464447556279005237856207330835300696173773592984551527707209577309624184446089682184854274564273470448371510868265334617298407340167957963355642635602240822932801938984215034413305167847952483817053817805123375602213094322638559549401376666410700749192707113322655979227219559646829250394603698221867635609345851083544118170449556005162454761738837221653222035395179050324738157218247675288417308630531742992348347900659551209056832519122908102501429967582340690681020807915486328776321763606867529708356373306473054651779057024558635525111385757111405974320524456165896960975400420791003833599569355192870248065536646462302137555237934551099762245433559442465606720494614269688095389720185699975860846460913017602578398987063869173722676425223058068658609715194803536636619244924208894970307852289427814223060537296035481725330302896606378192845190981395364405506806189664764002692161646332977272949287969978619927336735953559834196509622941708292633794145688603251319453317555715376353293085238266026593358046670467936040791106489934823391950817366956603181683997609069878136390378000943357720803531038339962371451812979399935595554409235889480693489899383798167200805841304621392674466506011587601360981114887014530019818389272292976759284386293537418564791725707909959041070814756302543506734748360535015240537285352455452773209759163164043104338906992832568589059091160298792099470747381933825419836671691816076496691198117061476957062864049580426993609057241915631599049683865696874826497463243793381553735682376242494828507547840547322626078876872124307080901033748124246492197122362364513471521716936589167154450413793138632423177985651768849947440278986830038902774512421484644424959867955369184563249056780331291393937750814306570722135703557202561125000623561584294034080775311933530031594725195226098248036858416422463654746276811519021466259149795059589789337709142212778349289261026284837856833489132831736069825768399399290237159679130116345345110706661621299552479024486096012791875925334542525030137932484608342218832242466827412683968442321006590408909631178445138541185571714092637389117792628539639999606137043691633996429952395030846837109623890285950358237401068228243469827842170315569565239607411592838817190917206433766959224541096876727059102416264724500539868131854805792059072683025305544671739583989377559074193195618256320714897392748257501737644901973039447250290101725484250384501036475711182298887943280121218634631926406474370447437788344748323355752127408126072750948226031299254655125986445653867310239147566992297414769589151630004701396556585344987239303949725227293198955772314865217332553067717168615420005925133429696733168524026806644685930924813489401773848607408840719887347113689801589866692079981905535017188065329475938245533461749872555079389054250115441972346833004301462646312399194971526951762012924520411356296168643557944484142550529369251804963633842053216409597667514285146475635767837657691157721470873082409569396580485278831984898862863345745787701736476514342454592065279067939787393696811108391541540610660253915801785062370411530453909527792016191003210177967401767543338419991526632863367102268569563401275594680557910371640717864465008499725836883109990265888668972681810365742327108634891743154204669018083776181570530713875789169790932897631050746385724040571910739513319576738373203611528050582503477077941917230709432771669145850420749049539257189136064956934430600086222015314392816006987367538232011346729220654181990011178519466982416935279629012821360776142463169918439669993433971896615925554263110409551029159784501613866837065209845433322803203592669185378217566202962249025018760623674798039209382426000828845266295690125862415456118281246845351719337002847546599656661504068129394592407537788732959106869572996855503048177259819961411113178971448108984932800171529114478324838514739402502986850556689700324510059881682874759636312640557056154143087239840018618431482438317086277475415101249800651021682415088160745741205152366587652955223485596309127710566447726354971936456189369235103791436027677822189034641456231986542029565227050298052855744930127724809176229896485898774345699905865079655456937892897759611071696434532322183466654871873340253948816784937118577905553982500027777944864397261572794373214519594076394864874387426592483096222626797112381910732773585192604934432869925771458923663846483377315778107600760753023403179934473667224465350179050991757781067470793811322969847143015173740229159971366480440381570678350911912331276671778172751709776644154778569207907977630104634751284206591455622628133878147384038705622618908515155752752559555251673277901579426366208520766491080758279604760007097472932740484496739019601704400379284691841547850316125180578128966434992368535463542704328980330736226388377327835758573360218040873570088617916339497240135016438361878290678732556758197639052029041488544810237659402011492084887174979086374386983917025401460955229230450885625824029207947677169679653642946585674238026520386689103876999941463490635018784508086840424974201485745283338729917705080053706885526656483080292419609261795763772939085428596973788304105714901559292562109575050134626364659070444277644170806639955672645174389529335518189991122173202727360761258015470348823382894712636523424655269961387612762171553517208249692911902679922303608261594184963401749423846418156617290534003775123308488151469462955586123824815931580829347249046544205707702454052852434473939772525816684596232621237842309879754593576062764769726590585211289241570801361485746769827872935313564794809272557667275741937054390688333945109384288157437191074209891652770305317853639731243904024394615284691884888489395754241660465986568314436335199833073682788671717712013332208935135266748783133028451929671790248193051418332590368972099699649598498907089231785190302172330358177473858967060196539469188082639382736772101058590623353989903199060614807245315159234848299159841537103291195478231069580121145031502360047900765428636895865567343438629590357318567206601534390141464814547983691588031749943280481796177882034762388935027574724622460923722363000151993773540964921594019181930227624225869242401082153085827917466888843214812930662662414051639598905804229595400446375157512305308157897787525574395895181573394291022187718773612074150785454241459244115255233708063216557603898462661708586623173035481796724637196117248842768823323209602090263301641015763882775056364802667042583432151842462084441788279758925397721952659075387003809546117323365762040150664219280742269162395787108336018704076257293253391544677084988827160954606136000839731802906182405008459143262251083745710077164278474363798478253545976329333863832175745886856660943359477247461771428398224361271146479785576058308213761323770126679084372981405110964970102686074973962916112748522135274811149336939625994913915504084957298044207390148403847354666299492520268034559339753911624233785960625199843387201528473678127709713574063663850675828469188909747256606428605167580603694591822100061545992700628880633538836165276019092742021943013378013630146466863869802336788623913648624769177910869007953578377522326757611702442559455257244778274751185687099604316741633043649682460886695395740905090005556370266938604990548067351929320531345899345098980399312106931309734455135518997622560166048184729130777539237158102152531276652377329758652670248336803274524422453967561654257706189175883272612064727084423673782284999372686115701590283735518297969196081983164888224006693808558030891818001476465149879473326758632170251598073225548168294698969509756363572367704065801406826527360228736495716998764156855831321902691993733052801882638743604980155205326654499666113156192068520595282403635988521981844869140571852637324941359364129553361552480249346374345854220468109163771975156171000102261715198306137824431453582395230782958164943222144198857205814098007080198127000442926509248467146694473260870919435427933608407946250225768002655238241657079024718264334013187292953928629610212302660677082874673666980390643016302976923995714341373725336682764716618142367686201864228039060360978387571225956655301661592211977710126094044783508850972786738741130127167982479751202648312718215735400058298636648462089530959434019567466333259723947543930617816914423494100969750897093979885021114764119199450906744655002504616557347970102074778968690166330655180025293710341394287746307064269865427419767367016150343217486630807951326314009738814452482740978826022722922076071589428149191470714004061385080268052878410690597597127819519859548120525873048667962046663158664347676740163640106798617330286555668070788618078834447452935578864958281357632955408304204954688759289242076886935601509246449682326618833149847840845986280706322885689105772647414389510566267285204556506101017618307661616145160961293417976827163330565406773033730575312928023448645858244612344046960288433255643825857127373191097147811540512729239147920458578248293449935913569149351693095484659531333166520624043266863280830521063168421600680902648912655311876782014352702977588425793832913701174957677654344105160832413393448119977883782458734526601733207343885603125863408263246825176281327001741651826412882587114981817454595207940657070646328404757785342600793572445843387289685000222724051785147767923347796315578641745417896052886042051925657626525105693794020897442957738654755935837558957870792226121702021685226090529390243664924234429941483807949995903480228310144413388979439466764923802815924596649692808434738900976182294016032867708687592478769098281424000702199019461968280682423699769463959711864143312233037822072602841575716589893279158457248159957580438452052782748396066397290945566445931386504662016106641774385099305332056911202384845189085586988619079050566432536126213869804976838796754108884566476486375766548321586918250677380685407215162758476748650714179313395917242100449284791776367517667083350634134596483654824626322505077138998397403488000560651685417784418914286513973339684350498226360361738777513606319278725887474756102839268801511388765393888951140222230240633152102523924675724181334785276120336693884481283212472096582333434987148156766308942257576183709317296496822966086126823308167638254655782201214755201869564635189400598280690421074463051823220130932376601960828359148817592070715797620799199610168227324251843095416817049187788291128921060299279195962718792401687400474351018449512607786589310056397602667855740858919832228402019719713906097364857072838030885902319838807076273808923617021409153958023461518116626203705252710375604618978560705623250619075277395374425256561031000004854166188929061635015831308479089950875329499368708516114466435158187552056960855062749233102339115432510959236125085203245580244513939637589783109059601230698257997019947395824634325669581499742665711902059736711040884528111533181602945373872327853108205988123964787213002178830270907142939374394807412974691656995275239179084078430366280109686130429063149992753298181247452705450562095318634485985751346225428620141473762055793023852118109471302441410491316365790617224841173697411600711138098744521178119279123283891426063633970336014555867266771246918019250406598516749688523467914924230151720128271175737563599969489670705456101477192970659477735952151852657433650732255776992643439196176730866622728880935709232436513414301945006668194131968628739205578001667787503289963178326730579856996326645216300082518129539158415540173351308035326258069305761138419182353571042779076004386602111293333374937879858948112666746129608970009384983846620601230645544248539317966069071054686930849505757869211947659108097141595175130827975321540892311299062029907569600743394425009842337836470975461917475738888581300472908279622858199427344011266423344056160077611462482016022359085520593467962562886812048148489887028353404523264719800402930595192910968167327090891309312556120005922012493914871523824759800610015045342908987928513275757963756254977158749403520806753966902084625559860858418389105577601488225218348764631208986722506490033197406341579519080165303656190815537927971132778412335072370848800652406003307369453452899975400654747843872371350154522360339629268565725934426199422969846786204592076571662131724222088709660845084285158643077182451074692212641330441739359771863143940772218733269826772185829915895490736597815071228228659834744163708292095576493506101311802177142576142757388508964483762439292969709287747926475913917601727353622230450086457642837850152334731276967477502404058723793456967757506008723018258100406346418855673732160098202050891080029841973527632476808916691121920949338190085493807535432343721453622817950057138713977526848010163544613174381426151561494425272101105097767236496236837470762873932805782938395294265530723651884162585865906408339897516453570890481234522723411572464723346068396296407719996188460620319924105594909723324937322877588166603306833775933920504812408555531720991459128513049401916186322981863814942428012165590629891488477258567228117914156179595585283588278201034080378369824234342858207884626089429727709038070169512075692664886342995128172815504867771586900914767722440948776506381439102294085449879432885385697385079122082098894398502221327940054178623817779022372061549652223186502715207275830937582629957359203193113146517206031756933728514346799938355752665343549494341937230988051316923781481941512742450020098810693623904887642153741672292902244866758765399003011369530113309061921783527447460522918799636816537559009123183415127497099984460420640608614398450081711913170975985625329531228291445171134209591664596474278243151166170400813885054339007926894354465225278310391246769137204379864692150615084573349562968150237894525513984390450904675774596848603824178637917213415162721285677259017192736309696579243528750398250461417259473056613811759842528282604731097378840442852753158818965929823303856112038908871734890962923787119862579440887350199724364535593483399738250522959845197891062742608804200113310349815368273319981290338869537069707020992390363923643215403862461565418659422623359169735629005500117894492484018739150018248297054464108565508418581224073529349639070611963769374381988368011000782587390153032973219159900104362689002743583028568275917931300806059685182104018792706814421688019367774867945273068830178881809806392272463441009750481365068188877662744536883156814530225169940384774796120093568355576405554605936941030741150447935319738814410807307578908784169556656225379035699242777430749064484597898911533337446862070678523189013861536808708803097641505957338872273675917129667412008838283555605042663001277515468951478395204151019854743875364965314566819550123583304593373493547631255403466719062364370785417947505659749491819673558115838042674824273449929286429715459224768732851855243093920954210299320109125446364322307282485046223592155577954094100710998186263516832503990837914165074565745925277598337235707304326796905541805751193429318515872908294543656909472318692016619457247909320394093060703938602965573881845617813968621608830402284225526443127501177504413020933994060657759342526778874061767773621054134044765302954733355328364942548425609440304321235535033566970441167941627020296997799263039429412746622324771391133126215392916460220904773558265546125420250853691311917051768551494773614034768504467560368979030089993763028417120789367305969517820554826308143156715203070699742971314941595510797075270783018510878870798230250550292073265850676032292219649473052291078307101897935301551702141896723325015665996435287192504284479257858713737634943354664058424067394217769127309153717679481416144713874542359210294247181606241358264962695560534980538167463617354955365725997027283445264284262505805203775719500347870941862169033620647797438045301512316255936497537906076170744047186022408513203388555660385965995509200786511021407033560430323851090395372999763023899180552826949420466944685449259752254195246580744608228425875386900723556717672786693695355442305458931404514093990889544283817447463643870486029982930258512295327625706830743028731229854189548414303092433692456562314769930841226428022412693900893484646035560771384678026997134638469940591856323374313250227337953054776232515539857495986525265921072678931014341786688645899481056198506182311745202021502482669603915120138152808125356912425174765200670721001716800067506096980676250664005057445372223503701484828144757870806074320874108263542688779267177101805261561056635242627313335116725305295101214628070790092863273072508894174266750701993091508951157225612010414121777068565778209242512498105359545456783775209952192669776415794076803825716013213098718431215660826879063904466632154072980543523051235956000365008156633716109013363768835370080602581981539882924261238825808835365130263216135825685828579981151665184431872436718304041896530227734254618607080184836281220665704401006347200575939125415975687369666293087248661083791248595638695364257595600659519136684111393051213686775483476187623967494947748254540976406528286441263261561597069881881602265618542464751823236180942606759346845183309492686117994468188652790968272902503192477445262477852042587354057746637788399564513056751523298501144361565487772164512033940526827331936862092370422985067075031943712540725417347178802399256606252374921370141750262844161951393955811727025698959694115005937903635112326277969868523791267975814223943563237922595402333705064397763304097063431491601058623660901995662723399153581835934051575601640535316156431191928909072688211751514147008504534279884160567354684564525791756428335479591898691546744569163871324965404238791924614782662504466618186469494106570102153432034489939161270874816146297326042658018801107837704096820966328184766395400890256931683966081615968939945619809995194728180096822943383742378250785570222522726392255678615019986526492892395424024425982278814565923736799943297658718540906124759142225890970576040905630023613556276920477710409996425617302315578081845079411470600789229425189382022703972774811453184843112585724416415237729204934882921379501617810690345760462750878268036611342675056921791153564530707889669348457077393848548881583266803853044303414425026822743420811149631619209931803746032513037963213836672896784277334471725159099079143901395802153210290152158514058395304040341304200378875183712077789682723508262558210396746982902174765407607961783061274979316274010800703021069705769996618129731756786559987164975826189774168444188308866663870109778202624008762645438991406542625336792054602859960858353916183036793442016489273941484578915271293458284837434641706156929006839646721484917430857575078522746352524783169242656799456041753972954914350755538844689994342310965022633228814510900793252803884938938473476839484650489848966795589789796221000016131900886444370111215219825075862757493064804472212250690432908758604509297035107462429792633336661550882767223355277427500088163626570317843496223839502398723838508369719128633397937449642011814100810811854015921105290790006791650856575427732966785854725525982020789746021032492858275675579082658594687096125483785734487739387848003101442396814344514116616650341420614662603684070908623710040596750420689789089225633831928366173881790235527165510717644649339251339288056365292609450674896824378911787359034865694643367377030631741158858736719006493469305284043737181970062777060583483800364763496897854291100507436546619291487333278619608553829948497541256704542624636861664542717687800993823162811353759273936748354230189863127415536867865799395060012587592501915831448396472163095085724094819746930491235282602083720690977865162653439275629911426778728391868951654830645217303062801795048052950869753367847014057759065521543459093432245878708332948986671480088397009358763635773870379812751840892392863940653012523617644260887624277603439052557063094514699758769938649644767023817258031224208162644240698769570773120781314520834818119694997653877486417184937740820330173870083185107626655313409411328721971813468576370232695838136216921203990621135398121297453409183799857739455106157292191445603977102904105176763170037290581757197128701330721860381440972144906272193489632466764857130182256822763710784796064670944732698459288438057822211679013283040085599585981157954322872971484700291582846936569141461527611234155867146234606052592209226181646098465716597716242725780921386723465887636886898141898352156182733219514314526190833522636689855789413078907984310471113124055609538285768394516082859047796757081038397488796769056736593974583174545425334417384200047989004618090262072085817112047779667352699451838654481883569968816384286779764732501478178194574040816431882254821520995542872801319605649672019434069555009841878492472530347682201666263514507038465146204302778320690478205411657633018241230013805327253074237161283648673472483626815012658258855955618442807175214543547644259579317465963121813208598945941604001663347748399484987032636665271375611742520425611133780095734690005463441362463094019328698406137441871719417246565738284194814821350587844639356923387250129959779934245800301528403776588507447711069199163431653276008814801098206993982471329099885739426632975604098436796000771399159687711539997990779205712716867219962137040874475555826814056361834181384398454639906751571915440428835999829007645111736990953179816078075074851283922906977542646899198154314933618772548397395062026362996865347978195222339314907731840571677946441658306692767877001331774138333630275392739016147207417609711221929243791506007977798837333358908144096325032080158448538149019833147135468777473681956648726472782295522122836136280247705576881296668291155414699254025950792950686596306831584565961220397385051759809697662433155434239183363969686319290909810326813250612309366089240341029165815662598757220223299774005808174279786402226552658144908149108320787968616156904309059681209784931667604865883094001126416679883525363263473036991546732273328378921860089238954822037743634891647873914884971007719809949115485122243624349920151568872483066270375600879269891395950491248243969349170093475066675672549437427026276193090995157765080765736092802905437098942176282104410387225234380535310253336405074516159696694078876224525295430417352539663339499250344324988003721875474351621747035090257767003460540998839182371696527729856283960206665886736631236417259709850876436584674334801994320266799664631640062354851268773251990085057126988365483987393066556493702849229550929376914336049467465535498374712822576064395966708026118282218821918687334190798275081904556878583634001309103118404677742857552525059360224062961064707524519916523091662680906502686871473201501625768351910728717933383837287410821666543799828652189263778338327050799640497924704232028788424430923832113072165343853703730230161797381761075668135609069294998072288853900795221861826611083172466075310470409973633281490107123707392866731830356384107919930458827271392254130148202432849984032278683605736059294469487768149053498784923011571546741789416069408819328630398463185913797413144527619349744804938107363019968214830120762420374114146603083724968751265248975812580296834259734280498880754685310171077981003946743622721618144129672609724821781998795034484936365091363829774650137880140911521230933599612697633527593152191113454145476204845930827944410281745695844180302104802876634605752506449802414457532182073680634420764201803729833032562333509181571783696914161296040486894132438182318307996408436489357881614953453701991927796201487935761141922115057577714478085467547748318088929589095802177186138740435833474157196189140395646750371070303005543668301306347758930863448304325920715532757499714075845875051599474537992380240976202779946469741042112619821375490816626905949445306807846188473486304674326678361000209776223898259868163769691314562672947126223342073064670406381798073051818281165723529434128700515395778395116135190635791692226440215664487155927992326698143283767414317669867930801948378872140929492211220615233219171364386928250344444541271635060797379994526470973634698027367174751206344445383965301597422898132322586233387600194329566573178335201575348580534601420712470563695849960428077421193969542970660226940582815650809658543246835318763639150643471830484409967686718695123402700595912253443486197992542615164602571192850980886365394610229128489723022756819137061170917392856148330493586809527060828870139650123348841553116553034744338078266820302088646305433399866227031874326143957404395070964081223054397761893274664926439835257327497711936886557367643800623747628923178283829778533906216851601670366198751547860710048686059197516995371090196539942964487591865065908211117022912480214103275173843619700716205984304281789109708730862778088235979963074094048269823538245957082739890860659426062846226871046234358388701009895463244580256147385669311147463147285028990227222522377310259359598369934114094389398275717701903929979644517841240102625688087205522917552017008781783366873747547545219685279128588187560567849170934110565992423614703315506754161441789930036805871328511547539876755180076988986512312843537616999899285961345746818247495297648876581581056762459841985425440460655890502735596992064333970134552435699951419497509555133847415101275103772944297899682180203412831971074656413078898819128857077680476301263083130663996250660175986127822805720773796100483495915617886079529771801928488546667386221240717285329382225504460585604376905681518597144255574304473861017247214011889368005359033061779891091977237260125230010149393698495086411010401659220673997499307120051412017238806767571221579446624547144732341247480650648062959186891062836962955937099287818929012435343035335225536997580796422300553383202270911907427851457741450914046517337782886080969414094205304003333753672588911494238884978608082931802527837638109670593288324601220460145340470766162176597460001326098563882346077070995578916319165898608070256198974244464625828209310799869520296949467865988964033393341015818291960432568711337691618258886802886621788040680871418731786062306864869500889222576041768441634812467141008385514774445159665082281394069851488261200748203606663660386070224150179708436123793976040017629335097464703572985591229740820917662268941196165944419501246693433592310985061776038670435803777769912643171863508676295683765523085741791926446234862886431259906134666162540171120624164322936289862383402135662034753455466725033252279635068921093717304030714224808047480452823125445543302512860176006536106044710802998664515903270782472197020341633473811462102610495652014480926788620002286996135904959986852199770952818231467085262432989828422499743981908490193184278561657973126968033314954362337776070994453233369434241757970488734475349879749672338477520439055162459089286257595382816116415722527364412092418962271459923484102131319517244505157513382250696040406413702553249378117929225656155100978712421048186126401970614597339404225525416925191132954941238273249064917984135421473226057000146594622890372312761414767754970117920699062185778303330094019141703722715091754749203550938911064703599321992547785063088017701697486070248600306892876694686495375933867298963006844308530529924485622688905621025209465849197514644525681718136326267257777296445120967645595941873501723565725547776316079334394892525318355733164756624406950067530501195665833539478582324274938932061955639235459791695999062449894364834703985686610023896429682773758518351302631128043432457025606158639201901632434399103782047431922685759381087998757176428416694414547387047356801774472109517613443127569105382691065584634563908286986356282472568152251926141576231713564175342129524184916936849948950530443597095170608278339969439170024544568962454586535047373646743936925606627769984998969736543763036359745385099025462261924496810266070864632995116510080267069724198678866959119840137250139429586669559657455597003002909072520131179280491452087006854347098678480187582564073977539156484397349130780213276854331451653059741561645488933964848106333819963650379631191177062725809090078166681428527970916860815073134819733734751820283200273256934599700348652478552377512544293950245638576771454043135837277236307856352010792613172276016826129313972994475816629110350369564561625100539527144318324412582057180546560442299828869563214108218951370845863412763416992775047320951189349350485369133783349345406356353206200075394560220973696543221209707794998707792762021696528104931780803963172795852446555751394621135788278100982063542997046921957135829686858828642222165204587434542535857336042373002737020302940433525761333170232879333339812606002226042804632622981599271917020002675762904675267126619352975894650863329006016591478520649735946482494631314955187726849810017579159936698437664835578461383688011482267541743104934760475108084970256041625117096031748739709490783258039233346319424385720180918036192354779865679178747687303476851942017243360541582415375639501426480962052726522826219757924799693253398912321843665485163937826602220763365612095133937900134006400023178247621292432132685114537582192940114315132252783674035307187287151301175689650934994576884719798034874799588614453823453127328677000016060367591272594604541644318535335308244349099738612884963427233599883745895234979838648305372030109919196644185731773243284076745982047654527484083199950401055496658431646873880598132219534552946633848831210812563838145180263323815871891149066347468843918490863176491425627402529405181308476689651624856714667431305700253796229604135486309476625456916050013691640468905098030895857291173155305817282451335408761299345134873187897810518866355878334682223236484512983919464996517934955991067471370467116345376054271932091491495205473472392114296514986011373792177982269065220171293101705890029176475097538812818956255359359224430003980434339788985216204367946386087308648296613272773470947919058149466995902515667854071231940145960281588082193256835087547946696028256045739631980879077320186214553779304584906288024894187896762775966833801014929469344450650615454757205539503254479433379711069617558734923174173769864367732420505791920500479090476837154179760398152473186250628662045754432275864861535791739964881753100747071240836509734679500216588475184420045581990374415087372910381700148989980862371219942320555765910492779952937727650590977470003879127669209561667194278196351178644300345704442271455328437137850372062532719260739828989956465805257243973530543298201814232209895597555952365446102557927090946420180491908605036901302803655434663730982596606046103168211590027191117430724815806632580661474462475819902245175176634243879335190954758850067827470549151248229712315834029897617434395427559163393965542688689192365411184804556712597537235588581334993692809749772718477176619132727942804299672955928376524388608742959208575580631621617497732663122952368937909044760420626593132208719745693192774510546841517853039699983655363170082366361324061841433580412923644960269611035663473068495876660406708394883859971163494327951248275338566837320287310281911734490373274286968714525237672207057010111907675609908199649901457561423719871571963305769906299608603811511418798818250829451077605434447316062232747757544806747034674146435996208832374865128347180597536341455922993979160829719465217391046493288863244634538228898912513378327722831683540882355352230406527681796380023732659887410344414463334988116661860798824534317919161655782233067482921303444866822589241560800743256865992971899396065367499485902249004200051778194906301720441090194884734033341175716671515345240636256571238634522220498757846412092209031050595655281770661702460420826953300823006041527674970184752309200893398404759880757582331306557786905051036631343486162373366150277290427431176059177748102674186683959315597507747778879895696752436998810384087569816229913370384934556932684509753312570456097921249886227213001306468974123803829085776649833991912073306358901880371467516035073947470907032483350606701507066868376060810236504654561455491189021215631638255026260238145034736906150316556518292056084396442518095980637016124236896707394567506709641046943531725947854564068269652278321008017366974599535510843513703294661335518127481039860173550712638812022755057207184872013511230117744713575149743580541877304070705705219875082160920305153803985034924840112171917474966673021465138749520872255766660076095038428133341263462454854176944714765796714836364154215313991282996897826914931166365773432371976223118439579343858759040939446890583457209414107464485797437190356319872709837368102623214433932352782826368014759051959435287785887480629537359991510783421444599667779784095737934357982057564936598663828868961365007214949118397496408830892370828909098542300157327637946395631053947178333425816026860435236619144234465462214826185946370296461309033899049817982927007179341344955555366367264643732469373275143834178365962495151749380984808693736268669879443683537522602963690257852583060256658791202352677616510195808676356814057944065104087053362557549174036782724939407540497068427074433178040288128596439818333163943370445925120756700135686422047169671845357007611099526429246484666190475205866243702312324565906389402373452574299753886441658423519933219326510847686904210612236548911976049209456195395982133686141428805468805470467749161331767613970864789915441268427821353311600361116576174160634861731405111756316513546755219182130479069661198635882561114486277919201733460891919998569722771016303480083086215594713926629294485465448549716864458958510547162361257358002543370762651529005813028095503429647530264851304587943334953141394758969425119141298810744993183638536557749847291693044783295869940803884213970486974360679067500038485384437226217702813154282546537641796401392372351309340463984374784269237643858136930710805493803833882787473829315084702829479426709532661272784532328260421575762163847088153439023499206339913536720476678614860863419792123454631935209477636503173072801536818195790332532242890586176347347412414153094717923666035890736926799748941917982245352557256925781086150792277623237193353740612293708051180562070282273218396725359548467988739103491825008115919366667577825380121837331876162369621844997563206249102737174859496460314448914896856276325317965122818219734999513657181652138645243074305022600395881832121455066126115127214884450008187189553626429232346613119588742534007416700481150508094477800454408164613392023799855600366685462721321788656324396119414292400715831049003610995026815986999466367815741850711057126816290137275013133994977650824116355281292295647339892010389967589334157694958606336575634512995060882360636809468988622038055154677812654807108534195334346828867097502448054118080232083451302523640986311027398503075160696531326276083814346709854777133238514347434568983457139332132806740631402074677823528226935099400028483201668148145771412266920225052353247307501386543387263586013945395873098131966802827086010338510408151026531337024696480763405120821826463988694368974050181679158579623016163797634965555703826629439464969989045078486611921198286143807935203035177090091443540491649624967762717689814315272516950717515176166969941582741615183777299773801089772065211718254419377993159356440000496890763714389891365166850645509065762265950029907955625349343788790559813148533854370468665305656155327247505338415828213546793244807512825999762436320100371652443722913867945889653249959345883348081720741501574175598341540312137013415055611725899265915137973395613049624098486290040383109350382267198776538875550882937723443160528648372126025035705692087998053798444148610448191607225469872018116503937164071214733393106944468696585335481333718890091636585596496590476611459245043147041035945326030305611615138066830135286296296348372109617687177185916537766486420595439016147901186580502913791498158042973855999766286355041780922240948190296166894715781855514591198710103162097853789522673444354845294580233322507344345572078958684280372043372718532615788792991325206219089458267883029590201666027916970980001025269328994861658702273346618355901825482848955765403898701357295823631872042423110081375206463688846596262453764992359560703788929679905246266204434379157613124127416390169329731170364676420282406970637167187369979450645250831868511621852665892126021354735194610861685948981390232097220923571013018512693647727811531697495537903795606374591320367013932546983424600693939029744233258240078625093601182990599372225751198031441635384013805286991824094260843764206635103368767920633598497997864548846410699863173740274649253983562091868962829448737364881107068211867578098214216554011351248064451491641920465316664218905965490188081211104048704592380208767995689571984506341574167406073555550449479211417698051779782212321840957776255960246188977572342498934338742599636151763708274341219113876181921553541316923732640425605145184490854912373542244820903753382563055465760773414098542244376409209909701713039396573934583321768669481300292531539888904492649855010068197510755064767473131244396912142781152041821972462302328387096777564044049909452414971144281511634639935729768176438452533536143613759373110940317965983138589018172733452682164210590203142810963932929341242577518814967569565460478442419784470102992175984436790249275550924382762964766213065418549457959303670765681060972416909054130144653178174282576347296389476354565515871436331296787282628714882606323299052860989057235077241387249202404029712228886426979521256096378971853096996368651166159422809882817232540573113113688686251623943912136971797265302092195254900634857932869411175117892273723370217853568547132859912409256586363786296566149404398407099868155732582883065045372531895868039478073040458763410887678713032298582213938681823204885211478419326286841878951005279704688036990040152893661785900908515548568089753253885409035386961802513553042869631168542390162182634962234863676867011910443723225999763267168296904431832874344834783751007771200755940035712669615218249536174922323650231342858939216590263180660764585793501147803976964703355122269236879619165120142425881001199907535115348161508472327013091349725534186323797481896222055573955630695191662491732610799055536908604537069616688265228218172894029835395045116252304779034273840178406145147390626795595875340454249375056917727107551890680899088097810413311615990813839650579687114691051845177255458636209834438750318770386513188978119668208848872684365437432399170220318983059904634778296375682160559838236163236863673798645623677007307219750159564775573746004045465346606850744158798168383615748103540931429717885727994022053984433245076784264073447719956649948734354978054171840439965543285106617960963408724881212493407254300750432908710648740784832130986748387351788558586892628019568557213596433231456739345475508694469472263970768600111368889346946236403997443569474063461169226357320152270033747474974320227707264770072855987580838992133796128623043512043344201396341283361904059749637491288161375830635427907816833730805112696503170385306280693266823988288017453898293855505582924073824974729512371807567000886263311889083150900197850095717482621979542518043974717850349040379678342923884653056907022703606678783951074956157181376810959322012391018379354544118736847270358618532782165387063960560302409488944087486922191461905502561251567944144542908205833041194380666386673358484394898355545895174187295256111370343204451894748139804092107339970492272178760181945178306707642500621706295556150038417647412351492282606776991648671944969421855457711807994925223763566082083299227538252170718055556066834244584865158008360920099796407711974103302116305989277835587046723762182401133361515776172139399932827762091023158821327903080478713328525555404840748803409929900507053750983859204428886787785863346857503346906427311005338332268035996763945418878419641262202926472070509331061989619765288803858252649308995043363278002571101141961807221276395768303703088277695763941195286964026985846178251802737462108307007223541923789774625100721363930238540591201967656391432759359460930539851994085991087896538261153587188740222487024439104751964399124629179890612345231816902556961215441606498248168579632427424465483785789729958516214926570264966129054513687811342503694504697686579911760065561882100928646276867563133653870756855280147927226016407073587582117658697812051742161264128504485941604915443212816314998698179223433188423172055195028436200058414366422405732676959413400640610110891392605328175289281437138411196486459895975799817046281497347419602313801578134845549946214828526593619894426965206140276300694429949575062608770378865228231016129783447545126271336876230517490499048531226390246827553129379767391487773633146492496831585317859002217836773673670775550817485055429440219458419129701698960523933349033039664574964924297302569691795934853569029247936812154864387193743836732278914207416113317453523445183774869030990535364495381540235726232796662056256837624525720325649691859221903886788518688065147682787928046093557388210759144511116492827606444974122352190377910682684688745129567824873671197863699809229314708475196232026067914343280566877735279455041164544874273619409729506829923540663958822376094006893187963243145484499190582181124542931044155616547911159047203347619610923529182534863947422167920463267406816580655067693463301451285687160596511379939343369602882487922520080681947596531071936274268815276546502597587256683946054086320606607505204348698154034423651269964849710427181032316234505320991589514723639280247030573415784654003118566396034118026085187030089962606667740399221537419307330353461918657875877922861936312515065499980955068203166790543199127595795699995765022393164510900293778630400303397831712245359970852860976750286848434336216960747920013078304485371322464916033339641256211690411117860615427353471419810108023757681123349036065826245724105189754615654321018099986568631822209054706285953418875800577395767015845711661578519171883675339400185236945394530205120705175808331547230891843219751085856368410292620241822267869233538570678257508734975140475039507983104396344729313201788711822894883719866126308532016530788748708188311874160928346757340422978803066949105471695848016671203060758189213467793642413770658546101760939884973522308492252363285930209192561650182124249806781090555137808983330988471936233266710818395559989310577193700815228783938192996547111140409683469800748217130589772761003862172360951527511398368960195533689729731492100822218038605573091730577020555885894878435160126442573947048030340165949512572716974759928860119568619976134373776924134942014632132229182088396117048938897357024619265721879756996514500120728838094518170308790896470726879578249645085308787687916633760382997131504801705991944760355492042626143922292854210228539329939785488129432917827242775308614418637213162743196666338753502873603269686442640865560062369293053736079785275272682315516771034271189414696909635731495774697776096126690516160923116359429300147762716669399163986080414101020959375552244061990616253795455995207141722294512086629267277972142800533496843446810512359399660046985580252326228918155790960689969268109728810993734304311903739916097457210556791357897595162133155026249578016441559157082393240217424922011968307785172640681499210001150028152675674345883974193239920368887213386468974032193013309297850218160453777388438024798257581130201016699576701035537372996718903005296574119465611859697466593994652490167720025387540260740399880499077868572785525856135250348654474701184931915385651704772341681809362803889630310671311432005006832986360657575031188456814419828079748714446366447303016194864651554765777206036476763696260954298057226941292614318583663185819932354733964689685402928452370084075728986737579950533029468901661389969356571561273604459713945011046523827718850982604090380112909908186364390772350913742733750111334869281316974166044196651986733271763823742314420701684027700196935465735186865286387233420725334357263326383509511662497598100537110708345327874860707069932668881272909822663835999335168519386056674898142068957757550808494008667310540371031922818775554092206073987262517543725792581945240642555255904004598649011644827650398230554797498880431703969443939869102267975521447632416110659013269711301485830918592966692409275778607808881919275478655517167798660040929721958363716447285919201509678765691067504460584789190959657508158705316834620074505108065246620818599230823801204051072330318153335810660578580933456013115891593115353791229739430621389951002219044563211698837225773623097347497667765867543351651399491625310209323593313321133619316243622023328866544284133068395128726468339355618746597344958450540081465752936274848091076889010487179832101774194553495794399331089730509236365805084731763578362613605761057645774707688118794676504854441512514939331965685999324364944319742870189685976686903795392633685508155258065662252074332330776550712684999678180615104868099689903248751420843992009239069746363688870374822967236151647866836941234284250425683112937732201375187673051479961136511276462337401810074833413106160704186484877074544044117996215394229596106063027109663367451770692140299050423316501349729879963860946102116830061688657992607508124881499940043677685707367976143748431075076014563631278470197488731802178164091292356717960381320483853301388789853487767864477032068991481108056752966299554580254902625424902767402067628699729288807621826888979442141688268640031092649556127854720025015883796596282381974998557684415087928729396578805866231201023916416644336994930311573545567538585037924029265073529870615927027355050963803016051619299524185022779483241624006683012402708823855966077936339303064640098273790972249418281306849495078838422372742591789429775242987030913381083970317023050484178728311343635433872875156418702181248634538579473261351302984956621590439119700837404442738924831102044709995146712380940910699309961410119827943525493464414390712134704604633198344519988822497748784078487836216654459010448513126248160177546107932478053823566274894851006704188247796307398428708360855934399089354738690521729687470993790977913565596529055723013747488383482766591368710720201117596116139793326683611927651456854254641197510829226731965480128748666832860984310992573682444414452885811068899913153169974648595560655885812558292257431611351916853747010021377760452588982239524228536770236775090276251128412358095290935063885967392017727774975036822509410139488417574542032850300042485524903266472400573666683659850807380628605549293919745250094840113809729471908128565919388364768868968028701323537804781834367055951678372497386734765122767955512103474417554079953676585170178154956925345234914054061305088827132515446236891348346691020155526904463022289145222217756633381442683876431353175139022973988329448364396149579306842691008017841885610621665947347826788337804540355211956904730600330967819012043029983682014920470608942594745180272802558090381687103707203867140893442252197955876684150048135111145851141665480270414409622613578558744469308263273278060994019294813963082419267706822058572311998894139170054378576997806124412356205007582607056051203277112684566418376797865347591415591934594434614639876439674595687524694403471138205287961521848788864064589349036888886177655249680698493155699041209560816479153489496356754613659032709218969275189500297368302974246840906847211741126818845581071950011743478112229863484569722842747020172186415857254189614526877697525951981264468362544427609994365693914861737036786427611667991297155835621336065286627429639481757865279768182143738693667066384830500075561045117198879682860692582767555232708297973321072497480671855539129292850420139019270798463761857745517435366812847570880496676586524851420182369200949224862091911838718352295533882455171694945039019367909679401161857053589570335842701959700959504007631973804482148648171338333725483028462324883552123297877495354166265271379271123146436228580176139733979271954045527206302959319926964447916541465137697051204865962555349446989870311546859394333766824900236601919908645493564029588741266193428740731006673646735824004216462884318681447003220642411740709891786158920487745478888345749558622955494584851158195106346998252467468426506154424001953136440113192336768827425549813041900001667153628899803389208442112545843111653127885809940555512040085952288506490652664828544311091444348940757329271461541061308569231078523941236043812342263840685964783305844092571180459859272819303925762528607269155496129110265399968000851895305096241166066127069704376667944293407612260593030488396351275354230954015153121559428087787353555497187947171772931226824420803201766228304296518417905299532053212672021700571859303893265611659668072699356225757289970683475669317106651506849211502676322904531083238734899261326762205155575698974980536880341976917237297632516299196472355273855828725747834183331676432658846851022558289783865272823010422557814034143191283026658935661690015767047782001432272931098456888717269746090114296441067579859016140919472360879529828200440199889989251333576909826442281223612092551242666562761608717622873996220839462268881331624351415776598806699430233493500636804339655156303207700937662429654767162759931354207137027861512588117112782544701006722752661421281107822229642123636401607703773012249126449191588986212598289860788660268927097053769642284024866353739386991207799380241766214818112499534455619913829351717026101778351807908202046075143151922229584117568296030634939072578302090660795889550111111072168011614631773222716890397057150849048877772001649791649028663232319711843809480386481034658849749683734087080890302360165668431940942146906356330858467056981951133164914025089583743931872579285647660633693514153633350276961527897319888990250912574389609330442150982682022200329181258214085351988349629530848806546662696962026294295917385087062737571931895634671844037089301954103555092599628174813440481958877860050181267344032546901554111821047338753610439549256588879185990494821507573844325402311394489321784317561792626716319979549913060534305467050244586636866832963852931085557046884662317578747725479954217910519206716192494998771394874393281158664542930900117795706910942500870652935877886625872447501181305825542252781195310557582482452432673988640250656562595774324985548762727860603162156229029774389486673690723787054864993793781935738188856048543513802872864719420402549065271920759256963766226593150757186757957845021288608055167116801820320670454563365107696110498781392713856631628058973834382626390677351018555767626242436139559084272733721754941927724542102995777851060541286102009314453640324131623015507876070278177335101589886287120462250367207967665728501020119131087890814910146845345705784124405270150792727635432540237835647257083024519159829397462985840158034571618299729647291874204969628344954705864949156297421862435817911178081053521003449037587209370752455389670651837787639420121925238948276653489748026212066667139090170052370162140415375125284475256840606292428143762666541653646882567707214764113394913762780971912589405936030898855948130364460822653480703943273514478219145628008055148079354431616501109406862236461876131909867811726242065353132069130638246592897055379448079409787869392205541828500931823649830877957202687015989087793410916581219871725844758251409395749124095565343264729066962715112647211759821966895042655228772462817988207871226672444635552581706212097596618919976120371294144238332998182647195717231854512570945364948733245779141055921794779466938088218146130041724868978833414028086945877237907955211433470390620771426987812607684899807303573096876111778797060322542962878749096901029455143522880021236944366075261171502819298880593429446623458298612261172330417080509947914030058772933513510313294918782979682688541750542845841998245238657518820474117362394157364848998098843857182275624929512275642828939168281090345770850914468574649135830038452725520449619570349941640592873564125739793695583913941300114186535519826405862130158807874125701869921367504339250888353943168650027632745098618287666902625890753857289014738410902681072397495872103300869408459971345710635915066352593763585693344184494554681795528020933294325678673643760786550982911332255657166648730922598212480221925220588713529987401162726759115172287126415625077210845081099960433076014388262464186836782166517950644850016895692623885710211428811808909838559601016070644323408464531042260757782752160543836652358777161130196546909293068797928614435811406554366234440463717713328904346785754123521110713000610617979832615414588894770968297116094837076975283082335854157555187837310531504311122647800667087024258010161995520830499828066847282341272201802617056269344633178853152908208756227772897179150551066473069730076663394988559896958120979893654196344128278457032055856802671938348454657240067800134718196410131366326455681321077772729637224107255268556703517960828094393100992268134080544703431467676867174448415500502834175133804677181152966946475922066272418347158587324854145741842544953802411205978948946637434997112438303642136917017140975169752944676951311194879277348339754014973619647762710919324637963321859972718330814469100069055915055376526077462788324487183624730251994992363625271265157107457375919059296110355359403210508544392411552352389893688313421197517784552379515149191424421136375943195968271050321474494226187434800510034065107875915970841266715077587320108900632781663014959251351547672487127521799203214152952172055268655960124765844148431109270271237533694168446169797361381470465402875198116230511905154180636015033094111144597671808208299905337760551856787441515363816855845045954164684038358896586689673248958323089628791381732633341955366713720740168088408671198978121793721625873076243177053360884744644751008541300461190060326542880640072923987522455788887696994853075210321730513309875095013386689243544646291973138539399559029750301254784420015952697487520466840150379852146974313033117734955155647522749824638676708930815891379886878169998972660971142676742127975937655024963374034069104285276472892111983744983286704877347855151984705812299857238467121960113869977356075848851372217812293688288098447285121630146756190615302514604239096009494748288269439624457071105520007536204434105566908860668359117308765083306139771708353282853072743923746737040803649103379584783724026569669255012862401680314851209492258995945677595434611338189142541127669186929637912297852260390047034443443051959539571137456197319753642372745859398471810577665873252622144600805187137225182872910009903335852582665558532895111540016313615983718495521985177196708870838063194616701243011110845034081470124553731700272461998090544505450418038665605828028875920552776541375179567407261491231261719681736494540460977898552562602135980005046613823529258126235287574347612106109887337114017122263151491254748294524558573736318032719398398509114181527378863334691213911991647015863258908434232548226525827749089096648479242960186876243966258900545877277787283696143747969730034386146291020942929988760898317302739969433531476288627881270694269781263429025195578311332483190068734628053358070453249884345710196794133685141489593565831986122969860664393447557461906307926136392799595110592140368279616767619163932441533054401622924927317995232617278727033860777772114667258913553329496177234488705968724702845092084967246872596988480440503486732534446172658217196099622273529572955920396150818743048877118517632586778721244077058348735202220783797476023289922051306150823715603569587425822605388293773484353290757063287207617221543172577605157206516037092106989885199691060936102134738257223252168772516015921861830282606752733038394515305076024776737782908883459771638710208679886299761280640012584202629450227793290709183074893618798563158943567220774632591601234281554021707951066692455320615935758565988998775948548070295683698639973639176836416580680787553522630849832152155561026276904647486750043307550328977203913573501537390545714213990367573272654019906286003620684716177588672501559081928098315856786260644096640815238764370751457425706299319736630577789292113695707251616959055121164376803717277895902234028686062136392093548667270783370291688471991234023558118124465258128647373123366741186342115408230433213294851369253892732368425894027808158865488869715532738869655335197912698567489089170977188577275382476636212465462640693579322910654690869105186367740903050743549334988774640125760914687916447162471868965819209765113716000538923257946272917794864691137968282917292145945276005801632849528573297042979255118790498780466714599176946471810657468635145207039442715181130309077017992568517951266892506813113831455353932518667872513211770949560858072562397737125098582347882944025134199848092287640438048376927844569690958742461628611414491596009671826931181809034360632405790897834575209675979528266814205681272968582345338429983851513767085942043848647245842905018084934686014957769646244124007465442320216023506401848902980818243438730678207409851193124535092703602949168146729934738478615565007180424208302078743391096971763857068996795205375469168629902541682931533347491581342650390815061393995610555747525191528750322721477349972595078807912874194869939261093751320202703289683263565293591561385332584432924519546765844685602840619444774375640755243408322070435022784794955843562660205113911663426367925881699134413246499804362591964395627053182595193455402597044075531992385239974913444821150502839072013464465662632548951107563739471148012382153892056559362381289830249158274282672262343179729398718804662606927688669653705757191560441909641652393924684114794543796858411382004792960024749161817247271974615307685701821274881561088970251314414418125789056022900004745218129247943320823401531663555673909111842864849108331026356014266100846884895028055495463240016890896341673352225140919760279868291189565666844417071298296917546614497397184182988147343894427090689590167612670805593819460045061224966798256674499910983513366619050206467731539742799994517965293738004782691792346826061253049428920975875308101491884227696416300072322722347830670566814322312926614489326955080370225959142681945984229580613967444226694119539870068012026100805051600786262412671877098168649179181177387018087693632913842350974507501995679573563022915212246265272727828717400082882218311190461491044156756497067126819006156489775365225621992566224248505146392176869583057186765305738041865428212354265803889517156055742062649240405715663698761105363967152604864275608092087012180158142262565727167765976032737487077901452117446173570449646632137138145798893182556526160941324169333189071517940505212811832463794594736520964511830875718376415281196317624249702410005765086682456985659803368758350548350370641182849051546443350085946350145791210355385143877719656760303851305342226699631791648417669983234722582035484446958739102945260008338045261556897026976790143694230050768674038642814109364769461456796846577159365623475912444812090012633004434274394248027170013866686678133367563109472906288560025861834990509756703546884600377025079235402027085467685437706803871134941215828426731698195786593001410569358783289381849897333774208207564540696286043097250316861229580729598028618787765295918721893480490938715609827870179071891819036456126856944832966506100976235465491092523033399188890158269370263229435656566792260507594934449875183341900831815888943025506129850146793056401248271828510112825891225953764109595624450194422457652128776254858382096273609253330549003004179207409297175525246428325465695181652348851717474362412514472885684240712509582467380747238389126356691662898614951177179474952031791864296713606717895813006820273012708896283321968150378290504951029558290727123384220100027088785258453537161532451650525737333708074797810032164557783421636888815402365555960411309677589839370654344767226323344341596100556885593206743793117440414964822642929680966640395204609929051634097997876067952121000107305941871490634180482990344521183933409105796756319692852014065847884505676643422669164745764536000563094673216827211612991319952756023031151784199782777875229484745203117774429204790367556500365128210322139013058488411028236831445207824503390319642978484681024295363362378892798632987144284586962333220483843569088371712583564751463602264060433994832037851496127526309420075855864143841799454168835603510895275119441117429091191003566661903498376502499447244621550423679759207257479662038687473267459965937675565595459873914108128455781623003206295618313040367227744538664007315180980643812780564917041713457752788249039562840922686429437388448732829934764030009227567248193234913677019977061012541597267893653508601678860158031311201020029274217250451787804385401694404970194986169931266013427518523239440070143208275733883575324042077328368684502250503034287027836718139891777701434334922777208878799780990505197467375878728667575323874015007851862540090691894823352134476217878694550321231542566794707669209452008324378326952925391300436856642023602536299230426430859793061454600519569887912854231565860984323018474163370299570872743577425179791355723341775674281195353378819324142289841585204314539585258257645662760594608160457309384339732620631382377136000750285791492554164761369091571346074244355238004822398702660157232313299466016121376465742231418391913076764258739676565563862450390843658812093107950345135352381841579402384699347830651420810707351369894575544459272714247204435037157899673025023198080991113798600504138402633413867987739211322887915083976612054291879024839650540991893407413560801062728580855097746532201405713186606805674684806758050796786334677310206311269940706016932873445754465002265391248873644327497035597416612732581045736055562373214752638524575376035671349427674697400221667958291213720160179721813566372347578550096638791478289575932178830810316160692193579267345563253219110352689983447840258031085412131561995678498220288140972983253977393654021102553440401324109664815020993258163555627818996186134372328327498739138244946139888925929236736587552714929690694252386090119265594022969852317076959211341519483753140574566614158145584897974274575818305931567033349105228964220941182500773687843076909944968078853320064957749895786925808654335931817747173734020543917900238462114026816749446020273151456866470648413388307680287568088819255750278953153278710500450519699903793981516723547709489093432482527557549862484587151552274655102009526087800887086803554776268016773540897609902615302924296755159692766773498052322951249792951448721674006714908694351293807403703522564036338715819701140174224578650279419446199976556218962606402815822803170031552234897558977648194038079107838660208015940312582687432648030607495310838552440146570067751455366926021732396822369507194506172595465456026467805042285474956595738782251485440133074923742823910802573068543279584331268671860895582601436927574325473910537837204467611090205838614785925601216205021822162992374362740805117528151182475382556386508119513148655452828023707934361448421035838716275462004420637072509114139312329085030046726750104662140204987546471129333420806864667322296196639143348961081441255559734084784620534591132559700067983649676145511378223358893223151971066501953177665151071574035328614205344792571521718308704212956692322394075088936305443424597154491981295140852808017119199249233078082802014488733903297932238290805794477462803839653007907106638011597129946485638410036471290439929265401708618061851048227547330025882052632645760472290749327841227662545105992085474330410356708010659979943796914327452660803083205368349971267245204910428523385954192120300044975562915197368859437445417136260411993413248964111241609095116110087746769525085903238823994775379249576860389025140006295373068606258719983607571315765812001871924901933984903057370804982466451058964581929663122750272158452574380511936292039537521078298684046364630977323586355538016704525527158201542867796053025382787306626698695456802908365993681563013414004022806121564798491426480200504845726601509149902146031591049730678988673983588957661837761142395268301791033563572984247508597324204352284256568290599948210586578764565726835364226170928382447258199721800747697357751461712368885943759478884407430592661252703166706061803609735143640247927642748161337027584998566337029976835038324461439779181377598512722627103686876588368397484978632164990645663137313226404853065540269164686789160325427834572184997201057736503131762127314838210878773361321676633045497760998138025966259695319320332239452534200907292315022279466672916621671028729572974030981857427926220370581997037405797258102469338496408996878098604231525442347262790878128700497350210275425751334286258196938980567558125270836306181155931213935969628754976572142782647633692576466487027635979295319141091006115622392657598302138056709913133837751141950733522626804358189503609953083968325781658004770646650195301183321206348541644378716833580876138088323882273179221980295045516029724385807395606959274319422446531398932459217408762159495210234149276410321239003245700072979185982852405277686121608182744764929379706362443871757627457286385374468270445326804095525972512281484223173663729286437500472287773710797282055859881747577162649512999088290771626227217505939458343541248939459234077729151922035975289893005874058901216119869623193219687922801705128198656292868552651528281318881673542786316958516479057147657289228315856012905151242900996894033865023889832960474493241141716384503534653627134789808840105992881692110940007129215995779169925531194842110017178978394287727193811381517019954231792152948778495273132015365882948109592764544035617176301438878136878642344100184854601364467463094653063155118412395200932076758796332561625571785673347704411692609343610373001039724192363538968591709954483024004124624749293347545512221322192005202386990249783674083155368383560894939582893125232749157388160571161164422202056146611032948042694875684403857982873316431957750891329544769757160485429191176472083804980597800780477378459776273897023327413742658372552364959293445237091537331129358627016931724952704354435358888587853233094568808617570784422551087573406309596621722545970452702335354123863953463083085957997172808785872363545014495522583774033904035634937909470797427159966210434517506251038095624859177431552041850180480637600999205845238475821991833829774867922314431116965577328276045414455508606773016397103184068996833315317385803805045056617444774814381796221124314694316069744497761709464877453455267405128165196651814656269368592200367345410304011402185531257473330248159196397131477061236015713556304769863296078376960531273254371078639660218160114645047414546276257861446071868710966538658356437043834680409135324012724110623813691614978897506486205551285375244496618521606380307283508842839169996994707896208454069749017354025783924942523198405061859604861986967907479597553691225884361097774429800410822686552330273439677377643749720624006234568655198634151446067270939832747437695294400210863182428600044847181612203121455577854461386007947126509313431591615195605348679493168799313841746557348165792360328017259154021496831435745142278617019696233662935385823027094684209195739737276799810498340714008909260231797956699775027577437555695855618932551718052121204032852163373559729046222968946596830909052728538925815123765411103425250213750555729766678609605295933209750156446722590595787002720591735363115091217295737574702112304609039564659028215834914362266639115574808978556898450363255332330615532614629459331005874961484839791698630818731395911553338974137244972993165128596304553935396465973225180563894307478409788057965702013998371219675536250094619202135635636209223425254935060320130746254068376047532004588477514696446533957495720051004896391461201207976933337590528741244348081028436522125038868980534966216153850414595690719235271098358501245192889205611340958613864961303176660338214648756854277650693902269096445479155515952459268505097936125192967037347154353375050959968709404692222436144703728685091108841670078517128693368436414753852289501009693649761747902958654471831120986376020717918717931452023594301853234028746592868776080572033299208438800909928649289231328845767755951562656535692610319235313747287614800646051662025898432937103481500162074628422808851794395938785941373694870607561385034175630557209247009453718952212085074007732427159088805192546918285456846346461356672753898796334292428584197416957636689628023137314016444433058695073187478063475285086324432752448310622390849628080330801371917473211572623939844719199157020058210361366986268647802718443984252622527225144617883732293232073341411080143070737367182370864013773511391736694550874599810057977162381305108936702653053327165515416360926849638533476803315959315625832061386899469074721606224125658654762892528684504321122338313725559834542820974934542969749158253892822604098730536118576660572436338798068375811526092994700362901940685118320692605538420731686873168148610343939470764992198331854345856612566020561109286159260133421781355617317576614855962596036346851835567288617859296981129020621741161551755609762191997003226542686199582228209548299079007257098173954989036893257478666423523368188203444072594679750023015884471313915892624015963440761350452538040906554678470115704317623743663510646198815065916586957192406707319937677408068544580367634329062366996296279537979893123866557473903375256386367999859868224460599256092384791457619813163120104025410047632759654449477647326896662319054139142510716295548292785436044926974420071527153438249790008066864383072892588307722190521264442624444002824477928962532534897604302780298192045480396128456661869854145725688318780276895238611655257982659775962932004001148676346795035406632601158964571610032640340840293136948977109726193252804200822071782945163647987188185932363184427050434427865064339111063833443572929825451552696535386083470812065533605559530748246668467562372516112240151851279362303287124554219672501472584246860939434644794784189283927797203830676814565222986020635891616122273250308052428944931352227763674182655391509264648621872694329324684000608985955343983656277050566778617518231346260907184177365140993766581154811907104645485014131340081245759245470078897107581169418625582600851563636963472387139949845243822457005637981125747385909612368292190749478979956042276190102617110204946623714547111846210535808811465870867853892315508236667096680314218540178635547677671189746667857709500630168876219024077249145095985676782698994383067880225255092353553157165794825952854107957917458628506664063391932513702858041816298514918119858636719781004055338587220618204789000936265335949093317439976449089602444546037354178658594570466767895749949341750983777488012897710173279922418915260335696211974973298052307029060245735244353681794383689755942671445491085651216714233128035239069807872720842401808061836632172840140909498078875887956065225726005600987750016058049478302740633423842589190612944910584502961392411484955923799741573035050103017497904599171128203454323209263580915951888462320627726507497045816958270652245559417441232615595904653432060498818071483810002726580400976605098337889492573653372799048408978189206446854973810182955370394125232101866706086127843918018613101343318817863297065961156715147274646654939822525321987656314465560379973116997855714313767900161857496905141620411571348699579889400147771987215266496920797456132117821086084678083116654796301218340600840795691548203995943077758292115267232827443909398619839813921488158488614298127379514685308171678205812434378438704235108810587801958522333850790651208747092448113794298569935861852680833980435463656235926087397010696613980045929343781583518212328454979259063915984749545024268580097373190008805801021661101688087381793528506028380944338207277769522876488593410962467744570540827035832156437196794015845948100804687972233165142502894857844055923661585180030064547675650127105119688317228941108667766089202394160609701957522366065876844308341126363150948980521956541600979348158028526458392182173136563846432742470207157039600133873637665539689482707426886451564183285088326814405784763019967956181368208563175204862058060910558703004793445956025097947071277262851184067471720941053958017497062959417165758400659867841551463821634297078274516122427061323080390744379608771459455243389347665556500900299684777036698856408803562745977138244909870848347916508058710059129961904674262355487502990074658124036549694292980784731872520092966336002296416368636151365497588020113589719463770484178950753475043454451878090076164180404001372418699449076336576664593651371999653772995243101927840173659266107360962003732443969422560957890432963089618037793818604736369482188313449034467291301576886486067980036436660546911356624123701088233941466016862546515109381932564430300110522841539460328585128728882404054598787254405955177445614081016053832157393374801326322316297903842145296475109791949626055271003022615736507579308225161184536280983711883628640017596508512348069668378881928547970199969463640242950442879864204373130722328600111172812005937036270278324910026003042161353838987852097851408287482245014306750606574690327225583342718029182445940666574417040515789721448517129206811064241941789265078646876730478654142174199011230584986461461890289999775213042198215990234915527810536134759923246464661512996891299398065679729867746054677013200829421576185971427542504900077962405134151526636079713085710329453195399099267519442993046739236505102992288968820035333832877808819616306663628661912849540547358307453971558407770957297106597657382053963451604553976872960606135230318762327419226449440096802527462198013256246847488833039057087260438518666526724061348227415389841572739321465954623664095666191646125195147413131208142414773495565295844155112198048699680406565449362483222449421307434470388323701418914721302262419907517468966296664057694214696861868845187714474597552509878820710887979745705669293127850359096217921213822194854814005063907262597436401279320245259766379407101319466147662910804509963285666018733126901146899196094253350775372797567402210687864374691524278171354623863175929063848414521648604747509599143114010609123762041372707737580672098744461508859634722389084406411814111751345150427447975277009625111061693190522045175368654022573059945905530450014707895269810655544541152297099914021565388752966280091960226157464279364998584016880431246794437661574327543131277382614212046889508714203015636540064983776717463943890081139297938197734088232451068638639304668949336345977819075607290325957970668609284238216994414550117012986523109801412580380880049466018878806104456501630169358169677997029854948398871536503488390116699591151207830761824438180925373640973726238794343774670301668071476520530275242914027149547760400306940670770650459292886461719389238230428537881211130080228340595407422636131175785312988623922672913421460524922848424630441732746121786400459201258250132573838290269635462101984413756255788716031736392376413204174459380380385356495923281156966433154218347191486364543068492904196819706580234204257073060907611154161838531230276689163003481705536966457651215287898991591048358821882671558744931196488766441331562603537708588187426931888599869659774557886877370958839702799965939785641580316964827665770265539047152320456923113145602816946184978577307102359030123900307582721472281329547103817903180323240581670970353968791574997554728845308148025752996003685551058374425932016002550080158177752762812224233081308228102674852302012439981522650376165266165915058441758501852440044798547824479609778417245004276283032781955410755140452975215662786472513593954744620212199286349510717705069454185195770193132943291398318178852775680750398675993454550150184501573184237373483798711914928517415854301826468189045003323664661462831557442265365776160983403336035099551358350397799835813002755173953465649252601640366266548853912910207773967223122902110548580184498075996697652424049799536651558713627473508588288806482393421443093786713470493378365665730060321689861092241101571708032728333939598164847094324905000982064661757846532434733050445173584620058440465152154219731284020580079232499620580002790505330699643433873939299289966129530898141436055288640188704867033420272774599798092478106104884424054601654998902385101672578576825243327494759995706699700408197188540676184301254734868546172428725845771648430320072587071960829359910216998704810307768351997929255816215143894014358110413956994448150694610923574165356779396019968529341291195630065107706619592791817204475355665103734530723680115621526968652597699753761117111774505346263466723202781911533517163005283548408275668095489531362694155758136476186033184049759750429058156867347606973970725389194739626662450576251730597460911316935050207057814095060100376906336532251691931197437031411627843777875750851462873798772356196045289765858216305853333079377664170026386922202331250941130667748300991290973827695557762135232790708483354382173927485901163866099148271741517557997268876139898008426284864931177046151105893510328571647967975689037285375672723969490731812631806531750952080842766454999384725483274679043566770401463871430347532267817110207206044475701218711357422929672884369704534419450698101580948147432530269867939669294121221934448126482861578472185186579037576478692509198650117932882272138569563379579283135474062134485336159217050306097133378178927309169266384932336466609851662013991106722623214310267565327334668355602634787634347380377840230455162667607053844311680942368342233806235105071912320029352299221637879507208404542996685957793581471190007756278380522557116404894306133209540243926592113103249503444806876896283118644539538139224743305237241247520300017230748020648102574194425115614149283956041859762831304821491295619100382968331399964716269981355117459271264731386925728231523682772392498160365096235372358917942096364111856290744174507526359778768475913156228561933669598302585412783939436760052053628857027935271110424597959433564251072324006508486117984558273242101574463687701353210299145856156351052624729034746695527448273311244668043245265682004927056239502542789837467681544697190759380049670686270336275721592833577711363901622940185592303547677587478462794015672525063196912035182435257694410650787316344206282679660808818902936922055788308668856893757529741585782112240942589815775379082292928941665107281864022278029493624444205056468509545982353643895518152644603572563396999463084662005038638036278841024076764430371693973633013252358949861189334071507134010768346176149090021504861186218159021830827030055311960411156267535047203984122520584320249739648487799686696205957394566193364649870090994852893376852416494234437134669516387256227068199259235314042721714610307954065938546886604827893408859541864555991560594521289955530099498442358866627815294496113171233022459657072782364214609279650796057323413029836898203203974156359935376822830786093913903336315476237739016724948944956490936700484021848616004017405231441599801318669786393105621543955349585798433602935548383279485018803912958396157751198996177991598846510754824340580991951160093625591943255504192553977621161588037060638580237410358997634473853146491166503153930014938397321650118227819113001441500269676872859162862941214614792007964890577587136949477469622775647771720706340742539947100084364883876572547568625332285915814155693061342829339894390712117128838144950545518783982146553497932177069864250880732781103713417258659184038838030693366807315396602463740326000081259254641872103333045591218930137617917700239136004690373075408203980414328298980503462419136637223668179685220698446806205032928173585137935792991995387892126766991629669820699434762129861168287542030497129231532343124155757885199322513712851222084841595891575923273522949256113403206055138016328813222904852640219308548646472479336744728710917555695158089557446609111302001007465283098131187138318559562546909900965273829266705515456159033645140366012046377115563598581830410685975407500757431153187997756290062419732154347058252654423375670300634381503330982665066884253917828350302634183694771847961813832771172717563403981956403035214555756372244841468792664527348084707548385457581153687059315226795512329398252842112277397833315984706911782613630393362260435170138125274332384220598540021793432796097527472485973434050484604255736601558414285057253588426375283243567556709720427650217842334314089174825607871869952407813015025787678303264879437945711155599754927303177224062251262273078391317518278135913376495094550576836113950992407237212297888381938958528388354284251694523228488558158146524090590429485278635551894376953816345882826126884351484792905544935990902983114876504071036448483990006635096197655099383957132029665804368851144161192213335871508774342087584697414966746009172067074476279792357454285244273142710798323951146768796893735479632813778302594195455152098227110816217168420072695614681477895242037849710898697659061351022952264808017324002176558427616699971377415828699942008180087159724272710066608385611748655727026620787038836181542458058718604382518183883866893416825153637357179609240037738094547000365490102568858156922006294429862285754987565978142325880720603468329510125388743203103823786324137434028188428811383285535124946622614337154615268542730295435908118710540516697602229672933249556050206713751300766263794588325480752944283694932891895503278537422383799021738622093109668228756678215626523849871129625444631039068412143243408290092898983460056559455456639583473586821674491063937339391063705448307781716256096919848239791353916616463658519109189441828310053161493401624837134592667179899099892501137750693406346536749487055377634167485274940559270135961433398551754067555960073595951875667348621256984873096074685949374381721488739251022232922383588736509772753426604614002380671662302821248094032920473764724082582878865931858659386801421087096469014371130472033368167048290745958902978616687844634440062344521350912059073057249351506393010507953175840827598594499416217617806309293801571701018387713936970312726451285778467253072547272321625845155277212782780573039202081859745183226489766267818296890691266238570979153967518171857806301457620093690623227343982959686874062641327273725296304995963327015879846971273234655031349879724213929884337826093098469587266164180359201562061173344993049972639892318651668622674173812976718063640215467715591640479269699623989167553811967003977556102896021741588187659708826947119804618261334699527271918346322818216535144693451733936858777950039278709679243657171835650907440405037806414312327149435120157569092000997041470103042752357887744568107631741671742668030827777659827977743920618152428556106997636035199335784784019444657593532189681621998102926692095274718780098396557149125050465682314030089005686415958506932281248967598545373180314933657594175390675248380540769378721081505938539151532107460216736050997296638167803252861004213872190249024241911211154755826173424045784292416433097195665230809921193573954806777607389898431538318658745253524535760766232896022459271035752567530143408089272924017660787843002987161741610002746888168021672829177003096839834195438583147966281238798368245666402247011342000159209949205799235255384567137963077879274731785236561797548687455994113302203237210086207751342826609382786935564545705023543703988649604303356985624009405257274344731597617701500250035155219065575667369285219455655457631093790088184314023808450495398540172464752401488627939264299325983936152777097535268961631667718256017040434015164512338199188178117377492868829717223686016746850769742034306655142292747754363009506418072781102765826666017430793232092662531092110722845656238794967334554197875815821025977193353004251212484401125482849652415979836863760628296604877113104125393875522410857072251329271415776383945759610247438431211157913058745633368279093838931602405527122030518396293692420613956995449856135842351605348840961866239069774922023677325823178193274188834711328495445112818470106052161901161458924195016968642706651578870574040255402422774257836325165596493150075147687804535256002558577353934301938901824387675508939261184737089081430537601558403333782526027083271466793380557208633079937441879429828776406365924291759565034839583902749592004989130204423978063975597339415743870935772717276624552549088096405936452228566148242425804669031558348510762115902642504153113415430053416799150645249595032539886320268642336064250194957932879702583250317699027864087002058969751845999142134821279159108454638174645668373084321887717885738015311683995595886172458979209791645416312921031167690813725851712202642726325336545230171229683135171781860171256403461828842985771528953864401936042317215543411813543400103582664250977179949076988108412812682029584683358268982056801402390234599751828088108944808832931097117773090147018455331725610123746254632553834925756507926844898286397394974254938942421256729837193068220152592873304232309960949344773823665257634057576185393131567712811248909519650153410627356316122862044465555597331439056824148082491721100901108343488197131196041378350428240217724917532584351496736286948411515923061170985717244827210555491839219264597091546579478719985419306716602332960720444304478560740720795312197311992697187032362525742760893189243250602367944283024651177502447816825196628186418873300747513684750181171504001776342908897473484937024272118428292747906628440650090023505398397112522634024773160183594590737890551999838094057540801671024208672506647915626045365616367847346144422451694669944344540602623707405341688933962199118326833936322062304738173465588750777514401461932442126317469881790100868626710221996584038522959319766422538470296118892118533114892361944052403097421904549429381305929534860113576827265830669519755735119705210904695001858393933294631959695746178964991555202419387870648214347954817747299190378232814042468198960272705849863589956922172298363473099529279504169718352194338019634829682816369410088282794672032408530106586621677599600994114981611220298658942202187063954259206160121149417382027514237003610866427068739072016089108153217618385774648499142186558014122211830876590447095776483417525733777423756683249964244051209828234273070849715520317717379163768521061825938116233513693910481571841029179386435426620171043289679300120392255936011831281410600904001942023065631721235576557856604627745397445660852941472472853246014684629247529790671498255878985019094473665837595258709873641183195230036994955032962209978341164576277766745367712734813949674576865291418466010852977474973996953975357452927273315129981816768666666364203006640163101795736784397715383377095827095284164929408366415924628597413260222399422995452893082468654433896476745390749679310399446038176292437503634749783130907295018820871992761751449540527435656131871727691287312128669613909917611041605210905708020568593813193065586471548477487764813285868687958251691314693438989128927889035432976698914214492248799195424845092764951493898808624984368096079074835710039293303314304168972242071524183067855489853044148494143645921834710933093219209730013726274091276810493033170249748679990942803374649185578414082961563178607647999153626563878688262999903743017564742710713258881479978914736921373806834778580814734322816819184801001542851040582134419000179116905549318268001335247112692857685146414364553614509953290554687536923128149841606966920657312021553117660092355514900641084461858438100101176600216261819038653302768372904362682529104383316545073820037758933492522887425171935941685384791175410022025063519474869293623155287330129133552548754521684164444436823105387500747871703318954691398147920716819122358558324783095441530996533102278554212572348899686375681452554407738148306539905732981380184447608991040416648007730341092588750034895731189577559999795430171947465155024893572045411225407438994678449791629086481040853487476274759496604316735237602445896655222159282952951430565720070202312060661534532776049302860568652316026533802491264917488166297377100919988869297250073039969318346168572088589795430985317873643818905588240186190236284869804586688781798252585750975185838952453139304768353137575769986520109164808821688827135760227409090692750071427079299244094094863774623514381866796033459732843304549570208318775641290095330816543319691631935850499886940003063435156100904714469060971329189816398865209332314498003064833003090092866476415202462920099450301880334845081333794932422648543434595644056248584051428679332497784289850107666355013466328268786419950308293102381364176259953567494450621788313724792076823145407958180046105499780743478091739267999047226149205090385726231958511665759663946629916365610469845283078401144791555863693351938177926022083035761570578592225539995954962687580199308635895784939228019893148088712326888944998932177643590069947790416660227690079908415029120351713574782204415282036160977442237724516329778306534467413762350900142385346235938487922021648327094514116582066789593156800206678178520071529060551863826962222795044720767203605107787731019225694548935133197296379868740259775162034440232159784118385024872759744234138189833041957901097290331140078735983656899600660871575661730610736200134478429963566470332553643082717526110235363435160323364154292320307106539539296069195370568716705583113062408132633974239301798733745269765449727808406021160698766410601051909238252472348220558003911723237319631136264621624207042168532791496380715244386247615918664225391290876367858413374261314087634292666067637716229751231886658990075780602305828273546004455573892188832812354218055363289451447041056503015765232563361294070990100720327799741137633181029711545847597245295597541851927856002480114697453257568760007154762579780310585092080092717780270719074673903529732544181260993779796529900344680719743063074487886652206396644678240506389672907819297839404974254541458720546013274243932710116544844810096985256259506945407286826482771457250004783738746023474754118232722736708710944274776747875158240346704535547777131149611069634100426816270735910499400986927353144853457637993145571958034399094722955084828378978408690483212247308371449059088642850941673052867892161271912302763083586493159926043802745232243373654678305121540091396889038580958133803710132028698714233401027314235152345153464672041267685725854508266781942968924859583937326832919624647135691156112536461054406908687307350740914957070399793639822411281292566321467289231817562630160758658644426083652954435282916629393536731824694575963768944103823261183068526750543244052503540924224425416881759915121645076930642287803354597231497722423839155079553295450027540050810556848058481331527725036946792547951641627239956687626838879438979891147983156742004718422071764107627585242327001448161337874308263710792482043374549462962328650821719474558338687340207715190857023749221013780914729235639743997960292198333209251867051934212659327079746295143278210760091085603701994504116696053302711790281877488155304519788464140166313409282229430847773107977230572617184956571172476302217364247734946219349796619241943453259097197292838308193522828503820008512123085848042959451444979523884291216270831451150547033651405431730597350067407942767297052476042403731829018988499662017708450055095685974096515311931168607949497156690618888330521688557257543221114492300557592999482505362490465883452828794386233038711292000547099497068271044944521899744618347713008021852307959466387987021374359088776941707697919147031670256886859285682901270051397831132465291257786550511728592183698766009384336502770340775972302139102099563336989847076010927821772488572770084649569662269970625961313948935780383819662413733114580070254473886574788211569755597545355127575189383632587306574290847722906188062220999284602528070207706334671883504581315993456267447088809301740846812019146790180297279010798529746841837500367796912701500077367850379432658408094724518579809480602933167522376200507353108483850184222778704984610758177155117291881012031342303313378110164861684887801534340790955563819182711112432670226019089727121865597915805167298157349980018251806070377541947797535668805494634961939410828315634441752697078733033620849698979317102087040729675558314740710274751710524152657897670791995477518510777024360883389434751018714673254183298376513251579547281317412944090616890066235351763677091572033078828231027686530176858508542632245562939849598295245990731598099622509922727774597999798556134619468246256311060854031427822334658806316189964883317741755480787955601128299368090373845899138531715859290834185438585977873320269880728928058091176394931993832798566109541617410016524321353322154412783703531235562811799122452682047243547387582740198846304368235125860049365407243635283994722645348298477568798835765583623159337264169510369917500407020676077533495604661876919100116645746475070142501705345003875353916312198957709861067957471703377574109753634885855714917426582602997207133911778774588020789793233289014879822309296600382306288045869621009750007716877890666266473195475033095436064574387387562776654253825867563134727890893869621114485367848666539366899611254666309199629228272491770443060842221988701050879673336115604444536087733074664044073858468381327270297085423939458300757905874896138021699895077279376896544936483539494041322241943661025035646019826192082723347978605641329903489332057513125354842852732012798403301765828406104194441229956450276441199612029936205625551213085944006166370518932691850934264280092209829536285857977746232492532750568697913916925891742170040172713491333740619385137139175947105708404609643622572590036885020125243834922485554655769755949378362760836533532265212246463686321378000224896659089138624924921258426510657019559251243255714119504001633712997847606523924812189297827109295355017124957785797119690969314374240000537041265601832379395119955898445482983770542823604641555610990907502258612491198812217198274349859924726831609117782244638258224117913248701245834181271896639171198362104251867441255093142888978372948832378686577959352863664868887644522561550571144604786126172728404272358061094526298824810070551356087381528818881633763678671167900732737029451819926357510468254543299106949196185426244791869709928780494811241188653886699680520865681276699712958338019473253516165910994349502541357263225976719654603995290949075052678992542308930263609935965845095269082383089958321162688806215313194677781186681153815284831075515588130281297697151567551208627583635056621601497910886340396867518905767744061279963867154461843095684531843307355042019317361845557827603454986366715048959090703559565831168499420009656126157845809630972638104538311885148867485161089635928014547560089678158954683808289610358717726708245277576383528290790453456710798952999215185260304712621082327321583721630880388579755854877525582814556842219739506612375863320538729090623805377402702422815367239489311585703509589197373475462643512120218075422988655880961634782007572147699184175906581500238636358521655909135304406612724805780215524784022933014431555393731906406116490071671174029182164938888230594432492268266140689252710144245223496274467848423373235912132001917738183361252278280916739432364715496207345929467282645711354778871671434021896939824707821077583360710426536070771056186094835366780251033581262187220255371259079565501045096415479358355379144764746559108436935986355404987152125825531581640912458302559242514253647559231750808076471233791747295563899758829944069795624251770816784985762935134418979985213304384456162266778454563002393500576434296478450150739051842570393033741107529741387303030828630359787801930105655338222746280447475718892676079202306043959631697437534993014548098567142117057444339206465309747422954214787218111835557803619672954040335839698218533834690990401088531595717093434354137625411894095950307728591158334162478843100459722322029747917086427303836430560141366115040972180115064945078854970369751406022860063445469182111320466775630535547852841323706506671218468316420323821196436668699443265523479813878838280125830748882062024506450576848734565669720696021951524251576146035472789182079238749261360021001641359123254323786394608420990029505546081211219636718107433765497012814995611803181894054680476013189570931938784769592550568410933724330471590534725838327348095338106109448940789903908649021149151356687294403577348791218160852698746635249500211892679286277616515317744510134835621368323316834791628676326050962298768266977049970154696736754521825238246690227425703227341093138158913373569443397248676636481517857561192883741161431485836115697103598996503381822120104369241588635980852270535507054358032393386273807996638223670996432019547527611630688983844128636415135090214195097504517577229798300910401579105586072498041638780890550602447245032533141315635420419020804366160596274380988681405467346320201345882599440120928837483575692027990742121150424490965837380308796462245831381505202849329999621304100339803318951456369828444810585064183891185109312703658910287980120222241963165466335093018181034584722733571677937197260328049833433068630713333673045066529360340157245551791543153969631767489688746134340716902306172371206733116065432407240667279747538051442851104209018360386901397317796262042927624583812389969794552592897058153393258902773771446894092561222383170992595872232978518292440753542235112739131482076627485561568773269596873571412130553002597507560003899332268114997760554995541663987543196147952593163095808704951053264767006874199954813817339021083685661335016154565053123548419456862705090917429663025039161283141047697079609050307841595913277962734352694832527260862162734982954539196948170416881331263860795802520036405126648647638026341807708970628396148446038336050935539316573942693652243320860993229302060502615089767632363824185567259747152585184408536779587119542901338755534020280803207202954978385391138223294598994640354890030985419747909814053569421655388370648111233039721949005344875026040661948048211645963933782920469802922265163223664994491325781264093915875333174033537782013135756111098806994518523206793052170268160354849424233357351236004986057956186376529018225118367315481664928084250964438132534503432328722854681229153234744106814741475519310631828301058381368293721557987245497456175502151262803408377095060985906357178008664122439853737408660124533818844733363332216394384704929400772482660343807483810936412015039782430381184095474376596024487593223361801140029699970987222543293407539117682342514107662758156266326449235791885124413091958088970245041788680938831619190030712865439974549125525015485419689703200564998556875872467911205351758512472751292567614883568913946918033577742948731589262772691874681540988153530918081976241522347592599565039608686551527423276020463097209714138510982103216478922051068570263069060852158389327226022164598350109140714623068339207945299790767571537601863574791828578407963347487834187166311552896683828765138452607941465213620744220204553682720992627155477821151765467172345537817201401370115172716908579100681033586424385498313074064016506128406629939961818346719055780052099347412294321579023713010880478230549053434856250613340079804015816500475483990253561962560889245448463805102739326236463836418397193687009236198837603397468264321913286231927744861182315469813911784763102735923650310683235008342246261403834583384015184315403318584961789747971612965402894210813485457965227804165575650093814961021907894709212499020167050021092748785868154509741335254263755725994272326780328711903351395209439924299464754211025733737146768355367524660990051871282929641375085040853639339308499773498684668261056922359604096132054873909285629953236353128227604511134967457940228372620200994534758215784257415987153269061599291533230781201275190179800032765531168142743311074173153083981461251312435298720904501986443870210396172550530005762948387370308184666500919615847755332959932822700004492825975490109914560567883383641276204503149112910056209008616266687055949454384548454860975200391253951859669823741260498988052606666935502811392567284649317158470067998907774066305189042801654786095412426445032902829609989576699783032321196950764763119695377076320179229459205890677947208339759346174353353417791034834781748928676462701267725929388248289952022011532823934406226559378479772043871861056549907943277388925865406582139584493552295227949632357966911873148175577209708264219624343216393197242395227705458036323747053937672758208926872601574736387326723009983484554031958902311863117708541587327345993454060352684888921284765015050079219049693508989547507979098874642205050725283457894098348548399611133264927737450752383785462806486287754562248391719591750937961366081048774886075096359111756930236059006264013615917557464666149675438123100333916015030029530714478044991059999540302352125705632282335565083225766779652172614205672375945530762200828136979234713824339656525039183899804247391582839692197940129113769289775341148919975680477000328266534621184707286625248268873985565823436885277749660935202035701709889763167673152309727339535156501672811062133951631431827027776416166006183997418910190863907138137706304686329606574064228045817851561040424434142587166743569413631280990604881675374384076025092427146364425726512790323559992717653255163209866963301885261843929685032120293878842833499112759876197643398889006844866439578348266424686263618367810842678990715556256220261863426925648126433506488478608892886533819056577885794548489060623996882742075296525625402899372447245765437253069137427632336364201715186240199823834267982020709123963706484275046797096435407605329082290907948475981539686398268267013811385988172346658507594684679213158169702026252501655975106603753685071977130420851274693318412995110985736875244921047954371028577852675084284770679414502165128844473140717505162638081557790008490984832680806527049323937806267093962959749808344869501676405737939719276603529472975068384195503932451328984535096556953399641210357828522474100062497239967724168151731939764490983223373886012388951157209722554726104768113054236839251061799225471187766559365170395140401665270862540011987933563048762599115303948307803941780667022193184479264197732856163544412444963057113430591134267033436333924823626151795744045171801054508530549714832436576394699396284627977597121609070601430219780836168172846741090175320929482097729985035013700255080953937772989712922834829351147475070436362544449835756942953122662900871823008053750679705766405235294595351434258380886447456433833037192863939240537668693284263633797071235954917822896442556050085260900569941328731607046378398524146233615964605218847471091096413418360218008829801893973171872542420711584650748315323760478875052696632330346866408913535815412937455309478320924764865287364644955149024225167188076779765571616119537631305386045753299724429954978385492776052997245467738103206899421441473069809776688523499786484853085318278687881439120471583118158829319511317779505061585925644849153346764044162040190234977038598631990982835520759244079122212047871518917621519882686125782407172988197226834097901301094553939296383906203544932363992724608392114644396143669363843282148612424250529283641545492946063704054639541923508855145839504393890709986177857530211778255540427436615239654166264832010240535944810473692562440079148071993355825845707584990458124983798246529621656789890226528981685547017706447540373144008686475485326407440858554805863883380252317094555941307909437056144688748650819862076445732922536922889239577178098045887400373447893740490646265594936004878347047756644972861787849921050069647348013185797947587722771552737930169550798638726053339387152400952911966159586882879664931966026965442575099105454768423957773780440636324488850191595234466099245621536351163135518216414642773111962824446799552749358848251420837714655335349045035492142237012344078265694505145387632959254021675917299698696233263099020616149403836771523069969272773996832484679176210265434548849699224441464584121698274653411742906099470373753078591262971814060332497652881911534413558293689298097184575844903549950828074178967006557890244975863639604994268516662657734308081045320823866595619509279163797210021506223059781876793439618581012130011577875425106807536815636305300797387873775171807933760230838922046096337624760029080747088549337270698308877358344456318080491810395568502252438745981033973453247192606174088418103514654958624953913313513871309430470089689107173462914997442644369184322994667828883766078586589501437021413415591288029746657912550041241933299410313773154539461263209770597570102192818009594929857831506067619578352995465978218663981653317444795947092271897911344217086497196494462801517329569352551141989871787316126032924945319768588266804770692689650156992648771564422521544041707336041112250025350714427236297877302924321971089262742245310452269671792370497833077608604877661067205785564680453409811642755565199562386742278772157702555631076757239147511895064803419318473730133506571237617330592580100969084513459833638864741302391809954988475464974192597328847716567434246180818637228219954872281259525584984828794590867921277138393222439883503087550922061729436858450045716412719120532959373608825293839499847538759405097965214235626529433337519729498006001262479167159776892952765635161059259656429606560851748812275205055993423522206857434550955456767175210626078573139699887214941746594801127874922350508480471913964121672197228294904533077261528925755730951179909854500639857873947713914397830540303578222836905700908045816235291061610773523371339280275203382631790561357742116111276442303831249075061827202024941435216962529769339403966464353576243704916104709867594498639964587625926665054774434326741072060993366794040727977917644426767990613113792232845601868957744516637608658627989010460820604905874713085441034818244039809701251409802884735670081179003027761867193963170157880923681606829027886634376765186790500163608625124094621253695371145672161916129772832225307000049397781603774832763777053422321535923349795320523433621646818336751203631296642758418492573644440255440768961297259139965380392350981333187685420200839577643364835563954422603443211735708655774702197465686234984233731976876983715461924246138188497232998593410114409189136456245460376585117118403175832591204415740044013421824061647021143350419876393151928301178174781045009579297784472451965307113438766339517393172409832770469946375980188162608429454064717154361136601308758295954051671713725718541986881604839533566010564252120338203818621191674543697506199450129910811862910605581736119706620239224818568822795774251618370411400071231870073390285381744878827069029615548443164490764636757317838365408522655482919909164646436703162471691772376109042322811277096259620071892989214931304137021906554884641545510677449170498723150962632384620867633651541926667207230603895934179533704672671228864827619251342927763414160732745445884606711246257763354691487395049151961803778830131632422896584124232060366987047355688432729899169495603750504782004172578903829504924155794607435556197674996850585237513787431713514139739558703015909177839010421443729284025589640580967190519001864084966413896306346851174516050460381823248570138858420750440984622142891956668826390256004750423643774803925102172241281612121911997282923895739339351211511121751385897074616245179838744464406831500096676087741422168488676985038216457412173005863505496657182603394484120419830203130958548342074290498679423706363398023744661578514075424657147132702211084336974117866439061150611395581472761379483038207851299715429665927868117228773862355045066703439922092054220162402662492492204430318654987412529179682646255074424782298862484886928415473157891075030302482891208077408392291707339687362935593696929094808907718206350676129582271012045432233313354038829505859491317765000677233675777816546243018560492007146299459437421612387704654162967778532398000702605298640870181878575261465969674137848684145552994518052265434351381137238758856451336618453206011157424796043161086198715871625037875109776575931471364674848150292493195842329629778010779794190786921714660784700904757255361464435252072588174266800116684208280826801803811990787306023838587888053394620313103812121357840819379180965401636024129426427776173048975204286335565866921867427164045727016647226067452690158354545364036428336342605576407436734796587138667103729737380903439310003354391009865039567230266701787295345558472957304172314989511254835540669795033384719988247940374191167068305910805316848412426245080709495639969710776184310374453194764029984543222621585761565916058724264350474335643864900232411800048393609432757576507130069879717566711833654538514595817954336984459046049598878208263727856445158557869023283497337919838592459841389962583334403382919484077547681959297553983611454038827052047726600450492332148909409287110979908781920867565540965479551162130129259264703977506512642016841457544067377727762331547794101043027408092309553003414974741836024453356324511920625024862198780644274318317406448443857242893446418790969653433040462973373230711543850630979540147067153375179976215217811738022604578006398168000675125814154357400761482105733564132503665662587342178201544880441547075239449954583551716880230297952677430383397990894837672101836159729243596045732699019155863781272025661058282614933048810230139365490005495125339345965212983998884139425802611656921867861536386992812742124527789674402295827748288656245884146055583571068551064760645454011831392798193708397418858285529544360995067929349923848730452543979495200013346486409475997525583216801541392880044317302251157950304978152061457991821242668321861194167745532429989059054063499536182339056480226341030469588263276835741701618019593327981225358917257875213888554165129978800855074465539798643134505779132764696144953245825426485283991903964325616094859692604237773700378947794318242451631947763886479837881284362509010784469483944902510069360839140790729957967526674525154498844784993516202714304514894778357655447703080784721794889917600303954235694562589100745839641650180726638006927121932196469865135146099909865258562274874796360642546824741412914931025310560829091132130255892562908773026399991854162751646860228839882055094782294831168460102884314872101962354731829177305037378093130901044470578351995997670801250412006858628089048773931718964653681674886226036169636400654151455747845632272114631694896343281409347940478818069076083134441738938094343110008196890515014051681901583226060197252550067200692121389106622575585758688735800465227848616059541758744995963250109697825118317875926740789660625758233793397122853115409957297844564832897242844308911121272564901676245153985662967837879561751544137282169895870684382255188893794558455427017312290313031427875363221870409285481312879166559901990324476783657880803396342791382245083998806506784364786367514768724417375517232543638473223600770116941006018650142449516661328874066311789495646152822340948289355000497154955263565517042105981687841315907974191727748300616171088122596554180338878830786874009437460096993426554812065502979717425702846772600394913323773813425051350726533735159932228673135067976558976022766415915861561094758663983481306650681768131480273733022711295168936144279589152062546737931932429193868416600697432486743013028274090115501939850679128376622185779104349118095132390087768405967302501702393441374766100615821792255934216330277953191820933770769373687814970977434589107440349876573843396984019923153304006890798411035597653898754791191993729922401948702344362250370701150902856906387809699603729128389666160645614248605555443263118782419190743429691742613975693685928401334739504201750297561683607188820537571836318375472034903749872315270238253427671731839667946378518591830783434432664522326386749852983110410047045537372618338179556567079046426530651334700653025201195374039128259722954505326042785493667814499871698776027535687766893632493266261104663594651963478704901641244264175830817143929207696472987654720865236590487174558491793726383716979635950066029480654880138383530208890409825817897272225516901000912871282811294619475712130045111184015037178661056069881257196283317059256595530481482848229700859039532804224277239310642930049904651257703870832168580980770126559812721149558318295102986563307645449300350695571237372234127749308881724612457767368174601124171088193571772128950002612945083285607652445443600852533667122954551943047820008119392248320826288804360191940497081865877088083651661418885264020534924283850050656518255439943371127067926408522482245645940420995982141607957395054215439895626737289809986557541496659120911940539519234314557685719694815382429727728262361986197710696956817831241604646903698558683718408609595593858622415449447820132427898260223539066727349468603363249999470102580967002527739402739980345994485828258500521293049526476568495433186107326399486462478876421951814539891240460572419809390562629844991306502505675569573495628013242502925352569135212739124796620327495076439351481649016029361648350329359548168456584928497573787117302181743356304625164562598147440152516648504976575747492365759307566789062352236831141914909667697483860558642947790008466204314643852534980077166826884695398816622442043599015839061739467450697178531434027860134142778728471635365598966356229274609828710316912269838931510693706678621079511556573425530559625863359208845137983434135941661686530540342639454259835109152510592885650974355819491448230619895533478207659610066485357816056051967009995347654054373963374339001767899597175474223760712660775822306592245795654782118079069253347803010171939846921919200339050222425283425620955351331581383573321711744393913555279475674473385358596135377121892831846290398498735082553740605961313939681897960126646551176517174592024220300837258630689917236003082900446179743796608203138236516446069905140190082352540851215282846399462254062530710008497075630392530475646979517663734474359806460581600140971654600814978211342510370628012713410750356681121178790949611836517808800713089978443827254367249730225714418139929369191063135535196770522489625396909646363204718519230798375528080021957381853995929734864083246420372245557143250230783322879395676334356349430235462694112792786239654546817659576557869572564259613251733662801555369335291764385209132398935163528542129378901516941414090305386719404596656500038186488132153960817500558606599116460823976772002980210674446039708103205856303073436119918000437750742110314134222519852810265761826367784032714227959520843284672267334462695947751799605004506821251571011683142050826542904151359386451073322179190217817184308331448186610899353238319065676078080267981411771317918126969023288868784148195052520418534703338881479523247874048341978469556070683968684169791947089756237928780125566964438442186012569406249182503226886481609478735232138951365182380488175864342839711032523182439718252807123366346306178980567534712591179356910527296206773859423353769367828528146292564835880877716194759121082651158398218258458935108609685614046819272334461561930404900020730385120180057890148883906690369940375101921042646326938782228395066564654322646943878932121516549122323253943203544709786098852927385551661059368410088626086934070969171676890803178494327121258550663656087937056738769444886828637273711035119229002028357182988444330664078506636784862807726144764904243117527204965187907860545567650234367602553599974199649577149005349703764068932516784844312725714217961221541505096007372047340645686097999291985940618753554650647581456042850270678077496798637247688534649138260526809205462807861374706485043613076030742630186143211071283519921360963570180484159622049214724603312187758513428444238517714222148121149123136126264887079010377684847988359861245749381207134739187283058033259179073088276192415733329800649642768354125044680256908632580057075707035335357483428700826561011463068970771530654702074950733064993408428331587532844132930288356313310047876890596755589819471074266374826894933005272245470634229233995186734783918346159629858559002936248799593287204496725796375535534505279509290213479742975049237179193796733114637395911955867265775702972055011254707091096200830827083866703862896808714694355076975940388584971719858453784235618168031789346381953741285609636433507665395870348242851245670112044490245388772432175194711602164115321821361121796441403134036973467650574809328429565694744471763813782275754900610943718817455253644252443471110461890228247571726776640392634603648072960311798622265004949261188641698427104277357310306796734458479541631946961855241528775865716188170824992605245001353939199404865170462656677143462018026404695708216336268844054798880949095149642526612646377870791538354175743622573343402307634656812988852245894666567745551586607381073163867803086353092034884178399335866008881579652732403665453920932081975046533887492944757318160902758341546960535384622042986043040675419772293721303298914191539703861514430224254694706701848691481974553610723782260478745080697489180146243003144485960728016095705573688437808568439838941038990776652756848341584726018030456459145676672995693227195983230096828394615860644379466139888274339205062966918595577816853181879289365625771644278351193079377161497418234732357312691059532920853145886074531267934145008329190917898983214620631158552171339418115702528581176063995409892708479024445056584882867815605630144983790317308226926102596489990762827334886361074465475052637844144190303078105976243341138726065409139216951074894456317069347746268383460391843480520333165409850287149930106549158433884313559265198444321753212191336364124988888464145995826900559255804212410937771700130789546040595884270686292227586241683707896950236956201945593937874244631302527461442477241599495187214987532752353644394925895621106073041505760979376361855605655303692606406830372288919187132126009665434259750600451104824426688471924209656167154834947545086063127812672309359726936579130164994643918972237121836807710064018371570614536798596218883411594566200512743880880908578871014667440774151881027584127918422174949446922424544167674715966262195192051488645974339216249719257989353726912529400210757570214729530073061377020553768994368575631328730499947184120731218705150771709564856416627515577675224854744410394373681407924138178683430296593041413539579810739025092849497323080601102319594380245985170082307121520825466690237000728671346188255123484182071237462045156129081629686453432029302081946552966108968489965948667616895245338684168165461045992826433248678916622853752456153878063454600113286649097795286644804561897128805619723916243598054641187093769916282504901264763838694015924759874486153565753254475273394244023788542911952791139754927334305585695870784932891060266697960517028400221554556068261157367746560827991302283907785096164055371410769302526013315660390202916059513602329270012147092406501647749970905315850956371749818862285478769936950659338789628168441612867308776189719028950960628998628708819763281720202542877791031144923767593858596681971666998011175955944803560267270893605887173552801463813677131248938980962636176169403053923051128312109736333192220931658282184952704513701256139492953820876420256442974342543990577501715934558654676221145130872693628981816048505233027700250706010988675854477668465835731373765456498567325108579934082542726706797850487513246721958313030106253319525280091762418403841752993365217059346713687960393961317264004471569468344957193451980650838374548536007589016944491916303818414682969902493911721502112775666512284115571995986940289427518340445052676709431753438373561147405698610358241133128837079767936291645701427407815560155979442771784226224116029240227051322307037406750221314363639286350026774810103418029552483225228133428264577423404322477727671551637045260561486598529343605867562387697973275066327440355312760947260117820594264186016518173038849215283663338999655484171531529010352443800577146212059044675769660489426143640782758729043627112729585819120086669266191239012583283111631048170954882107719136367391168084683630347150402186099342068072514830211704133981763116364651308256539141039843149560730718453632659323936337101016963862681043580901006850707985200766289788492510562575094654662569880340843439630971026930957051717310915639484621256659016858961076850929189270058655850091581561401294445470341455522528137562721760853340509996792479156334605022287282398520830812050897916394789879897773647313691322099279203565189287296584023218481619438049877711657717081307547661231371607423067952856996436601930598884824845824426615943394174244468871451761804616426789915918837016431211089304630336228432433304353924933777277961798027387767790872826221710438163402413076635850447908787103530128943985888771377581222089768496874011489307187468508785636698631108505524722458409504544623613660563984709506095337368860304962368465294431072961790750712258771564697161917189561720881501457614687084281806597252947112232609313666070921574028486956754985888930443979590703567669068757637205333573058596747612499585974813686846307883182622751720727774043085483259718251478428488336446056787090847861986665750319022412863261485084728777336112482891997674297723128492728163364338697568630679091212706736575979713886836626386984646950327822345476335710572699926747847965467362809950250766483453900853246163929335552281449220146046267524836497697668732486563163108585017302665391961658705077634908046895156356026383222434919308720315294965787019965221464739881749350441314254621396804993655328349316677552115958036509127847544872776979013108635246713407917582164492716647012151872496323942115687533752681052030408526775929769597627931589194743927753936591245322992830064168456633701950579731033150311128441423267632376378303581126311217798846314317889235456093899785183153617761288848950525596777270825624854250661086047680282292017422861891981525667911447919861789678020333813452121892678692707175596103213629382577560959695626213891732725653324733584376600649565047277597926230070919796171098934018759352008287807701192365501037859654728912668327761810562612895606144350019740608961880231995954545807148510847297829131441870550176843695732268886302540318208996873146799782093210879771989875553331872916277552234005359119524573859389157432519609236841890731441066017729818993490896092752680077017332520534177730638313436639456597681141835060611052418474256978419700155101360315375168612967990741361161613238205386379688066569257365430835354665267734960917088916214493465448611627161704840700862680140954319677621920235939311913917087067033869222658916316975438411396689068212838073220722978502417433383689872560392950238441094165086040110461077160278412689962272249168699362082900191115335678376960870258420439955021119246286934427263978642802759036118482503421189170824894023430217739065995791439385352421619855582586801638405392930664271196882410255195347946493143693268696145088985804847353373668837982936861345379387633827375644060997733820862938603332553007844543515423881347550496120662807314916402093151769845793949264644966947357141263445177689254216123903207525720926782466962280554894832665753888816685935163210521422940320795609415814604725332403148773759879357867502819415932970318055176147589669266751810649459591794098328179184513639864713051106322337679364943987793589997758679609660486545270804576326038868869911420020089873159227289084635431571459444883145571728131512099978195469942380602512471763034088727713555411053604935134947402312924382594723578063551598609913424901795183099242635195005219281840897166075763009382562790569850708020025197592225510750313848341783221138151775416334450980849865032572278883063707722929091301730338865273971949785284929351505609863474008993591486487262567661077009928903126564245723824943691015235005916092136384198404632402357928313603253812593050094254937981584421207017773904437302378651690382634953861155192937541863719215832028108359074013684211539393735380975034572158181175846721971920674960049212675361561628872691968840756050200575816642024831336860937634635854034258240939223500332823838391878846382021292720103010699711929970427899440102276031693320070930552747195035132197942255445907393132023301812115570731890230480657070844674303136061625351021566562605914389998321360236005381062748166104197520256344218008992865584359647055570959304941932255103020741702720428654346829266406236744638772496324868244774764692272786306494147260562634401439616823508158321978667411486891727741704060237379663937579573081701684077646372572576567238743249229010492401654117022430770246148513207821508622388601824743610670427751296920536814678072332573612710923996684561378589855505030882288701891251514867376644479991336420854357923904913554962730696315080224465075400793037314099124914972842129603328716149876992806309389248783895311227623295286493009640554878291630416317886060471161114594038183610522379661035132550230650733954093486775812653585767912258529434772186802391092814105656991776346240401273282661802791343056920433551109075652385415829156732788424791454337544331085171828601672137924087432053278036196868563952977532392531879734762269063107457402192207633478818110695878267868041520026939774103450188212601677007211763182877483345609336027588884612900533867131315457933090790928190571263128018907111507822258491373614343001337710112556191217965742804281783581505619778237611457763655885081727437844657885808456167464649933537555009333037706681317711091510834522473256429066641441185972757445005645756462207874436662750316118737491273938946459970261048188960212381625413464187092345245128372181144479961623575172505796678526256647618485277121663899324848155392974003309731895360895299491464108774125599553421027069444310010255583503771880757962812674109138182972233817177297507986304342008468056488865717121132118943132256345562598213672319514795075013891382433654803890398129279535832008515941860408337079918232347557074294723161966030337349769978778787401853352593058368591538629014498546793992880839349981176297200680919907721855685512570943899595979888007221765435158802704994082514997455348461076454606571956847534266274794423299503110962593753422055833852841278490166065788539120670674592424160317133141937406827277638635933489458197345586097897687539480202912348129856339763619980033868406708615852223023219944268373998652942035873637430596302203842652859189207458610223669824411791481021753078159966153644217512771797154420980135415461979446485094515080773072733023544392131131764297463070176269784691952535558577050572876616179182297440271960059241704460438975317948076324947307196639848195763423933309794330604218943255048191839325393631120548730219804984214019508103947605992313667374887014091188746094791347263942623886738509977983318949690663608944352059722620512753408197955183105548067373625046226003611880027311017068457229308510328692595158439799433808875137461868938111187860946129772062508800552925765441255566540253681909491924725334665107743856616959852641269893138845218034764750161824428729203433078742513218882816861334058676049368942197954062506243959934628232160146676520905884280940304570375455961928148675580191693108130927437388758038470053082488334676929402991719295492962180236676470511886750617164597744444365109023480363112043795921273417251766407231058379019716618129817587240957579874553079742420806090091955722808165152005187110698694659236139241541162475026900197933286483205456959156119128108577337096025821210087687642788603416996999537024214450745182404302513174942209804694995485841382167782477847415499854004429303916593317868209724302339407446314849421275462772150479914579578235154038287246755811185932703661561584520313083451661901533271170692726185764972438037729450147353713369782753006099799081871512716505306270032171863541836085234417398304965318330417446269341814890462527666436995247931917563664619586416718812837117517247161281087281568859711623848437489581701805330029786458044650246070553122409300445616831507540583473226662016771852319464725116318719396308648337566142216232112690857065703384474689232028267910190167451946994194989372014368416297442377185873264416887133230221336197293300241676236848376340642055973198716508590368573635250109138815677748231102609598876223265311424832065065165844860999331512011098782280763542167923414758241396972524341997312305828838447252307006482859212952478767141189169792395395718146056493479989770090438406934680709351180730988233843820070705967508243244620583074758009385935382381798394392212042416028932070083839383398795760627329134139879875098973600926371806590148919535560156730694569177223162413587034277619674909160059355419861323468408462028289380023860593809269120954092873042289554772542051629878220220661925723505902381222302165148739160879442540496463707963499409217983111257820028748360909911025911104479779090004196842173158126155950107759346774175888823245090940557134749708579030427128300189628268241899344134800670585086131084793708993699248107709967218664143998326223221945011259863033749301325011743841484779465246821294125908418584458013761125188481960985425653777759818901834669333257717520272560959848997511550106712260775146076064890694517763926633263453035636997365522479133653266734388435566389142616445408712900662106480826093960824687038562748199056819742530563049934642052603027408406682402886307750047347827171887289210288329961829074770179867464657751853211226856592099199068211072003493805215902485348928234489381830942882640220702804794767778926605008871902136484057205839866131168973817612911997214578216322020599500534391955548155697841405991565875687132512775143384465771094095889075942056704764468080321837404217479931492834713039909761699872756188975699972416677206057817631011084320372267648781972658774137907793654322489707382905657883309073698224975852974690703228155117377251720531778234921271014155266632374180049505069248858914515216853673249934113940646194066167216948357161029935555242270137595228581018710254869646914911458762729408128984362873031741264302399395258661497274755152247645050616081923105669191899534701103634717092648389273639336443007337124207230373766010862191921928364347280714424833373297105890292106418535336624951651825297330430943351723508350554276383762412732880265610285565082412338297881237390149150295566620472977327373910276358884356373142666357507243776835217896921918042776569444668571462728790595614193063349419429149521423824785241920199081877400241952470669053277964098023345838149874857183210060192169896628713648091301919366850168077617022277937362284035095045512812345653638057179410166565752781263015699938080051332090804226979076280911456532922027014328577670010501301966349398223361282653091469798409966775449657338120682521347588278895960484752902848192924055500926921537986101905471413018214237509412211567793375804631190356250596565895200768164981953754971840007836726873749290125908358196831259274233969446391776142879007952560507899565581783678838037756798859481502364401664040087048465676509159252327601876306449348072536042491840246066385925979742882593824038416239376472266779479868943238004000791315485803797427667089951136546726014371801219712365386874336375318947211214017222187776310452753006399974119620205651532895673745279218260869613664577312514870959159482871880177158094257041940263460291617851856287894066552834026883667050634239228000585918813587723469531605665981066870152692436200294511743118775951695889696016455787395126947837423292760082169040817912595453499037298896451652969199735804626871667957480231677253348927067788912548781508254665118451451876684745537162156381275368562395288033780402880127807151069984017471372744485441561917053969255827942671428786483443711027580194608188691136384000580105332303201576976690541459897816942871902875093569831757845920429259770252297119835376754805583777810018824214614814167463204525549833491814570557214509635816234755122865277368349638616409884884128613321908291182611517021978697599799808775061428178357055848059755009486141581082002212887896003154805630345416490016256666236179697141740081310076197405912144847422571161771627550489675555797803441407891891570183535372137046228767509049559122784471635609943675644354402479749969802683450545422128220002302595676670392819951964816202062163108537811344081619841895651974453286835802649726643789139792665870252440160911457703035629425936651948884406923584223623328678677101092808291571879052288618282216319502120235737302513874261854515826921901569410955036480074935318869241523395793374800916317604374189602869192094362414915182700574964238468568733739296159481001124347951246053026698707720842010624266645740997270188606440768009966095580837856245594853271426650898225762621990046351356524160677924563580098372945003174263292610685566505199259423791920389000471415724239379128725682520824079280998962724624593025194316869272058822044553868115500568472812546414170298262359692507618364718165617547532138917214132637114582599092066932138198894889188196491237916539743111892996453083706684038890563952602951721253878940317046416121290026097525434721519412337888217396139325027369376327512275132747246027104165088601096366418642554135090622270837130316103992147421458029480113602885676072886077380374115969339934672410916233726987965872901995737511578838141172835817929512854114585377238691062809898571684944198614046107364071169961321288918554338731180078882524613601558647704289674521740862079452248199225724306748116711690968569597970014416938383643940726008524551996512701837243123841978209391440222566856022167429228867896370784953796727448897856619499012598902012222146347263478259123167467462651773763268833297973608520438591879259392404400408925641987691743500777598765729238976569925523731142675298909612641479342955437373606524695116636792459401982234458789849040171425247211249212595285470345317647157143221582848663552022223293606582057027965225444588148233591560556767439579861158152876290889107915778844249165788826809174861519191887487802070519572305388081030128113612808180612767104871332277807482581769002003086561783495016165223705064928284949401957931134806232321677371904512599385296566945482211389482949774625089252877321686062436942880608706848441564537125237016384730771975510630013971864314032960358431528328712999604520555875220035046740784128802012783047241611418466999956452309044053660335697214888628727735884230840003860496209197409385764026172615111661907656142240845142382105293395251990730249927976735520920624492218909806928233489166922364196394599253687279551309659270133463013158609236846613006015469327327084300032623159879225805024058423218480127517398637203625108035469316971126448907758112558271061044459664320673468414071685543096140314837954901141435687644155169622862967464802705725839274137399798276645770050998828204058738298012160359951754238543814744779421991583729233660638545506600015000429642013541302650045830546304530821929379228091825027423813814409515002849775085593822263494382208865426610140561546346908674668064667402742423962949756892379841939304509150194244188826433302523210709325020864854014263981242006529478479745018874815082629126105241303790344054705997207373098441527414857795720701916711929361470484620448311206828854612572900434011844843904229728391654011981848120228860437771997990704709453351131271093277068235829601076374793706773752709450986674308799606596587707394462621595023184223809603356710459657946580904971771161309848382920292564585816771568831997703880653666999269513810280172157675999999164518973226951324809713302337899467548939301223249744183887585656247823487726355072107321179583789384333780739855525544238321389269916951434370305568564814365851881100747693443481951631061438897243927923859942990624611032737075633027801145905430168610745199466775940015181777924627682514128307951230363478710077214602890941141637418308377609665837651432719057614631728170697675859812812852027806457543522227791881471955563648805150627475918816180125683840452855582899921812934690146223078823513910170250105218763917861694427234131148382049296007946049533723662817418060002158607221876921100823691234049618122032452723059174194020706111359419172547205960602440206291644428333679443552622633081076855329500410270355798923856565749938497880269200910133248990984718750280495708927417793321808864108852283053866083619293113175360615389096584412567465322878233654735945796922120233179469861859986702302840652398064375434508026061993926536927097949748215784099705534618179283876419813192459980649116049438952128153447956219218949908414676210423330961590975434176789519031300936644358794498461612914987911637273950522242763271253855434812187912145030539798074334110127846984786713871244527751719358406738870048623720242770459811925574201564536250660017125227635038908137251405322104734966018707711481523853810805421508437450795399698291459912732710191167068654802003446253474770440909606549817879881288466768344871572073810952014587059669153898542766918450230563247798990126780479357964278128113039989887265637755091057845889584527947028235037027760167835961824808469307567455494942063892649791218142789092264820519966486654486916983518081938850990046601875650783651160588976685509825527291643018381985345362933393321228814897745828982925242361543433665340130916050993216091491434033765333444526952242399626457008060588984163695177352235752329287728646339243449527042099916830401569132903993781090580182798238140734370226749175536975789954556063504408042287929793019169437869296795764953145876502490550379932801950939559873561879050646513493905768224293852005067274884652932310803310291270589537336842615166559937159804034818157832590617722197878610922706124532960325050297265938880702642719122537730115307291377257197149609897403511280552321651019316325367253666327868998408245060698886777917825095954742778454746045245804754972793851791360949218851343283080413695762340989871269292280744331238445887072497233592834187303350516300558721396472556114133744587556670308405182589562856063203249858471891725209803170349161095799581501232514598518995807975545479939426693241822790932333568689740267532411724605857225889078057254414468458133572199347186671527180091519807290088096043570857462850221570997575649872244730225032043892893843084384598216359856486099228684362936552473163667086862061407952427471698990938215786114707824359317281948749675192787521615755160057764194010104983809802808866690732271452404394623509881557108850048295806113846389260848808753010146032120264094598519038317704769468617748999143518149436486935369141430028147509735256938479431998003725454874141700926286509534129992984390471512415554731435107803597242512939632035207486992505431417664389137075040136915769135493143557179560274081542527345770607234788836537477825431082867663209903136347787933626504584536007790956626329022628382435797053443345100337289165725344241274159010211847801794261819878298195881261137681622234039742867164609891335769469517270012469464157807846899693999885281568494365090233399682422115706596543965111517406868050303985835202139704763689511413448307061296496702482102491392436023236230454258865658436682376430908923138560359697448398574685368629207038155527790870831850051059668612994895287580621309119178938729150062103475775422254433214843066901252012374325304967926312701016846590721375686966113706926429208959400077987997216634062712909568829626751599045059968932528126888280767212196501626511313012663273967600931542277731345448184414123221088070727993482325880186481405820886407761467636465531495329438170661266826673978698798663110568657913588931833550682251351387378650110013693834940380226979129926645905174942367509031398262735958030880122762951412638149412358745139891300348470832301665740621844906076952199340175555527236205251886968967039429462378747579425292471518596750550045588986432911424011238404769848155215752520306101540574526620730638265742491013320371732367255204278270359492018656775994024406238819046235953001530141370511171169249268884788838197620740947233727118330368248896800193876099822442844333515646820805131899091388461988248381213367216396638683608559974996772048530706899579527657238958409739984532845314096572596851901677199697268089829702363964434983211194844918685737651869003928629469793301019408774970090463352049395941721451625764469396964554190833957167863408893861244891104021100078087920612302879572793938505920738732021993807440874363827520132107115733313026567808447822279362994562341535029057790638206909086659201821894326881772746576146079237614920156728495777378832489633763622758438716904198901767973473363891194958698404014746070350501073781789069989703390915252282779551550187858980848664572056174444172531860215103672908983110281260261897888160274959847239581220967524622896018676870030653244430638989326315804234524598584495262742190809008436280035454319189446175179314531048214113561628868418306267068860060421943320101749503914208275505209522540636424566562963076188589165933872699915372830787663009594177207775428887754192853094116207119986940925611790290813172621460332704132517763756161854097916155345127015451543121510082357542278813635565494944709380033875139353516855488238295939149529781523761310219349696588795056407741071799512548548080714355981226987092226706952282079340589014415873498068660507101328825355864621263093607796298943310641338988815015186937846026797372201720237101671531367220001815065396206789612339607057859701165860744890713208161774633130957778604397871468712447901435206752584680590961433977477598174138946439232224873048534304948377951518379191912610024169139991573707652820452302537510536635806365036046311478162019064130112220287557539662276622895044441533463447853349162474900642058899314192031468211486838933548744494815615927004313064421864422292234448624507536834682597042247600369075580483204822299762741958586483691097074021496575046923178471087601084270669311785300851491752283880527274136227905124986585254983106762668541363838453149009643744154149986497718219736916926047666534206494269558964195565245804486599744497475813377879813723386582418371627851783661075487563710816692440660713809975061160125458934481826953901492560799957302343752322344905902464024929814988542515521475784999309594510129078136473762281937481963024838978328432395344745800835800586605924493658082331069220787708504196988399343733944373172801893290975141591149338153442314461761659845967961027134117811182740414177275861092183456131969298827122213494009151299371077669225943773647036754464680593287926756318480624384547601559343052687976978881249540067487693427769721794154551507160992676461628191025130591895813212941146222085892229036777345363689520200587964745948537736297024562384008524052490671580859638418868622467033109132671191829528923544200987728664986626413777571848949528576757430725225379983119103814008367130250834286562922337126445741410470051545260556176372952118745109377673032602530476965923083323499219945284421720163102123852450180697392571287643490314194280114371668327061989026085286618262610307128497751217853684500385782670647642250205887766902406920948784647560101507827630907622883078423255673807366820247636530180258414055828440239624247311661630673188514526298677404714468703732621871152038420985515199049265163814614820841766107045071448931601476341612054042944551508839688500188784675283969413101416796482480284144162968569151701822466563608573260747949452935268197045914336634562727223239457526283231917392020214231006456425040024140663836129414181401331445367881102425009360214869158048695085151530004488581278153459369389549624362544830346754282175026364039504820786087470281090074868534089055631295967181678737548242098887475698254377385763320494988357780801314432892322767698892585334343878458051190085792453969029330085869530327108796610721718962664656609942714801438934669292969718456583691249541694746336883077306804640953978775597395260530058048064022016660135617729031773754957747769476250642465172473210573284523449297088949589213895152614553472067699313286716482259924172642351369741150102705849096384052947606059906125504259301333460583997627535974222293936047934625244893765670933982879508583659867952979093366259822462503051882583032293200455526254436103730912256917355691742942891680578524154058346361924654109244244816690524100781560789624330944949948452460970940788040849242946477623895816194058813487552518460391054507779355271671117688896505587559104892068193516405339734963186725593902285806289196071170325567249857621992234215290294128665293322424934846060617594277868803144433979873607590912464865316058236219835424796838451033745977891363813751376082053724087620901372490228195444814952163100546451972480836936781531490199324644954563871968756290814482579505069325644006269270508387403567213101004440046874089236944869122268569430899336815701517734511704671999801801990697887179445587741025867515793407795236649824344200464553583434752189884250834457543849567506634214697290493260271005060094699974235825936620599019291645901899248359372256401164734334404993617170892925076981886961657989166613465661744402134248742091299785214090544999730207829735850056148905009196816328499517872802919147960527310227112779254098088682831999785544728820233453874724872531996010262513809614907083715975014163813660243914346823340352800342621158671061914132361043029351827296560905279710245618370225592542228095693422503335393832598613817872588376547796722728148146183466716586860250722029583011492060554275678420303564452110773862932855420384675404917145467659650951270000733402256078186396861862138548768991581186684828347375711376875648461025818774092561615609651999344743778927761450049335316598107851502551998679737084041650059640170398512229733133163551643059756535825366253559354418812278751154695090536339495203875795366295166614799156821461397717372465877662166846699986370985719460270748304626046476779850224563856042005706396022165962527073584942915074049363474870751768716832960300091347934199674678757526193619384716601588594900662617290555928542500276502778205667085474501719898825465789096007638071643264703549160576354219834253590191080557605867472760789757257024740388457671764410899627095951262935351260333147767376284680549792508328008250012133749291504388424838291888792925847531305053687533824042291523861251498509588799601764602250141922282085182263378349370316179567349143148282689415621514928631048608418009339106558107740203654030585508614310121534995217811263245519158373725953685197367539937924672237929543313041666986884690026935646272910940054097474497209578579890875511481654333720856211780973715721729449174347280721772199969968061421494226702591500862028984865064245164341447355343815936060709083967074737840404176442490902128457226543041368243180535159268185776046738569167569625431259677524465162348562595288766699390660782874098673349800403055443098076562657387422701156500869396874421755286653973572697073413649533305579391410494719213530916191085723466430669702020726241468903681648862991024316624021930599990079795055971532477157210569712065861597071086965451521482582313689947091794563438697114895252093368583882525424973805344366645130234576954629317010323764141198777979371322066554052833609435093948258377701542896161210938109730144371194085043063956055916080095644664636279421170034198564666351439478807144208049310597064699690431249918428956832643648628901545816930080057766660125193984885187537445915540640341084920073684892079769977700837266680630984206295209774049699599863350905659799142169334625950611147560120368634852462543317946322603983611557120265433168157760621474436790887369374043738574307201227394214582057274099699455616207562407872772783020564822664730392576070456455919853117598333537221611547657099836346896729789689796733147635386084531091556092769428852648426637311472187337227783825721196422019745031570655731535458203544626020690573805600323715023866560422306245050716248766808812291387446931180631787161408869875562885374445243510030889236453255882289187255390796973281214101596611400817641236204279700662294090844256222872018452495819066973849652834778527811082894764635565337112095948794271557927486302938716798824798464056872675961692194348721196225926666534447399936734238891306060335795849847008750183588581578744882182303167808893981805333592983950490487431285997689071688627504186066790545742331498161267796816633062846431407052071391231380593308445380092072636949990348801968941060116269775003370893515972635157323497333393431970291873066247439764798880025384997147836271876538109474566182469006152049460420598543804893881460196919792591130426011802588372188108773492360949719631945655525845040827573379064267286230124690785964805623000779373474419377003034374476286757874410889392592929236124240819306492400250032437129437407927890308146518219859817893624608984699225012950705936189689097577892114225027355291454990331136927965511398141442651587325994083694657533795543115012843696245778223716242956844685162193354983540660952231274719088669812040657698403220201672500077175729796130120874746071432808626438652837590394732033044439256099795590733669990458498105923315011451436571254017565621621162355970450701333303748944938506285190391077578148762527477790426410382433799414624282895834801089570739825376271912126304628511438560978543940634629592961866151646852363611727859892718386690507533644281307614509057740896775622174401257220681316108611828628854255054017682078543096584790367840790489181877926073554815477269476847674512205888803922030402592557174657126400922400857620674035637868409426489206852957372973551843302050384595258707202641361916183818376198594224185505768922397632026056901774465596963150502063400033882294571367880099195170009690349913744348810055177432665687986514795856093662930028464096508040902013881761269400801520494817193299279083875539564813787237475069627054989496583871915175976233967263451667149997939527525182397916648810033258730844043327509370175484830904099125890169017689667366974860181121779925728230094660244945897527737800187220158241596343981358609872515116194929022326614702583160965074369489743684452671051373031440520479281158431664371568550720999255218353545742540139931282898202594269618056953807498910749203016469260101054412303236308149854835938782056937332637290312217462775707247801906003591406212529919518062553779707870954393803570484271461107014646879328189384099770619432678964280371786881216254194850388143518334058646413406774443073725911354071198899456027578425488060792967097612075492037527538564061837738638815160279931286170750276593651999848044037888303247151775022708913874747338157458482026841128186866107781398319976997122937974525644368888066913012852034551416467190530099605539517547969249554553516400229716640756903837758747789792292558113010925381130524079090626192829460230743124974620859770801493555186492431524805487625384517460500802955698730899101844428254838898041551543581160053673924561265815637560684549262424838607731674826042344978411308738700107893068894370394259941710061795003647900541552910725604027465382088614591811784231810240120801216734261547014461601783732722656018393582763997916336916020973843684254347621670894489819232424612891775087000454659964852459606494338887859542120326635519182679767613348960469806243986265140056025183432690770951323402611561692792356609912243833208592530838281958396874707838232747481611041716720116415163854779938829550506357122573395526988798032728825909456243475579709755435361970436067431672315147598745416023883109389769050045034094006206139704003853452306056579873835296526497093472301000882404970015091219335432990703867882831784647172048951511870505126784948556857416262950478013934069950341143062996896004435594499401661077446123968683480076741252147899955624043970494780830686930261794197564877390353066799417282266897978158018197458396650349846209055357037535345393540607797206226786278809953082022322665235212114430188996666694927315250276295657594705100004837709853003380896784287421498448109695080577928365401498093889689891997571096591015320222208096419106338709166099239363454967864136803097178059775490399407381446632400359525208482871621123859513531917841691020247108026918092939793173847068710975791240297431817587121564841048981073772374962173853720163219688094595685258415172818210433168537489409336219523442855743026608769101577944521374337994269427058523873416197295930015746155311250640484497318335299696499909715094054385916878084474915159836879121963563053115627078936868224254247945392211180317342278985408544466486921225388521452566546262369814145826680078658611542337807961885722897776160071366163569354889218252821727754871774340552974189261171003446854347793654764208382879813329187611698694594375153296582666092816220717120291396832034187016091639302556090144957587147450733051686279410978392493476047910575082336212106867200059190878774094205267276840232024024339148372416154087587906537398433937155582712593880829087745033011263226891926953561289046680801865811641239225352842758021314386473954938327882100323109512466537934156487840743525004407524252244349608999772689298639826923391753682064720293467014211143994094720132359983547263886861351308268479289024851082371166805743741845624472652705292422120407793414241808465692599417481458031336998301706160530191760854293571399012554197221557310504365111450231790510083301480202716851808565173166800438585075490124746287254873380058857219991834743820726725796539150361125803291631296784667598181847007639930728883020231236073049026469350083228580198672491634780019414369624979456567907402251081793431556169389709360820693875950083334349872345271799744017887927664006577824634900091714209299488878003225714813934840966174878747722301484844449436915212065062912919426080406129031410517723387490887933516109753370774299217791191608569868422875685188866424502087323262318268693742125013001562258178693874461488658633569339047752240924743947448570649490420349197522241578964897538432998356463260318244921404222390160727878171641065604926351442881818207767059649897987551725627620146826969831032050159216636571238270165834772517967714544839948474928170464943348748171231249067429450297184162431132350938121484017252585971817787554829730883826450501912187771950515318536734736408478657891147958684408447068213366943963331388966902281772052887449876868978244684922918314528320797805966967403333172668738172031510143982578424067240338063356209632108006507301517866432736539437683854128249243917395709910453477103881953509799172380932461425225122626785191399672069892454957060240130400149533681485239661200927621085375643073197417810315428745127514684163673983151976694180079219301759445619862317559617709879163140703528502302443996845535485483328707442413940667588764854756362542122424692283358752564294369378220361610817475657249553423216169305476500265145216702280644088349580472011991668508374915374960595485862502814345906307338678010674477858730249032188667001207709388132613876251656210950930245386332468968769187651540830931926491856790426639400419466466594396410338449537275877037988593801296963510618186506723854038536911611600973545025532407889468593788318159239079783216502556344469114866792973883430807698568046013976080217689204278486299076914585700247652044920858976338311924701462753135226221063728420094778202569132547698179060021593779103555480864851601029192604405509445839190517567811934465120387358365952951148491655502948768774664752672011081717242707135911436633144972753270500481323635012270827313222079468741070365530513802173518896950839683468227017896698792542310272194646092741183086227471670472890581449523299272572350821417507092427650761356098884437888340034648634755059149726434384665160399890774293297836984784991794323532907103644069397426271035364767154635646261046302168690145651927952545037912457096753194688312634223934464385802690538241283760475836333826265880527266754545925255871721128467876826482406968111126160253368542364549444941181911526130070538466727298712376049296885076900093888339151796636811929354433345437464531346979671576775787783004989069881391667915812505279877064632922281748680409684163836820550509002124244809093842441105599274029515989279316810200326608019071080496527376983698751725669253362788393139110111895383460308268793805741516719704158633743514588410887996929833726576626806071822874676546447461782162926439562285324078098528363921975469080732228909380855029816788742909362088587493540674846535437498099862450960279133354892456887280568447560499046398238998136284507342993452976962106892738820263565081823323736674100195597514239204405857370248575984702040161499866763428697512403673469059835836512665980450493708844981445583608169568361677898321187077662565367010701777993085855571459445027032307848717496331942113180139347804095926231662475118616009445123467261450294352423155022964567797160713183955737698674189215757848336594555373821234430039521142428911521140139455843668276032785500904772385564964616553656522559438405411776193251941467820410874064342822102804753294103476643329031448494251589062909425598319028966247564690932275054009482459244918585726840401391567142247563626002786342954479350390978160853756562950083271960928198461215802495750130280654275725795198187747343469989726343865276779001114518403186049544110001881458343844349750320795887841987944440282308591322477857392201346219096805703669364404352298861552610633146883881661939237299729857462861141382441274675979900605811365817869116914224559384159349772876432018313903746506451259991498942398591712829032873951469610018067624409527777997685241259364055390001301827921175473640022365934609121941220807815191680344806632593414593463615459439681363603016352618315349590081959102376027153103686029220231610081586994528922510329707057479930958034066283991599306481746336761041674476235915555071331711366428197912204099996191817153633978637715788852493201435594108988582191695474991515334144241369243003019225856080072087286808443509398283016986511620622966690633694026980981339415012789635164860617330331480693001515562566705984325294117860450172033238539661786424516468376348817001378350647716155330431226747697693366594406381227071692956584629516674202535401989770534720766186326667241037203844655566522257483162800128778704068656810191216153542471941108645047476417602742325235966620111486748410700080470902834093292383787792734147141373019246385549211381149921300341437490868460688735523706025664541319205740846442466384392429442419677818616684624950293789528774224374603729818752562815915695469825030489619001232076009078769014114486457864276442385613521040871084206697866276372057606118314037638224059340453914778695597242137460057875639590843676299960847682147088081311142327223602208488201982552757938100540866736601049821263925463111526145740982646032200489279888249567548194482873837661882463654804642514408159742912648754731691042911175406665988791306929154964103821122237911529628914046969681493850980583678972233518544593864207646477673067631784075783587123044424703106496671018727219619214562366792019438858528866499357305592375507166515467499447938676454557574430225881729543739254022661161016121095875037972137097826770933996347844395070528253664828371184104869685934213796308046335549498934476367659007588103763685945440759150177427052334368150018375855782224045493568218213367108813250624035911396304327858692013011447721733053313136963584253457561243275880359001582564061243512779705452209933344976548589077912423182065554553934039356694311384822154707697466915702198988968908476692801870298813931501656119552445204248206498481720831944378888856358737959139493902720764189085565460616676574334305138508692388197459902991587671933237954974183943323974269885962790559436328747772163971132036705752481069871197714449559460176759086633710356599539960579448279904033947839610615390178443934616993044810687739931675625275359626424562131165522857600518800254838011905620740163794453137911088751384139473390168562568092853254860074082915757549841343492720502608782155727685888551730534897000681619567941879858657414654685960986279910288285434794154407290200535762685395044954227035548679232061721798162897571108775170682335486967245147231811467983921073587260756052401926433930647163951381740212784338509824261788729899200708244012996871946314669030703438887012543005949488415242607723139573278333107576722028915898462288861724670639127041739227337882738243885517028513679554120909865968372967097469210218243526211564640973475957333456175261965035248931287201357927882624846521166569852635099399072952645438483460181979289646430591262064241314236058453019203621028742692051870126016784667611610342919311033186812276369170126551310387315464604551774770484565670708974524511625572190822131843181259948429636848211076180140750877878251762534478366733210071970765730848623659210914878887719306574817782666202114646984350487157066016601406687926752534936615703795251908425895191055729828313769832368595063725212074983097967137894267408108534570548433460913104691955986191164870048644655991513321612507593553107446435330515828260998708326195739722930723548643438907050949944915199681169199168719314639180012317118532709204607897030537413999765119268767548982660917641139861110049873496234099169841757339710249715807221483690292831038987682516654641939845389136180984554646216366674612455979403653473531608238102254759734201697546344886250671230540128802964894880869159086821511336753396527111236045398027452417163514689080694760826223740931316392681479524886739694214267814198406636846611726125373800749085682514749376666647839783444622150329265094787313696359825876343789859366958935990083137176510918011924216540716298509850416223776218145518035134528032577133605045704165079751258153283420407227675168440459928790828066041968312895375935622878339766863360680036362511640208814416585632530011177526389749837005208601294434643799055711030193197098645289198281997027409187649563755925735418647769657067781412150138890551161920132916794074073423811107255172779726003487909288515017225842873824749082420790591433079527767548216827670547758825516091584242550218502364914057478626997705725958897713067330691604600217940623383727570590462852706700892116137795284087961341778147042428406548524822357725314301258724025906811223876932447829519039954631822577937492143619027021073803639395955843307754967114868476300379575804738840201504104220848091796358002968633191240220667901761087764253894976476113946576416694902506588942593031706011444896077998312725656711915812388888601505480790894133500859809760263959512626563447435159049862280310781638831872708832450678542378684741064635643544585945051631705008483284447371611340680176596799907772183446603509729956064090383313892383839522200415619651701415007966132791786434165723554363881290997906393785736445152186750146577618673839634816886514124265717324156265770632694181226072371925579608134922546060100807300919885884502411071421085862074480914896240226211387361791607220994968915911095749110316684588468624738798811144975314244874866915488556179916100323223507367791627408959850288512883750894714219822693565593608648409633781021688136173382189675449554372871272662479920651854389925595484213566491806105317803286385371985138313984883729409906824662742683098780225099512298287382787587835399828491417113444971689862597231050960476941600747610006214040074958227928125920945189107066709595616608167008529121467907595083612091687694793066381109003143816204289915014516894525416271024703692416671073935105701347282260209266274568156426732984348606032135959040148111157154848960062722731268721957981156035145689949953267568189825174348820460653948290170953293769575577256469760406468314734474549002613473005856513493997228638863914728307114913867151396645474750053103786535843001637302910566648314797921102079790541411215916920851171776444869144298139094445176346069511581404668236514867545941926979482188058293198049586633453481498145684586738747403832005970759518655053288247686936062636283231241328719072180980566944045997037825654994701165235107165389158760678660297640753369940818012114951419018862407058745661632149121201472885139573972819401212968253580110150609057076317468555757875570494875627490849728348304367206594007824029296192084584219276171970623765562481500142309171399380845195712093917446156618404026176416051483796858693447926388263631214504827294441411615705081493136709367004528652191355443978594859175474945037975547842807150527102221101692769451928349945520120374428993985518191356710524472021593995464386506951025612191048391269253246949252751627630741264307122306538826693576758819545214096401452800042295587715092102280833697872018778566207373250352037770427865351154897142111985705084182692741675241802161772812408733514656101096151562454603709977887381156776784762841257935095916760194311525750677535962197986435213266561563207935695415760266250061615251671404103527533742770850851805550803224897274565698277263979403066733877936205091383788943614596088991938616878715271569308402570189789075049734191861022800221590711279860572756717704150005667606770442092055380564116131093390377723621522678226348378410127620917694744924623535129519302868724682745813248114237548996088004938943093142150531498874717694064665743000376781401232910638108312407336540218028315411915920081436963613977991985208399155986990570545727499692830713061938772149891506528092639424777366043652195944717071728547299219584207991554537661393217342525887638433212144145041131499391271774291118734162211138879196891285148579281890356116464990677605640116000118961738324570285897630936892349240317001677464691727985820858565946250507191278229891495291265133995051423204202799319886815832806763461377593498690170649681475196799576917439603278878037737078355104941011320719394421596678407801619048835976274412732029990103797335973506721062587564969513792381218780417326310086195013351499612404926737338566984781672518869750046369015465091271318743865620783824110345883775997093020071062675045069724212136816833707022602014946514119441120339454489484793932501675477782352188944404621052365978979856546966242582701239825490050137023620536153945953970482962083676959221143317399782646517728502257968938304113447836567957738594744392621681411738412102262722497528174696336316460738217153162547507125339982189998599749132821811179131728863840677779117212228553981384356894257642118091754811508803940494772125514266244325597335891252595479007973838396198135925370013213583137543371022181161857016946308103837802254662804034169825486570713510499384374098203006718563938157545608204880823695176863486599119187990058166442675419725674976203300506382707517942744617117751621497996935333799912609591671319910148177929290061430634452773289244594328052867829080707272545306222119622268611173870052193050214285694079497829715830859645606330662585261292335526365387440116530428834304279565990773301412022743829717953742573648043527547608177911049773712149007531394445709549852301242902721016158799402594955510573366990415512402212551914925531899073692163390075626094931408955327821095946847854531115225026575128737755308858153983459145335790755245060577216342084626566211493533232503762714591777162491781485593400508456990270317956400565276379406138079156501937921147514048725468329915637656653709052177693873766746564139802067067134589512926262508752594822574873248533368412932952968291133158649620072187148467122385767097233799042296745364477522199214627165959983018701522208226923696512751349894450019437248133099379278822166782606599001351673045744198592337848268274166822917182645259239258111306029600982546964988486943861480359432467980559244550107635367526009118784031534891564985520065809632306349950820289138053719121783590822836924334013008872901998251154862251177096447440379348790788580620242040193155880477145676087619246987849669021623655848098018722274375528576015228586892738257527745829097356580651410743751082794491421035768269597643673926124781183452331710344882156439892970187635721564852254962575468288588272889412057483236379375307359541191031466955536400728961576027590457875063962901576700259628668646599815846773618147263458398550125906630979785401168048498201120366757262642194628061740221252131608792407067898421772233881909377738070696363932167527457856360762069457384268496646184280812897442264465969277554581597088779406047899730120441022112961837505123627327662286318553100072668758500781097333331323422805948938204658247440791131488620151825547038187100001473217042237265554581267149531237600956831241870576511410064385093779140054464602320372076539305215328858285276249724574249329787696601454008460850077444388906565479187769834857531950303165913992489522888769340698289336954369818842626529713797855108113150896625361221319552044883837458785839332743210962937884449776707650222750881283447956921457467878639825910901042123446992880431158223630093191246026629910102904235992097882507497505691609699203610220171486036540606219485172701342361170373407204327528498468252158139837755024745425473497369398571061074000244510566157036478161381099759238602388347086767884553178054433129185741602483445299064928160067829758600968944306138003320460830442733379545937245386401772440494912005572042446213661173154468160739660789033211329650833154184567927013561982839523580432960426359162507649849203787915456728841098549994244282918608585210805582590045855739256834859776448768679291612100028429796419899265337362133894882639821495471070750843066230536601480734741542246081521497786091084233262985235748829087110881495742331452628918154852934645424432013425991855395428017157483348156985023778650484974872750276849123631879647159567115116434923979612533684058517586944936301423269532775719770904301391525709706002651768077570017793789126065065673681019645114071017389923563775711086466859858766675324262951369043666258062919694423216372578262009937250395197475231569472221007323404233779732899349400270802091253951806091572986850099686023378915911279864460880119227572514252612410994540891377068353285703085063755789299150086966046699513743061991481743935289432959295693008695044055207941636679288794710909529212430098537051925167743072418810038398478497636788558635225617083368968817036623032442758087905674513091007283725403490658120839564288887104897701644971887250103183833520017306000841976220223843671913247774247916519601109068718817992439933246225270010567864675745350634749433266547674160774081594406054097371492491777109928090881790465275660832819458137905754490685285308262792610956759943025939961631398925991230334344457505031596884923509086056314196824279850336638903753857401070079021290128266335301488119638511753120713746708296112857858771601610248191518216833550886604256018883625692788492297686324335738726246234321801324011896290344144302188529782140066350281485266950851839911929283617574410010528380676674224833565189778605841654031618282582949046779717465860516380578254051050616895312417117933868287486326032883668649371800623308476593583527185712303780412284943515205028030571236196651261339777815224772033929048710977668419301986880572971486137125816776877976229527677832991743767004515838313923365900220921032284011987522907175318416544538454470912873959159930279600342136594077761846593008287533047835221868120899887038426331125547957003697995875025681455297858479046188126254950079462752585295944125799150561757007039478695885817196758548904812140990925238069345512817472562995839432311126809689391108053455883996575878134911773182914611496841392040420944069060693260068547766282196884849664544236453516971179014411849572951890494605264733190771752583284806472272510783045771161473489788335356307982490413388737878835040808640173280739339536218464016913976730926695414091856342099717378800152772562411340622356029344508646902137106462606839849810766004005015091164511718158942688727242371146090377759998055388315432054515549877673503277223893050846363040306214986056863405884845881514092577837678953909494470596361043980013533292168561759151951954871617908378308896574362072648379407462487092244534530527456570224326250914098931062943376969296410212348808356800443726085653977838626890780145002728443710532646154443994312196668096334066845516459441310491126966887050400748423130426522578590665480920411459609345535638827043193489299872238888619508367067286559993798446065505310606476086936656194533493895300098162954603020111580541399068784337388137005011167826191477019635898165475176230540088526482589641566935575490500392751500713745501377716110259679189296562328721632291451615991278735503853448947195468095529992086664234727356730494383962245760680490306609861318313585166392110246023196760980609194057156603471765424878405071974709102661118831257452388467447692965684452386747305293509000058862738714602682341498809565132925539815208682412352115628928833631823492964918470433170226928698405874384296059564438369612017734111128460768562495020311286342703192445013198886303888818153365841640246772957577245643037927891735052636441750390768805846566352026790132044209056665399621807749981498399148855629447072567921821270962066760140788997314636501809919588302213290270168065155545657537758628530585301515193954742676917686312198513813684526181933317976024032605108947717356260297239325153151245811637748154519959897738412463775580329059557301070366777208411469558610693336139726053446986378099334333712023814259370143977014519267891409072943792038133324223187999943865712889404156917342775376952699049364849363884220972004162420085545889985077157880255122413662416907004613759635526175510738205384363897324396970491580601167936884166976698082700789878906637134034450421452685385060569032273399582290865905462730835355704773074218551386083476880174486324877050091516216342670123029632109677777403078797758462160005487048125098851506325322646060891575689260343058387529258259833325635129059768235511593293018243587556506962123366258946903367399078967230496010256876918446872961496973197126906423519475603830581153237123306758302761037579565758908669335005074205301592317007225935807537303609648809586432967832713596479886105795507985211374636286013935911267465506430945661409960545730712551000245831270210726599435686060122105634445791263841249010108765337956102909171960975532555991039531556794966315059529667737374397984020306933733419719495339384518541121947003337738195911204719786304032542720905893915611393482265436103075967737397285399173866097699364160920040952764466779614212538848832199551291245131237928539984016876092589397434252810183022457270362760911811085741675868584382966880125148126878144872756988256339478718889727283333160939957373875638668520942300644333872342026437707419364094328330827668788495811565346342600353179510408339934708594431415738776964585822047907932801953188410317166435625304173207957277252156772208106940916322743902277580417916721426267810643516005396535457690628001918150403921342916548462322142799667245915329829243163768896460645059859171775722498285176275405318922603280687149536260521892204757277120177139838339200646138133772996019595406515288400598690862951157639155919983530819244485219733575900313487881838600305960400309052291500705395457696336605936543697696246457880646337364262676810663706201175147451013390377227089296743331831130786448538995622469077200881148970905438339376233924914039993621454804337517747566946875688699466529122714965595160288934048910666567171938615434741693244429410898459797430183712123583434221188002590824069039780053932693389012055694395616149255331441758492966524941732427237059801901574522779877824116078119154378258228033203460867642472699992053612891514582718255553417649634754500303868260329763062994599640683921263136786027492415499365037711640913809757974098261377708916628607915102450832675028261221235542485884359130395299818866332411685270256564870539549483922566887129950391855653028205494431666604715946338648996870566465604210604853906162504766400041435301418723767176835134969448864297449928927033983382803250748285704480357994925094714611546918405265845254589428580766329050956644609536298369170827454150417961602868885075890611110585204359978837621451953649012398092511771898459930576363060367746493475777874537750508869788241233030944141053489850060513703956996363001454172792754719940838449122356034004048586826933792820119988204786838939795772803005543567059913673879323993049024329241294939875861121381323825623958112567030804589378340042843565354607516831474689049182787475653654225311516185767078476522984777655181179183111685161415086214493658898189717675846242035049033966452923863576217643041309186871874040948626123058021378588184262771991400350732222404362713254130775147466432685884737922800780891407005670831558154789114328212438484209692985906945631498930984419263269654148450759337769023833063954441724084483927722250144494987770691754767249897174777296670049997284097032090837035017098530885125204218734882541716982116202721314403901855831385268167873368979628796276364897080650715090007849232240458847056791693211206751608014690321904890811775861871051473897972240543746346682862408783005512706127607932328995422009514435997183375551253518391746251268009802386580141933010142522571088599988990115842239852079550448183500454974946118560230813676071998002454987282730473700507266915730672010053490007240252632928625172933954812769579320899959617111569445159491011041261083251949562990974516253371560588851377327372697211701306299335757447108492777704650999910986750450297849156148875341599785652793686863000153992890591808533491129519734984132816108125289965425188925880405618037705620092817841482173076060041050821234027018100631507794194777747267573346788927906366307197812183005628617571960171424270849717411328355957528545090868359438152485299326146984090470753406247062752338508976184508605716392216464171420150640032390371235354451764621966973021773926697495902351636879908953971305675445019475468398364850858970088417603968615418965565475235875325388134349426652598941836613066505745445958160487990344412318366839187961433471745423030229758722587870222481443718890971722199677341205920623758549499657461027233890987525969386904509958707921950759298110981412241191657183010709711160246291344621367007636508449851979823405802434146818051348621049715356443698302922399907125971163466751905009526309252730557640741379529205127182972304065054918791888381479994091073858950227419467324380764980550350329845575498962179457444745236641225209110243669034195895323192343795608666946945242608276446288838111628381979382721356769029247729472932277798871444596614570029083691400409995866535898072610444489731303724200572484567853072579720929001234883934072211435068504064695850808148133469347558934419049979404137700904405570546005547073775669090601225227336935143959640192413786964209716108039672390541383882100692142524804133139468493978039043583990414357625836708322935094243593560833249340228516148039352152811281254829519811507094304163316066310531792560999740480897681737756408196182295714193750159171172805670901302537338541224523494473753569072658596623376552613448006780088776205620876874392740577504500555815926792679628417665607269764664997986301940145868818114127381384019524518935797919220206644588636663498819648409198442773246888399691681717395219247910930688014411611840644383310192590895963066447793546174860944687363325433362744736738228437268933844800502158336347811014343555620230269286280042550821859403185670313538108253892974596276567972369676279928250032106156573599594854043351333923517850492199946088724817346349720418582779113185152205918049578403073330218620687781121049314814813997551575713275774505323950742367144670047390001429783070713527860072603730560434627756652299213927027070970836999535637899650564431780059024616150718952194119539298575001135223635265174296539513187970358024753145120492092136063288127607062482112983757050528938018306605426417446109391500752406505302678556265008122735008046796125783762058814133378196334331247371566093739107873662934054834433167176226592703628384996886408112432037768215327076428838534804544432139494197253025385428365409847551986690022097267187200295897036122156219556570132742743092987202716386300875388823267393381952010661390729896721405664696498948789602491024862945014143886500314801549911428760682907402049036399037337535029548361891122642863088115245229094175304060672007911054234273496530894858762159464401890796863735127452023844468482042518622563591161083141656961746107907520860370143885450367085932007839774115285910829617961178977504003160184820141287117790185585936420083664931643660836840888483671852264955275386046598776393211973056714924974088679852678417833143344433943509825050753633909905135196098783971618775009735964789959997727158529952268265358300823438023223808874937564903092305933130943940925965552760901385049519951194520239517798984090657218365441913475572410603462834235718442855138808671681673338173534687908998159305909054952667867007595012645339695134660778052117464608059337068114410801570793079790451220098385149790316714476574784576262357366868500148519734155229578478974720763141554220553376332065697535335144721494680207771537418594967067551009830519620895893032851781788300196390939181796842627485285724816982396505737947337551561956148849403011290951336110034284356571014327122703074746067956291803361717684234601312323170543793857235375522174350455395225113261249076323640995434297891087954835607202233216755926884960786388441171150561832693999774289210908103388653296241945076430660487851472378598689412514954310642575730540996797901055616835482577437044971460400947206380170267894843049613537395260350621169477531346996680009650951732081748416018920270394482757776380996926488800361617427751967863677716645949022653744936757271183431841666095301764492818633448678697749986227050942655977953150261988288862688383146167843343591605730166973760386849073555303196582029759183443911575714270030420453452708245299279002633225931521331390964504136102918018477456964916165986592826282016143302773028420270093407406870338735016840155221282424044535489949802707506712645980892505725707808896066750040972110786033722977292609846904613744647320400041113520368655741062506808464378868277043529210690153031094617937072772729969276152171208371510483528111647760414974191292280443463889462791023463264215898503065560053569127700004704650315742671410016106790598991162004054870931643525556212708043384515190498165777119739058058921935679967195905934707421689851660415745917140850138027477428469889756983553573070035061344241387223551121521110287896037892792984136480348506346789096199564430266973427909904756742875846406562947813512173911603098227205365605839027839097660924061491478455210355319813529303287932582079561753024060550993771875980040180253757838144499202808705929070501537578075428833936883835459562752976104664385310252441897247735055683047881672189154037717003658832841636908518680298391519382436627112592656241789472212937914303702622211728584681916113496289544408074545074066516079412768730882824548562318585850961480860215470342316229130927950710219899902603127892947377329845990140135503421538170233465997838327874399376922038198557936832062176108189808461648503907169229259797352867183914190593612992891187581559602676331652106281979943246934062323503022713923964791331736778178213807029007954393745033670038593874417879360358771168195622100404601533901357644259429180908699660494925783262074923774790572534217034295196197349166349309284706026809936342115471173536677182796377416195307149951124197449866047680764246497370261342807018285102947004741150507915399670481643870675842758929685918790581658943551160624503768308882668010204326149052267585908343269364714283022909526114240220857508763354915484258674902482303160103136891068782485073794347282147349834010719609828959718891813637386997870288151632544295288677070082066277848021997563380961281661008448436330517287624078968628979032077762069132536503874255160650828199928024380405149537037405976500390832864447371407710753170835049772513825135029108774757939235812614102774964006981305245864566726451878463755891614769844968371291637431809202441217684379381039390139907546085032750650092842688263010000915235031899748203863933554146745014982641668675846061119107572318099731349847540090822355536836442753640482637281085874310667995599805935303741028996363493414393518715742192873677665875094261736993591413758373795443773483572908431776781532612563772774920448548321812643938597169527280672708950646741765339209961185145705060657780290984621953753854065665337232257254685795785207415751962277645073797608676910275041841544420857332214015329108051553093397995743516184870494959271481121661739466318000665270693508315988868503853965808258390796620696892030105721355088166748952702519518564900623255998812191788539364829503367101560643524633961786356845726950066187338584572644531434522380611893477969695279083207969228265428718131111360984368404872637629154058301775039586357232975398412179367151140643793804075157389376119880089781085014015370972837198403132189704404500748630401027782236865852593074616498307801446277505134542817184674754700902283943886259464267703375054227944636643912484522702919771679435775124138200622653985655967497546202041615761926017050354932348954504900797467481857378862888917598422557346282275630196302159928268694609342318890837829181685261050283999199264311418650395259625180852513795547477918749565885050721994788044702165847272053746029908946902101820460629710505735370438393330897382892173902979331890045351357785629403039219093302700790527741591632052329154071716613202596858452149836606399836046852896143235625809415539988435827429950465842392014163081425606215996723745554568547278344072217022021654742448666030388031380830325028370430522316634334297396685617923204305633343605839778910822923303224977288103351628819222094638340567476141685112889102697995475389547373246338259556425983791438403232639303962625692716451318854907237576732834265671808928472642240390452703368625672085440356457480827120115240845037137470545753206063424576355204895585694107059279600960265335499951938376050994562508190061017759337581901602069651317522578850379153577902520838100796449241615274353031089727453498667726901792054002617046215974116990352925080549588487940575557282490015725565121515801407448433692699036524299974574822721169726311369019839887739300804364491242364157356514145203966154076602992614931675662279057301247809876191789707823582971558322146202907515313863976134522041314169640889461382403292815394721839091987058000944576431488293235777968078698587618464365693022759888940744767210860070706227347752773032972445044332895576592250908634888352242168935397704381193040039524161709948115494996920622378987586060151045494828986328906932155387548846430233369767231386225265528547104398486627998909208969939675052264312414251177931295823368673825039520698715351117958168428510745602967235098454809113724894680355443326206598186734023285296128703930196472794238049635653431527711011771578388578901233328116432431515789872767815090057075109626193510001163607070173300374082268671284762790661590121694106705875640215346710823539694256980011418669399133705969297115184832520792934565777279131063026146402355930623509980782308373247975725592390665621972292226560954263537407195261015179748822194488417855382888004035174550216145566459710474138861337598427526438551440237785262081054245033374588675390965881689048233742360163727896541706282695415800296890053418310201148836213442538273712369845678704391901906598812917353669221761458643949773741716352042197316616524001958392300290421299110359051152998505630621454587955057390580675614263836303915608881912803458317896320472749124039974868632917669546438943212015236484523662112402709838743007026240519623472149601944423404825422452641275524466083731429870892394157029885124969353324771285814785857913575444337264822127411551073331242363415245135407213674377709526475177531113863767779619034898759705483943201737445767713240762701814706532012733129603815467868591189758515949342453790089216277424425744278607628459046720486262476022023187084782346854291937943550997700073058173949648908031918011046866046597432521762225595210134353095184698195183018279487967460876394363269564165944163891863260563091190272112032286233544185639841676964845197090257920964983048437052560516631432198599803753357252042914055639564384245096613430719617403990548607475385645063201183404123997397548342548322581619153012359506642353745925415455822964700102537870505811870765785816449996730435015115864660871617868922058070891635577521055986333402001226433374243918336873841990154998761385985795411154467904904268540407319507605890309512116126386194869241262771815034328635082906751953586323300311145045064786021709051425961169714606020522967012162831229765650797137949264310581432344899743078127288159651915136390363313237692570273470544353173887501161045817952252230194071088229756776961770211787038010710154909094022888790165308776127233980185757209732505721070649681969914559221147689727394475776295543119409221646286572611911010290936978390363371085427396659137757977028513300288287877249752115195777431293199256164905318372717724931458377804324411656274766866819618914342831220192496602654314002859804934507338254917428093746249467579988416355815611710985216560468707374802325049580421641212154981754269188279453239357657721145359993170154774955871874124276037527386832121952549746228118411044196416202123436254554469589204848939092037235820294602808078897426074041549038545313931752192723767443834668737400525594322708787533267861519415145886089255907143071396360150391197862402391269956033632608968022151253205828631757878706374791111778982809186690798180374727616802934640808464378729050849547503741050097840753883883940816451992929207030573672326120319818966202200598402853197584014014696337519664699422679805166286609377826322325275489647945801003424131512140911035729220341066656476748554988507310051357509890147838861641517080911073524808402433898613636431326138243111561923599389002559848279186919067505935306759089988202301921031028804935956083287389591706473768106279103261457924798679377332075023966580871407328786884054440680006345821507233458556674824017996776229158407551479604289026987951499277287491923503786749794090620127795028299712073723878513357507964650068388873709444180116200860411356207070783977981348951335139023373349135114434708076792412923580282479804884607424276037702005874618699104001850299547192944053901880367192850346021024972592147500965455863781422820375145212891110708466340329660514511730314474202866031085115214181692979598820217365553439372599861384824854170286556689424117396844571351055677193455681788243606091742284587560536849794164847352495811746395731677855141559995790084353343461359338020615467451332828659852128875882754323013410320762153760220278596669011258049541758856032498734127561618461647218745568687851856450825547657516640580435911955557894004614391899338405212390508872657398553143248281808411160849068723930675108963389150794417514113777494853142730328980159436084917823248640258675801389665016709801207112541622846533482880736451763224610352221773732581431049161669384063915583321354006072316597013098052393823610413902270623176311433437855772599692857031388923071737385993754797102700585785626210763552326884304693369739045156245770079841094455983177430636676095404397811705231884782853525695145786577055075867796557265672549682631545965638538396362428530408939311370332836723723184167065710953309306028252343341913429480907883946254909797588784275265368191305844895768106952584957263527183964128949322586243819902762184305526087497534527419522892654043079323858573373136333635264170967872220062093891140234029819095675927013763371241488074161191341176789463612762572796488279496002274069339384744217773142338868240233667157858231571275701172242179101134106934857360667697847781027932995317183092979635878801340851252267860374171494977162167771631288317753850240784428070187079650722766992735471054511235970552216602913872617392318301822880882696186182616022019235088224734163915392979587513988287325588523984203516467394337559738838267638283161206884008966447133026996099419119203548790938136958443063107347222780732508902226023177806872570129627814666837409862619913399991155207612678221281313537101291186490455316832849917815218279771554529351913179638134345521012531305910700075823902822804311085661562474270261769761701884707388171028986392531960471125991699210209670860042995077689779673610666868443918042182252154455692998750830572397280740361806907436192143248580076536556659083366184600850077169780830747795763486996926544698864929917792818935196954044323687755222862081922406608031177625913981403828818115867477718479844523652985767172726023678309634320717484553546277242850788659671623509990785819490321330389538343141026909547671869450567658123706701143092970510101942911055243376014282600715364192523447326844443445412434280767698374039475901508839754568725947350211365294622048543229732158225213884301847404527350726787023674100734639387143940703954077589854456423829391599507193942475945298880045305365947284303875142448652110490617149396066707771511042083623678840942013962317279126676711967451709013726332930348179114027458772649891057401239081699793444536582505812247999989436755308662338654716281639244635420987086917392096477914894610919024670721206038227776995364127863014391772212832952836238617057430292877715700297893466638477804094164546677121375645389923553844411520491466089611912290077204856005604558908443353053120715217070736585539266937593268614379068547194819904155327923325955957793865478762294962288122706664817567336921117310086753315951644757817621655448893791522543204021533197331928253939691433550117458625123709777096253232051976245091595644909366317254514096578003256967510589140948078499739927291651098462896119269935685432261647389191493380781731471236889471198975239583770296320601051498093762710590544445676122846709359330097769523428971007187141020921792970277198710309772247011674332513330083436452200530838297143783090200741874668788831655983822617246550262086288740270918783445829324878100049957773915864324641742928954133853672082105198799777799123275690844565568217429585085584753441226401144652224757788585938473025588921462889515404047401856737722050815021645053238919118119740378153234023081086616522757032722407675098644965053434571553523951396965379066253516708190440518146932713629834233371283622499575443239805455662139204724015822287141700604755896519445601025124723634639453755604002704344673303823271754039631391871789432188118748516202373052423408055002331588958272803399450285274424708710764063379140723408133263983147428847288856716810990386922375615231699921716310599935512270282652231661040866310931328307815886955129773037947008937635163558876150936694156554319546574692670181710841389995565505801115142799610629011867255628473443357640343518586070832622522461777670536184770526796432064395586447867646587385410766514548742858463560403560825861070658890311859764264489217975788458292715983081432439337842190980141940103990904719577414019836599218361555980909332401541644589068513417592139485119010737020093886296000148725517794181358663896828049366666747142927938982913382370440810595640022116663307204765136672466466271134792943493284061318943635512230366734887209559094525372500799935818336435370275199421187037738421646212776484976560035462096639601491999874252595405226459947576491603522532009192336614967083183877053538821372466480477229317584319839208207094399114945837677421255532118920936364944083161567600987260208841454610111054848536570583965865259981776251733578834153667360046397808203438459964768459271456931244430675873020675933466032417828996798839765949494544016947966613749929673557644946327995719113278021513760755158362012166101341781153048380403790564963430087864302908209434959463250247871108225949334680085955674420369214585728563122934513832353186847367109544737525301855260135073600322753923043202293112367935749938856351609356209275061748456277211184410904984747771324119770049645620001375730657335377419292795990222405830734954213955191433425939893019349782382521049832500875132783414111430317617889175061745296804879672413573300257254427974264680367943231291365218745670322927324034981931852652150706654024986636297034893344211112124855996823784137462709529987451288186933635405411306515437284581410190481985307000410876261009696325377104571085463438904925513810516250529512406748029318777051734236666929859656159537376895716111181742070470356470862844833454387314618027356074340709919651765801760296166661784642185135989630579201791217642147614724000683558529204120833003485745661884598940591460343269095487262081519765119910320524339375091980885400744357596738359069459035348892971982652533130089518579367111736327668490190816384616184440089019953049716242839690108497391795820698790873480874643423885716166810845673481019660683371622521950336989768267010446900501894380147420436993644829798561701581836355539876332623451388967709856259732892373416762464390009938722288626142400914743576247981405026019835023397482916363046355585187864305570146366227254598518764812668927694446720283790004272844591232611602996391122462584083571039687220665356404454062036893252668258143296717525316834022232716991317778286842509779269724846465537807057100785466496221894111671426537770611514132813783421292833137502445751514874340353742239687439852214792753805846031090098201326230837557982251355367049623114281443014765452229324951647222258077661622673996097949217421623352375897844478934787643851441735584200875878787226265348846072143998313591885804048430453321269695621612332420548081029592718757099756292618244470440706923336673602097101047462235412545500893266553431286100297998113503887278576427031568566982907511621382737012730539874422308856884678843011142947383283239944848410068652113508997554028801117267289418265977937178543200038292996652160519631364903701125869155909631369580628235532104627063178247308258027511631160698493161144099930730773972021693700435734475973182339693101167519615469723639977907280198232174734541677740713579445546423359541953766163707337639060221103086563336552051121752295472726150996625912514883373182867777408923769791237060320887296788081674616129590900393052579936575426970142819429934472600093481228860032758869154382906446159126308648017180851380756323092898678229715449559228098965195569466134394376103024515016729981089841263389082987306436333550740373721276801439616841380840710240459357712759543245793756518098038641509311170435553519156922513601367937477404350880787637114877430617750980818068307106132459166120902423644844656165679865910063426162231200551952203578631903892883261956207761911065858369120537801993796642762843515016113722029919072036566938482925541758069138939094434545021802092918955311743472008944036480003191695167008950036067742566975039501302097526234584600360471107932401095842587992551213700026222258679826288964483560751650505763035951209943996570657451647082095104780580162192469135190522290161258358772976615025549639023039782309944219700167237317319558441563771583368646330112590289536625596324555462379184658958373780873505332393163217202748352881048054518603915301466600095271072354876247823167480730595696716499790081418455315902494169874868677898183829555669977262618885335038745798056049739103483589618409887099839933331058358006788292539463647878202210602100799182979666143819260238925985750144457469473035865192607920965027340662447827710484375547948497789039397349006085804582765343263994339143403066166416300350544822056940131491374734642151114041084176388100238910167645828366446649121964913668696350525990384126135341056134980662682989271151321802753789302192372861509174195146721493123565185301302271364540207723345408427639320242716534740755659883667793949313706923837929286427684656812690298210008497235241054351695317418694315108546197615691088227616009010933096759639325328304029942739525837493118746534737517152213674079247196629593814925318710903084190796819286483729890181627277865544293957738063925200381532794751496086446592053885235837303464097384898745665971193249465850380812652948480210383107387280683568965203893395993430639461441265577067218393996363351120642756578776217983094893777319764848083163215075660679453614697528905476198702155394841470960521374321049270933456613925643554091984421499719761022570966173750642695013542348720469762770811213117550450953047584919320229874071799240570323379737853636957791329774261579281581322176288676137065435649835561141182113901972811162135143885320118168332678857899722332633039877635244945641333264115069566327693964004756918677953431898082005720915458148053077023617897692772726960614004655036366363478149973686272475737568436839419165554164444978209164083514561461737538071058469074361740193813358125571995067402797366867390213770066343422159716535885458453812126721129931431740489365191295713429220643506015494136938676581584929275851521076440692041560588163422515620883489633190936658125603884323208747328474177444730402575995889481684218447563948840478106220018894822469384211753939331315061922628649394845297716775392340188140864644618884631799657707217194659657445794660418203000523768232900908242288545209226635817779599214823726724646172839133126974794088694897743481656753751023580358513815772133787287539230210149740614752488669411674135341676126810248515347654359423948420527587043959386780445854586998630172731036675699973928074171743463432377027364505267317555372800084182965503325137540580320829334348981060363441450571156256154214555114406083246040811689499850174223200361925554920703905929588131597789214882724332214953527054935531594986592222252623287111033006174277419933671727988506871696536212340790980972875370349355747451512986952038759528064308903428523990512951607407790657061939265319827055092268608138052607832866163205380270410705770724167297034179862930597211294623347219727670307844125811249654585371074137100816754739534549104425560418525083209702034527585389856595155683971522365100641748197066003275026506315324404385028418962243390911133375682596938266069155339527960154852115264401646364156026275538690935280700790237463029356798538348750722523153585086972560552235119333513199856243461767654924257186054063447609283300111781329288073774029473799124453908103517832219729290747440137084676434493309680379162704459927167524727587641699548722065844550789155978695378093656173784984773197063553847530917670380293680619326491615153040743367783364222758693462967898569505682503666417176221244163038635152470702158422026893199201224703031066211397672924687377425683349087422452373120486549786706420605456705669476319361018111625103542981679624909376531622111185761546737954427749520870506133613836392848073508355921985410229496959555427499741586266951836623765654533034705629679877645364419415310019356422458715618817588278937227318448509790940921005804050080215427292798732594976898577171086838188991499385585225383792137436015834259317891330673377766427617697631291870449669367301619537143021572646932208935033799102714335073210275274346297885223365790941173952795130188179254445332232964854111023944190857530341499219760670497666158274892874759517511314199077808904716144085940874672288690696883954311300290360980568009711923551680071401305292122076558506065036544058305190461204378157458136306394730836567257911845050809516082580896579676526973275309954531726546580404961947784472455523647689099340333140950908692080450409103417455857936922735173950392880892157415112802286670794932231346793824868551677902934689486109644765459954015869776873257945250557126729727010628643637922003356985408072009177031776577320453818391144679591252029661233305493047955232558828126935166821514416761691178705384116729010249564319008672355305158406946647357979041567352004307987395714672820178093612447992596669673025131620758655726550259923097348311005677336841964401867936652141996457687091391424666111521545791993899761551653502181490080337367923428978517667178977221891191166368741553430352438401923045235584821542173279560628464382690247878469039488756001515713439445360128989249451317172784547937995535899521228175125220724775292789001562535899066260657547803781709676544046096234959082564884321445978834990440021957552355800709245538669479132917086369265614786067607398159245143290437770453149920631316579315418299948259451935327631591260259773143624597076594770344400326221016019238526310520610767375029733285853152078842804858834528101253371372026797708743860644450160045593935174613896996791905195136712484084059864185624144829929526048737786444372967268930046454073609772209501292326933385176957263144679790542312896905880096683952425348050490230243516922620255093447847731265441950258200761943661037864796697582195614076008327717614085167301352213567001575610560354540670955145328546408108555923964841612748306606570061367107787263939903812631686556782175807249317365901734787094575303183885240468985153497490667578652676111245789740542981046793228647311394110295985350924644552145316979224576423001989400994078091168013471982650952135062415580601457197193471331529227910208626378726711805533553428149231576391561021312021696805752788679790228669516208504597676510489505029907048938548734479796139301654756159761394691531932949013821342926778296455923489083957914867879633040620161593911133527336551400602612169831717144224475331225947671196001712449498175079335738168814025413576649212103447937508914202073592304235159292658346652590211765657724520986463896947326452884355671221069817669364066417297930935187832425744949372625650136372450421748718345319680274990125114319965135804567422187592787302473702759846013995159662829979475830473876940718656938296946556528452286844790419934727029897853384245525546123732271170173173964067528672110178706474629191683944424251182947188301046991947436240423244314090352375593002564098240548540223814067013882606307557742700211570081623140248245648788771738138399685687473180515660889664303398392847774644097084234419112201520022772852413150799304940983345365012285065362794541558840471130620020831287815279369252415377146750602077137878960902327803161164021182306626634666816244980079088020626794238184026079927930259201921393234740702709084797773405365514976231316612142806928917986698444661137237577529389981990634307549848947619560670915406290171178462358910782880160326647812975024653078870065834624184023087149750012669756227974956208149174709828307758616648181323696773675443185288907882079547431904049407088539420508562749516895833844719740204768417439333562502613686652245597776388367924842424747564835601397371874501465833182600512593624013698265142952362927980166196108169094468651246767239124612681143168781378757157779393020251037484864724115673573768512230198532316293982625497072658052480447481195130123331614284036272559259400372272274383952798499805673918366771469123682424474644577295769672761528012536662485274034528653278356951971903246532504928350819441233134497298057848096802701789621535754834851324215840183373315354356730723651421833957808649401621952054014254210608892641280918831731640850506746359021197188733542972816206447621679673714983990572497632077333058443927967642003930301488664035974749262529156650104250190154193732666122490457375440067431060658766459367251995039243274983118301549692177128345072157610128129091045707257183478113257051870180028182595179814193727990353691042435984748097643522486997259905991650626741550694362445948083626229826366767053416098867996259092695907840976099632741366432608166123019172007243078179957729313340251061055354386707747439862470617833158755354473992450415490661676979807049300929682919716958408565833095856986855085541095804287975608481297275311830638355814910974252106491775634485107152936026295342258921989808601751917447384549796161529918277779455313230090850409233900160319590215512701446528399093235382642331146077242904861558441928475459471188440501315092357761031963914854815814075774836890934123562931598692131916437689687819108571840972964163081189935155292554822076877368910806134854375962814311810670236812991337358015929886619436660522738171853758592926299130147095851410515459999652248534043685113292190041968089052343166979165664617695288565528277502654788041540671727213280738190204135258880579491367740492080297398238081054292415671412397743475728802408116486636306565049642923468461251440263624624781599429096858750451166490164481966678663811473469484212589824835447986491364105247622416671249380413502560731215863295008014000408227511265879924246332696328160546419489791252594789798717967331264206398243749937453475250713527710278523235055975280188659292350861840129646248686859582463665208438759942055006267469248727577034275757051003755640927694787608676226750239542140992602742572321927725363048327375270137312902623850882953908238353894720530907455824477314274838520840009719505219455738120551367869890250038666727065151139103864965140807620045119330183333735784507746521115997777868428658562384719895133706278182475053709886984185129117589985858799530148076866617501555884520026165590215260562969472498932281784433704152728357699225065848795205136565133571897695017695481464701195649543966819956544020473846195302151839428572383011483965091097350916706286852738637310731169622170880466062061350387506737101924562470797865005352624660189846579339719287532358996130579620605302674032276866181909026618025613166695045940605847366371828746502321041923068776177713512535480898089610858630989855450121174544993560066878863624632176069130227853760729948345841263647874639806624099931511018323477313931258700300207762942719480046652427947554881073108180194720648377727398778938526292969866184269245865796646889293226632740251462365188292075847547223532336104796017335934330888925045510525447926882398815493180246727417553476626722699798888244637139826395207719720819854932499297427374685683110438100582992410047939540792450719253226446425907218263609000373171356839289719723420203080859873280124036628354672254739452813352176477493672546128148180462446942344827502126385508608077389265948814852611613385153416862043731301888781193824342704204676076801550352391804352606330377912787452524969036740158137295646507707993457823581063227380870785649562420339187672008969569876765996800355795426279930607838784158451745173333692117140063580852703876399846758503255818722570651133857212697930442020831346312860528057879934746278828639604639173754477570122319088196032102307703123132820756379951390801371199643768025489015243581713894630154906562280361638136765948140503309437163227090985236384485969312815767849946309323594993140232878653138437874880637100815852077065628091123400246824152675239249159866718494596284084845404893578699753125250265549504783912689212574130212695646311581453326719102077477054631280454105167467871822251590401942141824082317916487894891558646233136350478987624363301250620109800234257837511037070342066792228438984488813883848309161174182917338008187749193578425691548171467268137411115517450033331429474533719352776079394788529304560760862297089062503034851203452722939603816003414009459192054229745210813014218987037858487300791014191467442323703470023783567956404949409543150693424942010667666464232837807370412934344115211471560208110776249544864091913522385319491760330339214128025561943785622836037242165704928703263258072185859586618380165717765122680964350836831991344057308570321154765271051034315620910939284658140179744352939088992689532725825862923864548996930745953658850217720932946289184176448544760409529858998486589426725942210118981272224673280443374203603446002930242007568637956581551846434884105166181821863908378864707181956437920932915939902570518372150427935369051345380847682062072177139199232432995510333379239779811934620234960566686183224176345422486676150934475267253547430257531283444275671311475000930909126576767294541197741820693634792998096356194291808670156505285875811470407174004916468895895561296305760960286100665258929356595889006898080383480760624582293434369576318122246819384416381043780447761168617684673368460505620687452745171094812542938436077216177808033957997654024842180901657546887299981197515980629976514493487281361551970352303616740928146756235604866945197240319149341580012606704803088133121898959347393615701795153554872052333843773392030998487044882444496649201945587194350445075233194661061541590831992840535790962360765812319909783282401910952388269413481708826436423513269533442771024022990182783179086944938209996413616323808691631422281806642340422632458908627819124380293466646951333257950384291569651911433879180203564069607395248879182002420234576244388970279900033866592936928133343964491743606290728323012879155513287971992785884068003992177620866072345003223665930530190351364014919180884332392383401454326828036563674550714698485429498999756804927269015415111076775094254765298145297853790331936147968459450301130554891621038914221228102022508316451105869563032643064028422148062210074975610500685360721562136244753929656675626303925691025844116555647609051416860402631733854349670226138624071050102380860881195356841406367157286722317458775120002411441159118224697702830382365663433583475018646537948053909951425841819556057677954580801651329440035130023220310193367530441980783796179275414863509690719931035542119186363694509228771627986054925487399916164170733229241624997830051255597990220674420368084729358277109002382921939475043417595084360935860674896748616750239898731162596992323561684353479517033304525764151218611594013892425386380731810008478549974112695631916232705934493648313990527205483341491037867106720414232116421382098799938788990952561314231144051337476736517650317309365670939863474823705938530289692881904725249641336248577232687335343160210170495304697339504994824155093644586885199844880797810897342748570636409590007457928515567227449241566385984731572165429996513488688218670257697513562163128066628752394701044841326572171015520088626049217110190703214309046126981956717846289516386538663172341130716362775530659058086075281148524170632964553410061268438437806688764788813169775924037784134451700411468497710099738123832102279375288666018399246819974891376926241191702102909886298677574435291803082760091482725311089346682089775453448941733270535638977235459926723222017456469294527657560426844973740348139766216202943702128701024159139366585270475112198361115557574857895739548587033385536948505396444842164465526132698401980758440237316555690010163020841843191135352649708147185037454092556322813067981495392313336517133978806619795708498632837354717957137894917867294981517506227334608031529377544515302540571815110400248728072922674173484233983896541877336508318644010859803580785000441016129854572284408884090197605877213673099900152933037018154847240252735958641708978324027280518800934145002679133915739947282692435867277375805192338780800889993814731489319646509167229798275043659456604114520086042947128457967778885605753164137181756583510642815627417148015958999012261133567261381347516103929686373812149473743765484609251130878060820597250378863197527604941167566906273086932512529522474097327206591152006917032029925864637990745587581696929331233905818021986701277450272609818645240603082998106297285979995104699529532852216560039959690045891140133403302622865191766709551255912356808984105907385561441772483987061311590143611021584123155812322453616316440925649057455769875788119193441674494982271362239228838539772767477263973632362841986759272950166716357787058747188157970790793426040602172254763054426926580408208992938868717130470145636943112578593523372650596915112110340237834581347908194924117758890192813684560130314249697722784807864910674449614278171963325303445753490259956865609883334336169097841536011164863679165264971755971624523628970792671072668449286606880158434072142623155799066365750119217479900579184503567454938033038344192883427694829967321862809032315741707681838448663784550928701577881187901322857325941087656983842848842721148304112775531871360869854190102686134813566897793048893649970526920223449344778926590540374251056710247098988363251430969668371589134359225439632113191312959131401436069166015910702239727054277734921557736774666981145797748124764602138783816858340885679115355438307860160026957358040106646660989248468997576330173179790050232962634350719479926184075781427890129833547770836189639139610320466488590514675062722357708213072762128042097312402907385899250002255235179486586568107564830181147939709293729961336523706056151416351878344163133838015530382319145812800991578241388291273641277184004649205755908142843350446959231686427141159801141221974875575419960009152765035696575973902497304849999668364548683754718656000518866448647076047001604734165507684043215171709025350621049316724520606022816677100248464482579511985513081667669662315381816743483427962383234627940187403356852201272505500668303115902815387071007995802579449329788673065948978832324498392426022747993880630066233773017081167983675856428961354471285251386355420432671129947149346778892374463846555429182574546851576257615722482256221827789823536613422288024406441422967919180090426433475301619809926498228301705580032402718733579468605024451659569534094970522752914181283328877608338255476710157017862369173665505632488307804956589496966154451564570418111867048611189732048596354354690311209549965573769365866944935023889672354144418904111452726938565146579182885701159383775956175920917707398343642569858922426106926945159626305682077245372423498026812675474253962040438073217562284065279776703782237048998808758031957085461602856902868394488571866092266942504132382616774772096553204053666309374205008053333882371754764104885452698281413616399467873574352960947501082271703196672149241731829247137011481513927541265157150134368071690691083275156197999515383544720632602539999469339931887143851004122175401776112717379712912606844692110557891292565970488506867643548212556314501531030244695551177079247978728640061635803877592061431088842402287459213156424795946520739760696844456762109643276001462323014506333720043245040455844432513263272049147113882432393290558335748875471148136857324393421117713647640246734901973463675893363688151593803887866322504470841414460342152263328285521054644954449906167334161938239066537371827885352699227419191250407349045336717966622934934329767476681898439948753860511107591798600486162659060132113285615307018888435109119904706846141279621813370561638886008468001407744578271108743658696402275720880206785904973148438571566623564811739482320941714412441603507661004570837981641597443061294394206623851281221659369070726954357858621885195914139109463921539702949587719130491374575846948677249508157552709958081031525703710962748060851123381245723707069115623081190145251468996960037949482285334059688690131789919280660478907912369224112812987481208347802286945541049020631987043717982769892827431031909513967295376677586139891216736081421983661754113578305668452528173214240733453630966391889662008921353724965852304324983533152479027171932498400795866592315097491729374610523999919830822018029478554673095968153733696362762969767584296840005480447118018917277325003204922046086831531918138410107832745978266939835970727267578564136114883859104436101740606853494230358977452243742360872930923859092551070932606683566272502141400927580409466162934477514482357212873947275688901461698047670463110550754390923253897970193088405018809588153950267746315040532863677819120043413898005434286392695646028979835435322033489856119429607737324231250205212198988467585524424871337847094057002882392878706723023063780497413924863397299184234740231461206007454275914579500362537040273686226516137616771087820622192050232646544954424027471137255526227556483305741304301834882170541098959375062356787850299926406513260376716658766593352895784285413754402493546993941092873250582836030715909595729144937818092205445850197243012207705293471939459664019612681105980206385848673273895686283475417054516970957496656830713893331895931912474663490661111836833693115911122440547869800890222628811927057420332357292282018708695803110991637691945714331443001153793870384901520991813804788961040887744433320027521599812840472136693202754186322089425185429971859277336774090629133290178669153819432900335152725381879968195415590614969697869643462924137207765329704489834526285105312644148713053817796007406280073407048601106584146281843556388936515252992324340609290531405227741995081281697553708641192418232905680989884866366824930847112794993893149294290319751443119556303149105110488780975948748505278121707277232384483264802644367452721201126359763600980596272673944755252499681670461456020642155790966333847640837777577913492551994441944172676452065357748499903253260116219796351776361180666471609147492230239801577844795388788156128066888288904213923857656061205885309868150627489576999072737803585109981442325282879942299457348649192123051845820766021640098449287499306503469425201743013823327289170856400256047006283085996088462431813131739392921348364522361887277760254314396724150771777799798730085819795180085348847048227487115078105548797308880143541432258508712915497217585495030891771446554283611622038881596986266106335411313705530310364622751391337315334046089445919535599434852280205318646693287406822937010300727730709456785025934658889205781704938936567460921663535758053348457465367884523493494867840753374974705693546313952388668231819468863934728820394050789128345517060641546545887604174173340401373151041126915674008070126750149060998511199335519891767890792518373906674892390418262309143757382938767901277738339418073856709935650670121346581921183418800520023219754637842679276542438972584257444137650801729574201449424466978018354577587090860566401092896009015540727680356739404755516173926734163539054672104075877046348679042943834994092670245038421012535125832750456774724869640256224814081793805748926664293503764634596446076739744715175084038838257534180392008171379296520508293955684742432495623271364476921753548510297145375261740261946589881370778361626065341327550610927591096778778656957229092991764260770398813610857946841917560717687458888053954089929151812298712756944619148701161861050402510576879566467805582196247472099218685135600430259001506692126430093449918860507058988488582086320470300480827060267165150653233166560299124933690847687106912526216279029397008091815175476553196523806109354261850713921613837273945926337974008619658581569207443563099599851688347448873076447825474861450657461437133788252978263013329875379350153217224317170933582024169269849883853691229278613169680321032635887450195251693075722826068849162995302175958346892636533993331104481339212238065278362055794394690962185076770713357398799057169830603270870668826964052080360039769962321548083110081769916589402991665839115589662654460546722513111364626156900328041470795574450900366309256964998527854713045451400784079804230452108804676010006754571563307216973832858216872732855370923804301600505338539312977401967645768318848321403026999651189194599790544686518913349049903213945648399415734507794794597793994186940558062444732442683827846561834684380381280137315421402079642028823576205830143794281777331549466112000240412955443143076832076158531847493019702659847587784161891682854606548483452105567071130744695691440704219318290184135858461471803849292952419893091902038107352387800334298025373537928942798299331442165808053027329436400924284463219743585495173973279971008812629351673295162471942204603724938961163495314297431451845294451485204349659394622646994807249471255676860515063054667285335960302222920408239808188843927740556126115629038162553877458664620979127782497495769032078804426527849748291080917543470504855781308606801284761462795227857510821233911822168755702227530467096552681693504014478171938019745524571771039099162693248501298493622803983558109876365654687388827682411224299039604086989891802805455943991575528334031351738706617945447221572563240248936153333770909660200368359544080919723988716045754479170454836248829106535551852817059356371885557529814406816568847323685007334539776535530884965993899208120706780054898019682858868449344199637802612774894255358860238787209886469853159760517607809836427749704735912525453278229472743076014584911302426137411300990139475258485071658545953523476381005359325935836583192772821756196588847814913439750923082981217749629986926009100448421379997297529020487777678616525594626368316591547132445717812969578806849415218597046800939322470130387096156992303975546725354386295853330432761616853851547372285249449564121306019583185924170673689989302431550359694127445340116938183494778309118892389546584409463734264333648546332659095782527951281234542763526890631454878049734967287186530672232949441639395462232559277170656392054057661523171791434255063607716273712875038444568436901919478558229662645049707253992012332335168584846869786187366043711923637100233974927681864609551663859980613256096179765476671276124145088141247942683696941302274152213210973444057455876067246141326943642559788722214895395058021291503258109751727364750374584310736015054578894223920543770921359410673674024155587537113516849338538027094314374711625313418595487699319708769276043290543981598518035253227347282280655586867997721313027688006678767199744149550184166561607024462079343372649246851206803493219426156843170505448740833698608018005811920351361375726325042591367404401700317397632440313197611001433005522453954399799879742543805826019149529803679665705420570187257398406104644177091985146582017054709287365877426319285361531673825678014520980156349488585789644935859541623340850775378053819662560257282992064731273772527505509156402661778448766892993443350463104672714956932036598316634589713544186983309560317601918262277745574548945765311364729299670495190232749686367325843630017989436158556374837360351164588242578281111124298341357353051239617524656475475391110639341096503380189474950280535660307677067882418381265461094647339583786073471692348618636146040505356737792474725020279007034291588119420950927993722927317788449897182856508095105216133499447540446151765126185924589492656015246707222263628848502739766037008710176808687776478615977349240802730663139250028496745023782532283746741965060930380990566099941222376758984024456404418727689685741143373631295629480042123317391424386088572657868787408597056673565649891366438288639818653785373857891026979324287880193940489471875680843270999073459591865874353191624950882183329977339661353948418470890147922267737122335088107760197335516379978249860859844906295350518487798040176113876405461372959867199222780837696605166239217074827535381191900728145799851180415056210561131635592415761486616843193457766161771952066967690744705697737947343992288213540237396055937896578850950370388577032204860382488020647949206765440081588470496700176050585108550612768800725462280428640818609293624515242960634975415079712739891270108292429479908070477107591099309525941008117066929896155677100218006739332628051702436646456089811352546559813630971770807224977874863645368102540437575429588046887656127362118320360655529883882379268875808336798402647058521205279298885052619191369709674717887925456610384205025516724077401725643342433720585698676020478228042727822333673869043571892340527582910396801631720757864539647089352834320203958715171866220212786360415023636822922309552740773434788674507209401262755914366875613187216428061262671396525205431736379662735453058922121001460170276945448075227516777471188809780367533231778168214300827725717306784278159541604538351320075911801532423821536877255052344978605998046806252531788224232690254378185529756179844364287086415958244565078228165706259593865656283813070245166922289613732476502604664051437618963366178050957850506701151722822064620555904873767352433129911169309627846579157057385685664779226410413377773081305156875717280232083939418324409532415202215461962412333893225268281474558572884768618729629211386202781614684012999838487893778010280729293380004474633906307838037627747418420938442081537967271247481635981751984705770557130484534517349591932539629555219370385619627150149269833486928989603842256274132228951069945903127993072196455355034904308203515500315388188586518214295615207380603008447255817458451050682203896329945340792427951166631403235717936411236868394721752693582953044290543850187155170489223613100795396938744540208275985613752429529247233907830108467554115020159356139146027443642482937511577186235195234881097193247847835841646768567238659076718507381420475882468787903554300131134310581892848260753292155691250764816682548571144321631280575578101974341329552274645568998366859052433589844462656541523062442649333181737278897954788747746681426135799341184296154373008863285480121866057718365626074043551277271253549292041104156249439983145677488022297604716989890458446863305703789429576816435814996397881645316677581997151344354984356414894838950646905674723486302659981562419192477669626186063151748380859297246376444702176397885076462422892376454582585577707935539753438162668162120506988855958900916830562798140217829613903297437095619013163799083635770256609137097859830047080603101466900185400736752867648361032190861654342514426949496356865696460159083872588390300990358341763033511369803341369522722686267976630298651836768225265470823437953993306778314298638040664889126414752245907596679699578849921011865323111164468192264250813552978200476206360327131697622668686639670728254309449080861697890106428856260105359032513498720660990389319520452375088865399301700009970545685583827523277418555023577958627294893187546866640723008984396259236466236468446006016636968358889170059477224812731301282375075412237349799457985489155806730935251580646346063297022865144391375231247896581071396941683564378791010266225829733707949404973360222840910182321857177932934023311851770038812796896293505121484059599512709940461325835923307704915780463373170157274046758482515713716663539078044586341716514673139817679953285380178152400049170199442314167950079475015717842111881230793210914941688217139699012097116836355949994330116947493653288374315476774564005175957029706102353263756309802581325662920411003853662244411574227596102059985505390376903632940315917731041950856471089260479390560864827836330295786968645449575222187900003593709476597900803677555421664099101552158815667858756060017686806063726983901652508081699464524638532700431708612400761134828187317764166111165974596997791310088472961630360142933965548230982675767293549454802341175103451003535902047783431164368638731252223776455364408052646639840361118219649197477725071687790165503079672140464840403430366113298278138488692880268375656176794367093574152727346081251238291411548046366025807494834406134688193507620315670819451310516967140398272773951917311411747059088761134466263208446846722032466212440040226612665576687891677466700763639499157157713579001517379305929190997490069002827805460417335255677604509265306724906924331134012660573826249618762146704532097985480370913793506245457479488020606254083677792590761247853949202841180495200638817200815480556655233320779893881434238499397578026535303543908281982661794450651939751532433823117160984909160069582350578116907665816399263046077055478980636939967212716754456627148197638280565599879937814601237204680154078911291286500812751547635392503122980892414703965551332123010736091504874478141903176678702767073804708063808733168569283911886917081195642396283867800098154576142852616301114945229043977851527376961515184227391568837793129374850332349487793074527145765363020368312227304059681935616522834777860254162799400337944536269778309902605686799417370040903286621647846214480150051248410349127294396587220774993571200355660385545752580142510940542939427112165846800932463378904629679582884690876412693570538981283279464310061276303182970504196564496164116868612992547448407405930597221601074504181270286838662416146383407935392505118372345124203188589421692846745768586208463032635080224681772001850975329112883139438075328868163819557914845864596316158654430789241671104117200783102649169281217418736323807603221246357253324791201511282518633988104528970857626581437426511531803572425261497526499105272732490773634273790388926128501776293880640573841128084430101850360090561690259116124101054082970371709580993339913619167789296347503576133586103807832377000636487892360826919243695954712450452347535442218266816846697293784270860119872291914181946810731462038789344204418455517942331926406629428740711427197795038791807758499434101592491760801068964081138237460403132032320182280977900961408783631290285895119253284572586275380582991635477484262157978689956882686014341800580047325490024920243258788176404180284283182783084587525857881713064958870017448127387280455281568422211606714702855896424334293928966452748666483094135642959530030420967907774051699640373000710285431132422420961847382509597335858139464504745186462851605824656904023113812532581069226720214231520062369703732727401888949170615372670548566267619278075765510755320239425746442434980223573075540301339190196944967618396697336689185424907511078692498561283410977858370291818110516510150557373258981878009700801012494421145639161066848437323696191125187728621688941020691554416111710061210797122608242519411611165726352749632409104216428015200257388071779056865499334956336627506352897462941972489640078839840460439812673512251464829094798456762878295702436190245975433080086051682687020701463363941633510805093137618228283766331678800463484047339941828968160803723508152173222578643931469387160612708000826874275324901558638254849673170640621290231947669435191846872552052064463414488222434445117853507515414872186584457397416636915025216664677315061504380206567378304561558819713383403262548892205948618504639336132676663940822386037683931920597333503199121151070242910797569717876448321532536738805077813798064797697551291440355638132746760332656015298012340763695114369576037098916812108299278950528053953674864042368111194851262340444705852745807884998025273249042034196205445644653933176841200598134430540506570716889884756914326540146349817520325226581608756863386249439894068744035565493131969524907998064031265835391686289243398971729220014544607217515665600388936126616568087698682074659663448418401680559866866640334991136421993683072315816468720865968009103549188672369529891960704889696263966608803941008293995730760363060635590873742439338126962843140489755249337307608739699265937787875132877702985309101600526465888747537373180478677096762566685552635093462296931169715616676420202520276047394230362596636523418647243658275615917884178403788578906650777473673529610422978079778707310884669373466924804776837293947168537521110442464621535119114035689828951151496407994713472424028098865374669872990384794398863148164337469544532754246878567733596571330195206063154911586309577245357803860146315245244590838697699693414568158487782152249634851636353280176700608395793753635045754911462061298958447279545466264730306520196547700548083580648325428651011494083484331871321481449236407615683494233223015629249110730389945864091051129144635400425379826960403338454152960899477825285583141934663661001644253094084822146094649865858460172416434782580203587220001220872414836562773490374715701937798060751210706332032544469613914686868834276390539120265458855246726533315551327882784870218169371572046384316494193623935973550617046613333091074923369978504147615167507859963264242728461871497993962651434010491825344646455846412780459789169605882178368145633866304272765896066458821241319208459069020135966803110564875686287987664623728407902012395510172631174604622297815528011747190334662406108867050452985933339927805705346063136245410485448460562079455544814388092028520705748917609283800136072684662370627536578271405647512666107881440519098691468702606653764539961170951269002048124527585302993293370894679208005367940497172628384974740967014969877634665500972547094967594397847216857296691553639974698812782115859902747650677751151983464372145303556933826104132129412110995391719935523672969441344916092771380445615812511607715764339515477329057831110386184589508197913645878326215833975547636680856288780123287290672347028066680698708708657508498267265081432095112488607183010862245213393007407184529448428172336920347614119718264115259426620697591963762311848331037770855968190780444544930034727966112896308234887360650468841802431393560353537801039693035285660808918204381931059038516371627310412249421946091921789219995593617619158546776960088277279082604197914166612015036258722444348971028894550018474848627063444552174140373997314092591367600227597543048597414672572495563278162218606272073461960876861901057821963811021731802136362449552774885877049240795060127902473090423593157914436934225064000140436808013413364266590636670085833717953691711051390963060380638219525891167533350214547459902993621287948627342883867911459677249700468779322177252632429217122729849855701523263591256091333512104085775094546443595845494912209915221584106870176012344130240937896412293912025523675290873333243357361940131671144374399298728664605959256638542907991471520140844907230337465362398016666973302395510373609721242822048227850916750914786437510928561094072279718824422465646253701424972463036450682080384087475717210254422592218089888302350303924238633039806025400806166561318839778241631655327644877634533185236705389450482639414795650982114597901941383256391210722203168420354886298109399763204967683503036378534603588428327094949120535505458056984890508031510917928588015860524514361937485119913713987319060694011613375819890421962208227882032380055120005081043791334963185094797989112929770668575026556202177274835374790054209529757109850608477260969083962736781066723056087180406792383959770160337312174810573708821947522109383109927611265949391511205584138425220743287720308014472759807688969567929585346995024228846677283289267370535515048598042512822770122513757692380431374395118540723830786709663168883467060325928996443791605566685143194782345937763346783234595587873218418323028326335196170029925133752981778924797358357118899486638654179137664461506287591337895004289474323432603888737569094659547935305941076123173326085381859123819068060614857013466041132293068840373683106008993638412960369665727514505298714149432886573173210935453978177274261274660567037132846234017502040023714976232186581742255302546582820274390069010631355876053663613098669917334152376662250831045933222534074001495822041328183646371706038339688002212932423070937373600965784322179712173428556904240872368166000144774476544605765297814675506492665848343358084621747782625875719163209879055958404469856098599680420533467850471563891989745500176978123215215624446971777525103880509636219090148255480299322575583080924299985596336101304865347154954662248853841983578464002163615001685503735356178096681687587221973764330345618415255378119687139184083807329543795210168047464280056936777377845388777738035007338478180335566134824630928701889704244439564970258051607700076673321149794389679761348241043315070433831642012432359134342791056578669324459894561888504078657995305633493774509187952587277984472441934458793734776342943338625847775404781083007404637113383716008076090453100822702649515366610550014200150605085745609265178820141593394422087187041795268571549214988967408290463531597617576223265504530544222528743098360964167143309307033221279821486422026870947245831714811677555677786654610971567914795622687339411008317428445246782867180834617655911764826693259071984021070557625958886698221609482587274280443737696655867960715763338246208926186976342096494365915173691539125361908748222784757844453231185422174915032381817976103508936784588121830266639607233964178682055944177857462180105622934949533126418377658307090679742210267317522579283986590112525599853671972408587594739536414836135344926391657029672401104278257719051645947180696140923057385065926981597292255469337867526554257492729701319809433881739234538202973127924251994422447331081608745420776793972863957986432466212629305106888819711622975193074133284353937765737825853359885389587637126993873304450238403874564444134975318883656324348488560354474623997042395828643957288876574540497536726118547827421872225222164515866447936399707570043744648412203489209958481629709699914729819957738904738757615076602821950044818908073354707558650181623245524848691261869302932055904401460209042322696965094112511917624724092307448696447974180529352686267558781833422684592135190924557130657973988697862515787364430523864776715590983496175943125019334628806885639532842275156055629470582982834814453597334364257977553312071918417344610989455639374783859284798370042101308510091067931193535209865813218589217336650079391682620629400776323617534925065348453838292495492411555194495669827179548308351828318895492507555220366698806050643311868658467582015366083278139027362627391532632078491012059209456842714398449580639107524856964293857285198667159870359286010371909049637629981472608585446778508476062314036508494345128607756991245724950084843120298110574969700446508803080690185078942951509509939352288947519873124739749969245678460878753229765271310005176302343505106966384099719857617043594508998220715910783588448642995089729608755561191117996137882671262832028899990370678811385712106859218356402960751149528650197432943878268846586476055384077053841527839824898177537959685861571293098894871966178424975863087487163532157799826122059504467900438492697774282508796236848082554490414847790084348134001086096328135964534185048440626142041018717216557635811215520309994853027579531819665775511968599593820235340038330696432163720797704395538724227992906063341822012216529923623287006925548683168954274369015972231379980091440487894115808963724049071780551480961285020761673785021989104807322770418767436360627496681429813265441370843396967439410002664183189031885127960533678062698675874299176569338113424687998167663514733743341476018616595256564107563301788805836396116053008725296652437467778274948783277713925047400946983173998260990680842292798198220648950022274429272259308402403755034040224500264439007001482743327858247615863747437443442812729175465918722236522856006467241242032390634097866535000119065195418431534007237959973459813186804332901300160663991472310773397905227647102133215693693553707276170266518946843431389465919674804097439873270715862214503646934295006684548449063779482772555726479487794235920634348493122223425787540343479264860819225770437886791172541069236503980351818567463716032587906112303774451093496405773429573957109116282138488143041320358080474948281169037610294644328347987154795321618660288138207489103023718342136649427256938870293993350198080527672814761466240042909561585407252700485004545137791747721622194113420809233151522637359204281203525389544398767338440339759570386093563098720167284689478384839822898718306559012200647135976649491151784330524912082349064650802098041045440577270570680478720606912918689529530427075923703636292028837995931440977762422377090437858241903019132797521725528984996312094883534863701809721096577685002570697515093682113338530444462932303610832901066813032874421797084166337636287383427597752287128212724362612856953655738227108577551798605860972233430643510128365535067046784522539874840676058336852635110970427355012743401422878514722340039256141789888400627402020631748531786389829151198308708515874221844791827172770318976491952062098042689789811723442585230019897370609615841834556258247701418327224342788773575584247786596741756812591135509700986466226471837766942834502691109300744907428322055169254112556375412471960511695969991519403714690510207509184599639590508746471185344950798190884079852870235617869063398190458502242092349300160869646968317121768777336381953524101159930632547817543094770180084003446816106424089422555074083311538382699528506104690114651994264804756610850196764435895799526487998718322141065990320422591251708501949717524841028520727342655374921287554654937113748623672010216890859961921507348296300133669797261408810762584715442932199537665713772934526290702755482198963961800993625929051343053368788233428849290226656294787705386790249298552015514974980405740985403582372749915468962665581435370704300848220417348603707168208361124701307981367085756609714781437862647285551615033144669664046968697393378232466339007267093490355093495320534088913441873160358967969881247604119543907914666252498012028665405479161634562985324859005425539032086005973661177921434143467841199096105548415054347948144439235431445407414988575702830241129776971304996459040524058442475503616443953059038487278681419116863941873776499858183698989383021935733759144252109047268878807829151425103264920657916908914943840635766037127692911041687256185397717314147229254068233753523228752581395426089809055335689202571174037507463705888804117748151323781694863131591129795328798527900812064962189908298176264149081128017459827316574658194588352838642667878480412425814879410375532552745712482177548396351795609585897100963191242089330196181239524416896871359005500382431369647826170546910419340425390305790276255167448075660265803121891997427333004946952620804760141548130562270967475460113242054209618781142691585118900804074767814029343715528292443218608384726414737645280758650973823963175140266303779777150184569241002541884356009393897531316322862976000040875979135409580284594400591251131591974073526579715511926716018864777607006160150908612942965579480907300475807119208728116119275379185052638939305093828375137096657741959291818893355471587905490796035005177160056413805836101210457099303501684928581136105084251612929825884953832756740501176305371639942716202836202236372550463906477352747841888493992389598772566886928413331064313172149107055840283309749741728632331413534997449010744829519166165326018857766083667522811130163221475201746410162543767565973795824694033429614269167584629195255012313296474002318775985457840582795314094478062951474943617610798008749539342371550073163249993317931768100072189276571021353194474619845029390126297418702344695864767659822085334798629661339465201318064558054354753462410049841897044914340857082398417778561968961847735661288726339971052370628988953715263017722028264157057636932812415186342324215557431621537330138449446122626960558064600280663451739258930981651460823855919249545428232296565012303825947373518658150890208914852818615842406977964933657287034799829267307222810806693707040987379647769212453672332006066690938747434430556259581190520381688469551107824695682055431026173165878084738465788444194497138356773936322226976775725337135350892241614044316064264232918173480405486464401109554545545725972558434657102673421810581234056814948958488163111907346125774936987820497918485646445977899992358734661334360575590740752839141813750414501931221128606809439521640636164906668797795800454653919036101654635546845942022763142250634567302656814977271799391106246289387364820176920384172708852461061545653794064716122611376306812089775310836370136865113170904564054249701477763834183723819102033539730526018360052825248621866478654144288152833835757552374557306850948493188385265243767308893479811126583548774913440585849975716589365344696201268303763840204829071867154824741884333424909292421694787813316236772079994990701363521615371475515129142217398983173176865194651942519073347987272650385065057322834000088723225081351099385306633258055043278607957297498694239177770454245532747234375150629187935866754010865000266406396819384676350675000369722876032068289022197079146074563334454559216712753043438076794903653459509209016955371726949544501712473035362102398487678689262700833200195227558195757948618866237907263573741156967760501984919461175444971448527800104493854056009273626869004004108999384136135991864066927346468978334754999656187901072957633481916514589862950007576139548730610332177560450473819711536218029146381995963862164120730173352232476047769931842883187051552003370904724757056179817087485838639496711920205878986411844225897917493222675728409393965919543233880115923485743277585388394912863134090361550918209433178575600079145330511414925057459401609816096897039088394893436988256246630566343772673846611141141504692049590415048542810884346714462040809872520331393851078177073686427580337382533148590626507365314493590767414327341746305773370525944854567150742881533075857253860806503555823640937802979804785514451815493118900726867070016275677736994707175406698563217027351519342253575057865664029900962966164127106738922779197521261497430525894027554403442632285286124451774154696328786272781612703673185323618780673601720146240983236465410425487419320656422539408245049342517183619047711094967425921645851969729731477889928796881279129829761577336178389817715527821748163134859642373066145207988734109609845718854552749646288486055917424965344748685639602217151690090120889405561842888458403635903790239843166127098715623481781645406594912815008445645516197160719536638348039385836870703564702969089605460472739737670194587774322899176679771865545129530651948930058259148120030236393158966306784717698589029475035848407519804746853068760312291437258683722187383753605742198719874671525303403678314391792585772901352336236945093580095969060905698318051584885609139239898691873316432341295335216777716584776011561477184868167877916885389081697150702451423841781336856994393573350362740002259102167576008515815773900909304979655297124684429994498333683702269133081707426073970855668831894900728095877187361548423150107363906475695481945122623788866181420244727447746511258488134722629544407923756567174558762448537567002497353582682355858693141717550944367201744675366944200385369802151824706029253792228592264148827600878307333690558300356479654759191565801817422454716896374996171892742402070191762779218298703845934289331802669821183848727831303103343876130080610591201505334960222399620092879568643559595953676617632578695392166386016190901979309035059928070425875994059424358330494953237822405165649781728139255616953373708287918465964501824245344445883475072228292433360261204733976109027957154180856036983117622778836265283430342410773006712303098441824243285788509371565673278530515631820642833172365084897631649073785371640596060789136276975393064516145689035055906703683484084373986971633845881311669637394238792729081429175515941671903136099676297312809710610952572751208376224105097868968963078883609249994915379147834421996809640127564119108954919913259266075311397976787583203050387686681974860683012338278168114706667389553895944832041279842633211145532130888683371910557852491042407832447506819040618663794337417366465988483677211568398808909957945591962800530411035461762553743801015582900062617523043100742879722523364087913470374778785878964245743954131389655333478751266141027600811760790048218985358207108345820883461839613077652929665964039806765079738613958980712821982076172181213158237705599056733404293068852845694544143695330524443771556902051995580884431379037745498855814255561793742669253775199827775203411203261551187332188385327409211444209849409907546649976662351884329910447394132170346906041090664856081910381720894199125117431387097828233970606389457958468079475085657323353724966878250398494686040961501804173438147396073125648404956898034063151847307357115345536796322119079404514303726197864359117087061013935052355600368329417663459233595057363477438258606294201166440501580395308607737001879548760450997353869809153561131213327100741404114445775307773307413396235035958133291169758857491043374339715199925681708368400211708826267510156854118341150268337816115683325199822376742907676925212894991820146990279076200102392587372147224064897400351006478664416858897330967149584472644905112510293165737078716977198715694828464468554928958267699908785549911500345816772793310065497484210731929871677689702615290923542124390050496925856309104002353954944832460102885795621440998257829628491079542868499622801909109447119466623013280701800611977448903820332643308540175970126949773642900034930685133363369088239746741634704714801779551245418836303154227291451572209199995901885715491515788994437268741546475358226592390344137404033644614394850594093554467501007551656611606784666879710671616553359580424239734078185498840114741381576723097402362492978948145329949893041755581021003695425088793712828508850737694141254723803055117945184623535527667911552522404441874620467364198435669905934763906766713789742364218341661805539708191660466948077897207132474794197714765885642086971616680838049883737710922013611780454302457080287120161304592087196168187292647987861225131853423795715599373922353210565930292426738037121924337547081708228724884733556275849911778384006051085218589750060202461897735591693119027887063507224786801559676153054521088055113614727593250023613213480008086997881816615990023626589367593022526112601517009256200771222956451193530757161116965937236896069506008506720720481579626807477082064236531243643003409087792720084411832306778115577053689414209245521186555907138432588171203381913817141254567242885790485149956000673683370406221919338686948936015677138010074992545426579759748949230189142985734054611404387379435755771606881752958356383467556625598432056679705191754408092700638732518157121484669587891167273295197176706118660316977732946817172867046070794749373228169644487868400416510022190083478715024299919868307317457942873840048778197192814691924817999695470494697222236939871186126653355736528778140214779867589852966665497923568552860380785740795614898753717292348991520543016061763823760879562313943867516502669620020422160184353686994127064944953161866704302155332272945136712148822738890450269486478755913724521454682438272733503776299622544458172059147547151259804398415918182572064963168336307913832001268736712631710004276805445614178261850094338060156425120181289367255436417926963727462601990416807329667484542266489819782402643208890809497989890430769959046081156199491139782219197149022872357362900371670295947660265663299265178790778946683830258906703512653465955022810762865831253821465710921670846962350711334925172871740373719923980820145568309236322682307392531592515107806468363374667239812006769901864633801547549497322853474857782405745413721258251913580844163378714063921964475682459955457707730032711644967728581883453812153319579949244079036982752831568360519697449298500226510699993597875124423303782262662788082120121687311026342305444262776746814551499157780057991342111930443883297381747331834339335127444261382444032579574934356213078957648214230872931381041380957947928045156602118968462544457787548829618700842239888911494547496823034644798265526698153503966939438878317725239710231146867880335991447969707683066094222655419153195265748328349165983152325893020131388599234300444206763377872510239511362986982283272794740888308278663956764419362493335942775003406518877563091130991369164975529059373823336592163103475611279183834651064736403025011345173547237066690125721797664556893419486331483820648664707240754511450160212180924084780704324364452345401839402212076596597087073267434860888598752362828685615490438762639010425019285916369866992949166467519208618591803677477244919401558160288923551023547427807644340599203761045877015649168054558559411574058877240034642616137906616475693136430235093581588399898984288958211467710120224217657758933645652452945088113706530524966007786369808746066899592315136196369018377090280202855370170788168422085401241287356778229327177298828193001365955869348541782869195035406264357969166125956132621497227087596179646056089115267567295728583723426315419665992121406335687056907388464909358281754150023133085124162517665283626174886698091800512427132934542761657776980134560148975755120232971204307743278026286588822513802962623664716918445832377902412173346129131798844493817150340317140067231917793535541324110532107065581095537826725342125293732474157773862686889786720824489095964369774762306277880895640425835279872155926139607687057743433036500208782514645022057932043308796543650932341564172891711602777902356558198816343844803795783080036326488899980800492452793461009481701436495851286202199541811024859155024563759909419162793609092321660488788272402220915415150955711526071802043572527913130121225169989236625241654992524421994978011861863953077781045279980462779520871369780950504592598334088433346496906385987078343965946415081940426698388333564046812827792885922234184047864896055188512707445738956576637687058870695645818541477828252799151498348035519801231479822810986647503021678879549382097022983024086487944716837358018490517128710251471408113088974100740044114119555262331951689864676903729226427634350111600974810076827563132308802456391486722694449553930772509541400661282321631120635211275851185284010904750360078003540029253914242724561259758512574886664106185718044910572691671514333583737740873186968701550405877057848467457597824236811960319799719827307768435839617340191970639500662076832125918776670591387651645946279084777637538454805809987906808295890484865388288015632943410863253329739579515418281325147461618550332983450731049018368703107738081800177591740098297473371970190440479880117103760498437510453734834482303200595944443942711907166791026530988125232727021829170121146906791675504471056545501063530107429694873775622900241245524316179716096679732832444202601213627360924811354576802612318380671510915264728611823243505177519243651062053055398784838122601573138658637013443465997565200330435092702783327555080130875479467433403459796942100712756104803671390994424447096723076822116291402152829296683339265388475677396790263950063760116081010832373458127410782833428787421058842896905585385545805260842363653208363174979221939513967501806478991899390044652388261765822737262958170561606177436345177156886505238733341669589702638516718858790138072277644773197047081748076204600614588468711400976903283764232672390622015305024481281715617022206592566061424610703248050779535640298826600696844297330437328615530687474288052645599786954194328241648936697430668914854406961009682666740918075983998819105464574849150046530032339134845326903420677209278930496277560327220420502599079958484178397430960718117416393681552617953908786308231183529260707644064244769968650496083374005140842740690501048874175209635149031993564379078596259515625823759806643590699322528934058929909657410279902376346041161351543023030472093229888613573463583234642955540087399992303443312423977264030782117196310744743276546339980522051917803816580503345397721532637596606550296383273959606192664954876770858594425320186722431234106986447532401090586653968370291563016064888328017847502481965305347809801747717919366694759743541674241647526738857327339481107390839375674130613370623101391790159103017546379857186408333342581369713875495661600099106388959944105734625727622649916140120621164273883058878025436113677070083966683690793142543372576632484385723793974993222792057783155836180801837436967345464773060484017270949400228536271661270323534028487811941426140379019969924881808371382660739778777192018079739758046466869244301532248704081078837164317698402470822322412745426820399527839411762284958559778924088432003798906972501878171666102660361877346209503313160945252737995927426050941209629575794118878562892399978246246888122316277683967897351646924222636507680353464786303952707693483717631674541582388775274884199208595994933687654389833432431838519505048365267680784937704849645364630993723715099993500489894074033460477033842568878667559426375121199866752709169320463222548351296200031008983619550097858516990109148073823315560084752131828231175678208536213041664475216426119564094751392305450159378183387457960074730865751129919923029421568525758146466160045448140378797717981070870611703514081181948573595079883636027557389769724339568366784993065308035394252008262274957091716310976849613082217216481482041739664467253048370642056923800057573976625118855532097217575176136847553134471396336020174893095117922770596925500308467285525663249527868144838762414646493623226644836023756265678321937140502634642291462410668774088811238614341818469747253532939498149391875106133104269268064228281481392823461627920921700964098180058701946882561729198433996967627447809047267488512531288159653805358049041019216683794895751085935658401907993577916388927282513373125515791698895250175688798753517524943137960777258075953120353628546937803661971619424625839709518718663272587491911516280938507148343467869083230906395935251748793658572997273773815991958098950758102524847561469512036899265718405476063687411492663867359839105212461914030405171309213765527880808809649984128529188840620116598412243877886649437072023473706609011242949688470573952573438504824681819905902128620986301815074631328723866172681532178704674513090003991518587664724335594693067917296703503643870672100370209506668605146521369682093963511650292506381636172860380195587937336235678857705805922160847626267797669704491090899130240956314144175640256209415631160100052210910505012937970465071151326693815904781204963220602091498215922340407760974297716052218494599076496419643811738411222153757431453872556776644648025803413216911587868915227928992629616173662739581689463710362748168441858299254926488926126082236587638560496439984774929784988380477630953483871728492121334488219605357411204148363314843037255417424244035093890773344549517658817284728235784651406294313561479185540137630929805451071276673264520069041032276921535880600739655284090037794723636171738397024396470819061931774157777675499222321595267436563550624079273298998495513168238572193009974298495003682540207458516815227233273427494810091599762989972293305564597237546952652639645948816667219222346740495574043999847491816217653069113793264250880399382226788351440336645635428189495744024603266240330712298126233621444957250289160671763119684876784946187489741879202454150737814328082153292941456283686488161945720355537468143553278727196725500004537716348531150826457555065905996214856529367176158425823352125658619581590096206167420843437425635350896832465202257407418291801003567134632499991083116077922513588585548949878937929098273739658486251543573076697135401399303597389607347893629465323345204979144222089746528535633609698260559257936770805124018235417309131203217712355584969722714627998148080068667981884098783493165192184398189160401352029843973410510816149665948810830549176790893823991030962237737563901353899820453542972054085049848859481715436564980207122120099977353959666249187881415221224683151790531932932114753239951103015477778396513629987335532358630178889274673006569096663226002599224241775037452218001722819892041411317022348879319644296060306417869720807726501986353361357834261462349298802537379207654000708763387672351458061412977945301423039205150488414599843997736570716729805453686762049226196711907930279424206793513613173400771272338194192827462755669355008417968342319519237205258479314161433100943500059578130270484491254949090074517940463552154399923457554017017144917492034014083579331964340220554645598602737703552451286237032481133418395655011101251654740838173496999261775517737162355625598662892112512109729380200386045281373076684217658284216353491744824186259163250723926768453470064112555852046234180671661608378140793900592220750746257611046112611909330753344129938159015189575973931082857650950640494317681039243055255221074081242970997085337208182275927116988784485217427926437292760714641094208175190986326747979146040054227533038348141561244715627259974604635215012496938564749262299675610179477862848124698707744470513899090009676730429606163398548457847821515092325602787694936607621239397548839612387235699967148264348959875029144800685719672919825457073291988474102610299926380974958820501577331997504894764464410336799732240935497555672594327276223568940810448144581402835158205738715886916288651311368478224652533363250772694414362210802755298361709941582741926780118173693937461293843762219331260956870239478659417912914255478263726553834969843740997178386429217384151003232506639482533061404122064773168531948756867864417732259247304993981337204912549074898481533758992809715643833011621168819562144759226605645505550170928389981533347778332406245856962642836389338340677380495175448891562447482884292968354205389219236403313945437316925160250765068646285844538672168474514745856375259253933250404519369201019871420914251176463964258825920108915419641353442818431921592020143380791361830247878334495391687578126738486065905826938029135550476408412815516696224174332711973230662934280783088180203007028397445325666466507487108203470801610464708498280120432286067778238782830703453530420237873206727407949299527732113558467274598388261530689406801652337426318632707613480681722445181844563337337859492812382475259752050096378521521005649743223022793880260202912408107476035071876534207320774908125078304320395053105645904689452013073609651879107026947984002397328546018263887588120844888214089520541957133823400754676241465468643543135892386249008114323118769345967794260336356077191039878418156015614045959826490983797437414757994001610559075942869767529505597144766458604465638832139520743738537270261241403730970767047280704793307059353191744735404742168631168324776759438045525007468437390932293760142513411258054326221362559015443440435266191079474352021433496246876317327421340842434084055490583342421541719958649366329876521683281648880240349631929695119822516918395615841980221635694462804203963034801639002141823656634878950531000194498419508557185187993562697651496314255484230834421535153388843749797315040893303557279390019187373258876568237377145373831828541426429923871870011997209228349641747221384979095895832806661793496864356239366295604673902986171822288414431001991577022150985390855240276395554763366544480236455375476737064086292914470534501165271154234063094765031614000787970077004635948968405593462773811414240798769684706654630847027009216101339298359586158481608911417434318540557496563937535585910501585543258508567555802362174092198981935865053404223146989822624599567370820393274670402349042630527871819654992106384306898288629171305620301110519320807752375993279605553888269981381816536592210084400430748372992737219027250930864888536266990548107605093686179390058076341493796947825450027645947439450306763497550304112678416518885758005669447606764600687324863654151681952799783368986905780053283041710396672486640853195202440519935243390987163844031239851438500022928138837142951568721201055047015169680962895404253432944852328319073170389488715362070408129349607471394931038836124962833626470321608106007717485855661248930663586864747461623921872514366110025891858814024820056798507419156004059040777343204022444450105517313577082592647641343023704041595615671709671561529910427110952054001296309051571609282132061204519579183839187803748783829149883983832318255141465015605318094736313700789359858935170524242739133530211377052888827682170140962222406786585868642691357691804111317610094921092888912640060590731391117606440180081913529187393808066435842853868456907818604652291074144486372400361215818595130456096834354921058013655697316176701375824701750582442754750291571274794941235472323445058225909757087606480414076079973844156981988154439744714622149242202846304935618979105517323918326934555159653105868472799259842770075505767258771484799093963815071420913327195901849498692606288816430695262879952215617545433991630549541999107169571170146936129231200662953498952239670595382533620665162972781217369902175982956301034411902354628332520918132519060182139006323618682034495618314774279938600042567839325032608061374072348207309375908699416827984708915539120187539281373636356854857365939515053056904371521349297192383629090870499273472422421724055131053866358069294163189004225363011707404001855544379247247099686123063697814469015574607782023230096389150097250766652795781177780894581434250408200565706063603107721610205189011254541242895535113288296004850554734959644383911835498324099171711538696247793278323805264637250287220221923965983289845984922485395828602916539595154207906799419118846936562445762127071937165893493715154125202826812056149263784633001860988420410708172983240928102415638549515755277821026212372787674353679621515062387478552716754674200963283944025985578424942629810129917873902851128814838378125458871506159462860074807879801249182721366000448364962946404243140588790425069811963007319222689122612334501022784419318860699223274989222052742967942622094374129172132588882895216909329850344097264425444389529847116871562219724036904699153279721882646186803652554793459494503320226900104016084023348158356684794274121561176566846561917253801291171086437339214352574741390213267124466064905632447291510662641189808688900275867987986210926016336140721531062293307208109608145786871923987780489603039677632391338191122226217974700304742488829397282756588480183724478139299141129430077202566395031371620732599241240773739862794541218330902237018828164902010518462320055522470353164630890550264170999574203437896955448017657619098881924591802085337215221087477847037652016904870263921821724133671612086820043571002369135839278679320738997155831860272214764707068846995481235235755560799832718618223872925614707005162528924366072228476798722900365394558074439248479392902660126112381133702305571559228412771856349870904824331315443274394316369426439266685568267688865835337873134462492610892935663211546214339026863025690443399255658046555713317051909180678369223015814505677042817023383871603683160575992310635551306063986838069907456259093435952646482923954856257984204643027836853245525238651543806030979289810954816055646983113065422703047724990514995375366065743820608737928217229563173163404961181965305141023251908689301858118644125422752783790864331607121492353897796836215958612015522892244435226229810883799312628548813526023676600353479669892942943902278936367915388145998702404826659741468701418271963891926066482010578161438597733346280370148952712048949502165033191144741843715906668382637524957952968044849307805966763262479973277318106353564462111544371519629808187776535121945878436746139972168495142114993508230043664099516888064436920509951720354311089832216148572447625125405130527245198490957287938500281009076237117646506762911585749500141338924633087131841006725436335480522108874044962769578650862966912837763973105005571130478032785664175667316746190872065434828106193674622458139243250118263454867490556646558010461252196644621534399645139334751700922765045261139517414401309034465245426318288236772064498347247787685722517707710949078048420280444447240469181876563575277809338390546965092051236070476631087862223566739170730309678643634288905446613806720871741570977930063037344214157044052993560791077555756792006484985437326616416649486040241802741316107902142927258417555555074506669468587101668216737784914753132775872614563181355382019185733198690550573167926370832449764987093742033037985253008438386061825201567406053926646127637257546878342858827882544083623797041345689102026348821892857980717604461258417088496373426208674978752761565138551018948109982983585278446646540350034289473290955912145508496494826496763396437538991084746360291650728367085188188017397962565345873793652808140613256554876028704926611086157988880417023258946640739050795839156870104346999105826034013258460503367817892216886794351044913540235332494959821912141939224574244903935456052942238774562494311111710315569297365728132583171494572488457617156367178570904839852637874217953760865739197492203278907549387400976374744280432576401711769394715971609833831897515626176060497924366601460316876810551942417945365107511175801678657014997698431496397986031998106048273340185161628213384423830994130185915056752857832966643959378225775248599318500107124869151686775770191537029458396338040314413283249356719837981624954693331177246412167841743143898873429035464712246399459902495536387857464116772027806909909388510295841986146110873988504097458996149948528796190945473450781692375320056057904724280987857496768892526602925914041704010929313045883198932292136128116949906669618761469660877147432510112910764345503932162804410257166813303759557935533161816494486205013252730679404753976003469474389426047845898310190162676740102173201908390663127689522609307161488525759330740911199113129359711245669310333037276346909862367239025980897312778654657564259663076908591697675944739958787908410218259559666344633755205218777978596116774048534228178840598992160748418311480374304526014072770712522160563528378003073989730575191745575709232723174042104375735493947847594886899125504143001186195332335292224782249003216403982231988085011240349836905971174348970519217909340394868314857127358480238794632995300395979031095074288291549691221897453727466922185229409697908902094381972265047749243469055305790850248346143417342038047429712211993488288422030528553013713808357605296109244743423193397798130940725122045156849979049954060600348879791512094221794838502902591399777295827777301721054988352218857542372138218351503594343059093540275029181474025350373068719013143876892354562802760517146694834805430652672518588938221993749560360830744284822106668117338970135729660969907748304166679349547680597085038874782809790036082480650161467308540630807020368837888367482095196203743976255959004947300405567337566814800025441645962454264728665785216199971353925878031144519549027694147021482249002514564829453619864807420873635335784108582314951855361820856861973923827844495099998209807082925647363178678842899076503042223685303184184612620833027990001221628352251973905547623590040545321136639819842337356194673270659358630358539911265392679735547762851541094759884082376375403589548972837329936878507799522096887649180610215337828821919930448519367635027055636275030141052930906043509322839578380479691717171850800055779425603257637863773815987978649177635968638132789939296118010864380208487926934200985784012386579940971773168806864936891205686362423178530418141929913451317799366867257686446103709255823454667215353511124020759236168791130588684915233834645497088042592730393049376352467609907953071965663608815011542736529781808465772721956479192758165549956611911495849906696333195407095422017576167570008924337559165356820042886072734833463157579212915770256470360565226241576352007251390068950963923344859637980799139109772794213002673542875600919037034701275415469231816406316487894294971820231120924479847167408067144034005238569106606320053638468674695835737634342011012188449426210034847158122052743878952795122653908503558492137670390132014989539449042871321923555035183383538913967061451259870836774982200743418267754702432366078481728904683310330032687169561489872649860933586180275728798278489192783115457098101551520751508905364800152811112685408828427701112658987985970317272038853162921121222265115808465957504698251877568217625777247814847983823187843292853313040730504335864444183356949579198121948385343155922469468249558543377115515517383839566497265923233106030830288967381986533902007919071331509439219728597436632629971563890706480211687365362182093347998079494320879844822580323123023528813714582342824838754293559929704995154598289882946581916334548843678130146615650297336541899200111119079397669211972983168791798623199923961214871257866000739941189716635863500532984138658124306816744649225532290674814307891081985970705047887739060416877409519784358207305477369965052415495231826697470176700676493357608515713239929677532339596611758216316933187683773381329378243925975988684888838463149202770418446648664184955051845548819080841518011371415598815932078585420633291282108106117502388443101999494835725676174552873706383243919807549459162900340194093120152650849928542876006993887266726618793891756809496227679306076136268718765608332373821122633550241777730727530643409702556000436343698414001510090397700348151143919212685527718565088797306361442327129170332329243391684940860969449874192232886699480825641871050320064481131730256775066869628096683558948059607581531820045622216027820022146406253288054377630873573206358847962844162722584169329167985455353889796258558615637525416240191849789532682529882274202022145215487724536718844459959428085114547671457999699869526776014634059844159692311376237396298844410332805328599605732831910859323601916665670197491868770163676645503108403648969806051780397698133694202387246895297112602813647048342219346821551881907314856446431045537616073948469767753824351837894519322213074494894612349192886440435546701464912564217432279764404874864310082221116957073653077508765419112489188974255933969683882302836617039710257913473654065384807358233222236625215886740584977824756748607363946232531923189849820197942756438158078042380879761524937348683439202758225316261426951493214341787627669316878166279522695409045129854535394015923890491339872509177466055973019702521882667586478248314507094193421724037728104895147984153453513007126275907560834337122010126888780345885253912376016857568068630761106422628969913253045681103451184189835449142678205122122181657447002515088174010956740871118793436866735316686059948770061867234418824247151554034512500405637137032621867110583963890747749638751158506371034770279097059441869772201108691573652139758118740082458146439268147532757665518804360863713689135961790927063379139665628142145105094913648803312079615606037583582085815077267840519061916078686760713452433160615329565444899025832588545347650412043872240535826197085747589764344743548961509610925274989050282361995159633607703173336321600438620069803481394579758703222109933989340147661220645327535253250288680521854275476096416826644108523843111538270625017885097655648453054976237684178661476911567360112008062377144939757274481246306713125375778202850046353330927811845243920800591911930751238769838906820014068372280968853098979024737380177772563435287998905009563009314860756606741208584558033703882668725211942171896056406047098178155690457719000683992053026799135498560764087399125743192212847260345612813798993384088330782703945966560605686746331359749510497098462272570869921437269001473539447159569655125982052299735577677122362276849767277664208164702687151731376338875836299394582698944103987111573345796737118432024919394976097825441428139796317497157042664707996017142441586538250362784635088535771082328462430065221570796555014796665388089696856904279021745025897947505149130776818647178403706656651478264259667554923916308626662600475144626858338435503521328427169202739668691979665780291031952486708283301239703814159561177063119376812134289305354273319149066005668926879680992029134690826769532440186409475814397282811523991941400832065343063598000702136766036283836501777161834409065387982765254799559699487903450421931110604831897327567586325691021478382059486764387390602512378732083293317194565813065935374367241782583734908383963011619731342273529223652269494465444304697669424798690133067998748067413056117867813827479695427499355580608236887949761504413773740812999019693871871030519692469048534633705956831367233772966849182094402928886369023086626815610301032167003214722632486905219115540783003558097835349645525490897101838441256924863739334460468103749195625642414416373089570889161982523693821029269441573452687055240368138488956461962459294845275577691497223167750200004950057206360926149906878293906436793065616175165329677810185426449313574244722215518972281598429883057340071278743921005316799105131093683183556720017824736924619256878800399143730481783824116708753485584385687534670282418705648368434405453226879656582280453337210746591823584643339113778978331240303775302553502560998528472097755422929956558396268403385477167936270689564391425681627441578774877398496238662020920089885893667050148242993906423058455125727923649057324090217586463845524886382171194728143823114066346368726091297496172820527513137625117490097557858901683518472313219790845134012052239088661081171794207026620993161276457318659631844415586561075099359188486130991936484804361466798548908578430722808040103227015945295351686519691578956350556578971234503865256985800500117698153072468473085471001733257636618824154057076754530818004580093073834051522328567342586318176588224029517914437465404656630123970605037465951078138644750270731739407336642848613486114874735667450904552065236764569652881097063596407050157999929642081800250906047287433230755227646942061745293078033312107040713508781769033933294017480922244107149229771236786977790753840628167692347146414797070194871049707617310173669540829171683956022267742788632191860240039887018403029310147393801610730352630963731730677898778922259059489249752887579717069260695189939665628188183928146241906562190992491174597203485608873171485909313286297799262421433985850157348581141339469422013059565780751446216655833906432494198722569076495600779481980018307196308955910903815518917765922215039284458087731521006836366572197427832082269426002836985036808334817719116884416302154985466190183900489214812336682106307329177611390542133289216238712245488299363569576922308883967505366061117595213894159976031848569340360061571058448591203045077102127397099140722297922673621390718400671328837759269598929450394590744290999929779029422640956159547245653465024856113009018085774454029976799689066034332610889221490768084633606853120605691898420399903619737102249595293862750110590995012389252993325891852587635736550234107857746929780040475948012041975166749883930395033534204685796241655408630223385616706737450491049158623171245771065638763443873230794544785540826989459913257483496975031208854075805519445892962805911774254384065578389694653704942752287856851556338539812024502295871480121857917048560608815513663039927109120445123010767668505663853979175367854742164361641134513968906958745884769017709334473049646675163052251301524041578336573457788323464484324490100565805263138570378319662122926047729173874924092543046853956719089946646212085520193328760442109582707301379977758929115545609276369955199748256071742837595116044816260628643785609269763921222516992080309498098817796716595798819510672419776844265008580176684457847885608137174996590615047248930474211979686045750674910547125109359141340716655890364492787218657962431995939255960313107105366447229205229975455701188482200434190574635925119872488741828507688896834988755878175702669240622417146199267309923584695990770361952255311394942834867287278877581171537739522803413184305515853496418243945495426258534707845550269377375049404999935963531011906751092509344431996209782307326808306617960646139294658146221765189184530590541707109167816623247483567843563759970419667213454881005388462997748405904117659879899319986228508095745002678210422040316406237518072645559220773287389028148321710371465944002235899725000943226323859691415920254360544215512846772135729147198074891276484041910853698126776713808863035228692953989310546885039006659576945211311943318840561600948078160015529429352059122905535789056129025193524869141272539820629362779005615347330309749810754716649940581752428090498843361020235251546104651399785319315494040540461680931869905110444775913252037583221381757437508922084707259962786046331126124731065942879351364155156560690234905293026586877473517867697077551051622321306246314904143027710967081905904766906035062745266739471388849219245845146895305985993235923141503283899263603056253554932253674105867124106733918127563095842224114457506415070246669228869004200508437237846805303103420781510528736735677195472911059251892148198247367502213946236890302588055639189382968783966923511781889320474352129238742519191151081448097049310240739683258993268567005297480664441767912971396096452571842400106902865660549017903798535756469923055514736393252626067518084929055651659240229544770901699575395999303214750415973105415170348889364526242103573533346804976317143923883134226020681055895718634683877157626323690890906272075305530707423023050602321353834318821801963773588291771418937757810802808004441070241009531073874976451067842160598230009742194250339718989766265372574259857151939668226022160240749850474076799906482845215663451663408526961528205809090956663621303744259887898024455748297408594506624923206122120633044871767381600156799483708280874343963613948515683990627800185399508796754784594162586929147622148255236520246888856534909065758678500250970206634491249229217154680227291926160008937027222017100693485787784400871093338542679368283416231530381291064347966051426389809296647410675783266408730438960978130593885332578520463328215241494392144230217793801058731338091885783265635876913496679487906296744304058881572412410436847537584458555388827527806804524655964887615102963853218994575024074935306003120927515274890994938708013208781587086560262121027293100225037141299418799208635855955768733925243213454105766134393102939637413352257433208006047563881878199293167076171685649435648965935868212359976063984525604386908858069858168719932887906126146353996215603887965870944197191340258509725369134342883815731512549848497064554852284077646281442654608850981562245471863339507536562392460163854283332365435216421029173029621806546689200567528744011868987551701787454101452860505338912363555709088043195676838972619608790919552467086874671831049842031212481207615824754225810891696050599225643389832103256591878666181069546295092873556857639148902049020903945932251473308755350363101297565994868843965114488577919481388475066317538505162506978709905860665579778178716567894164715817952989562857087445318273449372959880629407658499368085345501831727467269695865136467560719442866221333363396369327631810844009252047084809383786710923483503891639492891095671680611117373620923995642551579879849589566838330276185873603228097048522280392256557422441412457768216006941236275164338586526450278613540504454677120665500828602470848096767910234336508723496606492312317177110847213734565682240442882842491744783950820446857372287437522476243198631358734176679880796135855458790074076521085730597883941298818435648771326747228058435893253299347622727462353262926296005106291761988059825315486574266573521163881528904172657043592078664867174999557069924820561405910005144296107218160778557065379021393983907481409195007517700048999090045102175916405652778638973143660497094429541410806285229812907190508079479169437495286458788196942225544814851667538851489243413146573271841508993469343922247448888695226704760851637259138519431070191792761084738366741483989204322283633678378693578020438742957162866395992187047278259780628910134869078726294493271433694950224365764187645052474889598369908935738566909799251126655914560894591433346756821951587075108215719732674567791812405979524650737341988861462258686512643202439241379626330900805374088767708512227736154210022348129921064937613667148199750906368658080889267351920299512574007598678485786435736778816670001265518274977195153454733881795157716728807445382276366649484831140305089234222400960195023063136444956393787877345161050981883845959091015660354631289713177292251643144871122639705660149713684170641663237995727934031757900242803603316415381364070324199716028189435153522547135054419486375417686196511193545175381852696389297041897693177871558024348032244963113648934743930053895808893691448715678489992993961693160884846704921965825807967307530922673393655686974032241781244372289680787969840685804573975080962489683566650725104673116364768953470528392938108822637534254253020330058974895892376912703561181138910811202187304077221399569500398075607569199466580128146309587523181209450635150365905827420793521703581483667144586696479205048514627311031595813650526161667622558393112012806061409409331740474818327754325695863076765712624825402766252978950285449879226054638422500876442488135051764241274236308600529168870781042923437160316931286105011928024742321830521325515851470997395824106144645903949442198538950094271041006279981484421237933812004199423716635749190043382036230065235937488382044234738905648647024686130900183303019391338056431027979196947177129205341632902980119839218190804616458899233922546992052301304903203908849731368475802981954638389658940520336993901677421786997831982402923464242199809426834015538401856827868745531429341282776733439986497637928398202489845199618247389568420984922946289118783435520503201664064072429781470068815366924778125801978560326163910684395805315910854391587169197155457319256519749484117085016336049535234457627097072454934984705144514117274436852191996138332629529491744975052011963841230109848927443268314248864229090652144138042972432354119886647711369881174475619849526134596539783341484312841680897329782081542427259573065378304304841393614724814602659996178037229132348494141230275122660327401178019868702640149621823141354862079864865250272985309405186515594042553993358615202675582010708366296412687934485342758165274326843075234326531272423507996767577263978081245084467561261137764114107589210547720027478585427459876863814525594467841216496649220693923647589172722282694398130271364773772288070311619645380462276162737123897238551469175588124827495049913522007732025851926089316030814402013262883866649484886781732820784010639236290196968914732246342322281033233139566671551646646223151563555474461551934727085995255312074707662551624920520436529227171215061273233791722619703828280760548280148748947982310199526367490469166392122503852765117828684087477890580551734669621217637138427652872433318889005009077593864491432591206959092937361865667827297931628781120756569696663600945445632162640071917996685623510766736436510727504286097508363887707434490459517956475564326767387392882326459596283384771603697327932351902424883998229127401960072483226819874218210774177349233117187097638283026845831039302206479726842006882132454044402796845866353818408611061953100607027147687306195810118827868444120151310056211388926494564104080899487075606937952631332271001676068163772431683307632091521042601360833863795923233515572049282439516786230104230680440156374168632169034463464569160343213100663153850468137488844326993531250145706083046134478410234914089355616408080190064207400967188211282469964451422072377072638959435244109859110523161700150244954371513470114120267634903667911652164559285401662421384881665806196084979646911881880473390762809112678731459855536730976310276478568894587759535654244823263333822567102647710355271387961745465368284539947238075507658994003721765886893459980874992273645217668282510832377130261170497983497444852117216621967719144444366376130187237438989217951260844596514026233286471390677874771924942608307146849168155105681167130042443512859982886120121633979072522026826616564398541080449248167838628487590616219881112038573079362899800696369566641531428518863571472807776428101273147753660548404866192382800619334203740925242053229988137308566467029353248100296718150790927232618171080343904571332127661592373112366435379338722127808133240838614002432783466522307851986161396887236091420077794106525100625611105377541252620282814416122314505755724949228657013572664264832340078368404309656291196619870433950890716973612478821211479139290489538709024122593552639233285543281657139211069955873629428371163902641333794793445766295844677930076682956769867133721485198414574522217887600909368588726854956010647303377387599543330782919956709394851429974826635248133028174296758434277223739910918177260436286466142702511191897840550121871669646012012669144942752297702290896593776989070678902899036436751913078447588310099365159458657664730386706995498882615888885653182702972645615918164715129818136613787769497284004510728750791606757803975096260548910562948994859373336182650885557259064416910668281361567124293689646770724716613908530393282160383899218164671615065218711485232145311273085282796518016572994050179429450002191874954615651036026769376166685830274204457089750699358589759158878628393820605098011680130712962090763428687002293691727228774581683048973684680070021013016135494373679113890690613968341327142617163533641732085723870285861502747509631314896254270103779457069781998319848732746754049329193547677774039813436209405276255093959971106735760701522552900334643832405669517628576902512172820907919094437623936764238173400179902032021101211485782571309439308580228857892425926579547547019337844364561530647069589845263286878537815188171526687939276538597858284173017905213783429858057018908465428373239109424721574681559861194161855037132233505338643044810758816485127588570172016012350767153830428340907498062315854315810867227974003246582694213003242547943997151225538697810129693217536765874966603264370788415824303941220657768921025936879492276597580587523279454356152739417369138254781734971917357837300832254131404338520533407237702500592714712444593249026991191141731674933635759882399132590347770316619278036005418154756047038349389191574308085652298954701045366734553872254116902700640359753146756333059602803554258468740314237845206507404611712040761647656731220186444304992776890075507587720735523886311235822255364413131490676781912699857904723585097972028240035848345560545771284324337148856148495007996505645855383266937459569730384528158769111677889322136795779873487669389304137677691397520521133087007173756832299788402558553941557233235315981328115312418990705396705452224986373331533924693354726838470390677431986636492016837105612996553256673592466726837065610491254906906371932898571709410077906927169549882111721248563553614237140205829803964241399640397871826775040802126646491723248900305702558218866432922326447936169005679164666902127491137606984423581553507031532289667203619844328068995785180230133618357992066762406215705268619084943443030482207506085613796219609564338601297582758321343614240608759276206683475446842880395836926138742034471659093088500496074771498856362725560475470177166091353753921349659563926604891968918906879765570037887424983426216305084405409001000709639629719321312643582001103746374686899370942192264642854047082313092697234606565561188692015993637718055839266886579481718577254181352387660614343130926239120349223363203010717017391548390228004881735250699173536412062073720663753792533031287683780640711337847663205851408656313204513125060311797094122428458318771215185869624280490492581451755968908834697520063025769434936487766781324935898575613374420652122794197225815224830470361708421094632302172125616066488277273524651809175374955842282521556664139919543981701410873171195056841085597902802693683944559558874135851235238396609198756497209607195054344343849794967386879411915888372186443618902893995785123459212431762107512303583323070589654325293735226647778355233737471407519204351032825352629009048491997960925827869010965449401378650510878702470809754556239096284050434440714103020450638842417206856503307513889504675579571649186549506974120046757985709609281064533532979556954075396464977249129032329306522902471365382118484106864202036106872664098666663376020938497437983457478989410386840040452394094048776656643077017777701071438662448609887937373731585097718519891131864198851070178013799938583940356525722059080913448038771691436955140478420561500582966424891157853037643545816643900451703876291593150841629453547244733333265474356174895509020317522845932700412872693894168150966276072584547332146927847745012595319006014892824494921166588658618844998223461944003504372911072340345296650964524988912038827928774375111767907994050222813588737468415846318611828551200205278406945962575757358112955656779480131513550762170516380047217616513546460283361906624388404427185876500501501387800307140849609833916532333932286058411480260670006578393884142096168276693111067619944291615138375584932565903020048403603677567247241678990969141195054019546498044660375069910800904635358235403177344200823202847083465734109114706435697200581781837793123141797981802715402693941179376704114195213438760738011065378159790848282241644710792764758270636090309958149170588929996391082353931132526732725068251011928352975740833234922346289668727743283251664498840796397583937160272047018290423517542204497787652846356765936767272156221366869735199484694130719823915540333818279255344078556705597884966983972852920227005585623301572372080178976942236413030419925790660394184100423362089928798973768049760713311904656715976487728857723444774592439747388741057773003631151056670587896606185635961204793077940722097859264643341478995861839833456390102236229844467551410978957781718330184265624462766765078330785789780463632530795867149650495939120313437170161677338794520765850203490875580346739404660948758531622562519063604661520741504062482539818116317463997481121889372144512524007853405747277220005294103393221267490169983211445404583384054706414145327375254633741735588421478302339259677890583766039615164702334858238446958543771317658079667541277955312136664532399517204155162741181311275118200576541995100675079152434978522969446281629404084600224978441142111880361932259654252323971025823336272088311253554258125849935854367613765903969705649827224214518319556258777924965979557164039038396181593729754029252942552796632523452421530397729990967328828105994252564140321873582818694889782205200396572701943741932399121800448514796972739064747762659973593440834636136543740306835538152043298217151426612939821133289122358649388986468043336370062935705185390177544653462808571160461964624494954199029372108399740447438694865995342613297723602840339060313028507010555972576945134431027915059083495204244970833058294326169114161380621513773529261736189159201027983549282145010088836938634021609714379289733423584553107055135338330973289756294458722729635632735578031905073716267476540876801534504194089786504951760698570506865975984135557172534409183176369060687969898546137950544993800525699248718911171628566602552455275168165213209982321870617631852885852401829852365762650098979568837049941161110824356776910544904625877431550596056435319247728379340648995396540673949604011732749366502402515906260306193206078214879240631844625432500077116258094982783029779661272801454358983151871386939949363198037387545693894024475280354910546354348041373838107056541342769580957339216404105088728005374125184535127741301247574163472925051687375427524850564141958865493605256139050759149089123104156703871990850692302914384429668018597629400535537408872991727080397420996133653754881747775491597652657111205653595322657740571555102045010441714985733988398279528149758444288354698763441125777641039812990723951073035806369036560770383323983355287025339210943329331751272094153155503610477857277525875208841763587473466932097731339898949459410011432764313060019905055325921811867752837160761110728227655318651774270693023911692109138244109121841058063627947106400713590683057284902480129125460113949852463113337851818772867230492167718576272204947120345827941128612780178872619770849590829208136491108850389197746921999501518823521482938681928561062320031604784555251832977344978694123168862720373938369055772008634153295954838415820667587994521914753724569369214118546977595742776992259334816464027198068293158347130752360696836854213426382963724767589097231985539877507478730844760229615657118053771289407900658944002673915082057322031124195465930404215225865933638935558298656896191343022573885480489519366084532581603907336026962726402915636104566163338192875825748340781545263844122408099169254787042455139242345759787537547105476876001927184063882166527870604548158243638062874085459583616732243173183225839963621266029873692188835450644426230523079299936149123748697681085968177921563974002222632845250488709349304389602677447416061862075343124162780603013725338497103825346397469253736953906457217267898580935821307806158929635956449537479505611201383997421510283736588619154660464910708819228097796846876915368523756754357497698051161175043141307242312883965122092982878252118432424782053153768162042200198471185151087691987896570830641977186039831521574716953617987277267454987075536285203035106638590282188549620004691485877634882081044755334418768656456871706933099086289917794758171325221072364223519955025786271894862412543660487707414876522676147425912152035514724919010022602237792172713340265965075923431673339911541119142154660853782861200906069405426971880309316594365079391222356545775749709347833525307884633398817246376777893567970348796406243295237674415679745040477472371369396817611761356790831182556390766599239748443484260991774319219574158529187514864356826017721036645621328963759025100084662262075894963303261775403619526633112279184914083026132137263029554983858108704180565891169758415554663445153447543823748622437116139008735193368109685647740106259049726218890072626086334039748253067279930548364237835809180012718942331642793957266654846536652993195281082001020236047853163831043674360860801723270059509741653172067005500823129467004535125580000116505566657061826303286063758208298487618167715602359105468000969718863029152257659527939328674512614062029001534541439879651025994437081677506114977898331600168788777038331164615310747450307942372556773299028926642397950354654727775045987431275040914122350970727462291817761516693638800496935630746414686801023427360702384632280415143358810670041511273430005627829085666463885618811011272046755993366369645943750605278965295496093547407410126391367576151411866182687221445370604758872701236366369992544352861296344938653624837451674657825571805494385625108656372293851582602785821902392816052478007934570105614569429544121874362328125668930689597391321971855381433416540316015344414017444301388229224812255137657907002467699052648085325300132235633899364793487848550240159792346465589215308406058942292211847877838022339126871325179977855917594211899923156641070872123295696488233982981154705672625020347695980989230901063900825120589778641972320135500923530275064794158512348409556369467673992052168429827884064469308911233382860075746105040975803841161029788053435246929997661571916739675181984219753190379381749562168397100864485112427823737239713369835419501828962786265354485626091866336248385520525103720690753122079428034414435226661664912387183539494237936945335314681162347178099707745524257507507078985885578125116571316511221849643818858720572301511183059520814569317949410545823084425052991767153513106992964494329956922905083582124349791248309305307696933534399783516576897335997551357677579634020477117491179015790799121429139024772606002671819080950804382608989052551304845565900553121949428894881686431699027658910866506506626893418009708699228979246789918429407736650597731992413535414347172784840017205626172353247575588016125813144856955212474774778554068844106014009976114785151178561654963196275608508579648966327585372128285678100297244783699652094231299952537576973231091271206214164747530109204768925124417905156912692090092049650241969439986477346432523268865068015550064529261311158364729484045202450601664275146299544361868400770380807250674707887847976926088198849711534294286148389604265127587870400434268921226413360080810144730765735828863889804844320230289993696286878822197301977225586050274462341184585447709742453903157832815499634646222408433288027406580112653133474571248199100701641833501837001207537780667442026770591220880352441264321793343986868768223006749082551635798457958957073525865022084269900148178716994073362037384622471145262252025038498439659609677845121754119222181501044135257500776373051659254359290432901710239183611399889513199637392205500239955798158194749122724722901135964095015735441079440789768480679591217416206745136689949111700432319072124078899615524896987660065495101661470059276777131209790585273687310308457041970716926971136086361656994591189069585503249991590127468493313041086539742860029358714332500279926667029685009509209092052170844176500710995973258295649730451558573408950774011570835228248604397409872456173302601501953666229818674996130624329556335307572706882712095093378637311887208231579102916472646038981460053864370192126323224417957650693584019279138844770584141319339345029024128527157405942567733089930246140102589906813551683560056735318974176181741625633425559455657069364318167867058926135112410865727136989599893452588605972158758087338878700312538556456655505481786767225435031038305219390645843182708275474740495446173893274184699712295628837881639965609539330712277478708361179589029248570839791920789009211874228961229195077238933068839866306098553551851894137682431407352314975693512568237464911484941011408711931214908311188475135505673745484800469257549562092775094709776279615402818838815756915017339611182773172163069310263424405122174797881033738704045033066372763343644520041005444843757091895551914605450280733735163958910316105360498111113407009694718845750050728759607650766540180156002531948213013573551626752575247231137637780978705605671659628188426530860516527333122943486946514217339832398274740806781552354161062726404454764598528573316267975208538898169758594262171340011499308236534151245985340108606751137733963784829857720466273618330176818130948844055160896086977607306383534616979645432011788731219741237599721896571196089316738618946581718634890608043822956266993236006374793757075971918893798766126990783726922995575438651586247550810204847412303069049897124982571880317759399036935720305512546976901532587896379884885526488486235758999778928948293689903389192845372426824841177125530267074600769799025934623318521412298284735825797633907027898338552049241487826563975567029307960454705267942976916031683306124767293513392229535043195293031203708136988375743637775360500686392841717396573340275504908146758203055282308815953961144841369041054736899849626593134911714456382734016331906866183759063005270644995356262515855927731943969187314644051819301824007371988862351314556691465192595305795028204927477829969132057136689383705668563800856505275947724972964317496260822054157667514640053183621822997355597655573709786446104124430058576235812260685773075398759169680820109752481535620689313104411191124365398637320910153807529849792841871810681578768370096718835403696082662457498558317387194147903966119752751513209434611136275829107000906641540318267433790815843560984865298845233744970557330001964015207169064164734030993487816452119984768176295202485022088398580274038741418139752215804334544666622779929825216106104360994310724714655772170236610616902746064515944298805722841081392580593200612272382041467114718522063732297113710148778699594710430211801782473862037678478800146684862999606728318420929604365604775697335468329133822017790215183970128007516024849398011327252647951649810162701263561877616689114623398370249210902953668268298538533556516250144876059618646071106246009536488015027316785074198244288057371463599252569666626074701062925688159658537343193862087481439379891172402355297447689240424303131944298285483393962901743660837315540586481496659495898094312549704182976833333427919400778395707618203204579649357711394730680728068434230909434569930547777660011536210450502992913323133205444197930943704416803577004705293031501535243692572670549353218800526971126794242969833036057641976727832542938153206771857065294249428283517235193679658410557132899410166998031808977926590227557476240885775079013601283839721680892028769948184673362151085203262067920644011021320449641629122396699595937349411129331783803426968972395804281172180892444294282829377560461561447550051192537741408368570867037558810073199267194150209673860607114159821085445244888731679649495434180029349617584472962283939753913751586679087619322126513242346299269913771466794908253010028662882254152930942514364605730055982524397439473645268801947152318946015799314131737712636260256989030152485060739653834777470135442511203480410808436643123425028368240341235099340161325015316885520872749556066125451576915692861000287250577247205945692306847195630308613771510110157466915009322129452801687248634795926835827463515546115926982254995279363461742696466977702787542102007944965473244596836768632366572951772110407257562243850954357949393572924163523875203001843959088559572535719512456512690000034085818824140763341175665305215732933050710614884691746055379902932898464562367591458833013947272616042424938606315294631716986757220817800048039044974806454814957190566300633803804401037121253048482422546926927989166367602077502876330178486747724929673525827693164050177477315239249649201489747128799150534882639584754436243008073154602393575478971651942189917764800746717505118207186528008745949357786642380584304132656086500143808312151743943811554714551413396650826651889597540448326631630544934410461813391758361795982825921502251120325565348375419504874881183587488700419006122745175781745575428131029277609797611186927167741658921208859414807738798261333087532569386853178272819871403993008123983815354526314477989385031295861487480669622812570587215532842257210974243849091007328881579711963287506982978046948754153732203762084488675896381971308275517614229873910953758200995556534074695141091235428605096713046446846512372214039889884580764031160957330797587010067956143738247442901574770641878986667865854540216488622785709753497084099133176639817892055463663906483740502083790031936555393939648687523009204995253455413840529321178350176515313488019089134555230496033351930607416169901060594349923362941244589809981923412870298150754382143010053554704274440654960854689990318719370908239060850577779441172555372895797382579974858960054043660325822778667179964316250482296957210436575914348619759066751438867779280367054552535892213562401601238050752733124945210675331237466526838135066265538234210396934104889228700845500135744512439026108480616843578267051478012676029218943331618647853607279590649003660997833323747098963766233670636836159713257365457402376800135265425745176266790548498891477937657670280583958945522960166425121947284469374043674309695660080559843948019306087759294744808169211559564961186902125235117944490279380662451699698218545159895680814980591715531289470259801702645061297587647566878971134649450098123600552537156358933391778722907592648552662173738146684742483588505812409212039911802058428766817987346053960338317180962192305533841303303188338523585429222108072848340363063522927163662686150506079108988831935363760650436212469302129313150265569894660730708374359707338861758643174350996698929126901044173820913902513113021359262196446216489243213096406346796905857593788063158836879388975660065935432097910027131373755506032896580892195329932553149837890031418572728470033274300523951472080148139430115902361954507783093335919922035562719010476384377601171479126789551471396974376098520869990696214260015533384530990834412747174855228473955108236113448744770895349132380992143257743912929673089159352558090632918604511174569802380440470617980132728165813918974392088177040054331318095335320015436749671805940587120015782852622943203188323671135041498215531920931167015863160134618325875982455955996107346833195147068445583521010483078975972461115504652395478859568690548298805280317393003540743862384218135124251908348831894617895946449205342171900975152536424114265890079787683716202185672466652850423977039577438701280286147670901207151562958957633625519726819355573207995740275411097184724603752703542209991073660425877729999365331063480405877490317996787619578461938831158122883457908262505340472800146441106867207519132337732393491145855351612440742690792955660464964401899726745744316135431999698317424812785383462700278559832030499868859955214774113625046000323549305344958811911343315425523132902901749488335090199324547985162877480283595677968712184864736443736245713072928493263472884187168739840196035041007483314785237821571449209067976266478615366487518965628064238365862685582993161245889238228611623053381427575915254783660892868630821447901777692266263082522047774915227590086315217538316310930809139299014233021229230336819529508578813681841020699499937135856997429574509298698925096226772099083988129346574869885879297368432584037647548297576738882987416379132302492183147515400242108495981412663730552379408445534406364997938584711690018271130255681639418477232908984026027528304276590060173929333496350684290707148237430478573978919632340656282506451314994706855268381975902176067977042053951697178056004501205377793202927435167555250787788924227303200157616839239129194926357527732603804790527130230465062004854876223346740887747338293996751945232167704346254829037541317903960908141848601546562801403253628367348884456753076220397949449051945625974339873545651016456742494101712416847786830294819528810967257186118305823167300484617637137571795151245119946486040367701500220973466789036509539699563180696769990776406245567288768119697133910011863233032725290200543867917236266601140021989503366737575813083417636601372766877815804979110946849409563997986958725284900415694738849772285416911850212774016063348576548389168988559755732671793895725448942168585685387907494046796967449459334148100638836708513801178805192199045623210688299241603175538385617309601334133548313540552101396253268773019046805370343510318488914720458322584816852755919408125586828517134115520220936792978414434013076229081813830026525244734950687067512556557846581472292672338470683554123660085233788964611681489586036475271586289349922516087436598796486343381004341594552174174742845574521923012859626370357505748541569043318477453498613997843803086144059102210623284415709588335050116475920867665204088559410927898013707353869629216327707704990750997129632455132147343563983662269331197590001999808910797190953518186477577246154683855642329588634982562797074500279308879371539320580422250511883466077150338260729949119311725412867372091174799430294154723777281828840220911081252064769019095205974998757655883235329745590158388277741079271499376289539920738596102294970280698930652534091878740529431493636709542624732805706761558073357569687521766993947209103736015141677626589403175274324523259201371729140478828592433572560203570213116250259532921520987865991873399425157214281622912925632795212245609821429580279658965891376748485495013739327480959050706320053128578310243217232138159607246149805996827184848572533587595831488416833106181944286960421585826769387307607101995422763232162588049327310766709213920428463866544989496647239016018644807088503712138847505485199235200660897112183281818039614585348960691522934352668723657375256751163496927113558578640748079233182148199425261867705346505916046197046576890012951274557186126300653107506021997410966483393749887009137705137389368415699692017109640269823530146141363915579559271991316662843542083069407789628769345931067147503400135780597714984834627671543070782256367965288236991289524271770919229564682552520002571614254308779943852124418473448737578689518591484514565220299987998357057391751464152659712490916258863256747519012104624478908733482574926427897356741538837171781481567352851723922415616020190374757461848270119086555737383129963127204776790833936734128433186223213462314160003956664065573325681120114684641463717196759473321307180934853764698084428721410698762981941659901454959809182335529006851143293937567928320284369853502072285247507722412799630521409455966589435737300295133281499875780320818876871500446569111850146874045374295720676859099488678365439979085208454064007418984236284547690474799523423267350770303711575968925342007951174970548124017935185473836785075473185280223514742578074911910711274718320737742398828652941893560268961697742321071255741382418400656820114430505523051040507009008262653603277367033718734752214064311100291963743390787863924737565736876186701985650466270614115446300520884949698421446365741982197886481627821788595747457487653676437846855501763656320555765048465201236639519646353393637226117577721149816214120191452642777263683048433356076572124409508474331567206207518281475140568896276180527096166456555922348663642089433740683769183012523927697108527286761446269150032363354713429705161626177414762045070429001588125446264419599746389560645771315895636266011243386724057882693080095520238690140026563701415917341818929640165993894593433468743329526976019229846456672349887257572919343880375960632098099496510965648108506414539581294184834362563090787841296533283313062973144754421867304471637521536844860030922012290299244390060189354698814325753517075551104890415849335475343359437372000342498197970411775768866229137742252068487727095818608353675057978001246181475147847374430996590749927047893327532200871552191146535499090702698310966455994532079533932510181796103883814943419751087548162139030983164383876303286496737305936980093048321037115443851229694163759259997117129244334284193400412274998752403516781692749623029692901906545007495988500658782580935837658947467328893704534746279227718242480453564272052129229032542569138220281900487716665661848070623973197367983756394077061422983644323154469268229870080470045121316888630585973377743575221399245286762836828289155590715621306570769762640485115435229553032344372506064279648444894265522748232182140219138445206113720531891970771033327705042870404234495600484385785419322498770244266622364012091181164970792138854309963924444913863010003280450376761439755199799000157587694102579168681101550377336931225427395923366409178039569482114240932417031838644543332565197082838208928102932852981912406020093511575039660523729263915416058865320065607477817333320174598032514441129611739523697138161754295394963166077399529400102756833312399112833858973726064965226914764179462148813388868261366512045521630785297823963988447425672543548928204992465562448686269416457718839275052545908105946138193846661811628440593621543214244543477545602748950689425830056487575161172453872618025984944709499200772364954114302285600765265911478704876064931543092492710926286596931130904303393374933798912067151863989768931487217127803595766541411324067502963971864869698107560079545561198666426285360564259543114639244032354480268167340806979539429360031630324407077125125036896575865962077319294709031765037898015854154948264401222598499106735051878393176285720528192911382114620613842051234340026930591545829833763766347936173155254937918919575942765481141537542440026307698842859667668647477589358818656078794735716373317039971229451103503644202239878215576166212543717248171810750182171992014935326272700658070361185776023259294608185666498534629193758074268042441377594115860562028619501647471796349780777820695480051375560188457901143876224889167246566711577492058551403144232288634941224726639629118385979946704870573896757743892610772794547669543128848393111516167791678952501720320897953872540967860226036196912947604979657249426862779702421963075245871505064446973308974051873524095761576990670789222177512432776666469607112428102731887772849581991337200519526518186483978422033012601263850462337326731161531478994327322715740218764182392033933720168702719853175331252700665344514821921303597329629497456317144800552861532008445475230236950596296386541796777154832412274626501347088059648741960988236067115207933324625009409708186087104309224474838809043279767489601079612912930887380707628881694093548794882617631195404338726517478067583595412814106136558583098639418255576257173901494610736229780609683562901155571335966291632279072262998591332535758316438603893089493246274738128030734239214341934013408825467434745835541248047617369418588118003220674753724255636201218362573989161695609166059274561920551856454939584182896575376691272344417043703437577302845186857534902980785624839124195687593981340662516584713484212295046032016278761391619867927487719604638798596797099198866493024083025412014402699922766638083746748680233217401699288883567264751124179143151820405334247452167562019292482692984847460080150289440048128770359291223455869679552233598881967028065856012036242442819727054658134419674123915642438814748129258395030441553508764260984362649558509665902363745728301452036752536023297228744411580613031105698660216055225722062927634364620720315765370316928520551125195591888712840427843411449691623902827993951489319503176423600471240805134583641568078914178167526663333420532361585413591601062967055956914901761201475249800731267809582003393255914913585041044383325453066883239579976546832192092321300577603969337090478808537207536070264408794348023514581437371447047245379733084473832454160373467221137076739335626041567862731496053684314286895541538180997649054669871825321465988359007705265250171946160679576821337291943501340682955882483814467195953992185558461454093834981303190909310120601500274522897623760485409413924550822763760598717753786965433053421292621275254110412413356402233072613604375347018223789165150225796090756223898279910273486907504047004616603974949534753072609922779981355789107508814555322184183706697463067583510173914398936192636727549520435665211862237663522190935326613053508964033929326018242827775347794684045268619169881973217886609844720382812536722919113310608682743284722932612621025456120077107754460166703552806602815904160152392402272029988136946750377832420038133892762201369010457509514673756557704264458054485728834061405136828487776821180864223036059855359428158093172055955147787739651551857984378228652206818435695461555024401515145211574417766027425516310555119158707957232680548714097017448840880088173257848751467756959186168844222232754866753627646614272013620925392444034634576183321722567361388441224037938087627228865926584947858329494651003902734653902016397734211054966047623450231486604765339087486313619597237574788228545189411335844367052784818857466661027875109648092591078527494968673125078188867258063677552178166465127601169149831861821435106465680703841480847475116125079697494903445645943990066155180236259482543994199479607183617684800695760967307796094488312996156156426838198430061742314550170519911394474159543081311967630065204766649281827029152731266162855980936360723520439331264704150666855744972367529346514297593773167820549071374333817139498221814985550603579010405201592166048167602068826286672012172784254556944422963743117405945480384657044933668944865310823493373746219874567313515365233231635910480545725260787472794520417218544498081315628521083282858336357057741514529898190969721922086135178073622040653222459287134498542090780794596559240538836455374947635647232056024903706503825470585896753380787672412182393661001702273884150562400327946202760199222091117428730392584785138271797571171962524031791182184305969804171058977206533976841249719016230177718571234164035838889313795669505472849753034389350043765984171996712495222084131130802304955715177617413845553290566694875654365857044100011522319928328854733245238728614808212787401412823150007243783868457024718982610186168300156494851880586719020451945815619487822669409143992916893679124269524475072952863312381091543803468841627907740517234816467610731622545538933282064895716493561522259006321788864205385376842770095980091733593804753341913003902783179022533932276826735412562774792009541064009730637148424169742237518770155731220980891749875679137457206984944652658367194340017159667372077980457277093145389966939362731240366822230704094955127041556935061022359879672665931181173998726374257322610366800610573849177360002093666364731767365967571053532508598110840663397650374226040511895990290560615079820374710810941027629135866990432961183001010838416344047484476717479805809320476041202383554139780512826663035088335819903900283698641868529498981059391383140673197777356515510378745667168288856738549738371888023176243196885751904836152366381262199146124994337145221884971013626316422621678672252197272103705562651513990967459693879373637428862647739519449326491044019380945470353898414696327525517292917028902066862638684979728783269815884837400833062816948034947104691940405732220759314608601329359674565939401217254564705704519739707076077597041452797626062841469077576698613118961712959869302833948818938337295898851641884656564626700252235201692769421920705460781699878933500785439853645522010992086923791828065049909238473860832574552621776336493860329434254560903762060548334787529856444047735542559774836053356563081492709356311047924196928925092173702328505706914116538578785152377786424199338583590919707715362694106748300421415457325652201529647865387842382557108415290493921671658524752959503226346751706628747550360395031161561247688182322789503865555576135665073570311637052033864686259310800106382236112189566303271922599301928921604664773841602011493775409910465896517514117524177660163299478144942195390635023357231862871687927236889077706737154243843500829656336027051730043501245590230384139876120251090732529386705121554221831054038925575963581965927857853628925147622451705255776401013139157660782934842056129926127488126142421986668835946013202369183134061299601339642888315725321843547935865526694405759312125498371780488273908808165888348190041859530428322977168101051062856227865999627805659262389429018834934484196553138614687697942724743021762679538286254243918362320428472205613744679209368160024047678007904758576453456927619482153253225415136258133102001723134442383972673477538714521547830726308917171875581986895595333095767736206677240466623027094141663756016793650157915001401260180272151124224223263484273765195683139514929132342786842237240101605474551160763694618696926707638771914660864763865722314282564647007982444727742048082989309809104083053316006402961477836741953877106671023452471071532896362647680901865579800851969152465395209096689383701132423388434679196667008500406530246320215446305696389323140144061842859383329802960761779662999871003303407369452498316074161623756236742682892893802364257350965909112701178859861932971167633093609217263256778924624762997082019565700101025482785511536053778193958123327212510471625412152355926618411098099787090295764072223903336692365950983583401854298384182261716813315806931148216030458718517154760013993411679892973789618826550070074412571086711379961353428296243264987394091182692865625709331775645378837168365457345855100301450948496770744318661000029455888080113186627714256306487797668998098402922689626277777884740807312490301226691227626948678544634131474255644030692499880754332084931797208751108695100004050587278078691561298513261175279689736872679121729137062241269003734306430771115412854191773245395278951000509867953775481637509384766258750860797389899433658220813293896989427597299612609425725185292678624875961342060389560105021474471190756239840451499230018182587755011577916888823726162404441956263600841241836746611061017644155305823838279143552523837857019539061115825553934160289110190492166888735225382414538794085141486606907622905859730256127026715427322961635686023808145388205463606104976876787255319920970734735348050088422477857934598985305661858649729996222671389107365332025184603023675538222205927799256839813875606124899203621177507032160261605811589888811545069858770485354752715351302820215762464778752214937336388184117320124568368891714467864724003617893651103215331720878083075693671622647251477518943567901097231230156278336307179932595827261785557109756350814124283841992818380652750305650545248809939060009257754050287851386930138066270040924942577223246993310765505352779905791185343553691556890106061124519731732860478245467615337125301418360300881358453325568292719349498870078960342040791851958360848921709961427803946902480666012830444835531295170632888257564695870994009118367441565631404349558695228616859508223437459504459877410127365585386068826676934805800616071400234879315164636081457038954473129399490768606371092132346279341403445236934185174594394986121558925714678598653219048516169273634854502947721858183251214848599348325747251298897924020586083962302258531062100775257737435775647506990931852199670894280342870923662856924531225179246189472983012936342929026488119925679490562708310251057279014716135091101935784896306767951569260349289391662577032502762640917099926159187042533923586172050796995002693862206061755014596632208609473681417383224562605700938714309593680843394368369791538797890057180408772146426032513305219502454552446396945344304625652223693221774850455471531241306472228830875186606350207928121128162675683343427708947820553703401518199909918981260109624588824052815287243473804680297033377477511232594396204122167248468917186566326176419261693605153058104429489897320437663717068200505846311767774923224343635567280405320033557383258030191457769839192760763303276679307743692602588577219981188797213694129233586515229097992673150648764805023169964590289476544279461250134237493359901472046124455724865038621011154727753879809820790998650334531395050392060586597670267586271538327722679308441052301049306595300179846880505653614164884278639761257201301033116878270490798165220218605536515311908263319363542345988002640744126406252538429065573036651156955707305638478477996254674814583059690720329626234735940138516278072385285145974314199116499240010955449912756945413297940387230912672107861933340072854865696339757125559276693827708779753790010792342202615902663908917019143980336228581661655078933569976276265372304811913327894448825705320597849832257716565756028378531301569236720903220488757024663687191550704815819200517751753893912469620212099250147663413091882827666085641428823844747894519650814586333980010216477377972798955041283448388020239596527483983416229937352877476992902695967786659880155347378449256126466041733240621924894506871073868759937816397072083160505664406012134591499097521061259434832226655777504418916442003326177058585764095618763778020259909932848554196236819252870872330361058535714457490150410830404260066203567425600106476959677667629247175889454917668025136591390785644352893569213668931335633869288289003057654880621650679260458014707352198327840377289252610041139440839094355950975314348642121490597009269397005217965678627619438034313748841449164485546161774018459024012890924726898478859493343355284060231911215996206675390564262978649863176105002710684132388206736518727763514203181047786708272772948320665379695205016335266233653400041595044789030838268671375473554417242062371069241647853991232812150810386543062899128731970744735534814923774981387885525478048362154637807753440191398595492286884354958206717897420850228282628147810815461275012111195085219231416786991780192225973319537622542095806293603428283809602053861022269759015689481110649236903609453644312078190385429652600439481789920558645781877634231231826781517353993958234697085733307530063303680354402233829798110451942150088072158427398313565634331736768447306553622706580750604183735469651382660849120844849445318833297191876447425572986246423246937327663624956852534411301953778043892023976273770549971716456023880853502603881237871711573353480604066700019678441547204059798351771154279471128550211108212930791259778710544257627845052791499302828430590106026600470947856067618056305324693700767903536642332245696845523465134995796620831691438147130851146732296121260990059061728326741790254977789596223073216506749665835605610044003424724110611896896789102726608099164658307953258001639290687269772599520029543316575817761201804455509623400308467895356272260020035614360539162366250711639607594464053944514477481845018189116903722173296048703943229064868921568021882188750259899680240976445886514745548667361533082595233950478885672665115187831780775718667941234122383926974655751660463706276780119063333888715103119209468322838974901046742904075614258595781099855107834320212307046691789755975204402697745067322242508619519718002280747593883573791269440398558308873825196189432492543203481879101694297426216985767482181617267252883928274344013498276335804077116813268592044498315249409523766846221431610826806322279492143590180533458169962679535111628202790143167493287402989628303219227916603208928321643000695857357174666004359519544030359513908089007677153456500823031332475504552314401651212466194764769072698271391731468219651619646553375333683509371194911718684475400698895796414051286945823785922736116332746444909952264782305808803636227621137210540185783873428183604669304396179994913944148433036231771658060101647804680247020100402643665021182017252091817984968612564802927064175693696339672460396994959274047856855660609157380819101105421466407571316036638451753434761328745123655033916026840663055215358009102762833025214804952526107830260503025910206860864989413014357105363319512950553549996791914877663494395398010204487113130103161188017283587905147340029717103573409085860982609324654045404654440282389809820171530994181975898724665905711549492604838114183492515907304224962232852087175717844143001495019922226311485844445226145739795021464533676728514208510071857300236398848386201226908017735183522750696688488742695360341146240711016522390384675914046657764422112047353606887231135148006586144079453532762385294446495132445157660989512404458857738071522161357110585289693831959985799070562948538870457669376558326911341973763865143569399605623591184121174821390945782425088352847740743622009272724806519438222433649435598332246911703157853289579486740545129728934205795732451032978643179132647150447782561476958619110821897576252798859964382354872517045645896428376993828070410141676427074411470338540131693532820202190833498188577695062610002924376237835061818928800744258295928858975077106759430833939724573506366075849557637379887140899179569824550022269568968705122544245969964693856108095119594204195858067366836100393872289535967100061398136676657897647352858017634348118144091334890025633653476695583511904479403958449294503039561288826112969071067226634430098423411514062204987877723505735493652780193972984973826022070135199972214110839419218666007493218249600485471611214116851923917902015836015367497166015535977525201661506071832299998300180269483517062989665750862411282259270344026773975122826801932703566306837509324075798723214166771718541981907678575221745873536590739615651557729359311506816617121949568441068091222904701023018185886447715277355773575608514434697738041038101177031302389280450790709075694395967106414220159092279825743150725246086777804060028269330158413065355128648720270986052604533867981962702533220940705910399167184885976224745815472621191758110584147074435755205624849507869016678848447637702971610314812589807142133364862173161756483065581395825795535973111255802473580845458904633798849237234621936291563956242209664970260652704042108649121149518592071041238245275586075329333971398235087494420908005223098241393851772416225193846207573798019597208954858085919135912168582863208168005511309123937570343228671773123679832044025610039521519700263225177334495666659876642788874345789196178360073435122243236084992711765723513579233007914929686204166778127036860521255523381233630917311386492588888350744910104142324568366371052270833673881813967900974818760295605509019610741246910269008941011133488882714527027106320777119910592905851417178104624582086804200159411784171112656949636731560986131806866498090330105051609495450175689954434119388857905199673716429748878694088148553244036670222607903487181221756097564402746460886197801117231480408625406162738132244736984254546938085701963229472045777739515169118247345738101751194966214578422738812606727702523759591482759349069000315356841681845312065708694955819960947119599951156141450922323109902418086890576635599063671046611334581962368680860982031192007590106252101371056972213292990590847601454047914203123901346565710830475154869831276810490069669323961374225929617181692685811191743734531688103145886913806206833680767459836235546658072930834272801761081347067100330132249971726975691147861920882319301353166567835937734125737302039191206004591100578021889336851717336995536386997420535835451157044462099161527668448770949188203016888001475189770010001467560426015281816597423393679429293170755613843039394090077832751457373911715097975883673845759033404848461917731976701372613300760674112054476279081564410071258183675549655780837298750836468554348046565110543430724409404557554032139723396958068474173032220164220515376192323161880340097979904745536305747625738505638309013441912152576658085129656195931024062595421412911712632066544901549518759601241601914072016038452625310272567640272880503101134405264335318216949355583214344388637952415168011202520359041318456490470476251302462447972950983302037438797096114683831490514567526507523425000767738003209572823461987087428838199320918707990405306648920535664242509967905775413809472848584357538903216778132369764588966712637234104408322345033331629096075026039349516084400208738722444526609180430342853021088164651673446992463473707786826268701512643425064438202460228801710956654015006874849217792777622436293274432993361573840408237832766101199255687036357070602280075974540838848159457989807565186967115163004843310506688213160915971539028728607288917715265327170839788823474260212705582687536275071058692012266345940328748114217826667099885037605287371998226425565494927580845499995894063829276650018231017034583670446885563188146187077254803513417000248590572832751127510645492686269468749336660852304582753429129109735456931593671773327433464696077843569892726635192886794800551668389479388269665894697256943552564417886726638030866530418302040449995908075114292249259143640591313605632654312224620998260296701987653432623594022744432379279952986666948283055980318694953295751663514694874268144281858190506284157461035365080151711814355894305313412414887566151310582846136383667716106484226563524113898394698086190063920817214425494547180171120179430046443986305444961822730287158436812794747936075784242821129961817326891240941546356835385385898465188217108540678854288025859878868369657359017551100111656899572395569170946809317827452177368142728475177962800138614533003965175341635212936173097218915502306130667505624469492175962682011826472357464776872813258895052372789388018259176271930358941634938902519676273594909963297602815020801024262617084495152722550833184207104566124996348447588171702173152582287184889200945743062638392250121627988137462072026145578068685162118152816776402146975290014281110358843268647895949196704482085542777997534894603772369860695222601515808885476112080063959339032749647821525326966848744975420040873609988365331672936284092745501597301265574160689679079296523128733138392480588935484267724529084502694561131945475047180868024718663166265269203574706368381062682976443533809874594511452099393743813821812614529735459888491886508498489902632628894558619682712478637151557664695137512233357532663441477620380260047993877610453879217413391542993918207027454848708536725001192735354894057898403748537701970887918810633758790264121037998523323094682596495785200363619729821263028416516043239190500219885236400653639221738656870043127831783952388403404876885039086985243646409727431166922788947955029888704459537454561479385876186767874662570526635525641767494334046540769689236925287804483703078178552271248614622518216783750755904329389700011278592809578975134110309245430743714285764843588308543588135481100532198615435494930837519889145985132369462050696212311911937599270318591158352526863680717806392777405262887616751367897159294929967671779754787374604396973504762989780334924103425750334051820633561827734927840895821675516525138312338656673265999018590873225196460781071142816993964118353305343123095304926779647748403999922795149937344608198316953592290363096223176643794692489384866726201227049492616990132838427806003147352387093246178872638111419431808445807148025214842530262623447877597067251551998333720151508917373189295677390137437222866157738110831923354308992557901235966066774587820370298171161551123781301019557749060224855418066023955820133586667654425411262141656848230118343452369218966089520152274870370364794442479434312174952566004131711457673410831941825827755904285114454497903134729874536051224830867463987058683380105652978194285086550872606657489734177476928631983084403456187588919118112853733866073372277352521313884182935535898996983770965911791976009681880090449257097334951737767909510984090568096079293014749157836446604687064856424260345780883980947242427975773204185943901648331486149523207891019807750932376211296702914567075001807878809520016563940087198103312419916189200255211041763064676278209007926342101165766680648723499192797675298126988752637848486154894057424334125283920895198905687287180713871509850035426184164692273194792946974043143615014092074860704881326683721204842288588165987694520956816612357140324408925721668812342304641435674008902793841046899794386632942290517421303851671872335072204711698954676032040941012328683022870889167281193890011726948591776361747672391593638362106351153720225318150897734083692478377424177640753366585786448383006946510104019049000660687505628368516937506576758959304315776519611833698638138826374373376579942158486524809091167839670291693068069020892875615660227350980288055844024125167599027665615594138290267344290822824130114279175349949038061299194757830583344727715523059303298455744418628855298060218434183829583266840942347699863040879220918245642736205761033593797124167765347291829583524408860815278319440365934606030597485582875322911656677973647188926395817874249911992835910364137338161281436338126242043321492673915663809766778714176642973900354852894471381103039694175142317418326291149883647013679797718991824349394335604364906099388508147925625380587706881356963739080112821242663490608689504270838505508687976946790302036009558553246174882558705707122101755301863530577219478051900581569145230388907660105178057258347325395869180752289354682642129089902375837136096190318173402652846915848390428469481591460141478227162891844219720420866794731756719053540547178626633316765397061697363483891995272699300441961447949986010340835932910082191252725527307966653915662194777244845788032365625071352999377267033894035951003675168904664196148953082244543914958365728456215788989242476127061434189421469700405524506999622642997876992414975952196319428589286080245904580703724109969781095876690404841246994204873980179941190236238592099500963987184467766825755943853638166494836362261956423400260895600418237656560668223251530892812275712565966396205302486832682267876229737767490113686559103876336182515356745336250217769042514237135922339634782394184113640514611735701629934161986168506628423854464735565127054023131787351659641349546921230271830493635428343307033950471048952778536416463889365169352852512629501578826482941824276726169479339958272706782270292032712501410976587032912505791371250487892801906910070195512941624748236048354437082459563141913038198386208254338317425893362556884709231702282067267915354428127119966152237447856868444788566297178331388392588342327426311816581299058332298335076491012202630942286654759434447279400943888619114629296730252730547698992476774899270086367700875159989074148852285727768193790417057801429574837556681031675504351951359826828912095159104279061846909933392965625158899852115591507476794346778649603557091935087539657451502843190285876169406863480402366024689415948753170412265910645276952052634067708124935937513551337038456512458237828878521963931060187835123799023181528504210106793906688858242977884381468094962513489408592583468550300480009059358869019918417885765145105630335380486868767378789427022030945714443940010471819088847544871214890831229166097830217145206419836228390707618349863567300608349808877649346484850114377474558783421578818307346361007492139809281161460510961498017969557080638257435019680645824330139651351099101025955068705560817214233110487652767276158981056502438766628011570439775436777848287533072403801527097500327707993388655066963837165431906670416627349912832760982304371399644529415681444648110512784007156034682438979190809735730581053693370528727568557655725584188367233058612726308842522014261041612572482747507733613088151707418715304773037757732132977357840420926157354106547320755010753065662127853475456478457955529007225818431345589849475751098915257305822754038693261502228811509998255112574197294112933661815550209959612003737818380677637522047574338181599651540066636205330989984231539128140904973614471993495762071823165519713804716325158755842489490654146166745101530138845554624428132700363330826413166714348654341028644993151193875236205199028666650785083103140003528641296111895952180123098517757566960143116744528026917729902694160938077121120370158218696113862551985664516238051339369827671098698603464262268569817107377061053919681996433475939843458054981347398212262346664208362746548678846173369214408952036906224231535419478848823975000646569631097500042852601674558369266407965357228983739930524925867549976573618654094861119546558612732490505699236664314464248008165100878255388984571204478318299190928738172054371372902402988354047187943330218507500902973376841591068298989801127590548109557493828186996536277030889624327172765987167018573008808949245633378547368024466967432197841936457859762824822901977249724686351220399569439211949739701456207217836282365966859526218283201230053157568815358493682739640129093394814273266464180722279846739121392987982157686400700669677056272860742060840099886765518579156560903889415591106081517322111614866296111992572710582139288940662473384579061729132484476443980380554615684196921138359395227900857286140239609779680820833455541133154571548654140197075746349193626459146436478267538706990681076478052504531569221190084392526328495295555099524367942112462983598129057034918715098687909160562639398981760150508818393494596293272257054890479263380080163811069778712781988369551264088362264039518453856730299889475858198165573409924750560989334614058247192230182838557068207352622984308721011091699794904491496119335645577587590988663606851819092997450116336428200414947756397540137883404465965243075867107839087008619907048041823621567395339828241863207239432396136271006809354504174019100391069287433509631281734540376661520949015416017820811064448615635612524879932068184196475395420653325661953315185624891535223305352331175796429614397328478029467396255308794072398710848527919735673634865542316812566720055405114802753882652315152486785623284596870810685577858583621619010876879055020432891423131110699530737538421025146192058083605763654935130270340171690995572323105791429011883974362627161258636561164429423017552237217381821462326055022086952368868505379082098029522372427627287067373154952522960058459829637193412792721640779413595270574854954711993379090282102551021687405415353141315703844226992910886910056663972931427044940879643363859201893829580876960556393968356018250761415586699862931973892052456101829870214296490265889511711824815721671070130472925257870196883727967992247186289205936807942770974143081439538689633049698400881958632097204151433543427171733617952020031556995125032930457382898846339296462368103545936122902615866350174621567936770007295807664157231297080328364083493231909333678160569426573208488794551888704538507980870482786745294255521395046679459897210431787381561187278390650499273310528608390093784773773574147785315733846311122435295968200927947538962326518973273599216518598662909512212192446405238431260884288722282110778237608513232274717155910012791356877471995743252884996425875310049355456528888312601822162673776177806934901108104228157692666326999286432676232781503951411316290783237691453383140699776658541832222802662258010693335086754812292634500822654772375459234056779619901788254678117673773581291112192915674033702378523679724444171405476378107150105423283483631438776668093119266499173757983449498423816682254689369572295114182153793176252076533223318228469922629903332271768267270010586506106574677685755290669797117710221725436517329157071643613456085246797653969255343046324486627589322750796733510595192229998499574425482430196054549783610231757034666025765583802922693451445309510827380185667833502140419125264234345739327786529226645028766025986960233414957729113557947463109772953470674135155590036857438446866864308792293616920236096543020469498134673272174902946981462955181544813501020741492412851730807687317159135071630114299895220026186595366892854965089315197263714688853980803846190543703187243746634089138188702321066852930566668378303563069480693264061522013083594848913275370500435475782036720040624769294962796266641495075933825424791119453625311015806838273378990067939718103166200170729120390519734965301711662000273888057507529598205319997030633899868040053140290044239645023343964757957717161719601767947657434578055399620908251279908167485786160599557475401313870452956271838617691387063598420007942429719965884010059227048561284730442404344373847166666878886349115130897171795840487936147662589588062542104510891466571578442060956159634527429688490560387453448308249886965511643957706632771157464948905285541986651650905579424782640307877940546624035143423532902916035069600187848783100171688944844687829477168938915174467612905252919407102085605843553423165244892044133851450565922049008762698174330211011498650633599872186812255068985596868386719569749522252634531000388741012035265537296542736411938216051214218924850464118317546929581386320397028682840509406624665443568175700088137356168878508634058984291593872478753111641474160676394193796897297503633353863435890695369128462653988073732312685144046290668257874777820686823359773950792670860120364380165833606000027922499378203282346671072709790853525486533809134469173955030884242030117551365070799796673147639720074432131011031645894967717612848716510537240951853196964744109489687358856320256485754559629590984595886869979065639129560057986788066155775815110776893809507729104702661445461881944663992834764804698543661716438922198823532862565051241243948527675526939535023880646115838016917572435020360111357336149809590960851842790487845759107524758353422538965231633964241688183321617244891172888907994988826811212171454031513168076875502459798767907915161247073347559225293980406126924655937640662895509931166156688296950980119373898404632097097690401452477203751501452514304006022506731118710926342715161574618823944553606800499255890996669861468340279163257345421479100163344476297460984714402437158205732646854118917029785029152662483123196371759545336659897071002685165621836780952683980996490447687075050829782264570394275312810819830549093073785428756141179677380918894214200690381615857286973230847669116608984066044801102808156154244327177677483448794828372975261674516366221935245939001161212242109817771220268185958233426037963585679304329835133164763249179941623415743013256824367647636862491109838749030462822050979227939164602312819069828131359610164305424911831959211810664633380035330751183397504100101283665945767206787196065122390659054203316989274682931598426161478447115138108995367352520773640695322504853755095538784017015627398458442755377567737694031012110107119209654390655781671149313627639380208534445974542469443360909911515465054603973844270272450220068521024955671888875511779379638053596112292394124401627372069644085770304844119198149058782696699671648182537483358524833367436003319775577543553388278691263636723515207766439814625250878526194238999143392799222613708912563453785162443123390595055714800444186455560795020492897239182813186393481808353969135720597604968298913531373757287626658725437168294903692021378244608709644506520732096686721402240424310147523607754577204211689899001839322832783473128399840009584883379519496605089776930910065248951404735596914580424347972763596743692269065450618456989174252604346405447581075146401847272340932830997175357822432007980921860231583893334592896355634163460082198248539918879609609875647509821506865927637230061192037795493019355780070170474621493810229656798381421412416332849463254123871043168801725693661105916578639416021400567030466816992599639064791637585096060254836466823508370751212945433316065705415832286782121899475526673174628359660058101225503318576137752263185258286094306129349156417128475819910836270134090739772501498077784155693438563487136831443865481427132822969734932256239105431558691476027190424143122115916824611502290561451110150944198190970747264854874748770371002434045113733110525264475358477050088018662072634349324634631512351281236857814096663190732542899310861589648808881731229821581403819792575166464146825810060563330705911381870988688840939876186132031357952501937279581491800303430370169650390639050466755007838425241832376375237148874091832795108634442802377827898447386231721376693014808047134857632252277711416162958400486098782204155117661665240032999912141789202955977640603516630576155445650665453474926397906552699673331934599543915696370930659372028843635304006983069660639829840743032974808241389617933475951383291277892977966648125459041997065793030239314660910315181744979496948006897777263242764334242233589601298617962324731360679980671719913364812025544524712282809482092439228382447062210864356302915107184158019472822036208559973811621524558612308602035157797527761675726753730611734668609327237059032872554553261357932684815298648897560318558270287460239419836528401907313573722753472022562595222325383686349906219788037305290174652489698461902938677808290036756149862263167521358712429944536532152474250008228400926986769534484475955498165238382826128371518312451591076360466302165364374111202642344197934524310229509578494829729707974550076628864078232240732201111814250377154936705861485691737050436235603360383027609146985509575215576986451510492722331292248352252146257174248604952643612863025142215241769917315994071124882794941498229101101531554600611840408943705692203007422926639271232746970390447536703461694641393058500073168509592592465265207101660616209067967430177911768087980768287493342026740558298236602835392316915761978093346872847904174187590195009616592819199847363698431388569064717133520127926309229090548636898366503059968578699621688388401632642713976331696759990722484412636072236134683817084662479582292704091532288288566322020530383333607955579521701723380391278964302021545798649733403418995336003593079439194941583431490883730684052985697915628909874827756334450022143497445313023325988793455936793703093759969134972338165727267760551498909858739900124242603200117517421496477440388700706442844887203159112938798581328682832685538567723143699502498674027891183968842880805142385730654452968075452232463269432727420473530468988740021295144512591861187026960608509430608533877796157754570208594106102855697405544183838413623222012236320027534058173487591334419379432115298296514296768834619182735494027598067114987397086846297357189358286155437868162444544584908676081546178432096847223866782803044078970306575675147923065671180506075959118317834523339396901994375871123469422038635268689917035126851989063404106923191333463378883835535627256782854982156446680408103951450648120798640462804252392439899914043152617024359849827005223926111472811172868737544796183145642049757265544096277684926048180213071392990318868621534242414973352034086781846569235972111448659547921697643018173058086429648354475570813971892456229898862417655754344705554913712960283563958267796205025338981839420941104796727559771489327729288764831501589204381800163133291570137926663066140958282218154436871166509209918576834388248801163673619204159882101709429394748693928446816915601099433160435422882930737350224018437903588694001358915949695691537807024612435674245020513701183890012439109421482124604544603676006390424101308325258214281408488742537122143731099422233009555676377482880021749296987066883891461372968744719971458893081010077436258831507150974981309147599087810332129378039766567288939337553766653780792498802568889603860013496720327300633403466947101211677523978141656742655819968162191365669649793101923639476664456399198937011100878076639438740433096440028492108592764866158823637097896887985795891977372986729633826225616544072384394842586419756722626473555100948884001877831187578184976612725049904382687546206812462462009596548666993830796865279310564134507279807758958619149869163432559861037096822627188633430487293091268587002370212378284915428760949412470561069700899230863058586600823782392665211704686430793752249991702897938224921815637762655853990436343011891125606772288182679536076510500847912850739554898168117908972517441635651004613298752773615074088245126186823069088445315754485011024840073106874173928842777303627078924749251620506425377149135330079804577213439061585613355426337740715151336328038007508709377403148673878440433165852519242520176557850382460270569436021237383116492875441129743099794598056213794812224821617598469290283872823965732157926972974880062319279764491615292753415437713601859640694621694319774385599929355176568038201189938941875314557598468424393285237080786037259842083983445895491484394173337321533854400484303571269632546389803306249966532466489410052434401710127038437973366837943449448168415739408222523743183244953376258362067455415501790848214076362959204890429002073698070121134685834336511110939316551342419915550859985729830773808729701683819929284892484647857052457434826150053261562884718703144041517849743358436816835558248520730325722553975840877409747861573871943991413833149299557589806777112241110187222928484550624626463054827384063589282918779961591155282927482402949210402488808124793655250700231693026325673670782060576585256589448279784702631885974371990914231864603804143549148438648671515288217940181806870910775350547309181367145170986274800054087787794337746016637341084019277893785036025422359909253289517691673632254798246407953859055071871241605389718986460911855479792486006306424202370998000596414342045580869092592590140835474641747047188324586197871144364704058564370095567391113609671861521272326544785178819786146847834682848797861884268259187430259138908627135805809617896610775674519799010002468505717768286176460374906445707085614014381947780273426554181850482034257861778070342705192030201476017324025847749337139624301232792639692257522051161151003095729481835026536668667821722038276755972230087561952714714280747374298318480686461384249037195568614500706407283581310500025387864735497871239083211189036756636066699658695250861251752484982452047226907510926912614070687201538194535738399866005873956682308939569490890477493186222291933520694934905262583272465536939469751140402258238658100363478307573650438702431686474870797282539754480101813827427840166918239180094438288615020855269212607112267774344481886796148984959355921750346136377431275592029920192317748143762447427155088968267565353079502670445760016947061855109706988998674524096606941022119206143271944051947108160375136995870650860355049590590828501210566554484911482503063433527711694580920233408288653756158695592462444688748296301770156474709248208423473792063947862626339639813407555946037985507536545599945858026109927320614241380263912073272821930526014516605433605062384550595306038371135226799518784991492693808547829017279104229563838565252536670945199942261838374912294606612107264895248313214182299637805696766901737121630306340452593020970052740984524402827282766653788414075859836746984689947012454761193380606471156481222238303533073810042240306537219837831494927555312389131436876343503112864289297496714568963477706166648958506321834031175502426484291781384493716526555255643013113109368143435410007063289693062537535879191586308081317719778037535130728261699570219673138297346157400022929052504383767664544889059050869938650119781611881399479168883758837785632238273956858176660443259859162004029393835687255468751659023430013026395275740309753282030709484490326633869485017770168767905235753223059081751510085164199514578523027278570013437763223824816118949934922336103992617027490270639910405422770220456588739300259371974881651681266978240757391961488025492393915687085674480077685176142107353909279887735100524027360208756580101876534015444135372577397299450207258136266288038800376780771274420296803233832182428239031633283975369727729072691365635919906987786798574350865878281250206769937453129979127248920484045148000761134784557759521964055830106376064510339763564171672671072660279987539632526094019666891421524036289207652677073199344063339443273771884979467962593886642373264310402718826323860879748427945995998717463753429716778313313790086907235198148419778007562574438981247290168485369693686684170677359164465367210542713873646454671508857588659188812814060599346756806385921105109499208685249289251854899893110441426561534492654251940602814011406569073713006936333620587199020679918976504585564262331413180600427994734927696739577939512023440277169025676657036825891176737463356300001965999867262675228728871657735630215824104599482355169116925729811655471179517786706711942982172232001160483092126109829286500531860414937040409652247752479431135226410785429843337102151232942784245284905989490515419256399845468104386477349905490552715696278072768911460907927384534391130362261547068925289772167138553757472631176406709881560465939309448483204581759884225963595998867055151325190528207303981522161747668987659331108974807810001984990153618054312665497109249792549152390296453924806677457783465371942330099839566552714169823117270939681794540991174388794549465425707390068535734200861656753791454590209781589975440141660451692470743197056159280216932195143582674027530590169968231316316820885152961228963312178316943268675232408808002524768759829328600626157671681474801810597478401936028156416177848567483274285803745492522682049520116223485029013815993517532234746802199086898463937615632276852492222453535435577902627001608664097842859082735505035850125201068557085015527250915613989725817877353144700108870711593918407095076822673143249979334416847319351205009090135434922021533467000385301379581413735044901875741156492018661025001956643391080818280567850578712397084802906373993171098884101723655839328321287405548708137696601945847961948063634925511573651857643281038775439311464532075860536805214177762654890194528980449423856311124119200307692110708771147189362905856805610864829537038836246876621051712197992124234359428619501976386641467155203394580324392946644083905857928850813706360723485403520210838632749585423051908757101028718606936776850120594283223360063831318196168720559088395891776302928511031160976857256371733977692557596937669435711894002812134846720212291260200471802490974523936217761475869889610197421623495889200041477794531638272504755944970254308677041601354352006225066607083724628101323739788475797133178358276034648036614225050159710162958992758143728906110196137660329924852671679806098294092223524036053064743623207429179998735252691230727283663854135383003431389860581951879634242557444150018981297006639046288519948180996248710067443351471491480316033399935138957334161285554853315987537189038557389643843983703108576804867516229616682609559173440844302050712111293612513618020229741809915940298548838366315911314811132399762077058509028884047023469051166539340686855724505733445386966587681110383241443263272034751327327995586720109052926341589669492756118108700961461153667693717237474300156323855281130169222240290818660326479773370028946694327386814427070969978348072743124333945084394161469608837180762434439829186617082611897283919629813116276207632482444826825348146753972069913823275338944252545955064946687372323976048695829996650758374038058661950057246934613323314845304964647539581845233932580908967878426558183281679664667338606206062734470581036613263849113480667958900556717630573582446182190253629799589996649643131819324221265836976692671364686919237469581658728336877462626398781561113014290468005664073043532746782410009697902130908877911595762370579839130655548175924464578510555832904270737543473090872575148785832743996588001531587562459810834515534585742197641529487128618728284204433651970618475943126439585621033069536154287714533182552916425580596801360045218083741936353742070474389633327398873996792302306978728297288481395415573343913150653072807614479190123557458733350988969176348191179418532503641587916698708596188536501932062163885301380198765066280057775028203722667372406317591778526983971980271535900591398833567768422488417019720118067923807335437342413790165765359114057836912718359745715238415391236614172895257689076272371131239714640510665736243312215688862242521008363046919299267083655067963618024503943766532290518145306872168584854927657166124178150333204382673470157570885819060927905716187929602222458578132149596082827252924309975363190667266006958154943022965417061216941118203827149470426271065963492511006751470697134054235358000512236485061342500849334799896931149281106653322292761426766515705607726429731432615286586936753505800832690322283680893066495136398771706342343662277329338053388555716620921679760445700215936844746448893838425589519482490087398116681337646691627980174178228653935816418368230239520914941314189709967370732819769897583091352749627998875956232009977352796326528634502738564692799496420255141690275880365140187659975427873692996974074727920468071368051712764453605928324224223483382255433173067050966580455828330220611197366107191110187850440724534630611851994904642020552450940888742315466773764095812874939930146774788628324619074172505161834327174011208792732535313313901653054527419428474919984664874189649660048610655002330368389600181240146877292683481108705973121782068853979491401219664710220635515046723284475611787006284565702022916119627647243968228297010699179395584287845132875444631775636804263425113270132579159577788564656257357261300469520652906819460240568167218094843410767888174929821643312258900815851741712932351841394104176713583333986649778733954468401084138982323657109952039062024839191085359733539885959106276206245506907469081918744882093728794183097535007579575320503250420648478825346076556060232956929355291816912513550564834177778795319876251808274163901256193092543646569687755513231977161757922077592866841537705389595848102335528089617493913101925387765096369141466240880097620510969015462797305723188966189405083498172075936491308145014137152884207160574597360311562816289038826863963563195731735360865091082016754073547940748163814128488696502066222088379461696213404923111906219687514830026169944172810705205725454500020056859969040194891039283817492766495378859697668127171722578317074542604908099921322767340602034065079779476088683815586863455013697451072835075315321428151192750464887695955717063459775329505833415979918982897209978739089605589980188902362490253865928629996869990831450327400622621519280074712746224672447600881575114413922164720782807107521386038235223424572825998212346419724738095304780801589144895538103165717982719129592676332010040024383890269785582320714177417321593405985437843397839467033761364262814778080197489833004917219092739389947748672079040021389776365218447837371271105668162032445542219720119125286191790185731003655891040011715539675182307729535087119512516199720356011238264352673791779422383858200695122781547287312164745593545593343761398164068141094273369140488320230654935685683480707076311881266858199556076040355999933313867888573753024844718861638386583068826897726880520139717940677965938501198022263863283553136259548533269038320593587050860571203177460722048135968611846243632630697742929830526549697822137578589243058814126929618250376985165110580531433139106498539257021583003847931372133700701139275469588148666466649068845446528992415844476552315202786542516021960400285075419027442471044305020129936326106641000344511075256992715699529896503399507728309459977942293676077727738077401347999138950480462051434684984435582668740212405163447136635880764371563195267781125169887219887483350312295508787878602824282699987094702800429988856775565630691682420979618759704639129094513247252573844000253545227176759016179708882552364358965375667932936598798385924386687502230105631724356869796130184156617764120020168689641742538943686471855738925338534159948379897419919287210525393610078801179988783215560720454770962609233319504375857959273854855478620720295683022864821508341414464590630751961002658903940564649350561728305816624664220652024803155836402452573027301137567733865976269706777281348723387945903312961208702237476960773935992254189096978541164653575227417478202696875420722993532799462150754665466858286186457862504732401701693070061692394158208643910357589938768900116700123307306421736235470437950850547407768678950686045740071739437693387037818328594447651552799674032431417939140649256402331154380771590319175603759988475335095670847595005772238213615024575363068929073277431610475975179016290883958301944146004402128994910231064334772657704130380950512635772626723002437016798493138577034056573246041833564602186716535050756061010533625385235336413548280899096190313395501328017934847742481901354706924337763030385325779924888928405956479703690211783572967862487597969255953243469722990019059097485534338965432418285506275871647858857058861296435265818158574066321791247811437635231039472147381834919224232252700978649700561871268383226368854594642318111187680455818659537122177375237205863512520721590188081587097831472697296419472920442499189170988868091735383268730748869054837704339050731684901925214816457983834023543271648029325607223848365714740068269315234930492882787955877760959230739571555319049271521760465776805941858275938640614300203278636914640332198401910154727490397413141053146205652209325725505601650520912061346564246113167318361522144137723057795724294447968102341343422305668515445949675436202212594176068443291693806062288828909074301577066482426476297379287446196336649879377671212453629668559859536500973824515657124931692275702053413687295356763378095635029719819726050308811385387248385406991926647160306625276424519820972445347566554281391388286114324257161172229673809776160517695259876050355859076031570273371672445054636074258797793186954282541101033434183418904780903187363377757931149027963472733192179863017804893740853631877285101663766641156229779539679103324778711451263595264731143280745108752000024202199186671471455680684906520715019282974800882157623957142569437758166597393526808404827213473696981165809490763750231718049976445301873573356844394780377274011252858091850284033341736423575718574382210735423792382551934473539917472545908780027599957221283423779593611879820156226157005931669069177112939716947082723007728520366878140464412113131701033171459606233414037460333365972003190881177806340797570728504649163111716229862972681330116693540445909936007788265895989752591264733388148924866302023118996304278689515858336929353397326556771265997317297092180346993850317188684728217940480243322114615177303784450828341963040664847053496239708573348851517925941347853310070990843208230085651791870417745143130104955101549404346953485478829001164975970062436330283233665578682631564912668201767640622458768372503352202089362118732788148264439039018012708890425401162578455219639842675917725706352106592141483406191747402360095880154108693605385543927117955985807371387916192119569097686180291136793554539967415172707706035172398800111535873584692891108545775227895012911378122173189973093588761203602191234846110751684793777502867632498336929336305200953053773173896974292390650936315264985821603126136445411711245439383684355731628053202241054031934883308128650502757289538093853449655642204478339728782117017288483765856766134728234977071148808795223281234721794617901737020308208970274428818521953785449009152926546362749438203304891705327240759340822300125366187662473967681826777717306294210985737047451676093951032643971564426459227635088889541535308639727078301607037476236602523621851529196607696887263107013965275303336286476754528913731406093364714832417434046471306711318963842381391471678500418023705361687556024095187369983079277056209385829666900373276464857748745648261617462489113459988555205035518428919148897210496463873055389565024199659966388705293897627370994847755736633780652262535786740178837572105393181718496490969520928294706602899251780891576777154987362866475775665017613667161412530295805315830597388759550718266550884914619916442991856607525570319513486047252776586490639408884923548851978904695873925784714745803321181320141917590571819178980712103311572040374165559703997501620816614461912053739809744628664704460268204272650742079678542550145163828062433290683299837183957669569035594148933555994092581532163484321951006761253732544696592651258135276171292506794186127858133358758021677282016410646136014787225318469915646558819144052971278178360165919640941684776847217824780832861187980549738268683515669401892855203915855631749338991301995914628027492243922078930651022911198125923074698653903196654513575910825615826076957035234631386240186621083018087808309426791649267724293575053446594356731969957869496901087581779549847261900112702803231512352896100022186724340086604991956922385982713297261778149564592867261734144408035592221549597773988144060426946594622078024473071045769201761598467607365582558596355466496534428927739589429469195927604337303631932187545434872006602702380288751169957663802647986126984557912460365036890766743303386027690527181706553672935862350337340069357271057428462914254431340476649295753889117048849420913870460868952973629518837567200755441578592903912164621266074544305468601999734233236169192848721870997955961798748746303978980147570481819717479913442931469875974039217710739516946848011661587873250363364001748750503127890948270248284510495517307526972903471049001644946997050930141114031502880318606957680339933408563303279727218349437697439235379363170160898400283392024431644329259608309286250959200572300662175207952843145096913608980303876253075680900233753182719101631895898370502073146785168097875870541138886650848899023486556834035512563045188797465473536549912445406613612616548355139223174540236532866796747881503019655118906150104891527649776566459817320457790631701124627703099132088999690179157322853530344944377869869007084797256555585371567663779862816427080643181548136728465514804391152785149211543072371050402033630759714910176222849214040700579877187825308848541470171360140312900688047000765274386590706416153100534028106253877295091733653734234675051147320233076032074518975098138089083520293707758024711439403311553211990033536152228221116969706180483389559404279337475280938224868467979526208412376127794424805574203812580141240721881124686165440852071750227204599779030484339668642307438263608346846710813889926673536092570511372429417796030805188167240523377161027370743277579049893593306247538654767340354346858541105201175978610813026148416664256757227289023051504964551089027423076131818589410868541732586310150629395756779462310774569043355182486459909578220167136981771732438409900304984553623838483345351052916963715541838681802900964896840269926100786585397447095871184856513877387089731289181430579282586013524549085270522432388098435867229816450951705351201848434979266946383986969851061954898360264635531165321963445096731207514448638459274678979210213166813276906001328118120643741711802550979495022737013549965688087290047396378558671420760419233499729686295993367084531209518011661048684593050970340028897487152999927862340689153275444007109705199826344309402099189952408685527390026902295471679078182236242866767730227625258269587995681223951198894245949522427714518500189380077546320853154937327554862884533600345394991492184598111814489466358130560702653692444635583808763543499542219539437317510245580677468592619684730554583933854687075198204995217933693348999022554939423810135842844964981628105905141737849290615676209777014602793989380830994887651944993120621777312667845880818343624770758011572257636593265788443325947665947747068133379968125018050058338564573218666317135882752073862221152685747923667789602705617340298300546129296261437438332223997231442105973528103813679159364114189893023401443709062141682706480410425519937940366180268173394456946088567419342905395163609270311823837790411530914784500336500402616320910360807335393295925636232111661195146022537829926539764372653375370603078581238060538497356573280081454662037023867209819242284596029929875546556323033652187855942564895745922833482524654322942593013543759546295847010519654023175153437095313149873629518892038839215111465281503779941645761104115321013009620144497074736146670880435430932762858410378763025159169010460510809162843651336771286468656781740046360268406296288781221196926855088698546717776599500555094914195344920907318571289348700357975809792873116024795175712816100436732208042314152085215912889990670033849315593819858133030184875411174246668327806049935342274169549064498072353399734975001344052464937928581492213799651520181259816217350920770141293672118358290161253384459971744007286576174390187406742510939590022190132328204127143855160063834292686687738631080923550246182445027779054447812171796726700071981560162978995497272119104725470227585430123958336193153582768605195373413296979965743983000214086462264372981321685646958549038514576599036540104887951581240633137353839126415881666882139562715679394502440875088910437070309379202751001019946103561684191907478797798286893318805461030626290280752578995110585680571353375828104648067384352362579074161508047666329586922012889876424377921745349867290117573163293720491653659441747929571010613619099212633907294477198752067087548741863183821507411740278070721289512589539605025514811788115246701989512846263178370921030547960217014669410848332865727130088892000200755349701117352713949572851129819052488053243772012746345127239981133871379093279777456045289036118011396052625870992295172818633932520753369804380872269885886249307855646831192568891624731789987578260113312847420967300009325892591219852674523570667843688952821582975724164294931475285171559571613524046018781441298521160577701478156443659723497910097669895293763115271798233478848527436315972702342643265130545321545203038832233545671980006300310506652299709781308195881725424643217282210501025290887224486660017199467272379969249496087845217804421340133186913469526045386445706835220462878837329154389900305561314935516913300441269575953522810962735386895336725063493016046123508172456382367915406053058453108429666462287909024803039197504539398794497506592192726125303317044191794130577673296113552709977774815807084709689078910495905963554496464922737599803679279889357994859314025927121017620748836787274052468600694653949402101379150439154030570278401718032830327185127891991415740525237591354520762513518539988609665785972983796940002661217635053185221071002677137997818310321666059515071762094899957136376589874952775541793153209073968603223531423777520096199018986503719246175047175115763347415670666068709077264157347672168816430009466974611492660891617624777217406322207183348097027763754639297574022051456143860595596770565653882269337676066333343762978819909387409595135279723133325343755072995182981653837486323566155039109968198066543807686663363566821732849823696434275528241441353740251161000492856951112891762966683032463161815537711057260150344194371175392481351652418011192019250975335304297984278210401451187405012038107507558624841606031041980685908707931379447451391942477377431008942540647904815150948625088515214803752850499822916881048284641182597789120169694544007072320883947975378740498278804663273299960770329512822244465959841030921705628805620942519468569425135584483732786053826299335156042521496277585695371915254228091541806413709307027538539578641356109717453860456308113921457486090814404356050561131716784557229593355849178696955532094057471539276619387556860193361796675966317277334520835480059331914071219277797117240612613981681601252404659431073714064123673390886936270768765653595387704953307995218040334158659691240560967395457557047084194548931786862931133581718167158080590208820611334690939829964449072439184395230570074518948048218658329267165022369462728354920348214842070009210843057438478174997123995445446281027504586797176540696579623945901366008978595696939977005832348557598454376017914659918917798572491540959033619807202352734551657392857635208720321685444820378198767582234639514917044684087832924705709599650759001280365587119373527751969003074199101699950186549492244812325054262097146239644098224997170170993288158505178618976017617418599821805025894918137402355209790774782501390294491173698771216720270824422909572505690732468100627469901676445155831854104564039260639480204215054336690841494227465520975565202666754295306221109377855604021480273693483123408511488684984159208495032880587088546030950101735362308068201050205047365455297608416301929414916132925553750617379555812450745936045946167910987785801866902419731611995267638433652812692284447827957992013402632197801042446158598889834845459159688771143824781210147232599014822059153713352515175926455960840759777565203373787520832543456101597835189598159633613627474021150704459603420936993878044743006078755543487951023894564085622646876572027079775828161683487489108230141915159663567382165336895423479402455280152196211184262093554723406952916635836906439264395319361097891922620982174109464199008645128624030356361737493703742962567475356810006479781087364185631660080320114076849723573237211898250988986954273473967443056999211338362333936925689535962690477699608859033116604760136026367324952054853703500983410109948196598345410427369572212677105728020836113296004547107491504108186656837230246369011284420431002045440946880869779278515835615896264664373311060691421174515750110223289973190186393993536213442749846768899719796080416412818935539960883982276839259005337742763857119361762740596892943674654666145418978428831825198739539990005760592957236009545573927067159301620606463668553101321026502613161202414397501475401943200178840728986165425888639219505839399697742100277532128802867228358011911315310194600290445705562810410792083721089251721459081577156825575214543567901655980483148441387435139725805954454026594959005918536264733212948047836374997017122973921461377642942289508690682219746923051776061833158685137235796295001105543392112283492169942976460303538271709745528933985373061619937963477398605150248368925775563583270733545004303819379681620576675844779928459151000900685131780205973883170427948037029803830838529497283882085795825611447031493125348682684001259990621012012903371417320551465511839907367239305255448035099550174313658245893809489089533726345368797189063042368233454673546960167843862290074409959806946830347828220880176676337227079007566055171892069219330255570963572932545006529966409759292641063574780942332732796513230942252002337348430764193421618180114906828185644044054633597855263265699196255162125187144612063279244523840535873660383477744197340895143929825734537552675118848051419266050023309710543072526939879985802223898221010554003741546689541344518927259255325882425879160419608580040291807897259368868246431483190976766119463611483114391530323390191072788782777588514166514558446533742218632810395184515313652144715242872999633913285075285645299166348050950872268011176568111931409736449360600947877994616926544610739474303861532952458299191911139610637680893039242535695199775904696530124082347942921453716323360023080831544861353609721483210244563312211967046733202259776097200974491471898580669614964840774259032122257919803473770887620568344926998313960679588844524550223034435522316641048429315017462458992643001233491941652984965270772500042150902457483835694099477020577270058165582508078508269656670176970272773349490366959051615335291105464814987632797982781159163753158447065007057607136237020754639636203259159186521851845132470716535858983661233794993749397376964513356877313543214107218305979160749330030869852592877632956682369559976306211891997815030821811184985850653960777727271859769826481147808492276600576406047686480334397340938310151611315852704751437754564629710144099934799662116205532548462710974886071199844478457665601495850684807531457341136148852555863565130218688990486974157033821588912334596896827917359507013460003763349063776751222980742511062185827335090310306596938338076650541764044052153499097906558543860639812092980550210819767122363227397576994648049121411218684489934370293579426783358099183526809406375647698491129636635432564746481859545569196611184083462344469461290878367684036695782731416219190104742084965721290931274866703300712611634256478395353962833668873857809223648540336960707781790228336153462867984703535270292785512177812790920919592618915951105819152112180340204564677455771707188092306065612350381946462225657112160401353810867692895429774226950648596914220488586256218259074515526460291536305070038018183159370297550055299484952128895506393821272144494244961654215610914008542496592423382532402555183483545244624372702696511967503619491340381059941600552070660246082012119913378761926229871721830782071052120400406949648632892871321576535838190088457315241392212173927701634763742824456830626260278199217466246959995057570591232531647911220262999696176642017570923390734446042333045168139456704972637198199541614691518826776786087285767405034337590154546447949497538877675844600071882834576997738312738627574081474392672945241045110835756742903286350769648411619564748935134608313317224684877724257730336049976571132964346654110500388218505261020456151937483511568127484863113090759118836119353873765411237332077193350003109504665967786511137325152571667399685222632564913090724171767519357548764581711522941962079272203151584311620109129528278913381115670225053338517512505084250056225482681909385744804144440747340383752438333448300600648713837293860589509939280439132536545767035175652983734203965661596286279903881533488854169238753172025827805349235706148951401293660659496928670782338472181600386373133734846041359521710311208458517058349507355001746946546146637737696825653939285590869473093775361301030751771295348219440024988484814123000544205104785507674149697568099164557504687684620136619236823671444416914835065698014832356689133731548995330629284685491393403313984633209173268959344274195722897082273262535772285189600172578793514319112992537512322576828069709583662038042344350369847837876937846349589489325373866996126342170655283543669752228669793849223449547789399479241143507204313925203430252218560245951792122678555825307981726637548589166593665558553297181365132852154970065715332804242339323124679429343512795110291760819468158793248302772822180529221456162482871868410294642585080153465074604459609351412670124812088956990959427294664931294341273587161758282946191117741748249854652442483263185136885241299431243644281326037360738801609377094198444185872466403884107290756790367328379890037466355424055538180775137478508342969832842240619360036391756726361779291126028995732968394697194932359289610921767347492305484254519959823317999935291215105705246429387723788297595575358652683532912459270188143045079664836202553994457917060276205644238143950024582214112120935554821694087821869590068668635655606695164422893994956667763431518884687750298648886746054773917967265741844405969261950445339000135810191762923956260475168273778351424879898346265992890922408891603914386380628234624759238808518985171707061450603275379317025520099573960857095274891973726010633319093021054846828286420449269142007781486732351414062722148568032311759018201507845633484851480677306926468226151531846905306714702474300270352494088530287465207783859802655993408115597888435415423387467182654298090591392797267446700955304854796268887860113523833368086590071002581891803350106807780402449649126843974221783346028560104480558676378776723214457421080161952056230783628388268598954118011367785533290018416306196351608769453653197027064507679110520413631898291176276384538115972826337985042612150333137362756698527774898564657926045866043732461286989648189373676382744278996367022368542753212765605589012526752096750642397090995163430476959103986649437851284664093621990043157735081358853340686263419581730869652064817297069738881113786380019020243247260282361694813462505032134296617675916335520674176578026490970967016406776339644804384214684213642170364678782453117656383774858879146889139096952848434353174663141036268608825360988265874559786146632531498943297859979729399576835727806773036130875515930187751210912825033833400705118641482723437224474590830077334488961778890344559250642531930864245964210240310721938214055897744665357962191897157848158832155873098001818356120851969898424631209491113996126671536215435768957988427979498866045419708079418136222463399929324308243244219235364536953380299214716850363489298553255652564693462772702758990853216237123700281823833442628195551851436102188267863843278390123745337790315936616155779582881733375911599856336652307123272258760546767912802232959602445032011027518156620157213786226945096617149902241519027664075713818688871375500482353254952274210520845117144542909516812415334115700277706207266417295127187923045577430752524555169056136990845641677215394381696275371173129813825425874777540204867206341420689921280264863842352237297548420328314148229833812773036667090197031430487227131649725294389041437666658583865061514674214500094829287253047957885908520667103816454896114320620541108750215470238522668149298215621916968186447024982193841438219044114612478839752815017342013349673313016122351665001201740906105950208648059137940502160731083501137499720889425669792953747488628658210645428113135225579845841164987349399261694698468005434072966758253054766381762648747444074542419255650039380397464503649665828989844043215456820779337397615471129746197609707811508783860465488616366952871146411446509604977209296807216276956739475078525601390764476548948876136816395534595775959354634959908777298438443986970817944110059294438392024027622597595238626734955287224963354142232487747734484888526438492558386511755574700166496064481403690475623489452562413218840150521061528716459846604335137750567590456949489124105015869488946292632402936031532583039768568712026629303837221198811406216270296135622375861914694667642985662445018539677761524274290371528782336379500528549656003524502833042846892831500480450831435572473849185459033087761797011081322022837732216259539733310004432632598578352529502204257556087516952105438137608368804336935578553251433798213457266274352013570852068461851305137700096433049294564829599269304079711604963390575964244010139885747504448034689696521822234727694350795719038051471030249377431547983352049840702860458023031780976580335441829444048081352563482055275262463277829543316412040595893570659170908153774301425165326404522677815297564550669887634923219404921017848016317000383495510775476254570605257513474355812370978283526692412992719818008372365672862086256159775085125624243489248520954991633962317916002633556412340299826280455951279684309275724270102902304720879546046554212616432559817768669328305345104869688133960942978935413799354779185447836245693958933347184466484035388209783372341356274307797699335543926051954036166744107956991322219544609919215758539772112994802364970829891801879964546905164048417177716901858497729326592759481376335396030375759199391894266831649077375971522314823587713189009007173622832033591991585886527191148513522540835847101087536503354871122499183277803595731000696426140275039504316158579208773410431847026482719443727102276219755307862810772205176178601310737114986071787345581759090172283691569617001873212360295447343598040693443779340140455027628821509336460088675332886649659333107520198810609199435997428041836495256552643371966459565255150734916743984515818452549892644702571413533546254387961282242897798906985867330406675973242999301335330808476334403872666253215349301656422812851017462392030681191742942148463396923388683317190801190936006893514475966557794591042220423403648955804261301819905892103365868187966979560504837963131041755527820854818079202232891504145163637482781472010374450404762527114074833684337486683361501910748274392346800189849717971725577693213824543623264606203036349406452663070645439009780150125860001150742020636283389408696499473860754131480172183430482228140367027183862871336275939620069863759126630619258241884105800833903393391976563284988585384592110751002855334575982899051987838259877446187012777286687777206827631931175371929942963442643503290098337233279571452416252249956612910246504175256596196506495236339444339842809943803334901671130168849411268987661964759299735909564565526231980115280757922285640465423200460068731012351755414740763434629222601391036178082593805461931722652507303184811430973842067276607689065631819288158123420743361864743439595904334805616222940910339925706789914990459756547550646611419421886998194639327093855512338605267352102617052136182762336172691778950985369907613276512886438662531267421394338713436556096093906488821208826398984944185403775804127524728728893282528857568966974284439727327522035719010625474765563609987190074945407225817591370841241753262241853392473949037040447045327615434233140104883769708275787534895096674166420684777470856090576876416386865252170425512580459740651634778952069853756264100288935252679142132869263027974340652055986448626980283069894849414718138910959201565734614649564968158521828041443105737673189417354544735435455507924570804646551021228640348562582757345565071784737560780504384628424304563453976053476701411884385958638685867494402841860115806559151586462388117982743847242829725828720167733801900168624284041719966326793372512349142604725296503579563121821228198281240941069451974042907204181116197843031584652727980433078524551156767328690791406642270115912983568850951451845705136839014512558911786257525920848480256510379858854959186540188687347975120249928689418423608221779148228261633694991746776040943587795871142111798061905172010009090461407119026168775672570239395818337866641551807497843588526001267279739117239673336346042417529921077706300400269709491357280595804367955867996206362235634142099289676945079827323893093114453688372811635609412063493675942180700669048290044255265855001665177692895049649662786353732760273073677220785000165293638954112437930617696942380783000390592600714581408952921463561107114519128835847285479938743137494728361995656829941758322716954577282570725170651554315885489261725687352012364530503395540059005168980942760974235733673411689907065379444648890684885061389639436714610856524324953721849702998360066769718726292141401685828891230944683932167067466264060877198705502584245533549922840820318329725528802785285110082177041421121749274064299153012799438583835801687828918840389788131537808596290959968333790023640203177921832382460527485492552495164360912884540770060299634284250264524261950478085442952773973209498187047701945297944291790990841206903044259344217403440627998586292372760955871767316356910001659618527743746237703819696328118758145416090589060414428772102706915245322923151801456540852307259231910899006504566862339539866744163541367807602277217938687763627887410201972090023915354487185435215240712463339488921344635514633817946135306464594119171073814318587753955866367418416791061774643920747717669534191958866656462470066830062966376569050909379423299839474330107415828160194149416778446351003865303133380369528904049334429642848636475967445270751435639232916167427568293540984009608435437778872697776677336399864615951290228748137764613517776966933030085420351636113678723254509364857493362125584180319631672030290722080063204463649297220831831104463590735266665577146833502244670848116760314673088378051890770147950908847470564027463415493133745556168017314390735687824778062623577059325704045458690571843634455394274893389782014959160924774401911502128601251940669046422903953455519561156543004682697338199278268015937408698367986486936637645147466258296666586562282856293161716081934723632039230002747003848904273224930038641548317250911352528546238548754325657033035356306392672532390805695309029044196005588648408488359539202408189997534970922213535439225168183993671415118362660326140062456880256777283858556863934661221869137012201306380650136749892052311822324260876223101924550146290980560660269685093900822688616778902643187426530314216988821214780167532356140694682925387405742776168700002482505211925258047428028022471345677438279122982517757622291553382306646694785987978368540298284271000071346765292535584256429484872342391761027958514256914077537725861771941996157436336861279461064605141544262053787986615266779583449303105892599106980012824502520171041520189625225731406609633062328344644859887730710928748215853349485037403035560889988536065928091618410446989659096671391163501729493860526970193550200163671208764325342114441437120815885428212281896815152036089374050714834412031808628575055559329522784374136056459487724266932660339610475778843718973425142869563314292003272715899549534693644511797124202928466887038934029001285954656931483963656113653680922529532414200294110170480130232217693446294243192158171530612358231545003237829949511589858877782289110917403351846335461565767274294012713651144199413210293753434934551070640733052764310431404583067743985434410307323901088158246832090896250473732530884100038050596882810600957960534215132590460928792814018190058638837580156758911390242617622517728147906395357771563946084021220771594647634810264072719571963399822401186000843586975223653335008098466701024858645594046204441058085622866884041708280928582672640804004457540953813380704845852390035623376026071991504188721104686324780274357285784247635753823078729677947493498904312894764359679005280212823827071623631195197102705150479851965626353422417686281489742251479980385755622607001235029158710227905059183904806985111759184368527503251150123440779231147324922283769714622150741643125514779288520202669940730974535377907604374098153390228092812974731263958197123953182398209681545540921845278685268104022553656778329521230623557355804049669304783322922165921340408619655099292222416647048294929072138539778943626537876560961863117624025047983583869306556310371761820311365426735827343446143329339058135577000651525272605572085315261793679746835652374786576221439715230753502707697315638317045148054736108157282076730519225252810117950651529784080668592674814252759590354029346786967047859328178070903835765782088844899642017985396693714971664522294748765172740244213715808437881745918116073663200049238210949612584580043607879837759925768500879523520963595999130926565204925884371841836398975419144080642326440642563329728719293678844532161602952304876106574045734109155357933216627971061622275360438208358503314026534891663493719031982956056016778152152066514282914869369406815977086244768816372264262420505026652284152703257616802529155348721743902123560278800908366105405954797200845243406672961418753371188120311350423474937658982626420324992141082113780551369810846978562515575203320015813315607819404165951079926265239253909460987712881826676325465106512964218576517109483455353338587748774796570397843604692065550763992544619418423825907013020752364890368481585427727799710596262249907641668292685291050510775706272841529382132027089854815952916932002846482197120473791685062842933041500880850784290999666478268826172356320175724507680392893680971627029612516785972747399636014792155677946210523442163549720003376006442700030590755023657395721085383385997723443581379974178878319049669747365411491955601395938887401712108505632745335621685862576313667948341587985205555844890540514938659298150784718714942258095857376909718537624622577442932625852070837600223994838787444982931098097320434698635625634326023785356166013676056318314198564510238477770494214607516199165510094984610831137164836690023641841838313614210733614605934523524716022337348828786542791733059073123524128748548501359682436939484738846021052653204844835219325790624740196916145930770536576544238466034555843046697042169550749108505116063682542565680329554293465443044012092733231006082868158211102514400665214208115767501996952322604621160275866279029253845891143972889938619484794546447827930565205145188454629590947209751214251797154117254157855095058728492709526771961856298071324033336051331009107695880111255213791136089318991492318699939857462549021180697722333049757895292248711636699341954371837151180107187546611367814557971758296140137682042965102133354137190280260607249086642468362888686405309188670616003529407535746069479638173561164956617187755741548154117639036153710731632020194232074583432178799406059374336480170832582552645921019576021543789797831407589128344003747036508225637634049855207414409066913654057435342066691462922895925642516513613384882169393959256334616727523820098163013361337906776508828895852193921788103899983746232955591650138488043070032570588111061671813513624129528902397404550436948181348390441004975673790551167766885556542908816917558210120517520844805112484936595854395460969580860247139393921502701150034189283868514391522261592013595175984635868096188625511719934254907373972507442855252222701079386782439807739210010792696180170802343517438964974105258886459853826639612953495828548281376080761660147698275355942890851752711056182643387312274004898341368492331485372851665077279709668414048651477873791914067129146060506085962713431338056041937034947690861456818965224784134179433301087208737748014301318031582172384571978158981875179522105506637847299472735309527051878932710213843358904972512329932483842616539035040133210337888590607064092572134947110137906229638277851615092685448942811031926184008099628413311938490486610297642154420678638091928867123216920308083502748891065564251595833352759211228930897928280139937497558509778196751422807930609199868756165543341326983609470844677539835400154610037375324646965472774255118171392163619638335983541415361150056447284427436504834159118627399037061190668117675234800670985297106500998962878421660904037588379725786329173300186552993331451712634739098425015044939906295850561482682386458028838563441600910197723208359973048485055601202572799907320744980151234462675935509108876333262574403105541824771209439917714291057716659641030587967223432110989885184678026151095739625671312194054159527555219630524496953290055968855657120174534547072651683682495343830187348351573089407417212139018420788086942640521909936249674325271108864594323388826082315199273087266852946604709784421388604987193205039894286186553970514259035375000826521946996881804958225978694522582929128974607212109005011712423572940637173463404942864931484778473280524920459428862902712223812438893614234020301316629692693376929410968340106205978449661964752573759986586281312535733787904816660374494723426878764933424641607316001388139912582723829279447955667121501997504652660552497666591614506411859541663839566783691468382909127506981082449640115890943038991210032329139483154293179905988583851376987313834965334672021113548629263343120582457568511980862567204567907887841971856944875646552164789056409365885379249341567360056206648254918776896118490195874484000719447927439622321523586830202255268678389432268730056884222932179605308580987855676137948857429471721276192791026518864429981223125716420498190100114469105184687382540499590073324666870176736818491960839434828980577960615919974786744352310515249615699749297325700961041997651565219959344937308068883343756825854698322885263978015227248169175892860138468080501581801114593126183206611245518649193265758088898853952272165349131885970876126859089053705968554581442454265459468010640157846758440462167479680423011759121103607575551709714628083722264479313096408198332497655301894047509199229205354527173964173279099098035626145208432180693544831303347157605590383454723343022515309657720764134994344149918508143596750311401534687353833215735084946312641847367397429661176863345861270853948009395790034109867218262914014023716264176578371128989687690658846766850780204925823833358576788348249345474398411005436838234002720689220001472216025988213969333991640236276962093876050247510687449667022541911527923408061515094626486657206651233058960336992996467278176158189845916883637713714133720133869017258850905267228315628583535982673088281845404661406536723398158150501559835714629261445440578356879014479443444568141691539094775495153351480185435423186240706444620971099026186106856923392411726258255177120021164353114027758622121580752766871103702495163450720731297780837639852308907020388510990222833424867115913416552252612054425161028813105707030466521153923171309353772839374660166020279687208983984261369265378081081313382163027534203681896948876235219194080292354007701217888248603798029268475293201792911961478023337127698615324348843586835850318887497502951814238989419031678050802123106073538393499329832222586250556370667899754033120763338074529618814082814208133805739380364948725631175655470795890814626446092980536382391840398951688734060152818274460619477031798466235398192064793245601803015541066082847914698017201367909114444924131982656335869197233845620565441597658404221854071195646820668038488141953435764114178610433980802630488344804537095678958097272876649857670653560205003621537570248634746284717706875441433733219430648117430018880121821608197028477105772938362513502899118351216632579123558220034679367169043452534413410585451744787095136212635259760445754663701240312496278653900731186154167436839823500465750767606947848299803525494998164267652655681304934859481601621258100668077918543652839690883210450096229287621538879716109587940483869313745830312413303560176012826157814630110560025081470852190919063514649849389425993132412647018068668966969710599885248115153496920740213537577747803248780154980249543961288676866330739965560816389266329883960376127221435795169070229975311050680710235291231413064849275227238973400659418672639063882627528234635670505147079172734992605690135193648726162623058216460405701185624264267513684888780593088230096448750981264604820557697519257103238184504764325238388469532018245333394448317587198871207938361530653348694619566159167091815732322219668459636436622157163974075925927986813849305625237012154231340452849541469647943579116648117387971489099996809254196914637844127153141415815861818143217006632203016106585597204928410756083266468078078369866387406893415950878726891037943094075207427409985903193338343579339559568944227771383300187068308149570068891726930493920916868706649187654363677204350133250666115059819519940002215343213589508649212661701720002509905457825639012054603042545549867487288460145007894791143992856467570108075622959465903956212325922920400336471099718154587169112593794675406842824928515813193629371736244237222645706799584546572660522050035667009892917948080031812680227711451523251707099927565788076062697705339099782051155665068732895656245063533961007077123043470999871777010935733477970280865277480021814560311740650829498661459886463586607163912956457493682263000923433597153816435172729071936641369555315934840640191212777390070491062941583036977949791665898838282049376926259896371391222229422459972192191681226561211649529708045687641429485849063552524642632729476157002298590058188351826692199210397158479530650944648018172555307338876773103960885128008880036498818066882277747500685894966878461965852761424543523110294188422824263810930126071354067578847422523034725505858131184001094378716377654983947363885708152399826723391312591848552063293999035451664177559127150664289802246186248581544151957284387314548146639365532640487221828448059333433562638827592486801598010240732901558792456631437155326063129464365820398414018003658605800519745470037106662132064116409943932552879070337565072151276019894246997526685200151895263486978426935818963022842092750508000776580895945889502728025924828044035759614706800636806655691242064744669356576816178884974343686047855413554978298005703083731091445479535595903093056110111536033326819397300294188652115073705099973884593943748274548575562036144279391613063009097132822112937681247133815064647364312842739495690987767008155525294098748793498910246903714403398961589389278224487872277728923348801686029799499914089545579097574356441709999563078356507625687505759102041216698721209491667414794333252498696775980235084322295956630367691647028204566393191251474085605598590102198120617447993047056832629484245538766403789823358443018668540564641457767299493572336993095554489768674933916285283862735629172199348437597222389259998641747540475904356720594718775666702132927150888790116365758482159419121725334386888498438804953863123360273684185615982525608032944267638575622663261159632904945538620397271301428781385620716972208135546635901349693248137310407465865514167434561445026466097760269016208536456583940900531613855311407095405821759418622320804083168407091691068585763826712111075333881657419268746696056396252274669766679189568675473741630397450737844184327296120015352291996772834826622258483577827797736275094923694614903723195604056572060287709399316091612704016040324623063594588442499485457455532274886308359146800269375912711810803601652932905972427772213842336861611655317110210333867237619739302269679728714898292291742504816092668116419563027175473656645022240652360851664040295908326923032166645451700047312453505428519308316331922994552542096729729319846990366790603437642433050635236516649473877082881541509357912190917176576764037870110336044413230350202042362606448027085172331485130609623503960304630288625317297813436383232059445321799112350745706978651217953237946855486484576856179147942180957292058120416690227871323362906145725711202618262044977767425111664750068410712269799031428227142251654165406050076449138873820070270665298312541379192024036473206274085626956272019266205271745939303503580419846338527696857848110196260706785929700875839892157061089626262252999047259622350424258407802579855999825799401423956249106653676725229041001335804225142977406625764574503927434535616638412762851447359873120017570454496032708990178479078467832791596181332403674710334151216778672279820804255007419820654415330507971872267207638474411407000253804555912126872482465304546367101919854029666750950975814527919356506339894666804398446646100623470449587351700228467003720719379412044394705740805813869888714825900679945070023657946714110475605111354871964814245990651447626484439829390780107188070643405654368591826424086254661543215167817248705347619683119323015977303998463542009111973938855339696986790459531097585739655454240972225754966854590341404689422289131469422691411055014021877906155314009370079828717682525635116613205535104851072318757834136774922212215171185997433846976632661599243299598876040782492702744845522233778706521503338184440686745121788877094761375868513205466585944739565143324417124337578310870943395894390944849849164286884428800107148399215400484044852183176634556516925340306078258633448102883743955247530386184624915488095864790712731073526028039661098686792594976056678558208277424218059549799960496263733797206168427376593646008939446180250355261532322786932805800112001655503013637327032520907120842798969498505218372962292364129018199750235959353534389549381816846774117078891339104241701334179888865378509192659830558368967163142979311179411182481310351788704770913586562584752911335805722709184612377339686194540526345724773476520521564572996611637347045336528017568089596257224708316618634443786305241289906610017057782913706320749778763613804061529447594773028028971771548559167717101143666608387974096978331567266505135097780083973882628353200728349619419520504420569047823064875620164164121171233004955603610203716419224717625643249091423950239373781586621634500183825409737389767566191960580134462009834579641034734314928223322859244344153802597298824935904253681651622668227275626212768763166260060374880608834593846689042885924317410129969835926661956436320781459985584840604811510305860678729517986239709145592464884612932331141083346863387089106377204384668778124853217418928522730604241598347757561832702260044164805346449088711956880584372894935448455855591909192340840036117825922734761556804788087186624549079001447217816521235370596424629235354695972709646206641442086050987210481671839699444047567619542448365566972035929565832945282479567920036413318890804008854074863977243480257220443742029574109252371397904619117944575980972737959263595386039211641943791580029984965296129282675970219980420355361240078458201939498500108495593929053324351811285535581836519347181075688980381175109513165289173455178507289648181031999087088276730085680767413376405885246037069520457018893045694895361358939650495298766810817128135679636744435517754593002606904522061440471528768403400565126630089360977477473312162509276282370140517921873192795829039894287634181672671879123029290000820561557010400792819483402683778544636170216763263190546031032914969410317158325629395216579554925843677625134093629011255805837874132791157811200984612618982801172197069138663970180769721783675526637109418037871948781596349420651696486197945847269090251081351711214379033144733179363598927093627140495113568964909487093197437956547336181098393103740655661756233413608383961265980311314909939679140107934066652322703471643670683044002171003654824068672177912527117923453069061389339313160831203779059109725746881117874623034497137174844635920800396586976766529966684674718356541564067907491138744355146829024723363106826257110136821350755686513927568361548650212385299990500847703492738939249491058767950743718552857640084288521591148534582112476339484063582376261214925173911914107188424715905801408181456694280588283576542960138554314622172269609810868231500542008314846722454018485198302335067937742863666800064103895183624384450082074803546450769511376678640002623344944775521979766776168032420593086248597967162255065638894222205844890610378896011717894785186817900614512747574374433264283339744459578826823575081369110302728326064841832378412827889181521691069057893453687346995143929750169441990063306363293296483789025333578580186296841542900421956497951819777670676026725656712530621587112515906053666402618919355090992361327034064296819481915792656915054486523207373888613069130156709852896914633284628144966120753303321069903199641063246007356821085637160100169884780817201411783699865906228340547932992547450907534189764731815027809626283763564910384221805040125316046523639036752945689486275091765008602591620219623647982565984689735710135221638870958732832658847325688418040269496741354077093834068485557322059419940299545658614591186788075445103031329951252883596560372130527562746665741698912427616305470976490408065314742941445351263819802347857010674739797320895056424796336048060517666293138620595655470066120395206853336808043190465243431069080827322752151690402074598642267952072429832346392485233163658957136700739094498795804628511252027848808166510841457431581525160087498867725645716617408329124858668891727823575018516057601300080547411005338474889147679832790379854323311609622117981027045777470456160579183708484724241481548733211397541196450440225158752939889075231923082524950888328829594477411941988930148106843469076725653456364696824831448995997089062925698120569749446894578781318318570200651884166288301002961343833121320127662186250230718924583747420459053812457549479521970181834058149024513880097203215748233166820542564658085962425663872730588840902256303481202713796708223269839658031243258168924044620982492960327070592121905364203780531726076469239409258687642652471779188990103472308419675359741311510364407750534965888062540965591707962963360137022338833311808628871206696422988506390381044503890864488453297466427581221636942124569280779383277765604156745672080790548049747039094858553791742154225123929856376875941502036506217147171818710824357664822999007181052837151914286117124930254466705438692437389721957437305535719148445948591486567633445642014425286327513975150130447208648112369820925758849237466156924203353563124359856398345627138995422822830478646800767091161325757156006962530789944952435584236590099445738831071326050957464654483516541445448991254372702440173859016215565985414385658470707443911517470417192453982261778969339268580700401165891016265890431411985872329611964547363221475161503947127754129314203357045672562104709020166097226598890432407730012591698750938133050535690123529957966923192053584084149932877185967706155395965279538118862597379096646722685635332651107115298892474191859668978691290694451678382426723136224984883685590508888315290862762980986701803779860982584286705293040957616913715162439543864788451081215387325719760030342495751697071242608361808002772415685088204060067599457230406268833193215827525446132531853203293861198037457595126485055421055704843856001439238853480093807347949054999124896970560905646564357797446109803621927370724198736454041031674107686526487948601188627783497527090815266520459451598382704296937535360371777759554174682947196049430313768681792382016151795352208907158806321391292127499134773290152076676048240411761949805546257469778627111766570182826091201401658693916528924608725728294181548586150988336145282469819758031795619137932047770266679373235170485709217460933325024103093540698379814652358914128948242814449727971186530584581864106541728659349124410294075501339417445837033900399040348064202934201427863401091246556844144673579343172332422703976558296077506928532513647377347432098379892861065963498949068981950805067335858137296696452592513030057773433850130252640429000617480197317012640151390417159371542325006900705037805180354754714227108178247680990549594683586344219957142032250368356563797638956792711176234152539541849301451467235166033537083119426631013616527931924240519671484318081971982044279058911932063981186806534264012382998520564252279934448292341666323838018132010805902230823294372645119645106656849625907153203419696060762885814931469357013334240022659540680636485973259104355067444468894592235470116381922953665381992251202774884104298152119133654821616666441559707416339823285508984548216262377552409979695907804696103240746363293335791674596648383591355781080964651091065025927510982264491708630294657767346141416084323626598587879803138703353815881141349067879018866856372649306258280745888412513642888587980668230010165721725306914239619574923079750533727488775123267736190622338657723760288728222616618360350108472602230910562006100621641528886194508519236612475683359222273998485415003006772446903501113261867064565775187898353599730129967738951712912527643512868734932146850360485099468384942051374405221708241118400692348219316432190898933192284441462409146781913562948500850854104785164719232322416737797370146989554621254015249629507660413206816922449073399393729006326091279144891948720836339321771845150060808051517381272415681969786892036690568413061181523850061663430877507029772411356579116695968907148964867044535213324132595942495763607073993302108696900526290863940573905020373704378264101157090094457817433335101970172582827009147770575358892693838975603031095736491388582705216518550474490449730344427250964108265300392780019930590928051144147937558613862873149388143344831855595144020937128369623621931727293982907380608231257164527338087733361051709508183724864388709866535790423471453776656125202233113167703223497738710446965375643326306057877500992538552541359228198206794948912047438944414525817551431489648088437552712763630016718950966650016209724454489513831789915819787582862907838261228479446512910764955202430226212675676400204619679537433114678412030260848072836417173979191780000048613562512474309038647944323876063302823506819044313523620078895761823874233274773099112964904437527267930854268409513392722946440216900282867114066553090720992066330130624187792082123217043269019374739415926853699511262092509077915371013422965627256728349560375849434222503345590918789285284151061533075490686263506300345652559447404253712897154175142862816778565376993611691388723884683157890058366153430159680460251006715418588034285890219750818095597012813213744280572639602887516505415337344515976653098782454264052673119580433998160534633695202126770982965620073852389598905661320081948758630296208328225223082488136302927381022441819399691590987209389290668718353734634142985416678943162361564455134266261878287804676473308978861324182815806892084908927385329337790682332718891085761386626641158820627644670576823242362379876455563038846116293481305029228909887862349756613013408526443508942999138689628939417806303913423282026891563936736366688638495052884966749306706250096353419351117194836310607316606161454424032057963155579642602217010385514775388084643231185370528183934202100866194653969711527094846890881199846236704402525367884374790871039594321549826406803957440573220157808622056758720960053560088342180588138498813143906775259626411551761783244471077861942320928863932351096023940268903854247120943448117118000292977789495813000580879265530215497660908692045423829004321267980699107064181527337155222744644789800351056734236526737371582949645686258344189593435588474273796437911322212826555922750817286106360139431231133164767140896804335252328622693991114162498861411368565984998564383740004017074011898052938492314149984757491751164300926882089054756614141308469875733392082894250240516453109601766032115440739665959274919147419007414328596939654685950542857423438901794097513874955052846709478696054162210493888275240623570150053825150122511861086471846544802063111624379102847334894388902096855454986417766925531347949814790467635345531433385031302508667681032225301986350596795511988802534365547840209434129545272766376696982520245596130352207052433679446719807884170433400721019767545693092268509823925970638718711854279978476358280048180495455740476599008915688307048107752846284713916305057274672344733427650621861137522443403470947732041851613507275826303194248778604098611848002531003994172034723344736277485574914089509408405081440306350441492124475698519910933649948220410259632626918473353221169600815146535011969276842123944312356982490105830118436249536144418146409366032465062312395328249328126894988927583759906443217451880123128012798657900273602695285415618504334435133925931334371803894057248995103397334521464728647720013379607875151444109695911746631491490045313735476188319010083519952711553780249853165365390933896433518370301755345516175700744532869529202397185167074643297800781785668942466225077185201503694107660439313498058970261940291024561252886465469900938306827652084632661656410683528349628323079062885280076234909229518178051302747723606264999150360922279294217178516375968594626938088917101273320276181872443445800125854552769917319342925401735618083759874412872455257397122999354149466671839311322163772344681511344536443605087405934512151243130582406549057770348982870343726618530140518386326466740402955822796761489443513507071006134766738738979005221331987372837212346294711812160469274913841515396570926930381723743633103166421969233727800904927717574449011128209731091470152925194577112625716026980303735018488587904312704978935564686711755409567127043225475676455119555149533314645669604234328130803689238984047308890316448269760894231587518769809022771320649287365733048234639429391041388395158516196659716794211148296658922961752269690862575169886075038873829617392925764176746101811061147692916818399220563104249332614516478387547290459673742878084617521093732936982152904534467617521277904732914048191213760687348240137118878886577198255453238616386906226387079728290174855294131261755012206699168739502747404179871262147744275048626150852645198317016560219819145316576102569117375120387460067943070500476066568675582359551283124203383282971340932014273285442779916012703482763766111135061335872620891932925421936569786997470918873720364515536601960963261342265975794332215471018177320230498439088337048515840513511370932138628057251799671509136991183677172984470760459705647577881976741957617206387450621465598097791935167111275136084757449304497856082373021983507037614378978618990825657357714514163145435201731390248378508310211470913965663436051497414392462045022499560490603935968334510192775924405751191952724313951509846449621157165025162862388507457279301327243986100593703990565256749775596074351124169949391668621356963716144115979172670778371500956850928658544208909941457960556881233403263628095445857480575730481290360246150580206355367555930306570104369398752619938932070310901929303141185810778966520180066473608844381386170382095871834926711266772814897913470454968715384197523606320790825782803957871511867641295771127984777510551527807007591040473058234715769581805661930870296604405738938129063845074828834984819620918790578758424675777448633954634060562679332116056703086666150765146319191871091022753546785962818973707365575198692216656243526265664933743105736663923876518699228059256861814193703775549630975328794501968158256790735726997665834579643554770806112870745350154054277959470094681236301882400658946380718063128279884020915956570055022882045392032335442727528806423754660867983245233027179132329497813278949708732222878023325808340287887270819002394529453774761985375524971739744921591168754885601478391231771253527154618807693189013389643953813549697194852314879226619207216694209547654418772693228435200402032569119263560500000371710052949311257994620293858160727581272845435141245007436945926633657694860802922064419272846087384299938754327920132907648065454764198949851841928675050895255060875899431091737793139113680751852113055023563278065466897841981120304684314920674685748956068103959293248192451012535231924807076975183160052333974709509483607142390590020023866868313162950846727725590226714080575375741311113249741930725354017372304783921341086356749256430964337121074042784282775236683131241237365337673841623885653155368490739681002697257242709247560223314930998367209269902589032849009596015097179283061640512071227974206215740679746307325824414848846634751057752663763790475523877704193904800382596550480807754416208096502004152364771103019366036614738039963197815201785468357890802579212622938266144352802089379611282007846047151325219139386555604236144433612873544634795108201152455222384990813462573997793483792835037066291834175605674874192878341060852390640107121694306694075145890954801482883974055875911018910568624890097555517859338219729978247705063038936672891028583704386577700075184925950658185853375138267258882867858236813033452753108697809324014368549245332554209933658312231778323464363337565366255078083908716286411152436282239402942083917342671117575719579366588110986068798611734412278515051670993716879192224837986691053550973023776880616683275014371930829028745968671074554467020091088955365685727770093427536441834425067963303904290532582788543582531064755523990975164853949670030476696623430286701909678068665614609215020529292163254700606494073136142646382827484271424377676099387307111869054231824697089540864787228724267206911712044145794863540082924996040407927927892458488771977621638090618329384869935909086670122477784195275229711421860456051137691228920317724456387284158865604839400770369553762921538375961396139236146880737668569437068622761507562113345508459133644844159918413317818232530933518863981413603542758182525665402555725456650919035641451154271846812609393053625528835202318218268578846493249250580150127049839157903581649428339462255513207084734681835193554700333661854061168411762211987666110810600895882727670423447931577247472920547207892824640984866684402871437160299614607608319711179841596145438547760203449273964502263702694726259707402462069563012263634573778423924665083252282364916884199957726944834565337949935688605215712552002437455169156673637715862679533210001547282320239571654618134276910827243137414880437618700524521629148474843702448762354783242881677522511706161353707026044055899072209965573388469208919199075788953787316763903433871720181119457824018673848453084169432218585089849158975315296154618683910613677245985557146833701110852827840431206431774804528056187679747066337497189597939707218773931345818551181755869910806545614974378856181683154387019677885425960792443482337629979352192450249625628717866556605949824200068734255027604730739163622474808189900403888496655672448781521518664889097238826517693655711173277130750995128385111343054174127186883333862844498854521098876528326362757539362484748324909543931920911020615261005125576624456032232157060204803156168248672688898762306636798256946882039078704779457093338313318926253302866630770400142291104670117870074358789666499770529028274857843281888641855429835477646743644501985940323008996361531554809524982043525130653763304410833270748024587930824897304430069391186626818542240034890768888673036317656011427570331716795440056542686786063455922387625023623032662826230877900672100354066069513030823565914530689223398133809362913996081946203668882461243967937201229416206958457680497416627154036306387761847583504871205079107511785307205819278155582996917579657893083803626583679838057360179618096798851433381224269918550408604032644250509478181556481391541924108264628950037997385239287876941332756434720792781857226970510887250301566804089574976558479653035649113274664604240731123982111313168682742551633201397899635800095443893881867777890723025164638158854008063004272821896259707378756593369599749151209244118179824645056523174932209834905342895874754518532607927698314578367289840473106704539677956525700225156640357565521363054869489308884880498411252388424959147776596849828242070017212950500903822111823322337399233015666480360274294894959111706656230981550114846085001802006346490614700770254990208863307018973539599350815365027435445099137535852444358218607333269801204233770374697462581645650674876420219318081080349986117057819804309022506230542036042288059404925195223469839250289630124720972133851764621895281086317225308495147536763008988672198749211140077420400800512077236798504829712371196386986481196892264130695065133772600459192936899416945681101026479432227515906387584799832177286302974255956629546658241596248269428804044365958943540250743136285291737229792166477875338174846697719220538055842039517056250860797545517754642022138150954237215752284065279225829736722118023468701605876510948174205628786989039250330240730580847271068901647069272147706627784735145560121506959898762360226446760512213192683535199761888536087840943547999860029235586756040545510088176792236526769683606301110238669676824411745399280425122650143113995393762318693474054652767862084839485306702803064291913881871839635854103423099490749333235038413339734334379465304808980450574318033210134427543749226023043855509335829284167256525397570104798579248765461156344457025459102779589475126244208881869887159112186453748281877337504281414081558224819235101733243843770246556338240352910932404975358492068204831994658716680580722668431513632414720036466073162730645845465832864580057979573102018634071980600559374192352461842115236133969915224229501778866052514297122262841088129354852595230864642694285038427208632693157711418348195606373156594676759002100071033545857901939175990581374679321505674145785590136420115234877745019946364122697918780098426967344043870343863110267190239181817605467312126959967157316924192267921188282675671531776248228913210883013766467284731248586802670084620282301889134501768730115204879370554801694109593154398283456469744748859575613230245866970921917413213145284983305085131305344049581105508762658421704969229485129340367829829459272938883581068120854444787513403489226322650910187639326181802209482852897794011012682614764591034637811841810367292986369767940441136111099398832662168126436733812283758127217944710784692779243810886187121477296604127168907701401130708902098569267423860914798682345715898842028794855703217952159350084985734442562471869693457096972319316796712862302443220522787603235813364447284586894930461107016606417776144914238229759657558341862968260462339372393821445319924965315796991977464348779078987516006865012463606846293405865225839434390682233481325065715050631540511536387170894074289381433400623234352526212238925236535064711901745604200991438675597945752075265117969108397531930391083396641192779787668892217483913313449561908898980796921279288991494779316463994247280229506064764048004574750219293061342157654845247041078494392565899282285221374640210360178215315331216483471391603087144539091877135884907771494510701594548098946035675346516248349000131650370375917461300550214442896047367667805972195663845435200515916568815504512432603315792647169015065512467670036412782916786352211923826823024524389260572008184554436997054243038117967970562703997509294741904130054622975796601862017036482961172553143540675525999474826296662153018551157426281915943026779565230897030120419495355949671636500349600595180047557593281047741550046183231477347326499151253180994167965421364483671650057335501500357417024406980572176821648966259355329788673135329634614382441126810185242027121341686065519163993990737464555273227086820109051995824812898900680097040461353493404708159538016767242344393879748680177720641465424158511869239575731776666351361159911691373269446826986455951318968045685868853442797699711327764993509733178282185614348563704681429564462183316301426422306032661775625600186257550586432994893949706459069735727407386405682714187681278545847174777761803989583623668831488300663339689145882361876675371974539995248673540948039038899645600770967257306015605468514533097541918646854069587519850232188920803130170584255307945008757091751002683956641155702689476716732690618605207536014130754222598659279437545974450111676291788961189887913163803229550032315682043102790920890265484361608715887165555538535800607624447392209091253745056224305650963764445536145095387778705374466696707757105244978009650083209110020465539438651380961737323634390212534341041465250385163260402543405549948026756308051863985666070594969679830216754464769222866099109282954489915289272918066486504269526413200488869011162482305503970981025363378495394503121475725630376901252100600488267881897365976764342246427578166850130305643687227986249445236808845459560639684507600466216349896820115228444116325436619981182387396507168078494446842514851821985965370160566890361405968508411204741647001249918621715218559360152771752060177908039926071498519177672435070626138351367038358744951962121599928827213196786870550450563342359910694669688577679653315941381256220520509640146558444179078235066079946541477585018752037599812210607464066191737996244837131374739341580157974987797013082442404192506596451375517422376219237002493113529225096028649997433490924626617743287626411918114085372145028622935072809700969497660388831394989780327822012292364648644198413791956454187302622851116312278489382958264443017924897542216837359751897379913824799818673543521429837459322664747707853232686322100452206386728568523505874788917604589577883901621150293011950887822491266288010717543491076567700923161324858808230199277104406670894535040202619891839763799304727065992353951759088764801895332605425916415250426244122077488936905738592606458359078508289606555955973150394297221051726331067031202739056617811668185873095876995042603877624371695225984275831973508107324754321796782375347326014416901866402698285141168860493596868695252581158836109648661071457258619421841550319225250180970467881905593796123663178502277032857826608627036812430929459165368288001775967637810514911029975026671263326213348131181943816511986333798549241922547263379652173058004027326167062430774581936197342314505034265220786425450844475461064772708579207178600749760627983469048130725780030784309571497420399409645011267929013708053852372585614239723440473400504181759007895766892481836279851702755878921217010224440881399750181807890570653833996388625081112247508460443811585713055587796690903899804853379976777815309537875333039485119883831807669120889216359659009819104397914256848099916089218784260451321532329255608198737215847188229021391540560126338624014700353919086480815852797326365119749883107050002652098978562235515079484836767642114074921537759690609386705245679736448393297226736941526693903568471653594877502502732556748663191010768530619157599118640975599490599990374284344327755695712281896145503897870738177388968419774718530165043678117132726428354835942128636307619584644268986366504577017846135132358460358660796833757001984589966072585317452384815901280740947688157877099128334257520197063538270073104450174931687843398526447669739373510580580296090436418467149690834510209128681346161320495281756145738183542076030076025882568859285286988840246867146357735573247803973204714024361767709559785145257331164334760647685215485047343941856923669231821703453871125746902085817294533539018848581171310508986550541047163312467139523661904304726689658772918087929053932585191841049533226369979317607979736162858467607034011770140701373943523289458408000183780253481159710200950012039173483202478693144625249083720888459902479012552213921902227465924080355677775955405221910302711841795443686662178007710539881653577202930411816206050562264222530261177675358635558446776189232992235142669595812708570889538483777571101545751512160910915405953492222836951480125901274551469221315115927861444532920209001943568118832583140829575999334161337406019400330335553677547541774598740531605545627824970928847264260434695386832838603422318555077951188286794674436709154321624747396985812921813032620176691700681307834019451095803504622030854800682657933855356646062252966023847036205603461625364027117556613623987536332793176169607209323433966444042701754041949761762164950291721447144102149345629706894485286412209613813857913851759268184244400371569107596157901743067468272261744538789514482181620230979173281136982102980159944091606329378354153586786359982811454944459384438072023595814999468203560364331631474978532455809755404070559028486085093271050745840621459048718296976066107651741881332378593047569417654982186271540525215973239597143583079935397978104915254674781516463781247086629897165409903363252020587535358499377452847101903583319789140177446449604921322804923887931477759787890672433575590127821145199457176381091927331746685778941547747343874568525674471113260848017780724462268913487259668647883439662266851016052411581021049018464373271375738374212289571425817137604606074473400647303768631323251507955890851179440669875979390495334550102992844785036575941545701949911763595288625901088064277910575298517026506751415358084828761980030671994972991603636616745534461043683963317842672009599101163023622540903204220411596527843427174460858123103425709887313181032233289513166691420641781205637240272451528602291945137012019583391596884727337779202845476928155660973160401454951987938600314062832364881098383010177426213780630733435192003223675084102380969238626523583205482946614216301554921799522204731831002016386579194735745183005999158289550742638085403151357359824293410187280361576791723118347361297900438067253190497839307795894089117005236105642436643484124293281166696453367670674473051953290805162731190674703056365265907694103771897663330722809703455693794501643919038348996323919103148260309181002186888853857137384351553008440020057057118082407682651206712032433396959707976961597993426524896856919208610993890889984172273791832471762154755014566285890859747572045633068497167919985879883775794910188222277726787035016661921049900534840966090433970580355646777526120433544927368933737900970825042688126782650329228799615392586643857845731834820266280521323031150037714781990274303765124486638921989117376754757031501407548686336683702486629398148832415822077526009415697493872216001620000454957104111360239020449005791413458105874723526157798621306074952841174208057418822843557133160738550417239406382300618643801016752241347035255054569325350915829628864733446716212426902031598367793046515014705645224824389971746380830593275390788859737010248196374671868554910380073063408639331420058681389227336655474238320627881844912151186873376240536447247183490552631863729865295547076403466788409188249698239380642243184412012128708995948496839396028328401075583504138733950308014850983421970540923631847403901766670165759117953459684315976512336574556536094860698143313265593469082639253550907193779822105757844219669721556977457753737695168038708643384303150302628657296233378094816391330327380791992227512825965674929913284636723424641697897462113890367136440700220868141157581481202244889973444183148912418006037484993751592597146063393711022276959063442056297282398187218845507071244757244037908986804365272179115317058177394638868109685307421379034437553507193029982426311764678738974814784032605610304222152047997158969428431501030098927895195966127684880430830560664745897966242141476091748013818053318524476656694531249417258835443388424965143674682368506802278319022558636002733802147607387426521541610570303970194827389874676867544032504300310763111844460200180671826710800879028593072559821670614133130873405779893032196381865643950619113216460221338099873377572592269435611868185135909294750413524394497879703759913327288634387071401564030863265351173889523723938183291218996727662505773617540749976935710810272085038056389144513535027331453456786577228991787454309855325305372653159276203158617011237247060409264673775259459466721421491754875610331740628484786053489797215696029306788891248409717088656098601771527114609395170253859904332323529387065117204861379896460968026971521131300533347378278767217658955703024589252142527966073459981223696542194587058822492611899361909908786173635149847901940147741578660114399176425248713277933105271496088271028652292226680652825131045923325737129555225146621022766757737969183747163087743214069575735158684644651314256487770547875708142104015364881793226052145970102797735059347642627390184637766078620436123262417152437832547912333947906012675842130051057650141995733312491345247732911399132846882046964734145059120256762558833246319698114679894865412298368113804812664950161478229740910177088156420478998671858409560415777574500031400888386508070297322420599517355189150654243274172629842818835325595342698757290597054148558213847293735665318113262970444770245083117714751554015448289862751458886931727191216315932633006239032110527322487046592022214612491903156520170317655077691583912248328271389874310835429273774581380618872646849388275954769659545629773239478365299010267605831695902537010515127439868001318509615891009723494892829028181279694764444567580705890314017017481080293866014511930045275511442405207221219611948571113101917171862925975072356221553155114478856362555654849324897899453122135794401452093268623492404157317879075268206319540410922341617269029099392397750669608505693553524149528267220402768412265262649585739383796108727215035957626799043039279567518205703221151394349697561209628668919925600272787857011410574659740640724757760401008006472353595925673864905733975968500671188876042748741390181381255119829611834116554546887814356139603172846714201619643103163523837511384584121995168847078239839590104694023722300939308039936309912276532851558558819475781325400667824248465609364065661227083544222468754456640813771941640724682038353145611706015604007023764797792308718248691771913531387724631225607779546249585780724317343907004763117991869397141991097960168004152262619800950970538458893277694182477877682275113304591688871178946070347360811986045783877904472618270443679074528798034343865723859976993474999061683260531851349289216520927234506446176018382704211401578286838582986035563901689563240170609756176570876688635759554806069148644456516231276359535480645971212484902808733927403867451386418881489065629975349246440202147067627501074848307684402772271021015164478843937704003947391772492727051221916374697962466110208139726998629617211491393642403809292943849144730868157741788493534722223459761258713356364520479547724568961157105895710563169739684595942555455152270889691043172813405203005145281892292861865297998927279943170386706921034699605562651735524758307679702571526284799479970082534290709089553517814262413964588100260340113213522113418214914456072138515099253543144729755502324678167743767293905904699515274821343593410163014959028020086669837160569343008937167715557563197113645871673898728165799132258730931028154430839521515102920929872901720596218002938054658691720331486896058673073101489663381019805628805680051160510980574884046540220420631745833765206844467329590904722995276876110088893245979578440625005204786822738219790716653797868507622221780911899677895127924079021996239246892497780436671974100433175106991841472765257657043708608873313759808132579615116801284859367574027418989281830559828659284207470185156860205441823633830395198502101390396053351203144543720756905391559585207698116353062998380465770058642860361179121539007174513580157987704786294940780341795928086498278496042294258086737356318700094337781244448500059842649638915081385751726115049487396047818964028320925129123227738948307494016825945565811624449848506540368299591890662111217435213723241425567782406363942286021261939961472074385911440113552300675464731919961967653193247431417666629218474644551503231872309096499819600471193915832707813565242519267774864876420603866805502744827362001677164874549049591260713453924176391920569058605517514704767967989678147866781520675561362414345528944876931493177620078487107022961741829874754990625048463747245480433458001588344684472191560514400472426689808144485897682160683601757104172355753619098417301874831844895371416146357159534130562138112833247041443133996911156910231011346754777368633695072065628205698195007307951453513389092133885974101808976051969290385200864669474772150722195353416999776084412738144560515537786224966967228382953190896055757639972719620678875199356152169172074026124221961193526869876401929223587735279332580676594215364714226285868849874875982132077662939971074540873353796051584029602019278930668556007821204342000797013639637416542466125659479845434783990757577472709016069566147401004474858390149248401404925332042577243326303929036191961088372662391021512422592694368806677971756237426708185936346159548783402591682218835214100312304104555999981175130976585852408461937438716723166137959005996197884717823652116375178402630746606651455911875339791475752504686343487234454141845923564654269854487684508154228336972907196664337629819188844885401302885402941341255414042580749110174364102793771162638341076805565147562223760358355742990343288050549380929892811715031845483880127857680582697003671993710129801107621162029913236992830315194216378749564157407361300307922690022542043089597876701952990203098184225999166090064224689265449940077645498010789696648341014213559451740770248140368728004594111468972141819743948388645885806070783097172095397844062835505781464858483021145831699388851115145744062328415598214289834073853290654191431268305758439853926468657969781558393849957171969465065383634208012875906882634055355619091098253280687877821713115641655254422024889506926854073571255314989291524849185206881593784980610912009232018892342055512812421230178157786931324143989480395333993296778897719724105962360076405247289186964477065799470933812071071217161841186547397648166672175871194139858791718743974996929994171446395788746084282775857300299982583373545981857505251215378080137227537745338974366285684134976698608800458051592090988397278426033354816121990169087763882787393598787554765770941578381747984802332777570953651258041046278678134585723079796177200064881304028427139438792526858557210357503986052176645974666622317738828500605379643671099794369258673768992820772335600904837968330592022361566969910915030961264205861163300625995261768098053899986535740647500293687801152406652459506899050446364207984254119208626815400780763698276860159156713798878429924872500923574450952679407224674112165914247310837608997746704445978364987473864650681713047383109646750266895065990166393018220845579117024145464891548512037353036723353971005860440386624602348636381845952770675758122723130594483093202646473132459436579196578597802219931913419658723227012764137347178510346271844917279081364351879867441462166056474121777749818766786400187957587894720081871422083778125677067225376527112550565155396079643135133707768193454602668485621012064752607210948125082946586313219217764358766375694533462879641203031659747178381149681997771541188037305537571680883469109488762827841466470748980256885096286515713288968981409605972013067387278345048457098353544123480620182519475002891263876711246328825642332127461407736972625867804329640148990889237755906687820567750929526449493475332970317788613126057219417349967865665462685044430197922022328758841154762237116701577974244195423278064943297892680210150151121971303955259419448027959623447636465960793314699826950642483089152958360285180499496438612996922892418143817016187747622725458549774913444981747291470067203648577511027100262782204737200659369679933000056859596872138154836687880408338782871317936517314635631746509031707314030296210273964272857344818557759320550956464138133682813076298741982315886481233729200314281987096184947365993675826306372660860118321660624572255169649528995665010312745020297991438794191848342179497427118017943396137494884345044223817770444808340770021485639357577504266192070669542083458417647986332255016949275486492111571668950390307327543032742460364928843740579261575831289609251191556915663876994457185388791143716549906347632743011375257789723368548623161885291203890914867406150887024478903982182242928754622609343451709838903835758050126380175682999664771075526960949730138992969818581675239251947076817609286389161114216687628178215850738161984038315371425293200737551168644202678369508257333882007668186814213912543709633096220709160645435167751588118261058418155266125600849000175747304948739290416192724275949056065734532984855355053855526354746643953831635089279050293916068693046046311058523497905241444886868324075473905168859692794719939733362123802024868225801021907030413047273865148505440338706129724112370084343486323814534929961646313842670274517769075074166205814731880145670163267522420301403562986899238469772846872439657983520239567382860465148117266727202596459168451147060581265859390272012535240358305977769510093585713034819706227775985023409994724089703622345458729531001996630643703230719902435427018524479019142959323089064153702564328039426501642060318014317020282486991148646235620092275129026764656990953734524814394288594138609761540641041057386979445602591419825422324303606503788872322166646779357546357699361747496783216910490792815224876023559878762286657752306374651985097057884707198786597663913858484582046187678656593354066044257519809757098038187279657313028818868767716565647950187820861312114735441113892160628430074084003748249490753011287971206900075111758214048164020600860837905842309733908029058086420804299998707265592712720427561388115663226683076125012342847272762085345462672598145983718036112942059681776263250505426506631900965168940660272409266215383322420188679209091343379404317245270861635829693285891369074323209977593752024530082004732724465442960401310826200177968750936311390863975712365388521909838361277941893785906063450933954454734094726973269647214995595789389896027711819032554614525327331923554016933925618336082964949790892997995309635181451504169701132203628485894107910301990648550637261872005060319361175330797023276669817294447991891159962792167212376648536725934623372686296262118258471171651561851752687528380043453297913852879451790084858135856070765675794002963920297962556354980882816037076493686067372812924138491984449525903914440069560218712589930694724787632374770457188877306223557933208159830271266467112902737603823719425574940164610798996151521148162535621075044337364975961101874014861374742090519322469468486572840098995288489179019900879575671591794278552830597928087759076127851357528271991432284588667777823355055192773905979003951860154015980827744476361226159978579093844318815078292194588734606544118192330617595547361509751640754252604952510776006469442152909476444439785311032499273964477785241140725016523410386907075073493326721129250576848424351603215486204165038073501290110044584781017917801560272388514389212956510540121773722950016279768749105480062650425749456447005498547173031831152581310187892072489314667305375406835569996057871590055139455991988174248677278746975887237382213679108072996118229171132330545011352383448472028405602768372643416071676067485714867568006381223849448426502446380551429729556454569655372513801944551679229126182050104699783752006667648480448682878185559998062142690553682936012473362802540668899193302520499669324978466181854651950248437394387195458748380837415871878188554660301292602391765963783042323878664437999854961517588106560281878072547653318048637139509218915566158472091069135258135768910937584309214935767357691425541867599405396531864011535062805667367316437326409975368375505489554532002766072352842266474108181533805367742131627532083959480981891493404915241792227679924573603420209916349131900659977070111689669098089691626993769969189085259470191179598181616733780042942898700998197423256015646809810794930314839659372940977929534651805532206382258539955952312333029923849309931342140295146746583629023740400850433469558587952487311916898419458248953123016013140048420715837272506163083227569507915273237907488883884136641475492053875163714813911841924271391448923304405558068798004029789548409633985086566869941292128398263567368689770856878721714939226929211661438576311108983834864836755347129147100400512903641904484558603236978211215215018889649934197858524331768395414807299752122954050353575942892260657981697614674126259265495357793845431145970045631931913331525737261080839254500940291401971742440924437546348228547879107888049607143644812532566631163274885010630118247461512431113424615248909255003011999869618265695107578356045118308117365220293948084786839651091164502648995715817024200315743343072726430702038721101569754025716069438654953716422985838717354052490781431952392547007197700915311652877259406667758956618056604919214737072706273790579772778617713179600517563324214567493220686044711031737443921670016749439898907389290172938273154276274292035529421095725739639256750989697134609206892780186794005324383262549524175575980306887530549220906768183699924988298367998473082509835336021949625655796437976953784842580172136382410487851548472612925542458602403561020297818893885809223999713625931647550404832067509855021330847068556206167778128117404446438192113377456703378451475565138410503946237580445197617609667810455100554262933930423016119029165916177632590874909956108438187451534222764456335057433448382535764082354612735372795115654695130343846195847249849509817765364938866412234721670808269029236915023203920974802438313333790957375282485057492646164254966595304999527005463836636152719470994609130070961374359054999126233134431131544286346745548750897528424618208760985566845214775410779560686019442300433541841547572927472000701269497114152488231419155101894332658693428844206054999110866302941946193320778437577281196838362444811295108315675559294703739273682444757962398416428943906915789674153687606693323939599685535108264952688232920331365449150159863506834453521099822208759716181438426830025076121842695324426102072072300882475165840924367158317108255665537198086656871861906187086867792401615106648198067655668250036105391109410974562278482019643066687496114865442636559240668716243680999273979998687229348407844707595255451692964388666976323403657491288327920963716719681587694055269705424854324246113090630534866624891301204094974010221027818110797214048622430923971068644269836236523368407260542717619442254353872805625688676954169421568601326253521379253789820579567336365498934593099612157407474348961490959990793864131284474176321756517075425478803232049997865938761704149221473717760528954037370069738018228199322070874685086163952793795732733810267349222426467122515010134184180442761599812514442414949011390780055388175680417474333358913647580032087875727490992990636691272458845071834826703071424944297153053886586136188434651665896795891935209989171943291839507529413551000751275150883464333163940714901279055164946008428473237613137630338386312383775001282860485556104462480944126964919578535786249312766002037791889229544037441416133637960134662921853511509503136871289747114611567751178322308668286611568817031108353034893725150829996810095111317906318982547273717309755570849517591113423376323227955332636088224163963272210285190709560987299090734169590985437125723558670033655882440799509091487182326836621437005555387531936626579014849821083355622133402583041724755405259267358092581157599702921194136175324237867928727708342404990773763773375088144063936842474398915755720097182342210383078555452129397341080694754777781899690158654977930828173452346383316595641085246810126282691603725491152486735802950916615487424063133827596345246305091405738028392541820883579431888870185628265183978820840522804850073821856439427290464062782975078891461950929630884342608794908979463437447954544500783335433275530766918794066181694087529090624496843879124032115824424761448093626148440756872507518046097986826387665737501906349947761432148456555507596657786030593764203457638407939887235531345915880977674337141494192026125526145892478820490540068200199309841123867141615803310693831750824156880548898371958376412481896339006216337850925487884531392431219310270436027253599763408668941710419212296110851161029298883309994924095541936474739476734269276128395945154776971830492884465068819348949910733752991467356754933648766338762747552878864509799113842839020129638546187716168907410502045413996140072047614081845719783541348307110883679587441709260574612931658209139001141286813809231996095272252164374361403737685955077881457826291971221596146417757908949004084803348367815939936566211063611103143345120060465366188074838178179240318678017123697173522772422395142428111278948780661961073063666265000098188666869668222963007461534533542228259768669588127085019733647301052245755959217825587045988953813117110538558032888357109362767858745440259605717904083807002464469002863470700497791957305497958345776268718531236148918146870958904613073311967705657611495104206165084157018788539800259246867230396165066022012906991052506983170234920641729009274141819474558082004999109491214332284716649602150535782917424571584606804022108175727479070434864980778097824063259940842606458996267181951131786220738924998673483555266762659268636609436409448026991386428376693720507939944497215859581849720152372418756581658375016779527789604906699791527940564957715952895171838826650369383111394591950515494826083389069692009438805025390017078537941249076231223847848543341144858758653612179718914843012375122060949256815590037524334789216246847489082332472949088484789005191269672495406586715193764600590727507981165263791992726514766032268034778277802225329297919566951250141539450997254047404000049346914489894204081504086796207220840817265461167489547723821264096004506447437252923253278318638165996808200335401885750560001655941259725601093177280706913711534138145555231924146162164630320340199397548431039514347080093716311319737426143016064406810492575554474067958870493489190685900414077950481126900290688224444388095587542465317183834238156091744028239386014930706553386545550523297694424639900740803449286153919612990984645558013786243757026372985906968899061249111571503272675561670944986744416504627360884907080812521974517515889489711547510091390442980897145264232489933335421957175613821148265422378579568988165939932395341839570057414565437038573966180621244555864644754219785165025949956428067192812835900040676903696446019754600998204016974420014809061582658159902830056715966222135772450166435235745444399946162272354922411031510147108876055454728564578770516549908283691474730172666903471111225381457643754191387749295790782128265388474424390675640385668667382743425315148433525451841329490582599098381443605536366815104711492249280995748376727735242141411089937036299800783349338681498990218419061451091140210632589324708734335885511879122523269114862627601593725743760580759099444703410880423924881959095483611121032737780065983550433991515788728346651494419370464041607732080398155299308027325919394711863465522176085846796256573441645011751873486057169861782584835922298841532668953959653283001548200146098200121905037367872577091079130004876400806740458568351385034170126349252529328658027973719534676094082266374666480111041879459368639624585632716639092541263120936904991686131496463949223166152874204357170323304021180375047223773404272540599369212400986532996561457502204278900655404930919127552981782196495322567192618294817424250832504483463731571720589206710434940262812909772972681731919641837890786141307636460199984277620207892030660343648186228928274899012727461460714463871737884841540250722137190106848988617104944942889601607164587424694811085931040986259855176979181339036708295806772667761855397812544359475952878212963691318771413780537151811099065370789045118292101151259112831192794302516420604288672655067909210316467296366017047285231570947807871978093536923388913546604819552512833622698963955996502980417250821755053898344592931403595832553296250057453167261567989264344453564741046039956360715482334271441688215962101043631747347802149840034239926347384490485482233987984097687598455923104391119230101555174137100794106415175332069600157577562531486699450323586823894109549844495730273491566750965076035394121261516647399539428723741862016372554876149007451814737459601364994183532714513721553901757650467767264255942951074638280192743253680097541481900064115597313605255904647624302182460822851466334225808282121913841278122588461989362966785701332028213857833971958424435775240345611977376711695811350225752719326307983749733053776466281681302820491692556273409356480294327723378232985081688211988617749173640993114565762423803946521277412678899445451993225371437557010988461463156225533856997861438329963251580738627728845232987768376506720404217130162651033944290121817891776486730220288220606131401705483563437645671494243779065925016025102484782087870469577219183908829442987912133078548505667430703132867998514703434834549065394062392887188608572113197706818375528615177194568331820175093807281872163444708838737081495054137324210260871330655352433316765388774997878086387598791911329624258287803887473224551067565577378255448765691690737416728905823016008153595602667387914928265287075146199634241752031213485881217559029819780902636442349647368473432660791365963851154430376959207640166755762861937375604598132948780567825850239061266450599840951250512243793002517941072362209411491914140672768125014686259139197162077637932274601067205447639262995272401015907214970238767887824213294102590522421191429276437017711887435205218913961214532202075586066127792528813236346938743913341674403211906937781163343116656100615325270494274605515343871081189278994153837856778355518458734249466111125323152889968363935994673826399582188548759121059855539290224274236551222756316210337240054259166987354831930844186870341858664081242485258092652814337081449454298747840291008299531971615896729317349607499568222939700455078376790350775302853243942685053342449023681694672242140504436642105017137196815571748506820976288569724424928577963755071765813746189796180188366528667585045543325581728773659927384536811568064652656697513761023626811689269185803383646719332699753635342034283922146503232069064464138982644124901349880912336928595103088558701452183361675683565469606959798908454316438785155093460841293544158808257662252667947447200523755113139869531161105464876008404150546178287630469981685461256751870334306678243034874426414244565535869963977138896707795574920387395026196239905162316391658694507264775971780616108609089773434382367513437628273220401005027840295217731009264689491868620306162868708766442423166994276148961261150812871298287058219447275432787563713696248382668283498910637465243545966554832256119174490089916240194892287621338990688905097350317995680485023511731150963110023334312463760463806787007484545226942781715621839427102849616651560092307192161119445363820848195406310341547495661925299466539718820889290817458350897639172969736933417687324858179569254317996577463386438985827819484322755553213005484521112539478600620210746919900329441412569558989185703292043128219744669183393307129327578912346332215759523095253581982203698007856183968452289279661191870246773977986335591737619590864682413605053963700584519633538774621054678047585513926493090806688616577566679460240159449418990403409122872765197773299528466619303620430075256959619180028570861164476528519808051647536814288032280467361557057563905682496294435464974449075845076276287445521143368398080511272359564862590107909526632391192231519684183912807429550138832847028144351002239813321933933979608362037720792996870903381771987357716885941930803733276747370952625135490588387307251715803690743869589922715194959350537645918500311696176271969929593060436288279039865523871678035772768460302314521181415854142043240753099633605641861651028817279410318712527989835828595041068306721350444658780302069656950462643703773917110826890939534940446570499511676275415686891369394034030183706706088446039718188436393172814069421257385597524596600937541081664157950624791745625591706467187536699034426130768038289585584112249913041678017922376843833573526340399386858583634636885291637964488153553204097330041645769439962847386663025972985095027006620872420741448016839480847973491139109709868229368681126671654530319532826182703444746330703233921104841621910229395561903126151884522637945500658734537726348732677414414943865038971160475548685490152001489316822234507453045771270236113946037455819890548049364458040936977795319349941230752592814290499999008890192479652959522678494846644463749848557964591150968216417888063089790862675486461724136400400621152103363130088243502074501886677527086191039920213372093725719548868057468617250328995940996617665065431021808537288749547424418426350827897993279602480109991442822058487502318428611281079465249166869418096670455295604923995069186343246430794817202549719047677962748739144788379923839477602071721715927417545565310962451671014390700600038883099521319876857899029864616854188563366600004650147459377612708949671218903976536086486048443749812277014920063298300374069815245858419925358429402911831746878559858103418333043577721595779385886405477541130122910387502894039725154254641547091623959100977885372197425418981873960395059235012421550008795340277526952637802414660958744180878491227861977873194631779953180636500660829358037627544299157739926423138178970974659075229120477913391956854696405247890543697782655408044824477539951748506060798379537833302154644374366443718883682110399651181404386872341814795475313402215147728210257751721562746066255128829829802887068258899117169265492058724395423813229235735246521017092420878464466647307094055688096269705920108950605001948636776025683591090057073797923178021533229437859030980958171147750300817568202493975626655212774791196735449608507304992110769576155297324672744201220345071663007326184384691092875595899365493952236653339438493727926437815939780762274437737349506670228796542449090797038367765619132714330194848016419194358385890305785344680620972463278210935067397593017917873745587411732134263920612709886063157014945437002182522787179744924384119450146618032462913642746223508737864138433616533676361956415258499197445176620560251824185638415593589241192935584798745707526622509059969365027269529066277834097185374910967397171992058353980123691007979576646868828973102603207852869709996066358492904270491110315799108832710446672970045234081105730457504243622387964097061622359830909193049612772750739753342254411982984940624527839016616111627598264359183327606270242606949532557051037433856753907172815219959942083496452394077804304431283751039532381515991514337946978519280756841056797786854361640397435238826209216528356799716674064775345873605620414084655653816114727793503300199366706414146810825700103789697227066963524444294071232377011125729092684085975860617064585417178662634967178866110269930886127107383843739248662173046216815646371991327787061442960159579689553177658681473716871143407412665935439327238228782135890865027093002577557245510050663601358218630577603695281281288109011765250361637507694098031146611676100629807258225182711227850526922966892048540853037318291619267155704492500107278275432810724023255115841726230817340180374344066371696627120822577732181433700172326430723203501462792162833369559549778551587552998757051744807503973699556282431483606952702573638470676994762823284513013095811470903333590838088536803876415358258443622018371651543529267384754728920208645698518257350756893113661783826595714672478235150641024713528643770482078272876179352981672709305820928134598666645253820646072476114236994553501346100262983199282571502490684430273306064995241484362981429632978736811810618477333824872802897687774952228652661551067027440990994617722219902539277244125854012190216103858947861694429309751690577052855209721403336567778719690742694476307409285765455146771012735948029243112422771741174161479566492257479679112712876524015881148442868136374371122790694676570931708423729491551784975459459572002599441708889124843852336210915771283700289049071622818998004447082127376268489836349563174943634775638921299796461323364874662379837915016571041872893089570304751032650268669748351717994446431893254811808686295188947774858696026812798111967637320271533558163943164104036489936343748868110446732039045506515335131315641856600153724840705706353502178217474112816706436123244694473779657030931945828816660828494621167241518589865969365946459361356614577722120744889582222929380644026559005483353426840558021926314573528699364299979113990267247902707649742783633181260164564485757420681404794470300486981777214398346758014970356880752322825933332554649704519054005230760398285309758609035111634098156607597651834413203613176818526238370419679753858578083550249842618227583006902726897185765293017330350760431128444087599251500954128145661665896353410900143674104518621025576576028305290651493663008101608647686272041731939220458732512483589367643303472465657675996747407889694827658132508237826408304423664126243392960020582352078427805031103492517270286977062494218856392501385461040677441677041437121825836919650417816701777290816511977281826728885115745778862811355600268124390992890654561022235087870066853300045394874646509587133572651760749771585037020184217617914618669680527762168560087646628729235342296714165082847568898313517462720145392491633200377685464260756810311324296801263218879667505222354304369150203614715590678996011013829159716552950747038659808812071986095836308879246482781819098186926281440619460694197981868650158062189438987134630943653390006223974673953976711529234587197648624773272716008957477520179816984037972164438810197095545278665986186730756927891487431183731912488293606616100658629793134873778312274138548445223619281645657555650352581838560434837329781376668958864445704571623735060673466833560754549718713689066509492112170198659233138363545263244036548629781222524547398692271668387267279230576090792740986333404060846876794005129854939897286601323686457948191224220055665872330733859112221803758382150713161078315168315810256799522889582212583446820384588390011638017779908976724717808031353399197210014036204267518682100888013937708919257079519695420924662234986036360349558601508943556970778807738966321204369298259270182562242513100550504638067999555106622243508624314545109539469625363952132336726549780467946420556751494478384917059383482695765949737874533962027024046707921901263933470191025794707455905116337467750223146351231537048670917298761995265624121305952352129858048407197713303787221503676600233437305719769773161324130757984993350480884307666650374018126870784344614742582049450029762233334972537412495845364907826221239709816208162380136727242490323235479221359115872258283967443009685654727691725885345098414832885173977462261686200438213299079078015418047263316172748493530933133701925736681852862219841580777657847608033133140490162114200265468119274706492819924138023971585633058815764580838883618869051969204752768191728380834281014384861318076538373127154345825688654035132541609965805148735446067771807030513543947001441786866731645458476599653772274177409635485993801488802170193040679063870383428294666839723557099398058055645291339002728457014062723804896393520963928591609935614397635216635897689716200781826197242832486206205640011517990460764717618817618321354907075936097419540403002769543523929912849983507844400056462816611802901514411631992227419271816949888142664186930359370047321527532606915723806614624275407565653404520408600816809189699965838047069310398614899980114126947915564365094090560791162922028474937561498730978134737261700087209212407780661845193139494325403143462228678882953178487757666626983221688858681387361028101619803834583335888338304620739683252042034920263567931601188524658330714453767946759570025396556323277565880553469099097476447712513661301725512892038492667972724468241817580051255654469345188096017086837296394257165744501387135291656530245703289723360577583692184852626647673833466745012898343894876362574637961083688093681586478606603684437382055901642249353546498472901387496975718437567825191878825007597942094710695696895875005480133307045144379148998267740326686037140579005567195255335967361596413510761739506079021344486142910368286087363562366849993556553568040668874579027895506234313908634911805764759183041955544891477772784827670872085684875451226408089292511125485338746912480976062741304696221237778326204861112522051603760710111744850201060825288870987841964944286964303221726442198765473221756035616487738132111315738265512669905901781177259407269141525141869783168045920482948219085293269980535973120174979533227187952118002275309897158188136566952981139279514220568298489006442672060074111652711753275558917553482136724384289340961313450924063888740675977397828385917757489736546884843470410624670765843420242581298381294525666460128655931536102566053824432480056465353502993084063238102346082439848730141570924378417122865556670758696137671607193166564349152357983009140414446882223396087325228466157126383069746850111356291083553605819098532462464288352993538804341209459702522924298353118310483037048415418107511408825220962595143608750855840303194822464103536795564777793973693493076897407800757858115360189983557450517293970511467289114927949822314456597277578710923911506442493365935936367328052575647191384328242210945596281931149791275351268640941666767261981802549537720833550440285929866759527759095645080448150274223921552511614652297417809105367541594706729903162516058686873133213366702691880398615017888246306701230200999617600119659860917931711291484365336244331700878585870217781811704254152727965960937691000589256285536963452926602351392556617099638346312537638161331541576665139088732032294214687841687995158281479734829128987355153728325453048746331177784608008430743497174474550460979047787780251701116206052541747386084267798134007458230018462053481789370945225652803370953034777529624197708502279837384827947569641449057450627945916440701095535947700974936598407373595897292856294259558622506480341417043022380725273001631488483361820008043913048082809518420296572505442727727225193927635841173841660067018974413827511093208811275764169274252863649079370114512983252067495102854399250231699932560607577568976926888576001445028922143125306683868800128049053933499732614522234605756071078394366100670378250479783047455271065261399493694652337607484063753161666783288992598045018498817276766723644953839625819488586826634111857768099551516232270468386369676242758686257427355323356841001892311592937731674696721633766152170102651568975242485128027668513270955349480468379221573633088893048227019276348721440833050668169561320721221799563715065518997017421361771836533955532953999569112545233421309944540782751332512898516654859023109823026633926333188741335045035185971367249894651947168481168337426186696708550392602830579242216732563413707795394524955510982831326414418603734318200375777276552710379381933898517563183479612161205656309146415719433108137608710946491780781151571976296438123191981413286724021609603711995169824573475373854927158969409381505932336438975362884129543414776247558319688201824741056773153448633779473590699136880748585821722850680652926901394911233797536516841994448711344922969427722090151675292398849916134626030430075633339264619527461451952559833175589756319078044133311823452460766419509324144428741341068057457931772144195965890147298052214245005344226421044733477538059379241678425502295265476397598587412685893938311703738453006340839971701997684707646586918156663544449821339276132415426873622885768162145447174239210430610951626143318277107361858231052558359648347890667710290389252679729208363504515495189753917986751266168477403996332108253095079260155944487539176574080220940809419473757899136669189820162007519740528403989476208123569957572962711736213469125771726271854449741218093691090040016002685984917724711032891841349622271039479479230944711158973814556740655757222654298942046809779920239641714556422481626473932044392482151048219751594083884522774843755836232673368412968390202984988985634321260008708981568918324529450143262665139972676703733307038436241500434856230140872523590727267544693374166207214831936740534087970768638718325959567966186728210496043099042097316048754526002741358068322579499558927457212738158866917307095090325293046485328323294562554693372452430233702008701797717787328353863143432908071397839160050519727861402482754388721351216346326217365058324097501762655964886282778686399296927456745301700184045008628755392280079372402929712235569910406430813299387968972161843697344877286851295394452792981815412384438972033397545281814720147352648344533826437492233526478390140912027237106330364276996296994247930955288743158961289710004635847351553752368678546737831680385299859385281312967465296337660840423805274256966309210713412472988636303460779523389714722193535481014956322771862864891197134478778764815236059421007145037643294010457051841729161179414178107131794868249349931409634753848975645795379364039276866001710658401062657296253498005625290142406919100710243470190467712058062874332033643834365025591137819344407650738054062778288747947878701709690657441362320922047096650170834002000424008706520445970098288238740001628797856229806755217602582249598350938341106589155025580025896160612547944429736035327215577043901198156730039673144464485235864200962273043940602202957006373074268075056314852236233801932867410121289614747101717140589555637680207856051324689424932352010154697919724088850296997428847724611484457806910176727255620959565302797760816040861302868373862973283820665286329414942368554695262730931999692684333123246428176374167650417153985825019083347798869702059219756275229243327440608785045578527345646202564999374433542516283134090453953731464165756524607389143326963264100746998933955248703687495587313205152309182814006896427587795934692579528752343055192980069666805130365621574361514698488563121450024191225755221142451413915900531462957603252318065691563677137085208150538738382374527340818540951237950452459094957443859322668390423087584182854856477566350579377916160516818109213793575803306769927715562142933458303755108180529783084981438061070692846383143616227804220114346662192551655649920995115067562399081765583092830647199618387910998963100963431721680188544683398878050961364980492605691506647531926382150050137260216824881944403296067413869434905464481436624009367643316639175673218154097539534852965720210605775236329284774881166733721603679690938857165449984582171527207822127528480068330652114555556647903015699591953826814736463122532637454526508003680417623153693033224735853966122073575313500471091248969843018240833178375562102970450516656084672958811480463809811694918240491560386148650238514010208057032613697842767644789488892797806558298145211294296232135362978032156868818992745280486367332894653474976682126366515434953839378575544826800877527011227658577151113183919406849510732027811338453278013283691613825879945466797208746417869804994149663115509021704947015487103393093270389215795872204508037014806369559718282919794848536030411046297145091840118920982566971724511966300823610818284939089905771464693520714833939093993835587792472435627939052793109372729123431012040266694670002615477620864785338492776798016073675257111653338587593618038525527762733757459752849420154200950436303202569772545960505527867530950769517713950400587055067276493687206775255091518578329583416143626234281920838788326085976398185738470772809303262650335082546493350950223487265062333499991930229578013583964331540538818555467412576519951166604730470364392389603804310122324662136464783888222763605884169504264272209050498060107622554611665367545001411499607910402279440120185644296984983000965298957807452080572518240552799625970939753745058646279469867334650523384575116557554523962048941001493843950742278696105848534644993670220264881262439722311900660404986054910602165346589355163323320530403134253196494953791570899676785540207759739669810761550543683461403935121172385211254610337044019361165891793650807354581824414844595366227017985070224841071420643244512292573691550377778672475485094448803334278701748804409099315340017174565617649136319854244799780714072275870082618786349417459510190616806040497342508166963754736373333507674286035733364640769658046113137683830829515330817221530424152324329988744917472826313040814574406665045306685991616347956163661433527760406392825309522603279247135337296105629678796963208597694493585361887716016320455108776259607821635973518991665186340738493065059447195702187930746591202023256611578269557161966828488693448454553048485568994431372434959730998476430499038722133598079569120094410321804152985630500648467501497921072005346129924090546286025259047433621553083362021133520359279238996110660500206454477364525652861267368925682202379169374423084851579476895524884776710032313796624027402998332914067029101895876398132022653423972631656866780140221126570423013093031812908379790549995385867427125888282013192094107255364604417132557677232773608285235645435054809886748019548180777602079249469953241585268414841797095088672376565549737744029563622981864362637129703693788542138439473324528634020926061784339223024124008191667951592247936046260382016757088773334944049615480119558371682399671197766844992016294384148388693575709989242363026415610900362225881220366146772839112702749721959158585677744096959496431616598166690348165745548486851356722919161705903516486497302694514141533218056996571221222802121766174930351756564758473554732039402224317586217389242496004053022192430588069336926229767875943429812472988235926724084317386514320380509189327562263107274018305936796265200135268302344572104858251146396073269758873127965319992822576435394351917142451899140224447912580839991673087297139711587418316817972547757238440080582980804848822729460384874926955665065842887380222204871488685075329063331365808077260352387937044484817458296351053709247092500842064156759742054062567302965358890433344109277312792782963415574148672440443590582942315305993383754707768584792396718404877709502644248521171324043678314747030680480189039529884083409622128002781363090545473009739444735967535265813579444737421712631345170866127242327635202422117473601633593581476448295628689467900634390861355396699691200610763501306251857332791162989205285662188938082858655154070185997826730621317718291663803033012249254001454259041542260613485142317288390583420634729663032718788476432526005487959341719020275985933178327515101426005680354348063564364649550540270474124832872053493877894741355218182194101464319001501543537417299653580689071499313412783672884195742730745654967104913319096312758439841544049820108890109468634876265515574617860241438630369018628063141373299395646926018865135641429488177306312062140219678851300926053915192038531075400752414463026035178803822064965269632219696377691088272984909691834769864718330133652010333297703589674058329330716578179163792145330852816510761443233101115804524834175959455897514960169416883699455372385836751696750034000376665851758765586751273316182412032983300707568542396731429662183193924941803876616431738879866492211354056078531128576585879033670499033223371566755508504037864249498908647234348239418236732027348792403284744621532236149408640055345193257324593072235031151066892097121716379475105126993495990730536055448163615416070014982469643195048740833899339516241782380877044904199105630936521030953130542174555112283185385070336903596283589823371949392745583669690191108120774078190602286642620084596877926662918598517631300188324716048029577691921170226904802709068329661661086324840243766503727335218529324962302144428563134059592326119988038002765981462754318888298338792800775404699488497378792154488422801920135348481528566286283053442000628814052691780762469206046118627116820122410240437942561896048761868825400564774288013628266651048226975088784955463930856025624626395138504141454526929415744376790213609490156062903499780578869906185037603838944734545029418665228460530902665202164047768958522547570796864135582831423349546139544622039365748464177512390075486991471219915509171467329394027901812870702599472914820134736500980136545129263780266681067193688723421247250414009991141539668813415105305339559240423028276177092827642145720470408694405696376571411173966522847084368117636354275329607833783366968556544433609261495734221645565762148201337463487684260155559371497654937937810207028754730685898661854269007697413990776301458186288904024517797486757615076342962486130946457156910923227020090109826549382089060246459077548730017547378936030875253186438273263889183494042001242966640114457980874872227850643241148763700669723541573071415653546802781213277993194812732595026254438789497195647295784692424572991240465075513269236308507003363984071439366724862499265213917707383911186025259986724933722896078079520133301742452001785081267316418987626453502025344280299313262123175738256981851179354894262200432598828932699172126910145465795928879073293424953365883859453279978924771456248970689735441386294566416736515540611988577436454312915797585215421624983134448489824332079733095776034468151416765296420897988656313280024987326859651539036311403280967387620870739660588589606161479239302474963997056086216404555053575338337861756983138085349753368168656771776125724165033053608343198878249985162536336638703522441553936978893758312946479491812707854808395127143861337230720715781434873628131567255417714935748416284904348785700051038628610095486529647494203815862417849218696232579850618034162162359550479050612394712110039674386673026146515304974290820487965399947361722121367294929301116637762979593890547850890678556643502528346391384184311119501576237557990857440581680660433388410921978785915681323730064793348876471619279490624297253199705983972070342134561349010673630675017387402185382783447376327402817374970098174980820252468714756169163735585803212942920748647387607277043671673093433481738066488122716885828524343811425619237600375507610217773249826198106101188695072055665673862454124873875466195648380349198439741996751214970002685239234032313905021181370424980151291071771545933240602315798761560723389410084916882250553064771783144753400587267585644208348110853414752443269026030178726013309231700951203321943978342764307099826917618940685499119239923592874527491952111875892920510944359170563307008472588655131785496848740240604604370162520974248258072694484296918465551057783929722668625519528038634846551583910299471725832511730797225456353220489779794370251561679842690536277357834373544679287451405370477803426742782748079200309705764885145462985985725838165187593046117329329390788547439420416173414110499345436400429685518289279019731569409641323553311569735830644548836635576430023121367613699560844444074332962995678605730768723206885710497070882935946985642138181858632153533542592083880105606234290854366635453916102256632320065444945057132292616283837946265519618854685825654085969135373573037440316706316323381666847894458543850059344483299654622661535598003012683972392110575990668310289554686204481774250200733757777229637134972878810992083754889532174367233145186298139735396598825364323750570143779333376107057576422021364785314051121809447118120347574460027528222068131217739136149504906248765415175360013028760259884016099981057027617643038416714782671944520614439614393392617301578811812908706183431685854912501066313296133094287591395932008917623401096269383397946994832467758907568804144105552964217180145886703814129844044731568091203598845730808855044158963599281749726765609718236799193157527106585799926795257345446670544670299860010396982950030334445522359955712472947756350182617509924397487949228598147106898266765595509433151012836326070708301064361533147050764702474560512666997563794880426054233423124801470036115515264848701023482368779208373851037958109126616012189521864754457270986201197824917644073322796351115249893607263462158867926161886942604162403362473564650269247249266808055654434208471957454050537930349346370983411797027387455099202343909560405955474642767613959834616346554883127168135843224108068322488230510373646900910824292117695598067325391310400123863967851033555051073060313315627802634505053764100094616019024752297088423670601695117303480243099308053283674446061573694637343698165173874433588085799375387065238281336068323837236454324582668021344675932901674840702863130085359883053348318752164749687207383614815018241814897032842870533666571971798284100286503180455312416364278088636606850471042071837597894096186507013597636372569068493260985735148245122580581687974991343023537817733415697838501143352584585607779404797192428967658257381545236385871891834622770897654788616492796595275134339901512940500547618027862395402355452693366879140760446470883964629520298728216343277785496417478903857461876228501341714657841839661043066752289437290245829127613936844984997734653297931618477554827523682374941530934013679698859597005284107946057805380457859546200770627145013275193582389391037067856557997838198614010969268104043012790191026466228962602026407378032699988036198639922828492945600958530592545050944766090187859916632614339794054710835432636931418260278748592504336786427341162771045915579085417213150755157440546557175876476246034824105583959159186796635454000641894795700313481295688513626576523503052098706952162888633946560610351524830503498369384372051409070392379517263767351170753425733641966006310772416321101692359247455679021112326032572486335855566928822702262578206918518681149108263311002733920031669448242844620074615343516529247617512738353152559549408774887017872043922658292578133120750457353840932898143016732498404864368429605296240638638168726385170006207312230886060629216937704131146227543939294803245797566389792430310559941127312753327384438401275583433429663631812699501627906687763215882635232194534185433734083598876432712742497541277020481032170342010491116984193154204045422710057307072146439426903116769957908234132616791002575640312696729052150534668193932911142042555784584913095020363345989104579781897546767025186678199714977261926261007525394455100045782091499080800867323768852853986401342535719804498496560075132536715094038177551052946112852997708260694593843315071530470908749270725736813576086280409522021721027984488266143702204167854954849029456162753433023853381059748640873026558206049951403015463587590775559431376692231651102674324504137905003724423873783630133602115918553100425008649067807325298301331209459305392636297259924906917481041413584620981187460210631014853451930787873631327867251751828677452109406824919931973496954225246792901081071228288990883483503144890639966295478371542934666428209657253597860120115085210294991500036045779517521218682800378593606989277456375677834741366722118723726354190501555444792718138514605879611744807600863369042976295507913644456893497951101158318428849920502751896089923507808815408348730285034724676166000838497125797329463968286741500093292009162221292449814107903066447280115596132708763513290558591404201062910308310978518175086419260753302040069874566454140449128379248765236397825243487162102225587275636111212414803087499775367256192604618614316380676618127142244585332779180327459250321073541393775259816310386106884731991984425079512738908411282712329954030879153927939090040682900016685627686157834630216782260800037154836020029471421106794458065649029316524261193160947070764331259445581223408466427274691135296327913393158091525787667319778970195292215471177494839470486363988851689252039000405655574973367223553837480871495941111083530911461494665516337237169169289745097066489872688184624874959436087283412527867116585075261790753114597591534602371245758373179222554024316506860902689913584193625006425509680727992861007869874379412626655283200290566514228334482670137628544972157581358954978724434568522524258774279173268383070337892431362797917096581927166771355659044202809659751034795352973391391483956967267229006685453939367654687790632377700864500901418863667681455492564939366624143197446875042184283827385317403854236345145080766716953400353780617842384910514591603472966797500018007580575598789361715292469599398848709115925178219838716588417688561162933986696892860946517136837903817714484975030462617675962432987305965070628317384802526983009216550813958216403055479182202553501073931437805321364176500713654426833696273087537196831700199179836749583147006544296316950961970457218057151237849271698124504077733445628439802077861292072245034513003302861119943338182901107934985107840128554021980712053895598682909118130883733971917981476399497496353001296124503156811872351567435376107114649826743493504657922423925868329220219807765136694666036116794503096069961564765790612450496528754395407900879114502327215737686405347921575231805059008331273822880944135436934908216005495651050397852992503955625703402480828897000325224449573864379891100904294732607180619321596942085375585548735702668682315910049613311599178542537799874941746488220332887976176679038785412145862411466714031313027469143312063467028049411729637074455184468101734352807670129473475825106141810366323220643653713358210202183641212301157016405852217912433759931872060690611353476911904457788872057331101783175325287452153844945090539805055272660900598821296368872189079883054422793857596084147423017326865501579708032447906975009830271247604882206546081921988115134703818576984973783138678618144624998192509329481388371840868448234261146344500710247075622544532187042395451869023379177954598698302121680461130190008138194634778010142737728340564986309595131588975651715195018260727879241481905183881117435736560378198943311263568222731135397955378262921289595376301319521338895156215584464576204359032763080995543497467700296761118298465252486843129231881927053706875984154173306942344476031808962091194369707808738979349255343993574177310138872729023455115399436146466669936553234567468024253991565454089063156918163798926819909708200844874043237924963446913726181203097788411050552372430638787470578403873424562218695929790366806774408074109394942234268805259011277243401322197997204906572956519987503638017973851981186470376965469789902421424805572822724132377678368465576536083512753076081875410137216052276421116972948758903477243665997460625589421571613578703299457187922736093553765657243948710295042858695724227349500038026098183717606845987339496794440505796380110540198732823842188894962250315205020135359246841704101805486983374752018609433260751286997844744021423904184265233504620730834960664585100649136301816976221928468600714601608782476007160487386816953685690217960179673484553428765521993122409712940565914328321134707599547548341234193534239263351933715681886769177304895861208125025835787467573427302506531878617519702639042018770305926427733792401892512177276462665285410967352678062610577681864655827661946807313275778332223474117557816624092147688373924883337536373098134966661843221742331726159684004857031393369684424430135869776196231866810967221233100762172983034576001006237176523795627181117230738781585301776662513638161945925329494713170437868862215658055822460414578283150382583529458511252542203744086578981700703019753613345131403055428727497578542926397752912619067840163541645610850391525903105172562839291387558647850279894471824844315755597237088246923604950984159136849945712133932901964447260196544566466780758016113249254351862521616136146332264138717993799898536775814254643696064843788110296507775698731357665317039943113887284974382747774548343485966845965487861837048833249391074556342117952763527743938825926031293233118904772975682000819364490966718344193506329044793330347214420288066881303022593028031605181492620132435128974433384048062470031555344613894936626041474408601403078368320223681925539000232175668161092361926630468774414606540561028299533671532230654117017066256991758866872965752035770845091567230670909833818622408773452379438435926968421611820938216962365435920617080522174340478651593340205412267217971594343770690736453648209124589057122201094701896322631782853350752884525983162572339573778309761151197211709481276232819264688213303129208967395328928280071330861931119000844109217561091635984687401738338894063049436314036923465801703976689086902221238548101785760116310381929632406266500383022652901810337973425214120664513324175574808019998681434602814928450788864879423979716206240543944081856202445893855040069336432119144912965936310946411868649582930093877292980358035496938823156454587733760601760490411208498759521291309454918304290539374065970842381881033209810741213993909789905319587876167844018767843504964796992467839712251575732581014475282741848779773347353174852643975688213629504498577044601464805673273709954691578970082787360846886968250699405694338493626220350717193393835925255803983318291311169155693407586499116525813397955613878513335079435362071021443596461752228395478079899532340921069493763667194104571519390903429186132781525644312047035967857619627271893237876194881887923181709016091206520011152973200886354462648121629129376410530280480777685330440361279654634760913709919966937314079193196316187108136503584628328074656148608071554326443825363579656218022162949977992125267929891771880249964062972339811064665920862403266525779576011173091841415892223079136167337333876809657839148797164608894582037526747883922285484808154934969002458427792464485705999622470417290305817464146390089244459520582780538488267315755282153784918206037678112285029709008481538979189873873617147059151717337682472712680891851357952189393695223069046138016604897341100905574273151824771259820583456970314975918318839987469382829480496858128873689169713990442841068566448801901542427769572497118960325144103116982953046128124684599170942340023504664571590557032606059213536359390173008853514412959556427575359026907677294616753063563397303585489925977399700743441920884487592045093600745270808947715502264882457958755496532686178976353871264378515701968864996388020720026664402420533205168642680941186275895730956205853368042395570820223621719821742590959609861970213869670395451337565388805321370925743247858784384753310638845432134067286655072297584174958373960230407686442652953821554090489754684439643498123550232781744483494968943700068004936450842715029138929675495651353543371412749821097364823010545649195182750802352610568800888549827811478357579722632230568516246949795808784353427043005088589125923001261222379011604255872477419687509749176846580631003326059330740253027704002848987357578401305160970894549023606042411129730670560381003272098967379196366625419112098456731974763986408258673882199032565852152604821786682658958004895286474165326885981665840471306026362505099835056581915364619632662732951449559772051636553403850185573266405092108411998050778650233725070336065167929324850013602386734731298206358136005260971334339739189229994094519512636818215276985185528968349871599579853796081272094166993563643815810165081014608716048309440689375286161552779399371161725537221173673515303206423030286109341480020187401165292357482793373412858312681920337026171534714801723489316814901950487797100020384142089337697571830387909671410751137625090522830299217896118200814179088323099559974223001040555406404010668727077416514152794706426101932658091726790300648951411518459497489924935512196472947634912009944268013902591862808764731271637053449921062867376143552910254570402817492031155811575596264570416173124248604491162700158450583261952200141589690181264772361411664688905228431230911057947358410108049256435109026379645349477030197895337058981676913032806120738247022384235986431456681579176739779483900846394189536940424526319130725614851175169472840516173091177574786641142946068230466494466800757994089223111947057925870320721671160356066522632874755546686936069365257702621133419414123016009208578885481303395349025338216017410790748180690211789658625969882361236284014985204774545945349437100394310426672138429139431685061775809439718415061645802115574010909104888762582721500612574502910737519289079103050148951881403706670300318866898829252803777291224208145038865226281117423576385264389349042391159140868691588558930315999328057690660846494033887508036269529882576288455979262038359202418056625911293266721021230776255933894002633202447738133293519711461011701070920796258164145418167500722254510874687299413035141120836619798902084020574767629937264275474292171755670981696654077325500996614713083455462915552245460124309985951541123769987173780315837029532008488229297315419319959929587161210157653205117564662033980634615835319714366525947700746948024315456177466895400786420281687774008455025261032668725215325321317471845533326426300964459698329842866269270091667227539399449839721285437566424470410890227534054502543503971029232884516812391225686696760694980768493089481715050274519655041156146921869707228051774143400055718395277915931547726486617375686803641646633448987726242348261284881362956882059286600118371375986531757336063101270610568128224349883391541372084269386619524769525275135012629981278650648017793262674292098548684602730578130654596645172992585842745660992925958349504652959937976877720916528277542668642980471257462844136133925367491329125101681071316130804591776650192372558590826104612559707050478336096207451740073826746192117514382686025602130665051722039499243872842481929390173938506654279928511289330403872019751437521794842132056353773680380139430102836100200536450261097497186210924684138237566307680901532565935948789963654890364315603062099308265473372781949104269488616130227426723179741151632760964548761536507959163622798950598154079885054942268252326371517005609287203112963200304498731405880407499977638401877644476496450191345654195853392880833317247009199797859254117732617601393121904647121745587466906356483118959190426778311281180837825743447076464379265236100557524360425856746890562120142987520257295021670632328016363306212965888465976381220483459473943921255583217246914457018485516197414011461813173327094565217033580008928235800522697764797333416817196782094674244181972942271180367427377778601729378381325020439499635798855435406278989541825795696294305161218674106758687536726970841607447616309466216853506521546978776869259429320298952175257618743628397312314892109002128011070413176682596077721400001152394018112837650382783508159950710418855339920329816151950647256838377858395135712010454788988873207248767071474640813730757634697666479291294349601607362868364290295614572664806162502145630048390868631139438666374760200454986820235329919188984953792365062480156811431387165208443506561223732881133582372382270826375946470965221288405700654312204030864072143118053419434765150415073730837676091865768860779084436912719911548430316358299440459592767762649562438556847496050339667827180332130621935427421945355873093768807938900403592669864722647954137491893631085464741482057163746467513522980065190208727653130233694973128921879317289314080151345473114520549887426308964918772499944600422537444169826905333006505486415433634918427581352370012168879337971381786819404623820228938769177978876218296617057080267057761332104277797843824108624064750485212599192920838764040967372243476894347445172441744238977572748052580883374956016510883807534801356073956940519275409259867900355560193937013224842074847211242579076481881399164698922100745352595019570596752472779044039827358109323888080923506122006357076106227967597469112806033070444937813198882813471927459156412351355639683449221885862270859876603640309322550651653482636414339868358214091868418196943261730206737469034630729538496408079626326340685095323505021780010232547049108120497444451869492468837228963682100422496435770977180561446413710941413609973286641274967421746721147029651992733707527209582044851650200267521576073900399649772469672588693001401964310392040391995345522846045065873876470581717980073794960464051432725960653697474830671487789860592091536265488127829457299111053467876140505014866267061626004251730531394856479407650994760604829210063131674994744425826378920969132917630747634885053589238425171716260003448823401045336285998344670146495469446156560139361171451247613484396227515822612587285519761803498544765540251755384557114943036696052773035897219407709417746638040934569553226796150323456898253054197218043027443007253903599894701536349019094653980831817621451866505004574068981009324654571748255012284997507111455579225640202463460707667656125243755150506070022011257375368806154305238681977520311826640475090346378348796588936927282916181375620825569482517733024417449182976531164694749891109345841880155428918783813414007364739636154652858703290787695030541820173148864176275787491394078286305714644136229514455738239213749162016466690924658858050219523073156534284751805815262571623033144702603448252166190958183456789753937198855289434890754997553226287480251602237465307262678234521561561735392925916272557033546077601889203964626421485808101218458741034775571076795552393350000334482521317640635912094864731338123155467124712888912829405087794444477307019511039478749576525343140687432987625345817239803023912177857230540898277606355151855630957459480901594390433725166260303391814795618798372191398204588499007483615293144501151748384218196864254519273627569397299569318433245751036410503098948333509953764602123025936555383281386405992818968085914177689099771149452701918077342807347463250425868618573653393797849124142628164001117280586230450481665321796769506802752348933831780183571087674265563187709597944290574415319733755257541979698936976999066230108930385168940869264246036903777627356436886265247312120764550026090692316111208273906321765256462501371253508649656833509024781964054190690697274631784325466928090117440846203513651638723895351361597786146173024614172403267483630761059692658256531522029109818769913845955666695213566252402863515338447394364329719679102731756614378713305865796665344963786215572859567752900324864562446556177284679194837102854124315406649370141183845282845838569909830512083946304496119461741842443114754798378745453645684622531220176661768230518389556925192166981044030986291959462159842785780743962749636373858967000717387211056000930186403792801464028925511068831957918158323687524120328401950531740297590263614844859784739733852655222511495173732398757854995211975167188954735112805031900334933206812400653694283752060353640561907437432928433765502088284059412074529593880665858243384264889616454290100828150970584850251662110802101456564354917513837590460398891987598268701359069995709839775014215417684541525314017826424871546149323593714097438119219208526591643861036159719460534327104632493188023024355909298800395098822108252865644329136370392951739088887732568511395834840444180055734986945395488777991359348058141950639817120805963920113752006028002329681153698890627533869033764883087644337865656667814351589847822278825815992661452819718945223742960702665442935086663417705350504318373491443743135568108164008783691330411841039540312460595187803007073704247880174974687465071443923942594103313742895996334242545514506860324458855135084363519873825715101903164661106306938852184793188845544078919778891657160435481718772690769082098982261468299057301421641013961875879725999137069177209163873428227475228404071677370893347058634784056260090770893606361139445119357054615743302968829236104346298625166967955149862251535149728606518184304088415748516042249702165238109492663266430312152542185452675160923416724048006695636570476429946893331169288328554022238605249266438791654741076358802486168961120318562921370468532345417905347593313709353667144633825078949539014171037166937956041298745364975326487144324948193099275083910182863923593432545139343083894507812944258412174178820236294971309111011526213656146727857741065819098693711799884665932942888264145429321535770899662285644833649028217811502574181313406355219019596235682370702058448044179032340749889391527870326986707813720508728604977411308142467774438222042375718132666474725826963248882399263982965166786112768006605207969331349293804659732469267235440917790153644402788956499117163321181414882323093084610455377757918671112464003503633801233282323239133537214448806681069732201525527800505161628362209079609022691496031684660519635142317895560227431813833125994281211202261202168001668045199673247214486836546059846301793102985257858831779620125193033868115507627234182532325983717534266588211122521714596645266978823262226552478885869800604893569849816537770517952295916959783367173514713327104864608628253865363651838106072457332289755617697868613414719941631187423794090961958928640758983564814966330035304108461010297842821505594374231423063709767655077215991085028550180958924827396261249778979447857792871046816395615880188738403517406235890357008791324140306811942969484201620171592495042371738471377415966885660235361318800142577000559253240817384095556357470633073932461426316982835169034392934561939473497002642156715603711390809338152962350352225024082860247212954125052773918109240495877752391490855358598936314434354543381597165841073364865809057807619808008976849746583217632124007949390158543806060779086069616252223017669025833202326025211017412284791648977811394648053549683616173139373411905970608305201533988557209659228078929208252274933261329316682449785997904756783637651674063249359803142152384440783095959452006277194419142888214405847639772610221423232966942185006937426918341284841067393661042143287767948383719051895458978499778143082547898808401652429579339389676783480265740361974543516596085902434278177272810137334836215004650411834888325955183591496155962385958404362945642962507024371484591650590314653263178742061584655745809783230759703888806130199391120255349146562307881467778832989699495412070171707715796274753850989414951696399647015442698912602879006285204250220409854574447599361776777291121099190725390948113562205046416890711539423661035242304761330056650016745476312868890323654428794981960094728890473871672728048189905950652442895064024095890712477149620161828024315368027635492634282703958859781750052134432398523088393869885062702135530873511677889022186577393147700964898877095441432795786232297002140609904155622354980886909307887118092223851203746587158305563405482444876300817762860928936261926007566259324100241669465921131957082345866747827116139694065186018174022958139000358886567028937799792625594516181798409848562933981811799518321879286009654545470226838233004109938836762264612770143643858648345925273504649567361664566504030473153568187438589189845906721800099658641657074583353407522207941329865127688887283450306267553504103635502123541058602273460352765798793190655502533611689950663152238003423811635608747491857294553025010396541155563069708582575971286470918538211585105967910489295874926376922991979899785171539901215094186217066717526125777349101782985619544931042457720413284460521100740928123944800894428678017386895438319030458026037807199880197105087391140274139264768217543168677005759396470762428416810014869312296686789436485757080408150067642932328200906253306961801675270874167299725927696967106034426808725010981153483883520683041326506975166459849081612901900808601478766950620606811522419169098515309832986291082569782248989081069586424752052763627562869802677761546792734184637077085823779363455272580522952026364138796161987259511923975373050733307456730470059018230473846465821837099639045350299584224053458976902430984485808001918151241297185744519266596336801466851607566490709604972542866246915264541148952060738592428074225363607825599929681494650465138361822598036263816091823199300597165065008345649180229802743488163153424601062911089765579114521163286439603696833718010286854653334317739760319024122707431933964576198042394960735574682471328210056187210980203229685349560094952522141186280938572569324035999480865053148149034527924694081618851373332592113988139768810691229027140756997335080085676930849969024613577986738403472283271468697642106775929344824760715075450622287339741875459415985875811531298516758551359522518141416533462871689898591153136667530418905520501852582083004709872768259367193570207836348015394287105812497500018101297519786514646093183935887596303860117715094567685704116494203984057414136568308543489080492191855411118451718437802900869602952792113063892018652641309324142383983977417121362922895370186434590269437944050405943115590147806156027202462364138233817912867111568290403539167673111230563652475286153144718205268994498807989232263030248676233361063521902267979264505650748039280506801607765936416864215413612378003049858457366671193709367943244487153352192139506675175165781427061815536806451091415811347261414798451813827563584591646293369718450591501194444003766225240180324144901908716195419034076272063596380768905509108373748406519058864074892883801727573892738143430117881493302724676554226129611361860655071454455888797682206167402309439021247260092430506064104461104445709587282524749636763455848978465199225220671537127895036818798253031714423700342781714426142199728324215305630573807367268680547217219134269029562933566020796164777729897621276550778420406528858108273867112523160744177169210118805557031156073796148214565031634449558490890598843106914588174885553432212892840373869519241672287668616284708197964705856532971456323925354967495904166894045463119653286829249536075894081430841787465024715868756462630378173717893547831832971420860689196695221215035070177645463053110601640489897642001488356587248793082243348559349546803546116934713388101769742556550414586557228975448218581309415965845429087910003492772919561121863243815506781359766182768054436676744855140006950166914710108165668594784118090335432611497335779751082850686759366426947819449401733471078256859435555164656998859869030960738108493816765951832486789150151767512509566844511432109910022598148771668240321098182555371647827886506148986727068206997842790528654332674231026800225663013129685171842258533682484256158393496978018876345265341189946034448272449619169711885008187673714104231316624433956548147710672865380714336522476231659724535577585864975415023590929960390884510751763691148886861763237022732840436922163181661449109616258773757567533170150089304496758346420043534477373600662188274036342702018703390965680023243683435859649774490056804629160008766859931539018620666089580049472781715139228314691636019360182369005818394162195233904237283244305938029716653632377840679620850850358976132671903683245550176901244715515378848792848300338832900306979005457518425524923440060015728825032237521002941538450741051709081206651815852572577949250945981885484111574499564536240750870130091270319962858321671253202721847139248527597860567335970105266059234197673432590787708032069097959291018349337571461509419862055743105472082842751280215505096582779925785727949210656259947032212064745192051809285354911790417408791048270478567300370165065526925320077077534184034242770328642680457742715500870039258640671353655261351581462352911608036101375139484449020232645554849116773616190642908996327510140154529279335167085270497111372109839630487364762325878685843780481829896512338996148417827780554222458543618594605480657577567213109731116889999885873285362603020716201587513436514917235058353644024501292126985637470885475879237874476112457276805594983883236840681481867007731010108015071442870331400561912170487842609344032301223920046917529245394265459797172539489147393310034037489129400443214514653732222799438405552788917230665393979042252560178588870157543159515888636483691099317798483791254241233793473311725711612515936864088227263229561399861730840479167135276290385575522017561828628109121814192120954714234316113366079055763310936365114392833776164356752143128419688361344873229051934841644972020705557095384977158101977221017582382624980751454385443722256739069806554006356348900055834292775471733558472634770218400336720683427961813469713151272945227400753081509843517478842867529174196577389263345284641303361415900728247914659351778170474766248050713715112125615780605362227773561903348431222097663647156782090837527327358159542804459703712247641264968625423993452577079215193746788107437775162635705822778318294538260932158028521755557198705875552731899599684607690128913921285227107548453027224805788266796598830370612940257794054380570503705796654871090465280588331346011244662991632041092991159853137869889984718551290098218833491990824073138921990359485342710997837867774687341200010006956311705869054676601812732985299328774997999918978219184955162566628891967758750200576153504841690722779974808194522976977420802816071014332323342121615133449711115025159102643069076703586663962594861657350855000841064546747121080701091959582721900680556531609643541312646807816214185988752576825760327990244128369951852185251785932120294109192749920039251339840656522970322714183053887424692192018705413946420948800164955372561757067269219128321087539427960055722459590045818003783560653932805597785839333798405478379832099731953664657258501845509210776015424543459482273956107427596607443069781774022842345018951567111933430546061490628563639420673205910035578398606805796302097524322575163175071070237159479855995930736092691552840038428598059897150774629599472974719335826515763199448705203486072972905011791348042025286529438198187528420363206681170165998634116032047134698691984589343595335825508553079064200624999334772589996393494339890662700857439773142970132932136448643057448146076040696866033146063174147463658846552510694368470977650279431500240118887321022484323194267420849737309200375827488831205534111055438213593607036753076274230055220401541291779306761122103461509277565436999282737345537302273776298511392306343952663086722809518282070184381759547803566038186220345830844761384631663155982151922122138539473176273822616295928904948558614266886360337322659100948679968586535988925244703252741612208209343218802292678975772418557873077868746419430880569926585499445379130419056614445358985339162935324039963970430941638515414994375054374159568107164210641501301030409836143253475399597733019396628098881938362116767558665320319688519501026988921064447284026875282413365942691282005026191336999184994056912395710471393131294289357458392721892972462138607513245373182783246567259503273741756119323775535766630869557967209201826924047276337458448520762134991367477691407771754707911166052865482584482078596893783335944368639520564789569886158740880320505782556034545191235178457609735902802842732569540937651795481461542856379727153826343169128895801499362479576909739069567274846368200459463750987070579261842979073283648773893550942139523343050708433218822457035399576417085442016525072255324459526783284522271081125991837183097210887263249515393826214420304982026561153457195337410701615602156189636562430798887494054781447306527301385506153893283190766110757776470011527833458889218143120105813974813594729355919204842177419108506505989000569537907564909329743835909686995798773607705603667269994532902489018368395843820058569665688557673994068491656250825114564038589588696290134050030752627596901131085604916380819446669874547991686892274608348692082069113307298684812425194157681988958481584330309846412152888766987274584978535363963048956959992557425529290325696195175527625998022288594499270098820880837859954392537373132185733204088184191523437210170430628383888205665919326846276517836240817625064368049624822791328953418780666335307279936557723301229779173294722451765826945735648267259343792653290937390406700346757813450824069510824042348863720277131139561926807205933319670816905870367230676643967814088557337939414416154134382864510884250315777874271227480755315091603430005844337595528343774707848534212147883922687496361523206051621824421164317213755559209409805010342637336109835237670258486001945083730701172564896110979691243950543687420915629536201952252402777682588224488168850785525261930363534513104856141237236495156065801162093192310615971841463816435004168537226930159459666693053169326663367800131579544479385843775538581747269312891699702385870550731619924906115207678495682671414987886584197680951089734847283704794903672935746791667888919344589728528859970704837948332211605208722150786967102420413873203919993959527471229729099551992241207851269989364114392982478489451645433269251937241251816923986928522879883941316726956093630699269739392859058616649895294895866739613316730417286762733141753034018673610494523357779648124824930913037692753654712435958923073236501390527097750205711526986991683311851017766990672934654222837321650171255932489778115726243165850741128337293099070069495253116012798515995894296094058790244798274914331375628069752397077435645744962084999590551637828059562447496759626862390690203093966889355823530403277097652229514935201740013571370480583111664609102277949958848278965521146727538359432387194402548629690877998176273237115467244127539294913791151847844032104821679850591231630900104956641065063029141359828039798933753403787078713415241242330996664397584672692893358644609003371317565165175348763814332801238159815703640913439345667288505627520710648642829204240346694632299638364288440173309106509065129589438950096509101462258903419525475704010267794287393815958292670127404727680354272857364502244453537241784067568056375535062846528058563163288580288465863103908316442536447307422171530399666643291799379724403247892593308469237134903548971595393819684962298790446487872670773971409350163475983988395039087873923743039386118014455392859206934493736295871912431781606605318455297481913774633121267863858588442234168052623042290249972522869885906301943574710382553724620002254182111832720156718311183976629429550110428173066417499301034101515598431904890244006110594193869487395018799949964174686934716054900824474238547752274748277041464535838959948853398351774440563885059364284502476606284818745894314316202864277419731665649486131520470572222221985388508689838015520021162251004187321107252726006912126219962883870998799709309608756076475443954393055232849484166358024526917924275794668643084424552887659058084911074436782099901844018438526390392157962348188848366800884343821799648609580927897632367142897982485256883563678184088786801114071662493075157252080909506968755366773852375876455106658924058938039734091170237682381167008487522702369130724332417475308677570122088074548235490648810036658769553818456061527082086004953065822618273221674928974039075910439231443426894853248983991104042813307274445700894212016803320592149564697075496356020877403211004491209348334620654282743717389224116825594682377628380741809928942488611518278977631439916106750122212844791699234348307632444575091485067481573654318810144298304438221940749102869941687863873483442946191849145821240498100162609796330229619809979114511524641559861096525341681015759587458235917153649494655647398698465470348661303275147433534274234738495486850317141590221726791705351121047344562885591590389968058032997030830234515588619087833032015469559916696967896391503975144936342187004898793594907332730251761429492425301706509965849550844662715531568545936271758697653779356322545907668618492659675167222666134550797328720463832771928720548472749506047235635942858409402476664919843108720029559458780594762617184011615554624445069995353293230155462699646081582219864445623332674320955749131655792470791046634200887162419631443002086987369821129356919179142329633608721956977007652646115182308280194896199033547945022262233912993454803911337305468060569953124253960665164370514570582081724764301989928574678282260093435415427761637154473682265251174351389552895335881061326922028524899022242983550638481832459468493020068147950794510568757558659814466130813132687932658272172832742612527494040620825239263235167900715690520742855662129123012737044353565014488721097364872716900562986184552286958955352620599527341882465225096520819689499983702417733731863914336128569148347968187257161348227531475540399302730667051322481815824644477460035968560707867009447447278356034771522742965939497766289352070425114072351558196645834271604794124002953453145736268743642427489450329497185447637949572902533398828034702823755490685165869505795434294851330513495187579059341974505362326244060913112449977985126940527795224718507138102042144566470880407889380594860170262727071895351162537290760245343510303086366613546905089586931974910095930170398451107351275816760264822323746206779409307567924399144562156408198493568068455283285257802273977516806674692584198932323678573093373790133837688075687241602382526227589652410176507879525320213018417046874745286517727116534764559118248232711266721012155218056390489216543680176843257080309658205957689390010376212611486392652066539443775664071145947868257612070618357215919441964479905339486226721399049438158045554643783168375063059724978222582697483132468354783478582337793208843595239594543781489526892802804277641393047961659921295164397900854393085655275957143836510757961829701059995696585786928722216153458342901379000228136241580924392317654163527149315238160732064803005717930197470860883306545241118360790984404328081879777353848545948061247897520432951293507257425448758146381111830526716339327666118793724164178554015794010154055471336852743290874110988565607642714435961763162582707023863379003806908961583422495474077611445323220867861563452955749254490695171025682560510565565363930379785838674567580438557834421988704583149131088735141720923242537969256693516313528272417441529737630176561793573383641648802089465571779598561191544907027896928378298172700737394156470589950010885569031976374085283180921026102758869549173201200430190080284421345256960818591893572732765673932530881524855499249133450344061385846119459424389764634445676034478480111402088335907677463801037693410738348938047144493065933246307914183336067610984870637055515163053828076636744543490973784554742192215458098170399058008800057030914957006019096048359893108391238390882660584276759684098573622049278675195233374993761247982021862024606523106365347567023117372363710326820359055397698285867816964549794594293479677265467963481515308192574046654887324396369932513716912601010438462110579646599929266616454623956965079776470057488266949230302191322330747288554153854072390660229741581057517696218600916803436787060155174280266010883072848266240103360958699748837722548397449490330238203096397355014955093912072266450251725077342955646070036786030509130871358324133079014889142154533294764142936669847618158211839393818556113324681423518107645209469956411410944765269906742281665444442098489871185722223581530207633137941079874936569583742185270389079743083182966765924842637474126436297230808142166174508311816523344083734582450681472383889551983941889303547790298419502481875673690388241590655856941178008676039945261557050469608097325889221911988617826031566370092712355161740555369302804967924295558576091734538728945674287599350027755033973344437358053419512651439844717946949901775957210173158083972643557928433206830274342916839806893585270784067811511796451545254726317043353544256564011484886965395711076272520732797049301453449114709193827654629186039999105429871125065651266773882727923632097352645182543043165662599356381585661474041301888129726444164298245029295679097845923175767460509879683499089688841558318140324466262974599165407842034418758070983107225831902487460834839394794422188981883815386611034048549313688604912368239512867181077833209087524357810074713129237654290918003297499791731200162948267280695185624349724563840795741575322381708893141748800143084518102691991311260979718446685793217235396763616356961324632143010273047319365225479166770251615371743486882083503989985885136222412496189875240438054295914186207600998835897411972350410163903197758715543948498698660384219149608448184161115629552101245263823823766772053187355536012862451883192191019200441143109652067260090752272067866396407882404787480325257033175530309473934861648724722866461282241664288866338161370145449950912810773570214740672614069485021374721034176520506332540479174632318868996139865359601410003452050454525655557726946448594024859715143763264011744351058135010570694829497034182851559610151349844232567633558480266678692994635313275344562620169093362942357944426167000967012001108608166900867556559373203762580092031700261895726565986197175052884154222624208357691049512226790801182177879312131994357312106212576528949398316741368583904971979665132335349147679660326538886684002780434932997725866284746336111814047595316994965106438695505640823440886330291019210241760902934841238638835555520006474798435669513442424858532982387878872322973475764530099344799194566776530340356154035167349322135144785949094337366334215462518124817728835391125956243172423003465364994055753127021694994963489247635740962227996917673708025753354172460898894265432069451992179967267648444648118049675738989421539240145571613748273456717008492897071117017679352536896219601662638113104354005930521007263874616424235764484137433802733273269720763511534120484584007201631380330846972292204020317570465696782338443421459864623272361132553484720978185014125183325707468070092025157239255199825585594433812106005035453595860214532463894343089684045721651781114298551794843525642689689619935528360949527886305782171469949052175259751859438170820099749882130093359590544472386538259184075684648536845019007065782945588510949065899369971716114355220355447046201846956024627315084894346215872334869811012284593443730781630875142676768272637277691264507233116593091362610034277809868226802413431998457392747687272238168007587223562877560986956603818236786970211473561425165249981100629567158124511462932050772962015498889922463329580366959726446914998212827745282393986316533468007125596912043302651105702954177625771507369211986469479822266322588969492995095571719359178221540829799658833702084303880570587596920990845051830454672261691764793803110899712490170444859456420486911160129987649629016606853600274761059263594996587052040562107534262145785926205450100680998590531114264635979883868185820692799663777171734672357140591793419188161608661815104407622268295540759871558838673958766334945367537597091677102036356906415173439531842113367538405564194255353871149387552037521629037552342520171191869867443184106326029198388588848197527980840545018126102015582338924514842697156887658126797206594029953595358912762310539627739460762979417734804691416767808986679576397615709240557889222886777429334129782460593670636174751262480979152934516282601070864622944678582601585110306673720160157102326053123514427102209113714063156529747022133554321605174752336392364488965348706743787018823295226085182861313746445392911206799885143545746004733896732266899557312234362536215352085870583844267852184030841879475717144074025428486088057287913214491319897608028608208932982742853789446546265085109842011067065142648594809520751259770917134747093116305459754952012121262881802590636814983436210903198288887682502030358138753369548869125801332824522350875820683229691200612121175605199290131779515156123116353171220825712953869561637888538222784840529384990921083549314973271119116666473906987015099179471317595626112956283788023311111230493689178688673140441106152101165965727504485629475398648854602078659941190510672422034933151928039416151910213797735226321862453655393205883013683897924395452386841322275313270072311304568358665405836804038099502548159002818494616018586298285921983176631051201976504964614746658856271118005114998192266441455070489114327727454739202149766147422941866543277601330703044899852074426529297087556892415019587520812263731733787951848649920220347377465961905705126001786351781947586675683215941549263508495098876268611949271098864802991730218790743218457126105312511818564201748757435383140269705279468179813861588368822094900314761623231786518700793112995506667758814213949483106244198970322058587137070670460949427113699289776118228312083360299565895935408395085094934090677923215056023319228236082147130542141460322057733361802704845627516099753339915691235851907453152150019840803476060144779578943778041527576266041586357050527432577620389004114890541902008200358529477437709542737231638612394313389687970521101331312736108076474686120951308546872976623028445037155497096244713330924857726707777009583287263454786802905380067224154668542155215833662734672512398305718906390195234475156337595223631135063046143573496550026683816108526517830354900978171908354775673389678567968417853347401658176084372285319949806875353070736738604400339523046382313493958355538975366873973448762551472386439668439399652106053468347259174350902005830914282844699678926591492341484740361121704791344866922692076641302463040328480375189784901556901254403212915341204982635980936842069261669842888373590486305346889858734447141366964999530498834649656309893366425206970153134570874525335022204111283243527991571331955148469745341498420185729734019264730812264779432238616988999620541085266971864983520496583148870098138631219387229822087873504769576181066931864033696260042685776225985454812295777608748752183259368020479536538465324110937118064865241173411952620567091190779705417748881188317298713701158086686304027501073942347469602031342384394751564089871636772107915163766944260711219879586150025575399367862030020967730526351850751769608366861641682365701131265752400892118871399419637000946687652667408789225255522416456891233428473988911190335974075741957748811805133040250477976459751376660255683165190807319163341558390615510068678408489540957974038612998595947425426390932654030658029503208139536056128823980093648630662619433987637368878740523396842106890919108533197001845261152090193121962138879604330888763843477971211623200605452299892064051140989880251255827545350821067856022585556658912824526445207898278981184206923839807057641682131856780979358715019469595293640311601688267859258726306699448131517899352549294116712798338494640759758217828675346641173935945892900935799329593476328391502998659396187670510444463693658533395433946847640870165126371168105232524199082714576270164672047675286325809668287099350783858926259053542400426690661956256033211669189617128788545072731036552118716761664860797151638361525234886805942199059763535006196559752714663962233731792855146367734064399506594139857997190122648614521436754087946543116024392876246748359216217456631167016268822710644229412067739222816903820456037532741078052275254006320455685667770584745196936891372117058074458944530165879594766365153794015047377716307266057328756344220787288253636774708974138482559223641840362284000256688922697019695025250710491291660521324779876612244470297404637271480960456199308106682491091997629702071000053295789606298407422140748449379034665900626677631635124867698212133376082705548647050199083372944879595381734036161657848956410156601239081743012434581208895498505570859042879451551222372355209805918028832943570032290553763449173078024742440093308078925398062354270104193228655202839050405644252794658409988470833263142372997458908070445131495359663913309904479576817660837220577059935972663489439276927547760435388799878943314419816855266678569583299154573190940968143235668930369481535355094868344109554019301919695022354068650671999633362408067654554766707464915888105817634932563881771594947251395948533410591552154606499289666702779853612377706244815994133322562314362692138223443138036547152962127700742581597422078275992914423538230556778522431330809777175621372690454716829043802024525582565333594330775923256814381848869815931103884481558401705720679188395980037354317105020587204345285945749781219337404453237832644230488764239420039193653423771813786587026012977236877197735638455476275956303159150721525957783159550354722332353440044531489803658750440131469106413678801877816733908551867682315696048099985106705762482644936846012891272759438084899892901948441920470357978592817842829399377649709879609327638110286262893487909427572122970149829468343999179991998519125944893701774990693753585144309866272923170423687299788543652654764168826596519325529750680530576169482416880060026751874880697656315201340486879420239435149186203083556243187524967219971417352697718109590881000797055686118157311405593919641771508011483837331786237988203282535105510230092469544984878710196969308856414804611651913970711777770169282789366326887643976401315481736800692261850482796255590952643383796244546231541791225331001291192243137262608357919359202820392231270934658996074801759097131408772417573760724153331330390307268186067783141172405338299156352967480661921251687311206276545359688735381065041633916978410767288585647390285925227574055867766293726931728234689769149805461856142830498591469185833955161060678758312624038665397782614499223659803601699775824817213555094672647502904095633706704430591686014514705769931038748648675482942389596522902207893925281301233486684693108687134955342178606273480547462340437165839862267455266270053785518773417875405704451107103205552794843684388757041142869586040673837174945609071367581661358439072735155777333938774694821459807274346227707555176205490307793956031575081809203583330069952804643730852572174088955692510087687231287026394362748285320329860145903659634312469153908183490566626325330813920470557038768776166508971008962671530406930240261965689851343924827442631595872530847114324122468821790731381179516021813505253189091330568105548421511263917257714216263109167047649348484883744949637995793651219985454272140456932005080752459672762160850571210116235246184065432238427378075865981511941630128669946609099627565117620740851327905798292352810416161360058790378309232190123038259086750781696859946925615675981193788771173575044732718550038244725664623177237928115001528269852820886485957883095076327477412467054197386783112055526276868950305149166681726861572048024006832207468442770157583320032914192552953124115427617750171973376634779525406854499103516097214948648150939087210148713631075307813961022166444750143133127024170542397532377209439645920604169293287798746290677061682491139761119516527824047648904891122663314100997305766109582389550222719229896688933264888739576716543219090349624898262657270570884024328802637843832525006883520104893547492550418358476980497397377829502506953552866159041678035879757268279858126242620541750832877487551965824667308606417817388428151636397065834269522016043013972065963038490971328879290139037106411025733199245388948362579681383065074848992282621512297167823022680431647087559256759845625242376601833907635498599490350232840564073828279352742841326320561854157114745706527656178473606364780630832408775842201548393725100794527618927914976131618444925878450387862436717158931426882849985260364916796922295666467370589472677343814726692424532080175889913158202811854643390694101995851310517967846952574044023008852035088693850735644352069760338660033412145700307409660806298988539301671314176601350911985466386975533703233362933394030463033065036500108495459445392631389433229124737755937295608467432516629519095428068656790810966917940601412257395598077759208125051022666303506263758837833467350668808467353614342930810840225405278460161627467351538328594729265311887331237136938904484802650019351584558774656187608282880376169393293314373283879854019596420093748073303454122845939544831917562550789815048668496509882501199793799533541483583351824423176265157820455352780431548883679987463509415757020328993751329093040653186409855187967142007207569163627380183437729790490770539897124524056392854273531457767008082734863911639233218403026806259755947527925617335894494868685443919371582218820457207604891312910712420997259194507801828488384532817981013327956671670940249734661157950934684189322719574260389247859631043213473714248774910280035495936295009708823556498433962833719214044421871215431502620900647584611345480746911157474199639593366861292839737461932001166862482663798020126546188013257076884189742714622066095778453166529878623761211441231844396655862070794935653032921165745335701681732583000945564896763445096565009255181829675357931749337819278614611525722984534659699318664419134784212047107316687350209165565104333944533049850323566097004698646810225621431133839583180359541640186718551650359331849419124896698244814661114420036434589473150868053976201905294781300132486608448478494012359149891370329674573736797741801387654483947966264689119659802695923090275376186366651098660213490252752276466487408511075106853904022157454924852388054007078100968724390362128049225962714525294836442107488486596757673786715348733451120018117219562038772612968948186458862802627227847596739847690717071192992146311128167903122163401374043165228118361540902602844103597927117907920250824606877746115907758374010738928057654269863870307694223346155716167160055609596749834636236627482672450625617274373159381232777837459348325130407094531911596499426451825271400485251640004365759154671521961641008992903503123938129862198337339473927383250415096955495755905775160283807547810859828104612039453071322733145745750765480085411011003338099373118180973166898968950738614454956053003923680899171691460738983519049819936779115934811923716129541399270386908667549908893348900401044932581865753173771963524600687882262322906797225050685823784483278808899858297261069303188254611711405440367045205186761505959027468588376363001130899110384370397869962399415257421383237042358300211822224258202394833470796621075434409235670967355159211939657930459522276185497134494021623581499103366477228272691552897414699791368598161433284735734934697882474928794858735141249113664335714732478347557808331913174972240355502441427676082479227801649792470849998947152622737880548622775567457945688155397845436457151669815853550139572416049735411850750719393415159813656265152438262869241711431327165704014679884821242399793268957508885296016727713195926848023973748738461749029859513993700421953802673348390148606211928031081892087345194200755860724755352213732608809989251117968478141614589397970769959659566257783337742376892786752727305541341564415671234846614676787391300569326686280042308827843946790817433388433984565602114134051884046286198244017975601978455720321321694866921007242964005835993510633796121058710603959464976448284389937727352405227030834860759409327285746752152300346476881468101238921354419040131365308805629426426919949035757269997583992978120974386473364785315615410976874860288161279504467707584546991486489559160007595077014016225417383685161947397324952756223338686470659946587445154408223261194784524515939100047584588658636494583774595471963927576351689934606679568434644502888167029448097376627421222035629136666304187236484897217463676941477624203914335013699436551601759288300842167522623746416449426072160566442682050957944099802191073552296111966345783336119936598783808815593506987006826580174417379390764253549979037260970753826755064126208438881826379334288902576381813323746171511332849351770676362721816023743263067623385284614841117417519737184494518047446025727579712714193359885050341774441599995035357231531593890491918865257767603195259364110971371702184456008125632573153452219598143417452281853634859688681345514359719868247156065840409561856804966233633473824387407465188639534079788038231929095186229376155255027091841068743160024795110761459262345185297913189425688048109212742812692101031861990278812520452703938314017297769923147410663999547728404988770484071792908272932172025269256708901819953459781434547891648111334016372113304326165819229719455064264422948502790976976040316816758182459257893352319548601328156930497310301961819688852383389364839954654556643185181351907528539232416238991997259793974714762751874913998493125539873106108631903632380913658760050053715505372597284868428207234184085697903096872483432914045621979482534377794718657081268421190714444287142871597065113071509521933645781607959261768621701633995769295017119226901401168981826533653388754793071936807841625378133704123553308721380351869689188027915404208716229217184332637965264441624678033584917118942072506622875425389339569287991440273292717543910718561442737053441314230067048475142577251380029760026491086095883812950810614811434092512849740860471110992349350716161132930487151813953012672300561282054711824326060243430061850056931580280631586511782452941289448966297955013564929214912897787932529462912589257353758878152182420474153537314558405971713716308065590186723262356445230503641503046806368250862413435202732975085627663626600057179141781911019839793054816800036160232556519320961580052186057328122327968071127492293317074780486252360030369320123560456632626078864569564326809684307494287407192358602225251862917256056685786023675151383496561137487535482069047851804803078048308671014003504619898185765547805964421867682072807075292235643036503238176593294848717017214549682064783715966511782754481956155278684531225946471341107213496241912459015314502207489118673256304134478933257654802044342838945035266077536804252987383021026216868751068633843524521966650948649896951329892424349423477192491390882190632626906788135952154089917340666484593908543018700524185283477102661059480956914458169962510064563454876878914264064269845677623883326813278998828258486407613602800032779548344940058187593501870896607466383643158073716043271836635133964421764659235695147440657055463526518126888915685136672356501576884104123624569170387209630554322500545924464771542939525962109622153493198253999811207466044238728240344290734307559517563974905089019801249574752137876717932183074429222665034516698637332478267742481815453170086481894653073271943216514360054201450525413979500576641417212597376418180618062216508653997681131513052642067767698116327987966254194880353880105178537263715083874374820648039732310784872766825538488116041218516065892728849931855104511495666837438544712966622425935570987609763720434577565056913202368691327036357267128443395870773803887471843360886174088692250114521515770541080022703788816610309778256071816736413369666486042630853386489945056737634486037482002544758464262445765820909373842607618447695174109164856246205249689934406210502465258060704108971982661691554075693356276399663350633687282295828791180423664524612635856513590102656199268680350790249598544992126887329367431717478996157906565998598280396368334255742800204967921309666867459457833454109016222598041665657162818230576404550927106087732030059852766713358766038234865902527990010077195458446636325050432509946897761325415825634014829520027015310945322553622792225344748438765045411822035491534376506778764771760408499655014877553850906696831639465098237048922159832623421974945158981546739038836482453860635949655875847194745508434272418273572054707811101710406700206141577883566457715988125306235784640350731345709451156579352699029703989772544222025702511512767628556512511757486986666611336311851600546165685610021463149634128068887338801590180670737416794562348365764227380912323879800905063890723488562701029864070657993089732442563990293939521358000200692445620937955415609397126869387422983839744896062096322859864722016384936785916350084428911157797532527955634787433585557272912539556009496782406021096000190167072505100209083483157632840816304683589412091871801005449286367177571293322797929650376378478836785762725184426088573653862108478796841087682493513618803542997603426504842653354070788786235760302231685391770587038165598160273203007129258417380786549394121971117845430918441496267527949017022498587661216709394782227928938682882566057396832250505552135244177463779319843139972251589571441305118157219577273984582647003144361756272430299256763725975848732753625727303237666158846122972487683470847029424649051870392467189674517166492645408006492885007611909437845822205752614139105739458676983227002340658547712970255735227562492893658903764292950343584041318843557718823271763331979203123066574203539022450156445721099006233644388697487489528427715040751234009922999148574381722765789738229336941664754255053091473781576766933660992377669070134941839919966258982020582255445607634758431291515737107081702056336954849316801100021167440823061360584086692241998682826323599031681637360088655494525037599713142429474330331034069083589302824147277216823401830041335737080354446975855714907185879966180875755032125938213698356464175864141370639160179636643510515290621518734870407719845974704945535159295433430045018890498594484363879712457781292977918295450578182496430176102685282581411665996309635896986770895021357428829967520868398686229188178012434376769962505450373051270203467648481214440927514469840947527601648010768644687214914043872693017146752264426318567068376351407014283016171359415000453140257300556020577851443082492105444925422553430042473487110856266037627563183110531676231692722235215725187091157620414908533916364411840280082372323416227024439524214410450328506691439676171129938357513253468126411477255957592946625016071306528002673214153172483650878338773712404219349738290821903501747467006309166700142432878730444730292527155238332623961476468740533162631830803362713523056089966973455561019811118938491389889557295850896709627987417853122650738710779911515792473813140317680430965335570597014752086628407043203338405699660961181602741278267131991124332477179205738962014885363166324306444984581323517039555801180893420216196574913988887283587054235295208271401512408184017193622640565902149620941844003657099918135595429018551590371580156174686057878855260030762739595301069082282035874355371328703696538369966110411901295978949632148645217862401581771399354685192019411026521147128288584211432434564268485227579118142467485979481500716248187645167208896847998125447249537536440493726648300437651770532051730611198065006174356859430783109564150008262882978550591301227924141000861364089923300055845853188542319971659336983627463256134925540661642629616181760710500822576137521948857558462865151799192422955820518408441863236463670836669855020493229135169613798190024715348232451410914308034427387843843122498995270399825082699984044706142627181417160845429614117691488767109738455829702662559217750984241975111528178188224080398255522663919031484348145523217864604935901282976491236172299711490275060372497534295420207553798620953655529075797745320996963127733172937617120695715719485395490207227460135301714058551005817120058630106728373269801289083541630778142218732033226915102878635970045456991315383904917525340334739298552542843775311652119465257263796138531343292602660678183100307504013324397922715870266993531004787062956342091842369423896569670061110292096628951417855815576966581924023370374720008180836062567294282718358077086050648818836638771139957087852324301524157115121689876009496726506402416200610147628913255190765315973117003656106458443721723673568874651329610006701200584603625403770342203095607235109596646969525374078916245233040933151537198684141641377676483356661927739297763695153627339872893991286041865010180913646918781004675769873278807311653199419077983110111140130750846531306932410428220458326985542803783832116628500566582738556215466037149939391271569310680105163924256202510490421973072747406860911905616687857035809965846534935063545805211841947847714014626683033596495358768912561589042476613624304852255146994011844257858670333314621708017218595694214972000923773335308130195638005634042265987457655843839113682747169576174830862831442814974902250347757484025821559531428152287674250587715039768585197637076304884622981355999281040417654595989386158535560774920253236740744768000324727542450691776587850885538276439000159799399072530111390309506299780303856966391048371206412548091696572252737431278477500984862910662480110545926660660121445394055466206826829360346966683283731652157162542648397851690412153224224533599063537899109897881546425537058619190077437463736560370785138693989243198358996239687258621712226628042218654590696154596944401144828003094253128206162969872261313425867921415221613889987280296330316584512191886590305820158666844868000969224806886077311541332357488634248099913289667384684153454860797966179160879748908092722264204002947028360080637514948363881410797312145916239086405628170514089407460351726661207787627513398958122261164397822579218018242640135173875703553609861957183286560322549495228687307698630082492552688278941605033571660114040403157910540258880865004682383425984258318316133201191898859377738033183882339753528322226865666659973358712254535207436371545887838978337896920828544549273325384177595410265680053655401730322650677345274037546272520685617814916190920706067563696505984311042558290730330782411144932441476331245748606420650875049878326494016838038383308384033575017687000177958757015372753372911821243804925691817082504996078456954505445602364915397799582719819667157094379701097639742980082186316643659400356821952018788246680666439485369072699416174707281922643725875951554311110377891847128349062234841020671521830207303783244283993150225306466797318211025293407776393001240449279754338736591240868013251426336281473270451716056291299616088757433818714040996714577536023876416982547076560197191831363572609987134234759363087740240209052407759866404774481277574947998704792362129945929710933069787928472435351259594421082126038662607966904977473093013309428899914142234524681595020450880881376137090309348276841728110292654888975532036686066066878129217355267120784019855982745413362307625244496738633756893252249346822497049554045242498784300144497523223116216270105335785752661215864426306602326576386930744365788326984955268757521767184116796590292590070840071184549788600648260900702922475455348005615999902710896712672545097421506613153599983691040896985482132104457736435951582346777287833585575785332952297671421060334256328643472827055969740398260190241511872443190823846379966648561225557186513214890602286716516599577780146263670217922719957557820087825956213796412838325409970032717569345705763998955770407875810409723497378148715867066750211157082861620308640353007395428791034190070721892798515819194104962037406389793663173928972596272354363133741846121190774273827837258127861993379146398161320478114998856983142995097191895850818619419753162205366937434629254149489802155188370568146435668937934466339206088055346891954220578616400924776380861250265582551478522081521682978438248060309114129282674231789039926142946269832711758983937440906999858309568684633774199742943314675345588574722117508139191101471495890610875541914941211853539685764249444268069188413586452403356316359533512077058502880305509249742941567483659963874457750659204306512804153427773907523406458152402105809105420781743580208766617308356864880638436063103580589163967760408912995980760029469671075166276832953337585243868427701141534463515159392155842342949173282797140602119288409667207010818115585423993112795758957960818455521940075612281234001157171073625472939599984514300599077295297501454465535028302464087172485664178173947128435729690174096086934052179553080183367993238842989099542849776890981793914908751083742323034236728879424619638691374265796991262711937208426052198651727250315527814947669470621533063683115137242347334590139086333656926636955193191730427379185753084302319315628909946943124713816627073226451499746373621658704597101975814584924302792909715679848103356097787263126169889121517656896068650777319854061526003820733047746833477823622188045724087165788487521712658349498978655792476104377519599893456250891797366388175608915718050743452742428677151870291541551886416109782124616175482799908461076667608725811297071670583853551544888715252712112785263072925337015814670803753757601204355827404140176063311417087799293430925750999092332302319304696660251556428312961516066753511199260353859051365267201536980371457589964024947962592312849669148996031086287831973224438061852688908478946605118986229080107808228885155290525146798424863394355778797350796837622434222918713366575590993585562018070452613319431361357499052748618980491860779660982169006242119456373443896690233368848074559125669716663454662041818409081201922374399974507763943327191393502920144566253744456158587008956603448250830011677332951621825184951297616374954999248079619147623031071676524213150620300706397742363860426760730118994015825568696225997340176321590866727814509304077697572550251986959919070036991295428118613595982250915301054478399815477182376491471987339364682287450210661184191898523220645126204470656679229811472435808731002608499937521864841252676944400529394246972918566929203055822908693894754116015529681626159147506423066673881548230568712547455655449561762173121858477635425433788632033203385902467140824621256856731091140725550480073272486334239740265455701493373522156119409411293983153666322562338657981194202196264780561558984569211251154856925907449434124247780736319814314702701851747292413931653783331480530578065218049337428914556807573633232704708832190688252340535425477643544768224348317349232671797649391058971674155945505111379565312981316027112338820339410706365418789260054942999044018784086113517671869004030089796418656593448992386896751602380572450775607609388618166749292858243949187398618343360430017100075598385881922367232351076806182043007824606145740893802936092104408280092712839241456266370193464479210835087330497435878968128915591884321846621906003162907517773349810438316513797853091499065176844358261605534566697526257372572285995035577457707856423080666380806963517300268241193094682212845206489281973685619407127529200721129048974612800998218875941484986119477847104659099559565928220594253842794621194417844045395081121190974413604039496421981166665425984582921102435819265510679506453530684918085369626024271165919052039480240598845039940642776834034054163498693255112257422047856147156559394180585972473179157038516107000806422781359855109881520099108342532942257918704819326047373675712178809015839534183722437210057003886618325390660044945724712276960763857665627334033886001472358178606431014585853314585627166835137173487120306818112569911430019202788217626635193145238176567344109023971841425038129652865787073728201501862906191912667438016487391401452839302050484147009792090754794845876676346068375875721818309784215353819254858188137404409821517839807289013773560337755353439801259710993218056723356127309703210556644052667904600111822628481719667959211509328764131643408298206624348038785838847140514214299795767586619805554643687117725314801158782918063047989187708988942145960245777143312270435887723413499682971978476020448087634790672175503781233541796977423787628432005422613331505829218610041813283591186736150881128735747386922927468801201424638945495588693227590035739831116981994702318606344567650690225986171031194169340315115113863136839935348604781481554119765061888146777133522590520424865372172000082962311063634714627227742734547534791531397995506173379927821713931444215875004983135711159001414968065510191978608453739658446547614000089654312855758098213783041172268461985725780107407581791676901920130605055334887417565242618754161559707738043403994167140852550202050103999052433635446043409503398135648010035227122398723399952582293572240764427733600101467304442269416286696569663962773976342582801282223986407990096729386626072676353977462444035887693959322232088153256809604120253129213034764690961345091830327490844684369525159897856096904047773131533979111446689874753633643122137723905390545014776930384871499277989945344702146878230117489395023342997471156163544104716849205767178406240867359686008263048631366668782915153781029931805177680665044178571827641690284883802310695057167413190544646174017468136800109243017458990897695311067236464190347011891392493094609366772248397638137981125920089499408026105687848130441409263420985453564332503427789602944859145818321839076416834352175891716833424838986485049902118995403895853991941954061489833668140935039354342593036554408940596015578175173018033691478109836499843578176051208691764683953859713387900545865521718142155352918328232317517233246527717499018953612874598757285148825978137240657571118950255283086663408666079220671237831440932223845861779708376452584666398977887803499530918953148079568080898215019922162541243550646287856293496429649800855572275569968922015466227866721140172116291726330549849610418645672285648442183292393308565779701746988229192838584909657476726011506458776645091255371977156061744507537132144649850557106821411099365367955847648969052408587710885710347021703188522038998304723428847648191518595735467759382014092645116457897890930159117959041969650099372848129249066095430277916356504701125215350801808545057985699531790927659522699242715817249016606410253090916885454100174889041413523271585086277515980701328457347614059180400558029144026768338877139682810135102134395510414560436749910792336084978984057782809458743802532000250218833247436207943088935211593337591960957282039685119613283187617272946564825107972428581013003954922717450320688957751149991095450718422642221788598171157796931131285182812453888797208926262836850934146301929144279739374527219389356685416278900051828137578102238308743044717659654067859194324858084798556467470685882300122931395509532565806248892616914630901712351055316445935482496496367583625133508865802349088764577094596076771608851524786473276530404021970659873342685003774206447276184256914664025984407627239149672791431422532731692195330873478353129800745285564250022918724130010532579843410255824517180632582831291673220941094808841123928225953774396270751034728034290815476201403863586831452195346445282620351341983271979093611201724885390062265861857624018755300703325802836160152646478375145345915351013332464946307796837415186855566221100907051647355682997322047426047172027702313969607579901396536577810383015036466793468002692372270056194517506875027464503952260650109244892723232285543422001964246237963737826947333753771463684608221866919603135714327021270412155136175071401703989241842562137634668119849822267831264395301407736028374859898515508588053267056551480831338778283438536698254981000235171436445684064778052663233926325915071544880560970868204107852924817382259663059398514688615582400894532558631672088910088923670510504906175775411158340082889234109467404918911503990010067707754103462382825571465387115999094919201657991600007411601759098655278755638809766275093412841246475543846379216513585438853989113667651899094667402158692231504884836515062958164061372820722320254209865495760228385898758809019099073925349549114935694020046663093658387360277889114673794724070394721720575561444890688444221386879745416254195299306377926340614027946786667600869708056906341178889193897714456561140658298942816009423277317241182787799743665987035059203496227473286500999254041540196224493596620295641158091437878183166654470701481331767299097558546203656840741708392172977515807772861657314711917717401723196735830270256163917899737363989549904749262689182857461113137614271877997270519990158648373308460166308475624713791799383859038700232228187323212297610603005945161006019769102920831750369913604893100040016306687542806310262385258188625850544155977172557266844955915213974000783796929761143302706594201915756445457532405545081887689649416118491598366991234933381396599806797307400845431563913660443619154629227728623821207101642273010960405910005985573578823955437534838343676783400548047831982612791017104426480765320019027325912718062773139735866591553889459527951718448559107404686640637882392600372962953791541095484434176851841794882908773151882607965111611294353251452400919276842185792715414203630011788044307135698855489445219930327219799465160221070896650764595233183200544918698604593380844432965831665003521095196285998136347127752627678008822089257063077728028424126217307885077587559159759384310432398492077099638807198534510814941848485872775649481162294037039092538006690033549967372678261193640421504592851876223569806933046219776821744118830252078864018058234644354430048882002393201390512720014358830677472605543227068694216126067657239558739375755400199248015869311443952528900313998861723798801118453823696787371684210836528563383416321341286666420934489248878632374300599114589713488545488166085298134667719337073101952716269023853585999529200101905223939349402522223780089839852419048951568383274746019092438862847059057592579486893704500024285796122595893046786559980926811544601590249979534917821169527967690523549840213141285861393195959715375896629663965600173333271338934101509048492244536078719602775138170259635053242577229555786049009432126633753703639833389171251343757792469242549712985886794880272884527897327658570020529921127448537283426420219261394418673041854416956093268101025918768712203892032057126635679516535744912368144169119491962983993028676434666046522488284143800512439611817363669188060729209176170609293101836386270453406705380526817900619883612331766039331118647700205854671523574720384795969798034900833293620586137217297588197551477551591649323287115839698301960415406691832160348972643771993541730690113234475466466665280934220012085237214037541740736139480727381685825904500325577681324435916679992976209078313698590401967214654159507159574318580551775672123057528148027813951185938357362981379347918735477371048838855085973631450811248577875910583688934588149755266876495110623966730639914558710488696653061764392452317276941622726782960393025349172182291611836043868859081059527316724192875665684938852518401571865190856666305254262687066079427189257016870003711141548138666371616624053362276028428694741347144002415189506078798832346343418937990734217394435529186858314120589431156203036215683207312825175364143291926197403671205991931457354512125647236495737835650724312432819668298018826425423600773073490954080563336510842593212055286507620724405020156816268904129469254472884326181303724142586595094918387229168727339880648605532918677324012340397955980984896550803937263803182607664109583244611400532561967899053152013691342825662035359808796056666151157970541894248806659093285102533918575066792184203460973260537189223582199416210245627695381097488042332821299162095579218684894823221752865779162208796153606173759614564434161569405358056751939640530417269107432264104885218433369764786909663765631910884571822931731824589483842520781654702227378438858725437384555490285385757614555053519519781226307235321914687870824136975340619543702442556415299937512886433058674023853407675660090481268777683947995963778444953613509185977089710491618945761999734396127118170900007738515371399534171127361625425226601937453559991976811505767654488384188267283959384225245182411484239663379934579421478552228622032386244578973752214735907446179622143963133091335659505192538313506322691330399213306555843435164304973255138217511036212929865048833589039962703643156385481888405229210757544461723780717098269597871157511455125547386190551211577688256219336468571262864916860824882793891644849861455528438293600086446133027310496201312593357428791804439830778107145893465065020557714882426751728967725510551437453121786488798239084009084777861809748241652330506613932542039595816997017635000377170380126220102314500889387389728281433068093369501410059222710832760021487409861224221599535782887942784121110691059265263486626660905959879310011076853730823103818934868760706952905962540877116238021363259729551622259931780103753096602129060593162941168790754362015427038864400879015363183491578665825549661579425657963739224019674087911716390270181801209803852679751216634278889678238490279851410650648661457027397315674019826711281131830240072239681638333280776918535902957833791802170823211937900911328726702221147634259525575770404779357909733304259540988120719143153266696125506718352946149813341522910227283981493548931400370332208203926686367287227916603083203217719870604481609859101813705321941995520595951186419200351136135086829115074496657007220081431293852189605914203716864588656337717168408113267443964480053820625145104104037939190373402944587890055773950346087965216851507326657924922507730803279763188817509028558484677585342944793732881002666532690973268208885019377645315459035702810127590506217395297128853382729063904494833172583983104054890455648478591105398530624969016213286566029450571311531277981689695417522126798548393941456377488636187575513130188623333674493992901467153393909273574212618291715681551076462817602808930231759554618046204355822904642138097284646999933068045726735216297321051098582786738576598217894847742544956073118765554872661324714324996039645473409030530128643101129282400157698566808019345532792866760713610377915498031897249978643636843948162202167190239259097205305896513640537445687488796052575536189743715285664886328608020787335359879698764386816734314193041110892078674849728525361639668433856739570240626623245183173064406233482824177231366426887882075644102275978512310293944094723252180663034931167596401675365551075489593197506492080696790497118164651911152556978400870776968943172789930753166475086506515103290349315835293258315930356661398261592313979197800712871345593997819633682629599748590595117049804651246040589990971059490721897882567342316998177948698281106036828904425585661856360486380576354708274239092202557281391418072281353485322864046350257881269908336563253635262108303526940903223562543541245481438760150036281400014410617563512491430991524300093611633146849803116202372234258123155624396242960582876814819188608430794500700372898648639788710601207595928007920459522185484997702253510105336186371521683438353439381598912544148333461351764079386775492418279404015863495330977022773125829589663983557935078378682175924698055254450508281337998762452014507520548806314872829583123647079105149420439330277047146739753788884016022816065009672296276996399974964887084512755662497408157007528508720253442177151755585544326511649859354746736193102299137329173880510369418479950408022419740834384661666455592556502038404213638478323104925370794612088041922600554440800309759859578918334261558593667780506290432100723954282825337378134531591002285431920960672682656699188990740098971075604470634726914622702159745806433731141032424797157812280679939468395525852582424424767129516976717861184526226710642747228949819325678780970492736069142749241195057938023984921815785789163436987108353645484059950741052610997425725486055128927563564964849516921535760823947690796485618223845761494252845264441028034977540107837516511647208768486549787247147471676819285194329707658241537584468888936692894066169469083929292662331937483643547299171789887647384650189888708206112654242576509719116981090992229391921780617248479938017393106771042543843546965154643207771438853914790757154181927285017162805675731683297931142759286228168096245589144632323645818050653481843419268507994946297105476578705255834585401440265966001894408783729199449250493326935474419999862563989370126050083143958782784719624612401223740080200658786710497989306096277215051498291200475550579116517212476924471345033141639256477235857613307235356721301637142160048952621108300046145637807504798277621073478142419427069979587838357939934663306800687494865267806253124576449463584696252079501643959059647047271951352088087164504369304703152353320238383010495573696532712891147223815852340904563281942681771805851377188122637059022633309640775908319876417245815966671425371736816245393398216150523434691940530649494545413609448162683459218527113887395542402236809952066279419272447621195873177526065568207446987226596300927448927608472084381158139188666960236086631359617780122195352917678323867762164648848840968444147527813577132019130781544140083511606154255191589024263437085926261820587573560547600898228284914568674991788850863982583766366517855963230766255656196391282738440022258282327411939496333094674980768812337816390384688278449758357430052246385766181659803336538867524129970126174274620490959953577669834250144968822260709347834970534834311523626197333284487666582244147638169464400679277029574268773213524813079386678501839239581742035291010489117270736086973753693277901501613178706520195278255686943141554138929224118466147916677974510369664846146824519873762476358786045662044272449509474402922599217200674766923816396103539299901327312769239175344856577436835412193044883159515444314586573540020101462234676825757682388315111960599814132216023756865539837801029317231536346612464897575114786581727781101615065018960209817390137961203643215917124533044689261736424103901904186782146510404604628213955951252500094616970095236170486519073959142610948492895579137042234026319067204492706434205075138936405958186180164424550829635119021891622156982276498673322750581622479679045165300566513096695148069220553644344704207965642626475586908253996538620887838672950131349786651839623994282501161106710775091110795779594218055159110457847613515529580978409359661096121979673222843619113377670530694271897654570288045972782939525989204540466089282405725027377516869259894185919190522266871042485302978397191019145374448459035277843110739219910779634315483562844204688188681913646703003354848777594552225817606908841058321544920826719900596313381280116245711667236949314477403656945305926015749986901420248408456241562370676563159170536686869066752391542738818498144849994992559271631204815343644846328765950144398470587162619355941571746872500631205897266395166509628974131060647820276340137730385825143748631285830808704102927002362050476325299165629956354969865293360131559088538212720130822172867740673542422546252541906907897340462609614080311788549417202215469085909707274555967378956337790840226172695373455405565281731111037839192034352039346126231902552138192920190496236154195238414352844088434133736122103511233545355132711739812952709161088706335662960549408918445775727977849902211677143010379060909609186382388665859834455887109793055473334927658652046364267532217928186318223214494313511686393918863055136643490582975400876211358473966808009562120988689978302933920837069317246279557361812114930968142786415148491070820472258045622609512761766083289207965989687933038118980306870536877857388007070495651262599848433765929263971616107814345020845446841591836247081920472406268626334558048612478534427871939371086305793417729885267659464007754586934570032210255953966466997268250660833813569027744341831677591475635962590786786046464054303232169830619041180535708972165841944679566218158534913217238381586689499276070318041872676098759967247236069547727847209149730687207197559970648323204598682366013681443683187276687889028579450773362162234129111642301660058290296593211776574789514529096533638525856885457517399634341850875503054099094414125915126444818276657047707023668686486590319397838498122604019263221736119827555175642294580001434068322966296603118145453355004353411121486476923730812662941962756694781727181509073185511750543873409610371307597102075132814766117387927302479296288052159960049882122715504163639926460834654281750962981392495751894508769793334091467679311403148338624827192193641814541649032281845823258910649473753128029621371919709790841500241707815415254288213047179454664078564599520028174859116815857328941463255415418135413593589057158329343192281804284909158896068048216689978066001377648239031277732564255683193350629185926155798060137552226547414755260877156978696568727555772977010573957577830628231585059277703820222987316877399935552074210647277901113262998162431138418221157015850840309209071728009671754119472485010233252352151093952671337985021017303575427208016941237704271003819527976782261910005620259582277168053863770594467286447580531611437512474874204165958965126436754192218413206260606951678359444350831569872692590808792548524418569757047111363139801939705416365158488806972465039787239883981641673491101157928930787920615521066838762672914549187655650052926748255780447036154450795337826751003826437549221008262644383169733706396476227181977395614150698014997921849729028279277111153114953986301097082569031306830488620536673061377900142317925413611258298161674477885573255147671634591040924116558783441156945856987553069476117768291291904423442917939553111788018292421364881199746350751125938304822115871141347387803471993854289666821017914466967716070950768279808284952328325401457030606307267199770964331950143583171621690719575050799728262810132111587921798238131810329420036060912718950047561277967489192006514512629928726785623884831434319679024141689155499906765363761924092955021418907279492257582763990752031811675946837919141615813534372807308747257966167377497474391248413192154471053187672144759248093945761793702637896865904105912302166671869554936977499158826335010678350690450579929478188075352181034562283344942236349763437003634704543021783831626476831091934461110100825665490428132829839712887736611142311629300348762995224962379233240213179321545014965719060281051614182314049213938910668525745579366059185026392551312782437549564887906681592482820039853437185790472697166416690155942738895023811867795231343594690740561998376603714425962581869935381276225903981943459298088463308546057377270186894820355652516125223117526454049832396990218694227350276014016410159393190051531737347089604978763855477984183006992803921278100149866311695690066521115252128479649854917283949460546868027529159749118200196337994490150350936692905849751859009025167772188458262489941527065410106321280824021642170829740404042086864222029216518827856435799874669348634404260255026439610574592145268376402757006242159709034962907621552730311822463977277680029510083362304758748034893867916776504611936788437942686712137358039441201482422720903454237762473415557181446743048187331216476037087705027721743147552261942341139006709391864701374640646082002913995764466777011402911384139458799597786815806832973256929205638175321682053728987405820559309201127749835508914665219653838462795596240183784116849784472694334569890216982014214192098558962110416201981236631842913931882083779831723339273662224296793339508237792324876226210582289199307921709828173847158692705033701710635831225536938161501114164187513071824998877381348127042425020673582997878047025866975994192907560454600001150793840464671426456525731951859839942929421459231769411870510369397820528462464081620412479975036498992564441044592730477209581242741638770795561995253948680042470807742357862119145645300290322533461742830138601844278572654807278806783808766753623457060156398135598241455725299373917747342761011988126998533427758513824574329564572603335907447826411029714256240008577587546994315644559247120152813633795131988817342878304270126314825176395689955851198766493432614253679284182704501174628624769553448273972699316407959743173853253893085692631320048890910431163402942710622250314868955131190163085606843444587009848148784137564952249789820765514368694211484502225443065617483617925206696438777589673593379917605061180330462212448012741431953453325005281534157980315918229590287048585673063744730308855560326398690673209599608139231299863304976993332650700419188989604459473797803968969663343462954795897024500123618092940773143235787819691706861516167874966643505462672171063686729290928933056470959791603430396743728966877252275900760316824554954403345779081305936531891300002212649674474148538684334839373948751931811709193620740319156556612303857690062776675204378876877005725566390125678156281849877129594530673551830386601967118664629709771062773845700285009004753495534201784846419467514647570220879259912180420787540267882495945929111941865591343758905614353195984902682026150948913135548813446800707305282697683573024251281452156384508830258971168766347145052337116364463269357825145766358855913432471125399068664405187391632085670837322348606077092303262161783126082764498771524463285189396010050707497558435260527735007408702997335738125848243017587426821255247476287228246254922728825484681660246388403575859318492152408728039593186949359544518086895515872239666685747954429779765267878028042234792192659607454093792926339971462220116870721992036785650344162749741907209559287275187129312166341485268642175519779509485198554657714801993106009963515729654018650664919046801074498458101698231573392384863026169941420195614591767299894197391167230324196451179917421248099270581201695696437109351233622296236586671253686678928699192241168307316363903372432572540076779113971659431368883736545852338414591498228384556582508170355927361195937390249995399868710648720682546874898239944990187562144121329950062352954638927074199417083089403382697990451382899534047247871380270386868237007637136646451662884729071117833751299838993942464096968819863375832315104941047245025717849667310087309571474242051590299453582677541381138509058936240352196270261618314370018062183740516947113180414177531373073719945809222491607775292990176258124906358686033046378373657134957924133283591918925798892650753709069068978352016245803449971824760514824011794909164055537688626818004545041918834979485156715181878018980401187193467384679050772506446087690874635338066672159408990153403103139429147794317380467706607780584316182147361990517242091968629551091457133760936000872085772525560542582912322288085717275896956854681901501287908866533493358405965493401281221620864129172305025696784802874452244262251949776579742502419425751769584903451889245110690672640830778029866220547394890641362887390842202814436709942821252297366441546756246517395904890644750636714909541380814234362540762813921643461454560534019919887588513504369142348540052520496785652256287909941630428725054352198647035539316172215332716959154592895883756497091064683020599496329663091939050108225032573057070059040287326634209307185293875557784350646818607297180938374587804084330760863965238129355768498441486009560022366104491800297280596079046027477902866434966362861948298862445573232470450506628677342270501926155924983838813172807658776147162285229887968355479539306894400726895948560512485479140975573195115243805114252027149901507077382238693400848999202729945827959658178640057654787268393173188685771267073082359554203064444486916619549178700125137093377916224848963419837176257023720432833564981299987704733369886364063490913942107439648640495076464987867582932730945847141443174495523501524491619760860512025930550286743685282925461690543861849327681159913922832386371437223667372881641292225820474804030611799757734148309550876076946149963709187686517386872131697950531279683745603174971488573961060721496734224247870430001660635432302085948172619220388577008082966649981505790131986736359987017424062543006682667191269747538585967377674588518757041809197866379023125426308829320048822507316755205252255295168515852884371702255568272634346539079597991077625145835696370518530838773721305257510253434668922361506210231486632560108577741997844527297791052697981479938637558858731141545879851299999201788052639372734059312587337940061501818810115787154011153341259169988886839061821032575126658993065800409389312179040163933666386446870885707301752124630856025186065565897731963021461866021957757561601017438354078193366110611201296691247498261846196325390010483854184974373052445348948548349591030955509193553566674430195305809691070567529622219174959319227554008322761102393299827294459638538616746979639300333493465243833019852622056316230875465027027035713945634153344119332547205054716733260740278482005371518913205831185972044561055104790266703270504487737977165765289010616513858675557242505268895410954180188677585540772948683695152157657519384598844205610630398571699593393127789968130677666909282627019130911399538884301910073093511745598232466589016066313104760863707295786610658065415741341082506757584243491709239143302372922591862582958826069753834934490528639731660518636780502445496155235676865786590417412747062626573819254963737870829533933561029551334998761292806582789565010568470503561307356905430447004621282664373098962941608578483667987530764530810524363630759828048499899591955862920208206093752513546116565728271791454507786170462127260180786763574960842166523937474354638110975815696398135005908961666497397169172194044753733713092157998693831211680800100614821179283443379334727050787095336369671225682030975156314535090417185118059070239282446825451906134485555188054575666731350079851139136920688748369982496998167098932114104168250241310052734489588177356043231922629523593279845521609442171223293297604965511509105855238187836773373104597340992210784329093687876747992081641672186167793668474982458580912953636019040868598796842170782047028640469393178147206850866487608469961989599061992889565072741312602561733407397530368888736797879020154488838165765813587679133532367907984794351302221695437229958020804783362916889176675814738027818526318821944097023832659684206000744578556340342986621200219363629087039534392217687531056041483668654807641573496702790347837774640015703691720785348512765111455402253029892167083993531008314016323804389921912764343306364063531915789353578650901406475455860897018342501872624689210264200577409505649818676346716736817088895072047329209424824922879548969095078330180373643057299077108986301692070591611481853037783155178922951431989622717924470311115488821080494893188417866266290628148610640538824278910930460044575302543406315878168226920547546362791078927678055589584438597049511247564607221764321975502635518356366246832961292289604637654566514247327112142506913236787523850207886021218927130443180135195879695656156823628839755080635071018322725124188193924361221514161382081475460972562769840287532220658330986477680411695585565813273365624825223426447784560260915716571741366380855882725149405161225213882415560106551985763150744843829958655406881548665677165718408779507452549932262547207553229043178577236556720466683552861919983950205197972632986352984537353764665237754177460663317976367866037416912811492403516239363191904983955431107092085571376622553474225284855957599068119926335636995152159143663562858765974794251828477676523155030581026468803478806260753612294015785731184765359495907456588336460647977127622504515740443611721158435021161921279926987345489389870693683942664215930598997308586265127461736467941231276525009441309071748368082252614391492014341766738599651613778739219897448698004498631726547575565188291038809309040679308198622063750690750194832781277262264740463506627832945824669743370579758249523407392085843141683536446962210484161078460353422897902671103251114753742989136165228137512334962917402273027513050202861591642259544053148139230237997655349234481150147347392726713717283179924442673836767598716466102495093474448356898647359466771908180540768003619710578339855511885265320878954469338545822880922118670035618720288295184731308226713680321680288053574899539303659222912185620595111612964582456404142801544111073813151603188881593376060241066815192697181363068976284330730510082795553463792587637475920839852643800375012683446996090474168639435695243514649458954018023017718227683091582092878638720068090195429392901075107414339441543979230456764524111567089276757320688241584182974608071464576992004993912077535554000641996721210294765064422913059575196492382058806731355767802149999590322404779417422802318383546048719345620648723578795397527926741208713454444357948538250669440881174953456187785781661050308049785968697144479683227782796162351223926855210302974782372099355165662386605928643131800659883330873327522575493945263837111139325710042182853634274611187243952757977576228890863895756680343046727291540334724351242527393696212923746142518893227147595255370397865566439907444419437173895581424298632473113942740182548730560467123622731194082537773510522172684341320031453275077269060388825594374193583011109955368782101492178177640060019356350861259516319767046090933776391834044841981226875622532938326994396706072784622864152152245439282235958916996810009723220800936041878998525825200593260368517861797273410170753000792066081412647928135328041313248615086406676947018969594360419982444427605208861497125988252948073491288734068946271196672733898937087658675796334226059266269737547259491934599604562627919722114207616936824337457259431118113543559127607361802202030214072028684390383878630388327104816224730784526062626371611995683580267751984700548666009480106229719365057176918923353725863616719615102193289788988496554706395966888099741640441747643361683026541413807265973828261004472632305601106422097839827407145431344153459798542793780676430287851340781861095995892734154088673270887561019252300640439256523305096216061294248905837250003152845901737493034788905038744995022870676081824047145153843943889504772765559732549499154302993606453728329789071269794190089931845828416366173865571793748671947017330457842123568472889457765615733221536863397913265672037124240257620709664327541866128028859874780986009349749710546048413606360995017681835545682287988999660472297648780399071962554299046281915515534098135990698515866989581488484262439615326522059543184868472365563144959746885256052038441968928403836008485610055700895081949671280348025947684125905561586147010802704493945939613327159105836491890067652060701038565536633536143017801808753979130754351135587605437820928498219328988399156641962472727217439771865929321543697574476435227305714373433931575616163261100475238551361288838655776960220354465025070774725452324826014029933101765543053059500038529864921316481749596888749656309083728351857706780543591031435947351060224583454754809996355298338745002058828061103193130745928091641243985462228959471788401290601770036329389088363643984177842131577694403555697888389043224208819866261927320084729099757568039476642730613185160676936313655036550964713043712579697275886615864051694223998939733440616413218422950755271458690229150649641774657076234281738418842034378317856445303292189528115871110720341003142716552057129470870639299523065816600841154530086928644926472737465533681579772630538972525015923447939644067214285808367704825589555240874075410915953635073457571865048160998407090503532295154225387979754094665504219867534343494003429584202052759069575384422782258975206319992688647357961485137120574880354810593366043589476282093207059995959020548875806738075308932955925842050768695818364286346660887410566810553108533536450445479877882187714110450391517116561096613792106774254087201498006089174298080550892090005435253914875921975752167643889403058801394741528942581351237133580902721812282207818047528172528735919886530067968698453625320369298048825974871107830512937066564901215740382071235789680597667832949675360229678315445311046473760775156831964094498251520326961148288355069787746197631015430753542067068947081402907681737254602507571694638730821177148462886176489569304877192808865674371196236829188627178127109481610939865612980322943952712189022189852117068990313636202379330919724360398150370586169614702053570370092567593990413393471998805154129070567239358181431879907288543202736774066529484235512433355873803173338763037498067953689215797185077275867174325848359012754201768364871687047465829075813836470172973702836949510360029532444495776063575352005183908963185062772333287251654959142301792163454097283526266681502647171474902660765916413877783419180407037819627000865771739132447706600417237898700691575776940988168244917137771727124169895569133585181864536188106943161371001338674844082815338012166504449193233662740529129431044657748049020484963365110135460744433655424922521411458638709110548327205611570619719808438914747365417488309671381191669912279681035248310056894800416439054511030838691173579581673910168782324663542685442743735524933603820030558065653541115825188274182347024738053499692141069535564541917409361998625262474236697990960007636199570673478620858849290819729256770926104746528094593512901483361689295888663162637419956191250367732270758756526645073957786983009354825031349436414849553241425752100539890372598719656143087472840826627692525771125417597534365038649965213343492528249237627293734839702686444428643470502390608784514008419372640756488225680201888373380921122615224501529489374542119222869116109427269661813894766947705200216228109411163845888890308441502655601945585505152807089439015697074670757578432493197896237244681112566279466947183110270718426246802025035461852538907210384881446675369283593349147769720294773558765565523930358997330465788108744109635866639087439992676456800819816538613451468809987054842369456326451443484351391420473297243977939730299037496525045796998943818755140470521366050375576989065761709327844918309211118838903220767653378440222593058713609260572574459407895929430562712103012687987380399721435959092884374563725692368546749616802436966048781480738059843478740186781356265951799834499068549842459150366526374428414308757620147707160343252980148810378974209576465992147425674516622620135957335713496156957428695119053654108752716332167679265967981941370862642806689069009505563040133246062257068032406122050871115413331609438433624714234164182308878413165911946424578646759244212930407892058222330839194177908633217017053155767273562144725455247370944765210815812448765787433476250393505110679465467043009758082303807370504298227615663516775374062333272433888871309948885367868224763058311067216461632458332605414998552257927858693183250041989828489230423322835251741697666633160023542488399459616231702817865881967479621186272455674986959140692541609630312412752116312887637482445832055055648109691618642374981029507378671312936963879873663272965527855205972336159013546784757531333641663446583347314953954657047716630918632858343458595726104249416001018570483751462687937196816424576336511790389921437013630867542229941647777142969788702958496656271085767418007540216592266231628997204959034722048660318815537063039118482233139167337940406561388403538800003106703416458496299365083721486502788192178066821722878014806229593716667206644984257444002965111476380430320759583957637869063606813853022591904975137345942501439640331887351810301019612738845386043941739151361780974783437124073241642027980090308349374248401508393484033109707038083576159020778261433423169049308811910066816322602875050019605777692210291006368730997594203410180026504070591345614003365414926888678256227124838447376585197019490774365849363911060727608908855718464652824055539404036458128390402863022803340099153562965419513899739089369843163985997347158516907549802248784262568925942082781001256482366251710465811118973129782829461782239263655549228655061791831204943030161438951467902804577451320010818074010591665152398202798723625073911366095183347061524814190248510783874175808494046091848536097021015510812736793710338996676820151788327641471620875914478616632443788540399613445062528451515259484448107807719682446064732735476433482858152035001820417285569930804222568668309250918999715060176415956744279404682405051538222770107483659046800066773952763480421781232273881758446318190789561198400239239836406714880805187274064967793356090857003817069512565530451755152402751779274366971596817772301307761394578817961949888721954831907619772804109859766958287003255453465837253960596639377274978118399904890919836823729083239616523290422550738425852263597346793783729231993716195021627781206148832692607307329553393341603196105201828915493765505278590280703497835712823771895067632265975095984632133523537609616373632601844676935936032042028102870633182883723380358121384391092757562153291501596853150641668862387721885136998346472306104230507180041367213109968995059222527670912749936257859390780219603587896084557324194637384118049843219645542538724646383707059614463463798650407758589372721514031518513089409716227076037562761780417610162637511098523086339993337019073250412108800992238053001754970132118059604401149866669824275353179477445980491283181713044276353850077034614067440798369537586050357645945355234351336382135476969767557440089129140713379897937928623359029066725235191761089158192786723037291893674251592907284261843682422310605508008642896623900064386985945910127196386586181458340362346583391741860835883938198663871590892452969818251991789513066607271217224606107922945691404542849530639221692562042487010476873854021240238624146192845075992983301750851458269891671941310130022974400255514277977493700854603792335237594002511102093557498983946295216943608536290736367645126076098361770489412847260015912526503842670194897847508543269225585436099093219194210626631306177970129992898215995661471488480108999005457798570421813622948988415183949948633912797504202741606076363256144646251553893240439286352093082656895257543513263116806095565424693397233888947211917172606774474751607311513636201617239617075528233139851082998605259807847296020507514090522133844817173713713253093165503395852136647435814450873516052547142187749846239594701763612904720974609692801178490347278173237482873087718897689845193576337992549765548072126388703975562487838453940001522774687675374624182964960759804583158180325184791158320648097952937675853998441312056654160317910323961297573037411836772294073514276817647946644863094123575502243169452936731892548910449690357533974721347446419079731118821681138365501299652330449549941412956668173690810635875274210353402652797451546473692541005624425105003430373189062186039823651838148155096218389249266707454695925989489251899314864768507638930897252456096031099100371206967158896473988901355409331151223164843904199477055341841266542390834591488124812744027236990238590713958378352665180906991044289450213415797194406199632171119046333081379791412089701952038106525621603747230191221679685868728772187242096087934405698666289403076204859058777299662259498417945477513180211467767902256822905603352020631816226591301146273338247669909420312314450566221155191725330066427561181527680526213831448476957187840830355962234775740962360090831373719839533469712156034487170124434252595875360150882976020682763907789190423512153394030930288184513801382808411871726281867225956812090500804923468129312626786187142296893992160055380708711066569269656773141238451974283208511666491541926454269712957621883659072248377346140267797956746065501572624456042878050205251332800796813950612954381255294258626003414176429537797816403874657210043471665440501324243976916815107087865357515902055200391633395122483919761054003850634135326963789193554613210922929571067668915151685692741634328748186896744348254306176377301055534213631242316942067336346514968025588009626260900005863427986855400785268313409074434628637529863708380682368205471397906503808783253190224469600433978759491757375450497762456952446973968928410773721165713248999923288819897782126071973608361674139198310426974756776078123038111036494645760068951614984638296815610609313726287761821976450062239361452127317000083512156620853163956943708936305947748573741191564674009312769824585953978421413748759256426914863032084748733584508725253228151575810413166026812372895474957208727863795013647404247646406469964705950320863526556215054966374767781755087461017780324460876375992893504456588626229219713725254334438641190944185135819461048357918954591642501842744346016060138682127656757619721347617804327512493345657976635068838325456833192476933890195644170529922760163195685760407357494093298922233175391113206856154361987056657753724579341662265526443212465899459069928311098255894844098360518760264122618365769120250094538905655815985328932434051448187604538409230577895590929918556522534180806276567275420472626119308217995991689563138747686909699719218624077990020133547681454628003212706089063277069520184784997519784065751542984668588219187055234217514281183349525796259395613547646358105758606231413225880023235459411602152553250819703876556230122336914692208405111478555541342620166450011376931197173081550032333440677320976980822161397465909340716389747405377266755804692183763381125614194121063544680491380719552993529234721442625729247247703065618641290869747986122979162410819397658734325851268814431348314762795786153013332729303496559537312924465085239959901731308434982745348783422149478968943698958322682438558099806925306792756239503228421120061897612062107131169026737640824019404591973986260254529429737053363447706717934420244071627183475459291767286334205589426161256400606493450196845860847191757705193940049285605662968837409215912744842886822967056795185228114699908801396390173433442970583203879046552727140771386228539971998726012512253182176233188209708791618670202982864840490739269045723618917510157655625802662253320520328176089581125032996384637745771502017752920628614638189792117687703889081527484306241584816923679554553106912012256566973109691098359882623063607571373804556558143015716896425707299112793900607916849123725973519126851061815072713224151048175075951485084332885256435058519683936688390797274693234642782864369204268988719015323838680239176420406177835855019829115880150467201200438444886556310371154911096864296500253897254389984690179126181239509986996916652987354995269885338029778350544294943093954709711873162675557596074377810800448656687625380283089936870973005835340195521458024819024387399330087361556323963697905527936899583893217365817206046944763599947188668162476557349344413424585061186289794693242022355438581794135154316642586493950930510816592455988642550773905248325211623870364275597040274567436637784977249753280054363919604359725185106250277706996144605721001013131024320457040015529992834954735936082769344483677773597035349988247221485335152628283013409953427225855087651071743632892098271420915713478813249555994143700086842788582034298451092465382469097624532265593976559486096912859692327093330452342590368302266886513872043628551722981792667751924422694792644936264910876595469686980076552073899802797985438659499421787731457988257076808261827360556609939957544547910069339654062823614149031630223658718348326433982717330769165938060583667668129640088543190118296128403521208382767211945190626625694240325921121186348087949438402521018570719991677059675124487455292254546388347821761247715596398508022403970521104529234689927688908719787097898250832435844335074179626256468102564532132068338186514466858163947873497929068677825632952448103746340326781657944154807161667075368722661227827916351431219927988410923113831175381827362683674823971231473230416617015047212311863370046514001430506758021666118945223723678961423472515122012465526866645525870650831049455973538172899084776923630520139550195582689692529945054610086502788922968723712581688747738643277812534557045570383687702365162100640945672014566566155675157945535422091112598632555821660321111898631540729992776548044165441802683385788056051691727282466331937972466778855996496349080056154086430821170531040124558671264911310465614521738686032704375712710288977567154096164374816045560082797552024959091856116562208565235220773547044371100571528085781705501764564428228816104929627137056733702648402073655287701174372903796136220714523669292361117217000212146982575973163685705199391662237528415879264749190899062125686709865019296333460188765546598993068038239011755189466000490989238442444933365811564925446029875959968476175252203411683760245404917315160913399974635630859853255611792875503317791774169849187463871287937430969307247340587018573807792025833226571206409565426542707642066630934891578732329835775181162620787984066192695523649437208447430546363020778117850446403105387548973281747998835583978589892971270571579895661899341329152829606265050268196166762036312355334573841921442884961968140982322477476894469291763684285031549012901628961683385167865824658841981181583812797130329859928224380221672543192709636646123808853995215049236027705126554271008888554702822924689635269208843502343253181971773020103402775629549787940380774670059747133900776189936322538571206718621360842468352420733205300729231444253119411000063758198619024453336326487491814776879304539220062148289190477210958766609167291662869968626234118385309559480462971913478725376871878060472770579564984964958154038655944069196671360289662741793914170618751640239514663921325042108083112435310206273713262163839212410350617887398622863276099771431583853623438666373820351151039530487748618732998659495729452736010201609452849185976199436150064719802183202860827381719198448120915223936534946948700576781390786883042496918655242807372530798683787752193049123245104400564064286082654882859665588899148213316713514814295707331827422224857815643115300867773336451409094756399794715954238046895723163870704326590216046329242039925157353516407901591175283876856690368336133880001320687075129584786211296457832757404263653237242114544460289653458248349381116169602514747162839314033964144070896563204671990132138770214071708682898348192577789460651555836277024082013708498201650513909169298491876424028932791391622836644093265169778807204049956379880288635270924645312123568543818184290604651675657405782621912374786376704860384326617587241825701698581047422610868728697205092632285664553585242274255958814046539208956601928287843450542461609518141243795512003013612928347985654780963135890093587578267654617014202437210274441857104165891843481146222460848780576322320897821509040307807755934006697436411024410886130735258854716614818776112906224679414730945593580194382787313583841314257857126369898372809184518017364986191557976559354145720008790307020683707375448298403341742805110903416779689253366500477552556568345412251864126573242708252706790164694549779965847299028092707573619810007518799282556383623055608122190485991281087311631194328148874271968518275317198155569817960298462321009544428023735725613225048638887053912108359600199992822016677499148980250941053594408671610235518509316882064253296821800598390866577641970984825213499167101102971217500919550559150761024747651131010398179085594545147066195357086537439544262826222468169736121755797936363199117883155454115133169063938624366508560945881603443937827240392729262552365355116136327858110083939758194234540796685048596224015353671113288238120726899739510944281738942251576638921021069273124784954976509566072169919599280568677728088146406915068940262769453602619498733243300212063106518579164753783470268311053861630816195410542330294342372090360562442676566015332648116827916728629928205967942143549366545050934586116919167782064650540913882594449209299120308012102710879150979874991706438848387140183130681835188388988209025106085974631884236575271283134345542049131000847511960579082976827395050068434456377272847274851329276044902391804787220431105934659105916458821865407727186600481888199113681976299077949252149845332542314193239106506858673941487753171246397416395686123359718309594407796220177591882464915693476684406879372629085669274585654381095723015503761319614165170253487546885792746148180406907283406172351880506133769120133330947139930892616329100390570600689856751471159884406851109039674446835390074985708264880348729907967315943257370261120950801450887278785515584978272670784575784974193461640420149075965407558879933585773390311261795313733033951797143491149969411907246343043245230370503479297195042495115877358800145049571871876116713885324372887530085266941059161495503784169881700371080912189439751508915871966113813895616981179930482281396118981338354341805691424210206005921070586452431519519149762974744629814312008794157668157825394311165170905919318599180848854692604436676058446664845199455292915879082870364395323671588341793980687621643454754776902214051891141316648079964214649269781079455556110858692721493790567098290226311396423946847390041078625056463065922245757216475672534232162870242551244340168778883726030410507014462739892275249771192600364166615985982627143140830307456202539104041973292703855718932494764082101253347287714675456057875958116594750306471338729751727618275457387875333328565317432791955266348797589870500451789711213339880638448498131037715035754402388440182541528138080339842567056995099092024143900183381033528284080602670145582344986960286979812611210839536415575144882479885531187712165053469417864728466428004804128584903086267277020943286384034040487765568171531629134263637353123973888699259357476142688619610344157428253875666085948002355184268022893834798187882101627293492867074100941653452671567159775628501291610444108989865014463760006667871254916336152691853437098897575203494012584810652418841215227652050424438769128504834730409430756771458938316168175898854582555004099660817408340738090072402021514634934959771123460815661518934899688495044926445864343387969278550241207102096155861756913747209905299417207677236264861229999825016045184080101152526007934045889057176404619332756527083685317151448083125086174214257005659107092130121152637710434983075841988721608642403121480149244683480425808363921404017406229238015921440437893810588475683307613867181850877765040969694023180252183622791657250604746309962493302213290854489531451526776697251323753497214879688233041320558418772620796593656164278343653747528286367656236729086361685092168338946873966244188963065951953585125522468656948419430215232294772844973439194344908707824374406680028327281403934427110717365779304090887329485855143554819627294719720790794261814243391068624995824765772708756995070109073086551887806953398608421725472050691142122217549300104006246380199157876449820145603107075743503015269117540865763437561916750494524407221267642807027538013099080023314736304245894827518956377737188372238787208895971580185360544605732433385051100088733119085466226467038633939279863548872858671291659380612921904683916515910887138217384480688474344417511252265230541524395787723909199737628865041745156422232663973446705676759489829547969655263546753838240171689572405703339773533977361507790109729494411812098725230256450369724371650867272680025982568572943675004485190201348287784657338365277529578955783412690485977089077042646155013493222034870003084575279054848217750932621608919740908883770701997012171666820232601507460176002297128822241551045795800584823471635771450015725516184804247637880582812532965506877739370169379959691749337766208033286353537939043999744839965015722842556826968240484242079966256414598346257089697714492047239077451572137441822752262261269056007450993149349362163287047491668366800541127196236322161045356813649079929847095670646020110020246432295585950371991672955471163069018262850585300546863970883690809633804475620003769703297055597826706963907858554950972325364706379204327561520356240012577183946809366468239541632371508815661250290837457931795470169027466185489065749289116994983551498797842856818633783114921361029534970864560030492240714665844363856880838393071481132122104725718148467103660849513608505404558281531874890663852689615223070108041853331700285980808050494110920433171523531064649154611252240883426955587508121796296647456476404575863061088096603402222299535678954734759347572764622813572287862758809272340501747391924308503673896049126486685209988917811629038532332583784973968181425348785306105721793487198551992293743907463547136268304705093756507217718190521032698787915713024997663180151039676506543504870571324218106337968901380050550411056680561668056435213820897589128860974995285662574755206262762618095582062019801186878519122746318144735625634210661331494503016042703516730599137105809403073625264360073617165590713524012717773496020961549462937052794778302246219549524320680319056436005343932444248470712910644581435284297054401666010686892696074352575620960557437105289852129871785718921602458506360014145922048367207863004606532971404071107761428045669912453734911034058473278075990469240302162078316592504795268389332196698461881720214228894301374158509176927547059405176228822077616162555258995614660007769346983024473579976572078883468052576031296153084218649982103068884852278527284407563260227517884950247625350858133688751619906533264262638154106088900571490320343190190988940220946093025505250621480819934430729156054760529977927255668576391819892329415583907212322142438824231563350442153654094744793886588857294801521569645719011268635134634392822842746536443712098876310296832821485795328879928292452465439727009493224377664382373869602666369892601093600940856580378695887395081663478112789962679937361484018951211240868093494803130726795049449017593975256966208916513247525675477431329816932010370319054401361496514394699460364280620065194090185958155440699148526307756697170430270868691955428886671905298630198859571066844051792815278747428849255962652744174507707591444514186879594821137831141016299103704641735504768624284843035512016360726277964620240892069068096570851186312784603144576767360172083247415838453650387188631975522144225615330160469629300502486922103999371465623917372775035601427749991767549434331847066198521420007214179059562886358364445471155218600745300456478675686680085063360167623838578881570177644722985848967557146209212110881503605054929593730877119028059879745482630256655427879315230417008595400233185436117169719410674261589303764108164813663136033755525259447545655225801945866110737736523506422673876181279204897234882043529788693879418861567709070690599022777046611769435152882927934442329653501031669003087834978872286828369983545692631972296727929192085480995861471716980575105061649229802602947512386692824251085721993603623042283586769915871969598904243235142400471027758087747944254837643426071949932504275142591201025472405679455549725539216196419242535308605719056098097688899586044342656246570941599679854046038363138333906348953671964504694966253873841162286443077719451293041573811978247618153968349892055214273161491319721177313040690118016808731067221426560719499311367157541780248105141698604319857276059428599953268122208528663236310290089161177411440726556944717982844444610747832175156887938003048272855755711283066725621047602427856832887951331134377824585428475747219466467748122065311485886783883965233750903689441056464960408617744042414672340932043573342413673373277474001491427181052968484090000486223739080680880005770520208945875210557636057145929578538210504124275903709885794932451547734270728550922583174408066577760865667047255374803766103076319504213918892886183203290977680333286350855895088001955425893608824985666326850412704308507593756505338388109242719382081950812392620359116533052284109452532518854110243928548186649158507882782561340726610826921751505634646388374128496762314778080845090889301354044804878150790509581958621820966114540313019630138346489512002199134922232805088823874991422460555190094268083956272089367906720518525618164699061772651226604902636006332402644550380577945676618461167559408401087795806949531135078516757367684967437506176015741885340857481029604952918422430606573572151193927187345529239975208963486160840411034173406479252695957100022497791936600277862423248273123352207116746634699326714905080353374548873289296833348655320925325372908575651389532413227217878453435100052795677331938369651626816227415317547466896924474506593133416132796075211707906802649670510113469882964200792405352874275106907768821177358009782460007255140231637926454834599553221075974559811760168507039098128765727230585814581027939729896625630869426791207900693039686521190113795528206375757364010566247149007961783069816975090434813284701639767564444838386387671435595337135479487343162882463625783345848494824671332460796866399106163462168259403739670606544052891949392242613246943405624837360759273182606984837143044035419944771408967023488096021484004903646765001611079130896336900645417645455492995100840505173396417408676394419958691564567563677815181741576889939987064075273255015823954199324885267122627175783791105708772646123928858577691297708251176235175518432908781064862618610168707673350809057960323883198659261038357570990946984345302639383977380021660784325408485585001958197818002300744342381914258535733110137349194900516622420692930582041831090563276492974016162763331367761929210690102300622488112876085929152924644798990219234706924436148491837582623994576671930702756261693056949520910821427064630131262058658348820722177280231093462457320582895069508869528056001568147934548964480030383143329241614334789163006492994384184275674697416560513600511894819579526533902628670716138407984634893467635261457661179366291197726006992217104263585157323442032405767387870839740678026933617070662414828013586200830460579027684783371754740310830672066431252346363374118124991472711537636053309473051398450404723871345615315790671662457513142430385219938341962647430221127829312879819346042373803389033959585958944146978567054257787834741331072530209954370752939339681171854199485767062820479552930844354593478271007241443441215227150209708821518319235908385776361696143575804883509861347105708288219029488500261379285970579426194298984984444718688432451552005837397039673259922592269175708530355205624393972907399707243603252304678237241426970355948272704347096110603559161861922990002514008038015472476130427451893059643384731720478378491826533398001896727684569826663867463636750236521962199409667418808652016830799549806727811276113033258203324078338811859965865124939665685932688299947305756982154806451857335154036596018298527181205262950487746778738599786919079286155542407590588288435229596299892202992717908285413884590029895292351543189891329986124934032803376446152647189764339582708446871607788502897150513578000298585724197740648634047430634694903967561368447583545508594747257325329624844803779622717046884031315275784413860253913528484946053413063780508006608180890308189886914647526373044910303169651388584582797209994795177169515480492595352559378392870203497193964950965453996281464340494851439210202932241792889966891171677281664115448838941891825145385159575804771820660113396620357367205890652247222890835597318780020620928255969733355593926101090248969224022091642459265674233470732135369978789839173610548828928783605136456126943570597304223875851580686712577045037246776265524470125879368807277684536156986324619085450042772375845803099799189256444395938658309538234641275606548702799775266833799087311821580398157905106034585452643863238713631802211944927987161503274837013540170573288685735994045780135384826342323124745774097029594260784278769908325439341800886427419615454353710179070585799024543282353998637501354033757556429099537060705349883820803679572766154561514393313429351645327908892913762959154860714177690070720207703423730530855455806012927107284091274792049866286997519002156818406640316355668348681844576855561378747706692919620020645307197375685908186189280136950320370756441785325027077493116601713746724346851145802975073638304639753059779912516921188783497284033977980884503300290954028771113453934541797028676248822468881669854905942090981396373663962532864275496336576547293711510754529522271671491172312484563954354656392374737482528992491363571102459745497580687872691705201566134880986096268946804158776203502488973862775440739113075037673076985870860214136588410341511319608409177873052149113061612996991698823517631449370805390678603012512424243152981563102471388591366593653530315482295889540226766328918492159693188787903090489036188038752767327632960146963899193165019367709196049456850662075141117226225776268475323521072798036852326769528830802661767421656721148337695806305887851173382308758602541988728611005242684282305291582186732559541321785133046802067918914933586767784543037131908984549315539890579539788404512195819136430397209604238268682712259185404795879461634297505450517274744500225341978788350340916949119257281380164928808421713113894063534680137702156903713155040464893173224663295001716934577888040896941309812480078221593437767998967004213316084034037502826017059667969813415793702661380411248350649373283548462381604388416866417254174923726034486883411664730054649069666522775775457223607604138165502295730864423096251970045561459505100907550786161779518614287883610732731382699152523183199947734710601840543290028304691353173704713269500981840186582949676031510958437947285223759042891886964001054420619537352766199516674240690425186428261289750128899760590524094067828741053667909682865830246868777575969339533169316012682965114681375113327974706690443940641320392516284394532577103186041508258317901761190808601229208682049441355408750814820624073815733265119977047345181710342699645032406492944485749291613773747997940121845818398364064949878757285681820652460194733611694648670939830386475580275549548102612940412948459408834081119037987660419758308562923353296771596963426092447119630622026736759780543236788866089620886768201521711764806256681608947676753273217676346447981335460506526742834980303121198087360501433424983414121883238549023302866486661453811843357013854606765684143632483860545555585357580571264184725706535728993990111725711546006534135749985239746773721894132086757910665617244003052888966582677404689017021781699161810898161878282808606144483558014754962248565469563213096256600738046229285122157969504530988939432290913265368075872266739929316287647054893599570577767401725275194065467267630518533018880052169241621997312870630513970911308671205124971234150893038098132949433596083784077715413326244187692568204256269433193085450382067022625072786742632529355952617853510234089649075341500712485499353781396845587034369921738545713747666017154911515689684412560788889067449716992252834312331574398012913577419158170482638105376278372092565171574696636849350741740472749180300833401951697786975702765661826854207945944476620404915596280949670035277475066659427670163060159406430692281997930156364874446098773543610061832235002981908771798014973282064037219051337690954412966119097614854221830245976420095833966512536274378214611506928889627215042044884173286394447720354751068220133848140375668707954449334678970587144751182058160488494348416115499332740988169721286432138302827385353286479904828086660018315502993463375269620297142576097776870839316722565086736133970993058643494316289728140339945088396181294964428280785408730154297175661565210622746037677717083785420021799566883567554767045442501411268440552820145730886457154253643982096165609040706063946970416449543917324771635797892936538030847649405003451504811421322147643673949534724161781742471004773529579758461164277259467487427451255419478198493029625251018176217458630215885972885980433298241155653937906017234558666985062528799241359341562726315179836013038062053708533755374545717058509697120184627243918194306113024930025455105423523826958685044741161884222129932553005558847512877713353496129282794239806289077730505963940935780862048998309821719875427025493928980437260484178333144371501810569560245333494876878419115582936904406565651974797927868442718239284012417672259872534695262988097032547631863228253744112772153533004813519150015631880076980306193076345504779435509463022778539517548992403790088269696905145398068528652014416994081211141826363878638451670224433289344274177240071488834546488747224314550080584869190321184987982042091412075894045986289439281271341795589049256652575365299554522307007099132125869257030567898737008509688502661814118406106034529146515740253703350970850037115012909137489288760070832419076443279854274175849528597863373759219728784534647642569308777457552160728379946033030744317969736126131918717556042284518931644525482213277178100364336435644663799240721990388364009920766077765506622214695228557657779330778022788920497904083869512506477735849984800814035799617222113771811995467953579358851773514123601203517711654868517136836065197219668132624324470750375978614993007602129985274679690419122137837869494408366052089526210294588826870604849240769624683153432118522317432091090411534755457426110088241124020722815408930275264699529179638520080078922887155908754470197874682576882918211580825930916727161771626163106255702765557400075743779315500335076936782330024708626251152490603602344434434032631022311297930794287567550375135865037448647716525945047199625944735956111199138352865862671123167642424680862384579939770413994222902511855710735511198085478095314908679760541600051641157601410824805317259900641544908055757692636270036602940590257836926952209963857185485217899927923271008348201770293628645103333344976510937410952867062958876632267605749178397046532304090521820059709898287767037811058646199905991618503667045516676998106040596185274998706380249447230432856159679725439874086376901476512544912200245560782682566145850867378682642020919900391983721933159723799509660617379127891048809444284021119529939662884557780348565545400220052377898387531455922091254882193989830898969893257271758131648568450399482160510767162751400467958415298220077263473794500739529937120700873165122802703479850753432013264414581731399924705679637238027211571896394566950311423254468083673440353602607960952599370224393842303117304505367166474815957493935938103167410120836012460920913837347109397916624098445632923347126295106047689414838168599992069632829923041712618977703531766469174351985390133166230735589183044388831180989420077440538238151376414226882619274774856506653872981343757144934028399770508082893870823767381175733369704651726617765066032492093475148998522179013649192107566601333942493957932751250442506915525928080646309672208054173114712594250088665597528912101733325578828317452804798171576845008071150279247526627066273887559227963740587386691114533910225513996295018249670149901330544797329256881465334924221965257197978050186780115244719873300782060655267280324746736790480851247484880609421575030211114006519432010326451011915613298291004237882341166711744932281325163041090404671614226835589226659563686663409997958245766510990762533475588848616551230724045549106025701211204235548797941065877295214903373209467847525456923234353611114690257718328138874783821165087189002583525545599196165973513829550436500660579506063490765804619215316008421216118136117070603809263665985151069702904767532908729115571510249288992737910664944526031936448783537775173391017941794302458123504912840625515795602214879962589676046492547783917548340962397287675701674581497671307631891972244006108518201072485654191208432247624734087775956464705278935715785471171988060307462327290140178917018002490794912520061708828304395210395550157221011050005939225692646278505139801873275888917448403208768415980764211541682076688499846268447605545881703722045518567493215773585999600068099174713192848732285668746574159914992467465515771499842716603092711240700165146881026089602258488163742199681832434782969706255518214820908494968617350205447954367444347901675532324504189274917493618086787650776161323119512089867329962205447565798937275368695351198579502985640055070838516517454751882935231115876546967662446400667243437354203478155791813200560076743663874970778124429614583678521051802122956345758708797934486280978010382308920384014989302382801833704884969292057380145178854350812466028638254276377408727632180202063989480679185326845414952239638015309234482843491758566800410331426779007282391301715619272501785079517881108289328570523901934700695227896100445586863277578034356672400040319117662164063889331688502032182478147148424532863749434378342310710134421729997935668055853650758634366058380439815903009250243643939123064869869201868587309997891147407058630025387312725851268922913419232890781304498526327464402223195683842665532132912635081845810505353520015237704468632654356660509913487885010244948993015853837509911270418757204216359640306457568790886557225162884128460347418187930118066131108419728811616643962534979638787967501717646875129705384263419885314472818983936907567496691812010743567621539022969968995796110053283166042269369112902312748740512001244673122721967024804226502388667563046284686610306524930311580164429185084897563798887528457726548055884233446435294011826925188372173785893496203841588475251934142186621347043697077830796190455087672254613442942449384107693763409074681868887013219464765838189797223335467362152567954188825403030668673980933276384306105253500910783756756855766730550983258256393515554170863753439015860331974928551152277432507527774373312574045605840453567904969780658896611744874126286926268709137379261397447034195723768000544353007995702926045811803372487842346556492232945041000513569636697479379071389284539467374596541886608519376020572728462610034978842844834084831730135779297480736626226511489275297180144663518019323470024012292179785818924471558708493752849756857828870776842645759124704725128567482122048213144379768452470853445500866945589306084224545035182319015480849206390209747678854671134002682556362939841012119599999645689636371850089291557411215585397376872584081902950018084644701497891885431162221338700899303248161999925411501341939658115076632576927664921968202765271585154566228189065178728642006325329177401443660733350974165935659041087442695187417052954433217966449052931183933794133122726058550260080727715979949338986156038736792527343533503052430081860617529034476587171637167243482956235534665432209765076921855082434053125358940825169466812440043719509300836003962871979844404093344634749242109858292956721974511610327313674765646075774991508200867861822768097651794927720303321188126631397432315441304093823769927370707363046645850532055143750769942013071694038806474896277723870141899949424179675587034267235615743438762788136219939976656242164090888476045445755455598179679778826428129564406807812210756640659828465615274558351478432534103457949191972625137704366468517734315284550840832927161458791605741482994195916601073665452049995135539087490867790529623139598840098974325581208229776773366268322657105796268891799249939859786705793205615777589020434827756827726411220086079395173117057619059676512316609541819559276395018679484898732576744695403607028403679739871347299442217626769021022962636557297381527018241108186568581732596944935560428913840655487401468340456343956689537624106351081852570125207460646306467216640312371661221325396469009002176376142149917011341352139688935815428833078621817797649871147642358025977820353986411678048798129958240462171020937850308209180367407692996204127854562553035160747812252661512852079924691640680007166137399833354957735159242957986722377152715950746859366821433836357000714450784814359614518789997354917318053378772799347328941917836954079333016537106205036968128586052867136091953432500812413091885450223255727024597064066619246416306395709517566277184516934262826898551212958983048431141110004315990481780966733467499451313983172111468896045544849281478086336147465907138327382291737302995109105237866811767374738996086582922496261440867174363631181539735709520764349365915435082948534598404970915555485410940837305744918027735484777822122955817998551716849293811489612420973537789798437485184090343932481908893170830566223413930956048710585416162548421188176369955341642648435744839874845779235585423296458585505115036174523269656080059177546828058877224375413465800095436239178995883058176896492909261340920698705437629927874572121647335552352873926954970030016419461370395212647755544408791958977658594047473765732501987979484010837926507914561361965475334867013129557465451648340979295434350345222339636154629697298147635349317225303278358413937657743252706103341052056570880242639874014410866862649327452536389480528607515223298896714623326171308607345925789978129172695208791091085579007556872474793527984546893615674347727435281795705906356956036899120167650014124435478975198102811588665888894575282637965087803233168075614832203268042452734634368760427572301378841312675869516988905836162012267378848307535273931203312075708312719662612230729537231325597584653780987801915860215792576945508199891536739771675677934344752054261375351234272589212824722220266523394252913809929044896248384336622555768135120885581251909288194695112825942149700596702452494891446055808605474848928317049016143166760712397146382951475860013790288907267365701639232187689865649992413143006122930572648075109496676950560064503806760055180403563682166804002633614647068988540965428127004212550652423652865250837074578711753585881545412791305431242618308533788996225586770978443450445051971704206288878742269964286435211923057551969990353730660214515471917787406554806953248981653045531214477686447227870056044402149481454143676802625544481524828839758409359246095175700377928740895613352765932220550158598521175094798301406010664895487877678928733347570751737570096405793516966465739674269465933285035763502655394448859547544295132015977793804183046052679990788364720299509699495797114678002654328198451393697541212596620338676587961437676986046020183713556796851918676779501649514865401471310728259403518402768934233577548983048811493997689955240250995464724370149341556549419404045034517003910116773351556778463720703345954912102931239162401679900354870904172801190470070498932692573743921510796512016704408240557118551816789651913067524593404824454405233115769380417547216747919137564112276883187598025543591968535336164108445908181485327162135714190755195885029459078234999552481858298232050839101168959332698862345645309538769217449505109307653861767961023559450204842535329616824593651169475936516091763074281771100771834276619438802623298596376522892039112878288013009181657354919267101212838624532884568107549425482283535653432361559420775833492630781046419717480769507661035093997426279610455657166082563295326207376407604444436843803697154109089618921877831918800352061013689913722803310257569726064179379142946012632133539405077576208711535772062434193279409459339088374177511962838899362641283532482118729290277620487014920625547243511112292270627988551654465931667495963597940163961494033571105061458626371893979538736582377689389408423967494484334822413711385775120533422037691236815096046839457416736777467927255413201187168571356769549644856374418004284803148112384969550194260019682895041166053591413509181723921469920467823001995708042932897169007669466967232915428679252991588177818891053804589925505391308350962933224953762567050612418502847416547493796708773206362544437148309426814404325396557499026695211338474671938858525681371924413133057555770178538488800915833577901728113382961170361295753343872375390701265812987570388287089544436579394961913051324777706199683557547195769930962928612753545251865438929370188572055710904319586112505115848359729556239409275568291702791498652730085736638728955374233934912941062249055007069584464717199946465417632930336602738095197913630802845361881972120093640635499804168334283300966640701159876358809559796069776241676758607178298204066645647430478472195029533028956072886176754485171737633058787761207180123411695222568233826896167521073051955923255139082186339393055624769941868231349311324240285803513337556474301526975804479549708046490744421533072345625900525760523401391957487837706531657038469066475969971953034713594298015863022796202753740334356608606106885459340669149911330783479619687314550633693987759088724046011485527316112462768494322312465243266615654530191539093297896496933108839232044199680096584798317727642625916883244196146888521873667499105491721354439295804526332246252034035077440355117698020251306280892329151342434454399869955185001988850021265945286545209437192352702474682050612135912147617439407246952748186104111059354511362840810596471784464772373840909277240095363760589191658470381219339190953685249532781335468146395223643713987365689482644072314119055934003068515383693318801900090983975303794688153659139991425770548927965555752391467443783624528584122071899997124591102708091926169249044523494254634579021910810463958350880057854558845997301984394682131205934643380009134416490234451696036691526253103017871093907122557323338861185938891536611423502830805164307863634993998079409112282260062850414904906442864416378573879536897890639701055478788929683153635341683071801659652096342082199145199623365875271349526410755051921520941313014993052629204082355133564733111457500976503116338861173920058887915177408663026023479972636629059284347757760340584186565472283963970815996712888841792435100205232864761720476943544628756291099678925755325370221026845498224085602794078999356260375600627399616610670212845773939594363046364087360788711149780368379785288038251290620693840347485547100124826093414367145882760986500278852234772349281529672570351856195128456020609424309260884750495179133159870936062965246619946975140374641319551989262135458308508356046534894837887866338548833563532188906219446840896302029305626055909182902684316747784174890803160519454517946677285903858978964124873745373090351115767447480425884011978284256809101372755729606769864244077097596228309061384149699386799205310956215217403415758269159028116955463787025645820788811906778078412720687416611452524507307379060659916888993130560713546080375318939501279419582128576160806174237506129000614926052643906975389019889032654285783518520336040631750119271911091428825962242404486716741299282377651520943454485277149503672902515609810790320818993725403511271445192137105659143053853680308481224252299289763867047845259966360680880848096175816670214859719007227383245043495066697967423683126874506840816214149239761523981011830617968935902483277050871665424942754922554162470420842214162752046462685335436032407685882867325600162716318526543854734491777181083990578951324437602235228225479707053450137475955354795802340512179473388438536543893839996043081672406693073985255741438719889967930345066820867098571181544157913594331196140536175609587790360727108852571832363867762946175141733620761103499231050942699058556444340813500366523360475253694953519987544442905323117340405164952038739780764739422543468949814261578730770169326650748094556343268303038121482291024899911044965501663734617513124855891925389319643578168968625999445671833223194503355439063543821720068627180961413538127894146824092940221744270559919311420538044146817400123737418453375799646499380517718288436773989414682217813288081782273176760480538031680874304796748636647264940576263039039165487368806872489836911792878019086710155815967798536439780629060041596308476876613062725936778434379540581378441189025859431134027398085294989406154973565865849175872158245804733907899354974606195605022459730580405270204732153672545991393036637793693077772833696059991792504258125071614148612229090502552554118093413748755398221324201242297906530777770262675800149192300996664941379590919234854190164449757593462552430550334773039456782800803218619062730023396091617259817862819802937906751979183632389985044665640581331222131767745512569608893376714618363217555125980188401752141904438523774160184032235977679173297503687100380692292411810202252924715282838880228938561306618835186089625442506779513097891387034160936109756394428537075088801657226721128546699628557467564760662460197354178941060790491732843300451910963992754614239717008258740956953202654163668974073439819204661385009100233631741331597702335794874162935054001231211322314203988178142012048341533633489740053005507270137115868357309855554831822650974491098307207455355670785636728591074063680439765637199045490545229015758151201560127553275066099321641122425618234380323304402616266402866630831243983246638425256704160947371555855125853880437446707302892387990626207069244311998419425823602163608675599748653484076987006832642756441590392159869847396111726851977848509449330047070221220874438623822247976575353981610793067049601166128650606433685071190940190004143106970544964639776379054512556911405306763583221400568454664858018548913999554134769228115803760360516795148518483934979104374720710366978470121733762981171759002921612681282392769547120128739517419293335107024955153317411398814861926242259231213269594358611923854394864752437867902805997510842977629384845269127754147857447516163758890707271875290053490672329713812632701853149159311166987231456623965947178619411080671042810859900232347757186149088511672242335077189710386595525029902161456208332901666345183744605771630810739157979792290290308971586631209022167328194663699121701395090667343239441680510849626596988634515071490627293716196848328344092340404019021212773054017667627953224267317021157073495486418778261497542115933138352355669940292035896004556231933642152642993008391946874144955119899798947847344613220386559933719721945175885864581248198149610908009232979003783590628325346500852901939435993675120687564201505768116493439813257169008071116392647131998249459286273860853398696092126583193976611779478598868540797612181905861279509513274865854964177184202686994196022010075160362786151161418479245513713302674019533084505801828903302957060734498037521837386730345194962942020696573300335035665681492985599737629408841299426099171602870845621522617533379723293421377100649121916050463072704517155176908548005736543429936136265815610643779262180072044015340985843239088022127193806197351158324856990083465592305561886533354682398055123661750385372404890136082373749213170798690624101134670206658830563618963650662876914526052740316438323270044546335866707329476536160125174944003860110793691627407827421230334694430954107961842410132429708529292515507805425353786380682298294885094121657495458907701540241984524732770741240098843676067809232369169044966765359999537832237842067427708094828371241906568724412066698959384513259119944906969509031857285202316797034187694548423571543712961176234219127139421576734880559245817292838217466597092243347262952639159583841733022161755354248022419856709796845324980120436896294287285190211173744464160826106400059782957027617624136010411654642008667357424780648775736480278500579279591797272148041178007368711774820633774605383057472722054684804568518794974152976625309584301065733364310383740514624845336744521299245547377391008724385965150196655830893011396698528224803910777593928709483802359500474505384721405504762740589408664730878485316107808325424453554471866116018564296838001839107411929114610301173821266459729552660588477809917150309463684079900825468259848958390788329311527339554540184520628798373182713415216579073504366897966407512446276291842773477667947614379626898218426230834384618753921208279602086114260273476273948302926955436880815485638427603151757282977552309455308783467904637234351669347482415351136971083067653490984556593621137982467578395232665602347241534146521124193079256694577829193392523929992728459383012493055488423584798204368019515085894380588084779756294238692711944098672785464937355429553784213221854107172975609668165994098016897778852285487058630366948175182772205208019003770020202944697518956272048980648599396790526310013525662497177772949327693571734743121309660703456903032526739356123410687489458235272495578977933682399118219744159877292833692462460975381312500828611810491254985690517832484140875513099842063182087318713665585604722398299131009873582592175587866432318780697421964133377864383664047299295335426426141560872920664409540897751572366022960569158315717386778546121157121211546854462823281142690271529893573221193837970130684233096942458014469280247499057517501570147120026212664272513880962645582251153120052464530381538537584711457620387943393778471819967026626480453784983896194581379149282290979190993383500867722740916736372291445159934912638408343315821691913074239016057272718263534848499096366110528507963774273051500798553641454876111789802515095773929959200480990389940370567085729869007326698516821040001293534746657273607013748613992648086725646836113043500115112674497514608878636655450414492679546921488057534532652226963456581995728937931844889769804705384231981862231526656559645018974857259441472511128859643955978892709255090092690947048293484020166104092009519450579007170156056012699010571744651663199652109375850721717295083550568198942266411050333648305539784781309204959989816369819590925823289788917397950064111455355055274263176624905513370151945161054602188375081634134968727657017677961806520664796098522244733253591519158794337553643371627188516428210210747243616465328488035923685153754547849293831257605911080995636770565250191237612148471774642314146760409477759961020194695764643409285884170759070856352541336685554842772503422914153607797639809978440344004341761930157890732961043808966904813532368045193265956666623652495517420150546251834820562473661799115245269137389297638364688093754504720172294945842487550646745820248603063047959444961109441946269711539844075502863626432794133128249446402064128291150529687986631036707601230841337228103354847189851212063792528198456820186318259200465961355782627493373786013954680080853114717412282217167057467739154773630379387122762154379429314599353688675338390209574290349647510666205545988470435240032160257115928186842385031190495393446704364040661880299966758625779321525151557707569017570596492543115716370637927125314019565155990508796756197045906968317885150653598565802369576655777097019439894592040089157517076519694255094962715056500682820977057045927583265373010653586845333971471089555320526191618806447048755441532869190414997885516628765820106807863026009177456892294697472802479144808400076579889126814199103652455244365145889714366613986285605989097515255486799564147177548383435767596432085614362885066754627276431344704363111382245525859422515593975665092209733203381380706901304971718710115577186603737064326651747649378493767969125762418850493320561684976429392579455991107966056889476470411835123760653320741788942446048549922413801997763934256939698153527200069023385103710098064145621909625518394931039975574325304640933810283898733509036466331222338758498474608134769899349837682154830294670965915861465193859036106980380078003251257438357025624238742173086673660579452663627348420769242452512484499912464648525275299878739938082740753367888152248210339442405299618559948327952584683853760371366498802083027088315809419327114796643027632766683294621522128088008795932306101345804151137640232996488579138715461006685625769607264977380969206688675152670578976107026162001842297428698645979860429046003076401802716853288601267547753139164471824532880041061351118835439101928586542823119041374902291361647383527016427369635184815290404118986247385296500359636778807086496956998016261471154834073901025204824129177408101974172662533762989173337228281333239236469321715363018943294000298688338590643235401082790901714892380878732076540512811018536103921252774518518131427555658743422655277641768521137670362743262368097813368178767139097406704669430309393768037449411866305597981278980349410391065873965975049842552299343527424670341395909236605181365365865121891642532254752536223878418039991832448775937317263827723491580525324349172344942835493353635607959624282653838341943808466794868518497390377873271487934415396571018019402394594465547342615295528932083407739075459556117063760909879056472143615507181870455323085705826929845439520555505557944350973844958558692308142322482127685343990485011633331087229650421912118342073254109337761001866148621837027356231933601044308600214622361401642805504978466237225247354165809124255476570383914059929358483454526561766832231979802789217226348080070635614311255519525824467882366171931777029426265508657752999822561717498872817204597282515253868742560054281542798383041266952475706106086338882016525829884703690949730054175633036007377611944613679859620250644989226777852360293733064097166611576248646717106982428091728546809451269492515165598248851479399031448833413604606759583349171606130882041052588810833439477176809618330337487484076408912181085973023631739331199402304628053987785065743443743818275598766282989423656507692012199973015532726328379552592357459795939208323612016038287552691635504443701881942033431749976577330181787777640650168030734608615690353261596282386270614713578544456950135701365918967655204724228451830175801079480934009757100331568768367534123948192525551733787031023693633025884689493092222823193359333115024311835277093508076856209488250052050713000354255060779324941113045841046757287346110015299480666133191102450180578953986689774936730033149711881218315080934047468934917645269345449983505952051272575076463055284500948177527548498464255681673852145883161768656260413248325161964802338151471244101822850499339476706791884707385777573745324996753322010307796034067138264558587208098605027818314165206534551249643442521431172950430693616564235480513867691260343079001548166498918575931765805637517126336856734435801537307893437250035338491398753573474056203563434793347258895513103727605658883711903255198296003937177548143324614101591164079889782085297472505070446878155508670587554112538741156994454796993967955218285127402827775596353596767594712458141380073338505427032371572396032098698554432065460218282719056442290669283911504273769674594938879469798376157672253269281029005350202772547302349345442700930375407943547936784692239025122674644811939428505574158256352803484989794864041756897689043505039028938198287870691222889883163792912278562573477231960275816204779948450517223308870212957867085361303970693719417881899040106545853506696448870471130000315017454148638644909867730255072694738277544192233710636551590463495693112485243157052129133404506770820180071437894302568979681749899655195582062730001586047032571738517140603816191258232439580921206581852950069537367190042362171596867866663668023469789680507165679246588867302156128949745157482520492388796052768061718969029552966159518641785723557493271980273884308487743175442574606619810830239066163324410441514122225954878702389718742087941034761892032428215965323383758880673515994469525986020812470206536508123644349717782010891523222524703117691470958705356633207262367672467826441394284295627593607434731962053373475492302525694926018027390807320677189986411143429016334518198952452717958988434807134637487074165080521295542964784191246594797084205316335028886748248800083403131848157737029337464368897702816317522057068318479445789242302147609501838903945004524990578294417089516146990414728955780414199838568113078019031122516661600809335044091039488838315974313280000598111223637871463544197703408650398971674035868510223525105331272918338935970258667663109852721807687729868017884688809471380030985735590615286862715890048292319786843162890142532884182328227394509433668737170927311197172553608385863598710627810311263507888450403996491240003143494436040776461800753657018568793776795501018307903498326544550064921484729794710396754379184518759403396876881034949044001493721770037345819774391498727012380771037253617903584477508806434301007088399645236536295760965118932821023334286293950423156771944132708295197152016693747728897282001169541148005098756964320784252038353417066129177701712460139830059553325244046090793196684104215704469326116255133180854981787020438856946574945881816717046289810501685492819354854405596553126044935457478218202577279459855007028718209060589620358577901278237853053656711793550632416167633565970095208867576643705154992330341515675611146213805749231475580621208552827141300197742650106549961849973294980066560957515906344455002191512570760181256909190066687065225051896399124656868829750934198974043857754569862096218685193925043860812748634062808724100853102738775600260910763296467315981261169815320002941135878533186418361630137864193235180480735624959610008687080875365568016866700060230177712440158066727679610199151534313194557575757238842211444393184508993236862883597893929760856001887498332217951516788024912529425681757430232312533621277436877412615654788842138029292878031592026272181037681061850541998580043662938168921657168148901950543121990700650702321414381137266026606874590203523695770140368408265079673337455594021008129121164918790591874452652824961792843187636599785660113859751802468110401254029427396304182652168199018280646768190467522569733735846624216704664128949898636535689799240026806324620531228961514276801125343692154280827704812542441920387291260418038269444933193061101196087793236717675768529041845333360139068696647124357774275786342346823112706499332383681789074119114138276115045921183436937969905959604937251262123746573151167189686986485240352988058155691506610871837005024861744338237404649907779129479221757390066388120787782537604736521446870763342292676587628185189580232574948034022441346338432828791747317443020654437514460376367790148624776144600013405785080513029938088638145272917670120281620384578441622145210611903661207255201736832420257925667144742117043273991443647536220619660942848945083717388878243488026443463091417492616951789757355132279869013691411926209421075005778367518997014835034050364733605193678746640271583800777190091982634561638125328262054287467366276157740040878997646636285267756195005179963666870894543989271911156261552901504161785977411745985456741482206621541277199131387271761677243924936013809106627883639512140120254986138287039924595721115162146442460382333784143300082645381025390399608864476452813636738026603003068583594941065189079762448750737665170748278132151756193343713777955891786922520414807697973743667080029623918238048932089431430812066358064392439616685337440404195068577286658976422149032010913550601671909876583115900603132433896491462740787625518458431403748356812317191974763252405712289216286351828719602844507037493690984074492055057268269463596433298001188730693910565591752487177620601225023352313068848025555362741577766312749416298068767548960142468719539753164572712566695654352085884658232952027491867387526237279022575907076945036935425658681463264458959502899245871448295625799089457704210553618848699024952922025579839532660122473808086064582688094463949875182723552015574596545345460540064920948986666722645930848233602579163894129922344138010546733602190309093451653237573002125086114163049936529440984193534301125001220662071611132334177614727897566914525151295902341905199819194705572715355057143784063086519719657721566308787451622195894526377107506004878600244657180038521104413930088060371261192208401524472789710954811577331032753312946717688024125161987185716132717701226722593456171569859122743499500067567817197041081277702974288096852694822488415688834709112212713649031517414232836554487893971879523436058471605380372512265472872271055880017114348002337123747254856001590539694214295339585797673750682740317404965558878749462455728013071725268883212617316596647602502575213145411075412041620023637208421682831100787545407072897699445271399863587976175753995205102325824733220733585961543213261000306958591860932634395705419224986798833659295483370377561934924582527659565856326953549005196034341074983511137363212254084885026180066827962803909645175186055644550797497100777775169874849981968225780918446050093841908415700380336513327652342671826622224218855167551004373568109535678247801570215605529991346505277229372409607700607638761793054247573736531284316112682019576074414583983721349447530832732590337921735219525736261250304854109758872351979439974987359429987690459463324520131535329595653545604526668998200812199421593734528002521537312455877477149573496103083840789529805196619225455603618340670167563928196877931277222317792638843065294577201624866581773289119023573900073295712429774049514874036614130211523241051784530280866666450624620207562464310745985946046107769845142866903757712029470993630585898631003247970194940714203398537477913288022928376279267193480122551756178787317540314157816372217252332546002485553381991755992362193428154757201785952742310924624315688500999446124016371898624437655249643405819537595491277948533715486555655839619489859205405433953210779286861679856665766172386686431148891090598231574405297527440794432883513960563732772299315293570704417042201193505473834031138257807555535864444783941548676844230879668826602782067975478708628382718271597793930501646253478417758158933933833874205083949444764164594045993022168279895711144171493809587931781624203188296186900062954669287470204589026961175023984839210043530226071842502489610335893985988050727165235165755947828425964408267315058729506383561169226159299460857554076097452371501983019901870814129896186201989784023631266736175497608041782141548554177509157048411056881400379442673476058531973475748195501676952648364930522254639314285002480893157899537513395333092885382441355025243554094378501240254044253042507269108810109294551255324040037604641879607960770749808418391933728329776752656978595419993657523804544191501074983388894184944351411315664564228374739568857179484744373115689426067239118253429815634546263329586721146190235822796598267500306132200371627937985501813628851602560801351338668483833040909686104918673592886946206771139267137043966625482633046697832812658353608819112237578138315592413641546898317901539916461926119712076244724781251402131711770074153229329270932290910584405100523763626598688860520240516978723021076938438224685992908334040604451717313706630623150867122174615236989996992452404639280390829037436649843325644877530319906865084555813810788438061894863787279236840532388953812548573943375907110671752198776694210386293616912100913170432507521861270605985790626393007362972279544924619428358674455306948338463334520094134242442153206515324924715767047204596613049565319232407109986821410301527664231928791685951476346325862545117509049475130449335265673128694247883806891743450211402056770622001596747690665302421047313904919093308404043013549734615326258031872721722662443228793241820470771770043756240026644673556305750939843617625277456176581592215977460279792146879025127643122539451362492456287011796966003941712391050844321637094559041706101649368482254528319422623642609423186932602999097981960750685690534640822356783287691117211778429816402663665235785994764155366307361471577192080097628688777281051726373607064753675767857182627541440073010050303486741560474837020014991258348523613939661675319968300019333226488035595989161504946981291986965144384216756163985591026166723029848435377015386351009434572150116706951290485582981010357872195995953196856579650060642020748769350914567748993958846959760327116443680647313970073974874943054502915105682765669870564027829489102117703587527773821961247284587525737953749927093262077126220368451060098230859950718216716768850913845897182829927018568454779539417786085327275739097684989018328063134956360775677184641947583424414575128416086273932234035989723743013434677451457239641698949992924555086378605665651690333826658909521451987589120928770503957484785982607908876364873035964888020900147346994313990721285924268118466722029598925346789655634285004647020763938545811434112954844412352375533796300888326271061940029233919482146987610761446383167199858537544717286940492914584679879787040902955533230653169108562913261958943548709052652316296473480291901497324203076467867975061192308333014658545944732509769237671147000207828724271283345499369100921345248298855760971076910741377960526453423863090326627768134269970914047268835424609779900081833342541076843123147914837184347827404002784492325383744764561679787125330470103724605050532268137119487262296796385730014875443440306015867596766387670172051621494606443044147895229792429812922852155962696438778467876463599924312687755438808065661677198781403470483507199409602526482810550968147341729021604363055288273354625434260078685044071784884655594770749746450722263521432036761913670621270984508972388467744962050206524740139787467043757772144924920855882630342169370127287845803124477015612950301724746643376826997832227013468620886027276752837314456953619502938561671388421203045954129084729001874501708317950578222020645468633937220917935194278230296713668540525818706747383123524335662588597566507237087453633524247584236806949394166785130221908822880225411987401349918532529350158272706691099390863771169266465171806331960938724015958769353388983175881629013850911835159961126507658680622235425750661571789846476182210421050446230159266187310583944674936001332019848258818339548331992054828569093431718032155767279960942998049273652055346321587726833771829715090232907233123052605921216859502608914719766191231278035067475555447119988793324895104317987514803341973322460393662853937036583380454212455396774139242883893735846683116462700015762785519700067346700009992322273876114330983474832175749774990073990734551620148705673721859191062225595214179551164156651534588167700466635775838913330941930868990789982387312260358816927196113689279366330561162904624813422149910621272373320185660777173050105741369066639795816971943615246855998843207224254691730271468936277538710236178578261516099891633324179436863498232842319662698521446974733178444940076185513338062448936687388129065500827215437970382102360993230751529101466675411808631024625284138570765593108612231931914963629136201399381360414205184376923120398867527668589135642391758151721153737084677680796535389546524527069189313296051769151701095762968722183595673392704045904811992711153997887267402468724685097055623103543094333569697888177885182945187863137870495566658673148150661577907975314946919576401537484162544396943723056108050426395639261564781200620034445022786670514320561203271705559438018121780966082850322802941094995635350089135185131176286874405823475070550042800041659947193593623134985263344709827405373245213312713667575092192078156354430287659419535837397712218952545318103297786539754612557884848385737655475367957545588211852255612324188004552764995710829207885641026162517389460982075286221492071139428584032382016573286598763990553867711621687762803917570257908625293434807135599725191269704382435512652569616858460380524712859677089047744915379554593481988393517181425560271384576791492865396626629236852154640720178336729519868302897220052641792360187876426786995435950321054104488750236948186393813915484755218099958616528905242753686939379053770753040297604013588079265599862980139439450335824231210942277139459714433697446984366498843926724009499003765130788442447411805182217241055268942501186743504083704863868227006755590197860558004946862114891873948463836842763979314911943344757178488494642243543880099156181393481930067721083191956947524700394745662767621118818388668990724134045321022405372767240742903866462032656665593785489096457433628809227885811270989748681345568070007244206035463738031845414428680954016728447184516324000518797633122124921404037744306920237848761241853312055252008318479572212367468818815283399687350832185685960407143257696355540346559131002865795084904841756591845630988744085657323282913594568906868484407010047348166658263531553327753030648722664101612674582859124152018176475602320810453187380575842165954844768414602682824548447308505249097702305932200702887433934472771730223985675980705852777195630776742404109345381901912114129986542870773494257672307988467074712893115251020089011645327713071968230940007381334857029713724601208493129493480820356860825722631787903866548864430048236379380140583857696243455023239516843385402085762736817170450286075539973184111873351137768813580419795392898310798486349375280188170426399476476733884733571079639923767934725990649311232397619995139558575926558305147700335404380689586292199233382138449640021481006493945353299266782591341073714564186799659230033278275900770802897801068544616982313300751847996680895434136535341430355263890300563888168672956740844174708145761374074661044505769882912071093343206857572922773278436952695924512184358650276782544938474560866947587567548018534812485531876723639879994420113360646818324925558349124706159062792494728389805028831646563526410089193935823745919351786913594225518905456481116821974815826321317276994063536340608462968077979165999348110651095710926752458512103545830428041864235494642057643185282558225139826157239564454158431719219092405554456054400892637056654303078319522754366614415256326768209661210247005437836883252694002216294110199223640014487243853855285606932346544435464925851754027290776787039308775907566330321020307936587806732535973069366833469652265811807674803265648611894165481362933990405764193758728850134590228347702180837574057008512682150392504377544267149864913610614525084359911426168832488553664813568860830586236727803223760055752649406209940906505696402275898100697945793587777150111544373849997526827283849932006468169384079552652717235477607084311888335636048651059997983858286361371021015401767397527306634358781481724223336861469215043991458044538384083613534567974053620142714548497219549615377337986899876526697632450039394682336417254561459919106276927053302727007258862301923737168198180159490954725202000013891468411675575737667317616522918097170255947674383885145855003214435318835432044384139374096770855528685002747650433185609356495568559706603904589966664636895883226335141410219457963941741804395984086392581584702080828585800824589775427452595491633286101673020357648626810812176212511317034300237072934690761597643365812116461350569363301266785211091483735375691058269907977015489503363292489296566198876650602215299829066103058099445573947411136996345286753695020185757718309577237822388663335261667947015585514236676902247216462150676921833635158976034662230943662187304660097716971664421610307874953023135093165948060091811820839301623488393594255343729017208904143557141923571049508207968107928705044034252544935090042916952183931086781283913372579986250119230977317285824807138497965186360478603259673171641708610854338975343304487464576783007456536740438174536649032454600430330735317664417475735248624926614418019533260723605984402360062132761118038581585734658191555289213709203320401359805137956536780891259607801329710591809467225498040555392808080593547680965082313793886814222243656773922022498314765240731651420507241570251795140508415532168189868723830955652862515796899017360776029986677815503155057682993535036420376316048541249443414047178703402403328465986671242604031526099435837825901341027728669895563579417233589580572691921461423586458660164103805981448719315901808833024364619558720630172413711053693621126060582656143649322800067630148426685551595186262450986188765246353912606961781793358121680816416595638052351292543971437742467472154638575197099678988407087823806222714187601510725613774484973456654389058690297701356082377309729981822825952354813486497530768704502961455150215053902355499767065050608864758702152398835769214701573563276054647557168182368844282645786088500274728168625554472149253921470192497792084534335889377084176110904863964745337281150929057594335780731238289371860128754158018741852754217035726221149323869472677157603734005297991944321053683365429412533557772655677755131803863051527097031622615030611497624318755616682121897924108162038132588610908438614077970726470448347297357826596033309256592227429306501286410646135770417063493436514179266851276463668642660277982391741662158415491985360189649629892551052059222312743933259016592244243337923750680992754559962760497155719390068334422438112217775735340062229355012419465637563993514227180711626465949328160607819785875334509601601462785029000831865856356280945687232012188226955995700701889877591043761959093930429051931496039215939752297794069469822463782580486294071747732575327894297920507408936200820405601216438634388706890895157455332503840468502049300415386900445922660848627430943132107224679304317069911795153498232584335357789290911029778403930807135968612793491787525251412260886429107669872450550242201742943339433968617727546786841161933964748615339267942359773571557686870392261599742203263586952727907997754233160083377218925473391839870203436291857512907595393937622891675744361937794726264751810814588939638965762923080320477823510629364688763187195205410749630308711180424095392815616666762769076338126638474669732974472850023385089035619438116762180581949360962566379825321207181979275280109455088176402871201310251343737499362424807526996371264582644525471274601093815042233897268072214182867086984438820689112179868414088097272909947206218293661140619312402980127897041675046370506339733729348041528877344141874774177616125938115398595816797440777333689975188192683488514443210775881326140677775873837280586969651267515621184805532948855814670364817520360612703076050320712609062221290019127371357797734399916519202576659474236532256346381852678165701303117465255106171608698764566477552776274750557910434848980103320377201469874230809299202195644063917397640307589038385076173100520489677643749615160251806680060083930734208339670670744365399253498195903354304637460267434301537482214570267576016458618087745682240681051127637272265921911140420536028275960358680334239004486546642680378977596809664915109635300360310182566645911553284078016695305892271233649931742988097806254518658698692624219461510256286619098204634490213513819596989753097637871452355288498246067752558762613238657811641185162561504748211378094644267608018649635158683359375943887307904843043087680388855162351015725370602319211969413222125167892619340372125905426082076773742261713442601626004248956850068069369822686233162201918649559629134734931746259280967981153939205033440273375058641010810375813997610605699558227421295457835027126268665409837141045643949820777193880892040855749332913578653819524572702010131897607640404850858536425863241319275813124341477201022853106546344664010726992819688757839038521239616266543714935136814720351460270760179669760226077078935261550913571423120805119925937055951994180675020452673907556812357475578489517628498012419395925335012924549304903645673343931664434265830756720065305273259973837449804974322256897357602129451805898879769983801743527639243175518528335597591936139479995033584729728266650820417238491755524664686104380569186867144984145039428900560327949498768522620108970987055563450212069579100996207063854697959949168088095181529967149145082928999912328492195064543041358357335038829298964987134077313490274074142751790150803703830032875120379564014004072154570990352469845221690292318888378550902065099007422747730963461302489391267317172297035270545877589731912545056819245849082125285041622131009464632485608014411867369667213881475530723402731711930298613630688431400255693038578409446081052858815657054211178455254000953191034093893319143826536610977562614125556239210616942391969158860320114353210069911044139375491459708282343857462870349545932647129136407045396065994178629035613036266194704113942498096986280004785767661114529744870665566430926383412277839835909595221893131624877532396342624306170471989979357972540694447135427558667736436533434747740358629066205006209117657654228576793905756562367791030002339776153533757396696941879910198425523374422236890533141530643897541930612866025005968446385343386636850236747688705675901303606920923936891978951025587331577148233236397740588341746531175254364664577712924560963292346604052030940207090876524286311326781136617837648445711074168843421997872421705100175161335974103808460995613689360079583387703489122261481573333068164614816150105610399678858222330020294858571011893057221127456899753181400731446825113237333833316915110646977998500978615091831084245537713256389595268100767936655246218304773327709673970716869330922065615021728824556059525261395289689161179442926101155719038739090247615681997021573255041010152276961088147644740126188307044246896062673343501180425781747505416089941881870782517263236634400358822342902579619928643508291058161679256363951711657136701517311249136239878340349949254461260517469225004710049766026951278382505162375242276951418320789785832190935463810948719956019800787150980850506852816351925900332534060339584588003688875738782988223692059980729180667876687569099021287741988767768303220949703138443887195985154060746754721568248520221618979705555046141534188221527473139354787501285635158188202054860882270619393942317997805129355170131663753759083061824478182928828920033450400130114193620857866398078049228773151246923310567974095209958084896819037523753074978282178890331380638290792552338734760190489665605071673144178867916638880465271156974550319016481012219160296081467300884226371256326135484836372869591866352052863640583434966670957259318708014001940547984009668053108591406930288151967225061861980134885302229173581584065867605072026173902139442631098508671418899122533048047351834546421936433978814599195427953346268763761338714737735360778144327527719353691899084437371715954584437794726806716146494912107937049965773431769560672300892231945635092237535349544162238750105545576124436815835059446771152463318632105487949972602256323606805383830346045623436089702050754094734569023957257145493195418876465851083106844413734726882423852725265505289114961544093815316076465675426205981174681449595790712319388166958562154593971113086339274192774588347404274669056847960312199157057516451206475472978925784071017012911316110422335524214764153808211428453646113529106451748962197864498026523768678553611872048205578657663510989132819424140929541764607174881469970031127624325574450751647981036135568413139681531950049199264140937420363351448735723152002023354205930709435215922224862364133230335908866278135728778469995597965608929754894427448643818547997405307727986210136636106436182572594557959528640974929109610572735262994435286675691505490639457760828509412122400720625035628086148555321218144935391634160539636068678731162499188270823711450257348360821370729298219476828559189502820542200994949755469110632825867135196399951603315220746687218936950122087418164639831996401445878790755198781463559415529428015546168655957996698668029279382481618666235622506050900804705379401938883421899265063897184842915553342434266348086315937023779678208048165681698479109342932887974236593854170120722113679060741005735036381953324013360837646583379986605436030077144270107376517304326792133124950494325115094748221019549366518049233728235568234327367443655738484147391837574371557553199227384686162510037488461156317890296713906603448818016371352714786552767740715579435884862648836911971774703067712688977269015086642885291620551980277699399885342416798944141664950011573879339966776010398688574179548666649275344599737915184123819267549332792362568981618330701450624872710532676668261453966481307316252061014810350819982900855035956431523154356384586928848725793023011373729586693329308794419963518007873235218636463973147752657198680515716878739339930718588083528924839977195993030310052051008770502124019704105048949931444212017297483668566667616734004183101146834176371186721749245992908996804074574628388631924827523757679666639577113626189111149594218458690963460233931727057311006072516110937349843650413864424742562805458105178507811090842459226807037851194580254457369550148662527594965649922817074640869719523346743224476936550710147210439561921802967222026545346244256971132027769578598311616285699569696717218060586247596380696952485328853392329940207369137048002031810991586595714845947224409949745942216395393658796759577169387216750121713797889655804210712455540357002000242208795020757359941298937985221256791047272479659698275315235842190487220577489599931914224648568488924638315423924631061252626897986789096887133116963459937850410081190488620035563663253807605369288011338356384772278265670522011536307153021249601346042975816028205271137001460057216334393964098006421437601080786801175400339951480670949428055623681910333540871030105671873236235430650488018242029611098625198996553083827437628393007117989394269077343204309176192394964045602749459312843503891728060814814292111020610950411808509184360390735630031760026933066851395412971490415803032638438559130622847235599460284735828387359102528853165999548734814468270861667156368762536509039440665415232824637713624103322817291465405448691754579561377593377196496278272460027890514618377181470544831578253168584059834634464553960888648183499620832297463421984837376809212379561694877935528830694279246572417241899643820782668429751230319105639830185638295029609094252075163736589760721069564770745470023195506955468638826340326828498111831377439524681449669555225486608481632562633083633263924123925977578419765753517710885197308668118114746074131901676132072968803622359032389724176850143106055577435834066477921912058132725559127688469263275498013283241238381728945224712068063453270430892083653258684771916185725280965815402929474454573054699935066419335927817887562886175391534594207394109181398773543240021519553683560759254385406517227694936602510253301307220132630462621423000336907501183140047762494357006625770922943350558439181303286296006082640820707043413448236867634348023530140074140498570102296835127863875018890968027091453179604742493644366756183993910339113943993516124986086703116383511241886474388982881659436451655786961661948592868079367989210245665819978211001953707255080801848921113879310253960549371549726901992945851721062991344083947379695066533256397521309714503555098019551577945798000184441573827643207794750894697844802400997885428217037023610940609712518859410922669662868604086551704478295163361506363864913520554603549075512439875471640936992824140370894793705759957409936368667075683470395308954301483326655136618687869452829990295542360470850133310184703192784696464701396864156284956969223093204919079768147233156107736451454795169927258308813382982967956455362708716936785061460026052107091278087252951974269741652066887649216539116252465623529722616535352465882309647010425074703208508242992475857914578790445119825830090922247752057716904335060077306897211113237334462612294868051725176513527567975909574201187771216537788779802246898363996396467133477948859653440229860640671679157578646908625422973468140834233174278021209298624879273414239022641254236653406486665990706064071247320054079593706857088911968125894279987138257654165094929552451753455294750261135003669782199078152388670991580582973421235826959463713471676456741809779737749981579791762751306671107749840916417933491389561813731008891930645007963790572440323122101612051417734767166882538422111801854184306742527163182428079776776892559025108439744322833991453582808759867799962709188842865491272328941446498673728646698814163743586643767799314545809799810566771009095792179889749759178779978877232892118475093829909567204447545730390717069142047539695110802168686886734643701945413638122282152622704431536975908546512927894601998879022828087228522871723613489942858696175321440823804188707303114289058157546716724637456907227837816123302554549296824828297960559197452820833915031320792185816398319369246896012891527536052653439588177171366596567955117079665861533955525384320230499100977231235259515483511686024783868769459426276302832156861269144050777881551488929646501437981342791702707926948526056489584593830419523139040499711665970034092930046081530694670521282758502320812187345621766400667540912358543606495423670897809298619343139592430247766384173935371703006940844870553922613577078452916362842849400211305826331242139816807134737540892960031768093395999506405004520195651147652182796191167853008505452270728032405793856056895188943427129750146165495445811911487491231920396630917614430831422193523463146887735179694121965631237369896241584753848228483489209720853503395039339137346293156764915202408129663188819920852067293675728329763188938063853441964842601443531952639998238429605812743013091709720577058773786164744591111246831790405908777171279617223673746964416982100701187882964032846139652968445876042645291948060787433232457559806558501202743161705116841536878742495648080360686297099490554324682931404686062755726942109423037146875936304425480620344079980326231137787687126649228397772985501701228707560278899800054200354803338082038750018934705643340783377956674193944851215545119850561328789600666696087495686555458956920388594323824700898478586373333272415607656480225869771820812612094363506788622097124672651620582477569602326702102135419531377460337449251420883354262196573182626391653611934690281820176988193577177420009764903281489791849461842804479369084420987139538791843872298742943163856882766340108534427524511046864653328742111926304070589616150025161444361750192955434246585089448169601987125400946729220401381114179332689588807765093561662384567894347360276387769127073844928383927994413540365337550728649033989297174806708157666582886998291969518851721851332414736934024428145701056175597861553116390676802276035397565850483569665700387659771266024608566155796478728010849980064603212583396139332980487418239264680083560467405080254466319492677732539213843298551220648121505136912490829125722958958103905634695468002805404590123015544942759920596120582574606128697176216089503984175945315431722522825488545262499475440384618307864016077833512444184797879052128337596968823272198764711226887312445928671375516365459512364372194935070313281608199834731142250180916881373588578201281740398463392846559405932618484309925409275646277896475042984735574959214533549586144139697955324372268837878064733143898520233940933716360036341351677291066732681670840746977349497640197325497322388440940342774580887960764895620350604105847598885954709083484426308804180869306654347135169689403856289804331847819604602496541566327508828552622213422696058796871821768115620394410456147371536705746602786447653511951160731942168676626638071544616212951343742114226054615549353695504775552266060136882636915004798922860219487050906547555231545734972294689367897915426348524405726656584257652481403274485407920654195158791735994259987184200992942960085517718164659620888240549636293651909440964027115812519026408484578236779022420219202302961741502296340775437921704549721316156153924011439309693357960609865429960251060921260998667572880901342617631258613195494512445295878612277319345898253008953798899366683849919710774352351552594609385165579522778306132062763095199720679866557969995607148119032702437648785501197953279798491569063675680483836931048120909020791434076952669543239042021729278341002226520140907156521631031838578571051410988160112855095728384135058820722307779620461424689180834166018854174287653501131344627729997696793782938346919128224419283692223880504357587247791212726377016727974738955892544109209258227725155921497707666142513758263049250754943465471438956017081006901065025436275002929616871350981563707127952342371929542316959792860750367513434295710521887888838040512997993459103257956908283536342547256877635120220226611467561188914422566050077697106764559665555643741029027921714830018259637359376146338326829798032779350279242354250283060470002929899497443146172027939267058825934558019902972857824855849540252090039228830836476870640541561550173511288030064989850401513898936621163478169349802681231964183092823815641368235867112965069679004241277607210631040547845971287549112236177130077782884279162488160213288998076034697206453676391177601647929843170682413586924481307642032182319177478123892589442139824050223275143118736960826732497978809645747799775185224606449770171928328700763862542428845541374339442145838681619263991833939309343356449238409439441108652011595388072701424675242651071423990115919868384167846697279506521065478113187683368691666227204344160670105505823314098259635150731260425957728172751757420192540946849107482986266084328664346463415129908568216723513594387666437880550097033010630225598818899862999788850345368448239667351087981579998561956670982271746056073209318072189949953382036452373341081330262974465072337851259858062463266675434322512779699013749642332750773864202679353043333486598715882213285011060376385021694564404969405332611839083999227057807961700499481261252402528041676302306605995524776142598374176365724319663049999773051486342598335075448483341239919462354891001060640290835894723839132895415681527915941335224471654458412510819226930964430532030715129081908329531503058537576281130142169343401715041704518711182610500000289910833632331253708390938032767443619189479062670651807124872065709012981459928701067873538334974127666179254703248970453163203715822190735999974588324159919221102377088328166158393898836696766771256966900618434585240803980549099949133806449600513557117348187436308115128035084837616577572956103651422366481152373629912486607788679660557836851528489893538751034828449931512732267368197800400058904278964625320383869159033485570442506918479767146368368079955262749772763140624602212277605747903012478377326674435723304658666644713728106363213596839304608730069496444829890532688043252777201075361506583520932175246616699467191149514035007378307247986453931420534157988737671252419249757348712567319062137265013291644154889398368650173955525326634115676580912425034396184861938236463900391165778712080404475455629878444934345503354993993932878935393271165902446092567611783450169537626404059152503615450830225834479314721575474341706388767146293095251657043572127009849533047954718092664958239317223478428748174543467502138633514199414083529307126766804754127929009452679955359546650799233582925224817684590470361073951349174118113146174214884501944398216364846784204030736279813075865192997608277414349488422515274971736370702630004120143506667388389604056284086743470873491860319894599522122275065919771263174609863662220772381906585253424025870517362128286978926268551196752889625424388664725179140102076949076637268166139471341377794815154802166789552919886121595218988179675919984233593657177227332338779455610444438003983023403558865306140007238388376693697352894966480326727126763847516492657546758094300951050355791732794715613130560317606558993412863030273585317423143471945550761064724907483679889089636604431895564079067745688839650606584954704193209897075739463101183988120904271363658858768194514051191650099356183492852462109311904218324441329443389017331463740256560608112131756315523192264154168801406442883399940603415531544050688959702126173962355687457491982712827941147532820551821597022665835970373692322075722697581598510370499199931265850038173774955977368487702684521893646780750128501407829355176849218382933826416454736252479566795589046024094619082770835223734224534403707837525482518389158939075473742509571937067260635143260223105004527678236143349257150542118127919765890834135647229834248875686978490145826492904981240609967186572061562526365179115964829950018719622398897602578448794307051302446755167653230870378505829231750001184585536132464601726248333691285564138462592893621016901460935594361417488047148952520538127815422118246139013353017516080079479083374018787025723924439208707056922647912062693948964347143290447660802029204521579433173751403303645383689051215686057238270913255317030147587546744335865064732957346643099516985477379420952104234108678869844327631369628603818856652994220249264176322746859742257506943909581075393264221750666297779395727583745985280980568390727040407576449636278245547040578407209418077988107976497221092247449064860004551834252745644311342256787362802363236408102288018256670302580115924083042149838883613672166166191853286845031111422126651381979218493393191849784449964584293361334979345816711388083684429267303749378258633950752920155144218895927125510835621801924816843593624912427700370102085992474718270059766141835278481728388588951864597118312790683661667291503786707427066824112086466962893351655631103859385952172083941962416364850901695261967718833285886287303367887883735005925051922119598598552850433102235511265535922588961642311696234203199327407287362865007605165083699955700112037936966788945794649220360787378326200859165664848991118435571890142037654814729441945153152054675219374975269083406923642655974681811974651480466991460356710738008206669350458858682131928984931155294645077229707250909367404463336436916817126635978792410860381601295389579400695669609458441588329502541384473547454146237666092066707798807593944473759051904076281428933906431777778428857741325090965244180774232936340109773447746336773762448381493322194146466312442719312349080555644864087075374734168319525967504515824296909396230835783414077139950480673779922165881203434003882274365488557706450550929477639370598362862491073019739025799984715411417924880591684273093661696046126946294470112979188204505190237095824507439018361643958562669418586176160100988689589247152893742190409443423073846109605598231069841010116406223770767896485510612143994923474562130596096136976737224644125818506884895165652744517112835509193007401236142283121288007527932543496949758748663639031513197271794737652190164427785722802080272544344789204185593703022854794739058341888055561870196939342009925264584800154804812824661948582995351556013376254035949987546410026765772445140306553034386717442840657320602053505016389504222009657418981054166744573712083155334324556647461982910511316899158988682074178925675882426994573709173896583229847355061641043855886804942699801792554517088345828543953032796829282619685812351415230710915446299011529159052650660313593330046678576371427765018772669140664294309270214526954049472304089185029684726844535905888307599201561182779377528358513963010159235763958217326962790956599063337061610415643822686638528462264988419809984939477099762018606349646940220213590986988196077593377580863840772282969350092050879985488235726518038234504105918683339658375980451070553479644570102601381984260625350267974778195519217623310861905017108296651721174993487205362197293300532503816510519076074286960008481683342391940671649801632081128568336352893838144484289630789228671615521902680595143382452900691927520406328921178052137588276224508630402787403114807903503684590462159772149771779118690240867511211547436220099353431859257997193990616138832830542126209028873983194810898778231812723426398032652861047813381035028362539897745477773041924314013248633621396712248115236380300280455498087675313250953053202339558847340271851431009839628859432236748011487463874191096569348919142804351101902949691600955962327890779531949165980269439233155089359344998148149865913649612588075435743258958757237387176669650414873684262255009243233654524324939390327935144776368647080861428581911130034106023601740125895857128145874873264876318323786236286321609934664125145295738697284964787122360335087467616556555204934940257433812062788924748462132907095637039549200061157657181698575299694264822698078847948735886947804830022074839548689020516037552501461888166574612187727188239712351693506561066962137313060045484678531171833309941547060998613234398212806001323213638119686938664872073382558124477987173204948087497064574103157664865476218501540439834735509633033134602573505724268877255444733798065315302579870681878414338731218352062536359960639937137330046691512508724624609176106626715492887456513643310111662168793200985719344067421277067318109807994940259069355364773820427713772715833240209785144172591314701251696129909088907690449044675024426387801363249846536611929549992875131288524104660085270771645687677625812004608029704708181926236274750020179575464431286977272797044346341743803614389004213393856032549022951517608949835920442530337967060600519455794254662332822658788427301713113958805930810739332737496623267326795465252478065275604127796262709058556723890769268082352996287851289411840736831375049425819430472101250782442600982024581782337537971951980376781471154497277508156793275348802032235697754613849873287212640397311803639430773997814751776807983908119854511902365768803068840552714347026141407034950620638169759435813368514718916613953365467575897363609347969826893010371121489647382269207694719189129141187531886219553253862662699741243355906156295269452745522163242315867104728409905016265594947060203125804590564627049570754733429359340545072253387126038253341045208416847233459597958480959329570186494463398994401399908721274010141029781005338830953642165111814912524047044369552588031455567037156860973900906591866930537648559854188180465629548751698088922494295479060362920777173835593386371334889097308173888781348912451792132046710984013652812210380938175419467245984613064332703567784122189402227169494513089576521960185631490494761944035924767418186028126775891345229677097490026571994896570884549513632826092319975850328700566415010098208141718193239727285538874488764171686165110328819468552794413321094735950866319929329319444428733278697702705463512429590185009445702449978511260424757192616253289490050988926652571240970756940773050152653755069781121437861907409392187442247515768445732407489377870697038142777152681569601580333922878973493875706223522459343352856363055685786978620756788624435831331401175272773319375447490011941019596576691229292537119511815213213886371445061132592677095195200978570199419759585737729594016203140706372857525077893704997513874615032849592976814870159385497066829421254958263153689640456822166705800069629211985859100365437370129962609871220262861133567996764323702188475079049718002251302950131711797427137798239679593681601330919824599471352694542981906931697066773525596093800781548533982209076006894289561970968830048431470111516251373199162799709191042840289335751205285816855041664549818925487611645607310329602077175475422234281806654086794565786212838332081022600396828814107698125074098708644221415608917615359206486040999006323433032835010626688857419283188243819088960319625740797504626707431105497067296157709239733600010525917496642466015276825659378576606530903416457307212392455369747302456990563879150085021006762266141334593343581596654780884580060912054803548157304817255922169787963633218760917837472696670617131705667984770379949111004178127492616437838901051182058678732940368921218473658989659206559517599132683971792137911020516028437890382953950054987317618919776680818793535781144480263049190752639759010023028565741080835403810908892681005330333079686344084928776468141850710247539945305720338525106074031037972382083208587900928781299313763661836130438133955990345109214158454040681086005185546206770260594265578180808674372452236809135374999485895732337092064125135369009154370062321363160708928882550587118918374880057084678530658179847709080668936413601488771650738700833435430507827537108660058558512743021204144435533786159357499738948306716168962391351963281739553662818180702171792449874557403153193034025339285728639270293143827421165931412021635054494680234491585826635328377210389051787270750184005403908832919765966624951123885472296531165764803330153835653467597022033184426959680265626135189573962391175486322899814837693162703980024041095464234128691776257898999585008259622554643869413570523287295164123720326091478151625356639516443710134195843862329609166479899693851317808113968937581774750480207652676440559580286435691507284097608811581412239334188253508868498150722292595473693312511950855435739217114919036541462351149418216004912949883993826253106732750441407294729404288967722472284807713314879255781443636975860919561592336093559558488565560272796936616649333858133323035577570781072137826317367431580479047576635061134129585260275035233319318086651729599983044506075884890244108593045979605114827737309452194449011752262757984299517351389735116741102037645928884611891924439051983147897244962214845929670664923705242841378237311341512891831657634877313114526267381803431727549163342505183262222197078079286246150090005501673262229725368665097147882125959973208985740029285697281443876313477555984002113079856463066527451723472438718940776687604418951479214810494296793383463780512397165976439655814753016141301581373116058341550999737808546573659623843477327257415256278265085533860710243617176073140620435084713297744847097626175207520600846616272301667539922223498674245230392431305484436525166627918615653626919687882870535544880299485976205860081604485662151382367470416906415053019837241840634139942165963409574228239138640725482227637699733237586572753533271133427147992001484033453336189698674931122014423682125758306646828400181120766107895950003355548439118093257941287545638706694101325719427628888983759056778486019910684861853278339128826442921655141397210133650655675884536085563325508383449621336439368231086054068885011674709172100723571729670092994951461871310077362646466136104427850518952679003803752558084358517012581850585163226091356660723712383878325916794586889586312832508495019936286025480072945068498668764957983068294414652003947754543862159303452177045691409423386629333644049407259218151303784262775358915654760331789951230082180172569502929413621791243397523631309570578042429949748915431651553658373202638620853387867566622890579593170813587957038670041538993374147234753650097073168794431589118818828693491065761440211583751569833693516680175223579909571311386967820017970195276837555726192087446142835520878967496352206410137532638130470635565589549692743133755724234410206012644676540110649297917246588048155584926069183751004812920081352572362431133631445359372362047992512840773821300251019892276255734108918855279803925388783796758796691158180480494998095812825997510180883714087239509404312408711886747041655441220090751617315857867323966025697005311966467626829136916644982226642632059846101531950843027164710257625762012896339310883510434154434322409877514856394709703574547065487543279106558431481703766820814393219614209304165944761070963239966794312267064718796814159830024130345704775393874331169019961758413611523511341447895308063631896449582348565458329934565025097836681864356938742360293420937031101010514188342202582579081510300690208727922705056034184995383985078088593510060845565131876636576075032188202994591393304086805679388556421845957262905732437112357339569231853917056638915345798098852037967843858079356138035581727007246186342036992335558451721605605943256957098663833506364185133512175095306803997773028262929962901556947775420284689335749379590388417364746639908458501313434799179698921229288688197112040378717993023010376878168484651508628703928642960649777199645710284009932446314210550599799237216337263014940995934099059916438559501055643696400372182228813916398638774269192522687575563312839926642207524650831055131940996537364328868360067203244072801643964534434621645564964045117506557695069357272340020141777292757969825470575978718886036471551178368211109536118405210246481254356831941947449313652502092958528254838223342729759993802181808127951612046022963619759761459153886886766436001034870619435309512668031105832192345091985819370800015781411767450458081927576071565314084803179992993913691301384578415842899108600181595588187170990184248320845280119444665151128178539269768458356213856495584718299050723864811436949984433233522972733033481213748319144620353531838966925407558481174576217580869614841718752841311205398282601921302762884041860540219790308452548778881257397321176768954051755977486264492552071888555154031882075749711259868410748182592006601434839895565162685669663720227215097922645546757600421555230710647014303990245233014768523261715724694266253514818135548978511249480496485501604818161983864999266390300722427375236492241816868334250567447231462845336298238575585863201041679968778760989475221645345456649318898260591565000216455576477397331791370413326390037468987157242176363892239991249440101643470330179396181925374805707403739535608699149336031493628159576841612884615326939928041031857886565188262804528804532005484271325377342859780980131936691009831985347721226448466815518375456945111869671952883124209720322848736854905961297231996414812259624121184456024216384032163952649311589135148394791524276167029595397072738987422747745994616300577201709755329266345474022340949380109102282544404247222690460445417301826771350593508080400003324231121096735327203977223828096979772494164290405332465684157296964787755239222191399884339722563658415164474358193008779275898910771502662505795046034522116884934393917653146146883965365258883228154599659621826924550161799195897914290371354500323615757443642701377109204482294854206229871233660937306956928958781189365632235161056284386345144557593189067835457217366204758593256701563724863939643068243811858849727298424511550130101197039388889421204900451730486314815202789053874908641451017839351494669963431605568950916274791405750687264387409542005881008768952100289489875676872238228078143707947859504046426101932619410247692811412787877993413637472694090192242931562171755266161825958448003216019511299060641948327741979032351932144767647989396963972537882611967070104616340634677963327375788132391523119250081560746624436313921096002724715345604939417403944864732364517297005058155035511092275867065704548340787195491611263975801898023020208053663224625612125705974330121004382840639355785108798838827904766788845660388411645952814715339168935962089023538309010696032360261654927891377215486533221877112476622958764440423116614231377132347816100592528478962285221037024325897911500545036832131600882427710928550265727559352999830820507904793804339931874936094624122665041480411315094184119781611017691160845834282389077273359894550085591770880263627128602677486213819966084914823950867333089904388031848152243178938153418916043552028014026143332960838805967920336331793121794511426122052027987099421310219360226988897938435278193300204235486749334721418552431399872400794207733072321117023627687020853128660311042352138486706314706468013093025798633218921411389084086828772646796454563368624385066376443294906342534300076259603837646580769737152576664430271530777613148997750721707806819753946419433577794503082643605455197547213166908146171382099578470948852938442542891170686697228924409733822389699098694458277415458890140233313052235609080512080854953624239241336724725010749284423484005785373953203979667513564515977886340153242870873013698833493386085694544301655739097225377449466610269685974709417189211656768341960692227106905846893482051469885911981980360989965023589915971765452751252615371762361213523479915703052498840266770047862538724243120318266092256251958863580351744967449476340996338306918147573741623231090961338172370979275651983353076207336098946591736363486134338718836366423351739791983960306750261010984347094662058301631726129020281941364509121779354802899628021493965093465296361712684730602888702174639382733985342243665634640400706416019005872781401019845805263550639870822209218240293754927335775650489734078942958962823985966781136087269901365731482327387177898615781010891491270666201199986537131220502579587158891499872386401837304161259465252343342315546983180857417303810934292485331158784906173678515082200835026588595209157888092428557756397038610435421718103621982391572996169596479297100949751518101807419601713634016002065142445541899874987658401538489012754085395278540995717408945049529480000172059069360767587344077912305350503054016589295263404778820778054377112645596475445714352660243412509664762341845324189307902555661120505686509083379604110365580258506486336615963294390863522974119883857573203430632052023243937773781007690797518946851175854876784596347046202988094909729585420543314353163479075066723648936684745286713126439622545078464677557702075713309385670871751132978846584622396017245119911873521118657579434397378337674150408641167978891757077744294507468780266161546246970829890359866555624019460227695580408011906479870895112954801386182981427584749806611940729572631125668188951859073257589187019342618758071138031344748925234153049081721946693591792554069293751646679270201548355638184463134562145838716090919113516814843938896183738686102305508681779929192815893374800943649643099647493294253755655904276296718783335236800538940240930517318263195645977949059472090408475092006635820399352836394888080276948523916489303970604471808264426817079094974998534096890362509060666430093161539532162821129880728609834830160602781547914254664109483253383339871925661716555475833951283762256386548013417126158957559786531661196635216126815934133791774408915996044357903092018997632698774957187710042785722555310438879630591855346165266406501107120791043432934031961306459704245388366710890370414152408277341062250791198007925298842156014947404940116133731615237904975106820913768800669718799428214167441689994002126380511721792272517334432414177368327619306291477703762128412887159959484049034958467587141362988087696809092231768642169310391618852407763707226608931711894132915544276405711289237030822922419340219144623749553434558804832484080517123514550322382067098705395791289445222361222139210056583617865195732052399463947533886991656042808702724974926164654906842218690210776391588533197173504746696858455764980369918640861898256682916393970734763268653909216786997703465290673477027471150070354200669094127378082207685224385458588066429715522181657787808735638617468730879718292111383787653894826104118489260231792114911341928703006386129690370748515073438597386875860060470434485329160697776797000491478208354259842856857881144630194496353712413035384410004959207128725420503551308253003477990971901950363985979063381584201997387337660414413983314210093849529839451401020811739044924446491306587223727864090765244653237639110263933612381051314404249887163068022934092344540598036880003807601998967010932640260938295811339223863322600627150741080252075127789229129993813158962818341573923243535120508847212491585811018788973917018755627841756844905552903841730834397424985810653760295246732195747291712365497916328306543833493418542613828280391665813146891269100626495036495459993702132053970135465614094369313459516089976732145371635567890396050288506668833116870173496209174212160861354864431578714169673809687272163935621816901636691432643565159745449519480566975687456522114432216189784979765818923890444161331198269135560878581815273375411916231324299271773973686751048919606891018228441397116289219403551451604598648402782756043445205346401855025765321748678288034831632171888696500773269517070101450248286192092949057672494775347235900208406558064196609299181431951547624070187484784269486578167396634323005003093800333600868770379148011451562966425895173043756726847944122061923263528252677840922878976478204838062392061212839972242261319423492167366583584884789301057924416139289197004463027497892258397895263874129035096701689489546976441893403889908332208830760630202121793147367644906563716562066094658858514276376642268533045478562461282408769784601993553873453893606552913645444746096044536904229818964027011823683718097936643874117646386649087873052551832074739799033310756970913719988291989003008583937442459587980138585246345779225720660182946600944517173538061231599064466028043535237204258257806146954603241829084088474494042735007101962284763826928968121282209775845361617695725102091497158653984614181727869308595329440685314582376834158916464625440728912049511671987779335617674823509523677312099730692828034012358051339374557063862349765746683741125939107910616908932870759532323931772868269644402365347373846959573988505838532743451210742739166080188814630561468073573263681735001646693746004832101514350138762504068219446741847536287508610653228348802637169989559070123984330077872883013613773828603326870542387348102806023437061062102027824088539500620863051213003889963924286457672461226725270969747355240990339872328523486262735224628547465631544223397193327076479824757790142099517386344858678434659184167491397887469397221571919955928452726120295511249635044338849053162629196636710207432620723448133907615669493861896397446180607917150615520017201447750126587082370614818998453200200428736501162967372651143974397854061212828531359689196171103779185140287630141534503277618908274921664398198975044097680635370801256395888177746096037686479151297906288154323816056115800150966957182027830259780887487689963557065237833912293517740809162112674980142832238168445004258762145006412229933466809214639204960339407314567169180827892391730422332113077812825394490983549632362285860816448497343600615431705911357981682504511491204877779843709513078556325999537092269103461462524595095272458071492807983903323263161443128761554291379618977187597664865761488910859369976086496877633608353522214223244576799138186370559728608455519600471872426977672756618548072044491905998897063172878924593177518272116924023981677256302181719483247567411831056651685347911101537214480349701846693743451288690400698445838419761632477118596343488522467386271236052154188250440075224122993949125479988442426576641375843305539736287782703897524476777556048274619662604280840928443883002792881148943150617895285621653790472596236170248103472153761472267706247770727979569022638294816386326058177813783735938743974512794011611847520297234773464211044655666615476947744825023134115863867513468716021476368426114140031063554425718723897647700962208082319934673215144833864031722888120949435613717064283038821945744087590250033009783165477574277126422184387810109923272374468934176923931331873287607947632763590515033956728907014854721929506543599666781084674568029758103870324902897199328210271109539652102130614138191493195303987177933676415213465976294505937494044737304103137622279299342676297319766518766128447095217740582693050128824117672475335275234639622137194718877567708428842271597686468219128082032249157463208848199459528731933152227071333349261465273921514950309856248949293410104211657211330369711995426139670401063510566054378683236716262973408686927440205308751304359892343726624660368326464953601721037699233615760145079550974226005520309946631314042343826934698465457325754661281930187350768479173254660893114298064571425696752514811312184890995178175513740153593335291597492899573471093832037900088316606232081933275279727394247353023435083818503637978162078608769658305060702251370172389615142223840119718780621381464882946910513191154928236262117841034081881053128127193954632466361202632404803658043640382438574154268634096787613713835464912230531987738567151805756410269675374477137146049918518757079768200927834152201438990745550528844271953449777880110020406698198474754104745952393410597353144375790008726790433100804750447723225129287783434627567302935971660741221569187839220344853253098588274735485990626390443849051985051651885151702779121666920752129376523978117353289491527574143263358448093578327627221123444625652403422159802859774704588516973069368841388447386991479404958589081802386888089256907146081523971126148645982175559147776905592852512339755928477547154925849679088187952967746859827870017390118583125600766433107695288854785149709463509934184031298670838091036148164910784528440550739149586634916665544029636262584170676938941210394981158054068506802101769989803435230328007666605518064608967643251659947183417608014415280136790030377164016410826497105669563780502646715419428774872180054146542906496584386882286483515308379869243592889292069420466421418757138518152702281622399592050712595283447933301336085259627829055339893938081510120421422844219279010247966005434625849906571970549500503813404653465771925072924783249522591930507619024436295083273838556376151178080640986915478130383760895336368120191382417215976934307857821500070601309153502757923058718919067713418571233733059175405242940054944763669175247940767099497479248019163742683936574133339374501271814103254376439360645293794256948923020651425690917074497143694465363625068273262005982105400223948773477298155262233971858573678454023186683416336500066393042117272244641227280806042821307541473528411500991940825562707083578020906380565567741345442267217052803484238212301096891175986369984735913073979431073870777235455022208568838419621234815402002362279359036601987273969243012905890084886716534665387905325819788278541477103652446367991105389006278549284112969431101941798350026564032358550424143506964719901385184845336095750687534998766256574023386909493686857635360252638866547351141907726529227938183044681072445572293911812882278510184809077251357645420705595965831448269094977467430315028299387530164265690317013875575532568490308229247288271985832056297614227187734569486261165218231344923651644006514210876769643060814495437775254827630412645365422777155906788619910859438168744549165421089644454393564373200029563411854722813656814456199223734487205404571384373498149511722626101357680682758407399074971490896122726846528446459824323291708103182610644448121070545324736142045582714290219503520856240173652739603439198342708634017138130544110089979648863694244615165590959056994013441853464560598114675096014604718147367326350054823820914044425772420153808231992740144853831392979196747852832895498413595265249180066785482717850888931965009434632307021425998742833291880525797169007850569511839067547559070958010512275955054540725139035441233316317727690011871625618069172264037662626779074817949244175029176815782698204716321584109409176861067586399560232604963298111165910561779779242537306726900983969681953676404731709040223632020519681339806467234084964282298565221818595996725038704957055550485218064339458840157058158846676569877184021639208701787897887857863473561133527371038058326467735685883003964344672925473295269080391862840224240597567427938375485294816605044000577618634555099123532996586527918179245216861723898306404523913063578943474404627360005507385252946994295672719384880036648676167642454350759898173966370694589439952418881224368664312836054395743446170487526552141128641777838390171545826622435689366491265665966079222936145945786445399635757178704950312056233495559567396878442527671188090241054537451297219895301552323579876041438149995889312275181834477000117809438640354498983263517298783093780855206994044116324142006999479225380213149215898115784973592288705053850619052758638219644927417741603351141540774329544452540086365233457801241918188066018807162046340190431142718403735313346790882279938878869087055460183052070672718915604385912614328558767954409212490721217811613044506126793763529430788401007465400232011050590459817408530304938149265595134285731033384423844632286045910695594929865687631425215736851974866336467945948576831060212678243447890181860425087948288828334138908383133072806137417464574803167008117874894951938346160490457185522034384088921963024976473198181406756940308317540124358122046779411499752019738743747819547785023074026753205392064561273219684233803395704865501906841236251219369172978737497066494745104075750443711760640144275188537251547316530424136057654313228082732830350866461562532203782033863886799071469555640299462129650716554821478123724992705833869705273887746074655400551025420165662845655185346355508921044962780735009632218801587991989306397375329078822237877670670892326939698505266728574397013010054197542991893025646136505596810374287047694589375947531101735929229858701519710651289686128491840287451099046359680997395843584928374631039470022679234632605652981191885444159305331573315013537125686633320317647239628870099688915151575893707128814701020480365514460921758107519742821538070400402461618085961106720011752470180027425923928369592892451920111612623674425430301316318767237769603171365636605859944620451465960801698496863007292581806399978873643334897552679216874636718933712753150929234154038410988353232268991317292971182654932816807812192159479672833169869251774457221818874923197478323653768927576236862847705498802144707051475409762043670843078540552091613228371152657470150856922477818150451359064387361600311357466010488138500930211831671712035453455169840068384199850437720757726530044932814394552918212811652813177034200637326206366352708457500258112650539056557831051247416452974317767922458127234760725290516848549891845597232931001378436156595555126876443821867991147517319316476239886038269043491516460198796404496286976729331917151284750429218272126858799208244924055346078656864172444282548482364851605516167126325618416810326085080880741179964372337025813729012912783271255604662209198900767237841852968464507118137059205574731228565467019185905466013530489607776378127149133675588504410574872429844919708553915900726600738696252500704694945746462720374135918803752940225157902896606517872128770214114695045754003718975216076531765021671623675970468990290978340321095159457361371791670682480398067206166390611505430184027786003948611013768816117218977522015137634824452534567825949794469462534808957210085221019064106252933718578891145098481284031185997414650707789559143413737077169733548774305888638211427696917924966498482171991552498260139122643782466472709071456419274892875139977607329305530467345260364347683251296173239491905874901136867138209521567892967353958158866709630076782888704682942173946958486328004834588638871452779721192137261013847104689312988659611127040584382292043787317284545403812612571701160669539657966291569453806709164239266114112817937053115683599910432457877363485859156112054791070679280438577706367792260985245263218369029597694896096779034276964901540119975505924892833593745924525930003765795320452683278978969564861019819217963335357618658954690047747330978812979697356439486803354675951517376310153078171953465950481998448397467324421517813499752511148768731464261794279122353347081599990919802548060651612574173166299703347612927496133341349397449346454605067793595458965021228566434666966510436604545866060925206369235478216193659433119758829878903143127865930628604873822370890546553755744858465353404952912683687620102005483339329855923098929151375736485059943528804482823195190807578731976258886558918389290803076685716781193977050572144810932360784995062179470835303525123098688716002085024450459911643615008334967046610208975027966834434539072031687488442979189126949364608425300577770453311281590177697310000371219354080665047401544442063164926189740170112437350867485356779918204463130452981957196233107057794427002431020550386974840119760303106497468383806714920114204935484309889412700231586811488166370694876271211721867347381462367763738460895937481885399146470887917922608289306640455490529862766633006913231980186307419200028139179164148196864365310773777117583048112336630849480814167876335064038689960392783708138233030564170053390273143703928809582109058325297322154456883591649733990347287703494344113416081041723836957781832605472787717002315851835349501346585556890236311188453141135667620148226983468749752788389534021707569008087333219107967512768584715494737900130266625589661084751903973835538557895985506272738245860643765960208929296240683197837649135539146515385964624817862174979427741200453863657817882160547093412637709469824117488797751687721622369982763270300003931806832877165960873464885087649385474902636028912308183915141208747335642235649587709846465045975775921052604797673887372324496139928074318400116308630945143227961425552542364768526443237542630187273586419083528845197966618532839905144804125415175340867189444411633227465945681184906813632389418532812567354365418136585054393356514702329822263471543376905351007873587595763384162758822271430502230561931980534268727669759942635475691287297524451954255858535050715871490016260222708856031437375991734190893949484111075079642368074440870413348005873796905015927893406179742168590404244078070749270896732641259999407281410217045432989402440418268108238562605800894086307742917064521435829119836233576540954229941962326840022390973477935676146493573445034754908963057135099216504211178929363877995627964280663977847997056778561296634193573531988041942097814529415311469356327141794859546971560886433761244372145237193473685145385507166551349750736249789554666914410864548721607829723246369451970110741467096776918734043980980512142339034305658506315197085800056555816753063311822116039979786560369373869589263199251831583128296250146321779601308857544218041791830049022250112147497423700265053745739754814288627507482215777497863151945319549866710116973334555548519539248835790177530254934776093085536241952763019681842405526997785314422054403442779893953946422362671958361977754920962845656623126196030163028886763050356294374518122298626550460187926063149999781264033695956836162659442464188394734985479243913960202223857971024826596534585420525406028458505506753482085630882107714468321740976793692419843675962104827702694978471186548397080708638322740108681972451323048134252987013025427039019899320336016222539572173122632153331201783017310581245978548311981910581129688955417069424978189979446245905162292573975982283515499941548200787498450900183318910587527690704851918082216533474792362642267863583371393878095683427817565456047499770189815055363095484164263671913851235060066660048207751502407818757083056263392871718192443018247219341113620120889998032761296887206120278235459358387280314761243540829549010890527350910813165261486985865083287080990086803416800696887485812722438794102041117563618263586861144204020185618043614591345656200611125457340123123653150739135952371168603860624670326562003417740719216153667219647930055697496450221829273278553586248030953598497953496680137819646815190360445259348309824609409890475292516220464709369725125567833145054232720551815710256469522027463778578473606559948511904011719924992750234213976195587623513789521203563100179745145291076888340768353399318896448559992863644346625506040438371307862486410431361937566158148603842982942244667646381072946571425050741250879643482254130630216860724824636283068050164774935428585860893304072538187447117957583985780475728980204650069849634514760328438912755023989563180108631045395425173435788761481104878220712702913256312415280967081228433639574127304233550768407094449336548639842891044966139230878300424457584507548342704764559346404003130448117416506212351835028669078764788938082376115571884327974675124773914902037653977629820125088243286041774711572367163322736923116769136323302830506967149608050555947580635454303314636323486909445096593055147107471295209888007451844162383754574459151898735958127795904618421435400280134774059867882289681215205481611974141321999788268075356042799322531324968401839389742279344196715283443734984105670175238767689663859678049791334406046251800653980223352292019276662086106341702128679594098414328372375668407097429354380626181158299560782553101106219878117463832935189706722805169211098501820420887556937164568872266485671514007437141741510188737360287346924019218280623448260264901795547716236528186439448211549520505199450534554619866820247509422611420711310095245983333671623835565809916675240916715277628037460404927088258612997264519067451999139735553182088115069272990663644212971212338550692428540162322831031102209686076595595305385856004436689721579910151926201974684669318504444980571712878157913965047357857300418692200251294202592024093099644554634950513631954465916788436548499377436702349831240937908065317583049355847237833718234067588212360291776297590001499780162764055167324842116850972718112325455119824824775319932496373327308510097535752564553793611841932405125992761676380288856774270843335583495568560420840526376444221440853139274978644885146375222913761800455217536690452842773718076142438014324420896546309968824171067025016859480270093994319351334744575444772815983134115991021561343180082512980237542960270340229221515513841948415072232888776113922484185975674914835955037486541137483338138229643026289477719721274120696852264157803456931144940517300198354009719323109212517362735333740804691929600289903436234803729466399711864632865397656931874660315125882841560318073184306173408330996474640728603678320594258260379653253669009689311790563274803537969233765161798543210242108271979653783897740357416878357370554491171058013102167441880127841918249090365374799564683865545142966875029773659191531926358852853830870606204546458681552988657885612194686392206524425666749570487841331379767188623013643914098311571883071646494106090367412740539448755699621216854794784517490289948704614262768741080792560175932859188799116710797977258325095895017764324388499732351183415137451161534636198054645714359528075379695866260278349639741364249837066137489293276425186398935283561074101807666147720119075805950187524973401018639195853762296164711882651280641280738246812078373386471803248606782391818845210501119298963961509322344240294272562859124817948888947212274324967096802738140903446035082120501300185070276032842585065351972162163698313077586863038570792656137650194512864752573370986233952196220645759166316779394043047767899260386117802224882840965004929017847901897569103076363423161365822718200170974189934769243921408784286729201337613666050713722284092322892689435660425320216441775435171706268704626173667751498158726720812749216330006351351067740191740111879927785019335797522778948944290844365757636058319809114520655301049941929945883175034946812313316806143865298051294435563180198625995548970176435180218992555132336207290526914627614146719623120680555850248116899950107550484399676048905445243420653313133698035602782106621886187953657335800865411145238315113188617925418710090376459839298880852113413564794588578625832482251259962622655641931837409698441840789090633200827439821722196200246589609851453580806319508862051312417715016003790875591669929486545747644477258667580929546072282515315806451889804451526742858281205201032522725640076562072942419182483131945824520341907442962172878648779401864399247058536004385213359738399844780482690036142381890949865713162459577743979155071993477818390677332009169026818424613570219442035230044353932418647825536882707041259444589313607681378485787831486081704471997078710672970741977620281088657528335402625055015030687859936493302054492310548081620751601576371267050704896744197910748705653435500215085282553208406748444593068801208784739959223740723299030386461985910321972070217879032092105524206374677791123961683564130409139265296546792960423907993764390750682612079911070984481323653070631174138357178187759860268630833610139829438548804046246229130189193656751764379927876695266698962253879524154590260893155974020494977652414597425161198215184270818882072369619774800277651562428499363138270564421322256562219394790189694145444321368134755493200538109498950971896458363818938783530283670357841027799297743352718086598673512077631015606732309700555770904236167873913194970976724135154428031087180189777650560541944196466930600057689120584539087845456681162384154255237365107373768840134108733559888797259757950826029787761389138854439282084415322976783594661680529367225423847795118468548011609810991293270986415785687561073802606456567654832742174718533849653449591250691109067714075889143954031027152747867747125715837181894330013938797028823198825239443765908351490445389958724173296409178405572333249274350175439698287737771050429652510541395975006508573460147407972276547125485473609450125379547738953419328637372340611225742523762505351692398417624446044719062527743438215640833929008990254460453929589275997834639155980058014018620526762913911611634069911766125895480394604152575537827242707569790611825856091965562308138844122682790313543912307145627103739456831410980693249043644460763827422650169829714394702784729228902717793654320997389222835849578459989623483098117008652048710434912486486887822668643873154779525075418712790064398944947044697397539710980103027527763804780346762997169090711293383799435083895505368186123135383453603404790501426551180213939426132003938363713298088390067457574791751765807667776470113973419420799978788429097303877940492646362756264213981501116811560554796318336530498673577199439276947669459378259280713837572203720797254138163581536972776936335687303720490321454894593577576856605069190406505410989406140425326391017068673852598040636772637489215826548329883067176624832193018954251136984429059932056645748652901679787057635847794479804886591204935463930532721816649725770261017822218327381428024043205380891539405519180885588145624463066168835825168887567668787292052881958242025695129466963689494603640064664274234769599497314654214549712247482351475191754506633509771597606622361964541371728936857538520038318195112623587379203076643181584913974164586665469999008203828779874325440041461348627980466428457077065363563283275257195892716553204437296360170196216324635431140767861024381194326621876329716364618378705355261385350504471551786944790060262464312702274230682736376923154844200559190137519973301454907454646217256317587082592152347082810627742798298376665398815452447992191940221313613860047338177394007191287175189854909928076634228969686361782815448677141320535689237437782164603388650989611439625215928465952780537875210389298414892131134595125121030019919435571748353611994473075043817280448654679227545829715119149442764851553178567644347986207268463783488944808426921185244870443938158151759002514290127693250943030194543977578461161957334419592560038354849213842226672914140700748513761074755729527626269540204992721550305643072462481608931026565345803887736279211700306996695955268684351488237401428336888850867554503791796603754431916066025729905758133787824665397683063303158400246497363400515148060341753265017029922525546652250552327822300011331840845757357130437817996334943740607664747390156713648591483691241035022505930325007249980224399578890417370666474429708437215384245936765511257933147221395050404134625813001906684412132082519501274229498315929511825452570005513870116400231102602792321127796470033683011779958732688696192454882956988655385204413533769559549255571426923161057355153216521477007805746697804043923228522880608014900944755404858313585005399001156927910246392405180126285425664771291287680306666215523571779411583549558816130122612554386182467533622541183428834084351315267170564522576523793428311976578947525107707635150216958191692568875050420426111596647748533933750414739420056388852108114336023570332596381028320279903434737427710916308257422259189599068387156635708753929603821624415271368379756549241760606180557388327383282337216751574998144444811598673670953846505900908836596256571351286178102100639808550414487651400605056604939121343911687669210826156842765467389467940729047221857437058938186979105049733736249174547433329527854263244478397835894733189343077333369772165322132278824804070370079351269152246277314897575675528790780601403781642595327965407857484383062041357074914723920483844731776082794169729360552511645327681117155372014593816701305311672890558494884074239061416690213919089678642203875010777610227335150574850031329030686235280952019169344210263200999381907629111892505037352427709980775822511465403609855760501875927444018962905608755072598737062784869400716580974886118417303544450703830623364801254839949521644603046676270210681408218652560333776212393266533903895776678792858780531608163097708883884321633829676290558379412722412999495116764106284522742672902992297145900035886954468936460574362864392407094919444727749788875313448509966912342830355029206099101555306332797617588456294266047571613453093414474514392025561912715453356735679661350194290198061463698817202056900756135174768788062953371217140083389572783529878681606661442447393907600336313518923489153260335429272075513230619041224544570692646683686304672489090184997509714411241772399676045072273517377672493494779568878232345064766743191629422438126733261619402176125043634613258730862929192668043479208644637447461614546954070629250895693083974888749612423332485565755848310936582804882159145897277772018777656405680507842922999351989977042903731707474091798872075337663559996486296180842152733802062510076451470685914591163879162369279332397174474507224299916083358423407239734704777643020061770963440266232154423991370246350636586479796830432892596688549096262704150377422297106159838536244838673549027515084648119943091158581843673078645100657365541668314009036925899557460531253580376840543477900173772807979157371301619656749806223154938625958977077821004080470992474109082010530254729155508569595981981855170163823550342707817899426893263059057754253054454150424366071213346250707606869582962682593611536337568959072188205382009097732567790906615753031229426962040685216830204046160941393261801840762512161997094494815764946457042041147508695690136521687159935587477845372168519295326196296304848384249109765808958947147350880703999179346005229842749461408806764970505459702098652964639870773096175663088649102834011644953997142244311964595926632635769899507101969952817535099701277086831911743634120242599997187406865227973270215546349336675725857641982037072446026220894260954959652608603901863420630381784130962069964863361877093654093321778523740908490148047195879259427301693953502101496020268247778229988218041098038365494290750748131883705568999524506624271166314923797594565767067821782985170297443728517159648006973837846585926335369416554292829397127823940993690823487616707311877482407595781782949934421683024592880657113343761758347135989513314354238521445200824936481157733811194067157773869942942637044505794763490615818076938523907396220911303298555424693374254569375143022348816274036404008774067376666393531945975761674925046568695375152271146339842136622310747566372578618833884548875864447225879486025472421261254489532868318518870159020186430333625462049682876137604976780365931073368523136580180333835950211242116367908880499023942744438231201409673852994273385242679505681294754041500687043439595251091928669453381067639925959641917050040127690766807446334032812961573374172002986731678671166670235889019305412617645214364508620893707236059376593890163770231409710855054321467588904089008830964964627329732697768226997268028836094666526516715224862448807065107812468083440242297592669230437023846228565686959971926230658158410271940685890155090458560086182581643822115214026183101947949212669127145802404928032347707032726245275749427447728998008592567503790280965674062391728172264295080805412037088267201164040350800522089398983606601526652410389878448346646436442675349862318364574428854647806162399158266003435424709501341758370337486394960903346927370332137331338941760479467939444575898404899979564677255369276946247222532067826386570255738580819357833274984510582687453608376991445518684833458174948788026780858179753981076895214509694116144697731029783513322829691928908925970474139030113972111346726310300153860425416270411589291752984763169806494140979539568432052832495691417819696046953598406595138068154545817999128066115853099080994105329822589791335316718806537981423419801199272358348242036313700766206707017360410692327285973214980067065519267666491464985276603896076927864840633797805813224391091452719340297652811656721864255718102688474589487300789714281737528949490563063634908510512543199623273378549216393999351199802374382259209338626140486808426305034806086613513668267023793332220994059183177746265040423124083274184990029554992441446737781741364623658814446313961773675480554511331477199420788138588638145811749293109169834319794746671360750009866459602027758193378323249820804712731120289358563214392864434822997699413368836951492174051745896160288001917810939437288143154515328252619704058254653244756224595038443642405646658363640480801083784032215353344260456314616433836952451662001604095588457278511044030418488836751565806460055173230179023691314639499781200709755924713657809098926062167552514608510536960178094672560847627860574201545259929221016126920226077290104952212139576126750645714150621787912697630591979565980718516573227869687698835502795494557736938752646505532985753409180840654666156627104136335646048677176118388514775053538894788445992937012891237104425758451260924537402731274935880539141137879794030292788440058668044748955968939709861729813897639261110218578453165826099847173978925931532986902979620060029352508490780641042397818314919789833809147904808442246652389778717401214124935425580491346056982369061253974665863362876051755046170656108287125600462110608867821232876065485857414998784274793891979971119448326645442929032423080573429019517216675600555844327775160956754960258929174653387390216632124807800201479192602235974690984246724313418228396078724968393235200295646287577174777612807243470043342800019485699946617292461702461572682513560465710991949438821736960616167569858768043981750515095734215577618909215370260210898413616621121115441370728530482194016412166789724241575247577227789554074303733583864138161699190700819481431659955427134234327150162846540920802638722791493332625415813631589803456708412126548984502799729985293955323202750583305313832003428887293726820463773629054292785904200582751746237505312180707403377145969976760554745277222850706581956270944368950428115030582195950276681124674229030357050924978869875319273213413288531558261879017664153795798653685294847727608991475939864691378524765094415882549248700503236141851752650266539260509450383506868611749276693922080322142213370796281385574753638823821258932874835191732936911313709740651309400533938147605227135411442505159980756328561876462422803359818628441190957801738292059223107868043527945203517143874689066900875464125638540384981368266851545551171436778099445204480722679605700759711052026406803459511194842831921255871446133384562438638843254403307471172974563782757688013588285103040235385294785844102599270586436433547954937398599972008544164716342921628483045823583769650943895209079895637401558891659467931494406102093494845111137487801206892151240431069390260311548724609480633251284426387712601496681230744534662432407978881639952554802571990994414902810664575817394466164317413877063116325191479833033954204859286523590712253683991223722618332317502789453160410163755060879525354540184153172728827345194668525236179846038353064620639091496012847452198174915844757296215309897938216673229579216450625808015390999892276430886825116923064014297733046677244029910568413432424059057473718142343967769282679307885403745756364676089048530317069249805195332862090472393018046156314905514675883825644163608430427703975731590922878462457051263667178996254582106691508432907410323228252396377631626579743146936900721242898168938723639962556074383744637814535294358489165821438959605162869619169650342178074549966789503942647976033760248307587345857094463037770568856117941361770013266375794927962339283885084899524808895880156972081619828755468168200951738421958980388282818444768706854370881408794562411103446047344351665433575319988218818815206563934214857968174776795297756171386445508622588796659694613741139943199198399815455422135939395197961072764677505714317471556357335489626557260780848613671199073677606484318904468927602990827234753265189660481541157213884280379789498112331867792080687512008594497175074385200457880732879807672640868603784153940853655356723883820622214006466571852629538017083686352024600166153183902128827118725401661418951770280439276143916179350120232296268981799919279626366871529008853373838330727160373728937001849150683733364762942423163282353223506788215246790538019646461941587679974662700167216800622082098003267392599619248172171144383148485481446579630013383316762762841522106108958672433395994290095001115651815046168576198849836918844011065986884598881649788845112466254564742529090127914331686631542104658531195058520277017248001002082769774695637509952441062411117273644112782046440991917030380694332172378263400470101313332073265092278273930130154817536990365807765485858504043712567110058290498381902506098952451963430477928624127213429275531911648482684655990310679170645532488072526463580488707684241989010717311469765141562097696147396718713742066116703469275996210362368914571471792420004306132687457768213415600802504365799348798363915620099016004493214042717137177395543897381768624886622611379737918760875525964419397962794177023843092577886262371418124313279196729485719510109677647208342141810774902822148915429347780747701970210244280645660262716444135487374384994219442264875811732815593789999288924182025005543832971971424143051739855516648338896322887373369738267620826378147068473177108891781238331606661089599194013197369231145917729334558497272029739730933848891417108096852856273438417465835661876672689034928013132344266182332795481075048610697647735606239016456714947587557978232022571602901213020419306874563548586930571431242444418356192112112767770753261643434769742491642925880266094481126370123591656830574658106607285122191537136175153585806266049243799751604783110008656444785231299730253681468995317103433155518857575567409689864660622267330197168684258346315029290944374599205864657028683658874614983354404661340458744977326112827084767031563167734609442188095249123358254405390130134653383817413803980820767461491104486345121607783366439533414347872017846278661252082873830835330475808871734465775454078760385047547019744488761602934492156864461420498727726210325516096756728192296659403092843632498762010443813588246782873353945388096982180001503025989693523032677094532481722902550412398604713715927839659382285590138714268511335661878026382585238145741822357424440797494271567326970123260487078101000404016163581560326372921542601845100671912746122390880457897991132243065437289881374785313919532689360896924265743977988889144282540837823731405949387329469411842031818716548695302139603500819547925328631657525993304542214162932277002953054340985037676457615070309321618655890012918683905583500958794707122605423529578654907330792551120441777901716092213042734336291165799959595035946239597274848391216834907238810839254146168284429482847897250002318231137980348079259446752676844385318162523253610821058996974418918642187171891656484030097321538029834718855447490331881747393360239364236278420753124409449697029020686575069467435980218717949284099677582951703072904093224879498966816896694513546127586974443173640941134897961307670784535291966377470728489001852866450074005791757418360242963857183832035132494309635408399876886077704620989883624282611202751794640417997879118423448450985758293430790971863522319720581093102322043382378132673181646469731940023696872824943570310088730077871426459590560805327339918469288691390954448123070716031704061753414181999819233780343184298237521292475616256426741519052252306084311194632601053008861563779970961458642489050321303220150347015499808253265228764269563179298239647096087944801314950455469433879217373085944609676434519961376682086579028813540297820936756232026551595084218084380958511434905814123528308995785809097064240108100582391987903385336770269919491961440629796831031846725587886713328182995197939755960675630810182497067556575737718754654744003286383085038178701112114783434226664855927708503430742383579717555694526112922593523823839124830705199308124560540056618976773283647783672101230908851374400223383027458572946265845662404290992968910157986361967595664034329581242205813778048161787757203156510990939349254777623080155227402366363451022232910593384397119958944347282664055034588808383253433219479338806472513621715126349889965446311952312329250329030107534669505124233201219170563176221002561847708001291340434823941778810416158925186928504497780717531796400189663309600719187440947585771414681113675647805365576035582457219748740933833350766460859766920065467191354236431765247156271280272650453535723772821716446327161288891329325640572749402423048339234913543218915747399505136572012745775898227645644948126183914287030197430878997711230308777936287218549161355840163942994919658471716331707935747123414343386909574072061848664565441979486511322828926975666915949778884010793783490110020376318245930846116421141041226313582159895894672342107048101094655938720099646053367231452938911577264955525840489202898494326165707839335209557141656685369749200549189563671583764198057578869537539112045713807445404482695808166195753229517969983281366348539235390657303540443593190076440545297013990188641047604522932435932567445726229197190566163096422870229227477072315392611894463046120890868339007411352122510029741322467406076802251419519840659336189092757275954416833046765236404113202963429985847131378871490342016520339808578016994525999334737618706943492911478656981651430593458636797963187087787955701243426405809428453760769408489859918246382815232930013907783889586006230164282229357864650562260890915179538825034207086172438213938328192812890450066525300263235428692781766423608958838439414023896777223018292509093412714832494378629758536671835069078558238853894582448992575030016935487592940294970648093373138394150211882430038699064812744320974418313181082623250908434396218365693493369072318302685335746806111775349559739062550386439194730830543770411183475029048599343232492234899072745582657098487484800432277687610859125545855592098704671200270768498736607264118068731163081720896917468186678532908689886147225712652412296949016616547495467740829921070148269118211422617454497697497145144420024749488134273166008923755287550517601921434001846994968517081758526213654995503332782619061520834691503538550377052421906088238412797637887817657185523919223773398435835328302316683820155306818824564597725606687848878885416068334831902863450017151563427315315860249998623437907464106602730283835759960516631490971137716010872106531909762439174692672442595314030685476129075638676970216537326232888048661171549911281171998050076763015478301470100498743656442812342616310475266207276931847320479214171913300563903131837684539071437383405650883902531703039123867612510219123693915781734812280492315125685316861428919538952724399730348268308264339044240152346915687200544408566371684045597593195281721134283841755061747912924239509255087120589335274780735516657134580659517780802031769228424631578721824449581791265530939417087725241612722045888909753220445701682168012193575902144357410542696748754248359985804772352992118452185454523310247011276787802055225994681310832156992856355594442226000734361860249839305022282410625726894672427748860305723793251865728421800442419939209223895027192898458282732019883040752121353530097273956033645846079670846506357096382940827972867431448056706481612207188207624982184331654106474924921360901607951238179638751403789034160026230088612184433530120086302515164868258450194925702196176299034249328322709089123746615492221177336310748591510366429954283631093232774559355572933089767727360663448212949302719733710188403729917247833551406535820054861380762404275539723099394001585724792869900675065470505748618551992131615298770736114375469649636235701360165967304686420189283808043638630631195982639405148816235019862445008924543486165389974269819459216375952507681311338850240656924012485354121832825998429020946782799130698141142454903526209983349220357227723339711551703771495526646303190656538638152551722503122862395408253390753611867459951014609760041164444343272619303000627229010391297278180900456303547641735712164922784474830597385842489380260407889886722818013412366995497896867168776563634608635348797069061198947751417956909789570566551070988169756219839886190698800247239550408448205971359394016339856746816903129364939259207084426313230792980990840273106113454581713218264379479638342959487048040444079181787684903652895638457788120467699082034317607347685631829640563264615118808538423449012817266879355580163146842325397760032565022187715205911646908452569934719998309084849812474612306278168450730344093174748303430038859323655510210026769293459508205747971708790892674178682989122726728353040046261191579541787302705946010591069519673665917616868012983592075936287203154123919324975674034909687048890216186045564746871692689954688576899935658344551811413533535806293822768708679744730516807488657646689022001236311154346125929111245743921187982481565181456722653235315605100448579070658121386930303899141182185480190039248227021459573418682904191398781131965297268541274629116948276384839981783200825223781093544050959871918762815538567195607283527376539660695493818779069335003308620778991813746518342876664297137050789140993958415172051664472724317151498566411363261409044675204648429739658907260745549082952159697015224896018926794015726810822181636967895064763231470327637929979182294717847409293529202411093672319249160616563040057956655414718611991200915864215302335524180891713973404847787908236399332708724782462060760656823852641972468617463207703010303584133018077179837216725804810001738742628799411768839660064222607213594493594037178663543015417969852486599604186081908910639392316498291877255377769655178787931888291841989433452912741408126026122182104836405172792108556750383451635154956433475441578164853740541506096371187284491410778986443654518728276325936071582241198814918279502426145602812917016211893798357549696224804962900851060810698175406816787056965472801034838054147226122256521886920069055728986747210753228488781657784015734641623661649856753565828394157351933825868504246009886375435136107806348373823325714787477818320554561920385893375934662403027776383406540994397273742277240588798876967543662580247753836368686028079877629151288265705536969667558910771243274860795950891067585696725040370164816166032028402651880217727773773671712878761186635709599609387627202196695231836177964254743302888226881943509613864873707267876150686005544458897921749135132394208743334118785897633122872216395449463375959213498889811099733197356612469934178988672230709843061163870414721991242691064967549324746038262246313144774286998318512774672172266909392646328020942064554550036352104603018624689754204901981931081950773841678706906276484807958762198825337898707954329458763049303416415418060975960350172718150787186856734446456288484924074403380553060814807514188761083694481862332422415954156727385916262473476155411580894076336208339231021991722381390255968096444263607735276502875889643380069139681954343861999101029679602284150785236258441604318030167429481682070362481883154932219328216095936305059751594666920395024252646989687029870041856829866676352087769073916867412362518937408132857155975641995944285938815280588650675875995715813081632162412122099382409763572495353479313433845727919463397798120864351308727296133935139585564859254497868548448163068266546858543085637156691997146581253139371305538580734262452450980873798489239208017579335632910500293670180242868238504352497743820404798155271147358456744096965781874907240619214901995662839195719471920382635679294888006070321122637321387276216189924204926980504082169340562851529975938536290251953653094247493597255091649134619452521657155462086952780263679658017774110612227846154255170137571831914317019917947989532084433107920935618016035796402834373367445222894590731881118402649634645620398744463063893444806169710607686691399602237054496984268922869758470724054414300146712640159826527453573224660039672024868717145639078139249352076100715473218458017512209016746737927180425913564862449211882973308931658894449755061961269995645562707274866716377196731587735649387710089918216050317424085043465222698782722455255845184372537000757639344996991841874968593419448514506167896722624637996924279890615503963735908675046648087725120863595577112809358627857487540125765846552693039322456159786012249612991295161493007226306507129064143817599088650574146090334539132022669054585071461057317129117433030885721946051507049869236541775364258693775930411436781239360766394759277149735358260335252215681939267563829322201174625318601300782901921358160453395208863740210592049164393867213804631380147137126796616490122106388028795945283684367741593027124934974131307184640743513640580613019970897095916226865840865104737091947997750728117879152994870841793774526592961128408575117866765912120298455821516088794501041413736817193129531152140725788172553538189239680526413730334432337309649163917985035776566674577040877115315762256543171924368002913221967874269472684940518375239831129727381582343223455231529228177961597403125740649281380255918270005795743503413836876880477498429159737168588854620498647339317296812966303217027008835528156332816776014070820376044352166934464190174543095327900092875812212887758720640285917208729487519584652067140818496667249003440783925152709757363637100938488553273326685227383168751351319672669649210623410579834040295995176908182819974975501777343884812657444150455892758435185972690394250473143461300311393131464495109156019649700573186741824474665149234453894900878931079652502782403052153553929897547391362389672785251489545877147957705817806479990588684358215125302926028247328394148813275963396111883487218863205472549489649084180729141644645479760861830302234208522622598806960303147475716426700874191257817062552025047477018188673004417074811043818864417228041414019874203834024396236609079163167703616573654759514441009345297162624668248527846326075115082332075239539582643858311249696258426117853320993536316312589667017919838171061633219817762765794144343300443825634800162736990823872313517894489791082100475896746484701915222566544218506993270651890146058137978929787293721905151253677436660331965319214306485952549752456628504173221447542239432799444034375222326957920673948988205285711647858423509419900834328284432895346981690943289597120833565518283529173818662186768618065729517908695601169447103931884116059492385786133044876642677454977596716740915833479772185949883014131573471718410461031996009540345363412259109705268108658722572784820189810271509594122661822463548392815748657598386542513626639093941797133447315743635459317875510425468001018216782446125525970691146383599702501323071643633437910847657671270789682974700675054584465706999146196655392396090961059543899223221689206700367689990539412229058386824506108564240776863740423791670241440802064457944662931576393344449039033394227693614406707603559730933884155010498212905924276046148870421652666313713629724456665061906843252752563425541317336544848291989137366108652585391511268842829840658795597382819865425485829769129401291641450953823747700526384231329120167770097309157516817058390495198725343062630645853286879255274605049425379301585930647897510027069491739020892265118804823043709652972623431184096430362705192752246051976924394890340874944077314848277771342508489129670359544113277776925300219882756407710168555812410954400162415938199365617340750526823171473096321315915500214524434604767600467328213057966196047639498498805640630348917100894994916829282329251736692643423863709453422491879006022017461688197240560634554919877788289998903664789141837706257563410798249170454145307811003077358941906405604552003542286652956237405119432776729667779250744496493102094891407294460616651604754913357783762881180916525470370919048434327042466711554815637029855394568163681008249735448689933983808480533459024786103074318732403820048806112230319464296892781879189079126505826106954387712147939405199229100893639677369330766771402281120483567904861093452190302758974254032409713022405416996671338095125034025526884455187409436245552100141249508846345904437023933864892320149223253305598145552109748143562965135903281660953401631176395406687038602441127614936413058113902561286068012107815095986499864103978804536465512696934926304989752141457694794633890723647439663646154419886568264766155642916309359992745861684273610941662720726897669226741872968161070236078834341372098058603933791681101911698433644772406026527472560103516342732292219902469248311702349442385199895090077026147788219135456227774790791073552928236414017543710394392793697220399985386955162362254901813671649764861585323447886591894925487237145119182940676087100878866042757269838597947630076353033438188792092530032248188073366318083973637584623922979592219631087747236467686291518598684345933158745945768745091582944276065189425697944798603194142637190635494821681936710847458880451075007520485098041333658534557080946814724693610208924679962387712315012675148622411624897728748449115008109996321723717952257190456579100274313181300294509587664524487090900988569144886473298149146001211725664709974380961992321792642875490274282342482889601832568090193546200762887054791740441205314196897394461105922360127289467728362871486000118551785179593700231243153189396898242165306485965106572778854002935412165106390214034770855537657903773976435379966443067867334851401192862829450104297352331785930633766945696545425596931786809137986334143967300913528504706445366412269105667738805955273129544628863987218359198056814145613284733413868330704354254244172592742510219923920434715738305058738101970894281845371511834875095455951773719466903626428090026991969165562726268470574872546730069032046275209450758877672874594527116603447224397052129334249890005490082497289590481315729230348719569230673447708305691271361142125733716253149901034782381221518304124919369630816206141343529558424311710778121692917412720746479103632478500731392274079088291950305067807370356566501017307758731337138836139762530768772422415006119537233129942211586400444320124389508843136500126448432179447284604114569678361692573701976715021318111706353503316674024037091310958595620083297552214421897092856085177195814958294781945472614323307586950137681599272089908584021587100847987467418123231282678941789565295956681767762237927336090276742719337239629744411210527308081005784917832653685518822526274979455141357779865280854195344901709766137030255751960286015456844988918883291672781715880462046028931517760202591524909537142871571966988356286956319333301067963892857832186970246890218936301771941278926094761991856240210516682635455579636466187445367086246687988641990438570521570814854317921411291397628006146701723054958009521870705868350386112022002859580158211171772639378704753939565709593943834380084356448657441931353269030303823651206873911408541324035959793332179188681685765019991485885325580498981239474638805109326786401598859509072257912080504688864999474656745387796725050096214307116249072039636475137376821629035309616167980887427938534818467736688707995307016912816968234043498908390039781484429379022753601985235874548272002731707140185710801356559945218226132035609052541831718259372271299331472921737318606608933669051060986796184940726502547704238538066667189030145122355377049793555915128684045473713221446908417816966671093711935098430342855512299456382009915120283345951108813995564122658893066260797844013542711220615843845347326950266755109821949441085770416196447052558589055666857664618306671133345623095819312156177111922652033883569586644963104221345491619042757518294566719996224654193387040620288117101985941649644643608108652595379272921323408056807745546923357349923556204467669768749800033349890778163085515132062550041381063687937002550338541099656007294234130419933639439699103224555735188262232055923584463724867106275519063751232842719709057188120908878854085334387563094993575235333650960368879407652754910581599568078974476592763945732062079132110342542152159462795490694618757040987056548804172114191734200361945931595277344958183904930613877871333864694943147930415915829733792365743056999521605846026608259631818313428404745581108490427914011330430594202204145860914339934071837209546620702277987514727272716764818675885782887838977616445641205970776336544029933066166744006451040630034801141508108464208205614427196910481616783999001672971197519469316183254675439619848639133821216281409592693801601876113787902312176671446033713162330641852052785508992987889539911826089671464579722311504376035366727840315400937431158718134825820410135292759674207979938229354402656518456489628221966170253999686987239374857083857424050400146020948515181687029755791296726334271240103995394730601745911120633018097739545166417523304427122062379895901354254166499579529954662326222245594900052964230204619096993020051808060141705071500917215973915981447844574070338450603990240818329908664952088355582672923859860791338619912684684955518684423916617243419290907132948082634348773608650093588952380452209351382145961404594071515256661522319425067031058027202260037026900324973681585524239238917880804520994208617521571885659099374083764197624663209159994552376303025906372562568043313168072604814587248306873944124186033547235210739189173233139327848075822401060299107269057011315532759259652635405961199204980137494734834021172511094041357932451489585612939637124987095662743826684561010865770051500454651558767407863999948749302909992585330061472786074174284907978455269866487651614142113714324363473464521604550641100946612807435572473885010170463322405888397297523887406293344750788191008239444643355836692469429781128669648741400205061868645075525740851997168650028287135490295547575296912809802549430224931801543642418153532901856375139372450022754834030257943508039652924664223043478527152390228086633174689257672451938088143759648133799198224490715703570143118284734494274140042007519333198500419788011872696791824631731377228284492957458655098714542883955441522146681260052022115395712710083047037979826632299601677906659907092759329441850632239764273917331975845427062192282967597601823146303923000575172823903229003986328532853410388653465897052410123264933636033418331470722394946356302777151267291155591012298261790089386058811312715427115157324481208045448661860045998480923020020708227246477990436515829574755840541137023237663509102622806332695680858441215098844614730752553397100896331430035815459914568414184567503261619520212840050667804539676233973160523810736380767991280772567370409155785671057924892747665368318400512648843922157641165734570703625681308326054416764294248416023889577140975055693876666481458242815381801741902707931844641560490750095806999305214262331798235761826591802857808026955173808759258101956966858916011949650403814385417519960038227513243227638632856403091527948089853882985739587508915238504651407700205422608701266244579140030816197412823637138087990196946166629199708502896648783410110308798671123134319778118863663553293868951773461995778463531135393670490332143261288240425743538448128464981656584450408155122392284757339585251296565586738601707192933765814234609386541525553696509037904680916320399588990507403877849929478070992436062476491011821894190988969161314939070772832162769030236914903780100317716376003500533727612770409648072060096822294479300684422748258330174453650621596127032789852368720540832691629862523334622804996935015740027552477404635669861888220332233863009975857430901042377921595223006986346337916710953118397537029003260701354832557182824997313209203947783884372598659651084117967028123613082875512197226380817843793776828660585268704786197514351864424842434599318027431221767033682635235161941675838292199101078163747976835373645496298323332892950750051678604282099580204224288774231766356864798863966724556618650009659423517763041139070891600769422716249850624876009834895951476844179772375005720415222428147364969789330954008015485617156087550214338817463346172092814011092664676890902988872049597920665805218390117761739337937897441367245004261383020849063793676874265511039036032152210967064261957953247683073586525005215661042264591195571258357418909906986455692540516778629195695064282597744411467286086819345117411996689916280567339199129997731782825815431497010544246574640611606632017898886156939501606915323827357940418222947256088177503699102880745745365410452046216176679178784115874718857780067864377095372155373900074750372278019758594536008980474613755579510516517050911526559415672990509516317035312643309232433057814041621935730673433118936064685076446237249110352923617275451388935401814289527665644114765602472081874385841956596837526718574412757850618084089116378285356488582249771110634242778861324072388607059107704850180992065188627214138454356699897622349625084417920132403200351087768917236686117399880267807913302040995836346688378483402954239285425386231924386948691492735389239437959772031625358976881114971704161964684549653361426343968796025813508239295214217955613743709827564415052494901003334174905228958848030283287221279785809144305907120249689709160505659740843736063244067618983805109659343617705122392616585379175395602505507721658327144743584620724145874388013130794809908867266637724415263497504266336066375410931302344205775347484326266412992774199784053837880405161650769878875272386503146175466485619973514673527776120691683947806969642996021598801338817725382689420219564477574032345349871701099282903580564244412581112967283734591814555591050526236020675597016240162472266881539281143088403153406923431547054692369838649300675707961142163568685852974733483313824008668165257152574434740030907392516188626564076082989332481198932127395987701881494862196926497781140938935249304263057389438547218893290838555600913815735470007117862752003416849760827910070481508717514055123091387455781365369454904900102781926418922418758701173089581550464940134048194386735940987578810744815488533766385763185233302024635490945712822993263636097989762978605896880011659128615087289489245571276613250345790461372896381950730665667763622694031925990149574390455645369826532215666718059504014880215447277818886632220106985557901872063261961919686780566963702426398553752655999241308796232843562280594145377639241888302839984711292456693520432963315952811461840704549351735387296187121738535485085380832872795007009994309178736062630707049182101159383247722483676884690976733667543088899830287699013344379035667725950948091486156180163750777380615719193129609244354182985509255509185620883420912328307360841853937314534583363300266834493329569389315718158390425463866298871422563718840810882255192661081833211220111425814818451143071377525152217844697537810179998441169700662544715817141434313088766237303740264004359874427244607786911175320766903433358670005664888688512318821985307839687401680600807956517198689269975068960550179621049423092008117350038966616515982331225815176439171605369694452809374413880550285982522880898436621142324825638294581770847771681370571329909383322878795212073530941755936449569081871188477519252006923405733425512931304452503767653108826205107630241879892890284918317681411847082362358592303629877334140310704163990693789182865166545741917968351965589402278805293376318383279102789738899958134447785640993636872171463806377722564255647501419544720115782674536036578690617376000610503368024275418927950341687100752082129328083681387821184007013432826389548770390910881188088520460788353214835358591446039069723396176056470641237528180997577306516270805052878461758194718988885425523000917634826944665402992466633394175161021633602522128076262611721674692260416473763729446222089660113926349069779328781727811212079878143928719753486192958151050502272182018017086025950073299149748273749708129794577702790890251618254329222312932108487688280724070317092886868907383846043901058343858778647428516734319532091822549561534053647546842107232033634044551674340485596766497165704201846692271799309510675813393376005212532425818884353577057831049438293780290555237448809029687453596288085718659013718591360922622360009729351852756688835325136274972976239852800974285880047553786751579804810181373479438567899524568532031437973168872429033015804991830158625516487368753560575579357369825334931994125400797677338359783415704933484891894159937758729842948624150760925005941162591404404135156516285985145185423897203578980846573279701070845140165020500241262511228200489296139496208757320871040301570371261790518866418067533075591686490597973397035087571295476848966979487630377229522254613050527921582227204243709163131395753165302321449597935580815038903871392219450171275489359865886946625335892524081060479875952286039900983612300327816140271937849222427943748361796973324673764225489633377753731193191925665766477461432692891437754486355535780890600107788604553906579103809737437316741307601521852528107065726357877951219421411156782926056162826885134426751909097913879753322821504765647128194688230107217249319673307389649034018040993303625001385428399582778636242174563152111087684226423192438851901096115798609195048024752095704077142120209789092462409780030478055244024255289645931090660279835926427308300092956883652164935761920997072102320820606911517046773422896926637792028074561486361193562083133992640170699701548876897142609416406230919511063267129739316216651181377961190063622968703345129439182815665468492618432244295180011052491838038017725756327278946900287314301923869265680326039426607369891064994126806330797116300829272876131981991391978890748523392326268357335814699014014072406901531308629817332911865511400898432467770218650188064400447191865548290301985972379783216086569239228718615256224024078266650076939713714730753703800606454002856646846703164776627753448468733648796524049621839131019581227594113442724177765261916707586053913641235409686042890210883253509996874444573808622810067319790168758467466163484032855193912918178259939187369926590210372394604217162375857097321045477319384096525459127397747669794267059366895928499393819300881211768099923141693093126632368724618398656252939217062525413390585957948034357150189155054917444558411817686084014558222687041469680020719938168361429820830200766317762541966618804201761198759737286928584124427354315578791071046165676568354905681321448027050408735719865618048905506177097142677123822288960159853629983735881077142562600465167870532073545890332917703997924128423254002832841918027436253563757168946617225336283605350068905937281405879373024217195205025371344024569795508345280501255075758772232043770098748889104636648854118595619519823181737289640924409692508844251345479230337140220094254452611996653563577553339564778003740895659250448931584537671583914340611522062535697879420403472255706548594924703304963639331117317572964822508495263398999989826587712466749608727533467587466008026796336164023927024705130628363876653326470325191211042540228041761780043373301485151587486566249984133012252498994169733512087865785466582329082576852671836326378704267655089971752067810516841009613014729767934186671269411142715274895417510783585662206244084272097766554986859622016689496796575993360255657791668971797898757069300352492382569058421287417636357711759585249174259637989133318640922406629685898582120577328363312182328621476574196849367604457104106561450617330400913884907455051579238601396326891605087210555728688607305516873314404994682643384133386642659130414070467478133675671214537845710196038159930971013013694467416999273805406136191012373333856178118256230154553921467333543534786630018328143150531132764449536126803600618526772757562180598851929896498832582843991573863145096755611358520401736314643956805152001709111597401207188943360327580055018803848946703159925390316309656789238124270214163173737058178057311693263860264132973739604936654693884884958972888184824367683039778042408654677224742419237205738237686240924936531346098279021315505771208136398275276586726963081567653971861914893229485652723503925536318911542343723873804520400186258877559630743511894064744792235286572087524087847983867788724025594696579565706923473272166477762892290548275227379083044634696212223047360035209213459300852073647636019942716797241749504181436442585774646818497093437295122142917410228336197295794935792592368877990674420202715522129690853690166515674311875673313189132959436497268067813423912647139817113208184480185167660485813707939635594662710545227288833134108561584489905994564820787120336688616424684111301933156445534976839985024233907478867534042524698637951899662339270716244215920487052879927175695838877350188783302371952539491938745578874223081286799917865726484521332230479307751892000596839444508025916235041374586637744884580032708978446603841523796332044993590953978313088700546777714594518152178830391404193707578751291525085982745232206226232525310840159211057906294028148361913042651699828990204446356704414415920260815683843086498021507920680180831276606812740866811832286306319118152721525144474697770429851304615153912004176257587249885507008228363462741044994722039933055857006844066394843665357244582161423712857816706257485629840109872846518532980096095431946326433785844244330933526408688279067705618813114525033142399255492849690762560783014998246021089221743654897766802923173428452970418245587233144739275217893721472655638656639054713623219101364034305070647902031243312858205361898456219058415752586520682737215198029786198464484977096150971321408158815989229314999550742035513073829676379835776893493117936292906126022553683208987261348251726175653952314418299905352989579930088322369943846948398003339955190760827831171597493865261011117334527998269497317058013075564566316570591251010409766241930800980178165975661929201460388744588282989224472337739063953837676136465374646102448055105947733929526927207994891432949842321097075518098325832023658170360182429151970397028810173489446198727137318529352982087920028011782488806695491318861168935098802756163320943105208923748062671726058184283360623770221910129068241369936449450549701398720394676055896467302692850857455012802839142635832485078216892982432394178585222907006454227309800501349653439553096978241414480424085895514191873131670611505282091757635869133872975992495934419093911831258077909494556494274583098528346916197240204781117818594427068357984265208749171549056816224637517533434085434073554800374131053963108253811493456000822499324174395549586170867052864454778335809961421505270466093915267215710264098592093903474968142156015262515125224930186115129177690875535858902060438537711198110336306712845305482581268211292390443364580432575261154027291001818880313136218165904575765687701896996257746514700939044636081282847342436396651737766852779686781615099210393410351167992290577124012034375133323316376878215779389297078537115607861061869970071137554514342258405906609162285787718649578278469445612773075958027196050699571498885239212500503910229355546187582521321848626045896708595335615549158327122859562060227253907494710462549199424064080088903274752279442185385918833018033384874433107391434288283652625081596902183816526965003429020513306466755353482538934610524800727584153925551064579717059913888205557422604077057122771642740683797347101317674355076123691072311295255782244007604462031337615739000431092182005011106230020860414953852378409285399513702515506333093004213588545583624835623198676332470791070257167573133430481712590886508603153460396922832127599463729818881289482955340236890411571015498908195521561100143299665882466161327482953666809461225631048192299041642853007086138641577623685868328027893432062773572548166144375716015578038293765792528018031077849350611103515575241656262218555549468404592280759089294601347078086185274747940606369943834779599458337100612796173339897195489269567288978320209572792651455016159381942982554778518933428115202140043266037235225428612573966832323900556354929155157548680902826157207248916534072214497191341989136159699628931183676167212166957824057211456744709101144326803716469698852412278519466337054102868476573938209547478419948133844862781352134869005809236151798175449029028845928654028885215458213954179623752610665529726537898954891700943217452744397647452759820760926073535798067749327919544344540474911486346423539084597128605875245811229377946429703345692776836461393125836852433720019020393496624747126467656889615446152645297012429821878411354399292146564664265898491183618792382464552904473784918617851412474616375939610182618388204337584260863876212822376951672438614527934334075085128957222548503434168792139212755597309807748144494630348312751131450816590725531405063468667751894265264780893715542288205625743871074118179098769882921317643907077331435825948055183530603193836217247404977046260941580007350947951200047684129940718166572729065114692219060927109921507744428436787508021392350544039412767558387715251438878636736529511152146821258511148380449774685492507142246245774195727931397006797998925457269751290146326025933746982056791539627793728424994885871430346043194538087363841572202762776941599968791735841419679099019595888369858220937134883896620552096116051375600480378711136788304556842238419840475142174784123654217927076577518723334257149640523969008491993711862350532833554007584185730248349528057154695789557648159772120836217912961637098646442732907265960563544247219797830900972981660896215541099342392735001026810459747926950374464485169034397770886379135032648727375062970260503069089157491598025978847051912041674887297804801943267824822046850390520582267523570048869274198103424773905838323918375740063456191209703824599776723119144050341260306612904987285415858656817569970293749565628463429959250792865717630271715967460627558817338609087474323220167915340782133757642502182734666085504684303237655234247630970067944243501155001943496955217405420022411451510807510300716958942248476809466981530031726300144322840711273001950405976103741420065915251515803485380131356141082888540660123077053296829337839501838203096649472068618242425079208447548482871485304817445795748542156675399895122122943086992914526158648130478639693730227480754159104532296726398086457131173525857742334304712174268547024372639695049435454636539076052108729443407186027076786924584861499493112477351523137356736886546869819506610661477672576022359410951347567616279779528757580365390844415352142334255217998944124433671519892611516118580551887863210889275737191266843451692890370477390564826525444540827820612775002427698489149312958568596319788696623666192583562781545579592670687852616704346299535503671135320918879764094939335369334278112274290747599709187548234997085883988537485552657636671121506129699461198095946318006496473675800921976026461267128084187798247662890989184442889325970359848711836548874909387401159389510763331758881926883460960222708237604504320248615979707144887691699892787296683242358442202001157373237271299870840197716674277017301807632774042471465481077181843014253000007803314957266046922762997447719138192773005163345213139107737271387109411063452152790035547672473118432858599896849023720421157179624680807469870125450218971862788852697957589809627812827044672034901207067948181692210959733279814330985088843434049005035275353682728783246698277009966887655823006729098012767097256552091716496707082739806391328623966670573796445188265988308696424438285373554501748227109227525563333136097826399307986286627889051664409970402382807661715251928145968157950816597119779146348177638235436254616233871842392889181190582441845182030578750652907113544187288534498523326584625703293084883841430203917194807114767847467421717000957977104995727936073599049598986522433837707060639940147216907658295301498867415773781784835908304358603163693369195951138327427636347493880042876733299402504643417532305565241901628934932950815640223923516461947114001922145450558244268941434449398008818448066162238129258273457786983055658742074052394370116101909726851266452881824809318373259405835721554255536171209354243778987018446750973310559398559167981133779272589839576368394471815510381872821270215815969881481629119035772151264696978114369569370952605691047610459418106781761324170107527413343153591884145026250948881177030643584313519230909359357153014937862173335475650132064746589734685817351363269832346159003121792796174936020269522368891354270539095720287848272870151602390065830418632519948427383929828463180849538739143488697369454847619340247567758257168124805822271193646023464153692765358782027107507235968858401551472681731463712343405164933179960347037134732800886836972985553308488697357153144782845531694184007034322514716567585932731960395151409193576237464987996574231916976216472834548791242930039427656503270621618668756567866688232590736261020284044216811019808451719385458484348268759469642362893804162949461902433483885322350001129712141705513345361503883176746769829231971061623482989285000134755076192207139887335172944626277019318726115000033407941655975060223566839062017327548694975493840438747864074431607255521127991499382552837462959775083109707197217096422094556992133658473668355262352885493914194814178710833422653630560327648873894581331287654344443549697311913013919224485874391696164650114129172789042446356912511781888435229006768502609703396132194327083423757280983679546413473371435100171423008724031755693026376580350625770779609567634184301701775352023141217774402542475318998164230606176621200621030032297811124543074059789602530063298818003070407664504992892438671011036420384821535510684066269171340045502986520826217118235629056885592380667088317974574203832910005570439069254295806278432242888981456606575766929267005685750220085389853449477755043611075581683740769420489559373800461816857610672462476614292694159254887604894675150383272735007950730073788744313855455513923385841109156693536063263472263881162882846390034208834812081667976655948920490062741580923903130419359375518748389181931100933675263513802843155617427239274618618033575160305662265698398916737056996874703435384027084990552360743250519630634590542009077451550057156754848144452943766879451734558363241501879390791343571892055278777280198536816667834780702609330442607554772037879957418651199024481530436596865283310993139489395006412305546703652003692808184174818422499356118383389131215133924121433340062108920557337716333997949774110761549481782883727416528227826221895257626548318417769628186219926440695373168468385423306987909525897920991025374148170062088510163435784376507573102514848944919937655750002682826267640468046939511081034148004675071295475512177385082542392337148462484383838771634465911641485711633962338690799208318906167654056581888963427181102345539489859743167506380218281837703989529243921536647763183428958888439375513547438104690815284132118150375176400871507827000081084654619424697385667758110718167058848633054383870961449728708702051777684636914782718278913838424513972784612631537040386075557338782977521425983911440934411972695721210128899900796734996528929942051392532792043220958584388302623009274624557484673521983399620109619733699727637305246518294622484650641856010507491964437275516137468571475640759429377380344273527218584272328814215594558224651575499442699504939244518666379648047355119057913219612268975773655397134903589151861400556612543162725511075073664851837776832037417921896478815337099685009269887620492635888861516704917829087077485028051332008446653109306317210052508896737198861381071006525752863262998590675216658453771373375617501511868465230122763889618747653425884529981626686967108104927332261230733807264603333158485826928455340599608422459607988054980998050402815760376890024916751046573186654219485251656055608144971137458580617569867512808188450685590923385114882792374175068861765484651652425569509109378041749597045844729942717132976551335549687587982400719528353175502478846270358957424959836829677200190674802101455029341929561971557471163697802447529456773648606737063455100751258870547747049599506956677855191204407852781658616956781516740428110153624258752112469426419191823951706955761579839401348693720783899557661285666400332838626648616577400343284401634465804725785143299745668332014230425077160174498935621836168347885211259396356703380481988557293571108049448407280516881484053768170362257737355978348076628951440314277130411515893353066097376101212562617898516953958594795382958251171032225951421665917173729451115538107455879689062870690529533489364804163904810233782622098399912988574490378788423647616203605638347599620754563736449312850578767903574440362898399425058869665422908084977275965661948586573221307692157756361767636654098044636499714881420105601670870236318134897317277577245823670540125661655016276437467637046348671799738961635750809897620076399275636092332234001621826778591580383452764519082800788897318638038170520879058348520246841880370538059156117013143092415342336210539382804312869425833248480950980022525916702118580521282127768927267603932710268692866542310010957465507035240480436021769994940072232354195512118265452390102009066304782620276291307264336722914258556160981069913191867783061485378316246965704648127536376917750007001935869990734617716772422396309036202582118462357031509114003601017725187758373612614376326005162875112485844006691240838967923719852686968405265122501456807744288481880714070177495206056464703350564374386417119591190036260302657774240479598701174330782775487790656315400104013281931149355410791735652399907401413341004262668366449898005637871316658489615554329088407477143919449830848463886689343390822116208034252926030737066297221312262047745787286956866039598315214577120079216305717738226226222183981865669970478293247567045469744842226009512542588969184352620632638054761337516941333231389732574099673837448617598126793394827647050334084874347806980185084535321563725670282591188531039654078112741441821205901057949336301281729308476595922418730378559024015565289538819882544354740537288879570383914925390859189472747357906696256099073126370511110325763406197590069410129684504151243163616619823298907686219101702873710354872179430937101536870864901671104103338408126049425878679583225422644226928921305799758023909029305753171344046733616690206530506139027656979690459078178663324966070263107435801797630252821577693188825619703079920791408148477945001661796530070437503676546036920303756281476968701103687225126462986245101175163605499647209066310796480186461701423981035085190991841625075404250298374592544520478990698348995933748504321913886366868806368352310085151906534528817762436224558261194599238273798814597385257697455147831703438702525983155619425166265068279442921528422754116128290899471606602510412681837775696767111518422019188274588586376587477711296527132254232950038826429893030846255766665897414992205771298585217285291620323493921004795430568770228652313295104200280420432383545403906876009395570473310848657989801253296054282550336102689076003151160586430246625611760506185190027282830702926051663579796256176466028440578691947532861401753808923233863903233699172806591801350522551924978018159811080814330263130916786982205517982151493891079827230717595988633804659495978931530847679683137026715839584345521303897161319841959446560152067217218544768161959482243114390612412394458710753361847408473706505176216790226989958469717260102767220885372934975314082521563477278820069883593768257024839604282138997106569134660577513431110829187084060505379299690606296277046753930544765721204819951517829037275598571239064263071292783473265894228234161499102894580791850549208099012270163342894305878596852557690967793865775319050750766491961057510278750129851164509834336137038862784344446447968943779785148140330750053870126841770548082248759220988628544758767782714925545469338768811144498457430623340511267402764551248676930416529206889150147549056216855130621578146420322059823221552755492341624627152790608232259594897111202999075840571916618286570362010805168082984010670169035340546590402095625572791706761290039897189955548059293816020410453786684322436957469674643177643341939081923284741180611835329798605714986652360446720598170882156355503034335669072485640827913678029833105189117867432417002560261439766715129867966932142517016760418428372691954336149515710489417756360727106284318620383957194888044729224021986204080366946366659876826838872633632968382022903710594531734262235091157997659632879921416154937011666702661162307573044290677251909819098598864501076556980702677587851796981687568593679888540968032034937772288939901405312152609472905450892079193796057975873534369356554771089552688206217888758885908683947398249712790369065881116350764918409897799329395984602338275977381775360684077667619616879308443867962824091791815619046529547944740153007351839258115259228077271229810113039410643973468460508334325523669039518210506927503339610029857868222694187764864023532977554997232222368094835572795818683108077995050627399595685804338282463447353231769916941531081053747187156688520728029132210441449047937667128760051906913181496991254027287706913402507881276857075386263053725663154537554760911169343380061297345937273948106726331753376665289616629067032231916550692065502988610406056303171964784211736718746500732804643113503044980205490367100561667362197758621453299204303387630384311707630791580845859940813962585555995301326836137518107579352046485164437061525392278020836679406492266895279529807253376618469140126498811697674957554145871831932149905236792307026701238402860805350027297635915461006076858548973199474179785308780475956465110490773712477215601318559663733641852579727456663753911350612900126882086489850539592642876251892800250406957449650767580663354765824875342941245180870227774064200856045507865049109627991778880578412554508399449306096835049982528218167728793953255766958111449797320925733380015413331969589074010236679085769566265221403008727748851497109352663645697964351775478229437334947148033296574608853201070682865109523992647714842355064924617053808616482605104380267492322632950831893867595024083749136373526524687441826159885785250712945950191948022908370274286493568374804568597207832084244799849649551242523420946863993580175163423298005173614814698061950450453018357992990224198707462505159143029977883310662763088862914998747177375166991694072394379498337041394843012783507993415710654141737313874131997970981262823206506057626301356572238474922225098991948648938258423172807472487157181087851466692759595277674201386531796264351059477877532902171952942191464812011018800385148016244440590749202082792509034103237319958768974997751661977278503576160184416688139386257113506553723685828946126145578463443694772439419318630775520045975792487691539844120390451810986554910770138560292062321949969919785707471412560403080605101802811356031645732665077550276056927169234778967171100433792713153746307799529976708786318454066752850323500433783162162190406798948879874927017106307888271942785560033074684124108940785668342554643302834185240044870627062952029799856047191640298576073403266328492741847076467732271801982993620612671570277429835345231337122191282247318661425841052188573311143790432215782628080703210004303316778853795837668977937323403511737916271939089508411102826752779468058083376296194017948730479576591237025088386618649143110002699325715808942795552354067591311621927368798601879572127549378882041034031821328836027068038885322771818577663760012454090478745318806467579520586526533469748159481499293902960052255038092040437990571519622949257576070300938122587081676444739899651342484741226273561105079653867332824671539615535218021100597367691114730076309754490201601090754448512938216771556170369848088280803834841567128446409833451563225467804134239424550587160745706864277140870692946426586171136962674558145645778237242011920476870303611350525290505444525296357494945442836765903252277723061741829899204971344633581915803954703385584697957990137544791624456153521067986037764094972831102118982158695677414625787606538500242974037442936130561408591469401405166320175644128838376726412629740269155529379231751269318448639388174092299659174023007628152137420960180641644045512277873157271206601347171527587997207610115221807923070604029270542883415435347515271934743755975869979479620832492622804680873544918888650550826336999452703294100664384898435861926359233997889689216755137474191385609835172079627417684531791434354605199967311165951961846411420956943680563206225960371880513357827397133567667907104114019493257078651608211783928473664390721688205838447645819970418179769762651269898722552075465782068948501143862584996002268300581763281015149642216668699111144145853552198259559737509462459048815918350566225917151732043708649209953953271854957704386391906950077641420627447019946668787539607985427561411858701220876245948664487757018192902697315921584229486268847362206325580401100606984229126722693541900010962198700134564144758515658020739300182587342046984301182449247656005772287266868578679372412292142575132380089375987247218092535082507487723440532971194844883051680569586951398674160288209202382536794643953374743425471547900856063286514865347760060506181745112422151359618478280671073551277112677913283565188290771996426315736874492026444163584950514370421547781692032493932284316321313637642964281562628052615440878839518041866875158856529706101404672378255352492792538656133171929334085577572470315801784486213900250746708799607842121398006239714749141065889297294462321393130738283857645122959123847499913126061396406252841986655566040858854153580348401201357092100076912056175314196701012829484273581824107546085776210540916936644813137683540853502199172138199399715090673184048742604232276006468625584296742557154105926500763581757393872659783699559578525227320983849173089215464878164723914719920018578456443851424557264008203576098815370076108105852599500311283499620380716978508873418133057329859024410955865503821337586279187591132397902451873369053816257117816737808613853605093445185081805871135131639570129843610635998689880782160056386459932107700195555967079282941010502979679470828604758152428204185815338791989812493320754975731937513272777705924929345650556598469941110111833274888434148513007511493562695772746506429030152479246443454365196846261342705837371461895458071318435190536175574342589297696486190396960180601134900183809657305798188348790983201313930642467956598371406372113800745654306660729885633286880930680298420064402902164182525537541562180600861770437439065719330188006111777794548670415668938086462730566768674334096152928305402648307238180858760237616082866359149365014360256854877201139911345944799600812324218765276240312147558660701107286608100851717966924762313053750348956405400083708976520548462759559231491965125159065555192487443891144272673874087353789245679314418553964515191029378882599628130987050782022867357810888132972218317013909184109766566143201309096737638975214812822008566079923426307100722076859239776590382369700008764125789454765449106670088663718115978199326478247341572688489901478319983304852369811476144221023667855717167432038383677541416352049891118441667275231956629217784942938865439648012351525596630733743146460650386118871433376763088013949661837131078901571648176333953783897285801879472566604858195098348664682857423906048184054326683884847246748031337512139580023546105880712649144039845906463687378916132411618285692395789808489085227127627228110513596442592491606092165732588823082690245275521040915315195927722719348578418166673958425276783191094816371988519903384706929677588175551367309469015151364108859823718073333905680088468169498615150666791538997569510309817612235632091463948168457886435616873670427187399155413554835460610840489072927234931443091992234928643332954275972825877068529802135507280623090779836156133560947022007923429679443481786666805756405153976740573704056689607344762027310565665575760849650709954076373429360204250893321420316592328115273816844987121965181542643869204936917258607799231850143356107271384946923563451943069440430571364232173760506589527964838537957508930434135475534360689180530733159412954184484981556719281785205789780354749578628525019841179554885699155208193610617890040117393006039368163559214934838317421437722125309262401281753618422474551236291408050388239745886303160028227003487251692399227757692499742425456099162862049045492544595454466873287000692124292881004102962641390122701047526276531675120849017211226899614833489762288320812053251013672938601682683621605707358816356847229892594732824475070501077800282140180070064372289639313082235207807665199778654008499181081202850652374691142418229121219498587763370755694510765935519341003133640101625925108331019971117906127942501515354820190162600569534002938678626984434931365348143322346540739642274127552113776388977707814125462833024699217125742038243465895424327031583913541016731791097521354861029732984719168012256581820190613963566151447524786430394489065995169063592617795734384187821093312644837040118419525521712000105952748842357782307446675242235872075454998945407070248249232155914844869088437378332141990833097646314030001622570858853558347959826627178980572088103319461263878910807826617057117842742910784593500982605284202787494271648499537681648295872318759669887919673825586267904370598998283093368038888180578638713337239894437623469372709367939659168317264885063985751863656745406779398178196397356536253464215792025691428157192929299097722687250465179611021967319913612436581756293763811211051071604169413570124555349941530007521090810712031949048910508290267233863759626634316230748921747820307108053667130023132513551371279056588855816531710203946071815635006241618741337687121719414880249384035260440773013627693993733552863656790529724744785391871078552254113008419580891583564788917035782332333576073234833012753393573562015691096280779118488661049696999964805586907753727282546217915009108903067123392182347242139777048954336813963983978862796129715165351341458428435011293071734246133615727629045650006053873345785291211003643025498457080845454643735247277342705406065101800535531794484403213921347099952253007674946151793689480007754612280147341193957169979419571808634457923271044598702315778238530643791278339085507073427008019268666744099217218442754619621612896046427146826920925585773429827285678492705840609538096674213476703071234557625642711046377576443255191927027442836956035443226091153833354626162999739784449602377406914590854942987267298785599653704540455975852969087795794116554691140420032589362066139913584901374757352692080697102481749571377593793405700366644736811242641471521617198231159323327560844453488720154259311089992277376442959057811533011227940642185843606242469300976955100805603479341856759372335949880810500490460033191886405046172667860635476639030288660960052935343514943554742793948007751483243377519506738679217039461438165309165114889356697880632334014107757312348634226590110111064796340413009471383521105172129712296433671705072157331946977281105087885884658369383312192055334768027945064107339548620686974492326608677837296737179830135453780388006567795484944124991087623578566924063902824622812344783657682829477587346140224979207990418241221830037608430176301997781520179094574691228476520208278001831389995720511221765494598129546196730189261105282769562593244893989148368639224025455668315688167671407557138337241815325588224327996915043713784975714753723126565612431062829880351059934416093700309380280724752159591918507988798057787545186775924425464426309956762958171763977111250587054392108658270418723284442665205681858352281003008575390737438551584132491350212384472695326065217705985634701131228592900879375095612376607825259743015253344482151457715744704580598216877690578270684311945417438418059035786668247268358652031402048925121574114638371903769702278702279137130882172776770676912880853881399342813020367160669600571515317532066237982183728403041235643814784415146121639961897671395186835537339037200496544509215807969657949377050723993527656592680372064482992082479883904094443644276288441275823293854934196302892631637173879332706000891590127324961426848445597103971204200999859587731877969852864207132636009545237769518932686934817248065695863419546215144843178750855119932500881190008309474322239825819126837002621744386069040535670064719158230068163576033082288702708767941697794158170017850907149197364797063687820870214753197017753141111971419088161971304647128288796982046241436784555835962919247418363818092146115482941115459885144660007664596285239158204042737235677481416894723904157940357255706951908456186619550398418304641347356397826903779454871208946295611399707287351902393596659275336267925821320990191275412526829533735410249609121429443466459702101114922380063238134319200501148617522449278047997044328318714269832543103862180043372884863481696274236563830960565965076197545459464073432804975881082580336896283083623182090774941222932574470478983179594965225999774729435045386254685127271869768401716819662135634068371270749244157999890689472232631477410761101558985581928231278418407051290071776204598882873487529188582436909193230979356916117579653297392871405313817244702195874919048181155644773801789503913548819040772020094468122211794931020431964491255126922124576911686386382324449844995113099315525159540045446362657396929986204966665733509062881369667944152502384130168007506416121699888102983511601972649779973184032872898096584658194273919940446086775824434207349360268692770701741004510818628702027048068392276649901491817099951756723804234913054436368673594538290595642834463340402300476575551387489307937647747319488064389150893544543992629581037660509142459871739615466048236977718785401420215655071087857781516064911116570829812245218421200358175068711870686809764667970650638629664573374652595782904329948970446046411040851354833124070461682683658778488453991052371832161747007126669236591439779159315883185162867602699645652200511139833848207892830222014436489368458421966251780440041474255860706060943117817801176199018450305076419321541313211868807886868180893058151564743386483161934069118092675266266239001441493348440307562444409163164527479447762797604297052598787740048568296638764688117892060049292032086222506746477527762849650724939299048144412755644878092266506281560121462068660618259196839627917285605037496876318922624238222898584571598422882919741012960226559856471816427411929975176278040771424045808169551211677503460087707088155463469384829956068831234998677606293561729458829089521221200150237092662764197518460462485118595464090352833178345181052321328146059197672872369374846652147942516448837049390275065826124648536452692043314157236903578240683824393917159549971318131582015438670761639053923308528144955504835479354599059920845523604156347060383270291092263866894625083154565673202911988952032826956650916833713115740551783416217388923391173304298275434686436398732445638184065873792678646322305978243602448585962366029128373364554683770326618772147864981767552411174895630073387892520889280052671469281115053093688820292760767851055216723509849997429709526825052939243734739171383057499990875654267947357062082959857835547491404185138629417770367613213189109866045065884185972573443140282995623668680511480055328699147370745547694084708789610453720630496428772227447668699028509289430912798224726273794477413163705309516209659418640646452111793869442864738059210837361922879593899007061014371730127201235975399988063354489608518216132989515686842212459291953985297353907404294175672143641057895728506164424865774955402825315340249330712301809374290405105329448437587045479129034517199412866057340383977113978450761332668549504191921528243589475830773402001127985291175106481250845680402075575830490951313856559539267334146375517774660265613853432944226329660834547668246900875674249631979073673666876819795069748821966357826054456207933852213214535994278934301209733734635035453215269142498674844360008219259859605881729039384317488452936888145390915200451552007997717556725484320312115807162473770989077390134742900997605097194484734867037752895274218190380328760499537289558472001650872558152496033240495554762107832765376370156138285923087669973263261877084484721920750552647814429161785839407698520783691821384332577070689563445590871466768944223940167964360266273690883719785696890261241759406340737680780415010223678825569758677300423487318048427524670704412496213395579094127792394172442589785743648489269784659535272691955273099463009300290629238169353855355118825330510518719070799590945222200097360624524528247762062280914331595286233587864658682096361983056790569658860625648116215905956237119462718623079050903677525759132466377590915764831293358904683184759743721211660634934038933424214690943097386045610007877614734497814868194446385194992709117779239926696601940379273107924647353304647368298595353519989916939958108302479742271641375174907002596916100493050928435795659013233197877997786080632229316924956041925118129382550042638200857583245263977545623359197891557682474984865613905282505242644860490041298826052188991321525772716319844604553859318230955597383298747893501948448377108483535506500114604366282744581641823147808466370755711236722151678432185167823094270666145624444777468753545788904951529973237624713902852585519748033041083294319504114534905785867138058693717668641871070823223023972747064123001751771119385174163024868999654268787590951186945921547035861986212392915915291880808714967199270089164860714268273532340767410988704685955717458939889488358587050292756348259732624882266337127982829628025986106325344067147855633459670521728816660172188788671157733630397384970152005016829960368376897735916873730497886176129019658042109588003762606022431442928625587780914548651017354245241386315622446540699420992950138348224442256230819649242341571539525189482214281394648227130214183353099055428136219170591350304729307087378513579627602352357728764392797680198068898186317802891508159493629429291530382027158189373307741205381524825506187804871397073477739345526028340612070256439019501133242093819979491992101000960198215510679740173084567656757418053779427918842389012751059801311418577528768271741746991469695855774898449786860001309239933625290375529568833043677315542190286342902429286574863503072446019683392092777018253296122348119555970099534760384031740484245521944588495975469613457816484636650214436268967780212925716613598001848868988001148519424413167659813744805832998822655031234042909614970689636992359873431428035838281285080761500116937977110148529922961093404359408754938103622807079187500140493597421011690405205553280795126661690544133795552347279263472219812319436385966712820722191366215752101365313749877590152207267703629214044628375095207378976110832152236892226706856138323613523284707223279645674041083976829961856655698258326962119066449344913488238799081175262138279813573041932598514307551449122069399624249364800364129677538192500969706604594107757747860524308152526345571567286644446663194766137454627725435743456061331918031192420833822480217116103152778313787556628397400479815125600937622947636141660377539973760681391536346566928584290943377889509481494977311641813378410152604347296930563125110945120055683243136020403414620931442419227055432412246412089931006564891548538318774690422641265228043985264036102467653656347765427357653099941402187891557085365101307416424759655343998884405215256839904420757839715774531658517981442348370302495670096026328239399184856475656493874356958319388892200382331381863673521088742881021015661282565276545717688123225125627071502330294987805291902084266215007398697760692691175291596799175800618825637564040012492463931255751695807043271070361276890588793889699224108620064595594406211035768744537675701348758394404870363134142727401338788570454195766964559388765044270826279197998499826378271096422983580399398417290848509887804759034220118895957017960542983974561219134564312863889741602557859297403003974465040004649700511498967017358065913490209280008657682044901437069239962719435276154863037264972826757464772749353902392783774172659595152546687478706877253990798734524788744600956761042183499962542424169498179796079769231351946471363066198541673435869219618212962905844878774835969700248798204640272678023463251609201718695312707287743295328396421753117741463119032634856336421760553820975906182978419088501323336560444551165387461695294898710536688283771731218985369828790276741077590570673629366697693888292070550071326762336806737517520628119958395809070303437093681773242621417921428058067949491741993683196060912900664609200194710183333592944547376434038529253791035203906851205123527603401291914152664300316789224095461669303112325868378861808478603620815295367016147741699096381255858928002845268516872646798877111528820238199311603186261484011904079877053493780966380982875157305251701698360333267406752183353873866213760130818005033614756356699706958975059815752446533207608614156968943717893898843509907257763626189724358898051963357656639102326614433907321892529247661716054690905756053295961620492465651009142355144825882527976217035113666086357673627414862489810347273981394198430519241111040871294254643109265009778616621505114065689957378102561167737652092633016823331560348184570260673771579199439376130316576518775462808760223850635247218938356829627160467757966473046914187182021269346745924074177780034528512268096285908300093879532118985779683484498708000501512963242038316010012400954532154294407365219961525368283000022227643283264122705827045051847222724535779118916414307759096944635991403547280288890863476866715632346397227307210640299539981676619651375767339268744957809492680710593164770656359228219413356052840960140079690470819603345168085071951865168066544082628810259888668046171648559086724772985296316708493218057564476137666205049270728573280759427176210760557423151508279265110546160110689882623025364275718939460550949197461842490364986093974493542813756143476421436678847596651485013341522334255242978018417345118459717888964208157655302085845031619721288739682738528198764566817244498012473843487891089265870737568006780373985159961242028865689843628540836038226883390747092082855711959435051064935691639568587553252188857441719453254419259952170078330114471631387435834951217953237322810105507826673680692620096098441729733861368394393024413832527733058133942245472710170259262097551146324956097800080142762014601567916255389546211721974924603861467249013404572392473927311667590235458357649281070950099491295165973228231964901717854958585425866468921373058849248334248920210308863354480365613311990510826690127663084079246512914678303327680926525988782973328224572925241440053430440237561103191370187840537969557956910934057559491362826126177158740137371402691954994559641039719054763426632528815165028748099263794064576645200759803148276494089787732874758299885850543270081859781196925643200283507615049646382129032981817511441537649670920414144063447250236854256999562652090084873700118548753709754428722679801303220905427232331326765516833944451436553759536909195219292707191387394476862134084424354485238239142321161162087896820137077612109350979628166681935680471446715479998013124488079326783609619836117300778821043458265040710854586794239475453581132758655189738582728696590818424375804870588716524233088078640054348276250942059281327197370874911017550982710422062530719121064550085413733187664511002947504095383039705230762312101859157240164891163659705102972142543031851692602535901667015326495638239179571678632364223588281494939254913409810781369366468474186384666109681853755800940734745198318576833661035522176830483335389398761693021544930054250887117606334722209894824103246890648297865751554191395196756780454664929450996405492331528860341290792770592944724340769461182930951639488240624985865541863029589719141045970914360519123769501873719336057406541500568717896612155100490186565489481045647527781047919845220710106618494561623804597641962897939293059085999342690799506685524885033178910620297965630899954730721117902397996920414357507586851690909705085739306209774118369672974929704512959303270833513090246799791292738689311329973260176181156178025344542264099012670463128606539393538157137239338912120338521609045449008255380147825995081648432067179763384381438673256130812691146323004226732546036472324410664144860851830397675629647482882428835083176428724487886321398093904872341296217397375557705379575760626188741620333940264829650293282013530395620926936797919028497927738309619959518418040187624385780887376892329611632240305853684181984655862051739942574648303783960272866235327045705917915703707508627379954403384741640765882715609736836309637784924118909286707677248153182130636558013303286971434200115002940792632009771619156410755004375489750345851949982149307325221976666695187512535273660486848517881812100895427338582709844951473988212656469396172800936989098238287656820522641758337501573206786936009799390460746495720146343686143294397295926378301332483165456882783869144513021313489818064795724301758453116845720116073669580926551875602651085142973480076735300134738461180482539089237365100013441088443725860458271611341033663741909532647049517378884173876210411769028012284849985394195079373950121393258088790334563716084632577921467690571697644428405142381225943548528732949645502488838335512858820478030253712352057184327468729739257076827101685502451033896233210316121230023150654423607007767662170973188264475691995028177087088930406749050983875129865757376763293849349785114376959501608306544886622937891564711955543860101051119516238719476399620782253838540579298932543432707936666334256929823695779031052952582753694654364133982460164204931487508515794079405189120114225721399935447115357987296768647504594005769438498862825747489724941699824113365914973888303981783409717284687858802382663910788055798225293712639173486282651611496204815247656871449681930254002217265794207248679328315281618626157511618659594223202075450628996483287832947256096997371732018776931789698568885522619568361659938804395244051541692643224477494868731489419986823829663664036691433054723742562554848713925221138391135239887195955264665267550665891362712289108799367257042158441348494335037407442971595949166129400229479806813855452547695350356835070934430865140649514033375501075716710980551240213998692391987428948731663004522137713618031146032342499456576096292522594096452440207848231958338519962236500172142978098255560613098377453215671097419193792489951056273147687029448056504137053805759999436671004200529291478323017447835582345532851573871590023126103090922861739061120067238097691898531710142106534103930200066174273701979463831722175179520139568492796678082071029033587182357810080537046955933737381721473559223919487860552298737535874615672628320513730320018536678474269462830037002675086202203725729372855369374136293650906068648380383695846259659468479646733943092972039109916587636381966452415276776582457392876261010876045834121608236804063299413069325660845185849085524830905421556677438024613943115900911061886010623873081299074799855059505605282621374599520453712181015603763622370328926923557746649804978346568352855700859291130927570678063270036068772764559037013500207604007310504794354030119060050829328351941663538105275906381656011869057627911180616053576773867018144377069677418239532212970072134428904599056926563960671544341586669199172745892127559187520488634866867286068462395322313927303682317244950584365761637129400529206432475415857930309336405793725853594884417571410097640387616214526347696082419447754777167971947455197089365617613047126212664303750219628565034628915189113893976214352525534648003114505757688887759344704641816497272712917439041361557282750417560156801775348787430917177842951625959394241806274802501279024343196854578492378851010982097829051626448060725119665143321132752271974838547711589301617202318537435081405375919624482144705980089852333610292558677867202060756909186976853297013062054693673555405544218259419097831158633863677473530791560193947848704331540653679364771352268382959077594108133950727529319648226891310273885941851324026062180684423300485852218595731596380723373161077915771915282927943047072389956320231897067150180752338795039602773805070835056419261409506270292627032998813985266438002370473830812920629336284172871696086302299654003327929010470279259109712999836185365701058805578359753608223073638173199211904802637266156474888279541915664044102687162840793722458220740754448825060270388275540257560377168217864494793185483927207543174526344527619348855917831356536882353721894740901789813984490940381315957461475740761942234492701524916787393103517964759532052465957560038118360866097036638534460447222418172759465351128572095901556484574129571669137730887000068416714472866931760066629698465263529806905925378193602246310776239529090251812651853543418283184597989719724949537665204495070805501173145272671611265066695670489267321265610954178627924918427305206107078304472813221725681022590257902324551424807539407780966778533289686788393062985640180887111241423594991333254872470783675533900507895390050291350245547070823478011456823328388355087065906784150743308766499151232054354612054920116683060518976377817173965455936663072462664373117548303907012653634665329026248456457015092008759311517520920605332844774562137824487369734266383564760099708718185515023513956689826053066077380667995894575623444032539729250495126809588191306404406581055668141663715353904652849481471043075489353271175191421136210036772749598479624299330565621161798499059700866707889256845866284108069186837176398014786338488865629023370469874461380660042837871990857660833463658276672523745773792600553314013437271957983777458535990802985909697870252874200245866738628800650844005579244224509201018362346592720455423160314836261008137749947488796718348043408065797627842625879390878733672098511522639624556565580322234164533998656237023220254925500117721848657141567829222765639165753045838840389192565334598695274250987264765694685152622058466608587740717888773339231528898519865077015451423590548353087761755014813537440515149966021357444545863498330411327012190737898746266407633891959277375637341955507410847990664857425522313728805425817609556477094838197553723214506764926579360675462110107611237676158026081155411290159116431143107718932305044962548303143265528458303383009810848290731517977908099909856665960876037879331880097951928956018023239003303556778528209025221579864214109827735946849751794762899246636718900667434438392885644062990725280456719530243941544071184090152663825960478828975947582318009760541009467728631722041682268850324211432054470384615264482626367956757936534972148397688186350589541077706451001210417876004094522942539245753653296641364231186347966087207451722334606808130177253906080494802821917167316386790742593470933034652697663419929703315767847697697587966465639748458780726548151997739433289097610427284113089314911787629401056601842230283834683957155045475013777265742862908266551695698509056932232823467795089478408866217139711182738576410463640529289055109670656859187952540397640492830813065521118362833458397233685285312260708468361165261083297494392996608560842599951663803643109006518522507972478221943922201279532368888093252013344365543765799128907082363499436437730098835120702994998676144611195584989456156849993883416954708101155542565492250488602263062440505658898302009848186485748086229500118499884422004799803600386699397544367410397870609610365119997236425816538378734025723002646763107472745527985830289461757823820937637251198126279194858132098942337983223289857823701674642253170356564485916539372517325875211427750071147504481512803739726702330201240684687305445139499227812597394392893881783992734717484517053735331777673313481641960366658982371887170127727323850734224257796634233896542486495558398956304139925984294495182383718405111718621454237585152509086537842724491649396208621352278785742031544841397077447370672988863881532047051092500534688410505656492207269427415167994188866350587124857318954995224187112910710606392463071249854642825380416337455259871121639188588066074153284589505767528463079158506625015998023114275941810305580050988226255577241225601791145134372019427793837381371897562852994580159476702591987098308555841068192305282801486605732933450333677076855858480930174062354404943863333549778255387373834668299728030545985192592680263004178336862659371945071268251182103725313835528070171510163437679691786404329240706770132539910300043887814304162621750479511561208815671453899255851022238959975614309072514401904194728449720548202360347956291412574020968923061926293684840804889849926744101790187451419398999234221655747515715723190083211659610386680856171844169063262667767127685999229677266312694998483943275896001581143642978200588388333477827013906281144594566408578901581510146977491245053372216032668035081699541024844343123652636244029702187001231322235300917350227614161386272875765466468029802267624526317173280495537758260744310415765210811839943788026810588345562119254607786922976278490386939873156371804257869419955562038593128622079819577696118653744024739406735388641969810754113145102369977659017515741958697537046031949286630293914131091192676347613425730956534348451905984754046428303674435213903167586396138632325475434421126069996555046140539816031235111998801070945945251587607791447916519507203831212919834706911972680667596975600560620507668724456097296699905903900183375347931344980459950455133141294127745252596954739981497453919097434303173982445798401164069224824786437330548748144686181674893474708103334512936665629801763745994855151030829547143527648673852995913224107422575459342317457115240581594831577774628385647609519411707028563112539864746894311189449148710003650672966345667177338824188834450448055619118826205175388390643017258943281409218320823492000173494474099944510548169005653709881967891068557825580692807359094656997173972185237284610847117987419927090021988172446951194503279509349515786925293736661909640137790527749250126060726275838202162225629309387930607433154098122106725607450133502794098841347992545754260259628988366358943786994168622553571062780104289255156241248750974656662046176941310291930363272184055680948226123886198930480235184526828157493777278696238227880095414421424648068423866976014483041599962545560749336863940496105744168434532736657807858162651776575674161313433809429993868896742596494426340807917087610098276570608690504957758565427556021806981017251718111334743718583198495467859047105648576401916577603504127684471353610037419942620589869123680544600348253468410017986075809113929090327560763954568423546353312251574972859751135386813196158337991200965399362151464122024170366056845475056998749444813832300042628282986944714995430238756442553751666849900000519452560872963687601354998631873554030640831782498002436720893425070408199391335370118915331658122032218422697038768065009283104788200099285682187859913613516204915581090688379060464410620743246966607101357538461431126876478067067728757018490281997066262597415236907097875352230494920016590603337348745619439491520009632502095680542452768499661305276087696531190040091178691634436458451602377013789015127388208411527271822640267489892970055992819655729945040227232073192515231053047779996410549225786181329149043082895506871979379491425363387295559239113951983792438697698934262994456736910945350706571937834345624321864144181004968314561317186943366512302327530615293164321673656056029883675869823335976344545211889347482243172502414908886726360014312627223556972441047041730097684056723839869955476248734505969581530991238076912183107006429876709651777524290188207645889963448155841434484290548849587878807213495592313680766656825986067657567164234809669810548111423550404117524704560905349052403022778805800577503435746742815249344207595558111208856134016668251634523692930254260991660653816768539492120598082909841248948479531977374575079373356783029350688106305126933470956592170453179445264998865061766461176345125862203910413597753128626612399590622626310736736453857561367676358614690777613060582945262856866813801929380049463292908939309174485619240753561763439337446574972559269126475148141641637528031539384846024037560040884853489973358291074557425469264542619140917992233202843112895545028579577432149915442410968646425246077253276556628336194212553839784247369981991900256607854413581870021371457733708184519229835121372653489685801393226432713516230043658487397673904871001622951023529088685115892393305954169883266969673434951551542285823843566803485592484198936337087101215917121395519252580671570596881876295444959758070703414814835562676733953108559152036015550279825254988699432672276476525225536315852523880022753708821084604951660734565719353874724157948107273135630369563654473027708050846370510026496404837857375129725027021925166043315633641952940584627383337135939196982922203997074760247008819316507512061713864133098813223622961320485740583509097763929870433707870087769679442231269880004498998144204304120331163414270735466339310382571484757869699454365852150110539607296952380038737450019070745009440234289926569963151652721724747601113898366913859902928549331252456543466797855465564195087677418589866585214969344927111071441231681440102693145391691751898941497063601111528083002634533780435238856408507038852844017222085662031266433168419450328434232634782700181297521269673262113211117472650370426632801314864040946212778921405159451218919651031295992230508569368249080154957467582926178163998364657558149149344882025273802214225733510045369092640697607179229046470807397164855454178702387388848189049346531841239632793854050869757397124986882688566148288051130695991005350215469196198354269454886198761878176341637533158426306748909137907407215210565667375086248814170304942654186248915374022307241085564222931857207018861573250277075782449818939017189242283737544911673275102088869020692990599713394859676543046880640338940286570966729199984749798286833538611104489419896760540635312413489531613929332600288542226790899392036681783105564807276384210096136364800504256602936979994717759188052426321235503731269491587554131572512352088600242425765302888135820547743233046227041256239933439111413813695743811696699248968914245370941618353612793590509614416344025137172028433234049974726545800902394749004910403265094583553860976217838810906933682428162075769508053628309593684755822704077503459241152272525134635094033606453867736614627837779478148377304823831428563181355702212560834289184250461190366394151674810080267175228918060884554695686298577534205633675161984640438116590541684672414208065210190394799972538958506475808389707295458922969825217693472613273332422481289140451500729652727017611929250893122925165391651161740661363930358379878220417955132868026621578668708290236331002291936522835108013452724352628368433213172540883709519728427066822385416874732306030993551910221990324179618117567002347119924492548134757979276169942001248387385491254037933852468293307297732103613785985878615302521774812293144834920013523638081667370617533012707322774671678732129021054380499816869483520150662912590233732754666911311338159350989041367586242348813849430792117471774772978817441836534582112816123616843362177948260054520615341947685024943569255849376541031596708994873626284866068673106724697474520844852368569748684509713175555911793645360326956363055885079167895028823206317832520909959163377674616271200732441379899712010643630202950390506465892882824636076524149366601121608881203758804030049689682544173948707011286849165741485321101324556470148480069574946891815821264063687749183295340397746101454270387237904259293895926703984798863939302708597899773602520495073018763467967088253938233687942720719463039333747308141667472313166632820700193051119899201135247705184462929179768354475293166368996364612485206306726642827463478485177220702952182554177964721669947562073887528282613795548238225204981967138147630617248713323431976499824575792187122016076634677871806019756494543045797271145373590972419197497064261726415561022528224795861490905787215770135130622004278060505156970687168278398521012551380329437157491620187372509197179017481027061948274831890719692137628792529797174377251555369834278850430952176886806569393524613074089613030437524598934382727698454667601665005222967277506085451679958428128835651618396542271025743138704265699053612083960735334139533833166134781049665750396049342396427745197114959835040302446411494466937638465698786218926206186340311208488455063516275029133432176195587345394656592427227212109254411138870734649425411453460705800074658166095767787662444031612000936870383626279269885417155597606688478459601432656596577269835327751323847367309650407434047727496922614233117185045569899946782492762369388740730719784516253001356843537236454721827657387649239117038120209051065882885572818510581345868519666985755623635312189874069048430007089565949710896035167540673095683657473016768266535129690823184906768823668873291639076383114422014267100300745561193808661921965780031746149748559694591180579721682996061846007675906194572265934063884488540564700425028662202212669511332145132273947432691614389764595224238052480400431667679134670455804533330079351703757316978979957236450460359717091126574846227800108150410749756238893188202047407975314096542908514007877741312691661747267226057059803691853787403952674576984370417467432001098079155057765574585823047932199994244878543993347144376624644784278635301245114627232432404321554780668306900503486098479928847901949385986118628313253425560125607220865646129423496724332835167859233501525547882149638916181751352005252951684345607523229301650777124929626938309781429404716369559912948157947169630542539086148267618107055184954074706492974938727283189632299697234900410644950677105976924056594500037507389395356666281986437740862867699247263456429637740021153190468735413985983240107736784745570066974498326862537991765458986776794578892051467886318219997608851776905308955034691929846341850294990867230371540481760362500477337166640044736798953039214881691520398651356409465003108026223510846897187987617386691449340469359610344734608490957598074609571770983969759934718480683288325305161792618374081725894524445010484415499852503248287291648957674581013191326198225609960171657979403361267469931268983173979823926016033418057029419449786813786176632073467972330767115182945843673790427293667456742529196886259243079109589523923975204213840944640152040670135258581159582413224035149925969331538504715152531942319116558797105725071608025294508211601426974526725730721712822947706465168869438900965405289821217411895278715804671260355385746696890558113793340222105039795512913632788380203950385299647676491468692662074930102561586482644114871787118504636353571465834991599962515060430441850604286398623176259103140972232366730033702721267606719040919617265104009685617070956964001306853755700335954506330239734634661535958377414223880478592840668316906476088191787362997332429002585247096858902547637749392907060809536343739115889935956839780402978296355090828900598482645963988813031658920796314326540288247596616508981760141728680797464835386898858335960850617283919240948009651310022988104716519424486033563517230462218131843884564799033966380787953250795154640714307005564067761403214659353626885928176263122948103955839229994930051977958824629759780221485037658807234881611921656927441001477198241254679118340220488559683961566565929064007196631910485951919610566800437013668436828159941493044858629433049918492143047994469836253260524480552355761111375574523232255105541036617957709034055306406056813224482767542054467732444035224005180852657758668256533888807381254303716514914398310223733775410037471648817584035464307555523883513085531563459538904690353256105053310306091423526121017516864339061302104640392383222905306692669525437293816772061127861868232713023293850659657709403730224120018858027479023703445621546484271399074743471115840751767462793268579457892459765234722737364168566108226152699802083843922130907758438651253539440522101858845119239996572596806460995458936963446582259093860403608301203536765581273229445729640787714259467063417620002398080569097793134659492733089608109906399858921740352747963076702742733983542545742075063061914189601640751326398727362113642344612730428916584817207098924595685783941343308176957333976383260613508512067221778248441059324383703765751551292095375320664893092521699031333747125631343953628572917748581157024684269485785205785252977691902909423114365406948451317794919336556189816445429223329490782611610524754610663633970270771656709889331317364706323983786909090299612360985769224455275088976073619908884942622690410546381772834261009673622824343178861486725762539577434770388721587610001356520538155398236096274722043925287561052861107926436502085421479257394010868511728826862636915642838582561180868674660702533582088151808923018123719022463640284529168210116207339758582260401394894339819240137443441285098714584817550284490195475851179335062264395702245642702956872331011045193300715821475161038966081586442910094066321253086365164691709046850251205708611093064773896431269970605321806361477713773092321587953312855282940054005830037431148472300122366927441184109537759755520738313565483313400822150295965581664759753996654719872422610192343176564780726147018394858824943923326387707182209717694836181827216749949000055803821325894803039060775999850770707781501306093229764499647898637836027493429236989045382268335098198014781367861356341845674966922531724985742175226495131026759714724276036609724371802428243420038611208304310455514337812067942858090276432013900915664210445259554520740764417283149122253650780227622410154176522116469743270124060973240879627629745073186910529812628868852295852237369696158485416644276710298894593862769917375605534088422236722961268566559746610306834371815899479196738757802933404163414221197907677958033895808339062388576905962687872350512077774639132297941870194232159531764604877627412798116218656842994434274952288428549063002464360625858099002233346756685347440236584765028105097631919769939300720718621990051150465584731268758169129691620119216255817617788823150702349163240562098246156865455275345234132880638401480886544123608711414206322325247271966516339309516825829546779047583305302544435536871489034056790538312113858533366673400569318257825430262680887517244661243011281705445770377192863530355819886588061081171892780698401574972334974899183632176283449638336569933774104342540952285835595150520999898401115929977892289283135718711410781920206507403294109987992518027899268056015349499015205956273178019234689792206075383375304250963247625533429152185792580743671351870222054015749089872368071812067270433500523010876873670866875041833781954752859839833903638994243390029300857630973908578623354155660429721268600927608230061497829353220327825063490936197166232239362972442912742037646210750309194937234952887585291300849443507623933859224001076941983571612761578660106255028478107810918856891334180318600317404146473118135746445954901159649739057720911061419857117309408278155060242338849020721644309764503246115312106553241968880483504933007583893520322484806477120857484865498359488403243247711664268879606067539980475971000658770626986090937704262625118086503183888100505450097977365919588680137003358639305604143058728093063595049363442972693511765750756101399786514896141230998469295661007315896015002216165965221816189318103515723658719993744225064964602678683797522835572142973458759780777924898843687225734352722888271276422279620944194263703703131647865117310141615505887251268789237249776204201421475413386417186024808287096690358241565358167682359378689638171711233332148499856697981636673343118770304224604460169684834188007971970370362578551648676571101059552321361601580665833983217770047791424594556211926664222286266775185451440550773025785337488357135769676820386922267400922352861900877870151883244517873712454320990782384747964019678446817049150307699495870083176443824562185672963789158854814509348862564833305346664792782783424003754510365285299078402348994909146159478172892244029787346802819847124297892339125153922646302889543285669178936113573382007876221237595168310876593518198280268804451658383636704173423153193866756115394099883786660735082929036518927382032894886368303762515149274029765380983093156692980721015277478235763597039850404209464193519585298469796215437536264598633889245073214326507807101509596226835987848710862063091171076503911394554607811172745083490007145771118621370240761411701577362278649325444055406921228385429663134133324335530633288144888487309680277755182391076627223026761384962591884390614759401504789761582417866820363971967309140949720708770999234238788581351107435951581710904427753153612969354660571159483121162752795139337697588063255461293805807865255807808875838566519361771353052645239002288288033105087828571692183612835197696705548105370195089958460078544543507355421582575470822272704288513186366637779847363347182196209474304203875222654779169330913877264565658811597401590179612392245570385987653258535944376684852083337082086669503965735883324271499299192333594970288085292898600238464921792935649809818487852443722430098995153057970075307590011101739413292558795238428471531753412673304502501902829864733631405046537266618043908334803230649444982221310611979325950826692550794272256902475152914522034069683436622597119477453532791517654293295746917967538950434444385708466654391424541921758266252132080342980582451604073456610199202115555517197448844515123678406375605664924929852970636715526434982856894958424132005596541689990074191990745496495007893228006693985276009561086498678281267621939145259713037713967674718549245972959891044401118663557096464009598057882788620130600119496516043514939629058994842915052038219193934901928554012110707620486034264159681901345783466953783529843852842555238469801780178254939430052923901034161425113362673065096899555954601850456366596028509323302154735267935767428668408683752348268482940162686018889929636964069570097089155887768861742261993891213471013652325479262105658461681458554473726397201370074935969289319753015299927938168673108499282882605464100735101903877729748374130237255266212574202599478228745905469383563641482896753737802098190361402734157983095089290899129252992752522638270987006687451638512818398393267430217203291958741509345381400264928792835037120448314308245112141218454616002650989149700310509060148702198402075727575978910409612531453599105010592001011279160312862415265914813003844383063437755839377084042984684759697168733143354999311482586328014283983415785569122570326742974420070533437797186368544964364124587993979595712960995519260827140781847758300450057848472935995459963109253669369967654985726302430820018699548887876624574278731577430391720293675379774465570402824632133565103755413324845241201983779722535766431204346235291167643502390953458630009011878852117009780169643428241386427415483236300474711452764150720515794585048195402430393941610414004876337470767822667344256159446817120535047838142377462508369048429475010207080245666100947558291100249580477355398922107759143746561677638019054358750797062154569015669080006628974075629225648640248616013666404131878728240353813730231217757939015548091412701453994196223286291985223743704406762503035033286877909769349410696125380393172197278836386511149053202477460899479255050664840703553306068481142616032308080306246632527130505347106459368508225707958627379454307429343665514079603392084399761539226594848194429805087148485784417324473876956263537685199328382305531621329005143255045034368138227266772275444517403415514784022480483535114861853824199580564861716277071106077397954708896084089328067933825967145869942941799625560012883141268253792088208205373914958489882705493722459381816666139389229041052453874593542386615387461248500651418391403924072448095291409263359082553572856667391071903987724544119375549773794806156243760360880662291129864123755078625491830590169467945551927060412882415492081914667472770410897388258754958728589169653128680721476948603145800551922830652666375433115744310868798248635577257550681566680879861468372645736781021181749996880585014896228744870123205510435437534951591393408255524517234317663502509716310317228912254583722440494280840869099050073431444808655432811874130259530207910516383026918795711476495744545286051328685972055591492827636767855909792080783363567664379786068100625751390825312175726741045877606657001941589675606301065768298729492694389365642233143287553753426946540094255389188784734435388587397728522942232663041210095023753523718716535733356219536686441607002797572950158810596579155005629727637972681119674186255837605569503685976493453609808227271254959050908423327310179470627608706962543248373211324102015745447461074350306402766926587444536310031115791149558029090402278809995640528398184831986172384612595428442966614160488386455638832351318698766169325225579562784721891936689706647256012451779786388038293349455607030394556190747721117077442329467130212777682251960218830081762098617378858247034930282286942033022440916809198081896268932156076874044727390489228487541457421542346037721110071979480017538880566450961454121272919854504574954538708131759538862082488805997183507038556790966437776299646678268976700414206948189123515475834022520562694322705193493033278072751866015317236492958597243447021622400122233825658753538298271076704086795105449335978050340433742636633475838282933929830957839485324030123219826181096073380399684626975071657666898129607931718239276800405183218900573444804807147588233298651155080922548435252414459755045734290969045401422925664821212167782638010757399241021752201582440559109284602522359039251331952356734804052570694635569380744048835366606753540375200860157362476162502803561349230722478275514777016846082736995782588165641741435528547279741096727756948477898772584492329721218915374355360399663766780676526354201689142994277908850720035705216419959734584206139196567848524067223984101174373118119549441254682478745945110248310987512572179532753548894242479216873856823835575410000342276866040226391500120598292868474278320033813049116191468304179850307432304361006623773328038161827942213565846911820111202653612103632665616318334318262109299376735772278360413048035443744023314513792342217721935534944485790853009575362895888821124057161335661609917977534532557124058064127736563206566085098681118641032452665165614266513643198995120720821342488437894800220234914634014928740841030608951772185827862464610724088916967999159853754130695976795536729602691064844403110777528550604846679975919318900313025718654450912457819281723685909977272820976832858282728459043758875471635448675136395717532417994376323237000765678074022408308854709824170437117628274284668941580805646683253508497857023890654314165501673318303658028872165722303598790761159121015503637198398073865223174363551036843478208191180468955335187868746146651670893529560124110123146522149092834093954089730640791456839516087564930226387365937531114440624524128448249209343563151787860484687827199326242039008423010685055839998510764518864236976059115434848753199467587930142946402187460481385965122765402521708182779319418570558977452509911950975666618214314822199784214159912363383293773292458741228141300122115603908684483243635498531086296357601444437079849165817156108937291913772483789555578916956300988044020058894521600409623425235391565832757687222783371986551245344166339774231462640375728721757024712825222338484879243120719461347449957677349726014675115756586451576656715905155900510721717063017885941415375739520603137305509114459305817800425477679331966679068198887539945548623247327253484297823486115852175995636493748804861254446728031841687953122968301401972812108650588696085189286475680152872321482489666497229094501901661078904877203105682720347915203328542879889801136064568934046287124217500262473334176913701767602904134772139131962527303968020343019478178885169857709334199754824321977375227041350462927618848233943737276328095488544681601592320924175294515976869753257991981771135908318230294243864383802792512280513762549879951450012302576183897351403370138594006766660947020361014210605257931644524541606138926590560478826995510882444725827916896857110568089357241013746274857184272418489246648200028391169553132476124705540152801471493129322959362248203902011199944654251598367715963341356761683715328667990918697339019900419026383426290059181574978630240919490155862668381174563693903504564414904622376198435250921831385973329997569332986629597026271692002594417257633416687653850638362382824240320061285260212394284262826460644027515137445340109591662449132052231386938854470254781385015766564221751704437901062553286651367212029724991477902468863642719100762998656628951683149014264225298041900844774982835094658774031021577023454436300210873861854772748203807642439557225647538702944970185105128816509973197661068802002725254087588864331887591473462960358140563116166558030275861425502856504804375642399604482889461118521213708877495928451518862475481061243201337469835522577301956137242678910358218195587584476234328010479592185305400130672663228148594022916028062486957784512935013744849617214153348780931986462451901151598334470719117962555886663925865155969409469465388982737506177951378493980537014794717055723086658154496917782224330379414473572054213440011758648639120561932518398924144723000007988317180881009160670166867329794988723772221723546242742340553213042071203453737614180291956306360395232156231275704650276979191469265003875448211202260284532494539918617859893300590330268171573877900889362049519024930049030989632373016509093833676176365970864163379302939552615180568399505397513702272080373264894183739930273073808221397876638689418161688246275808369856958167784223191048902267873651454173339792160493431892403903153485170052658388216716692783877421440254467046774195459649542081065475492636305973091779898329276310027448026041550791997452943537573469692382936526457033070444496399380774082304701845995249853507096728071527186921166957586630710933180299261139877244313208089614776839657649990930052697421454508447411805992797895794146376814885996748887036941828263721459724101493097973354760660974316671088856712220765677889492537733964131079756521414204011876995761625415378452499214805571103078674482187217588717695177479559558298878992194247340903772771035021464696050003246292704470710784359893993576507323242808484231351163560506385135072953098914434279097285914094999091240596205574295727302850119204769862538227194175140835173560844221573769408746595153543672162091343042685560117693220526590835440061822802009382179824958022046758748253422134194569358840161559379504900128731276562014862304384963317403750579716570902693185036870416716715726957994091532350757473880820374560750691979275388988866210706565362583322796354438602333253969344532753450202749705833561859872443741053428226727636193724786951481126361529178117047448245967703007962502604331253912325901443513710992824675124660764374102373817354469500172084495890821384602184541714736758449956566521878261294924249890415967372492583458888820634376395470499874360056882093672067679503963884306703950567047950599204453883172838226121705690271510444346269576101204567391061825908526229081433049141190146628482394182757458840186051166707267300815552160909478877578570074550527880789028765254570856132767635247805826038605951603480407054726151864103776561406168332839345664322993058248371883992636914740300057557441762995004122720584744761350492272469873749195115815780087460912470976077348151269043999259984438721018310814021177190387445000862812890660450406235910926061215074246363399885798243876209946019219683171222401152444758093807007840174348337984173746232848019880624166732816495774186887569011314133511767232040123664795245377698535082815920574069142690713211203099588780929489394823398869989780126660333779910970864907199849886346434578628809883842194927629549042424300863070905794927293821073707073375309123140220284038924633957587089154089706406023438657126357457625394304816295317597334869288235269910556687033479947906091668014449950489124110339798215400469440508366990703821964630617494238210535190726409609081868358379117160320368681426548207135060109129374592118797192349083698875362249204339027676118397319770482760043719583314414037894948370246380198241849708451161415800745200919038887098406506360244019074292421720680805511348511890579713894160333154144059685956006395569248668139818016179051240977652601828458755133664350256189448514836268712483164950170993727850858863745780214241632657345676673829453066567219570311153032588597782269567951542352517003581480546608855487694290959389490067922161327299273654609777215285279561812792964101925635699788617410318304140138421421777028995947987928379542973195392471224091406932088417899906975558771328091770332483385261939134399728609324756965113348082625303461421166071129598598760889827266639370316531313888034740097465978807864292449309373707071680605470193177316572374428930813187567691790240860848568422381721790882973893375499845085616845022251151110494077386686050147548805950020421238962970972329980083904510058507566989323162182262624221255098551106644700421154390369570154799085489351980280007430837104862671769061764562194367172358219871702926213087574638928592656237029971636378103612688930258694823249480141937414731120810591222968841413898112895291333972051963947885003776213649854461766893817064531897451336446902383667829510455656301990865616103984648203186094106122927402357439750583109618851450256206643711214387897671664534270532994677391245609033064028021221502032541994818493330398648691511047125670871619055779430287294364702075891346553680919442975257088389214308921719084525498115369719461966162728357424784444776980775585518545815760397599858148037850046044048066309890014828724198674299180386299638314593232443812213456547269088522727922168571794057426504021965805751628989583666479778638379508613337803266640420901145938896020558009604953932802368829514678884864076959347455131756501931553188135159766704282280119087992907719692533390473506304123742928428493090288031904099820367559691279727301085558486392657772090642438623881574171787141413444251606331243714032489356940578878332453633641494854842212786263084805983681925833150314644611391847957540511844703284341323976156855661004383280004566065998987461345448740794332056211216040215916234510860571821374268948098848129816539802161748314442462607182531331253414233822064449288674683896977113179278625588430377217612366441410509487243850787004415171690845916063389617491186147965756895563911235753694114616026746069119307786845444371901553591930039415406251878524612060134008299807642581854376438787886126119587839696839077223381788100499433192099038468115746693878430050538083813250644197983868710955892630521975344795334094435017524484527099875247114138342595707009321588191816998900108362241166901650474118184180818344823443001163869771238310371154053522287593013513791025565213239162706820856305296982480322856176222770049347667460775862783757277268452135511306730160366883325316798793045729576847401511143558788692947056087107862463457565716630599210963059539110117531562293381976494293497228933168330050938067606672246881682670907801152057611230089279938749022478971431680083916217232340870757898530929664131051862043717580623646607420701702988525522425369699574124400542490438644956482509618774709677892038595077365498262016805040870399666419736582881717433157799602242630032084883081547279084552366154274520531847941647809585733884875646698744663671977759637663339983452602182810613761865185481103756375634700521172878166891570698352527021629522926795206816616081201266162611310251790319035590054312126480145509995607210660388974465584185754771242147331335915685239791818152669586048267460056779637117837518014065736338966366666079499264939287111110481904203607129256449297302398415084845225535563810422722752583086342979390931632972112226341535824191271196014963328718471924808171267769953561008490828350354100330816436567790109650638957156467456596785881521251143597811869341493954508238795612884691692755246947801044160261039075040302732689760666350422369474302691289718253599234726934421603029016663814078162143777720642485780914411915023695860768424868366940779982567333717604559716214902745319364464487177795777790589589092373228110852558539362743910038214808675934387061044391021179006694496581605693562476178924135638645074568616848064388721466801122369137846999248766642214339295162858985244336397266916514009149828966429523758844894762087344177493776354014361900135774228272059403076919808883111330258863208793760104721474149555485247894085672682444473674970266633458747798230889273664035269683827427731529066669484134355519879477381852628675630327227499055952447692213114882587379494214201844027747611582141783034006773643808849544743660770430541692275035261061415982154662966877454664761986100954464283707151853542047531342032844835488191993174340249852794611478870315094283348277095723672566513910061586529992686438928618283047289430218393696619192531841047621113297516496510564893811127757955308561385719393276747968380901632452910070078401641150494699903696167500501859771925794661318761072126747718493368900957202046706391031139175794674794236374992163217745696752011241317483086244258445747295479921529232267310305939400229272881651881496376678025922561269591519274421326148251052887494557282876743283397345864260733136175989518958812127478932273326664439364737117808019149470025856137627950306759027553913230232315244866164030234598945179032786523031464293140237543331683357761390830919276574904568709783365919323213573865988692946785886642937017526903951395239692785752926556897796302713101428462420204637052754902126371724697552746183408877727644790065348748448756747826590499055864547306095470086597872429393027751682383833571874395485267507560578346982424024495216039244345708297154562573852206394049459872289044852072481205782318549035901732287597194087274485667269974925768781867009564133669965271170173663585095591761248032811034246369201548383994612871952787009832157972746594912809440017782599649603477492023293765013593139115403306503382329763027561712085323223194554081693188882155450485160920615003974892424543909200932681210360077957455618387152840991651454465490997526431696209340751973528190083817451463928675875597544224804150544843382445919881306952999247019744094061334519860392400067104394970152598159257907878324742332131113434368950960580853550631791797075341445360572797113849236336263432971708437366480470116473512131830210883672782984614575447990259850543378999553260820419871848010590783115563766709577155280035421401152526633786479300077633102824559011398298512865933034044255023148313694498960117730635228390848694116636369136177090288154472281716564112818213582811430268312501845197157297693973987781342820064742141421264940809244230541342089376322139452406322389365291762985337313922146840585938546226396487563979097663757562965508437996881829857633884433489903699547819356665960768582860046569372315308498959326709703302092901836459952557785185670175754295104587546862350168412953596905593481960748387789156573726270306738222324401237365945706122378714111936997008717507029139740277397820430810305459655986141990022383840255267346301292570939701651192348752303510194810167906489154504293227582928960250429091863164907820299220201261500961477363068955899094313582561770107907452644970640144131426405716525450603488732968578287006243968911142349223076729183353835275930395749627776046606153651904827206411088035791089740432718854714378639595390082097164223084972875148778097708828258204566912523892991545341852275397051401442316431718228424461049403075798730681339597268956699359452846930396561546235578024672191409633963969610774490585938379485464211682096480871266804202815088354207878075621619071491221633364789492384086127141800522576826353524799869448498267230172698817287321904947763520358986776155929149008296152070771425710200628514573465333033953384174093628751404759322635311591781560824667951464756218477648975151926393269808276466128146446553202317648743204079065772245240822350161498383612905834163219876274372374545264827240916633136341567244708448023499977113412104219637112848339173756584943603581262984549239071507800352156162034233700091620127118991192795480473412072961594115090967405584084247994056072552211501135246688310076044928542037280934993622788313483392086160946818015005746611383028779272414877325060487323154954814447343809938157338514289923793577667854588817911394084174185477258929261238258498042305116670816639027676880419952137543901789306896595036870962667448913091497199381471118730272725960496854614699663267555466062943506271844334642260286620054857756839661476477743078296819645972527089239358196184222688977619225470257523513318763308659437114384650327570760022650115377445401688950059953791281162003357290537670010795163893541262072833615598789258344334670101096809161740475104472482832316358523177531288507749796470955056022277506947312255629046389316488107703609582960858093996207285564765416601298023174900372342605398384000545241642527304054358300406747227729905986184690747805137439442884535826350198255153232422048441197888257019917091980684811875600619637952360286746435605053027765195813139552507268517945155384706315804343687489934778054765587200874992104464337409398883523475797125485962910835195815572777965381280233940974997120018632368537659399017434001737624441186850381795863734459154682094743975183027263204510255791177459500157282419379723833343034999246209081489705351293518211833959009672678242207293523554612807521929907465156681018466191926637725999217255454390257284215333675543341409013536279520718934297773429591077163027117682402868861091008088428673817307871772974210466757181393769502704094049959079685265091424739300531114265712807466479630084038745162967967206863613936655579220497739242188916018692257090155249075778858193244061757293189615389779893281590560012626485388752041322587078820654435658161015720526602612451940035079291825052161828543862645942670900611218463348763204898178170138190293614787356281139839068502622141988804048032118329510890770955922893616691080173220958539869484306234327841560844143672718701600906877165095559976034814934412654250427935016593571692323603783215026850216823560811980391582640083744964802045396685907567615467529059179323678379509347175476755609119186269842705162667778180054816318287179948379466033964559096339765845937581118819903434066649865090720441287689319347875298732145357588537849981346032507493867162787940785240601120032175412702556923148069668273952781705109013834678410121856415930157306253609339811657207594577012238270802411190205652673617123297361336021788332588731983562097073359491256980420263108278535676203011252149725500067603579222400049979950953532926793411563355820181653556962442984093678679312774500259564457746141326240489825634956516110667996469562178033246797793520250456067441420932757382060196954036713436074638063110619773868263799262414735675153016635521651746563668900404165978685688652714653570566304925683508983395797803578035846933104776085004582689091286884327663556038042934543638387777378939730992203356989023316616973506998624540796387933680643114624050068375224698731873394112823480656643666660671908050915821139058778106143199681144530034855162398936711628341709436766005311176630410532534512835747257270922240517638514119137142928864409454284093370453781547986010918841330603797646808592201702941051484335918188026250701195052639831525687936496042266311113996230410500826695651544279725013557107098862047653529632413954236710841985371361825745276952489087912368908050715417935377354640612325444843936530106517048263740073035545348344762426887887341103523087894748584614483483341011768554069494860282746152476513168531721069041338600737637834096236622725755730819029731796835220603958547973987917939053074479433170643381214814637790481518172640787386135942981274444816774830542149162474182654764507339207963314717836814114969774255541016234219182833650991361958357936355055157383516666238521921413472587380549699355991855093785877801897870229734928630356016152852998062556690399627761913457712340853403626234511750293980301935659694692315153311068111870030431850716069558044533910561423206724630386752006709340239318178897350156259576508877072737302631795358363634956003521657218363453543956502128225608641000349798972367166318604525414714030693327815557289437657325439952694014824918696854535230056013276580156486086455444049485035318959122518604605974361363898053045427355626262764514377620296691922445712117640589626421416714211099168920213915211056974620372840022931101608620760357848402899025350403458538361612501255725838400787021864236989447373786794240710034209039915657989958953814487864238337240660265640749027885146397505990381502793960643366831435026354990759372903969963611697908874620778435157910173321584877033136333389643990527595770337597859050133325913786571532426319550291593676127449780116564198352111622858512308884949193357664986900887958013767578729774503184962877717458464783446814832345466412899264516454782811437955247074212896787878144999767273287071152067121445240011190362078416248417087878129921213700712111838670399636617911018363886832504523156931686569561968143615454479456411058446304536954795046206092741463207108154103766992476372106606877361357360204188668085533081802116634643846077107229551385140488961524351734246966927279410148298371515672851728104621038209177836837999693278473158820635856605110454724290169916842765028288130491365627861956836349905584314781906061810365380450107145630926002657061234248468963480407034294589809209511622258542977574863968176472160324939675675640722893525229063430702567979622650180031002863389944644832398752789055431839069741271442346101223380890723967674073255720980509317525514968424909463123634930170611871785521542543375392477795880305912098591088372721734136446050477570372454293209775998923523194943498324958117432558888987724994440941865946953612502349668663536014314361314637486797683395909229709791899816586514642789353661208386750950537529251497688537315062466485826260240186678362982105978635287050920111304563651321923181659424412129314369544098076283871121306157427491039263606375470944098166173168832738291598573261534952349892320593551790296069796563324139692247445708934677643479371977527588450481696462902948767837316827312684243569896355548648854218315008881484006846676922467616408617830231704863010070920842111268077249975305152646435146891965823012076781625068789652814072387517776762371175044930970751285944374121157824578014628631015491587765826769471129020166436737490987314580036073022571629768296899677621952847108036107504407589286579813306469789769342170195139537373558025048021858936542307687417443100365890590811764648384972654100130384668165403561505760350377279128824904327670775639471868942042266089316419195512324888544939919734111109391728857952415085764796230401550837050858739517412174139837192072891183292754121795906404487869253200917503754589907130176356589404972478242746727254106155391288557677289601989690078517728429038218020378852893690958410299849491306127826373734261361198898049154679692828301524104758156955950405395184388307923509807444725140312249155441245795250020329382168549077824846283793405718350653612119631443691629744546720419496172387344467857068122816718916244077720880062446405443808373955889907211455697265049354680863508892138765251639224916127288404002052228314379268424932683851084755580784008710825176752751883605199420044544574380527311765025315248278481306533267197985900068990696516433754871600346809282862915888114835069296337067916123076241017175997275796464340211473226167462649004804280800121138374239812818556990176727718161989456296314545538182104353455699433346685186635808203105675592112894207195379320566391815912272830635560646091826529656625515368531639633817669234291837398736173801074107967311702894504401893080622604346151642688394311722330087990706923024968455029160010137283662652128215001895956140995908322216536620566020354042302963495317257636968786457122547057977450582421533451437844451448443887598780548066918816393509260865350307643557255418716921647837630954180217839505974869889549076581605099613014165684543190935528996715943564897221715350401352865551635767808043245421216593424392167079496028468738119160927901335696802013140237918506018754282472088276822104556030595285987069397844956667959189391971413221957761285085090528008910372575490448649638938714252130090208641406118023106876172595726664942736010503663366683615709214405496621908511307295744109106455902821975451205821375417888853802928201633494300792919513392182426354416684078245317144521148558149112432048742207634705386418655697161464959827312491170432568897890991526453206980776031224677895263217705923499626263145343324227355133266226034079850338000386871406881887962600507545306568720541457100946929109593633213162662943579768547806502707517641113326107447408540356803854536849881619005300659059181120330282777076564090832084756434298483783306863873384336992926911033557337633331832474347458218489092411246708197783287364747974018587669113383607368599751763167845479117266206510298090911199914707551995543201188937122775190867215104382910759217054349827890741988986691193051175367019193136900692103823647276974591186886575154445572661732330278682722222016427966022076813226464449315016126193458652193293167591329901607034267643241433936701199549728991458832088444292174151309783334110047521612130263275121188688734433703054411634885119568206047259641880370099644427378666390660709947533955008253010237464713460538985398020500628863431359260665086783618078332994760910733107201289563207879766758556637300237434429608946763565705856610689421000352116920271086030012678359590417269669716459758774870645951921833158818662047069178612681049468088501918758840678419037239306144278847444621018271038654387536098100230008251536503198327522527584921604693679819304218684803157871082969293155287930130293326112385987002105114596091399830383787127256945202162289385824949150189761055003301634683868809599820642288534054254712511349644550382734794509717277141053197846443892865068881471050748394413624320433154011940012146323208398163191497872310015194538274149213495990112682518671980552202867665933467717872740612132421859267542005242317233654113267490000711505475848799244771140420361125271604784787597912092696914232009179770530819188525218572627221015260765400289231139925940591456037487554327781490198217580394282423528957233658001980547903649255704116124927604127709571683772053133289168158621027466918893426406325231171588200193847097754145209999031079355263423701508265440603479576984504940434921386937689197742351167938413437412605697293855900809931238264070195604915645303238021471429999275019819292973765853219110651864100117879918585943984356963973731186887878364366331794130017086976266404741360100903126175368827490111140378371203850455011285221088764818375127691049041860199015804545887876571505538391133939890395631421569657601309078329823486572158116602331696848772116993066382251396217907743253820164326576865390618285887030342217031244430029527642568391291386953430360844342524064174057183826459024407581905311906137606490670354424542198187369006829139426168715500426615688888714893833831363491450795439473648233421670483084446494465532055276530514458987447989476870667251797559713024553465213326045524018790271249565167289817315738413545441891996923610164635904872859290414141721047409803564822073499133256099037687198864493501612122603882391099293728372913500463781695593652572216529407628425113918994184928372542440506868887253667019954688456164879631814126263299037273871008068603962905185835169117938437273379404217170354856708028319012606418410543576565669366109642513134241106428282814291179365087789991282838272270599325975455298000539853813167082089083137873511076249781877885009328575915632778100274496339871180532278215093771579590283052742910570017844043954939565736858573970926425793645920810025298811018265510094904932843847418880252924498927669902434309483275030876355716705019599538065369230924699706403418849718740227642030357398736015429206868082870416145228564501809653286120012430989919557004057429380000724045179274025070387631273911666789577559516344154141369720852740285928352025469987115481226130311577693225206658951593209547599362048017773134658555269986377226215412767479681485713537800053416422908987198318119687878910334184441727159694740165470000226688005298167657753134943065224039307954391401700489655943953320394540547178582256355189642905617740027301820737320881657648250781273316168288526368820891940874536000034147551811111076849654511049682229580749968447675557274999564130216498806058798128525853728804766515477750006758022347536754564941825621696997143196713930790386289271817645122009049462936833631478925899849675676758443342117518278745119264244716838272529463238437438296901127191880099898137971497557861550494124317078649368397999473854745946910490714943107350437215081240447917518952449106497208055016809667620114165184078310925313372151775710685207782379182153351987834375549283158545261774375204095184202232923427145070261158167100623506139116448847280241668732795440245759771886345980565479088758485972256135471363593028030150062927476494707666634841597195654810813434538907086918909491641242075955010271945752122361173421271956835031201297843904569821075410886416444888661847669833897245307592716928773118607100465105268966899469587124570444107211644310209720144088514132602880200053017334152720727720245281165166145145834821000366469926963363900792543300165643055581091827197490631401462447149416555131935029825096235114145093371656827766971506467885240087155283760350393068082944838403420865651191531814927893079916136132024973812864270857649181944174363905151795255266347922800666000868053421271719651143334370068625455319041464482037109028359854936551199175550420507576729517212901817716367484734415307565399085427535595367555943488241332234361151587163742919297520792451271732003468146843445689636526071800352238408569464664027796402891571873380264377906825740543825571585543003322743126702743499983757039549754181198444558880666464129965907227140273533321003289413831985075459583330760998203591462906759630576191013071056425458054960316496639311000430311682675792837133505889861325114331076547358595451484054500202620580020262404139949826882586819981903927604508127396013441843468128320526499445095094435459818324351799668590025409773894490453746601880879370464078335001304320293053598435941353638880016725202389122499662592450746451826181539459843092375999624568045391183163922357318669435992783970175812493540742293971178430305537708442047697207095299504447108105830277095803681886397215950505453494777935599070609348125984484609215333777828301268729176952798442029036504309258459816443914489049071545406182099690466367376984644064696349875644891036246064374860794520356332262251902229066985735893297445986835912182128643289410084980759975021539929817781935320180299987052328908891351927884160802809939488645859537836411281332488493176791773656877327025290310320779655637009097996302883598807592568405374680500244403085407193530409324714933880572667956426476554153721582261814570775737190161936366361689752639160454287812207284985624397541138423785458088470240312414711853834612360199193363237095959236201462080745210372227008474047712352816297335507187650421588692285383871054715025273545492164123721337360165407696695752300480017018081115605753745985699562868972849060999807887842015174128468160319819899265784934656911229802627818099224910374681691508924237866352442552268722895812946333090915623012126429172347235131488042106651715650805408022948990322844894194452135383489183546954552154800030788924625911059716542495158974772127278548216690209703905901195667418133788175761387578124898822785720686716976075322943175538894317782637535110752952009874184174786207442324554540197546351720086547759863561166447062481216038605017233332870621210282478617091877334022814435230870134811716856153594959598394154886437428954518352425625875961322978573232204809437024834173464041231614336041253659664584549251643571572478832044542529560838172551384026110148415424227638912909444491786665233155642119584472565508852931281134032135982733423823010040621426942115947068273046448445940872248498194368329718670724039000816811157758638497581134552808802964747922088673438727133586450891200592875683838082653702654813272444502859664363559321438684189117747833556793983189446325776754674830089237696708964319964611434658915559866836675097036564994819081765909057953350002731866770610735306077354855654210645811006815379863826944518957553644046213898182272006079093845920382824009730702987648881988498183776299714632407875971480955664336575803155246713780686304607157618545009340164169524698373835533971392968970877495455294824495234388693967855897519647744035525671089671731842761701255683371058768518197039719982030834984314621328203392799958692114143293443479216961190539607131334076040144462630046843228687196463435399080320687353652492945791982769327801033504325249265890993974167463574398304788913587239629669845391509507470656195361727497597895267656146343642270928793659716163698870637491384712999454146645841110007225196163580688652056483904558352074009876124915274664945950381106806917585220456621178095365464955328539257281065725490951272574242885719063882766689327017534528592165931424879933605326772172398714403511962710308626050015123027865531300153124280408703277837727247816877558070322418398589716779498870571794310393238070326846597287432588136078916320881742342707218980851020122699919085192133857598488728732274633326868659586225199503296931745936610396128883110827347897379594217105367746527390041876686684367718904580928300637854262003197386752040280450280637850199292870548947576208554836751748363343903768876116725535758073852507072615994546266812161984256206136544727910543514957640609263685665204511596822194005813838036921972922984780813017049428201881808536532089285604453480742627182258421170723711579304603271941655698832860752476289595974389788226158072544218469714567907898517883823294081915368480542893931417365869847455866926074860588857450138365516802760669513527895007019621252784859931864945721711168327236844317944484843815337374965946435549876074161861206586851148614973503375151343535404875882350201025019271674709223992868286021820078896169403262251482926686118381489501956191387422574853981324056825357530692288076539356947257109425613768925139023242827947176578909118335911636821201365351044826737945753321564317825383812052816263320728225210584396329714662556937726449132237517093264706412608263959957583297865088238350847065745363046782411889218796427412364308454731390371573333670202834630671872460810889742059950142252287693624520440895280108394804151291313503358506674703057239430192769601884790918045936291531759707786955842902721328488461830584589438874354462757603373167127822786716334989544282656010403176400785235409096056872357186502024724658845334768185556796404258154037026154424687568679046998870991843255441482184866180437302674076735975932798426045829110282641365182486407767450469119432640365051634928459788656117322701014783218072377523437442754954258683354135489028112696431895168689683587446696801051376971111730420611429533261380457327886482241987019531245160906362845576651385322726576249669211967422170972580318190695122551246482925392648348360987916335185293716683382839554587889303145773322765702333963302915766294969092567965352514135626983776905742501974694347184797273702776649475877251250803024485880326786243429513050101814972731091349489717062529631550064217206190903950590837660745842789470110177246836764899988373947299438503973442641044856311072370685295643645915792108626596001043851898698323202722437904121261623669383698967741071780256967039941249608980311293337443980983306004547984421202778112609585245521173195584279260219834382237173259032931614496292310268182530518822667248521767887951798925377966160620447391389617731260421596711421819035874462758495295122095246583538699619872376040734144097507578586076933526345179327836004520148560423747245703581602383408233762073263868257376081413842253800127075908738816465986954752743212591758908684156560988085065309020669081266930954396437135257314799142408191790714583550576193159938454457825614018045846545594988902643914575280812915370927683422873662119341623188532446107283107394741509115973432334959696635935623509273156976484383837327601000535933152113462133439799852607531869354642446038986742072628971522792602880317297288798068118791147156923429258055186947495420521144072010220303710767552224866588219986491332089596380913516722375324858139377317692556600069707583815768285022733341322540449441753594367339052988800643775466066071174882583531408167835684143586032549390787286414669839119552657650622019182752915582176694946741409891208945923227008325672726658536929228595091727808063170074992454679857435884855063836817464802757570059798313458520656920806406656927380768673974868205074135835694642219267453000121555041909063813944225335975622451439595114676211971525258956716950221060507359193805817773558944338350151449025561172411140885746801631601347614465621892373346143952099046109250731368960076295467893992173123781099691673684383466239916190612640479590112948785905978904954665824874287800754383252300594157605411981865268472484878154148682645629147395971482962037294129089222483127849939724824389543622664502928681308422503585644939346160123807919703700734216597484115756750562380757619207905660080351155019174178839816411522297400403410532162079850145788763678548195895456251925547848653009803098971378915623000292726680274413831936546944138949273585538782792048519035328065255929604129431378252591371046937452880178330853405277326074333578381328266479795252023082930963948818644849167021359782906027964558176135349540254343728056450658609082382671007895150156053588288435040830489426709901063299873074036096389736062641791204407231887669050527276207878592620390268382171700297595395117419356326162729057537237770482738810323904417077038759573433079155443521242889733532725420504478029935150156665203637705451382610529142565916292456268499552312262718380815885710536809818567243587357756611930846487958507056778476226136098828634050143235250150879349320029343645454864393419856093124674068669382911654997805064738635800946892854323216777789639439217935350762959131701578988644963289526597477236647789216842481840138234438968639081284057249382937354976016998081559051713758411955042416131740492329548064854041183179519005746694887243771874577640622995837199848744555311693830052125437687114093717143348421457756048158064080282228257341629002131953034960900299684596650123893722935056098710801875497006125843267580491679178058564805492947695931475305836604321581279896577137562556884879954903358707369810541350203693865210646946019152908835501814231319343214389638700375799187432413952052672353799728739742816548421652986277930462318050627112801857295609856999689665841414605639715140677807734780438536680784199627822793736500273849150582119234787082415298443725628320841887152623206692336299666092640173839603083625029457277044895101962079872215601683551608667112933053329203694528965181554857406576759110162785290805758906336315198758794658547988989995056157535357634735213913168689334130491570362687276838321847067613525032322119982142956779751019312687086395118083407146118599614290871732475425059104570760283013215751238676511964568302811161953867648635292525858134483029108850268933400148718576229091592320920189469432300641479807959511090831103000612906997342389322940757032310865164817911395590727815729813919043714787794484307884017830712478662539585007060384600937645942427527839326570688665857190668935737811477746396256755051161967889078750345258758755826272340915565355906485325962692574890366845136727619860022151361818479762982444786265496826983963123590677048492163687369518283998377823542864643669697277754485311194914641308440494042020452751972028180310127763757059318662010451706375430483449744781449816363110764757254751892995467705647151745406676618896453199319325030389462014330064321256845594595983853267819110483249840577774709286014195685156720510968276423279972688621009906177525312558300262556406779008044454629348657986262214410381368807129626812941165305126387035407618666453509301906183756106709884990486354796505858973020270718339225418669426934941723561484351535186754801606863366368976360394268209015913824482805100640118434877134587533918579966429887112757177592699574482949285518990755600186986444945752825408395989442786434281817377316167098174019040640350025364644068839484747792764570766688244474499551922815556298333163416738805652907085578412824608389228947652601066678237888600494142590299796893775117583933014804056816763104582427934498859340545980638810375816270293017849257921214614742824890624253163542607719613732086506161745502316376399940466258266772670241282014336088980812833469819764300909802135760960038044888012324669832843840439703299320770079540473629176359519045954664136884355224269511702079687376255231140128262336307474871503135468776004929029245040865314345460454256440076922544455818109882455575476776382408065191097737472538141679762476993899599697247306959386198637512494482375876599562613456818782022499417575403945309942175676922168134692878653737524194580475361052203335614981155572658442455828047235278666668526774187638154670085622991217713383386784394176797183769398100550250197146187223677626127682859071818873566410441750967157628470305897424733499502372258967461463712825071461205990170796578669220678872617529814528355970821097232356497960599270659369971164325927796957381348374666643938148705947076957977833659315507854094282222342055559067983059958146908742190764290567388545845298782435548151299719116554892029968553148056297461370045379040032321991385000717733698358459450584436019612866307024305479548388472040675465909260588424689454424095960700569038369865671149323875025686850663806861455621462776895924045038114471607648847250015923083971423996045215997111760572893323999901707709356149023829910175082006020739921879343281742386050859178072325318545494546786110983734279750834372671161347488138878423251302646134666162287491598093208841468059180137984741800161506542393663168228709558370562138750885841039071995002180386703229912353155944095876797065099865151598180360766401129741062340716997019329168288778369829352015659638199550301793464027739953350593112634819952334763909984286356358775656744456236963404395271853159163602955510168718213004599028393172959684515397658117894287724535073310799154418278105113307210726070768110580633245134456093534683537404018055909117691922855709540927316751931544651973423462080814338512974644874520310621767255149505417963077503401761761678233639990112305960068195525134944739311843056868711419989325592000089804673955605460517014875334069775891680946666995183051516739285337417745454009140039608982207151756724237642727624755295365599265630032666753023398240546713661640856917921666001162099152014014756558211264691960865282060901990062341875236033737277620625048167788462479270715593928157951072757484953857482512439249754858923530416229488549692582000516490972692726913156023143771748392568169860991701862576546701748344171832839740140614567669728154419349876088133208713017122282178199893813781934022826114178527871653480081193304344582470548149682856484698563107584531701800776988461910808248368412682114900758513304219575748607000920722855197727807306541668259700367530677280789365759539779492177079769525220870806858815317588287293169544742258380279687600888715636699407547118702417698025340354638463314274516166880222240417038311274257996493128426363336175111453200502394190730034158178858283162317625540595115743565807097000829585306640549289482209621064339630663490223521248296260649810489012700584551160833073621102654663666954310247881020686463588441111609676747605717243808974293691295767562955245983789947134698501214818695778886782742432491578334246378111790753731746814453800675450313866793668383396334527045224218461963946366775580396868882971293538786155206175963268642137079689656466183972088729153635399072369491915179615201626966810712626074184105716028078413234991096171499477059790742206157945544981213604475002605829668824822814616834445333406795510583951080223852446362102172927282758797166416432265871070305040559004692100491469932251181301041594331812126311562643267104451021566412938585295596696616797883043847094073731892185384868369588292714326224464588369123698389895117175504482693329052756652257059386480567042413684224565340180595057120728931396192486076653664354724109194484616759845706653317744727358192744288668411329339354959276925879604353743334700698439949250625518018212133534556088588468043911809766507258421964400322447588051759513810459813864047818577486449544913440799836610818950652467714566087215547734868607264663325518902042146429795661448648867358234884047306065454654479710705294351874321894408822613062267952089520850571973295269938037786328478172959383254537736017055461447126883247109579349863983548999482989335646138073923189603094759988109389452886871952719385467085740204934792764118224859677313468279115591646509647785737880372218369739666971171253294049398750091939981752690885836541725837395646276172748371790152700767786622637620700177008049769978438342142860093528429785157597040437244772492786856646834776493767224457589119980114116808113455395636335345001842318507874444940864079066383484049703034384197973850387190633195034390153719509033999402637054987551093895905125349303151398469953156847422567969030013777562039031626866329011973378648532708492050819383379779286591911437071425099128078510989157120496255019184393664320958811911431697711750183820582711475727896767145119873629149132569223963553806034919628856893642868831531744384670223848348855838051323466285983263176903818304317445111013186840271569406744912035787006533658536325399285231810059393185645622313967589322643381248602494397103361234384619189652765593478788908040003175210017386974904977926807284016512724761677201155203367286528311137515186216328805428523659135834265348713150402037882285910406438303679674999144526507112261972367991204590859392679205458047284502713302125262080179063630524096914367349202963421376465451550479725202518916836238293414447044680750224513449041905410730264035472824484184126834500093235070748714653852470750577734417803601229972709660748735100945668873754804335750303802775048291553520135538601160119695166746895399897010893089994312770631165106372131229293356201968766678302680282741229603309775308116075857664829852214117197470003212099750451971337362882724006305692377946764207586504325680791532851266555914515039551981228567317914391578045256604866930103416677185732690624333637892640708160385592106768655517773574285186883201596544984383787432609602792080215446390650461184730597305993552400356755872203630648727403085108835173640847554976681919617672140526043218748498682142299418441964959335828927511431426508980929233070296478694084203455752576830861903864759311061114142952858310809528000926355469265327398228631900685193072456351939037112575823598326193084231725698822908133609356567239676584467815094273241955097560625623529068923301902756920102456725538402355117694414930357007633223814759895782171018663018605413298855923078415272198249521434292194268468148189637724981763937938582675122700590014865098418213247392518352949791429161567038894671578904970271848670970377639325658683475419712572447250037841124780757573446566658131202885935856788841120267546983041199213933083824152074534924427216541313965240781286757024180716577072814813043366208007403637069517513658738522005076329644758370394914325043845908190962562123819985674776107619674203585571669175522671122275220515317779505809772750666612767173165877641555622549705894296326792880419008364818155329980309285829007257829092855518860661173056038334363571619240518560159597653504299591001359346235329473531767399873814006355351435799653597904422261322520785694202079974499057235011017295362980039941444357252906122003218049771896239101955946186002917682050119876935519685919356907989484818717958203803163204963935111051967089736657447458782311106112200832390514684544657553647696237077736945383694824040268029746242199851116166072498951762813096463192718973658868005776500986122955692601583916387940826105861073353377040536179751855959431680151475431372073923828835319302253463876260718940513444511614089809197048384634413016643505232862114304223403361832361973145826318279249025264074460389249770177133725860128965102169630890424205012549395585176651176741457181040453980670698098884338739697692695407068969835950937987116459362231851214681978767866084308918475353041971359056356907987920646663209149220234053342056747520652683903696727885999074574363882780973008635613722348526420388212056338399746011970255617445113584655963320188347685106258480312692708452435219691492627461992112615328721819911036463264565158130082886469164765242825157354472253608829206554269815950299137690323573766513579801481962601726636984683229487152279342872709171528832814750152670635489954244721200446469274244808565149131156756640949203700373401202543667693906267467224109334063106632509496042232244072942444218634492673234521805388320901573313851603310913124583956242970343329039183178147485295366623403034774720248803829042754744220244081157933489366590097907533167328887495080686015616935195603211469137073459153307795189860976707961226999064417541846958002661625212250837500978812826354979957815320276762844909412476979954022146685684984609881950966946545471929265163147063196552730153002734769162126188871617223215271139562096528878626203188830352375628038040555207393182981426155355662959735854160355900413339533552545250596818271952632228542459646515374560713381881420941747465670445066111904057504764917999883421318640659850823630886564399538155668688685941969233586516464829574610070312609726584262962055894135749435991613215519001009224109751681439299142865683242152161430570793640875091399931337739715900800702808880429234749988429278096563403438955741191146664150793610544354591051878787423758076818252482594099546298239233024715705929398213399593885155675489727918584245089222728914267344165632246898434187307049750707863435610704322810996137805085577196870508517696315853139069930246524342151951137488789058282235836239993742979462279453966538755286406423469029693034009922773400976703748466471395458072726150273863470530905875068484365230212623162603117651346679435549375748236076752524691957707689441418242558298755313074373863287538754623621967635335834708133076980219186488124463736229806860444029669649977213974943033688338399931527849108807073144924041589804397919252586407048116858178532580785654509547646590762287067359378061772406311368752406725761520516366696498756802211167422651823764079311698058425270348771482128439848161963633353213061615277003413041056687701409973331776149291695880477714589923904505620851290378545659501811647446713780659593421587844283929568479495499942860811100000124925944048641566144805605474944679256540678527286805710155153149305471811405367210428854069099389315664015517768614743906050559245934849093861285893287199444745823837366181408806126759278306850104676870266310339943484907442032463198725068053036856596707347236265320562585818141919145904270414184319228236908727995539622652416504778862834287576342372189025237582715819685796173404279878412468067166439341138773488886909134668173950619799242933786015622967354784752810244248992054252975173927736768841458839609438389637015400625316508231668314620387602859793925562397014369523261454116158229949912295677764326911120861141893117110612721580923445323911186492990432647235039977992286791079161096253999432963322520607957128283318231549453112772326089491280957143257462386732186557918153872337920929781195390682890796065006430807632236088945175685372609217429220795071780154811570167017942477729022188955664542450101669983370017317129854142165990849478505960937195199466558735554417714118626256834827103813019555846102556192749531303773129659224133405711638306776004511009618131351280014098903103840110135628428779109217700546922217665897381963831074918938696716596734130544015625914963458730750964783589462670056011443835846672160160666173801570561905062818092893898523794992926979924054342917087523382540392489824134764425986607563749655941598856438912275075617368370703551539075884136914406802269298655576584367592893996570157631444181541733020231094697429845974752449923053221398957655133083588022881320229862452973898302825185352452348115294522979806770416547496175344752894439687206677073401274506842876040416035543700973806251401869240204954836066723380616655896925610344522251535348337671933683370043363336699849689527688638499731385997215511156513544186738550485532487795968500845529902635765145565095418394968591399970037226299941879216323906298205061643774703314305727739238906273773677092369497884813072091087969610266834770461594035434963727193528453303308647135586514562751760254271597842585348769819123138900432061461875962445237913293979516747349443697646811213716927036049674533066777481865474130585512258044589109786991799463110116802905222999805292878177136066166049050333485639851317214636842146015954645813384067672271582285146475811397695067692750432154827764237719969801693853381618420129846737070736052664798171089058699071395151763216009132151062122835458311163929744417099191597341829034386700109110054315104525726808750093135743020587683905012858138244901345465233277394228476455552935819619322653341290635803087033102236520936588816519736216968371466689397586381594530795161031781510271348187331001210014931247332154020760318064386656581201042679655833728020509017786611269532605238144634641123545607915034795998317547416289961600286174228425337530153461736368339096471512735011260161526061692877896114448400609628968884297090948218589245456390528772580714079989607302019341379286430937925626867916767188922912017936107716694572742495198679083924240377821910952838512711222726790391282516403643847380755568170923037746433125042922194134128097253909232740438593574498839279954447922596690512238706168628632710911322457976677301078082601829938022442019803108029386521577745077808319964920878617316871124019533297947039137295546194497933566354668636043881242108719575184815731097526397799863331972423163629827272911310511854559676795111652131285110564833616166601076460969577573479269831365578887364465968102710122868158034827394459110470077548770181600847960530940185859562334996390993616225044420621620306518994360895405374185251078278640841457998584636763365124815014254437716122219354998744934711095574090669385469603212610731416128015292856949797952775821601445823407965956423465068088104720877667737543955732465736168162393490234326262765994589056782259465040703127431781956516839880096329188794876182754989576610400054117713320764220092121728197658643461014459096547654241862541284087295996180686397369458749496872957496607039218109527483589101520506781380197471318458026262720563044186371781890014527973097909970407315172902170659136424389916477275199559742527600774956358098114580668455736697718580216218539734027610226649996881842409254066367610801719172488588194616542580737915883198965872339203525437791911929996828770729246887045387991913480779434207648393026023534504537211381383704208875692656572980944252224785454618370600169425535659040198018313065475899919276864779773089769310162778513055248025693775914538873043497053547499120365990381020364052462306449132424424644494430120986890783000170527157835339890841681858520775039778741958840585327748239122292087494348691263124391463571543077261294784200462615706710279881632794087957897358589443344317068430780012367893978143513931898351777854605597556135158344975302339566104358332686322713028793225157858918884340442657200817097552920375739274945293886015642957296862133060676670907656172630300631974093676436938270527014893571355267115870373484159115038510917876349802360748932232380062872512225770595061650958364257496534206687748495261042559404816456073504568647761680684204078266575673993548915598690724417776187675141037936045495912927699158589565887091792779322533526455096540233970099465200054545341971470610297998832486554228541345985356467848910294419930550693690970583019018123071466843635828340915339285913113860885782994222759210645678223942304233366143658232391458039640751856885059533681967276778591462273633736447824865211431818878143132096862836363686795480127464486907001755608363631980752072635988641313064737875693836295223812672106937980850686564219488580752435131339815397778842694341718743912949122485537127785034529750898888260011219436054215506053337484020090085707503345705260495785009846371501785652222780365227412239575169451837062250433287475356895249295918320358020747034591314949320369880186392856541613099470700087946490231822237727016144398425800656779405013228542943467365905285572148899623712750668174399805959135422862362734601624020343691063537061440202341737946273981915531052160126456593125861546803158921285847522648992802271259045553925519914022717678827098039534196228215856579916933679599855602395538544874693917148095453925977218347349293697826758252683640064810230979269142075147361557017691998870242896109224714348648712982974014155230397640963759309024159067869980101289495342628832484433561145011430985455349709006552427535766167971143515645426226560646576980631090497833296183931217889258601601187872715409425226403578474105374778813630689062495180368505901111504910510204949492256272610730062673203018744464927997398922902820533803806506801758275577688845987958640690941128360296956604327934106396711092113176047401090993639521714634076251152196622790967583170093157663357100742944451868037959289605970944278038528565402734776627577619729749140863985729561434269869864442402182895360078864689898271755565025196610879363689361482835925180206916897527294250602218785390592768208431719050841813452930370709376786056093075294830301735739653937179245486563642212229984385405222065685817651304761692019240580690987719113030083790352650590805980075612161471761256656504264961816415767656146743899089846142890672001575592071003888990245247797816996979841871514260067880998060021757514646697125836871718438066707815238350446216802049396406201909267774440625106900700674019856396809246112484521261875547929570353851765889426667090486649228862966361408890629202972629217216885726230404904303844297153746590259021282670927991464033067266952675051671785759121095247712079624365771512312917326136661981989174714246513269534040265705128245661029235331702709212245485507856379983986130036907464937538576935425723639728807267813387743558228030029897168929792952673722969507281495031446394235137359586356326263309614581341031720568661286242702372241971278132173688123582149378286380483511190590115043469423657620373859100563416328796218619189927956466186679526184737153036531654954962140707753020644314806045385095100520860856367766067785538585229096955151799967835774724070679373336544174943699345808577320416064371916507698467984406902040237003403903023302377855392465282310408545289367448807413316308551668513890831892248012353023394265304370701797536709402359661409921895031953242860885277530220157156186902057011599232208185904643658169501206862291993289267496599582147826680394496432840471071715784386766272620294148493694679882632468192133164595843074201502117435686967536740568261638917749471447850626135173385780936475795048151867356550593191483597887356257969928873502778891362950891398456609628374493027619842104362618701302940679205233373269257935924102086330290544772328336590736135261578117206842305411188151821619042084293972967999205297922388500975125666170616010451312256666488059682454247096719292971935808014097722902589495496922334156691664866890611529200373462687426747097771485122216068812091816252469750952047808563056152265666454032536368763955098165580467022566710953821129111464424251874392482629320918088206760646014535405961375621913973988922124605322913524566185412680153141203353582696834807388006240435329347801147915677589300619809218705416413802517792249615306042772952223693469453383584304762875040457614742981647952495955954321281693955202568817110215467658085193191991317030240481248681917816050077290162915767436104469366426493184948445793275436928166649547516938496184119075741012286215813029240349956677267829095535412480573546357384118392371653731258926192167301987331882303337510090709874090240776043826361176783855508104778954522353013964371121363702316384513138125091235699489455036635246295262303935340285149295073832230121723698420930598813613367058141033581923633703336482351753870901369883722114886238598889607790923295810244911537634391908821903033666044829778814685425307274322538536196469753975689202487131290421810046097532934532801890638385235973925230523555029356624591452625924310613922953067916946386925733283216361022662593505396619101455009445828470445973340443984493248374748199386044455730011317887205186632370068622078146442561153499293719990666800822529079052311283453536196752570301670179819696024093106373146396925494349609922093844447446313379685408673209958786374344833145392921101761639233616115446530885716515101287051689534540282475374766335686043617047842555980607809443132847317542171211000669674544716119024615631256182720888451592700064625403899480950675476532366967436701372025469438242674562736427449614158791665273175931391740993431490744648436067680397398275939347848815968591899918539005294197648242543387035233434703942314760470798042614145974586239016717275698348881136068054114493288543078054538035039945733651571826225594332827115291546953913846998277143789892829916446975452743425384996831679935232889909178454759412193999260166565894960971470643496688851279789564184053679870485727167828929515031532552118493938329657977473611347789076639040306760044939980084129483059383784911183005318658559960534798211319265396829413644885460625703537984096282350910547637602072473379480738312544711000467628475938504390607572639333300153996928030332426740751419048038691478744850657156743318337650395998762583457969275844720891592853896092648647732180055952040893505377610805706363766409256182694667542974389598607956344472073131326560845409681841520881974112469654804377969954148921646183766075255948038344086838965445914963341291404926981976633892503037529987971898795278192236076470170196253313843680481180680605082664860235451700461133657796868389860175413630888245483838622468314393626210009253347025132206904131506065263355136663154656808593613220474808309132304932693317347977903057343823076149199532281971595095623250203979765696298564648078973665447903020136161083927893400297227018272204534922368989769305523434563714982019323576422402273695484178875760124651886784746816826976844832693597910749186922215632766378616713379833037392344380029551903743177112051042820654813033437814444070630374847391264957757857237551748666705476041137260122105489831204451998166877738098137250329979991401625830508459071353145383639592156446085175932395989205668897869446480159992904791558837263636889200723849650073447200988861305062750217771772203081374606860290712273987852648587935586635113116911789157306597648827831006297580008058721078945467186497584821560597098129969753561133004090001011630482269967111607099210452459631304680254743205273830680605529906466102874350786754566851811299445761040488987469872110957448545522328792758887833099798490068493988735521625239663901292075830480521713528547370028195236779840730704381966187571070896662986804953992393917046800476206766645802541350003357792306680872937575731170523685262794270145441706807113703463392774308294443324302796844835534483991771301991746815025963744939296465884881298192343712056074364660154548184554306581098828790105544143078605863848093904949334183596309982337327296896930627358246275386346296235727171565271866572678942501986828342940243969894466607552007711715826844466787297331751373420863337692904682726074666527364418593459984520863027142704353856606028855081277908740994405748057402712185008985117446679188704645477548625620019709068694980498116375558890577532512518119729132687488129901809642979538205311726110661552050377053504639982747213297399037927730006548099036220525390993601620290550535480407010576995609756158639420912452536683021934981157604748002049761231156626220605993302874641850580790804443277151136408691576402168429819545551862716238885870560425724728906005792662014416164387598158408088178795157317068518655377287622804937544633804405228307888655213218328419382799016973634981088685577300115704773402369675818839719936937796575457499931762952979229800741885628896126798372810005231673639177708085121499021335201488080402257129448132479383290877031297115763243451519512341612007377784280718720782009786964515305176307236125375527384398787827872030705779534077343558803983611267270951107230954640448881250941730183093437809015930499298457561694944900495921707076554114992686561378112336852183713799424343488439405085619563869313258460300288420902794026061212750402404465086580332229415041985388217395305618424543099614054996244819566483288949948608872069437411459117934072055124000137901765848599233522965532970840692645491081188194631334939953093335605271516577104468297655437180424273562021517694176198766049981141974273551021227565361265536075433766652085826292127816250099329347862609058816032474991253902164728421985759088774779530155815728892469101221440165944960164721231212988614734523514925374447811590500998857844801772352336693003838032374905620512949697567449181359223122880358676399855976797596544154696268482828545659515879163160068802093812972350472137712540407413017248976900007152198352757420232400433947164465752140408430189317198744787211058196497678947089255284260404893281410433848126747956825007876826134862461904183602536246446951962372435821102892622989901652514649308540521967686421052202913488983199859077950969875217526466021038253240027666886668627199772211816679504234711919743904031300525698423005411075026208490523164250209054588949929668688573640789627247035822835021497091347758413904691109854650133848508052817558060407579666687730526062764185726183125978941232826521396470861008578704868627921068481132295997420491726750467829712268060426429369758898217921034219806167415795591661396422395709554971387532554079709690388847870726814266906634328671851106188741410623161736627523361273500367485453435640411066253953225120645477318167325705264568259358334171635770138904062982074736503294385239862638900107476429645268594330130190516736029019689643819950334543897687834516343786578642643880454222967862060535537879257896602742789746658651736885261160442384470173967856890560541153560642487771373669272841739561205945319042873171482759976118782723198923267920732118053722371009101369940947383073242434065085535730410699109560655808387543451189542753856178089942163158112319589533261156307350605201589548976002440508809977289574690152694949569986209543988916462231322703755542966436852537106767999685145327767584117942734351193960195215757606528357068962846079108500644608853666383158495795566913157018346398285277080979954503682124163928840317691025633101936682510821660728633265230359241066362579414098610914044336963603993177406255150414073878655775434835409559473312236576358915988894468779309438188589876700441418380817329391598285088987927870063649508961693679714592724469468513095134805263858657011842642635259446808304689724280980206435513771092554409362649959763052074215649324468329361310952428277794856830357301516047827568229318474498637813571458888030022646613937642278440253824470945531593813753559940104157002709986121497715086926330264830817350228236795507432621318436716096918465763505177001677368848800134345955532940141627162410730202417599062620348951160606267875623744833708009135910209595071326472921828303628486166449878009363882496457987256972056615614921304526226575400743618383492325820035264514842139965253062573130392735646553383055119443099434701618750264224318562847301374889946695916273929564129477542765798292541988799457868595509816703970368482670445142366275641900506713332269560214187522327472419561185856346485719105132063810981688865393726090029300437610386008558813357341149085126521743310427107420981455863915042478474359944097271091492034718681930729203546318839119510501183752737703989251418028146341320164844216567404819754666587751055048515476941368873358377393382056202297631742480312812716438611964400728833939982360928433371969250067587886476572520468566521807385015186585022563074247622854837194841495079064873050665210573768856170651768290044806229353728060787365747256528583443261513148743625115068026356560861500205467789149171104985579111946537659703232468959813043831509430659311468498766183348056718460704333409577459249060368715661449607284945698500269158198817744940916614486621283997804516581736789265679969036413910810159447447921646142269198388007774795436404023064345706174917748987352661144211232370110549886593807715030042105364520873417593699510734427508505644470862215831285989008438407749459396663433040460003373898852149159038004602340196082755101944862682485370335356604027697941851213064385098895567906561885524847744772480257517958572836962743172405662970257193836328774972455080664181558469219415553761969612360881833104218733273370126618336003286065213509871326270107758760201000154031446883082231392954898918680224347533435060998945313693838077373726206384019416422601813357978844117896756092477361016239175056117374123693627512411531982320806802711697745142656503018508280435178615211385358708370913051087668496115706992364444925605897939498250328618446018187529261747483441942830812430237940859762925707316299546746188476008992067218699908480142726779667575319388695232929492974102407550474056425354181739769482653496690354750223722071329084008517541823721572343080400350462098733360488562670061966748782056539325433508726807813107757232929422324780776316964008824964261578918366330121228032426145543955337899432731288066557792131959079901483254107701412359501959106959620031119105903196893555117770981884597520166229058415877528079050588218873274503798142991595325455410942626404327351429674606479965349921460571951143110992502541684342254509412844285767175661445009312006548543969614288121424251237594034889224901141096389371400426066110027934854234483073539475597375877396374648818166420634934914557737802783333083053646110711616243770861361899278996338739546521942517933400150223518929068159136669234295391241663086263637372669521732340260975264500153974034566635438631384637284828659943618717778827999330894022028781006706279840128896035727879061342884460305941431559616110365061143126746813339803214271406054405332080454990800083120527485784210052912931205572448408241979520785681086115220184873521303293064320360271055588144726487701408502097928812490540909391511290094409338434906819219902544034900793330375076344147122165571784377147314334561100883478599946683346684048046128751205926834024123431119246421244146181054477703169498895535417319515482106303883717595203454738603517810253625236859361472811065343351260021981523069392904558498409110445045640348449641696232538076988889627516907424207604874988795697244705505313238864669374081406976942973295642844486985988880745597865977277463016585908957262849764121605280843515545910965305658790572338341758589638875982664444424976779344001077781802316196932468344412871480145668079821271736597073506161356758642013308101274968525520170447791784303123991951687499776131653777761904006806405800451431667516616584575264486630704032493941704760200762201842998368943193756737328995872228823827778793866586016856238656210166269397778811386588263569432822133096806433411244847123712719738226784855654399164676954628098335827226766107562678750595281892663320371234916461098969358661998809175870424108637591100339149817944144659429393628317699866909199681009075923243935194016381445993341850120718083910015289995223745658155409396097822628468964292322587476625017817634288895306003559312031957585415668744760747318051717370228870104777064402329855943044149374042112242709143971504531817807533244546211909657049693435071111000004005751795310097354330906877846710965135143134311033256607791842236844436205483474472289745483645752416363917382543373731818684700911343583100448547308180671993055208435656844397682698714974610055573668383626950619847926051593957019573261489276676543703259529507465657833717112177612071711125529321619032384049321863917581246573871125919846727494639523799400811896695150258475787831485091581229066108646975322296606724452902554212104252533013944299557461144970477171342806255497032452197204192657196614071415520532642480793932353440925119814874343220737203493014108136439219894340795982679540071750977074236275562610474273267150397471275520755746448833354388901597946466827458138774166219989144567687855301622258952240201923155112625063466926354350081514388454095893712010232168605453662389905252915694329958059480484846572335201785121209861266572882774457853534853040272258547515149011919712574949426425732274388444958952985573676595860307812495806279228290366698245510629874534484127467652644363286973751743027878449279236741668604210683959289989639678375613144573763968822477866277807096110057872375124800878076797862620004283785943349776475843461621682075467520155658491480317328625578928110650035429885035793138788785585992840982441425166156826193171560404492037354500666041106881365714043403816189102826269794720448777469688693985663790300132218462333769561515123085681359987905359207717366350566468809599485259090959421946929469508106738230731433622695402122828193175781765034705068962369320970860915593007319084445150656145772887392128035165249987142874304720647370683007461391126795307594218600172831807813993194889556036904314724932962767836919797015093125245962503597650087293510141956018895856324620147197393467039962309492997377783774169987152268292558179545930227106035213045920409073108142633112276114592275042203337300627847518209475708551361793905647118528437449348197372011517257529994453365883539045281687905042259243696446957576379650460136078833163663845033588728904523796641309122179630368620657867320622061960490886785763104191671673119173363976313943423959572157726252539415729039690869510254678387217665817249936447248261610009948606119677132443864288119202877319090847358425390574881675934147550882455465272258893371267566070958971392686738272550339030231210446706501467779951980288595170427439807475840329974035994734526386034001722904290243829201036958899568387668005489035169732875660750862956984459039658701395148339000679215134431669144829007108699955230744001378499546074204476570898580203931407594798882686247339210459912104714349342051287521732261052455928023346299242972770647575297733548607784747083704927370027570079160323886374469637676954161647974351715410142691242561772367364533472292100832304512973474912818889058338442325843290340697621667947777215556142285334035783582394112021857923534938981026137464884730793573483332889581096049052734702641900438693202041900639447730342616532084977262725126125487614991333833036841043874814787887817814370493897507091305732742655874258662992465081855543845703743776560844796331648402435620001020640706333844070392850185873130732179611278051285967151965489220666827356081177522705142377460318573600027793776097505552061902018764001221174387550206757635581587287043292607124862602215044166080195403439875422243081041629158034202996072356136928148872748514209981810290646068474653541746769578799460131469974491998066434454211289568504902185192302668609313533267877046125231345955499289773645948414581961016608088433522831806230081321518861146716130947061206051721861122303418999866910815429739682116076550997326150674391273657074163460138314075365405094632875880458432458444931369723735210346496626932957311871212311284373267967612023380158494412059015002610317790334198391369680682810233783570889358651705863695247269083017508841245024819535985797681883047639558149215763648678212959400418700995453601493696733736853379742372262786619316981813977590925911588405894051303955040268289634194346955617617188383502143564833195447632417548533516433357482850264290133154846569340245001138658920591449330126637278391159225517805571242571008488861033347989109277613340325448892275514556864758963313037502275021372093452001025255712908652027220961715687971941485338644028284735158120359868263053561241884134683507568184878580636109966058081838778827839100383806468403159716521535556607413699334595970428380720636787328316449938666000455998299088711639648188599747480390741145254547354398742164487613473743074124719794131470070316480127651615865552671591614366033230810383101315059755862207755892467016269588757089033532446537810247229747780475885316155469610905395881245656819953262703255436348142495575266771096206016959300628409985195472937838204056047812589287093523632651993327164701650957740279292524006702722916590598149945461816095159424560812380726969228917954899040547158792661884870928821962299218197880788924156675112211078195214798458587671603575195918913843655966266457919454680801519590001993468295712991366935662991710701491469503095418179908345171977392534188830949655378674272197243904589362230389682967937485434116495051771841540684167883621719154430966736117560666724309672881807574438020026094779796878686773477673925243093615135886266057899055057141105768119223889014600603547346298105049377715564495687465582165472445300767296894517916185424053167967958772414228177252743842532692163310709213847103932434668826679488234745450768146468767820733552908203033823310628170735231135904471866771300725022791620088565345644367418174343675836928199934437671736366997263530129658089575006643406374929105338422179445459811253517071734086446701537134470350784628479043252705360002226480393988213946133863465143026447171894322302159276311661335176612032244310342555259784703950642753828775477348837988898359005255086302477751175098021843714610271662511624511727533295783726624274422328724299623298480574235266560700116132422985462250833817206415829335933832860713631957203224743981949897901159973784544140455208141068340423423487184008250944695825748550010343214650077701123719020694429468156673476216693297375669130482245862653704867184376567399781901115821916026497369961371368311950476370007990800027305537390165210256202116351414825148181137184669080363286875496685640676964124437654880342263221170318627675496145601060154849273166358289894994284126216805361036470582758050081076903039263295121539374599248497965084630086650961083732268726734218068055096020837365108193427400814142292764017293680853374215487764319466045505837512586926642348194938137670796634136931148072050467975259809433350709663049488821795957442455060569750557492596633322737652993180534042670706832415960705745010802815650565495694823557388593363056569870461701711672048447261283474998450110365568862279862565168168424034682509423765836680667461196778186057100322007785721343662115141777796082626587692404340761926440299528526358148289349952565344584768762506583047754633206584566315206270877979088352903727929143727244097755229822891289135316474507415716226569531385041736235728242896769456266898992174255947279855851536956673082182459886238464031066304628644126078722832428689249327189923970364040643586240385940289850637612333416379714220282058392909763731512686635977194157173984276008779840953454050508679146979811653072263779737084878283516668325826139587312597554875519396750500783543444160762641811456772378416432910360835542572700008712301205528143014661995690218777597540814306551817298694438040736748746282265713434408621969589329442720054547401970744489215885664054300164674545087050161055110277004804583746078124971383289940730319544959572755886808767761323466196529473899336966467738724937635794191852053086638875083368773442132008592717496925414493679409159774984489932095879219483449534101255933980003596087269613243697224350360502626706260733295252900988738897111024283787554311543336397215700996957249291682411132240125807681176919621192570947698647692217451443979279844825771246067575029022345577357772600406236227523859007980846848887102584964515521195954107759216536820260350771649146321736392165888215339595046534990888536561637611155103883609684392708257348687275790111575967602166447181594425315887147390043340423658900993570282368750143143039674505185750114380972740921748980805113213726664300175185386058785862042567690458198145134797042208869641148109582684452400995867261170990681691502372024296635153192129553180673223530688176854603187990239657268103514299206781542937210990132984459614310379765623394793497772411970238545850213044065857062205449303131844305974172914039456128805411066622136996293776790950970265450365423478494480963970173924450298608775154450679755608678167152115110713205397243711114399200652125441830597032947973885228674311752002992443492398622216824054604043440449291256381848568911482622711284231576118392821934359399530019015280333806318982587804884849924949157447179983652174340606339567500262257915299135855493258344259455065107130583950453200301628715161786051106197386901188343033046477995167760496041580757967039608144791813222906556394348076558538658754979946243285611435244411257973974182969457209013454544204251276010535935897206168489034727123870297714918125154746972901400456052158977785169028032188898230081932984715246010591574050448419539863933849077730808773957652329502009199613784140031095722704574107228692951670896088548167382530261577095166001626001354026554498099804197258291601218928038921735132234585773235455347138733127853824041804116357214752053457926224300444371979995857092959127383291995015799005504809018355486174362838745098756104553148736654031444388696176207911427578784291422442863663455489447501254713181196240752096474333686090381005326101028877825283480151917346437420167452675519954612940902237036170207586866418144399830110432094062238130854353248694025470713091973504255817976511134354572811593651407489674010789965029362834204220765314135794871908676395839728001249495297328912280769412868174283128230175902876857460698042800528930322076558009115262154853736163873869721604128761092493632181720999712142777209331994485341494551511457989322207323434618286193992937115539320453402958441248480585375676404859473206463421247898044310576643794079046086495663175828660532694663107135754709885805143191704447099944048424313454467555541141354575776964322488005096275110173678911704056511464520315499601709640560516583142851918116690853740302224144908192364654950976747675924334631258188899780186348870473077394654088708991549201064703674615102108874101718501100636503604659537672497558103635237768589277687161377050365933087333234459372403461773829349319313787630317723472944548299078002950754081444766437758400767262740862766209684914796197157597657445752794221901455348546379054005245508223614075559876685130696595046803696606565377599239781659290752164556721889914503217557151883912871285285480612700727806386110178551162316612039844400842237665707550435787394451615945683295297597921197510241460492996488855888710844901346069079183110904263737896013212208250864675787091589127826906218838041265670080627506441485067254377279080752469798525578371305845426447811771586680488716221500213334821988792584609522281235355456109819716213464849958650765512173287936253522792268272530772037900121114345250068358805949381993653322487341594881538136833003510815853123127214314129019925658248526038076374269004813084638277252085586896387233416541715931318759408674082272686641983041610204113698388306713061260140214663303609829111924018675203874977485873145142259819432821386636665812176500656688593772430467004094189072743170332734258873659193502420398516826344350497200672595655207023164019340587969257390395029610036405344173222762824332346885077774432300905272380205308772288498862895164651825842183654246608200165910293142875163811617649499172608070230381100256943533658410205576883336824526598980074114764612566322172017563590340246896105446308651291092706015650606353120665498879532551559881785740781778674979540502458325281966852015030317897045199674596827865259971165594225193932817556141991885838390103970524216100217767038731922822031651464218601591182527565884416843120676723944220956380827267591117584154341411604560073000671124870590144316588981656654608931868455087479988157569348205926205920413519090656441819752080200512400800247632592558471572856679955305552424030413244532439834098144380276953764723000201871202474739705394344328957432225243482939638696853795917396900725059167339176731036276531579090784921023255469600374651684280882723733174862496433918383014497797214673089932071155877154250839234944819175293999462940516887079407700510803056494127662429276904258556451986720113107666706429175190278621468481798952015537250066905458881370802660261677177758039488290813469644910550864940382135218309927632689116615356052372268497129043921923559224425880720850746268634049914306112612000644882058663139186509685442511943454511899444955317397536107123715368497682022678447684816531389554418017917800468649499620268826029303681293826282445164500376851153686262615505972262278528540953121560222402296569442241742260399755227558232205517487368902200499902281721362101369524613662187025472557109034581716956959548792621153158999018873222460669673263684272062288410568559196181225279862658730060152508397158879641185109417689530507605435840094669459501987868803212598351118443373296620864753658467007350481008291902171784130552554025612110930805575167183705393058555777055722984944737759168441361012635169242827314270247172647433228206709143101789203061276510981700088303165189079591046592307612691483842670201046288960831813644914626019327025805889079928095414009971496223221420034213542748344384442344319789291374315673094242308632812284781301778523882742735286622579908825767623907876613934201842354617229623451937175472905786848470400816058245886641908411559964547318795450041946927106720911564588253978803926273353363006633479777133403878088546043789061956290725766987924818876497345881231229117865121125592000591114916417814681508178061800462805196819419579178684126492775703205345328356304310207280841859853955081014635786576836147679736046131913289938399096103354152029989526435015780471183937426102084616896944211948681684699162106996889850560458226913029660128072415307661182666831418215958117153616846178019513766493761420966407420548127936415614088345936242150814238551645777816506985505938408629089500624032369755391893450486577939916735196486135070792331361072133646806693242559018303094736676596058148258459246815855102235280611213397289112284127789745190970734416786897096051305482391965785282023692082201999072840299044281478643353635758682014787984430473853447937998062023251357694093254177773272943522108085874337152490440001215212652595050506332554008072697427347819681586189687961501113494049736723444610809980024343023725299773940688891460885989220830288815759547602568635158924412718016835038257071253980680012359008053507104037192418448542455846209988209150494946264622216050828597087425862524413369392927086905393718411715466865344108761708137928605570101187305704788696315253919659712191725803668338086561339587831441604725158203074357440053297462992881539400914300255716400725887599213252712172500503994297757879534162307081871697859172760412277851951373860609322613017928512140357879576490855236115903764393528766137311565977895791661225677898476434699943222518762184495505533733213771647191709859380341349801669340350621329241563903466601051506988107584298090367748869228676257205303236538087218160207637571555346354074348667736362336820959130288093989449723155162019026769927795954985463343286739266492430666961643611868960892367074661048353737554032822320534031945544404890569493251634273475023276104164512141114881071059482849317298044049327557985461242732081883113180640996781436070504572444173165157622252144754461018336829537577728040340632742763006504717734577471609936011781190657646044215716266042279875690800759548008125436053815628630913639090919969485889931664471309438222129892167743315848141422600893893627746410587245980802242158097338696070126802065447183085458366170639240771499547169318098516320510007446910493789378852058669274878804183681987555848319900813727414736649819949184243995108279271671103516062580565369247380616610537744415783679510851404103806775224944296119709259665858684439308164917257528020304778767806963482326951723492000310315640199287211276691006045242719349447085492287963856354275827313648735046303754977730727660623501982484758947211417661189750928690083567624120590544247450182243746415541284385153829468312026169562667189207437846323543020200313925823268909932641463612217474952113826535255971976906244451576802657312680921340581301008061281561365807587147459811409152409637167271083647246785131174286647587089509405694130702746629465209277756448684297329663614321508645549785397618565286615721800224967210690252603419453571998615430212213748899195890464521721609997128067443088539619212619595649486877179408339511685322289975703754400908881698204108323907638484043096614165935745462465262518588299433267366492365599102780829385617498379287930152497819562121381100923641715822653308332431255120359857254275416546860802198440931344151189343116319735799247521756293267188346755697997606062682194852830954630371622250210831330302912844815115319085216348890779132718551243737053551876839498955927324555417862298744421045886631833248934650288753813748119524836565728793212190080512117084808779085553024936010024272484558571415847991205080444159013643821929712731604116963822928380672826244345812919381259494244576058740668993460769115302296190950690864367682816233741460696453469327324230691921857990096699129542893832927737662301921167224058703095058533687041784438898901491939692188357731155091151927926085382167767056994254162966448215837491504481732512144704537412141861010663536236343956867823023563628764228850395748098427961516470553854370378025889041692039217613935601688775598653629795577481055555098823799212964051122935487625676799131885053893685519321104450870418898167357754224594769506610099649788457100084471761167870603195860080647737169716910116099712296441675752394369991093450741154978566247831565854852241377438381899936437357411096471715998169481017413338827655440590122126898014850678248348072779085381122218049130130253014393950004670044926982200096117652174453738408195079464001594786754941550967574956755865139258755563561253302344553191926991405834951822541498363293690504386833257990769197899083068452132772330138047748297099604938833800525867323661631095030669339820299658327829951632791616303583977209107272951559060276897861034352078468767426849935032584663354393913797805307406705321564079735669838931598195594118817549933295270461140211610776251172819200817636366279907822426935228665689657703285053255816805624309241088535255195702118765580046527763368675102084007453827280798683733779027564307034855507836749753590409650170895243018629293205083169514634111618700231486570889170564689269976696468157799472397674162000805935478929064427382308919275072411379378300730172004319990954625401893062306493727528449165646164925224243473082206677424255625962833666147999606589343090694988572519675991702319468127221990701405284054581656050805975203988311925058596041410787577692423793594431223519234017165383484828828580895284308139145470885887279293516710661201094164339695305004748401506032403621826618844628414704178326820480822241312923029395041274309332223988710823575267538554721822731347931560835667583810727379115917412624189914295597137437474715120446264729345847445835623149054243112318979645118634462365977623993584548564454114098784212188616083521126642845634570716925347965344015577650517367216253875561483760474867965592762338447011370141849840486647145890656363596136542252494481553725119233217364827862823942567316944530500679057723095202695466762232132930799224970808338105652619237954215878687666525964329609883522754649079240381899814185546724909587803574714235061659081554536864921507677739317348623624462342161614811213668260337469532766231924299024225459852102460269115003865622910136786096134464172097576302019602521549920989769961969636976674653066504502347577759811865781469268928717539034636039458294449271308218032042241922736408802137646569266273142751256459498185337991410102952663884609360763531924496078764470855349061711998930040144703371198376096022982983783594609616341403535105112606266019317916110071836306031394113683255748778349838876291374530701481867979818714750127320155731979635624442870893314387820090725050980355470347220253090092784361294901411608737043980593544897252537838763110103724742164013037053386188729015026514047361443677249834904747260591456904192296639972643876943185262390340717799620048716008841106545555090433593194955606675900165415050964726079645452701282977710092262276233441981939542391995218407691003114929379856115642343012925523455482437892230366716425063394206030631846438676524494199835833215134933211445077974663036821273801276367886093147040901867903026078353542446344852730213710784379644774668484777685527814871486733866033117735679041855448577325257675960193089012580128059671814684708428355205774988402415277921010642814921539175477602260452465297373865328086178635139120343503327017670064964471744926397434130541855756046184800972707349831505042362158684083687996821564758960225045976182158219901844354542292612010180221850429079624090162526488066598207282843517507394314680319716183386686065495077819558767992814686873534029314675467911406898440418289164288987881189595348340187673906693813690722252241248748191945933143495746513603812583736681050196070992589850556524055302941312677956616917669855997900274065104720500903082419179485515735377059598877404521214619255800267217609088227368858886788494895883585690264773271290674523606120471934156357078961587345710836061017498120479412938557930590215787012614383419435822242231251913646290264594462416469713856295298045953739935537396001772097371361770458266383810501129709659426996180658586616614498135782214651379079512347527893983121743327454200488245255318828951901596534620481716899545204131270855461577775755564094236191685598699205054950957343044933714961314661074691087370473503884859480046622790278921197968570697611336105652451508711957764806074790131216401298830713898637632208695572565534215482224649721054469762200081048474281909704097386275591783441897139725616731107650803333976900309883591912228296112565602934199769924516216369005494929069105228038820587357548478823142420994813411708588003929851389876534366571184222550283152614859780666513023582004688875310217114381990876811293959997844536591151221503834346416041084222801878112531233427728783991526202155180217255793838272409254834191692163027181969217936071982430171070549004611382900803609333460867372058874603680574298027139753399472559112366023866583535373986826260169112944826927503333572877049906059183620850808751949949478781597620871093410213499602961590945981992522025727527275758708577497008535958081202207553790618850919367309537896576350828857149021074548674230912382093505889865231113910300475987002689347217064379225537058278847351714824405542250345533271017094771609210647078023803330390176308385512128833127183878885535177590607718185821732857189609901054848348125132263962648151331669162813852076680538084847545217623539496961034616636553999988250824042077625043215384301431209464261540955405283650573770208425888315784842158874009493240362821488501165301421156063118346603626791499610488943072414198977676257401217694665740155429010616308769401474701066142333089677509972732012380415451497478357736873559484579854339905834189579681161450796398795801872649771312967506013524982708907425741246111468034648659593403014254639476748234191172623911631883266672227133765118719667181469136213576461498276351797871158206350890190038530372915099638043977205772695737963212953990284489367228196133604198533331196987235773204404108935929968499552391056948869334752488272792550210150895848486038164575305297982253830121457270068777253426064411243779777079806540232114225946420581835779544610228867923453041693303021075333765112679058875764421787619477591008853298527050055325023548629783810264821248393965432325151116973127254955372969376733389460900352800372515234417067349004476569954482816649688091610321831346928043280840811710534296450919894942315508186950077357647156880078436310716191018978448651560081968623121142949822444279043094883390960064438739889041281003626211860759445334813866205556183011318696081984783234486139866893290566983472732685402065027385884852333449793046395807491126059010186883535676257962798649553079381445503656154757650045423805902849574453739605889292421720882678755168452651052726096246951417725896331262065990489193927850285871716974541420862490982991541583305849657341644162304865808620705946578162419616597207425749800331677688879618910406194401152235830332955239709445370284898511425296365752880519917238948225358316026415528219844296116814373572669755584563137253502635162123415997173443821604659114989334321360126185409718184715416705257108410496904639372649121360917530361732599635397415570534791665691323287291595275733694915457681274368154377384579093798217695483306353813009834083896939735705371304952464459276663542717982989723844741087792826153451543728416359123305092658841882680004049779595972142893262917174920772813799418733699297904362015298297599453005695803412648891132177630837220005431664906672673978691370880142862639511438640864039021556004428764820359066355713353624627337270272022974108933019155499385250645162722054524874427584036080213941374413676129932939269712708158687979984228369162617812783267329696894462527424337963298315785923011009226254911563261477652567132046073346522808671360355568820827050888931164814596138832975834948477866595660404400210541761998976607819136734930595747087435050329468604201894873199432539593288983032765111983641657094483664069727819307864418973471911437878145606110248806343268036940669396269210983629327007763079129895781619454627693753282725783185592015126388477532525558482943967473750986942393049373311502754230861602278215634462926256946070391613629504446111007239028921969178142271733005686916623244998961552277763897064780770507102018683247887472592650232430746785174805493207894897113905282658902185246131423289713484385366869817819688014587085893183378188161650334083456652278726514931961080409087975691126820585254966400082263894879821800307416177260307271990694987990796423026097921928537905195543250563787459587782984299039414603517349060265158261774180291214070875376850254928747131817591968164705849483144196958331707754064060462835706964747850359846823938769747766887807116270339129148228374390144633277337498222857710214511256936475927094526310583888948796327363879285957179814632838434277344566844881687288028865846618555800151829620325746144955248854895314190510523301671071924835313187686725391119569910144984851281588639380580555605575589896134908116268927234738489607682083586798564472053676140528168631226615169769495655978161361792860469168806765891088193909202608217116143644510421060953285462268260504314343344980498262301218426623855066214073782212132435575682847951786725884911873799436569938323940124530999672374671233472089335470414442929241716733120146932515046617664083742253373017941933594451566353159495804064746972524151390173064083367779932356706127243264472821432223944055244450684061322161376986863084489193084593192398475276878345008323769517874954951989913789600741321631581943002954904462459726977795829556366908442537002504737427587364897622559091255060855741879094214240686548929381984537655786104793182661366480568800917739202059534034027843126800743987714876649978115574577673702254300863130092190186949041672551363193185090858448290740952563555018343602053965144304603219440456037147708208896803915914437581400737397764414246633697280687103942575140109819114856335263990299385013851474252914988166696101182719457388419487977495921703600478480790679082719975605779490932884021883244233215471994645993230303878368234355698212125028963085800961115217384289131266295512836875353591178993586369939385517690214627101695214629036362767483838375332638652739259731326057082851652983340723081240152807344964813165083980035752198675882152395800882202798440530104291927033402837160284926337999645470989267688032842301495396237499281107396505442930979406448426025849223870239296815717534907999780743165356954255317183821312975975848487872061989236492870279554552418883083880384217281176498264046785810123435063681529150681812823945778050884585651673199533465441425909684122644141307842928679213014226558931600854497636405771538894755243202677219767579643144096703885401385823467018184376915851429903793889883890048272849665518470807949065037933329591201960630650835592646786771798853125803141071156630484328869042777034422999795739270994133449532756195471103906015233990915653348389655563135212619843411848806848159068705007409502712909890819979552524688996412596222358810678868609897548676361034810831303928073334126076402901334526693031387561302634385853518769960138815023622648729320502993097309360811163046813274411336005178211176225041897733729805058353560481297286634968702106642310109730830846251637819609480951105901629378894751312904571648253229322555692495086917103893685285807216820294276418930282286061791206815572539317930733520955183522043972612705056952609794122235243323264848162014762076917614091737953160906350788105936966683955974658390105061463418698435361131787858221724831290243476310258710756292232682478256329583788145393054011446492786408888667761353827470891685599669304973209867772474497419946989261876163661781603100737200890743475812617515974808438819751372055276337127336084770238701379149466177893403344878980207109904174980739248480020173479273870919404280037993228324118929108766514999940829656665058120390338545143746344250311460800278977177290124500893467456379849305758305781957711305984312427759332158524436839811244891902310095057254540288700723987460375574655076467225775330954374501592617239611918505606960953273841573231366442150548679031429363892632809440459608526615572358720233051907874629114151156566560048169662824100342763705707481473880317737196209760011821246431457425323075644917286812105411969963604725399711705137380120030329961940497162247125552052500386557762978891826082736489358887443389830085826538277555492267174504751097947619745500381333995464308764114971244605254762094297715420861595545000526315887493740216317097898702072368393026735632365518908908842120997962583060642225471922478438592797558257517631818353371332611018574049182547097202966294214985104589234590759822044291196044160516090221040385518768676698262005617581653794370729423090059444562570260591294328465969239633399856033088171614814179291367806134790401696869084511791637284974148535887058754249503503711196612796916615738588174601712973435531301360374474650901387274431089129032309037577185562104882390297484574310722718325959688504430079452175417745848736156688534602087004642806917514361660319627163801852820539778340653580874235894877791321586741436649404269684038772310729383971878631806900925558108085369103142378480628142324827797402343579117639603332303388115955736980417154672746220862517924523184748247704101279033075327680322036235751273956079166330849527569450042649019898384739910915883229371931339874950081172544743460307626518156185871848889308367448915957340629195092276406566031198275515674664096776341432920215461557921768421159258380501342522692304911843330588543012216886913824594948667031863692363020432489697634830717116574242869145928099368370073421266143002665541252576294581568563483423534481114940590545540137675737036934673718870201304680925635035239198899244057107261827427593789740580236584848796469966263557419708135728499690323965754475455916700354864218617510286665086607877637402495322097722769814686466179643183796255573854457644881222688794374580201957966099497119159337460845096366511921234184849019914591570214885772457543622103138248360297881765897239135961705990835271996069778499796692430231717633547945471228771119470897680918764674200342021968779830371844993063628095716254773021090809879555714267776326885187947884325175695651570551719265157184671813461881409120915408458739301767177211743823306085064283606054683654961016499475160424228216127673856882045747422125756090771249588855417565730680324070812124774890750617034901029951121004177328011580993536484067248877821545379414875700671735987500569494907022391522061600373030574598165072785593424348544841851174224009512699203962028486158858746553047271372241287049740911336315069227735727286188502512633210596828526422017063046928930301192109897332430233578411973432264868145603813285767355155218434911727963478199494506332816482202819335635263563753087367406909538468184470855060681079986619551350151732646057807704988428454446765660081792122273501817290283580797453326629696648537807371838993509160766597649877918739635331145847610067424510379395355365700815603140971867817000287002781352142615125954044483610251757634295782936692226440666071152117352092920869384768663340432170322946905166154460801132224881459799416111480625923884031724995214772794853978635156872113259716910117358639705052760393642136444833185291678206099719978409044004777567233244754882252139490086219917747380016336772993683971612886473733558009837552574920499440991402355864174371494724990784438423504937215016645419250332835750218093396531432371764097255941688029539810111585246113745061939115329001490210726327887405329500987087457347816809442423116087846837516138848178981256821135727201449805361103539830618077055936667193943250147932905092578097488043113950134065431002690007777518059065002043689314072779817574499083542660687416693325702126443120531219484949658917157822849419222800414726288406159316692559050753808291860784125934665187916084616251068721608958220567495426222464537441053893383005045137026381087106554292992803811280930073341713830586070976011819408223856488403374528206053532236813535928169529926258291698169261474973901929016012008664671641920878545245196575504017621610867817250857527608252164268753452339263096116949304867780167965717094581386065896331219610272656225193413283986485617533158849608814386404721768028288577305768473884077044762443254890144371681230158893850179849208918715724640379689161320200504173649738440603114061475215642790864743231282352253762627144988227891650730051327220682448387437327620187205618335725864629622435809250358267263385547867464038042780412323864811370187613700496800267618998703440200681054184081517410880500110998707945441940777235721735477006527438322703174606166628181597834208035934969900383297528871917927236835267454455498271868679386891108269219958843713575100343730876491301446198558820772750413531992721541968573727538010496728925157263465333380343571865785091945457408882171584830917106969406129162453288850590282419536837413984333072639176232030962511688190142300881321188495440852924314977799357527309196385631773042289550797053146945068497130336703892764757379448419152595220737313172414873832477993614324860345309175530323126784206604853197572564802975660829601035658745439625080980873300505934557865824203158781539551700984368833734482710943410783929014223998599852838636809092067451344654928107721560097553423999797091660432257343205414921053583529328265714679491488474168588811647978867881854520948708636319401134109181964962466962091969776319716024515294376768060968711628755878651704158506984619269258598399147206346882952536731853875299535144187527310792038041472660635634292469570168404371431250168768063724571922039619709885159052912582012513990333865021913776175978256556773665345771017314075332071035664812244398501979376350240904291733940310394708801700909955582444636681174602580020928563229925969559618374934961108189338749124037289670989173786034566658243864137108428206767915348006684181450679706645582972018226613973201196201511322762487120064943768105502425083847376338948827994836380338617594883583371036681571771513353549737262275422015068065303635076686726214511235903201998804148450592912784160542361233075331194485238058394314643276845886977280602075140300545452609898023927283450182776866506450410545740689770636160096143033086359261145847597122933975307409676915176281150627871488442285700607206230551742561391054541547011497041105147405060154631403794179486206451358178413206874352169590905414783603856811918236206439823001841500546482995378952328967789451043941667164560699843170827608556093395299396532780076067457966528818707473411238941024757071376764679330510455822119372609234169675959834747621404473567249271571416556102140213204559294018539686511525682909353686616018013011039239562724910227882735259757076378603755099893942322833467469802409586927785804608457300008856424247395582222585494263042361670200855192495095801749517930841077139446540838517817277766719571140246646670092458213264300123678266509961850443769772150743514537773598221757497472834641951574019761189146905897771850815247758238826265549708085272813142678679773651884161752501315251122457559213237875542905237190185463604394105060230190133241462545263635707146719320307268022051133896376701599144785611836849381013066299896656901626876951746248545415271982785427195950746006534631247181255306279428563897509244695660790097630797435596825277043160781855279503354379103913301896922055844753164810267457323130716253762881817143659078079786060704566928929394069756463019659696120374139505553096597348637219613939188038392538115694806536764301893226723626361572220457854234564067751642661082541364636871089878643476928057343840903786086989312589123212509428568534219150171674048614714631419036857608884973703977799972168207678692890097321805997254186743175814521627467776178163691296087913796111183216086302036638850592299233930438804253485527034843472543912606889928283285930650502586030785915183958700076000079611494291985040960105093083504533093789969823028654544917917580961443502790294024318343566974990201144090835289771601341079779312585457166172288755759889072100181073438041549150873161951762952094099968454753805073102149371383340334549773647159858169884296002073607020858399382318694159767573993893806870785639215972310473837419030083381521401746764080925149147643309755890040306191628617439684054516145099961984733146366004658134614854250503321142365991993370673194190380460203233824851326033243075898787747497539091402603020949802281188174810055914611158142425211927532240605717324593044466845153848106786189491191920774582926026522946202544617856583198493768975876991631829705943502769348437241692701656179026864159374061339330772586345507631338868537934265468038174698693426638207198440002588927200597466091211297290205569861888776829966993156793532358249210433036938020125661298739200894282388053013767704917554500844017867791778077258146653077612111377865027505458953304602971373507222465605285265289129224992715107110684028532902412907084515320935150209331294112563607455190113042972991241515525369429734485840342881535333849428032074047126511650988989194441638868974116333772273160988664920960845647140577357171923972024372492639810696970323774123348945196430145371979220984810705201398729510412850886489168485956746353092946412925319026205599526067141340230391319459237386700416184730822706669931950337260615868626437563979919346336884374428580670086351390240091263572573496319727453921254628583937995379161856946858629840711335231637558331050926531507963880944333444971416016161472557387162135507404192193785099647450508057609612981081876269768373482585498187753100388036176042356591616938555538799855025781901339632372340183929315691451918864984722470324082021229102165257374461387635454806940389634527842520587013165901693220204968442933754036954318905345320630710427013798798425464943419922072213018548003503228209622532255646683624085035043900164790049877475051775740532347300094970051030384696509168804222007482159891494295712773486755925911279869872964666020523098277973163563707157351915556555902152620184306313496706786515416033728702912840684465136051349475188364112522011075612382447339823671701525174724843265661949267904078057604841321685862255244872478118060065313760895429596067983273581422541438209851659796212238926718902087473122533371562808719571178664486410278968143955816476059669000307102616628817971870432713747415254345339780725180936228735825094692131144402947525545487884557405960051873271269547372774205086923921494839890072368477738017623768843753092969928595570245928674764271090434879256950562715206076556380529431637093162019386486639132573649825449568144090124187100994755142478648694189514418937770279786379909655428183086799698449732736293460778116830115983027302162642549677626827836329841745859039416251376620810124596168946187749447889471187294450830843385580193919461621774287852458672319367283352016835836870920630419500242162305952024202037361597827807862559168745121989954749803049294437308742728695122625499684958957944933863461529053332388934247193330651193564475216932111791016695038924526984926033933802336385039913673776922784659392388699100712766531528986180092898245382977260163338049543975131105602573413535307904626392185141081814275008414043211825542644092630337765724405754131748765814729181039416699372791303390821327593492971934238670618394181441060469886140025544846411847281932433966449471331083849918773864770320065311638859035158788176477128638933352572806989201041355815845224255714933264421737285699252879073033248473583218347724155953082541374072829177764601276302089212302194961269840927140720627442768788848289097562330139547805751240435201742422115142365119930834301016357124253992312214375858453955394959241480210060194670214225958871623989121420109254787476251130422599515053595519142052704829781031886529786135044296917972654773799756888196359183920183472394580438024900293396431117876963783113764136297077899172817230806283083213596176977628299596434438429670066755284319713129355537848354638303250797918861403064721059877869709847380576369407452324489566616660804866296080530151436192409447344278150030928557261511505618018851921000851347900997040746119377439737337638445214441814760722761366508261909407749268096913526406091774932957292970366696799735742839863958386363316143784304851993387409815907800492820595424192562234603852973609022898157808103334359263849172642910840803183075599700686311981698214984334069745438110196300744815702906393356767110726570687706878885983879325613782858051949735561840222763090903672261898026888298615603687118683642690563682750968906552708826511055755826699276976475723871004886046892547936170737594747498141871413989551776124479362549450919504988267124789101022659350867272967375599655692560412842830141828745018546226597579778112953937970928349861455683526786440715523601673506285885868119335126678630177391075628008924478184561720806252938558678429865990324177123048341650943426118198845079734262194572480481423383999959648521866895154713446418147759158502173217140518432620355075619632575773597450462464932124283647161686704785008380362709274483268684397988849379437647979806997700297356392543177633138482342934943480296741064696026589477117851693541232675071998925065031364562729544369498063444486776918295630022483377053952785470319619129070964017123519441951955102632633056036905909803422120805206031918513762597938079074130939842464700438498417434369517147761119228908533015321731162273034458099361452499326963067259940260552253056478297011792349053605882400219397394670861802446418141790056955004023017099768400664059677765739525701368067713658982498791431247514522254040039211748785812919502146208275812903515744977539843845031241876163717641932074573983154503028913864042380807766346182098470788700506361410330113685616883228230919555153463127979235780985297344290592265627686662172915197395765435387636459422861706500996598130238532483671423184491956113664450670436504149657084106779425797794855653830905494698459614564894768064123600350326406341944530507912494415605362203998273884609020716369391466311862963801923593323143289052561998186412412042331510482589783749415014769951995148021620370514772628635438383060756277158333334840604624948166923513501549469393684541485254986673806086585911385364871284013098870905512715395036866350189372509706283289117118985237106727950433561216468003751121268808340976182658181697977045830718202662470676120781944323160895505851985253229693740177887055355545228246665740202835212714081961407480893991147679331471347987067287512263631203069038901313805747080132015285104507759640163946009314509592899221184640889689271847613750257084465210931270068738557720495877078279360221643863090423579237842229290164710273091203289472443114949961559678607496113209678331213510284181378602844187241577183372119644747829323242432542784209791597542901020174200700934337085198901817798773930444109070842061529860198100011333132255028432608196752961771810632616148935719182811650410827025720832256434651014033971074101430372641871505617583891802102684563886193023019811965640937031687210440840895831990439819712844672726939361146369851545517234816630099047932275270234598142911514017149703605213133396866589614819318471312854041275266965143241431520884297093377222821322771286067678730246294626099707828413240469446265100603242318874916703156087991685224108167290260231949722901393523921797205224588629100769104364835294186182176508001870423240550922484681579375797714204627781417723786669671575393633299063593702064823811707127380563027079597385175399043358221774551086197952540940126216529151957697445045050169662286651247743581462552311668346785829273292753916833277536383952873492879976280875979223814396552172289679231723763681697485166092499109991285959729617215171876204348857004713794593698313274479971085392368608061432745847236233715193543976664703252452100746772783573002042214187600580487369963433223620664985545807148155518299962831326333594611573592797234504672794151275985739764676504810610097980570659565939585468088281206025027154606484930630241981762432484559666873692201892541712475337550433036772489536739687863203752120945530015949224079048786708385594273285827745897912493733712583204218615893964112811684858512286883048981750590588416466732182065463710532852025623556183745840409678199072718525178046948900373652755041944423703764025210569517392916059696327299520896733327114385173378684367858478457131810111098899521341344168393964575859354654300007677268559717621669812880933458775678760809647196958453873339479538153984541584074605719642247510579159614895454762802859778297668754825086459784174673830361326983324087857476992016417351624886359278349332796272557805124507475763492186163591749371365371866832675770913832215929921742680915125150561449078040740294156818402176964688401788190624723836783882420188354673468655637902998120554159480927503488703520772471137832610483784750001539031378447511507828333795848423879217206086606242784278018736236951627463759543052297772237414804093666176349525926317935911063378227949465795239851696813133701849416283908384945569006859043906611009133728997464142907679960447009066966192137598670391441022652374607459200297852443015280699807660844667354042613205491048432767656284462538948375815443400269997523309546042656169854945916617099730150558284463426596098020915402839682764313336255643665822100024288211424491088044804069157307862781788235045351849124719879378658503117299258837177246014185155424627721300941328236931358859116953515589194473245723447961917786485988963438082071056147378090727724573902102363876274923293924372963445250906942900900825078579859688094712348614298412697901457989349679831135639691742658883750087064222127550993597181168153431368288377880983219921014296607350452306556482666551465636726066254076674945358149679908768461919655681573036341961378795582283668148073463947300689378841343712213609404126645601421090513990867897696364128095909094992161800230036267895911326860132038936840610062549215076848177443987144157327147791929422853454561776091994410864593626012661344594161499990502999982468377024186924608690591261577761366494661642702600165667421405060710409747740641904870731468787772400757603019057549002512164057827750980964587372454046932253429693658043606087187991921376566450357330522421437001836266570771021678689594777812199876177878983808248944749729890049270761324280639807144631425039898174760177890023067900437821194701792231673605777072568477014184850716714852435519323127704554261164564761679867460221559034357703913956177047491888683879675061480365071481832170012915758680254022164930582637145412869786761660704876751916474238488114374365528160438122791837952409484827575859242054162174817249297330945544622465306780350060777286364318257486716325363745939808177084846762458841393261680141870465733857036506519884326175900019832311473609950124497974154025590523985796647168219812214541545755722356713716743341685416510893813480415911192958844808727088430828900364005804793085321166176815014234153311600003832181717677468689423542984602214906091155831915436543133941064753460981770755504336610452256252652206358660683276767403507788800464369668488745346461026373674492759798393193532769471287649684007721998755513502729946836034227891145154216134058587180450724793401784398016964651779958324293691647953177161602499586546390089422085668631047637420795333387051651617395417700674404256853887012040164090845482340780457038210279328767357581859951207681596289508958804706757341556969968162314484281431098975229618908844235835782212298874709499035333321868797930372287447081617817385247823654292177015911788968130426988919839558956026453320437751676430372354706068824325618680371101531103336787648013919608003953482956428800335402842693516683463599957542875399745932666360687208129163812875952378260811645416547608254232326854119549765587760260795007227099215979939562505713932422925227433647860277554380686496781368469758035090688500494004387314256973870561744257530360182704668900683793104707974861257121282241404077641131622161029693120739816532812082775300609653126712386415900980127050928949090417001911831526463306699168123006373745322604123987888568008260234933997603190413649099967517753758075766653778971628608667916903530364422093048288025846956518238079918356710682335478403333621534335719452945061337160989617444793628642036856556895939167651308381575535496245105708838105184766935565471130892366338986057332308969765260791279998839864929600881690505168306502718194708855819721544273649051765852339161620592056647379940899412486829061622835412291188914178665220967580912679108261587165594553656064607086700551595613477474281505862619375556453904409465709431222530441691807081399691465994398681216864119912966078932817891506596191766411910469871674956076457754734293274714252630241996449119605039146521026168672104763573782948698698970121160383249926532967738987543695147955818926205358236867285273319974561068985962437567880777602076106475676424893540529690909942141162331807232382395095064678417328264504104646495264830918374345457230706673643085541982960326992051464898751349633932620394908107107914943987884554915468125642643701364224211096392690916542216452103347272682097123645438622334916829539122539029000985620429643511679449003250468151281084429262601262765729071059169117524063769645614363127840638510549639881739592341840196505124946162802867897195324123554703256916091660574421895132529404743967450905946021646649448509169067375054853570565563450802718633370085524074833194161512299603908275784917205776303352102658183553577653133275469042613173621730034051167629366457041456533379986238941517347263076122052607286267185381494150147494174671574623106325720956037082161190836597805475297976315125691602283476873487539625973436511226526777912355799132214737984989379457495526303148217141654500122453782721390302083384983544168325318444168548949109001198239333002926851986669210506133710513775829824607992034437765944716965268951470262969549153543608567199322818878864416151009460158437763640150733780503938843884151303900943498157901879447630033742304513350946596096924834129634606161923759710867389252631007825635539546908241326614928354803293638414380839803395172327224225498180723041664249766197692058484217540421144551412921518991428046687668116266244304066313530138848338835127678565548884841758672131208286671972827036436882019883717657425570202164362109877471129699782889753156385615998910657306756738312279231740088533237159650594420285911123584327763141440537688787835994820601405278079092075708910770704641422291983132035652435891291026242765768913022065494169009254320756660735454495487546358161275750464411665570967972942070915267916517850455777979453282097785490350401698966203456633877706239905600905199622112701563312093837199431431205695154801358571590723103470781014334023900477196463184303371510144793728461367312165130344252695298752523585665976002479046135025296493324014100167477588272112672953964131724737877026868188745330840368381714832482521779718841265506784707490850528180966412567100062317815027056921654543231752219740858293860734818191386707807876006073431129171724020688864083443570774773721112897869601203721677059653678982989491572275509108471089530929169884126910164788815372533913375002638427343336895261909330806654823545761261202752560618950837819452741807277590106282397668361122640286016335474874133893093023915684571809967523243908747577991804714405630444855226863488845878843581099524682130022443811007704703994977668936056509531142880154534136429910596299943963214593792658033303871582871486060592626652174840105390894806969275211439224158864544535570161146939179520618678758567063462646021300339564487483657169610438044933394413211117823196905594326193813153482344818157631609065351944345903860637396729783442749911631303962069754289915183582103510407215244791665135490109189771602639371724103636255991377413261250884517224560167867883900203428556831473839641795892097776924791358195678069932734901428601150315751637287018592624530818827915412802836142432856517885514062462632787839641779791311898873963977636134863179472224816878094769550820113464411275689259526397627118614488393196159564058101874845867949233726983001083170740157793706853872271597207687294441756512087899978079272150234777127915089826045398401762979046003524070737985379556045660425188699587326771083328838783448550029484881722928461778193893607121668084579829494259951083916920811602993850230619120431253788218337735752657630939088128920027502519708998467923956735043744102001029444655423905865973992638783015974877083304915142156612974782280886406680267620683420657886792663858827382833794993251260220588041719893628567597498569335392533895195984723189544758859324625906968293293075004534044547837136317614207265017974588555688517169982138176614066444456477484484110790028917670087225419978690521948688508697053410678409381126301277484802165180532897393798393021026997533846500131648444150351713753895311166472000582308486826697641939304909722024201142753937660731737622747792916891760705478097857942055038055623237892046259901266513388379590712102979717397300854476563802217500603815969884169380219552017970173475946485692157116675013879564856115460900596325296893900026102740183766499167450681522486558393799106660723854152916554914343521496102481688817947962545279364019547188714897411962017652670183503237011429634214148416081942118440818552543586182569196215335290109515452641289784759310469492123727278936160436676679704613321282136924660996768598141157374347957153531505822145907741741567982472392850397314198271652744298128099589980671339201357163169932328843143022327891246530889288728759397814916666442180714487743081632002845061144403174246266238221528228001818317489059463399417813535089455791328382426003640527067953697273661111647281004037703238053020299457852139815119409512810991421018501226517703995245851007892983901054645224619651012257796301966158839542322969365295082230766495809363134368417499793212995097429936099407907571707603379050788337797284265844275172607865124609004775088079476118880436268190695505856959014214127470565912693773367401186283262055942463027396646361918586894348753977261781852795371887791232908985930977930224317490786974973982118818614106841267945641848818845311887716074449921505485817284213074719580737323764675333026136135799486779765281708904535811634744596876384633783705348310432812349860497323375563675914903865349907995124258436564334104181766992230071395207237559422121138081509117323785384717748394297712845430282949826440479995942774916550838727903674801158294580934041947119085259525942782597921743405260348763753435091356441244802143095475137589346064879242885263586099465312427397106847381916110634420254109360924299928067307784992330123514835596859176927615448283358382413450877109471119610331126260060686154563723760815595129409108086547858479761412473017096425149700877315564118175835268615958369959426390875187828821462184233160509242255825890422761553778866794143440686239667820732432817969059557101934561128218806490404635111382738007460844233377320132032593963802764448885676753245290783605684808534262268442829194271068769208474626629782406186371026915327410841416409366015692535927063551472269501423028052743807114755279362898958667854297254921899566579675017858664736914434957554976084223770164049923742959878368166277577890585792694406386502787243535248348634913330039445276222174056563778959703595975324677062296233961620288933084010457666499498666642201280366577602489506132147317397979311860938533524059454492588770016850033781343235679822141311858830473330351122072358862002079613181269116394274759070837150517387963120680053475661375191982175241419911137931263609706470134173383937437813575857882257531256628416494959399487434143026811393765990624180927959166679403013039742233927997140270132699233590528911417773356434309161373300895992796350194293685287903075091669315856750143909107684364287870465332911046344005638642371538888464689773032066896773918603577215200181322682675158785570103452875829387073296137102524856665452419979988158826378649990307846740438609118811126938359865162606383457546774394382047766418212446151894520207902710092647387766231377056450714466837123884828737444359360678574506606975002016013153893123443051999520101404479786319580462086188077488811431296821055982691164467233518604516010465683330575084566734999796091865721596532951899598684432486738249568940799273349346879340723803900303776302483221730176303500813549977115028185419676159112470233035611393237745724467340165513950651892535302348565898759842319575281469408306647250629489431288733010166201731986830648117287247325602244813738744985672601966708986226283725419231545114434982061137330268495755338560730153415791388934772418961094951929064305031078221769204157445227930774909968115632129417701647981803045224826765695925416820155772658984283195433683321884530940681705794830518057986440032844263803245036975443381795091978847307848669801120677651160570310842144273754396543716246004172687514705444288813186278525998496811852177807720198092066714802509582906455952961956002137395710512648628140523347920745276083561608124233007120371966004589455223434168470694506758233593770076519990479834367735050330007667544952626514127198708423319287943073567902297124459660291424362521720812066882525156636391892907659621127681110805644137430980656357028364444448745342523652015888632875646937799867486916726485163646767041388137485881906953119150459389922520045485231596728580789478564626700930810936114065903682845338452045938771972274595084307461461093975974632389204433813167219091358015730747785794212478080069372740739648115545296664582011152489850999345259725906870672805397368910175867360251263446484172669590794235335028564500648691682385427774685873647275782478680213234875881423849261490504166411356127316137740215667225128306777518298134915288807516669094431249253117788910503243010807959803890742588569189328652896825652254822025134960675608165269966981015193458302004635666831860383185544334983010688939262668030225220054791995680491716095818061575698835679128785882592503062207738139323317416176168050206346750956512082366352498799270266029191727132984247000894919928582651137067100285887506003588167826703883029828560377989769251872646195428627939221467622304682180222277123920641387642251943153948625251565309925881457748371821340728439131723997984567905513683166661360124217217425609721838488850462173838015312457972585806936804649925134117091340858627937893583021218898618266976506244374220170531360789179943310840680167235293935297892812333989855562870724767216078580009800702699991473986566108722425633029270620499828333040066179653393153756811310713306655391199609769975991067021395979533447308043674537090952178013756750489801696748151722105322151335176966635152713775427470814292214234646899071106177087707893991616677369793896144491758118454078094685573555718778932038665006775205648657591560431754623912336690315086829432999525230424496194810290850616339737555783924337926845142686789226410701412847474430074289701687322251824060791223589883034157537036963074727469492503348482772702044040340647159692644740892448475856141857112915138921307924155389121699049172741522719997407477073153862939678963692264470273152157293218063335438057299250436084253032949830776131990505116652248894267430470331618473163999209074247128881811113699958779835461822062005641123174118814475303017944716251656196854457087543098763991570892219507803480249464563348735609837118747588918075298433753270068952702143182187266149685684841740110103165794737712637181085190579916097906942795628498437063680418378022818338266156208239793516983627849436094067110035346404783209157541019422019092718949281130741502479338232859381138686285007583742842163226254533262283338288911068220965884452731284812321257243206358435980384025613319914806913518460577622041958328728335735279791516477872039287672976336472782203339724526760979673682858164992112694963721324468876663541408136959338617010071812821748704181518577341887791789381592578355858582581679615321045031187964003934872645859138132350348851295229082959932061236422963953684451589982356917209644507356753455194687693504593163221740455323501762433127247835034165606437831201789600743244012825673936054883559444048416029422585740480804467746877220979654964420954030615317385455132341538575308615666567421290059243150484331334643107562757742812425727819058283411844916572019142813552825492081987047243659614114784972206614860066157673978199630385344897617074128637292550870889834769395623149182116836011915790939573674866061789587955480707300467855057208950100582414875074737011690100879814990781517009185371465228698710140999926405962659852300912849563447280096643994517167999585406909759326354281229491799708175945270436753438925259412477704098005656601819237528977819349365188690172571545548190923171805383823612125301680645811357140870132703904786559987480500288975621918316389539682883376759712429726619021286992592704829434811923455683378835752299291562235384467011547729622937089211566536574912283901522748072131853512693597564697228162500018031976364472668417602634761480952006698558057783946137072159998154656930113888158722214628502856927198015030057666546543666054799205917651203700149748470076241959794876816465388388879559204223921052647584558801463548848292592015753277196150750706233029289881369723162426915432006917001271213645917841544075030573183811761083453195183471748919236228468755356520256914991612126809440048063311450701523855109091750433927956432296160881800312596293627535290115237552295146084122738762106431001933977876630960216843901993883160322258126779390955311323423728827834034646886331809469392966924351722901238954723069482871336086127040801199843461174159958383204527707874646714173247623342162334384718352554093780805762633460835315505012843034952538714259659980500268033813091038394213202729290386605696447308934326511476034588743020979893288768936090727104429587770574761165238108241867214035979889179456544803839532178436760462454473481415125986078241981794589027394073790017863305355371310980753239025383836118900114477479638852948303232807085480813660448035548454899175169525186023363291378972952001910359295965285050868632896096526629870383519063443035625851147020661578470773024942488088970567360395668346253110285549531361058581320064806270300625470787793723230124538055333850434069739212627724457706044489730340061718728798389669576193783667750881884258906481599078478076127282422478773570938069681010163038684315777815157605537334611545784652480377046274237160403179068298468723758139456258454464218328001205209771719880245781935958538108273853791951506499272063607960673773081903697108069911960943295323988803591280581818959224062552307978564254331636679967446825313741296002985625681662291246880473697734756609361194635191262660120163186310335507822206757680353149852706533250947253817558215457914191585563552425768863324525678984507539276798635831489296653695979117880496409125477668643301431695809926817319856425750051004328339358152032746527113389118347621489758938633828049491260925538457142631074831689682559858367011779488289946240985204356791424385201369986127920618804859672508653422060114882728872811418363019944099242553429998176534039752758637035025843816508094153581657402680424225845276486240100515090656180517490786018946023628703893091361633147445659043839636511761083329253810634352817293257609706764132811593725179454617575141424204502691551837758565402690352541984774131949374880971028896514370750414052543875543735574583272650983233419018695862973192892864451590428699873679330375848871006636974897091995201519703865036591953405193484120107498838022024592723096361361865143925143302567888517086091794205135557011546680423422293052431729919664050749593782224885081296135995022362812823111116170327215605751165674382300803992816720510069882201083022418215715652244500427626378509186304260521267912326092007955715344207311874351190732409237782122411241980837666575057704461964816862207932728603979292760926841378632053845352057444417824950220861342303100321996172470465728448169903161537236419117996350359762086659521119128444088676784112776929021396689758364073592359600071863152118678866230529875445385021822542405467199194542763217848590672398224052057415668093885510460773626504375095625991745406875408998150451405677496909736432779720520414980264267233843935399196934234337985594077359495497749996895415274549922088196475803385809806010328480402246153701042467794260126364489075056152596183033577950106236787403625260453132182696133669777393198854957511533947126753488528294907849815621131397342788616785839686207842171290822259772484846175332638003591273898072594086184100406559094003114829373720483680320359385389707483266944038838392608521159412636297308755183037045771243564900756819138996528049141883073576765963526183334698181390319483042720115271980418361895431704627875837171490607696292768629525267088256991020170808576344101482094932164242606754023884713954918934189349995633607196110388526055151074239303278613914906384025006812658875884386687655957105853749293388939590953958217519452530790128770862918255492239569566380943428595290888792866241330043673374866814010234044810269603024053197014422606502110147772029651066445999928904985296171313379835256229047183265926617575297560154613307590596189090970043392104515350773248931347247378130946185389727980758876971888676499034168001455996006569654724741960446720110032238767913365546553623137577294483315612475693673988439599234853938530699085786780219912461221757703918268927385129895733867808134735802826665648988988555455384209036416070596775773319303831562052629713575380031374129701588792441427331350328810731622607732824546801450362982152140310380418411486561294883190980654843436025137516304214530517250270267535291806221667740612011237460693940329288773071586788984004766593533011483121681907655989004135930696443613581623487413326656792926726504421141371207107939189495802203922854665901986690560729685828819359204094278037621392866169919500189942615213376737028088353335775316301995532200287762657454481018310723802872596969648626372752493607327847872261841859545813527823109786166633012349619786224464539741768803519747543581562742608186624714198238158455684903988362325852105333236739492472373627227494388087904886109422818406933716116388969947927798136244856233841755742304469371051426316778024010935920126271196793616781455291664804316553081437377433471275987711416502157017139737250468623957464788726992188806078230604015902670723822270062016152343377999162834054484100085143559997188084948766280903335201503868046661504320932049140326177559298264833600210559600166546960082621688112750617687348438328495034420577444730002422521369363187671368191369379499895348662525617120058862413100515508423655279935841542989850816211058146447022397029948487934265156560002273303840668875639550515468016713689843026721259669333172941887074446664922767332633408876240842830464795367146389533625614295923712894680071338785806431590300883428672236718984434322930661891008381888416606220656159408648579066669316409691147297348354888956069528093500249831718649161623685282970037955920483796287490297632140944852452174209008698732051412848031854463626672944659864227502425884439226874019704631494287190151172718155090595939492136995533379448736287031559998016813285260679281560773424857630944897943987888853474246043937407594935304386824257547327833992476085559046638124535960447992800710751157173325714580923448463776308268758241062336426946945868780424711294644135152305136193049659240195733290045936643180923327725436736555743161792503853585091013761238327963705537237533920192132432338964908599418218191030555562808289225961740160495926690522790707379106555165178396716402096455942785784824563810500478758304635437298639743064946883319196293492120239498639809354420377592531555544664988700602630064031020785848237287437850948481489525520542650934541296976491140706415767105954977736666067880489574842445351721784560387917951627155585869507097626949551741329627763360107216623684232743605218311856251890039957079617114852902048888292620950152732141252023859573774633312915111427284648888600709467111909132466218783336883487422054765934020073600984401312253781740755748423036151048035903459151874204179712408839184562113769374279823456899435299598221393582003098408090373462894736255239177699125212748500248240555910258110835522472394919535511943190314070708223260260327251061619907620357114235840808927053388876327503695132432200366090741332232746205132339692522251036265087908203399884121881267342983031916420987090947631221158919365777203753539178957225993620767584829543500665883926800549568426912106135377232110814035333767010880335540491369822050718680079997434712086403380804726902228552029180252190393003365848545726226772554536738731896812989320223656087366957226821298533385981117028073301403220575943455524580428843876364405183176236719654535657339080673925808530531430244106394295863454371659714702959251204061610547003412442680330322069344023915659047746511392124919207071618839759096302193708758372814120429398518812280365082367867574748781821561960662397992847123481968055052046369543947904752543421254557842311867082540749399958943127204459615037304733697598223883978855295613907211356747736983966469116914537594395579697733211133800664615242320148207315419050668395896339069102722686779486649396079779140135505278768780356382073415388203145841216835694432187641990764625761082211585616953083899286362657182421056413508644682512224515827850552156335155625262021579925993420762266095920410881586679258412520355497675878031657685497886571099461861752790389643753789018637738545099304042452968606348004311160184019953107409543529617457163182376812539259552568427941683674471078512733527940657036091880593468393445210763325076577802795385333014007583752750459813937129821765847806670192702249680776662765512850958622550526137295305875704711864686770423999763805923097360979579598554559333205381383955830368873719385813798200817664981816669874023979183441655492228961196274427808437865386443696665701912559140046155020352163917740843011630149855125005513670992180150531784724651676580247680813048534822178300109854830416906406257674831866821284954098373998342344424816157751301356976129348094696627634261944124585522871178963649368390468183486029162331871050283421592438434252776188780296551611660986549731338887299989938190565208888593829565833498551654019373589595673416888507079174073936918211738894868272184548237650410879806246702729067865292091432693612677455670880329132519985065147811422786286595199576065234530901092546235087206267905064874072666758578916528617286838251327839717216703645823998800586237013616026521830185131790104617174858585352076227202493666453758030694533936223177799464397275594445313114576113531471535882177362835824266743021666853475189930950781035425844785213409162226391514067536076084141247441153655784839112704709492566763627160508570272288170733977827331028762237507488141851544501634325169760373384436868475288301412638449384821644665744437245455077193729252901291552424780968531496216133684191678029991639777688019768117743143759908192819100784649679775554099169689125783339760924404507350858587425803387910823767523946994316536203388634729967605852593491681833502498976455233134548411203023303765625253167680949640551202925817271312812208230370408965289883981150249920277221742131342066545363445058208992860257358184320759137592440734407811889515437129118860293053436808872079471411246472938972218056603694714716781501296284009700616319133550860011633710481546323995244256419042002510706612125581669901544205169622998476821754057719373569600984036008706652616593119333138140048034504227307431243312375918610503619769524144703058399512635649047145794226208026886799537458903566403544173458525512348406511618056625240211977933856174214768747040651047856343344794228366323237114060797350976891639459554329130108062643811912593168236038469629526702817197502628245474709498832381718710812449977823957423496211959942127580961489359356857316456216385426262659117287454917530714780489889056445928260970385639299752273769807307955675417087309121411628244531065035057573498674493721368150462326389574093102700592466157079313660914936116732997626248924126530049628183542643655619618600413311203082085831654231949035277812664337142521259351047538356684287475381441284950777566286509653983700172861283172136261117516602300478721897581566527079690766467536648392349985606525840575380242860346661532588660312624643723268515294697418726988435114765437986331247936673455856884646978057029539405654036385269829438137104862173172293473863611054992287094472963477092590822678989251737500561149568291950790069592912779059599012275012073034742306026600722573204592590037831450041354372184417069308556452811821756950751734894326874840934442443114035541111545058412379648812333118801524478993242649847025215775451111003288500630372543319040177248239992187225025378544885531005564248765648078195640067801998712058477516516750220380227397120196137201463457051668991144617680759201939382984250964851143700147328668678858637133106917474348283717868402435521849413065993396575755266465666113626269521476943848005837469749101377552421302409711940133701323135049953196294721603265154250747350716797295446270210265661203481019156018055847097831726185263086926553798507699277963264655013047170684098746544376439556556394523311368428603817674630356929279499277393777838954852843258171096939168294717407261838856479876691615401009793363972665153684080338914295414389983172452049137380034017254588730302740369969310769454868357722762351602820023477154483880722612598743588168111287303013012785365729468580993174598164166707623675793757360153120813892247942808178865452495581805720903120032241331398719076238864684576415420120546210503094150719859497135919382387157622418364458013120190052220281155908808678532406514589682781422748529470772895846163670122625661494532824231995242831082662369640301578331848820704187823210154662689383255188877871576219236021686108424300069299533602940731239459062287650741609058521129282776167933974373497465728976227109336333888170457709436486028341853958273149781897836148620145490558291798816152671017643204883960390480798134518804189588265579958769317138566929711672440428652114027848734370628362960013474171562470377357210618773402307438768404124776764295915288618811983382705535327815940116669293948633569098994596909428583290750796430330009078304594271798673466352168854288996648576165851956570121926000727987234618581873362441567112698013175912546210842884410798236476964488796313956328166861250673896350506867536046436185510298756414544374924281130822152863752427652384356304108838496041176873436750312099053042999245063703732166585685550175969437586721648699776363091704932785607075558935781088454038753218037173495700078416136783063252489137718840177744638788696149393565897490940623221648850203069935665296812374709754795120526081608058048339909214723017908101055229715379190180805590528325305484982948749538814773192153602842387741751363576261456394245385017495848781760310206478863268925396523310738384700873934423368050747710811055850032964354214162140952613033249491300827185145460524433798623257740132245946010787114737767687170561557483429107813217464491009969226160545003004026836132196356057888444023113618329220899473003281923890600609267176383563133955835229595059897931286268605694518376330010120331925540653275624472663661690467164613449399486341418300317560728204478202833548139272034280976999363326712005064040271950623068465797865895809851287368410870200584022021152389117268326189429422347765659613682429544507327745312332831917654487631133175130993578045650010807428033657395015412461442595448331413876510766699050533291672520412136266647674333541006491634828743236734369445181745330600069460940900047857620095990724467428117599270148921759577609971483002420254726168017194545948643410917021044221836745949147811837816042787938815296029917323892872428242175738707276838341609894458135902961827426677186539810751453993256286794372701606868156544379846860360378389137755920988309901375484529637784993317972507389009966915319344989578275814391157151661618494131287990900763429265746825230729575921005069687359391378382528536772376721174541498537063948221712207251984840930913377838763913196448771261901123598228281269653263256035190227062736417581609449093973133945064685221695646302390357802746361640056859299718654460512651984338130806893995135759092647695528387444442048169126192532896520000550700109226534088029478693877729415625710416575181551730479095845098333205020860260326120384032828171739004047019265168558822920267616410889125580608904604419356403360389009093529674067723341465147909721675277834930208568867979546629280742685692421594263828515205910907860356467313929085391814915004125970527018697578751684850292698099092809966547515074648709976041178602741461865330995805892337922384061944208196811261551167095318075976541806093379121957171008913164024755279822147000474804533930753348128656648612199011358122670167994662731913301200391939306631533287528225069604049421785240523161344269242949425351978111998206726870273086962822851626550597637010309715403389960009969672336906166310329714039549374892218071275979147460929381423190079435708524695738523680781080185672380293011745227397890919502149553724994746369438096903028850813922894380793205027453833678875455890631813744511707571681097700342165041102135390562420508028834052291399350289206603802268876145633916169837349326639336727262239616176527005144963965048686350879069391115229924694105544423326053471323716360299950295455870926281343959505275957250843976266574905064609946847799934094053305773411193168215710654300485051869249633741042154649459141134098846999445497409945128893512907772495641443319417105928571584431501298177828808574138740685966618948754769747355090937350057516504801971545816520087859795960888063865075747581200211386618490542636567480440455387587795510766254119443506404213107943256358789915166972778697244762388117566643453503121345574791986942093102093664158821160277983334684973471575835345227647004914351117896033784004019696137593401627200801292878934577382864991312349211542872812259839068894731823449906249610724249509855064028399961875869935926001420882368743952784675944087122490509789092985745736921407310302609479104107981622047587237219267577961655736024895795896361335721595635199861545914903141623968856428527738250657447117955023934120592524007434612699194830558387286099283933714668763852949276954920348683434297074610638462226694353725921626051186203299498066815524274801779305992457486808990552052945641854462726055628562597308024649218824182833155347368895532371803921980590617325230898613022228525420158744280782785869901252938719416325183550615820934724482099689646322798540705623496413641198479048810597237817680519979292597028701791452770219382890221127209657429990828720794419295690305949731295910681365088506556871628674506742186561700227968869039041410441622140283389640647377825638107607003569418326476759943001593529521504090600786776962695626215091151798377081970366522679266314156904027298705582671871992161403704225118483214081178462600774712434871393844228704473746382392000394338588155060581127901443384398093599267401694582842072816179653244750307199376964784079400880546963096513320609892923031486120087885287849614250856897494220847428492044003585711464902137664481865926936443855630799030470031545887987707548740569633792006283692408572319117182629080556815087914480546347562743515678100379794910026682524879126315756894008524509119056540992417877715271520053476233157552547123176363634080024539887723485323356277648389933867747970217055248685227411288846820080300730577121838448067882723654596198568525912500020093109018864006945198398789112935983848753061317262200724229465455896299317251605200623818888028461847569794011714606980721471328821751717075641915354478770713729778938231955697341157501825817501066931113183648176979811137018560889087925857975755785409038818680291647471888154164554411153439885607771710731592936143409708321437881796093561843582055489181770457847868693851366408088395823993913475596715853422635933937098722649503993312384321107169862024133999316253853593810120341201369782088597012038067719362696798688629976419285165100272145219676063041032413268542028904693899631207328186730262019623889417252657885879280399243710467001548483992862044126831848996887058400931694004968946091757185261989723340429139418537870386353579468106131994787509352155688746001651078829192627649570046075896604144706189423593894961265995592181333543178342903581098769285224451703465985033252473600020631310514569131272163719460067240576447143249002798887953645101578890903962646759602950668524095058086386416629163518096077531183194460949327879456147992867921420992718633257801492244894039884067801960976892557198148604109785239367756397853352284597478973899964617680377383561026855387967687089724571026740868815699078291946937233292499022708477403062901760563804122359256674511256778162526785479952635974022224651724748026097500670324506213871742539579566429874299621655361391176669810937703360282004948988953784332982729784745218466030834282397427262811536201046181103614074216465493421932997091779566127216317496774697939332140498248333270559093927941594203946364315647106352697017727677525757999695454448695939148231023520883658301569305209011324558923984256996379904420054584957330984752032714166745898035054427549666048220372667048291476694073527820176323568987371839849706017901635936837971118490370626364016149695034254364356978187897853342923005359440830374757746028755519900672429001247371444510334305571712238575044405063095899640498719299056529756902275119972803741589039511919961887951272203666468015671407310862413948453145301249863510286128753091402337913619068139920223758953574564939206942968179605998126915354458974500560674919021336597751720777698395212806180811227989638273908715896128427563048615679896007515425604233508419188057747258571193899837725348063306930519927669040214631783766538930127628868854367569032688003876673765846493835742530307985783383968170926752942317891063882967213326036066052092381889476842942207017175449555682558518728964783887894896072957286608674986394897727702625370782495550092863243816516164650259870960893630491618353355788529469470968613901859988937005775581797630505338202437785938000351674037326167089561006520435624961298017943752733135528077454723159570180915011834983368571845035107422348260892515600081641857331794466430891785971990192819705345236513785979081039271993943141040630257984144043349057206376645884755970352424955591809949029444856181332014737783110473682741755353356975392002755454491044388201263765025824987128661214713527965381080478980719090771371395997519202715972807079231619061095769711811018759542862138628432138370576514381042889919390163696229794294482120513785075883527978789092271664187666968203842557241132434048465777981466624772273433301931030695497168503628891748846448395772679188108866038092347569078531871111731778970664321182956033716273251180983886326021678343131177651313007147360227510200125599772451998707688866969430673948788101891413034359631349228486709394070633568020987751155986462596679428170383392569281326442476643467193955138899743449038675318800412221329647780017981098278931684786226434390660314032495663244495202700839914937235749505376359656467028486227476395624349441665198815668387923138161525837353295423188706813466334930828892700736247806472307838363588036077390250019536223056420161983254711995005664394750464713844412501460197215656681376073313200500469061852960353102518882008198256712581860348544258625582726700570356211055577887024174023258516020490434866211951903210073503317713775356196711257349924137855354724945901192124274600934816220566493992993127494830717144739783990308123818053280511497884068558407239858995487949578934619684881114894758207304947585110269721125098713875232512690277615339956665822402625730875598809944351002816641475048796017546143199414330258972500232411954167284593342683775284521063266400958316397624658457537569966206453415483303707119568948241667632000493220278981495794545862829200106766272975346835581771142344613113258937369358780427905807959516534035150392401437350747072956674858053848708541367326764633858734384203416702078041531540020081689987219879068782412909026924189356984725724149551858635623938933448326110774105748204006867660177676820229925261557375403173101069061628135254438834141269730685060587831684630630126321624588142496634706398702082823174695172014940698301625839960479015386448117632732745028457811667448643556169546813849866510596314961607994046801942161827714423558347941538049617502880543394217767474076842804508761294867951218090288280132973628493451763759558750045594098086442521999634721889372449501557515180059419547047947984299861715845701514196083514622652069513639609001548726766112902111787430912737370688519735764114603211175457536639053961476058366339478008327368522510734108777834364902567491530257269213933959500807549382808583643805468170574823129292862965480612535379511327626943668560133709930704218079246436445147253268507398541955042289696879376392824305294483278043664072532232521917589551513839411075867945171174951107897992328644218093748810471700130555615984541658731830656074249956472850103751776625282110757366898398683157419838015488398624822523667361369297567535847135211136956288193133326807206814685043997700008749807455793578696946378210733793990275641668337986221315687119034889678329672540167996690123127158359533492839607182263816447201626299360873586576350214834678169195262701744181035964589011104976986061952820166855247346917933005981655258138736346674105059636584849420384483673330789789853270698635751763362113247505851342670947480389903203966047445096343182772245182586093844375890458768040147668187470835760806856918047430267022961331814006395825550819985550734608651406041545529089658676302639759391617844935629818884679141337786633572137387849978743508529545744708848546058561706183410419124952056160320485754180515201530746343480156075497693328759895151601199909017983538474367598288591120176456680687074295750559585362838150006786985485074449196791192114876283884580854448180791429129288192086149709836636640292841970438780766319920504106899305009353457605688312215727237535073327070544629480811330360829335517409192657513709255010551475192854214761539197931936519582099984655623794177387092516235180629193721097848581918835055794929622374427056180115465324374525593525772796750098081338147160060561429866316969101064582913330147972478085094986521151641866528854158668580783372279100800930861946186658314448296366317954277228574303035348159883933620270500476627248703088766413109445606168142273617715675027887468115845447155711199574500129890418665057008455887884101225631989172102868086048861278433273159274511702519652426636849793835885035184691514887381546504427608667326835298464457457508191991230861372457458615330009830389286225848405085432980068925426576441492646433684855895723361204651079925458961037089919102789046493661458304631234767648463790686152978031415176922980615648046575430854968688815544965407507154539562695372353725995949879590474826448188511286730622600834777279181441474221445790994534812552137292979569478903238946717323367600507932983802820018010479998699992445311093261707939194876937631536237551969399297251807690287582842167766712467370462734464539475652662639267326504480809786406823212423617151556205769997576927563134405576071446122475092647577899948204267186490834008639137705375705475148608882100330089221205161446730391436714582458927048942452978364728687637149875812171557998257101292756314425539929175260871839020736453895686082575065399107840209488384944077883425494472715480260735315640651633004282106166179864878883991967198591815251691570909009004337062273984160383205832939892745640753222808931871960876058499674447904792919150556435632489735510808570918304923409076125975418893563844855063577871963241822690597490922906594101429064575662709552476758415615754302576576885402465667566316430282020659138511551291337050390173076481832880421729242200270381507049369384773632666437639925007611111040728071310130802215039217981877339828924817382716500152952247790793089096601756504924764748488105931447104443186973563338861600010769269144204836861069046578004297601194821153860244229183241221928569041992782114146444611705021607427338444638306359121059968013895107833754918703262862031878541274748112059941524056331538874293305017831567309827949812136428235191962363991936079888407197437515477140644106182218112893873667849604157114636794880449228741893542021278517469880059165243613495829498480774235260501609029284657523186061238247950015632652619365500998209184310562461192086253489114483174787056867394351792318965018553404295265194474754792686937397035340133749475801997650201176301041947837501690544095010724909762111951759477916320763560081859439118221573924368354694886455707826787865718320577205666009097252341962988264027995299706094664614613734630882065626933444023060544855197268999214998147674507930894937117762530785391790470149805452042126936671790626034752148482864665679305438936256082439120865101143534948932442236399111021968943730351944364739824298045302101545340701014945507912621556592428702266767829439613342415192324207582254904137026089817936355669806657104267519041417633568024666655482569173601164194455643195865537090720972695285962373834144805996105187846714080950193599858150760182242319293573780787198815191345781420642155885425390308193445520310376374423510144337846854966486718149303714254651870071012439426621270196260987980115971107313965981664845125410723512214261091837127636105827375295321432800367415171220259388864699210492272417577088979871388337614146670958471981174494855120356898232187483943395825478163968197203867258384999528350682746433503550094585195000526073691092355167796124358352666315875420957987840356439821912141120416496488271739825657662587050675187605327355204407303513124485264495731413151138402122084551640047468528372075155335707343058892686747211239813250503403677571688034260453305527697817884389511002756055285914822342253947142934482847631146064081664771763945253215316867236687499515556815098404344280532373455972633527621402850356922107719937542061734713833005967637760160501717817246032899262278248931724806999180322087744902434269333825270663980025218139961766746308823319633938456703723787833709381526269043162771557537863663316421132753441417544318165173235721992129594677010013647208448504277161173107037737736359471257624847163936090709580288973385008246305856582346194534120134953543788207848054577451903700317886576893420169850998597197000906445194815299974351274681071969376685386630606772456260274165824646295642759723591220127704902322426052854092125934200606437994822274911820531464222947556900370969493762002025146747853223872243035163392690060853199207501807215972457242252546495327378037425901587903526631593644063081625456874677076524777015637697199972371460237208046641305014890057619177033694435628359701778842986552015760133326669148029171079038281693673603841942405074201499945786979448131221106115916366011591817941247473635386481902620810841346925567341800361328338597510760009978882802817874555672011840656157905565215170798252429755592673302972293255415583103348249449234180667561839882284525326461883180961112799739476830012870210495554605391769792547928288382985014339163545353441560339279049544288597411019880902327972512193321720188438462470969181622727173925372250134764175154825148574683967223478620011874638227154352337563669663906955204417092131012161870888419998843655460551000575444221729528238306365981491613950717409171716972614299064110884175610709276988427367312516187209014463604910723582795312710568931231487977880521165786861029179919681479851557793625481224895293160596836563113493856832085562221282172644319243425015770682938372640126643624354930027033267668745339048931583507807731447495737846170636604115977213087687473868609450545819112122532211986539891608548690074457877868801141537000924104478191391389525826946590139343863837508023394048473929502532997818660468026670765947219180677025710933804341081474630028551143366585343595754810772725581738853168319561325027705279191629969039511845114387235677685429228123837566249749243823214887498728124491425574781602576260928288439899938528916463541215365866958915364497817981258844194414421321328976069147187825988456600503874349983798455087550926104795691556970888174855059860624779737470899197963710253395061153703462821964815491084175250548689588003469868315830630676015303168959410160465673884944555529722581729329435613553227761614696888848413265460879341309157853964165931909903960210727450881117525968926633604187185168897819876412779665368460058686239962561980918173316639386300759618543897260576330541571678367288414040038502365457324152778892039874353588540460604253103293635717648294253870153978323112279191385983272926928381727971331953590002917064677803794200550832279745555367843421133790696661756959763776442235561148656830970383421684944125224984072355529193408040019918939066178231572692244446986098111956964472316924383686081918710723907336017912168445147010016111844985776211909680638121097043842615528525941270568245690948817531479132113173753917013199900763110544319866790114145847920634662917510557706830977135560499788450697737414507114820435899577573504283738367644339150088266527591187287746657314149652361477071607950704338224385537851381919153627934821366555881611678283146962845021789687180445461273751345552139999539694039049684149578590378901401233964804860081598573100462513118858258802759817050824038701705601337141447594971540444958958668137477254727761546383108143758282351577829552122929049694875199303923281062986269563405068826522755945430135660381956512628582512379777908178263500801519238431769357427267575968811040464556291116080513033299954207818963229222603967405843590247013168916511738119181854240614147397490513191759225752141009445650503956477358261394577989493921841232907735076593991346296213947230080423471400500867626457258502252784548719485039511533851094670393653007905625581524394015860187482161134604685235727491692651316269762080371379867475878548854782775581147024163319479650972008022393372886888358737819979038663484375451689167798378708965424698943748889617242977909849361323865630206889965902989264593441024944059665718640098745768799023709452013009607707327532964332385193621525624604228265934375031756603639418858627820617724511873084022918128828196901888836990929353471432325965996438585743220145674586182927257035911046580528826763707456786077050803093649569868668969901411945903186144892280056767376769261087937646457801958478164181540877115092478258203065213929910007026920525742533354552250073367411073055602716519438112157052734764391021856484599231734507361747139043045040958562895406265348502625097528083569368697697832514148176334428234828045816818476893285451652946011121594656934534272428126214313002428616881498019562858460634922573355508696297494976996159376425393543023896557994599565606839089484989466760486103794773890421898648934016774434649049573370872345625940303311483728556653911877275721487281981738471739625343174340435302374076922585094664424533389538561076236951663586718947384803276089107814265470989837617158302383341638932437831040222531382427731741447010795822138987913281451828671439749932174772022493482364377688732837948136111197128213010027154957223959654583603874202367984668373848112633491107869535378870443303624319305429765696845869029171934827640985295877321732992862764035186357986729102767215942190511032773636625733173708767764615132739022928059267287162860265575994398136764470516497463199661055171217669181539045563455562343613627714027853486798818391769960541930373636270374939536299468344929849103489498677810773110957978789613057985017687542160185196110307490173622724922474699361606807029686781114516607152346692730585266983829679232890290752740389085184567448582585738176770469095174802914117598256611603080232691962609566003899503536756375456759855812722998409911850213713271101337828875896499162215199476554650836876744527779075756245132129609320847802053137707601571927384348733877605542106199561133011615416440197488397214708280675359749795668028937435072025079798141258419825090375163349381084701131321310378667040253516481438913226185412089116205670778135138446463754772316841889102759818442661588170909929665500213055904922982679441931347080090401918908572306113900588728648384103455716055201585082774290822540773441551405116585292259160765044949028526350443665336673841114873189761708486727702976090053520410501130123464876876028135293912758940947767850919869936788459753429276795718658332792083729288137250356439253190267453827016587715705550644066002633644541179660072137165174125598308643838064412947354818162409755385697974492782591632559749431446470848993358438013984790396978974018400869560976773947116547374285033290933922811398630200569132509529767276677256334867532157172714481375425058057631381176120240277972889994534171984434943068276903421197190018356289223166128830265703258684363179157563169049020467588002310802667402839570062814895140152223601049624554549621531795257770944613891722203517368542331770337442620431066110277585615402084911709789021083805937125850165970387965146140109353457519630543160421454640957036316695131425356822801091160852408607000330538355767142948137116475858376239088960392153503201388224104667415088675792359731092257564873246984451971264165351224895501110227149901582761876069545078448161669389491603456528304871564262381483400153558882337497045506788651331489796894467664568879431061888618111866315038914362430814037349886633672362918931572060327403395936412855439263884611686768158425226066768109473181879588316077460709690781704668561423128699305964836160512295806728082110570006525780151288940161087236895477031482706478428771680664922412511844443903153138681000555917250693567055526856433573501937478925232419776430746569465423557877404737570552718515064689290638541998621360105610971912822988189295605533254248262944565779051653211312740211995092133501505433325124783875500553489817347293818881822830651736040539908993697125721940065071207087863996212322563653107621069439792173832980139084102330147422108849997928708566511063792466356932090035886461382550298644863434324889630411368151783619546828360080473701154976290591843748362033994754163446260333636970948381015496297933181104804061279472538159203859929567871718238158892175692204550526939142423732684986597023417827769224783368026944131967617732512434221366362570617985074306424990880309356930439792405692135033216279603339287759182376233386154319582359335127277425866134548355228182382657695044722703847583209445938123526019615276031903996400889870475219648009822664038327303695576614648134288017786041508584433945007867679505188453109721339612469022897838198290132775651787869010780186322355252021262783105884746453223502986946175034128280399822993423133525622837678574139393805025033903127981819995682398408061690698782554509725159418359140625010863363705041561097508215958122637791551281706456124833793776097205274145789392258187849410559053017973232116420408506961119465985187808159026968225520155263792065391792846779723320545309123260620585900800728914335830304916347777430435151909390888629747192568888933092396501118872589197017941734630181045133813677932598848488276940701351139122713892537024213746428509095848776502836835462225650162041852245562458908437057017688538275588772314848175043330747136481390394317145736539098390891055210726894928661533551131926306073058024220345134271176083379757677745197309651713050902138160243764143742939376585438801675727461375540941269256051407965831586470750338016823544407190354089394671651388284905866901511566241648732180533091331614450906536323616582968571569259865819856140131927921969718529968053736046607243445178595994396876412055075354638564757482696380974222751106132090363861058149474907008076644045148561091533757464125119252211312695943727323416896915285623187895905017488076266818898927299230690391940109268197021790125596417580877406440229394769201994002149563202459083999750645750119969749009438293784672423116409614989732479475114100928889982691013757910027753272409551544703540379019278385185541178083513394976423065418304872225530251521472117175158954451608134554556407486355468856573648132912111120535070430405833838335332585562374769487078644666784235088443283847671930194756355594138816968083457697073449758145346751528004879965806996901336933120209297429045983763628693467392791997477855152762635862923691924730981492233818178455847319051255786603240612015466331432501217596182194137804784861637337224813652032817981166788009121668345057107264205198012760919128374410731668316072366707896364757756101994243131877408307040866959600755619210943634889001518178160069940083027613809689375800270927288836754374810477057956827565482073528380479746447789469710112821957742476268050634227269615356468671339358044316054982808574075004699765625772058852373490098575012604246294383265150136701450076062476607471575059094423575048890541300092429264169234451059838008966570619362345890103361598625317168267332850376980212412362858267738229618328843716485600459754009639289160165711730829970059398927729718645082959489524913524538183406510321113654610125185330852296254087597590965309160716154367492544274592113482903060419473304496280197823833808482826488749540148222191789726540809986089451229974071905684340159359144562577760542629321200140435573220928173897075048036816084738543818663285284749154753094514165055320861206225055031949291656286753391632033902321928814089558413104510388966645266712291100021086444242393224437173180736939161364620175557041986415736877659224449012585763719528277714410704175783633121587136708685715780652660156595565908362613358843289258818725090320596683172204697071088803808584272825594603485543119451184859173305708667084618405418536533230920772103137487967791678967799561151073988459213946815664137668608563039092498548647762858609753004116356604837149386006351262582842395426362908101527530743464448269583208844701834565393081955563718315937852883646056796981442728138077738561284039675560938303066783476449166623345536733671859461146826615587587004413699271463720062987467643704060309358246194121229237548702969972192662784680694098207212603113020684048984387324994597106643553755894627019360869876556405149429677863509213075243394215690047892933390671956759332639671544380656839627371154981470728053545711689099016901669359930500175524981842976205820756692783893472911417372213627533808133573640254539441257250567670861584200877660019378729610589840596834053568888766085714425348043136179456914774050689968169437083185066955592937720810148523607692790227271655344771403497970761631559738828654238176797485707572112226979104441789260109707634235023061312925358935309916964488332659964734499236408704376407614185905047278410221146983788693272739460913541057113380450348727560422622582823583890038417760037986170957948067900929006919378685823566736602859746949853288769857637835077913711470538844297024736876789132567178422963874412590289691523272122310446031351751016677185976160259097470437950496574412175442241996373961085364345775672602637621761344752186405165694771333162118084469517228680691485229215415561508409511678142194576165172552766308253036783027639877654455836155278934832850833226054128906442083536237171924882470937356646387922617232594812132891674410186543270913974864204984440178346700040029671832119123671963179965590652090986513433676253468368992304530067675922497425428798102851024840543284473130314335364925283438603001974297846781491640546863845054881397617380635926771251002518945974914603584994722045909829915070848836266957864596435066786151119532094163812661314984112568543281554730049899670241209384332821832199112916965711794152749129619507140862142910292958855147524625353422799984195824627096790304913280828483491774249522134531429415462636030729992194951846645820578899661269029380224987382101676388561913819072069891314814820023595797405554202486943214467460295572157583244950395878901694912747624694879148710091635521286240162508035042383061506924941187543508165897195418233336656453146608772079052079284732748389910098297177529709718122096620040588802649311275100681535414896324128265025851164711890822059649918504635211585835169424171978577062107085586981167573954150056648699872896837490406030400157761852022783062186437759538325409091913400063707538706686932711758242896272451044069903929900042063416270759048437355343628895913358286743482650029330320759273146965124497492677635402077801641201130088640920367539665408379654906001499785895881320883227399778758925024394598933595481928430846159097548131742015444337839270362634456110807315312447273154248741433214423810838737481149075990707495916196360811893335588682140001049605151440999080585062937334149882170436000787261012840253147173322800058587076784688574413186671967708538556211035083613090629008498700391188790751767770762750554254984746934126838561544734295267192508036977621898929792812224907676355238663694925656134701455993189011570211453113253651493928483236387753601223423690939496385481351632049434330426185437794271587198917470579572703975392208815699786708140428685553270220427800505912469600145211605841035190308176837334896262215945897380489217200225266575680326843933657534198407531111824753315775320853411807299932072578232626039080061471119110174525793229719733788980180746955865387967855658747701569989141078941425174310907533918236885257225496735256694944514197043499747203712687592513995265936923150196937798460814935677626461626339706227217440330044804658458138741314578020454589682799531160140238353680357871721129109954595997602186915672004190857730837551534760726267432407577559700338838127151550662334456540933266143377204673018875906977751078233612849557493254697089109478959421469074343253570684844835090284943800670694422239015957846137703016151733590849576957942264773780580183747945968787502819463615443849424625388836648193460494769368771496465534414016957015386555276396890902941683505624405831639162961717015590317757317473641861823826976324391163749258471941416020273295986379217950705967946309152440560132199153996973685699004865611477873669050362378996779573982306305891705057942800972235800473738729276657524762388731886366152241272000108985237748837083143188281163285363778201206754034344028216940929199805823212779467155184579841760002256596667111623805626871292556871548655280260028290395604392585714910229382341672402481297858465301484611149568888380861907561410389026954780027377166863290137358731739423180837602749388421714691148331573456275931765066372976635321061489763085901232795199803340864116055483425833657245065416123191487548307439492201945164281477806223793156483783344554630608236292529040802703655482968092607636458301135174587345878906727172914483440075754915677697137661471652900420949819432824087578867750627729792186443148118005172604910698399583611360941558455649092590790236353453790174562811472009760976301900879041525430343639964298370131453827988286922284994730822654499705716011980317241135039549395553510545970419041106215206050457637265953682914884953487291257517351468076545069807799129802357735344623297662699173497992563191099585396761560178212401680550241730050289648821945656890709290125520590643094414210267097868013100204081031628330286339967492105265548527021707257417219773766113870653931327413501872496306588009216877821909613556461035134142214244810126224122920324319987389307795279295778982755547796456286697342931873265958812799276762414369205207869366201617532904497002985121343032122337483848408505635428213660693766580781677167871014891254591903115280452848917197932810469266099628298461513720742311122077142201971922021805510359516733966106181832272929051946082555738747095876538788339277210442234651228145839959227810945758893124154971617573411620827685714098753268768080521282095381417938494504356533013584172262654174963402807202475160015142303033951970689620355941037820741838782619855953767524931876998583603415552640323286753795029988705753157210123332277285622084966155384839902655229550706052518793655790330608596547451858918013361770188640340743902353290913231094319464655711507816941522266870537303989103513944113208483000034466555010268506408652120528051117405134806374542053759629883951586844054989562075665787013152928899453215678292743317632166841265669873291866965741263928739649116029162052053867144642531817701186478120467622505126295557652007719651154969740483044838046373045186913488996373794393669975749247254366640455317726125477293567034578087206545382963307822381642131707616413546679250370546439496829435910098611946597585097451324478964708616590364653609110806408060351236043818208377595338619515567351893847652666953353969766671367665024462032113087547139682020477033483064502903124086292990929758968180522069905534482220454382052461365571105821944464940850021399879655306196204764333676970164958632261383903788277067591108709644548569482502038860118354699948424761727838027510671380586000189034038084684852129671485329354359942407657666672258137916547526638570702098603033858243390464912940597886587650072024099736532441338315401899632402925064993027029745520960590481173807199213679152413723615557424703034745008759990982651189713384868866478769869921589989251276798652403137863399163689715222205047489582451290302398023931035154107719299775946602525466810658040595773466715960736596465208232951540320058968914003165905674986365920980129573227610386170226693832147984647020303369149503949572338642671929897988473489837592950625260794499968844470972226674669772030829681472204181346840594196456893101285743224088187847530801213233904093482064404170286980656815389960994591567699196479485762625313540684281727406081998349820846583423489415829936348900808558049841619008831049973791553167951218833730141570515390093395045257693494361417123891061201962093249616967222457391279405374842263738005349122509185675026548132076268525618433772785782223633601508881847927521254920656381764311565457756054143831034832089280876842280805703317193798604806933244169957000503574461661268795516778514304067304815141678482801227768934430489800225455055651141829421328604573508728390889889802513507341951990994461049737922607001292369341148696547633713581343621079383570089745147565712888356989999748816766325377164140064904760303757923445261406189012833574878129440452102382604654510557168977156204824053839794570931730271764468523201492364070973588691411400434554241202031482558850952792976537853434733194116243765361313291843754955142834548568647142435557742440278631376016975748586471222062299212098323944093881416568634778425674337086505169681670843641956029478124136219482064631220260791813464875201986809882292703220329565098276864264987858117451270015108570504636514416229335316150853186893218382033179759725918326978769347110540957308158708501617426585588621704998419426321109256197751893257005020318208073595129437839057820958767587473734895255456530324824155565473343785802431657558638105084610106431105858572679043206610971890835087221888065616689238733646989803817147157437986476416517460269605922827341888708690670400857870400043605704090525690911729051051624902978161386909670513104870150771893769589840885718225690362976314798021384405617170978625777487140438738076052331521534900342049110283865284123841474416087690431200169789396568504165885780052310059770637116175168856199043729392184481635995810417202978476740623849307196202480613416064337964893982561661370544051953834616709532238761608916118719968886686811509493704724814221872449014322914439643375697643003192795208348501453468073065121050880752424196120687797646958506873194966941098410819887618850979039460559633432459413525709194381633551819536663178304574585708297074045519565121149495513043650634414810521585577734158536445632961885026356139726347118492494942180221196852936038679041291717024443644471958395723034326941966004200295298587897594475688128923839666889501631259299827455492728397523480127178547813447497187524988798932996998468295330563370431571847330370181680886261787414708079953082866400962706815033120232358220724406255698282542455156176715912505966711460584103202894942645458347851579695616906057093441168947246155372903490695285050888475405131715748426244708309806329760595192552790369880245875999054469033577071884777417127924196390483086378904336914873651643954831709434444052281193488690487652852733903654432332907032885731729147428598376712511691933890788700074419951649926622916533505221354215622290440795926623028065988650002908328441104749464494241796173826317797158072816819851849841977500006582158008093246800251574678715917282571522315374609478124935858592798592151635864750633931337153322157606145773783056147920840185312753699131679570889134490156756158144880668457339785317698916530445290108838129902249914673095864935734237220307989636654858187473730678382167765647021568168781780920180954420788212848107992037106001945156643784397424794898451961183880374221411722894731099856337313348040501209936693420898645478275838957997506818923241498075405824515807086150257628496431588695302726731078780320698354296650094357821068198797576404345368804048085983943388962117888631770797817657562182743676614048838561050396976478802849950060967431820826637850267030951085068094149187311195874984191868369089836391093905342413253916241252513628898174284751420610672831935095336447231023292920059832978307717965053501895341226526114929258011181210749807445184361783729928902950071691225688726475562678667017877186195440332197133900050240861101428358378283131123171984200666972544481595148269678984453275955730709121575331053904936655401539195493645973052944177132842942982642328225079438128191771141824016535069285733877845003885777618451419887205711801109072449207348489484167317373137957225805156421671725379807590751443614825718316698904666965739204007017806422668851456726450070373679821431212437114522347184301826260916941817185295731219260252478369869423557396649586410313892040566671312606860242899317138003091648915549211485629565278884088348533489650006113698101403701377761977730095943683875685265249926447484788231091498343828015686865630204860753472982126728569522257627187040240413603182046516563144424305785900393021345200384644145885512362109132533607279265705507766662330949716897242988220842864440585416490857349643198537629341946055077787472142588827231128183764044222275906015775832932141839213047970707145695089923497610970681618221287076284163905966139131015723871337894035704483862958574200674707424143592911873000541732642147655639845722753294816775166861850710490393846805629943722530803394444348429778753827725632061693752853753541461126998494917023047619627740264663358187765693908277035939781409943541105917866759463371661390814463092634544007151184540188929126297032668202318731159309032086259664063203182489809119854567428749276143861904274153365773524364775416914805208026586627617974288953670028342792096705520903423932199785143444090892847514411619907465407096971221795341425305832045618755429355926461909412071981810291105504976477446975823841746000779509715586380560970846882069539545219836290423957149642140069035101681203537986968920730276657598749219652075764746464070694778927930903530955180806767736152117736518901602802527186667402440215736852461692847672432733928421728088091096151104552186987228802447537260402744132241206708755932156084586516575466489032238694847102274856838890456924084379101251881791187223063414415998200565158139599025147154180668176880054127460048883089006975188642973581810598600944949111829698009814616876426666797612764780324238773972088381295235473340494025829010505488671629518940270732360558799048304412144757149217729810004656571847830849277159939602191198127520090926675933489232912100903581201314832182564249197674024744439215965135914961466194612102389533863374771117981170171949242019788237848227368527311470014573290878600652872049255395507501867493548747652642862469982425695696844010335307710738232495311222127041235707949694160897860116774744865575749606410675102828884180002675597500229596584558912382845997160779387419459386871699758952778507367069186149113318863690614362685662336928347896126223844590783702277298325271627582593569947727388371410691667811180449243320421970467245330950744266232692238012189711070909263448133875019165748895964405686797074769266088907145153448784504044033236195095835331501659318656406630585775756799683595437256655925449723061029960325142765431602142957112920222637411784415070532011646326042498078474783735033435694835442518431899765360567447681318485562915815555318666676962702067836901189010531893600927789742081672024344379624546908796059922402299015476713644150636230949236457980141436858663162884149903612532841200468973829547152956068258112134224554335109636630725294702206499463427274959976126681699105336199852073783776607582075695652954142000167806974482871628496686193773588941859127722683747155078330908127560333588268154502762437099169490568714103344446687917004733519577141156127337845405757598181697677372011657167617065798595256403664310307280059005260713222657275396875100326162325092987812465776384732468560680216145889459584475539224650932254535201026954492950963140618827794975864678495865094853163938591865873854887210789278640301641341773084186948898276817810079154828559792992716274336692201862814188348882326417213925319003459519994375755816302836052922469369656828026619698674728390906715594159814228031575846531326265902105274285114165350174033090472001051944189742254625012360823492282805799647949782883922827389361489546079264666421861014834215803977676299061383445867025377437991396660167137436636933262888540147266341285260262021210902118529832486773004365804832454027257849571908755234893939776338327375417518183426071812605689665237646701934530018626959838223432132061248386121038922556455040234658923315231826101466156458264316674494984351337860821464174051507358592034299348823707774052013156802448963546592797479406999186805813501008388082679124703306002581586970000244608046621407245371400111277388853370256448035920402974480379530891101788246364240210941321546706451847409585672991769105186948660202990927553040683015791192432890674423527719425405386201814355182548148552778451419823269753493847408589839013800097565083997305007345548571157278904574609896343754411439125065754774649503909179831447804363398942314046443834135439243479538711917836932163476992603999812688639202890007890075485232865782220915974719903907385479967644296579936736517337209523710262294634187903154936382309380045451857940879131472416166081803871853848149456344776440283255963633565000341206579342894118820238583658575428609939866362490250946899592952180109822855709467232493756183618318846600297805185120261652869775561856057341949198924839265816180788830527610438883551990131824267831715284435601720317320946496964033669672583088747334303368274170467947480117686805186606071881636055521934964620668433315730201800593637186092300761878789356961492343672771544140103768906061358082970202906997215244602334953498567526685372533921768265893998710589582694541682325351926824379212027374317288136749048171747284167266268631418554880740621738874109701541318979595844772224888392929366609406900866784876907596823705603613031103916567403008937236823212113528826575450358604741783076010849180866303845789623433604557338150000321158794167144815685866729579762515285748066850759031852275682057001139146889799388723063719814192211986606035020067891483660694929913149943421999260637433055973582684987073448141764974281332852275759743701854998628210748790172717448598857056393306003441916488152550957311541140900902215041891185105190141122769781896801648350688443684834597872436170217398597007570168111743232920660545552885683904474433937261035882551640451772308533582015104043649079448927307159057055448349560391054963431811451555627937000001603442204276814170443761641913370842965562892679054370772389404235731944271298056108294987539103848528346196511870449769026432909327883856567580382944790260504455300848454610270352186477196773268481545409402165805589557623175304035894415828807687967412168631795546000462480448230982671883091507471426899016098603522885693530743443128911151739143671780572205441627154783295002538173059464177649545285194060026202482121123124540201975809629589728195692059087242128879646687934899462299617997742664031008798249346768183328681404631492707835443204986950848850303680823769256969688807848969021565376638050144782424356822087153469149567932638092878165013127731248425164555558142668213979240357867222362156778033544548053545699341903330630686665461285418805494229626804055041417211882228094349097865402727458200818605517487487226492602518942529575879959426824218413505566917273997794819269267265792286876804696652361740473790468721377892025060464693492047796905611945359623112381562010267754077251363602742507762344922965043024102097343891019894791330759590490029892195553143785958969401513869500418186990437916315622352193941486868552166335611243963174328912499407822440107044985439114005521436496325108650400093308002033453911427387682243523589125146966233294823216688953233042302027314363974580950002202567217455726043799612154289084462797500679085099085252035852868957431489808473352650442357623040434139360007617364483246889459926416774835352129994748527472518790200652268334957602012844381657518773881255256553035110229422911408725487293972644201584943895041717798029569612738390213605675707770484344609634028427109325623206549912570372631403512131684800233052110600337665077475589766662454213291208328581768729417644464376115613521700038922442652210274138192762482980859417764887210483098981481870495984345013816683762730018913824007981337845056973104142780009257846727476227103430029920385220426993417360637516205818020116580690478630815875255434981914327505160232363926042511141530353645118150294270507481693579663936588433143396002530288537671433959561199250808115907019241174191786244562933764556240818193695280955563697341725169170273201184928624525002125987420648140101303199426760291471398027379285315787390558387000985700628432008861273038602870446040682212104673595309538565464819247984892752612407527987477488282186784146995081742059976610872462284356945099135827017242637933199762720533282396238343032010036240132008299662063470975776862833153327836402263388857772867559460785490074870930697114338231297837715601518660194224047000767034526126843801566618479415215240902471865843713309992056699509061236866882311246121763388809115556622676723772433858726204745977601588721115670398528997464315827775311545036053443199700635641800591517207976241278962705559102478078107705785981801380821284081312214386194545709194281522578814922214281848165415568851768908881253444096432004921079321263442856806297633560469039428559822953385952960504022289700269442715895632342375342715340821151947244869765227149884436352214275618540261939678209469449874307509508242148468163387850187107398578478465922284036476410863486412061557957386640545937745864138388030255301219927354248124168461131953542587122298277120548965135388004209002289697613770649473021205485170324368961112792211912185407505009998154410853997494214800562959901539118188719582749868000396077738989194357235674831833521230933183824937599401976352869923342825999754489710881723083473463883660400158829588079265648992667862171656714239166799238861761595648581809916216328088799962278044141767024552768240682444145621170429370146130274033694953672888748950665018627030854669835211579288685244755159624279198454789515389332728808351588426566752988042123989251493188352204292079138916375348225170112450948025477674186210678197862674058407922425698561157549264064941343408765720190181187870893478645379907248228144338703948986383656861387382234030739766764103083874450698297750256294819328174484292707961185767106707577512346856316090616603425325754007472757565553732129527363229083437697073339615263464946505858271650357020314149936999328421834660924469658372553452906841811995446241008682173515040380627715716873046369962921988159364469034047528828987744022269585893712458685928787827674056928955701164001148567164231347342837337795191813989311576243854924342993969992217587298506703296964395177085540113315396814283194725538518752719205277249684297403399351945395329201048007566388987125535792214189936698150742669759465119453610879679653138157968863326832388132786290565898766726876388371796831128038651711255643820729417669813855882724476315721256406539422688850122241912652352574506184494049244292506317984196783516000574644145219927426106989772759371917413595863050353072261260188258989760032155071771484024024395516697419845879134075788164472434159281325196502604490101415782320658559211896091007420335901638544726042830653136238341125776056649569282875739514667111003275726759334104628364319555622376175831426858835764042230765303362546008488614008123371755075114674778638640629497957241597941681923724850433785193868064376389878967737941091875367439289135112625787269106175614655786414024100132140184994512488648668596601672090167521321569293053537999593072287722546367103656026173037795790485997618915531966625589072998395044865375770580915198624568962720423079631499188495489011453447906448847704790726217939008530714465286607119412606064858956259360842091359399101365786713864524536808538520080795573310655253369537921392162652151311707196947972603131552451564459958392830221117149074474023377374151463658547658670364960001064426057738948044899036865386936794219582458252676243649871180730765904648658652837706194457257757022120492178601931481269088476081045803457307703117023073042333704929397843443819754879331979598734602576975306092767545821100847887000976845780753858863489444455651184428222195016401550632966138748564059317157815165477870513591886067302771817314162973191728056351988871543842270128647368161756623229889620598144288890106929376400136040437968059471708477529207539363641516397868269181895166009775960791426078412765722982587702197321175169890037252974103969312078469448787335972943281858846314687674505735272177699538063210994853370820366927749996654612388569015201410101961660720313188986671237442932921088633670420508850994779236245152950370787146156548737030314573206402434033581971836231644746663332199729270244123148228493315322222705880450646335750488441735677760400733219168950331804495201314527022413354510613020553565631521107328619923587183176046306952498118398219412246476639932350853482376645263446377123656775309006645441951051937657279694010741991522728472984500424910739442071134651976823892725308427170903265852963934675485109797557093359772961380759961669898779008375698240587338002424699146363617803831088753227597870321630483676875401216940826080020885145553411228672217868763011819996085553841445729940457374275065862006019290067069886312816656200185859608462879362564487081686856627020026916341755302398581642219363233985358191371274435118109600232518085548879925725622184373225396944847949912828627730067096989926418076835360188073337156883823771309798506633357798174868324154859323551393561922924020685967908142480101422422355716452178841350573669103221468954019624844241884602773045966540543663546929153133023510791317792596248677255122655986823875064890937227364327960703507817233453779463688366958371495630618741686512937676106811742897552312212499864179868693995945769368523644480397903058844681068673302113811943591579754653243225064200719258492554082690683944545157431560467467069581249396429037851836557313658807943741810545305364832573944774246457724243853732483053472172806045261984901392456814658373010583974218177774958574263199258393939378371764059692173728901287946993759956973462076755603706465156490099943116785437488834769691483724384200701837580772669283136229834937983994884885806190339824347413547248099656350428772267829789419812516532280814558046547538464089937110690761790172144730644055504043437006756249687596318680177621821263145194797355214373236330302795939662529535839820715572187647706053221392288799984141966519355197577737024281871832813172245842940422063934529245503250171406870328229457263160823553155867292618478786084868358853056378452069541606645769489407262275554053178593760376856822836684413678181064199529327510078757085211502359093732090571106991861374422963736927739846395891790446735425784485330630381477525219390176990503721529236862836149329948618329804958086986000171835275942361626482721954633642072142743617799429567440091378820045265427683021260059560380133298509297061429894051089421943552145874233023305535789044770536024976271643810029148814843981209832824778819452062019869745889283567821007837609969807847362861939978604972318402029968265964028483678126257826454128618511145606561467081808049457440469341056105999783782567275102107242417538537714669030863177807709849694740654211723609436589690319995554738099422960505838357306530574692037966538455967093324198668636819705637372982867506488397768764588121087890481741003111328744296836486542597070605982460026302394525331021441720539545571700963209675948067666885572937285092005419145011269608522888527432994570620078468843142294362550110360993780971730200975036227857214256994611561189974359783809846556127700314770112044164774886580485166521635469894788920432523275778811701842534822627827692240814417323619103472283892951909342867741130628485977895666424200554677369453218140533055009297757196912295443492831198165120364529638260859930238848058573881175647852904154668691410444388646240532290622598168960396788842752674995961793191121137832942736109332610298398484403974115319781031486188754437654930207636469516154105161423354379734685986359333058603846930914405488952250284819876022384323408563236779038675344032095357041252095737434149052455968262315091642816407735737875965232905195566023783295695185406505154140327659064833877967774164797381350008842872740061930192181621236783211443985855174131463105910925583456276846586320717543693459286614148669698374333109674243851675090662085270119053718769103464758537270077798533386292912457791634856522988204271635064053362203231754129824108757776264694018028834667143440455274424914471711343123661483541877080631093275207512863984687045462780857450594520250632631160539587003896778877638414905826541257695247126590712664991808885178980658538455066016780535305773665041038103198753813929476405083508358100539767709501096849692940077637143869108639344247401805236775884951996230889634925911950473312366607693442794917512608998758656110591907932818846108365983264332363066144002721108221085044406767764309530913021084460208119126575981264592128691000778043280614963981890817541509386768872329823958221656899485323624460577749457958696579751041750522139072429615367752106293537923948943463818858619050430276433570937673974754675472723009663718763842053111912613177994664900152845282351842849283811092738374882065017125567696110159665703410079927710735923900066640516618313179536949542959802948225768428853619820316777365833517377163323490893487688587282960788530043871923080228788157133881842771424345597211170212433078145229278889285173659684320660921491467668130963989821206491995178276796603824556469934937671447440588744129245207133134181072181887280436317385204915400221996686375854632334077611430867037362138212708829701130951939848301057691141777870993886522606484147572963887900439155037840775751749764580064268644326607574064439578313486026532510375172285535689259580387672943947903498574781553766474611275746161655091193546128441875047121400505038924790603764529451760075695781393174511922682463824576157017543310211496706795354390789083759683475291346062034060360361028004720356522711903914907339570572193254755353877094925797196647898974949699957931871924151414684746552160796980594242165356179116509188733115168658609722618974924675627498726705855723448309279269224689516248221832639374136166891423701373087907826745679245610248643592537965661278858301052606444160372383838962004647975979708691919734622627266470819354894102480941085041227706792730464749823768944668018583826606716782099359946288551530940129939207978689015745062936665108497774506034557373571017433453987785392805050926259602746965056975826504270501563499576265672017982544215645663847069652585687359368843854771552052654010930311494602831111892823637978398006792519922004780685600894206066841610534276443485700888045978074386956074910098137812561321727767938113602374735896199997500091350349113609498471499454745618636062311708996710425250935873127630010976263152049376852079067932046811820872896951604937573326027295214194095480461466756465888361724063602873486248980457616753272213696551676101057333022928842609045979014812843046911133994257725475597844420714218400154948985353330513704318563846638686074270286818880823629096803797109710811973357090986089161500097290902402412296214457143179408493356986236299871626349828800781428947887448680998465606589235871612656538794372292524579210553896758618724179483932466736481142032781995336205185214217733587607591812536287870949939843828824941473189784513343607384414801621878676138683723006898780075110298434092121786515894875048222230585844310014395174105523023993325362194620644991722640516745211689315975871828219300816700425183609068842001823013219671764918518744323888682398267693866902835315483991341977171814403178717069160426621113992472397237330149128545734691925134164931601613334058060327088475701496614304730755117938054883208208232250475385202707500586624967028424005801982598983614539353688578821757532504069792486206104689413503955702902555409060385140393855132451110036270408002997063792504053743763345879760324441131415148554484722687287625628137455229932049133105969292323651418003786491376290689430411386977369646089693374734454882133961735300223429851282762418501915715105332791493410344827271831386732243998907386983380759825795464091907189351552266543756268017971004442594179382438297153670227337849802635518111635792947781028659540626403889059747192651302350056667476670207155758441573530371315814861403667611976092065321529472099808147549688077608861268526306967466842008448647397351728272558229830343567877912688910042286279236613169170869423838117702401310892860968140890422285849439718774876635706426724614028594570935832993087968904157788889137393930425191392254913814561765176509021473061707921053756495781324296758848744711676426933517446774090532308655577993465317285303487445035684810577950263196459283753290756971442484429553352003369730211349207541478434606432748893735738322460779195838355974262679551404522860919654347762811945895983955365002527098534386652294418692707853579015418441412242450628385852762806146865078974951238165447426924259132851685798572101193239601945543115777124840863447016911205570431409253783904726700370616575116916548673279508359067530443233395344154196019439239602386604996102532628157849295431315179518337810569553158958128594523551017996689923589965422121479052911118712524360064757312000754733395457600040316260068397518376654427970626674842517858714116684693058104120561422265997777967238263175048526613059391184001589724758413819554915714487233958664749587672329308193364639197024205294857627635355963928430184211850231319125608374784046383264747157099829960594326275744470799391484869673545233417278374302996171228362214344797796239144971552929820662331821710999937299440730858865339691706456814187990471447800764534069693958150406931738885259483787612391634795602481237622062939780656486470062232383882659289763531825661608174359412767132537597525466650666743201858617362015879968544247623195890641806145976972799899700965267315108762040461728278532671629289942779878356635797102761066113269286122442350740850920218589647375625905135078655405860330527014921810971515086471347112186467265957588672670196855761788776832163763675314773886478139856614959899150981835983259800696345706946082592970893436381003853963690206155098350238962529898841052935031031038414188102055401851948350939434669279974300133911329433719781844409255798588035520864894022907757910972666576285746897741242357720191747569191794763107899651693599275742533366877522905561162506208599333253189200088808003975749834100432144501703923630485522048509954871871826901019395923435834984349970718669552938793243276135941445356067514642823095428826886234370845821294288251156074863039812678401678290358899893906719816704848268742625436555914026621738797344472939627694894777557163887802946053644734158067838629883406822982109497832364273686485082691566251471933699638597613797456511952615719223700869305423225511789431288373898447352320882562418956178036172610748870427169767296521027662657525978609266398127932991345243232944331762965839160122931258058707894719728222397749569490955003050462076013155462005507268099022139170250090638177918408184529738062572906824539687344722494744208317200951228740307892978284732713765116996154875669833893682341611682687151704402267893593127501987214730495807321411498754599354129150797009440990433464364460564839962162114934389036794596065791096990253074424463853394994189504423859232979209519776709395669225386066708602133600750724503598418081400705479761976807850864544975566125279364429738632413137101649744409455575116610077211164458175747891937554763933002006555283440858886843458806708620339123795252647088944969991692322270994920133915933511842711438379227430754336825006372458740253025611639406581947792951724534633070471101453945585820349373322150206608968188817684498858260637313795691177144361466560923700485429704871938139566549080680597543031420811794708152840100832041899280078997000311985507883326335450278985982182407735848915555783407484409901701089873795421275218448560015356559919792826303720459540917541203521296818741860255043536114284277066248529827985211879085835985209985301135017241842880522980564584561043399119630668771295888925321497590393487098713179310862565117161918991625836453947570324759721256585483169147168110341093439809107596835496626618679096728556227323303489760599643750893073171180540835314634925178326566489267895550777549757408466140613341335211203887080510088090869256450468689262526110436968666067983574621564666344277498787985870228605714827238361201925458610907796009264947616553528979770898669315192103085745489407129302888316418010293104340661942066732414659195698643231282744183417559844186191241414692401333183292501649712340201229585498131194997102132613082757943227832500621652332419543367192161980488084824171573537038924084056057393050585190558103861545269817811883312812366894943157939548297268656591800144563428820984679798611310282282122313813748021584949895408328467819137196692215456606081046010345585091157490865318362447758624444371773915753833344076038197197674405865191635625705738699751983387485247039146221477015871765846255752914859025405722588289632066428273981655537904156335502476377670673133796973380899156959703207249690693345260233988053595890831638027499196630752806948926067224501546675543148118519653038210272552747692810241201585970257743226220599064873623861721655552607525381945066720875822392311872324864071184928024749227698532986446434494556557343142315800454324020696100182503530803176883487262204773836318044108083829907297717823517966816876523575827566361256800527436300841223782873273522965490960558214993742684795492263396719366370396420523882943463336893469157074936176468873293009448282171334299169476153161116747688518198213430815148319165148341213997927619556595174346212246822671663385068575160815998157380874749710348001184767795254870147765401278171261774366527908819690093079245997860539238667661674898073798983787132479135734655086207209452183525046677674706596865881231748911450275781107503193055452394212707984899787802661825401372464053925591009443508204394629916528637826894341955790953485693270787079301364021076699813378637958990638713434074993315928818807854009382302625597220528539077596941695233188260619127957144396951401922252143627821241451297790617806480840960827369649014762777797846080253060704251961944901686234652425497655138660544111746790519488433228730248426373096247290587217554426256332561108179647837801670332186072440459489852937356142083096799744956316209263639556555227758214390899091550475631773979199943568688971659552217409516605011364822628401829482390795725452860879804043685491145558282316564020601301200431375069731728571953905472091749246526047543217853148422630675229159796204087397054048649603093656309359194552439442858813614362868359982235135579417550959102954121787245312886514362873479154780942751570891255316277813217501476026935484265021814266515366632633871880291665108410718952577335893379139596359186697542804221373074035881031256140670481452403893884727719752859522979578555528196341964527785558708414378633818142393994582011977711518115777425835537540270746292570849816462376044475179409350472336681626324650399386131188993217057032615604831665844411400530092856946587119246378790640978454443729507376414837028269532780573540535492803402304397498376622631276668249225305139403467920895021547808128158572085850002827525774238826265009552244556217664540312380016632909302045471081836380023325032562847782176456894053484709613769256417280133359217049325595859667739437983936651847609670272263895567805837673060554606946126360708892549165093097325103939583765876564390740035508590013842226911105256784976749653257388514486880865259692212942296096501781695809908900785383380356465246656424012060143956683984915597268156043894067760127694996822444372743062422677030048553059448637610749989390551703266280288750286403309957419720122091428663213623764067733049064732637401177827834069780441618065422715093391660414089978615957577551197807968737086022957363297297424056507793311381906363298789560203775867142417858654427183024509619633152177778285091566247246929291036059446674156546515538483875741401000338982332881399374926043521902164889093876136636824114322257667083499986231110347914101924479889015685644889604563397881183113334712952799259976715785124906993731400328455899261044065136705114225850019738750259118115224875677998950159515264350071834915331347844335858156623418409785116114809090614098302493647541572562095592817234014868483967168346309153627716951482062879532446241499781104661250488812828547325393972092264394525800158088001397185087110881724204122284612963135952021345839754858589856867055006509276175316369221938127735845674816622173099065462140114176156473772770194842274772966878725615248587034644980049515397815191554810346248087649628252060695627068117581732417618469675977100298241645945865670650426769249071833020767198189395701464818501302328221667387891772674092495448791498774644535536718678385672556234654436558557099201923043047555376909235404771273276229889990321189476508778371495564843041130510949372379778469929756208325405595303609723038066194223194840906695299106173147352661721057689513387232103363120720073955902449933871837290662409560871595515402396643425387416594492405311865043207427921530830276464372128739647152887095698137951520614851084047641536203800077735250540863124571113654147303627024727102367147661955772750918506860152736950500166809266747712376758793724690720064091519826831075105248882014423254516277440422248296077434742076635300699847349048964152484601594887083904103885867310830205483905698436953546487379653598501118821861686157240618282890309412504300538743373630716467599928759398679237132991160883716934413566163860505368286958343417131136447964145039337868049658884142029340905499060371962918191635217933430939880094439793836638511412988829263781790864094530598090599897420262212386887484981566781098849714266447182251672824983511200507729143016833515197574396896838467234908817646528781036591472423024834674039818193953094849028988272541024033152710659001811141689270607944647314435687497451006168444079256505768984540679503361473990381193550705175183277753900260540148576818871462439669386357256537476146307897746075319271279540531799243917799304419670488765306309371254438339558686277271500341551261492544618095098971565318160607286025307069907778338638990949314602188901798717209525468148119683254237092581397451122906702388075428136749692747946321946625842340550788760060411233074371054671532405124573979820191502239240568146116610783224986306319217492794716405841086762482373705481330258381283514677215506678247209430223639600637219673592267010214100898207021428014816324746719061686565459026611398198954252119879122020175092958930438905821649929836079675361913227516186896076549318092488676703880016709558414531609435365253996340171373737294284174399700575551720382739448623819243498842384398515261210029633368469000371008873026992398253252263961612387078431988507792917857481524389234876458496427744657792185771571380831734707240219099225705815804271192956711690326112397687214008191740477196337196841507997138495340321542159430733093577499255072161888486518938571379777903583090588104171785088973983465029053866505958512127238492865454529655705960801139234874106304219312653804770316131078072327174906907324348292780004386004870263759525482589098246755275412944783956296561632016222346794549755333026932131063028993316114426915424116483281736284682845521535911098562335575555698834622293174522655606814942270735523932574742915488544239916846928025286940974587546135477601241557718830609388309345751803309217506542268923315306257599435740993425770717173448085239408017824416174118617488684228346402141067152403324178108671932531933267116963102434816527906348116282102979581668553040631261869312936533216864224608902946800284004092617667733655158628560872266531245133499398008324725393712580127934166803450862393533066045660292725397616110758615617028611114028306288175693069905405737308688409531154030171204842063753499612826112418962364482982940224164609259404165888824436026432070898924189567382422465198986858264461981936319922909622902180395951730117986160313309034524954493826235297998026286127821150458217082967494005640096133426521298113150420046739650640848864232247725042267177530154768843191798381877563386935315028085185779499261943484512922987026342231398191638017040338999035211967554159040516329802713814301217392790146346227843880125575714731923730707689086082254026363943830016382681224182446193876664750615931022226205099210428016094762358551846846397098227243829250133018813532429363688358773399850135602363445927837921351631768237055099364217418090236341803074931208248659227871525666338871502186373060173860497712661249319920067644154219324643003686888468465588401362432491773045988628162682643272747049823320271924483241306919013793748942759990978196284643551301012745874836407959822609441358323517502279611329576644700888524992675568307526864508562466489505732490036733996304698818558995831802999900226483911518333987838729446206583702200383099992707739569718892327614107380277544716613789131186036755546206480145416892461650575675045893348042973150430921022189653963394479751855887059621931300795945092704330911278054333502303972535236920621725310381075308173320009872270237828132687767691182495283011887780197453222180966812748788964065482805852115734177398713340552784688407113144406043957098782764394695010042962692789205890534401195233729826640105680112285578378985897791775673648840314584376129125243248570308644003630093493008043386690608033652738520019795112547927408655389331715655020416818272946833319328613595933561275336262147750196032810418929159355880343287857676045586993732881411109076178716669126616189938977115552524512028277766715760677796561615972280721411990997656313807738735364862827903426057401344421637718247841288051750802768022477750892623106402362361399101436177702413967667043310221848118334546853846106870614775827510967900590576679869280337948147667253524553464399404210403389572067997994320868587730396965614323234126382258874254974338605588515540676398445670763069601061715158770989651322908885745325015113367267783768785813619344968614143429765283237918481800855769554010335839942456604676657922765126750613295160536314871713784520045960695322311601744152981139737784092418859525699866181037305027488410221999297766523005477082541900880260412254935013332925989567995287159319109078648085454804752463770700924369265468138519501762544834466030055715012499891437082771622263658786322925335881567974700111380748927569394921047478229708618355985914958990486902445121177425294669369365222816320100831818894269501316728506400360048319140516913193220845513234448248589998721770667612628936341351670030404000080429685190585720168005209355166213979570464618745879332526839856970555077363583809491152096827318542227029802506791159298867141015618475957872714188006524280983017762058384194053788857340725364355875663353816360571000489041512327884637288061032762726949725679631991326299034387168944511194227171332586904000103711946108479169825323353066774074961768148435118548186568963027849146192394678013232158840238115792309993210396056750182771007189569107853483647146162810005013579102876875461132175028110952208858613818517457799333801869746764527409205796123033745399050756829912223387185995416496597675757681866147372344244579536701876908862730119393553220729577524340284252571944526798641082433076497668144005040969558717278368688680114336237646129253619128757939524504947695303805190457012932984540498276193893654796647324080231791827805486502655646474810593448838326791390823118761282034705701014381552912906615338049588686866871384228347431089672159854250295741060488578559813141700736907854837634692459649648251007461228798988645765155241279946765874125058658518922798139943116394513697317935611926974247473554563654669033498083819981831911395055476847437987208222969977102336495183916848767512472559684529722641170565997896230531571893223069449909472874310896255424113128865472671826776929612582142935972731657920162840385107182958472125965540960764872370258846384994421390934076214482560548191415150567085555661397539057948216814914050589319247720882953684759436125556360072808432587547571357068930615170918551523174350039763392705160255195972300280700469031611699204519161932939901446517338269476970439625170549067566426888556195630835440584780223020035939496912300384554389609404956979042330044545364254560486583976644761333842332665336278259891524192737991444467208133506040207565720294582765334816861880665794343353201908095512526507274556725708543830442798145078110699812508329234117867695266079914686682847268982489289962718154318140407032615803597930641406837469018978517773693769307295487890559352237502342483459022572307433153470764990025822475076158065964137346342706365842517321791026007554524973504088547090030995100033736619294077405584637783031205440684665912053363711384596051098784364704686173273494579901027956481127490963339936099181495001432184863327950378337720399370071574493122487613223495523381458845922245684849978070361338907779183396866264718126564496851979845467967630655798491024924282636363649910933632897018583857208651523026345830179931093324217304457593601595984493280810055572032390991196238597620243726305192209958760903517023921499126202479643244082308945068402484632089749399571818465563031496276772456538244818449861207314828190693166222463161735748953777946001673752329183316406409453342258500069465589210672919358529518867242493485022413207877230001911837829099982579358803969171733389922241665900404130026245392497715211958686589426714452218560085578698868566223860251489047777341397624696963589849455857063899185964561955140158862729608950811846357417950561165072596043457998432550590700038769135843522310871367492851763081789030242114124578908196275876645883363135394190100554570479919067526786738807807103330897711823016147483892610711779381760415026752330673424100988264424119917560364477973857898720703582956756655183040136644655421799269094705174931311564676617766622340802861831458930403381600974520320996247169051472550949698979070848118222423798143127007548205418808197728528439466818617029269879212123562855692259868180855845056935945589507935327767793900227741510745964594991889301753290804089499985734324630168711512537386302029396562380367513794706413164713271514902426174510331614228374778094363315717787436765173243438277742121162637973605547666572669456028972709421592672183272249064209834940150768235788096667475445608198696065038729019370574970036173702221107224775483339903071106110475456639967201790766380034049933102017926859376850214503713313773140947759092042779658855706402213646992104210984641861921774693401697975837590271201420298031051504095683825533149117788813945432155539511886645717893593958851639156484130315180443068278979065244989770473775353543289200860666184758166446555694323211931757773835430418005512738983156535470236963867587660071562414709865420066896213392418199092390272629753091365043810543652232974176526239047587670546275669815838181404385199854056218612183072705051397474383361329369908571953626791219967029955561610500234068515271585611581711213959791314923767235967523945785537935362752260743023942099301248458982506438497095117099178310600620150818511905233194711956567281155325011695565113710872595775572477330010169661813606774137580625007724868571690281303019845047812754845216830281220144349100133155326901199393395696593157600733977957723638359052662644170515549761644743477082643274428768323708906340889707068509132958744964372889553923914921502989926344361438026184706168678745903028477729950624452782303092110392669782285153826887091813486651030642576377737501218087036514734579176358302241936153241938240610243019385012519683853190813713226532362028356664669107641221266337893923555401076877789537065017090737113225044834470280242626100321002840292591698387805030260546655056387642886579108399881055355125475751767307795620167830678715566520731141070126688598303796242625220329584046425573946650995326227878375758234323913280293428681683812719294621265171393632285622816095092139168833366378686973943377624166048491108743603712406084215246860595645629132707750858742630039054334567979519377501873893944327193474473015480873190787744574426586992385944798548292955103115030748872911471093320834761093083947135330131936401201823788256526243443553235403085460075554220499212672361062249057229744969294926004184107139047719747205723317853890435434388812628166513072170446890442055622258834745727168226865690856933513441050398079570450580947873345023559208454074904579272109854528090712439725340488452343514981369810429332902705252714178520008708439046105609263436396867067890022814684325858701599775045598799795238974845537944521142370652350652263778010448883605167495679829960084241454649256293258964248478229120994575846786493724430367314100080029171036016731695189753642175493597992419597183953401888844860243066206651442177979625550645922592352464517495593858662425344834477611379715625378912461563554058872864302609540488603416882526870507912626304024448804019476918853083634223394877747890120762359632920216368420848055138119870372605104965731784983071558736249180770487384345610557635075998709790929079858380494440123016657636208230601730945452138204381214527365958414773014910219278167496251144859559232249206333259880741175765557525756894661408027847314760815221838439262870290771188406318787315312325927149160991678160411505567956899838661155028349039039852956351488049373629089761309088846898593210836287759664334332989442142058880084009484685270169103195668837828717270020205618566238139585139125748271056394402844518942039078311011597453054430602461484910331060416184295212270693260255685931215252162875967982016591253140013016560698831154294891109770249233997243585435620832650520700798181032773833637769839180010800231575097069650114181383126421040960192787481341229494880477395311100501690076635018321528229521717528170974779663314541443642652246716287935256611586343363414752212397874527351612558923179734556943924604851243515533275137735019371250289103007744561047235732832624637230055916195725914755862425766072200856502215112217359491149878671746479373347779576203404236369300632811147106017656335726056536857110988745072189300700673920808969844516513962193040903664701483214416034787908826049893375264778243560878905049338642821538636893400998756277563988592655559648242668077376230589590245610148641693538687931622014931584858641554501797843594164270703590334268290225368618951790644965796926652887958652580321759685506058387639813447094066477370194688341574963429234500024291241836136124470749677192509766214089352147224383620870596214845114565896058988666240517242481130008975211932238413236220857259522493593907222290872103705485344944972071582944138358543640534409084818255613493877634248189344618905941317278742460787536602677534330624797063326507033195046932199258727498778777118703546715982081472613541570224563368867558769366739826099770531243864592769646242307968145107029666192595291164336891067974751169350673326475097605115074337325038397434715450373936436315823495943218236238668178795958652533324338742252327263681937946584072408546691548900130805046922448684002072044168231721218232578439404728439425238124373546657158545718738454958994811155646185954227960391550564670537769454030867637624318347399657666453803759614978630669292536556772488071800807098541454930627277578696293344606795344796757236354113652589527653470442059386919614562703255148160010058623980255401837287291543857019731794605127334330100876686029373630307763770943188348670304896802380770247640254223857364765247453554630776343856544976345081133451434789666589801064692258967720933213896175650531226363130146777384074628971910747440820500785387233670054746621114192994962930435549808612240162095831630448974638097162603587041414579869963248628501650991607741630981827970235132491544724158855768697992731526532096236600989489213014341029902190942553626763808966129633209385553414821777611847770806576300409214693655495102950206022131043794102576642527389180905205716606755522601402529746112698480058530248980748664350276050138060848557294114410574383983631418505013398835797678934217945047745923383293993689284074107893649833899332175975154129128805836408659505559440812478886604315450739831640212386472321003630242495214293393662323569981920352922680726637070110133327066718639604079802265530322124983195427505144676469548598606253528773241685778634582157797226439690494413715898037008214224140286667309828620138021643290280657352268137590704227078814034152583997950854897141762918190555759694803327288456334566203277372704055263309699229751818771978657502364547303722445597502461855607492204179934532009579576285253478001492425835002795896462807306002671736552019918999135816717741873456738778746560211374719878709050027084553237325352752471194829165217364424205798311830610273404156829949818842691210170158446800675180205858328198629424746282630566185510254145117194966348570338027539611467376528947197592122130030089639097625690148698995029010470901437978841450480244414544059138041004606642761251751798475117503466199126906389284963464241086308162932298838760318973190254013737446367348078767649702100499878816267932827268499650491011052585992617238603791325822158282591049427797908450121594795772128446903986869927429883458913921496721446209964190514761664719930928453063376378280666545818904270229740476049363582512747605961282194951879587404255476413427242982582686044171344399022765358795921279949272856583147017334536459343641669486542676697337776542906547519598200356490773222446441173372769641918365066592558058685320045274908075360310694295392808004567010660285585211084722425074162621214101248245781640828265245953757863105981301157587735960407962658939888598260160838672739416155495385977165946993083669161535655651074363712159513686385757683811897794971579055301894901019881784736709478523881798253800273111870918235225762258909596288587338284534144967205828316654742539546409704726389692165631022140927846957751484496235634772229634052008857717719247394486094903283040174834853877854327977170114756330097761818596508690794431406851036694852930920871743295773315993608557028061849468770645571538605969462446147697909207817830023834681991796944716251816653841388331919360551185970025118900263275576859500722177130278585942652015880059708238147713049750133697608298263354234998967259992222299584779860621294885414289034881810198565579508551566320937351081175665019341799122483078671878215386751058900636764812065539615916170161197124317617156261982472132286587267360940918957859728885775128998363535812786480892264307206857019836161035036341755974765542372014347974878684112586527108137412766833827649538535185803848482788978223121804716646357385267772874685404871121550620914985223846822389215658550907674279232534191550412428708280067383329819201354333071553790266197572046963084042722720744315976103785066041330171993792109413951360660774469751351176404304890246029419740921434683204563831529946666569719430985132953964492213889006040386502597676387938880924480226571484358852421103675037809494381602738235791183733468984439535091560124384654962974147036529887259240050622658429830608997034175731543082394337351924189501221718227769439075235833436871172296615060329065616809308305071150591882898778462816766557959773717284488208887627524346514197556983542043109535742297503468093274063201009659098881781660078730403901115564712247262060653500173518456537310363693715739303761732430704264853448538002088423048115403447126283768950188765220773264820949058397858593761705630232938150481171833250105263677269833583413091119598874714868826697227931225149584623500095976375796340970802597670892287565762427567549068264134204486483687612675227594854475089801109358713034222397730374318615764552291662357259221406750313304698319038913913223224701330953980136499677916955321781173808531570401959425302852868711643262542156213756421136813938963111631451958957391228160356932541082597036732321698699655438208359217729254773995655873750438217656146632893181941829321673631666839063028109189816774325240864383246341285805316260152593634768884057848454996744581686783467080693845178185031645074806146723723592676655508405655207859670866097638290631774974619962520884043209099187974520387773917226607758571704497195981265266812315067703860448620618446774265462731048767918588620896133552667994502594946324030159832832280481851697889499766327687718885125347169123704582271144899958269579832474667204205702602049503774839706506415517057235342553891444982023592372034094642612246678247000807402165407821736829354024274594178262391182661030927532356023837447877917131125130365549267195955071888645752156640622499852704222369308695476542646113235221823265389632515718552229470682558103967089853782115026966458170335977644769419866613895234049065355676354830578772977121398026399784699381144726261818104405657434851638089376556129925875564493502738907457272330551316353086062884825173056037517691401702000746781040098650170169094417419620292322915811788769051736767712153119694868176024452597433681082417160849089557172706377205874319908420999030080924439888619828434016563806818709274530673807620333887013321888547347404518187525702053437717414698340641328417879384049689917193135630194457986290086757094809925318686122118691311346017176293714659926732310692764354983561198430048580897977771175918438211981946782308270702529180882753181671989053452418727312046084484348599947605588224206349626139801110363583452182500238223993318883385622807270947644097899520556173962743590379394898604012285947307179009108431459363746529943498604441251514034379928003785733753222272292290799915181308671747499785845815964367840599443201452754126147555832359998682094023449365549165722492093522016041128329402560624524756114922043429622615372036472561011885566893425267314678710303043164925319241252693474960316327944571428244170558838165327696184786126611578376689734505767181046675093374846960445250563898558697956133247040612920969065881334545817495752605675843204256134254359553974615568428124316889298513289684938748832820120413874988892368564314985791216482327437218367488264538601280182180511007463761321553330040785942209866707238206525469100875802225077521569929924632254131845082523219812831196465681463760984937275149540880225225908523662399140128210858220550602539650365117439460137650155211995130853177128108854572721969798373980528122214059335942147782682465019924461896269719827544066069802463395076070173828364610384162822210633226369637907054152664324489840618945995531355517532319211703432086848739564415568619146639853388556490853273553438885680495382342646232293896734869395528081072490181316916777881489536950504216217251949416728906538277443975538623760819933471945917170544966435486127229190014832440083440135912044788872195893609490263324166031780213187723793709277151255329016922633091778626431378539382682704115663793130934672903587073648481954367745566729473747725551963792913418973611991567885416606995102826276700461028397792864721739852820389014414476560854697533776879625128891270656348706775033106863912807630982452730778897990517108126640567230400270431250564455019630874505189442108378360966617516601762059934280693970056808520853220607060180618381856778369548131550395053269891404408257245742354680216774329248602260758627572040642664872655533874440328791690558607733478069320278260026523070611062585212216425722889852440051990016900344061099838698588327736828529375845938144192337579579006559003428780600563449387653204614601591241001318638577208640954151693844728853014533055691952038670491860291707381982489257496770456088984318823279564891636715355275348229616889705445269686247699766607441063558674401801013187766535875794934688028170762973848617599682740143044691177979676294754221287421728980062774750506381979737354765710564489050479776958165209521444842290500438237541535182415244516138318680429305565408516813297600219182359007250840949903370012819887846811216853636258734497787365197078071603859775709091335113586997718159107083969896382693941251647538258987846825925624333859530641910409222268604421609635641028249567075433424186665768623606882644010090240684959617478902384636227411713601793069848250463463914736002715767498755463385808019073853801641990626857653749015338528209162221250771386792892897432157246756549811452564027437415315139663020609634814439063968828964001015161502359825786741040418787934048718673667669527283946371308767204611666365314084479169696565839875792553992978377055860631368191759826236737445051916298886254382857872728398940827798611432293079377077783623111858037832986560482327858612742030614198604908353806866867226710221368822883636727390637328585868711531803825053617444939756577715333665750921250020057809784533731670996969876440579798054521551310894631037094754764983512005734672557280488005992112893291633746766913489633575916501489302748328222953742150644892915280649098024838193792516055053288020319404112944613554086717867768201024624021017722900679146430533693416927170139213773104849054466255255282694180230743645676811629372990894785753601569252697999212327580185984393551083583984302351278292392597659277135655934478935003099880655573505998476207483715142111313285214502051995635726149398242174133952923789798835562629583023250810587247138154261453533045305425081097145127670596557063346641184914874397247423975153445013221533104341368977874780760374727728157261431411565111704584410076961841541781074381827534354046803930317206683049556364890832829026290126386068277375833802040659457626168300690908637711377108684147711597854080597135480542436181648732578877257680424527511674846773727988974423682773109734025462176563476096894095137318342606966918317832248157081815448182644164509384702801873920157463855518571455755747972094937075316764478461340317999708486655380398649001927597160948063011646637914201098660010389590318125740596664831503803152025959326855351202266914764536814866290015407613984646481875398702173992770107439687592094193726333811248303117625096017831741267118870806893168802142474204590759526293599322416076534134059357074400186078831543541713600230458820768563577572526286012366350758734948033276000592595739741184004955782239437263109579896377568175263192227925008028225401466594087515006020838999681524181185699034409088164860438473014796273122440471524571394838175917726586725316261549739674720100934878075190803261269909772982114972098105874645979550042699873289907517332412594570019384839990634236436188249346676659553242579029565337328260284378191467291417945463140178152192279537928161437472586612041197798617327194162561316445127235264334155119413799170457609112076630580853026775282667951039852054412508391542741238033839405885767780769432173115216757492394810276754231480455831031049419542202387111680426004751527730127951826098665976619899472111989847357716227006327370678777930797082572762729113046805514130516927574453050977376556400304856425570296199339392976679871437913000549048644010540249609910396457732314578888700907108090164247887443562999464880234967722022070685572917010577210553566272256288774908779503556770309037854674149573999691754140194733413060978065428897210228640313666463777221268105858862146352752526541101597900277109701884063098179735193195348986367756470662698351425686128900786624564301513155684998365855695415529702500582833121073571683321975700924425443992489371324390131931760833394482958291433614368604811827797082217996361552671713190347372654685516595056411884786222010629271916827975773934845958517955525339085818811972865388535777144892316288265737456782154226941466033187621244899829880441422210754856968234508744210992365933105814648091117343077596557228098550230691626144106094784989672270595572166104985009899443439826358490306717836178691490726091690795742062580117190304699705844248950609619549097371079327066136951969534787099382776247104272415210215248247014588358708427096381464955736611398148556123509274382653910621775055185029108441131953887305830089381327251459121151689621219736538210454398301414879639941960716466670850562066260754724286595386047365088704179073727507215303612740012328136012716541889463136131560275952992409771671070360054603513868085633445275964350876016886413370978827142753533655495197038034305946129825394685665335403607403892982624712537579395133515703276400524858121278834731825485602972474077588364883853561068509957017852386451160336512502863261140645169622471099933838331625569832070377186475462338053791998204219507281949119629361777836181119470267642415254491768128838555708481717813945838743900705179461404963238012678701791432105636792981073317227876178271312652501198927480728917168329622947557260746808143141423029982057873803992183705316495102236513599702335392355727198612416052266186693980954043156083760576707210594200565673862431024410857226692147639440157356948594727337460343534765138082060013319223831580243051368360768616978780886292202832386589119528997580347543066524779187143861728652335159189948037355389707335481766983337437453788133535600898944074005631847698403196144178614409181092478413223904288273026189728812389275922346104594393820691969663741881266862218420310378477894517156235451988238541064908517494435342809335111916440877308451242269099237972561126921012209661238330895810705686899159068008307905952474033794415792162404740505432067335749841678087276599684809355087148120435589266663603665998112764548737398499809265460268588751434581521698107495494284288116774482671429566142793032384838308521752457541372467640666474905686784155236305476755755905770199667983321221090263929057541601543880404215193727004791929928324591166359580334217708045838559211252643761764582575462897149985307772738406386489830648035696068473910530043219058955720156257708844181529726033057237256091320054591796953305137348925777010533180759521884694156969107349942499110779732239188466399739517220695718695575467865945969775235405269624438635670588589231955085680751495558464652822550760574749197490214831534157140036058784033688076511182584440839505772071024665515866360329317992449529461348894650648424968632039857313610293974841711892363950751581871739557248185113571697895387591850934180674945504954930622889297836000879222939576557300937428944036989513688808140437956920229632494070504685183175520130742597964267088136448261294528357338723469017339210706141117967037652712540816199925594261708937922362521162927459976241087847902969641624593757177000393251284115419623502681405304448892646940929442644130374328171687759433124759727791954708821992363855961944055156075136191521718318777628490073544908888452759597639718911253053475685684529383100087536825928142090604779029669637368053442678366065927257213555611770543324021267511024552423440136427226375953094196922632195215961397087274701334658909482115851883990673607602910575938316506590339841557274934432788934563479339151496599311407803297564454337308949133432685640820777269919067432895199256235794402330189624789890186509265285920652607340326039002987324493983251906566730901545146618187394283749525544994833616761456320071929867696537035369297954957804657620958704604473388818427409296209775663822806640062609909530541137219413006483806568086336025581243107137789007899297170675319601172728513991678812412659319963003884017592464567942902464862973061839345438624329261766403544031247177906355501162034895434308366919251660368096320209264401549390340767865010420515293441335699476642328191339753624664493304493780195709629600137215093463264993391545020199575663280788766214642423333709475101419110087141369526554416413798437312983460148790503491321193196111160215134804897004204580345108705297237697504794265715993627076336531663551366575728312704177593701154961546117969523293625944092398990071797037270177742598176444904075232913009502738202295794961061382374439036292251345742978701552365639140568929403507173237859542524261537212860237330855695365685133472721280248746953051162255865530641100923348588483630979075719177638256172960351722067075376102277278771503520094993077275055422063635659166354006237466572602861329088893980789866906434719732605779925453309838570898077435299212279093534579919741241152907629891767138633717098765754417725125441624571016483560256531860006758796508753038474706879469407352207499401545233724588160958000509768587477135117890583850669922254990090515659670266379743863834490200763119598487105080025440204831185937682243410210208912581004812937134643809581484782482371531021186544170079970245275098681201187786638700214338415634805071091576540407946104038974792472128813215355156080016514487594530599290065776378227761649355562647458446191120617309909365826025067166893571275370312504173958985342733327958509800879104233977838712682380479359630167164740507187150497758775618760883550571953621907446688094331829640340668408103355430003366568655326163594100070090719540389582167301751528734000927063022999570223288605779455460570336715478741737907239373373503480923918425539042614945912664824281226595889236387407974398296216089895231749505516647870067953683052010455388132369734250991738801555145935326867148687937707143490895836678135857284143836114791391176446851204492648826767665284118158804450716850255790783619692928720738748086748769966434842570236662351406533921788681095335994365761302293938209162051666021069132048449056092500097998900940788818494815357493492926315774426406991526711672783071094540108769850903293250521787172103661881683276433411314874116357409761434947200597957009322437063569536407835374501777066357242248217090016292421001174697362110778459503688612603615590270432337448855007741725705602719306829953305148428562333827869193733895608834767345719230387290330599861594943448100358480502285266281164190828130503571263949754258865175505219967152218267418043732345665099138608441453840983071119739702754783694665309170852780322057262195410587157778943071601795395998017394695845116978561795875775560780999967100141229421906901208951962264177828518386993156965335882699583747144019270308663127566076772632536858765859194400028973053914259111628130934835349844118239632743145056938479597149746149626212178343971329008848851049767919028807611004672739490889028191029124680665072261168147889865567614793535813163619410401571651259533110324981036434023514389822085928022149018799221192879309234038894998872197707457093122905266881649206710150732404386886607813462776027256229962823690687931613095535020980381928935174624889856312807231831924987868870775698893363689026651952597032988857888285289548861577445306268906203083404098947528235838769391366469114753781996196235613961835593946171628157168713005371679655044505961985577022382497293112998405915297620810739102954433221186895418178487606130834806371869205062245993310446105656138624127085775387354790961927620117400273653958298126260140587644835434758025176974848714014995120170359928186074724655346727245310572449343272349556248119734731588380470109568928666553935269028683660325002723717468418111109947705830027230085218740798147675653287807438851965578912149874957535555690797884721933074306560413073983319813128396311002910574838469569688687256257408645785846183000278665246321359452046964198472677366555112969487460457889724012870685281699187439122893376712657007505252534975204052270541093660703545601769351543448497698735738093897598625690119914128344434391286099485883265849106576024691748291608756774973456807620700706777821088554574350912626205177374893692281824751423405620230188451640562047280424261168898807286424788292718170898619800173475680609298207224268760008906292346735073913665185968974691094845936311434005968713047351793731526737274288601259370685951068525915203975863034613370149204977604925341961636150920412016207045960081092725498541647664550280611394910491337049205894924889464119915407036374608141385646522632564977167991362504096555699680974024281908710202163418516474150950313556811532518658727027747495208214690595920306679114538501374229334279807135478482702363229084886710903914129630125114071959308132386974224397027403724679542264415508919422254270744352926194684132288769616054243102741573673861699788369716617367012973309113032393489770227541898709821387576171799993854127355788888488019095380593668217116926617956957800224995600117239904687693864911864250162850956906886583489672379794353616024859458123449161148035501580699828619714705832652780091261899617110203718211689949258380799698642513529952079565021907583659684538524930868953552583048033735059184546790455813809532829138849833755849049442536834633843151072603574727386002703491086979883819090204249527039386163953160078380303457000568925609117926954601387910689797469210820087817556531917266653141259287768657139583824012325393834149922724850768022891422064490934765859162760757549593322572535299701022413445999381677732177012646208203774605382786112017293458885922626033459016768413992753821428199165614517376482112642089221548736431044662791597016024301506603224988986369635610852604901680766008383759302252755544552717712797907707850280455306479375888654665921879285233317627232788539759437420033960521773317420988749995163392223019251039319482696246823027667900842558939156132631387473394419619929174371712079233817390395432131608508540232379517789218528221112156292871262993743502612131641863308483182899954498192556867151950678659829226332482765475040733428888004944731561409652373171060403396277548388310034026002617805548612120358380001753052430814300328749121553857980159133904681827303414209486359572469715167346380017416614984738974862242151144912919542378342545063259468791862749557220969199531402348635414605860867828781446856551121152671756107699615415699801784907299589074734419161517888429847507822024302518544355324700323988977253136859433176297529402156650864994042492128320384342391617661735411893628003770028671030473962879250431829645269146344898753906496197955220661307779666065644056485463150766826586073610640428537168666612349516228255337572478738916985061532186991088975437579297334111192119991912200731446517251497393773401123546832555105651190226828643880566765795757597235253237061693817723233592444579168266192896430544021326098184957101340317498809207292986448961430125453795926118060417432044174262229803907677226630288905950642873074124183854423335836747242267454337169431980123142229061203560490821080023516718083209639662133510391065531312523010278529760219738029733340471316745768681478087677783757164601499283135725884948353113265080448508619765544434249240565862092524591835250923076207821827542560859108007319160535264330572942147718948287739891111876281473828760463795145753655324221682322213839904509575313001684134388983023655195107825327964069196211819129075563816031124363774948422886435859241910770986606876947780287239386178531284497011919193504799605681735247813954081510534679782107668876108893178501828606652070922847574066531364767655377320661477377365065444547704104985551207265405669273664934364379018471253259194198751135499309150683487606723828950951142518289491963401592809729922932544792189851127083019363798548550845260906611467474230624656670776768034974595696784029774320438047429999410825474597820281568348708914046480153877159779029671245816873829041176573750293188195504486322612720512829138996793846719875716615243428190467512992899883720537898309393687424330512943803849937849300054752881830148018222499290433780319372224697538458962616569060016435239364856968600471204552561836311279061627979559285517621519578811243975417707275683869921953847690940005147672307142361166427060307679185091869606067737954307413814360202215312740333395853621812396517684287697596906940991783695600082910089404584666241720106945182747225190155472072185926357594110387806702908630338282147721932524767082514756478872048753802870856750421842929438215799848490250124806280527120063922112588942135352020488318547618331595769411243249790195520338945624629570229689662973609525871135511510715289037417115454873814213659925091454329743260342518485795987049595727965516699291123915342848720472305637340513958026229268573004859831638504510096041844682927553700319913448291542213796968811148306264046652561441947973495279917597350962470266652794597699990915719714984322987118641046410892826044082204260895335789155776321905098851015842835823812242450071885865044862802135982515668902622276720319204208041347861520019446335679105751835039413334910420605767453287920713676187528417356091418424931614438612179592305709157254448811872344157723181288215020277451118216242103901584667502217277028127048485117717930716304352107726475034366387870393413163886969756244421839006308528129191764638038307812727920595988080689844579771820181900429243039688085195767328354952305272760967845769311598541539574903202944295139064203166008197226400376498816657752955930256434124798804001758697178714954925177575855660364175796942533580866697841122862909515517553798841686693354119125117746574941902344408703227518238595595717260970792913896156779720982117325738891161742179439219310460895868375729227680781447080604585095927165518825138133789167196054791594399643052043179919466702460673322702499882658678930556134367055370667970198354263623055264317473659230014304093484557382273636260855963304034207042551299026357325943384348260491176447871632079017120222233169632189609861888791664764014838707437036003204316363415615069831514436984716760737440564671351035610390505709578357191626951126460499806259901382470641645917471273898582402429664171667885040441929321127112962222741784718011790389640397584910574433053859566918768137864864367673639287614904285102311911986074344659879043518428799295758835816160508707850935587188985399593456976566312696363204466705088942493943562064266866653865917466000177958677159546880482728087835306638294417517511170933946180903551892098725504820149001891349095440735955842291505835566289854400823106582109243894194204853581759170265334817796231351740527661023978594983889300506728856785693701744249102438117740370007389926208378882547005635998068727103734047708621680167930208894668396669896442520084836074470653229085465992208133742395004083138379527465171040866926057999218957766827823833080188274745546171342374667590295730929450510490689690545932708598907892414630657511827968052471361617962847556309089044091173664884679406518913593458685809251483838204632390027574352151431441410156619173561094735354408520615739969821845261243213408350324039407728526367579214140921266944588630993240965255746361935059063974111042677204010217818873597325106349921010729951201038929337260659980669259806017976169889254516145078579137889153393979310238706978456866233987156133714606127010442882683878814291842345932079354200054392011463536022709882214365277465448425296960651844194145352625231669641169488064261676884243609257635888554437063546448219988291992523519668153769141906638024905123695384344289739755395978885399906659329854897863492236173750150994163056368601503975889473822962047537000877840985949253471370755028766677712003515371688454834707649990994113004850020362217036176703005657522927107308491379402270454449291970812284966814737888190834367061421408544984823202568756010654267600320073049380918953950026395452498047396159293236099818528600067550464107639431863776167903564533852213999446299560748222999523935303670289407745608675689077315600966761382191864287110181435171697823665983522196737744173846819173979191513991140403956060591050803868921036002805811766557798016850695718885014976019050588346518941313589615127813997517646461208427539898196026202446245509097443430179335217224430616377012716740085907758144022473522301548872380253085435969141935426357189231833827973773488410173487584320788286510324029081041107883872237957177813935515796637199477208839933349269678744469687950928562742689458939762553855768666567727324505357239801870448253074898754264868319541889997401772578259021127474821124769834191542671526450756619223624907817162124494923263302881707341074847470130436489629377580962487091834289392174190004763186079073685186119515903029249474931673540002342658050534568110948660532204601542050442014120875615670377456360603461304705074399414593344100622891857182014264891616471126985729414712336929397334305256288481142813311885348887934060029419010097941286090973328819529109477572144614324249609999811224504563391098622415793259013535629367708404321024263365189778609458331657291147562475040536703269539366511787825639309542115563697520615175893988758305108817968938406350829882263957498995275259163999062883833983013136404908494669300139364429062214759268176846868236820216356501533829681967228190712470365171200270110579362752730899586158068347309647634388501415661826569809726233266079730300413567801332466632600023476107611561064346769490810042467199169479567232812543367162310757113053439243358810776940159742786844075616447897680050074196671169684568196074578464289823190088482539597426270555314380244126674531638533440395391756704075220608816577347996235195698552201647715819214001401159500813602322548580670726168466491427142977327203025405588728475223069307156874791495312473799603361005900439131784846772263990523360001880535802711917877025663951180673499211670197179831815956288978375087075911434086158045056941455585220918286116622930817217792163372069601056254516060868312604477138058381270132110595007206258531373882265201051086455282260933123087104751561548802541802746024809504216717730042711914330814730650593963859727888225900593282752597310859924782267982182067304218039247116847415171453091863741958030478749483721019597547308201043001002501944321287046929692825952290414189331932588206762433212810237339632914550790611932140206466929540541491095400791085181086404782204316081150982695461308301363368106608297565923616209752799002891069193077937040690355720875234472916917082974114699811480077910413640722321231985685748907889728558544651676761996207417725468158420945515493827195742511342637527255869937356188291775311273079227157713966104862321659736550028364049390298480460089391503225554546339545063301747137652996467151771441785799479285080037603079485801391744165260687765614462222389967031309231308205250272913401792000290889478941622162158815122827833882543175133880982390721124567626522974588986700141704909389903242416650939938001507323790710030954436545092014259807874645754813342606393828193505856770984272940722816873669050938448337332026662231264336406740841449887135922414385279506062043085073436805329899346498978939324038367899880134453285500027773659342184224526807236711136720091268939218472832837934844214817587663212594877307724756189647953133734116870607435808864639277132215753300804305621961445355617178142210636891673650595333178695729925437382474547457029896890038808286379941187271154221978595888390689086938874513353568135097793601875981579453103241529656871834371125506600962295901054494041495281986184140460537637163700633284416336214271023398605386048892319620658814558168389615866863984520367174299643918636495540929520799781867356116009865176604206465818682594218685943216414544983114533655629347567945373902945007529079351219008694257280970221972138536620371475805955241941485777948814596512843759392036293564386900481729181407734663320257957252177898855078742209176972450297481969209759621792072049280451365835866420438788620593676254270162592956969240066297864200135172079829551390465719756144608494517207868733426010404673950604646186530111626544172712729445299290672222086216481745751646625311080727054616889964795836322686695346207740531302145226926048429359600379548089694012654734228120284740353882529702292369605029665804533503616312285167750785783639437092710457479732524896880913692423039998031133024945401474117158103494389960992601273221848577165865408744766606374794050724990696836312307299441392311919119357895720613825354243820114447402764641378498647377459718162879746249937931921684931021705701483491755837887622450171048487707698733705933426943591491235103531092306720374648680815739539422927439092506400954344495816908020540171154100302512167123136839636610735127311722808927915131223087472093741259570348117644629678515085587593054664717460703752952068060283443120131473560261119829240422740237795756214000364653630859815879841117154979607155102390457482455747216473128831496435207961129521765831698243505871728832998528493042391574583420403345196738373624349566735294530546011257088241269320300424646399925908026486624602941273675455020301454854303210436687187841661503031155693512666672074632616644350524468082976184351309388435425924070499096033471032515582587664702151848297419278051220177033947406243855922552350971787153691237806299464304032799317431227634505056836834962587182323258129592168339081383714963655967261367386888629002559474864676139310142080219932127793235683791055187897636319558486533869782933741802547325307453591061462744685307425499293311359131465211624366912827726316830046964542193112525670888221591247376232950809990686581682381002783117161104429877105456307333508159314191591731651495045445841662296962987515019874458898236253996429692931767545862611854493644287625434643744980699816142352920518657551415404006195882456673269117995479195453567372999345245390430921703505728648746313296295984849251477686452741872272424110211474504432056198620609476093641297273981397544500391639612070032026886256586756075116215956863194117427610466219670428724612299538670628182892080450328488973531749141973327715282568257416104454190892482860948474849036294353175771364350593187024287046709957884048329255011393480940271792332176752743605368126180764799997614597111702949903556847058524647137050195446169118034784642169122678953390052532768519959195276701127314766404987647564365438176310442519977764191188397095091636799967187879452827950546770811010438809799234540393183742472032750686719655344212737173473019543458048034075576323987332962953363025996433639472526421885628370402357034727314441428797776629046312751019570454879123616719058771227568300991238181522043456086533829949533502703544739536705949698437435943969896774710945893960318215005058705887313301663349114243643512811375804745928046973773224365992424713455110288555359026699703190091172421664171946227225392314814200205662455391967495674038498930521667333306667917103238342733735965300636924943016289996893789086739638544462389049095011223371574279664131224508081406374527171459454428725852998934464004176175992422459791425368945694239188678356131271349166474852765523553877680872682268609306838018123062437498812229780476101496693013007037939210889523242620556469311366003954854337649817579473088019687797048237557729602777027224174200590225566402570923667262962138261737551948758571805878177886571120119473401124518883649103990889502387266096612103805601330984858313566540663893387319790419890006077810808011751682053889144311878616052162648853094035640333138312506104673257038394755305148213697675023261029945550585737351320435374556666639332918812193729171079750178296440993897212825370406729143244002670577581320211266450362460647332294025052746232066370371955443662161820725233039308203135534446629710720017235615813806864108569952564743656323783746507670155916457745778484698198040574178320687428198581046130133868930001254493491996084371554446061625296679657680994711722362830343615114661240234816514567602580805786913087009143688111981675849361091884843914312262830607157027366050308636634400486110860542949654255796959092243889550499669982613913157596946957345965625013230830577461759762561639850710721710951792121494956874452290636947222890112406942153372871988931952138364641884839579417662696152782703300798029345766845919716014123062107943536741107744143946660613804714357304357269204717053065504859717370472784987332817148630450244629609791099010110077627254106871023262541572291063511102797451900348808267968768465449424143469002488579253324132737099320590013583308866622137155819456624471048115891685354669725399655484862760560945558561456868656719080388337021247819001199580503779290777909779915784463981729166255006666254290322763757922459185601655401867506817922970293702198730088494036845118227957700210935322529133534711499093088289624943335427485466670249181082777130333520694977785281689436959644013830102843623271189660748879412018760314109551010750126680290975609984239366768338280312116719811035312486703513404732907959251091129639625551136249172012272903299683378896629700599173659360137898192534575982935294673208030844530870889586679114839531749322238067732480320059535338206797254921016566390433491039314471080278839750097150824075244579751473560177762326610066319129066657207684099714703966825992040568442705601706139788727993961467618203536384145819589432583685299424552332832172242469604995136087542322749783983143017231995631327335593542827050073087538585063238279207847142499687975153461548373152151460602027704446547186608532581897718467562891328821890832982510827786482058773743308222946329114267228599394771784438676116857525749970757554079321385174049834622878530524642624713287440449958628010889682357258637209029809031996183700870967330177102587170166882990685128309609352392671464821782746723125447877507886501563718380126107262431867432600577285394533400368131775430532163337535050519468663766631521681519991827071376437773560567398990925720735890763940460709348282638188055225332598623616104974125035997345568052404027229184653345497821736833699332204224113678985502481352759784744167341086456827713718396729129557753401096479611697502351076171592299195872266302684802859721551562631471709869435043885062234546271075450995989832860053541560521072754643509856209561074123797486761399207862137419416816977751940909117184572709046353291365156313542539691062857780020001711512102881937822532721185761544335286034461635406375566437649754596456085024902073709198302263937390348964281308494638391465857024983081831780025094958020492407125354031004031224482727792173032700415745274218278258686623657496957743699878594254247394578042447665094239012560102934487231308199392375287828514259154292763639018312469367197061242358184726641301030109180157768137336640914305669903822926798562383721222505780041021780873610449294143612152625804096852404862981082018621057426059336118729601199101612060119261774059297757825697272592195199061425000531197786306422255983911063245286292277167866710232859257401217940956502494401906657485708442395899189365367016177020152862097226570688694072115024365704437010576647582634775250722630685120919071293737065748840088865827461653806882694464138559464096110749860250900471467775899194451546035057765723610199312914326389907327969105484912996050492219336097750133605377779931696828007218600192836060940085829594322969426146351942770456932237604519544495256163624271141201481641957162119237885678836833400123936400320790107777656188599133177134014267751168456150927428451905221247664745486832548158790352883932811090408525207303912269186402547461729064350940561086745262392389735480386992858325453515782928902384078358368485517350134620178393586551746694265745090452127679680815503685864405705479106452695661763128343667756645372765378289784862700080243384668291527946618546533985120883753788804135457894596645861426612413958383049062241507511196790731110012902764394508353685831082036386002412383012961214653037914193123804338796609624755081895392696857308216724864168727008770536808154386481660354039645744311939879760150999033267847175455475025743379829432969843692767851831743853111991682600702083009341038196789371465807970728285792407744185241512715917771121041507563355216639415760051642977630914448250193991134875030912785492102921861831103817889740289335304372707142218293756026113868508816685639872854714088261594894644676753739935403220524479040600699647571550495500018318185682810663561331044297931206182696006305073789097824305310383023569062025838675169321683541433407257447109245501652143938381367406596895386664549453275748764194592298226903128429780436900150722676589579663134621737387942410430221682136981619037787978713536206030757941318019247196551752309460448538088349143332224576817447463802482534211057649855375057112574256736479587546999589065865297095114624924222938516859567640151618894907203888170372077101545464975925775275372870984301659171373264543402881444752513467482860355524639808202178495167583939769027728531488866102961195349680046515029683588698431228208621183305709442964676646841195592888751243482076298398558189327945285524582267452796554632226333374627030841032782795203331138525212412286940710590661451159175026618101771015496670351069563002182547065057746602676779955782703270813324120468420975822406954287154857591689356171549951795636063187750376172257946502902490733697550881918151656800812533697129837177755635812563143894535185726079142704712589101394007751219157998404393842609470632534974733870927358781016872837859608715737865319001144772798373225129910290581821974110217210003918091686332842390434022934671157652717305550137342195376646698535254372850867028736528114481241584012822036885749473855910880127722474836131185027899890081848501883416885081638392753171335389910300260397345853574768085879020519116428373477134621736917949075352193659878176545509443126709668537150748495783411345234939394948140804837353737683304864039662846108423270186514698017857522853762452983018196746561488971691627626557659368107593332695371468493642692300726224531725974834413103559385630297643457351243806564017720782504273554290034958660046367389674929478592822649855013747821622431635869322418487645486902286078398920795020540286444915319411296280310428601344630068547488840713061379755146464332687408121039702039983998605932111109070462071212752861443551898687007147944862692723791337385209474110717524871085997843963802038867001858806046595045585961750291969818361695059615191061191296539881073225587387989790512752675249258235941978731710605129358232847374676696021454087428177996409957492232826253491610036795291363143976468541982617052653410457487578591877819481898951188325987702498031461287541331736326418512305936486318407794113794093055339268138487339328135668329312710341270602199970246100776419774685118193747182845065051154484888582897624961160787213593160901247745235859731753502314284195005711141513995578297587884396580885768117496710351299537416129321571876619187121904657126810140458055460478551605667499636185830479010594954683427722178677240277813389218851057455918819658290406114834874636918622571204178331609923062185972742797874096689148590856492156963027753489808388307002554361569177518940102978842878314577780076957492068784141373072577864718688733440493801472977539087854742888386470692998187256496258968657371570615798229869969557637203266789051467102509402309048525149093171688797992012107678715123485085876968361649042132739125395523781314274442490972104965365920992450244802007450403942253681713581461471523584388684905571495821983869204732491241877269809195434278286154115471954444481394237374758264933019153654286137564631136093288419127581731361784783161770886003256399345348067600699601265972893105401961312955232424927299554018508184012034905136853453672779690832845971026955091131883177803840746211756155441767849308121499923875054994761051207992772885770518508034613394776654310932614581564497896807793238173531478373754115850602783045753054388042320614376589272642892518135420222816048869634872142397122534403569639072141862934288571527667486519382972849227950230607814066338236972904430327568380865979971180694811160870910359707444575441274355802725849062088491280369193551766045504496222917904310304200681984537367593625910667675974988891436600669238653116608375707565607923047047992374547494361411698257522853356222966702975559588215851917335305344338313230450701252521055065361140754721934951579722448728376950091977795810843955345459791880262811111971805511560924250432404344971472597821143960153422639611424353569065887420803487886035729077655733309634848135836097135747699199696063803430617591315804620518414920655867200919582607003840279943782562253297349980390414649669682138477209452841216950551989897238736368812435777910852345082341754421012781924847403440661274807845150730041150265359125379757689067662491813451133432552399533176285783757440792029217264308075209480749076690663288935376924570608843951877086164735980349328450339343270824214720262064994365022201246435449564441938588456521322407211802033300336860257968773904097763680574078693940959606177053158600605610213071468524083010183046547512419072550633225179566375769360747636026228688124028156204583711099187025003414208508759070120706585513223540261875442344137888732145342172200906364196346659537081458542956165012238066962849387994425390302137546187164965339101766232924196917010601141998264957851062442593668470969361324481444710773437704881146409839816613366458541825198014314945926577204473839450793813072817586116197960316335198027867584671846487198023437268511445670711809915441285576376655592890652263567830358721365301841892975803950566154474587367687142508180036504063892691620752454982629841282895543515189663609349150462672407832205285018486826993075296076618499921897342696455901047800303567807110687341297733649219578109047155496614946328088475822915545881920941578728663401026008018597333969941483447355269282459316774514107424258096776959354582299177341792826545092079290068594967203600485355298618662371327133077097833861943684271942379464257652828150247232228484240617151481689598292494290673497257128199938088272486579858041372415413871271227830537501390295843709684758716596512767169701674091964256292197562575699701295054971580359735225266316999010579420850093454595297005873218626896401201387928047601146464663199613173180090264134693707367835964071244253488026563145056846873693616241334091364951157676438195786907029544024213540398329676109743577563007610166091323664102580662496152577641109580286774546394468121192488951209823634861015750596135601441903972521574198992513875648833712199679928096061118319395792422178855813386219698154316909278999842724930460129807465450994659862454218033439191533050431454069235488949670946247775686527952404805497510946309119746960848442803767464264507753548293073937310769152033924105141208866646332166424552828845933519254467824413426755380275068970481999858071455078961322567161901930740161338666555108913555729354633101194721289636406911594780185403644225081626626484289336729095439754805548786019598803864966777179466396274833709433003526713187307411556843274638806045710882768151070831239135153762632133138510730232933033137669756843788365069499581274114737433715265177805464859646367288558973016593447280008180900402793090077350149058308807298194024042597203894517532736596567474374343446214715625735886150868867458594891182199898146389385884372266508785106069239360595308690037991020278756108807201862370291007058445115284538420976237163300291916459777516280797590172735773499510800145861715242501807730449708035337166838120635170303729579539197790640958807664445854245489700199222804820801469161120914222973811977814763322476138579200225032743350289446663922234295942169447311372259859561506409217588066601906126260574150417065251620020967594452984626830563476826143048365985381807339813965006367188546011644896547221115475783741346019017202810129727483061522061968527777163797943150127549771841554980117913259439300569901964359628057368697636160710434833288725059073755069098253968196491609691412831953829259150198964284621860539504820371582935147174888186858007322841852186443002443996426532441459428161058787344163736823376600289223503603009140950957626241571949727977195166139312279019958168529918158311266503550944277560494607150540672278428607521534393944982979244562462317664762291731868629736805320518338145835318963425342135759751499384598570266457314650681575010084930425269398636262109882078246014041946557965394282565261441347121929560675272401511925003809123418286806312438724244566466233686071769313031256994227255947265070649193528048438307733453173395893281964486878180204496266649864632992476954267282694491310476579843761545890205653077572386647683168327978895272492307293689757627771014680230480283742661994686348637358020732911951647062219957991311349781596781378119610837107974358691590202713698780013879680383540654487388559266064307418153057125079721615892133670747190841219658026844133008034280549191296804516895976763732820215877895837421154502349806731877188867525787076305577274680285173860487679963900265670694666244438895920488622095901207657976518116630517783663989369855546523905546077204265566117031043000124017872736592364755038456728737342831133859967118886383267997845448011293438418545211811397443680998362466018795146877464630878357490458458070286995282783659684543866974435520000963093644451990340778375326795520744167510373845886998856014165396869257131262118002579877980087041620529091773027595030129811341089163762984700083980030445762210501748057463761159372595366188868555804252349951698083437599783413890470867655235118248628858311786862625131872689685151147451163413184078783703638410198138965585705826573950375411846288996120560032639885341040604360977600335431435109744112191276130903331207260305191876764911383705225797833346989422184187891701905574162731738036068981170794593843921813569423855860003107571142534387600354210886714464532035080879097857369864417972884482501391653119590717964240014903472703659733469281342523363570650660596228986496044587807076364738864303130182066053281462610680163964325570157190501238691807665770056513747616647619777726283060224718333571118400789517789236489351428080218507728649225142595951288201816170231562007842396616222480860900307320719380094241743948945136419388857826007116601113609938424895527945464974997341950882669336342021619697889453795466541256097198980651436346605156238543096740047440816455172351139508102502628142722687558116724493467816010115097191300660911867673532446413751371751793281592363253624797364545687993047940063922784543929018835667767532131960350564459756613685197984534525173922655140423485214082217851863092581656741855382032376341438403554238027034502009425971997519688511862340948165955156625487045842863754737984248650486317571882959033317204136044848125455152946502644160566669544084098772411112403099905297610060909360553906215475871423884295806239842629355375460823135908703845411239185562759541239595364887093136846613919982368379910247818258322981908733539359436163309827186050432136525434765264220835769366729606811835351974480515988392410836949904320585328337721273619833983815260545735581406795982918298604590933161013328722478182074634868915631372649771696726055786994498785971491189581542979864850517704089510867629973871564771045917610440077673216779448829414426838571871369453437906088002616922201292251352109712959042761925442541377460505693414115167358124283612958031620986905926519411797466841305073698512254999413077195424523941102089983236903616751352457553678626105250939123775738085342266329191157152760910926136153408939908236478770550250319236213297780329129195108228200687614168829421316344776371900299519723808002548123012069125793293202703807277833928297560685357610041640366889757069204898631965236127348386500678576680896437380968958164523529238503348765249197670758678325694196704133757176807670835704825681822167338128113316472904928134696647536704598308123123046817947030687973247378941609449863160166735574194299376643649954782153217993092238955136747924875101776002899657883500647177874203098833454672811156372752438524432000470390478383142404539640079144265790086804767386567511664073854455378335876006079793511741455155166833742212822230076503671719668074945061227469189456603032083245775182243581885839465524894740779865757859565224144960651930663789158704252441188822318471637963943885229310656761009141346073610140488179039005721241940107466738171548664481013520567773141985710063851163161107770477799562216495536751461249356765822022282770416780868098569701803002270144676112377986928588587981308817947991262608810906940949043889265091904833201115662080184639559711093787253399024761947929620658466379425609542396491106426030473321005057139220675885727456892406838066984304239007979937393826607604644204452264341556925520307830555119112037095249078186655048888079515825485152822472265862674742453444058331074665086127374508436289380158765009477253684279394060837329214359348443598705238249888640973100119227718090366944765167237401981206909362916874407152373267632878140774776836389025332234271046596790039407637208020277633860584778733728834942881663715105288646953415351473375202748466755145326815376467190012863696681599061043501546096278354634740712960049505778877862043696042440543657169941939399942965272146677905830398215967935999634595643374139157533234190073359495875866655894862262775345746152864946508811463147657481391632460903270230757666403895440781188888152698399468835348028008364152352542372806190754091195246876988423837492895477786158959229035133149233560757818029313243030678002191760884198774921376614189155530914346546070150875018850256697510907717857041317776564201429667985905414537849143295395046710938765817544641089169122360741450449104383097208242135028556588965027583202432768044100506989309844292231278210730938442065862195268180358054870345068505019615582355420312592798714427201984917763124289370648377835496760038832134610349674636493454214596329921745644987142285326890184703226030546927778043548142539234679598942743946463700901237854512749922076829736196830180066544475852483616051052776004343181636779371150021159645335431268706738628856824390934501971635049229202424013058113444234997650491684998775970421261057901805137022833468652996608575760118012542415561389896305867041118959379562538840855126365623311726160230500818308493307585259236460864099155986573367769262323126963765182648947680165143063254501424372081668095908340210589651554452941551999807654267227675591984031284116680347101507638636282960918317271075861442258631918873099885920871706910022696458568040151651872365472500113660102294549702854652505241637948867589738775717775906222414656589817815225098059423551431025726357858637833709722679868683490316966107252531145485799005154310044364071804507933249710239686165197271029218781450151763041816323709822214542022836307157253117462935233266537982133708524475468185830134637240894999107663720033697554491745585577928302637444211732119871487645070145718061173717615596176455687326958331647243087659777191261886953848149810292490615748241293429821476624287553638567592653934671749802817014852753227322761856044551407548684953948027713674323823546101439259818513176050663374739871123312575677661006165121029022692141980587498440625550064106708423782706445721668722269261336643127153636706913806268186824624285835767235745681555522911887352719920466092223940174369764371999117677742832222139965907658266089424486408573941042470718259886743033470614537813075294864201295257187249302849614416441330184008426105383113024535848341891058240375739518696602171128564956283939910412880386097986906175930323583999236871327767575754858610587446701361570183073512223868191512862405081811964153226250318400152910379232837019544054431643304056976250315666135438920752296600658490503080278747395940529669264096104445753472611254482061450776196434558102023710402949863110452609092802578999988394563960165108973090685603780221161340183449840075287698017053077622495839499495472641147334656282349837705565310354532904883913395186946999442865117006013930541212740569245952112425097879531898521690313759612689127057512396568019808687395193422164872494013013989260991199359422539618984522963813697121239332304721980690351839556523288525685344066367883288979093562355657190508862464155006530217312388545730427999764479723837197922379705470322875173893172499003586231446229881247927273101808358877752548161092186970835629433515639913915549927195715563497966504041706476806248287409227393495752705451040428152255428938723893804975587747389328186870234056765076869891998206254099425822051517041312988952346487022057289029872378585953723542212821182935050850586145447096212591945986765753696249661031970314189494009409315831293947136949362074813340067507175330293928166230649198979179493421006419780067602799800881408745738452775650581858097917091647253839487382086514519511042859786968409245993688492676958506659915379686411985057126330486257180630593521157061904419254410267962985415072499477322216678673200375334696119832344636881689617295621762260658366927179320340597032863955935070033893040040690254876601183494645048672589999057196359834020298622410762788290669426811745863156220245522680877118285592750379146653153017250466924153427682866513571043827619683084243567153481470627246577413490396740862727412224619946927671956833931555795653424045777871339761419764496484152998607113440876944149946529412205778597977982080515203567318946784778087885024349947501737954422538448265656130614144290584496054967032337196781636899622036714645647478073612400725318077028220535832665562661588797436166744437984218991994533192662787754664905086117897326336354749596838258047238703811208796792820996775102440502097526525952167809763257354012988930742183303258506123860219732142864181059761411934292169826790422846804513159207565310641454254159173331307069554910418711465143598099536559318005521419676446087470866290990782983164552524585945700553491879665688478247218264809097144429825226264413249348729645958365026180232985043661773628481174200682990170525544833552743573520149179085092044621375122695664939823253023258769741196120958884527325691224498100013128371758649432519508522036061215360613624006039896638683131866519306580041356404132094038395471622979652878570526163620812331343362980163562881254538853097228170546384819468180295537087388620896520872307719170680212232871768111627207003299923405744203795118784282228336972423227871893228191058285611102183411968570694702000680881869972294156310045328681050039446484537423183663064948356540500794462561285374417760176158081613323450649245785113041685025137847769038517448374759767389756740840007005578407104383163727236845934998809987477759206446327130385505158629866453141677820177375579560718147523272344793723049980488698697057685751329233613635423469185781343813401035242662663288018020330160114036018821894269122331259131154182588413695159914758947762985001091377088336238225683528119822065630889204950400216978686697612751617506153615599048602366152457157534261800315815760381018358905367394200130642585803736842931871746376285694603272678645461309620888724976965958846504779503944482863606345158900762269055065834722324352137858800613987341746848874267191847631220987757231549325523362283745496106700558336731529566163102173238709640521054926679969377380480411947963835998500496070783601090967982121208015792735566011001444235495536292644385464547905195562379894632562260175062118420772562969010153932660067546280220728998398082737516023968884751690332715024878965279548956805989705046390901312552102388527598654554474337471639613095388906232130670258113955093007562117769498697894022377275470159137733069332542722143739457822065307256113044629534762778293045635521580609926770063582315301018145866673777069302072789675750102892091250439221597278590635996224056286029691899006834917688966901252135397938631068663596030005696547896494043674047615070443818042328566784645346549781988077075535057485870016989847424607614872593599497754463146238440249825091938309902885826838834538412360403488256021489662740788933644628716892896305320658428223459964207562742539037289634219408473062749329993265343089787287289696732440424636274420270137203153589578439920864297904473742270135483690573645514898443972967070744544939457976781728728524167014493062736292449345663410131184759215473766761315824642131539292637649174123198286666377228570389877033503713611694471378378659357499421544501333493803022521283566225917037799560934426161764767724634380101708811405119372324001630518305461051646581622232700341155105869771473834386064837468379841927770953002148240462923103375780810403352594331963746163988452884709496457426263392159448805399569252511661568406090513929874434568385399644725187617632032031481772346787859789248748805455661022510460648462914314796239441736503895657219537808599800799129562459075517470861193408189957541772426705262499020504480782032643702402704749154137437421892535463275196882009933124541598703991117886747579955845821872566667409676241561402777100080505129192309279297167559376787665999792682908797238689917959433818729915108413806689189445539517438509828741503418611506951206620719392098237731944993762586668558898528557223196258610132022808769304496482788291218614772954906767662109134754529322262445534247167316702162275130066164652463366531566312444063749911424938996468962595156576537461420636176167013532556480831421628909088208656425118891178479838773945591787252835541272973472881741227679831964105934289353896394934794140935044099394499367825165482614763674304256158462005872624385584768153448742856811622406340973788144357941196151466161861023979870460601786463946039805214496314214330602816734464610031642581452573595313431512004651845147936268758206984792428436743496381103045869911659631594866497640799214125981955160776124444971802506583315741156911581498389300004242262571731512896176306687817166158104246079287419789388761547493739257117982970149822528702756650530544475205620015685080711909185478671331349536384145492481861763112944538933959898738613623501659127853281515923659759938094151151727043605781899728109676580852727594418214323865064342999699358152477323023187837712811227434002053864156231031029551375398820766695356794538156103618751268582659088288140935762741370072497140638746255573466516234473409391107026619826044805605629300957648714826244480929015149373472761437247223655538988181847895011867601358889614222354651637830946188807149478020005561799872386090232793374010329918867967014451300119881647778992718356229011932609423730508997297542182205670798057265260802320479851742833054953990188072560229341096573647648716809194198266087148238344389526654697174729017144003756164261365908520834356347435527311384931896641252773503624752214981755014665253885724223429853921279550041540253810598867807821542936812782609587155671829420170030351543332695047716219148898428328414976675084952007539619685108115112988700129177907386100221619961143795115652992338218054544154291510454653270795615802301361739835666196140942104632440374562301003565112346922692427794845790318299163997542835855112811852975555033744531890010007663733606762774810384014149733938007148910790917421940236365603265968637184179016152055599336913705761576504175962949451978131325358806984531724808319722442722198805948433886223259062173983919190695182306324363174728542190121481077549589005540856681753964780915160074613017416344135016163047603075400463958041427331131455450515566003812101774090810366646951577233520254992808378315911638607238443793118116360267869748442072634882075184214887679936613722464596727522823259004787842288628198207473696124082709751376269973022220842167636455477176223864000144571560402573026978574693018069667594305524265766322474630356936702397708968619901123024428287444524865284749849752570052090737336028815166483075753230183623705541473095178355562352240612282098193610634156619774653053361313283985303697719818539444592868304997284411087080437860990382774477013570045533725640061398977624673231936218821635612491090970425567979125771817563503568852962932379964050018560586583489044120239145410295000723143587150996633425770751404306747442682231454256254715270412967902102397114072421894735830183935692614266651078941179075243702483457985695057585609197082022801102244168484113863133238966158188143395415949434833298969187218487772151177435248616657960333838358037874599930215174235705803134857941492670280054173277186302073120871680129520043042753299033339498332797447148055466158198019229427318227459108322745476244417325633077498898590213342646018911646098558938922735982669845709067188813336033273947117692934245669555755239872569644982380542446286212372170119302766929987608369161170622691624432218147105747317345211762072263641741760615986313718199006434076273925779917547826049053535147279592503861812149041379226513009555353787078708525462700947355626520563365986544424340090525881193544948836862404072065082359316998265090519149332734257712633632177081989368206888540310099138727644466588445072711447444889138345048779817488616040770686427839306134324786141107934655802673145966222935381048473009142611765002707140792545967866806384558579726831530745784344162807789755225432039046611191174602845199072163317500196723724225704617602662361493272201725526207942882137499562996522512414456245088427368450830783870320267663167456108233985912352041000324436320914109603163761924896097182727809357415091582866264660745285584925061396303161442289374320932289230225936453187850958703783314853102723811193100046936443785430215167004914440378949870406839230288020581116498723003658395931687183465056107807854996438895248588150451190598024757018022313002129537874436913438974338515978661546396149551263003878361117597487823768769151321955638537380677769494632404277891494558691423079357183752158159769533732659552161426221007598779472826429134148452013142089888348029786572067800649453488957171365463535176471118299415966210081558822592394653317346413959595717983284891569924253031575744163787227915012661374487838458494888770124615167538362728004552237568858982608063170058219380088875268494391276875328897469409992239508515963658256365474420426604498339691417901260795677582799671302640208803031539650872458236693842802745753860258735020378240743465555739881262922418215923029144080563989157667891584800406050234639098122593153333330988887656633313251860822574159407718085416495110530560355102198107768760180093733140598290803742984974665225330137794742819905790746773285198447925972228496150981426671056080044437345189851338130798064284984553239872897229126075521699144731983255190658815418824896510177617683458597224351045695670878487847685377064370382862157551748762644644692468933337981085887089058430105635718848238899288359420723588033702806116716242163143485845192050488020113649472965639819345274470685144395325796653370821586731972395020364891479542710272057212496548564186816320693292758772608970069650650384472189636909856097290652128487037519854479383856087963117053532230783899539578083739225072044248861175294687767018961151992195972980911420733420311469663817650303862812470862261401469737380185299686096511615156255760879323608735961960642564415691154964236313116830810772024758421234984307505610098236010647138151376172441559482374516965069825189183103828370074318216453846992546136385638298972763421068531528904018063317587853433465624545872665050344312447544446176007456860545227642559748529920896801652107544949770701310706847146596814455903530729222998290950507374511641132035236023448530401494372019673728709747509172001918112879684874791783717839542673454794709854676374442779604710371558292359300078978595611402518324572554468116645375101369456451549986835539833839637115273696936963647980023857640359882094538748303359767093123548345590780324541783300442067738045441621977352021233533553875281866519576864198022334085701040920250077138888330566038066936535737014096903082319301952033449067778886133835506486658378309977145179742561341941023778373537785865213339896179039508643019546637199613621177909672596692546239718379028341259258270610999944329719873006965377295228823509015789779757560441757688416815803777990319736205772469412503928104974713760224709178800167897168147665433408683894310983779358062326711550389239030634217981490129892266833186742365716498874151881671754061848020051754262932392171129194038856809242896655370224162640421968510279882082212291946094694606698837775773182796774745065476821156071919110033019128791454284552832307863169873796518652147390517242717692860131893189606479351224409628323406977035418720086558177221199589966098410391731146726768938328194850405337528892126016579555164796204160322434363547723752936492751508340838173079091762264384035730178782227885623079783479860497606280858428747253467947202416663748570962195336726070102477096729295732844566337976507405115084610594845294065651617566844457714020482258710808458031746207027327220383288083010507070339939707425605675895956526122734883310949130005982262450619019055819040639158570878184950154524805362207023201964544921842265949870930742708161341142527320682555653461008054361976686232930100664891235388854285533334306847246004009517043932344997740158614642868341611876468478388367286093782867028217389566085204833494330655557100291233268735872453615451700303113987215690863558988729384450186791490642440158429533465444959917936198518440535718367918375609320276014290953877079431950090985431376168347380488202030191195492027079872643969140077609614214430288989261332872728090329807609826963389277074506609982966323610170077881312924866191479611132502230973838804384955294943009274404670587665434664596596893375163004002974623809906407290125891605665756151321862477615731949014641790616550461724236610330363069168223745051906389574256241504995859065893200034490367660391757926374736149326924806202526062407087078153186269880641333506450754740521188602064233948976438673230415916819355530278828135099787451363379363731490985585487553108711488633447376300220506264416805222086550911364215305406107462113396729906341834958178513259254688452921004171823751645449503188353069011271179827566788758364986578598150365430007858958578108844618067137189807202629792870418813275019565157208639083511960526102356175572221353930363808641098601523446758518992692826148030916473264863212308355935688937639131777518689329656329695311742561437454162468784185308880014069762045367526991955496290715171115027957101717183662322071035835326894061575214989263861357247336458088066249401421620525780162399223523652014750926736358902924195518185759439620983017900717462904209333663633183331516939017273596377088684891325792155734123486708937903101327941211019028712943236526052434541556652488252171125496936529523338863776102053162256112674441255827290908004644975345452513649330069911529740949672415525997816839890694231615101805729401047065342689863603531754644569856391044703425483798981100833371684520072676698085922660764395423739500233634386480465723148360802717825964958605580524326346645581424915295970967379563053199079714555348711673115296429447388892724397782979211313915135352283668524226280713637771117038309976762273780936466029268709862741775786456368933452277021229089313895360636739655209155235228027717322713969394664240674217151797368879323570076510420913147951966233791399399464874306407752909346844537425067567427168977722357957786655890750132526745815354206154835294925237037121038254134089242068838967487431832375764508940737779597397771326937776542196478733005849194600901728749862352895238845764630867379818036619906069445037295495902217633148659391996723824011243340016235159082861359069342771449257153242943777612896434359496146673486203599911072667428166970152834539250515071364767239051804518623818621323885036547008711319650844163872008682205383565810307800195895363353052651798511556105084453576456605200429855101577509970873207525338680575205220318986461752195836863525229434683941426143795968069596003668846586579867177772687982491703707235514702741037790261085741388991095704042396007440638164781144867730961285147108499455568277298562271019155833622672069212975478223150798164461251154326618667625340375772310433485753718040203159553246625038093091209858962910329878824905178189267558662342043728227183727672464072749780494130408889757675838454171646970099103643428897966987290237191565019711986032188547554997557247574499491961245853378413419783705438952701225770325661613648384267697229840601014916174145956406360000339549675144661116489017194680481826424723877583913648047907032897911510588951370506293151271341559600605889085574635553020226414477046245158376292847965013297118541632447212287234735374170216579262604946279999346269840470554005156715803463909798783883152721212179916284379222496874830924308586665247858641880951980388549049833367870438215950723882070344795767520786289429138028101190684710997004227434133136141206800302546988093250132030049576302392895286919082277211537566709267616490711310824813359117361789162167517590783024637992754654967002921115735709696521842770942030989816576538161011176942934152252531921416972797124968860471982735983950482211856421616812014793123937046183783764846382314222811708510853541577273435350386157198473332754892226844258348434759827675172249769486451100065631178377870081237761837223415561875883379305053280354956354037407430019080309180212254622288538643524437520729321119424138680006721075841970290296234383262665693956326288326245555900269593896434606514177661688727586118450632875895012823586036624130225640073537001135490869312646823852395038568022028800908375764883701457249114487493200025447772431591184520979991281514339550386547095799366920294284483571083129734124767082020254738356479021374026606387709180894703274456615155945825005576240323851359429457699485157721523531872682874409246008509641344571649882747783061237668493283113056409282877970600528449808795851261838516875987884193839953977354639938128253009781755597058032407057317302161158078840841798239299322931886862301599587740023034834470028692495337453847258250625614700522061181494424151547528987960649780787214070492000365099876028041610670826437104356509603275247025333980066514178266998744846020076525683219896338676828734296765895895793697594816640778090967035766864390230786465960241079918421494297872226421914931915082033672981667923137949137647967724443612463257453625299240959673033470053802905713759097068694824732220266666882082918775034831954179482273189048466355076704995177406588115235081767649745681387664121420688886053799612027003273290777062441849427055926346621753126963322815561633515812226524316301049848003807901703344051313064915218436255752004722022590336107677486181720178615245545608486144821389934878698366516850772522001013560505375843547564261823638064629121119735508968819690364875202741111157197545494014386166180384077962538598645377076857889323720757363752649183448418362873808796032900727876683902355661015944719962888326438411716989028191222288419617089720891832413726857870315139759260528837332699803073492376344185567628467287332270140330994062764303446429775919398447501139677124392443884202185955120024405276286390627063691470926612356378241802042214360369306767310990530363273121490523296401540191046677292683040245114208740080289170009676247192700765546630743530217216261359803202123865762893452922418227828381439558257170968821272897600791435024356298135098655142400192746482553765222083741165296748157187642538927684098863052605194362054215037445833959243664183423367798630137662886995994563216894034221033187806401648927294327271833540545097488241753699038470264220637439894490944378627532213864000320509998969830531892435188537657445218459566167003470783723086317562173284942057605185591292684543106216279681405503092265376581238504892276455852166609586076792479527142937586816412155356773544058313847032568551647118787281231087234241693861990126217196241214502471427600260769353162313465021387851239406339721798232115082079154397014509908411400092789138416335916219009306171719643403354268433250321869732808181656170906754230733163704223092355506388459781613266197915489716763558680240856458162281536385616746339193872461902784873064101322777502459175917268072820095975133197751568039563146553607779094919137632003672640621580599228248564816229672109818362535654556911340376957751614101173497673024422519584184018856537085699057592191995347244527651049564742780811209464358558497817925868335254170769792984003427992357414520886982957220681417116674447547869286562544006270209018882799441997720815854592900597055291102991576033480957690827903113631303868838567982923706577299861046737907494994477896418248788650674191024225388521867845986418804207505054322643135444481668835873398158911238126906589345738066863958525314174977537283278382412205339065360544000591589402776680181004773447876106181244070148775174636173991402999614523778875566707078923295875388026823482273506570239559082692893135739730932758922881008837563033020387978922561635162149948430651937728736071628726853045789779614243188842735506567736261779018746366535901150184482189068435054378712173518482323117999553414516613241037194846661859978940592985422852931833511070307325937868802910083704718258039688225218005961895409544811286628008046732954343690771936807449104410880638172281359194941545839339427156698877301160338702808105985040500721009761230505535470675296740192371773185641647619286705116344987114620744324156357758939299640961169074374917614856418029843172712603198923538573433360285801163260557367938132511064390907009177242140928438392198916225690587652211649170862287946000839751044463581342172875011025299217862669468726777533292228991392183941892167211449880349715043344313364386459880985863546936999645147813405901599464208224588573402811030650009718910142870562600066141017711433182312022060413238808000699357061465263098781035448770344767798449901175135358000026414587309949921260237351236342405401846652087301711313259814624015410958778449568075730255470651028234017823780203860456726416553919986050985268819803296501663144898459783387938063201833059101966667887606417282175628920927074219581234808235557783093797216333400255541592537562855175969485109637795031160401707745253534630483526167038553114083591216053044497280000390430575705278552984619012812515321839051015981601054270235571135179752885768235198266940278844127801504036160972748936251590156929464118598291714367675480323062411572776209198097007003885004263958910602260445442958227477585226423086556533313356571611815179030330643929089213540750444746541958695707403018681483795344794375797013852475277556859425126772526064490428772436699490221441686666203739929211979711154958718744351587127224673456468275573843158221117006598641508650245852017885435264722707576039285328824305302040143294690458241368637302875590120540898958876026336602890791901809731010797238906783001697491184083448087798398864458434855466379242762286946273876825576174186739314447647300138917566046024216207617970501842640851440207135350660568835417426207624254192538655057320952370380907209789699583597855522337663478048594072216925077104085647014077590363583533466274662641634518245592841125701817796041416139601800634927090013008830777260645041302458973930328338520060004316669762425275780748409892093734204956215437827866210470016551340635813393977723405816795956734715494056974208907073777797806761328218955492210045970663238841175467712363808037509277307749104796958190901816678562086980009167089310924311853084508986171657052745965534094281557714760010211123131306581582750959851311232322125555820113487438364326105319457129048908766572022821953569254635335611780447855104928960168439132511646098059997285029764607432788855165488108052700495103133634194961018741457851193647392826303568147202214344787808923976134105239853438411764365340137383234394516952111551611918041966684456143365900292739773925879668124625370157157551848682605356495830039559857369287216619921013612442821909967648142181293778492564721477620856845221130493981738239157420357858473789893616222799452837688216763371292325191252735106145756314856973234394028423848586123885152884418937448100645358014725946466308744828748632821892771380465564997208349746149077260678694702509849583234600495204577178888616763033363136431561490212548677316866722619278294749258424478469555293817648887310408119340420941970241819627030527336524830195516059220316090684396849969076138984838303562468329092782777392006845257324709416830112735010465301160794695937280400453671914358577216680950596186484382173730337413483312764997020417131838200315058732646105146855499899499726022289808841458572420890489902184935912114798872295175439655075522060682457026971055184639961474623945903560450807800586123529555513634665013596267640919041227203993481011145058565506610411020342835032129817500259813299422303219119323426845235021905954253986679446355611711850100221468827672955657676212584016069134689381268685743758540101304998022212814850860507941050815737041450109974909109164634942574542534938609213523771075870985212806388207941630633972845215761858344822007547703256152733353016661717264627439294753885248136289121552745829094773378908554648635861747634265047715064269716452349672040452466913928640088965196794382814560296885948267981081115111334233461116046283447944211533069167363077725256826390618509993142604215295627726673856308302536118521102457771477928211003063963670703930307369703711538396203335400150374622462016155215392306591464337682804578936226386708192273510681384481994073252623211137877309036845487595820295120709204533291090202185294195241031794289252730703175336953369629807402147980261409264832007844445703156111553264108947137999713122974373836751525150383415700155856321442433539879342256523698575596082054256637411292340867359170246421131390227853824798538414412049449175463874862604190410208719954175931606233602088864051334168330825834784678493030921965173901118187279485414578520334467373947643576131891100212950789978134104732048957776599426775144365838444542305539835754960753849744254027999426006810696477411476095378981434138482310022061727977487473684833416082616932967675182414191014656000257128467969922339034040184133165971381930472972796080173774365456139981734907397803569781479993743401349009173670266104539094558120106840856409435969301619527780475021428084757413192366278338844223442091836048873882066907354376104102370374651677185968792256069397515878265306492372554031637459583272057425196987057123620610242428664612247759951123910061522765499460193819029322976562324992315075508468692008235089931086509169669148506385423926694632915503422986547675407089234574937986659910983364534964189537466737213033757781480626085683799638859122592984821932816107219051753139835757748399142969598431996228347846941142064636197288085811392439119980590303681944534543888197152718251306670988642256026201194482937706103406173721609808715512232954944798570191141442389661268032054061988236717724718855164485254597684233346766978087196419988670138084675365685829693148550971064918819464922501062613680545760979360012960856802797116070522377728964391712902242365916414527828109752080230909948635509434500621367246765240150641356866958618330860850161568916523837903263802653499103436017313794693320482973234027445183379335461471691412588926397024526129965800479961852049253314312786494825045224037262985747390423347007297990626998002736223911123140340326874980291152434066748092068830203930334623332156238113272769164513130593179669181224300501181517480038048173993866091812371376412393232836265745393033603931641660889301434708548428340862197328072986570252593413958611721297085774039992425525848070514621489619779905964143025149148456679670094560524782183939595830057724974366590406694717544781064586221437850732404939988363075084789133059383534496861577007675612271521437317348271591049043041746879743709494692206021241023975770974878472598684449099997515069970555623754318810744138506062953943218176607397657920332562332758765994807137255200919365421095427662651440229648844178070618830472354914014929162433098565768517332473114394592595989062508518527871105983649593517104453690389866193387893031642707794621208465262372982457682716600765159465639077425028075180644589519337191878420753977879480824145751886203016549893529842021102448537888600582304511136473164013825170312017306895735773789279351631999337670067414475657232976776968752270612808717221860983549346235463174398946031573323213853193274409223729707476886379064009088991411505977779889135954122984011099102029445361575286356109552725001170806450837174929199593684865380240209226407641413675204404075364967277097029848637440594814075345849122130396905745616866507441150884951694868351002383995524877992407823674576939253222770769788714716373924761128768458992047881338621692978241814073691566242298244347913101166122319349440229089714541685111520184494826556484848801849620542959323086586052518616213304511882211335770236130815447188559623128833817009323351475757278499257993404095159158367479675976016683063799545335802556971695724692375147461682639190772391229569851497558622468019980427568969716668922269083595096035732484017670369931069905496539827581712292389924251199631286505007444283194102091013740116117303782781336545778135281462819072495859400018029970330653459461210140745225491545813231459900471251492866296494166816426615806358027578512583773888383697938621304343024079190376868942395465680964769947869137976780405126728231363811094130399457922584112840248166181454051051591463764040741418359443942857278190677206807039492642469102819725751543378945103014490819473671346223240447746137833465373183558824861252866410903827270207952601236178192293788818788613361167130196761321882081375055966865464672733377817176995480606328642544225821593694422380919652893464842542639112646375594483279364268785179209388974280624777205324637705014928936139247927508457481677287450064525757388275124671844716470850281474469855871938323811493085413772565175770756706193590826290125544431087857543675132506633448692867940266035963895625194360546040578576429752356240354560865221668419311476014948847294391088076391596648271689498435792665467308442952935274331421663860431808907956481470776166262096909676987225160613791868971805385685232820664475070420021827206760537299213736004074317833826322329074569054305531911364935903945339610629173949380006216484928216639427943370727071660861033554217348256062649809122907645680564002546977616826496310130198789755421222410602165337632820839068718398699000437098793870297942543362106542313147466680963822265446756697332231260891381139519557348021997182736619588300826244974786480475639106961683671817408889063663360995351998060513399125564831002381604196434218719198568718602407821391910307035947731787218438618359605026640655819374413033697369882887467816432182665923713923936128167676725931128277518994753231570993195836398074634597915126982136347284273718302481080820061471128565842438057007434926727317258808485147850392567831159762532077900367209116871479823439978174742957725060222707513081137073357793661301149816495656750616660002340156927627778238120941608068624923831151955157733054992645109267777884642275919416958365542218362876710589317306859024636130382775764050599538446359851784893920309999704032240567439960208475995596257213813208368508180471393261792289968902833110370561775383869347412555508747982281978427061574603502314671258478801520424184331570897182871463522131068155239743480085928297869122295142047626889220250750648055922561965630831491229447589090291297058231773142363942577344994392632488227992048804630593380776376625957789959340040794448464147976065315997744112999121272862290032114446946633162881917817809867905726687547777244689534685350890929124332289297889331969531070584117543077564873068338334888583270759005113604913126706384571563707330285152132494673187918938966844599799278347419456766502705191931061867208185504641116814328248732074202648026233376240862754146905025639840612539442644003631788742880289826987017809974231139788976297479920924293542269906022688374401148609732805898024569647474888762410117188523610972992699249739035938220704799121195424161219146852129947356316009272328187981550594895175518004067163748087124183398804277007226154262887381863540492134691610147430757671469037526577310355334622845297948361024881511856179104474342627157584160963775387730322125578690296433025180836452379982675923958344063876855996916647733289919079980138921067634730942542367275059654380708282482616242146946533536423310547312566725955415622095859674150365330899560350512324348500191320436141956419281551028383600166495804135634162725241236761285599842703479022558975398718724119290501405926772919420706660464986182579462581667661362265201268794259091872528846958784964018220159916348134792633469386056984914963316194739418072796708954649482684839395071985529130170095938326029104533278030832659235420243799412762454766690627208626295941018474069792206775702787286354353890179499018443230762757226573310265175948397141113601550462931447742306145846740342907971871764184392446335301120681832235172041207921934302851144570288213889090686800915150885356552005122822355885975883438454269788459868144961302014971591176234908354256106625279430539432829598455505581248178941440423839477343867691839156083521346491624850329309871635035065156924279392862672532098536310299273149821970713091483476272579668556306045582256930487406779727569041581654079914834261062555557222612580072304981285487780794974615365071354070716303976963764184694616589490363875572645342866242238173228155555015116057386019248084898674534086467603816366856958493194065869546310697245327895652735207171949306130092817841876890938610528804571691530718595853571894733040584596057770244963532277518926197208572622050296561691070223581696534034911635764592302477469775140101528058550873787885975104741545407738965005813614907119843298746272812334486542043024405044582044190313266242598499954987559056471282511876871415791297284679570231243459096944336878268019336642049868732912141688151427957700260729920956249432915986909384119604548635086137775839050969939085580335514975118901735439050843954816945900040076667664588500680253939559485828982229839635138592903508174420074779808597463622730763281664189619257215161864970860394371151929103360889295681722257601398331271787158672838958885272318985453526123654347521112588194275893110176391095046768419513095883645624804599033400110636888954387549006351642574355843299586282470438306046234540764248949849776392636560860921385536057622866631986296294332250253370670472187627677327881932157154605487548783634335384010434282728373844427125882709318500307242337972226193588648747676897699300016863235607922300486102112872701990862907136974755968083853039550402686055676804069049781874715351396246636633204881185750786383320508703395794877692848714376058664603492295079262201030928867795760805135968657991614352630858819884222642006201686968753610824696142632701293908250340196184059898326317334518368403517262288371803294944731218413671297210025684287438034606097747996251306723572024907699283928655550066394528413019991113267823166203008908026540758390772120789883737152253427562173109945040273800978786823167787534057754880041655629813498021049633910943447374301898107143163660022059626190728526052894730398079339709666690586826428105886284493137223890890817518608029079633570167574971506521717820435090380244280399275177417553680979558040076321900824701669735211371839422736673113971242267308565821672708865834991980120708029232412769574547618584723095509123166416989409414906797554513241732079634548398317999120704731360125811913389741706788804494222088108078564884822961794293124519482477080317749293860288558775319399213118051359363943326588062263198816800463534494686331608137798634900185063408862766136944059413365910085543204740598832658874877998123482908827351711701191352142256138942238179582793884683857733761377779467774986015872640262562343571233099341075778538576681919897088788567168601204009800533312413241507502634451787113021143787881761378225222123025975034833180202958864852371870586894528576788071218909885730142239455555748190795996345834674585582973507230265829626676292386950489437857921256617391113134688166601079965661156775235347436539820345801171305882297803113247251508619571568242657673443613865602952521627940856298432032261625788628848960574698147497752817131350689146055928454878031024785603869139387595102786501794603570805835862991780830977674132087527552272543361994275717182631542903198914982917082883276882477477524264759791173171420796925607564285454955752166532622920036903670536027022622999734986546722994784254283144942534177664332799649192364362688501258851212619538485081551862190267984820663983406575206763725499516883328826860911028060037948966823773835988768850699064893694117006633641331212957699159311133049770125481472207736937857211505107849424889347234219170422117824845896896621324185127502951526001957692008657079116873623747144169504729489641269829357980975628638067721838125701999889460859103566767784986898407235306575762338099035593004547807274519444518250363997513212034924762902115974093306565998394129064392518543288299264712746201834170666358680849367421892705716561821364030808268510585805276066788730080234872035128326588761234522311469629699677975249482887092847796710422372284407269853746295051194542380276186958174194090477223352032938031204737814870883291626687155372571610642196640638093151739417509946207015154806393630822885193348987343445528410251081514939123492421319120635742843593132417005331979960457290776550372437637152063750173758222399759614388043059441543462264151944474743914400949150682196627613574413426327730544790180385823055217290471603128828012525566677108040797397425834005768437321299593120990996249322261618652802624920041522930323188462754836322076010993794720102812865824221323562010612063092374932347727342018599536065448620995294028548121597455063685913818790715873438665053177139357073253081051470247893675595870958421430919390242803730101442165324560173839584405932116792329371772444914915365106589487089675618881122739111044349181269419196733198913190120841325015463523625031207813944377271805412330683268758357094509671403887884457814988380884722355805601331747717851062892679269970473358233082766269087124677290540775345486458115782808743822327076460866510561810310339240200054495575968376129884216082155301534641630913701922400337038218697660052950870073713627017900628346327703776989267963484114432367908063300848018923760807241262457483820622545463460374811917725019632501586894428237817215761127855724484880129116554403994450220760844365049339937503540912680332953412899165871601149174480192363503566944286208864289690808407977218566202506019104116915203227599344539125369117698957821503204361977909093642147494498584799015356052823294354868489888856989186786291505649371820988846317398270944204586861150692697036780652948696270790688020350063482148830947237047330240017716061293313388488804716824724178052719718485013728425937162774179232729892263384363292288939664530498454775935267825417029352863187031918004120562463299563703128347274640551299309154974638470724173658549227738650448847996171968925218689547002772031677495183586485381098139426348216460962050162677538732580539660509717900797280478658892628956185104593418074564822423906799339372214253152186528594139794498187494782348830087607200549771683847281362029880572196252240530250089270020037759284467887692561503688109835669138751105262377383411001169858486941591313190600135577948473593852665403221535441859347579659748708546934917906470570768165471988793596045768817076307440311383847325458279534260889917240658514508732161579641723691198070509814035367267552284508926934816165403754852714781028525543157192201367390314552889683458994720390343297590454935113088722574178981824534716399265643888895319486573444374488582407943758806775236952342408771876286239914805474716555976772200073435129689854511805676277342618316984077510481610344931514765003024071094478413894784460476297748763872288384174491700162737224052738642056910009335189465740173911184037705046064903872243553621422500411477105262466766441250897269847093587287127179543520391058058212948243300398773120801962103902587471404666941053836245050655109966062157837062926507056884376295607864195666571193148694100843408825536982485810160321465258200957399621728120860446549449164561301291170444260866385566561440892635360505874370350462868547169065053279779500018749742188896216521713200594892994018468576291304417140404596935695730737602289209680803627597639738906861860355171888576092635029533839480486541753436450696712082232852044047344135238290650070438285872419229819330924462573922471411912423194865108158253788122417403775476802155994736488853408676411129920756677408962317531102564581724457521281497512810040899419272360989822973056409027595076777593947829251080983409240338476137809729220983304303811135403330830593931990776870897990048713486457652189950025738213137849483197354650639654623282325440806752154691782657081284286241826595666350078063650236382808940647054154092839079894331254968758298679370102353307194534422810859955570293338800515253892106544883407261609881291489323559251659798362362769211235872317003206585653811148196989959470400636564396904796478365717263705598914223295361090038696242971894775620317691520436283149312285645666466377424407721410928441294846687168000447063433903430146980433392842350494805371158796848435559379057236521556202326166120234860719622482857700152248500211530854036749307649274203119583833093609147911811840581929760467275674247988141308159137310403894747765206955165561174441231924744253924801196885306298980796718348532725679748034501744649234191693129805933362920021415844600697417322107333877490148318849992855555537748800295694835260266427457922588852279225907867303489056717352881594660170770899996300234366806905848860569363327694946844493875450238609616452095041400587214263456706045238992942921189329299872556274642825999401595062492499533503649230572232547993044788106509041013942407883064980206646876835495793135195411118136767667182065306936006359716034923855747614544032876142932288261774179011683497137599009857399037376245407420954136568448211008619396990725603234987408839131913515078867778805571814469481140562732818899166241698790539997263084016489207727681997974397353609648963046913797354000996961322118147660409690885353045644596044552602803305584263315327547003342919509585606950169280665395856082721902231458667834885293681237138479876033214116342809799756176226907420326469008028927341177997899533846789747116158105836423596660674630323874754804331921871481733520942381340599265617431927061420194600536329326960124712306513671545256367006133528056959877913533189451264280414731793047183396571596370628713415365418600802377890923409754889210792634534651211626800408331425567972247249682133712030173227984289668408378406405089168175406316758733078897879360539883552947365424926115308766314807112068532614201970381560848444860540184921567220827815466608856179758066644783364702052389270173240329554633957619222318773896821500691530655117260671971357747446857858481211646110746151641590727019021206301883286427226265897216820128698452753884121854308003239982473299768659196787299164683337217746942208252918048745195294014414798859943895223063956410585195694003777698736293545860764656612317008215510819034902346912481784146026638602813478998786484256471432829950303372508555207571005127966001789395450934257312637535355851509094260368499819962107702756232466004236013290216489529714503365960871100927970381866081152434457110902913469408167834319215349007253616971852621421317631732388077101745886999077730467342499745877940544673645151019796226767779640330913726130905571032505113616961569771794645071936361836341672047427388012849847622875739495808857856326161103978551497164041183898498937797658221602985948558582080802392534938409962148399388726716264508575262082504934652151646281409210494039943613956721036781190593340818012013278632544241837430660311773658799534113946541378251191808257946073874848021399809800486323466913937025360197894194211176697144779321287188720381461098182496828737058064479674612365004834922662436503655219553863115115100486601816457415272956617842794262630881217669441718271766225661672071874559151234956695475403484129574437867256381707159344464393846342934639741961920705658527483494303710619380869975136351956244196068408735713269105646465956247447935639376997971684794112183903733314178829909348283449915667480931895130914216592181820219553693949167045030209448087215738467572532195990344900572020487019080437651900056072038204396710938835164724081449779929785149965047304226385769911006711036270687775970320709506747754680495978471041269686327433756684350173578799785362492388205063812541757256902565729017624938056071377255859213085983460261095414264937201055640842448356994241469354246373635008408289837673343166464078430385747599570578584377060199437919077248033015366148808824016253197066749688216197596268779425265141792442981066042673000133787101870175559279147737593327560712756208387730091505755626487226875931065852222940378803579462690904560846908833320709393189877928334857092377975969804336234431161012676575383027290773740324056967231115258209229984746009729377716708455523521357879722308768999359780279973338597288664559927962718922850946814135435430558124285173451360980189586276559627054941901965651436319430411119979466748416649430476431940751314786193599418462636557673538514769725310374650893437445573662058232825000800092128359082607069474392699200055417189414615273663870613663508003553164481300780230662140458454269367548342881470379110403210092779974479810703425289964813106157818615793944202382708885670646271399375059233850046931683263171581098471157844217065640665839946709307974449023889528662896272523413186909360959013110226633460986187763228686265057825303471435484183039567872904939941146639361767515918332340234270575452017806259616010181116314694362585655484510303003920584894987266575260410044321835868422812053696698171914282301437881397761070211929998112253672397653680581990960017312716828823535164496383756475192636377929406776016754112956129709372817195798425562886894335473065029357606115073150661318855510983940432772218547599551032450811569674137533084373498789351736150718234299231960804701106674432013338977586891168863024295303142348437170522093038569858071524698891637588862929655001340222704253840919985120886563072514257658108949200746337213544131028057858344026336786592864321617407817370175773276957347083998520228495699415031781481369894906517619645113641251494507515599426314820119910183423818705616451050845141249654508857584811711621121850531699765429713845115053338695364509663137247851462288631690931358200083592070153586153430108636418485413505607892020107366861446965595960825465424031290564692523801406413887029191955966831194028776477138617752379731994966984846620246594657982834077302960857050744492247703766816006996253244856724678492346392337536663933977284138540904828904827835903360198923323604751414676582317428617511703852232059155157500433775356000232382050478168762357595870594337700137862917336234583530480501078058365263063086905257918529612327494716946836624647913113992551748427325316718955638143165000000302640967556294473130887328563249553429912032392737288589663350651416358704627522004091404928470931685752542025954024947923463274648367381470546325865086823347677217393151274083366740642046069367807287861007873067898924454168007285660621254201234687093163806326161537954375141892990664828536488107082239486405959802837598521476000578986733246204844834513651473814132549900195063155975226846853816399141710830387787727554577148326333087476072934469215904054515859866371029254597271178577396901061079720878025144537756411332642377964883246910982045841561988218395777002073744787571382981226811322215649038517460014507478617014387680097972431014939744305260130093463276564127319810986381759109000872204545113211073194819297016040008753616069736825968138661759450153081045028636261228770487531578922398781273825689310185165703565673296392520081230689204704153363485243456285820352679712221119070275680386016009471635335153555402656531880817156625008310196521920712148750577936926005646265132294090086550936317941876378286033393085784194294080882355587875405348416132150379369041763136259084633587046067151973200341627414563746757001574600235402809818578346543431161763020111196621128061918419240374570730707865217690401292849873240692468981348880326725317696427246172642834320673325599816923911375695660038767915144098921188033878607694578557897289570161359555422701356579769419859956686931317946808206638788204483379074207695076923954777127440716215989939465085602904315156021300102462965913427738243042110932910754405588021385008839880187494702646736437841488463622991174971633848777618793633879566382991221100853239549625343666063278573586345280808623021751175923924451962727006274760705132940703834367370089375404565043599443753468354378052879052202106523088787097930650381802255989328774946720220974309699277147025312167971770562011808929566710817108346989933442654489268536338274759482319989947903632976061555723502555605311840174538850903338398190424162912346713141513733692830584430195965555785876120085197418166399738808601256522221837381421751814474880988396282968568503073902760770033591047061702857106069059640315664935761931040773421323173023294432733067400490546981655624143119577809867360275735837113556259025533487895217440023103679418150776750982542441229045408762112323028043845890429149299878966615068690138883620356513780978433809693919268261731348375630096107468122868455798890599005667184145626347386308271071020375789436062019924263425464564974193222420820897736719932901305548661069933126205772090421333270273643832963993227392165563367339590727498291755064930305031521343435548878356702390587938130748253776209572656992583468428441352103011289797398314318128224756879834819975454248114970778602662043148988253352361669466291671019290091384977668277507950555798627246588300274829287422247205679480369585416097347904721996598461283841263093264854619121719163363479155252305415893872149426451259408816996484736873699618120148196111234486512292182076789037297437315757860626868052379554671893493642126755867515760144645125928958027118552052053312133403206782551190980032116924888829784482773375856236905203467839434864468970722262612654232671757773653220731000817620724375587074513345568766873934707314245485884346842443738007842744682200835391401034849183284450108127088060244312040329518473887812414843250339551941770876569727585894201874012733252046546129821246566665024012810229648687940549856617368584745218431284732535444474262881552243651891187095171385168065152838358689986494074928276582389121450087006839460856931879064004302685449633748170219130304985116558130559293179959515108471853158510205777927413067428061604240402903771061700384261104275990733453720338082676307845434302327384673146985894859733320468221656934578312684934379761383067777572046119059033035718934945040320833492935580842180032409109370646205627833642926105501558472382241772546847492385770833320014676022500137653750958756112647210847990205908666858965298012451953417354049859769869550227697321746273931074857065521463401401718505360715573910590028103307193421629712382807725671377768910242015515426062029881859498019262054262324020562333507445680253208668327394085076463408736050661200669703853929954958802848367620043612275551618810292088455415017497565890774428077946918341766938517811973060972394683257756403457704859094804241175806003506591961520648298075941668553671334284006017146732782794287254656550924100071996371577015715803142308010035232109683358868817501154296922264723837326129410169699823739975405230788285925485004138214713324211328870213030061201551467297074976270513516462850247496826149903193988111984963818659799518367186233625356488494374393244280207392781931926072564524673700465151841324838929678987246321293143314240206215444725079303527426442556435348417504687198822270748195294958121160136721783583772223920678755692690773989435819691080007453108230289108903159168781281088398930795169234562537577030341519649542801821651772956893265032284114793729386531949703236337756094486646941923309731913210769175763525912191710569425911757567776465866876319461808291988576189825373937736687806927577147398249945057026495080270927781300631235904842706414594046979442603163083715146352655978732689915859889827201204796071868818011207751479188440772992109532367675363074556128794497277039491481455525536450869227436963324502684514106332418639384411787063763251784094318949652035405661212603306980322574013009648686234514196282877426021968106937896171415120920471582624209782560420888490815042236901418367733397079209981856914702301954581716764398006807410238145332911061321664258249967720554439728813813392524485935443098078307915045645575244085450548902206138649227612638298617821824922000841536798994666533960648047120644679419995008416722001113863283501106997337195872269383270769530854063545938561194083491768336504424690094215392441224317430642126517624018654048891117021195510908411533246812504708475716196249371740400956403138350994442662238523783183945375966402427635444066515386150554022918483836122425229075612005014651239294335138825659803320795030449295598384461646172114367454997439565547085228316095132218393618546404677865881668160783723077108752268702678547842057549214241775671622748109521101951109334486759377473538697769170413854096146355713241810226571887584848987373329571243338301728283366147789881248760925141724308107389082525305503221523228430333360355570495636866535128470798514869922866439190386869607974793154214234131986191644160924466976768251116463050797592731011958454163145550436283887003885244352866969205246407585235945086528406566475189937238447569060532249905741977716870862419631512166536501331960801332085475949520102734119625749845855053253420353190898930367287419509102182039544881033010498503745656311307289895596310609106038681573622616052760148238727339694106727518159035489463282804881539464322362356671216787250252873175686655101878369855636448977585551640252905663556611136326939706715783234389570760336396693891156510526114772363544026091377379525173490608475276667561393311866222732141819642527939328853379800516231847399832923609220123167977900752624191596632014705334543498991304201111865058654827559967142042541725370907750197704152696637103251043353938141618527111252215748935120263128150942703699780938547313272064593657272893304536150917813978085348337432347371005181802511918047555889331011101034842217230107583815032527440330878075946399859467638937348837668733904171997723101183741988959251563723970380784428870110462794928644635819002306680807661663575655800803340596866608768997842754478965960804722064180547633758751904842641709982567403689980776380118470882456916595894206529951047477462415051695824753630850442631551574595971257949428296345804804509574039285779802242111401524147730407016932557029330034168819007880824162049914888059612304748991952218874789249243190500113519177715948602850455879706800286370101278937051591586869991277284974647562963225794239755602964482950074037661228892430307160100254439690866620510890568345187296624233622007065043714442264607164058175914293763247013913473791227327371739264646226446073959745527246965687793517553026531675556673457585029014749894615804362027935320114001649532174620748166878752471406355306963008124163106813496090450673189886161476169554834157163828515996987034843859322608729321794284719453846970597496915930924118085281450355392226914633023848624772198383225008467984572974225889590409985901770314362732595251523664814620216447633425696583650953071278099105182364164428204229157622494921503005261950042714434757103937015252530193868300506145164564969611616777886923542021598219116398882556781315267024187194311994045475030164113196017463046438504614650605640118475243637424212559246748884582667940834700544520511036768650887243331230471231321591118182572840895221427412690999177473850410789357893479484993529081592533031193981075615959559541031648876769504946303543049499230578185433523588602549683443281928274479439866940404680775377551233515043878737016954618748603387064019236163684202750874411174768808268252730491172345822191933575965258302962987573658003048714740835003218471099520208217531314750515976605085979749677328855666824409356349302533310837022802448096486868642631776791150159651835056356103360331933389366145256008479701220124960060412711321557075727844277512234420286311275653395652912877478390877163940812975409480606987508297679924802435378653096511078869350787346086409943899021241182347734141013248304517376924389649881943853036777461039576410700981906377336914324900378432312940757164888718684082479301672337423573207318982786088186935376685953626869968355447471569371410520020583482264301606638078990460856775382076660044233808796360920007315579684554442754159824453941299339735228921826507303900131931390745348935935399774433683267290191271772819401669832832563393173159515663975252866651792016673609571557444741739692940241455385722069918334999177499077711469985914381557951143013770930332238576582106430599123357783536119126284599070727005259758793419124480635402244747482996783647708029036426549329069118181624018091355636699454495184375290093904372998428109628333996818335682764384564189676685722514736675636196975985438723323271493478406317301118969240682828476499608482023893112316786442935089481755646630327769347478238857394121706767934415922307346301612866554767450968934418589589392699672753663136070127694399123403979054391352530272001610923388311191204963783351776985795715012444584190158825027469222996433674891009776751173356383317056387018587029079457811248108990718169269039085472624839949312554985042371675592873931246182945660134486268885510292822781780759568935846493946133166045416283252749635468311526235634780453103462150088070360278761425603509874876873456167628270181241185157733327284304701812351311974306196698942415624852172332173846148026065948577629067998202669340730546897621081474831788197923913978798062567524874556014321821353423412031209888180371215382462220431398670829749833260911567195078525116543398667378908335159393785881142451777378910284403702080278959092429066936914443537258394562513715640051727535119942068859711667201692518564501282223480297395451679165794097205172474229183907940153784792238017705221999356184310865784449467992267412250517840492837865710163903910540672744821445942485156532681672653111770559737800811378387061599938241357280814732233958833899144756335807971544569645185665275239480743362251039495323331640881530137182233164846380189277387274837308583338885171166820681552761240398644503637751015366979041430713623336218585182743058116039745591417431853250298665242067289555625832050410963136770521495755951255828505671461258462420621990924045556781486427845257097613538301874327112536709025721627021999861260662664593251676949575773565413162820467155460239323298392492346800730620548753347754618245170304337444410861196605371811829373382746351327195182957105740877579706666827906159258236724219508665948176004545011878047982013850670396193582056899399115854853947835871837257113576903740047819396885464827267726578516982264002156022979714582049064238751074509290540217923764961104451585682641261176517788111566644772695336024799924437613864513816318084996969323373523598934757726117873948968545332513529889395834255881674327533936072252921179416893816347561238763775130559042995014975409503437018377351180464711371653851106116167134693439549787464515303652892545894800779139132922480905171938060760371324725055475905031654846252518317763364851460484488159185947789718224644940422184809794785527848898486167730019486925185714310073740653885004714252219154772553909150912012343437526363727866077574685209531140308827271554489747772046599974695727422815230040879669125336731155157051232488457774279004596847006645722771420962932580675936997865266523510517170340620953197544660906686417967552484808001183223419615262272055965339498983905333981922743061950459282488976771951611157564793364132719444842457929912554712260982551966070858019821025143584598754994405042183001743728173183920591778249699629385016367964650385258067057891627066103178751221164382691459610264343507303812429115825535710225506833582341078488300506981179462759078062401409773023681408062648452563545997031760680895071119051341977220995090379807279654646340825916104289377946324479944757799927938168028414851731600227944851851790126402836770159608942734890909961638978469206508955959789220658868236166180644730795203320172429196915868122450755142375528209861759677911722828086438206981648534422590183939098090827555546448337924672681429626214827449695434043721582533512294783323399877593599716923007151506869745011051696743971089298480240368425524892922713738889410783691890727788682687558034795189857285710055296995232244804932334237583597186141030557849703866955297880643286222665458043891866863221647128893078803617432437977873792887184775456664169998093541450391544557306807911190134912495921817088506650218864630047156845841526390731686949476369948455212437000699305918072065714648970258587659407799213333543051164538352200017712391293916928237041041129705904049839920060610678724889054778251967708140846991790372201288963766686238502893078945554051656935822824655097801484726268371545744715072506370041442652452287581974812925090932656466760877453591701506713931656839944786569695466414147042392917770744455614184128745348667432573261713176599789811149445319050086603264646096694705238398059692253538367672947005676342006144244434592492144469953315578371500149307880392641356629170028420981992224465843122660902181771920401777471371524958086528151298180537630155842150282258659086683168994379382062918689402665202824463190031597384558963542645554416934155377645023345104705839983352288492859599194568186913827715586344598513335049373926351003513231744881850881086047379503201912834727455918422404708693020477115786437355808944718056196544085031885636654114662286641903652506009966148718578269505065760843214262675861755568468809735855930009545902280582836213591870743274320237079080222559920795469436755808311341128855143354001805484968346377453313372541665539565857222661261040433103194278501768487012410846763452504342407344295682299681034830092791794812588211892109534999776727116125437527609145794075126572475727551383228442981682414107801744246806916771166051563336342196782168983948271322092947459548924113118109361041001514255095461002067701360304869160446635472105717210100005553454840944612351704124637544429149284129330624149601069103471174667173376045372137873734509306410386385235034866338959872307008613030410831342155522838832889488803367935642298303768175804902362948474226215973581602176120089876482188121920540922792301285720055662002770954436138248264182195594848754356681265148408156411788473242473349356047323697001904679547650258646893851667441570998010188073017498628762521070877328790728971188544668002039854927421641022301599071476642812321030826452752472554320192193504642943181972841580312387046465653470136128413710957706568084817019799207298084495974668079278267034028053216877868029751443946474697731030316206452637492133118393457811528032584772835122737107271663102151189040423599388816351760889063991793964210372062217845082868874752695831878229323411363194945219071709166430812718102154948687932773922660030806866817558201359136453505534996970168190367279869009997734322835970588010769305970819125640905469980100540571471692597165724793936749422834863176821689138959238132733534172408267823864782745773449754040106537577880025865543100123102567392199844657992798426189496732553855983578337450709795510424592641616105626827197203913855762069622004378878459827336938967754187319902114789473341931022608573267645341030587966289851141879799703047895960402484910208815947771018160649159981431071243408600081674755784168633343104251009257320111077093438548889616400624857245909577170955288279603045818707872304344937655550653069499953552834518959682894514092372359253790907988547247738593380843375988214081659174528107921230911716180176120968002128377514183086906256893390609160861641535707097389966321718479292642809536894066011543632606165781882128712222117511838798641496695560002642900044165787258654374436453786705385970365251342241686023056242330364987181191911209400017985130084858390672867148616979841264882496353359264186452885474013377513937095633130582662273841648083076574627332409544334958430563685804708219073364490933582878090928253459790086112919070736406053167598477680906726745076704059491957204764180929887384734842963665867420745958785986612860554635573318004098171493364009439222194330233393784029304174922485523829944342122065869268882603162726249508269199719665307850136241593507505081029356994211261372170331285238749828049121745867612666908439477603023985492607765349623112276091178503729000773797654115467486038609366180007204731261694706151070776281936862619515238374792169020419457188234994560463080819539144288190431959262382064760961778052645787481943250265495813185281510656021234044536701701070128507953975741021188893401731780850303401338109664581005381938850427842466251408093238211935573445832058622458956012132544705365827277637592266220872116979051176007029428778042855370721250114100690994095538299173725461183080415435658648066165949814392001576662196860203165207775737193093558572044312408991403525160515607911289960938773958997439236840752133834805421808305807255387854152991642849928949740193064663004856538010236922834040500206284364422479138848433706043367725979295810950209720621327294486508973713807552263196844028428548515760806111813037888381669340351254975760570120527641252189486222428354363132519628779128063960666836043543856419538437866860000281197823635995626586810268459519277313886765247697455564036719290632014692162958675320617799179411121590437553022551197653992939676823339035796841899602556232242136024893996403765888040836303352995658846031559349320846390808447861582890355523152511814849855004863435580010883678886827883504597564925030531833278244009239500848292249274498178267708345620505593969665376352723224187253905557360987205044634225491633298718241291943767869079056912606590428586925291270963783884515026737378133507466221051549308256854237761343701483532010882049742170686043901443091776267582825332636075037710390737278277538048162318924063874954165225799908697799579761071812776807076700891939420807308154365559097397014483743233216202631859404406420298411821651723810875183609663771284703175846697693669497179312207044222282129193763756342486258371845263910812156868680431672790544423243981910602949456785795091518818181740940121867560022782339285714236154945307222164697356023815568834244711686260424616925536905564965024756710493078744666532160472005840646511528507475839810805548069371985404859518355123569061497666957848395907953311272909892974240564492283765274092886489789735135536368692123378580092417477382987301992198816154996304091746259909200956471134942836099471781022643461963687728895748107706847827261149185819744839726541350102582467904886390048921532410209703689524927732071063752729554362779743767884872497156898781199501009370345015241456696807787456764042425495612118954177279264917072442447716832205139532521978296981658616887283343036793490494287013448708040771100826039824010941295086113646538467775405915197689807727729554785729955969347888306994659739288827754534512374952156740369072718635686800257384893120754651213795454444184579241153121709752039885292178578716042956444109016456466026733083339363077413517296246447456175362100070486890614491173561135957256622333660915223838698691208284663129584829583629761627731538130065679393511486868267542687345208391003387559661291823606542033762473779590931535605021153565243282061230861579563863053582706238783885890406584318365811610997331026428127499775772339336397571267154015180666762790442992005871986963636800543143093079801476154623301041690536002564093391152452761248066661502426262278189231183591036450561157827262504065978388003533008683097511244700005004649547579320385646292464022380696615456407819259692940518431625697457941170803084593702663657174171914759913273525856991950780477811423349686191432190058590861193329324958293757377469456950090384250926908773342165710157836059131562644289212266142670229548698838153142773938704538208128168600716098399303053927240759998481950524636588762502916288689696139824092816244801628520059378267486423134572904339147300318261981621049870245359594293240626549099210856550870336759119535711904372934696696216403032738489846513445424699904195261094155743401538975473353232886636053047605545940921709130665550684795500759712770141188741629771554727741952390555787907378695866356635967895046216972775251931536920359647628097317495727099938709735605686241138186670090348013959971942193587389491679637774655353883023866434927693757050210686251337384568243928773812375878745699989680153545790545538731915877985774242450395528913258871811946960541062003259507049383481460210771158438555213086283665096903267381873239228747125332801018773092547600094562163700941567452070417931440555552088347510556261902766665458105773663457179438060522882973716385086075682934632251581827670319721251629836645456683210461537839817053243382834423529765026801992739621277531733230199919665488832284901976320420770162876751047234431219595067918722047179680098128547243091052612762376614950430932901675915702817905635770786558499388414367946373510976419089329565698887145540811377643121702480090190227972133805990025982818273519756641467865998945978682309222650674244469149481323703717577913527143369974270785018109115834099538489223919155810057658340989707241844746235481758321088265829968710239340355353993617726499379411766981260498711121357021539103675459920319748565853143721760579387670449255935943960077731869081497928519461021659117547252045559925833013529371117995788624620584256471649765730903679046510567902333670761631983269221173183129851516357020173217201010799299193599362077582669453657148459954082452999748830547684907552091554509160639660922273266675619651685565316503038773815810488104448644132330178630458239070218461680409129587576266047917677006572014590110692211667119227718446088188826364142913973284856938698523111310266956661509129552997236086989943843888987472316553959381297861540023123648219599715607695915931134546971130548412387919897480988324637638900165566260184582713292151389779649704853438012057557065166120539802997611166744332392394142648602654087199306337848447569058099197611881254010889006506906836224169531196565208329210645466086638798198728790724528585566846859293233428749520856631883249938229775649499348032173398461321633104180726336805032983681620291874196470781014323033800765619487341394943640676708691980366000044243351324349075325820001939000703708772660779875622514453541640753548039381725153169978426011844218648505979423429593824339380651172808835676523556873870657811139872659123344346875347664616463128792105406515223926853630707477926221739426690025876183611281965864429822748605816998096358426301640623759158353526643013687679478533400549460480941756720837267383056902481008448741568746661385306567161001270443925544410549758272916446748723640285952316461096359653591163419650695552549326747678214203356948547589257207263900473202420295901689984960838349593247756451257278675467947660200840157861784773663431803731147913711119666528364620357600617555415276151959569890129507372442311957431419623823078308576469389393897818716087681159647581401379184977171261337633576870301862959182954542900068204934107436274398488046589805719522990739618537176127236333868574133264461234619787397939319908499317315619983593546986123220407232493007226978829350506115451065935893463374481941522568992125031770835283100059033672473990090717572441777175496153391519659024528980470668526475367629347312499235304380366324843413807082663747885958433603577939297658252097767947368713821870333356718965506416687655040608977753510785083381016884147780498863795878199314155584973506058051932206899568702264937855215747871944509625430322879892436754906558377941560927386501500549078078275116924079526143797870671990618233065751004516560594825329704518221507763812349243180580492300247035952043805288292282357041139357614376116582199175667999514309421433813930094451636130469996606758806359053138696414304836600697659016952470437153570625139698272998181755069377310075196662425705968561548111662292323058965425731344846331683833189698246907068526719035934003828778807740477879538539196848017295897459060204056779241022994950521377199324421200951946668765327825674456630965222505716468986964160305058571430342294938089602368345056574034266275735624249037288323477750764784680930528996083878601286031781973514157605577795136934972371843712700918923329318993037769405629435650242644634690923290910888646172573991901098256132796272000198052508137225993919002085251871768999900763669786020480645608737145141008052378112940218693720570483905523950019732441547887941646088354617865331919039382040221609065609979958192059144489894050388354434060653349741599068456919138734579328326555144320091340776690805347910088848665425638516986334826316978127913572818814678393888830633877663063868270431202368570172877757664128936789780611139458816744755490286133078955461166590649682446684397817500582269431024185487888950947095572263513591525591766296038830883855082556258557047912513477789537038855989007760016604310210263832042031333887513561135415220989745790561510129462570917423016138955683127905931822836901232499735413579408885239728164205301184997988434106341145313172139421726004319297384642756417624827039732325417876877393827517328713468519263602827219331300424382361884273875306468271304549760065061296018717810467740462825799945598404925028439069874605526531039964641976606963881836966588176346950455086463146168001464465224112722571485087745406788297557397898827588735380701489633491461988458390537246626868006291179267666671081634606647783547475302394739655089881179743218966346250278430959908675012290937058648153812482812609328565198940431727639119240544015385366742431864273179407666187683955772879828102506619788477745233629352197074261732109243215483574329793608952414027814799569864153870464092654903996594693094743780035492744877588754704545917335625793676474041015681762033777593979912276281927318609854412602350408362275734465243518331727917133487344577664779205988593262472521787566711829950775858228416039186683169264006755683634069570434872202754913784901247338444288247648665671914921141875694457438248832050419310783790697521570839441650505483588489830011838691945178983817699117926982091916081503146373791178237061890284888120069496752387904954596936989063940661301404084770036214932364495192519434990953850303871119614009801742988331626052018856597070971422551116484613057883938510275343025592443024059649884370554577624224877762545036022255727554514868457410881857780048114695477610771948761258868604038638564841007496891936830693184656776837649534902046774399929704496402360975287149352202542501662580002234695586991741454242853536932009247693007687280481411412676235598159073502035684546611058339110044328606654235987442537851044519639866163998578223367358848608467841510233427591049716642612187590559945837611107411575013758932288345409179075008923252371400130214827608026366031723336719385847299183849484344083179289511296806018475631925663333038582608380873198648989997279792355308337760462102728031584440234354129013720873166032001402935165298878798084058656584094529998538754583606497230807587776228168458063841956935812161399873256344913129700382724983229816574827304717896226661703308769475185888584233584662232322186456890889989991535730605881575530617156965636743167097500459551078045662777512979351333825795731739135194812710061502316558155441134443490655779510188681031648863747473154571048323733095748444386315549973266043908344232439133929874922681343440483540006298894319992565826061243103630665586062568070122242772158138982899335213775108326984808648568788876321600772831667085308498733079146757574214717876368896856936151991080066845350741233593799900455482695096210899975918478640241083789986142364310658288417994596384311662963187293926551637999791611806201803201548679648932853368903801355302145220792418397142775677318607255665374855776319590528016696186632304284258808062603352907239276311498123961783298938441520754441627687825374829784674418564706984841761996586761699360022431893215421756794510647890913144938912102250820231543128249630683990540989212270585623241582733894385984122860223560977400899528364629512747256259497469750372238995835308623275677690508625653092711448141864094087001049478926640543522284238697379462938343154094127747069496964045167084537133288793328394283317457092183292206493260107621613941322610860007827775888464154148069660095925483199753387997587449631832977843173859466499549886800478530895831208946762019283729801893396877141471239862951088183996588695155104915243116158749367301800234474563466664204488648493943626026462008041483369394960055690562811413052980626962653735667558696864908951466471328993880183329418846138887962235360338308947086600616941112123076742664797009510428034694056668926993327629414087472860796806912693661031940894754916065111722608213322639511463487749306639566348765702596798321144722807569523855410458604410937340760983228139939638562595790521147069310033020402751202902733747600378632146702896738598041562170667577383797719905474717426677253621565912113801206034355635860581302867800521635371071679326684709022168335931139386570973654417695658110097597566953734651334656117686297137651702644359402711102372592275011826887622964094183505176753214359775411113676035568856645076168187391250841200258908082514471641259579552158564819026487265877160135574412036901655885230295570106738835444722284847229293352297453628111672923235980036146653699906535111346942058096157634604361751572923992039329626275920091928387727376538844177951177388160568740971436877971273202741225528623079324528489275500910771299285203820739320871808202334309751097626095878204875039300901103772253278727617356947108918162033744649986440352882911661229714778099911462739563942373907683083926314080221523207968340961392468430870429488245822109324602980675933478687036410697132403339729565975290238672772821909631630164292996559983468825551056662430387520258802452977969262666414291939230687240800510940022491948614965892542111262117746517009354200040992044601315820538222224147584037033268376928355028634120938559723475397901956081798881764861605728626141277565469794111395074956138227360589548929827877450115544902448684204625786491771189804662414811524135301764671967321824472747620808574556262641428235933361278900621374425532510216108178399532093968488160341121044046962929875298609531857917972654420707967823986932504890596846359147236601009224026681087939295692588724512194432332070911972958654434933495660901462052326776065912511411279720686735413637262823334237980922656903257566048275724868682832793579606440304815367065976713135870661324905037644652432420711922628865900394622460390064588262378725993533242150422688962579747244619705826603302470499978047361752165719367899736140498662825276778341233345665754205899797100124452845082157947991318286445967613979654516997119988466233786020363962757629083307724399617816902415450798159620049197897952964672630701242815024070977525973952492550417266446983757474428039895718548271804171733152370950611849972760982162755769463375314428877667922200864219406176717645401483963343992407508813784413807375133663429494528369316621874407002163758909886348548246419218764684984553740190548115788921520914696246271561677486054992818618890173477459241564546939890249762832466215714833631674056008401173372675165480865580953911146506630716876117991934575968509703304971755104715578500268036047325694866626909714051365198016931722109700886694237538627857736358439448937032739874156874795257475075588118315958836426665036210647560335504382304118385402885277695397177851284654596072238423653765169949973087792798336713105152398807531462304100647744761293470234952449717174548703542079275598042729313961294450146292553230634399128184348267269572677596107015025074145339633700419218284665881387976354779460617551473381142137609344997839852973036318850282586163349495532771234923812551880085516418554373994855286794575102549905531026432956609906239338897582953501742058416533014606457462770193559568882981072916979218835270352119673633718753535826963044819210197754892955861218283603737764740858492365391889380782062237990741946929507880719805591323094426075722796708233683043092933222596685351183877265452888176490358320125077580728902909623662247471464550312251872951661111057407043182537491442411073949756702830885060134212417785191369718436090797157553697876749649836051901848849708659096772967814054032819283254836165319265132201986414070723631395233967985461023019429013921724403322755552455726696365694526645922782690722608038702306807236589382600016576445171203093613925577604563922139507458881738262632397708912379129118851642331943792382425954751172812590367989083720650577025065975689221978397928692206384423188298506142638030702850854753910125766874275208719378851227296804041603355890590088725632015588040094522522750387561193727942081957714080507302777880964215230959560777728432763949798703866794461344618373723880630412850794245844882576870466948036475832133136810266024259055152449314047126313656164728441154711474398040004286357675068148406684620086077941255201101856332587842240499162801944915178047944910688466739498526855144711674047356575715921096729754983228558080519178925078037429738998139707619777249622773662506720066504178484906881401045801432906153967486548864945747297479026519377654098421891826135853948378757407231616146129264505713172010295906463829846844304545773690483307916110535632979205230079377819619997431701290336618407827833699900443270962773690397495562229625113419919130856179256018178747068959554202143908527911641053144671949019416049815273943167050363205486704566071748044971718529430586868808643443632435826708315664484761000572106535295634725171213397626454515558818390417152512612600006836795514684798801074753554586375242513900781675654692752431420511989599730601380252551938166357289723439973420589122911884218829940357096721893913365158106602815509990906473528719043371131452705148028190552869025345229665590062563688531298714910005003031753622728660954046667508764120615054573084245856501547100453679549951299983705767721465908983206569487596505693869830666016488733511772918766200224623856089013405737507050712828957789105644808767484118882573347450719993251559036317011228006181850711418314275753524796135157082625547852531234296966135033890619589963354137116134778371341462922900668384577728933918936005413643794473881116857265633837534709231233346063071966360912639319792194631388076599237912402199972286350824301545333182278036718380218577576282905378987111658293784944599645903829323479005391357498506403697762665306092174622137041409652231465665892943338007714175193431299518557152233359673628843179266864332685334591985742222412560530782413669883904184077709446326229141972992197832074468498134058257882970226208015914968112668806597327706556328998051732698755048583459528766595368403654554906424257489150021344240708781372060547009258218778876644556486731940177773808946461515342777348852065852694171096198358819556147747838788021741414883955562309093954979632257073793169560501587553111678089946493423224533391260513634622502637863774246931254939983035796734431162657246122816797678936754492888492491912372192166821319033917409326198093224961050484684450449293762211606276472903361774343271986909722838750225477530455766615664441901428960819194739053910857025819691608426408218345056940288376438784517048515924464760719655456779430982153278563146821276463490537120620918060560109296736025044304322036916311144477999739032204203781099266944725901471236321353855887690852196819625608568210275733702805005276071568606186057171044508005756785025845711156926101578483608025093050047382513730625310687431877035474355791221491242399504314741981535685845093650370840781354709219913894426004966495425102177947441135575324212379539878222791779777582841827749898259567020422261458453781667950747421080065123331327548155974334233657934545744464483842942136300335314164088257389050753344830176697011413982230778898745038526730083070766587405941183938816432291870599458934960245371086911649450216393362139945261582717821808351608935684056242412035520750484296915661061285726766258544399861655113265953758244135648186250433634197438706739268873212735329581866290420381628315850524975725232213528899703611598077037249880086419188249821789340672147272763703015822636449376955169875895026275331836215983541473529714322562496341912466575461446361334266309794395951049735591276265601104756422596236669284624283031205336926429569126972882261617438317232343048326141312581042656881238480397307763157792634003201859070460051588742901064040342762506870622632344898682990283657431506179973818976575571342484818251735728690646994801314698318174773728098673824251557019788876121646559577040646887388854179978606389669772598923465164755085303368391559738453173984132143343623702410320861984175631582036369531715841200570544190597664212251470325136609994910206237340039213414347647531098702342287568389272052703078801136853379235092266689339707777646507008851082415119804934184641236299584386824621649712371157164331867205701548574774360402580357056810230437294827072332903224645744140526560197225353468513134984976447066558590075602213212250567879270589223708208708516135597614166781609350792717996526841378542901662100553059938563903968948679680617059905209185761479133208125503976923154833061702202499483359489352027540000879044740321104418821822761482628469436445445189312581472264720372679042787175369716617498548904256256943213568751972751404738711607381805299745722264096846717663837887881365174186325905090671340875631975694247895746601232038750422655412298643153288260644542662125099565182821811389878391250718050933834440749187382216695272148987323295801401295965905048999349939228564882773272446690965068479171843416509538543729721048255517232794448540456269854267245454516001478174472228911095634250203554711876368979385137139745318746812910895095337516070698477591453556008960656326015042224009121783528634290014447763638896254937035915572824889272381793529999832874508387860154982654507494798561860703636371711935152780900691803366562238411176173701562023370436366946845844113872365360351559420066639189964665392166066239316579699479440210334895690267102799783147219605337972225750210471005826647593040920325109078250697969583818776102826758959843851216585016482662944163655254561391327462310934626517379470651170122134362495148710625353231192057969947590245280352580822950436925568716135697063457191481682462090403365229819790715515135115422548434401738801911390911679155313533833733253803941512111752716038844860695786536211302697949603831089548525450421186096762268693218424169831991441487912197852975566628636001734352778155897969654831496968175124679992388598881866038464071570520132085806605986519084826099736332541162023338849069117310399405615338526604633665959374958948803411225472858305044576511135895462132508198413225942476810446907173471288380638539122718894617976661712388149703710773483598587666411559646578416301481249442867509456233353714929834029918389450881406514789031256045417059866602789453282462079144359346515510309800348856499696527575428196758339425708827973650001525931160967458798666067492670052183204566598053149138966763402753811940582885467465349455039713304797131237182660861516464125107006622658748742340856579227859910076377369474711733522469373348580159375737201491980548814454356794535691777670428086984462299104450582244331413603118465604379757676067369159173366413219034089413453508101623244851761920633069466136988709276559534562220784462816441622534247406240013707678058066246520037738640701505249590455087060949587384720963667474936674081031794066051044343054553064063201501860251142517980963944251067539406012524339562297428398744958572298368384271931578432259912554589993774033971753162188563779238826253998920022334570675789571676614030263405886577492229240692571901678170063669411435491071908184100430503068065179557436348674419084984348006571757602884380309072796449781133353324117694750284846704738863733414830303921015660162028726491847157400802752830414707982661436835828459931167589302395321944491228529652969419326760138337349226714729921744000640836719558346557376162245207978152125320787311453878600909570372269887359810622779133697807381480958936103241082469144608463448841275945330865989597291029936346963747443720058038579871570154880636897626570659743956257752950468597743136043881460097865227314067495421118267217003561582400170280177328668006603478634029474964319716929859191162314025609054548541465343540343828611385879313289332469408774018877569523425563149206793155444261953564685218360086484017349092073776330276915458700415771371058807377427952367019274375109154372032677240091976422227923925236696779923320959841926647785157855254112699607411791570474198688368684180251331062479885523294974498664782653207339907502550589832387433711031339254406674456968574392042581250085900071999781131570436609078943907141281318648043833788644177879539990194214070796988907772156393664737717176060406273845059218202949719234134636078255288466374422244069061857380321885309123696426182730463437682997696313973025355069335435932682411192801820003779821559436425349464155990240586310474860749066311609702140459867373218097647238401793471662602825782766434725288617355792738648234269363159810313119132396631589550538908115832127149583239085194179432515159146256562409020778255086959268230937415620321974284555300778486244761831470390816047278660349377770769520311453123572403377657754501339735360407694084762940611301543019827900114043354492088832567817651048202913805919437413763129853412009111423656899279797087517932390222551865467877156774953583046779744268793679338909127284999073330773650803843336642031054260225828381707489488147336643359815557795776205743109693039133110228488850708637972886915568574865078042090102886159136736443377111386831475075846569048490487548402741743677724958773730956509391393139258323420036481076000886004941475419632789599943749273522344006572764436040908742764508174001065425590704437384802638087413931020176112216606248081869945394592506509896858185855408408333976921676878347424889102915208931469208876392605671625739552966806257188315335518572486300412784664265531555336255289759932378512389499899781889440241473984734370795091569308850946929110204020084148816608457692737204812360529129288681844574454825789933750327394904177386094978792516399514980407151543531087304714015521094701368863792038606963649854085592199237059417696917614148764103743386783349032908050174040888100037576807924286121984254565934856250988477336047163728614281564774585718006534245795515804552097944411792703396774811449797990895657791184589523668613756325222771880761531545311173732279246108339639116518957675445041737353511597413610836586276444425655612339432440378351513829296693036251516967222578765867051643587866325447707434930230360727816988279899173647553138122360962380557114859817035138901934589637783636117341326940399749307947357469558227502473842632885574423457190578522462092589263125000844429239916252754171519545858383663748985643613253718807929570981161074192882945775494299195562388551607270722014449879982466815294745907979451505707372844754713871051030645815599509333178959838703764207090644497958515763948264995326397457571115066850411789860852866934030011794300014082651184632998982230848301257118447533000434938219280116134219166677483066987522334757864766050412647704311697423698952764608132193325339791216864120524489533046667753722826520047023521417758868318803154428464842996550083883973016004714601052100036946604699860587908418028415904824178196863479162804967327170892257236368828348778327201011123853908344078419484451884444534822637401394704117560202148628090183791485186710442385718998837153719456495141001530808688535037729070749229913599169863787048343599591825946107090149339081150260933451435097259119281879603122704268723234764873380196519046196120488591176477924090264291682474785628946372110434651727413210858675068208324849596817897111122602180349129207661070151947210998002131757831032145924543906274693831823212981727072391263655626051220376352477600110353355340010777580657502625898653688845566493714672232922718110023722003615787089539964945814287861572091173018601048214645745236407099999252508409938493548866453964001101029705010514327269236904065047895102922001518589708035175242190921754521088780073705123609796029289930752188305884965747978355036324686331909595865480373832034768858216012071445423602411838423407306351434321422574158421332525483956075704599116275165094386041578711017656989556776971514596271071402536399358243710393693220438986404993825730409190972686466550287831236980716133684321435271765396059150166171299860690268236233545700100757565653080555152129094008391468284848838304844209781987515332689004344346730640222823019314795830530054140557500291647069979464293300049045390888087989769960195021699769177249085636860403589541670749743013613431144760355742493100609017757340835367062022842661781266424883736491514951041528565802077396271330239527579724807387304093058877211862653159605490516615451624404577061191821777694581283756612432785412800012295975681354773554070421927412748258226503922768905454261180477912969711014625818576165894506311316868934191327080009056943533176727155061895610526609686321522339350254013789287036381384603649423564114729928757740904018549770030053424509688478593450855478003288182261837700867449379436657341575235916314004939043048890823820534981402340982029181829373533314721635626534546153487122711997974402676021224518508790934993602765393504858179906409858373179059556856551083636989374149454087309218386104839360146426150602470419081190325995726426335429981398235332155817386072535497026603270628349485460033755583679177432540599484379127589486279248223789079432964036722579068134625577751230511208140230940763530839107854109742802195779044335054165486909020226450874261834930593670719392309832767587079764687368115656053416124518943790301606014655518414580577924004426036684234988450775813772177759365451910758226577665547521969012520517104003948650161773620647949640163866761077569085692431769222527156791665370031521053863580371577407377893951832965922428689740318966464752237398016576288285801812349784049902822352354595248818039829655753514344542642490553292663718162737773468271537654521349396612502200674976721463473026748595095322084078635831586743198527362865637167909484444838224361819156056532097950365490977408065599181927767908318907301426087629911803831272423829981396024428460722054610999739303688394174330261056674003357709196766595457956704155663040983216668522500759963552400087749871955424035887852722638235077833262564891045405796072617876360127458061413555038331431084502514051666729394618936314895975196828056208915125790644454517721502514180450755549973711799004498320632740030481479118836934564884693421665692434255286973109166103059646073263649837359639513514156292329775682625697080969883907590053380096599727112448950749173146157305126929277467886672641985907958347355334791944351950500078796745470055633642596809224593076755360197005445556144992330211063777678177928293898206101173770064133510723175951010692466403971597097275637636715440024882577724534007601195187470652221592827539997448723733177244568582659870205220882857914079898624153761626200232775881436663011524354129557083975108117431356615495375567686568871102680852238913404657914787898836641786926378027505599566136153988085387316237394968745843957841607529105157159242627093100728934631803919620168520045295986151121913187983558255795194908930097740069931620521793288883781584072909260285778422814633583897763618955384333044899284556438212113116515585386606664962010624753183206272628506789677936876420757316083733416029363278700532104115240369800920376970363394040108876456994513658206696905858312672586998421705953635173648803599514104846148387722196367161253545989189674413030744111769899173991426380410863972125182708574765147594457805768134624293786619083015317345449359783929527845152669930945335409806027236492310041104007276191247793217025359609802410847796796404389289063053614066207057640331299043798461723854942417149965985708598078679989181977181656628962212713025723575448707812207320559394678545568659568625674095087067956840932528622973771412850965353098361300284584416601461058008977016606199936067939382995246052460755114389689378143176158186765908583018512840665315618053794171914336229069397034402873339982678994318775658028750879238118564041481084716865275718554937524798733411893976367522715631047106877536293400188173816297652071872958060265132590542388222326803776712851620604475502170120822815289895597812580067579517176921175890857841507303551546075160783005377015032087078542494677342193841491187320037047233948428801610914168764073649909361975996578562302467707637002615430865842023938909196402370317047686023089902452808685180275106487133961011136723165991454490583370956856293787262582270248218098368759864465986366012402171913944403697256826153791948696871061736959449073027613390135708710811874669754669116631030633546170685885060387255584106484203541026180522462249811348748421413019351727498120877285345185891432255938715606781222951232481667856012274337242019537944313368578264760311489312874497362492552945358633022328072555558958621982678254370366818511862322267366422361140138766077937219212179637468436948837520825895480058054950770257091499520186602882865926059609339277142128634771831640548662418879150871903748386733914283003650281740241814877042544814691984400276080065208427638819020584561481105641997996835904713247785657118748140816072827896558718881897226200904028375664385925122379003088327716084681760190165752237750894377611980148424525393029107865580903915748326477915268615593491469675691865567511833015698060124214199705047504324417161198815112149924877253271135830490300490110836436966169657312802049289532474628250880696667910754038024362121122864104022088875667851798369053093703912323109089700121091741704285406461045714879581641939453083484345526749077060602228770711516160301440397849302402285151049385385123650404179313485509308348719605668244967583469262738795864342511995463787825477486330747731810476755051786804723925632596469411099145276198656927032257408404579829535819561924703236981739563400785577559269160241034799989303180722664880509807082411529911987618924530193477949673231237597494318986010420848720073159094711884600636165206862773871012314864272399771087173523982001942662663726302309367326494572825538877875390625979178734340649042584248252250404929561822279912582981261491020529789530727375856018840247757512728698978312225254216691550200318589315539200911377373842342772425551968722498928488264893929550697510430708611919307789577840671303551818011945832193772104315443021454348011050846692177002793702371179344745215017729405907438739643746532228607481342424032333075654032279924529875168262244436057548254740887957125066195259483555025509252863780863464561927926336992800621722660870929990089414345280621394458690640991334197348530077980664680588697146909813527126452910754707817901257598549063534487754216275217249356784323735614579483697568469957526006486411044933598554675270707359269561046936249546846102960597577800270480600505993280122408357126168829651282987484668898301226078839991865130066289996716634093312718957462899271174881830932723462599986000113581382937639698584475081110218806136320839263323134601755371374442297843661943100938874944669338591047986449480739688255505212091527316795749770707093139779143490685612010342476349779191351343552359241036035165691925762164908237277310890156062993726455388393905622686558886454282068583454358834883046683807053058817638227434468513523307535541104287014610722909369490892967462968552445629678883226028066758525292285478358491761083899249901112732422962199710169788205191182669032339553813395061384970787050816471894523951529840366637353760668927383211029760321542746151505057316665166321929971682506386158657101612781388516105057473087936233655098952914811947864465695808793908381183152802941357399174723267579553905259727369398073849066122207163316661550014846270396089206625860343705374582269266993701485855688548124003393124419150972168743637582046243107432771674441852446999817054703357767301445423660142487837918899709920036970421575148292107207058200215116500300713386108600823253022360076811931350148653580946243263010879276539858310500223288329583765981301397913696042568622822918594100617187814238197549353156415912074955939870672732768214487081828152798573251162335141172200792072228440337393406069496400996164742142843438806915189038682084652085562886771910257639585697008993940788907968456427960676267566177450648506152688799650130204875340906509201984053687767199538644257448085628255247503374185980722843080850552347020151174058948832521374175361785175107818505032114232895133283062403233349795868654978872599103723026943300572617248560799988956355088380706354466732104410452972217597362035352671944571924348637308046555475598694468373982949356771267207849234081252207950979210878839364296859375301035420969040104405315543823160850185440785646532418024750961556390488277596901710314366228908493992033977238865707153522233367828886233024384329213226787203942735729039006144235825287035016400727460808274439516219029720311433298574838904265413120440800443700066940262338848657724617594497842662070704347172450825022349448083202898116589359177204175864389953992227251437800536373416062975132096074113030094383530756354506010933042559744977229531542353441259334913837697990051537609540077825358432465606367975865969100163604233086182114222469006859192038520455628517113680942644331482224491947280037292606759941462081071873231643131724237694583407053963479152787108257406097104700074160768095386249143302384257599645180115634396093748894894880944746147070453871842847786556605751722058183921504069319523858702533401546687377668944499634172090036394677394441523956557237290445595220869114605132288711200463126656137406389570433777212801006169794203788760501673868340274901976651863103692429834861442888740107604390533584541863521925584216543102755517497089791043569338405863933828219080505702946300301550321744187132334296526164619464245255004914063070245956453329981915627926337969439289790932353108093560512061572601607665651491789338746589312902217200079855457430715052911278625120198922250694483942873965168744566987677525651333679827922329808003223218382385449511494755435444867847292144191284734359309391345651763745755544282778217190441041283344642065302810965247508589420688455804043269662695122103416987212955894862821569110760000273083194862132390398793201764584966931384841861021924970760013962400326091780485485851684648773505555428806138393607886173739771723270242325794800185256299415508417156776992541502475750387414149443638187233820738042141196015226755936956969559660783037723488969453980691919908804397790910193374350942445454203695498447034814032503396392475954202234592920011502206858711174274920571056978122268866745739342584048653699454856139215597803715731606497694426947402717820789926784394708872913747615332956918264017206972060767143717136332329427485102270878103916899890965521523143595616663947465604412676692070533805491889329194422335092454064298938427645439815717399735984448840534743980683700921154285023582050606551897131018458374997020091485310888273652443059600465482434820549354785027018700329751886434394963025629466937189094109626268086907207823595499456656333740274985728007293655504351752437611027899182018631397111915811221430749581377057642520425561179795698000020895602013508570508901971052734732734953125938915448711244223265737727761788122530870444802751127148949409079889909672742337117565627231729782056541635331326064501698284781272664065875072349845647829797523719301097332749678947095313262962752750013103634820322831642977661578605195624318756865147649867079615440489761861872842999289452490264590158973214365147002985637425925753511547172703892225746159562194564318499089674658123663259851681643289325257368897274510838620686675836933627375321210362839247772003430778198550005658823485001470805058043759898873036630983471815536569476352280041452989794787019399031640828213950557152000673055143490893038498442401839550812597221028582267526787696499721780937550009965000117774776113581616336642448060404612165682745075323535444642032173355772288826847524984444316436510810811120396837089209611332646077615731168083072379130467722661000952111611810583128979337624518603383451500680877910136829682555182876538741534775140033058884818308839863112086058692621070139347042153644667947016205563178998784009181416297954384876885909698209842984746928924773548158336785329754371620714686095739322240036640892735787367450836053958463313156316949989401791032529005536020339753583999829268299404550119050045582413056398525187053733592087165446881841459587790778408385964228184502368406528969049454176170515751917477774841176861093412401590172445212300430308657962054910016407976445301285310580542176203113869211412088159239055841363132393080816081747241466960129438364917095590019113493295694409394003703476244525881518972126332959760795994549515604836501083040066008527405285606906274264006623785765719911070306001136764456665498788602421769677664236750094758228770323503908694149890567580712881662227439348173133924266621343521017376834799086880921847662991286790374123339650818880989254780417414218119413926847526661943626085748157038491561351252430186757818315675012045095456199087399841436648870351990968173359876542565421306160466655072378319374767521842436336490903332580874209774632957529907129747887284802870696699887982318780708343107800680571643135798355462128805015864845141953911620847118501785213319239577891489303100353181644559519450797299338177507617485591682937809837236534483915507423654005856402350866991630246102342619290775627450692709064965904051149099701740714895486136326205099225900745429787077645756277983142615944269504100171369241159741234220489227474897428887181718143122696464945607930603932587272378196208291572240290781940681288928632410339597406708290895513388400478357504284759154092593561359085107258561976666103896361357947172585117260573881798539527089378803407158005824948544589126375939367061598153549302398100355046388352542699535319542463467201657672627831876929538859103453679710474389336326385668591193932287854752671655516452522683957670086885303940589648417023052719570284937632951972042686149468255934781554400069034503301458600019598447401022329113404356193381124514846408863832923255369663155462157124532088816805944398508045288263008999406345146961146130441682617883468172585657344127399987028288779240055712330675406971924983051488097628300421893190282176505594349334518418728126504424307713461326260276165657490456656004707087879052055436068890616924702926825950152403435982015223331099416138448907717023094381296188989948382495298631995936847052749234733932588973957729734339575116014736938901389368330964844605752054586650390987601249465756055121538213481025967145877846817799533800302181281887857398987051510063024413272331201681837815057819221283828195806371266053336199789332430470613448797437467788930722030706406851602252433691636401657228466943618227707413055666011686024971689007429268746121244501903745729888368675791804116928589436140419580612491444238249241208470497715605251112141980433624905491992452270324123033328248576211994107790901333244662598068128812574980219236710345583075562165644390555961615685409843765203545894579504306989690822587752148598732156790693736689223362616439208921180652982388985190343354832368970074013955523124085825538387750640024018992948309983536556185855437701048639311199111500916156899081254691178883373602057379108541266147087435932503957097107122344705290553160331991022754410353789703668862333815896914065722261934444631430876919962847881670291921824467802812632036997053045182921040744755892867260839872340282944728127651163260332269588787058565242445362209475546802467842646779781119122057827111362963283569288547068366780279418107870319960834075289451492208269358161485268310339170375163841248583050065136089101129203334355664201366467794459955314628967767489882373025960109036241609144601497787888388828880282696343865793689451244508724590817797841892464902830860683415526805273959744997905768437787556314940595785326938189484643850765279721355905356003316412909490784015417281279126392057009086192380749166945817984133234775054429232891905182885734435146765500400287990273526782775660528303459260520831965996717036960345063703706760388879724534852625118443534940503047234139846371852683049647726450363910731774901455168294879160869261933877580366433109282555103075346245723829879838601632653299286253918098114763718773024235304321876397385901470099363230171329073662485576576822856555271099810894349368385348932132741803944356583931866997797817085488280621138409095188441217135717605712735737081982727123884367701466443446830343647931412614610839266384875618712943189944543323380611475954089056856032390584060397399372540625885255930715208091266912489681837476819027750794628691572257127867289615775663544921014726694806126609688275648145535886540198276745538975166422142258563689653856282228025278464365096658000977235353397257418749975758128924681274755309851390288499724153559774474034464857676546645483921417635166048000101007904768328661083566335094276225087404514547498510848872774172381968450874286689500041978201827600151800023514656474926419925377878295551879614983193831748969180285939606013859572647912575327355788546279974926777091276709714677645969923261371143565391776927337789024095990222854058182304908907789779838311850156361401486897130893112328665497136373701600506724512430168395799972235412079140954430622717029329640403619983223706918663219862896487614316816191642798162651499598274360958392458175342146108185646813493681097784225825796249016736719541547041058036583735726311645739597255942287285778377554766906241679794794291571953658032958374803474866888974776188864348788325270471601890921135290311608964491506056474140926836369633727760741470139680160852581498789945790398252696640841335535441716297401603781252465861325920776901978043352922062169996769657899387686866570496047412947198528870039657320666926949726858242509729493939700997854063722029060916167838460987778065405080912258901870944515633263496975067347276074197722698508020748617450560843184638651369800271016285465620854939374049601838329347782136032997994631554942309281144611943146221836497001415982611787567495850630904336135010618845656011702019336373133805908299423837769452442329322513624047210274256793743249098000886332589064699424132785215419181757298887035138649944704663151035052568592157919777264298828637990838170873418292835197416801254629321889582837299755551555373885326937065285616615057012851491065120249082695705373708784453396875600588901416607879391398673051801187450477907468593885384554978064301418018640615898570421093381922562283410056239131297409565121308439031507502563251531106993120942202372069055252365186136114553465255754933850051703121094408427439570229231272256661729336809833050458967455405007267433295224191006139068670044851922407661664184332489758297823686261616605793284564061108654748212933403638721907043521073583978049375795860728204570649343662754054468635440608647555108091112743125127205191059142090039263222958592053556580115667817850882725329366970347892074337904123220643825615082971762781728814897244289505295934299831417587814559796873223245295295017025689714232972172877928424413547848758785272882674926352505976203406279927706888578664625590361278759079274156248248676002089078235134129609084604458859170950604233087858353339150264564527097147082526923674166576490035646754361365494620605004809787969032284241835361937214594738366492252964792669045332131921675568790606902592632096057935113504761039263436814874156333197554873912391328939420482124926592524256255542074686065709332380590952498998263277999295886555713202078805457705396041040547522038757788805882581328375527526800613181924046506137071646276018776558604680682215677596931887668618600051784395051274148456902252165874995100798340099181913090489909988831840203676501297103620537509616777748399954533961744494958339468253700142977636062201211147947105321113568664483758936681406117387702384739329385261972465667660839590018675017829023555038892189644714469454596359232282242063436580642049713928596219799152008817844450611747419995460837093572235777836111262409091022576051219153744484653807495833204293821913713486191826504146329002654258095437808499555327890976759278538447158872739234337430088675540527503654711273298360749323687191469262122499518272981485450073131231094361853164442038935210828941713567173730526861597291057297739648981679579567913066316413266307433436094374988350876571762349089701252339825456654663844323255475763063651660915851546057863760392469081409400257179290996850860074523986272391592289304160675860038781168170556617445399307818128737397207793610185099520202367286885269323739678520619508412647751246867162546088526683581450676027896908043872316797654028668132423746823092122955049987576204740160269236717785620346726591329756298134122247542685773143331401193019990959249550848323451848086374474495850898695042228513174719521056691860017013919511807346246775910948733588722338950252293075123603875552480455881450970360520708816871705498460602837771227079515182703421031096165912357980547299613496222233384472346690688511912142517627040346502573267461802650606385199459011779893548984997565891199944584860664117722413204334859039910302560854467006417457892176636584390487561627381462147368249777872511404041409852314846747510048727035940760327053839553964442779398375861002782284344612745582051728913926149003270629093754274315716902044420516573014363193307572676371307232353372493122785170912508798530703858050591314216984814532500751160221999416241059138953444735255880932800219192244612389729699883042761699716173951535153890954020146046908713647213099223750836689590437591071631106649677202724214781758277961134984619380710757573952223976285759878890292376987632587603666827440633364100992877260266731018616698378441435765689022306873894787455564956385219699997923314977987988795247175546036121656670491051542925760349307016637052939119354603259640212499111830269253279813228175065469767647145749289307143062650857469628997860046716144967639405937654515287796713187761323473200117335623004033410776075613130172354296692953857834419078268075482205991761757648021085862467262847532597592159542894130811201323871457687168532047156309364589085581771182639163800387202789189205527094565204027883468097845857979295878374117324724528133488836332130595744363985136134247290449173904050815231080209832805384208829391317360277951733209508905797794547773788292543338953266614092557902220866755498176269956654798346488212328689762693007542244869027679099775014553964527676091772846041271482949250856186378732737010090393518872071528757579577908326505952350548388849369152403084736084976402651656290610226507104125185100643430299526417101756651596428205031112023272771161433091003405245760025736244322803312488612791554186752318588707892597646994659187148899247803565406366563480663257438405457526295900810969135889122544405446446572524007023021395417293509363930738281150548668605594963100526105654244486761741216996603594523591418832057525297545070361331001318623773076764855001509567198226639041411919159683408215119990429099979108959283750572333418008848801866586202923666157757382641084830319035910453260115599047979034788124789697258365790570350316162633376612624076050714199204890442788129790498818691643590027848457978246835951002877816949317253194507181662663630133494388623563375725021135629753837353745425175435192108905613294859989320548720508089838053841661614728578418703579270671106697257112561874195226947889973358897829249696163577273423840560818303826097169154275654092067029759418089424289670873545685573879003928785417003295124225026554966938006214996107930018641420280278559480774996005341189609581659416939471536716826504663892142538199155337564004205519788261858348647472692573214952763147260110921016454783194631053780071666930283647789118290326512458692420134791062802590103539153611814918699341350773010610402955011587017195352212047291941596799936142917231132858327511678305742716275652965958914704713269249614846518487690562716215390480665413870746678146624123254197957271775618103091614453931814161491558673692979880355807614539649479748775265384610488352378955958629930461732159875792981790478599518494261175403273217995330330486919955662185308716025398662140141557130643279219416680517632114554635148987125003373056106249127789910486081918303959829477353814378414848879956806223995794127307930582610299873541259866359906619485920233833912613881808144000184189759660815441605874618034677756924186993268709547723681640745618678325813159629084995226222129297483884642447693116744080039876542701076511764208284089910554436370327604646064478068754534277661674560643999413904483965041182741347687094892444044790359489935784699930618564645101515810797755636810543383458238911657274162994728105250070373382602272817132343538955000437840092531916573286052605001284683541672034933956518243567955738704920853857564075319397801173537833907907723870076036041802986041660717589765273968537413097015023570206404924461766933450925097567165671969410493426900566579209434579120172612722339133332039322820428156925506402495215231549147431300335480119210283135966809537505290569298810871018611219688724346820965940904168928203160907937016213027674582001194001045861827393802056636697697586605157140448299841079506014156050100550324715950066077040880955867605060139533091552275880792956660895267571668381271459576288194282143038963955043968366577457828917286293179192093679112490462513470111240436307609806532466005540706244112519104272420605197308445872678609583775855663705418397275093862640941567538303601162624005424894420870399407530936612586463379280164352094849071448166535079744283000008648132859515296181239865505254918050589658317556944682222702730940047308009902037961825004596282224633956982153975325827383045626260743244862013467642059368823300657226735034081939787131232371121999268850128688377550163987426530990533992287082123409360123995951420197262331979197491276850865631110162096116628763534940962053447522063887888943556410837699494025028603234023749894616200988610800404248247184284490716017782328760811548360349048521516225425202423097008102921781148830932526919430969816945311550111375943334234723534983879731455448676148206358520206982526280957965369522575812483988464202638387246349422916433658537347809104416249050050846291155469996179996994623382935081962204428578667197002005732075086517605970043286418033612861366387902288577348932015617843771524935085386237164011105342729362306075035250836332637121953073743885540029080916805180846045405260017584893564801236220468663591936409241832869394439144728151127410663656719616707574560192581341967253252390938808698886337347302173191850183280281013455596378750939625579364243219191515119422954345082789756801340482217729068216079740641296838083753404882399151298178074759311003612365805479866815814632734666995178845778761868680687937698391345346375565391540167488076513593554088241674384192227203310845261687341268587789133730259617441686227740951141185298861016218386318992491211306131919753424258064143855084379106768055910218796918793089315184828930257889214674907624492464074853789093682402576230309829443627914209354296208274476106828463603951553585129272859767361151149189476034894580090717072933497564842716019030046517093301729533633093282488034908785338518611777906081882852700567711427214042641066131728370381151637332073955158730183292497676796033796623250731235533748789590722503983879407760124571817085708811545575699933500810427395037541222595458953082321515591393061693531030237279445113089456820002852852696635796602350353446876503971363338130052181068408095011045684290037036422648281469478879648911633104136312384436610606579139647266420807735902321057955277446312113240870715222371027833124058260388366442289892552404451556972012906943248363487960954495985729440809434321985242675630478777644628820585035046906135833657048244319710859252394269989389684251550712547705886676098129846063734094465373335603118103065726771366505994328195290594078818065699667139118244625532869195183995796136549636196332740192740782021169717852618176958078711437740327611951262933437949721613981938597372067426971183588385985225198367428926326524633215816642986644859335303408766474679300947576384289046736549144443621865175495912333992695505550910289027547273397951771324025433130518001836279477084937779263162277740164598827578887428765341852167937092603447072805595448806615182760863951663363736375692918343784440755297278619442340441415750732782362619357495241280490109454783221968739909168693627720961210690762435473076472749054546846867894638533192646591393412019207124871826003466956535865522683422308999539379807139177811598636555121512112743098790769675534283315516090716622771137012129189296545709985565437064924684274024866070812225109334575273201069441497728374792967160175555599947399015955321705773203324037386820132667563777004518564939428142496444771897549272876992970265465494699377426948800171001549209901938902135173104545933522749460330192996133552539849748216624086836563131388736995262448242224705333265681934167155386014182803310302444750717247929064975733549029170933603113161548805560092425373610659384470629130263412364708744000808536541969548170044991035945914076393749897195217760113962842655777269987073691848548582347017776711549249979853414075185112698700345620846447192421872066698923581328727266097531504208849903989445883060737431919729815019142214455921512882530373665857153097962262426868881024607514806338692725253307134628851895030815547157583622889602583745260385878730196875029568606361836169060291223299254195939182169086758672616585303385837588677191212242098148556679966615441532385807407983648589290298726052321409357771454233020438135953203320148204941652568316940151125825797554364591491253577494634747871974470902498756721184833362000749586404276962861128038151640444511519253151757021027195414970175704517722161434842520313827292806640535973954005920932905460149851108635876655572313777770540478261327629349298093159915782592032620466012115714620315941637640465074046762083227127815814927495909687694790717832664785302406651286910508904590037740943257280755289310071195679529638144099819709329211927777283677766092211090379701995947519472140570724579339020256379792630540002379875899958108113971192781921953495170584853913081730284582243333603036313628594705250840356177099629367928332648308650757113043878814003368637204839539077901235045043400559618254019020856600596221994077400213659154032201461315328352787093217159994705667905140608606997742204479500886012008853233756675097691847285352193662905652070064279365358995782881083506076148593716744207503739351420201864412475133496345150794906856973743937199256362110674517584942228522294527711695815111317403752503803480626444226352503210931298794923226525190078253927783175234431423112163359821747868908695733029443897769019864273076441644086852620137285002284901058675868800405725356679917053552050696213372058976159503776817520177113043071961491910500926602249041507707038589252264224300846288490382815828723322488658415651179311523235096287480044786573005887506680357359275887169790827368971950744198141282361340953237212145635082961442864944267843509131239139091868420546387870063719964234628365195607421958257083138729354309577464495980965398917721993153268861785712302898700572747736343260173105476457318781062022494786835899727444385588917012443256137757519994090426901336331217536698170423199067754416693299463302910449063793490492212078952350248213046899273647918216974374747147499561134104181290989427871249368593395366712621669083052749368112924994775972906860979467184017804972223507644154900006151992280015916691433151883588617984032832249614453664595810025383545517781611012043273622937302761973165206484688183092231898371944591372978526903614008385108952823287295951219031068078109082591137852692721903968064565773536167031794065411168154730175891118127371353835395170149439072020960279276418093572624716808336777788955393378092646663947373194630038570361466059243329421669525726738608518485436922331461573442157565252107194421425443873800106211744348131185348019200445979966436339513009666578136182952894772812552657566127203409473882850989164001168245001674376163836665385158127635430403519708027566926643094610070526025611857536530483506176403414890729947679467875360496649923328536253792116381483740755959387630936180869959351922741170794471291647238670032562249713735386812590456140714186033700562101229097341235216989566227694044351971727707461475772168935013149519716951694318549254261530427500084062161560929426123926250863184479597547283284183998630416361800566164702476772436818235960467278830989168323455436522213382202235464159274551091143173809592466860145386499490765351386718350230032702692549604585072261598188778118641548168065915923212123920123995531726081403794561747786994349127104537779724313551344676823588550832883803993305953745037115345645690037919555765644153833949303708769311807981374249802737293255866212681837221774782108404336842391331518955064134718120791150452932854229554684873904893029754188402158132567669552875175630072972862618668275852090294340796913184767948604575671253900850675922404536633885651407670560346755187320358869695182458237514549262394544412213661527099343586824459950486158106753261228200475677526477212381163754150674059812010317721539536919531068146441916689438069872347453354209330538534894985099134410664693293554740699631075360477431252186575326456029919367623121858694951630889656853762166596618032312514318607266033028846437349361397741286074304055721361778300232988545537181057747332776568149772741942098757294789208320770295505698188294991673676613302493780193123517830627204372040041802238817481837174971390495739937681571025517238112736304826872390951120007702041616921175296198027353149709793362737021604173629072130725067057522823479477805685551123642954863325315019334105964324654772759030596434605377807865458140761219796948656694777260635282943882871824569515883275204874371439107901692846745529473392182702861107982746038342770295325638357474883858561345762601497143972326278488506912577541183343952609501124438457768652714643839476960905471299597137550562512031927885531671266040039581066465169245584519213837478922787119647793752046285349978730320665304496164306631478699112669657216913100632534226766478244918726125890706031956405989930718395942356388003823174294943005236632526637434520296340650898427105850361997088203409280942035575309444495465443291586459561462290637121428183158977917197057010214125907649702803717732111193339199607689782238709571260195811791961278763580888170456782766651173498951895282899471843721078949791701324991674114898049593721259019862827010699440170193567988853738945121978997964764569971849003754694250813240621246490995549121481184718655002194933109711143106737615307071367200443191007343331442344140272279747831790228312477710559888001354415212153153407288416170942415119914519264656593228046071397551770775466609450631094132919119105725604378879446703107756821419032878192351847170881888771234106530752989934457051932517779576353079920487083769356235825166585031797623542131695538669362976781996081781573442949072318338842934058842490635323485303875572715818857670251936393869917731512904580740923565224032393857965251824439104004785222784592175132184007734912564643362549647969760208255887243217218906873454287780722364917101355770068616246079534447715885131066611455393900245994281147248609759641111534376984305989929185470735365934952640675531941356599811774399040120274643361702831602017656371008070135762748692763702824428231602106527381483134925772927294764321224911476617393443831325355381654331486931253977295317162298220980102613737623702392867121035308980381990902469706355359516425176170327474776931398075723521787374275535174466246549351577530879561130201071234095791990225195443554444953297972984501221006747175928493187136123141512851580373672205177043308374679418894921459454378417539247163969672433374556614257314110968531926806567602092518422402459612811874684505265004287910877076001612959624116264762532998152111559606551983856076406036664576397806848041793563418057902910386985234841927682822097013058593584774732389716085182418883172404692001242736053580865114688670984171535863803942494151477195466473148660719389268264291830870065796604348914072848224030138417710840181743428449829350457159411880556843466664966534460368312750544600849960262118508245229998364940412140230017197368593282838035521542504313812146356201822822392991816604645569024748514685369944301515101729759116994312271629463436499767819722771896551569152957995395420844062508762160693091369622118463673631749411148971942160596199637779168109289644813067948878113148344689446343219474256673995735514689998330225058647237054529940247332618020441761321913978691441728547132526055759757517469754948005536687779736520609584816723999802152490408842601069242337413548344432084944176796729990832312627661521510845796577493775755585009194230754781889920858783311688019766790440037818335638016415515115601973866364991045621493325560324764722188806284341260719387343198901355071270668091230441446188836249010213031767166498548347422062196588353093769955892675186087068034755134824133847491906369307979557343075903835599187973537779478624200658251825387573804518262335908736294292869325846197192098352895323539994643362647272251938694143256610164522794053252611212127711076061190956113636917010347010825419111149255353555935784263054303604551246405624487159412284838325616838768493426686862287304912988378527210297418555677623900855990449493597762279762712756624396020381655834242756377045210531229242645132513533003719132335578495098207706180943844625575151399897952251262352722217572788856340518613482660070220675091725843466493381239643194659755111411949898480573884364345116107272886567900340443318025432959768285563870553609794270576575710115692056270950534007337409985566208468336678411140043298163944168264299470103851202144558299971693809819666749597779102505984168805139937929027032372427539590531553321647859785133748916890365879224793301209044509293313212615214780300276398894242278441132974048936632017584381058591096210870271008834696322173907614450467906632041099299374188883107141332997006850947207017375825578341744482314830519540471777396186112342514431662313937333609778788734665488442537594250530315518936849891388589494093039173116801400800262416675222614101945345380464398728273833834830428593878357407288149337412566616575838324545420165642342057406051891159558842971635981310653012692257997030505419998463440027037759656521953149429514698408203836377081954590550032984858483119953260320138291037907250951277218882864980286697541478172242719696732221655683834495987294409661648474044684624557187377995136028002092302491146243474069403661320525759504002277625005561223804923561941798909709369076684379431801738233771399071183820994732369624576964969294550201944566147091280554365162787433549417683427302746763342804171128257671922112656000462070933108979583566839394455458286633638174327777280524640358255931768315521931517958468238894027229038686450115168037950984023488299568131366478652598442664529530674502481095280479935048501411804826962448434471457079465941256333854888854838825093988009565628464805894679342307123126952800033409049172784450056337343545031260596987210549866073700913658072093945212778326924287045908172601332226673775639907565831628145702553436944323010262377789378378819364954111588170293847035082033281128455328604803436417771891031150545850970877469344697533396508435571934473479101857907501522557646681594104399879599536785710845118095820974547693666263216771314948571378094036676606641938344533677121809323036074185467703220934365117203495077704091799036461888780977640793234233990618217220213999171101898747214217120534858134341217809630638532355839066327457091528953724745437307330659975698051800137075517641329309944602546746040624848219191240309218521146313575329209509432587491720624198554780386740009705918355694822356489026968033978588020899729564299004101297345309734463761097174689579932595944645275820106949260407398332350901794106469974130940684698816387760719177623655192610790625469557918049485421207153966792888788146888187421853265051678083647814424022465004607320391417566069896624710363867936748828697149910931139572750919094681573120740510754656804064686102842257019959418179097701846936912540207420274375854850157222619458511573967345257504092229133408034994417409202782113776500032396688968133192563559091350840581685205996956825489661468886021027931474721116419158253489956999545614522161395402824797113106144383235777545924333205960171662870686007419670830811903719440411008907289442659350002955272259467642563249554100695864799445084296927606245976133995550026947495384356175968713245148947312032857802784879830789180668656457555921564884225838969471621128212362815633952841894990907123780374470514380228477918716215414219668848822972587904448473291017644602328658563197172058722015736293913823915611926480907731598828581792775614223866997223573150838142677141596303443237687575850311283871826910550958341023629285553495139320300619683385763514317992436617701039567740735633566591212701905676288395231428196849781078099604368584627066250076233201886235382647413854749107730396349365742643092137688020151246283704018784038947746620083613966556161959721673260461937478171581800369840890246698554817870303884859918067857657150030489104326945750267990526747138489107644079331900284666415374073768962411134315863090633797467280889691826989177565105553965037431733297271485547983281426406836239299225261699748275383226716966560388063743424555061186025833483259313143273209150998346778987152463839608526697136416638928482518964411852961115091495184048474238359696472739288229318310277553213568084068099321111817936450468349754625494031883818697275516620139665402999147280880287839281516292284035929686063555915751209411151522444633498679407444523301750436673568331096690063901416735916596111860966279333753494782970076481819567937942730739149035879597294047261759014493858107017869247507663581191762299925172620207606015170982261443991092103812561772222468981438981965837956814002423522511723066140666159719068231236076848090604983375449328544106531943456617888155847606368837012344980347262544520352716441263661067372867734134611380882641238878182984853428967638482802051102287098494179128501030185194910386280098520304072606911828384785012255969700189445055733597688536507859376860589154240593071615758499052207195646057731410328034390779542692818871908596440130970304435538217908095856041751888424235616864232538913986943094454891111519100135473155728884632238340657093134746642005267152763978552045471371913443973876220028483988656236230216492392647732110094533844346475334891832102046358844399035886253481430270408788040844542230016365155935691601098817136730830766819271496095093456060372606732422578940050642765066322135873852953183845784541720693206701391293625950276562089772397087706518559923813191138481146617667887044277546313040583187175518197409922956974317701971679976650219822460883098606300558150492052910706651499438951365235000192319403810359139652874543952858019545825399009821768003796084439580739658513622654017655466424426310039862539167692843263678319275061855907425914750798412928457934852430238047952766987138779684574931637657230804771285962612703577045432528974517667405841768967744231419457380502142717936113784163014805820392727906598201352643469561209721751259309271568369472797163616923175446841197820503707476111873536380163551099489304200303554317109685728943048068803963418200129796708302082748870350165607678770617352844455763457123922525772663783156925598536950018201207311695029569014302525945694187821994999374989963216126658059044933905798379877785555996598199820538688072476180164448925557319095326681887688050167032295716979122532886671659704663831374693082389806125330075282309457360013412501460609704727844086117708519524326413577824367029112401684552324431132025420868033289251602612362981592037385980125438717231183659836869737709565655971554082227401560713672025698039418184002693309535748732140843959354105231147450924968028119197880627893268393828150991836685801821216776718804846576098292270537655658943584030345283515904130000898118206629443875024446740621813745264191095142973631790041796595355708426065890016920262947297824891247880519764324876039594151120143103226380329804190357844008672513407713486273803604299446260990215445404521533804379203346722925858246754776093250055339877104772374505517258949294596443775379689007180969299306744519256952904422963109689168263212774800465688533804645077429781418907587679491361836799672191190077645069148231804510661804811600821292019929789995013462599319310108167092690390703150777503873545259183903619141249137486137229900215116712419616218784532683594500409619541904597638159711513011471617691694973090740164556326230465720090357403568360740681904659427446263927283170586256627720827013945773076332559787540443866148017464080776354133698347270861287599530909924607754025267009914162061073725142547937682691565811491390994213151517474528218099062262847459405887849519603914228278643041222433686524858363591104626684503207645333524454322630973830888843983070032169373272023278308689228063361413912353477322739409605512407129494545039862627160008812365933087672719751770620550783473700534807675737252846703049171954852629915723425754049029345242063596000717366173909844313189666078536816275305233671502519956027858017856303599627781164180144629491563371266756911907122831483489495671634231170958709072195560399326229900094378214985726113066956798258530595355625868342878135269117947749873493933747299853903056554705785151887820799243965556627348758894688910818602497153992954564961907402678580570285288081521898126761328955095894152751058139609838471661382473027234310815213591753525116404385944460550255641282535706273976074414404814175539737396931742548849568897316913863763158986647418741916860072676307571738153244492181226267362636812866703686692469768294832856644180234931106198051715832556933133030335159279865781333241896364085943976838088460069060903407405286351765413750786481416226879085631924731071991728306492245758481222536806229348244005149069400752258788485268706900227307540138365123932757181575133269961532371664162592734639466933689807755180635278266685057500122868179522268720375724316011639594931385192129478868292244374966604664791825055512244900694243793142202987454114142119220611779421340278821329020532039895058698262760684305867783730261816687101004236220260039391434525703004305037546619647987202960849765297992736194260778244863850653923537024351468720538303686134699525637930920532856535681428732549486513811071335884152702689058948194483349705333387728894540591220980833796614589195716228662028729898185079277910766121207503154598573204443056528895534533646890776851706065885796931070384030108013415664237002776596951695772668779413536037024882415193906082005729764134909545727063638098737191546189048606962192213701670814284749750874043660938957410272533537696871504323135255883542551099135988805812955763011428702885182984562337534290036088394258158387278897694939945240426033288278257231398085280653836242381929048870700878695832338764873957087424806187243879569854943974910233326497284312089943318090542060894468465603877581533809464354933194891433603750722703891029552806084048120216650553649889385120430132279943365903881150302601218602306639709793177915186608365755954172402758451756447908065308681480794798100384453858661531249720668797054748835849281521947246989144990205407644911736227079993822554977225282747874833266514733155313201261140919030568810081495751741628756668365256125605928759242443971967478153168315403645443981410033439407584536711034463055133640182033331211899045547031143110668956368366630309401554362953777590187562602430608002268391775437013823888817901282472378878158821034783731273693247097953333111883964626012794152211874215782455587682527129361020650850748530274289738551027071163989195536166804362849068276842705348950138825736742007765617477122344466056190211361539914879258942453606418570548305167829095387350532546972183726282417550844751294744459953760520494241063641298466139747707179399740508500572864754326134775697399859270470925440262274987389337381335853004013115514190827724202538667282275010810046800169352816120069013412758418100379453811302558949107528811400261352080644264638208289529308937631046677568193104637565577721475865408368949094501592566943448345479232465838613908301712451950934825351473521713599695304095939763463469716346124358486036007203486740803178652098027959505448770560947441532191094157137283234996060414175190713451343624427366393484160565034537852148265822532727772446085177828975603603369523519154187551235301992290439389643723715273400418773212832075210302536219088267157929078049496366728601067969326178184395781799048850242358041088746457199899600437682503993417453790658445802081463431520361141624887026404579569363834563003953937635028502314152379167303926523014900964193912714917704268201208529603650177647252536542148476811921679252893293557229085356122613196086546181429597189603470366104064120332840738698616748301447696920002240713563826255087960156107560324791915585382373446627191350526231944475362274060681986321638254257929333846525649836606740690996629959399051223521889616231938959454524467425108238907849543163165692320997362476925117333296587400717520224688197941512644982623393298012293546495917945173907479621700056179879757146219044436476440758188226008985401927995874808022480204623879969079196440977308390477077904061721106693145691535419794521052732322006151082127720138098680885803610807990262334445479047962906774958200383932264298245581936191570354357039022525789146003604805906100159873515338608425741916170420902468471235319819422773046385499629430875038267630957568369811079959375273038057105185629889794407564846505503651056666202510253516979912063873978444815505610666821710800978167085800595439779697226641496340620691627603111794650723873617784969160427646097066853324038402058784969633641519114400105216041489569823284736606173638601160396942398821760666990851407635909330685123439139536916470408337864382237086938673313467701116345678552968149961438928839070183816145532663907089599485501364207830224201774869365046749621211337704678317770890702918091225314005056103373232425901623010390955894687391194572035079781315597135498066081602427912033796707563777604233022361458409802720442581879665682134239186126368698811247733088917098652068064750281007652000900744477454562264921366540022089630768143508349267324935989433733825082934859722863230587771200659793635606716926445631339944120825888918153609496277604392416896901770504440569514711187048633041862601868425527016011595701246234387913519712868889373496684585094191666443653060667453776723391990787683454230265558874084936886409203034739446038162041765760811175948370405837248712471902180126041793039320333297288295520446375005185917584188482656166002033409712140162996480770391978551875880336282501014459304264929889063905487175192309639668275638748319495138629136196475394937102658682286901718509540273042901838023992905525963636098460808087744573671516164264282077046856972449395335492738665138050344171611565701949184867301073511797813905657119920548331781618818336521791481456794049409771344597082477315047727566468777088462825588343015405910817242005848824120746964044928437885087364021494997190563818996568924380556829541852921382475139488676682486200640946384802949028454107447499428039143416846121562753331995918504521503212623376377594498584047944482381289526422943382216696409604481629541159857603771100787834947437401254346704183720102034262914906924160501136660316606884396045939912306400166610221644262696686868671156672898565368325306164249458287347669446650793289060504695097631645293443594606185321344376462013806091909509203213899587659031701045477607168114641460725211932391165492219689233102129524821133535808741756016000040168805700098816016427621660297284069676510338255097762548854026904507005732616426708664734559162959266406643798330555732022604655655322127598611748796439519992118133563495366729129599605631274127522817422004142197700856002467332849905134322170648905634611598177396348745424013386846082364232735850939524933198854985903635019293746580965202978209196195764869993881489912947052445689878005213612483529191700401781733160687740307111575986692028036290872417654019935414574652130342230550124920295049685409443649095113347328824700753850193835731881754457938947026027685751686825864299620329838661235908146486774617092922524922136608264997086942198363675020984301659190158838873419106592373557720744541540795819661519161079874725312763616636954471985952384694636366430882577094360298347202456106716065273138259893552242028267916218697294264659753577816137418504219979313245318620955199447216400789908911373292708919599945939034844873001163104783798748279952923112562975767259753310491383498919190003446941318289425050058442551210960137072547089496119917184151058491231869524137515078889411776626386239807677827458754625736947926205690321005109493084394232350347890204484809833901782972204509033006006841008720518613268493758763148506290077474756916814389153504894780464488923727199710972636802562971510459814467218303951130665449475638651612689209820410499657355257572214774308408906826856029583980237795086314374750723557256768047855421551897312855882380393709974609714713515481717336505780594369992760221393126737804885754905346448293230436047071799182378566410532596903074736929228561210618618020510036209671079403477560632573985521733411912387640849052396802136033004511977182633467333618059277893024279708097540599955683297394108400157413692768649261747972956170284032387701066729432630364967011219236970056825509748870899277525363764984289952349214397841469968988714590531594383808489389583888527641893098153556500311070896281883796283951887325721220854088318402377189647473811004110922392664235842061531465303397687818284393639790443594895625835438503258985544607601093117544051874847502269725339490149347925242884723249528982093693189103572426902279417347968323120474916788978634902060515220829153799305432527773919960026861031979718287761160301845918685241498073848257605808324917127078249238481309958376673290819049369464709372165440433650050871562489487693809236604564660813049905321034957221452872226888129806329677657040872932879772643104852358112333011591763742400419240319160486590950281071125575036360980979022562527619122354327428830211394724343584097242975386729554842974549266133806043557496309392232447201087095408515964958172238462027149470924599638342625987312893967597179158459096206204832200007433132845679024045452924426148559146972837288266113122438932731030462347711850176570513371183661125630940145205091775909571996584262858639488423629325132721432704280381698381215548724456739058457461951460216298642748844835932684494100785258390163512945869287688647546615242072665144097892247496935884294845778876092528493325206123292019676477214680653732707912794907610147037907711111534805510757232231460894184258767496096447449843662571641619367136174066396959179239533622041843478208300416525243718329999276299446914001157876313005053952771428319559943482329670794767364006980219091172724224350839498467510011405263308055411759142860007097068755301861302693394075918713946090271822720472647587421754198011981377465159470940130795147939985083470928153384834255025895227416339732726791537965530869619395401184380623017551737708334692593446567081165223025797889961600267567297090254027142797195376521052509980154219080779466054205189392601414453099081511402512939596262872947036199207539079348635274527695669459057820049539783770568958340565729978282718060288899148364084778463978408486704383749819271079173851118437714017352892611750277110481089008734809662327498866681968704566774728397985106718383264829468078388740697516794433355624957492533659801471411188527199636142628733595038695224858720777396212077462285121702190507352045726942092502976399217716666889499912315717091953882543796477786855579026639552137457966425869705894469549844014663750181407829091059916560990014930217333283723551584515715807740649634412868743356551525634381531722416050855647034915678426128941287563555161028670995049746742886960201150339683083178158906785513742380836681587903787783822974831876695594192220493844119410265691493876290863546915160188931563232888282404898547180829976569795732981313210900910843265482021757479332586997266024101150308383691558174010681671008638601211688742977707585950207373178864757231739877854239107417011051640175635785939416629950340294033580141216462206278626172967283173806942931839135578698232939106902730199854847630930385341681458088493418837067237374803152781172259139316670774901521468707867377468780276513328118577497209044765571489523528278619928349805159654548953291765470872016007555123497078416634347488457550124647550705451322568812753214818507991459277363808280965108687143690563934135228930690673107350046479124932844152241244492056612835793930338670960359657784007996367569454708228112731725471192780661894459881154335387480965992401823421503059082096809645240050352145663622118178925487098312295812855585845470034795721238628135111843929629682206880040301034381102288623263394333032543254981031805125628269657040344644903019772179931305295085433968978749409766415283330654574159077407615237067322410442494630151163568943402970975846339276071986132279490837857043869797526182720314107421994737598888006014546757153318749555145379131440650020010547603493243286171559085783268509114655031651518155912365750322316849867903009304543612042081758856963281502977625700444991825269581082065665340213568431454694722423152217064062176497931695522600461561897005953268836155527255798285564295453569937346456381092790086374526277563380604074415376301405585983254410170331882378028565166020555038280879453460216819221439992870384046135298608729890940453336193463382563798264446438515416636236371805250776809287936318590119683811949312999781146829303242507554208073516388065551271085758666285052541765829022505929695727028385862654619600756292706124615534425819299244648509360548490517232408761261711205649320671315214364999473295669180964984710894820022451232910450830089251413272264717330527839980516799368877766145845357407297702974227368629165327795579724935723056567145876427221184865083050951194058310019356336201995840120110209503082108424907875461967314387327630995326732257115118474242950236500459123739103026064083301743277327009508869466672446921491225362577909784096504465495781435959911549701935437673056147497402131426874131165323920613290974791451102299436704326308838516527787333659897923411984893551457619107788539244500483375066201376029282080493698225062968774399207523412683773635820264340494092644042658293673352953384551157244902593808032392282431100961532116866710894579274134903220073053120174549512534274380974580830572409928209098946648412009100633955718988530365602738426591130749716111991839764726599554639187674779952361970174520889997548640459863965331534136492456577302254580191235245283108386476501322449013666067996735837248941373744872739652075211970611073403296523766381494278617521671562316893993972141770146745542852485779019397346655297590847020296579310105278263208642122051858955832748375259131977787804036484665915941179801986305723852637054791828684095924018812291814781788629230275253359417033416122840646413417625857177620114785836320877030891924874034218295937863363888666309452522246825184355190323490579481396180376321875926130386364407268785885765570616979434454659366266588004026337809153214547009218111308911744998764977354808969464287994256686795671078395901149610662091742444833136031838916189802961054230630127358896514498803330485701954307362884917884461815300508898663389427456076303486995393943527030016663811622442819762114318845459612045745545771205694304137925965107682980675096786125824624305260284368307541314980187665407347422887865706503260933648581502382495688557745124332273626822594111333185267725404939846804312159899847878545216640906750800312436121036819474952242241383083384236345766128010783265828180458396109505908055490691818002587502349218789234126831449336300538111550834805511016096508182231664338151774492825203474884769274400022719417469517028909678363956491783832201393535018906685644551919884701337927334065134057719961844252007181552127320713264144551781287353425391506301123734672466088541420860044415826205827362702276309699459700114835671269750545540330371822158183164062237330933051091210475753491313926608183193561163373305089736175309061359373775506901778468857467710349439323204927245080058986769289757184105624920256194888163275208077168093666193520836331182272364768865878353382599978226883435281895624554198885350270547397239390115406969072836500249180992667658392740555602236849584299524978088467840539401452423746328033452911000352316622066184064219110180125357315410311237124920109785802433921125397232058256938401458279461395895682296815446654889652055284673955842072119857216063906171646727282784312940815079331324075379898784105614202350746081949331419505061862666040564135927621007750857960945330570497941126689235664572055855373449067071735238643119584814382766326374911869749448325127708875586477082076076495614099727669515562793321116243328565722692485267586908741159342360696671320641600434537596255310414714063120075426846585691140346003437629928352824145604085884318071881486163154640265701079603229861658989430426061544431631306849951247276252674301907699629687435309295301399721143859211606753830025788651893380077883968027071513286781765876305651487883688429276901929128146431600029071833051598082766901190582196342518366687046252341694172688860353831670819839368739812467336011736541535239319787773646080032487556077523739483217910320051468158334827492517757796184344652310128058087687884270445309837304681985116238306398689725920448270100270092908145169013504419605348302953892446789813463174085334474307459136139616750579842742127937471766939729561624013134123623975371068252112487915886219539992054536906689487428558388304773984818699594660272988954382632303693656969066458693972925958026558490436082090354231216088075569709179817536346994877120960834678509277055956641725565730508393872874181221049580465928428086283449303856135129094467603764438998725120403046864480382180073564844417572132840331839827697347530994713908371959289281881325464909270429707678227837253739915571637492404924192065658797244051102820320038727634488529931819406234073586059952443177409123318276391907711631060462540891399578628192643409036936085026333147537186130120383150936155172556512805375523202279147014081184396715954286704441806911180967738871684513702668715876210186647354742792483596230187721095802289539966748472725482574596986690960103049748508740501764244091408618777869470948370350231485040198315393890453910124056726510486808120605554956294197159555908062942034266794823887842221918676553377545039953935437615800708108093801526872900884052663589635573248777313918852128512636424903505140529890232812941514286418791438343400484134785128395656855063818112623465038497449431723569088160648331926172510594398737084863138412659959657596872629925126966818830017952703464591641496009456631623799781727508275659356086778594393269233063606551758240904650261654270968341926802046958120756682498199061669720400808999256272358794447533442437936122271815178604268376463921953584263516465229202463085054906318866218527168436648651143053047633946350212494281399325007549932464569585922137825532388098770667353410316552042797979570443737401196845046746500562798964042821436747944347165732617852807612945753635962918966085746931799888262027252503309213573486084173907021217059001722351310082518897539617427763406753796666669723463695367022431464317138772053231672238608675759191069105244767977991663213999272952605001659423461670040796896038085429835506365191099040057461308287687238019165007540982937489369274306878747493197507143285374374095322591826023158680844048828982487475290205033719375274352492750673084186799522634669134032210161403297180040120237082553954866906707548702140103321826670984661130742673032490747767716033304678204956790579304319624595361272815496595946476968151092121539880056861446438425412615907723419436229956724638710293847851461141608343238380644787012144096938391260167044210899210301106419556768234572625721027862679014422866060088318624542323027113192638032308321644889626605753438514140547811679929145071335777105242328688818735669418878772131797918411243302767399203698921439146058034557058103774283748294035446622160694581353150985004973366420357883601569528381297191585340590609877345574239626830984909197970729728708184912597805174499356320759803798014756319266159339074611322049070922068293664323410708912060407158237452507638435895187026278569804405188421414177825677155983374932009677486578182419142557578857700673288492539477525619814914618240881742428549264456264067955752757470333650896271219108636076406551103535979203367350957380889230306562924709121692390786272405348464783129009193995919385385396526561901774313899446528929012285464270714597248736925938502610527177799711049238574922027956631766016224827582553727925647545666489535914699252932507725823561631135494021030494439502341513386858934903508024658208007934294667513419443322130219157416811185115581943987164092561147021267994304484414222921637662864486921307409647841677935357467310265824763901887930782996480346893144798870723637418933228594905670978767898447370718186563946282023336224808903045845378243468284158819989789593871487260651617141084675277738009950084709893328533409999657909831902626405202728650305708163587132680544541657835681017791574975043535293809110671821325490235722121002947433259186994624226396076221402446149154120525437100881893400184586883492442301412400671594670016196986733249791118937583273477657053614466753231448267156780002499081382017721120057724003397931471937223829780957785024582022849380238672056487131260603458919073750662388781722304348994096004464470344908345990155628049871194249917758661657420054583516166912915576961469791690678556197048862719165476301136864575829596871351605955092336990219812638658946371730839350349969675403745458085171573576095790808212207303262135936930503575731657554637302188947076360089287823720194974531067182969646801115886494519436149851254333158811832836421906596282892229150538653038809620461408388362164541603852053839359839722468594916269711801163458574431994785940723687492326937903497115520418734691517046239510973879836154120151962034023561233486471639033473384693351371676936569385742099677385031562928120351480635343490262126816806372815321693453144654036963603687153519950307948996719223930417135362567248010282915864260824336376704980637410193001167507179365377233475856754517499075962964650675126179697196542404357217259769704353105977158699978418226869131922210979895149084991866219681094908966154013633942841844892881449850380850283446286371661975421617581700016555279626242233747283522777730213701761048894436747904525024081189051323219770789132757004399699328804584995200622866656482239013914351130834632241776580686501589774394029518358474694680507130115396124388779670183042233673994993606831411286110663999861706804195977570680747282652557090108339021922812958805612113942303519691829333237282123637412814877941673050136774813683250806815594839180743478013514437358189217615801414878714084863059544193289928629073730576652164700236011173891338703082224909222346115820138649430411259827938237920394850775071475894961010982828057503096716119319983063655551976668804680625295497276657819629642398887893158405589462805450566162849713206199561282850120989621265240328602354074117055706179515726822319666572739918965299818039409453006448299785261025590486904339790940984756297635312532295152256844438431641722590889191924340125955088953127914962197359141389710868477619324410593146631888285725071315783732117212868398716568142599459417205869628014204189598700806907434915355058847480422933380178586828149269086988937393593427708859924464110312856191423193387793101034089368179418190854190712935641888437192104539564405135222880800604364527845700587161017685537514324497960087578857283482582822168061135448776280183819982551599764332786963520564417946907634609616070343061151911185775736546098767962718117759523612640683721111956568111684586956748286949885571245224478515340518825164632980428983947324703538506210210550208516916270323223495881476536276805683694081896915977534989053510834739196277438208744596611078943772773550874499908724263822414921690238848812960316529441076860237015770331873658470261141890155136073574751971463555962463618785200219618785398715765963824033905996154355173145306718801362284498041490010864386227415053324999605278741447818246204078660668079485700704388619733430936478769556666228138059379613233622215581334667084925055521533120156117313153185220953085900600198784272945391160775850624419812433163093335457307716164127425169609284426772267174433916294514284167406477933785025902675325124242328419082245595443873548917201881811494349637807665920453017326824242732408348829185259378749520896679241326319059187291898249224542419439884780576416740659764616617377104601656799999797234764743455023803668145088155099767136761975551657819218278764406351992066243894669476693686143171597211498014578128111079335884251054733811254444580878071429161961660554877218046755184029308619016031768966689772897623348535681856709376614261036794715500794177084020348965877157963011448399884973122167642535335254307266567534861328588448148913108815961489715277155784241277193920786878777485510386553875129991634525405828109546881472072431002329807867548446473724611986660194991989460770314532938352640939548981338630562461188101938897190538205668531351403450565337345752768389699400155398591637129339411970432727398047847199437363910227542454770979046692138536694859319701550487913309206405084832993800733637617125721049997275374950060480990779319089092525072055606996698689748991517964414327629954441432549957284265532216936076993751106240954227922262136302244348079571160270263122853747411248478810859790687133660511625456560841207395574409668887261643998094334386552018881008513540600389890328352280064313017102261093286824335963792484671699460147072796645816763491384948244152637363575344968695103068940247160789208334412707401825406904060342661093120431171981140675814407887927571137899053004618506337177287830611231317229333128850832863116581586943925260671391921755263089014026402479556320629797328138096043910762486434690800154142166610400350245215269283432329229943769835103983858597788620354535901224074897704094253711858701342901256524552838289778917590955366771042167681561856846646963687101318510946778450617823404576333069990793694427191775746350329110424230027435449369691520900841202088635164158325690717578798997155070986831778743263637118969588941089788826775037597652251636003161316339756321883737749142656380922538359376076434766650524515518577226411724113898069330029765445031332275052086802704982420501160653906822746540867949860576183990521360958569023216057148126899099183179584649337533120715048400885700995147269648176261904140440435484010863083251369548416003046045878201947613364611155514574897318669126048586750717131763547427541541596830563522748947072897725783525951155734302749681004332562971759747942977522852587230281353361901241607602391710056785939249929980834168789898474330263813212367685383971033219841134821977747100962423806873437481422209602574099237017804937134954060238531822388511926110549386849742808679790706588111886587478672206685506576490723493054261957997447960030947410841040586091346645925833922114235512560744156534425026425392352422821971661316800858699455605889289895822450636937745562336867635608104256914628044677482650635151797331946680448403859246801617866794444220242467768546140047409264385691822689412563013419498061576039850046494829989064676974561250943650633001394107268872908180815983149601336236729046596515076256007216033999421089810981717897366351786821315071124997918375111720089183314784795079824964836241024764513790774582384866122978306060011523359967264072598254217689478326608249955592363400631500600474945324703812798304097929649616627188227186763222010709558763899939850294334047023125465727465999038168731110818889032224634448780342464814400069317798924639863980432750001364049686153631374486533836406642194706252071290290796530762136235263044682110623060602302324667974137822951529162788178654719916429814238597849250892099547605466356457748470492941079236408771102617740333014781927554603920766242795909634476167048757065428958877540175817590354421881328503742381960454818978252483167661236346762566657937212456091083198688307738396209536948811852376708040267482910479903769794413324410618404678053244439185242752372187470291349546548099430563663826525958320582723371019699992247409157843897101263745298782988215191173073947671572016772289949240068550724544591923479681769362343889139793232249173794352925569090228194246010909581814361078024790226426723066649969588803755366524466655995317749657204473823960976477806738227182243400924010737968755725428539569057028341878324541488266086531352336214533701300455948865739489405256109710256190888799913113710682484173712652090070634577120401188990513679217282799149775173344150725783123870137474135575880905517673665211695532309204439700454813193155252448675494785718640873716443440186410252269363027033115992839565062402310520513752500796329831499549187586345026317517203504728043310332573098671467794427831041311590701352988751631112069727957933237004223841471162012730447699433227158323593090461619168989728027945638772684757446129036083269371978202533130874633064280888477036922570048204340624900781629073977522240854645821474638377130698385747873584416547912834235530207070459932480196121920478732156597614802839849500178494499422492941238207422959068129262145937132974013254718296564834429956304013896212076852753358254363543888130399443201391976489757702794472565294614470397430792623858258283184944186513272463974628793112036460611946901065209592347394872895576118764159563316199318524582364648349502036671312187066458929801585056972631210471151844601635355766639299898613474330593859979292121243411505482642097544512141260382085737997246944928593287558103083033403607634598748167787970034310423028314719386144008267874866762753222674530750126039559830639501902799863838314876574101916491422204327201873631635253271498604819061789575211424808189615223659621537232126233645955728608071884264582135415696474862532140695287696077770230719486516338205641517401148438089548295146428237250820206509543212997463321296076555231016196499432205175114042606291496263787211001567417883378276612280794853101025000070807693591454088050287755747570589369776395243231449531836002932564733627366189543769964266979650745747973230009131791327384083392300579214250754061861443482184038747451786481278230123441984323304934550086334394087689635971386919488373046653640148792790995433050323892386205208715203815496381734341498400792388641802937628402164670210682654266143089438136635073415211190680095798766221156424847279760822929177417435917574363463506517584571593730917724322496826337466398823442747675790415029932765427105584860962765569371415591496181143668309475325155416624247091984605422086040562231055548288811815512818353543823913092239171216157255284252213757852684301552283525898729926402541292964725953838085324896025022554366791205179882176705372959130444018228778469742886878126444419280536012823396976915539659228810872076611839792904372618903411646050429888158263358075935302452081275761501467063290661371682319833237827168597093472410539022574079736977322068354033027953187738323837189573547601998328444255064662482417553261192350787713585384816128025176432414853104892239270224831383737992279383247689028003181763988671669455827004192057544756117982109783109003957416492663314872325565774450960937043643111809137371164845359589368452763360999470548497184967481861749470294164078206310862490260586938511512975012856646695293146389256346777757065399676366359464980136706289879000310905368404779238385788132493154664196100385552874085976665110249016701476537463558146355732752049009262186855472809558960737327647470306691299921981921580835994782615762294168591321963264221795276077797635453867045059939248394009920492623007107274187986231136837540538786840866908784660877568997181035406324145085131098187889149642340256485769859629410519714731387709549725993442888691004333069139382146349413528333875282437285711264849097212768416426109454593209407164908893499195192155494673272543687906332093772775939460406803577628729775384477627471734766863313039415595843342622957038071564515392847047693581913316851001977608147897883737469462599754294941739804334714815355359284343981132716506505228815475301504104954628421046858363752668928332310177072857982555360669382249384773779269182907576703266034161340093293047160666598715487798018218971633858578449730518149164455534133876680063217005388070219213649475850693406299358165038009656209922714499352062412264059343161001261416891254361057315125096464011545930581734257781925939248264661245660077439043462605560321338293838187943581104686798911318582850080394844712950759684492074112504035958615356642918218516093555452681729111716763924320524980383560624577089977294403521232954475974203906795681934370972193636852769959881824554646316162859010120140279733392624917778971773398141284157481873717229497857892560479263421231833936865081539705540619607107966399477724970563542340336026332617986544073354336933460678850395020600294779432152782953431244415741457099775717980757506681257837382193829482764600438986824577039736280943073870967226424593010890679099159329097818172894595793031434165965834166655370229360386615163865829740821127578950437678116465012120319579366929692913646680265556267026999203024378134825804051613544205274809131136177946862956315879771538000192275556824285307291307703773104259225519426738616291939374298761607586502076066849921605087506959210703280764888806201834524737136605563094677259846877804249166218827057604631592140017946774444319319020800332564705299197801139916837942283935147676222287967552263699619625501762973622318533406226517035244896319585061709726807683484839038742499973746456243600713162901036446863260252009264324507720461149507129176495840310296616733903201173485505472927175819491319249474067619934147138776060689062139933086694108561871397303893734483017857701767539590176724548479986688294210506325583330338408635678270491546303445123830950032798278737267703760734270487791588697440690499660675607439275147829316279238629739267373585543455823437466259275796396441145077994767234068094689053000830049230644925223467846452885607664943643200951493052246379075493970501816389283539380072838709293165003986795408633850363048639250535955559513040596341104037618047077589837932732306666148284050996933384741597546841055123415608539156886455224278125698717946252582940627183725898830617397028267544857867541466223093611242323457173874931702419022763015134524195076802053253330892407913921020893331661794163152379330440036118683593563763502657278736959065193038545149392174655796833038134463614940219178174351185458381994358991772836662467954631493394313432159009063988338584457740106281398531350116484747066418766483149799531098178471991646665171170602057517919302940547565518173767598798972427016335109596456603765060560027356456970883823251601767162156566482915092031382726338310208100297387231180081493778408659596453587831180271745078945945124671004095951518412494199036533862711651096110946846084185009775168061633561434607642422902187167137178416525407039004473872722699848440711354514616122777019910345292373682185045943850627618636411272087914695035330979623639451720007097580184670428188615309764494848000291654335189787235707422448316194477657504985314196502903474548490733622546722786252259341269798882218559375764238657920766670600679473456995869343735222743512126000016930861343293657181302569691707785863055532874112073194188728815463330390727470167810298032191156855293704941257155780934555806440143864083383654342376591938038706631928318223276190836186453602244490719167177634469756420864591950465054262676138382853211481612246374293236216900112802828159310540039013198304974504263019195068751824992294082595083861219658302998421329572409362880525846527353032189787647546952110628066179837927364890555894057632358246459355333979406414785232444453354029096810343832616045552022656424843940267520796844650850825305905892273676925334674728920673504841959092920895239365441574385800812466400747740834965039795823227000210001800611824771728431679932463769383136503194099736466587402144815669004045055760009262547674449302267079970401172698443854022378335118038340295911265188613833439425173524159643558175497759764719847971529540182377947094973010277863773217377860776970407306256535105527067291905405726721023950171506215942383999053924794642149652968387687438658620064122765150502038974352520859567786513870063113483692325604563988408285501666590068796052749700813284318217961712680460384275962236949683524082797433023983794507333230730865052616760711210215462246266163428297947070108502934621466374356999921071015778964628358684015116805123230146390681967715744784213983919639864570784981793315637222128450504365171042124908634181432020079668247085126453362958124758862349661916385609806110843944777576222403900464279930328833589649932349449008680004248409149511464095188442504523006857274700324611186422394339685310595935485185348425626580287970477995797296349842668479511639471814842499365085246492792557811801946530834591284682272894617070112129900812797823290405608581162481843649929312504287588118396760635306727062673111651441034052359541956921418319336023452040382841388891471762564501239064271494424289044044493001703219906418430089495553569431576450540263075615485500355461888358793665843801740566301422998939952432984553455418457899290614238148287413760565560287854935192988321364762900430682590146193582507253286119440846443660669842982448693632923321321971079235773077828297003154094361249160517246052607331933980524920841118200852826138015477235523227817404776178815567173667792326713507636976792267943181980319146318184726260630235662166448411757992180518601577138780988533813524149713634934728432984266802418890603620268701282053594865986645052008061461225891999912547436728263165745097524760265148904234740937099551093446812336803055416723441243832617413262530250322984203591655905446089435377837935178335697914948835489890779919935418228240561065621739648708590726807217849516513739540432265184692084051331727069411590042667239483561076034383060169604802873949442167301956376228938873047578292345100141768534207147719219335741495214558353073765582709258482654122383836869461949803871549848445154270579462618988607779584061822278439579482429670360906244895761968489736598242480897736705906676082245546921750023540257426006064184347529686940688310606825803008766437915616248550817514048457640770737165770627157146632935877233110250409035714794064508785348639389048839210313583069006627534425916767698784508450962220702649482727597404256789978369168265642441871259512559902054930731047145799511232425392191501592984252764058254941098651872367477629045748630860283235110732104853227632067820682561433409483831164875530914763568730953384966349377949203766067355383690600751752804956137672554982689835058322471077307564560714237092659969368665481420487731489918151351956414588849332613476924204056231258305613476930359538291170280064240241593401972055571289655373146834018965940547438206461787950902983448261629591927155628016962891222965322148250204785431829322225651455390217606375859154015427514428687683991157656422780706911383122111010883269118079886649014735777644302826504345681376369454262016496433021619879152723239655693017176645463963406165534783015938365529329972054869961822440481724286591208995632106132869548418615751552165446735656675429652378064231323373123759851250506347279661857023201828284799856905554413616805458537337956843285484129623044008469749307099162241390376261323360985742311650404163918164128854421561791029196404731981289817077345539300434058184101726772557134023148761531573630511309775343107934330174051099791955825661511557545446526260802887631488120915586783834977171335336480265628258630650735670208953491444049265675901690557572990095824267710437062407257561144767140522758761826233841599751385316467216999502260083757866974626205495312610137316597206481121832315935781186985924235454944878913788348867467502749863390861426849368269293995478777147406679867429258386833871468951074478938118431558277717555079692476854506492538447640784935336378091312472255357643420517534478473447835804411445639797317755468175184664312047190753862010137858858867882857618949477888098237033384804172944502211252956183114282279302805602566185710685195070145780438413505064599611449243156278814630773939727800224783727332549901193894935507731277834371420290832378799944892780474076750953744849867634102710182645018415958632098987343177959237909723969764347437002643927888546710133741335768019361189530184557365991847721897900128996477402421097015719141127778801144371978611033752901466038711988692328141828454989022611865301490306878090317524645370345152766886970665878988938949873402668767880954487882331929310007343791525949844392480177937972990370976372094898296014546977047714423009791906797215394124483402228169186058676811426711593905253096169535177023938033303135151106332424797828384849845188407020738235655900701212273188497950700921886237709838133692035017430420233027875225592106103759455535591891141126011820201090010418473624217056969519192017129148307500749774685357351770330112897458179628393012004435464476732540668140562835551289162692334601898115597221583844665958704402614847322919004681282793496365198861900121987641111907661732344070947937912151947605373166523508751836525129980679132572093506386223897728957717559970712873936550147791320792232976428775432521380388495466489589386312004517843694228541582246428030959203229893976665491607176277203353176083231262316945497015803051059539906185350627373564461625670225405667267743934106803797928697287120985524953300343925128505774130030691352701041785251447982185213629213488053656631283952743173789220656727632662957997834164255499754496251350403772661281589129883700723905625382742577817675999090409638866907288878611809975860460073544208209438020715908721684031179126384985750161157903343592197425332645959413777093065590920454203095311905938170104083708740557553077127314866586945964679481728655936418706965026862579284923828375101322913800830419281741228785977055811251518874446516926096926313210503631877668736923843600682979649781887229385352630927732229732808066577847413167993580958231746387149491924560294737139054576025149772266674949099191921188962969040186297268203319409620104182573626878355572934124571519227817969770288113703530519533798066560339109365552105983158074348728395019470217342344855472178322862324730582545451201640222693967588693297487287796333856859055914347918698079680119598411400590599975578608313894925886468729613661953998188790855619271923669496854234332929752503751985409494400612407556078166520111844005087524864771176912111484475231120255878682506055177940082828232364623549255129468050286102145019772013902496009015849429049368755308732897287055271359838264378834411203187462827498089251275194716332096693713763728425587706877616353567110258486291286572269796178588413206399368413998203420443685301072933471729345595874011175517826987391464935699610048929611777098788442142500100742364331435311792058187792256461338491897945564671297488749310157829965583912361132362446565501765980488779333486644647699283896136486056812789905513310202492433009787655587595399689680173155455274965839726515374186532084511062308211670655331084784833527068578242659434256479422145974861671047152273077340140135047976047740152116018252246420745764759317732465513173707878392258599268969099250977108550236607191518558399349426794209676178419330564925409015796654846240793725996045597072246694143825714166069224902604069538454440640740242837233714747925316578019980932691685191541952694689672082559339213817472112715079774840097919696902178193287210605701227167071345311650729013646159719923018884555123778237741551520883314170301764350786783762362923065362850044850744064290212638556115218789633644758564986604388904803955056463217797854405549982373478631380621758993129695096727207006891752595900642474192127401399619767262622894724130474690925319817847970541038426073741491880566068336655859080214446921066366420187332584869014569840715464204220651631100562598887134129522764686459876155864288749028993100390861046831919381152122812617360004203390178010802402368069003281432001381973282396670722996290732874776173371520584721674090616408048953427914202484954374107926913459018484156707610293626799130086700180718378223059735358777801573615127832624258071459388864072714968142787415261333484664151490204514134412780901427521165540921206644633489451458718987471382518527982298719145868291084252763875303382751155091861590952463453201516851916621650010781788247192541155884437801270820437914816093260523255556305387634494261659047556650977382159445376404705042905193400106347724542732843755478807256980887719216607033854651265933186488096601555807265297918839115648648978456676940802568134438157373952016041043262027747910957870166997055376811852569498442932837327383452330829995223111426553047971029310372319604696862539139757915479156533767357881507495748161922005559355481548490785546847300629403356107378612151498843401788367686221054729927405755938987410329817818037698287597376344237067880324804681942994578228988432693483508688088005712530179410564738019970884785798653332154415312711081958395698917523074357907582321160693605054403478529567101316876393557801229192484668424261446594377088419082444902349054976063682088188093979866434254826171725071367642633725977784413730885468741626448834261730563698275805680966877597290960846558781115379590452144758497747002845595205191894630034395498047036966609538691858063965293537119341940465159242606420490190938403042106372678354694948961114425562798843780395419555180278169650521624602932152456256921596167777534456179309086495967439373496284177264055911646172779898031200837618491543584303122753346673905280074788955437846569529448979048391421111052640188611967868776394532205324360124438418634602773339249071906205669043157528366322202133622629213161781884808482464773065414623440836562899110446977884491530169760140837801880121599719789443875778550495405156457822372065732225199414291760297575320648686799717082628823338115948292349923363012800018505208686878814134965581650586233241693092769957525075443814972196259404875803694628903981556549070652530586319204262331400939871093619322197739463153765336375611314791292135491203796602120590961917653627456067272222570660681878400054985984524720635261925059446861009535047006241620387772831313934598245765503057405880467822534447136120571676681855655378580319124920970611935953641305426986414208246696181585511546670676900451024692775827805708955822150810251353150638316640511371525125840809339749190897618827198020372804263852622114568206896071398024961956387264182853176484623381923532752118185591240749702946791402140465608558210923360721919019152195730154596546671635803685348111438373867116637360320063026362536875391054920271598814019886173508211029859750696698449386057603844204148691916404419215708631618865446541338041264311919838577739939243028859693950831067432909947517344456615267749430309678904499250046119226455225557479391423357804736120475180395603543067037254406523848896146897516113775997139493578628831294341447091061882952760355187798967173957574547142282806117289142330307977992420655167715239818044823748028967862022924060526809875865383740451879390884695145841039677451301598830437071358588760700195451866829885871041803921024049566734965487945029418806281637334947871340234473269538695171698916497878678336963569571013273133788903005477082184348147385183528438557015801449794151225069332100367531760200565862492303137939872369725326703939417480273970939200927531864645294600133950393308453042213466244862170788308009594917229394878944584437894900721805438626704018793173696606026172886515477101117583883007094173843047948526677228334437783193315332968229346788651118030885607613942491005707602208916060112341864984368680618060891990819529811912446404535771109019436041702465466645317859766344203480986473485112074528101440831947439871940104230019062600685610489236415082460526295627315396736215199399316285930859605966253047009091830369060188208586826712276313336252675011813553518556065524836886358049023373394333957658880097408823504278851806834736553710637851899625906376809749281376928358440103778097680717981878655919112744841917705078104926882791365826231909001746015559170118831913100604662449666341044295658203044200524735090330418284527557863974469417071183756827044605940294057105204684738183540689551146453266651367245171624156123362313024502223958160095981352040639160516978503107697863071093442163278704288481084338836449768453428324669614880118755821620493946536901226740934696302863062641890398941705491541676987840653924219416063133009400266462311493284974875013359798164421187987677515271245581056115682256351627742728751982182537717218909807858805421874450265136248631207429904982741128736439415208841634426450733391002833496323632283222313162612027504714359509750990848584795287335972038991068810759119777607614583190475512272462538030176201819154156742968957289744256114275116120903292255636169632430067907247531174578700843869850780111828080283512483617522452175585991945964365934686396970483899993822280308564898410915826917810414906568189384329951084732507007642824576287096107931240640938698390979431955454958520655678389194196909904686296937441385482787806009329393349199776469288520151923435209532399670551939300744657024630756269385125886220495020335106752688953379932884740220985635928077072811476212779578129270003946308568437094505414658673061154018739413537709509667837003793893214785445532317271144371256215965123616269981684050730396925379130990101318944220887565645248369753437046829201842471716679140790286829288553275948024758101193210104670685172590645686656877927812949906622129676647147680180348931433885342700618445536161511318605277037717041850641372316677132666803231903570054740341132729992858833522410906640881423727352834754687440148440596087136613564015399656395537842231672041658629274560955088143517847584896268763366870643022749933370330967775368564440870509860939009919120642836229664909372437705076711657021878218489417410983623768054457496317282398040410986831742565653356435169227088965557094484555248797318710988555703896545060926396703540837048339583675023466244784149922784949242548475079762737726553572471065492328378583673063619999726676447381757467617523083968975828135330894462170300227566780027838200330837129150727166098962890037076200321679062734046733045707530390366566883138188647718317288694229508819801532732683509186307426685786934348010964677832945162586826513022295372197214814942256230412904326831121943642307834328038606267308976083738435067824838285771617453395031744140015271522953472133889183667744492941232163855766839087477086615268752369958620740002028267557690021312421002454366929942124987056898718082196574435347128310503171949913845658161675586355812090453204736657202024698564617151509890834503176294619365133305668334744470939850778129681723546160220478229672952663828403144748932615625299962564711901444486392053899600354748962959287458307077271034804706296916065451631723708960986379719913108891761299581784886087015505489178496245923582146124459899770407070209853888737551630346387915761733854208800883061488372070613201644473298053368377301718981719746115400928633863445630370979386389878631835876552524105898141163516901999679025511500327078028358596462965323653696981069846004108803461598659371030404288106373691528034487461583995807988568153280046451877772934193057799355047494743989852012001561859766157718942990648185697637576099053902242922208470917618434447365039338095435987508759288221110821250276001555986767416301022102099309510721452476994013275610376818764964911462619831844651494652181726074381373357016141341691076750768671631376575814301607240259969474680327742887095175259741727128440177597424109666106324657716113609688168653606077234970623132526230734539612849939604851328992874651122945058795048396429755096101908767741934976220866297117679627673564313527779434178657201005672360607368881668746939543968590138956402641376988353089937448371370713330128785588324210898294467736387942614540724277318049683491661016024047648873973029595676486739576540002918960680784721355762027855339145668744269680646891764393361461490092771921700712086966602154349416786070567932299844229805873097554286962093351320150966697852192022085215835861720758285967425310826606603918060174095128760183310643531256279559842583410069790229421088502505861025900877853974595275237016288496297523344943201846712317216639912928323598163034366154267442508965066793685228038356963409581931170579085030977203042290448271606188499772803160623664486214630089521534167904461361820193564087244377453460461644270757158463576019194868409077329029168994695634769200955202889502597536555011795318123244485925301462007408710290826982591842452633997459096992485299525577348797793442689874650376455149645628044614225697825705904265783626919644804658455422814785096099160324855592405786455350845517192160784756732069019551064497366595646803751425610243929763536707719090628490184928793448564309780269423219698581754309466632671597996347583746739106801786074514332470625089953034277708798330483577598722765877014014083347578219212325642102058111688904841971150414442738412242774590671939474742549030203578908438870059252789223186025664546442087187451052078390819646583909007636667767845122078552298021184161497247723914087809629697000644451567722405000677231779674367476782193652554969319910056262612251803558700980628585259749064292200912389424487950698890594433982503196413453672384127674360562981422745162186539976346041007694755852637513242744630015418519161145637857276944873917440246626084781966526357413974571696613318583833368684679026581548790864088398296095229248996434243849113402703993507675085324870474404092804432798014782478222294918227535264464965968410274612870162446058646529646439443247374480354711400479673765929865176818501916007994421622951980831645501022800422229321858228649371526861107579929893982158565689835048823152757665589361460642442432394076519565761658958890297118168559786644695566994119747193828627342475981299615986372249875071874867366413731345742795970762438154388847155508181832749225100523755187627997929575166025826218688225972367498818709745826428104814976706644001044830650482932459671555376593416606059602476754764596026737643965697599147637499793506083705831298952893856378287014422269278714520530648357096973423808747238484286352214953252886440217127481738418799626855277209715596887722792844964843404787551231450054125685510466541019232703107421428434290138773510701173224448902979643450530138593500215414439274484869097111961192480706530310380214342082933584786105737190324465908592898218284297845455695335391128889277398428860061723069343817037396119923967076257707392660145906417042443761089980279004196280167496068219092026199382304056965089677176433196402555559545971198292223249202871288768023564833504388808254828155204121546583597117341683111985937308190394784634953796371364093001143620891953554531491509213639501517015033852623333642687391172866863983440396073033073284389105378333575452870773248709869346078638731562007705319178522871464297422677469137868388715051785985327722656121060034997978243292865610325228942163182059830137100537154246931836351760477385768249790261652921301320908079476256330794958227237107555153133492528791968610604643019805046298628023533373625980282922715996256810515851476585066000262080548209738796345149756023422378594797223444374562500789077220573904628025499769311262881106408124694374084423906327657092023636117768220707443788586248857614390464955369588325536752945713331867629342866241381932509751408855127785187252508908018692393044689160011140692850513048599525269921428749730771171803878232723757821940771516253498905463904930989876224316409930819909281122437126717862294385660588374317304156700384665809630798417923714525268239874247772781014264964811656779396180654004574957125416891374986427515260647436280107993564089504318826014493911598550185809067522955344425737703100462182757959219186389871555075098444091404216080851272742166329693167343512038551417853814151244461171175068535402944330775744980073802104731971793293557032668039394834461953474389911511483919283683291741200505424466159978671527448661979719795698536193281411796277979297490017834792783776724647108655591078397097828171147671320222608198909356390782295759000252645751328768487068167282495462015389158104459441178205395058343337259389481190737041180414251323312651717838820383251997880699364099316828643451953120013661064973743223883121419837332509124112442194634644474600377820120096413127337710864019135285767174472056273025009950164574878437621268431389311128846155415703312095242016289077123267479046598202015189688518375343584335176674389354559790138521603485025304649705617694783989600942419041174280281725619587568335260864236649701005192442437773026094606956951529710523416603651238120649462016647181608318977033593225987148559124119729819163858486258185469934017980656522920431652407309139803024267000283839158327835983534700611542720399844135207325022688148353836436450295892207028018325100254807595848201333032106012936955703765618900109332065067617070164477068907505116986377852949140969739937333049392033629063206994399545944929331440539480964176919606878822686298674115024902215524871060737548981931724959681452703726703765944632647076206477139929309440917180642912084151356969480386867353205361697450150015144558965859724720962855865079195681270814958071652838851390581879750180131296424873431184842203536180736206109620464672833098104057010477486348383686262943936662369272613297322435869028877019664263061054998653242762648997459347865220723592294541583207723930646776078966121214290090299510770896453504462825865867971584114103758871922576557412967587375234875958585117035589874691753655205922367082396508881101901018054360500351211268693939453074781633542731764670469679766210159188499725012211139272170883238572196086955917297759184089370643987427877676079058965839019393293138526942533700338372626766953702326504302831466341168541627961139871053066214236059770303386837656577926685658568745764678345590246197032737233115564682741060659322777401013306727350182312270735346002270845459862645046731645232920497227408742334553608051857287077149406680090630911511556761884003831760601971922088242911146967607263763956153536015710756943617257901648235652549350459439531201689299256231758202353956641112555476947922441338116619278322026635350844195061705275680153389768500261322431245460640347999890649434607595431826024678144955841203952098230425298120576490141554442067010210402980361144992409034806650144310913828425490464165305190559471504122294206113884523610775519055258564919394596915634328210695579186528228402447210715265283332686915618782073006235637348185582491472800758618918807238756232604136522004290404394859082307223580183899311155990478774386283488837996280154642290912864722104874529453200384018997301545692698745974652636134779045315197432375404010997614622988726455966005411714840348958492426794862139295859569929416307313470864291810694603039884976129845810271874691583701599978006227683677085295269345959871541204788597629074621684922912584900986959632629368518698450884280513902622396264709476763340753206003078241452225076683496693762176376812256683501879340199726467462089246236775125557520500769943059036795644041535456708537920476512734548795277445544959904347045415855263821395074998555029146368248704613369050324936712668491706987485367639136477044260021165797637621969417790850205621778764255564285951547891856143194316296324963336717967356689646588248430100919930409514893568552112063528814404974528655043330933482005457488170870534480401008731070412144352545931748683780534726031242451560572249592624279452918587689177170638291046904405635147491933328577388911555103243311558506980247384870693564403201090640355127319244609384034062717940795138411332946291738819702222739297613659090172105002758651949987794996900655074291318376780211000140587821956085985128932026010920144166290829168393698849739039078608920719101888137778758977508316907300414425506157446909108437917817357858370134685986390728167335524350873986940950268064737413715188526077456533919083491347336894815753848429510626450006076594412191680711670594573152235116413991372572747883135549260506044635098466563132821222674908887307259993555082296665909531868238050766579868401467038419459496938431004212504380043238068253936020486269043265833409895924428271282961605051052097966123127952993778485057806777273020150895581278467734691466240537022911154457053279937997579877122779034889531364378028792261041164632710395985483234779685065859006459897129045012373557753387938580562248154991531966979919053031980263433947204508699720424841137905289608383810965053450475482319760949845899241014596565265037790678507402977700662849598378362884480915730695053513250344539492810100849301921548670616398238296380194912302358454595431935520151445324320397762512985626372453113020972297232413601700938063587214874254113707461104791454200543938694964201159254262672872172269198175449236617972365243425603081359894162847326980334070670137486374381665741515472742613644421467286104793350527896216373195217548855175673717996398983671954374471036980714286566129349794820384661889436974356282578214879781731972647085277139875481716741565745136003076898131066040036652020706019808481332369296395326314450980230516384176599585467312023966272268793724093063401449805848921894108172883018900320083680808800150482591198288355020144905201037386617061276168112971704583202909799960873424935251689552852388154049324087721829434528458638102903366754410301593038664070621700992297840020886750730226431610820568918488539323122360199550100658623565899524941536657785220914287106947457009731512692444563371884552145877923543662841961320434633111488216052015278689795132246532161417692695513968983869178352484023540791940766898822787007195342255017004917820256908526180112406279296591409807488600795629159787150397624584005700580030672405316334521786348644410161178722442346041521813908569377253659952798808154181321524043241253086504528651523524361961228511286081692442854575964433096478459554113726977469874018569464846538934956428864372848936175617165083183195467000386415822364145378996039522015840793924979191693156513975509609025700944773159780181726802051190405086218550100660919461532458267727886359199181186586629355171489727143132765364313449785679027454164360922064493496568550097122738237430661497202035045248278186309792594886456803918935771179160515481575320095778980690135654152284291518323982576406117824707889597066750381616483951523476249938557631074531012031673301621942144892128977383912885062599313018372762475987811279385317045870188163920195971270842226022168190948887854213890923529919442715751904476569945587732202055119332332146165727104070986866373190122076322478193140933615785012948936851310624008893341807092655926276393893558509939987603692350521568314348147242818736075552247751430016322844841675398199263599266406628566791036311566608655815750035502900608941048762130519545464418764270127892634901725307518532905535485229711512050289071430976015089029073047697551114287864221241971181150838469129669162900624994720169532899286189468735762109175568279861064125919196521576003933368232753792526090197559576962620460219777952909214790257323887094751302083440310088563683773068659910448974557386152489019390740907482266908510310117224023540364689290941817738945377305095558103590022978518098426383100376847513441387256782473463441062918058109865727810562185747307063329053827600533226914360272917857172322848605612986160996836327107330334271116116814677757922969470318391487142067609587456112661489537190296362343353059537078588170400490947279946228506260217106507247271985460362750644524839039747344625859656599841467194341157132169330567980109225203034105287213188162376187701348817328782239264976570109843122351991858855901784011698708029914118162606699252140630988322197030277925087417109977475985499107184629263284888951935941284678069995181258138046414985124362418664321514921335058805409264316731865793636937567995828544082180997512521060038148289349147904564861017549094397548001221767469988824063060797520310836416468446788428261841275836129077156287957971341568931985205899617230529816407304127144798010356243452829637884819811286807893523782240853131805550104204669408768591611204460645109305044874224596809228207327653501399417955026883759660727982023678636847754293767770168788365501964611566975546430360998978755462962630657560964139779582183187396442224042901911867400193515234107377842814063437688583682060549245682325848495976919551379719771973713347938554036258145911646538824759820644221260472255764157415520853084665282838512288085619494471512499077425578187504393403955463033686988330583118460544001683721135863233323464187320249033968004403707234621295456123399213732452179670788841844215851577937232274616026491315012611591202166409969171039420179243446428491184351720799619565280553968400133703990479973717644970754185674636044509683768391727247824969554198324485671272181396748344389287591783416173503813495789195013958298038949335813489713741462281967398081663331537850113986860416077389043766890247503620960435677239225592147035453813640787856694183262344893753150789842517930902122134184799419839514914549048580850677316098422717725678721516408383235831395624761984347295968348688113548517534006433832814985309101457383403528230945422211125321267505908400664762831247810752066468791048193740078983555412490966501110081581800848284394372907303425273411424784762327523363843864112335926406495448311115964380502315938810194162325602645096269567140468540205780271598092107515714030799526779396474426418659604874920036330541422282059333483417130525680693194207946871566525080586187293748270408762786238195235030231425747566095824392024296098531092775256108163049668776653326306931956323177499905200523891369662868952906769264948160322182537987289192778753410488120419405806805529657121601018793836853838050029866803483592697903054610556549413123952711009902918846939482979297913025768941137623105745843447640911578447216817693741343148686532403670862495308722185263050867649187312381757496384118478405873449209918651056951692037037177880646548005572813795117956359004373805055454376643284576189947982066874101340453188033400198880298388822188902135634043091243194898906945484113918327719027402916324593749955700255143448541961254177205179996724028745784050072944244996670880306263019221457490651434041121786106312924121451898105979266697398095767831760253849244978282423233423048707474534554160263655706814149991531165692090118917858738651538240010675505637529147309076358290247709067744548527560793136508755077475222649619332160542000926902000734533528536389645226443225839830310496258422925022896307951446957867518006276779569235025627206916048263473675149883348092834823137978185540460428664234124484848073189149514905044588852606987243010302144720106698083945130174182472351941860598088467801568307401606023575952304289763723809802396026990516766032402061086067909706640668282296064841855904085821912839613635139682707933766148642230185452650062055714453631603452833733767265116684507506923407365185501670326203967007313960237198190186427532505782924531662952129339671043095785730221962917439255264535078116789590024714312238420372165427820199374815665118943304699842211683291213747369021304700103603580557619708963688262899030311309098529906967494262103218846611721846831975349375855358631264032470774749673522744612901899390632190537962610456295423365078255436619298349510912799309747471219282629581023283363113691237088404994365821884611759405378554902769457761953112259662135493960923596498124705546283085395798504307222491255634653753528806856547810008953185967490908393678724669788732992686649440091336329813099880152627540460185233656449355382429938691334756295967607193543818716742627565889358809088304315856709006668087320334350016010289259938112413077101959694556029992870471716584895839708371087280582889987300509427715506199131744353824393894929907927973965066929804043730818332995639084523871728581394793185022732808153954355162214287621919895583478728074882402383186435220349381687443117706462849442196069900311403619044562497856842820562691210682702517983055588976844458980360338351523921892580167160894978952287336946025747516004028835417271883216357377606440992015349362791990136860011121125596512566166834041849611066122975153002139848329739915969993480685896747977891060255465234586674182972303497119188447909364863783110011851273337173135802001555471915199836060562503454260358444550609368063576741097403946837949911985909595192384029651209815644398383312355441862781756844436514447210158794221245749020181842690794220618192163085613498022489219669500668027398584871768969337278995302591553691823717387983356423794993107923730567834233938829449881319502457881643779361369654895968114949804269482905849420331196939852002421762544130921925296851638086334139482232568330758559947207419223335969601028769733551404856887616801017952750204244643210001549691843023730174612285949923615254676818325796009329950481542016888040886135787832680596405634453565979675766066403430304861843149316372650831254506269437140292011279263063814309657170747383545910184652693995697130047226867985455140567258712017239031476542877355432000969041561540979322967860703585790259890074600407717166883588576441001849512472820617387379447612178313414558990471119330716381957679165342217269649288660938159784571573554915082775655068966146860237965067752794079616868091855908589753729611355557332595428636888703600773983784878210052868915476533947090770838223686160397758361139225120570743313793670667633000406390308239603757597790708770644279503492090465254772064724192612208669027438306727799210378633399787191798236910702691233185199503559389538771145850659132899877022803824506540166743985367859416644186067353749995500839706094736058509849345344177731223831106408533686918537142670555529770780985380110620405589969787453590633314882819238070794285326764573650337502662328338124219719987764422245707917584828804120615933513280255124868769649334575823628192352558583430049102334844582371470425462068110589235501689351568662780286260687828972695047364966066809688716544289257089308304631096214938600953683376510175105935297561694779929925105713219355759187947368317086582462329705463013191143110419367106508179773029876949907222417252117203715580761382655006014162010830771087218758035356844330355692040154241183905021212200693781263862821774208033859389322484324960144129426208593027654510224515284577471368028824972538472579506540942430910429537199288725784413143596010678680442287824985591972196834051415039211301059649874712798170932289596158063616225190868628833502160353364752807103212833675067262101242044152101444491086812155478764151016415405574555297340091817147789121567751557954413575832839908291042426347535259276382839894857619620352951836410389606766366559598281362535123582026686741412455771554733860498252287950973877689556485150190776918959775684966062941711398079450361741514148289219333335252082899190711067920491653121358247772535545169214909876198126985672900267990358342293371590016572634266653705125252641749665159037482621967170011184034226317515773738273585901459604146849502895972829120423594404637555291344934644076069925305356798567856329836368965682737835015081806733270750062607024533765453925142953878195858274238931612440988713267328371390810060087584019503639537197791515731435273541780877754236546002693447309304508787068688402744997846225228316686103585564984420276378381559053906176605813633970336199851617819092665783705518355675064684944902260599016365534279919774966509056043939043131136294011805670125228657350212159871036449590487010581637193612352609255607263128897340510104499688866415092546386449856746612295614481184111187121519662855614790398534531170882510454994397821295698039706344277008445545385595496804731818626805234663403458134976866078047399841076781188183991549062432813826630101015138267591751293627363448163826487401271782323520457069143800294249806718935621251365112821295931960123118433023142720053578367999633692686168699130855216196675274159013059438379327491949886990342772848231754182668055604644037353014444125369544366067606272581744607666486604600665104473202686410491453057229751678116060993918231768764341145366519132780926437549219160122750476701642781072130167517861581127171033781533510368795341234420319939415490412506849097170533472175917406133575712308918755438931096537484463770937774315037948333159581822622588355213015784031563734334939289163146529945635788009391142396030364812379101704133141697315154265567069538845248059770327873750018655705070537350608765567612914922012912893505322522555116089089361866202150182471288418531116320709126305956175172870659482187656785927532182161083927972192620380551475654571139502266391318544486762366535185947617066560395282186650791545815510064289560599301931121681967257919982409498983033914747583500997109585278086384190166803310644214803600204957010127902100912477881262251111526185469649531959171653611665282921687776665694408205256915850665829258896269124052459082814829336728598693680772484689109046552678066787616485997023929538428889459356980381489953762154305709575617262382258487156489329375681708164557057741993624605131240616658750644090937451081092664286690463913750571434670627321279656188788885253497611694218196854524288575449249481565530059424414994388557261799871686292859870255814538069571674710846113795752866982516543622152081073118527761337761608060730856139479700782553685101819169798113790780120304552825565820327868713616605336321955579195208481071462512696226368736730590010483427456198718099416417906653193627137826114146455912806187401760535239535389353618748823327093245908126014002786533384580504096593785123928598243157743947012824581861574933815318205311967262053472184289167778398123661398693258495715218897497062906549179346124277287015827116251710979353164418199720231334215664198289044867382549137052734403564755117315435420037872594926635557889930832396180625514258907049319525664935759386021397308393512071621227144873444740710773652305930366641232998415987183228341969219469756813962425842237137995896599197678685941240989515216980403932356089462212837924155537453823323848828590490401796199427464933774653998006420213265818824985851842687531861852426138572463004049420717028863365660447825395074350699084682333690209371791539578940454882536336025715276848658580667780725025699404267600348228297967332053085093242056844015849239936927159912995648257449835860274639399919893828003868136086838373504848063572900903513047061204632555468776406389207544805573579314256077365338060518264404639735621292622281844860832997817101427388660141623724003397318660895205217910821405006366696635742836210193625014265554322478086733650987056712445309294663335314484915198709924120538338269540322663118863318908001398691208604896097792582873716938357860248223810142787098572614335527408025651001352213182954167236508682179017178539868954961054452754089951695570909136038282669049695935039375224239491696080365786346864967099803509926227317578689591033178255381487038258000274368376194873209577250395768799309718053095859433332537038318076810590336667854840373996135025720713547149653198769931726610627984208488028036909537838417186932018276912147866984626650635017380417834903735036865533109411108634869232854448570755399314788141451445917271319244624813501420492814477380229276315150422070381323813176238654370909067352123363539389829619008881331905030200635767600945109027793279791492378706890954270443545872984930822751323861738300121122086832024768697011266378442484298584874127633735138986280507779972519859394888055715778323477614853489179055367889615299092921145326336151243051196242972160970507181516425613121272092590260537074661387209135428207609994237368097923865269844223677315174283961759581401478971058480048801483216509820151172798293560381704749140631076234923155112521126587553283286712040819468131433929902218774326082889451936484609994027577883354125222645261547306371975188088095304195691637438675798545182425291829875715369539412147156326810464455126900028008794907896846729090832524535114664880563056316120212127602958309874988901903486511287149424750412771751312972105498296441007999192857529307506446210155113014710724611104401791851471787411766488287414840625071673733765672285319209813277702544402071784425035749779674649383777955097317021015954534033997533245147711838542192285108204327657777564499200928031676228752332481357255871541503549989266313387958454002287024256382753919428966479582217660400008998428545166016041704434127093042599960889998094035431280684798987235988775017745424010982132217820479815853060977533936242298923760422417960250906547020656259072201085333014991213463033623997231921445858740182202902989089030543766068681886545211143481982731127621113025571840457118888360223039752294727872217936233691709159580107916439814559541398497757370343748109424256242087708188857994105721135961112765287444406567778230401101065895593363627512724584976936467380165573776423040583759427787901619682346964176502469759210086468967927241405420778304293264209961029348053380409516907310172169761918402706429622988019763095790802558434404182109377807568200794014191128481696130434878983423122988602739532746239410038315638616898766098432122300024553841785417949539529938689472317789971432196599392332049518307843490939032400784246206676182344811691614232887246052259112196652435525636961215585848111820866597177718352797437503397664501498015648084022225990087272781195655726420254189959106906532206015223619073647690965146253921121515427969176281292640364441053272174927128642842673697790390553007189954381326997182503506413268456328985042828549800789877384508088236218585864313412140310778777278177088439642654060361957832417313700604400740692592366292147188514054723617478250668919888373078958007192274081727346694518895401898050344503774021270122776229145220703170277431391712240581778112977622086495893649212118129745495059880663461386011797771689527305562154009717565482055273151631652857663456621615872857908649789088590809706563108571849814007332106234592418908945192100741359520955572453269201427805643652183243007614419231165208350205523755914601661593495351735066468359535277441367107463994855321935035021887487021772296934082555432945771293548847800939863753408443268677187930709195342188285403116408008515258735994887430581502619061732821058083959816293486551455313183651734618994209498188070956256458050701880571079265114852609138882066480993553455327756092197653210884115123341567090813742663517740700832469683830579293796843838864577480201249557163893661591362574976915927641238695977952822142390587626998264085338638377709867741576264815982395978241357705735189323903057608151176780376739667074279979950866736395807997750319950505834927986153174354141209300328792944696923948461171871599756679280267036876039731784583518383225755166514853469503404883557293947619096703556229303034269567466781887517165395478989010714089697349904678018716260297158469851137905915204829967099494198254923923583641473840482585140715428234806632519016252530255487884427777430919786672023434337357084780084676804501453559998703608237008632826383714848947248494813295139651549134731965532752049931749966871496957212921297898263104162437707681332475408206791228235177419627989454454047743376023599854987020612394170449413140093261075294540015785235911623548531726100627384913454114304505607707395399238028161670994529527115949850565968825608636075593418469794029532598059801651798728744132976344279839040763605897597237603395953120029234452038874167565264936783154665259172451117650624064230990139500658530455521248913983950602097747118417057772913990707190399599494057313296600730501312583485810298939562043846342938374211127635216022169910336867573210718848608786684718311671380987835349440449819970285185521814415051589771388316204638924556638767330426476994965618577625047854195672870502401762760605598979717847913996275474167980732003330207363461458254352005412090624178102737444885986739339780138799564937497745039961789040594130901616908217947784815892164997263000119117873742826237525980160162433576270698557506906881058336299343435898640465567922942618806934977235953742928818707597321301994821123028762047281276911135876733576102116827322946917315582204178090770509226776201550952196737944588664517823770129144508582550556295027190973189849761151993700284128736957888099792136996759712645453532466524639590973178889717239181145136077780364452136102908511951098376455270335285106518410729824077588293038571561117698590743851016696069987216200057143686692519485857641866414666167677858522403086028567913640785611447798690972495318550627416962483679392484691352974908387884142595575812841416056701896226461362220763294186734489202464129180918013939656443375625877424621089039137912153712862325451164330188568592759832205316651158415182405099773715921472370687037870518818011644242229787809613010362566997477724018746591980641015211650159516759276856035917818607615055516271663751571233440898512375056331542716076799104916828130965315886416276002499231720904075974429507919098405919496354689801281989885605802665103894511324052617339967661960630795417169507090004044961280554343444168792432198651911835194357962261155702350890488316273578307261331094634203690684329313514414500334064596330653642298393835156250293090911079525061933473096952913553850656971006613346434440674216597556065078378186778725791049121925238998857249169652405385196896191522385427105759223330091996475974423443395862506780696434686378470292282230358281957808230633384766421135462571534350617427970534027444392277736313019714309392104725031932816659945337700675426041913054813209452471309148972010338958750262882335222683331586718059007271019890595406026780904811568059589764392571756338244810625093351617984800070725627622428965384047105506140889905319745717709380730475937484991024836546177058403646967814545146579625561063177367959648303829674682429623564911299767377462095318585465780535903351217091915921975073942712401386676079876581489718803739493458717533759504511931235300248180587995152641182579626925983547064615244482094771868065055080106556248240881649083542776205277117382296393956096755170291247023036415182894164977445298137557643638130324004649997164328951376674086322077313710623143754266489264191392129956532902909196262783559228634822059454885904238528434388224616862692983374782640166194469807316398379084488648664755038539945862453653934432840422598770977714890291880350934255807177614016407742505038024747384434885632327824018599567433209789369215726870930015595372542102775247608795821905799421533560533178724999774983651224679315801867848850439248232931041994152345046399006664508680929626965110638292105554222612476047552586266065472515572244059389936198451623243977296609807403144230283206323923030460368937844678555981023171898522339382595722896199215268558696312947545879977533268142361102696337132211061368998462859384334400805555684715388909375289441236381433158785792625256724340531087887055386214341170071351704190007851287074088197516545260343060295420249819037315046123895376674027877436908103860386205531674567754593060727283133085482469616238612772316663400509594531481038163119367871906953162626102171153178611947370020980424034235535028760408908678740440105167120807422331327779436486510846494385372577247526345831893020627818844135783164018272882246728383821861488110943921229780621906520305013018411387316510489914632648572818604946704220010427208072623282783861754426698899928656275355595702862806514247742219807882724175817535254752887334473219293575456701476832456070628493039806312256295504555617657341726366598988923285044692354018840313453196964803191572841304602249515614426074082911689021016631442633978168147745073445319424339384396833564826564408710789570963952681826220491324783238022288672418723877428386171700904798005097964831338788934880348022048532844742885074202363622799382992669207077776874996833778891286480897100090876735901832124942754899774677694808273550728103550690122858420100914674970451303979184417666564959179521612733883339230511989089357230680631903053408063131188894019307419719345545960766964645347919162255962875081001085608118892825152226281802085614658992318806182224823353530508932764429453556551032588204257307463201908831492682882808122569563297661799322301313839781330242151853591421554501176402399283127515221683109576889407204797867153187980138063086997696776237359520165354623069667959417735237190925907912468948652266183265831636498694102853010166464155129024498807091325719869664065979695198194364485985108571262768954877751710582807821592968126108913559791006947799150438553605807447219437068173277354607533417345458011607530346540079786474809601235806886464795715516410483067670880877444441158323106648472789406181116995904240567303509368162407381986073324585567364056966378265026773639162257065794539003494445623562887629000511382266237075655711582085085172108215470939632720458631290255613236564801048675411239232998877783539763906600429097942109756042090193915341478392364749063506685012121554276652322851274820586399869142794437322289554546961662360206059708616439539676117180615849888759311875933434479385483875679231199747816692548638090434613983547206880800743401298715252560578998821991529163963695779409706517291737311980407152144536766181356366259369744249088907098780054453092162874266606282874854242495265754508014949627938943145274325561549024661969941736535404354837889303679775190020288607616891600730094319395515321669924406085840280264183542903230304064094228648879450110501802629518513551173799523065669554142738453688794423758390421822003103174667356440168964763828187082330914373452079583580699619910795510671233977577827995820728853395298428174064120682238393614946780944352925900641012341234789936445636717404790856634487477588724164885149516392250702137363928362208374723816991230154919483920644549779494805500337312268302446661829052951598018919878210431959502443701630119917679601487546509382334379602054277924277328836046527665807191104776331102557308155548099368379516297995598021469910692985349892983322490754384962307611288977394496377328114140219741541478009489559541348416507529828803244256908291838501411549205064990734675607266508434867436518353350352735847160849560681738904558333032503076363500077031059468689758860643472976031944773711341004641342490796120620299811245980678305101691839029271774848088122536752235337725503701528947615355492421190442869763398010318920570010726557446972426940199577993905786715493202135614659879850180445187391183381451391764718307123333986972987295157904262263587106285281755404019651840998571848585663523700970395429537987693598078003360498120700052355320235765297698808652947877492442570811024283829256676357927160630134891770123732654944826101911639785075717863842518901479881190150850980881326019696772672031198168660610893241761525505361450115701884138226672368954637013500356041583703388655953565470458373810162821716440497665017249587115316932867860994062338785352142734994054979412216909928221925281866748727731538437505873038051583229896667622665546293354481490414337754041240988230518741047413535958573903224335722628341285565992519425225693874811842128037076706216959077162444989200963037327459321717253975045916674600216942690546984787300073965716639840650453779663726747913918269701013082366330067947326042530094705835429128091200131527878352772343168646229625139269003541317918818806492089110759359606837065371807334701108350293992518014730605075704084370838665878913301917890451556917135640989334871643028789591585152160316297138054237431811058333865811680072066184684678627391338190848526069454916306065884052601906871964482524329860839948089833510968773641943421140404309706932120326598820910714043368384875551643759409111809658188763907803313346936418724562738589804790520630500742308875593424275369748878342175042924073952161155561719360115101346887141741452092938763313728178590973546666439506746483054640044902807685928621313221779138598483255995234571051901039191507816752813610198719575346842893392390364335444921362751066523723647629877587480261339370050607350659268248132989858416011592350045841372243816854157061638327232419166120151003434693860939417011131330576060270022516064951566042541835746084300693574345544088274369548142140439840846938583977962200124500767271496672865018174901100938917826691835687957345016571122932270799368700196812713826885595107878355643003879508643995154669547810730867699310783408921144878693631610583915918646717948209917660042454825661902335569795185647636020814104437682891847268304707453534964322355372755698691170100155532132627138121227482458392982053759257922226227660944638440996485419447648231075827170507155246361351791843457743707061429922643901120799968196246257416474070742539568431270308993421845763904862896793606742938744780559032042391874183406317674086201074363187888240029297642629915850395528416219799271886680236227322672148126351607652665912961667599562056305119176108206470336354800213335730525724132267379539069481146517840522475668968471735573439771877580777468735204772177774111140651294104004726307870834876946897663817511246693177876756115436166609996963860162339799112952669575196308517667829281614919686902874986796552932087870711762284683435415192542290754838157830289934717677774488624644048237623987353616199734035175356650017688612804559014802136287287961425787831785680550871958145304024039506256205033317127406548285539734343189390685128813443394956577135753917504354925300606354162945089959909609281816789013891134395218592731593809282850506776368574822064514072601257146699664221603521600716669722118872604107232706607213839760288373835319750416542263932926413630145769995276613652660691107523335293525098131733022406469541532898653139981404270325002479810894992063487392891234510847729860452325763299205187192778012858796544007910442137856961270152185937382753512429350325790666939043391487085737232420323251540507906712021270060065580235078652825512459748626763332214410540081785052530335936215493953320819545816299891522021080060857495092675893993274938333808388779237991088304731472627280078270497272521113607608546897999614502487398426478046458068723929248926485683372705796517212437886760637183087793074441425599341137341234339828943448181577070872747471414103595129947623447798273331729487539229103984220171875777612577683297880255812624325470148207532539839135294942744298743864589470351546885524345354187443370159288698831273285845649357409721169072808881483219063295981498297807797583792688403480819449729224493681240413945072705588537131779090056599800852500062971889465357975339519543813513293177053295633019050467729484771839478101196802772997750730088680456614800867391435621882999193848922979516029279909512843932427777082979507007909430827499477084490895847210125209822941359715684659280344401552034722137546948119167349662129450586455112146644043817673359604272381446318928259917784729465947863784353649217901309083698558117541447247809292828596725061673058857151777046277206508777004057131015340946415671822125076287999855362681917476519151743211041725887867985364724434614621479093314143488464121093847358627371582694193031411222986716479413716598573046549439804181447335763002413778405995097144209534613063823008835744505488522021428045043144140289519857548113459814036139467287740025240656052445938265340162163777335414084679993899438268982298883344350952099514487612567476842620410558361798738601145002303059459280315510304186268370523807381781129898131325904526421267783133026079985502039968689739388667122014652886837945989182659339930755992079853380154093547776652080695755625960153612584979893884508680731152306631123829387924993144935871192284384278474797526716794182334347920795791659133298930802534227742498475233832695135325666984017080648153583742695671516976882373628255358903354568397025834301089116883052390911118710966103341236185893929101922547544581944943690652792424247939495568946091506495389238174955098906363671801266743687542760268523043920102855902819474985505473143580657764427030855768681614307468665225338878830807790545288970820950138556159902345738629738057809989141891855182640709325398692748674774151113799438232508306104695641434775686907886454126160683522206516358706674023961934196492637375404139181705647912381335429226433756396008684641795056649262954156918877888118994892797989377449288506492380139734284628875894774938243166029576478245059707546784339591861139254749301219382115981317796452989620871342030272137570310622385235426151003710140085332521665899472414994554317126287324012328423250814568307503536421681790106674234639455110811921779237320133847551847425989906077569792013470281416984581782849563479212294139577503456007706617520977133677343640648977983637912768682420127874135799438285600864705462864326047207268995096943378713759108716978976872252691287032850651877298876452311667750404520178357103710904581483401267878061004075213000917636062912575037785139869361065513696597819037282192185183348886171290935699105922237707344689242104923761179204000550884840950451499201167566294460520403764562814930595920254735540579106873550730550551553378020756825290180530214456971322931845357443207991032976269439066070266910606711687369041355841088467403983937868769643257039773543858932090499556748867761575291419394636655059536430743173979779912200216701944827103852313568876129674962072737476124385300222723568975620842022393274275197498760135091977243293006905029586436597441053598221271374519377307242066659036052203220892966441155466455744974139474342151026728276454462426069089042061156844995637951164481368067097250408814564894399405897767850615871275022109030578189656083825671620708708655398528350455970637278794684412028420549118201516223934431287402189477440379181713595898747944726201938020188354003243017372793737799096145436186120104143879167580304278389255933311290996454172229319860266533951734260064376301612021310132593131236142432904450900918316684228582247599310806022464994565472106382088639990443313530813865003262567228815255769568120681048394145339222788563392825500952630263353943379841063661471031823723153141721464895769321956582455446398145386872410320443758733789647597296845046347761324787834231397108338884294774382174967796290578254972747183015783638348230649760579061374303447375575132151933419168784364582474449437584796922263139850387977821904567599909662476872489494597571976795409182947229996027721714494347037148806433192002919510260914512786176382513150418931309720297654596541050536706965556489224813998128334683807547542172105455043226764939882369020076605085373441281566105226214196732074490625372943663047529137885298146885927013804363784658084189708027109180546158331896504854953019766856929452552363306416174102126671780310884897631565284141471720291994796969011382304559793075309162731321140133527949985496884981363929175076167648502815233727349577344154616927729320150178746680919154846967591508206665631059126660456038858588341648279646996495999617227039938980167719526866259357122739619956297410055801260884366140248837909903974176995047312744806065449154509297582688488387242404705233923044792980394529694461137569328198586752093590897423407536833263282530613257933705507722931181833433260953692297982784090848658883178474649669127058495358548432268678814856546786786586427339946798862702875492030282094238681751285230223534783608526713588992567571640536552499215920841565976533565023535636463550528346404734358756842587612949880058167160329346274461929486396591581846809810851339489027688753112610917330881823458352189074575766270236946685287376302591875540557712392030582896322256864421306349073742179712063954279937656627806815164026816669988471931664033131691976539876050622900138638836796010253698644626722303543591419843999349712548205778566527950836328386976132700416262540277139787426092826748857689127695836891685170457537132933341665442282020575920520907045043957826764630365815442226966781088838412896563415600748038256148678983996064386383390915720202546121533445396113158875233324590295463234106737965108808444529730622639772068603883442708804611322787844358803752224878616145046131569919241133334549607033251778775442520702603642524880692737033969341301515634920091115624143858262682451263415274647009587495663139409362620493731771744398257958821768727998690503780164944543730699191211425394405291919239730644294058049272785242389356098306310166068278830464295529853213554120112089354207008276764138347376929137027906925644555954416595618411796728526725028922436166320231851934845473134043611620449458695049694516924246512950063557139267659949866672110774874907766103057367397939560987998093433773410604038906134046031655166475179294594202339749947089768026728626073338625067807947946457029670882468482042004818030989354147950380640778002747075248687099800017777931815078199303254361639786724830602836657642446632844341359387948571837624478177181456917218458240138197571588352520445171883052379109437471253083631331546899307426594091930563148818772234661408032059281326135330625484445430795942664368601433342608905856957947954176701915488305751989312149286555992227919335904786976613986727942469291201920334536399693615808263785606369907531335869951278688851796065364524769573086013491937658182163209057111998904186276478364400409392957743872470995892371558733652586776889628596845398027843532437552397755971432271217284300067225834470976509453627228547562206323127956076598679382957768016999008788337363146089659658438757691449497142162869727553108046971887888877104123530030380438229312930183113815226803310308940233153899409418285675719287205690095779851708732250614313999136316079701132001255893426787658450084895236226075721480818029536069217828440851672119407623240035474808754698045379548901477794446269397592780262953838393288640360285140878713760186255841848853232117210389118725202818049095149115999066579078880443686659555489147631092703612271748989006362632155215279843473056596200594685818405957939393661094477393207224155430746684139698282091135143989253282226919089840398960921971407918499655544125658068440851821861425294054230303725705043621447896598632814032255260257450805353743218824450310126636200221068939162395278530370707182402201396676309796770033217118905832630804158634607829433710116123073168235451731650764058284640279903814225705626608751140507685701077786663704974420335724477619900238557873019281288797435215119004858719060942007600469870094511726160428732131384250325656378666796536495973123130363923083722326024195339852070037931911251933256128003173882268910908335666899468379762598495966781302558495745017323870012215953412841988938734501605270670712689199233399799997447466138952698508351147107827231345957053209953433125968659622470405112367820140004369256466151803621509389817586350692439073739312396045285688711917223492630535532447663851749871983643944800502852872265989897140867443408130167623408017170867111239940409076823596868031942587909996773158637353673190941296702691279928477118864096218375336208845643186478098839231218038893021044876997308612081075266125125140226264147234920340487279112593012450972198952405079057079367922040634826280524328720326787926085723618776177736178388788590218425392742593954331783360048900328783660626474800177242638827737088542281676539361084091716771877007629729988708152364599936875584774377393322116828703471363867581000922407775778232981877197404929432346554341178288788997512101897782416216845288890785564490541724657366347131224297114147355506787485284818514506986112022185251283588457064748938531268578212219260296256949871986944103702117450909311968317070803528830799115740547481691138644624111862429187539056124816429808841485425125316047309193394662608970439250092788366157370149889429023155536435091699164843133191474607892864566923693112623319912164560545200135381354539688833083816147927009890232783943419997336561870266346300021152912210751571804892292497490948136477698020790943790202821063536933204317640414903273244771251588238656151123559160093959604184541636758895873474440108713455284002925903794966516973745998519803754563283286188899570587036404109359167122468737498022564328833775397874573286393237868024338598471934380495254328163696590871063635574464444421765803656924502346268575866370394362338466909723933291295026798608124118751552634959850162016697342052739088137518487189475120966303660443297779051605926578935007521399592431325654690429944032364666799449863549125333411964250663859664753771272684554542763560259459675947625803025533132637306982056364232531207885982341323583287897941768141711742313646992124851587692461923656469548171541437866934087911663135700528026017514047629688906569202282512758978384922420333934099592845978277717942554286727063987713233382280187543627801649443588133078492517489197946785057974659849068357753293209711383110552948676897753845746032811859369541573263681735993201718818511514806682806161951484174422652608767799607497229915198088116275919974368018396114338689450568482635303593674883062441146337252147606302767971327722046295908804140530685362946585644275057433044918882691796279549631507328190079441725938721537831905241042388235639803540022153842505419195482323491146263047612337074991224136707511322704879285370409453838970713083929683520777746084438487190056651987621028993737036438878074230711060398972180799747036289733254846009554240676905501998308358790198911094968800904706292095978518479619556242584623642507896635318437395843582855173336239120629554832773063935759660608691576558619086505287765001429877782643304687648528655148881140099301822420481397639911380351190696776823682740214360369512716924134742866764447938257090421619455819333078281772867598618634732086235291458720048499946775163589909761819133700955493629231846242994700223121001608568974051680936855777585562863259233618127446702982904624999421593600131325768308258251158532436179996684865022353093170592365037402808171095000377773298201266690629613821434736721326618563700716857481331248502660350509058590708126842722191949603844492930424110648950792590426519837322824234674592285166224674175172701202645775279249866701501504474095761386246288737934475266829896557069968123794908187263162990620917186918414676046270905757840625380677911636624438745058193576897782708709634646534828448401908561377190195548098065595132243366451515763643481760687420169610186066091774584426861485733528642824498378422493261035170165424721611281404836644683483036532350933097852128063349693224415713652835125725177835021029296404831204810289483174911335913687016190401821599167089088964177160238646474590537296091813625828743202871374145995656174027732585251150846066642312495411944449277978393198675496125522321818883043776462103815882995486781395787522570485135325686274490233741025030244153449497942619472403638281334831870189095317109302839415158360737803746437498131768992474014224172938663895721662841898897365919446167892507026714202914914343541899272449332756045633891729100932408558698516262343558273544007156353724954795494648301847601740071808892332626612087902664231574012618498924187548277047214257223687381187158177423926413530692171789799044367699063684083755743889519516597629175825062443619928057247184463635497559632731441141530432741683463728563555400634238148800718483351042380292023722708795706823053164174438205982306951372365206329411520815552541666375942738961817409329922113205094808596274207534923565829671154575979039646857090275851981966222149724461271284534364758133777484461905240430946293163738566862534525135934795789152988690504766910919226896892375221240524034107483955012701653702120946999499641560208613761288379142404644343672936340961345529446026508889869745327290876448369443985264178161003873785480392404795278435007143898044926435873403168755280001234112988580162471955828894167925095394032495450833797119825681358064479217652392291572208092815707551111027532897962424770527776607692034928716136193734755606235934003281726341476261748823170600620666588661996222799675614170217662504846577371927166885862683535384438286693016403519115142880670390825749687315246089784492514199338830616827107135552278706742775837622970257829061928499343771947284578917011404756946277032367763809240884403456530792947912530633882427220254487625449309007945166945516771960199687901805568010134815573059681282260192214939514568031038086962506480795803240941279622076808796875928980842148969320644892310983579330820569882138332958866176341822052219747243959518091982157466904287198551609952050362945990998784850239753077788362742005045440941094040492108137529505662525884542586399400464134817952339373471488209970060232029848159106544682149455890842856805426476824031655045158835406036399093179704332393103068946763427837288872920558773522911461289517664710856002088114069053180980858344423398173431379162205988638128312966770959953541119248986548185744217890549410553289677270510832606429641943051880512478561997608396779342970281626493989252354603955652679418988172389091436190243966453399803701977050721883673086793785659073021920540359924764917581283677952160583030708953313397824867696035278261718839550652144399067832258584315167345257970684826634512596484677513164543885423967828152216443643337330722977983714211378157257311927260249473270362936830395789291460785981866781728537720190129036322188368033921510889331207941742778308154080722714819455134712033846212212501572466104250224102033394926493647455171743355955008019140106942526588361454596977560383823942562023169712003416840264210821733620891125862405799652353904446659303205972241360048511295115525077431762469808828445237562667412869822954547969843992267596018194333030821704267780981369176621753675574938528333835186314291125752560088634520288603647324988302736026580828904017887239617284695339823090203439508127739341530789946090743523007089786411517807259274726443362038474470488791828756708069704755460791686106760070804510589546653331624685513603091423401894380271789397534347471216795214445420335340304250491459623186186527509153535490584187268462356379012333944900297994073738899322684443725190671411109872038805480810665735543445635851657513166519661970580781316008260654975466580293976566182434209099215775529491516915764747641727632787225953772154990224189227393612375147216549536177320398862975979772460541153889908539381324748605417667656366149394786504084603703762517297850995016945761744903018366803936251581839097756808814348430113576260466048210981999062453120675404934413730774084804254073407011706358689328387380027039937324085080022306272639908118346278767747767451749198778132786941826683761958401908200112425571052292006240420357824638493542400308988571961984509621445502420528702325888185340933781086003712355695687006495568763045736578917517962286456546513702588673561800013213651025365735134867425656604741899391699455488239306096528632410378059275142325588936864238388613768565521008523499580612248617827872692574641748937756869935754741494910951156639552850906529418352097234128346609772774419247151293305537454512943733269958997136930890449837212142033981910775224524878386816638360479872574944252514993941870909249701301176125524989387399782320612125420423508435233543959913170867176479418222699618564736804636748619900839084155762824142701237079401727763897965175630375540034989304662618940743730510043722678360075118437810760707002326967168556759679935411547248534582773135204835304392563985444038048861244581363005871918150609961466307801560973941087119134839073577594613406944124632073657173038485114896134034487925333653975734457837069594081765084216363906481505217459565273197611146490477348473380743437767201419136017364359279844538121754335662102516450901044462194878594225983831983010847439243710902163944222513368900412912684004896169657760150999274880618808142789655936954009114787754395385621443056952767487805486414452621244682925678275013993926544921465350689227074972849074611170875406711474987286262673815408860069727477850731550909037376916805321141570328071576099662455033435863868749040383565376218071433044584920123634518301186028893617678463446837117660706697940262243615957392121415744487551001754259432149094969240285445605458750779415158690072213090414219035712379551925615209835157162121571522177012627399689703618086672089286550758589287798102140987334307775533590315331890474505911946424967412596615937822850426486224497615345007012813083182028689643307671427280627564706195798775039874535415621633830204684609265528723905844410831025439526696005552549322200207259890932534006724898344081702289520232719848089773525240951214231557480073416676381158189750678259923653970885899092620070567432584689191481239404322690011567024028351392929362743061798325153905290685944369808944726144934792484797869037346958669487958564532932261763661453169594175671237814566427264769200141033907759091953477699054997126139239782096299236513573708801633528349045387929569379877655993443898373755214264234311840394745102282772708080624412196295417795956036795532998621830547627595457433557881748748045647796336699138132849917114001323776021627826273262761956983918438941689119420984289078547971955719956665206361908618551823481495756219650199390667243728839235858433079057022290905860834606159812285655425055513699428441745778549599929226531065619028467657692349814074941960654983561051995584405584286022137018309855761545728955629509514544873139972319110105799153834703380865799161147912974702937322821161106294983209712169566785229544909205625479123962701569585488515864214101355374725380255724936371370260418279601697725878580406969819262645672847543545776400302906234538566584508793857992809871547225968286677596662286969971969039487770629826997396812067138597138159418695855803218173805640787483734056632231924295918481524387135044055408484280990991343885469365456213017591835826337756686699869985821524491195180650068361648163017456923109651814780171606430414886732523214046125852123234905099972318639674772780625212180312254244882391485002449397388457685731383760905400101418818420194381846934316610434036337998162270617869718585009337272417419808782914039949998782744203203613739898143540955192366409476128892469236386027872107917088795814399051992389558858086396890734844965510578060469367024801062604747642002787752967360212677986576201062104577690211365153314540269870909147239501281871368301774505307042127796852287986679776748955152051917221634564116733247933813794315830299159650143181853334173173277491549244211009488831594530266584739192148138148238166557027500015586531072253336730224311003191159126611566354959540975767466971324109205127332594249660667211484934920607504127065428949445284893531409649720848308020839797479456387670385096158570984873667556694415245315136818639011694289313775022224082329907512607616580411998283233875695499277423356704942413812950097432249864835256938594531237114716319170971223465708867926652601066112934816213446655199540742348186494749382005521050229064997950360429321930735268687639955721089544728811414641821956727238197703426169699343783224834493708482456025740925952417979722123793174790673483641578081713073575031148863966172925457030245955999375133998701699113756668062386156505813140437299251524173619429032616531119452542054615088347463461729012512214362902522721519226123498591395603907263910703591216378688851366775993741033077936948191270085762847536312495121320752203357907635651699262225227639841737423917696045868486277303013716346309515887614699546758262120721843753145193895262568409616554139435148081564726104539292824318050685539514028874353065557189428173817289099527526588025848746446982935567144626423709356690222457827368723167734571507792315897846609218903730376023550209553258446956917662941242182001552663727785621369187258428805120330205661969195582063677005625762583546659762027926725240254027539363879276618886478417047821294861042375386134775232320078601471454676799724979411670160462684012803690561873141850458417690950713152377066786735361610027790434009251944471995421629998546821124713844808656909316662414650354188468766953030052585229975170582503765418881125566898144466852614591850657898829980562302675507229006046933115937701678757094440330472738042252439050160169731490131134679007809932647680142608583682775624449111550469269422923428900132118619645885818700921894298424060612777812472450914373123917316287889353333283716699155924505956905709207685260509122431256992077334313652999319395209272074766177550228693840956581167671365417122705910594519473911060173261190450306747601967446051305099658206630114173473552161149655944628705821908153117579821242650073788451138319286315946050383458366056973353265155225840420923616215149110574549489057711847015349769539223198232793501698867301805573789725811155896276419269752729762111922059424908476000871125890411755202774535516355911347106490914961434240794167845969953117108613572255686969848327068754766743944316187678528345891196081285520531642293453456054293113492134006581286351085686189112920579390064490635143579222788437213780557763618522843241142706244304586651259980323796751193165030338677204325437733982873134214544527314336113755678651860105997972867100396480757851533861839440638265819190848163990146542228979270280913885916068424968821622967830752658971385404663620867744095804790382442520694497602865732649870669955725634070441777568883135533230616783493599080424416305935362080155875197282388673548975792124839953935845280431543469409179349967231089707391450338107750933058680694574199109547283396818856876731454281253105889970162373015199313773276924636775656507212498599535390474322758946186129421327277204465849274483853436757400507596780404822737115915139586890079008919451404970607543620548216009924737304852301243790680441714985145578317178164433346503979159335116944967598522004757613408495782572714951083062232004113857348000609040909420042113814622587432662257243116037715600800981931541990572362586280329537108577343710914928789960067293287253196956616118621525872081901289359531588370045247922965546924794759166855566313098800868061284838887046958215791142817480539027163632808764047273544769334788911862584929439025125545058297939748828678296588870200410026952606942032301613860594002586267199072203176681208103791273556219679463024369636903397732141912470428969974350748549991951459744768505557424606619981794508080996463194108467538174025492563963151752610904129809580975154669392812233376193807874693450919141633781552512666019043663808112351150979472443241010898745209373623508849321579700203924337804504743250940938983501520065896128731485116409595622538879712911380607134080813820675309877920336536870237785439180854451697311048002013271884289654950299435093726773810520718551332968432944826228474017857944861397636896783618750285846027163366884894302943674498338875375014667529929802199820900816312202191928360551028863835527398984447963939814233712492134743856316401760993984180660130268121392719265243028146370384295458052537281410741180145289489716698945064788141742287725822210443467334089030607883876969599522055607430305494874468949321609155006684372657952545683877999398195392338008028498562583619639161117135432317410564672981686335988046632849020815726085168867624964219016571503267873241062103668189521219731616942357263183697297854760766837466697305394879439639208250714873740849745189502592385832205565444824703324300376054892476524812104678779800597954520227305990260045471751862481795014422395135593128183953048031385557704543156955978825985418682443291727455938211325038268332723930230980956485178059410119072462583479915411010102939343012749679876576904358339026221503623898005278901106861874219955396146864505968423661549228806538105644761000644110722998274557635291505849301855502818057133376935577342876218752657441676286869693034522098311179059541785772979775337234351697255735971700738195547086170490533982936723961561641570157786811290746824847540021366895144743916476184989121257119262253073207951884843876267016725646783316696432351810079762722992279570019798462065678196494374228855580628395553657456608645333121116337140329796389523110790245972708974186266446051517588692187213280853976362877642707957563024139988024125852582189255464648149508445762196672554907276559229701188538208166921623219003334027527954910112904442462491497347566790957256889365252452354433930238338941674496260142174845158321261909369386126046405776069092229717160033713231781981011122225043303243810972855942517962601170457639696142287054826029367871650619709262242116102439089513206549931210614162161981612415268694615810390546405400434034566471875685792867156146825228031192125464457868975040312685961911872669180688279990701928700966067435473510355930470085761935531304514697252430659621156410489363808863281438245933187959930018058435848939846508248064322683539615536009344715100291934814529221746722927148167513075659455804647344275087864540114281318618890555233069499140681455101844990044475409936372598833454465436577841131223871080690928042030526851575304411921499827788848404905297702161966551495465536218049576963052251949541478786526537782677578715863455166257278942047715439668575868686798295503858222268204352050452217998603385209993051116499660782795194501769113185457790879359819281154612205014671919382499932827399009922853645010078784430729009296734925841221882691076964033691932280424689497522852220909027618203207207095359657651518273805627550186878918008115608275044925915475886822216839740799406419134495630368216269679690876459021921681618978580139379726856983578935898767896329365121742980814719536726349461700135259173804272202181793047482388688899702899178643430024666472081345780748113692437254209431927771282387320057879469430205639151627964063999589995431238417504726825193098049435758870162504122620356542505401085405518718358332252352618089247955245541593398296152641926437487999537695936991969192486827017433647511948339760819774754359359544229938304446665139909837676866702975289500873126121556090866516205813070069407626109141538496508332909266645043596109980040345121680514638362514180070357258914110167742418833251225736846906782843407281026081441660668450585166638573426665629217003802452441866836291052433358034064022057217517393935282609305865795233831443856773660788150564634262196428649070951356933340245471750971868261191798806527243192113506449926597141613195331409193596637426708535678837161191435740710414474390001750283212353092834248257407578089236080192816990306729499607745108871409648274838728949986882227609274075713512479056706219155159580195639399424653192634912999963650332976366327251050276525903997498683605519731547769532643886317924494026611866613180538114878274407309579336213808414343095618177783686487315085791632675290896202675050755945312109936654280968664895589057280427347104474329044760766776126530958230214192715933881557625652055881968165333270713386691465549632065874877719571831325351051151378872931015710525382644802597719211880337692255141813614602361450462864300704486951998056749172947914082278499970593883617404764896445367440881855174310151532291056660744697275716252716666786888026764985839413193182881844027971613888743698600881183031966201744915703031333980507113006771621388753962006404612676624294036682701690067733318939522746504033486320746270431989138689879027982959347787913155730992485095486996449203546566184664042317310311741616658742814239020212263440714774643355801020247074618795592733004680182504553653061883994535784878230924339036899387692239326779776447947522761421198712445442502838035781814707453072871135643027478451162480873738683506227782034108694085116481260654150554233653447524452636487033033889409866756172112821414183154290187756451618247361618800485623811694802667955064902342545920591705528547542761035665807532389313836327554943551748342655598351484134186703672187825472942150723992338891772526528908019319316439539908203294982017548796656787688486327142761324988961123492701942601794564025394693159486071629451370454988227641809788125004272396539944533531973861551448385076535896030695797428589635969158438806167358107305404432506922296471318219687435511582974448400276040743215882945191483899587468677072743321274758064125921790887251857654584054933676301155782595183834054926547403344617875808271093261964372292591717506848950369153625904731029173230288867507458300126276464438409847686339190247936008353357536964144468229139578437178795508892734781432745485411233675744024131896896943124695595047054165049017928279862194435507621852183655134639288381846366210336917316329180384895247850529945662399101894948494698147750057280998322090775000400400052530205079941601150301161633445286772634003858936975909846915232974177117195562114394406594070969049237311803947282715091858802525947762744507665848797423718405443849454057436529695960900536961723561720882104504176279012436108197835260358876224155588889794910481160032212992686094143732205324113872935846137636479623480618359014549215665175084423589213864736836850268541555487744181368965708371523433396622281165045546970793997682239598262619583269950432027135496496918871732705477141294022219501496234681463434903269180331717618868421219562799006220263896300269787708261529085597856546505894415685918872748472137273565994651374431377477068913196795816821283081793872603167830245555827661854942467773059062320421283281090166373844534551010709646547385738872994230806808104775030617448249626042421500616267622846347208169202456114653349926993504986432794414024558371426901129743445847098884706772681783061127964500430018752413025315525281009929957807391439199835809016542965787354445600560334796730233830581279965439831785433505224814089613762665784291425819471778867473525892235174808187012683074013621074182662960110855891587791899046801534563087447635297160731102455446973096373911761161169507356285799364297360847310933855582301717843929002745486115190527304882562454860240660902398587840569670150733112555732012975250206505474943029909036826645828805162219904300945484106933793595939023297691875609826624964723516237231844347301951324638856469193296233267832172985683127902129332995535902652403617884924491278865052969440903047638854573229249011058497479732631939050462227101393022841283810752174698709436951069397760863880654478400504471630070836362103732016164894231241070741823843441004322442748746428412991830392523553738779286615147825448393522134385293775237587891259899768593213907365070634541325019320954118454770291504770850107102951304716568371131786231739894042341942321389055696603136173321987555995698448748953142703107020977860573717479293179650337595266100448413015219469784068452590781196695050223400248536688401722404139184735324056720186047264953289527770412488417624925128367346849815839233403552407446212256693801419812882679255387813199409604158633906189452870608534449584448774769788145146894764034566226967951442923543076164382512158513470199359893324502444999128107058919561988766688999529913057206400085347948777411592786880641575101709207782597787677149139996790402734395964762998342357687919476176846205414461971898676655556473413469918192360257636828985567392195882243909013654126814249912087832842507438532368903189332205810698276616556979599906050535351842125982986831154664035086489049247251478334422300697557059159341722341247192024687666096305657809310301119836611559627382909823944710086778358728491566788185522206589537165054066641284057426882245173256843679844897822661329623669734421642945198059367411323780205069114396802302579479131552246890282421489622533357048592367906387384521904527876524584463014281064805460555334984460691084109394767899511323546514838740087087593949487682775368367004033768131373536973102741879210921928745498993247860882027871137749825235102528363903636976094295639574776234640268794188107107286898612941470686453237241162509753577512348090907344950887281931154406930989653099810320314107226991945108308416636993769900622492154977716168981307878310786868267283779039642703249532573628502825719859846872924411307659087154785351280518574186056457483624758123540057923111997304877833712483721582312122323913629324201949428015423403356116405926002379754999944714930528039653352180143731399960756488613512866483273222404762923962789584841599557355781588257062513775594673926958514972847313242529430809855057601186525473725746741489087703147767466469751617722829240438025752949123949951557113972798731370148614356138613077736780262016341451709784500247838148807523096468220442300664639871523579289836332531722182629464688002517249924342050759992114783799918565381528541850219676176729940121416619231711075277411793124187843894067471760622675077847206838928366911337452561947430424524133253031227643722703207630731197129280281335720541740709474770945486981765376184856720442801470006158203485020181059287326492488845835121351940640557747672480259238901079558549298630630406102899661651445874243200253199832883368660438950740692862243692953134747206891852039278970409529725847973309889130827100509460386022549433765755830877480770668106779065589398449612622944824222278291257637881296631885355417856142114878020623863022044094694536269752353572871465149399712037712956188127109828802536332428315981991228863427192003208244487236782124083610302451559222838562982786739900442279123249905084822747651729767788428078607714703647049614870053784657220269950897486041534371650367968166077440811380839635318430650457885718278610678291819208574831685660862787405640012386794227675718522555342337363214177009780963387519280634738849379219931022849206035585801888153493969849708961964393154015669903434350788761576569876067263869008487863024616608245542746172402660479812436857703665296409849874033668213230525178239961262474130017785304529693908973443240406519886142089003434385723226720896781152922910629103882314862770750724217404483612264555579838050883065697876096290374067715349473257059556867977690349245839966919726932303571851360086664457165439012424189426317456039316765184957407875455361488983232219359701908501787761895690742133612287197065139929008595737603782255339176985199589229868587252903907984490434541293924790678674927361845230565530569901835150574178054280171434739438492087778273836284945750607288490798112891021579035381694709337020384468098268589589529294004069980166010876852264474503217862091212640162117771624921651126915769107959260302087302213580991028389004524050851439210269196667896909785663911430231748492918641867016766088109763707026719769947573731879097480625842092210073745718303527980860563796280942996562937860632162203163033680718277510088773396315561402857405888762363343785777616358541589101473805199954325276868303261254557838160864474894191164386939908602170243109272722715444102341576073333689090763820326592752214156539398548728102413448180694739021103216870109129537662757252596496401202000208209465268593348874038157531184337927121982861337196505324006645818462880113122449660485862608630434061774966337885933443984040697751908354035803368891062078775274583539177329149591664790359040920017591544182470438771470850062268113851796838643022128829567304508322432542698689269171299790269419568322277127173527539905710349260138909331411817235521930253080183135429197449471050385208748779653640518211580079709910045083051891927955620286621967476541523746779634874710156691761670320655334592326556388652385397089013482824048804000481962780680220561716022093351315735907679862588810377359380821975905835252188539063607504454922879601077044667840948340084476515797103445372798177784854863831294204041076766799338573739613648453937579211684291108811936673303515380040357530944821545446501984270602140266332295373686850026321005411310862858745257680433036531230324323831436845632857359394485982494788847581857083304003496045766646940163148199053540173783033095928175652444323752446447914906460910602892183722236408618744478240142639271169911783622635969273118916272038059120926049944985734671311965430018999680462044094944835589045888386218072118106959885275890541545005360135908364530742740451647663261027537999089642004150491852335526897911402725320472909160341366761058108797397383695913751221740234227706698236226937116895219421082767685239303398757681041891672842452614604544783756740811828770014571485109152437014816342550555487759248235232344048230135051060139292178372417489515051401646066821684768780162379200397051670680645896941059889202193454804668469793868041341526530884473670144399524045974460331761537415353030802052056123752664959224191816235899982345553807969004459527567293300600628950205510657949735259498689701646190703687998873958022654377966036237075746704136596360913387809342008889939870627796336454038383739105217642083246953637194059808007954468213697076248507136674908144184387214662196451981942170892463845012407081770896909593091817462183588340272968690377780105470489528979838222936303344049651418436778257268571827059063799235442039948851106489877342643372228831959150105205934379568495718580706840220654153498398071480585036347737200391470503012186529515606315561647668609949624108865319837140131845288129298774365469298387045070134190401764792907909538052286148680692701961715741365859355202371276019970424294418579222552160275445975645340894635711525500790720046102626562577643762283014354858397486558038629234495480569411170990367030910837005672711341332697400188426315601348416133228777807466729443221950095056346531587564966125375485432270679038476198728654106129670324139729262059536763933718835840819737112337205732755827077763854195456994335380579616889267481994628473425585334588542500940604905532863807200651139366124040664367191192275283001225925529278814262548873087071459080088601576695463204965327147578965789207829634951301327567405589657974180924386864318349545097901196065877284869018026699249588951497101443142012977099499371705315689521687681395260651082686407625793424732409081440370410888534250720135465314545948809087150368222547785620655273851448861309623741563855570694805767572449292960504002844390611610297822801973696343367747927752043508022825074680374778874910065626082293356223847025102985711955312780716498710364972204274399598639074327661557055793473750134907331354676435568455101518681941257387455844154679080646515859183316614265920859412223076366774079295101213337894462320186188606319740958823020947186573551328057694929096252421834690483739183416773871201639842002081942270970031123907287405168659006373236709043080193968852461468753033907121325093327084702846967115588877435505800865023079999864490688877448260087041868844660994622676846209826498462697464848345813010611622854958363357840373910608073816282563897877955083974230902464709081053389471468800718125630318619226947126356760554661639918007913725805167868779945548637078286858982564857923326536705828540043002266278207521599257956580666976642400194170606236867277781262059904223483229000781440372955976886122480872551681587425456104569672760471740875403322311907799694609203203845545749915442663134767150286629515197613708406401352871080548039957929285081647245345436431384035597998825456369535555784313235347391426098121893915563221268914433235621681742997880204753182299528771162685369390952821679628411532864479592517666213591226694961286836791105260303491249334953053286704648251391483256274297306394620686545340548257020722838271198851394349430104646661459822886971852772199470812718502555314678163874256035176383100941399735143436038965262800391749991986068212875720310499605625507743176505703176586229302289326326117516707778178022587486420801351204659921782117610387141898621943123747977562297365294035044490923638703529521797686742696714088293368093703959597841182670096647156903406502571544318762712539356018106074385552156480419405767211678940302373528544814124649670742219924600899355637657315036629749939160508536346054720504375018947441887874254760167461015013418961735560886178668764579320690719776247304711005066473348942217947172150173765774430866130652255574055329773314612925003883794668542963707315845919490928972301596782445635346624331498889694360505082746853193729294686708119312827286385692204159363306022372925047960151574304375505667002495759601115799383334100858750401060052960029064864000426956385878984697592511120991346556893833055763956082856207801451513887826729424398674656999855365098916161661381203805433365100668777543676622392581761975497631386565381526142992948922975460233636416810414849324554113777992170235979276671312705739975063096162454461724671043868905561192651158090824380529610266127139780418344375754849599028498111690439459550831789052658964315124407537398982331446363313208923986002563292948854027577888160476278502324496806398692377376517213992796671688581876033069327057627459223400887297971232963887636982427957225406377522947070371740178765762321147908430882730767621296781470302277179746790579284440786430457535052848101813105324822769818411378215336400954056211806872291917385992329411905623722790536645870739040717491120446310375594484133106183467854518775758062964904579801883103471277861599719702594549977940008170030126614792909856925369732472337818874329656225249182110062600095545356334057457298075862497829748127436542639315259392133895896206661410318691068035927560950955289586880782599546584087094580520763676490762145786333129393010219012857137215768195268472124008895814617117807858574860851410997094998506796550760096484593019031402353826601052005491187949066828565861718931621036140238034173887873500031704241315893809846189053505245240717662412635907622021468771008034279285952689165789419780169348741141558645061640785602135859104246480147953418026369407128485276109374720147114988043247964577925255169392679915330411137125223045443690984947770041300961044262751770649440956077664119151767932907288736587228054848632062239088331589447782849996102540024939809307687339045145549588169456192259399175600415154061641563548926580641209113951466785993298332658497568297956415739801843500819910497442663196224994623231093404665494958021412764142133566622697212059626234813884520858353421440326817118631075266237236691773142306841447347139728533398661829383849031619305019917692074950013736502619116963129663450396495663384097210207087601306546660161837126197483441714285185789443244987537471974975293689693614911372216475325454982850313169476072860562853343394059272200751678719675784880365516213331771381744592069980824833911663943727472679773002808676640689156409448316440322484123903113103407482553953849260634294291529109358492360576853077560363359768463377749145901847454023150696793644697234011762074807135307309634180489744459066273518044686593973824147325405284047448203888907257670932800276832840494232639474239893206957827609933995953760909195182105540771914953165193499174748580879341059651179693797451433281709239263786062830486330234674239366751009339577779191643956002899448682912221585233998492734308015193039907519620325307513317708542127911560444141850726658825582447529086831756304938877006030906221040256904372437640373719972156868704650333477722185022965207149055707865418758818583658825769299732863097874578538310144568293863596540493154565600777065417637786385271389904769281759246818754289690875461924283725745702838446242327037683322649992339075847428376651165520302365634872397590199512968392274860233688130602776628552817147007484625266984957889072658483453462079339100856134650314990685514260572991551099877137848809437265250756004973239539278453587883960897334751664405727401227341890516139256167335240163733630761959921991017839189912043769358999260146080582900497048978673365132425390128636158659364932009372648857638432946514940800913467227277772107835309945264764363834610802398277355699909637661851904988681076343942183042051473481897814468068777821283687597601390003537872527295128275386319751123929193636929227078489406205011866238103173995156009854604783311255636284689981250234762080057673735020672978552636218812509790179551935100377324434711610748959479806467583291081835025402700774853028239940242532974270355966566728014268159979099756638615755589742634563257257174664947517351731076113171670224291915876851535508171226571647746729138153879268079592227745933365230541176942096576145699449142813371182188972450257361301187114360475104755047098772762554283034447669847962493583954159065923637010198979784664091991613550198684321970623658469836893556939139939161451428840017023079943654380210439356749041253674243929868719317627201565640358900553848237240357998539841202562979646915122695990401024166549809392440929396056783146658769870865023588220408826315213179472932049643566477657360233587531327459310559331186116106038144683499490681060184311250061805970208867391787135706217366956759689876806354534447609391378586558071865057236443678977106768908275604410660910770543384555376960726231860178387433746369300291052345238611296567421890438917394425991024691556447447840817545526706382174811799956641946668085700919507262616031186983258415938651449220319672766679962566153667217810468102955323772745710912303526262926109472232403449240376727035785976989147132400807786610556752559614254844867227769832974152199967322191437720235633025897022470917672596938408536277072148829171465950915944690778806300367235139791534306988193262549483093121046002333285549227113239033002058354533840347372961317741548040432092490046221277925989528576058454077597156542513992670754299268625482863575833268116678654223287416385398630537807733776414139244288448640329228310514256826625964603165165099842736283063536403432479258312891604403472075996911067120288596063462184747496641651845530247274768276837378760583690092277750266100206973797210476800380925271725212381734294146346011289028162706167637584516046136906476592163083801219175631253061040999123711400004262117564548903622392754651035909125906972443354364117245867146221694811798641109625826975199121586252122765626507660999515025552370341700682610006440122139455782956967127323793535863980454515892590180007506620790241520705494426004151740185055192062200832685584967973290536497609570120849114688958893416542286390336027830268623352574797960656535241950856264447445704712272810200119574764116261375216907446834132214280412651804165772914591702170872063420920375760498678588617775804928159597461989621625209641415594893646144778567759815331594656452434581875846023475923766029697686865140873936040837740626115084209178990874922693667109521044388548049194396672857248076307989353646806583161571666768804615780807108298456234883872180928347159855979254365610851180624511710184923138815756817955838231319948034805418013448819128659244222611765293480225678552044532794573936892021204518860198343569428058221188224836973896500050673416830757573713973853066511636537828257837597868997828684056553333524011476120413282924385232246669207129871895804901556789253151213643051297387017392710285030505920720589901622694098042947637695697558485020325506035671299223851357512769661802000512587863180919619484958104246718106035185739742312231500460792856438348757432793429225206139342120753947695359335072537080549018844900199093931602858763597725052701087844424258336432173672154949450547154489653073107288947167557556221479165922914066651463076836308286918133722198575218649348537904201182071785581828936334762988637823760948489755561246967867950045795941691224714946008176142436530512543155986317426221870464755066147774224602665179423957095486774483572227649353379211223887049740201924138651962758002718742716303255583158560908734046062691676938922816822330686447314522844673961254174809682431510486451684215228726937843672813087100812972286724462879144013680547274153230604057691482183174009646287844130159054248377917796314080786680394585317390299049630702901152315661578257422542476359450275912945663181882216902691035995336494144183334004009845386050380487220374597467949629936059007740036693314917341051942459728049508729770683833808834185417142741606775002535580060040905652119033757368580652619048051639899284199796455254046465448013875110031688369942793885065021825810013352288413165325165300365047240990567250018370357993795559103402240565846190686222983690359492471693518240985373008338319051850676154908291428389831150985644321264385570254222370243985293918769787998547697104005222976368840326409748298538418922581103040860416622025377860145344313385556935342544591009484342903967224393519140455064355754809619543727403582373746505112377895448506963738435554620892481292685939706466860238969656855066133911351463271984703516574365395151930687157822554156585780817310656581601069771413795850992966090175467091475368281968226283353641573093960646237001479629588236758988411586956879698672858500845442009577060369034620053863253709649372724182316145121019525315793648713747309183042558116566645806771954808085942148652944119533284227380146336883568072242908933923110791939884943439377414488734574589857601122426814176007857794373489420744113683542602343607747764198702672138296278142454555714420122138315610292656177910726485335665514413472177279467011565199428909526035086085384940729542624133218191475459978501558595945923889671580164380076273480668750010753968781213143035995225135642896926593960500301227438937151353105501954909531055617969698810601595978594829722736231541942823524961382028122433253712052895469120749705707687449614818517038045840612039432606860723431761757543790660567692783871358206586036573931587615722550905687248983154458125306701787226072676660411769195743049258205198170264007243983353126445337651558130993524154023035775689434631203886873249612232177386689731534865824301452380755536936235880914859328245078061261211933051585939055703536519404320593517105509717580239089864958084287924590864167012092089833327560780491823806213174866694728837145728495312984989129636873791409607114476312936629345263897607193116111565927763531474881747520969044762700357185589105088017636329154995237775941853229971312644577778749366187069857935483075715291710330321963782846848670474653501665090748851712047151199148423468498963742485288161788316100422026998252506101238261027570225634578537248520340438715021903313951512147754338084165114189520756749846735653947458515340228171716625931848542162351887958442708465789577350947171139687763816380185057553516090309845977831463223140972845665459390523421947937003294813705464836830325350091823984797861022721049871396705560582632768253082963315767337439683375268470968412782837285355658659601649717202037992140836997211914693482848371607678976020386883689433044346152663724429750746023631856019469229534568396545740053523658280816654641609683760299405972582126046710482684192291569482169136173857475014771321122090282111443324924669511031600765968655822968862304383225954592677028081247874493059574430573350075205505828252030684480892863317422303501018527582843804974208815004291071830129090747350164837956304457813580435914841565693529376215612076251997678513171426248488943299532567987065463536248006614703713157898434996455450674739974167857880407148366756630883327060974925007399401173712825258566000148386220600060203450060178215113298252594645565724735763598599007037223704528709373208913352031643824947526118112733510972183191937275314796071389736284794534743520791168572188060558565182896395859412278128258785017505227513587069549159267544516157621594510337691135976506894491908016817301801479678525611502130845049183398206918383987958606555899608418274054449720543553077199946630434503151612998927690587445344247128850676612983356193394453165395233564491812051891977568707961006151182815004847425106481985739713135507196177268431843610391703981523221891681141260463661700319563644951515942554055911180286808168231526389215993604610367124181075664176042840048757406143574827471178518441479674785135969624397620509258183515016803087173676524653440084684130845563121623530177104116462011343885816403446263973278251899488359826545539250481901677311789318123081881134367448177074099506453994169580768506614270193133671829579438964017479597073932689727607063474096590141856557177987370871545689840743652755962832351022211216154564915824324585470408246261784116094521441551719514868795481796871884037754805868887647921019220380244032586411672911362879190083488248929630462510606583928453679975352644915013605610729030366640789980624279192177884064163628515858837228857742512461380465882389099297679979092588471835658887311571267921626454592928428717208725420773104704489184848132112186699231458380579678615273969399542140674751277877726406965283114842756564031608551112856173583500457381140655627562603112735603019436555565730491902193728040552062446390852809848897788243882936458850698782901185142280910470954242249010884005676423143668353192334427743006983229612234014002067080357373306613820827196243815151737596702913186050374602544959738690384416910165043969711340564747794737900913373927578886405668198542165538306092801487769559109996306955494307572955448295661276684849242562860280525334468260877171201025550359685171640034349616741999430586612728115077329773249840640027348290536480411262623265687702682525588493061278382689198132021395774929805078891966190342327463542806797010085785519581203956446128410470679644004952036478694862484126837517924360819763912113208573513457011217266903487485253170039588925201566093720721016946083830173640670278134307749119026623004724329593766701913522511920651412139301710800942771906221542902840447174843929077388805822538566135598014792119974912885757544367784608213839499512356807867399409667417882371000032561978430090672394041162994012481320155653947470202900943467797944694724372134667700425180364146467981268014163988951839703059762072404697151505428233174584901294924354250881599936754536842882788047978502944255856957316918804425244948750227037258739939735502062538526572879865227610495437810902020664141850156665405997353536120879911014291382706977657514970203293330982517938404355961286733581229780803933968002127027195265683983555723482816837632549548618822448845934565922539408406843669443711351316538708557320245273948124150804973826153316947325878784936401005710896272777567959118886963768625748535877774792133335871009957088169335219536384386469250587728581911163936746797373928413533000307574082739467291098312058912410545279855220031992597854851064678363683300852221506537919735001152513464090626003989605880485355677031215766389505343120538528276335821773880324567347873969396114066363674420641963979764334286392586200094396398631606705460284215148681722671860013088371960427655975871687833753869858385079577805200839338514986874676905746186068496185960172624982994184886623709785116364766217092376716402288988561834473303568803651283822563903375090488839906317070819230963078669152791303704822789661138653741948120407302863554550656750813922290009211621871766708384574545576282244265214460281898606911142794992611873563052218822857743454103127378594024704091689594061256404606201001220684347645125557481116596946309899822795245892385300303517465129182656420748648811893190486241202827140726285165942069820184580391124758456418299058150427501601979805056090574440379865225336140562714240702073791568566624909550642897719476022709596085930600214519671967839324622334905595390892822186812727466845385216943021577015019276123763025347701809495981910286234707086441444325581056843248945504664463438141068543675579270203756670264881544271763630091753187609404227994782183646614071857475088239115817557485614996906094741011491205339844181199294727423195915588265529331115926476704078282010646320482656923861812615118655723787618678957332510132990316724625739102332703404154269632950532825321153197216576486748210222956101034422181957892817420744616985324053572378868255472374884461596357846559379318544769032165802359510879561536667777326953551480859512437065506376229030808623327013277087065833847795431799442748610200665089381023027362514520281559894314919985482378017508694400758753761160473634032647227543541406945510245150838260385698992432844839525042135811621189421817550877016470195432004236151925735941462730143072802244588709172911591933857650694595038867759660528617257621582271690466985609729278338664129025044189151121549841190545731562424566894953375868868744032736619041735557904577282178223763407681212657257481076386364089949092593816608305197112699914982025306994684485050526192335649288646073779834206606670636165481961937040824097321174794932743111223279698291601214651734217193935866847115833504879252992755265995047003617620281636323747830261693089238477558770051938749479396724773230035502552127823572240585958731505868020258598770684465473122132601189381353780239049766270764062023916900980931908156856802807786671582795886190558903079366638346621408500373214113894367632230416419505764963474559230240102033690218557994890356533678725140126006648962972858128670355557256779426683397785905642474193135622989789029282631338301544955751547427666793649145672568640238266917901535314279625086946147067556005946038064365162339468964431229159940012409059038799496735986709648693529040978975711401845690972880032050562489324520113074276821543019347314413195793677670024214908194117743910707224783038518287094372456828213426293952647074921399285925865861753521716930397978842694235851112052219752522230707191433292329402774550716312917290123073048263230938048282545460318554398194416141636205214644406214193377762246063531895086446869633040709711369516958318486450066865830780752479561156255921864048199463478753575369344254368907274229648314809116261999725592803339673263212366400985982900491282635683169542561697050505634110982549106743050225735062712243388739857053923537329992618896015648208721193680645435176008357349898802821799171930619083825657233796765592445682741174546031406413763140442825132083647376066310122097053990151070977393754184466925895925030438051026840224505384278636026657836151056466957117186651105208933327890714531057282927696494276970131296991945131601057923142448890368291691701098345090070093772934110035679395415685011932706259207548195033581466726286458082611410834851944774641594209999858079764013696726453557928390842613288734697119236982842181457407743071366902262076605242128792062754558150480765084572933088889784830717604257357523308901997705153082801004482688031118133806451497872675487281491954273031460839640041284389805703550114572586156587355247058590211845719009106852617500545835704913958197029408402882472111578058040933576679254451799954739333478810471163136416187166365521843984989898784943041490889848975418026571456887305150379694758568303122488279789316720815618038861525578663400172734663639023150488047697902487412539030089083884115807293799986921951136209814627059173955088127050992471272907793767265398162148092828278110590867509412652290195025791742652097754635324158064366271070604219600298846593088926509531195564514692853267889532036974306449051046387217143670073148088048506789703115609586944887622655703908550608990847613647554773102763319261762386621092624634121042462340516924725904482779918794121876057360708508469175402906797347238052216898827457254920448228062961853414860491695203776166076006807571829027711787013039654272434829437846394809097034164369864136564684369576499920939266845505430866196404487475813580571781846199024938794800011103905060749094640448894029073905619896782586792113550253547736883717212987403468307623610733871985499100616647171015030751783596451882865242551522265319993998838178377778063158839546660787739942648166327526696808763979015247443453474291615736352246348080929510679773608522310479970470084778858072295254016114042789567395288173700569384083059061721622262870950888064525742207193334183996530228621251242950180761294622805828913887046007262702599295126837733759849129581441376377507131329165810156076497454187605274287857615069783818172914292867117423174221711560008791502319645942579927265604792589751140683556781726003386297533520233693464213446710819057872186125549525591200277076280749662218857429565503697643536755910118146802405152989772206326338405064408695127564354633698970428255438426912248221645356732433135564750921552389462077512103402828116454678789164645799298215787031806639928375495314533437153191462700731642378380777213008657127402807388128530485350962156155180435282957493564008469534795160976830573831184954267609202088092841133116794726164089653200142560053492019632728624331480275426800704171841826560743838716898700641982012996286499343274867734584903520368903504566642669709545657849137626248779666682947557433429314800259844513659860662723253493862468700080854354443940115914104555678461020084205936232230919468147728285135010239284741367866658391723491701147705785737087063928827521857333166856599108937785075861048529937483613554963724683872720073065509223035540479758110858119759057994723389096170589621635964172652487095819971065345787994819481463577279046956582679332538659404918867837050427412521606371002852261746004933152328907245295170560932231815906318350947474851600511582066178004599970199660843987557081726669139907164305553634394786411797884953395487862423176294200874180389839196401126946313546944393659691295818408822032054672164572572424939854835033542425532001182729804415904976400744869829221562466464175992242684967376949103897343008707904181152246325217944338453095731006333720797508273398325665163323554430887892147950691102118299379196098711571230430984211723550287812208941456282632735749529849867012927646175132313169263180414639969237495486102912391528315156589662849820704071994978331850529347261921737676384231215815019650803619750609833162413589943197212790121922532955196516282011501032906741917181089873732803871943520325465619201247319739166952397851076869274904307951317343037017466674660819617747044567924032070231526266441481392804771087508950288455255675800303629175321327778736775745111504188123148441123628903037522669793738404502290521075328527195131432601515394521644220952982274075754448737121565054886408953828390025851911203345171880229775382227051949782133929043023518580953430189491939552631972735863613137655700545504644733047841867937192763998193884096005723723266516740453205732594704124021876286197885964469839195485945692558655100552227432354410372325866836357474677477257517830998197681916113545118918858090598487435684092405975912837257955091932625000617022890063211162587418582770865211336471062321849595596279861607549474711737637595947020345233368383815015261705781347539884967092329472339299110160311086408514610839255588970763729219939310349522731022173442571500541280492581054137546907861303751196448172272267964479791919316792894389485867245359544649717420512198286193205916498961876475098215157608097185770919893089855041238945147161023515789131554475439757951742995312579463607345390734813580834983496439871251065620367989722949592608168726426862158605825652460134384811011256558556759454636978116674409602250749827096541009204994196907303232874555574039873859542478376289251105319862732197246925681444127359665993495020999368144928956954162538296343008747713230141685844279231905379065517596553466181516063064211593370542495144483696454361195497156273639974342756530279079609194011537745438395202167469116995704345652785684705795989097330066181920271618836965522538924973011191613418088996782589377781112380630590420945683149684004742064582725934664637504663465983239837803326228254413057677994351242758865166368982770527988487782410330766899746958682090746935398905603123887275709343540939299505549605820418601230144956865743548324389817373864746927515616405216816696927819922331506429860981962291924305194166790091642038937915423216506701522910025749295899442172346722211214864299666902772704470039975441401698469739797348512670414280646017996479758640578660047676834407470969691204600845611873634957616617075228051941269547553437496340016570622510342101424085615228184918034500109737380744948136678201206132145975371640195345648904000256570356996458185142050770062157937887296985426096375609257823836835968657512287978938505135200181618958192837632930084571004329644021429907084745089730055850573704826359230105397744487086125543563071862844613664205491903962300382165349538351764878640804611753217501814443179210128141291527856877010510212599250870956844674648735462521213587056764023563631930705054230865388170562004236076733392881502992290790746429501420661894976379315083775208662234525532421393204693931425000019309946529398253391401128423453216300819547549428938839865517123768057283548540924413692240436068149228652421880322533715957079344280181959133563339002335093488988032250262882646459687119256538430206752976259998503203844889317873769054592945592520646116564997307755348093187436278259969361500413633018992699399068883905126228521198612649736135272720985045676404445238569182798086857985092471292164048214665722039862089431497934391369076483495278132761548887604517087487079980738522244477727619275034975642882241715284539698555709763915674913838417483309206410069355342326083181089307058070008546194521215388137601135759190913070312919655800286131459045727794470945514737792726881348908036375078776126622993526021599002206970054316061508268033792689431864976319571081615866227929134288796130036006486062215565763187698177361035741803564937059024804982524554262297395165316630083570662155710977288022297078286367868561847070977540044895847741398194447622447840687671914757085082044983077907072103531559413875472764309742368585642716396813515960097233869903936672979162270385396561045341867803819076725409612805786742082820761896202058377061980438010842904409873632304193163842936013906183589927488335571885157681238414092419071316517486699137843714262614436990685877814886118778890618071334322222410347460104584760523221658350702746188385073785651334743868222153880712120688018241524369540315902302904656516413608234282459839492686042071388314465109939668923145704066702896476087130038305042727148364831829006858404475903275227551873100257986766441276188050770588555577309414017164455478305728842383789174418207184233376743171537842436034675392938147767280439097518161023066707772779879076029611940814626949460312646619598611903089154476183763761764342225754366989286673666693779562729148006691855108912969834344049964696070084316948274466637825725902270648368904759911089787791315170936812770819736199987234569784292813487588130808047719448618079849031374586727423411823488116675831676111393789676682874954889906342064204054018278027824172666649947158473376621341963366449719240826169480215955108044545730974827537403741640054582896077758857067351350440453114445416871276709201553946530821346516379011540062678483901486792235788420516046928906579586708320192826815908566498567803082056113062811793563896246914252193747099241189208373412160574605758647043267835700286128223236095107748251643855966369009424174965974307077450905209026980930413912032264402364731292644359493155124441007867781980993661371595996730929440351798855684744585506745549771374767347786985755496736807424285866113082232584105058055422138662098394685565404303898034671770814646100998045538971705927391691079370964611828157197007606512443841192670542312323406667317298383814842586152379445759204860847343737901186231043669997699388540339215245177783077385335403215615205910654455088534168763134906305307099610459073033277696500749390668616127049936058868388978544295528657738606819586299138208518703615441549550081827697643811643477648692015167530922498974708424404018229533059239660512937504561736477081416036053029429620950797003285237009588679139379239470625131868833775994810481042633880294697536851627613403787634397781542637136847086361881303246983172384192384057734579901956182214291001169141905089353922005302875090005334257338434098668827049858230812794741296739063366619722976298047644745734766873777101509352627818293252184470045355594844376540977621648391337783247050318004767623412385047960151040713061452190633117146304028073137605117095058311518550149043036165806412733951291227238977154329135256152360988958233586785986985437033693683711394257000890929214545690603311001020221723655687765211076863089708677395542425560434653675261407553573186628110600310805934260973572574748981057337511087204231284639514675212373467827406468277005960267450032082529515485204560967161084536181302310669361414600312784485196440955543645834291422556141905868819509233594606233309946113794888090781513021726414525213324229170089596973940890785347594431072072596053127734588798538374445944670005429050865105424766758979947060383316683001456790510220848159147778331447955319587919422498893765886875291148414844740093115580443392687050730393688712280091125318577649202241554156708716923354704885075110099164210511697134196132857612189849618150182037053993580904513150376442880066290377780208538422157138907962270939413254183783074295168386237578804375652063606307015525184155967121592624993434196773724805208797104721658808947921455298098238817082959064123227489623974646794805647095739749531435100140989711154848475480931902801649219222218538187439434895021116439360462604502382491611876629483165566303895725070143169069147791775505747805187348491466688418889744155502399852437342634004731143772403219445568921313269708097542694458571818723785934485032411493116424355959033543663353152308846866385281115283718948499827890128106745081246514077653437005670951472474311888518244455967676007191791877992251680812983354685816133529035320186851471325531289139694526097673427819714816508999326213413288796365725867427400159446316034750187602255270820436482782383096299559909406313163480220616214210028920000559728713328752115265030577196168969488750965391975781175185818123231353431967353152437696433094958313830828868492390463159668173404724850144910393740586793258971923794875587283740296880636599557565916662255242876514246954146444031517548410044883647409751611466327795204745737914324517255704524726052142049805353047900531234717814879992349885037071174762023245604207156361899489505504592715247856477478097602218821381997476770206061806401319760127285974249249205108987081046050751018094654353855854885227204080912784085883171282804462891047814984048498597340240901776237253497230982211071875536819981357105658282926818421188025695756520208686829313447045611901581266816514279141142654770846416882967451377714000470951531163554549025642325243395195264314081767037638018766216123179680682200108675745479343369132858989040629591733641778527222688992444883533378921030410840673148251320661613761911349671308857446028288697658108363952280015410621377767169945286996914164070570295959926747566802498134411611650509817117615254651780360767461230571893365622103000881822109774681532451550170590056496524142689318631067366572411250093928657832532412710064491415220634715775656163056042286821698263870331489365617283540257030496469701073771990766317027041022677269622778624508529353455157976041963510920629828837596667287561800013323059395310730577855051316153465049587174321942211793894581614685444536881143621014143112231753826685810748054904425685533135767458327970697293295391771955380329171568035552266123487861822455479806624924869059808834462294418820467294427401437199517455107119276634654339664939213088141239871560530158399128734062432595699131198667878203894220271241032269877471069255396822485328621369137616420362958181540177464450427079277081108857587344187707083368051545548834598742529838514662795188896430303531282856924099913794277046827849008261135533549280097772039506741843202215940782902002899148084473181343255640221712629198326297095088314525835425132500947748243641830739278326475107886133391430417303139750753520886946605565349796651482804068868177956538652098681042018786153953081737305697838047570397930129121057670526123408124692848197551840868385403277751069921282834270826096432098110640961361989019115413063663339747440994368962611418663321731231020601601521158569988798187984085791832941807584241212665358849992755840385348970736170245298932197871293986554316438490901739318473714496405980370257419190792053366924479723100014666498849542655424955075252132707518961283537742104354428712845844135050786826353492261611543292311723782226720233454273108252632791626158109465041376688141211493602421032237680295792353689929147721487824474802322630533366159700449690087370202801437133252815115023665536211707728963236557057986703570862062013023041049809877332862207563629539439088048949084165583225519964763008080201767993056651703625074769555883111249920141843515529643766228056602454336629951552564300521119739779870764295581300060790234531152714385152433033949152757722359255090618420134293722293826984790710137877981063746014271721224598056135644838176616573146543796444877973974990627279615510056869658534319606493357986707793632934240505995658300489186159732512569848254622844769087091787463668894501212324502487693916129874719781763431906429373809311544163570758171661770942505575553100854417956100064319350050626386443223738496738740268774387913039694787121879272054220276810182804818136281463781268123212102861366218915962197561570484054110760660325851593536896583783653349103506416465994243854931869342681870448810088090614684626939144956126752700173734079155481536203826235639390493800001533704609564972712338196160163165027888976661455618648722544887858160054005557537802156155019597636588530211397052438453302319533934992889134325680904606324385971314543302296934590026947833365581723434115140465927893918013457158790536938100262143281967505976755192039440013719429051690550558810367782900833417455811463300952830494841765881262554630712249149282716741879366407674075340717890864674732848860051193205161153129454849357067156181660557999398162198276830800835823976028207781699765901548699464273809986067345247579008781827887320450164308208247176147492528770790176296135548325130863950113635862196773015094962245423051900739664416457697201576366944909186513345708465344624617092910007045654839403939071475071385906362970143583969602212497185125770170296325088332007968868490500337456801194036378157162574340251810158586986296469753477942844771796928481511163618945955084868923995203111814389211428113733796628249504517764538231652775017601757208529878951744855101053513123621086218885304730102643881857121383176002575708651865282978258207593510562192787304041923250517647652506536646915828660051982123881341650992861831886139295224026881266580463077247482000289889970899507019192390153291529439563639868954276579757758474267238626485335320802141275161203262342339359124650959104597882154154146764063267983918956672433156755789428391195305928150513692641464311140111650319148323390221775638307833384690307181902661437817354399011479395962067774226815876658126756931498805890767879365559856676955946418329747923596735827624739670267135788516165485294374661459716510317075357450374934933452884318024542787582875051095222472313360248654187097473322572161313363999095139175681003299748947452650553125495539421593841175052458360021338813374411163570995113687139060027543234932030238621966571028794260273308270413391125815176910519678342438088054730346916396552413921853776804433761817905818580659833775978493530684533617212031789510408871710059304959505991655839116924921030176155998294535732572313431412620351331669551591060063158376918908536377421375229241020121623836883537215691116045688938573608413250220484794632462962276587662313351992133211484682022316503022530397312724488564475611385991048051238562738662028633688606691572978137736705377410255331486426523671753712248860683126928773368970540326510670083932981120280986617055699120962428379737614318592736097914199656084982147166727279114867210720694141557048640192893002495838207107472626352865854853120164564107069841112458989855049520299981375137148986922042066830268004058013637068310940475997460732076764940927634341811361213356711581356606060855670246887992182739305812726778821669217294220190577376985137129873739270032825045876016328355623307998767140226289083913373300059812039914470108362447697343913830942568705160271272955974677740176297255376901514743147365417696697266995126599772606779403727631353337926745103958615386262265187815847046990981412055345406560032248676811124122942833227736831974834124461983285107137472085976891437113946396498796702770973553590606562233939038290637555013643389625181717223205130756358504780766914084848116519598588132237003980073881305895985387720992548059124617292936805076029189015928024172076881383321276438333633779136828071410452061740241813918075696571537383262940357239495167333702875820056156752904117539196409008207648539335614649895170456496977147165455329587378345412299711250843534699196517065685473050260817464150067667253580550948962722703021718492081939977040806419197918855091595455838718223142032496481997105093219631299890070228740865307379968644800107900295406824912912043309050144758507971267817086607045228156733120879558668683515339867065909935860685020770356187849712379357014259719673204852124146430928872146504188105842001936408049438848442820472062746604885467579754698152250832117580265225684740050786650704298720339353044080614381985762638051187222621734329268066443948066977833811556698469796349401132756977632515304999153319520005073546221742296319403053829073289714301682946716758106925593856410073979615302573992456836835559103683620096961230396257696423689620606680321266756302903925471033208655479668262302740652511399724769178648475760027052010781437528763932890196402518929292444896409256641802164392371629212396874323918387914323176033050505982957060756087724909761957981528220463243342856816508022316433868690811039276622220917871881938173029199783071886158928071431776254290495998706039302885192200567727278496403771715604285649329193867791042465662140239924774057655178065114932374155735853780166974924558553522280486887326340865830276878164872350248678433369286586292728494617510873398704375257137113794767432782290978038798697828800323387280644967743570869682152830362462873649237630161380476084031887392603274575044642978442271217739318142861496259986605309288242554361677562403084912833697319917401331968335967839300771156180502977771392659478866474226189276725416406941826266511385165325385826939307507198373701590613800567591419272412059951878817381388114413862992850603990943968739587817597479529473718159565874287766359000466757829401382913839377643693834644148961511275808266944636033251127977439096217648392481829300599447572076932538186418153260323412584542417476026043107896084251330061319073128602181483353246096711142004843940703911322828337107943600151933638163564123303735765797385157086905951539635422344185460654947200681006542149691950006445870105931395420989656227376829998558682182238902072711157255341842734769629920585559878457102442312576055639369661627594511188393438090781916902238540534818638626670822291464302742752462112268685217027360087388343133360026492579225775411033761014629987042060595556958142224540826086514221634452237264347407654869183249845866756363684810787551788727273319226664380678616326021177443287248180604013973465747265221213745094715846202843004520489883426727421714575003666837005205858112694534461249824653282933985460570475474830083798314162893707719030898139236528467207304935548837743567736455606479420328102101588079980096564992240659216554536574244252646157243777553468658878520202519329550892908123045533066571990292499844348537292473027484098666965769201149252415367798012717865448525840662928651019929755809836870642295065315921699952003396436739657119433354579058155576426585298797863385951316153545447727933251346132673972445798327978226029400576704882419399563104706344607633985045507105160976116445730007660439472095048572204767969644782317116774228918321906073068656468444324102274337834824123046401972892436470050693206062910012914457831687871587729764712176185455206574537927460927088154063924506195965780651711161943820095719503858006368105815424320321839553755758914372157348126858088559765396070619857973491713049109650934048437994108667895756129452143578976636901238044090248450159305365052111502387900190107901217264364367564765102123820960692860488208666165661292618532105032310436132547080888664206102844562617119413422502438042368612593521078410862047242912782640852539022140779988050347901970740833780956753744724485000065009130981843044013632477827789473279501295578141112308274669312651263642271560914689768356749458483320030759232217350834936878796107672288411202491732246697413386289344859791032064839382694045547422920346013631660748135911486442017730757368981658117880776683267400501447330349969574806130490335787827419101308169088290767147414888523469176157638122965704401015119132350538303812111457036098215718623080157108015406818762016530610857200103939143545103977750393301062993675800578982435346081127352202846603277940466177970027729526383503102820804315983690806339076649980582733682021849190546574771926896425210068418262526190286575830000781046877451203737086616838096200998442250180641202406959746985065307221324809139800221599744662023341404607238335606229514912525245744086712893714167312760707121782746314635931722711191839401042777259109381303131624568993045687184722965594322735512635922009197708049210700501020118423877147788527604412238206412670911337503410946985520170476196798542440359615036236453286100968688171494420387211855572405373437383751103803568587523070647007310469779109217705093206671084488264888414745364571751680352517405099010609571396190976709741633128888860944259440683300803665747717106181684366666883350869711024295097432935072942491991798924243260278367342711100949465716552170029464277495773540261479968436277753012589820721641380630534830839624660070385674272419122551557205110440458503289397453940081877062509779074666087851060182129788615001531220622473121037346661411783072879593234695621342285821908853067427977236834928308482045879632776877273347640690964228556721894170932899082485867164854025271963660763499854416709262545544760411522443884478625033669298111904770911377826844865894746385465432281896337931553057737277258520045474241979427784919880760453779007242374309464518758840932425382183593550655036338530910363218074510483464884005311444808382821852151592530490468219382944046994031599899289609341594266717152652794053081853764733408303458779143038079294405741555007521323208857722418481152681242509799589336226329702279034575861787375188072257908248571122951411425125998967404604747680591626144866964894280439347677532063213690939148572416656487393469741179957332166766969078904304689721749326834345843942650046719676389731166076976464808532803052061490810090663229086491940298649898026926510545776583491844426893781815612446447365846660561673491835255497621666713560341797378665419290752676263952525122443851948109586597989224771151877429174649433144883717715208838557551978412595450829830672471695977037315766713777530503543323380020647583715981709279309659099843298394018032081431963637613916972200546529419385520037681502389263606322991451735137150051476914493935984706784936396058670017197907555390421979720571650518163513447855452873867810603601865347842028673152546404278415292716246174917561817357330798614580495604344493937408565184599244792108446228121145118177271095408705636386268537703231747052985184641023242721006151065484513385368955367898896895395168798968116177620853989789417017344876972800805948769760261174655598945042911579306679806468514522755331489381839762571513746034120706486406165736069239673351795394170087392837326908810655807547313146435752488955039754423237838884014340783686705591109069212240033724000828063232497153601696787631289789377317075320897353225110334389062836388737395247332015786399603489140007353252324975773419101626864138055371819181071731099456801765225320494727722276034528679435876680256990745769614999647898456809733850133853626953584587190170565654671183011923548218578827181227163643557575237079753554879774354322963873415786077301773103128862664812955422599230666506572828532805457425608508808757202440185961339222408226621954316666263909111776217573931376645877444751489435405517900512923366770885802077996779009454657296496770748308102542196146988893380176528106326248682241743540994843535865855717463151390599384669627516530661197560899232443855126314620299434247060584114024757639135111084921572417392680914845162094782708545020253259680188769006852733660742161280096496355107338774988409703004543606292581239753564495058655122784547073332997362463193660847477997361421512425958713069156150017789808671375697943812711475346093949523747032751568081537661137059172786316150531942840881516006846907807261826456036688010694456062801605352581979997646349444974165014059052006017818885168656402119874337985069987986062594372307909388256478852400454963719370305141018634746243423488055047318990784494667573756217901744508436927814113747514268645938567188260736230430228202130682411726492910572285914770960886288689281462933999606047765406066229748219225940741503261471011741030440635609810276684045133134876499366807808065027181012444640785350906498165415703725217558535019905463040604477333251253814182180463578409531085138030786985892510744505576260098570155146675840276551868055158720859302377922033362472721267883078896947253356047432460086362049579882641263888292751814858565833637238373808282543808418951036000842351078680359272925776425888492285393597578092097646910220688552415873699010551503469896826377373156676612952270189466893195802777318300114394701266831376476353863439966604516660125645672420678684485262987029511711963969706689676941895465982559419897340172758739924403865787603674590527463333078747418111806052892956102217086643268224976018888810171052346497989227671738550602500514844553597208503925160847249998235659704114577618618303100341186944516741356355423465187765690083388593182560103460852999746388615618908494497180981386167601604471502527130730177069866579149773022321071040412661289038849335298145758206674018284459530828040803846083381514052602765677846807800549850217003865375255841159040646486715741282222084835800427976615619516665467841800696728343460643351122907248410392259237009809310628185454044379256489107860277665266157000270748443660393583412202751126131161962671102283857562383916898525860730453469443999376141823200807265097425906108979300149924682970590120340416596284163079527973927012066161857840333370745239384108303715320876931087133997744991284607113425452143232015804423851654618148817508279588145827372976970075960616978788162583187954633183859614384643060779615458010393991435138692836875816902442012760708716578413450089419710739145103450887306465116153779657965740691707378678980198245989113776942735937618426722226949269305255217287425900630086563690581138751739609851684767927513717406753552670447904091244622701135787082777444313424629212078211330247711866802420965620543810980226300059441416318017233267649201568097564220755529496089835925264609185807663971803555036730851384239909908026029114808781679289073139303928684904178189910038668480294974472645840133136791689520109845259053755503264690641257225055873818478665158009938337285470159677665717159696038721448471969269288737413692416408898314267240815688465334544934333471217101449307693051568733673959923639028215932638139283651501191467817111855688530054822504566602756584894986033490843311810091289470282814291329748911860277483888872435605384705440195426222131484094382758777902869981519419470105495459711379813155221116776915482742223699375609526120048538095270747190689620298403312631945004122444122796103188210766050223140624003789380560556257148621977191880807372021472858782987446003097780941103226427069572481358132463814963003939440138976228206412496467641445038700227262707562844154025006957526119929947060051746637218331728148328959932732030895337896057418094312421768175550743590005966365666790728719316249962042459661558496615409810929700384323303151720067925436003473552857319779871648623412837526285454310585301731430577132507688811528712628085992660675856294460310307465332456561180586419002213662653419242556711126565329637852797223816809555562089753110689377570407932350155394342629542169661503199454550595059395108731848762085022629321663022380908334903584701822165356278896898955565840356363605321746254985517875861322503184963951334414069013464448451556536541351577284617191453720120997060038694444995675858001116040060684277715560855961450316184414812684032360173669283799519002481969201844787766109707128827675722158255815315699045600358597975324593765192147796289321518133646363937138509592867266967518220809476166979724841504842884310894720135095940179222200441740372630309241090686651508840920282958599551615821661453603834507899748544613204098011083958976735759304506255729405464813235716980116631733374137303972339905828423068272919554359652714244823155896497560597985813700007134379787712513957247046046115982945848661021198217120336992734021385066974083358691903041192172639377954327383004884666730344818089031639242129061972914290073955502722407625329922590479639940337470562621520484423404274313088659868963960577322796247273178609562391609578378635372519080667754554210834936035169756908226211233727223694532887299027134629704667968969219333259183748303414337919977892561830480833513558142987169938081540462760535456552451263524553176975841379651028676811698613108564621992975273382010385651502892194791960645902220764920360408348420089870391846950305098558263862688409519511091399464606796839154265831265522470126333787743885262979229780952746298839892076219617726281215302900829408296553575678730157164703697266528810969803292409651718752533635787762221892174118849745309692748800318068698971849443563964118959857716320730759577859261657042713266163759511942089729513028977032576386003609311769049591101803839482693253060946920381543993325448358666436022739172023677278522923955924681273932032634567573467020683949730167516481958203942947916056679811332475692262532487005065483983170597223475013163110776283207252337908072616918032460585641207666238023775944112687708780619868680956648274514211348088332857186336797734794451943192145810599067732148416603318001692480542095131590114573926162732810029259304276709303913891460932369145934842476199173250396146245862910044921331332735543184250128768410597296747225943324123679627964457087391017638631162472483883208887428353719109958601229733098694031655207132168502965136870191704734806419220648833916580670080422747393314211096436708336240640758571695013200764193242965774399185884915564624652580850551255984968389113053014256863397897454639877617301816760473042434771262743783008874691726125162137924946233977487827647570907512297198475390252748901452752318739150753681684649581743964674298991635981881322194037332185656179722176390728754797194251677646683189497558671085778773509226283612872742695055427585373807131333629722732548721349330324973629548671386114806687714730984002897960826276379812731637771784434855131914265101630798900456310853654662738495285558436982400373988776280007571382631602567769941824995527590054813016302408107195053271303487567998620204357283983272648094431715106608465515162298994650444341993353935925413864397328316992272477245744476600437785688657914342038329177242512060567088191911596904573609558746436947777869314879271692514711915028508961028445444662066168563854970456418040494226760969150685967384694017688639937724051158295199239635769514776503704603692564574091207793924196206950996131759244924163999011193926927969095694892814133887320078305864838372505162036468560516406076206200364339538598369907928927827293398939046114182479377549889318585421844059556241774219182869184207721645557937055603120073492268803208592291003572464231455172113784844139784396811739512722126933803536635275536908575571183603512634927574672171933868191560676312274151461105331078829671255504239115145484600271112591107358645862357109714307059686953559250391745275221832354880097605035501622134638372565716717317485885782577270725007190101042228355293800034674259728070195348042954429757365182627773838429385216631256008190886445910339807051398742498575329380404328571542316080513268963458343934854531149184740687819547993406626680860372558948965354557871087296799975161252704014638588732133344480665714020703495807285548117305358315106016361022391874127306472739701711759142535762557099113467137526194175799065646112675285423799363980235002973468780055554699607325338589208998607422233984482272724202076571962402110837406050821567693254753861894475158056677577409394433603013749915391259220791616060499748506826810256703359792319639219429074879691002188584992065218424137731620351664559728191121844066324973563283495866484347060251560591231886294253797059137523989793073545553866348216630199313389251442800700012532465069322689506534298016809527053503585293995095253746740075903069570275610601196078372241957459421859751133667341726363490465839257264511042697992407332979536542162990224468355694607576231674390534845085955134177604127313094959798269408796710861450120347842829149525432392673447578683234635647513541736661025615984393592357886143155584324448375652878073823194053748351735005537347683340223922512827359317165357041525621693574224478437205599316045053809176059338070011685512862955137116531840319890184916601581087450947168918160690618976490160863930303998717345220109466477332251393368850270039035149115583500670120472847073786348370313536417238340930410192998850194753831322181797190153649877315288949107348113831001301820021752894035782419790645012858927654775381862880054045097414017459956465823124628156610687299735537952098986766271234335029791813067666336045930157369971890252942378246030339785830589571321460244224678013618451698960362038073933744449423263344903249964263453362913009145293463588470596538717603390817161750730046188126451541638799240556221205296090897238118775517516383605157220718044583767662098498403820858562326034026725913078493174412622828965216612297806496975991065255729506478706127067977082647713948471172154441104991893539971840516788792519035809678508570270554351507291962790734447094521727885233164759410538630136183650262384017193985802965732501172265951816026263809861517902407775526004919072599530526679229314185939280633860457420612047076507529072359932797044998541230257439204023344450179959036876370026534392851612534943396973276145675036815456762824180618090594103824741096491993087456028797490126921545794035783528386740767117772150768808282774886879307121304167379665669758374294251077332132848829403537342039032504524069596959547795642483912446641066111232817548771121599729198208850086310719013432731629371280141903408594061192982004530076012145490711354970327811755913850236102712446513717765548605955465210423053893726888382728505432807986436369068387449303807290018487606861725602627927979835012664018648072875797335091663744660424866541692545167486433794838211469366126916167303811115663605986490472422220417214996454990844233736902920611991173195377181820683020724358993009031216376819169297292281632337042289514222997505004671581881591687773001646602954297211022692943659244012132521804659963156030221104730300498828043941021441711202896419351853647001538434683053562416202597371446481592968020253713777649147819226803648681352458769055180172672607082951202243299142152243772047252803616432048413951670638694014777183384308188878011968068999877872136504652126719024164602210816094120532986846365961858169978956357731222936514964167328135651151907514338405764398594436404468803071554779923094294641001729201454683673609310037765843467982504517855897582828438744562003991457720361790736706273541181011435009765136873296319489784186331223508594155560038163139209414685542338774462840336564570767555977960424714479064562214125881075228204696127115014893773005361085564299549783573716889951631529463848479457486398038991254700010551581710049724434956335237817399378376645893454521949516184978008461874636530300524098210670822783068132825304085195059282910582078213168836862149765440824346878968615913365070065312575525150681035091031017340309237452952861386416903290708431165622780891885012092647711475529167248542361435492665732447191160724296096185423609644161620545980547402953812992975943206725977300008126388509161237825700656308600814722265406677885966201210046832480984965232090161450117196331228509543746725951634638081695015652775976592675242311770026434084733198691855190689507749306685001113930089573426533175962912120334800423963618665460996943047295337330557377002855222034868341267093415708211751606631842963256111783028371031349755563772624149339047190491590088746211262733601126165626739432697679133233984300083135039037008678342112851268703032672098226212590469239433647547308746678863897504143738137751781751477008130936328939073909147356239141840056484453074879194538785287871619217778595602038081211653170761063227452797083675997829030218032586295726681543960227511872861399436817946013836085943124687691187715201497472115277478332031206056722424843338713325529753205176208986009957729719256639094943425572141037971758202764593887872351801730316531754807107981168870569563605648033950486332716371963370168725997276568876487326449241941822746464310045664746334110990625202582795713851754888927956184648374223021206207751909831290625108570576379009124634475967535697294941048083493797180033957535977796828793231489193073534462323274689351609471358706401767480631227342588250838059319235164056454642722661983705446794446478133113496103611791990194349744404286650261500128418945072423171111180055632503497208698447709222022518048659709720217626452885010711459703368763360169492784012560744179608936952148322884282642461688060757546593916338467082517989233960591851440107561829600966398840365652849736811920910726877572177190970442838156510940150033363304096629090510083434912675733923847697599834920308242439562130741389672604579802870780310127246332516553796826772689118955663715738026034827237964775928946865795550775587576354769977761505429780110517622840344813972232753433746734165695159136043390740902506568503066537793431927633285752056500116898109275821115475976762461120178309110357061336823287123013900150665706149533207506272736307601303608095567871637102176112308740990973105024779740782768267381592880678939024077147068131556337927812558274450735172379731599026159643779776895799231789554159928167007049485847815708556817092029959612053081986590394896158362190389558542669631054956175317224665461074571145150969415913469136041562560761052698024283033683316878256341374965290556313453019572296494176817017913516827770760528556538244962883353434450680186914902134310937371272611686800861388260590597580416005847912657239279601112264761745838402689404278077495537868766953630497579677074916509040271125352269862352435382173469653473534968996695904764132757901105364486138403189689569353700679842615250777022420696979074815149788408247551745122841549955517312845664882718110571655333403955664941126955871615330242077557137106815543874453362675799360641533566782429016727720077512190585116876347930938093633337815073524080605974320173092649122630702100744103747387897170938141832283722339764248446632112618842131956362392654495345734154578357223066074957302966056951250949751868259044436705841436389244697229694724676103428462872262250516677901796914414051076972768962945135657667660083295129969829502447153006531326171469535753354890127324013802896444538940723961542049845155286242058826276846473552726405631876402894964456349770888082486147961175066674451490990725513246132943486378766249437850861607150594406655265634186224547992172146085104056781939178834118852000712777872859758790886427273363361686861771305875434665946091365509783207715344666855667198225816639342726941388107437576217316395139560652531623481129544621876749371915501325069637028224953599675155547330450477304736630483677917160212370912577836590380533473525108294713609855384741723107463805724810515565767024594299499454243081759434068748941171728198811492984687035056897246411262776952908813474766899104871231514177701131251352316536882215663972175559859128121132477755471671571225095055065233192982357500167201288879457619184744726652544096385533629984418402915508742067846235823508625522514922305635121827575124321227699724035975495134986177337513695347136561807529075549590405265262503113812174598958538349305557897431387423302951394620618675231560637992783609286503811652817043667664614698910050893764425869384674017536823619383836770474385494615329336776129828096596178834833289368773769376750228977843792258672126461403531185374854588968967180742542132782992704581823208932350453815927191266217919723032696687045678445400664358367194770925387967284828090981007814353221013608917251193410140898444048427835719526097893635397999246379851662476441582681062124882800142527592633962864173399058618015547621231699323179265941812389703002998278427246532904765849749950245543563607214021720649293514412345863756876265973882119735086100386229550822524178151493304140495617352517384069510321883432696429277310254518120349141912321619286953728524898899819767015529468785535346350739154189075149103211031378105949533622334573262240375240657559257369517443330405359465159444183493530805545338590938984620108552695515965667051389041979342680544260577133826721153249684488783451050645979838776384633678773373483356442436833456352327783970657279849843306515226636570475076552696939609574197252716770417807793827498995365261015040054071295860158820710234854235909711776215866774658426212158430706522000805032889030726351394830916494986848900851440807821981040986739995120907627655968031588580417141045883946251267279869170412064623007483860347050526115756988160101793435027715394726904457387808541153564392485063886565500443895796880540129582166121789633105318571294207296719272307808737772544085168423400063104826736713911757207131226185772685157447908997910181206723841078296741472740534426452072418635110985430034157036805972700939837370098534430636403670719607189040107619162332516870761596113843883877512472884954076689705788244821877158123414773977488157237562585812436754232310900169155126971374722412688990220010309869416101512922151921509602753022468084743894460036390460643711696575934372981176220499265409943901212705327207981695329958958246498875002619330516819647053812967915101481383531406332569772712085707724019525836133310403385586244978826120470501995036684294202048957912212122555586156347178345057172395595855201196357181106421891884575723577301455140483092861213908800158254908410243263643120164700119445255504820070934931335879268223346455386077682787768374534857119690431054191077256049785994549813689050949781418877258745088184778973409684098077148945564417167211144332001318565632229286479985348584003304447167903217096281255277403742287533939465860934406557164970062393843553419864861442981523196192376010218658848558346799240033734585376135956633274558631218297669147285779100695902695047634347415483317918625493777354155061224948078941094385174613204480484414633800431374721448269217855004145017455664441434158372030260702140131184721430351167307628479025694058733577631905932065683939601788252040145665395005866954758523536456326957613510826390570999250929495938275973905199724002793712735058971819368920728250738580057195396008581907000693618394573412449542301282204101061321368663637781887673901631473885093259097247871248234813883811813004561920832885654658186655657691152332827784861719848827557832551413042500408833991991868511748225641496514517013089607792039745067744937542184723050678211146094099106515066686220284211043601885054124146388583241276617349833656087436618460957460090231954492391756326147859803771733270488178501540506327799204262253009221954113474623323569420396169321960466954252998985302242196523852611822985568112215564641278158271363456920197917287257077776630156759171392357058763104743933503008081854046610820050184391581333230228127814978655567293675823797086480600518881832112638176702103920527975550794539721470419208204695848389761147761453626148499326314815255887309606373064437864667423748262803156222993813377936477111471822291066525570239149673662151722585755673398414883905874828100720382705124097060244177866354231875568228331861500258031694248102103555324633789592030886773061906206974875740624590052092105806231365413468176774345420495555220362147617626954374294950312527154900978070944318911007732402400664893566761814834528525634427711623374876704029066453594989663888552222377256423926498817310262630258267928709929803082876611576045554941908309772369266354956901415725643179498688300712788761288111273978974448348468001040778030926195588425571320477801335242841481446299213139802268600579952562739941476330951049284702476483880366579557713965203804973917450264939045377412997616651037451612726784316379701910421048958629948637993841665987872724078116150875654580588939540569302098996086817362007751557931585470208265624602536653178865348533449638267349015601949088098159531981772924742471513372977996083360542777686101595999989177695694065849681060810251931556494541489737090039982992708424149291135784362179380581324622080200181983918409374924675302233324017528155854746032914087784497336220947769623888306729864106206899819047846973929396995925417500944961767184612602061067889393326036859896742217011690972162277121667042148302308119713351998871412796951792839645780167971447467619726699303642509914607566927088191352230787339097293741314164217191978895651851535748889037854048673204430098777881444275747658837350932075906355320340314545076597244612680410025663293983742490529593089934334567597622848818073132654829871489793033514668472722953473520031949838950606647072300763626726219246202707404030124279531677947810609645798709621299271234743105426893945346812650440686749333098676972187206784723146001326109618656418810839347626101685140399316865444960639617860892868768117540813302105716106425816965869023872182611551474132558190319220571488071829598565085356018073495574951629891601619943834295072306027013539011508410218471329471535390792381063389292338810028857064845940688855838986270476139609937382451259169461493172830176201678740962629399206029854887187571012692086821423552043973916864769341851148215041285970384912530516206778781391382477337013450571733159387794449946769742123755184392861580196550550964326936285547230246116357186692037419784539685200185773229880088344967617463659328726062004988712122360226336412918127495750303770773335522607032273291356758239470299461233095129818676743498265243158006897588883724888231071031128963804618539797756951573465064036741411510528056598194588823374581025456165441327298930743981815535568331077799447655714599511481591622342957602037590524972237642536279340366971797949510432925124051573074401479581313916753366228790405927673910077281070841158784310265179134106364895478905676779218678242589076441706742672196416040078535258871466164147656885996473184378067772686193736508580878966987547965329696683035310503778360860371419281180569148383860069407033811957029844091139319900336160248743545522130089402123777103838064157156054885471848664208283743491427247769459461302164758479900611586941971440480321733775043456610015124555898618148515335603221586998769919075276067599459828434860445255161235250541793473275975023346084721098289988253016996265494765119738633955053153573703473372038716328954873811381335047117773558654548576609530421565648674036049520104941769679861183433174878922263646374587590851915089822991335283004474131815842475218275831585450995371339964415431307337258284713007837688950988317207248295026582280163317380053712713987112501860899739870823899485341644876074223408481758250304940880156675853347995476785163822550096705351967093371172858879896820332208438510649660602815930602533744915875975257442337812807909050483269314383109851641509785970277319021712084454619491072568725244211803469668039328178610930495822597873255091587504586675943683391357716698084307587050615092442760425643031419584917241380144158176782473204656423637776265257186932381175436988499430593104306241747813736751978054612956214095451974871001876453200402502965762562452112404570435718441228372336248159029594464379048120626013709539231508227205517863025719441935216580391432761544957341349168339564657518759539974324324804435371219247935298212990046683040625268896282961081046855836389269359336263411491786116875979446235147138225976656184763526444522429011636533680469105656977318993389687644076993726961640789299921715016865921575133934759653177371894332654715318782823329148444590943639871418173011099856463144306312868173037317102552227179056731792595512584603822689361736165696046112358893108045682296108176387673436657419648548626288603179648683256662768032376764719737749802925620676015634555505174203204275539431678669395663349608359748404226279214648438705406272527420792357936900601205702784858382477880517094220715695825292108172593620234572882603483993471446590493282298588281439282059493247838122382289478305001153790193004996702859224930836965696981848120549695204917533911048690643774901113690072541943211863999941781782961062285587825915324160387394339683021124363284289253328342481040119139686650826129642657446776370120835316326186214355944118177061589621855266596421937617017863812091458735890757584484090332505631263265726772483085985859142774017121735131541085525368513839803666655751272167716805843760207046313742107164219307352765362294087983606635102560692964718963569330188719202047822661085860975072219929260801575275432493032644656779891045271207966665072024176786801881785151595414952302280558930391911716733581339853161159512137588600951811952595828806784255607059747191957645585583298570932208561711069603293126449751734972659109716938563429856074427144564737698993815074561258948211314366601171893890271473335833061660551653710579289057080576066834029498777391242037088939560030710359261439526106119397583977126843857255059976604685012322219125092264283031976438742282424406920695109657514918510053841918296504774837782712703106968344329951291167144256981331560593095662736860337177975114009152110078632172277413161545061107713125021922431085377577417576857044506041093979396585257991264175089641449910589139152032542796508524439141219636512524580005622840573553819356613718979800664100495098991382220218489217810318084766233977205827853954840764584586389903766529829661650992277928858747068472375748142703664675375490553076991237921290526054515703306551661205330029856682540228376069999571465793124107704476514200950698688105289901682554551348742302274258080050213027435081803975811865175182778977594560440054270238073581240631784201130694379822104392832239538476705286949112029006816882356082744540422910430892363761728645274949947316501318381388780769070446468423864679476855082458594975796307026705134855420358584328543504994441322262790957457603575010692196658495392796695621322498167355036252721769954220250187262082450847900562635631965105708628867138376805357253189598619921890352723185672395114044841987922374529291116590146718379980589559056967359143023788530826098823467861470443293835725419560211986240221029503622506859395814196545320082984937011893775903672483593512090677147400000212892496339829913257399546801092335777055541258898596351713751058145607356465704260541112378691526804990883724099856556171151545802461057968679112278182054977918694844913171839776731501854862284509381262436135985009915198636090060925625717101113316062140205115891848713452823023634511678392752751704103740815288543828589222085073827868920936832999719513613575642641797769073574334854620468399654887415679917336659842955126758332029173254313687369432250814422955851857269046512887534220302610398321610160846153535550023320833571078701077198024746186056670399899910337741616409981819667544343385683573687248077941820233289146263059657199557166891705244479197337675194333113350835614503675900472992398797282718038600299387608306361036697240628469717536439640460052897581419022648814445853017155593412690530343808911586125320038385803737969816241773189861930452387567510758209770497462901768222676922989358172875527139068505627401176669407141689141058229990173261984052415053714730752597741558927167783083549808763902745467844995438698312889926260881988685880731550483904265181376989525186729998829302848859139917523063605552636149392042697171477646996488654885078765096658909289531561444819176586890364336965348660268209046965053006791874885280132733684465160065849124570570632861848604640185520950144436802991704649818986007629318567751089583779754394493464951969408598395792350262136774768072934056795073328701507568372032069304511288386749205617461800386074567981535131833761256572674281615866913867795790403561848701357281524992231114738246913321505927555232121327597039052855488733003992429429506500688352988304892297577491481121648371549621161721138572938156895984323351525229678246017200567301920731750678741935614514943494036811114136902320295771500407182166691840843526130467471705409499951809875326751760097940126020433408392535248674659631104224728862301336206459235847058893759151261460033730346681370849491495329504178559667759683617213837299117945917733727968251161177349793560265423807381779504585401780512776104360770265953623671123079675414438231678528032849878228622130592233103539988064756960299298979665374275957785250289548432017894953343824830583896458405239881086395207778660821182604794735424356090995951779115494031839627427936271304452340095217939436623748589800074583201861619430817928432232672655391883751065312893213993398569293169328880044074440716140141620333185869624442944515269815632622335980788394075776384971341497473523447094406791019053903083832738563366460585596725967284696977497524034303094394452781089339157454769855087167858442386517400538638051648036299866503105665243818970756027735460227371700486024847946694028748522541017094756236705634091435974061761102105146761586536144779042647624245749726024176309372396635534382819577943776692398609957775272063149776004324858900389305006522839650196481660734957898637154845847775149434364715204464232249561118574260120046738948707325145612982090267885707188867213107175650593550414891962434005971313119934263540299913273370678406165047014364334035859348429465812224545556402895885455200493768313678057048983174826139417005605847618753373869196593221111325525235526751016091679503096298206075702926276499254885554516441057140847105693521687088347862602322055918786299726177988424425921466691965866170908977949759634524521607134748233204724451712856560689648304698824456439032434082855316951532460891319973333888781936801582244316148909265602992142138722475652819284525255583698617546678812228694926020805776102457968577769206008408162636776503256402201143328849101401073221219904573042373502064531920627585894761255458667153647591505992903123055533979339344871119668337547926199765516578838103888287340023914783516038756452124708585057846034134285019995941948564811453922068156979086080783023772410808429797375156387781603189550281678524308642396319827390614000124636657896829808212397595686001924939747019225064165745085486268399378050093797078835420694568866660341953884322378352155922905537809493947706339886200631263480277942821996328281149442911233280786233826974145666316992106318766840568850347131201907260173099028247218973148611181253396320612874663305961097856811799873167910626384060263393040716903917236438482282717781411690586293740082533023892041740519440024788949368373199078056369082080691622592807097448090958154576314827695993377640919095563818472362616981404332736778600733635522324965736588850650737397714102846236158162062849362651004223961044237270839373125249088448280248002537268379062898712214505860510111733118914864422583955405076575621701119951611481218216178880158574261321440270091918336702949308905716684448777181968139091080636266652545784079438117117748774303592482184410201634076460421875570424311168559933815955361021951973612615880650389893541056750206063157344336491083416413307856940754414451573811513358633599073573847521658460142644208517508472184118871254788142899713124705514687510898349062232145579742325946205325138300422818315813268343033783046685785739791506626982197264003728769328095950887183068939692250759528311320084928801472039147263472249819934276142015192701759027032162276036940698736029407402076116644895217738826749562885650791114230995409053381231866094252327017023248725361049095382777519162679592039334438595025193005111493832943590239756451500681401748515443841769477607016355327624231635557092977579853674976092331632277934552508631372478063441286324775455494014437326831851935896607367056185560136515685792408488231697154636259553396805368034221652087478854996331386836514702672218266561564535287611977739628771479689251437080417403552605703281877732944392214634170453948873372245196828964625574428871938583917428888635720052809467488386822769031550765320563072890267503458267991996704580432764747780674942965735992721821228824951566345921215865825590878694082595558060569834684273225936608786923524330040899239386945577686778728261505886070789982181569418939516580682495907151757785441733616519063042401000388907202141537867112111509944694795684365321075094374717378391891768587757127991898816200503336819567095917109638964341969022833425656859814579960682622475587198703840508476230242978954635123927058477358644491090742077063388009948999663798781858455238633315683838091718913557701429178411641619151641047581219019464014281896325111695535771181269988449912509090430936885570219127801450988016714746250642760467146245542410365369786439129767488607410549720576525925029338093539561490248296589252487342562603725325713076220581551077385624149103902912976348707820257078471738702788491586796759210564488685529445603115051670797786985056129636976962587528137850254296223589209741160966721838006918502497998258599845982330182555479188154709554515312938605963457189721805573336595299609679240107999382802329003214760898255070958750949292871570200948737540910347252077049788102096491070246846256306728906440393421243759712508156552043127928025756161273433880902949795053577404450275219385859705269660859518517001212813668329917360769316872455856297913928290034544930767646186476451241859871608567044921201092014381740999611189268462430279057540727775634911813735184415720343211257333493757714832911951013735335598706934714919015307267277887542570051869568978608595748900936787190474611560880431324357639326884889320611440568034730056255108244695449982415497214950749368426967866213462467787044529185143928379584773326697708106153766936806673831547775416074241295956012514325988390302483371064342116659504817488559540042235205232439577236500477899035932269213506039466926001244389272725192963254695161030824050800806864624555150718601048141233360076916257058584473416890501288256850593293472257814236492150435219498559190990100217386005107452399212511023411138355512948027032370639704125576072149993241902624998936907371491685485159297058688598847254389179489861222178760759632602116486401414220109310662066992160262926346678653311364928118079174774197024097591708471615692442503561460827028466855817176214241947280275132153582508825885047581210076932280649381964135570874141798887365826710734094973787422001912755623171420449759420759030738180281799970278101525390973140438731341969123551080628612087251552771051280894532252285002156414886793970140412270119450725524740396378680304450913939352973917563223915388261476291166318418307400899062777871698945301827940052250402330683981209742506889638046101148911370967207016042192928347422113599175875530364345333339224365450068102377561334658325681979844477627424116399459675336960665423499764118828708963137213002923621981719157149571887491022350326203082817943359433053365953165018940375546307014359846117422572313510722860696114836299950377893626091372384038788739612633325861176940968983218945247061675480522404784140065653763713569706092066963057432370074457422807319249962015142735831749263684353268489136463531804171387496344432709798099161883429871361699346010567552471901956552484999685745810796770930966754414697333673006745388160660835421936809345116922945347611393044645893833876072311507048612751615342257880401458415772680590493330205621299189658687839157513652196752367579353645752262150278616850361733596322498661223346930631573236542205648046962307112071031570970623012367744585553323910858737216910501306791949567843213166569068484108238326423046087126851898171113149332601491771947771234524057282909702103105193301165831700900779015460513809592321371225537652588129251465480626104756259489289331335332865672103813958381571292754129339652896464660976301977234433458454305273892132226233556009449745508795295561186696060136297264610712025080280541299220919971308387074000784235203667601922577811217711157250495531462966229450576291993732430584959024003269789808813703249198222732319927848206350494089352659143573323042313177657274926858751515908924654574190012099823766652770345252944859151296042724924193628806887282542047712978551995164022085916639372781762232157451331329546123248510455235726313090745459371984375620523530904583714697899151587571226443682642596107420294116391696468345997390689328827434839868033507125547296339070305061349293119940178132053103569833705814581230308982534256796689552660969428700178096390582767345219874117401445940546242483958480048675214918873163910175213598476855103850907580729662482097129428269084314831644425776438565423097284248050795371118158599387361800241400118114169583282340211140504021759276945365209006423280169338460021297560881664097112753120261671688620218309214653501790465287998617514518170087102382354363681444671471997924877915939364080091178573983374472103363852458616825161156174997497653271705412753567880152228562243137247594843996318129824267453341240511081891805517233459100799647469256621226191940662336828012978237726882496414232239780192120720536620172999798323846912430311847585692459349833131780727230475599540113234904890852755954224884796711669954044290404688512636827158270658719765429027466227174448185897443609232457758157200855150808794670557381819917292464430367711535280765904034109663297980337012682914218395394555299179721189749701452166551044755522215065251758932703147277973323981763763963902053838747310139118974012902198332684044832411272176156607252680174264302864492697191188626049029108496851065104465277120862686048907999777395469081618031495699546502141630407346605180640108226737381856543382905298934082481887367479673571134317593617613285064998920432097696022271466387675869577915030016388084922691186250525171374159563247147366332309974887321666745580275577602489845603774775264464649477331031163813051080421872309818149761035951347852140236576736611012252578186291979187439342069952236947463630167631095383452931445465013826413185891443263707504926630543741082587226107748610906649456134647160227208820035065663407369831450766898060343128781641247516983955649398510442570860715178027887675806627267124429971244661073726585436170130892236916955892833141296365140830993504102177683228512534943882223046780371221863272848943777820887960861445879384102447520139783920802355272672244757939372886345974638314561295125151648057601048401719416160310157081678507151714222088636009961403858629572844463323814950763254118392112679254920121603184344161336705511133760771580250293085315123437169886170930951701895560672138540197516350986767028343395866803593632300103751263667506262121500362311759912329542291777165274991798156965155898427740333990877009193879598591002606297315433935187091177009396398172221054312003480163827153099310338136114973245929493858150546753138374351986900969380591344072254377857459742176323976165665647909381627531334922494814792547690567195431067577869894675711641570304161976876495940306544278665932187679323201222355748095430722279468444508711769614880974468524059171660725104124379473510629976204493126537756383466295913761404396713298607388874687283945839794874748536222790953846256186589899286005804826933033537530761183065700735581176040920785340065571516533363967312314716314507511742812386397433587478053330561400056764207448238185925964752847499219225474029360793752315710400019684836283802100689570600048721739361269971153577425014448652880517733214850202567337354559609279369320924342352190111752618210769100702835193364673831363644295676197198583272199785667931700479908709694498003914086312972802771643212525335018978894464394880126781749668319998125289165207878720408236624371990851856011245002905545211497191143403605083859840568584432201253816530746198446806056230212179978465946504770928934029014379780089109056547781713092885089738021597316062343509261877209861810460727514465183361019236057227195176333342139735265044744064556826500655837461567219476389438870170939375043578777037632109082542091842200102376795354162346716193462097336322890853022474767033638942550147094130761760489540165836118851990437020418745939861143402658867140584279346252361015506224124068459922316661890985631379100378133080919745488588108054510532737352890169343030529666589522128289382297264954048333631396044452838062521376804777019049522214482783819535032714994591459597404585364096907449721425784894626632334211209956151239651402923278268048286268934733926564499646885339742944726329192050478833973994456823010548185168046947364924573762674493107828422258013890713138305577888909764347942244877660053188359196031215033360444720816726785399532170332965911214314235523156023475056612098936742238576613593411985122461269260202861095896828618533160047385473597713004367902374829408307876798316828692975283281713826658733898569718976121669765520992497886640769697985897358028890462450839898153747571079348768251482399399053717914648022160059515521949406743144956011871007873108907710292805400582312238931913113202174800539590335335777582588480805369072773413538519204985014459222514090944794740322257599292356649784914448390461041545607584845727224536949734393173072111820136400231480191535598902552492987229327057632413844248317994138481054948612483089578985262181927797777882755180376277233325251902442314102338329971011253352866140504526882778258879195913909650956330644607496605943327675847123841401049519421076636973047964596233214488585835791705858879425957373975408572363137463398637321910270235182497164889837889819644460070207740199004227785645196221183125873018771953496333582841479095681298677900055392326289093418992615863232808079497185016997185526342444105306818244438323535494339334939375760629424562404074246220040853050045843211021050019159628724172585683331045401217734562101414289994008243212200031609544501732146920583601486491627132341802379616315676421950267233907449639991546348575391606669492326553725271244007242129245344924767004819167997225982338988742652118272619573784084609833013930361651897032992336417627455548810577393778560559010060597161109428602453434527038965896881185324378461152949585403743958859065379816669364617674193263354070088119644489058130217501326951669675845748821890875205495352276598069410093327722107230462392909001614804733362892017070465627328115830811815056773789107547610269029178335272821279567958814633575733063866178056267978944949711832256913496626073730197438093056790410425172532530102490286338601380587620269392000513492859352712803102024255360794701886579071486186194786263445864833205120392384173219444341424615321402192355157760016736234864497268682347766736087729010477396060796332135216434815959307873431278228467441706036261007264209976049559289005736496633177626844225819148820573130921299850510872788336202624286155719087201761376529394519943644793232840899763557205953007391373785046064237709292811470268161929002569556220509460214219621409219188888841997764294788996395201873498935768806351913287201473082723005241754788537417153489134776583488135125305875461551377096203679136459967544297091854265972345881612551861523062082099530373505212451182687508525195683797572020083903251815923758855776284483554010637817376130642092265863338801133840145449482594392443056383925784588197879240908922221197664532523417756475572350043222324724139699064072307069193933359248087539985623656634235233297269159743066329136020123319495188387734728117598330125814219442986632912573166893483695213124795771616343131868931723698481685996312096291407282981342816499398702912040783457305736893316962951752675961332327638070928981729156874572741809322918784618505245783863522772005787780302596398073943302795452411561911519680808063455223252863361578532602993794400292118507519698258406837684094244712649303978079401849124788857903567677006546109873385708828272990617296735518186059691498529383756532704363616591451109948074408721411892688332460720275481746150763020032957245695296370700971134970663179319421699862942511243694618614363060169545867776913483034616916987704701589407916201835554606528540812523311051068840500227712985053880745435139712333856264131808476961166014437113667894248557402271286363687946244949121829696285235716309363994267825743245873172381124478012145934424445560499181514275519648058208026581503529355003380617778801451386467881063350174461691567548721992241675064049387227588024021172682320417637188015209687467176675536400021219685439954421486766369583996037840827426891518086744397623455713683852615714224901846631547325607903210399308504541473051272244076665659452032392274118598844083540218590593586492574924202338598842988403439052004141343660820960527326383504530264912449604118511251325814082663825849934061349252014719929070712411347166782979684569090652300340952814073544932824725126461296205759730643300149325207610128857209654666417930780640028964761911995474185668137340225993157016177578069283995603335603546550232159827796844950328363965897021794248955802964311600731921348957700265569833158720278124742489590133461848524350865911771157148477187516932698487403544930532627392577877794098722957834736528701684565751952643229235305545408305662931630663071596827422941247644261982220636336846659533359970174580741534312102748875156286273852094150585163409532667996167159919674312189244134568980768837223813721303271829179497731363338950297733331300082167743809570718165015935912063551098960390138962416128226623962232958177793992421773682824613423403331890634353327151846195420484655438092468027026652844583681694496457643606812332769288287172610070874203367901269750770056271559372546844669312904727486336920818707010917514800015104460934757878849635492896370062097006683875019389339826778454498464030018582414212554508645737199567332424305220496934677465261304819315867471099643630173310089859030451420411333729514223270821817497729031892461837322779633587779072660736823656413511378456189512283245557292043103646197851342004704484086304790745005838684062074216300047352870424820720118724636192355199807559830403314879789816599031705448512828829578767672784265372999263816422982595879920896068257517496533275752342687902881277347347972874992185175607019267207777457161697150398516806706068567163131185198206675801332901939433270691556092670602980148779378669704434519673559845039722199745884241631256288751282687353883559185046828446547418531217473975748728768023183397213366468031254656201321594191004205679954257949793956324420094397701171603604388891553121601318593871963398385565143210083644597272100234088881494432385825836853301647686434305440245510108184887237383880794023074468703189642760863479028596982220093061777897551384593213950112821681975879004262006228207120426336301995563812925565875970547979103183864788864871373826167330942025507582281481076254551698853171512385491072669206627862021398734733384459283885417056605082611898720931301122779976060760630697885741768518329804737192792969702277652898705605187834963872320340940402025950651909992065708300318073962863422061510560955795794836855441606210526654643401741659710111609544201379241122207105423907105103307594140116446572022539321114305862389734629894330054319402571240662341347017249348188071234789974462730419305764140434957486288246336765478957053481318423011631083505062406111166520612077981502103528397199029778341113663424578456662601341878865281058399887249590716368269536288463850294327528591124680904797303494831119535786864551471681790913408545552592942025270082641823803343719575878707386708362488288067237957356444315714101677707477677908727047118364905560128850641231310687060498165739520745563424209755293847932725766633514802349843954906603414257583128886590947995154785335884664935886631978291302729562307770637394635786371265312283970475416129605549435234116579835964904478193341277954356105754438327073882725930993762630162171172568075051647664696125710287022370941669226962891591052018759468194227413690212076108815055713148249756256942185491587621584395742626100303206383700165451123712291441998046618309118389070202462509490209928528874901723475324840273212143651757333286989016045314781770656776549770327087246347629068610116429142439601119321059962393165266805700032052582824648635044641715459127921701434612121456138355611503118562395975980942753417334700058162834069436785987687178654737139244398550192327557060814167413448342687717982809268791716012821299060156160297233345737551880243087868317721068475289700475548439082793268042356865755725570948720597042377021418735176481379304945857301697125601198219645363967796999134034076458154590386229048276494424389765990074830978668070732395893429273055900074219662612633836473072585669223044378552688421192448064644201769809789110935043241625405306891495814217628553734351066043108955157832410567464795969979320664257792251141547091381656107879553452736128547684010046733759435524315864958155399911477725904178143384697559997633131128715396277724431571368994133224747946434467308435432820928232280038590333881580204657458594640204325602854467145082370148368657282104408312746989944969588049134705070975250085488343086767716690852121709338706456865294303041951614000806839535189940749134528240999601478649595538008204214421013625735212579860963072969655843979709220773352815374992814411209600736183473644233861448022929123913304268879984775996737501760274695680072507765304961279584898634996275109559366463905933923233758798799055296016220860414739556602637589167119205712202793649963903323400585672369776418776955475490109850728646962421168576370526605664838193294245452247211560269926772588825538652628524069121286628682166253500546578341270292665642569229818060533767816434306503940041407956205220243897372126442912602141312152635714080632984606470499418105483825584180841068651537995264438201749759955431559725350743237427994124048172160715277937281186730655038312944813636977941861832769778379312341806866856253133693652298159762786779913821444836924086622584774441956262366196672779802059462095241762377457307777576341200949678017191627023086609878614140850833195691211566164350639861041737659148147320602951075091508630767855008361627782456409780251628565053092050864899825897446450022376032819992778811386423883104236500793589195398395973545379323452376087082769973211750155786378762544415262236833951333035391816625391512691464983927299489075125113409616434027705144861314875522776889144689221805808170415974205640299931289332589858661268590869403569518562259061287184758822661359347907053393272940067573595089323502867363502407487908698903507201863515596171496697867722360418563275100344097962464359663906808133738864367201348695242576202247731405495084100037774200342554633373081856794733922101698751387507603385730105793132688082397723868490598772310619050699152249245772752580390014088788230493664479357024167969581964668221939873735816423429312703728311081331741143566703011038803110728097837492272281029675860888157271960374965865247627879169963757965883697980944259812946989240869924518697132361588145453579917143892092933381208998181483207150107976060644608558780880382867278917383743060305145016281933935345439797436921051752292526869233601191639405330546807080786542296968124585329801519726759216782121847366106696643629033170764145078314880105511272428692171466873892378711931760960000171372664731351946101664528740989145003718008692179071874336430978644436529640819773389646415151803000438659887140257159818600200922282587156773919713531685357663969430826401907210349705220349463885258454324559817277711036381596907617008465873190375459869969744922813648461311540333933950822957848838377467064205585915635324655411181069885445406431302734124251852687235091929375541775094599100127906707769289641056953079721099010338652513557296590719782273483392540797425127859549100171961343187360065638311104627530172463425678166451441050900933463656803530369871372712561882725970807808394896815070020260033546137914844094388700640450313532236286929060036219275695153205334015612779691448894894958091782530321933298278244107683970115553117680391132247324647586381868476494671403630223175019953059477749953772166255675905931108912746961107322712261269187492964654164136334230707170828976055851783819801174411386964175230050652133784394478282527495037925368098261835218906673449416478534646800411457798871737562443198208882421213727115175371130950639231065573804730959429029446239150686471655090620256987345457772552038411948332562202971964115963435251665775955190099563779146433180783672387190688113589782739930572881092968680503070302800358323170786161811987698389526697512114732347098650591055421283585133540692664850727549868102791441755921657958314030992005453063144602697030736155279205926555130249427116092295981233764022034424031906516413839476288738065626078273996188074861872182722151225462306297351348951172366670055362650738722445585642405813140665473595117743326049236537838543354950103160589573446458342397080127885106333448133682927956424171108086893645905485166153456608325736608151187543175947066303232000398006342320618400937712182132867330361575763939439683824273816962764909394467285200736650477207752312238941929174894450867625426106962966144653427972606586429594978453297269072947102524966542940466514708231794988993105214765392764021609881854458435803688288939879166472861409418345981601553383294617110547005801683353726501845639164335475114832495513953026919991866637614808018036910422598100090117539736090055662295182678581194364152973424952683318387536387034525112392348635960995828916916828241955578131891652116149419010329574814892747617444992212726993816186166084148122587499787512024149146295650687608369194148162946403649801175065603327114009246103908076481554190918816844202395499684959505265662672255791779325921888669055145310325014316960817004485008314205562020751545619652876225518474466084346382102087647420811514740177083271659713637641808708804257823801740511337290451548023736312975363193299451531244286540461685255198547309105897160177476587913502255106985579149922030209303223776750349668280644512777925068589839762895805919936232996289923664797073699029263633210655660313158741151119215007728902636238798227106041836768778689032716511779607246912037881223067390216877880335973566300364949251694280181764477961822863142664066286388254040619087464101886852829439538241944310162016164176567376725317656818725576733066538362091292743522105011609158334790575358486826181473091520251239752104459949218202195883810704677142813427081329386593024328714442922275862365164950815165788376521413215818998892350175674183806060117825408029599613488471643856450312327396192121155924689941092857216840925919632872321700198612334628104449291766824849715817793560740700325668912807877035160142164510551074148629385913756249767208729518792987667205781829057557021641228344599430763336438842314302922363599334531978586581590554745835665113240096269472690296637260517062025493144891275527066336579219490839314739185275408236065945238146282352962039861479661559976309459445046773002990791953752775487425870196245480829139132213873475388797214378763454096651146117363606094803635608558683561985197869955022838482591885861639924137915597521003280246872127790055715539815205101825897569817893970206082427806507791769547531796125421576612946766541599707680203761512528675541155533931774895444687975566620214191818741910585301496636355846341394990506316749697135555849089517396746253355308007618786026772944938435096005504435393525993480864523299184151911332382948193423661451573209406699635775918765516426019707726983049182039689246176166863764633568023304786518050370652002222144270327866608771796547907618309762683155389297289274505581882110868028973335109442293635094379572672195787576279459015244776171205525489559220109241988416223788051727431690094176478728263967937612311325141477307328830050526469185467733939072713136338996832233671796378052229801586024712820057595655934009172033025566379356940632414200782507869690988312191011779918795757814906656599463218989363528252585256633923325524343757029766904812716958434034700164986629845326582109182539620594250507184083907764568732701360870634642424111854857047859765145945817817665256190134031171592691360185390003433528720822926290547138203929005008277928336033100746379702975874823653877237049258715061540884936804154378122301548156329929850061651822227268555363400575869927479977704116313433076060106123313345628745931169002676342270732300669762309995775057275466389270731725177009123608425416709088592666785577685870541564726390412850203341154192041873646878438895175776418986498896807072747799083296232169127471490963306540492339286789571139223941506518082638739222560028637491424573339285099723949925818298168420043926010872292939602502221145004880087225492235384223302773703829447230966769563711870586739044181522785599594298994354570164927440746795684755234326321373364364414105783504573205963922439110620962840510396226496169982215937916398684404562569960840625241621225829875443259928119983480476028595158546897586432970997746990116083957430662689372754872442931191172767468455922455176099525881342074338797651991461063777735134099575884965834235135198924296900470407985247529419834610361819230808634257496097911207471743922650880888029714013272715899015509765885445777533261544234905859815039043682017653218822075012811627178463499484682498735308335046576007721444912547130645004805476570466047481648607386411941182481143811745710694248064956980346713878594779063169317632810971819180856847099253287592353297375851468830311628070753799706657482542640595982312253083744532605674176730765198175790686522850933209004281750163465561707876560691052826361288686641292487579659882005182926850346720949887462978410375567492156379429215095232395585601441075950984529204655744666512465438385763529228397398772864967814055080808159669909115394593606148924822517112695985582626687493813335275128438093522540337752912361157168680408124528491360840420418926847728408098922972360750557963596315799457177374836455817921797853809862601651569139708023135327761148905726474560391149244923391915494862332866574755259803881017535693521350201592508470250962998565901168684272773198327608725207373126904017403880825838808817583100187423028192703714142257399795123699734295243708086163814023065786058446969313903308036410952704847020557085468159281105707021590143043111333583398956418023709907569676908336150589582368243738663053658709415052370914945257204495031818408423279428394673822067011759423615323020234826638043568015067943977308114577709948330332194843894398033947516029765980055894760738492496639736589009197345244140439862074324665662731134291437135894464226516295878129704956493185905674867229248634227115099087857091614709159614502149363902557757124840464775446834716087266208030784621424231518773187849583724751067086443833335804411021892859965677397089909567193005712607262237650955496570386393935598231500047813405844176755161055295606961546339800017871376726282313500606001389669891158039111418913824997283896409531018304307415479163696371428348192157050125737891511733288683713704794489175937172577399043845136236570202116525625940464592167269299198666784125860970829548970768624983608657671859020934702742774514261680517491781522005839330133921579233545351584156631326496997157950272517205738456569348682779391663632425609490295183652130215512370952178501919897119054759399188317809478819625645079661277265056210710455855582290620462383070731842555934624961290732319229356892255656729622348447455403087667392896383767197840678547643936498499042444869202579917348759818135528177716227900013836285318133108215793024402160571829132829634094003816837603033145786140544580926239948531108916382877635397081121976226622832424601863929557937758169361397625038339690378830039660332996730406363633308365559599896263773160537761072425172736811739986965664557480364478269799673524085718300659071693387642292376918871184570294908086007740595521224978322160412444162282244316285183772676626551172079858903662349488283224542247778051596184308865204975081408436423299151231609794106176446893861620672453787322973735608954965233338729486124496757105964234313649345722779118169656081626540288851096718469860935299124889669033415096783923142317187303730016347907372480621691983265344798916614834128415897347967202297561067118272642020652042482168504750993457402585767121237087273302307319268461014189496577725184584441307957532792825428450997079401396710655123795082398884025350721647883387442125985602339717855330462390814155792033707128795494944906739952341806606819688568260434399825016276811716229699784738389747683234023225704347113875566752182432865807659297219881138147532121339766139409812294434121176729778780262777583593134682172191798225381430769317668107067562736884726902716769657832212264492656883158431253673410659499506926678314966658730573144358529825944454205075702916811520188334288502159264723328258012193715346452987617285512882744146125372559583438737535891786975429246877913044545132639702992914504229441721952786298016593242705430774609801410017999573767276112104092212437798860013483631157863077088304372615273678972716034486187617421784192888560853454030316775947730898001174473849178810033253498744588950428280298214548333617790679522970076912081242793444843993106788387981216274205826903612348245875958579734626501887632659557607980149292965980605620816904428709906954862220577543154376804824319126661929404507300746203229717803452289105193738091025458280767284326659999507653004686612874790483388153560827776401974155727692247050239600796596840554044402483959864200998696599973783612250614944185062396729962601727594002011606774079767673474902684730316287596156619639512532885803066466216551084433653558436845517658667257226984683648340272796731636097035236076255699568792866014143672887762121827465728732990253569808518821060859469145144066585691529291102714647321327412913095288997197020168944003630239175620271450786481759314381560386519303426694881664827993585559452058383186465405642623059064038975621497588163535125898018417518647526287223004362095223976871977510822972119317595795783898043452061435685599322201834975713419866875808950577479808252938542252049734919654287204721285975173310170419672579568351553252906888289161743939420073913894775069329094016288311612008408709251857678442150074940235712175602082656329301033970724854249830218538622336258216302664498556756074415121193512484900985471960737628230965603924888198110418140545786612378503571825346719123088480160270371510875021330786712868550488630423783623910655967750774730505465886980921408105769935633499375716494231359918763532776893410910751258672248783172056026034442964542502489970494887749435836576820990316656204449973575722978308776210167157289040393034362927487168994516471844155042017097568474332409443005516669473643883568457136669747252330475122722415482631195413777823287563992732278111810609049482871604063318764252816082311602678479931301992354045290971496583572895088892591794360206678622437445501888432532890246749226370597347122890311272484196169327070103128195036137168954313287955334517640677756732971565662315686570913577161170280078106648240026468067403649210629669419279675894228708157600689163315368658933735625232191989285911457191799753999863514551981800817958199999184476929248201990047758649055847574417063275608650283107678071510285925026596994672609391520437275002436375144812560317363760531768204000194051539440806946339488615686314565743997775239310546609111618828067702746218770449243242626569419182215797842746858445684086870026110886143600869270253965458862062099256404896116227774086779620688573751699842595729341817974061948383520225252214791797806317889530524736764431052701125855520625449158293964022223995673022037614893378191078055258712352887356869867951251373543049473920173138385156532475035632620656510862556816522819183010348774011872575836360959476387729850597596314299017769845622625470852533521682320154326416539624394495332362786432038870174096656836486108224440432896401497699068745433749463968639900662597179384844423663141711329510051797688790533850155810572507961622391799033022830322817216869314682500475951401630490390642731086434704481401766731693633274721966205377448463935705843195540012475952727088960029638580943039100737465446411925345760334416783992585709454790077026674787253127614986135669790973324894395840453237659110137519466108829345820758537525923349700354399083685837841070708850778230743477749590278458336275189040912226582222642816510339844198269963698223324137050771803644491388319505769011636375660741185234445717454467384156049624615161569768990694044193499671552073192356428941407413378669480609242691959370037445865906088358691969888489990671629708634909272150385182264784971129438687647162470700781032141290900274475536500763999730430560464504788225928275742826752677644525583290668594079373956169244633659097524386558371022494059344892487897137387730667245874790998020154626890324635188691113874437336634102743898082459766266639965521498857693122679215950895013303481938886575062273459897946664236206858008431127854934759336188639677033364092583589239320335465904019230822502874655093870148985054513667885932437338513494901394117513747210344234659049482241522935197973297516648289634714160769250734348825527748956366566377282808814091279192720406925953761968603415347851898964816851252220492741867603928916003724355027292520945468851126416222316491200958120432724595512868322836978605133041891646739972848530452935440759935235576765509773416358172866559822049101955169996316740350803422029672717558871354726798859923111041624963193117182142144063064011385349362054140058354559066585388516513402964825628770290917313594560476023416777275642635139836084057261333878421904821317612191486610012525538149845417150428899024977336199884021939000202921669785735840542949825883088090855477642207835467058264420210292967372775246995638328691022518529465191121834757602788551144429369061935937535626974153097334321288543418617179841985154820495036863329109392966651760253572838860917418890750021641034401364352708631169334369063720317371994714885622492991980789014109590119351527065130451716018752422939621766274402578770623018726442629659952210596996985027302926670964183513133032941001166541139366148642758669350331519835974186120852696330177657828146209952153285741451000312315570518876744931704955131282389924993760970832250363521804064454013667494874737285605532638507934687798581597914750761233371979263685106881638162574519641789625134710090763594733424964240395347676949572323117565197224483693731172173801880862432612538080400614976701954149130353458139652222374470715603762234411193242594617523417377452209342487853990615685150552183488737248313531709971497614204546377797286701710462307530373735043853344077564406296851269266536611676831421963670531512093391687983689053664730494636956821245889606456860434065791396732642220769508692585531400270480057567995713935211372267051570547908592810626571988980533430434282089992372661917596495253050585379029455261878933275281078399007678893692753486214817869702003103599344363768948643070578361316032917277272274951133940391748310070531360681115850321805327051589299226861710708928175032988958007139227217653168191215841074091732312637228282714409888076917721988202421972420540519665791478276347171036204110209302123528243238217374992919207047212372601156677638141365687688310072650806552644694847918425328437494292478372626798621583609852811268895174184030431219027995219915747463142227373121490387804118976580696128865630497652971303454802703214949091870475882921591510753374143857634730811789734776722151371540072609043703651117611606357675388792287433222218892993556188701995110552074076747396024722861932645471114508648526498312242880034743853420059523071244208663905983087322683905565027949136577233035103113031597501752035785293166865392530727534214266035672350266519059216488093548563760227048008085988380206466323814803216124897366323842032144873628913631871444154717873347645694883114966158975387592476590528862528939262096569818911187947038238159067859582797071203828388422221591602792769016585513112058143993907595319705372965476751142982733516882456373700616087274944141446117164670650122367842434142983234832352077245096543152015000260269820509809574796609091694306532350619943122778339327347964721063933851757332062905866660806769039461017829605467633091547373113411336472087422122158222556756994137399829812378664059032801055702034022041662672259504058170595065186005098595998032771238853095341380463828464142835937745607496453888621838381875737078741535913585027212792317683133366853860723536157601523519771800878769222413996258580974717171093714944821619318810975597063238356395835917781521399315031942098683089449038974254016254824152521000372944543055067839039332356719879398982538713547305862659956075399624252238521801024141288056676425126347335018697012497627763205220947028288663730963434205420079312586604349092140160104482827427368714015353052071314480588084060716436794054610747649094424206550147796968547352476667808962629611313403572289170973639857392109548009793013099075374661345451625139700695412247739979039598253704491037494187264825551478071416522775797454083542637246349547587132458584046445924997725269296672177895299463393814360540219634765483838019828278598974533269279161669018539086013081904950958756924308682773145459194524310237951131338260605912323599565638390811232494987711826952140673861625578493707651698810036965937240432266377014856758680684185926530645612376850391084037519262000515011754944467429845402633500773024634633385827941736852024890659411926291707824216905801322440408494955683943871733564023535009651109246990848624886688453865315835715871432044808880718045972348032646986252508357838201771335047406444546075000103241040068614899307237152344084092502981810315324814597355034264051356951258126796424431240719738167824033827984986299658808904840999659294047629091632643805747742950736113279738148471173180733623347056206156089910610972956604600980794629719977650795915819586067911016363912623019475850749187802604549043118388251957384379279435187367238982122722783757092567853438264164162859225583419411910363929593019659114083538952525776482721558896493856899334628147904036513371380906284155007746542050060694978055972001583463154703021822694852170393582804255688968207394774689132633108264589523800940679046739796698662053099251441259468099770388350732850071918322138730337970882842043874915366299398067383239820699775068017644764348853967596335168366048792595047489649332808281189808660516189829320102689447619068191024512318856165142192671815187823653920361883975792455010553850252877543061946949037464984460411628526202481386993967328924176008000065462162591626076234632031301313296176299584834319936878585407853352491893914365348631047886595942665424131157573015576840051571491731700239964883623371803910486119854417574934616106708935642377623741553728363764893852111383330557448115428441459480847694818798561894159087250788099002676874625510093841844223230049748730639646243559157683395488175618205594247446584902758537619804391701860100435934834942086778718961864460590102987277316175326088826172858556414544813753973665775212944590109355794929434423942288818054533935145220364390487667609516485910900569487543879252774596229359335238903645536882306108880450964002476936508557950218864615039343326339100581429296851477718054878250514013805702753790871010779668691448565254598350530134430589884089227037819420960033992077792773333200804485316185096029127982723513837200551078574750485574121210357064708197897841340651380714173647164100171486706346752388720549518132667235573035871038267794930289518927682131227540241366812533691481539257441054245336835391505606002780299328869762584005405805496759831241617752244370056763858848235193236994462758919758877522252553105850350534679408535399112076129123990118087517470610199026453014611079467436636640320322848640642254123702108503869823024036945863005918169269088518546777212580641835332269012888422264804285147865388106877187025861735435590995659070425982386031684393859882749074909710849885132558384938623458510057440302307307237762444689675492237363403609941632456745920868240409959187993927208659244471071229654001496235295769691481636124489200376926729582091757090055247576405943041638549713901160597445351651048668676826526914023591972273640586120288557134414530386155615621262920063189905799235121844153367147745117066333040402228484264054629086770968272100819975932274667920608368081755178185974347235539361362312287722716314780264697948029652242209672707267702601274605933311967071015918583478443689838734127323257128519683119725393090479693358600015309249490802653450531463991743454138478042701422740593781225493842656339348614329926619265474645586637068991383587584359816292000602811445902515383247589113017879992830002734523491695425248473286630566334628626938344184715910805340896291297785033825715056712217793313262624794146977149114696400459948451651871232932016263874322552581919127884478760284471775173460475515737668984935595313559640475164999437317535699530696967097713460101122809677778307823554051353333455223143629028780002692885385447514484940980605048080321814375706632279835107172701128416644607745802565423285329371947193126687172825092389947618517398622808737299293396277925726708033365962465109223227447164807464178009652370782009631511027615749245402685388267150380583629926305104720909582210414006294253005943469374698777419688381860819802766979547336171914257829249500424090336907412657689643650378824963130577209892611213654460164653764271464865857781941147647432823263623065219421815878744290529055049659451455001729355047249789769159017132385303462785131307022592902534754688873850147684728309491307211284531192365610356208182433638906380708370317422210512516672732025362466562235478433292789098360144985158549081931585604043986938380962989690616130206690368548225752680304886268971497659935256417855650164656263025321717858554715231344891212819131485706094721416588994121988040385584888374932516670744520197524398884718909058696720765694384111997876022513390164751662462251152853301693275882714149185442770375966380016257203277280529716586821123772622483528924194356282190883637496091962587822407394541277848602062423073782250209426699028495677045227737220318869689094575762028911035162439830162717570153668975007740916164000697041884171810343932106779080245951720690118020271524721577785333737135312072884706999879983894840929781288172842733836002021906595563731860165241366248561110266421560673220771145644470720734131182024020842116128662926758393810310903336617144677674513930613775035377334408744364673446443919129892813490649711314023383755265531525341852446485779215111664396017053264874445118529388405219797931752168568621123953545531177903369833482224718435096448922348625729371319345816414356177760728434143370899157963791280922601083095956995917270599417955746484954214570115698660121714915081007352961503897388632923394663687360318846829621331226350770450653445126066492086672953416891616445073668880489663419921008940754521723896452839025299943102238924223187606956524403962407519527397169411759302165632265868016567153688580662766067516201975648422876199178923631178520567865451819838461774938310845617685569178824680984718158624396590148110680174618018114317823238436353166610479602181503772825612984632575685433572789530339082729691254923478142438089193431681761656126227275555833278704295431553627996927857895079167652534310158116562129667395373081928472866225306587596588870659932962244391649203510053192854221601970115422053130190959790172514179318561290852520288347815198742302251840168276474427522066040131106937027359853660392100840509053739251227027970008756981423012526824533422528682485533445361412974470932419287243164561402203884850099073512280154143551855941955611007452002363898625007184453280353695698232536666877015200940886820787467880606971022549767112765048862578294976750229046509241601254075439682576362030068518455583852264781179217952834738729980244602470466208817627271718216757770652242411624087001145002707928285938309100550238908994772247343791480588289476469830841890409812806543394310024454869981182698377882478700653889826181294995454612231079999983000959579787625668255159844556458513451120720347889615109646079339405052793070975920369238992434197431044061505501564255574762679727656107021774369444324965260728382620464107787665659898256578121836939102535555443185406945119862762079436355291786176268954310515375088588936891766130816428188683616874417444470185552631357433824041845332992687242582096498029533518924374121945777061761162450776907823996006277804427800151138233530700241567653497775640014392350286566193039164720691071936432041551270809992775621823536319531953280220192528134599948886550476453084118796857381021332354156656897242942190181855104862240695508553473815221420181976603193645445071961041002467354786142380820460694614879520614928859527368510138333045593643623865709777248782182519740598846187525173549714246477575572831792218211606927861860138124963765363899310154896323036695891200676639234893261284620949116704092376255457481493024886116223746844704111218021615340907171162156298356814358591485070127116779502849761281988739804480435243788922312617792005391265622499759313247323075196714152097299889560625006796290183722651084601637211665252487320030257742597371404059707699855526169262539138406067243316090789311856289276830879934785882044874204873292341157035197588645182935901723010914242070680856915871043833770215823588098864819642792446950937513486230245208918312062607915317904158049497755470506403016015851727800975313784119992163400864430091408846516023587546948820398159861731332519911224757660385016924102566547360839591582782638339246514835064919284029063097446356510771830733546573140099414443585844412206290265942928470166278777592937776000497146894159180700903517781394047847736597853971696678523144340369912676636645831380235791888514048806559277079097497915085536018494917046513124019085195994900502942340940397857447914734256240237361813320593544046159710183106207666702117177593119569554103303777950016258058564127191495019557915545333591262984361834228638455743876486654739398582502580281425912650053660014965353074584697867956628189293344466739887961158497129129812837189138519523823989659816553483105750254525326097144317389916577776768049169542066960267075070219062535389092481460141891570961218894264202063180841058596125177668582591887761887406618284350040990336838560422826345930175513627939159604297650784240182916143861545261335575859543947971711918229198636911000485284192342269749093075676826145717775659402592489916773688774913408571748943725740426460626787674693498192612421885354802346263665969115843744791147134189001213483636284701763141068558452400733891537145974894045349886902493143899571669953278226046519912268260571700913019137451917073476447009069962948857110425887404545008913647936683350938302503535888083679193713171241713400112288823959038982043017391299016179348917865206393761145018146671958815618775784469327915193109915433521403060431958915632074113256396912621041448961901481331113554080437914170074102083328494877457231737453735694040999484576488034133403615952930787871515999728583511151990383580117747160717060794979340996432648544744074801436464888323272305044606004528786044672691806130979198123564282434570534317903763360188494747803000278417658986298798269993578321671295707088929069728041315892015997752537501897566142675275589823771097270813210960327656364497766971772995029925719488122199392423119727528526157491242740284667776562766371536986266371894517677756015952702852560908413410286531580343351221311819600404373966132641418844417233225037364640106759137866489188678562920953797653418803926715984560061865540327200417808804341793214209257080594767942077163009941797816322523599461959519973438747891559034212772438952899580451886097550941719061162884833168471466772852550389372739081922143934929450079493497020542034550142725119233384947242111307235909175049812616232984760092364480395122885664788807743859994879478561648284267770187143557903349012006486309046605093905265386370341730613432900279036496582840937616898131730166751270044917902792775441809309137327547052392477892461488168771489351585886234263189115363152519581533433409986092562002019525579485833802528771020034544909891054753781611919760946247435273017941471567925255604049250152630452746197759231974122237529690645153198300904786079673993547983213508067557008786515557130304271174975407784037039231002704507367389789878234910646503851975745588042477897722083554098378883782137431918374522137551988761212574243355196291330221816724617041564031871867667671700141222379357057638116577940011167505337541441470719356336142847105911402088729592112754712622197067180630244685085244918698001180961254650286404198802263289872174321194357536034258106433846483569854677722185148940129999525276652045462757683625833590462417161707792444481843256869610065959537587230635219798465332090228779245947547051422125711730512057543286280020083740815625503162438528121254979856656307792950805771188728825242102512726320788761377697976214276869320076892419150779808824666727959056310748408331396934824212486056418968717892293101596850361412172200371811587962283745192996177399836344961674975069273761752412517441271052832107468284061409517507209318550422353797923381853615007212027832110422846142538732439739036642070472951712503099468053201323502544690237283898158747959061413237580501015020353030794294417568564329518650990471334212615241344143835085041650119528676325437143816690704752173677573055170575828449382144351101060542779175125567090171812607982276950497831974638890096009487139733257417849124026021204083923458560385795182872420386365138599099495576360408307796889851509446557344470133525506962378709828669436235080066497298711140078493376432173702882860836113380624130543333459619367295087660896013275808200755063577695599653230018390707960204782543805774295818024443371990557291989876316531213735017495449758762934867716237014674948812327762136141247032415672079736498220236091399765066382077024735744815966598299345543323768467653817172370157760336866365465876646243629064957224449070247196990132905013151111147724737892777825007581298500261718997480370326933603873460325491541603379737399691417308860869120643430170376593141857886107404846293754232771834578475356011794974776345442025239442613971748586859387114845520533486831854889933503066805684086854337171374107643070631741806243775082725998933350058836922915199964554839813553781975136800887853604137325879284184809534099335973047125809664546588938810725673719993510445124171225981582519442127445625601859485620547387249413197331451710577309980320538303940935957860691027341949091676029305300373568354752130333015899390066827452986268010215697090557152524423133346640150187775145915411998045890696545075262379291414918673250742283360712007362528096480243146113573997951728322539120236312942906318019676938721505200783300311818054270291312192081393236720565821383564426456778211019849825985201833824910460000711002100995595819587451224938510688708884979470150608869310471471492498820343055755073590139302050009761781350932556723484762875942176711068282652068315308146274879725548982707296270697043298601271753627861905598818664233160062494077716856220800019480935926560184928064231110178178128392605653204466767731296073480021061645437658459358855643257401701956244108028143125157757774064674251168438207059009282831007621026825917386194135003162226011088591522796373183652266796654632140328743989328559241829664317134110018746886413045921220630622133592763215623296569459407921095573153042809403742037369267306307144866961313386279681969151563042811458605397435169573283605973610942776101320766141785464580770115895121625962741749861764203417937242812362092041859253184403912631077451909947266816376392118094031437820529328414649293075434804863689218084722522852089906646058103616534942847514931066330175660146477162070012072219534513482036743841031497500430626308968571425791313076161522588470425964270531811395309157628037977699729179762082043780311629239158463737983109711650882837643060514309695110149033174585360501470849039174665720341548470423380945475575633181796212803580003310032582059501788089216801790793499193636265611522364807305221756509572365669097790298247782486723815467320056684225984365545962373706761733192999812459309904403773667989509272474905013177611099709073737511153448341565670570941912245829419681287642228313335395253121428660078759278208494064668361957962544899199597807966918901100428645627070095575845000397663829611656163823571930107465993158300065691569181647589993986719114147539392515830872289878522408179038282775727834651796587547686784981513040901492140722733643294097564309560708014027153880962956800764033607427297449517805777457594398004057027137587334535757649427557891014479347943423763029326936403664566432746328075526321881031839791528694406115293014198515424824942287546678481332385167424111315833383672243728757061861048180113440034605670644785281528876190505962885459023247044812492218973428866963665991850842475832026624359923750230013503009608504627153440264605085180992783142957933956185154765120571685948363992550393022805364942795508122185597417342714602986107257870684007148707520112559427231960169657809952514808415885011702791573153549208785263300215838787451294536986656174521129019120993085357480897565494625570039616633471594883712600825362812404635890391472496215207220979388459590109586586615164633332759856262353827791044460062835209687808789159801930354867292803003500854835154210064347376000505465782099845395387581058011080365753949169284378231042732492789578841855649249749085667805841057031574773943615648655402194546418494663902264524705418464428893269825487956486555351830989621759256813989959088269757140206443405916414881657667773269567167894116132694120011578360089497550486439050546526156774279320713464883670177862490032915877738431750901834565021425692471284130885313248414087740714078629747119046995454575202031730229053000758275965740863831814170291809621254170314440994555769909949080725319315683682231224245775383386784711389219998376502921937405350896356499823421026981272064144217356241508824866253975327833702252918241112318790375337983644725898803052737905760358466520449542986666283403932072800349898218355774395665090784124024203733878715042645405435453332302330439066699014238987493965743074751124288249466671229767331749240635749233586492636038447834142731764805345524727146735702211970364633872380966684502002069783208894152917970920037845024285394210798869081828001698045216131402883797845894173397842061229743264457594439903971833981600746538613044119578401461488049045410392924549787371309365922968375373665237317694747881484202364363790167027306882722728116537159342218430931409039167974415551983827568802013588311025455435217722494414148758814902573303179791040126089158318953916373876954677428942726429811717047880318896526661775734651336869045754788961121729967123533235083001067007206555512709412304735465143477089606400264962620420664590335760871504606362648913007209218915844508778671307880803878034277467297019057365772871524625636806101496813333323498900767366363989687257366985600666536093044224347930017862684095502131648080642708892742445628315054369386958065692037834588209571896104054207225237331649984359717740168619782226323108251030265972930847092515374090454202236713021417257991566766929577946082647542244836586548770789089206225665981911676317683463711359359600611841962993504486277130281574244709611109616310507324585506654584744959478253476073210647967387786864811166806980607441812325931612400284980595804473278231333757903935162735732585926422958464230515585579040332622598573892413681732739445936778578184883260299159251167131179163439852290058417445182038969073310223682249348904428917323732539722349179861310317368099006363491300021907371027155211207782201346947324369359352607229078833611494139031417158919494040383441087999209825353014044746199241772580896533891402319587078538638062002007013555645498610824021991848304134860578122100146692684070114553248948864417845435472332700947361204452953404718654665264666756384316721760028202684939520760379946075273031249440298549293041154418171488856490202980052725348262683921326665917302442822651260783541283357739776750972437720409482059582037978059823291064551572055260603732557213236676436626610298658578811506879050211462487717634768246564443753755331069743605105034219868114669590247177948226089950440338516421654598933685439107170184328562076208326317047625425154521856505877843514126195135319428980187648374605376209629563729724571756100171153990502264546657725598215880227631074866220787699341802187755549422053180988005235845701696581470134265243778159909364167268151289368245550697781797358993667020265298069672603367205250774574640070846240036819368554080917768017028571381868777635535617219705541121619756523558945976187005157049745237237787526597867121588301105224915377555713705065538730911172014695528088837217273326762267743892878628289493812241554289422006939404380639412023049871420358582088585029147877245209007560419223787926755150573727522909332609642427335632892852449124538647287474521611259196483037730994917646308643466446560747625042927332515806988779999385558545147302580996219554195945287657578385260010531244618566517546831660421411092070395410901439628569591634758793500349947024592983719149280492668528633489669542036714846214884673566316815145415192861279510289182742288368209456143357832791946297752789372056258641793190705717126310419275911988702594296233322992354463332276604989507646993357212983301459968454454634451214257868887224782993558137060731525384236425709660447224230667716694797528301775088449837065927703272571612152289936671020630929723448191940321371988643138251045671013734375318285861300451306113297089258211454160003342076977055836139774409998511967957398323219372135886356926025421633089114400341757497190557345191565652798153002699951580010511233587875972215820514104154227843128942192928563217313424715966607078770184602240738244578971184989958165720983725757174366771205575672731126420932134763450634103587449489619186187900675474271765912393227036869210795398635732819731198348296903078390706067733895503440068311033803829661392503172436353328521547292186466642141748489570044516511516588855163237505654231902439171849825417848117931948884575132376430004318015874495499062429770672158504657415784757837363962916938465934031189509565295782704462974119691093061353135892650360080653909596001209034001392997941151928930444138383593003650038537233624349320881113476037934429459790662067116702842386200843601071344669632822896393954039977306082297764306070435003347342787941824974764303515153074953252676743427701629289673845983353437609243705873235916281492956624751188870394361033776324760544808312893416163790232826996435815406508732020245703056555674635400924528423601560749574700889398285290437651689305622881533569629204424578802209064202284843199199404471908029019886860516777375154243386289411202986426692776156995394926296595697532436509631097832863688402873857615793819159955172665556902224244452724650995451827789923025027218845327353589474411477400584488920806347947400168493751350315631404630893436321910763343856149283150703578243735295013025843361673558242847754770454941055467433649986049338666170414119627004990537598513194173392926079126841300003845674720922738515367457574079995795678824274036433917782001492541874979903415267139763413087900643271945517884387481249076335960254896605089611536968677857849564130825833007919034316056522915085928466185234716186921954614751459477394599450265202446418022003894381558944258146177081098914234592876617422878140027145575076485700438968234938096761977920389989144676006747516823653551736612603134420944519499122809182429117941877663313284142023254039090267289632688935007731875703602944250126945817310250636197181616988601368251482730471583045525168025698841136802244903848231347476982569190925085649314327271094827361166768045192663430184086044464562085017972360367036878400008182233749262906059482297033303860035249926074337470566120631489317746058137220403657308495592415088080788332626704010360877267888301883295322124048518001165224722700134972431586235076759781909777814008955004108281372879145835783779875286632625794087192710437027422832171277266149175948789107191823030029359843334236738738446744950179820279285780380246736939694690324570822181063366227267954861874920107537260328514061523995537045502528585027017417117913397646844226494205492490333873289807452152991997362692283151766091841216424530703926734124559214911522401819995104637187825645555170465656115861162819813804830742410282637103760544717592556246706231988018121505233808086325003134851884064681209935576380904383170380840103573955397970907645221767381317076183613673119197891847359482600055223104770224555776634999733740042410713630924011492320985706712457447426384769718491298918917327107883773820993350785512659470612094009804929133278209157510824548588613915352274135972805192848302535158908528816492654616582096404479679692417658962761818257827455858402259448673698538349460722912405266620967958312912001801522904824836331021867843512037783482253526863339980036508339864970899137729214260149030853657865652960134957801742713728563779553236640551797480787272048461568135584394892551259327186912827113283359456126830656835943213626346839329131348207079578197056402663830863982783224105785169659219052788173671480023350773172580607225611362055133752976221944863671877709863225405400460403791028874321391594991715462851886716016795303922263525351277146570486595180231397127276263007466722624059905058994723354428814080097667469023256903618927438507345146433467897371098753840805190736091440242523633451375903895633901237196725240261441637299832302432338643455658773679430503550209566378631599053468119138346418669376107866713039752628271852727767956960278600374042305180189101317370043190089843657609422016770472016533719590424969310168711359717667024762801552862837466105868275485201694867015107013715890424920881661817906483666823530873093901089638396024576572123541436217080162671976886542687902105504833058419765583342292189008895270546662187139300516171554319784098875463869228077274060029955723343855959088473341904781165730120652252577742255316292465565510293003428529363195081020116591385951244204388459064196055589255103939901601155301324111040195574765081948138833396192199693233706774829657359118497211522314632845374731793900385445816732107272039876729164907662511990625187270228526966509434492155758530925744016626018106213139416925435467295042134918133194675278017717230801048894913711242851484442187873680799473745426534258400247226623149032897347679183928617872108369361608715729165636527763181475461200819836912981084532766950992246813141273269882803885081363500015807498466152056242238263202693345628326344363650679507195363685448138084805591825144074908975207410243672018371170855084789624173784449443198030103965932707133218534236603140312961448172383243211807392628348448123332338550961269691856315071635905431743748180985708681511802352967769619969167955505672261346076924048870800869565113521223654022584192477455158029909877681583683947729118807689562692497851648179592412901172512700641445994541472548252557770281317774043765310467269637145901451016432119457905355506371215821169875625431744250254917441141159620491079137201944881586089967025878014259490974007441494667246474901174198985568591549916395589931363841645648419395740604288697466693934120312509551510019445438530500837950767051442512030657668318148890967046079884919324533283901328541786350982980458693937992760127115359691007593620697666231335820903548706781932524773226816703048158194660304390494861425004318633224042743323464342626904886280382912342260371250215747081189999046890905127615797913578035390460364175647835720388188504372019030911360855450889440987092959011148298438749776646969459010460276124790682937551971313405835538719366287000844736631986801612919640587968552909027189604012618936161572956676051489703083147014274341571815586542125606837562325085307918888804340921064068379936585329123103571612309652922623888224523306264786934687019083852029287264166683758982490002640458292241997703397895143100451484230323881523650927520974550439881098921655650242727412060531553727325174522024924869848712247551533309355099716203405382628572931886941387298456899168022623445784828561326777305553222510254044368701270200848302082790551492941311636044432531082202147244474177489519930606634362580366580343475757116797871800855886643515063954609464809429211127292458762025985030128547962559649397664382400376820833210180931217802683074250156946990435605187177937453953066144270876570118681639708699114161261268194661883064926819975988666070805077437347013028177535227062863261117536692094688487167724982998283499752453595735271813549307403169331427983469846363670900087820336394161106198839604800754593405831745655270465236770647492051658246679049190139835902426790403967068483245427082588741956384528868121427812519841124885002753422939372668351191851161887423648629224179694075054902422567061746054304996890104051183902841084986017391432871379785635397758209081980775960369403776159085105093273433507093985900354132337042828588028446764284843666048491011364226143610061454805027166601544045785982814917969400376671579082165966938920422374895676344779420347997376638922583402427148103378195528630771477310464707962883701513935359288154737886412102533262225413628886254663962172761587964410886956909380501081229085580606176779809493100091169650260433948895034640844991314596829361515973685170940414162648144543437564188776584304723652652611868829903204295168440632347116713500634301867799340157641823023717264851917522773233235732701328560034886529916352608184925832546644349961622148615788189372610343993879779486441104620960753814237596885307564689749068726761463006523771556614334046615228334493801022906541515723716505039889040390352453384026558799400792724459916555168489114794171117088058371355979116054434578982085929270501776752542608627905374489745947638422031374354918698903266636543063182840566245440868846906864973950537607384731752076730318422650819562615991068983296113984329692945135914113580439498182729073668283091361129665142524231577881851744518973576993854959516028004102062688760732941070235100680215480840352678962355177107159472731913859408768284109163442182619552523750267291108271858980382466653335842693062474686125637230183585430067439837015676494764305096293386769848990957158930695344571615440693875090171822409897033447321339965633450128522185009144371698213927015836018354068825043825909532433240603717256752217941377813045069990604675615535583743904374340887656613608367104200888475211042526401069632262361920523193055779131834688537204823111343599364748684029281883407712671448291462291335127779156064828374612598423821249925490151882550938828734094680911797962708764784516680425187257474810154521701094132654381749862337572448908473863597499064709706499725221098097479837284413718769883951565937225173407379331071612166425783547504708688016740725162256777499214309503355527838650113158911939038015924101287548741293265507364808225978861966769899226711930371128411037039140598483817005188147798933384237047693311078098210505430856315102724636621201902600851398847079816012218096473658171522136586349886308599925283029983184590226777531772408974168903918816337246579175691862667819437328630556969765988820627083378861672747484030447374941127403720072965921229483026855744889277714116475554208523041444648166987494834021573565542191080763211947916078076007136274768944643061339414176142900069525801256283348431809520465849536101796936124472889274386563940931268122660270990926374314366899078013451752681664837313828580296164954485390439148301642295730077172463315715820073409491815779243772952140280695498546838756375131129564495630965779346499480614164049598761270077971861522619034802133457369443593183814645593396248810096665570518653684382555443876364808057464961487173680387690495134925588928905140186961492630650166012192718041912042331876746711028207637818872083330350590622932847315322571746265371723792273113568266822915743252642749847443004847822263470516889406962070778832950004010657041681584050612699841024011480432548541292429082504144888072012044421459939604632246799600057239161240697169951308017818142628543862650828915969793946022515821386521916121099517156434730166728141846655891624867411417984175034093974828336922081261045343134390866982732743588521790906783812097524354526868584010296844469046838079564684449297598482492074272580469858327158639865296257912774967547106762594689265790483392101405250435851924144412144514260149908864392635067167074982858790958551529995010884365386099891416924411656683649378721574838457392460418114952515902590705769049499389656474647623784126307778032727785466387376748122389330859461105775467419497306660771298159805785943292109487332725494622999605771959501906840745447814774838526359147685280972633421824939169622982850257581212711218689925943485931338829343315395473837696294074703201972636378923122837811371622764404670945244083080612459235430973721030681496474953419229126652914034988503286146629870590558830916364589941785622541568153028574907965787330407441287263830269174082272303437723022298113323522790668675378132577218253927569528847598711421821837382903457723354980285358018845827478890377597622426338223128750958109101941278009344493630943258300046753641449889711254833828503375968350371109018386681598792263265339356814495899190727684804706125666771394265883767872698204704962896023994017133615323854977291842234560512867649072251306067531036756027327041988759458821430459729938486999235403410272010768601767033690703163066245012301319327356186151416148677735080008569687001382320072946237047705942307904468453686067453162956944669298705563407037715839008856624545303919688072358090990030723636940590838689744677658908864042829913621914725123657612566098480396245542221436702649556089110678381251231392451563235050137247826495396817045154010234933385990381274224977449426331229984236769111358365022740112466963893887317485906677028455937073466752853954278708143558114046260144646482968586079620145765238294394829192610943395339038792668709684931863983524265220327976305354015335426099495364593748329689706263878083350859481679223321548363010369182682805519830859074283654590535435867830223050709602089057080568976607885415061556025400966244135861767166632117068987846641857922309848270709954110944854277678933048984683298166654462341453502978606555451854860766833113364732984853731070281699373117223582315198716967101354852479670405590719139389365404683139632307275248738344572341657641018948430700543665608749917120958137838724755578582036021946454951981324727655961942032262284828857699488857597994078795538217696015499888326461701419271971696633406886815045043541536087212720089054272924468430922272068547147092783226186455417977635461795235824205860996325076937351586778892324533479022665708397154373418307498247559131081851452673569084084307818145840133950903737819519099525704404532326503555712901755797670689112494763858158711316370917896249707090790480256049569946134152635615302062706837365797174056243543323070355799919094999442935959229443768804748542646744130822059717821996635869812359073552672730593935553908488293583226305927051532843677084623949012357737589328438689860336231765722522228032854675124528581369224701336849296742761010570458931613881377653695827837316041843166144182138486421703802959308997112612581795388813345833688261220216240613220405633691407749246534903036155501866679331916414980128937199861276214443161761328253832423116241745573067279538481712820459396947826199989506644674055341752755541626664768673966224657894385829093223057693855143679390571792067479814109017993249804967892763989951314133948564152889080333174078803488761471884604561683708913613694382351486915642914726335305989957997570219885376997108141617802954278784180519332418346787619643407362646791986115181460009775356700437385491911054841507173454122239664696558587215045224027450174449362773954527479951652431224016913228993350041590192303837009073616887942128852514045968904435226671323508243066772301867785261424176180080895489282884517799351643108127032621179568677523498592633632545334632104375870655542747417011950168245591410994263697773814190184146756437844011766914116041011419787780683469568946376374433709451001729438673130466423694483145788745898958310348058557069283378819624708317444464191523024612431674523728059912348105468191040084791433903429420913759858482285265673957831776211688205375158100390347103533469523641808402872958068709605315160223981386856416960511037568337709490417856165383458809245627292609555874539193535337261330492348720181486967894003890659278790810715944716004605207650428479557921094530533488058466931507543133189755117762079723423222573368534494723930022230612201051155528264560910512193658966349313772033662951032823547992405179431130070007676061290446212461680427696627543647253749654627259062952090458255213243994562059894053918585421096119726325515532131528042299777566510473167866141796753075815661942046042644434294600772528665385936122451491601087656267198721825986161709504738944341195548697761745726761295074145783795159857827943370956530327862549997051006070595208836538539408581517885909916743273031736379628009848672968016196556140736919879384507019910413231175051876503634191203957456783207120535680019564389101101198502478801441274088936330615343930627959701182302534537789946022997702786062704668640987324541159285344183001925545253917083911037927380203983849923331258139598797490717135285705012229060141765032962275645778935522440323302074546887900766936277827406817019468238084624098426922661651669538525906068880821635743699464730571249888461862041823434094899163662823427975808116136240843020972681727521279419338677777838271635026351641596639378822297685151533553110159179509984582431509126747920765831234493808959639828264412399028966591715834827738594288587662222007736273378833961143619500752980404362136092149178078136488135173338191840652770922202144142095065050846544578461014962412251056400308761138673453039808947683902911360632170637429496902605221427618085745743309001156235830464782075513463543296339002248259633969403737241914642945310356719047003034071896606073218537207612202309962305819122472256543590604579045850501370963662130662610293385457303014147770352711121648708829599157827936954247283348262140883892521069273459261260106163011265256025183343224224871598128538528644018068169514819759752427926907129815606853079466769685626215077518545090261286302126745260281017815747831456427841997606850746529373913201304102086366320003057215023893769451908532000439100402944305001394497897699822091604618370995585270124991406694370163776854169622532623362738656856914702059611573301315950076748548862184801720710617092086225811561929376090993382949363580182411194902682321178152167343753612920741557553813210054672536583878494564659392751589828522650014963875562387876709846137416746019787705677606839423300295026578594124315466180830674207007135265104903900986885383778347882281046969926181874444144079095836454687651651035089882722986209356085879963156253760395348769081367664512091289069330698996000372220936968032091661135702957693035379898042355840144370842896622806981102943046036982592419711269154504721340200903125294275484565567877063689708168087798144178294944075183952535256366743436097255986300628153616369679588013415526160682174554524564947545704841413081642843922768359389379998787273828832267777323186605566384646799800519031381406067824902296740416314566671270638188355468542390809048971153487503074078815962159488508558327700909412559303756687968148671777853247215402759535939587188442862285083105067439177246362445878150830761022861571116401933534595826584775342055537386072790001559844582733568021631782299378417007310637791098039662781020714932543732187342282256253879076366103036510843344551104041065595892810486297283359053434034504272333045102789498650429146994486258722998521210062293539559708127501730339175795286435617286960930348552668471578471047544155707996609906949946451152925739572993180531507594830340041262025382960340173712812046784975186049059665649146179317633434009020620001833199850917011734752219303616180092493945682193066494333159860854675467869475519860060111211517474640161462078599876115739372157465436465699642471203492839681132454404985353341341942214513173111217727237814591620957257047105379153200380050470081128956288438415451283965748710454997890522017284575828940130431312164463071509194638925146688572732414529911599605256241866399359882792884675950223664275214488557395749346358607466772020944095565863116791628280822839889933376978553572444978833565669106896721546604343467603045297606512130026763080811181088984068208172440049301197497724802942466457697397591588051671654240077204300080489638030466545207239195455036626924104988641156922712485505218474690247245677004524601524367554210470045292638450901838516104886255378905878646601717301865323113283918521509684404745293311630666916886084095525727476405704339036200816950970269180156377231283430161568969319382825644225108261108437760978970805566633106371812793570932802370167481905019964927807116099309698377678593233847209715763653215902263479084322598981572384109607575832508086685226349334674035860564389960004681620440884553025305845791648905058538677540909842938814574986747943692771385615324709783910327539290436830845972360216028348676406779623148442371473886251885490055199527305521113257696297689664445271083899634373969662445631695147959693759085914202034264634188132290605247547290622449808405956050256828391419122629435257749625479399065410585637837096234419240114920180210430479717871299672402838687717781028962395788027188580840142338956995513277125539083530869744997021728464960553024362496565215849903651009390889683968141447621846313886241296617232594845422064452138009167152069096469760684648250788451506084850454839157387811672700269056060690680806543829379663959735126507337024545483366470981671950140276632768518842922533719025994254096920358029515503671471576817902948286539751849603879201153826871769388839761710283298300292754025996460151214071036079042066014168275728859054664379100282672289461200983333835015100494171082746846815366805202689788191728457193095353309248698658838621810398669477754841138203254979921652487189346954509373642546237327933855415524652273298833097154571132976149176246258645991533798047061339824480139513592398135997454745505944759643900582338404929733038422699194696121526322709716591092845137058849125785787317148799871486068034328177760906506516215414427064556818412291269775246758546786377776244846981213676936409700708734848460097657749779829046722788219670812564597641983663520544794545515182000645294814404093925419642946925606641035954271243152057998884361058138223174570916044410333588355663160138828151478413952549281622445373632369481423657030130953831961265943963806002031894727608335816221864982000734718089137200008072868231202197874590638652762649717818869094781888881092856440461988581252980411913287778409849192010490843902809244601542937903165241127511856303019026924373390394532803910150259081242326477599425614803294207671127201088903111231242787157509605277814199653698519412053533544959132158362119302772211546630161238753523916032194747746121216710843411784715455434072215839151863908288086095725921436648254586673005084633452524697729302560622888699624268018046395673741493944189486625719472807655300866996948682114438414556214844049377240517990845864668613045696022876378245369768093666237341984200221591373739738234116363826294274002245481515510806614818845367042802434652462234615432831055480971252309060174047445257251822110323443167385593943629312889459133111073073769813494807460353768255091507930234479098421814820963383203853530699865970940213135696530350418130172149598046485442463151358548849747002318268516051050383882346174575996551537370884424448853362405301346467064368918503954051955956399582076229424690557141745511540766575902030356404462637555107209245416479083703058152708014514394197054319874212287164435361699626646130661874085955592067904956732340357272721097619299622329587280364593369943116225187096027446064459098040589997901557032771518402088262562706824688922069783367650175506323205330885339470374301210969181228108055815003431631148615688799964332328684004766110543176510096681096056327616134960066991038854989996059286793735525752583503823255599734697522730641826893384409091301374158101764573816098649335721205464045302540601986791108915908433206702285308305547553558290258696559448668179613553935403421402334815481118144880951805479757006405409572304753222377232163293988489371015708977635626139312918934804299983128216976222077254735994178215893391269603403784190057850058274076356868557071656757988143442870996961915383428253521383171964304511383482637147313272372370293211894541973501204390651257155207432785320985663406017529017116632748023993337832838041156634761906087481095390416099848003745041917949948125674234049619759684519510748137830724513200894920402866492266894724372837152556416173336410937097998510559774177312126265564562688330505351251000229533143332226305162524936475279815677687676159342529314808537143061249743847616584403812770727090183029742704758282094875689692772220677996774811540435327856585706328966957317490228906422391149177320853226214888876909615318740446796423271294903812093413304896930623610070015270089826983558430543582710375291822986737209016875892859803592389647254657171223378781078181905122290195633866790331533335720665843621396667196923541666158695063765136506822971193574129134530096625841099745034804638208724949972375139158655037018142234367714714115347859308800892694086573107352855968461610204727386428109741038147397608713967188954824048193245205162200956270051178849389441046377760655912772879324864508714490646387906609869126182253296913278717776712271104045548128457172632828982460517572297678640947471358418848349570613541011695320877258629877814432429683171918399510111262657596472377387433190830877251981963615432821362952640965421364885927675732306690667142037934206192223058157405321520694299782932505007598237344583926050178181377667196807028881660052108594986637591627271066142883180592240886654071940085633610057402081702566800078225602855187000375825321749001421795648340426268508579033527950557074261661420761918930477881098980354341877956212450382991607931622808466937937463141185107591102250372497318662107517051219542342120158865184873183787784764720807920063262213532097967542787967689629807101446988004941457032152506728610912259479072366044630826464209176470889461991968676905370571878374315167220020383709909987692977520844070756974763791331204044262531709588647358836440295240308174575966445241230463510131624918812152344744200986612315323480321673349837562711857950064780655727304387854020161498068204444199166333333636758769869676767720150554161953027678268037868832213952295067522598261933049642358270731982464929283694951336278753071548407345013606348538412990226216412427433872448144801838015874999325854254786147792340035596356831931386642039290954404850770348302109206552572598521440094955015444899875740641660269716041648261246892453053149263968795877637202179398620237558383898333564310881948233849670966510781034915429441373118271077706881121038319770896923195388232414096506017049688443169668994186448552417084471390702576975163584746943936599962067750735484188461952524987762659696036074082830465022341179023108143070775189701172639577470125380503842498585689445234358577142063426296596408091331120617388099720345516271365546561052149527888130410226219460197479608587803239843190261025927473637237959570068435812846307615438169097081076710829753851780428139534579868962725963127784984716652622899371128491106610404607730872251835762163315285728259759516783426744811998900478740435196685509499323207994126816037733286103650297461434338524848479000136485459824968645676073627246089760672607258067046800666793059352760861191272490473100433900458257464284898944654492590919359381488042069861525830380202223472537162310499202510379557276492261084529403689637092679318164717152167728956184136301964737733297887133555690432883234849327186677226194577218725362673656831536751500457403122915758999384874373411675719447855443811496131823746889359971690184246151433539968731565804481350565686616469558791931890089104695249413745969144330383658933035031421079145614588802773184303737445484723303297176289382601062554559153286750942846841239278336394357318216789653843208092061719502063963970180308768145822613699274577882739029237518479631897896150843831698222544627441407578112397062846098061758164351577155530991727553819866479576560554262583298322236699311798351618603455704116841568670345252194266811484168719157969062931696309237075305805399144912438031890685151440261708635670430179579601819066183446581285768516468417655896256809600514306991833613350274891834153648365044504278257940228476713645787447214991656248184439347247735381246087355402079625040978483472713591151518380435144980614067379164272310700015499341742452780632519939377422072166953018826627942456436667459046780823929480042077021046259864957042907328981591297487139152531115414236279526910382120125454635764697186981124043665729660154551267048318103032026345222035301537554572898691543900368252236363191859140379218974430041814922317175102246657637140466396431364151219186278188450918807500935978099408419673240376558395581809129832445088331382763771677434985952483058364186256009074285968647179716918809863167198587663372348695894487450132029990980523008335924040257246337283450624626630445768486686209469173260490448013448049555328008229401802661751547373389972023693992408157933487313103308643527916983263183855224890370433903573875025702489984780144161372778738908165550926928485549553959329464931314197100572008167500760075816072865084246828280110827078289947708203356401739489448504636193780298057462797120593193318331779875944584027099779862366691376630304578376354636347247498410510844499729884711198883336902495416091834975305435411476287361162525422358059639434277600103820921788173633417016322853947270164909786646988327012738246566508804383758189453334312368946446392848201370293208938075352731733114459725560372366271884537415499774901970382286238671122763062824054197853920651966271739800414458744381227818739587328945107408098884619575808449372705773385010268357155891721010972686758685310343557535446282928769317010559662591879993083546444007857921296247982814171088133104551465841616675305325463561288675110786617875421000332604647482130789099712417981008398252316554865300748806689413655310479876923408734318385626545825266780190203323192908629568499518024256210868506957517271995075982373529037927618760839011858484557064572274245883013451008988462759957911494993421362322918524376380668722083388722243384773759615203019350646291836862528855485033943304929830437989261662454699072331213079672311935926412436195300129333466262634380483096400399586705471528246588679531864099970572090290748263173551581175210197137505504106471033462877986490472315910155256741161770660389962292157007348529385978537532875439460227294307440341255692616608081606884369639357633666164961276751338150271444129271710858694736977500307597271218237092332988690656740282808329516134969816762123971836661378419615749447240317503015534292258528094540447210207455258059791955341607802999676748000191621664067855943638156645270960568886814868074595531313654314622453372790304362259407418496389587528175296239322253433088618018641604601711358686851486026360122257731177511893904162179127772548229619495632887395250550454037347335613938639394756334821552351511118358733615103281473804561573818738952432203985643700212989885472245002323958926431141259104179116575141004278413112284787840861098909467638790377192821901566305154662554490378940250782786555533265937882145135851978976725365034449475008675093533974499469136813651231568858280523850185586816934844435007077622403129067133715442738094239946247217022297597879176536205835348970499985145254727933529519237457108137327913721446553830032189844947445267483401388539867796432559530862149149590887274188624179966875838087435294215894954677866163745758801806119256264126189569367962416469508243211828044762749689754759962132793743841814210098928639972387897722721894184257134556707740107571268122545234232482560314056335889179672486997869439465032670890118522157560314303118031534139219889365959824867122481904674320350100424044984491392389009444235958480655789297675677393050973280425039745853031702989899421751058596800096304333163551845339335915586416534349568347192836246261827608602563522501442975785295228843036233599959021759859318305704702800164477268103803517463707834874012443653731266243852609152753586228885561312433977736099009953494650157911613168988734579821867985213748400120900330767588130399395479507981737338959049077048962705357339212199915727724767238240984910827704123670211824040793143415494643918591776268206148207229036912187847958894915613761808719148098239146606128720031683953916900051838381631964849131640262750359029142920824445458387505682103973764294970220632097919514028106380315728676478675267879119002385617612909156492873875351580405698390724768845762440038185850635790182352250083349093125730031812008640528458647612672944919316120684756865425834180312672098165071977510137382668740054400948996053218242562369504530668092529856611861471310345493376681308722977902379839566909452260212587278661338169695211861853531773915592630094597207002126504082532211521732440529714158672948525937681462493195262414373921269745380506478444383820091736178204997647170212607641529416376113450659019743927273810969787452606290002968132921287838348033707139265265747656922692947332602900258592286684547823885421374396173929980920590792943034346546804150615496687639449025412501790303611570316096153577442773284423835939686288827503653863282979830413768337628013715925207492898876378614322805726505517544119638672695054994634388759937581855612982337525131155827245856469363962372857704261409266608533178142500751399665591801468467744699348048622415524858882632866189591160388221662597760363992650427832147114564975133781457059342992775731665511121648631139854941799076769106493450586078982739892004498191795040086526507854353161496321103775679803656339728296306582768356346013536000111467055468793426823534515921834122692258203188356041861973650508169454970454123759486773198282415036309623075353782200358939507796905864708626036979337004980281228983171327089580226755728152873343329015196675205556445322524491999895375117968421865792452045928270942035753366288664640953229849440367053990221772490129289913463508074912833350886247547015510271370224115687682055677943788726374544893138279614000953045282952294285618390957336793248411956432133453693171354232953603584236257090401954009820896730834988296355830241335168400882857762508703649249048826137320870006106087982678185427409243863166951504787001530936480967044834827629465067862331905659967878512694867933788890216859343735785713355434799763334027185241491575797282612514622189063754134274807038103522872441415987517332130405502710456880910851680395283963730049059090149644696070016772568126194859759633101355497062677154816599751446573907101512270838870145263207993455676219488391239132979745899639868125916309801398592751188941938909234890248691258147676874210825280716387884682583811133131539737026606313591524397269879205735585791316333482717271779029317579144782706380745560776774978647227349151907961142992983423900490285249554777894631963896815265339808897697033924555425261364129813142192721525675149395005766610912294191278215804357098011401114555705526694903768655538348827777544077840380465051260230549669910550373300107922668643063966873511885242488603531665916631016635315066862723739848227569003742298819512381994452166945238954304143712969031523091731519374118458240455675979718100044249830327147308816717773602416033738318105813425327393946161236086082426529512520158838792822843129287686672001244072836233554283320121018758494546478300403511909717230304554280762669847079519957067338535094783645712984785692340094999377062962909261209811614086672990275321554729446720212809935073072928121978824764091869732583514531494687783533563312633045302951604056524105808619857339224573230378888474780152956728547900218463366931183831733720519694875846288085389788719448270146112126643759438431097833671329111913696683747512828045174857673988701099115287941355531488316331320608095276472237270250457407427580788780324305461531004868930212789852733950122879612617536783774158798131914041448907922717824744947096079069934800093596428628117684255453295315776741662195475253178227737492872720295787035759285722004756219305190054633657840149633785174472580200452219169520551821915415861836248964256773088076684138633259041402085611932168562975644010965802037397778002879066678510493524320283617038116378153235022967715909168366417597902439078232716423096164554950558920971017513351964613176187296209415523869133886696354159732052269332713916581022808787108944820536656212725026219215594336378843433555238971436358132141474089869770594993128360353985924070454427306527099606584891734886842523596681580570177386858257620864023979658199115385747272678050101420612713193846095661087885753103749204375406988011929813472266730490513238713710644248635853161552547453469607026608019389846785767023520954685393246447012920939406274407177853205906851564237280701365960363121339009863830405611000450785415148303840451710520557173292791818301828557115747561799663077511452902397921165149722570682975477288439765334622731853602322196330184690919703411824872085779151882040777428408608279343681740328946413778612973794232118757659202182663964154683316840647627634698044355560799391128162488924906543050790607410315976187029599766912499394800462916271253479284948256279404296477589180690309911442611428785147156473702022612149967753416562155246802018622158167054964932007443333535625067815373891260200028302139132746226985526980798839473866420863674587357630994601752054266767250771216931505635081366733257529830801682017751703020541543870128536609488199339658333201670320502810551200778548077780978732737239395235223014881848667579221064699194478875439993979043080762466080158936421767986792208680451838045777821746407662322081609140216643802075600122232150658480919554356802115209208048619449984116038290524215010775964231742097401791807167716533207965440038585834243257920279516442539177024466412927451436186277761326435402334060485863903263424032155021245824458747465508200776250806954809942575535546190969947964439702413248437711729263270888184862542649107287763474465409383923388579291032648123035119806306807371564176910050069217626420803552612790874946760363057580125318776309231758453647258553475286432660590489930493048255640307263881307241716356752189012884401351882220322221548440725441960856221126345939981467396311990662249835815499278330827992426283136162179398989375090602086114706896872540355079888476236348884780334741545926012391527960492146332336599717187940460058985457659045113874590426034558089155078485185583135096862929710777468745956141175697571116422550832889490355253027415284638555677742531341601669227215681431582619670747344593104003858361218535943929183929444858465289674300227550962821024182825218888430415592317378831588304462700082386923472113517023770334483940428954284065796623814376248792703845659432309610225567331034497445469182844187902375991022746159236758007558114734245443861455935967422639154837991033230798378013435690095122638041370334872122960893338274110051981955970721409369386865880373612498521072860318005340790224594343564878283282990845718712941520626452569433168484536500766024721923510731737823288532605632579963966553344982294528636501731824571775905648872491635502527992720265916073718107155130872134564106614576180140954644612718064649980711066556154630436239046465037439600334439907156562520491339810711969747517563816640614621116926164681200755488705318021324825460281952037983055433494144068668843215605796443887762596281731599234033415112510328728364539812525825506823242989709752057075298546863300348668867468193639825905088844886659341579492396812708013465634105421657553969221748753071928222150306719181857519429908298845881503362573525870480791299085796702343644270985419119561470695917452775124631817876582360372471733454141441677771156987345056334696349093730502153207667573815464927995888593367331017421717278044191598932474406794468472546742599430271417262783230088853348057526326317841013530571038851981579097135605517961523551416862707901193321613222376428947043912844763613679222975771851859161063379386719684430165797745822773651324835394346608970043053859061754510138195343241022262768740405837611505488279185887613530448644675779731128315500669531868512609810310905256952295380043294440148727824906995673774472937489815996988546930630393416170087254801901015638072438873645125330293498129278126156398096689807729713117061614369526052903085525590971909708678941405227320785798790452020871502888445196987958251728330314555050053471752333565208048484426799186314253980034035385217038419363871314471925858200325404581279220490282527865463342676190842833157543010390777923635213605930872613567233662552562426622622003810492490099238500781688010324391222582585706153411653216065207717316395880780016293443494626371408894809846015726216203151596182215055556879808732270534586023871062825699795892125882258667660065011491431208443139690711464616771188438817773946259477943683653993194208432538751125491172512303807919429910704278731959059417340844194707459864794415924682949352440925959723653250316391889990143728909859054113452173699773218226488951247616358344684144109498905193756351572056280301832972625212076238372584858024469964025922361970967159428262306870776262683421713284880742830298469116263578101579252306878866795719791653385997270540520824520057347927032108348426432652070441284329283159833157290560603348302482803259185511045236312451904814808983353853359919078743044244985658722283665153893814747813837520721456903233536666348971882244797243252305048813730924546199117094703956678408883421579802970918643719724661392751469560139222595517449608155956476533434574968123857955413518923715132043364082570437106246185589518770823091547259904396791240150339848829882313557345032419882715452006256346603505391344770772786896375069897087718758334655074110317308291423027839916610346683976156616617639112782355583209718087456706301419270366462938587815164881336181998850114721496087119472192144898659107490841619558077602293478569931558462977859841970453001814869412767690796127827206808838121731508475111821774217586817132522366065385275059746711078646159625880333203486344775938424833928417810580875964725485390445492239966817867008606801383966429071913377401235101170890267462817074201917782966307158573766385547432370629534398274452297197308385331932589262230541737700576612036928838915114074849484563145307087530524873719117065536545369213374581283966766070415898745931036902824570019318993027693644292319391581437261214405550429070952857118140687957229791308202028819466035056781456339351287983183600732323709937738932983589906436091343206057452338024117311872429599359290804861224987733960795739840128907876038631706592278808886698808964800109447732212885282478902832111344965331160928704137366052058728669776850256729172145140592303256502777489650415686803441565936099310613930275466901839274035656497122932531730300864452096299236294057024587350792903148313806520657920761736554961764733657646046952307424130288915539659974460415662138415162440869965834557460146054072305378836819295253978726476321584158335153813879781891970448364991684649440163954594816467894134922208896547384980313915779488148725023982302527899113028843005979845219611624933023948259588230740970485915707807823034226535972249603914497549499393670088417692587826354507567246815685354581046418852709039464328057965152289757451102522547661100149065736832320160238032443128050586628603760259840225125199424635559277657497124729698056918854732863103944600590342543280045786664734095794194902484146089854844041709927908291267889738363896224845206841904153949178930896471528676264117154370902391082826927775602777554436654746039851465545748587627450597021043382950370505444185789373442900776701927952088495534800320044298594421170619670814231570795103854040681825355206965317012398296700286621136959430635707839952911658971041909038430595397425542334115407711185921125852888161879657604951864237006645264502707115675766153496929210186246629242833796974427700631996713660212596033483204996475848675498372165220241923215206919265616580343638849796787552656752806627867919810465108252502122853492876593389582016566515181916449497040369807424904485230580481779507997619369308557644346306818022447970875347544390157109126857668501091138001024121630420224931238619739017723370917737661737670158553207989858045007256354729322680651375615421533847977726017495331731976586749714671261030005911830461830219535637298904625729403639706640300597559055320726753669797064790851799655690592813492980744081069360869781979670169060474186473441995388032409207776166310044876532724434449490351081304968888890944984839043952377033374342353387239449339369805088150236407263298581024647202447223250564004701834780491447575598587204389780632535690243053835512407720734293786425783582668809977651289563261573350347093946202838947646511328469233630067808346274426665803318874340855100224309522178057312332953402747522475163924266957605550267900176767081621163426795558061516927986541720653251992344124779448815091438289657566910194831184204930548212709513834944670665469753511511217987836056282800685119020767551228563918068091548118589378458139653379791170218786428324254742620348137317831566332330083378234832305602624526710531273115124168268241445875788931513839480079985981873261452649916956057541885005577030825578005633981339062576953005359207982380099636643853252257303450157072528776296000677112708478933715925976931533849231630918340449597939288777458452917043293466283610479707888451974170486407497652493238835826760281030997795574184182902360830336022238154161820185989204275077743687616716570249960321194620140472082170033636389431899771383787379588179245549547916118468013124079924030385646435770778754319045392535062587376245542019026025628027255457377899565364423291173264630241635844114911363422119063511585926352675319713672569224734998520485702338805623864257958630210586499464883334807633762996131498912972124925933538605923463470979470749891650861819947371113698979174286170874717288812301019112186089912145607992390989352852718848107018334985695126187132732414397599058215841785247454627993547377986910515287122511936709164620625940830685593022960129315864303719991810892859305034890696765684479445722921763635031441809901316187337770981811572226632918130353525072018398337095231347069809203242392967564054835287059680953423751586538237166086584046248091514456951905829238820418174584565997157630413790821225157633798583825121460058322367336622636415076797902099234591933517142341837898065212781935268431430219876116780542006505750871501611878575621772954040215070595277718871583921107287454707295051790712315121227419621189892080598063709188403058958736439846279154185130543148665258643414287266371458099680274604942934963222696660126464124662103531317471839801809530151462102989790317055255343091236181320051229097639876875977957579978317273725695444806245178069235758113404603262297873977909514576162162690024648532007804084394911884020195511338287827954462521069771309905878478036563965204014544636638284502294465174069053794313099870823764057191626745154009174812768145690709904768741235305244166791442021405365981564218170152713989084075280965959512861269814590132451807194398210626371758788985000632930962560061363813515064395204900530973265073090384884842795154310661215184609007559907585631481739419985171553691260596511622674441126261170810392874877053058529716034269733383483281518961353881254243968813129408019763656178996461617068342411854657285846921625184041736279497248102242467033490572925242929759034486614622297148982708299503929125875622711110547785711222132779067922119286554684668546306041734003513913536659062748586917171287928231858538013925807826880815153499677903006101543926304384097001915970162940856664780598646615090557312710438031979067948098956628703999726318274492694903824652378336510228789927265097551246113028165191821519712529958927378104283865493815045486883268079433299424708164009723085993274727256432809284495795220391151687668827845666928458994353811966415883262467728695821215877692860619741808362669335809388214620046948830200423893130638763153931462966716782814497892324498950306644631205354759714879747644472449909007607867164995971840851358294943539104850226132624087313677414676483720006156065906131366145485068216236140026362134489446347598492743356098134231572147994438879553723099557819077896952475305477779191296955800542814123931147733919805761965927367323416125610603838195097974961690112617044128507878109873179963513350295264061772630740241144211115982962486498765551224758781151572247897628829647878088486569835758245273003575452131090094193695029849670953575704223229532755326983227053019922012593592862866434379833505457412786911921226219716767586337075008686023948779656994584082847674475421445009519496133239868884783458189827827700083446493365424928101316172430586098690555479041775452764365704277442762108468403344507023237751233351204640036090495044484193401277471296844744192240475179897985314700059391296565857960428859425693469825757893121250680303268987101278896516387602750397992747226521460338016606471541261649876192780229791937000078633461909353132631364906975862630591865853298437966591174562740984708915745136249065334471806637524521401689974648231032735044336090519839144508581479123217026018170626274528132198552230051896477153049298115820953721658825293784963012706226240482673684129287463275594550050430766579730591080000215467115843060645145743239219673142651057354560327513143724907586251689161260541648725703960858419721461998027878279041542298088351515777958781160826705174145401410381802426356873962019019015949597028798537535657583827673072045446671999055692499476668603089211755166557459468242693720914756218239090504251762723716386369436080446069446861488250464227796086731377834207159766177435325411915262022338505603566645369358215143141055805764319520416810668531121617940555200951911900186823767835315497863846164682937877849512533933126474930953735155957040315240928252535524615101666005993379155821701030170440702594570060821421460388183325689339785964722079785605346530638453070162126495035961071297120603311006515400077614350272963779929003726687046360803231138047807562075401358214151493838869267323710651997767571911009764482034793897995424541149563918566465299898404854745901963995727528071083840968242636406762815546685232379494942461536590411799422897701480913579092243505660945762867085667591288735947090302412559324229224236538430988854783618017116289254037957098137227774546503152886795384347302185823675163440758060850214038523331795197383764353963639512692498038940318061303777733460202120548000022897232916286349874226590700780159022932041130015875873532316950388538136882057604830801358164261102835014447188520721790162381467514857569463279451249978558055391232819874673619065501541182629382215237061088119924093855536714342772572618734484408222606734374978438141177468096671726219551853502901403724515819713573071697506486307132764795742202329798690586176657087309881025656058983943865263377004212636237953313087562122374397113375956344460125640934865793532306185383710820586972479570813613207835743748761017448353129244669543083339189071007738654298542511597368022957939361973959773161345620087830623442859241895947547971028249166812692231557613631021530932976473086648966354166921455755293594511079060393809163603197444404692335169140228908987289270896640677247289107751629960092299264563245415891282913693125797853382702128574561149822257487670814284964062814650350189233909526567145527362860948208670135997488453506564756713409410152742769141867271679080342917672075693042465247686129046686887857074187553221157998724737015753504491319937619867983719085008641399086044160016114746542786136860849288075471177483828114623678380216988832189354522490103773717155437070247354471064782022828339012004833131082750973261663589146668943898725775160020019901154022608050407236873676689865562196088955628327141967846017946062103650288393472069570776688280239503901278667962253919368253610089603540828201951457918498455215216369499913258164923508768801279388883757262465424779521990383092585436826221140802509426974814539018146003612399312809814629389387800950644341016681315570718928452826998831337892856475751312580644677490468058679927895658750275148367576138516208546037210220693189717027010048181170099872371679571472482902468313586042338915598631798873303528524441787336360882411509179701909328955645012486231771979474898104708499413989627127472830358949974274368135152660526488925439485618430917313206510650302324932808206477163108022043077689428327370356827955366851076025204963335570590700813564160446651246374082590924103912450144070107179007028152074993213472397364549738305676454868579520976461844995064711348430405237637920291835965593704136499636933331707433212506949775729396713494248198526548863526769872220507088776991619512430499338920129385773680659793249720534208517510734813622043055574825137071124065522410868263083618512474777965832394670264945192553916826197557952460070219933909857227717360470788055240631892673124037167861440204966136291826075547837572897575481049228441820529750538836501518582904359097779731946910775696536819780752386438573324294111564803508861289241486696806672546715249579975912977093019909526079003881940677646696785702462841499134479750878692187866874756879869381744894016857808883324388037253315558675832388323946623814014210507204468006367122617206208165246313459204582460695441416953975379233016589053333743204699178527522005390854754426605306420446223895218925363582037895332276724695571219446648084938385305545855126301580523786542325343305379861882986793509260724679679711396579643158077451504780221566962821149812776353884442770759445999588479943170554453063522761180358289715647731810805055064341303584308317189358639008356283138822244386432366206918336622004804417400036727029402884049625661247404910359982050117256919711855718562038491582500930257623934505329410831318355083136583224297894793394509600445929710870870069810654518019684986871869225322294994410382868505818856472369972866858267503550231390980633118425311818719557941857787238333926436541260874524715266581186003150867972761833054353571437964552760403378126586980922147674458856143193594700111705412297626631703635820740074752639945858693912640833636651921490394372817861904058644166967153604410667500013794368142441759859367953710414130260732431035022821341848671379956721029038437036896132692638019371494350626802810880808043566684904373147534377588744088808991545428216642722262982800490293173410521812423418004890317637390571316762102463304052200756590431880792421120632034392586943645606835379256712352108961626172152118094331480427413652949209283227688331895985900984900600243908948437123273876308325086093413090406099016783532591082128540935695010066900778958235399333811211807732002377519711269945399269720363606201872296401993132522817697074818290285199810457730286434549091215823247535077237724268454252132186105389747740734398159540129551388416777170363339475830576055952921473210932459540821566496053275110180971603891677074495111229611400192462059719291377186796272376346995631005375405947796945809525173001113372981645515871392562737906372715566202925458251876278041538472354251138894843117651436929048869066635536358484445108974677437574516415314133629284929594447319401243634666272539933976574579665585890631387584941417601617479747048697361884338186004384719080865809045205755776006422270861318831093361803517273824123881548193584056709054022231985684569799151823451783025544862387454500562407359986123588697676851158014156175420815045373304361437259181001316389919622645072823296767163999053037035264665607143535497664242094135651262538793968645755490768552542789497681227464690066818577622356898856143492980136464580388451668993093216732783009511087472617067350018939018533248617745015482158305874714260026646246904389819144636155006780576815806795167820450207865699043456963153304210526797648112775350085035922029500994077339057152932349616917614418426541447895061529893919097677030854437670428925752009265014949045933304913275338562047487033867938429120370064582899898724814911011025362666191907342903387720921318655057387499915596406774947717628867850185186601614996796684685502464846409682180060769686519702840739714779988324268498284062137212998358869351073853770231270849363977815280491449038815647787620498518795955755533245786947065116420090504318510403180642883953646341617602191900278849550706081816061358530453198286919246929380684619457484888324981475837517122753252964308889944421878629096019319586548832107633544731833924951018283927550915203137055715093264480003708297890868400533683271434176601043131455616314514419416847961257706141949837663700953009529321238740853498478486181717133527900067219798941188730190305748086567768759840463653772811298659452675223658347645932937955043899908132446255262133275149983704320573380631528204597497154080489139756857901640797542802731297295944202194624097499681235487443336716375695051567704671555728258240573409076226744516610833316672971473875956996803517086991843715190983641544299520627492802740084307814591948057167931378660372906783173183743807546055495515253831873326817807844596247563909788923580755376683938611855158881324261538148441649789136037826115007372272338434343232684837020333454697333168163229630934201687145486270332544161375554351148321940239718466388081450119316325325244549761694028360827898047888475589953516683132634409196660524982577298103963365838819543994505869962275926980222718271714875230870223943192656036625234507633773649527604690297237417191441166713309433212035004987765415720961224879809965516163725193794525207400654522171729552635036099963557638669474596397450479775143283230281824453962124686118899949869167831815876328760783978438725209321243797868836425578611785449263531514024411611141792521529240922449018047990843278306034608749943130014172803245230254461937271703147646200465831213300446463643350106779170954083938208023305786412046524212238155585614761749384366838131283239634944477126212402047374629923891918678906512738072565344028198912885591265176572774091038709024383785489549286000745210761233946916920259046547834461852845386192962165221816875258152038324406761306742812740248348236484378536974334621102212513245377177582131830354228468422865932767242295435796501039050506206096828596548705183060536488194034251547953732655210633334141753316966359387671635823208808865912462111732841337320612173259597919832843251018291745169415759612312454321657607177518122927592547762452790761019471376115463328343069154335132175563376103059125782948077355556794204641989539631134104146945385012109575663646812359768653009838956909523885112721818661436200706309431950279265744909742016341698758256611801216694163051256856003457536206579317663757756086476387475637399560239166055723977273168518103740115411654814705286115469250203315570252027863352169000096281356196830144002733044910312965025339012153101050229949635014996459900479914263246357910657958132832924562103515615943671911219296930144860595486493916944745196136091333743741339329638137600172495104348744206915405795613744302303196536843990713559341092359748370287705151685749206843502111837092651243154414614546187883995625049482288226528593305864078692410545671712693232790722111864855608045642802069086803734731148251234235951920135402350875925433956071285132585035814943805844210189122694147144577060445222947046111254849404624905993762523731901300816049068004224263658497212905315847709637886013328712314800898013980142045484433111642953657864456158151427846190017097771980267110875544344029011128743033320035434475654774525372535638954164549132518904332696809493536644424080908914654998161539177623609180707201724591508777372796908399652481625221230560506855425240075098161266834282347976656089354318097499305631094113584087167651889584252205454279931536344852069472262621361476929507771647040225574090947607053036584939577747162576788091579173516730394028110966117789797006272531939152117691563535337374516151177046031601569429324647295246878129279495211467909926925092530065123181372128241399307934322459435066298979421973275144737241095693891404095844185971861538706069049955169532423018493648298900369515325504699612541567761957646268248292733342656188210208998272692724918130749630731256688823160111097741072734583268345331614963342278338679327432475868650722148962340543507248870374862219988385148694561835162282318243537772721910331234176078768882610780896434742379647037703721457121345241746959621795785975432393373078443825298525686789711621568668366436106188061943472881573030532512104474553727739888319262182013407671622550376244863009235886581249677314086599290175599825137898273626692720951983310150457035910604774396504412629728597376145407251528021360939152597339537350612759018677438608096862207248338080258890550068105838279023193009613806215038233022751983025893193068134171791298278503756658768419405510798998790426131628883247050540856320455233651327359357517102243741224669181188226678385044615669538520822287200553984744666266399903998176996709113316815152561808712911988285529821312498556048567605104042862412907727291330210301876283374600718250279279167047766823033999492424174160422393017567236298310724377102022685063419501821902747787129901569875968084793904515941729006936757686328154702314140535193770748544329655743369780339407258514455868471916700576091708346506052267023486628379193758599220971526439347604773572924343445119374686611577778279644915546664501207312260287035921631132561343684460017238387379842727259524266753281150991842715465361060079209495144939265479812564418486056019661373405477809920537840794819224439722956066111025511512468097894005668778957083854239037271382762917270432124299010793228146106641506262866241597972609764474398838766592294466085342741406745439286975826633636363852184179759500372817377424180883018778090652012104338463685485601164113742123046461863583817020238592845845902132597969078576313287242600196138840577407591723142284032588125898775543925844220119566454958606971606817800068575705944756977507773127839140708570351440213803483629328764818506787338099266476668044088349711845987308170181832414906938488615991470991583360775425632371365046998326404700572776028824606079348251443764428494830632949403552312707537510254395822446692547061927442358045029312964968305854475124202505011134679997626999127479076539223983960865555540179995551002233685966095094637788850946794806564952965364147531764414054218004999253673759394925669912493328848055800382900240416736589966399172863938960499763439708550877475819769258623283532263500743235710657190464133538827786651557467485165682881971381614239397480901146869948059255537244952674467270902286728000521741840142224338727170158685740546390352806309961619828557704112435556129439760556530815522496400699904432000489235601978034849884541832526938853032666452230627817050609766674640744046865043691561977653974241324028391651021866044762145678257009693211400616341007923077207294777661485264190314553195145881993740768153068344922062113392515353306631920315660140873957732616309748831562414075066254105055827916281283003951075119337825127788546584261363336076966909986347497099600759578021296854802763142502771477069049222865239738325927871678917992883919233045076071451877539200089653013096288865645082215450488207782695641964235946795841208051226875022356316145415482226347336256777780340713311606504716808925656804736359808896426090089181870064744044481185292685763642507367627682256405550445614107200049880711633259267191642772972449043202837940154919365953843294511220870876145563674296508670357871272662193580724966964798970195000669130528826375780597019884838136589038758335241728480943169162728333017115064640292931728398576895192097546196070025112616603485317116640667921860940179104847336596813832106819890158138995926018991034629711397853082969005437304857222064115927339586281633060153889339943768894872159718363030461067971027216209881193585198002544718347049172728012297752142211042459044955001645989851594976318847948542653233719056918257586032685336084888261185210011367133482200058634709071402657713667975022842234705183541699166278150566293572929408247825291747673554737935834294692332828821977005780481540051242018367240816595965710996217012856408681002120398327408530763160413732008449450590659856962425638118202532648179328918431144433294022435664120300397921347392275241603711961555356259772319913350623181186052177710017688775497712625673466499098052529288510624831536583319027224393607152675671537954603910631353363661454342946626629574746405897378826456230480687822177284514903724542313122139869148856993238166543383649045673888174446859441019831367711896211723751307677492220561581486195435299166032706933283572974937929063455630618371992975060979421329648982453441671919489729519489552737250161000260369157327488744202890018943780667929358589468161922918637806521498897952916680131096095309132692147580773747931846952332063013245831295473894856289969632114087113526695817780644790649137462327986367135415976542203023605986243703947286482971060604983103499175165811854531583974465272528901319493746179976379994897733487502559754349069294825186860220594519829239970261229321086628072164409405329146032723331993073224666060201887167971395054591611264661884187596553841189939944119094949934928419721222221155140426184189175553893776177451782461177393719787675040673609719639667618173538439164741841929846999159901541905210315315433649024024451401517609362077003539743090121715294673986703811058557745474365547304785394845909233245459836186565517985787679402362258486613463683721663416513147287284422373021750916984763594177995453838978057112450792792790710222304464808600261738685265647494837235662557535110300130789461519479837509488954906115408860980498038719136249133333326826135518486762837602480208889482309105137483728333619311219301600380775550382293415848623701659991822469131660605886860951081836986795861554709114570370470626711201652389414679194345040567999315106283985058516075466679903401927441612768140499925121918886467087149300360994026852452754908557199457069694952735568202067755448703261530544127525708636981543313787804070992276108464882600008925876353005541915078143774105167762500036784494182762905867874644018634993188618172972352195579238624756759805943744997729085362997970178111554965119367680874083206742089908781746599581255709330202032823896327794994691877846171951786971619652192642453207040395989592260542000488530572207320216201961444354846763660774842882062098978708540654603020376968641071187946208037186986889213332245054606632520644286724583938046357211281546793474790858411917685883695737815428937186977489125049664170200571611003550892494483734182640638976793456236641216279434526794059256735966309402656777050283586569707153011613269627393983797677742555663855824826927221057958937118013391755612214466410472503900804916986709270047967291117265055708840315888757678230765630863587585653014929888260202315322832317656929351675107555701734699069718657118451496196576140830341150358468434658407162277869355754926910999060804695690919769481979362461422548462095371322379290839967904646925201665154447847945886684985768843372924376979999823715190148040220970757322905457801966024357468268168420456021382394033327252753086762560745958229786781881700583787994905904020997932674937725676860392270873817972955347921488306050125042935637513248465216304710567312809244982327164609628335878077064564621251277455503272724328103602018193849404667080814014379254841639900450818924150972312208365574464461005165010873583283385522962766452942467725256949188135529392870262521344950445129259753286346558777715608916997282606899675214104520278809986988382814577691745076071416729845420556499407405329169614658772783007196614330323052407816200790721516990376811252803948072309084998353269491036477283945680352044746718125769978174196930916835544329996434606117623616569537725504211551570264265000606863332366825760918039290821813450867974267056067262992297663085959019332775502962022741144137410509505168294189535174787140546878315138192846286879271960340777839979940511308392138196084620313715958298973991388714660951749473427870037136137626178034331536848940908681163561849780893262829770963236343640378709756838345052714331239037029295761804189819217909848630438685225715791077995042912221828287007857361575404266936867624571243433205563036510508059503520198581799304542092235426840862316723735636106134786077186320295282111475974969939963010517729977330182703909310889225609626956666347260844537627877976971501318354608955349893723980712401570131258048811835348604845806280150670469523598672289565668314777631181974091487974822580081122329267417901861786328487597540947506564355826062939928172898791162664302004346608658458987989500012497312508998159355558356441932486605816854910362038751232135210711920957244303800014628683992400518496683906981904999980108574135735308426668995906092032620216919041137514535103164105588190364752093066028107079561993241763964034941505449701627837712763535264585989452179918687393721626580660908335908407407452633973839106926683095239675689001065704041100529658252873957115940240005377225842055402513765184783613397481120099622239284070603311835037301398723720648914598820859217291610542484827870211466943275869893401879929508403763115574090544613761165072609906622104369827403838926343914454374468302191716818364757621172160077044412755996235713419271912060778727866493980803343486617685183686757260453110065797078367531975784605561796105459726293079367770026558415781039454592996225853770343177857764117736084224910673951482458048510655273575237983332468330205331988868012865020345468048490695388438675039926945170298870285483459976476419424973644609016877359585672614322558505699668043029093654062917737387776190440730779928956288131650185249685058296326818527138107736531034449050790401417486646927993959233633732782573296547595171999049963617992816997832511840648422444935424939751549773281519100170809419554909460956501574936368592459063168263421155095462426633002982813543156862295891744701257034336987469362448129145232350103318462707085981160534524513668469514014293962327029661406145564198965162405806494084009869168637201172597957468017439345917068868134747365149197069921738509942950293077264255097197992618601906026726469473673641909891888009854734312588368679167771259445045140765418018087951546911105622457155359656860301946535151163648134460964484395580569307190199450166298176127399044634648190921067229281793079845729060199717276688172734506728721354760103057294760200171508206351217100655508221149583531784686922870826466965016020415590476892932575695743668023525783943027155629428216470750754835274808135091782476092065854694252925835091933502891459949538263832837761567168450656254035069725098631302702691872159209263186790555791496406805810150829948405760959327219893950671555667261904796181026614935157140211140475462516238958709747269436285546630838355619816856306642731539856287360968287269130845814862901803825328662953215983547668964428927153895969839633649112955656857268536707715173651478311891531527768145027784774151461444226332419601748498816392481356861689231252312580981578641753091080030292559126548281931077199956278138074071107205313646910033223905998472096159798443767456436270263439052199255080075278236705932561066567115651459013277429703810168987154648737856648917885996202490991205990736608776626411736692895448877208332002247363259848434085707536063756967107087104928440879210392003120450019850367462352480115666167954657572072602657011079904725242929186260765620909385812728579917247211413094609485080458916218109794335538639219553887842228143451748376881838866449531344116110149526535199036879424352266178437546557319287775046349609677050896910221348454907989399609540392986193037836165776450146418740032840617673673065378343526029537362135526070406551869971542330107902500478666107636908109161476585431274977659931997160775712667620054028770430396423119651152435551069981733083170621782243288274203491992672890996822803122652868882087673606515841066898311434976566017104768780115957354272781622923212629454407892814000814466106796811778875002009191045289579689950288193575682527092588774650537460603604122218999554291309426154719962402163734305239228108867293211216468319846422176783366046775142444060149694177894247954508285762001523818202856984741793344293528026173892069221740019937876569963664014778484127751964371569688304906797582982048302057668256766820655632618063429458773155906709557571294938282744203891183866884644651905161818421845473716686246062228813464541731400992524977949357321829553301064153906389553599080001305596284870641778823262352701454156751814194445681370247321297756574995955466630379023799847828819382746752982092646489698842892497334355779336171425587320325487223018619861646975170149665654431576238152224002534250081036540392602412776092084920305777189807870478835273921051064709913339778529655255119592066947674875334896788567175477817504789608624364545124247144727937020067951442918927651250528306064217751025609027472701526942201173594974963301759288138376340453601504228284587248217007842664693852849621833715707456228366908343899258571352916073200230311591275799998826918171818469312217469502074455614124783204382711038905950213475740494388590957627708410168970168503802934783237558007379235310009530232096063959521849789779895276124829768909863785501448846091142260341267701918479166671332044449256182196103166590774685213048867728542734971194606859180756860420001604654093381764022335750579983366577378752179770280797916104146220240780828288554377196048153234822912166019365898275756758594980900450667009436906417889352099990747837097068527254574946657204836287669910398535672294709831270870499872197604379587441478300851488712425524838649713142450213950844815969057052129634734559964921563711821993755093225867058456635380509776003123313115120862412105125964418132370472590708439063676159808185472425988595744285850569757146123075013806715456244386385662644958591184539333883545309136354262999994468233653595295110513256634624122492654649346323317136962713257470200524591593496378900480490642691154740941264462563721497791562630421533165266822787732443968835675374490833629152018382355722860455568424932588202965352777086243301852050113376072657495795777420919187702271828731737546844569812910567387744711275971568518222343325011968716752424676504543315708607325273258474399716997943164923860920642470945531173523940939173529008507834457291299127260283778775490512302607270203796558892182648484787034809948977586115894233875717637370022994999620958636645670910694972801067578473409139887338036952501704646741728659793083685210866607583824302704565657948499250807877826722311299520770221848235561801428301844790613524425297179406123835260344874682084420756742558601070006121796557744973995269739525788651420818613343714457348627307356677884269459303186875958348461347563586282097484608851352997946392683576933007804085800606316806838836513145491056087431959072850343057000979409811496664848905427612827045918287921927916818880410817649544304566470880782165422065791704124870000667861293921016391186113629873585013628681194561027677858814520761947586017447412628350904040746999395681864381329340347744241422593908285062712077443129092843279152911188086236106907874017467222605218601206747043277757166585498660196847741361455097793425363248221421774589390627820279959019397184850622864092469939286004012994238235106268669152053202291627121115492463916428896088752987996460473558144048685845552608179430775831454545055554507684094116846316481635020741264301031726409955854627794361795504834666584612755039561236060741001666176611620970830099235647768619052040940297410621628745033474273388733275162583819946522838259446361190106137721289583560044660795265059773410340643436645701557239359443228056203688204262721624546983582877707422051867473808857584639909374287890371960625554521151054028343859734946240281737733421630754034577907290336713883732668377801099615336026984533213312973038983508960868853762919223521604343147352868170980237268951208408367203467274857485384132582404366229703874278727320400202778339494411354170962721307706554414106342425139191607467310110469783864709086336018302629046580083734348880964743995183714718265548267165122295517549803756100336763091095302961458269514291200426414827375081710109445977414155034053443203839628165034333064228091587205986481862094269828252438228096155758011285267517335503718064280612155926810398917920017546195124741568542952348619270109971567839800106988087091650155080859694386761210032561108452796911669524723609041389040072146763904277078919472314193648130598609600481020569491245673880590821982727400172890011569927410177593050963851645966960040236688461071911492835896973640295204811504011568897724592611969338540631296443789056894638182396360813187809884723653313749433450810535004710018486521221485115809829832337566148482613356594376067774034733474213441390626854345847229021751344379592374832334392627927626676139099616828373923512165580123359045223812277971787645881903933118416978083531758598690224473587904994194877377745730787725907107093996608705903917163587161278035552192147595521283523625341079465827230448673430959547069347781186154275278138520388541767273399887335046631893552220508062861847770487382262695305635680752472840608153749894908970847103095348243653816677861063723624060434742583117193202061690819074463166750308871644923067618439986888136408094185192945181693701970760020618263864116940412327065241116817836357295896424227403376192200025926181912109108890797230006853349071064431755197714760921931117467199387442838794012344337625252770776675675037122617165316882247471801414568411427557591564964924883876975045012532138006342069867054959685218066819523805360941205597615219349226667019781878266436241536685195610290744898835694812302810886861903306075461374652632069324590174201466901897423675200777171059591115096967163006537565098128348663549725654644745582891959862308712831552008420564635497455854467752182501977822412510111755254932338651365843314227566985223257688633584619237164122464998896202024266839107811602289682375058263021698231922150686033510259391721830244553303659719468698225034433022099572750652793838409525584409156728739619873725220919459305788888311076650805147645248523012632330013212912606739600757515235747730724554015794671290264786859992089134483070984890237282064211766070755180845485602473105143439770307815475593862305437821594444521702278491567585638162170060835496864929992927092182984120010035266886492752444620875784156487959433408436799285935421950700297578605564374818443806553581376011548250814098149946295033141742489747323826195554449037547596113309773566281399286332573458901542505862359007207506265410544865623973260149138561771148645507666405399577132509692072858277096350381831297872971501445207917338432797313089046196036796077420410754038378130455946149286218209211949280640112905572601168249036202941490096626022904193204757550441084192926621275706255904615197306214531415709216471789447090058341714225049861521632805740166507459684680718989808672991360299800660046607069619319381135813173494440506983015316590259003370619341499686374855354152068647601888264567201771621378783315450091109541303492033989010181869714160781166273121890557080070112946500636835112089631767658357271571537345795887918024016001805322480025857587445066494249582859957099145549949011995688148075001220720818174665967241017305025992096109032885609115739603706979784259944176164328065560747187813664405158467966530975000104775399775206618085276434257522289568084134020760892722274518624302031171843175493502988220176895644962399841950366092672426845319634213378950949972204537320963135060011179235156562370060758853665312169330867859767596842529409297937026117224946693786422326331922253071490104625182064211490733541445269416858136727548855565490342717652096828145971693146909583327929401766074124767179920004151671880465625103719470784818638274539237795150470613165977200028373808894237464094639624630632302478530513041433916914877987888078845224400739726337340555669959446653583741273596988271448662657907442530638580000564643257830282581724595215240283564296889132616940218445350770077849768092552282595920155239546196911761583724002818558942312398982602686702174895168150551146775179312005189796303433107998615290236002159376390387462990226215753480318200898632614832688092575055890169088691509663926136565516987195579291645824966725551863179410282027698888961887823116548794950680421275407148290950009388980979175023883449918852486934752988123337709710143802664169662814394299113719811752679782459601830789084956985937060308924879423201194301860698190287459374961248552418611704214742628238577353697777832069661768437337845841551501178104464628598785416837834119325284919005579308859258384578002384385491715753541839424939765462000377869252325933873164257859912417731043731445567968733236512435507078688741192365787829669804208368226538433530379831254483729594080980755279677442973430483959965593312188427839227563178916632413294271834881887139743535968710077363755480292743351076103334890671924133645722076492632849196702470861757832496076933706619153413286871385586931976869185883915762031848728493077483243167551108217236135808583564081541101415271642908691107998439052905707169051976095416422008222060549331295269671409088001686282624165824073382620618539713971911320806944548661236608536884087629617810952383888545662582420576845603974396185472391550738277623686860354511591995080627570389739660115338746134230852501344620774295751141376664736584923210786981900023364898788817289841627353409143736833526880974462493800333553078359367781551654683256345992912667331034259975761681399093346686738365419239525402120569515257716343887185770033363387697778951118537993636192953009979232092541812691360331079130441518506081706423564127559057531854514726462149226448974078441503516821642733204976309204766681291770751429143372753429386220468036280403762751562081491086273792634822606339118616696064810909737205240741291345633309928025031102875597294675779312582245460457197664366512967489727988722473313330280995606196336218531822983756375211110723837247250756758834724562314204818398579234968560263993125387763343775660342379786745407657378893519699528726915083844609074872244695913896229291733288732322114529602110794137067633657585703912307928827232131264919169403347484201219125350593737581792139291024580867597920225857872617737157279663664532060224759119875086271580984106969344260794617982017278397618525370577841763066688390315557842089715930932415599318212431840868104648890908019480419543006623756994857321685160115365144993100966111694849059595151835062954199277330497286956853068793442207229615964274979468854648582828000826882989827190343551179668555359767257111045060277196154524839599444726047032895932238318119702934092892047729995179261307647428251732136218258848064567369585141452295318603255002022941599028258272759218741141781693657232572639829866936115952616220080385167026195753664476612049008042605246027869934930897688717723283376528788069441374098980391773951780159937866207449575550775534647764832554509585258600164698348859312061389646545733180122105513920366898833057590628040587585680721746155355383688390179240494418181804841074751587542338765095485352174670384080368785132007909006054555274551113852286376116590298454777753704677633757591788192631387097535613317336053611168958105440960793333217911642043710979394746877286923816082805153015808490593728767968656638408980196232018237765524955415772950142775980897569015821092255733472282344117366143056385055720586412770118104397396441761836532028015089685012254212121748793951871445490526774279930725869828333965769067638441435330221226957171789667597080372057144122106389166617247723019347959628850136692573654775366534366434508934861048553138904131021889471434471027758942509698144509864377219933203691571193073465945883337525044246346516620309481945870695509663700181085785348566038201511901309823767862005361306825784942843716972681614966635790666580589118940308471623529710754948296536731544337387899507881851019749977722995877151818610577400384261534428960175361167270796681218007956887670417754510541011938365116435068413842207225234533648435966685266716681131877884018981936452505474334509585809049441561222661109395215630561515978922670966477758599225041497267885231689287451951172146464814996844417343602076965991097532625589291495421190457019760115157631318035553095494093943154696263953066794665309037506956865322743745525871005563299094702474517891517488332826600657156051935060224084255225025417662711251638723915721427545950023859009283771369880447894390373125760788027501126724663305672501452958127388379857732055067695304062570717198560091916667480062839476018535140648398492307988812238581079197752468814314925546504996726225985652313009826114385961284413099432714485814764669035719570984944983252508982989194537591450670825779115313571256756607212304087689509643841488295732427950708369906529632454680642957009508584060355630619119955152231483752029612908774086612373716389471821217571754149330981630422188259234080400930765719584202674750405867210559935049703400747321091559986841518637311663609533238540575236474399576042679143043927332164938887437700679039372972123991022101756398015664858860629305282250814089701555327001189266570162629161567946425994325137773683228166979247085801858401585664744551428622589549097825739606749377811284378492023538523793776529127079513041259439169617380084510843980025829979335881025624961426765173783782592875353930537985784400361091657826167226876509678357788854551635482851178251095664061349235999830722578293754504803668367169675844575198593494140859359131801498956426117209631329096985344892511011409023213515772846446879962040146728676968604826546065596983687844172696001758009494828713074509859142542079045331881989566758417111361746217760170785235150876877841379978628829257628157989649906749124299518585169385997829754290468281252401310487646673525349932202409367539877311773504391042115105912000614669708091623800204512297604275176561872368204713574540931238671056200481044141442789043025717753443196005662372826606494488945665804504673954993328447353719401469091388734524802840374466499022806418876629280821074696840206190411382280957443390997097572335036743853496191454114940739936968420576972196933085198106905237017230505122185496133233325736678162450062240500083116312826181111390368784180944555563966015963463458067688480612006266687432750289124092728770673695415772159894718553177558002385906008967644937179956684836411486806925067535070367510097713736791726770650615970793911791122867579992664347542827343520699347149848170100328889760763828736713431864103193722090998587129971269292130530790738539193373298110688183081098222003749840466372383435708682260073833530507193747008936375376717405310602599064983581034263923867085385666062832316768324740198477710189954174715804768209728456373603158953916295878099662636385296055465623624945938894268338713627313562601839410738174275645095469101262560217587024267286121400628839021231978945571050522596732743719838303401697814149581069256484736008672843730137192075331376073500771454749160176279912454992563599973013943661792636343051894464282164558627741836033101072809595354813170465392189408780559334987497616484799345517649622200695422226819897322235181138055467919877959968880473470250075817669708554940198770467707930594477825752600688966063407029598560002840978273435782378467574683918211064850795008530248744019924759631423993140813700604292636764002078166766229784658805246815845625308426632901635905374405399170235065244279992946394720240667473952518278809083351976698385228420306510381105113451153704625045032821652227494363839543496430221232447006188243109432309525199533592399842925951622112418557171581019183177976725139380723291108188924197865452818432979211413498094999391127371933043524196958424541862126627908292638360958140175906981522010823256560304561042031386771233378834066701621430458900848045614215334942424147026154588839647328163312945581833977161462223405106906951869499528308247224959500090342051835982965712418198446426352862055067277585349683972643948895740255175036344983542199561600655340948560842488736479768039765874251116528380316711461233526656492318625537332289787817942717128936221355431402776290069551088057122442942549020543244883659362395665934075331995506041337796339259366339063689336699098208387662232755273289557911977995854064123969821597409566047391801193297931845777596862030540161752348646276715268694691663018971865085295507965943814576173548564246235069493912001769052744595409841071880104427668130117941444455406766376588489645097012331686414840438241271905287232103222904444483099541643488316039012654341203790717180064631511809028602082428211051495015762416751796771592952753009159296666435193661414666729766708822400961466647597640774871018575587521699678146530975805258553424054544334094117553447534993841258201270178895433552399160015832170639801183973897155741308399528492241266695833320841018187783957670145110031030632692471593248481277012065212040611442377923981601070885782867188861417873938163611776800936200734303752516473970767810553749261514970346278647349863164963192875396300608952975867033728773798079729770386499791487557488451731278585015419941414155675387801382584258252731017552023890410129672917327341146514225352511826285703111882675027203830562516050650100602556643813962119234167805141089459781984185851038884321849299733592586021546265851394577154135275377966715341215858902693714391540655675230769033511483985431364346859376133068176107243644089006255782291432536512351889819384116348223910598961168153949781261414785197806841682791484478394314936413851337071859926149230418118084547423965139863364916464245457969007275720213397433411828266551622153366204038056775418506193921893602365371656180808226191019248903168524065495491696828952155730256173841195555899019624640275370669785247208978032106587356044358170006851669284698700047072975430394253136794665169681621324469252783869495227453254086228070718932129848802683848057551506508197223371494602332874641024275123609546126220450673041131460408401050219322947432962586131132929484341477614621540108350143498221444280997338444976438718990131605099313260141359309501550446239331222817352385494696098657999709545447066193029442165729850324470457181428182481612223382794317931967058344413593021550943801014881717715203247385928073619487351669736320052260130426156782612857020669740933060115453715013713217188654751328521904109761844293616462444108481931524826145593137435172052417218248704492192661333636744994662036797929776826629423383771742908535885379452216939857906928441223687522263181794894772571742758595017956315616794093038205740878463302732631141816109853905626629244133723501642318446161394805611963804829598860275374354619895652594355748499685057822884459237051247576378129327315496291223054585017720614349529287546122766380041925995183811254704003989548819921491042177010471557103964790606373785731847515665747890427077306495283854773927035145849672264219668189366276317903644480677040934461613640743393549889800696943297233217891176544378193783893376098033147644649710274425903764172683847602498147905503520464758190774996791963859514580406528809538078138254112270804408502397210185399651977052103690013841178074928839331272677855928282836381014300205848061213070143862453323195036497862377317389668376743678797959201262199831377198706457264348089661064070780871651752154457600762624631295263427613183929824788137145828060366798906918822773791307935485361307071637018094870557310043066809624529946698574266957283321269966811287347749840893319934925246902884838915243563760826250296879310872583463572319733123475259948831208328483771230672967762502441587339571684838001194876513797422702276150533554384177102431747518716005349907354959433536233465707246270144336253822739150642309467308679943046970448313303496745849830990832393555826159578466494607501893121836866163430093368702277405881441113896869287270339621744384184083761065905007481179685772958931410313159172145415283111928688235086439397746106957809149518412526446165827414400032808650999317728345846053483741821219976044621524600294411850372530983138898690608842236599005480634482659925339015288219604604296423892661471459476403660725362861032037611400053624081787241945237136253769466762356571180552614430537210038657474853519052285877726175047097088515916782771712479404681501298596515155049451148967254083395208159778471167060078504163080119732953417320919088745269013301422000630111316911083261501567938522060319891909139234657359163988701030792585560808417581577642743022519436342044416250513817602531602738340191297876953018986056017063178833785458553359981690857737107617154125547894488130788522440072460640006589567813059238157597917258589283546963155648887625623223449151167654049352666863697205596675278236871339438947667142550212770907972396663515309877055228501107641097425771315501903603992198612469144403362469880367865036878959933873963321248917552864151959351401307252884918957847912084074793498294577677755610398812280310925929425060133804461400292111512202255900696967355319410055700642547918574984944330643276964580575991616916637068472621086586600796362786215328734608580981618986185555995160396846185503284810702340486251891635125678863895095017272918686848014261699759061834128809408361087094184948516498011713569475783662451280019432451320274402623459039509859673133873254415834262453424196734502993267984248011523673540053909757175811040250756670238276416568670352865044064902288634808606188295246234992505305018036367157647056899208974006941850874976234404025763171001793881959866211187971004948069873526435564649577812493981227496554910288285941492537933096621713600640672564860288944775370205462920297889090722351782756381952795748876515825754397287962336495806768540870369214871588944541123797621711221525992705578277239894084705818894228318780453459430445590291791375924020788562922620727554066504633679215757492746073899101534164946224962264140359416349118442821666285088067307242522423726097428602122000039360262617567151768182460772114893471581947593254727706934177461111417116736811910746156148675876034412488409594445429056211995240529019182223049596925078998825485651116789386891161944117085964751351027425463049217548099946370879898111527666598187971472480099629075078180080505377538619923165543655371220076156655886978602822810752807934576699338375147471243158641499379411706631591686274589103261375464600600331320518285921135795367833492629319594614972606537596211916825473715250479075571766787346442027243716059895681150585690362498988153213557884137557137717666929749992380061714161125278849973185081446408271237401309933561366951764618250766765883869554298841276164901297725217014053601371527559795918931952592941128933298926937398009118193238164685349485798636101083140879342132996318137965284146839604856765716962948440389154151206661996531433100964575378438996155716102840591266284698129954536905705912988039340484106284620456560806048807673775040251271040267451247521703058231400247009293952809830415486325900133287253703452186167375224095695921320406324370030281407570040980392700258760626080713180822999722757093802885514907824456009456007637089463747373242569175519691607295375358063089747558057920732107505308211440395393038681598494131522286907522612291074572029275049700792354246821044862775693238908956090370685316041698558989647619132689588417847866384462714367296151251472548158292049992467081352012780500320004889430796644090804476160604581194366915387135269146506818837209687835027961857460699755573826134231019130153616838760274250238515751685485050134908493933089869154119301658664086739880100312158737695587439504499545885313291728941045538452741288121971889555615978388460593541137642435383783682106765192075227099492861611111358959117223413157714329499397962265720070875353572113159400737463254752040135052635992820647166574664416375506236835204110745952120394437606735179076257397135567523939155763278653210994449089924316547014276970997681966411215926588037770874010534412747206505628502525336864974650501630207633544130946535796673291641629853101113993623029186710156799279783351735587215457048445280427895863528065013075034754083641794192663552460521746696768193851098992171812124962045197329682460360217759107594715376872984257666461478489861747580758890488693217754807663970434798381929681880149060180877781454208551869643488141913954388961715279042937528143661445509886266287542636325258874556276933726605635708332699290838617147394705280738679028145816139815985969827746259898669095632747077647308369137430960584484719804965355667442022743166625413205562003074903593692414986112109869598830266341449693992839983169449499623415072299005111265691411094106823441907354400496847260970183272092147273860637401914699337505262037168498213848857220646495291583841629979400275425000387445336920329877785800136687873390976521100503421974571900061431363863264855657987505642708698398378094251662225836649470842916489199275482076130659127413107816895434521272556774270536966135018150077341115559569015699158701906828459470228030162538960276795524565998183600831307946691208180606443269961127931687269355641657485503943102935466318157971511181045129650340556074983438227456310879152580829468820840237186596338783513904478545861154312134686668405067792470914951423572872883617538317644320336652449566906729647910196666507517791226495792928510400862332965761972901997002350342835221542734598246289981691677272098572018652440061995475903798150994786982054575492676045912776871994037699527764867273991283573190869280533879434790037915010733288557698505596681960324169731182628792377210820736914703661498007191493223857475818852096018632783297439291531335778314560682375210891104948764605341272488684557386936065694138891630679055438558732251342572315980823189208931992373338014485109979526776077394311213147860470051937081392262543030940944354075289984454547362722739341388848848043713694676580975805752377007856161901748695289301368194889257639464083461701188957720434463695661148286492643201189391063749822034657454766054680243959325020730433897651384413385947800382286605801330052483206543671916331125182187083117180570154824717755610101355199086185168248582226871922697075173802899084898550639190754656020370715033957792890826070938979368163895034565743542685429706197578634556641681321860570555469848394957885740589111834320453048430416913245641369672998667799582217238345615120769199434738643551130992853705326768264723673960764894495759973226548625480177655187049676260460380248293248631950951912733699372907896598818589595379315508584307361521048129396543756667604073480146013479713561745467394032216569090359112814821868873360821339761776313483441326687915997552438437378230286818394816546387118491641934910274172003115248316578558428543578903344266433313073387779384811555733119383250987080236311221873951142063528098927272209250410319552277534273175030610396671967127871187143273439522826546717870728255071424357229304189667546565685325883576447611285851611322952060865726643563868140202008780243375998663114039273780101148329620234572609733122127571284337102099451983461863817956314191388218080457541165727551906917514717360058986364880886919626380570152646539725992242336615266409177786473475051383374473068610152385839370552255451605348234013506539180933649100210935319630062345660474384893974335951232144170910767032339047454540889850009791581844801668355172706858565636020717954205628135233206189187685873840746563010148276420729320285765784850480721244386645065630534822455400668157244865997104793148814593660230127564871651220360442265773589850914670432104934116149751678681563432644831355506073384879520116842557048935492600412411919322726828914515267792438718934198783367211561467559810784003347065946157646968845658244427450502807049701683313209535371469555748494440685656655520748940084983068955165281861548311573309350213875881370351007792030456554522692550187039342080432126199415009565486752445483198104667483301031113128620599148637045840978024917036296274517623084296504452683070286790535251822074668285059367972854516952725367149960140407548158716596741801444856759872796129539109405305247089252989250381854846184866203423295499917669988380638538625197981141876692355883667054432780428909668205471578234474871764328269208579807734427830468861080041846542632455456204287468574624796193111328782585802420982391565238527785126070772098080960944247930576770533322938313471925089830140761372215032780472093518363148861754913126590986583531699781747613362209704699773780144800989524201499982885178756864162043625827180207065876061850080490736752830617680759731710870997645782222539861103325205789767821294579221814092456134891587214216978511116222146295914805271017634326500582183556932448045207835905246913535445183551921580450827519437853958981855686893070335492934758510014560184935759403274841211413581968135174002099332417517978094936243868877943662183380343501788365973640454055880060319252253315425588078678818486270817119551987827958378348266449374587809294484119205248738133964328782240133436803223812617955403679317867784448835641700840189169918117799769945874588265940494535993249728185007123202518344584112385131262063904203871130277828908066922707452618935781911272525870051113434869357065001943645571423047668121535547923318340876775058438659345818118535576515230940032746023526422774682123354998847365567347263028197995556025247068880736986149277604684941725519309039031287141575735038625671820699809111305747427848268277365518611894617562027240373749569103309446542372355079887879558655539382513328182674520626939902552738594588374160756357833334110297057680953072224512758853267790503738358836418021652769507304049560767245857277607910971731124455962825692662094036440001853923935969739542988018777154147728106128262868397703859864623572971704716571432422378176521988513805202516015810200572041082112030215597137782354378514393396188013024759836846060823156314277097708501275711975550796670696401246326369274841408980795964266668339384410856044947753680384076661667643976853965471052005064846822974320104606790728650667291436085785649677965626949069439174808073858116612127520956899587394176120412173259996118060443973539984900102286507708708461622222054782546316318818372060476886482821953939583565548229874750848322608873648006562730278610882502728632605291187022206836310890351439401797695851572896987114161875291184619849510875843945831148324259590281528224492270336735330792321020940435068322363683674077191299036154928575646180860450279872868984682954543652892758379985597195088065301819488820677927534845919007841703285198526011872455867126852154760447959294118135028879815491758701869633422555932939109199678069904999960094588984484093848873500925588183011541785272727208384432930377593738487105804601575092276246952358166335440423132814145612506006254563125641780673335111760134029602201712359922862766912552869790685075846201438851912183157371597494241084506231656134426121973784132791562341064070505802924494103952606171681470052316198619117044240383990207462822813727969755975888468862286976571389632306907515044869982716132837970019915214560866507554945231233513000141319906089225623207656160927831966627914383120250058911513023484193150966539022733194706796802421877844049322736935330453094853558072037207018738989921338006522751409922838592882071423913350264780283609026634832721545053196096965882054049970184805847571955345051021187583749426268261688204512457802288026783006620124167220370376074019716394110573102857606975357117887162603354592021403957544480431983655749164819127608249308720307514531530528748891291534365856448839300372349595857246731472133987177377793846404204298033692145299194688307991263994797922175760366532974445379878205739260089306722920919130580155271169678339429091006355833402708394613745026637348682320964002519411410307234750804647341756635396443410485175325774215771214111685193052257246020316527183858861549332398115869502588557137394591369735737935265982274985001609999908764393963325971811270613838163160973877991913154441470327322918592130473349281859918478265810892173930307665530243495890530456922203171680621467847989651823840656058774148687206529592067481544707410647998764583322556962067867883060876082927642851903667904040961585414753278191713558993614128330380893546490646047881973007632380725643422734100051578074724230307244547208357907593691931147440442111879293558108011848118781404593498067677835163204384470607946954336710059814793725530191023720004763449357230135560394668813161802365973246134672381376447942005555320027378323586132170185853070511302330529274653147548682959156672781832493351349942585763853001129029134466659675048924175462213630446697153653974849294619842655338723011378535748672537187705903025483012217160326237704084045636995610800026672130191351313711700737362782942293556736078220714108863598889585004956348381785657438682653352268159458915477234836860064586614277154933345099394016117100960492446717539603704520781997164844523026633260249412254261581793887964226334056802827946705491276726977966728254636784219111430322225985669503946097096573420465640600681940359627060838212149866929449953831246838367073638300531593192628657333497380994889757041370257171872574156823150612778922756030854112367426808937517315403905986830602615674995095196204366712074173807222322085193754347049093893379213183018892388017294503987547388456715745070137032660259973218619559836958549013973448343087080964889992204276871196148830073714989345252513859434881887445094758204643061789004589205645232208449688727848729922639851242462468841387973426041281054721228859806196210262726640397656918894938926452678968701742084031841031353466677808919305280365950237648893482296999555625635957337674373248720974020188032107537083731295157256338757795714856866237429390008406357825882960970596258657214887480371681713669622910884366878053827227177965512478191244529496148544550700546713573983042266695988071939197338740738245683546711106293622566532975536645569618871786986687863024644113830521033505334003211648512069515613557003260843221325965095825001184001609590538663456318841729018749728513303323073975093854416599327550551204347553585612398921150282420652614825930820246334420489121998543955647009310468858330014647147906876765169766236385301860203979265368114168685157709446206394869966810805678450657130793731369147618027178537819790602384533701527915509279899155209961111273970303632691874191803811633014975983238086601082814038475841347654879792408918833158295973553706869096314599439794678416460384297831817644124531368182765125918044153817301162926429382319364743202864437062131339915663936124643928753633570766817915996815332969585352699323914706357849883187607442968517612445725563862831793011119193208057264122004137902779519947050043850414589535294119347646737335232950338642877884129199303451285056682493879310200125326423121438520472396048740967562283097412328801578779117964485039076101605734034996550096908416636458363872044619530401168396755816141817033745682575504356549434108602349680124304283932074889677716316408982453697834968141454225536737947529992566964515952204767555847758238725571990840309005796996626068662308782650946735590876118194422835823713897211809481981375584933058847413205742973254193879310101593263976253073206779865458788544382593750980918844619689481120566204100240715565044241844729457455041090780214603201051793165064329233406634748073118712491983245789856829913080176217592467841023746528001252312177637448843049957749896045722444767970507407037409188539186871492196733729443964849933686828534264731975264124056521526080178534782430870007430653625454605628032251990581464520172729028087390011485170168899082393637700450551645865954547727985286618702346402323593182822177046437289520626440281830670761306969560591719391461371901616001497472272646240459190665677261261691480822286439409752120003173407022187462788225507811400828053705507535173685689792115067142605061647032124147873167086319760161352971470550730083945973293350358313197145738332471855170616440949765386611787862937255613983301906960763967180010198750460998707618585502819141135453759841794956828123366832397759452074837863074372771700399683243235819136079860586775980432748835022402795666927193149016286832897415541802530166123582011822568877087827080177848725202489231887703437201735255107284343604275801076263761891494998073366084079701854878694860893538156302284816027900422667577650136802055539101049782870096348086349020066710820275943681742724496061817559273567840056638704008347055090562399871515853095171572860023504507836803288866306630809059310367633439155367244570129270386214154154047573190527027540797966474546856962986001743725215638513274962525916409616344020616645484538639492935547436917770208836023021105960410143956498803689533503668835627611210954234114421496713243547244074071904716182308723751608569940554730753423163280224493943663471079154440359019243799852170080584286072698770396160075010946177037803217664507522759450331950473869618525973170163455632160713532301282564610548579447798894774800037824029268759114872089578598144690731463202624351001628750238206581951351681591692128930752727473349297747766191981692796397426148118044065367588699654957430869880501960786816637938815340764266081000019429136646455973231899327036523498779212002063736411839829179485712984268533447162334012578426318941965804566672245664382311245953095828004263329831848455713185798747263849279305118534594678844426238878874931065429887923847796324175685642058539200396385445646433236438988666067665080165155804709820375207369717742157301780027968963930866431159223016325484151248056908403619018505581616408406333071042217946876390867644537327702586492441253220396595340626239740059489668705644546010506527883511590163000770489117941751520617784241089881980157182568097895133817224661426871532376449095234829908984079681606686375924355963328362448070194724641635456183304851910583715546267106993154233840041275139307674549961428214713959630568267727120312405264543309596663865276188001257355858120742154382051479616987614059992330625171997430268655377402200080267736039076556325434563220180125586475827290038897451844410138725632770854249227130259732586651576667135135872382840609123641873015824898456060695944503613172107244102125410200987257096868255139131891372751367546729126446261930478462240259555933305801764984275855913309168792823640373671775815742534649217771426629390305178302640832922111292349468320887733532292783736396682576901431032282308753531531666039308511107483389371061586297767927722906648716429812863598351336424851943271602303605186281689546746203564790435276615498213877623075756069125439836927367583178617717723627101102336476474113411785485760273169852520545178550927277768166421787559196730948641475625032631336971918578670150823139845577603144000966835914648356326330848204761262632369481079011616875271016782559669071664279505800783823345770401931763003072759681405000976054526385524874021139017338593593905634940724314099069989968918488829347206031277745885268802437003090555928613631833652566214453792566027270614356431723559707482518535569163346459284305753281498122327833279026354178089931562647673733001466511141260373580646298564363158685777080612309672239112531126008901425090751536393340223617812186424912376008463190265223943370980055534443878259381432383172668884353197542576627162445475101650115673845431490185926891938889075122267686147549289122170836523095464825049401452250584125449820357434046365091852686593484216784132852438707817665267359831540027758449660921545433774226002166975494218355747009643350219190016306605935316935053134064092444183372445640827412605933599387348904747729646413266595487238533498026377555046856734899852709933185143353857993670868209314822049635889756317255786703228263176929064894242250442237798572714037976409153368427188303803848479902265021336628738982958131040415190008965218689807481098634102165992289371622049261449016358820757302328804542000231674520192547261637718570573665451100434160465651743154965504342813494589466702720213713488902615938179748130867342936435459295548168104691712436404414269551625414474348299216782011553313802148012625464006134537022568340745260860158916520402558120402120852250936626017137037062981013989297791985323701126286791079239735884676043032434013047416575683167730180892541689001207719879388250273706908459684277911852032845083381933020675553797439261682474404192643312152574999625224870910567846033339098564219686333409466441878747648184597542950197973876548836257715705605504488158100730283907174510013751111992446143975904573818804119669028772354833942349974056325288052010719373690331848713088880529425900732645302254878055980577574106863952613245067072644112905949687707716390978937534902208582141533299624313798176232146691571057937331652359205494754860671034584941056210531172230400974164116986518496204639058793230769712330748383901304916417032018922231668072126106597246114996862809367356250528498475243303385035582256625906449323492737815706938539806510189379081591121726429553297486575852650237837164941358533084692162598728731297621909677145144550693245593039296711172569326208540905125356218570031064259164198186439186832821003157431174221410153267672319435823838135882765838897033332005504013760556307736840791695606586485024717474692051313858382146477838659143086533055230387171835192437386611644955790391214100544511277135872739043599750775232381043463478017351495297705678022272699752063106739375517305050645811931073042166458410468779489206646048979963210643026196358525163879694273656482698883444134715561261021090997234198858038492128564898053068706390330375251903418980293368268850713525642888958659508219259210292842451868881764730776633310122021976488482008302757495368099375541409878930488089506898058348230906841267273857155863642095657867516671909265233439960593382659917781626333810580826690091760565987719194196541530254716671143293048988442265623791258669975545400374618019026917342061234472901288241834548441492924102114242733074498535074864663290850213257765479268974730829069630263837603797569737485699910758652182966325111109156668691795954070351501361696752426905030998524412412231399853340578103883239461032576975795475361719686852016592409157268677695626655539865073021257289898591057331761265064784130021920244808443615930776304794619714843196343646783980397091925679118134839608554070765700655048068238886600766090529238549546297788483637636426981974052557199450424258717643829340063939385794317697722731225738322727189393072153641607702845721031532981783816373959398697769040495800470143735609512648072060348431295405110056404698488785022409199609154343469890399489866298535181901065825328147520745208629893568014535081788152449770193609010646399668608293661985514942481876906017437857986176884617514536898490630192582781308714210643184613971147491992567884563205996955968977612279232086879278807470826256845468359099338609117765926120578120834906857546666186939856868977260505151313288204877973252341804700183717098701573559095729925359696207104973880143892544311834498185250623813289696938696409023272489762302764681217109030324708193552821555409592751889250953980966304011922744927626023792528438683968463244458788996723326490939310288700425849920900594912732456536257858245376020355358751287221959232039023283085460298309207796312571159971772761215534049760765658625677384756930574514339401632278442755410434334205731854999913561310515488018543644403661945431765573286426592784211057451083231068817183318804614424959808120125498152322689729143171104044843855702133430407212740441033557747434351294835630314237874769767536535886965399306840782137191035992966318828777742761563824484524465957049953971927190257691792919614597433360790072715518476735684898940529150009030960299659023632795906422088930451556705700209550149577052555509965628658462754062736993586650164203181010929839337340058592430068624902439948593118317271938406184046561148474126793991774622156938239104848200939136622319587686732226487043968519931544567071200660438157715563944664614974211526634730485609777079588857173111123373929417030011606219480883502305435319629844604009960503612075291643450632681057091055855074753417077744383608407561006911366604591739503516334650140477025147118166020650372191894690887383697750656442361627089595052702476589078102509605586555683397921478139645249995572633508735384371417417585455155820000066175104362131064844357334886275974210620603182590624867784554323443741598593683826365227001101830325728279381311893739882223091284616590645091858399189348100833805202342667688083920604226346648103220290212241514406157812467380561635362628558607358265442566647061711637565703949041933129497395210241430603746812023795118316371236222163843702595107262456398326205487926457773826176822397944442849798341981699201487201506049150015641990824191568891927019621908836151634054180552030969613781482406947085759695202000418451859636182788460557238054610859698794560690767401156660126540519037202304179482154053342792560727531300007534774535374438910218393718830566028524431157488388655857822995830773469699113499602201037212683122349198433053097003371357952198970817553441489472634380687165540886238603871292029733303291481776915648815004045655975256489574315579790553111145047704892137281085953947160633923728707176921560054530353631988775427432365988607665290749073608402891461068548550869126522175835175093281490676544663873430000048909486364054487994375552914177567011135007587416190437944678970508557758875832217331385683696187010647723674546187984980148033216415861246449304508821562062164571880241996541311613224329280172248681435864165669193174514919700553276236748720313612450683491764491191092832872867337312790433362354306603367490735517129754684911495677832090122599335735111961288329817319780930050453226962448632848411404421453961316967146890576689601151366778894652387667475255397566864824673209440505545388379551738277164740203718866728296184051486085413996345652409067913925129231872715675255378886385863503771135021165052672609298355612682431418881042411100807317702213666742262391255310723499154874238219649549350528129154020146512679939464719288230327214414607020323265133637757583101541379010673780024761483170005917132020720813487886674055560323008499516458906531161631958971296289271931847990907185543955609507510923495611329255654051467743331103966179230324903935038711490011692657485088231913715075807478847305912887746141074470086685365251025613861478748780985212202802070790228343338957887974020539528183757646680286983530955689781206516163103002735284818021254453965807388394442335825038447085658495036578896008982144876496025032279600017207942435668077802554026982145507577674763440471493338551338155430747695604709938403915447203282752756490942832859519297876613550518300251567249642616963592791768696112527128522614737430156869741989067601351684541267104426625902670260207714194122476718217901147336076658693719570573724498741041812857404254255004787340398655720075581463446217303826121530119054239520949487274400172431916017182953212752035227334389307541100713594657272384713562966690563540140789787325747909470987087280456109286094784931254114926280936847575129785478335505635408861880727394221157500790456403522137389299150436000427245893779600725654987681657741040299496238870332424926928640895551897081513848210294245465291265921201879731629881963257488501268010837306017800022581344723775904469792291478875940955204663270397210739125170017805409074629403615932270906245801246019521583369908004529063609870306440272225650159924440553010511073635060985411778111077134421794635081061519374670762760520903731629037785271464821567637024001657280283651900344758297736766588584575667547156975054323070601652846964867507815631110010909808097637476946832903303672746460939019590847807847547113144383283525993886954666490844160920586669669487448909881639771506804517321673589736278448832260841927992205444698316540981393544293404824276183263264464237091446429963549248229341509316859678781781197695736815530156586349221760357053955705220423382057247593840660002951494562635251560397365916992409161708139734429855997682755127033112213433968874501148992225804329486372339380378627186728356031578746085558485590848075050930377599011511530513863852859113732677903398629907045820729760222595397336607936310880762677946553994747251251206736952868406246796785830462604640971433195471982834167070238873693172843336363890780790345522688364253376034122229223012112310098574654747224729330861364380628026820313933421530881372601707563947163145710147263564025238036060360631516698293187352993698498940444165329862146603182662565509034159991196451723305901115001018773382552478440641564395008569117068832894287583089157960657258289934763682893368626008799810063537952095611269834542134692407542872453043521712324964424025403354442892250169488316519664349149780293424260974347632012522262151397059320676939843423359223828618640064918322529235638951392549047421652184490254896796562767185237500940815965712870834169135247512844750295717084646823840756117923473654407419666871760959216461780776594933871628144115524975872242928437369677134051298587914664564626105416656161420347599821498175688215295019430508169084854007324756115608289317702877108674956734462759474361940203664740956769814663975252099481565469712452171258272492401581908147750449011946861390446263814428641702548710998048653683553087819009841500512910486366263699244426144736768606558870625534178311372492092639477982841479425125156391707256607663554279617092089623799972742016558045391369388378030657189407752606281871325755211072010229711603646297792780577283472694727740885032983847933966896194892815767554752161433848868984899548582142438958142251979190433951536821479942167382423644450713334607916307088902871803613623260466438403018563392300249167936359869916960508070455537562186452681739316932177020027766186539561698555620648846179821593270091076231686273506640227962846995991255597387976930993474225174722966940024387351599681480791546422564422831115947517479574078322520249996908108381721256506114239511376154902887574377355908933000436128562712882194438713897136403976776873784106954661000870299334039042820056855989460367251226199960892406470243688000881098865063245073086278787476983853629805470385209821963664078556051356789457667566482142319968251538539273381226483679265416132936076055054611089483532396848587743269428109006614237263288921796560289579185504497995083942841316346795784593111843168627097561799471640496228921165656682594214166602301156742010327177017534875930423882705568591331452854994218878434203440826652322584073326112085470171883834523134278023648482313732874073526004033127644473167264709268821741949422105797186525336253884493311564621634462345929699900585182044449464281979209470883166706469197288237167162324602962044858278507744606608738806370048612209015604811052679957664536972992913097809147977442832185399727579402143037843835338737423162458206474018694124122589783064060532006936658012776020577598333098461227574416234727775117458977344014236561779466286742744719884505749004284116063425029634511637563472714539658982208679462683583180838387135808926175197607869897512316889832413742094864032175224121906472471740174767523386775972992092705682622827253793144487197420396549503718836580576500321864478175781739545729366965276093788860357604816234233685390942856275274186566083300640480303219867303441321704611703284283502654825472819123830812090663411024923367029848565048303954717198300923442926402098938132021155519954669127355859369854632675363799481041328516780008008600396786044877460565368588249302430768947359973441511549315037950859960590105462924547455526012448190200847593709454199230726440455534543718424188869770177586416307186039340678901334637378381886149554736414847879048939038399199460093599267827925304110291949399014317919282578108250446418145211326280620984486220151632463888565359287484948872129378478373657855505445375471648468988237226144081908896222757923508337224467818632118874388553983611820984660968318730329443264584804559105555190020149081169434975569512602474756907553530369517405858032375002120801625433548848006508932784781659524771743880544278054394619333246754240265022497645958416314710261754276160443501798357842823666329333933884174014171097167125035146890695885264020817810140259451958325247462198725274683128849834721258843586728528838320533649677951800205462424878028302465371443578950864915789098976430183599106541409182575174752951124300345604657325378306763790739766363669225898842659555313933992619893101418823594902664104217149915282269341415221512508219402162164767628688651581162908457291199297654745418211564240212129705734327456371121839824829491564288210950319680609757370201578766106786391687874069076558176954744027658747669060118533900297344358428489344226349637019358651717686298803402430083671234857604076359385494500540787783136228892049062958132919075581473656453126116386505288331548496230938797829587509890343424966521177901910415768780992649534769193874133324344838873199797043796664355079621337032263922466344853279681577167139183402219416269716848843081742418557917856881788553954974339996127567558225317553312857310067455435830449703076144325231198859217760934518279892625997335757657726409374435776855339787976451638579747791611864141671084621388012284390492003288686910159368967789775458324287557660017962046874688064641772323540673474434974744710356362698231886529795519390730174843704191249754082502275787959734418054599257386326593279335072180063584176814682460938908425014240146989564556348938674564484533824275956292428079621533693246553911348075919606048335445283419309884079907875825956460347928789742310554852429043675910525626197690504574087744601444766599858654291189459627220872627539751542926451202406665336642622979175328427801681161153699324996872898301728750321747436267911069742930183313683481073975676348621823586120340794593757855316019649706367493765690592087769875570787914881318159261212018278543826111769590095877342076693756478267147643519197195932860953609951769486811439437554421585753584935378607788088865766923817141698781647946638933154159739940260341727337309431812733546183981550833780240870718881511923327552417326428418093554863441776853167789910544621971770334161426490641174964336699812153911494631462760366466730659790529123229099068312951675079368379756116675852081227412820266185492120963026202847501465928386378217186828619956840257466789986164330437536610841755759396774104404698140247584554779860083344640078810744786146946576237069288019348260087219904656227665154527377446626914982790567888988914106429061919827415944974485394584235377156213279268616277789664446694608185672781640802523111739119845165938493511873700005897225805998272029825601990470375692224651225038527810710825284456145191470017511207585658207041550469475890049638122908080353364051548815259236126124651379399226446963312832731986684864449988197919927335367897712131663335600842903111367613801848048333891524738892433659001783946936295520020189760539009347696253822841283120597657149821210648963485092298881924847211963685198135560848090518454204618116443111477637680606430005802965005645342870376169915259730766070128367222035515400191326683971210004339372926462839221380843215586421330341551921090842956906411104302919682381778602310082867987147767878818370687423476725046790585561967772411839370304010007996698495118917007260425827365382017801678710345700453140492890059465778175653622950833452560985975451777175169427398094035208856820316900739346385839298424324928743250953694655743778993508146023526645144871389911904223810783097671818903217951487072169931473710688334973723963238436520626072428999283590129806188680529361102409069438212960779271328178985956121961769330671121188826385700873471767217729246031053732874284023072660021771894270608786728657595624249936316684926287022322273853110534889349380666487673696098468414555497799290321590769905415045984419819731470105671409149937841532653210341783160997952693953637475104937567815785216474196950263414431170384078407681160228624749949764435436450741964309648677658390321998595698349294899774616277161759524730350189873128316195216813987962167609427653195271545974117998915101820298507479574560741484362834205181492603691747618446471582318419402730501227067209961302261282887142474847269206811841444852843601851662361664176098518262731996929795260223572520807980388262878132860293550569217280829290109403484321675398263702117976727729545831269260194774315086443833128040172902003494097967988858432385260521051264568626841505568788872551528977244428499514041985100834294765689752430961409257943232510598215473553067068869240801639231991625598938747220589263490772508412435320954950909627407363723529066388989928393321199035874481844143280906442868089809578434291252826259014485283095959108299801792338725220816536974638631949941212986169557217496863996355398690750615228599666367847005092831153285250234076082324153133558869322408421642222408013912641749422516773071707238448913638909644672845268451416121625074976925429580147848487338097460771446109692629412665525041675338431542801843349264832589225598590585968841642216763224020314145521770965685105111086874637175069712407518481567598129307165950515928936926988659557687602227450581896232876555058932791935844735346542146910476357876815973150790450573298987439220588815237672632335435247678876719084286409484584382186267327148207673828910899712898079879619785803669170805551266231217184264254446712462026585359314812430584876032401173074609092328752716935975278259428104052298259624474739908544157877004683348895515599223846928319670225209996789761753450345194045476115224926756573958614867304682616675764514234746057059757549275869847305771264569330841160476376370016428156515704412084801128445408951556570629727646904679688610619701434676308649266526577706111750396411046150993051310185050616385254894719864014784316641229162352591074992867647183659364795776825790967095159714870802389873250191404339244415508414583119225993472414906578011277995142879343825683698681874926380715372589980003925676362441533211512540257097508926882992932826655457054281417856480084829912086600808438947153109597764044386213989858468189325850341240216937202644685821623121521413596791492247571636870846921332171189651274058867450312920563934269915245362187991479250560914600385025966845262222450094221289176383499165520208272017470002295487184551314850109716317527940222902041718935388654474571361044108814499406857430246017443493227040616831778084591441695706328071228420066455016669061144770736482493946826143243167469265557612571081449976609941865190249620205355035591798784726059041705355950698430296266399274802489056728294111843301671978929177247616204394453065379308059247638638437087597326503450986963263408388213972293318316290036252268140673780452152629568758186429720054196804892604520497889283783653987442582625017017344034658728642402988621877192073724773617139779117777424828536100174847603004255804393643583268941046800275474356390702260712478580871118989975773802378116711772980247025831672505006411205321661535228638623640319665046925676640279325983244533363393802401114187626302753425287903422595219942791367931259152408186830708444595445675634784549981146943857217570941465677442888214697468383937684369643577528755268848806178681825640597223216762840411765207354699984858267638297564037011543344551537027074521743060453808134336047284149395278671709512568514715539725694015196383109736579184022549556343690620902421266234348271150082352292249094169906278794323425156375623060124627348938186499920360354030753831083842814363549731015048504820843409418183776980466917310596929102694091810805593736614574619162240048120039336929590529519727136035515509197464986332288425533685600342485195162955567802223866646016759765907984296697043032339801580226195783474870849146025929248723107256452812496417492504842291439117888195428698432055059225438762347504511788330523961257869613871071153814655841080306959386545939385661022375537110441050553420283704231493744653570825913888441311744844596577587290245822844994692390494936302851054077357766186036342005057579954930065769924006845130154736045496102694637486418412917834663928454837253369259381336766140791523288137570131506428440865468919596211241770511270413034713792680448180811649823285982057767219318874943147859087235073582114008278280914926792688562081379463087649007511411463899488338082192048206255432157321544114083038154633691778758619063437920199393051105623619458243814543373618034691290981699094026705580994038052189498069034938942326602007732195814303283611872047430214460466158200642815230800406324904219793171789472216294694395701212518763770311167260498364005418374311775463426336306261652658360223890932035131680553709561165618627726895337595646521415011743890917704132317822532797792924301047258341190865548798825051038755465525955071282479692192027109196553009840188401476103428832206265931570039546459137863159380307098608680200842646855918827073221827147145747322597528435841630468121912524355774948693897620065307794843204387659050459339559002343562061574670538479077141823813279897659929662707716365460146208490200589598202922702173489573229118077727060757268746132796975309421438641766786466426591385405023248825722856478674872192427743797350212250926291367583811247752787975579651169612541910133222814718234622098626731778932344625182515846238962171314183656130646552980432968822970365464599280626550502622432451425803368716467029114810759225729483940265410509067754925571576464279612056492193341039762922251590780715776661106112340427789312292994077019799966647916914390458210450819831246747333503255556069717832474226301777306792403934858666329791457529488250356754062782639264107449892621501435345082681913856018968589109501819130682363401820687025913261963789876488606816391542452629176572684466575722682840945141257086184800124559229391768531802714874020003909785073373901915005352936831479720493130474388137154837528380756545707508458153042083531905363233032524780725804515705045242738840518907529300954522638365508764070050541639712746646507722884127228563734011433181098001495494344264332676346991511131520550138099973434151900664198497347815199281739451018311493777551398611557788443574281029745434206829498059649695816176503984992045768494391213150646029720293743359873203207831886539136450901101170302609868419847397374866596999791823691146272397155019377394542124641826122035451789997353334552753897767931622863181294628942126979455826184059271922324804603402114499175479320063200014310965879186403451451136192463645641346431908943704658188347696529762211486830465342688872989872326736309595877571217927372302286133122196170192859997768245408611898730272103940215553627806185960930968322150430878837504198761016289528460541452287984426462863780576056968416028610196431245164686343674582712448890581150629922739599903350161167083250606940104628730261203161499846317540936138165756322672526057669336595256786797378662144605118142841817960107017584546025771549272437481388121317220529262347996066525906873045467428630434990920936890818109573268553729611362481248707043855253633923282659114583667539983093510852325819642602906940533302582016171613983378195438966962469069731227018831449396588306213415295324887417083573327607168671013891407801662505628768583506964522233612310543673213810793712769529569672876972098364027436407297154502074841860231023774946587304139939580021979356823295306849916635405070052849206592145581539762463519749239300402727918953456113411051351190048041357748759083910205259537594213866759619557399211079340273752203222971987271863225730617287226836484506100415865598994779237572249520535124707672693795072637829456144210753685579665746222043388166966641072402308193460711587470923754951386765092106727936221161348785198370368630004788250284296723337963541978758697128622914839192624912521409910202731920596076341021944391924862446375665435955109816152085525277436331750101534287488328241533260876138905015872560742958482535525733789408653490363514019917349803235590500950778455159146991553014333475519374326973852383950160746215781728015611560221962887435286254112451321935385751963078135256865232497257030564158969516143904580221196381587180697922276638166720971395493452885229563839506643916139800081190699987286103621539074995410841432437275963008026257489626833295434684949930869190658810124606402787044872029962525208764560384465566656552573004147249767607092830886490544283046014206524672188487590616433056964505315926175080220502714745946016080656036555087789661850056082515030696615166698283628801774403439655763087630593348617040674074136882200006917824743863589204981945480415319076769112726692888867713921853238207082714285045563059236693089438187033613400465078935130059425136625651648922692688946091030564774608549452344895158018878037917535870105497736294724103868056102882351608148520410766665466489560714835910417876797980533849855423944209563575253248608849241156105875083871859309774760565337768145727613135116754433221370469469056049247627199666429909748136863029814899763680169493242389917848986872372977712080223057622057502312102872321857483394600216495737603646928854893608594624190197790940108019643238723415724141922597501764655704007465277037063009145939362996694945826783182537359304419723264497992077004787803140997264479505819342100613527955007008028830345087026271755200854640713786572589401775165172748660112550349144419704343049283348066852480524743095114715821706044810194168629941939343004621156663084225646680451621456456069611260735336095658912182551636897222225273536119634739212147661488010191377616684789116986370968170803060128939049564371299891506876404459724648944527200189790745147523162961753445019182048804558637619652210161739748034585054904251671258684575745090435924383277081246984503597064241741821011506394356380347037846436871142458512681672760539829113414247692097463247546742871470781043933723857159665585428492698144566729053803951761996445877018066638901099168665537655924006826372720755648145016545463313921131120110972535548185378588970589438125839032484264851640620875101588972596066975223063441653538296531041083794237323210077095824717731884680604299820278773169561643319680355447720343732034154872466632186523531193787770811233746146470005138964589139136196406708685663183726040505622645750339769950549152772366419165619822582610831185115766295794646228539510428525729355387693766975025242528140106412019429685307000105985780098652814353367077763383135222026616955000201050907143751995317572285583026703285957725027978527457909888117572064963750381333815604596335490123928763956342164678775202508845799186665642683062204599535582521359735939202064642015408986482782477544801831043193330750725755737055774704861683214508142603056191919904307434556270191000774310099773424175025536076401402553162894425968460508650988357881287779340643439665979196949952180352544231159635812446205080711194643971394153944805897888036414605936546334631355471386203053561116828910683000882594762489834762372864977763339752715416147323424333590781974146464692661414037347071450743523799490373435792998578096089763737355538158189231748884596568923001908018775988173713406993484896074160389116549109103601734376693225200213729533581665333995709469489889346815068007136033761015212051972245825420701414668494661983303274020336786172326436726780323103999002790190292524260795801696427651252728737211551099024810300815554044031450988493545972967817542728858856163053213186843234852207167438007833054154286075548551924244244308201828534509354517432529316250658261376822239519087491045738081269886890074098881810840913637100033963616755163936859659798500639377393318849205806139562014351137296218899540487851441338335839621508714034572687219704045672545782205749766940369353279857626321586716326433857151905088102209835935105167763936961917267779173500738642491057681115030373986790226963863467052586444917935616693596025270172618870078069867198978866317526869131454371714740642353144111888709766917098301384058250516061468648472125363513847871775165134714993148774122889977233990942386584312926744950592815952989344300345155477552706510235005220431270002845233078052703494526947704195228745459525874251765498535299001588697814285477943250823345572160193686336676433999223068804483110604575737740218999801342760590928641936725439037728040581164435248683668083253695778641324930313778627291354416307561612699952991469900007338296813750169820930819274906723364725093957837707224548514856626748044431468947766397074412290368821220859465647491837405734803007488529627625615120117992467494968736168420723237314060159954503275415340804432434392677472357017859554389313718319275179441098804317333131994970671681595898653033547838458187264325500655232935032059917684831856590117882675218244933427435531100212569127191213435707272970056441466163271704038585462930395470377344770074782649683048813984623552894420360330917842963244737742981043499822677833791021600448081456185419566961349278720831531746345289213115303589215753972254496743706636970260562732848809779156696958281127074565103458526424376284113137039898353435150858595405138274651958867910404918275236736764314591466779108489538483530792955565583212538524898955933774490880963272561142498949632889305260004934763100703071842766292273223040225484819835449122788223684777859756993978179843238132008801422493590369536834756938931963998825284350376116348430224534061517703409429381280701066494384466972751195689951090271230632118096615781875750225419914631028578815827600423000079739579761560295906778178018108728682819119086118647516422578976176458806335299097893014082043791128191912020525631991419316269868988861602515733195818312695776707378948739580492342238327848992701184628841307163799075722586822379087317262198072567922289336134184784569286630435444671913788063635392249201681101837024209453097713057266447971094565941563586103566934870575208319879663980820316477467839205330731636279820950466054334229321806944121363383495845537418980164727876403596816113203311635760541314221052437711256586820289202151258278220021490048926328672082408896043580349363505974228483331212195018160708158895040516821706479654659537402808315147772970628969005323739040003627286672350621981626000455382663834855553271050743612965148264874849921580510156183321913382318294077351166631450829284207890833147033751115210279967469704936257557130368344551268087138731924373427710649229719367444408102080279621857714676257894412961592887318970129415371297742005147266115406764029676013481658435147061818450232174380704298701874535348012937531443370619208540972748702001091602898340691529843412112014338061528689646843604760959905242649429334835014286022043738125180992827431895245482942897746633810096151481889750597333734445497033370401931428523615409109860665007665185323017648920418673244632304544240771591219276267253053787323790109838092841582650843058497852260973061162470894352275146516549797993626686848966716938066800543608482838154367225138114407999348952730946586517449326433307404137823866645101985824431385297193197270572956798142952138017565102286191480669681441393588133795227685841041037302281966126708740666806366845275975594157392801086590499898741810604209280090355488207559542972053483273868107697069579107119356384555638997725765526529226763767759181188204418178302193336419661791356535254969028585966802828645772170368184591876879220923551450006871208271088520749407959321456130983355270595065199283566800467501926588805147677870902298192065025779949201625417066501781153660441863963473952913249447792123234012282799852681043853493860135155785924033521421464186186124044446049841106983213385845698039492464849481749407965942211123281034561242980116772511379153659696323543088877402908861927520526504979300781054794856189352226900658594138209513943560813451286859466685353375624391882493352683111060831604591132251536836009906281329011940344246566245327121225937901023299504058667000855608864291257903037806398507592670375980981193999219385292490372408811289527009733695458297348301131869245458522357909450012099389297501634755956798800802498741497088607657608120569627037412171907582651860966945717054948273611046985673895522246698866122559416290101870742618155982805412061071075749474918983528069486142789014392131812315130328857931098312963239851600181982161398650967109707415803612978208684003834377392824679692991920504749944550859099956016766843093915493957887559509270930352672919504495365038684571656926193538673128991101376662398458582307591878492587823970349565713499124321878729643650876123395618411519271616339780867710501012332068226059231042427717611324296119833699598866368317025749128155531465080993192913493973180139002400600742195764380456406399687778554412994915484016905331911758928298115221781431479188063113498666541041172441145382890250736281003342631893658120935579798009695534629089753887906267550735244062694920382916220626091793624978215108581204982048598023163507258449803720182249900616327530727485035817735121405909829067298041025133380236431939721464667352869047634301398546493358723752442262928126753468359298835372530074629606563287797640780030298492243180448930043052541533436656134765706863458659990717103917601011298488816838923185547922755091602680079711323475201839575340954375623919191692012115446007121118831713170132767958448069922838803088044365289986243774641823819582409190396832672999343183277272223561282129552719194964379633211920749135645501357547109844206440430335235360731253639848929163879855215779268951013968026222668650937789012205979643321422452379511617404546887251791481525787581549754318253863273505757239160474709519245477328216441887247236104201293911603133964412454120771813492123279722646313851350528137626899111831559240776939271811895833816140474303891675363107025434225003375490354836228594980609575042156168817223251000234101233181197566779667155048279969217782304898475780977364335532704210060069464396709446185149400329385144779262066819022159629836168192307023600141069416095555557028882815011768241965312955859705670639686760679576864876196626931724800201859136443980743893446587180557524939184751997054652341588801055015529546180955889634769637290838769945540947294994959210803281249477344828564345255032275869540809458756449572949431490625123119349670821899202280286050505705681998930463481641313180263117534661076779566168556116534423886626720792732173494499339412913068621600626522089907863654814717269222849725901818412834068082267011583506045132952575431981286369606879159142701630542065297739652928503368476678878882925429593951409295257532751652032786079207780201456038365473076202349447586780529122089572510758692037030221780546849267339084466328716370314259887687892039100467968834979920095243800048447040504893650025298332114504294880655186245686996186689777992343481600429180184983800863547547372505780841567218992220467898838802966173597153595067817094143811280271644476578847694993031011885149236557004491397787202009675021794016540368086721985546027175329147122292268411671662833602839557132699186437548962579314334013112832648232091591161462164489990736487258501825474397014491222106976639394349304260114736946378576846297927163693409258156279896618935968740181480312809432965844749926233503551913222916220882923719988544490923092712676064569171493680885485212061034241252435210858346562738531186521833575031538881617496223067001451933084766106088407524823914653026125317662251470491394875138086573756613237872437555759831003614586235484780934109775495083203002008842994076420712868653662435401039389539392798809590404878465894798681532389734654655827998687500386508004195161766419075543140846980798563526937920865287485789365364599576076946913292975853459853126049981033039059158199345469032044957600372964250295919642795394481732469819587935051941276884272888651006482365475262717912327341998832039426582430926561858002884765119535824625974640861805442776977594775847011968512315358858668371448287395407565591506126222738307300895622335100880801798963089010839503482308850238704617298070401239001150963538318715018352014111900576765287136066927222062135201823165143662234896446496468580995714958299269848637501623808508521212752975937412437571041672515079325148685544699757008966757721185286411655837406573301665964390748029802766047885001805137723371348476791862550187407091347830387352247696423285854882864147849023673009661099139537102863305413461754545100039452374516449460039758233651465190566236538929758037343640425439264230007937414871267971371225633058465339731001483864765622987821520005598979775541888034836693612566308410488124351936580256157609832730008230702309909428158569305036212630275637641209985883961171324811435560038877362915043093902213657139980584409888837775667902138605424234822757242654963010796540132976408703815749471825780294057230656150760173660983488241365170714658498620239108806974662013066847423279087493121511453666320689420343131693201692528680779066899934054049338900788879726790317371880806595426152064781273882465204547964476863508186004510528791225297483070659004375200359298304690623535658450363690829744112204921116890503022381692572131255340875258793945975139161585895418170776859940017207334012496905487222357552695768305554415029856246294499393742837804003664745821746428525231257570465786308918786337012106759552459274052287420738772468573888601618033924984527238370226111137683862122575846876874898746667627166096515518490218918000136431889867142060053796545632340910561652004356057033106683228310451982775724141448154898462721614215992475849110142255922650217343096087153165288500381115910660272618085615864895349342515986998493332340941562779713436905339293781091839984406923824871999646182210028272798583819842387904055362607804344974827633369276740533100583715576769930247365205534169533362335324770067831859800140381051574533857109036746563201156588435113741406941196785758172657460870684503204161306970566513996799711517508775721941888486690226656434614929835813407782838858113860916353300169068454265104409012127479277235897040242265984454194206977459713584472848380834742775801734967124785147647246348033408965868370897417890340620583009710072843863470789865121365518640400039154080018325841630681774138228357719541637282878687971038923469377565561531139112438231902530558728580712340246268772578214491784756833704761314977293202037112495964765902338510080478318977567349798240397234439337302667894556048276538600402766238724384727985904832510214517544711594949338089091163084009520552824190422634130071785788585880565630808777310397474956672228423424129857474703158841432205242280891845651240302053342603391553430500275726499606406661556519865819378167065770397870236386675953080160581455771465372861686254560306370139045628575082736551575573585671075063631958616066009961038911777914272028666968120599635913309551735124885360914146307315483899594487451918584971614759507457666431820495483553526598526299243120748697861431840712098297426009709880398601385213711267766219250664554663590213295231544042693497803057779756159166527711849432621846118726853786772029626352490740743118505207517672933569784820288974268410381067170202715370266745390990066502993055628857205113501223193702120835570015592044209004181496040549096703644177547736076411889902814709723252864014568764931919369835373721081841807206788770391680268668510801476392347441751553776478448637356345748142322887487450630659296789629073177114479176620458761788583486259662188376269693584208987757471655460066371471497278339506462540040753841887964986651076990873966330597127985877456607982363863803458312953248367361422752931003472633441705599139717693615490565938883176621743995293739352199184389863331545833343427334103766896707704572658992917584637695698382121092320916595334492237234615125718626568863835225093076160288331864632750659901516999373199911918736895281775282259392358268264857816187586277885544923970318080090750887646466133987715190651694829330688612363203288868039703022800582354143235032416433090536521289934942437220138425722304841320273238626877718869607260244688227732860554382412791620148394770367199540672077998673224037329549181864821084606969372992719888933377386979033343811140086590627695851041771853522821985012955514420954832725440019460122411054184691518001230342618717346853456421139219516035703807997788603930304418515066444862200173310484752134467669623770298566054764029309978730032587168440731695363617501352645915797452264031668241323723440593456241059890343711367098036204313263731500143125855543479094952842717631935553630199788876114006038191104612308095688405973517510154561735387615835709299497809105905946898950087841138724050353801353807297712845431144261807806423530420371747344964691043683711734241546822367524212974731285686131504804366018957278886724416178731109391531577524121097708224035962513681479272408746167114489697270944675080361553227827493919759823645703279924963311744288635996872900286066349763354688343702304518930575988203123001004527040543685692479079626750026400536514765783814245504742649248363346268092094688532333262124814670956904187712564347524642614113953700249869432346882041757302152831741840662427358727063011675626050462161363414714140045049673301282624116591763491157146685222685052712677138034895538118807596114335433423648305545892813961855215080234579521589252221395142678527585380129406574958193186036983542655860150992910211166935293458287363967767457892217593127429017079494827041906492316332136192316784399150507075061898985694785897352254099707408389981951861416194718889451184709822917188957146225440631511174290128715187319386574076444956402946169224541455995786920490531026540005356169141333627659595987083310135926266880094210558363932698782576031892357818278428403669042162711180579561060343174056640582655485958867367140124794630639192754189642775680075436307953658674527491526055595425841629283807775351263895076371753298153262802504763576017378161906940263515321927961783544687713273977406428308779850657052065949495243319958384531359685390575748971462014884639830704144164655006305907639993539235061516642638366556720110377314957464753819257258695561725291276405937268638726412480404409183035229967287734529071887876686449213974972780999805841327477784217495424079241700051808015724439361403838701022904078988905174488383025144664288651681499418910760431780639847483786501212897702631279441501256365665188564352924922462594698864338110906776271484099634042189463917799885423276750194843380202866977048545934111354498266430823169334648367132130623300689080554394051254889732180263311940822418119179302486946402381042778501587989990225825217390761430769987443026310928888911961142288387818955441794087023187845589921201177604566812607818683138574644339371772970428560744156374020252660969886749916995950937536571722692911788054420830377881654717853999534202719226749000599431225100836784829828657446108266269113335970624113196505448405136758294367019489733436066835871922798202137648294069454246794303715945935087585459285997429190265008895086122868538064138008085033498946560979972342211503622445066913486950690756561507138986791286855952433324164226484199735229662229653469912368459836994995160013680866313457211834959454442839362498055332319567563726018492983638073610498225106276076543962596975219723346100705727426337244249138225671351773228412730267078181465147944065005733190207384627799797524916720273731458451664968956413939453550327250450594018095112660835757831556437996625408842654245849488813701717700841058860287520710138669822975712204378206837744168773082950071429903387475819601779301640298206743070389420174012873867770513312264199956359978909957554210933478742392640950639712442828180560048963031034067754292540325642323033907228987708025592922182002884097280468607626238339600887663349556254652652643584938243170274815562048623007903758240505928540524329263753153399285165250155265442582556445017393982961897058830735481734660578162992835567790957116295989327486502403868849283770316489971051819578552511391086219598173200233244289283561318774118630969282063408377677067694579880558561643658497480677324041205471260022332349252950976999619798037264264691551072434341766944581690913421055731429562465245385162348028418795817598854667253252717064730179342414776239740598172529814399185978125128299978300634727986172729202236246048982838428607448542310934996453375575559580612048112377330327548160808984254620532858562087077764427246055953167808916996930485267729740904476189571603327770152752665010072057617802993618473289529403406932859612708184212561497119254191448279635671555917139336368229401793517169909217508209021227460220944504608370304014164396026562319801367288032484947648578820446088788805000103970155698677317932499941230821693264783371104181917847123404339159879115826476608105094238332384481932328857017140394964104602902712000001946406131224581777030551248208593160818535453564108207184475481320115700057690897735659283764307271578064170661705416880304714394761522585378151118141478702135551256392630762121631651357451378432061507516622032868179221948774444219866439605656787470795703370558304449584263967761188214290445292414415921535498937153117211610333304106730360461705752242081005053492678412178905250433079216202227398810556854065946431968710535925574539525619793440489409645274178318488092493806229184514057567418246243921922841697937218620643348820512339903758027141525652919978191769486315559076202246326984996313966321708314314616286069386757984754488588242331251080460514258620157913271858275596444499980537163844414535080631771841822320592521868774023102258514091194795403918979720859765371136744139008727634687162718011881092796042683664703421844292060616742628560633765490081284033161695472211832583404460424360271127332242947320091984038662299442116150143652601682646175213962094284941346160256688240052275173442633800790122152272270723466087187088808478446904159752294999307048609875701880798565967481347214626150625431583818432963347012639051910573858470895089244125436709327885916883935748914481619067200662811299838797109539901007565585000506429712097557657244094818106462727212145188035751372789088778990351791740799058819798620111782635916038468201752210457802670495874154118855103181143300918909941888312279352645353418106063594229210393175741626858275263461031799475964807598404868322601133094341310356263609040236832760306921420028101945352798668446308828807282628441658137649542775716885525505542258385658589651057086888154277658681492586211607830053743346993953622485934044513024150523075954711560544717165045512044120818018417253137675499403696906201074624223186827432071400860045186610521046396523391671386970477504884866810724376679177092323928164576712143285178742502063589683565206950048828228675360678216536761218570375975493318668345342226409705665874869959705330720376057959249918011804765404948168700481494143156340414285681587359687153537041234682223335030008074303640187262072825959393009888861136750335013062076755706646160568627592481993931194465320982164718987510443801108905925041757673874042031696672836252525104436249909575465507018964861367766403914331508810536120374767774242086173398456723741610854084140640732990910452105384801722992926537911424726379039160947036532492988088951874817863894012048806700754651395530555980150093168859467627100945085799071974470375933371663174959434969124269184424049374067047066702778576954153352572297115319038732667219438288128560429772671249166844050032633162817576260546124684690570578998688959144668262076156181621706214842728676475334565686275792386203806794109638566189745385730789618943313973490713210096028837260643191951233940250903762833031369998080103268431469191567453583060563966231556691351774980362441785942969667663301428832854547795701844080740562931945267214919902062770211829023149529069947221535352932515834422628381063540130749133404769186105134375929494016786824740711035820790545197860378624483650868575362544300656022354792054713025490233916424738973407260282290270156307969293834669014974916703569131205937888994089138859417340395510370158350236301583594356348354957624692113043486130418335769589560254989334716684531286831422245780929676518360914820133191954174702301369598499128060046367679153116097452842049591387116007283151322924784736403298499985685691148672193766044447021562245635656542443595959306493052207182050079907237971298876772911848987033282925842134745137938919229952738497703009486212621664936206208583030034045439125180676220029833474636116612120837918982808351775945453599212330303326995491048718201852966458909345546171082768764713010944903055326547119528289853560397019556063871524158486364806209402012179925159488521227753001677623039027599681745287831678067804363359089229056340005594804421585672365566302634874183167634251441636051205566261223662803626108090342158857249342961095493852298445342106804462792822239096286488690159257228386552795039502208272680499339526478300728180945056572158756119724520136648180650954723458181768972886279283726060871912606131425114439638080950995003780503955857156463503265791120369132895269271027002709792701621505314637287785474795215318045933033541799535539596752933837116502766726602990724057649609542982004268438157824250150542290294684888286167330316457435240554034716523610243735151265474148108902135601563854889514010026564427777316688106600483749410759795269344172129557481628002369290685889906394017516334808139944953475819734088388712053780002398385874713598221411699492209532510566680478702040738987482178656425603226855329195398275913188092958705008774720309256326505900860479549744781301780402880077572453336115068396648255613789790595772070621331272481303317469117655819583794875151379245137253592514546001378740832117559548601227697313704625592834224825080476874847564158274135128714245388140443785846076823017306491881638331646743034426463717827627991082938822656351803555437593387051392101188709815453257125289599742190933275836741018370898949056189435600923473145697841071459486211659214904396846907910983376095194414046417297766028576783215806271380661079846111498093565196793589724542413116268355543905670502831443542067120960829203488422939129638053168521505265845004184525695938988894254044740042710518666232527592047394858904644463774706386183514747872373386842815647075708320078283465437607927538492202908923268237651982526072392442564924102461207365292009306537249218291214030373242499294100658594359025157124388675210950908342479834400281329477219617561095399867705190254947132475488795630388531274280888695615976432465123301160960327435195425211463692084997994019989325095274585842763417291916170523720702388412482548164214476240407524020001140754508317895227379756029859423485817933419576357818125625896185588630618207870776558861745666475902065295544888254900897359996104017173653188425739660367451652583917839575280911101073708093062973295557855156654669349134080666203221727086599517405326932403504418740968927566314932301901974468332281030137833418433670871315604379324318963800390021608894110879781184107828097002006646666840526985921190160682009868884111208727709184968280046198699371925480270511808038465895744437251605998068319042202843028820284393375987740906649262528279249318647205599363367163508807224814107512009345254256795913459451153587940651150974315975589355069705119634022365773655549002119137059932517767312959625416188816816025797518616253166934754030055398767165985171644193295846174582662669382324965099631099508022245279460994090922498930502383567497221033570959367249256262501596737731476841118317230186693161272450993707709564509765512739884698482578939640043965922985277457520004400637924526751123230545766506848760323181663831572938329244078346613002872148652637713252909075901673426805900009045145679148574413557525658156137225825130977239079630752333052509218317162640269927299669993048835277999968874233578344263397717284913644389549633003502950390027235874778363713995160040702900467432285675355102740450566827466627958100058441911902140572187249675595001481136937714824270417444584000335883884248159704140949464568367448462403333910414762805838450350526597125676344859925772957736156697331542443194092435014642512576872553627253234816240544938810385561584960678773416197068570100834587863236686735114149672305560439985269082829481067598715217279065616902099458937982074373646442182009786796295452354793738635963787871669954211545147907428008620677194039334772767381798440089808148544735225434231563599154510394599588150522874951117912169007334607585435402242070676661939669823056564043494556866500148528073798467093622197406170730301764886328714581194712607666802617890816338153838124980932526481819007291949819351040650310391956177023623296897734788636495160829317448401562406907819757125115510608230075330230835703622783811778004289659854662629394559820202707788168250669943044373216486770481599381673795568552725383369214833123191278053428837230492961562558881588453376128329351981689340379049553996405084009812045785464905169845531850956536090898699688098044054670207893868413781023361857180555891024830524649658824140698212756993552016885480023327928727199158408466681149688139532756537832982499634362231687128815107214026185407448252168334267666583335137123082158272381271026912295208136783058911850942855880033039125219220440666440827136388543082846835630882072642501304995816447921107011550910043767695895860038238772223608765947685625135353147695875538010589831736012494132016078494017034231401778281150038556671113401486123476525301940812554904705203826623534631119382317487557630113034884499824296184583375211220191738427137676310578020850754605287885133985687090184630950245755204523441032773079262999139504900684346020488445489070683498017072719001939477567788480973800071421431724150147277820910914489937529100637504400389098204263362820583500219592726148795058722600291334044098386326826963157845069407956705924875662212320898571918898436280063859292224232206405259425496662593537612017558622574130886210981326093455926358411128441240110465283060063277285310935234850135856058409380369587373841926102667387896213033624615987198938669663400109529793115188889297175597457238204524893323810833396713615036708252558230249615616980195844998128268543394642328933319691869380673472891715947885527926046243485809686759896302802141841430202610498451608179405714840781847274271874386422192744487783371246627202758532908182516345429605792201459971165783286079928300413198456115340847527054214300244170257579969516057282920015695037427377990114325940214755303279471012763330666161654113819781307975213329798351461511830891621108064062301531514029280988626964301409319546387820427794765404086745683297413428717908981393718920935023929803159873924419107780712724011274096070641258148594108566439980762536676827972564793668028925190869583966461892193623926529811056434701956988370127541873494843532888419800745684804712937402893671460771212934357800147426233071707243563139747184852225774559841599887006546377358238088352925588140827794944880942964673881595530289914614407174625295175061264246790235602568893693010277796568782200571944979085739493383935074917501789356769599266060676374890841700584890930125069507853514905375865235059559914954017126037173712706491538529139995154950284995772785820737530350716415570778976064331903646859279836151199591389396440047637454534852204673287006517976233753590450140145681431055052962187494466452824202217731920520196312057178840165381239129242565604335644586396701001899436356644695624028973158766463327700224968848729692366231660346278831413711775282681160201100418115279018547326325817871716498694441867539540972977424275048200821876630916136742477881869020396341056844518009612627857171762511888759509902877417775508341991491383244444577271689800226309511894605129580801129919882699197331510565157549196087440970488249909403997001204736333174174937816971149706250702002165024542477356146992552427300394558040653993237167832733834556410835688842498913460791285768509711870148826989057377927309391963125029090782341383662158947927288106185755215774726793563756661140491734709119359238526740728681113812527985371449115239118164972044263085818368401161272379385946175923090875451177723577139072820634720876438649565268614572976051679237361166469946464355312208338147239092436789870834342426574253861209750194068855317815005421542721599388118039798201131502745786354710544953949771429430002582498198304668488164054620167262540263895152027852491540461405267663622137533345546904834444555228203493199499712289354945762214422332573947496730204140819935735392399163696655741506672913920659310025812198217770749434363501029207935400036975351098747534567939211722839980659678698066235585640785175476743786651548791229990267432843840114778713278067190680401633347916180069246444666185772915362666304831997373261221361055084562495919628052208869798654410469897747214820393298628374547313638491144077193611910155060566361449067347031886301113662386820767963199781521488988410980890460304215235208870563811608749882838254349164069317667119936321411498292320914176520220812771237611657511706756641976998480307389998859607856015887807525877980068971091942290514125857463778030529775734144130837066442780280795824180596912542369846035186842432195794378734233333702250249003205042096932698172344233441811741327994112498260462116351242679866198472395671418809105385472061694499799635357621672271100890261540555961503187032285181939872823997300642209551126787303394046002128360870165345645620133005099103379606310764147098865931784351703118451687316048608603337559322527812225671772687761243520625201582643888300586844871493604931974739212013390486601529924396148544018791351623605489211693602524884092579606913950519780660315495053904080341419450106641592342853675912671536813222700079894062169025521631821243223781193126471907337962882226106011799617716320962165998964545819932883038132097840220363463785058555597781356871000837253469576999998456883787145232904263115974873165114655660691267491997237154376219572348934091265905902538844823009785091106827448617437269925351238925023030763895651707518490725143591686569072097585542555861902127582046607830114614907080861160327738705123834270121712988695849931157224451129753133215304162376146161995241670511675218034223434759129310846306966453175326345988161727978981496505639684713110030512226516900016567377733796536306185234747085889475515496734252027006047189025591758983325314386333957036595397968803748674918438374040782752162902327351596972335225917814980948600285292811749783822551414234033929518949122535711187643096443655745984278345496614966617186743128053082557939269779471648555828531367129051279371094265965590921803292119176140703285005312616016689361359242252711923454093296372331933206138143598252757474344722498265727198221239197314888470108355778338039479668869302556407830431233971670762711226487468847624176030178119432455172570689848804570793606913483596337906561149724660076461019131734945723779396933997657028815073109176057411620702098985355487355370595629702264208967447330957132107144746404963402544855546245585115838069633118376779856830809154598561434901326632066046947849220072449925977312035895795831556173319072086867899040125800471770950276950267669579604429870111350547843955671693331419379033594737750464324747364088534680043735910730324483349328645723275123475243035300608657461375371445778383556812633714357705300879719697918857225260651847754449413900526867940867883026254059826057241544286680558752056237081020610146743005676728861921771336630786681459381596132235321645534751483152452872189377939831886759585083467566931406848810970013631865548140752139482286613856947347935378939035444205560750013774500389067360627011014005920895627031571496444095194546532649716529117455289468076630165932400262473211711868998265215775326397087223486045424633699448150314442130290775655473178150710510228389452148889245773181821678607478374079102472947168361650624758790975540095255175370242439045848371029421052101241752061866685998256423665241028653592335346418451572289237561137018939166776358796642928686616838326548339405246160460369491528744151933978786193506953912568552694369169618828061381192197301725044328232590971147440498966144201133820126701537135249300348856446334518819433441975261473889496785782443967230842572313844253402465693612840768972833087402114467776200116417410046823311828845022653739985496656185922764616282362644737062283474983655205535673656270131555733615941326486324526150855760377983103221126774541618782306784933697944604018062939065278692609184690229605006447520252341389917362356242318728452584219933676999656419812370718263143092366699115312627094858260679609041377369808721060974714966838627537472738935755447139475025568107600174245690454584489671419737953650680723829862271067975491650077224713605553358251160694294705001305441988016187567988506167028255529182445243616241597085843781465627984181144671777867654637612063141440300128709747468225622626805250099888406630273431173242644769804311709461813446216748546567761868224191571712081072186982243754629246749810941971722052129130543968393281185543935454891033891655068716602456376298901311527481886420849950980951567719685948602239049228953380596843878110632524477581544857680072895812425757515850550237028828936878003326834422350171956170290104102468996790215828367353629795795577837061859708319255270436687428501370285415990740956674056719916568137296152424515185019319705760954856748162300243375674320870212628755860878042836313493253321787233814249082766545460709491057316392906182150905684492917134865155286538553487987597943190230446303484728031278882017414109627617911849926524199868936873622896989226450072110797755422999395919091995817490983257084235309702162478039168910536735792491920845865365253716571119400774043675200970074218727178823053899944743115653130983641472697430536970239803596248518690246712701945956972723807471552701592773697831696274472370705889954857448822361041560816357395420497360168334848979442807122775211857122643759830169260702762196062013203168834532164201678188898222111940541209345932574259313548988390742764496517551894452281997737690755910506022377522956987623643803303879513503479532669924867043173802601940064036578076333559487611159401336575886854811687642039079346638085443386120181840444492197610309828259712614131248184508142582360472304802311887687794424355712755747193412557246490727210965493447241439389582536473972826697506109195156247165919586920836673190791270147784048586208620379084102389877011502033457272210346381492352590911569853283888256648491808924702375694462501430241087823964822927735728098345695658435994174438707196996075724800139967296146570968684901661776751605831652655965898882105276005030121237190307121263135006438241887196952653897846553214314555132420732102546642087014205143408951117858261702372368358527240254481172980311081237091514189293920858594867959732533095134604430932317636271529005952508427035186973018574464993977353414542535376157276508248732897421820435040354590226956570121469640714711704274400312598267991870198061193727757692591128746814723931316972716629215715025682226263630382252767626742324108786121072307557777478650814524098562243586256854273326652398410065176093258751494763689819552473686627630989181625265854215402549035620974941164395467680501745185991391283828346077598669672635934106286663861561645553419697051260610585381413637878160301649263653865009242992726494438043938519709775236217539840857360718954471910610600293676067507369484845044408375904741039596291577629409580831641457902155810186556589316721880849019409316390713557828715661649787778054651399334444590379307808196851522800136253255753182777685398773446235380089838150423612205479377845795570456185774583648224908267839476423531605160272323114972659631148386056561660224902880043825404798033557400618060288973085002813467257341443862181528471474778971803562083841785841102604693682240549580465280353456653196623450982836934067078733670850023173620727809412464104876974890303850486872019100731614100618899802171083223711416513721351636828293763071407101378524681311887948296851846906008766080122474584675317247421549470630751307425253755334450160876380420486753559815607635974548658861362844937675499066231056950941163822926015900693348915991844206339729761061255155009830132066357424461180484136673815516708259589555588775320582890481941715676592298222880256832427160393842036815492149138154226234046945125914090016054788467005493897072024400341792537289083107107307123097609434471499343900135884405770663704031757923641766323766751841486537135588757465867215608765516387949165872663015760173842501023413040382627362858214956871705144901920499142478056486575462114248726058673273789694250604114443244713412394345098609991304221821116222925206216933309325665893316492615952119546566060342641484074626868973190240644924325562680964177494500407826545462879565919109981099622696723616524453717970933045635589315581276969239345889685096304114011026314260595857352247379039886656287577751568717015832468961674695572568537620678726901452676291728719827426818898346357080771220001774495485067117254921432552494549481631292325863680271594256757966068231211582721547219083274295108960835797200980784709623602076270260725550078951221981401056574461697257558155996057632562475381552580962935548958740764932786342647194537990681141775056291810725558658082145762013391181934975128786266087893426987103545236905522471621308361347011560161972671134314305270501850100301423190132555947266082148332133383660472443514648452278308649505513719116642376062214171921162038242886573193528085777654921159547151377520055952010777095104307324575393141113403313878118748289526822033496763523890544662322597508811958617630184438299772816055402880531982415181962700408258553201809496018977810893069312944429570928555176302260773920798095551889521046789035278677273587883124961280049017028737811198502561161101579007988271513480414314683924159438379016419724954854459488260985254479294315872633518514706583556165093695588566043565877883821380576100775928510709809248915751179973586811446268798486041970200860565326778193684837207386256170744345875879275391374425853056655977780932601987839869981769145800712323065163795636618264456795511874572342284655068936396106288922334209123776967824168186643692977292087294838879757930963647215570284762525196059314976758927083726116552103822482858832887750013124007666657599643752586481014236030990325996503334249069802174711176673740473300090291877099206818836793261884673679010196038799630659854101674364898201934030885689877223537260992830835392913279688395396019095663675720137004327685797253935137912664498383107122025729756851993367374862519843016657963343452793775672810984107036646720901548212427617788974805040831498706956021312748788882781509382358017180324773188431064393120515421041348257697455567992354840327184373461263631415872223021676356064444034607142601974770120249009204264779164180395183794254082684159891995393824533227490368336985129240243605744037236266114683275781394806565353021924009229852215499756445787291185375448863835736277515265235500376544061322494846416071558812972218934265632380327356086964029044521407649094498068533533587825687066173163253775702353660008119366995323515333135902697819756779984348070156294902006389165294665010483064609138539656194578822223883478924186043169164263978365917229651204055230810496449357201286050192383332605948559241582480209644596381921536404788751282092014689667679005866027413058705654359448244320244576308115006174883379839206518508067807567165898991612490187413577822159737925796600179694962805376857845872257063603573912095210845920558649311319665523485626879050758955408748091169858459795846134511527967465073237708827637434559860158639677395191512863209766748935997933976283986268710696436400836930860764029959485556446609729105649795254099111052752489455847668897075678384872992849286055829700921238714881806870216492018622249196085306316596976763459064577334694253625790886717033583185659855847657862871328810453283482937126141542766464413364996158100655391733513979203187318339347675777476910972950348434435090575833836550190499404105443077449752321360575398507323638364806176467819455118431065400082023019502499358779306513358034686638204060644888572627523046515238628223706335990474145846963494272999251776881564125434127424519547326532297591826322210032618249964734942712987879205704576904869159706479533421936284963282385049607119407043019054502382585615599531820908091026612568764864847118249200732018100385678476808286195787077787908231790342102919509564338136431342017639287365506695775087879771824068033167274402088361930785915867901449791105749854702194183665658526127101325938881347517073358644724071781983651642464341175989865779779129917537603144535466892932012888287994380493936302449395020986920427108962600810295664554802539817272455476292607340123222419182889502777814747977208614225343469115006278940864372010655830124081506697424590271564293454243938785828889187146446888700119523331331486603576858000935448332319016190603964624553444239527306853422032640668283417353573480655541330644035313065994307979903750310314113088714761014515264721363557068569944798050449502288066623410596247403215087439501748456517175975071087963738542541540751156586141475828418283976567392004179797044886008422048320612236821130134905507901447638317190578913441949657717994655091516424184755574982241299329616875872834977203685695620095352944717773332070012065044676277035578925285000048881588015046810348096171479392096945111674404667306527762463000840448555264897667277097812621317909306596093539022792101757431935286852302608960162074663640883585516734530366403106320097344989106097748728638379880897464402710048150703679752366555065185960400155898133084321691759031451180134473344903867662725429315304679324273671252132667388192588199936382291496786991769413473161043492162184526816700125406310500057870477497269908966174335494007175407720414360863448088039700585040819438850247729825900276873291852163919669602863664120270923829012029419710471871358103977416978628024046278432058968769496940203021098804985010603796126439258186025486052513862853302511560752934701242643849596075101116273270021783357912381053065518545895364966282858311940238315942848198292762033775238157202024178747256517127999980383456282305451633169068468756791715368441464035403495235629716209082441156953615612106105050003936017475723699877093365196451422418319426606898209755299147408089607552720098007485706457054657300737284396691221085081011728880646781583124725148315115467103893749218975358544668799647072996598108381109624675355151177269515762443555549013312515898888557322526773383980536942940975616500259870331677985295012794143532766784094771577958557462752344889686933089772049065355696741473676923928013265997244112889473768553141716422181776161045871089839454499109735369414202377807891644241246623978676870845253316062281382491200317974042061157789877844392101669031255665633794214959162366989230812594924692896405675183957786769170201424652189039408768113893189777364831468467723285910250071473065191806282403049215465089134789232011420553365535461506873606248078291917365854319768920869253740802573620255275716629812454972476568617564290956227939995963756035706350994792357453884098565359385197459406180119914829165548563131755525641588842765484489814029755690575287732276399835063239744233766064226117964395904977208517463319432697486970636368693489017471558036950713901798073563711443384588791051998899317016917806756277910733943115130280564292722584614795859567785823325785998981288621649020801642996004587902564862189303379056439129530373446325723709458094980821393874054329258748619252226024550445010241806183452265401129194660940367425943543720586009994716728789951340505142884790185536619245383103951180436075262238366154589052754676799181450379758693141509235847773223581936350015909657509431272007874958726525695260281578849524462282409240700547275873032832788580748908414275153105501134811017466124914486805088043532388437711159643777228509570625902299758302439724602658293235826827928857197522640750137187233529787532850374263170644736774797936073622747440786156215636247443640607750492472706425699732997925767372933166581200738737018229938440937199988906272489066399245914822080776125098792343171701500083601555264909134895944677673108753356573371577988439664430496377044773163085954090666984375813203931736127901834530176184245545019280311996459154143245692142270050416677770179340235457990498055755060185891977834709617097057325642697555726413890312690269990954922608743606146422492908913109166666341784904365394021186118168532203294042615735019662428477956014153310712783080328665794812140995781877697005217104573216752432046605913630612447065524298530854522462873830052598095572158480849379215440670522707490845990688876585717840651359971385205291945053861761339213788516804386729719360075466391919373891474744384402609538418687832013669079163698640112856816902543506307004511973879665265291543061938195084101054133115205170997301673129682371270660986041854582159268424668337450723991351158392242900519301212978604803673877667279536921020960228367840966121609383375848425833154167530374953574528660656104801939609104211447047995083453676812626567108176939533354293723383263846851309523404821673299261303044920525102917006622734152768768478162019127273599364342579380423653448706105231341532612265816863218019386087978677787587759434717806772056414175049910517399115608516797274914657830207982920465914636574854704185231072786668945754465746929307364264400686564029705808207016528728248165550742109645861291309911172126727213709998897321743435650604484698701157869448459480444673564696647135319801785406733804431838428380284707002492237456904456042338527574426767798281942460556310966004229150847139533538116996784618798524431508055018848216222880510009148946176308407741874778632716384251260105652905530158899292064944685974478197101477031645575235835662923367626179893112156761808986747488261903740669316325567231231805384044365165855981672368129131817790978995803824900363254156403352807366927039449742662215895650849084321376108838816871916521325474957895942571643364029600734444248361084948992706320258449994878098134624255493815678692240077296851041330136965259673995462319508058205793035579781782912519742231152899475920982153410770937256825407801185963377027884091735593907702023539234151085003850103315238705130717701063357028704710921047958494725420494062793560610536840263134706755942917766618545266800729292527937052999538092050101759385269311087942264094872612453049881982932969881750017292584533062710537518835988858289805148469961328146604285142398924067768607683592686540284259801601643839320668218623298797415738625441374660901809295427862040948523753896869126623543864093139901413471911054707836564586114153122915611720249034503515598141666093911153815191496091049389786111350938833368588278436489082128171967829413594243429728862189132253878862278242817561227618280024263618563077270166876963324289613049196912991389225486224133085762004796930685834546696299104557525421100166541307835484420540921912807997030323057121796182545176317663522427010235748760111051793701367418735412616778883063376454224474747959933195235989061840949836541312272619657453402679356213471237834192808042304798206369796093415604966794911121646639957070709329822801316039037303740541495523734319121718690109176830481898127105317989743753750015943639040475659271756229258263951232771782433152167406444230462259715642110011547788948980228448511457982413192065545454493565185164478391960546858344271317428517412327220031732296345870549288435696877305388470109255524744689556889052117851689453510687643182191616408119080206549818783311601483268506139965126455038759492403346270766252482423922180009079466652900220833983163116921833894676812475237689104877897817626613836792134078726285291371546492787581852436980260099334905412579329459795456979920811277754829355817323279645193566820106063875457531096652986654366357548832994079622368508451353483460129833400104505876425470810726455771363174908603297783108119376687448240806455595728547436809172662010037151747631923073134522772783251188082160220827252027049418818827799732085885868683398419087038393659450722580110579582778032158313881614564288585211910231207341529375488502811909029322954617644824991348159482971325929267558329328856240219923946387507073316907936662956675494939129744160790329235566816385826045822688771116638558656360070734050558898748606104772676542562275691954712844206984628749110059403579581942566631541891511162463906688835288847158507102377859087322528330053455849251310251518312970740423411576292552240261004659984705140077289869344157914171928185019605289855617624303895403924916185775192292792068122912222051770932203166088486065566636120598239717496282608924089592089659109829533219302532078629928085564614664335316034114852537772496172260102843422094596204801572030780205141632058681171854809344316625221588746382108517815924535082931130942374307647414786932103462119127548696639785533291533638232669338614598018997956992939097350277752682335735904633251901598595343654047978924438138897898800234198658198891338238960992396367865591661950195210577229432108014224943130896151366816787459507607147492191891065381135202119269784831715620457631787211970461898562136101061486068903023280673347536834820546897926648458485539407802559863355782664832481325355880838743220781644291490564950019088841389502887546184095300827739567289088678216403042494896822286185582985830278803960297529838047018683680894318815043359433522185788043745918070442053542103673781013006697693913513025343219708850367239981050179689780280828907234986119549606122620807937345674613722140888703530897055777125041222090388038665090880545675294464797088025286473548374478314503427579114739161881786837964749228105081003929171734226393893604850420002794431874718043962116297223518795322968218195960578642087551320524033927616842579195733305330244901083740904094977640972486745273191945586850453896613703699431699653495535181475208144415646863707633374494777985219645358343755568173213255247489417979288013116180128917600983416406385871556116239188424949936785469008124059018195574097982936067637311162689523513266900884487000965238020006379411001239527891235906696673129907560775921460700745867188594601039699329898472762385477816435480215614312750147001042261857528748148183568192384652803098081567188866073438136873545618232473415188373971631238139652580418436756462765148312060801828087342737204596729304959250725319341673914782332825934169578935117635469710779043459096404427292964586488467675075445217891870110285644288736749201236962481478296932215225981417180395732529873330199754313308288842191586413140687591787956762395145986368112227354939048159655753351899247765466266441971808076415393261213059700407415354111887576461453812692692660025580329665834644649254093360810202180398144675919871148900880012963299430582826308700009762096979725248163028786722210530549846147414157290837679217166850968320143588870906255582695135435848591773107250255663633564171863180362031245598103079458324572554680385408949940690142526447635997037358943964492789298479731654525199056490186525312343645159201524067336994909467670386130993817513146102540788141380756545883987723863373990774314335660127341507578312343429500800309831479588267116934843112467849060193425717191390640198675720103740564415771341515157981656924127201515216892562918421489324270933058437144792073091224971758046640910623151729685751586380684665977161049711231400047730482280882064126121907057812927015652543425726122100376081257256196800786806820690521319705956003588615788522340187909669725450682847666668433256372725046074183514704183077782241124126258051747732470376651134873478054540681091874269864863268468383197516239233850143961158186178171699449870563265981771918094833595396534188846659515506905409270808235575450156472857333494807835786363746229537764052400362297127935754279244345107127754288588948982345338943259684788388514980942774426870251694936997467046844669500916517422973485226446908160625547738281831711114029581161426462701614506489673408222363851538244464511237468602481161672157541174413483300703814985132224502479623687286145291636677906022751531743563544625313028734433604792375765185452577472379232344115917436723660593138952351918417197508937278622655479701989052215827006562571405449070810103131455399603518558837468243518988224629623052937795552336643571905866791757830264203625546209160827354624170127137686033598424659504917821534815493950531147698165278714399976834441374534103986702331983969801172350103814260421299031101522442313014690627388982918342980187216586336301372248373324419475971315763168735957915021088842340997314419898962378702062026752105885643809946110234680572766576373992872924008611956714240283222311612357591149028172968844366586470282014454465343661735575319039359121662976456622118111029923384730100204821221618080909625379475168844530954076854031192898061317830618167113308689647488835890228287905322695358813062774881900881279837556716011966348005913428516813714615502399418297967791010595256345587808394304072731338303124562483523388569794109503560104826558102600725271675154567063764738496818250257222879994627524750054322515300880896572414827197089234425161478258997621935588879568315059999675108351845855682312718774670152094545067623820848598374737944254026698202785249659200702745254717953219708621375740939167190978705224286193490696286476021056303579948828912805557050003979707715121380591043017891974300070760201502822253159647636369368129841726643360431792527010674778850650287489885937440944634251415200318490734203956461298700640748920049071206552317250928793102603056564380168671216607688016826641273104800558444397835054367603637663511534518766699436435809293798475668757967385784410615581989767449413801159969395404726655047564012215844033040154744751684173270446035453372542781152747648330777872866605971661536541599277690790244744632349218243782260637642978196042210994363787239450103097262670056441647184535917370069233463522357628290569681421122216267930779951144137143877048544305243012426821537265077396484555567143161593352534390772959002593479349458380912175524308282537652679953584234414101590635100730533430934247697653429494492709597444924613910451577919093465931406993816409283576474261341795156657674645478445332474281592842803618301923227566440636486222870655589743639805500444316898461382721202828316139112431810240653329914471057962250819983948724415178534255744756041749949617622236395748589994968095674207371782076902600253642169593832969863097178625773666096582052597017974576688338315375595516429292150220724052842683221347375738483249439929825968235357468036111340133052991540799653562477103060648149275241369418654566836625881909417101811389498544159568259219412694700903637849820404069281475679891118793880434039526603244105854393584432413080208929804805747617179981532803546757755413258488274971817986137442091398346098452441592521448810393257657721630823079191425663016762887738660571864694547230608217871699083318253430409447144151735669452612024544270371552309541225334349712849808981354149350740620130637456392852466518951403361542029053764681213865502368051788908246186813690837042346090128183121526340781788659031477187081066976242110140766395033006236878282836399436902613508850141934727799869754861314231797963945457071487544219223343798795320784859409183863645545353182001832950818475703855502432568277860267670681117567283382079451521327472839335837046431549811481438229504240086038515427361990089279464357548674206348642069351202328759675374533083253262640817826877311810799035709286946500167906441398250708148410947275985790224776874021405241994817012896935017822575975998551081347972638503772100425631007011859614453244341398327154111195574746948332845376181596715862984693909154226430311294341385578304586325076105305453621773941100173205945320690996169547259704381525711356937074461097629119950134039148135810503424813264808263139305345044808173642947282143292203334855863614601462789453460205407724576383411112208118311584215732097724385624943129599029398230365446774786289624836169296815878031892736681718418388716920960872293568148101587679678392920599936768171268406865270509160533951648057546636722811188560374664392618998733768756274889511117606414262195772059425999659274780040334501172690898239088534710486295195442587189196121158929172257834823804557716876242205955354260512499670212780103439936595022161159836075087364952790268806384381573987738396173766458087902172135950646840227281249291768628572208659913178712001715916432525904668104789648344093673245378068645849271448344196394925380699138264249559760285399836069969223963002964013475473694744908415748328558254627940754892398324036456445426971697050699521915036335142507234652145770053758436347556592643659461674623297464035538059539373928625426688048036834150818713818850674944542554240446027267638725254916876538029002478866343014490972078133715593005616621011718983581255831502624301243506720236237623131866882750689994460813959639232094982631761821564728439709118290975252269648464474433848268639600561751929975863296521416974838264609860614197894498509949390488538969284466965826211103710735055338731614791842310681170918106033482414246300510455351411213794336150598955293190585516746583199547204647652828039152705856929744114641483585903160238488317465173659864318492307117309090037208914056870594269750607862174529678949321703972888652609850283868151905412178144811008135153273991487867144010416256056564004569249669634344041524969121465181921001791716936685041552031061719500410535477197629611820053099459932214348371324133607845783763830416502040643951846034747090383932429689264758423336973225769342111170776635903291238039449407854668659859735565967392222204178703219578889991376569752151850608890798024129645775750076455039644083816044571590943040244514413705257528302697174996842925195794791183982048628402616193601752482804217045810532032818042257892945339542908935007399201120682991911312173806303875496347273540366610445452340114313028219272552007655436512138797671991691120025470981667469769739639801296732688194862779166362879942244907282928420669158546185117402251697942895024254633139623538118486090232126880123433224450274011463823025715570107240522039787618219582067191295609349350057358346165461172227483374701600658784667402316889666305177373878548396111314477900660946013394096821860346756605828299043938993185376695394964708711114836841350306066715010720321496524165420145510586035370313844410034338573614559949345639578927755415992073597008196469594278652350480231282644277974952995930671650312850723749637702112330895645060257038283718724272657826714387487486529229525458989305418892741910067922444035778759643783362796940949244546694023292241007970185262611926926292360750965835565632958784926870841664380406248579234024736174856582125835860314533298502906610535167717505582996189794327446320809721401218811562036900457690100229767031941963325019865662342403648300756952221408423596242238595871501161302785351934070907703611484881059383524564356897397987790536551900990219260828113129835664700610006769542935760922662885179335556078626635734434703509897285103593709739900038269472559404071950580746086630666917176730022707402609850387922890653720867370716009885897972686940753642909444198572540817276234113412195766443972786884134248116871784946675424643578174631978749076667424839315396364561717852606115160216835476040869276015640984651584107785866895607600707464045113013884588814113441498124803106041780842123166760102824192040277277280410309206707474855474542954406755751000156659728363584897098463514732633569977977173446244866587913733821479468504061596483043314742587113834679327950294710715661679984547096702727422124409502178569232900864808880109284642278014102308783589251043174464362470611149473654917147277441173561055663894859282964157583223784796641452064484626848779314229840161167869102877210768959911686521652179963946607176801206450586798501372428576395850840060810223227445589621106830292187267672560050074583285746465994899941618705621717835939785237368956799849086558067563332280815381968646634692241212833639271670721030881132018015199769486069149390347042527126066072900264698342862856334320461406250592812853111913514066622838967452631064116271627444955216424149583010912238165287423915914926450808768643608090018843173566694937946800332218525840455346639406775684879297405764606324000632501520812952731606555548209067585309926919051356903442918631023247579602046507488580207132720666783786557150205438613024693126794500674236796882348676282905921956986951556737437312705642336430829790923125572431250786720404531359996401999196591982233897036983628719011147617993462558625356272742702398994227413259233970638612780162827029348391790620066881851578022966426645179672243247582444677765078423976745726234974754315008303715410791301618159618855749015150530221027474856510739574514362523720010390946684831366059499923748316127917118005591712792824569112144553648882938623262486375836762930922965004410765480110236130332462074024516713722468255119997539422274124898792003317591538593018344944492324828255999286504249870508705132045697568631320024538504918372139572937890604167252290620130595440758080713463070402477404105045639713970169288888132622772748804198568783263820344378166833844297228164952944576865873181354318579510070405127246736991526370225478010009976582271564969225791396411109760695209238829988831117403115699511668486060736169800709093641293055741977023223599829255352994355801898948082161748514779341455548976857014858421489533106845578677516334827207733622448038964231510894747027791911952860470315558680540004246267534574352505641779299874029505665950818580976068317539327743690536773636902855237478883904365471497294099117591050856811790543093134855641046840206928730399063648602158071935304562426711299491773787005865217972027534786920783003904927775732943779268102694493370185241040215558818268076418916931341364803263607803394110227573528677221604721996793836730093516160601134703587559193839898562686543425068683559776005710158788681099728163620330036742097668528374273577845448641352574820149235699733546516573950705361003036585510268993706888439506294331772954430393133857530277440418774208758890397546223042017518800411410679922459506955886216960790265979528991622054035871818087574701140246618120683412294605683191895478576294743762074093982502814785592462585696857380904061729410710388765214759122710946394399397158826870149630382252159970019178054821616868097965030330958465272918338264351411368949287470762264422380709840154712493342502170540164811971585492654364838526171389196152016557208266957876281448195230165506899735794276635305022758217081939579334896142297786740363826564573707415765491770893214566809420555291078506209419068298131503584033453262543306525607279857860130008658767301646526954384274855022138777957161015788687017295472990147162784885912496506134074268916171244753300063816124754797421131085989694343900800007564584857932670899939338417734027214575237276811332265463130806270800718497580922940514058226344288026661580807443033470537413951537012156644292119045549665174549098710973039990892403739051927084150929369755577278964547232455232902834853949772929892306979652360418713878815717522779781157195593699734239715135965186384107484031788451717877999086112494618332775387169831428419829425791144728667811210017734865496389197790242739713712416235606395061477096363020116225403209246818206137918455054007249407422262065647429764361664875722164136589012749104427867699764807958974732012642854777061660974301477179518412540902460466095570656934994470203950790038958330887608602135010115327498241647113352124786701915212058143954928767657789229468870245628863802574446360222101768360280565469725760208858807712006073143679941941832284502249226269663741082215439225837824226496840952768277896590036715935349030781369974150953106445028497492538231251322053617023165018146591719283830350138510398788547541806662622204953698358505321170415270670281875092588603917588179181392620655597179847735402794850219605852563253966915344302952930915778183521157129511414352554919424182107421911865939233201987661962548518913176948283586537205463893162689988529032419348401506951089325618728276916559584271252638346017875200064698055165339404806822813371452490316271458552741537947887807466240528644842427568094977400850468714730041693750487162107896271057833956052950838469633191123223457394620354327072187514161356452695835273420019753126519036593146675787678176399982913533379741419853047880874354209784823424728453912402195387301014471777565661709533577803368222314423553612533558865728878734094508936836335689381624717000069377417596880952708009179171421666683133973536884889218420429787055850050101956891542643908115465075293786126039437021426133251437502141044872111613725976219556734930989319015437323963487065808338076745553742646057149904735608298868025821721973848713847520859963444086300680268041921280906455743765650577992294799709313190901209177659013737613649777599649469707793474750515701840616105480536072909979962545150973901920965614137304331600802962672707497585261581012022456972514297344158131518550533230060917145134838873685688121347946845727223752174467002129358830489051981793923657233316004621130398670460034167201836211499787640856481406605495932476687249734186788633769349080344367322518384024797504717655678854408796992104043080750248801335903936537484847832142197965875515852057769288861140416636081991167925139565374212097482156687265848295960860718372996813201403739703044200586209565072032548405449062630168878717588342859807185902618249726181429481309204496992062403460944048865126935904853364830485558268881890822313505804563779188587747327021289404823834969363077925489991587687612881858874116859968554093505068499683743642825886866189960155959386145157252312970161134735705364474776737423973019718411027581940886661799055723028100200476710695398171181918628799777130810330026335153866522388851061199641593964070131707322619658161054847850163337181526733701607045905347177466511200437514761079010624103587377512855165682137613325958670107658853039984650308303265411492923716464497936714372089364119844710477050826173848125605013713478787673843991451011332266661844717092293734228297857953001228307032256694885874327241003454901713463194862660795986176121885279957310831567940115874213247241511008295831827954603954031941250546427012433110246620163165459554622954834474442696623275094366739796426927658159078024324034983482561329137274666459413791339118787727629635557262511102969897596447691852824994999261245662842518093752509084573183306059868752968144168459241788891843036505246273272047859649705064144484316200716591574831879745326548904774679912055068550417519186361163285357971463368437110541397567526029853213892346319920417495451962866036871276626801852043348153241125862867260018412137319792654678510022040136056390320156742163953546300786814416832311290796043505018091553077680648778294906470034082007909791633840688763215415295778119351611695702215861874794097984596461872835840654983427261260383366271937018841021114579687996271378093944641854013488329742710068229786846038888761128306049418583294470687114351802256697714556776205662202578491529285997147487298285543961293236156576066838538163382425152515696854547237604883062475386148809120906848074900797613196947130095257383971769059687664643236451659522677187770240189049151579224891915414178882800654774284660389068027314553218935052009023333973472456395115356435212752454919752520461806000465687424422460206200777594054093365305321253327857511381313986731747168158554300835137146726014557439580257646769070278191653227715071466771877311749222806565839705296521706844292290926714615524497685529671843413451887325388186358267958499813175714878482779405818833531503445390579817446710614630543164318435247866064608396769826684218992932526913106798997354092608196083649011391236970355163814757350876139046805277307385813090319757551460655640042730405860549435708550309763681265720132790576240616379889969314937135394677358622909276518592535160397232561388643524593244444420847851010149067425520745624883670057342597717366039712773385710898926056479439658890800222773953831166732763873243497638364475004162549442197453851628888198605955470541362676703809264325361221610263643254590030770580789339919713746666125772013219807252145397323125350663684438475498982254758024828296032404609575744495351529037697160860454744227174829973470255996290282853745484234809851329332698328794515913024609541569081552700657412158306030714079713545185974182713206822802602724599651492046772972421234348138403475246166700888383035757302488212576676076214141910773870898975973571528763662478695393781650664540324407012984330630741847171671551705274690331322981185523187223413515329737319034999714608539068269675134250030656392086218163118561381887838754266977884336079732485834624775663303542917363982374124212534073397010728001704152203703986446713364860237073573048816154252528206880867162712830916396156975352413902448774702091901983735978730323646106533177475905343619814160286951723774175353720407999691322949507444836826781184458520573322055302568563580225612872532305176054138258946554667997608586410423134240908398738690250055288126821192359980126065549185186122410044542758569868669157361158920001236439622762392110836975090606133090773448357530507889283074019583650740168746354130489541394998443126823386508646103527052283567268852550246385977485677880858414941227004858873914607007802469181669411736584156932046519804740241849822974377365992620680580894952191916776204182066360699958528359095043355731161879899627586886298030468342354075968026635649058176084679332976650026943532950151460198360979016662478798948587533955605337906938815682581037687121829000834885232978050011952035616189013769138276006697032352582463865211175861739710993015016293385523863829266879466917531905591089283854087116081741340780604150128224439145326891358054077405812677495854176309631939179088045880860354575344920298752973556939259184595891168863154667841669379795595487623871456096388895158835469955981844308237847492511837569353356808006317508080861852494677721904359884866757516336656346158234953901744550801331620750591756092517856051156185727934288589489960201434070318168973137609468342962173935656944735079450889351770976384589997515029575098441779289277305169582753788755974986618356265320996199853312366740059569255442480634928024549003582750617128893747371149885938245822764577521485982195793519250428828592410909561393798163248011490959948412688791743540921601755018988134050537537133043976845851868405353176200166789451392402033930255849162296049599517039389314323245703974003002871306056760761312939093125683181007579664555880439525571108966074942462895116513841478620068813033789278797404907462036022871609415798166611945651194567590321276195942201853017717528057728132510811195204323308297805762602499595809599893275268457279832823461568607944796052823951662592119614056227231429551732054888874388855662340028251120217810511614366896109363843055449467154761638394867588376634300094220692670236953579067276696146612723111822911117877127954976265867858140111096352636876415007121182117273540140640440517524008058982316478945931969170641597294713075935076583972864449422495155342586598728806775494979178088056449824046437826976523286024790702308847243835376071394458578687912546835130849879894166860682651841976954947807431511569636215190029684186425161301506701221459839426873638255774388152721527892171381585591786340797508023221267188484557094839631160911740430527858501922675045330168891607909406188877299518260761685394276329774925942383611453344589198883873849041446621674242581881537588047121388410559241098929713369871161586317897785449380839828003634375108903137195131892643373680851983205957648602990940282541697177297086375757407179636931168041034330353558588063903022807663264242162890614530622352970379696940794467775536524278365963588841688361677414190685763893885849332511868342490134184629351416979385301539062754606843822656938750053594286033881302708270615269659405867032271979115858936795349976192465898740547120333882065120055356272499228330233388078578183412106782908379145306883509616200805541077756989090270836211526809220383358463380138107285220743527826074464118802231358439710643786416537078444543435443988453608423437944815550982281985958669501212013785578844178346180974084815104814346310220283454269984893711428777310538982680869760978757647784236249407708352640426398493051808453675902583119315457448210081170719146555177540677722006434725761818851307553603669031867093216180067821898404080841445768433022824770998441207371794731109723169635111255103274361231910362102420378591433256772841025659496470941904258389707337677700959942917126448352852790903761851383140717703969561681446080141692228714044974449782838025397723585690625751614750860243534991456485205507037340319464677691312767433498687707317291685348588057845896429400609236683474147148287254400165836707768199749667583635170136299498070484410749953539182747231615671536653281084418011334131762013893445618598799253330689593461429804570659841659289513400904936814836295193335231052425909658052137011758980894815919562968881595885397965696828021189853541789221782321153180554916266017257714956541723442568773995668170790622592856294893245849758695995873700515958238234706551645386705014552827013761299116173949997130145096432802368433362116964332229536562978559934258854122662918395122406663804203703490633268063659212985112626612498217161217108868579948221703750860841083651583730960673250658568116203901429671130791613143057440610031143187616118849105144415514694961121334381820757797770062919649338897069729678256752519089997084062874999114821014451763380250287143700116265972792187914976903971528074465482789448889026993208746362288393188052694624495489813635022235084263635548872954869842067634974841016936101441898671210036420874945749549785799399502102121907115234089769653173689182613979312973188341506487790867292698752346663571712852290695392732015086416168536250958100780193872620948063930528209606203442312168622740410194895318734693219640199557253034115507731674353038657563330950502720627842128239866292036191261256257758934846883167160432614187999486274994874166222990591131550338798897206524302541032957546969553509062220294252589614116121758041700481161884409274283434895572860662942087783688219242418409450363064381322019682492864400532043670930754326026685911599720035297298046241434612301618611832243338287978914942749828555116917118725569208810215463793506207933318384116665347977001738235572230751053518552737083837788912025946021998598844295202329101181852330481648064797753504663393875248754413264086742302561705408671268729878751405632186831164972421729106533016681154620487500255243553808856989650565232217550021481335134864277578394324942554520825871544712852692306141750024068539519193702366843832725757389885730614138042282605559659354844313603854810081571219117062843177365883672284298605677997588601067615265015518090945276404640262386265111099004351026573723850205073529520790052926639810316566067242925339570612897571496780629854983468046229654663034406178873502853415024078602532745695608346597892648833710669501880706258189283360781918519494289900976713052572614941770653312933766446458038412800742618080795205402843355687899212212706258227265764977288449926369820590081894603393286394074169586171805968627158584190552183368053039369793622449477372777486385363709594003412535253555901558235495484712352975967082508168667475266787471161572148783907098318194679478566257750915516608759903276535066440025502668932984589369810056617618351803541113747772948855782686317131883950032348725537784860046129151631943571329591051527733403241974750909799350510975323812284401639135972213643025162742241096141304380898018822137569303697875650406102980699071372433235062529820354600932874853931542998395467094145924331722655992374064861540342782411509315021378097734697807229040156064695758567487634584221054222008138406805658673239142968634757893457110944657451062919100184604517289124021766874432075826387992360155788153487207736054451154332432011350569356509732748625313672151656521463501934792559742174670979412283175147038913330533899399745811403325486575139115765442631832243118890656261170420409513589198639762973765271750132208148268729226481904103635654416201215873606362173682796770996845299699321168305161441239717312869960876190477126036392200161437371858656483791260754472130303152337530473989888293656323492163802237725049256819610930220525615950869269148921187974418579092789093684681091541273933064651690199350088422557465898262263144049142345070558918793290906715228035773534883508479453438162836692738627302009642291590226240555452055614242935986479914173120116366659807533152776181899300804940253276145834992889431485558847411853603113028542539454975653109361776863588397106764043323607811174693109160740708894156197090219367518268090796126881176411933275414651990001033868349167796223710080330597928931368339411253879746630911982520698011395139298158045503627833475437951976836454482621419193856769237627248427934862547377481374759074102478305038494202029165799128733753705332866637278783767612095199625583498616395289144503406190058915695944722253105848975076907112216545736957006235928568231224107965427197493211776241988504837891168486032117546906107350718073344285454828057738048725248741552887634100364440611585870387550793238911969979572893099982884329462466056343693627177524795670812814409198507477235475411911615765492433216737661942843531994059912595457253578153968116317817215720900526042542848874523202686653504023445227855663932064891736804956447252313236408948329391253024277161028165090466371896320152438868031593399928438372985578508575271990122111885528243302758955323881046607294474641804841261208855846412915574173766933117253694294667600269577246109760371559562485743427760101627415044524592997680485845311702072175683651537316716516470712939857794702304119239660011876451611201169038075346045931384303730305461040761982688910783241818705688737927059054275798555486457491325261547278818214031259203516706391016399294579471142818946644985459659750178212137301465052864571128723590030383223192712938982740105820228359280050797812043128137010188496175705974376442924178591584892204915524931013038337705958576462273334977896713691322985420136250957033074975856574986439214742271311486317925983075640864003201257784699065573547060387754841912285129093690324717553174692878997903954033362536196537822283996420787205047972897988147046501117438590232014700796947988648718370966449014424241323849310635963228831485084131095579692517327698227951529428166833416492646607599654886157518450998559751556098140916031140932907933817065283750016667443795498511752414086605632936030975879943198536606384538396411752009659334956074609074993253383670917900018993976603405127541009130594281374909908787966841523752491510605940901285199081462119852923341840291363848550565821683678796369542810097823856946421852495262403854725639219548472699927143258818403254352369941708045317972774378496210372254325791794189296833949266771389256295196174095885111489841063836514909709343089847846603187445821726440075672681329712457005972796587084219022678058626947534414316145824195212454592639221570865131232045757512912254734757535469300998068209951669987315280030112369348193226362136130263085008905551151164589487598164323266236994968899096990094261305548978088567871775764874512616500719072704674483869627832982435494403953106639944152944270474277177554624137734895048535677253594558019679321196145734740720547865120650921978582304680367968217253912349695939728079976204611172830005447489708181205234050603969185555317347094750891606779052827393647310813364650989691803506106471127460108489499497795731256532577556362565523623163952988478097313226516001608337487115693486154151821551787461406170562064076354308451277921173266939446183203362380047648195244803324525457402624671327853457776555858591778495004286685290960696547942099869022888723679765384166070771981507501039679955657371774908307898909279671201209380649242283954571133136012608855553994212840208477209678671581994943285950010306702638626836133451380573967583876782721039811946250781801010303035922280355872558662921076545537985731066005752732018443855073427129762917749873013367562332086256732606413290314377271052716028860032680448800850409461303335836768726359448662599248607018691000319630650481430729355714872071340944192117833742239065265764898843106677912203190899457011060284070437724721382424210444254985385530700363060435284540575474951409989375211034633692161563314450289543722068076641981063734540595366010625800262076316120958675816997526482742087232876465356216373854218604218935116509103991695182805385221277995273154319751918531417183613355681209767496905212921057118231789790454224622691279401825345427050487297462949489641628006321060841932431646822515269586114932885361935657710429374578556018419633760788749024204617212005688591587070360512650844558548180418368278058857390767574328519032178356240176760904288260581515340908807845437853234490275834862722319474921298745295894269154133763230010085880056887069034050783036914415325665618803585765660022805953303736962915492218422904575018502055977074869450570261715501759913714990509299305179189294021549052799665431219257888200087794484216204730020613962064318583348084973855229663702809549460264927969698979194797892317917588793092777192923498276318297446015244599324158434543106483718476530255609188931170821203575773904208886713487501877088280590991756938715411112037926301125872272297330567002888117252284162779015797771207928725707608326233019524498164819540545117491879602806544466666011798409536667971278369643421138639894507923865437779272632599958127975580572064683341487355435551440691008348396559800829574516937589164675366923636453014667473294038721584163898388607250917711522602557958275323111279001059320157269214720077472397890311149298395445663650454653971869941120329202479349504704856204927154363449557739659326825978108503254629134034354935004411985549505874857600582453557105018920140873819075273300431498323132296317786216752418134157800231359049421540836254188669907887240232170295481419120271185243345865900734079483514693076635934697533902655236956536976358383426680467370024009615325907717230047038425670043149238119156667024131953736895582972125939142862879527544787487628228472616730371611574477042153466920361319731585463948504196571304822707446947565643965760829260734493505737513840486030018679613331353864128882496457331603994485294351735032206502138559145999860015021758046292378993785957778570913031839774522089248398312855645009424347607560518888814310880932365657564953203597114414889333076506908349895554081344078850531658499802943942333576501675739322161089208198242006677839905624831904579500516046420063915608238972723451417431411600900481927963758951750292283164162730739662409949174004022681893947642514397798948220505734248039075991056657646603702068139444080267320113465543782065446273731261148071300217939975695766699065271413313583551316937530998821342325211425379257350342560615817476470370857067649813391779354163399246778517284329329987410875026635791060088429155781235326397310511935131173103974102820777056185217109150865854853440562279833798614852207904108936982536098745105693483356546572168008748818047450728464137681536957387290620577601467414175837738754065275329659251067052182027754714371939723287507586171957929483510627454394094284240429975331469488811647334044254222243900784878925230238825356587796637405208950252415672881011322221212426621716923168328197883083535048813747809934924594842994686548586273201034567806541162713395972532421229705411487982448735549157680362919914505795793867421041064125552280577137870397407755471706895868048767334017674377922463604134686853325454550875861018765764219973421644297216442412196101427253791402259080182863731259247022439345651286506630528421178008197143267770534223877246025347598205560703705632352055071232209041815876192787188418420209988387569222174450168163563605119437897162749405637501302455512963394340394220768172175644844372561013049788757107271801279443539860345091156365346338851843918448357033051904024853777104691393015070192907289793359299020623045427062498186913228725748407133502846814228754602263111537067384916674402316913962103970594009219470387579354556884265988251410521469028990855497133425865320930121956491705986906205455174880493258836252360577864211575606302706138320324171844993282817004849655918480266177631949170408882274001827665565201792277664870428498598921674462003724696946315196697460228283607840896966324168459948590348662594078051351075203469456074410940269695768428067362320037906535412086871930382751478953942720598668555499888976406144670539490652545357382723753877923516540616599217415986573137620146076450543899596688519325625406846872512150632345269847012637395238037694670721048414993954321587317984528062494187346669013586666459818522091180680776302845797314318959808571638584968910459897344032129408366490836661689763088822315590577961796477236219692806115534252037401920113800766243840858717443507862130707174106759784429532787135776921166314783956647163161903812411198012117809917443915454839672139814738618094900235521514323141539242229554981630692071895224494193815132847164104326911842332550860237170747007182981350959929745125997996786058513386388524981507836932556589457258711164445004834506532285452133948444702020297482063985900081681510526712714068223823927784452013595112753355892302838288664335331970020549031445353304606498159611907446385886871278317111246709538194187299120257636094382372421807611373013711518289623954728223629364166431242478376711092460447988079482413951944436273295608753146821301561648583300678689286714043039002913444156837610575445374142412707603886407113303843810468584959195177274195780580172536548348096996455239309496550904442410212462734804878839800839606500636461073911668346738026435550707483243962181765243746172261094750332348985838452225038095956901766471438897280062205820683999896319029692296603442068183208071315205455648267888161806134098062857461080685083442213284734163288037448074830232383205518426818670746378743465043519238493738979880450942441877867833967613251942900258036719493851606395120120905200012297029841253604273626387827315006424068256118936683561369235937201911292614879344086463589482675906983256482796418246294670047383524518818145742839205636529453629415103231989072247687720898970581155320057238797261246477112408353999562807165272047444799276282400989773131359918334931029476082779552749084483496477790340623272342101831350873711871179387911232384508927087146108973824647312451400153688278239544541062854163249647903580461654239761461060011885378802653684216191551049489437747991841549509837962360308913051740412183003390047916258883974787892743331747743764129160700930121079838765107649545434375983825445203597823681089935564234854334049480249114911023080175720090691293645741